/* =========================================================
   Design Tokens
========================================================= */
:root {
    --login-wallpaper: url('/assets/img/warehouse.png');

    /* App colors */
    --app-bg: #f8fafc;
    --brand-blue: #0b1b3a;
    --brand-blue-border: rgba(255, 255, 255, .10);
    --brand-blue-pill: rgba(255, 255, 255, .12);

    /* Topnav sizing */
    --topnav-min-h: 52px;
    --topnav-badge: 28px;
    --topnav-radius: 10px;

    /* Login sizing */
    --login-card-radius: 18px;

    /* Minimal login panel */
    --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --min-border: rgba(2, 6, 23, .12);
    --min-text: #0f172a;
    /* slate-900 */
    --min-muted: rgba(15, 23, 42, .65);
    --min-bg: rgba(255, 255, 255, .94);
    --min-focus: rgba(11, 27, 58, .14);
}

/* =========================================================
   Login Layout (Left wallpaper + Right panel)
========================================================= */
.login-page {
    background: var(--app-bg);
}

.login-split {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
}

@media (max-width: 992px) {
    .login-split {
        grid-template-columns: 1fr;
    }
}

/* Left wallpaper (ORIGINAL) */
.login-left {
    background-image: var(--login-wallpaper);
    background-size: cover;
    background-position: center;
    position: relative;
}

.login-left__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .55), rgba(0, 0, 0, .15));
    display: flex;
    align-items: flex-end;
    padding: 2.5rem;
}

.login-left__content {
    color: #fff;
    max-width: 520px;
}

.login-left__brand {
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.login-left__tagline {
    font-size: 1.25rem;
    opacity: .95;
}

.login-left__hint {
    margin-top: .75rem;
    font-size: .95rem;
    opacity: .85;
}

/* Right container alignment */
.login-right {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

/* =========================================================
   Right panel (Minimal • Light • Monospace)
========================================================= */
.login-panel-min {
    width: 100%;
    max-width: 380px;
    /* compact */
    padding: 20px;
    border-radius: 14px;
    background: var(--min-bg);
    border: 1px solid var(--min-border);
    box-shadow: 0 10px 26px rgba(2, 6, 23, .08);
    backdrop-filter: blur(6px);
    font-family: var(--mono);
}

.login-min-header {
    margin-bottom: 14px;
}

.login-min-kicker {
    font-size: .72rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--min-muted);
}

.login-min-title {
    margin-top: 6px;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--min-text);
}

.login-min-sub {
    margin-top: 4px;
    font-size: .78rem;
    color: var(--min-muted);
}

.login-min-alert {
    font-size: .82rem;
    letter-spacing: .04em;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(185, 28, 28, .22);
    background: rgba(185, 28, 28, .06);
    color: #7f1d1d;
    margin-bottom: 12px;
}

.login-min-field {
    margin-bottom: 12px;
}

.login-min-label {
    display: block;
    font-size: .72rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--min-muted);
    margin-bottom: 6px;
}

.login-min-input {
    width: 100%;
    font-size: .95rem;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid var(--min-border);
    background: #fff;
    color: var(--min-text);
    outline: none;
    font-family: var(--mono);
}

.login-min-input:focus {
    border-color: rgba(11, 27, 58, .28);
    box-shadow: 0 0 0 .2rem var(--min-focus);
}

.login-min-btn {
    width: 100%;
    margin-top: 6px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(11, 27, 58, .35);
    background: var(--brand-blue);
    color: #fff;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-family: var(--mono);
}

.login-min-btn:hover {
    filter: brightness(1.06);
}

.login-min-foot {
    margin-top: 12px;
    text-align: center;
    font-size: .72rem;
    letter-spacing: .10em;
    color: rgba(15, 23, 42, .45);
    font-family: var(--mono);
}

/* Mobile: tighter spacing */
@media (max-width: 576px) {
    .login-right {
        padding: 1.1rem;
    }

    .login-panel-min {
        padding: 16px;
    }
}

/* =========================================================
   Topnav (Paper / Dirty White • Compact • Monospace)
========================================================= */
:root {
    --paper: #f3f2ee;
    /* dirty white */
    --paper-2: #fbfaf7;
    /* slightly lighter */
    --ink: #0f172a;
    /* slate-900 */
    --ink-muted: rgba(15, 23, 42, .65);
    --paper-border: rgba(2, 6, 23, .10);
    --paper-pill: rgba(11, 27, 58, .08);
    --paper-pill-strong: rgba(11, 27, 58, .14);
}

.topnav.topnav--paper {
    background: linear-gradient(to bottom, var(--paper-2), var(--paper));
    border-bottom: 1px solid rgba(0, 0, 0, .35);
    min-height: var(--topnav-min-h);
    font-family: var(--mono);
}

/* Brand area */
.topnav.topnav--paper .navbar-brand {
    padding-top: .35rem;
    padding-bottom: .35rem;
}

.topnav.topnav--paper .topnav-badge {
    width: var(--topnav-badge);
    height: var(--topnav-badge);
    border-radius: var(--topnav-radius);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: .95rem;
    background: rgba(11, 27, 58, .10);
    color: var(--ink);
    border: 1px solid rgba(11, 27, 58, .12);
}

.topnav.topnav--paper .topnav-title {
    font-weight: 900;
    letter-spacing: .14em;
    font-size: .92rem;
    color: var(--ink);
    text-transform: uppercase;
}

/* Module links */
.topnav.topnav--paper .topnav-links {
    display: flex;
    gap: .35rem;
    align-items: center;
}

.topnav.topnav--paper .topnav-links .nav-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .42rem .62rem;
    border-radius: var(--topnav-radius);
    font-size: .85rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    white-space: nowrap;
    color: rgba(15, 23, 42, .78);
}

.topnav.topnav--paper .topnav-links .nav-link:hover {
    color: var(--ink);
    background: rgba(11, 27, 58, .06);
}

.topnav.topnav--paper .topnav-links .nav-link.active {
    color: var(--ink);
    background: var(--paper-pill);
    outline: 1px solid rgba(11, 27, 58, .12);
}

/* User label */
.topnav.topnav--paper .topnav-user {
    font-size: .85rem;
    font-weight: 800;
    letter-spacing: .10em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .82);
}

/* Toggler icon contrast in light theme */
.topnav.topnav--paper .navbar-toggler {
    border-color: rgba(2, 6, 23, .18);
}

.topnav.topnav--paper .navbar-toggler-icon {
    filter: contrast(1.2);
}

/* Dropdown */
.topnav.topnav--paper .dropdown-menu {
    border-radius: 12px;
    border: 1px solid rgba(2, 6, 23, .10);
    box-shadow: 0 10px 26px rgba(2, 6, 23, .10);
}

/* Mobile center behavior */
@media (max-width: 991.98px) {
    .topnav.topnav--paper .navbar-collapse {
        text-align: center;
    }

    .topnav.topnav--paper .topnav-links {
        justify-content: center;
        width: 100%;
        margin-top: .35rem;
    }

    .topnav.topnav--paper .navbar-nav {
        align-items: center;
        width: 100%;
    }
}

/* =========================================================
   Paper Page (User Home “Case File” style)
========================================================= */
.page-paper {
    background: var(--app-bg);
}

.page-paper__wrap {
    font-family: var(--mono);
}

/* reusable paper card */
.card-paper {
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(2, 6, 23, .12);
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(2, 6, 23, .08);
}

.card-paper {
    padding: 16px;
}

.card-paper__hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid rgba(0, 0, 0, .10);
}

.card-paper__title {
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-size: .85rem;
    color: rgba(15, 23, 42, .92);
}

.card-paper__tag {
    font-size: .72rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid rgba(0, 0, 0, .14);
    background: rgba(0, 0, 0, .03);
    color: rgba(15, 23, 42, .72);
}

/* header card */
.casefile {
    padding: 16px;
}

.casefile__grid {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.casefile__kicker {
    font-size: .72rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .60);
}

.casefile__title {
    margin-top: 6px;
    font-weight: 900;
    letter-spacing: .20em;
    text-transform: uppercase;
    font-size: 1.05rem;
    color: rgba(15, 23, 42, .92);
}

.casefile__meta {
    margin-top: 6px;
    font-size: .76rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .70);
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.casefile__label {
    color: rgba(15, 23, 42, .55);
}

.casefile__value {
    color: rgba(15, 23, 42, .84);
    font-weight: 800;
}

.casefile__sep {
    opacity: .35;
}

/* stamp */
.stamp {
    border: 1px solid rgba(0, 0, 0, .22);
    border-radius: 12px;
    padding: 10px 12px;
    background: rgba(0, 0, 0, .02);
    min-width: 170px;
    text-align: center;
}

.stamp__top {
    font-size: .68rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .62);
}

.stamp__mid {
    margin-top: 6px;
    font-size: .92rem;
    font-weight: 900;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .92);
}

.stamp__bot {
    margin-top: 6px;
    font-size: .70rem;
    letter-spacing: .10em;
    color: rgba(15, 23, 42, .55);
}

/* list */
.case-list {
    display: grid;
    gap: 10px;
}

.case-item {
    padding: 12px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, .10);
    background: rgba(255, 255, 255, .75);
}

.case-item__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.case-item__headline {
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-size: .78rem;
    color: rgba(15, 23, 42, .90);
}

.case-item__date {
    font-size: .70rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .58);
    white-space: nowrap;
}

.case-item__body {
    margin-top: 8px;
    font-size: .82rem;
    letter-spacing: .06em;
    color: rgba(15, 23, 42, .72);
    line-height: 1.45;
}

/* patch notes */
.case-notes {
    display: grid;
    gap: 10px;
}

.note {
    padding: 12px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, .10);
    background: rgba(255, 255, 255, .75);
}

.note__k {
    font-size: .68rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .55);
}

.note__v {
    margin-top: 6px;
    font-size: .82rem;
    letter-spacing: .10em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .78);
}

.case-notes__foot {
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px dashed rgba(0, 0, 0, .16);
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(15, 23, 42, .52);
}

@media (max-width: 576px) {
    .card-paper {
        padding: 14px;
    }

    .stamp {
        width: 100%;
    }
}

/* =========================================================
   Dead-center layout helpers (Search page)
========================================================= */
.page-center__wrap {
    min-height: calc(100vh - var(--topnav-min-h));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
}

.page-center__card {
    width: 100%;
    max-width: 560px;
}

.page-center__form {
    display: flex;
    flex-direction: column;
    /* ✅ stack input then button */
    align-items: center;
    /* ✅ center horizontally */
    gap: 12px;
}

.page-center__input {
    width: 100%;
    /* ✅ full width inside card */
    max-width: 380px;
    /* keep your constraint */
}

.page-center__btn {
    width: 220px;
    /* ✅ button centered, fixed width */
    max-width: 100%;
}

.page-center__form button[type="submit"] {
    font-family: var(--mono) !important;
    font-weight: 700 !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
}

@media (max-width: 576px) {
    .page-center__form {
        flex-direction: column;
        align-items: stretch;
    }

    .page-center__input {
        max-width: 100%;
    }

    .page-center__btn {
        width: 100%;
    }
}

/* =========================================================
   Mobile: center modules when collapsed
========================================================= */
@media (max-width: 991.98px) {
    .topnav .navbar-collapse {
        text-align: center;
    }

    .topnav .topnav-links {
        justify-content: center;
        width: 100%;
        margin-top: .35rem;
    }

    .topnav .navbar-nav {
        align-items: center;
        width: 100%;
    }
}

/* =========================================================
   BIBOT Loading Overlay — Centered Title + Centered Squares
   - Sharp rectangle
   - Title centered
   - 4-square animation centered as a GROUP
========================================================= */

.bibot-loading {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.72);
}

.bibot-loading.is-active {
    display: flex;
}

html.is-loading,
body.is-loading {
    overflow: hidden !important;
}

.bibot-loading__panel {
    width: min(440px, calc(100% - 28px));
    padding: 14px 16px;
    border-radius: 0;
    background: #f3efe3;
    color: #101010;
    border: 2px solid rgba(0, 0, 0, 0.75);
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
        "Liberation Mono", "Courier New", monospace;

    display: grid;
    grid-template-columns: 1fr;
    justify-items: center;
    row-gap: 10px;
}

.bibot-loading__title {
    margin: 0;
    font-weight: 800;
    letter-spacing: 0.22em;
    font-size: 0.85rem;
    line-height: 1.1;
    text-align: center;
}

.bibot-loading__msg {
    display: none !important;
}

/* ===== Size controls (edit these) ===== */
.bibot-loading__anim {
    --sq: 12px;
    /* square size (was 18px) */
    --gap: 16px;
    /* distance between squares (was 22px) */
    --count: 4;
    /* number of squares */

    /* total width = sq + gap*(count-1) */
    width: calc(var(--sq) + (var(--gap) * (var(--count) - 1)));
    height: var(--sq);

    display: flex;
    align-items: center;
    justify-content: center;
}

/* Base square is shifted left by half of the total span (gap*(count-1))/2 */
.bibot-loading__spinner {
    width: var(--sq);
    height: var(--sq);
    border-radius: 0;

    background: rgba(0, 0, 0, 0.10);
    border: 2px solid rgba(0, 0, 0, 0.85);

    transform: translateX(calc(-1 * (var(--gap) * (var(--count) - 1) / 2)));

    animation: bibotSquarePulse 1.05s steps(4, end) infinite;
}

/* 4 squares using var(--gap) offsets */
@keyframes bibotSquarePulse {
    0% {
        box-shadow:
            calc(var(--gap) * 1) 0 0 rgba(0, 0, 0, 0.18),
            calc(var(--gap) * 2) 0 0 rgba(0, 0, 0, 0.10),
            calc(var(--gap) * 3) 0 0 rgba(0, 0, 0, 0.06);
    }

    25% {
        box-shadow:
            calc(var(--gap) * 1) 0 0 rgba(0, 0, 0, 0.75),
            calc(var(--gap) * 2) 0 0 rgba(0, 0, 0, 0.18),
            calc(var(--gap) * 3) 0 0 rgba(0, 0, 0, 0.10);
    }

    50% {
        box-shadow:
            calc(var(--gap) * 1) 0 0 rgba(0, 0, 0, 0.18),
            calc(var(--gap) * 2) 0 0 rgba(0, 0, 0, 0.75),
            calc(var(--gap) * 3) 0 0 rgba(0, 0, 0, 0.18);
    }

    75% {
        box-shadow:
            calc(var(--gap) * 1) 0 0 rgba(0, 0, 0, 0.10),
            calc(var(--gap) * 2) 0 0 rgba(0, 0, 0, 0.18),
            calc(var(--gap) * 3) 0 0 rgba(0, 0, 0, 0.75);
    }

    100% {
        box-shadow:
            calc(var(--gap) * 1) 0 0 rgba(0, 0, 0, 0.06),
            calc(var(--gap) * 2) 0 0 rgba(0, 0, 0, 0.10),
            calc(var(--gap) * 3) 0 0 rgba(0, 0, 0, 0.75);
    }
}

/* =========================================================
   SEARCH PAGE (Scoped) — Unified + Refactored
   - One token set
   - One button style shared by: Search Again + Tabs
   - Panels typography matches Store Profile (.sr-case)
   - Leaflet z-index + watermark safe
========================================================= */

/* =======================
   Tokens (page-level)
======================= */
.page-search {
    --sr-maxw: 1100px;
    --sr-pad: 1.25rem;

    --sr-ink: rgba(15, 23, 42, .88);
    --sr-ink-strong: rgba(15, 23, 42, .92);
    --sr-ink-muted: rgba(15, 23, 42, .78);

    --sr-border: rgba(0, 0, 0, .12);
    --sr-bg: rgba(255, 255, 255, .70);

    --sr-accent: rgba(11, 27, 58, .06);
    --sr-accent-hover: rgba(11, 27, 58, .10);
    --sr-accent-border: rgba(11, 27, 58, .35);
    --sr-accent-active: rgba(11, 27, 58, .14);

    --sr-gap: .55rem;
    --sr-letter: .16em;

    /* shared button style token */
    --sr-btn-pad: 5px 10px;
    --sr-btn-font: .70rem;
    --sr-btn-letter: .18em;
}

/* =======================
   Layout (wide wrapper + card)
======================= */
.page-search.page-wide__wrap {
    min-height: calc(100vh - var(--topnav-min-h));
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: var(--sr-pad);
}

.page-search .page-wide__card {
    width: 100%;
    max-width: var(--sr-maxw);
}

@media (max-width: 576px) {
    .page-search.page-wide__wrap {
        padding: 1rem;
    }

    .page-search .page-wide__card {
        max-width: 100%;
    }
}

/* =======================
   Shared “Control” button
   - used by: .sr-btn (Search Again link), .sr-tab (tab buttons)
======================= */
.page-search .sr-control {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: var(--sr-btn-pad);
    border-radius: 0;

    border: 1px solid var(--sr-accent-border);
    background: var(--sr-accent);
    color: rgba(15, 23, 42, .92);

    font-family: var(--mono);
    font-weight: 900;
    letter-spacing: var(--sr-btn-letter);
    text-transform: uppercase;
    font-size: var(--sr-btn-font);

    text-decoration: none;
    cursor: pointer;
    user-select: none;
}

.page-search .sr-control:hover {
    background: var(--sr-accent-hover);
}

.page-search .sr-control:focus-visible {
    outline: 2px solid rgba(11, 27, 58, .35);
    outline-offset: 2px;
}

/* active state (tab selected) */
.page-search .sr-control.is-active,
.page-search .sr-control[aria-selected="true"] {
    background: var(--sr-accent-active);
    outline: 1px solid rgba(11, 27, 58, .12);
}

/* apply shared control styling to existing classes (no HTML changes needed) */
.page-search .sr-btn,
.page-search .sr-tab {
    /* “inherit” the unified style without requiring markup changes */
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: var(--sr-btn-pad);
    border-radius: 0;

    border: 1px solid var(--sr-accent-border);
    background: var(--sr-accent);
    color: rgba(15, 23, 42, .92);

    font-family: var(--mono);
    font-weight: 900;
    letter-spacing: var(--sr-btn-letter);
    text-transform: uppercase;
    font-size: var(--sr-btn-font);

    text-decoration: none;
    cursor: pointer;
    user-select: none;
}

.page-search .sr-btn:hover,
.page-search .sr-tab:hover {
    background: var(--sr-accent-hover);
}

.page-search .sr-tab.is-active {
    background: var(--sr-accent-active);
    outline: 1px solid rgba(11, 27, 58, .12);
}

/* =======================
   Actions (Search Again)
======================= */
.page-search .sr-actions {
    display: flex;
    justify-content: center;
    margin-top: 6px;
}

/* =======================
   Tabs + Panels
======================= */
.page-search .sr-tabs {
    margin-top: 10px;
}

.page-search .sr-tablist {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;

    padding-top: 10px;
    border-top: 1px dashed rgba(0, 0, 0, .16);
}

.page-search .sr-panel {
    display: none;
    margin-top: 12px;
}

.page-search .sr-panel.is-active {
    display: block;
}

.page-search .sr-panel__pad {
    border: 1px solid rgba(0, 0, 0, .10);
    background: rgba(255, 255, 255, .75);
    padding: 12px;

    /* ✅ Typography parity with .sr-case */
    font-family: var(--mono);
    text-transform: uppercase;
    letter-spacing: var(--sr-letter);
    color: var(--sr-ink);
}

.page-search .sr-panel__content {
    margin-top: 10px;
    display: grid;
    gap: 8px;
}

/* ✅ Panels use same line primitives as Store Profile */
.page-search .sr-panel__content .sr-line {
    font-size: .78rem;
    line-height: 1.7;

    display: flex;
    flex-wrap: wrap;
    gap: var(--sr-gap);
    align-items: baseline;
}

.page-search .sr-panel__content .sr-k {
    font-weight: 900;
    color: var(--sr-ink-strong);
}

.page-search .sr-panel__content .sr-v {
    font-weight: 400;
    letter-spacing: .10em;
    color: var(--sr-ink-muted);
}

/* =======================
   Case File Card (Store Profile)
======================= */
.page-search .sr-case {
    position: relative;
    /* needed for watermark stacking */
    overflow: hidden;

    border: 1px solid var(--sr-border);
    background: var(--sr-bg);
    padding: 14px;
    border-radius: 0;

    font-family: var(--mono);
    text-transform: uppercase;
    letter-spacing: var(--sr-letter);
    color: var(--sr-ink);
}

/* Keep content above background but under watermark */
.page-search .sr-case .sr-line,
.page-search .sr-case .sr-grid,
.page-search .sr-case .sr-body {
    position: relative;
    z-index: 10;
}

.page-search .sr-case .sr-line {
    font-size: .78rem;
    line-height: 1.7;

    display: flex;
    flex-wrap: wrap;
    gap: var(--sr-gap);
    align-items: baseline;
}

.page-search .sr-case .sr-line--header {
    padding-bottom: 8px;
    margin-bottom: 10px;
    border-bottom: 1px dashed rgba(0, 0, 0, .14);
}

.page-search .sr-case .sr-gap {
    width: 14px;
    height: 1px;
    display: inline-block;
}

.page-search .sr-case .sr-k {
    font-weight: 900;
    color: var(--sr-ink-strong);
}

.page-search .sr-case .sr-v {
    font-weight: 400;
    letter-spacing: .10em;
    color: var(--sr-ink-muted);
}

.page-search .sr-case .sr-body {
    display: grid;
    gap: 4px;
}

/* =======================
   2-Column Grid (Details + Map)
======================= */
.page-search .sr-case .sr-grid {
    display: grid;
    grid-template-columns: 1.25fr .75fr;
    gap: 14px;
    align-items: start;
}

.page-search .sr-case .sr-left,
.page-search .sr-case .sr-right {
    min-width: 0;
}

/* =======================
   Map Panel (Leaflet)
======================= */
.page-search .sr-case .sr-mapwrap {
    margin-top: 0;
    position: relative;
    z-index: 1;
    /* under watermark */
}

.page-search .sr-case .sr-maptitle {
    font-weight: 900;
    letter-spacing: .16em;
    font-size: .72rem;
    opacity: .85;
    margin-bottom: 8px;
}

.page-search .sr-case .sr-map {
    height: 320px;
    width: 100%;
    border-radius: 0;
    border: 2px solid rgba(0, 0, 0, .65);
    background: rgba(0, 0, 0, .05);
    position: relative;
    z-index: 1;
}

.page-search .sr-case .sr-mapmeta {
    margin-top: 8px;
    font-size: .72rem;
    letter-spacing: .14em;
    opacity: .85;
}

.page-search .sr-case .sr-mapna {
    margin-top: 6px;
    font-size: .72rem;
    letter-spacing: .14em;
    opacity: .65;
}

.page-search .sr-case .leaflet-container {
    font-family: var(--mono);
}

/* Leaflet panes can float high; keep them under watermark */
.page-search .sr-case .leaflet-container,
.page-search .sr-case .leaflet-pane,
.page-search .sr-case .leaflet-top,
.page-search .sr-case .leaflet-bottom {
    z-index: 1 !important;
}

/* =======================
   Stabilo Highlight (Retailer Name)
======================= */
.page-search .sr-case .sr-highlight {
    position: relative;
    display: inline-block;
    padding: 0 .18em;

    font-weight: 700;
    letter-spacing: .08em;

    z-index: 0;
    isolation: isolate;
}

.page-search .sr-case .sr-highlight::before {
    content: "";
    position: absolute;
    left: -0.10em;
    right: -0.10em;

    top: 58%;
    height: 0.95em;
    transform: translateY(-50%) rotate(-1.2deg);

    background: rgba(255, 230, 80, .75);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .08) inset;

    z-index: -1;
    border-radius: 0;
    filter: saturate(1.05) contrast(1.02);
}

/* =======================
   Deactivated Watermark (above map)
======================= */
.page-search .sr-case--deactivated {
    border-color: rgba(185, 28, 28, .28);
}

.page-search .sr-case--deactivated .sr-watermark {
    position: absolute;
    inset: 0;

    display: grid;
    place-items: center;

    pointer-events: none;
    user-select: none;

    z-index: 50;

    font-family: var(--mono);
    font-weight: 900;
    letter-spacing: .32em;
    text-transform: uppercase;

    font-size: clamp(1.4rem, 4vw, 3.0rem);
    color: rgba(185, 28, 28, .14);

    transform: rotate(-14deg);
}

/* =======================
   Responsive: Stack Map Below
======================= */
@media (max-width: 991.98px) {
    .page-search .sr-case .sr-grid {
        grid-template-columns: 1fr;
    }

    .page-search .sr-case .sr-map {
        height: 240px;
    }
}

/* PASTE IT UNDER -------------------------------------------->

/* =========================================================
   PIVOT PAGE — SCOPED STYLES (MOBILE FIRST)
   Only affects .page-pivot
========================================================= */

.page-pivot {
    padding: 14px;
}

.page-pivot .pivot-head {
    text-align: center;
    margin-bottom: 12px;
}

.page-pivot .pivot-title {
    font-size: 1.25rem;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
    margin: 6px 0 4px;
}

.page-pivot .pivot-sub {
    opacity: .65;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: .72rem;
    margin: 0;
}

.page-pivot .pivot-shell {
    max-width: 1200px;
    margin: 0 auto;
}

.page-pivot .pivot-grid {
    display: grid;
    grid-template-columns: 1fr;
    /* mobile: stack */
    gap: 12px;
    align-items: start;
}

.page-pivot .pv-card {
    background: rgba(255, 255, 255, .92);
    border: 1px solid rgba(2, 6, 23, .12);
    border-radius: 14px;
    padding: 14px;
    box-shadow: 0 10px 26px rgba(2, 6, 23, .08);
}

.page-pivot .pv-h {
    font-weight: 900;
    font-size: .72rem;
    letter-spacing: .22em;
    opacity: .70;
    margin: 0 0 10px;
    text-transform: uppercase;
}

.page-pivot .pv-group {
    margin: 12px 0;
}

.page-pivot .pv-label {
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-size: .70rem;
    margin: 0 0 8px;
    opacity: .85;
}

.page-pivot .pv-opts {
    display: grid;
    gap: 6px;
}

.page-pivot .pv-opts--grid {
    grid-template-columns: 1fr;
    /* mobile */
}

.page-pivot .pv-opt {
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 7px 8px;
    border-radius: 12px;
    cursor: pointer;
    user-select: none;
    border: 1px solid rgba(0, 0, 0, .06);
    background: rgba(255, 255, 255, .70);
}

.page-pivot .pv-opt:hover {
    background: rgba(11, 27, 58, .06);
}

.page-pivot .pv-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    margin: 10px 0;
}

.page-pivot .pv-k {
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-size: .68rem;
    opacity: .70;
}

.page-pivot input[type="text"],
.page-pivot input[type="date"] {
    width: 100%;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, .12);
    outline: none;
    background: #fff;
    font-family: var(--mono);
}

.page-pivot input[type="text"]:focus,
.page-pivot input[type="date"]:focus {
    border-color: rgba(11, 27, 58, .28);
    box-shadow: 0 0 0 .2rem rgba(11, 27, 58, .10);
}

.page-pivot .pv-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, .14);
    font-weight: 900;
    letter-spacing: .20em;
    text-transform: uppercase;
    background: #111;
    color: #fff;
    cursor: pointer;
    font-family: var(--mono);
}

.page-pivot .pv-btn:active {
    transform: translateY(1px);
}

.page-pivot .pv-btn[disabled] {
    opacity: .65;
    cursor: not-allowed;
}

.page-pivot .pv-meta {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(0, 0, 0, .035);
    border: 1px solid rgba(0, 0, 0, .06);
    font-family: var(--mono);
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .9;
}

.page-pivot .pv-tablewrap {
    margin-top: 12px;
    overflow: auto;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, .08);
    background: #fff;
}

.page-pivot .pv-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    min-width: 560px;
    /* enables horizontal scroll on mobile */
}

.page-pivot .pv-table th,
.page-pivot .pv-table td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(0, 0, 0, .06);
    white-space: nowrap;
    text-align: left;
    font-family: var(--mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: .78rem;
    color: rgba(15, 23, 42, .78);
}

.page-pivot .pv-table th {
    font-weight: 900;
    font-size: .70rem;
    letter-spacing: .18em;
    opacity: .75;
    background: rgba(0, 0, 0, .02);
}

/* numeric cells */
.page-pivot .pv-num {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}

/* =========================================================
   DESKTOP ENHANCEMENTS
========================================================= */
@media (min-width: 992px) {
    .page-pivot {
        padding: 18px 18px 36px;
    }

    .page-pivot .pivot-grid {
        grid-template-columns: 360px 1fr;
        gap: 14px;
    }

    /* optional: keep controls visible while scrolling table */
    .page-pivot .pv-card--controls {
        position: sticky;
        top: calc(var(--topnav-min-h) + 12px);
    }

    .page-pivot .pv-opts--grid {
        grid-template-columns: 1fr 1fr;
    }

    .page-pivot .pv-row {
        grid-template-columns: 120px 1fr;
        align-items: center;
    }

    .page-pivot .pivot-title {
        font-size: 1.35rem;
    }
}