/* /Components/Layout/EmptyLayout.razor.rz.scp.css */
.empty-layout[b-tvif37d22i] {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ef-bg);
}
/* /Components/Layout/Header.razor.rz.scp.css */
/* ── Header nav links ── *
   The nav row is the only piece of the header that's allowed to shrink, so
   when site-tabs accumulate past the viewport width it scrolls horizontally
   instead of pushing the user profile off the right edge. min-width: 0 +
   flex: 1 1 auto on the parent (.h-left) is what lets this overflow clip.
*/
.h-nav[b-v9jh52tniu] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-4);
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    /* Subtle scrollbar — visible enough to discover, thin enough not to
       eat vertical space inside the 48-px header. */
    scrollbar-width: thin;
    scrollbar-color: var(--nav-divider, rgba(255,255,255,0.25)) transparent;
}
.h-nav[b-v9jh52tniu]::-webkit-scrollbar { height: 4px; }
.h-nav[b-v9jh52tniu]::-webkit-scrollbar-track { background: transparent; }
.h-nav[b-v9jh52tniu]::-webkit-scrollbar-thumb {
    background: var(--nav-divider, rgba(255,255,255,0.25));
    border-radius: 2px;
}
.h-nav[b-v9jh52tniu]::-webkit-scrollbar-thumb:hover {
    background: var(--nav-text-active, rgba(255,255,255,0.4));
}

.h-nav-link[b-v9jh52tniu] {
    font-size: var(--ef-text-13);
    font-weight: 500;
    color: var(--nav-text, var(--ef-text-muted));
    text-decoration: none;
    padding: 4px 10px;
    border-radius: var(--ef-radius-6);
    transition: background 150ms, color 150ms;
    white-space: nowrap;
    /* Each link keeps its natural width; only .h-nav itself overflow-scrolls. */
    flex-shrink: 0;
}

.h-nav-link:hover[b-v9jh52tniu] {
    background: var(--nav-hover, rgba(255,255,255,0.1));
    color: var(--nav-text, var(--ef-text));
}

/* Emphasize the selected top-nav tab. Was a faint translucent bg (nearly the
   same as :hover); now uses the theme's dedicated active tokens (primary-tinted
   fill + accent text) plus a 3px accent underline so the current tab clearly
   stands out. All nav themes (light/soft/slate/dark) define these tokens. */
.h-nav-link.active[b-v9jh52tniu] {
    background: var(--nav-active-bg, rgba(255,255,255,0.18));
    color: var(--nav-active-text, var(--ef-text));
    font-weight: 700;
    box-shadow: inset 0 -3px 0 var(--nav-accent, var(--ef-color-primary));
}

/* Maturity badge on a top-nav tab (Time Tracker → Beta). The word itself is the icon:
   a small uppercase pill. Filled colors so it reads on every nav theme (light/soft/slate/dark);
   red = Alpha, yellow = Beta — same palette as the Reports side nav badges. */
.h-nav-badge[b-v9jh52tniu] {
    display: inline-block;
    margin-left: 2px;
    padding: 1px var(--ef-space-4);
    font-size: var(--ef-text-11);
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border-radius: var(--ef-radius-4);
    vertical-align: 1px;
}

.h-nav-badge-alpha[b-v9jh52tniu] { background: var(--ef-red, #dc2626); color: #fff; }
.h-nav-badge-beta[b-v9jh52tniu]  { background: var(--ef-yellow, #d97706); color: #fff; }

/* ── Header divider ── */
.h-divider[b-v9jh52tniu] {
    width: 1px;
    height: 20px;
    background: var(--nav-divider, var(--ef-border));
    margin: 0 var(--ef-space-8);
    flex-shrink: 0;
}

/* ── Header center: spacer ── */
.h-center[b-v9jh52tniu] {
    flex: 1;
}

.h-cabinet-label[b-v9jh52tniu] {
    font-size: var(--ef-text-13);
    font-weight: 500;
    color: var(--nav-text);
    white-space: nowrap;
}

.h-cabinet-select[b-v9jh52tniu] {
    min-width: 200px;
}

/* ── Header right: User area ── */
.h-user[b-v9jh52tniu] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-4) var(--ef-space-8);
    border-radius: var(--ef-radius-6);
    cursor: pointer;
    transition: background 150ms;
    position: relative;
    color: var(--nav-text);
}

.h-user:hover[b-v9jh52tniu] {
    background: var(--nav-hover);
}

.h-user-name[b-v9jh52tniu] {
    font-size: var(--ef-text-13);
    font-weight: 600;
    color: var(--nav-text-active);
}

/* ── User dropdown menu ── */
.h-user-menu[b-v9jh52tniu] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    box-shadow: var(--ef-shadow-3);
    min-width: 200px;
    z-index: 200;
    padding: var(--ef-space-4) 0;
    white-space: nowrap;
}

/* v7.628 — header notifier. Present only when something actually changed, so an empty bell
   never sits there as furniture. */
.h-notify[b-v9jh52tniu] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 8px;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6, 6px);
    background: var(--nav-bg, transparent);
    color: var(--nav-text, var(--ef-text));
    cursor: pointer;
}

.h-notify:hover[b-v9jh52tniu] { background: var(--nav-active-bg, var(--ef-surface-2)); }

.h-notify:focus-visible[b-v9jh52tniu] {
    outline: 2px solid var(--ef-color-focus, var(--ef-color-primary));
    outline-offset: 1px;
}

.h-notify-count[b-v9jh52tniu] {
    min-width: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--ef-red, #dc2626);
    color: #fff;
    font-size: var(--ef-text-11);
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}

/* v7.627 — count of the user's own requests that changed status since they last looked.
   margin-left:auto pushes it to the right edge of the menu row. */
.h-fb-dot[b-v9jh52tniu] {
    margin-left: auto;
    min-width: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--ef-color-primary);
    color: #fff;
    font-size: var(--ef-text-11);
    font-weight: 700;
    line-height: 18px;
    text-align: center;
}

.h-user-menu-item[b-v9jh52tniu] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-13);
    color: var(--ef-text);
    cursor: pointer;
    transition: background var(--ef-transition-fast);
    white-space: nowrap;
}

.h-user-menu-item:hover[b-v9jh52tniu] {
    background: var(--ef-surface-alt);
}

.h-user-menu-item.disabled[b-v9jh52tniu] {
    opacity: 0.45;
    cursor: default;
    pointer-events: none;
}

/* "Caso WF" toggle (BILCRO-only preview switch in the user menu) */
.caso-wf-item[b-v9jh52tniu] {
    cursor: default;
    justify-content: flex-start;
}

.ef-switch[b-v9jh52tniu] {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 34px;
    height: 18px;
    flex: 0 0 auto;
    cursor: pointer;
}

.ef-switch input[b-v9jh52tniu] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.ef-switch .ef-switch-track[b-v9jh52tniu] {
    position: absolute;
    inset: 0;
    background: var(--ef-border);
    border-radius: 999px;
    transition: background 0.15s ease;
}

.ef-switch .ef-switch-track[b-v9jh52tniu]::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
    transition: transform 0.15s ease;
}

.ef-switch input:checked + .ef-switch-track[b-v9jh52tniu] {
    background: var(--ef-color-primary);
}

.ef-switch input:checked + .ef-switch-track[b-v9jh52tniu]::before {
    transform: translateX(16px);
}

.ef-switch input:focus-visible + .ef-switch-track[b-v9jh52tniu] {
    outline: 2px solid var(--ef-color-primary);
    outline-offset: 1px;
}

/* ── Narrow screens (Plan 159 Phase 2) ─────────────────────────────────────────
   Breakpoints follow the shared layer in components.css: 1024 / 900 / 760 / 420.

   The tab strip already scrolled horizontally (see .h-nav at the top of this file) —
   what it did NOT have was any width to scroll in. Every other child of .h-left is
   flex-shrink: 0, so at 360px the hamburger, the brand, the dividers and a 200px
   cabinet select consumed the row and .h-nav was squeezed to nothing: a scroller with
   a zero-pixel viewport, which looks exactly like "the tabs have vanished".

   So the fix is not "make .h-nav scroll" — it is to give back the ~130px the chrome
   around it was holding. Nothing here removes a destination: every tab is still in the
   strip, every cabinet is still in the select. What shrinks is spacing, tracking, and
   one redundant word. The active tab is scrolled into view by efNav.scrollActiveIntoView
   (app.js), called from Header.razor's OnAfterRenderAsync — CSS cannot do that part. */

@media (max-width: 760px) {
    /* The select is the biggest single offender: a 200px floor for a control whose
       value is usually a dozen characters. It may now shrink; the options are
       unchanged, and the full list opens as the native picker on tap. */
    .h-cabinet-select[b-v9jh52tniu] {
        min-width: 0;
        flex: 0 1 140px;
    }

    /* 44px is the shared layer's touch input height; the header row is 48px, so the
       select and the icon buttons inside it get the tighter of the two. */
    .h-cabinet-select[b-v9jh52tniu] { height: 40px; }

    /* Anything that can give width, gives it. */
    .h-user-name[b-v9jh52tniu] { max-width: 12ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

@media (max-width: 420px) {
    /* 16px of gutter on each side of a 360px header is 9% of the row. */
    .header[b-v9jh52tniu] { padding: 0 var(--ef-space-8); }

    /* The word "Cabinet" beside a select full of cabinet names. The control keeps an
       aria-label (see Header.razor), so nothing is lost to a screen reader either. */
    .h-cabinet-label[b-v9jh52tniu] { display: none; }

    /* Letter-spacing at 1.2px is ~16px of pure air across the brand; the name stays. */
    .brand-name[b-v9jh52tniu] { font-size: var(--ef-text-13); letter-spacing: 0.4px; }

    /* Dividers are separators, not content — they keep their line, lose their margins. */
    .h-divider[b-v9jh52tniu] { margin: 0 var(--ef-space-4); }

    /* Below this width the strip is definitely scrolling, so make it obvious it can:
       a little padding on the right edge stops the last tab sitting flush against the
       user menu and reading as "that's all of them". */
    .h-nav[b-v9jh52tniu] { padding-right: var(--ef-space-8); }
    .h-nav-link[b-v9jh52tniu] { padding: 4px var(--ef-space-8); }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.app-root[b-9obr6mn3eo] {
    height: 100vh;
    /* Plan 159 — on a phone, 100vh is the height the viewport has with the browser's
       address bar RETRACTED, which is taller than what is actually on screen when it
       is not. `app.css` pins `html, body { overflow: hidden }`, so the overflow that
       creates cannot be scrolled to: the status bar and the bottom of the page are
       simply below the fold and unreachable. 100dvh is the same number on a desktop
       and the true visible height on a phone. Declared second so browsers without
       dvh (pre-2022) keep the 100vh line. */
    height: 100dvh;
    display: flex;
    flex-direction: column;
}

.app-content[b-9obr6mn3eo] {
    flex: 1;
    display: flex;
    overflow: hidden;
    /* v7.168 — a flex child defaults to min-height:auto (its content height), so without
       this the content area can't shrink below the page content. On a short window it then
       overflows the 100vh app-root and pushes docked panels (e.g. the edit-record iframe and
       its action-button footer) off the bottom of the screen. min-height:0 lets it shrink to
       the viewport so inner areas scroll instead. */
    min-height: 0;
}

.app-body[b-9obr6mn3eo] {
    flex: 1;
    overflow: hidden;
    position: relative;
    min-width: 0;
    min-height: 0;
}

#sidebar-panel[b-9obr6mn3eo] {
    width: 200px;
    flex-shrink: 0;
    overflow: hidden;
}

#blazor-error-ui[b-9obr6mn3eo] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-9obr6mn3eo] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* /Components/Layout/MobileLayout.razor.rz.scp.css */
/* ===== Mobile Layout (phones, viewport < 768 px) =====
   Single-column stack. No sidebar, no splitter, no floating panels.
   Touch targets sized to >= 44 px per Apple HIG / WCAG 2.5.5.
   Body fills the viewport via vh so the document viewer can go full-bleed.
*/

.m-root[b-rkldmg5edw] {
    display: flex;
    flex-direction: column;
    height: 100vh;
    height: 100dvh; /* iOS Safari respects dvh; falls back to vh on older browsers */
    background: var(--ef-bg);
    color: var(--ef-text);
    font-family: var(--ef-font);
}

.m-topbar[b-rkldmg5edw] {
    flex-shrink: 0;
    height: 48px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    background: #1e3a8a; /* match nav bar darker variant — primary brand */
    color: #fff;
    box-shadow: var(--ef-shadow-1, 0 1px 3px rgba(0,0,0,0.12));
    z-index: 10;
}

.m-back[b-rkldmg5edw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: none;
    background: transparent;
    color: #fff;
    cursor: pointer;
    border-radius: 8px;
    flex-shrink: 0;
}
.m-back:active[b-rkldmg5edw] {
    background: rgba(255,255,255,0.15);
}

.m-logo[b-rkldmg5edw] {
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.3px;
}

.m-title[b-rkldmg5edw] {
    font-size: 15px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-left: 4px;
}

.m-user[b-rkldmg5edw] {
    font-size: 12px;
    opacity: 0.85;
    padding: 4px 10px;
    background: rgba(255,255,255,0.12);
    border-radius: 99px;
}

.m-body[b-rkldmg5edw] {
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    min-height: 0;
}

/* ===== Shared mobile primitives — usable by any page under /m/ =====
   Pages reach these via the global stylesheet (this file is scoped, but the
   .m-* classes are unique enough that the scope hash doesn't matter for
   layout-level reuse — child pages get their own scoped CSS for component
   internals).
*/

[b-rkldmg5edw] .m-page {
    padding: 16px 12px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

[b-rkldmg5edw] .m-card {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 56px;
    padding: 12px 14px;
    background: var(--ef-surface, #fff);
    border: 1px solid var(--ef-border, #e5e7eb);
    border-radius: 10px;
    cursor: pointer;
    transition: background 100ms;
    text-align: left;
}
[b-rkldmg5edw] .m-card:active {
    background: var(--ef-surface-2, #f3f4f6);
}
[b-rkldmg5edw] .m-card .m-card-main {
    flex: 1;
    min-width: 0;
}
[b-rkldmg5edw] .m-card .m-card-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--ef-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
[b-rkldmg5edw] .m-card .m-card-sub {
    font-size: 12px;
    color: var(--ef-text-muted);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
[b-rkldmg5edw] .m-card .m-chev {
    color: var(--ef-text-muted);
    flex-shrink: 0;
}

[b-rkldmg5edw] .m-input {
    width: 100%;
    height: 44px;
    padding: 0 14px;
    font-size: 16px; /* >= 16px so iOS Safari doesn't auto-zoom on focus */
    border: 1px solid var(--ef-border, #d1d5db);
    border-radius: 10px;
    background: #fff;
    outline: none;
    box-sizing: border-box;
}
[b-rkldmg5edw] .m-input:focus {
    border-color: var(--ef-color-primary, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

[b-rkldmg5edw] .m-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    font-size: 15px;
    font-weight: 600;
    border: none;
    border-radius: 10px;
    background: var(--ef-color-primary, #2563eb);
    color: #fff;
    cursor: pointer;
}
[b-rkldmg5edw] .m-btn:active {
    /* The resting state on .m-btn already reads --ef-color-primary; this pressed
       state was left hardcoded, so it flashed blue under a non-blue accent. */
    background: var(--ef-color-primary-active);
}
[b-rkldmg5edw] .m-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

[b-rkldmg5edw] .m-empty {
    text-align: center;
    padding: 48px 16px;
    color: var(--ef-text-muted);
    font-size: 14px;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-4zn9d1v8zt] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-4zn9d1v8zt] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-4zn9d1v8zt] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-4zn9d1v8zt] {
    font-size: 1.1rem;
}

.bi[b-4zn9d1v8zt] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-4zn9d1v8zt] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-4zn9d1v8zt] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-4zn9d1v8zt] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-4zn9d1v8zt] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-4zn9d1v8zt] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-4zn9d1v8zt] {
        padding-bottom: 1rem;
    }

    .nav-item[b-4zn9d1v8zt]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-4zn9d1v8zt]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-4zn9d1v8zt]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-4zn9d1v8zt] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-4zn9d1v8zt] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-4zn9d1v8zt] {
        display: none;
    }

    .nav-scrollable[b-4zn9d1v8zt] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Components/Layout/PopupLayout.razor.rz.scp.css */
.popup-layout[b-5xa3aqc73v] {
    min-height: 100vh;
    background: var(--ef-bg, #f9fafb);
    display: flex;
    flex-direction: column;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-3ro7q9jd2e],
.components-reconnect-repeated-attempt-visible[b-3ro7q9jd2e],
.components-reconnect-failed-visible[b-3ro7q9jd2e],
.components-pause-visible[b-3ro7q9jd2e],
.components-resume-failed-visible[b-3ro7q9jd2e],
.components-rejoining-animation[b-3ro7q9jd2e] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-3ro7q9jd2e],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-3ro7q9jd2e],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-3ro7q9jd2e],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-3ro7q9jd2e],
#components-reconnect-modal.components-reconnect-retrying[b-3ro7q9jd2e],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-3ro7q9jd2e],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-3ro7q9jd2e],
#components-reconnect-modal.components-reconnect-failed[b-3ro7q9jd2e],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-3ro7q9jd2e] {
    display: block;
}


#components-reconnect-modal[b-3ro7q9jd2e] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-3ro7q9jd2e 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-3ro7q9jd2e 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-3ro7q9jd2e 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-3ro7q9jd2e]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-3ro7q9jd2e 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-3ro7q9jd2e {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-3ro7q9jd2e {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-3ro7q9jd2e {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-3ro7q9jd2e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-3ro7q9jd2e] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-3ro7q9jd2e] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-3ro7q9jd2e] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-3ro7q9jd2e] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-3ro7q9jd2e] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-3ro7q9jd2e] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-3ro7q9jd2e 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-3ro7q9jd2e] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-3ro7q9jd2e {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/SectionLayout.razor.rz.scp.css */
/* Plan 158 — section shell: fixed-width grouped side nav + the page itself.
   Design tokens only. Collapses to a single horizontal strip on narrow screens so the page keeps
   the full width on a tablet. (Was ReportsLayout.razor.css, which knew about one untitled group.) */

.sect-shell[b-llo0624wfk] {
    display: flex;
    align-items: stretch;
    height: 100%;
    min-height: 0;
}

.sect-nav[b-llo0624wfk] {
    flex: 0 0 216px;
    border-right: 1px solid var(--ef-border);
    background: var(--ef-surface);
    padding: var(--ef-space-16) 0;
    overflow-y: auto;
}

/* v7.625 — collapsed to a narrow strip holding just the re-open control, so a wide screen
   can use the full width. */
.sect-nav-collapsed[b-llo0624wfk] {
    flex: 0 0 28px;
    overflow: hidden;
}

.sect-nav-toggle[b-llo0624wfk] {
    display: block;
    margin: 0 0 var(--ef-space-8) auto;
    padding: 0 var(--ef-space-8);
    background: none;
    border: none;
    color: var(--ef-text-muted);
    font-size: var(--ef-text-14);
    line-height: 1.6;
    cursor: pointer;
}

.sect-nav-toggle:hover[b-llo0624wfk] { color: var(--ef-text); }

.sect-nav-toggle:focus-visible[b-llo0624wfk] {
    outline: 2px solid var(--ef-color-focus, var(--ef-color-primary));
    outline-offset: -2px;
}

.sect-nav-collapsed .sect-nav-toggle[b-llo0624wfk] { margin-right: 0; padding: 0; width: 100%; text-align: center; }

/* Hidden, not un-rendered — see the note in the .razor. */
.sect-nav-collapsed .sect-nav-title[b-llo0624wfk],
.sect-nav-collapsed .sect-nav-group[b-llo0624wfk],
.sect-nav-collapsed .sect-nav-list[b-llo0624wfk],
.sect-nav-collapsed .sect-nav-empty[b-llo0624wfk] { display: none; }

/* The section's name, once, at the top. */
.sect-nav-title[b-llo0624wfk] {
    font-size: var(--ef-text-11);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--ef-text-muted);
    font-weight: 600;
    margin: 0 0 var(--ef-space-12);
    padding: 0 var(--ef-space-16);
}

.sect-nav-group[b-llo0624wfk] { margin-top: var(--ef-space-12); }

/* v7.685 — group titles used to be deliberately quiet, on the theory that they should read as
   dividers inside one list. With Work / Customers / Reports each holding real destinations that was
   the wrong call: the groups ARE the structure, and a muted 11px label gave the eye nothing to
   land on. They are now the strongest thing in the panel after the active link — full text colour,
   a rule above, and a hit target that spans the panel because the whole row toggles. */
.sect-nav-group-heading[b-llo0624wfk] { margin: 0; font-size: inherit; font-weight: inherit; }

.sect-nav-group-title[b-llo0624wfk] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    width: 100%;
    box-sizing: border-box;
    font-family: inherit;
    font-size: var(--ef-text-12);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--ef-text);
    font-weight: 700;
    background: transparent;
    border: 0;
    border-top: 1px solid var(--ef-border);
    margin: 0 0 var(--ef-space-4);
    padding: var(--ef-space-12) var(--ef-space-16) var(--ef-space-8);
    cursor: pointer;
    text-align: left;
}

/* The first group sits directly under the section title, where a rule would read as a stray line. */
.sect-nav-group:first-of-type .sect-nav-group-title[b-llo0624wfk] { border-top: 0; padding-top: var(--ef-space-8); }

.sect-nav-group-title:hover[b-llo0624wfk] { color: var(--ef-color-primary); }
.sect-nav-group-title:focus-visible[b-llo0624wfk] {
    outline: 2px solid var(--ef-color-primary);
    outline-offset: -2px;
    border-radius: var(--ef-radius-4);
}

.sect-nav-group-caret[b-llo0624wfk] {
    font-size: 10px;
    line-height: 1;
    color: var(--ef-text-muted);
    width: 10px;
    flex: 0 0 10px;
    transition: color 120ms;
}
.sect-nav-group-title:hover .sect-nav-group-caret[b-llo0624wfk] { color: var(--ef-color-primary); }

.sect-nav-group-name[b-llo0624wfk] { flex: 1 1 auto; min-width: 0; }

/* On a collapsed group: how many links are folded away, so the group is not just a dead heading. */
.sect-nav-group-count[b-llo0624wfk] {
    font-size: var(--ef-text-11);
    font-weight: 600;
    letter-spacing: 0;
    color: var(--ef-text-muted);
    background: var(--ef-surface-2);
    border-radius: 999px;
    padding: 1px 7px;
    flex: 0 0 auto;
}

/* ...and when the page you are ON is inside that collapsed group, a dot instead of a count. Folding
   a group must never leave you with no idea where you are. */
.sect-nav-group-dot[b-llo0624wfk] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ef-color-primary);
    flex: 0 0 auto;
}

.sect-nav-group-collapsed .sect-nav-group-title[b-llo0624wfk] { color: var(--ef-text-muted); }
.sect-nav-group-collapsed .sect-nav-group-title:hover[b-llo0624wfk] { color: var(--ef-color-primary); }

.sect-nav-list[b-llo0624wfk] { list-style: none; margin: 0; padding: 0; }

.sect-nav-link[b-llo0624wfk] {
    position: relative;   /* anchors .sect-nav-sr */
    display: flex;
    align-items: center;
    gap: var(--ef-space-4);
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-13);
    color: var(--ef-text);
    text-decoration: none;
    border-left: 3px solid transparent;
    cursor: pointer;
}

.sect-nav-link:hover[b-llo0624wfk] { background: var(--ef-surface-2); }

.sect-nav-link.active[b-llo0624wfk] {
    color: var(--ef-color-primary);
    border-left-color: var(--ef-color-primary);
    background: var(--ef-color-primary-bg, rgba(37, 99, 235, 0.08));
    font-weight: 600;
}

.sect-nav-link:focus-visible[b-llo0624wfk] {
    outline: 2px solid var(--ef-color-focus, var(--ef-color-primary));
    outline-offset: -2px;
}

.sect-nav-text[b-llo0624wfk] { min-width: 0; }

/* Badge and the external marker are pushed to the right edge so a column of links has one
   ragged edge, not two. */
.sect-nav-badge[b-llo0624wfk],
.sect-nav-ext[b-llo0624wfk] { margin-left: auto; }

/* The Time Tracker is a separate app reached through the /site relay — the arrow says so before
   the click rather than after it. Announced to screen readers by .sect-nav-sr instead. */
.sect-nav-ext[b-llo0624wfk] {
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted);
    line-height: 1;
}

.sect-nav-link.active .sect-nav-ext[b-llo0624wfk] { color: var(--ef-color-primary); }

.sect-nav-sr[b-llo0624wfk] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sect-nav-empty[b-llo0624wfk] {
    padding: 0 var(--ef-space-16);
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
}

/* Maturity badges — the word itself is the icon: a small uppercase pill next to the link text.
   Alpha = red (still proving itself), Beta = yellow (usable, still settling). Filled so they
   read at a glance even when the link is active/hovered. */
.sect-nav-badge[b-llo0624wfk] {
    display: inline-block;
    padding: 1px var(--ef-space-4);
    font-size: var(--ef-text-11);
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    border-radius: var(--ef-radius-4);
    vertical-align: 1px;
}

.sect-nav-badge-alpha[b-llo0624wfk] { background: var(--ef-red, #dc2626); color: #fff; }
.sect-nav-badge-beta[b-llo0624wfk]  { background: var(--ef-yellow, #d97706); color: #fff; }

.sect-body[b-llo0624wfk] {
    flex: 1;
    min-width: 0;   /* let wide tables scroll instead of stretching the layout */
    min-height: 0;
    overflow: auto;
}

/* ── Narrow screens (Plan 158 Phase 6) ────────────────────────────────────────
   Three stacked groups would eat a phone screen, so the whole nav becomes ONE horizontally
   scrolling row and the group titles stay in it as inline dividers: the grouping survives,
   the height does not. display:contents lifts each group's heading and list into that row. */
@media (max-width: 900px) {
    .sect-shell[b-llo0624wfk] { flex-direction: column; }

    .sect-nav[b-llo0624wfk] {
        flex: 0 0 auto;
        border-right: none;
        border-bottom: 1px solid var(--ef-border);
        padding: var(--ef-space-8);
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: var(--ef-space-8);
        overflow-x: auto;
        overflow-y: hidden;
    }

    /* The top tab already says which section this is, and collapsing a strip would only confuse:
       hide both, and show the list even when the saved state says collapsed. */
    .sect-nav-title[b-llo0624wfk] { display: none; }
    .sect-nav-toggle[b-llo0624wfk] { display: none; }
    .sect-nav-collapsed[b-llo0624wfk] { flex: 0 0 auto; overflow-x: auto; overflow-y: hidden; }

    .sect-nav-group[b-llo0624wfk],
    .sect-nav-collapsed .sect-nav-group[b-llo0624wfk],
    .sect-nav-group-heading[b-llo0624wfk] { display: contents; }

    /* v7.685 — a group folded up on a desktop must NOT come back as a hole on a phone. The strip has
       no room for an expand affordance and nothing to expand into, so [hidden] is overridden here and
       every link shows. Collapsing is a desktop convenience, not a stored preference about what the
       user is allowed to see. */
    .sect-nav-list[b-llo0624wfk],
    .sect-nav-collapsed .sect-nav-list[b-llo0624wfk],
    .sect-nav-list[hidden][b-llo0624wfk] {
        display: flex !important;
        gap: var(--ef-space-4);
        align-items: center;
    }

    .sect-nav-collapsed .sect-nav-empty[b-llo0624wfk] { display: block; }

    /* The caret and the count belong to an interaction that does not exist at this width. */
    .sect-nav-group-caret[b-llo0624wfk],
    .sect-nav-group-count[b-llo0624wfk],
    .sect-nav-group-dot[b-llo0624wfk] { display: none; }

    .sect-nav-group-title[b-llo0624wfk] {
        margin: 0;
        padding: 0 0 0 var(--ef-space-8);
        border-top: 0;
        border-left: 1px solid var(--ef-border);
        white-space: nowrap;
        align-self: center;
        cursor: default;
        color: var(--ef-text-muted);
        font-size: var(--ef-text-11);
        letter-spacing: 0.4px;
        font-weight: 600;
        width: auto;
        flex: 0 0 auto;
    }
    .sect-nav-group:first-of-type .sect-nav-group-title[b-llo0624wfk] { border-left: 0; padding-left: 0; }
    .sect-nav-group-title:hover[b-llo0624wfk] { color: var(--ef-text-muted); }

    .sect-nav-link[b-llo0624wfk] {
        white-space: nowrap;
        border-left: none;
        border-bottom: 3px solid transparent;
    }

    .sect-nav-link.active[b-llo0624wfk] { border-left-color: transparent; border-bottom-color: var(--ef-color-primary); }

    /* In a row there is no right edge to push to — keep them beside their label. */
    .sect-nav-badge[b-llo0624wfk],
    .sect-nav-ext[b-llo0624wfk] { margin-left: 0; }
}

/* ── Phone (Plan 159 Phase 2) ──────────────────────────────────────────────────
   The ≤900px strip above was written for a tablet and holds up at 360px, but three
   things it left implicit only bite on a phone, so they are made explicit here:

     · min-width: 0 on the strip. It is the cross-axis child of a column flex
       container, which is stretch-sized today — but the moment anything sets a
       width on .sect-shell, an unconstrained strip stops scrolling and starts
       pushing the page sideways instead. With `body { overflow: hidden }` that
       does not scroll, it CLIPS. One line, and the failure mode is gone.
     · touch scrolling. Momentum, plus overscroll containment so a flick at the end
       of the strip doesn't drag the page or fire the browser's back gesture.
     · tap targets. A 13px link with 8px of padding is ~33px tall — a mouse target
       (plan §4 rule 5 asks for 40).

   Nothing is hidden: every entry the user may open is still in the strip, and the
   group titles stay in it as inline dividers exactly as at tablet width. */
@media (max-width: 760px) {
    .sect-nav[b-llo0624wfk],
    .sect-nav-collapsed[b-llo0624wfk] {
        min-width: 0;
        max-width: 100%;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        /* A thin visible scrollbar is the only affordance saying the strip continues. */
        scrollbar-width: thin;
    }

    .sect-nav-link[b-llo0624wfk] {
        min-height: 40px;
        padding: var(--ef-space-8) var(--ef-space-12);
        align-items: center;
    }

    /* The strip is the page's primary navigation on a phone; keep it off the very
       edge so the first entry isn't half under the screen bezel. */
    .sect-nav[b-llo0624wfk] { padding: var(--ef-space-4) var(--ef-space-8); }
}
/* /Components/Layout/Sidebar.razor.rz.scp.css */
/* Sidebar: cabinets scroll, recents pinned bottom */

[b-sunbyrogws] .sidebar {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

[b-sunbyrogws] .sidebar-cabinets {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
}

[b-sunbyrogws] .sidebar-recents {
    flex-shrink: 0;
    border-top: 1px solid var(--nav-divider, var(--ef-border));
    max-height: 200px;
    overflow: hidden;
}

[b-sunbyrogws] .recents-list {
    max-height: 160px;
    overflow-y: auto;
    overflow-x: hidden;
}

[b-sunbyrogws] .ni-inactive {
    opacity: .5;
}

/* Colored filled folder icons */
[b-sunbyrogws] .ni svg.folder-icon {
    color: #60a5fa;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}
/* Accent-driven, not hardcoded blue — these folder icons sit directly beside
   token-driven nav text, so a fixed blue read as a mismatch under teal/violet/slate. */
[b-sunbyrogws] .ni:hover svg.folder-icon {
    color: var(--ef-color-primary-hover);
}
[b-sunbyrogws] .ni.active svg.folder-icon {
    color: var(--ef-color-primary);
    filter: drop-shadow(0 1px 3px var(--ef-color-primary-light));
}
/* /Components/Pages/AiReports.razor.rz.scp.css */
/* Plan 122 — AI Reports. Design-system tokens only; no hardcoded colours. */

.air-page[b-vf80sm728f] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.air-body[b-vf80sm728f] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    gap: var(--ef-space-12);
    padding: 0 var(--ef-space-24) var(--ef-space-16);
}

.air-unavailable[b-vf80sm728f] {
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    background: var(--ef-surface-2);
    padding: var(--ef-space-16);
}

.air-unavailable h2[b-vf80sm728f] {
    font-size: var(--ef-text-16);
    margin: 0 0 var(--ef-space-8);
}

.air-unavailable p[b-vf80sm728f] {
    margin: 0 0 var(--ef-space-8);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-13);
}

.air-detail[b-vf80sm728f] {
    font-family: var(--ef-font-mono, monospace);
    font-size: var(--ef-text-12);
}

/* ── Standard reports ─────────────────────────────────────────────── */

.air-standard[b-vf80sm728f] {
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    background: var(--ef-surface-2);
    padding: var(--ef-space-12) var(--ef-space-16);
}

.air-standard-head[b-vf80sm728f] {
    display: flex;
    align-items: baseline;
    gap: var(--ef-space-8);
    margin-bottom: var(--ef-space-8);
}

.air-standard-sub[b-vf80sm728f],
.air-standard-note[b-vf80sm728f] {
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
}

.air-standard-controls[b-vf80sm728f] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--ef-space-8);
    margin-bottom: var(--ef-space-12);
    font-size: var(--ef-text-13);
}

.air-standard-controls input[type="date"][b-vf80sm728f] {
    padding: 4px var(--ef-space-8);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4, 4px);
    background: var(--ef-surface-1);
    color: var(--ef-text);
    font: inherit;
}

.air-presets[b-vf80sm728f] {
    display: flex;
    gap: var(--ef-space-4);
    margin-left: var(--ef-space-8);
}

.air-standard-grid[b-vf80sm728f] {
    display: grid;
    /* auto-fit so five cards reflow to one column on a narrow window rather than overflowing. */
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--ef-space-8);
}

.air-standard-card[b-vf80sm728f] {
    display: flex;
    flex-direction: column;
    gap: var(--ef-space-4);
    padding: var(--ef-space-12);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    background: var(--ef-surface-1);
}

.air-standard-title[b-vf80sm728f] {
    font-weight: 600;
    font-size: var(--ef-text-13);
}

.air-standard-desc[b-vf80sm728f] {
    flex: 1;
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    line-height: 1.4;
}

.air-standard-card button[b-vf80sm728f] {
    align-self: flex-start;
    margin-top: var(--ef-space-4);
}

.air-standard-note[b-vf80sm728f] {
    margin: var(--ef-space-8) 0 0;
}

/* The conversation scrolls; the composer stays put. */
.air-chat[b-vf80sm728f] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    background: var(--ef-surface-1);
    padding: var(--ef-space-16);
    display: flex;
    flex-direction: column;
    gap: var(--ef-space-16);
}

.air-empty[b-vf80sm728f] {
    color: var(--ef-text-muted);
}

.air-empty-title[b-vf80sm728f] {
    font-size: var(--ef-text-13);
    margin: 0 0 var(--ef-space-8);
}

.air-suggestions[b-vf80sm728f] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ef-space-8);
}

.air-msg[b-vf80sm728f] {
    display: flex;
    flex-direction: column;
    gap: var(--ef-space-4);
    max-width: 78ch;
}

.air-msg-user[b-vf80sm728f] {
    align-self: flex-end;
    align-items: flex-end;
}

.air-msg-who[b-vf80sm728f] {
    font-size: var(--ef-text-11);
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ef-text-muted);
}

.air-msg-body[b-vf80sm728f] {
    /* Tool output and P&L narration arrive as plain text with meaningful line breaks. */
    white-space: pre-wrap;
    font-size: var(--ef-text-14);
    line-height: 1.5;
    padding: var(--ef-space-12);
    border-radius: var(--ef-radius-8);
    background: var(--ef-surface-2);
}

.air-msg-user .air-msg-body[b-vf80sm728f] {
    background: var(--ef-color-primary-soft, var(--ef-surface-3));
}

.air-thinking[b-vf80sm728f] {
    color: var(--ef-text-muted);
    font-style: italic;
}

.air-spec-card[b-vf80sm728f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--ef-space-12);
    margin-top: var(--ef-space-8);
    padding: var(--ef-space-12);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    background: var(--ef-surface-1);
}

.air-spec-head[b-vf80sm728f] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.air-spec-sub[b-vf80sm728f] {
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
}

.air-spec-note[b-vf80sm728f] {
    margin: var(--ef-space-4) 0 0;
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted);
}

.air-error[b-vf80sm728f] {
    padding: var(--ef-space-12);
    border: 1px solid var(--ef-color-danger);
    border-radius: var(--ef-radius-8);
    color: var(--ef-color-danger);
    font-size: var(--ef-text-13);
}

.air-composer[b-vf80sm728f] {
    display: flex;
    gap: var(--ef-space-8);
    align-items: flex-end;
}

.air-input[b-vf80sm728f] {
    flex: 1;
    resize: vertical;
    min-height: 44px;
    padding: var(--ef-space-8);
    font-size: var(--ef-text-14);
    font-family: inherit;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    background: var(--ef-surface-1);
    color: var(--ef-text);
}

.air-input:focus-visible[b-vf80sm728f] {
    outline: 2px solid var(--ef-color-primary);
    outline-offset: 1px;
}

/* ── Narrow screens (Plan 159 Phase 3) ────────────────────────────────────────
   Breakpoints match the shared layer in components.css: 1024 / 900 / 760 / 420.

   This page is a conversation, so it takes to a phone better than the tables do —
   .air-standard-grid was already auto-fit, and .air-msg is capped in `ch` rather than
   pixels. Three things still needed saying:

     · 24px gutters on a 360px screen are 13% of the readable width.
     · the composer is a flex row: a textarea and a Send button. At 320px the button
       squeezed the textarea to a couple of words. It stacks.
     · report output arrives as plain text with meaningful line breaks and is rendered
       `white-space: pre-wrap`, which does NOT wrap a long unbroken run — a carton id,
       a file path, a long project name. That is the one thing on this page that can
       still push the conversation sideways, so it is broken explicitly rather than
       clipped: every character stays, on as many lines as it needs.

   Nothing is hidden — the same standard reports, the same messages, the same
   downloadable spec cards at every width. */

@media (max-width: 760px) {
    .air-body[b-vf80sm728f] { padding: 0 var(--ef-space-12) var(--ef-space-12); }
    .air-standard[b-vf80sm728f] { padding: var(--ef-space-12); }
    .air-chat[b-vf80sm728f] { padding: var(--ef-space-12); gap: var(--ef-space-12); }

    /* A message may use the full column; 78ch is a desktop reading measure. */
    .air-msg[b-vf80sm728f] { max-width: 100%; }
    .air-msg-body[b-vf80sm728f] { overflow-wrap: anywhere; }

    /* Head, controls and presets each get their own line rather than colliding. */
    .air-standard-head[b-vf80sm728f] { flex-wrap: wrap; }
    .air-standard-controls[b-vf80sm728f] { gap: var(--ef-space-8); }
    .air-standard-controls input[type="date"][b-vf80sm728f] { min-height: 40px; flex: 1 1 140px; }
    .air-presets[b-vf80sm728f] { margin-left: 0; flex-wrap: wrap; }

    /* The spec card is name-and-subtitle on the left, a download button on the right;
       at this width the button goes under them instead of crushing the name. */
    .air-spec-card[b-vf80sm728f] { flex-direction: column; align-items: stretch; }
    .air-spec-card .btn[b-vf80sm728f] { width: 100%; }

    /* Composer: full-width input above a full-width Send. */
    .air-composer[b-vf80sm728f] { flex-direction: column; align-items: stretch; gap: var(--ef-space-8); }
    .air-input[b-vf80sm728f] { width: 100%; min-height: 64px; }
    .air-composer .btn[b-vf80sm728f] { width: 100%; }
}

@media (max-width: 420px) {
    .air-body[b-vf80sm728f] { padding: 0 var(--ef-space-8) var(--ef-space-8); }
    .air-standard[b-vf80sm728f] { padding: var(--ef-space-8); }
    .air-chat[b-vf80sm728f] { padding: var(--ef-space-8); }
    /* A user message aligned right in a 340px column just loses its left edge. */
    .air-msg-user[b-vf80sm728f] { align-self: stretch; align-items: stretch; }
}
/* /Components/Pages/Auth/Login.razor.rz.scp.css */
.login-page[b-x049mewg4k] {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* v7.537 — the app shell sets html,body{overflow:hidden}, so THIS container must scroll.
       height (not min-height) bounds it; 100dvh beats 100vh on iOS Safari, whose URL bar makes
       100vh taller than the visible viewport. Centering moved to the card's margin:auto —
       flex justify-content:center CLIPS THE TOP of overflowing content, which is exactly the
       phone case (Safari: no Entra button, no scroll). */
    height: 100vh;
    height: 100dvh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: var(--ef-space-24);
    background: var(--ef-bg);
}

.login-card[b-x049mewg4k] {
    margin: auto;   /* centers when there's room; top-aligns scrollable content when there isn't */
}

/* ── Card: two-column grid (proportions from login_page_variations.html) ── */
.login-card[b-x049mewg4k] {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    width: 100%;
    max-width: 1100px;
    min-height: 560px;
    background: var(--ef-surface);
    border-radius: 24px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

/* ── Left: Branding panel (CASO blue gradient from login_page_variations.html) ── */
.login-brand[b-x049mewg4k] {
    padding: 50px;
    background: linear-gradient(145deg, #0f1f3d, #1d4b84, #2f6fed);
    color: rgba(255, 255, 255, 0.85);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.login-brand-content[b-x049mewg4k] {
    text-align: left;
}

.login-brand-title[b-x049mewg4k] {
    font-size: 38px;
    font-weight: 800;
    color: #ffffff;
    margin: 0 0 16px;
    line-height: 1.1;
}

.login-brand-subtitle[b-x049mewg4k] {
    font-size: var(--ef-text-14);
    color: rgba(255, 255, 255, 0.85);
    margin: 0 0 20px;
    line-height: 1.5;
}

.login-brand-chips[b-x049mewg4k] {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
}

.login-brand-chip[b-x049mewg4k] {
    display: inline-block;
    padding: 8px 14px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 20px;
    font-size: 13px;
    color: #ffffff;
    white-space: nowrap;
}

/* ── Right: Form area (padding + card width from login_page_variations.html) ── */
.login-form-area[b-x049mewg4k] {
    padding: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-form-card[b-x049mewg4k] {
    width: 100%;
    max-width: 360px;
}

.login-logo[b-x049mewg4k] {
    display: block;
    width: 100%;
    max-width: 280px;
    height: auto;
    margin: 0 auto 16px;
}

.login-title[b-x049mewg4k] {
    font-size: var(--ef-text-24);
    font-weight: 700;
    color: var(--ef-text);
    margin: 0 0 var(--ef-space-4);
}

.login-subtitle[b-x049mewg4k] {
    font-size: var(--ef-text-14);
    color: var(--ef-text-muted);
    margin: 0 0 var(--ef-space-24);
}

.login-fields[b-x049mewg4k] {
    display: flex;
    flex-direction: column;
    gap: var(--ef-space-16, 16px);
}

.login-input[b-x049mewg4k] {
    width: 100%;
    height: var(--ef-btn-height-lg);
    font-size: var(--ef-text-14);
    background: var(--ef-input-bg);
    border-color: var(--ef-border);
}

.login-input:focus[b-x049mewg4k] {
    border-color: var(--ef-color-primary);
    box-shadow: 0 0 0 3px var(--ef-color-focus);
}

.login-error[b-x049mewg4k] {
    padding: var(--ef-space-12) var(--ef-space-16);
    background: var(--ef-red-bg);
    color: var(--ef-red);
    border-radius: var(--ef-radius-6);
    font-size: var(--ef-text-13);
    margin-bottom: var(--ef-space-16);
    border: 1px solid var(--ef-red-bg);
}

/* ── Remember me ── */
.login-remember[b-x049mewg4k] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    cursor: pointer;
    margin-top: var(--ef-space-16);
}

/* ── Sign In button ── */
.login-btn[b-x049mewg4k] {
    width: 100%;
    height: var(--ef-btn-height-lg);
    font-size: var(--ef-text-14);
    font-weight: 600;
    margin-top: var(--ef-space-16);
    border-radius: var(--ef-radius-6);
}

/* ── Divider ── */
.login-divider[b-x049mewg4k] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-12);
    margin: var(--ef-space-24) 0 var(--ef-space-16);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-12);
}

.login-divider[b-x049mewg4k]::before,
.login-divider[b-x049mewg4k]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--ef-border);
}

/* ── SSO Buttons ── */
.sso-buttons[b-x049mewg4k] {
    display: flex;
    flex-direction: column;
    gap: var(--ef-space-8);
}

.sso-btn[b-x049mewg4k] {
    width: 100%;
    height: var(--ef-btn-height-lg);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--ef-text-14);
    font-weight: 600;
    font-family: var(--ef-font);
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    color: var(--ef-text);
    border-radius: var(--ef-radius-6);
    cursor: pointer;
    transition: all var(--ef-transition-base);
}

.sso-btn:hover[b-x049mewg4k] {
    background: var(--ef-surface-alt);
    border-color: var(--ef-border-strong);
}

.sso-icon-img[b-x049mewg4k] {
    width: 22px;
    height: 22px;
    object-fit: contain;
    position: absolute;
    left: var(--ef-space-16);
}

/* ── Footer ── */
.login-footer[b-x049mewg4k] {
    position: fixed;
    bottom: var(--ef-space-16);
    left: 0;
    right: 0;
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    text-align: center;
    line-height: 1.5;
}

.login-copyright[b-x049mewg4k] {
    font-size: var(--ef-text-12);
}

.login-versions[b-x049mewg4k] {
    font-size: var(--ef-text-11);
    opacity: 0.65;
    margin-top: 2px;
    letter-spacing: 0.2px;
}

.login-version-sep[b-x049mewg4k] {
    margin: 0 var(--ef-space-4);
    opacity: 0.6;
}

.login-version-item[b-x049mewg4k] {
    white-space: nowrap;
}

/* ── Password toggle ── */
.login-password-wrap[b-x049mewg4k] {
    position: relative;
}

.login-input-password[b-x049mewg4k] {
    padding-right: 40px;
}

.login-password-toggle[b-x049mewg4k] {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    padding: 0;
    color: var(--ef-text-muted);
}

/* ── Spinner inside button ── */
.login-spinner[b-x049mewg4k] {
    width: 16px;
    height: 16px;
    border-width: 2px;
    display: inline-block;
}

/* ── SSO completion loading state ── */
.sso-loading[b-x049mewg4k] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--ef-space-16);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-14);
}

.login-spinner-lg[b-x049mewg4k] {
    width: 32px;
    height: 32px;
    border-width: 3px;
}

/* ── Validation messages ── */
[b-x049mewg4k] .validation-message {
    font-size: var(--ef-text-12);
    color: var(--ef-red);
    margin-top: var(--ef-space-4);
}

/* ── Responsive: stack on small screens ── */
@media (max-width: 640px) {
    .login-card[b-x049mewg4k] {
        grid-template-columns: 1fr;
        min-height: 0;   /* the desktop 560px floor forced the fold on phones */
    }

    /* v7.537 — the sign-in form comes FIRST on a phone; the gradient brand panel used to fill
       the whole first screen with the Entra button stranded (unscrollably) below it. */
    .login-form-area[b-x049mewg4k] {
        order: -1;
        padding: var(--ef-space-24);
    }

    .login-brand[b-x049mewg4k] {
        padding: var(--ef-space-24);
    }

    .login-brand-title[b-x049mewg4k] {
        font-size: 28px;
    }

    .login-brand-chips[b-x049mewg4k] {
        display: none;
    }

    /* Fixed footer overlays the form on short viewports — flow it under the card instead. */
    .login-footer[b-x049mewg4k] {
        position: static;
        margin-top: var(--ef-space-16);
    }
}
/* /Components/Pages/Cabinet/AIMonitor.razor.rz.scp.css */
.aim-page[b-pt196ukvwe] {
    width: 100%;
    height: 100vh;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: #f4f6f9;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    overflow: hidden;
}

/* Toolbar */
.aim-toolbar[b-pt196ukvwe] {
    background: #fff;
    border-bottom: 1px solid #ddd;
    padding: 8px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}
.aim-back-btn[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    font-size: 13px;
    background: transparent;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
    color: #666;
}
.aim-back-btn:hover[b-pt196ukvwe] { background: #f0f0f0; }

.aim-nav-right[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.aim-sep[b-pt196ukvwe] {
    color: #ddd;
    margin: 0 4px;
}

.aim-autorefresh-label[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #555;
    cursor: pointer;
}

.aim-refresh-btn[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    font-size: 13px;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: pointer;
    color: #333;
}

.aim-refresh-btn:hover[b-pt196ukvwe] { background: #e9ecef; }

.aim-toggle-btn[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 12px;
    font-size: 13px;
    border-radius: 4px;
    cursor: pointer;
    border: 1px solid;
}

.aim-toggle-active[b-pt196ukvwe]  { background: #d4edda; color: #155724; border-color: #c3e6cb; }
.aim-toggle-paused[b-pt196ukvwe]  { background: #fff3cd; color: #856404; border-color: #ffeeba; }
.aim-toggle-active:hover[b-pt196ukvwe]  { background: #c3e6cb; }
.aim-toggle-paused:hover[b-pt196ukvwe]  { background: #ffeeba; }

/* Body — flex column that fills the area below the toolbar. The body itself
   does NOT scroll: cards / filters are anchored at the top, only the table
   body inside .aim-table-wrap scrolls. The thead is sticky inside that scroll
   container so column headers stay visible while you scroll rows. */
.aim-body[b-pt196ukvwe] {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

/* Anchored sections — explicitly do not shrink so they stay pinned at the
   top of the body even when the table fills with rows. */
.aim-header[b-pt196ukvwe],
.aim-cards[b-pt196ukvwe],
.aim-filters[b-pt196ukvwe] {
    flex-shrink: 0;
}

/* Header */
.aim-header[b-pt196ukvwe] { margin-bottom: 4px; }

.aim-title[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 20px;
    font-weight: 600;
    color: #333;
    margin: 0;
}

.aim-cabinet-label[b-pt196ukvwe] {
    color: #666;
    font-weight: 400;
}

/* Summary Cards */
.aim-cards[b-pt196ukvwe] {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.aim-card[b-pt196ukvwe] {
    flex: 1;
    min-width: 150px;
    background: #fff;
    border-radius: 6px;
    padding: 16px 20px;
    border: 1px solid #e0e0e0;
    display: flex;
    align-items: center;
    gap: 14px;
}

.aim-card-icon[b-pt196ukvwe] {
    width: 44px;
    height: 44px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.aim-card-value[b-pt196ukvwe] {
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}

.aim-card-label[b-pt196ukvwe] {
    font-size: 12px;
    color: #888;
    margin-top: 2px;
}

.aim-card-queued   .aim-card-icon[b-pt196ukvwe] { background: #fff3cd; color: #856404; }
.aim-card-queued   .aim-card-value[b-pt196ukvwe] { color: #856404; }

.aim-card-progress .aim-card-icon[b-pt196ukvwe] { background: #cce5ff; color: #004085; }
.aim-card-progress .aim-card-value[b-pt196ukvwe] { color: #004085; }

.aim-card-completed .aim-card-icon[b-pt196ukvwe] { background: #d4edda; color: #155724; }
.aim-card-completed .aim-card-value[b-pt196ukvwe] { color: #155724; }

.aim-card-failed   .aim-card-icon[b-pt196ukvwe] { background: #f8d7da; color: #721c24; }
.aim-card-failed   .aim-card-value[b-pt196ukvwe] { color: #721c24; }

.aim-card-total    .aim-card-icon[b-pt196ukvwe] { background: #e2e3e5; color: #383d41; }
.aim-card-total    .aim-card-value[b-pt196ukvwe] { color: #383d41; }

/* Filters */
.aim-filters[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.aim-filter-label[b-pt196ukvwe] {
    font-size: 13px;
    color: #555;
    margin: 0;
    white-space: nowrap;
}

.aim-select[b-pt196ukvwe] {
    height: 32px;
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 0 8px;
    min-width: 120px;
    background: #fff;
}

.aim-search-wrap[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    margin-left: auto;
    gap: 0;
}

.aim-search[b-pt196ukvwe] {
    height: 32px;
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 4px 0 0 4px;
    padding: 0 8px;
    min-width: 220px;
    outline: none;
}

.aim-search-btn[b-pt196ukvwe] {
    height: 32px;
    padding: 0 10px;
    background: #fff;
    border: 1px solid #ccc;
    border-left: none;
    border-radius: 0 4px 4px 0;
    cursor: pointer;
    display: flex;
    align-items: center;
}

.aim-search-btn:hover[b-pt196ukvwe] { background: #e9ecef; }

/* Table */
.aim-table-wrap[b-pt196ukvwe] {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.aim-table-scroll[b-pt196ukvwe] {
    overflow-x: auto;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.aim-loading[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 40px;
    color: #999;
    font-size: 13px;
}

.aim-table[b-pt196ukvwe] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.aim-table thead th[b-pt196ukvwe] {
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    color: #495057;
    white-space: nowrap;
    /* Sticky inside .aim-table-scroll so column headers stay visible as the
       user scrolls through rows. */
    position: sticky;
    top: 0;
    z-index: 2;
}

.aim-table tbody tr[b-pt196ukvwe] { border-bottom: 1px solid #eee; }
.aim-table tbody tr:hover[b-pt196ukvwe] { background: #f8f9fa; }

.aim-table tbody td[b-pt196ukvwe] {
    padding: 8px 12px;
    color: #333;
}

.aim-empty[b-pt196ukvwe] {
    text-align: center;
    padding: 40px !important;
    color: #999;
}

.aim-date[b-pt196ukvwe] {
    white-space: nowrap;
    font-size: 12px;
    color: #555;
}

.aim-msg[b-pt196ukvwe] {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Status badges */
.aim-badge[b-pt196ukvwe] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.aim-badge-queued[b-pt196ukvwe]    { background: #fff3cd; color: #856404; }
.aim-badge-progress[b-pt196ukvwe]  { background: #cce5ff; color: #004085; }
.aim-badge-completed[b-pt196ukvwe] { background: #d4edda; color: #155724; }
.aim-badge-failed[b-pt196ukvwe]    { background: #f8d7da; color: #721c24; }
.aim-badge-unknown[b-pt196ukvwe]   { background: #e2e3e5; color: #383d41; }

/* Job ID cell — fan-out AI_DOC_JOB.JobId; monospace, truncated, click to copy. */
.aim-jobid[b-pt196ukvwe] { max-width: 130px; }
.aim-jobid-text[b-pt196ukvwe] {
    display: inline-block;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
    font-family: var(--ef-font-mono, monospace);
    font-size: 11px;
    color: var(--ef-color-primary);
    cursor: pointer;
}
.aim-muted[b-pt196ukvwe] { color: var(--ef-text-muted); }

/* Fan-out progress — shown under the In-Progress badge for large-doc page-batch runs. */
.aim-progress[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}

/* v7.607 — unstick button under the progress bar of an In-Progress fan-out row. */
.aim-requeue-btn[b-pt196ukvwe] {
    margin-top: 4px;
    padding: 2px 8px;
    font-size: var(--ef-text-11);
    font-weight: 600;
    color: var(--ef-color-primary);
    background: none;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4, 4px);
    cursor: pointer;
}
.aim-requeue-btn:hover[b-pt196ukvwe] { background: var(--ef-color-primary-bg, rgba(37,99,235,0.08)); }
.aim-requeue-btn:disabled[b-pt196ukvwe] { opacity: 0.6; cursor: default; }

.aim-progress-track[b-pt196ukvwe] {
    flex: 1 1 auto;
    min-width: 60px;
    max-width: 120px;
    height: 6px;
    background: #e2e6ea;
    border-radius: 3px;
    overflow: hidden;
}

.aim-progress-fill[b-pt196ukvwe] {
    height: 100%;
    background: #004085;
    border-radius: 3px;
    transition: width 0.4s ease;
}

.aim-progress-pct[b-pt196ukvwe] {
    font-size: 11px;
    font-weight: 600;
    color: #004085;
    white-space: nowrap;
}

/* Pagination — anchored at bottom of .aim-table-wrap. */
.aim-pagination[b-pt196ukvwe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-top: 1px solid #eee;
    background: #f8f9fa;
    font-size: 13px;
    color: #555;
    flex-wrap: wrap;
    gap: 8px;
    flex-shrink: 0;
}

.aim-page-size-wrap[b-pt196ukvwe] { display: flex; align-items: center; }

.aim-page-size[b-pt196ukvwe] {
    height: 30px;
    font-size: 13px;
    padding: 0 24px 0 8px;
    min-width: 110px;
}

.aim-page-buttons[b-pt196ukvwe] {
    display: flex;
    gap: 4px;
}

.aim-pg-btn[b-pt196ukvwe] {
    min-width: 32px;
    height: 32px;
    border: 1px solid #ccc;
    background: #fff;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    padding: 0 6px;
}

.aim-pg-btn:hover[b-pt196ukvwe] { background: #e9ecef; }
.aim-pg-btn:disabled[b-pt196ukvwe] { opacity: 0.5; cursor: default; }
.aim-pg-btn.aim-pg-active[b-pt196ukvwe] { background: #3680bf; color: #fff; border-color: #3680bf; }

@keyframes spin-b-pt196ukvwe {
    to { transform: rotate(360deg); }
}
.spin[b-pt196ukvwe] { animation: spin-b-pt196ukvwe 0.8s linear infinite; }
/* /Components/Pages/Cabinet/CabinetWorkspace.razor.rz.scp.css */
/* ── Workspace: 2-panel flex row ── */
.workspace[b-jrrmsz63jx] {
    display: flex;
    height: 100%;
    overflow: hidden;
    background: var(--ef-bg);
    color: var(--ef-text);
}

/* ── Search Area (resizable top section with drag handle below) ── */
.search-area[b-jrrmsz63jx] {
    /* Starting pane size — user drags the hsplitter below to resize; JS sets inline
       `height: Npx` + `flex: none` which overrides this. `max-height` is deliberately
       NOT set, since it would clamp explicit drag-resizes from the JS handler.
       The area itself does NOT scroll — only the inner .adv-fields list does, so the
       top-bar + search-controls stay pinned at the top of the resizable pane. */
    height: 45%;
    flex-shrink: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Wraps search-controls + .adv-fields below the top-bar. Flex-column so the controls
   row pins and only the field list flexes + scrolls. */
.search-body[b-jrrmsz63jx] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

/* ── Horizontal Splitter ── */
.hsplitter[b-jrrmsz63jx] {
    height: var(--ef-splitter-size);
    cursor: row-resize;
    background: var(--ef-border);
    flex-shrink: 0;
    transition: background var(--ef-transition-base);
    position: relative;
    z-index: 10;
}
.hsplitter[b-jrrmsz63jx]::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: -4px;
    bottom: -4px;
}

.hsplitter:hover[b-jrrmsz63jx],
.hsplitter.active[b-jrrmsz63jx] {
    background: var(--ef-color-primary);
}

.hsplitter[b-jrrmsz63jx]::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 2px;
    border-radius: 1px;
    background: var(--ef-text-muted);
    opacity: 0.4;
}

/* ── Search expand/collapse toggle ── */
.search-expand-btn[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 3px 0;
    border: none;
    background: var(--ef-bg-muted, #f0f4f8);
    color: var(--ef-color-primary);
    font-size: var(--ef-text-11);
    font-weight: 600;
    cursor: pointer;
    transition: background 150ms;
    flex-shrink: 0;
}

.search-expand-btn:hover[b-jrrmsz63jx] {
    background: var(--ef-border);
}

/* ── Center Panel ── */
.center-panel[b-jrrmsz63jx] {
    width: 30%;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    min-height: 0;
    position: relative;
}

.center-panel.center-full[b-jrrmsz63jx] {
    width: 100%;
    flex: 1;
}

/* ── Middle Panel (Edit Record inline) ── */
.middle-panel[b-jrrmsz63jx] {
    flex: 0 0 380px;
    max-width: 600px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
    border-right: 1px solid var(--ef-border);
}

/* Plan 186 - View / Edit inside the record panel toolbar. Segmented rather than two separate
   buttons so it reads as one control with one answer: the inactive half is plainly the other
   choice, not a disabled action. */
.rp-modes[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 26px;
    padding: 2px;
    box-sizing: border-box;
    background: var(--ef-surface-2);
    border-radius: var(--ef-radius-6);
}

.rp-mode[b-jrrmsz63jx] {
    height: 22px;
    padding: 0 10px;
    border: none;
    border-radius: var(--ef-radius-4);
    background: transparent;
    color: var(--ef-text-muted);
    font-family: inherit;
    font-size: var(--ef-text-12);
    font-weight: 500;
    cursor: pointer;
}

.rp-mode:hover[b-jrrmsz63jx] { color: var(--ef-text); }

.rp-mode-on[b-jrrmsz63jx] {
    background: var(--ef-surface);
    color: var(--ef-color-primary);
    font-weight: 600;
    box-shadow: var(--ef-shadow-1);
}

.rp-mode:focus-visible[b-jrrmsz63jx] {
    outline: 2px solid var(--ef-color-primary);
    outline-offset: 1px;
}

.middle-panel-header[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}

/* ── Scanning Report Panel Container ── */
.sr-panel-container[b-jrrmsz63jx] {
    flex: 1;
    min-width: 300px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-left: 1px solid var(--ef-border);
    background: #fff;
}

.sr-panel-container .sr-page[b-jrrmsz63jx] {
    height: 100%;
    overflow: auto;
}

/* ── Right Panel ── */
.right-panel[b-jrrmsz63jx] {
    flex: 1;
    min-width: 250px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--ef-surface);
}

/* ── Top Bar ── */
.top-bar[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}

/* -- Plan 186 Phase 5: the layout control ---------------------------------------------
   Icon-only and segmented: three layouts are a single choice, and labelling them costs more
   bar than the words are worth. Each carries its own accessible name. */
.lay-modes[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 30px;
    padding: 2px;
    box-sizing: border-box;
    background: var(--ef-surface-2);
    border-radius: var(--ef-radius-8);
    flex-shrink: 0;
}

.lay-mode[b-jrrmsz63jx] {
    width: 30px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--ef-radius-6);
    background: transparent;
    color: var(--ef-text-muted);
    cursor: pointer;
    padding: 0;
}

.lay-mode:hover[b-jrrmsz63jx] { color: var(--ef-text); }

.lay-mode-on[b-jrrmsz63jx] {
    background: var(--ef-surface);
    color: var(--ef-color-primary);
    box-shadow: var(--ef-shadow-1);
}

.lay-mode:focus-visible[b-jrrmsz63jx] {
    outline: 2px solid var(--ef-color-primary);
    outline-offset: 1px;
}

/* == Plan 186 Phase 4: the grid and the viewer, in shell v2 only =======================

   Everything here hangs off .workspace-v2 so the classic screen is untouched and the
   preference switch really does revert all of it.

   !important is load-bearing below, which is worth explaining rather than apologising for:
   the viewer toolbar sets its icon colours as INLINE style attributes on each button
   (style="color:#3b82f6", #f97316, #6366f1, #338c8f, #41bd95 ...), and an inline style beats
   any selector. The alternative is editing eight buttons in markup that classic also renders,
   which would change classic too. Overriding here keeps the fork where the plan says it goes. */

/* One icon language: colour stops being decoration, so it can mean something. */
.workspace-v2[b-jrrmsz63jx]  .vt-btn {
    color: var(--ef-text-muted) !important;
}

/* Colour is now reserved for these two: the thing that is ON, and the thing under the cursor. */
.workspace-v2[b-jrrmsz63jx]  .vt-btn:hover,
.workspace-v2[b-jrrmsz63jx]  .vt-btn.vt-active {
    color: var(--ef-color-primary) !important;
}

/* Record navigation keeps its accent: prev/next are the primary actions in that bar, not
   decoration, and flattening them too would leave nothing to aim for. */
.workspace-v2[b-jrrmsz63jx]  .vt-btn.vt-nav {
    color: var(--ef-color-primary) !important;
}

/* -- the grid -- */
.workspace-v2[b-jrrmsz63jx]  .schema-table thead th {
    font-size: var(--ef-text-11);
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--ef-text-muted);
    background: var(--ef-bg);
}

.workspace-v2[b-jrrmsz63jx]  thead .sticky-col {
    background: var(--ef-bg);
}

/* The selected row gets an edge rather than only a fill, so it stays findable after
   scrolling and survives the row also being checked or deleted-styled. */
.workspace-v2[b-jrrmsz63jx]  .schema-table tbody tr.selected > td:first-child {
    box-shadow: inset 3px 0 0 var(--ef-color-primary);
}

/* -- density -- */
.workspace-v2.ws-compact[b-jrrmsz63jx]  .schema-table tbody td {
    padding-top: 3px;
    padding-bottom: 3px;
}

/* -- Plan 186 Phase 3: filter chips ---------------------------------------------------
   Tinted rather than white so the row reads as state, not as another toolbar of buttons. */
.chip-row[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--ef-space-4) 6px;
    padding: 6px var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-bg);
    flex-shrink: 0;
}

.chip[b-jrrmsz63jx] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 24px;
    padding: 0 3px 0 9px;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-12);
    background: var(--ef-surface);
    font-size: var(--ef-text-12);
    color: var(--ef-text);
    max-width: 340px;
}

.chip-field[b-jrrmsz63jx] { color: var(--ef-text-muted); white-space: nowrap; }
.chip-op[b-jrrmsz63jx]    { color: var(--ef-text-muted); white-space: nowrap; }

.chip-val[b-jrrmsz63jx] {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chip-x[b-jrrmsz63jx] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--ef-text-muted);
    cursor: pointer;
}

.chip-x:hover[b-jrrmsz63jx] { background: var(--ef-surface-2); color: var(--ef-text); }
.chip-x:focus-visible[b-jrrmsz63jx] { outline: 2px solid var(--ef-color-primary); outline-offset: 1px; }

.chip-clear[b-jrrmsz63jx] {
    height: 24px;
    padding: 0 9px;
    border: none;
    border-radius: var(--ef-radius-12);
    background: transparent;
    color: var(--ef-text-muted);
    font-family: inherit;
    font-size: var(--ef-text-12);
    font-weight: 500;
    cursor: pointer;
}

.chip-clear:hover[b-jrrmsz63jx] { background: var(--ef-surface-2); color: var(--ef-text); }

/* -- Plan 186 Phase 3: the field pane, two-up and uncapped ----------------------------
   Same markup as the classic pane - only the container changes. .adv-row is capped at
   540px there, which on a full-width panel means scrolling a narrow strip past two-thirds
   of empty row. Grid instead, and the cap lifted. */
.adv-fields-v2[b-jrrmsz63jx] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px var(--ef-space-16);
    align-content: start;
}

.adv-fields-v2 .adv-row[b-jrrmsz63jx],
.adv-fields-v2 .dyn-row[b-jrrmsz63jx] {
    max-width: none;
}

/* A between-operator row carries two inputs stacked, so it needs the full width to stay
   readable rather than being squeezed into half of one. */
.adv-fields-v2 .adv-row-between[b-jrrmsz63jx] {
    grid-column: 1 / -1;
}

/* -- Plan 186: the command bar (shell v2) ---------------------------------------------
   One bar, three zones: identity, the search control, actions. It is taller than the classic
   top bar (44px against 36) because it replaces TWO bands, not one - the top bar and the
   search-mode tabs below it. */
.cmd-bar[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}

.cmd-cab[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-4);
    min-width: 0;
    max-width: 220px;
    flex-shrink: 0;
}

.cmd-cab-name[b-jrrmsz63jx] {
    font-size: var(--ef-text-13);
    font-weight: 600;
    color: var(--ef-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* The search control is one object - modes, box and button share a border and a background,
   so the modes read as belonging to the box rather than as three more toolbar buttons. */
.cmd-search[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 640px;
    height: 34px;
    padding: 3px;
    box-sizing: border-box;
    background: var(--ef-bg);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
}

.cmd-search:focus-within[b-jrrmsz63jx] {
    border-color: var(--ef-color-primary);
    box-shadow: 0 0 0 3px var(--ef-color-primary-bg);
}

.cmd-modes[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}

.cmd-mode[b-jrrmsz63jx] {
    height: 26px;
    padding: 0 9px;
    border: none;
    border-radius: var(--ef-radius-6);
    background: transparent;
    color: var(--ef-text-muted);
    font-family: inherit;
    font-size: var(--ef-text-12);
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
}

.cmd-mode:hover[b-jrrmsz63jx] { color: var(--ef-text); }

.cmd-mode-on[b-jrrmsz63jx] {
    background: var(--ef-surface);
    color: var(--ef-color-primary);
    font-weight: 600;
    box-shadow: var(--ef-shadow-1);
}

.cmd-mode:focus-visible[b-jrrmsz63jx] {
    outline: 2px solid var(--ef-color-primary);
    outline-offset: 1px;
}

.cmd-input[b-jrrmsz63jx] {
    flex: 1 1 auto;
    min-width: 0;
    height: 26px;
    margin: 0 var(--ef-space-4) 0 var(--ef-space-8);
    border: none;
    background: transparent;
    font-family: inherit;
    font-size: var(--ef-text-13);
    color: var(--ef-text);
    outline: none;
}

.cmd-go[b-jrrmsz63jx] {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--ef-radius-6);
    background: var(--ef-color-primary);
    color: #fff;
    cursor: pointer;
}

.cmd-go:hover[b-jrrmsz63jx] { background: var(--ef-color-primary-hover); }

.cmd-filters[b-jrrmsz63jx] {
    display: inline-flex;
    align-items: center;
    gap: var(--ef-space-4);
    flex-shrink: 0;
}

/* How many filters are set, without opening the pane to find out. */
.cmd-count[b-jrrmsz63jx] {
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ef-radius-10);
    background: var(--ef-color-primary);
    color: #fff;
    font-size: var(--ef-text-11);
    font-weight: 700;
}

/* ── Inline Breadcrumb (inside top bar) ── */
.inline-breadcrumb[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-4);
    font-size: var(--ef-text-12);
    flex-shrink: 0;
}
.inline-breadcrumb a[b-jrrmsz63jx] {
    color: var(--ef-text-muted);
    text-decoration: none;
}
.inline-breadcrumb a:hover[b-jrrmsz63jx] {
    color: var(--ef-color-primary);
    text-decoration: underline;
}
.inline-breadcrumb .bc-sep[b-jrrmsz63jx] {
    color: var(--ef-text-muted);
    opacity: .4;
}
.inline-breadcrumb .bc-current[b-jrrmsz63jx] {
    color: var(--ef-text);
    font-weight: 600;
}

/* ── Options dropdown ── */
.options-wrap[b-jrrmsz63jx] {
    position: relative;
}

.options-btn[b-jrrmsz63jx] {
    width: 28px;
    height: 34px;
    padding: 0;
}

.options-menu[b-jrrmsz63jx] {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: var(--ef-space-4);
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    box-shadow: var(--ef-shadow-2);
    padding: var(--ef-space-4) 0;
    z-index: 20;
    white-space: nowrap;
}

.options-item[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-8) var(--ef-space-12);
    font-size: var(--ef-text-13);
    cursor: pointer;
    color: var(--ef-text);
    transition: background 100ms;
}

.options-item:hover[b-jrrmsz63jx] {
    background: var(--ef-surface-2);
}

.options-item-btn[b-jrrmsz63jx] {
    width: 100%;
    background: none;
    border: none;
    text-align: left;
}

/* ── Split View / Splitter toggle ── */
.split-view-btn[b-jrrmsz63jx] {
    flex-shrink: 0;
    gap: var(--ef-space-4);
}

.splitter-toggle[b-jrrmsz63jx] {
    width: 28px;
    height: 34px;
    padding: 0;
    flex-shrink: 0;
}

.quick-search[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    flex: 1;
    max-width: 340px;
    gap: 0;
}

.quick-search .fi[b-jrrmsz63jx] {
    border-radius: var(--ef-radius-4) 0 0 var(--ef-radius-4);
    border-right: none;
}

.search-icon-btn[b-jrrmsz63jx] {
    border-radius: 0 var(--ef-radius-4) var(--ef-radius-4) 0;
    height: 34px;
    width: 36px;
    padding: 0;
}

/* Prominent Show/Hide Search toggle in the top bar — shown when AutoCollapseSearch is on */
.toggle-search-btn[b-jrrmsz63jx] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    font-weight: 600;
    flex-shrink: 0;
}

.add-record-btn[b-jrrmsz63jx] {
    margin-left: auto;
}

/* ── Search Controls ── */
.search-controls[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}

.adv-toggle[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--ef-text-13);
    cursor: pointer;
    margin-left: 12px;
    color: var(--ef-text);
}

/* ── Search-mode tabs (Quick Search / Advanced Search) ── *
   Inline tab pair that replaces the old "Advanced Search" checkbox in the
   search-controls strip. Same visual idiom as the page-level .tabs (active
   gets a primary-colored bottom border) but sized to fit alongside the
   Search / Clear buttons. */
.search-mode-tabs[b-jrrmsz63jx] {
    display: inline-flex;
    align-items: stretch;
    gap: 4px;
    margin-left: 12px;
    height: 28px;
}

.search-mode-tab[b-jrrmsz63jx] {
    display: inline-flex;
    align-items: center;
    padding: 0 10px;
    font-size: var(--ef-text-12);
    font-weight: 600;
    color: var(--ef-text-muted);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    transition: color 150ms, border-color 150ms;
    white-space: nowrap;
}

.search-mode-tab:hover[b-jrrmsz63jx] {
    color: var(--ef-text);
}

.search-mode-tab.active[b-jrrmsz63jx] {
    color: var(--ef-color-primary);
    border-bottom-color: var(--ef-color-primary);
}

.search-mode-tab:focus-visible[b-jrrmsz63jx] {
    outline: 2px solid var(--ef-color-focus);
    outline-offset: 2px;
}

/* ── Advanced Search Fields ── */
.adv-fields[b-jrrmsz63jx] {
    padding: 4px 12px;
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.adv-row[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 0;
    max-width: 540px;
}

.adv-row-between[b-jrrmsz63jx] {
    align-items: flex-start;
}

.adv-label[b-jrrmsz63jx] {
    width: 150px;
    flex-shrink: 0;
    font-size: var(--ef-text-13);
    color: var(--ef-text);
    padding: 5px 8px;
    background: var(--ef-surface-2);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adv-value[b-jrrmsz63jx] {
    flex: 1;
    min-width: 0;
}

/* v7.101 — wrap around combobox <input> + inline × clear button so the user
   can blank out a lookup field without backspacing through the value (the
   onblur restore-on-empty otherwise snaps the value back, by design). */
.adv-value-wrap[b-jrrmsz63jx] {
    position: relative;
    flex: 1;
    min-width: 0;
    display: flex;
}

.adv-value-wrap .adv-value[b-jrrmsz63jx],
.adv-value-wrap .dyn-value-area[b-jrrmsz63jx] {
    flex: 1;
    min-width: 0;
}

.adv-value-has-clear[b-jrrmsz63jx] {
    padding-right: 24px !important;
}

.adv-clear-btn[b-jrrmsz63jx] {
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: var(--ef-text-muted);
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
    border-radius: 3px;
}

.adv-clear-btn:hover[b-jrrmsz63jx] {
    color: var(--ef-text);
    background: var(--ef-surface-2, rgba(0,0,0,0.06));
}

.adv-op[b-jrrmsz63jx] {
    width: 120px;
    flex-shrink: 0;
}

/* Disabled state for isnull/isnotnull operators */
.adv-disabled[b-jrrmsz63jx] {
    opacity: 0.5;
    background: var(--ef-surface-2) !important;
    cursor: not-allowed;
}

/* Between: From/To stacked inputs */
.adv-between[b-jrrmsz63jx] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.adv-between-row[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.adv-between-label[b-jrrmsz63jx] {
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    font-style: italic;
    width: 30px;
    flex-shrink: 0;
}

.adv-between-input[b-jrrmsz63jx] {
    flex: 1;
    min-width: 0;
}

/* ── Dynamic Search Row (Advanced Mode) ── */
.dyn-row[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 5px;
}

.dyn-remove[b-jrrmsz63jx] {
    width: 28px;
    height: 28px;
    padding: 0;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dyn-field[b-jrrmsz63jx] {
    width: 160px;
    flex-shrink: 0;
}

.dyn-value-area[b-jrrmsz63jx] {
    flex: 1;
    min-width: 0;
}

.dyn-op[b-jrrmsz63jx] {
    width: 120px;
    flex-shrink: 0;
}

.dyn-andor[b-jrrmsz63jx] {
    width: 65px;
    flex-shrink: 0;
}

.saved-search-select[b-jrrmsz63jx] {
    width: 180px;
}

/* ── Grid Toolbar ── */
.grid-toolbar[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
}

.toolbar-counter[b-jrrmsz63jx] {
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    font-weight: 500;
}

.show-all-toggle[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    cursor: pointer;
}

/* ── Grid Area ── */
.grid-area[b-jrrmsz63jx] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
}

.grid-scroll[b-jrrmsz63jx] {
    flex: 1;
    min-height: 0;
    overflow-x: auto;
    overflow-y: scroll;
    background: var(--ef-surface);
    position: relative;
}

/* ── Table overrides (schema-table base is in components.css) ── */
[b-jrrmsz63jx] .schema-table thead {
    position: sticky;
    top: 0;
    z-index: 4;
}

/* ── Sticky left columns (checkbox, icon, action) ── */
[b-jrrmsz63jx] .sticky-col {
    position: sticky;
    background: inherit;
    z-index: 1;
}

[b-jrrmsz63jx] thead .sticky-col {
    z-index: 5;
    background: var(--ef-surface);
}

[b-jrrmsz63jx] tbody tr .sticky-col {
    background: var(--ef-surface);
}

[b-jrrmsz63jx] tbody tr:nth-child(even) .sticky-col {
    background: var(--ef-surface);
}

[b-jrrmsz63jx] tbody tr.selected .sticky-col {
    background: var(--ef-selected-bg);
}

[b-jrrmsz63jx] tbody tr:hover .sticky-col {
    background: var(--ef-surface-2);
}

[b-jrrmsz63jx] .sticky-col-1 {
    left: 0;
    width: 32px;
    min-width: 32px;
}

[b-jrrmsz63jx] .schema-table th {
    white-space: nowrap;
    border-bottom-width: 2px;
    border-bottom-color: var(--ef-border-strong, var(--ef-border));
}

[b-jrrmsz63jx] .schema-table tbody tr {
    cursor: pointer;
    transition: background 0.1s;
    background: var(--ef-surface);
}

[b-jrrmsz63jx] .schema-table tbody tr:hover {
    background: var(--ef-surface-hover);
}

[b-jrrmsz63jx] .schema-table tbody tr:nth-child(even) {
    background: var(--ef-row-stripe);
}

[b-jrrmsz63jx] .schema-table tbody tr.selected,
[b-jrrmsz63jx] .schema-table tbody tr.selected:nth-child(even) {
    background: var(--ef-selected-bg);
    box-shadow: inset 3px 0 0 var(--ef-selected-border, var(--ef-color-primary));
}

[b-jrrmsz63jx] .schema-table tr.selected td {
    color: var(--ef-color-primary);
}

/* ── Merge result (v7.699) ──
   The record the last merge merged INTO, so it can be picked out of the results that come back.
   Green rather than the selection's amber, because it answers a different question: .selected is
   "what is in the viewer right now" and moves the moment you click another row, while this has to
   stay put until the next search. Immediately after a merge the row is both, which is why these
   rules sit AFTER the .selected block — same specificity, later in source, so the merge marker
   wins on the one row where they collide. */
[b-jrrmsz63jx] .schema-table tbody tr.merged-row,
[b-jrrmsz63jx] .schema-table tbody tr.merged-row:nth-child(even) {
    background: var(--ef-green-bg);
    box-shadow: inset 3px 0 0 var(--ef-green);
}

[b-jrrmsz63jx] .schema-table tbody tr.merged-row:hover {
    background: var(--ef-green-bg);
}

[b-jrrmsz63jx] tbody tr.merged-row .sticky-col {
    background: var(--ef-green-bg);
}

/* ── Grid Footer ── */
.grid-footer[b-jrrmsz63jx] {
    padding: var(--ef-space-8) var(--ef-space-12);
    border-top: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}

.page-size-select[b-jrrmsz63jx] {
    width: 60px;
    padding: 2px 4px;
    font-size: var(--ef-text-12);
}

/* ── Pager ── */
.pager[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.pager-info[b-jrrmsz63jx] {
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    margin-left: 4px;
}

/* ── Action Dropdown ── */
.action-dropdown[b-jrrmsz63jx] {
    position: relative;
}

.action-btn[b-jrrmsz63jx] {
    white-space: nowrap;
    font-size: inherit;
    height: auto;
    padding: 4px 8px;
}

.action-menu[b-jrrmsz63jx] {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    box-shadow: var(--ef-shadow-3);
    z-index: 9999;
    min-width: 260px;
    padding: var(--ef-space-4) 0;
    white-space: nowrap;
}

/* Portal action menu — rendered outside grid to escape overflow:auto clipping */
.action-menu-portal[b-jrrmsz63jx] {
    position: fixed;
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    box-shadow: var(--ef-shadow-3);
    z-index: 9999;
    min-width: 260px;
    padding: var(--ef-space-4) 0;
    white-space: nowrap;
    max-height: 80vh;
    overflow-y: auto;
}

.action-menu-right[b-jrrmsz63jx] {
    right: 0;
    left: auto;
}


.action-menu-item[b-jrrmsz63jx] {
    padding: 7px 14px;
    font-size: var(--ef-text-13);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    color: var(--ef-text);
    white-space: nowrap;
}

.action-menu-item:hover[b-jrrmsz63jx] {
    background: var(--ef-surface-2);
}

/* ── Loading Overlay ── */
.loading-overlay[b-jrrmsz63jx] {
    position: absolute;
    inset: 0;
    background: var(--ef-loading-overlay, rgba(255, 255, 255, 0.7));
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
}

/* ── Viewer Toolbar Row 1 & 2 ── */
[b-jrrmsz63jx] .viewer-toolbar-1,
[b-jrrmsz63jx] .viewer-toolbar-2 {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 4px 8px;
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
}

[b-jrrmsz63jx] .vt-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: var(--ef-radius-4);
    background: transparent;
    color: var(--ef-text-muted);
    cursor: pointer;
    flex-shrink: 0;
    transition: all var(--ef-transition-fast);
    padding: 0;
}

[b-jrrmsz63jx] .vt-btn:hover {
    background: var(--ef-surface-alt);
    color: var(--ef-color-primary);
}

[b-jrrmsz63jx] .vt-btn.vt-active {
    background: var(--ef-primary-bg);
    color: var(--ef-color-primary);
}

[b-jrrmsz63jx] .vt-nav {
    color: var(--ef-color-primary);
}

[b-jrrmsz63jx] .vt-sep {
    width: 1px;
    height: 20px;
    background: var(--ef-border);
    margin: 0 4px;
    flex-shrink: 0;
}

[b-jrrmsz63jx] .vt-zoom {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--ef-text-12);
    color: var(--ef-text);
    font-weight: 500;
    cursor: pointer;
    padding: 4px 8px;
    border-radius: var(--ef-radius-4);
    flex-shrink: 0;
}

[b-jrrmsz63jx] .vt-zoom:hover {
    background: var(--ef-surface-alt);
}

[b-jrrmsz63jx] .vt-doc-select {
    width: 220px;
    flex-shrink: 0;
}

[b-jrrmsz63jx] .vt-tab {
    font-size: var(--ef-text-13);
    font-weight: 500;
    color: var(--ef-text-muted);
    cursor: pointer;
    padding: 4px 8px;
    border-radius: var(--ef-radius-4);
    transition: all var(--ef-transition-fast);
    flex-shrink: 0;
}

[b-jrrmsz63jx] .vt-tab:hover {
    color: var(--ef-text);
    background: var(--ef-surface-alt);
}

[b-jrrmsz63jx] .vt-tab-active {
    color: var(--ef-color-primary);
    font-weight: 600;
}

/* ── Related Documents drawer (Plan 096) ──
   Same docked shape as the Line Items panel: a sibling under the viewer inside #ws-right,
   so the viewport shrinks rather than being covered. Shorter than Line Items (35% vs 40%)
   because the document above stays the subject — this is a navigation strip, not a grid
   you work in. min-height keeps a few rows visible on short screens. */
.related-docs-panel[b-jrrmsz63jx] {
    flex-shrink: 0;
    height: 35%;
    min-height: 160px;
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--ef-border);
    overflow: hidden;
}

.related-docs-header[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-4);
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}

/* min-height:0 so the panel's own scroller works instead of the flex item growing. */
.related-docs-body[b-jrrmsz63jx] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* ── Line Items Panel ── */
.line-items-panel[b-jrrmsz63jx] {
    flex-shrink: 0;
    height: 40%;
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--ef-border);
    overflow: hidden;
}

.line-items-header[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-4);
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}

.line-items-grid[b-jrrmsz63jx] {
    flex: 1;
    overflow: auto;
}

.line-items-grid table[b-jrrmsz63jx] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--ef-text-12);
    table-layout: auto;
}

.line-items-grid thead th[b-jrrmsz63jx] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--ef-color-primary);
    color: #fff;
    font-weight: 600;
    padding: var(--ef-space-8) var(--ef-space-12);
    text-align: left;
    border-right: 1px solid rgba(255,255,255,0.15);
    white-space: nowrap;
}

.line-items-grid thead th:last-child[b-jrrmsz63jx] {
    border-right: none;
}

.line-items-grid tbody tr[b-jrrmsz63jx] {
    height: 40px;
}

.line-items-grid tbody td[b-jrrmsz63jx] {
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    border-right: 1px solid var(--ef-border);
}

.line-items-grid tbody td:last-child[b-jrrmsz63jx] {
    border-right: none;
}

.line-items-grid tbody tr:nth-child(even)[b-jrrmsz63jx] {
    background: var(--ef-surface-alt);
}

.line-items-grid tbody tr:hover[b-jrrmsz63jx] {
    background: var(--ef-surface-hover);
}

/* Status column — small color-coded SVG badges next to the action button. */
.status-cell[b-jrrmsz63jx] {
    white-space: nowrap;
    text-align: center;
    padding: 0 4px;
}

.status-ico[b-jrrmsz63jx] {
    width: 14px;
    height: 14px;
    vertical-align: middle;
    margin: 0 1px;
}

/* Editable cells: input fills the cell and inherits typography. */
.line-items-grid table.line-items-editable tbody td[b-jrrmsz63jx] {
    padding: 0;
}

.line-items-grid table.line-items-editable tbody td input[type="text"][b-jrrmsz63jx] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding: var(--ef-space-8) var(--ef-space-12);
    border: none;
    background: transparent;
    font: inherit;
    color: inherit;
    outline: none;
}

.line-items-grid table.line-items-editable tbody td input[type="text"]:focus[b-jrrmsz63jx] {
    background: var(--ef-surface);
    box-shadow: inset 0 0 0 2px var(--ef-primary);
}

/* ── Side-by-Side Viewer Overlay ── */
.sbs-overlay[b-jrrmsz63jx] {
    position: absolute;
    inset: 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    background: var(--ef-bg);
}

.sbs-topbar[b-jrrmsz63jx] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}

.sbs-split-iframe[b-jrrmsz63jx] {
    flex: 1;
    width: 100%;
    border: none;
}

/* ── Grid column drag-reorder + multi-sort rank indicator ── */

/* Highlight the <th> the cursor is over during a column drag. Left border makes it
   clear the dragged column will land BEFORE the hovered one. */
[b-jrrmsz63jx] .schema-table th.col-drag-over {
    box-shadow: inset 3px 0 0 var(--ef-color-primary);
    background: var(--ef-primary-bg, rgba(37,99,235,.08));
}

/* Slight visual cue that the header is draggable (shown during any grab). */
[b-jrrmsz63jx] .schema-table th.sortable-th[draggable="true"] {
    cursor: grab;
}

[b-jrrmsz63jx] .schema-table th.sortable-th[draggable="true"]:active {
    cursor: grabbing;
}

/* Rank badge next to the ▲/▼ arrow when multiple sorts are active. */
[b-jrrmsz63jx] .schema-table th .sort-rank {
    display: inline-block;
    margin-left: 4px;
    padding: 0 4px;
    font-size: 10px;
    font-weight: 700;
    line-height: 14px;
    color: var(--ef-color-primary);
    background: var(--ef-primary-bg, rgba(37,99,235,.12));
    border-radius: 8px;
    vertical-align: middle;
    min-width: 16px;
    text-align: center;
}

/* ── Viewer Empty State ── */
.viewer-empty[b-jrrmsz63jx] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--ef-text-muted);
    font-size: var(--ef-text-14);
    text-align: center;
    padding: var(--ef-space-24);
    background: var(--ef-surface-2);
}

/* ── Tab Validation modal ── */
.tv-overlay[b-jrrmsz63jx] {
    position: fixed; inset: 0; z-index: 1000;
    background: rgba(0,0,0,.45);
    display: flex; align-items: center; justify-content: center;
}
.tv-modal[b-jrrmsz63jx] {
    background: var(--ef-surface, #fff); color: var(--ef-text, #222);
    width: min(920px, 94vw); max-height: 88vh;
    border-radius: 8px; box-shadow: 0 10px 40px rgba(0,0,0,.35);
    display: flex; flex-direction: column; overflow: hidden;
}
.tv-header[b-jrrmsz63jx] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 16px; border-bottom: 1px solid var(--ef-border, #ddd);
    font-weight: 600; font-size: 15px;
}
.tv-close[b-jrrmsz63jx] { background: none; border: none; font-size: 22px; line-height: 1; cursor: pointer; color: var(--ef-text-muted, #777); }
.tv-body[b-jrrmsz63jx] { padding: 14px 16px; overflow: auto; }
.tv-empty[b-jrrmsz63jx] { padding: 28px 8px; text-align: center; color: var(--ef-text-muted, #777); }
.tv-summary[b-jrrmsz63jx] { font-size: 12.5px; color: var(--ef-text-muted, #555); margin-bottom: 12px; }
.tv-cards[b-jrrmsz63jx] { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.tv-card[b-jrrmsz63jx] {
    flex: 1 1 150px; text-align: center; padding: 12px;
    border: 1px solid var(--ef-border, #e2e2e2); border-radius: 6px; background: var(--ef-surface-2, #f8f9fb);
    font-size: 12.5px; color: var(--ef-text-muted, #555);
}
.tv-num[b-jrrmsz63jx] { font-size: 26px; font-weight: 700; line-height: 1.1; }
.tv-section[b-jrrmsz63jx] { margin-bottom: 18px; }
.tv-section-title[b-jrrmsz63jx] { font-weight: 600; font-size: 13.5px; margin-bottom: 6px; }
.tv-count[b-jrrmsz63jx] { color: var(--ef-text-muted, #777); font-weight: 400; }
.tv-none[b-jrrmsz63jx] { font-size: 12.5px; color: var(--ef-text-muted, #999); padding: 2px 0 4px; }
.tv-table[b-jrrmsz63jx] { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.tv-table th[b-jrrmsz63jx], .tv-table td[b-jrrmsz63jx] { text-align: left; padding: 4px 8px; border-bottom: 1px solid var(--ef-border, #eee); }
.tv-table th[b-jrrmsz63jx] { color: var(--ef-text-muted, #666); font-weight: 600; white-space: nowrap; }
.tv-footer[b-jrrmsz63jx] {
    display: flex; gap: 8px; justify-content: flex-end;
    padding: 10px 16px; border-top: 1px solid var(--ef-border, #ddd);
}
.tv-btn[b-jrrmsz63jx] {
    padding: 6px 14px; border: 1px solid var(--ef-border, #ccc); border-radius: 4px;
    background: var(--ef-surface-2, #f2f2f2); cursor: pointer; font-size: 13px;
}
.tv-btn:hover:not(:disabled)[b-jrrmsz63jx] { background: #e8e8e8; }
.tv-btn:disabled[b-jrrmsz63jx] { opacity: .5; cursor: default; }

/* v7.802 — version badge beside the DOC_ID: "v3" = the document has three versions; click opens them. */
.version-badge[b-jrrmsz63jx] {
    margin-left: var(--ef-space-4);
    padding: 0 6px;
    line-height: 16px;
    font-size: var(--ef-text-11);
    border: 0;
    cursor: pointer;
}
.version-badge:hover[b-jrrmsz63jx] { filter: brightness(0.92); }
.version-badge:focus-visible[b-jrrmsz63jx] { outline: 2px solid var(--ef-color-primary); outline-offset: 1px; }
/* /Components/Pages/Cabinet/OcrMonitor.razor.rz.scp.css */
.ocm-page[b-hkjdqmiemb] {
    width: 100%;
    height: 100vh;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: #f4f6f9;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    overflow: hidden;
}

/* Toolbar stays anchored at top — body fills remaining height. */
.ocm-toolbar[b-hkjdqmiemb] { flex-shrink: 0; }

/* Toolbar */
.ocm-toolbar[b-hkjdqmiemb] {
    background: #fff;
    border-bottom: 1px solid #ddd;
    padding: 8px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}
.ocm-back-btn[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    font-size: 13px;
    background: transparent;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
    color: #666;
}
.ocm-back-btn:hover[b-hkjdqmiemb] { background: #f0f0f0; }

.ocm-nav-right[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ocm-autorefresh-label[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #555;
    cursor: pointer;
}

.ocm-refresh-btn[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    font-size: 13px;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    cursor: pointer;
    color: #333;
}
.ocm-refresh-btn:hover[b-hkjdqmiemb] { background: #e9ecef; }

/* Body — flex column that fills space below the toolbar. The body itself does
   NOT scroll; cards / filters are anchored at the top, only the table body
   inside .ocm-table-wrap scrolls. The thead is sticky inside that scroll
   container so column headers stay visible while scrolling rows. */
.ocm-body[b-hkjdqmiemb] {
    max-width: 1400px;
    width: 100%;
    margin: 0 auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.ocm-header[b-hkjdqmiemb],
.ocm-cards[b-hkjdqmiemb],
.ocm-filters[b-hkjdqmiemb] {
    flex-shrink: 0;
}

/* Header */
.ocm-header[b-hkjdqmiemb] { margin-bottom: 4px; }

.ocm-title[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 20px;
    font-weight: 600;
    color: #333;
    margin: 0;
}

.ocm-cabinet-label[b-hkjdqmiemb] {
    color: #666;
    font-weight: 400;
}

/* Summary Cards */
.ocm-cards[b-hkjdqmiemb] {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.ocm-card[b-hkjdqmiemb] {
    flex: 1;
    min-width: 150px;
    background: #fff;
    border-radius: 6px;
    padding: 16px 20px;
    border: 1px solid #e0e0e0;
    display: flex;
    align-items: center;
    gap: 14px;
}

.ocm-card-icon[b-hkjdqmiemb] {
    width: 44px;
    height: 44px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ocm-card-value[b-hkjdqmiemb] {
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}

.ocm-card-label[b-hkjdqmiemb] {
    font-size: 12px;
    color: #888;
    margin-top: 2px;
}

.ocm-card-queued   .ocm-card-icon[b-hkjdqmiemb]  { background: #fff3cd; color: #856404; }
.ocm-card-queued   .ocm-card-value[b-hkjdqmiemb] { color: #856404; }

.ocm-card-progress .ocm-card-icon[b-hkjdqmiemb]  { background: #cce5ff; color: #004085; }
.ocm-card-progress .ocm-card-value[b-hkjdqmiemb] { color: #004085; }

.ocm-card-completed .ocm-card-icon[b-hkjdqmiemb]  { background: #d4edda; color: #155724; }
.ocm-card-completed .ocm-card-value[b-hkjdqmiemb] { color: #155724; }

.ocm-card-failed   .ocm-card-icon[b-hkjdqmiemb]  { background: #f8d7da; color: #721c24; }
.ocm-card-failed   .ocm-card-value[b-hkjdqmiemb] { color: #721c24; }

.ocm-card-total    .ocm-card-icon[b-hkjdqmiemb]  { background: #e2e3e5; color: #383d41; }
.ocm-card-total    .ocm-card-value[b-hkjdqmiemb] { color: #383d41; }

/* Filters */
.ocm-filters[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ocm-filter-label[b-hkjdqmiemb] {
    font-size: 13px;
    color: #555;
    margin: 0;
    white-space: nowrap;
}

.ocm-select[b-hkjdqmiemb] {
    height: 32px;
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 0 8px;
    min-width: 120px;
    background: #fff;
}

.ocm-search-wrap[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    margin-left: auto;
    gap: 0;
}

.ocm-search[b-hkjdqmiemb] {
    height: 32px;
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 4px 0 0 4px;
    padding: 0 8px;
    min-width: 220px;
    outline: none;
}

.ocm-search-btn[b-hkjdqmiemb] {
    height: 32px;
    padding: 0 10px;
    background: #fff;
    border: 1px solid #ccc;
    border-left: none;
    border-radius: 0 4px 4px 0;
    cursor: pointer;
    display: flex;
    align-items: center;
}
.ocm-search-btn:hover[b-hkjdqmiemb] { background: #e9ecef; }

/* Table */
.ocm-table-wrap[b-hkjdqmiemb] {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.ocm-table-scroll[b-hkjdqmiemb] {
    overflow-x: auto;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

.ocm-loading[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 40px;
    color: #999;
    font-size: 13px;
}

.ocm-table[b-hkjdqmiemb] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.ocm-table thead th[b-hkjdqmiemb] {
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    color: #495057;
    white-space: nowrap;
    /* Sticky inside .ocm-table-scroll so column headers stay visible as the
       user scrolls through rows. */
    position: sticky;
    top: 0;
    z-index: 2;
}

.ocm-table tbody tr[b-hkjdqmiemb] { border-bottom: 1px solid #eee; }
.ocm-table tbody tr:hover[b-hkjdqmiemb] { background: #f8f9fa; }

.ocm-table tbody td[b-hkjdqmiemb] {
    padding: 8px 12px;
    color: #333;
}

.ocm-empty[b-hkjdqmiemb] {
    text-align: center;
    padding: 40px !important;
    color: #999;
}

.ocm-date[b-hkjdqmiemb] {
    white-space: nowrap;
    font-size: 12px;
    color: #555;
}

.ocm-msg[b-hkjdqmiemb] {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Job ID cell — OCR_STATUS.ID; monospace, truncated, click to copy. */
.ocm-jobid[b-hkjdqmiemb] { max-width: 130px; }
.ocm-jobid-text[b-hkjdqmiemb] {
    display: inline-block;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
    font-family: var(--ef-font-mono, monospace);
    font-size: 11px;
    color: #004085;
    cursor: pointer;
}
.ocm-muted[b-hkjdqmiemb] { color: #999; }

/* Attempt marker beside the Doc ID. Muted on purpose: it is context, not an alert —
   repeat attempts are historical and v7.578 stops new ones being created. */
.ocm-attempts[b-hkjdqmiemb] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 5px;
    border-radius: 8px;
    background: #eef1f5;
    color: #667;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}

/* Page count — right-aligned with tabular figures so counts line up as digit columns
   and a 1,224-page document is visibly distinct from a 12-page one at a glance. */
.ocm-num[b-hkjdqmiemb] {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Status badges */
.ocm-badge[b-hkjdqmiemb] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.ocm-badge-queued[b-hkjdqmiemb]    { background: #fff3cd; color: #856404; }
.ocm-badge-progress[b-hkjdqmiemb]  { background: #cce5ff; color: #004085; }
.ocm-badge-completed[b-hkjdqmiemb] { background: #d4edda; color: #155724; }
.ocm-badge-failed[b-hkjdqmiemb]    { background: #f8d7da; color: #721c24; }
.ocm-badge-unknown[b-hkjdqmiemb]   { background: #e2e3e5; color: #383d41; }
.ocm-badge-stuck[b-hkjdqmiemb]     { background: #f8d7da; color: #721c24; margin-left: 4px; }
/* Waiting its turn behind a backlog — informational, deliberately not alarming like STUCK. */
.ocm-badge-waiting[b-hkjdqmiemb]   { background: #e2e3e5; color: #495057; margin-left: 4px; }
/* Completed, but the PDF got no searchable text layer. Amber: the OCR text IS saved and
   searchable, so this is a degraded success rather than a failure. */
.ocm-badge-notext[b-hkjdqmiemb]    { background: #fff3cd; color: #664d03; margin-left: 4px; }

/* Queue-state banner */
.ocm-pipeline[b-hkjdqmiemb] {
    margin: 0 0 10px;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.5;
    border: 1px solid transparent;
}
.ocm-pipeline-ok[b-hkjdqmiemb]   { background: #e7f3ff; color: #084298; border-color: #b6d4fe; }
.ocm-pipeline-warn[b-hkjdqmiemb] { background: #fff3cd; color: #664d03; border-color: #ffe69c; }

/* Retry button */
.ocm-btn-sm[b-hkjdqmiemb] {
    padding: 3px 10px;
    font-size: 12px;
    border-radius: 4px;
    border: 1px solid #ccc;
    background: #fff;
    cursor: pointer;
    color: #333;
    white-space: nowrap;
}
.ocm-btn-sm:hover[b-hkjdqmiemb] { background: #e9ecef; }
.ocm-btn-sm.ocm-btn-warn[b-hkjdqmiemb] { background: #fff3cd; border-color: #ffc107; color: #856404; }
.ocm-btn-sm.ocm-btn-warn:hover[b-hkjdqmiemb] { filter: brightness(0.95); }
.ocm-btn-sm.ocm-btn-trigger[b-hkjdqmiemb] { background: #cce5ff; border-color: #99caff; color: #004085; }
.ocm-btn-sm.ocm-btn-trigger:hover[b-hkjdqmiemb] { filter: brightness(0.95); }

.ocm-actions[b-hkjdqmiemb] { white-space: nowrap; }

/* Pagination — anchored at bottom of .ocm-table-wrap. */
.ocm-pagination[b-hkjdqmiemb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-top: 1px solid #eee;
    background: #f8f9fa;
    font-size: 13px;
    color: #555;
    flex-wrap: wrap;
    gap: 8px;
    flex-shrink: 0;
}

.ocm-page-info[b-hkjdqmiemb] { font-size: 13px; color: #555; }
.ocm-page-size-wrap[b-hkjdqmiemb] { display: flex; align-items: center; }

.ocm-page-size[b-hkjdqmiemb] {
    height: 30px;
    font-size: 13px;
    padding: 0 24px 0 8px;
    min-width: 110px;
}

.ocm-page-buttons[b-hkjdqmiemb] { display: flex; gap: 4px; }

.ocm-pg-btn[b-hkjdqmiemb] {
    min-width: 32px;
    height: 32px;
    border: 1px solid #ccc;
    background: #fff;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    padding: 0 6px;
}

.ocm-pg-btn:hover:not(:disabled)[b-hkjdqmiemb] { background: #e9ecef; }
.ocm-pg-btn:disabled[b-hkjdqmiemb] { opacity: 0.5; cursor: default; }
.ocm-pg-active[b-hkjdqmiemb] { background: #3680bf !important; border-color: #3680bf !important; color: #fff !important; font-weight: 600; }

@keyframes spin-b-hkjdqmiemb { to { transform: rotate(360deg); } }
.spin[b-hkjdqmiemb] { animation: spin-b-hkjdqmiemb 0.8s linear infinite; }
/* /Components/Pages/Cabinet/OcrTextSearch.razor.rz.scp.css */
.ots-page[b-bpfl92hrdm] {
    width: 100%;
    min-height: 100vh;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: #f4f6f9;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

/* Navbar */
.ots-navbar[b-bpfl92hrdm] {
    background: #fff;
    border-bottom: 1px solid #ddd;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.ots-brand[b-bpfl92hrdm] {
    font-size: 15px;
    font-weight: 600;
    color: #333;
}

/* Body */
.ots-body[b-bpfl92hrdm] {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
}

/* Header */
.ots-header[b-bpfl92hrdm] { margin-bottom: 4px; }

.ots-title[b-bpfl92hrdm] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 20px;
    font-weight: 600;
    color: #333;
    margin: 0 0 4px 0;
}

.ots-subtitle[b-bpfl92hrdm] {
    margin: 0;
    font-size: 13px;
    color: #777;
}

/* Search area */
.ots-search-area[b-bpfl92hrdm] {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ots-search-row[b-bpfl92hrdm] {
    display: flex;
    gap: 0;
}

.ots-search-input[b-bpfl92hrdm] {
    flex: 1;
    height: 38px;
    font-size: 14px;
    border: 1px solid #ccc;
    border-right: none;
    border-radius: 4px 0 0 4px;
    padding: 0 12px;
    outline: none;
    transition: border-color 0.15s;
}

.ots-search-input:focus[b-bpfl92hrdm] { border-color: #3680bf; }

.ots-search-btn[b-bpfl92hrdm] {
    height: 38px;
    padding: 0 18px;
    background: #3680bf;
    color: #fff;
    border: 1px solid #3680bf;
    border-radius: 0 4px 4px 0;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background 0.15s;
}

.ots-search-btn:hover:not(:disabled)[b-bpfl92hrdm] { background: #2a6aa8; }
.ots-search-btn:disabled[b-bpfl92hrdm] { opacity: 0.6; cursor: default; }

.ots-filters-row[b-bpfl92hrdm] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ots-filter-label[b-bpfl92hrdm] {
    font-size: 13px;
    color: #555;
    white-space: nowrap;
}

.ots-select[b-bpfl92hrdm] {
    height: 32px;
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 0 8px;
    min-width: 140px;
    background: #fff;
}

.ots-error[b-bpfl92hrdm] {
    font-size: 13px;
    color: #dc3545;
    margin-left: 8px;
}

/* Empty state */
.ots-empty-state[b-bpfl92hrdm] {
    text-align: center;
    padding: 50px 20px;
    color: #999;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.ots-empty-state p[b-bpfl92hrdm] { margin: 0; font-size: 14px; }

.ots-hint[b-bpfl92hrdm] { font-size: 12px !important; color: #bbb !important; }

/* Results info bar */
.ots-results-info[b-bpfl92hrdm] {
    font-size: 13px;
    color: #555;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ots-fts-badge[b-bpfl92hrdm] {
    font-size: 11px;
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffc107;
    border-radius: 10px;
    padding: 2px 8px;
    white-space: nowrap;
}

/* Table */
.ots-table-wrap[b-bpfl92hrdm] {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    overflow: visible;
}

.ots-table-scroll[b-bpfl92hrdm] { overflow-x: auto; }

.ots-loading[b-bpfl92hrdm], .ots-empty[b-bpfl92hrdm] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 40px;
    color: #999;
    font-size: 13px;
}

.ots-table[b-bpfl92hrdm] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.ots-table thead th[b-bpfl92hrdm] {
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    color: #495057;
    white-space: nowrap;
}

.ots-table tbody tr[b-bpfl92hrdm] { border-bottom: 1px solid #eee; }
.ots-table tbody tr:hover[b-bpfl92hrdm] { background: #f8f9fa; }

.ots-table tbody td[b-bpfl92hrdm] { padding: 8px 12px; color: #333; vertical-align: top; }

.ots-docid[b-bpfl92hrdm]  { font-family: monospace; font-size: 12px; white-space: nowrap; }
.ots-pages[b-bpfl92hrdm]  { text-align: right; white-space: nowrap; color: #555; }
.ots-date[b-bpfl92hrdm]   { white-space: nowrap; font-size: 12px; color: #555; }

.ots-snippet[b-bpfl92hrdm] {
    font-size: 12px;
    color: #555;
    max-width: 480px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Pagination */
.ots-pagination[b-bpfl92hrdm] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-top: 1px solid #eee;
    background: #f8f9fa;
    font-size: 13px;
    color: #555;
    flex-wrap: wrap;
    gap: 8px;
}

.ots-page-size-wrap[b-bpfl92hrdm] { display: flex; align-items: center; }

.ots-page-size[b-bpfl92hrdm] {
    height: 30px;
    font-size: 13px;
    padding: 0 24px 0 8px;
    min-width: 110px;
}

.ots-page-buttons[b-bpfl92hrdm] { display: flex; gap: 4px; }

.ots-pg-btn[b-bpfl92hrdm] {
    min-width: 32px;
    height: 32px;
    border: 1px solid #ccc;
    background: #fff;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    padding: 0 6px;
}

.ots-pg-btn:hover[b-bpfl92hrdm] { background: #e9ecef; }
.ots-pg-btn:disabled[b-bpfl92hrdm] { opacity: 0.5; cursor: default; }
.ots-pg-btn.ots-pg-active[b-bpfl92hrdm] { background: #3680bf; color: #fff; border-color: #3680bf; }

.ots-page-info[b-bpfl92hrdm] { font-size: 13px; color: #555; }

@keyframes spin-b-bpfl92hrdm {
    to { transform: rotate(360deg); }
}
.spin[b-bpfl92hrdm] { animation: spin-b-bpfl92hrdm 0.8s linear infinite; }
/* /Components/Pages/Cabinet/PipelineMonitor.razor.rz.scp.css */
.aim-page[b-9ec9iycngv] {
    width: 100%;
    height: 100%;
    overflow-y: auto;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: var(--ef-bg);
    font-family: var(--ef-font);
}

/* ── Toolbar ─────────────────────────────────────────────────────────────── */
.aim-toolbar[b-9ec9iycngv] {
    background: var(--ef-surface);
    border-bottom: 1px solid var(--ef-border);
    padding: 6px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}
.aim-back-btn[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    font-size: 13px;
    background: transparent;
    border: 1px solid var(--ef-border);
    border-radius: 4px;
    cursor: pointer;
    color: var(--ef-text-muted);
}
.aim-back-btn:hover[b-9ec9iycngv] { background: var(--ef-hover); }

.aim-nav-right[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.aim-autorefresh-label[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    cursor: pointer;
}

.aim-refresh-btn[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    font-size: var(--ef-text-13);
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    cursor: pointer;
    color: var(--ef-text);
}
.aim-refresh-btn:hover[b-9ec9iycngv] { background: var(--ef-surface-2); }

/* ── Tab bar ─────────────────────────────────────────────────────────────── */
.aim-tabbar[b-9ec9iycngv] {
    display: flex;
    align-items: flex-end;
    gap: 0;
    background: var(--ef-surface);
    border-bottom: 1px solid var(--ef-border);
    padding: 0 16px;
    flex-shrink: 0;
}

.aim-tab-btn[b-9ec9iycngv] {
    appearance: none;
    -webkit-appearance: none;
    padding: 10px 22px;
    font-size: var(--ef-text-13);
    font-weight: 500;
    color: var(--ef-text-muted);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    cursor: pointer;
    transition: color var(--ef-transition-base), border-color var(--ef-transition-base);
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: -1px;
    font-family: inherit;
    line-height: 1;
}
.aim-tab-btn:hover[b-9ec9iycngv] { color: var(--ef-text); background: transparent; }
.aim-tab-btn:focus[b-9ec9iycngv],
.aim-tab-btn:focus-visible[b-9ec9iycngv] { outline: none; box-shadow: none; }
.aim-tab-btn.active[b-9ec9iycngv] {
    color: var(--ef-color-primary);
    border-bottom: 2px solid var(--ef-color-primary);
    font-weight: 600;
    background: transparent;
}

/* ── Body ────────────────────────────────────────────────────────────────── */
.aim-body[b-9ec9iycngv] {
    width: 100%;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
}

/* ── Header ──────────────────────────────────────────────────────────────── */
.aim-header[b-9ec9iycngv] { margin-bottom: 4px; }
.aim-title[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--ef-text-20);
    font-weight: 600;
    color: var(--ef-text);
    margin: 0;
}
.aim-cabinet-label[b-9ec9iycngv] { color: var(--ef-text-muted); font-weight: 400; }

/* ── KPI Cards ───────────────────────────────────────────────────────────── */
.aim-cards[b-9ec9iycngv] {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.aim-card[b-9ec9iycngv] {
    flex: 1;
    min-width: 150px;
    background: var(--ef-surface);
    border-radius: var(--ef-radius-6);
    padding: 16px 20px;
    border: 1px solid var(--ef-border);
    display: flex;
    align-items: center;
    gap: 14px;
}

.aim-card-icon[b-9ec9iycngv] {
    width: 44px;
    height: 44px;
    border-radius: var(--ef-radius-8);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.aim-card-info[b-9ec9iycngv] { display: flex; flex-direction: column; min-width: 0; }
.aim-card-value[b-9ec9iycngv] { font-size: var(--ef-text-24); font-weight: 700; line-height: 1; }
.aim-card-label[b-9ec9iycngv] { font-size: var(--ef-text-12); color: var(--ef-text-muted); margin-top: 2px; }

.aim-card-queued    .aim-card-icon[b-9ec9iycngv]  { background: var(--ef-yellow-bg); color: var(--ef-yellow); }
.aim-card-queued    .aim-card-value[b-9ec9iycngv] { color: var(--ef-yellow-text); }
.aim-card-progress  .aim-card-icon[b-9ec9iycngv]  { background: var(--ef-blue-bg); color: var(--ef-blue); }
.aim-card-progress  .aim-card-value[b-9ec9iycngv] { color: var(--ef-blue-text); }
.aim-card-completed .aim-card-icon[b-9ec9iycngv]  { background: var(--ef-green-bg); color: var(--ef-green); }
.aim-card-completed .aim-card-value[b-9ec9iycngv] { color: var(--ef-green-text); }
.aim-card-failed    .aim-card-icon[b-9ec9iycngv]  { background: var(--ef-red-bg); color: var(--ef-red); }
.aim-card-failed    .aim-card-value[b-9ec9iycngv] { color: var(--ef-red-text); }
.aim-card-total     .aim-card-icon[b-9ec9iycngv]  { background: var(--ef-surface-2); color: var(--ef-text-muted); }
.aim-card-total     .aim-card-value[b-9ec9iycngv] { color: var(--ef-text-muted); }
.aim-card-avgtime   .aim-card-icon[b-9ec9iycngv]  { background: var(--ef-blue-bg); color: var(--ef-blue); }
.aim-card-avgtime   .aim-card-value[b-9ec9iycngv] { color: var(--ef-blue-text); }
.aim-card-successrate .aim-card-icon[b-9ec9iycngv]  { background: var(--ef-green-bg); color: var(--ef-green); }
.aim-card-successrate .aim-card-value[b-9ec9iycngv] { color: var(--ef-green-text); }
.aim-card-tokens    .aim-card-icon[b-9ec9iycngv]  { background: rgba(124,58,237,0.1); color: #7c3aed; }
.aim-card-tokens    .aim-card-value[b-9ec9iycngv] { color: #7c3aed; }
.aim-card-vectors   .aim-card-icon[b-9ec9iycngv]  { background: rgba(8,145,178,0.1); color: #0891b2; }
.aim-card-vectors   .aim-card-value[b-9ec9iycngv] { color: #0891b2; }
.aim-card-model     .aim-card-icon[b-9ec9iycngv]  { background: rgba(79,70,229,0.1); color: #4f46e5; }
.aim-card-model     .aim-card-value[b-9ec9iycngv] { color: #4f46e5; }

.aim-card-value-sm[b-9ec9iycngv] {
    font-size: var(--ef-text-11) !important;
    font-weight: 600;
    letter-spacing: 0;
    word-break: break-all;
    line-height: 1.3;
}

/* ── Filters ─────────────────────────────────────────────────────────────── */
.aim-filters[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.aim-filter-label[b-9ec9iycngv] {
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    margin: 0;
    white-space: nowrap;
}
.aim-select[b-9ec9iycngv] {
    height: 32px;
    font-size: var(--ef-text-13);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    padding: 0 8px;
    min-width: 120px;
    background: var(--ef-input-bg);
    color: var(--ef-text);
}

.aim-search-wrap[b-9ec9iycngv] { display: flex; align-items: center; margin-left: auto; gap: 0; }
.aim-search[b-9ec9iycngv] {
    height: 32px;
    font-size: var(--ef-text-13);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4) 0 0 var(--ef-radius-4);
    padding: 0 8px;
    min-width: 220px;
    outline: none;
    background: var(--ef-input-bg);
    color: var(--ef-text);
}
.aim-search-btn[b-9ec9iycngv] {
    height: 32px;
    padding: 0 10px;
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-left: none;
    border-radius: 0 var(--ef-radius-4) var(--ef-radius-4) 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    color: var(--ef-text-muted);
}
.aim-search-btn:hover[b-9ec9iycngv] { background: var(--ef-surface-2); }

/* ── Panels ──────────────────────────────────────────────────────────────── */
.aim-panels[b-9ec9iycngv] { display: flex; gap: 16px; align-items: flex-start; }
.aim-panel[b-9ec9iycngv] {
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.aim-panel-breakdown[b-9ec9iycngv] { flex: 3; min-width: 0; }
.aim-panel-throughput[b-9ec9iycngv] { flex: 2; min-width: 280px; }

.aim-panel-hdr[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 10px 14px;
    background: var(--ef-surface-2);
    border-bottom: 1px solid var(--ef-border);
    font-size: var(--ef-text-13);
    font-weight: 600;
    color: var(--ef-text);
    cursor: pointer;
    border: none;
    width: 100%;
    text-align: left;
}
.aim-panel-hdr:hover[b-9ec9iycngv] { background: var(--ef-surface-hover); }

.aim-panel-hdr-static[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 10px 14px;
    background: var(--ef-surface-2);
    border-bottom: 1px solid var(--ef-border);
    font-size: var(--ef-text-13);
    font-weight: 600;
    color: var(--ef-text);
    cursor: default;
}

.aim-chevron[b-9ec9iycngv] { margin-left: auto; transition: transform 0.2s ease; flex-shrink: 0; }
.aim-chevron.open[b-9ec9iycngv] { transform: rotate(180deg); }
.aim-panel-empty[b-9ec9iycngv] { padding: 24px 14px; font-size: var(--ef-text-13); color: var(--ef-text-disabled); text-align: center; }
.aim-panel-scroll[b-9ec9iycngv] { overflow-x: auto; max-height: 320px; overflow-y: auto; }

/* ── Table ───────────────────────────────────────────────────────────────── */
.aim-table-wrap[b-9ec9iycngv] {
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    overflow: visible;
    display: flex;
    flex-direction: column;
    padding: 0;
}
.aim-table-scroll[b-9ec9iycngv] { overflow-x: auto; flex: 1; }
.aim-loading[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 40px;
    color: var(--ef-text-disabled);
    font-size: var(--ef-text-13);
}
.aim-table[b-9ec9iycngv] { width: 100%; border-collapse: collapse; font-size: var(--ef-text-13); }
.aim-table thead th[b-9ec9iycngv] {
    background: var(--ef-surface-2);
    border-bottom: 2px solid var(--ef-border);
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    color: var(--ef-text-muted);
    white-space: nowrap;
}
.aim-table tbody tr[b-9ec9iycngv] { border-bottom: 1px solid var(--ef-border); }
.aim-table tbody tr:hover[b-9ec9iycngv] { background: var(--ef-surface-hover); }
.aim-table tbody td[b-9ec9iycngv] { padding: 8px 12px; color: var(--ef-text); }
.aim-empty[b-9ec9iycngv] { text-align: center; padding: 40px !important; color: var(--ef-text-disabled); }
.aim-date[b-9ec9iycngv] { white-space: nowrap; font-size: var(--ef-text-12); color: var(--ef-text-muted); }
.aim-msg[b-9ec9iycngv] { max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Cabinet Breakdown ───────────────────────────────────────────────────── */
.aim-breakdown-table thead th[b-9ec9iycngv] { font-size: var(--ef-text-12); padding: 8px 10px; }
.aim-breakdown-table tbody td[b-9ec9iycngv] { padding: 7px 10px; font-size: var(--ef-text-12); }
.aim-num[b-9ec9iycngv] { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.aim-num-warn[b-9ec9iycngv] { color: var(--ef-yellow-text); font-weight: 600; }
.aim-num-info[b-9ec9iycngv] { color: var(--ef-blue-text); font-weight: 600; }
.aim-num-ok[b-9ec9iycngv]   { color: var(--ef-green-text); }
.aim-num-bad[b-9ec9iycngv]  { color: var(--ef-red-text); font-weight: 600; }
.aim-cab-cell[b-9ec9iycngv] { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.aim-row-hasfailed[b-9ec9iycngv]       { background: var(--ef-red-bg) !important; }
.aim-row-hasfailed:hover[b-9ec9iycngv] { background: var(--ef-red-bg) !important; filter: brightness(0.97); }
.aim-row-actions[b-9ec9iycngv] { display: flex; gap: 4px; justify-content: flex-end; }
.aim-rate-great[b-9ec9iycngv] { color: var(--ef-green-text); font-weight: 600; }
.aim-rate-ok[b-9ec9iycngv]    { color: var(--ef-yellow-text); font-weight: 600; }
.aim-rate-bad[b-9ec9iycngv]   { color: var(--ef-red-text); font-weight: 600; }

/* ── Status badges ───────────────────────────────────────────────────────── */
.aim-badge[b-9ec9iycngv] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--ef-radius-full);
    font-size: var(--ef-text-12);
    font-weight: 600;
    white-space: nowrap;
}
.aim-badge-queued[b-9ec9iycngv]    { background: var(--ef-yellow-bg); color: var(--ef-yellow-text); }
.aim-badge-progress[b-9ec9iycngv]  { background: var(--ef-blue-bg);   color: var(--ef-blue-text); }
.aim-badge-completed[b-9ec9iycngv] { background: var(--ef-green-bg);  color: var(--ef-green-text); }
.aim-badge-failed[b-9ec9iycngv]    { background: var(--ef-red-bg);    color: var(--ef-red-text); }
.aim-badge-unknown[b-9ec9iycngv]   { background: var(--ef-surface-2); color: var(--ef-text-muted); }

/* ── Pagination ──────────────────────────────────────────────────────────── */
.aim-pagination[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-top: 1px solid var(--ef-border);
    background: var(--ef-surface-2);
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    flex-wrap: wrap;
    gap: 8px;
}
.aim-page-info[b-9ec9iycngv]  { font-size: var(--ef-text-13); color: var(--ef-text-muted); white-space: nowrap; }
.aim-page-size-wrap[b-9ec9iycngv] { display: flex; align-items: center; }
.aim-page-size[b-9ec9iycngv]  { height: 30px; font-size: var(--ef-text-13); padding: 0 24px 0 8px; min-width: 110px; }
.aim-page-buttons[b-9ec9iycngv] { display: flex; gap: 4px; }
.aim-pg-btn[b-9ec9iycngv] {
    min-width: 32px; height: 32px;
    border: 1px solid var(--ef-border);
    background: var(--ef-surface);
    border-radius: var(--ef-radius-4);
    cursor: pointer;
    font-size: var(--ef-text-13);
    padding: 0 6px;
    color: var(--ef-text);
}
.aim-pg-btn:hover[b-9ec9iycngv]    { background: var(--ef-surface-2); }
.aim-pg-btn:disabled[b-9ec9iycngv] { opacity: 0.5; cursor: default; }
.aim-pg-btn.aim-pg-active[b-9ec9iycngv] { background: var(--ef-color-primary); color: #fff; border-color: var(--ef-color-primary); }

/* ── Action Buttons ──────────────────────────────────────────────────────── */
.aim-action-btn[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 12px;
    font-size: var(--ef-text-13);
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    cursor: pointer;
    color: var(--ef-text);
    white-space: nowrap;
}
.aim-action-btn:hover[b-9ec9iycngv] { background: var(--ef-surface-2); }
.aim-action-btn.aim-btn-warn[b-9ec9iycngv] { background: var(--ef-yellow-bg); border-color: var(--ef-yellow); color: var(--ef-yellow-text); }
.aim-action-btn.aim-btn-warn:hover[b-9ec9iycngv] { filter: brightness(0.95); }

/* ── Small Buttons ───────────────────────────────────────────────────────── */
.aim-btn-sm[b-9ec9iycngv] {
    padding: 2px 8px;
    font-size: var(--ef-text-12);
    border-radius: var(--ef-radius-4);
    border: 1px solid var(--ef-border);
    background: var(--ef-surface);
    cursor: pointer;
    color: var(--ef-text);
    white-space: nowrap;
}
.aim-btn-sm:hover[b-9ec9iycngv] { background: var(--ef-surface-2); }
.aim-btn-sm.aim-btn-warn[b-9ec9iycngv]  { background: var(--ef-yellow-bg); border-color: var(--ef-yellow); color: var(--ef-yellow-text); }
.aim-btn-sm.aim-btn-warn:hover[b-9ec9iycngv]  { filter: brightness(0.95); }
.aim-btn-sm.aim-btn-reset[b-9ec9iycngv] { background: var(--ef-surface-2); border-color: var(--ef-border-strong); color: var(--ef-text-muted); }
.aim-btn-sm.aim-btn-reset:hover[b-9ec9iycngv] { background: var(--ef-surface-alt); }

/* ── Stuck Jobs Banner ───────────────────────────────────────────────────── */
.aim-stuck-banner[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--ef-yellow-bg);
    border: 1px solid var(--ef-yellow);
    border-radius: var(--ef-radius-6);
    padding: 10px 14px;
    font-size: var(--ef-text-13);
    color: var(--ef-yellow-text);
}
.aim-stuck-icon[b-9ec9iycngv]    { flex-shrink: 0; color: var(--ef-yellow); }
.aim-stuck-banner > span[b-9ec9iycngv] { flex: 1; }
.aim-stuck-toggle[b-9ec9iycngv]  {
    background: none;
    border: 1px solid var(--ef-yellow);
    border-radius: var(--ef-radius-4);
    padding: 3px 10px;
    font-size: var(--ef-text-12);
    cursor: pointer;
    color: var(--ef-yellow-text);
    white-space: nowrap;
    flex-shrink: 0;
}
.aim-stuck-toggle:hover[b-9ec9iycngv] { background: var(--ef-yellow-bg); filter: brightness(0.95); }

.aim-stuck-detail[b-9ec9iycngv]  { background: var(--ef-surface); border: 1px solid var(--ef-yellow); border-radius: var(--ef-radius-6); overflow-x: auto; }
.aim-stuck-table td[b-9ec9iycngv],
.aim-stuck-table th[b-9ec9iycngv] { padding: 7px 12px; }
.aim-row-stuck[b-9ec9iycngv]       { background: var(--ef-yellow-bg) !important; }
.aim-row-stuck:hover[b-9ec9iycngv] { filter: brightness(0.97); }
.aim-stuck-tag[b-9ec9iycngv] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    background: var(--ef-yellow);
    color: #fff;
    border-radius: var(--ef-radius-4);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    vertical-align: middle;
}
.aim-stuck-mins[b-9ec9iycngv] { font-weight: 600; color: var(--ef-yellow-text); }

/* ── Toggle Buttons (AI pause/resume) ────────────────────────────────────── */
.aim-toggle-btn[b-9ec9iycngv] { display: flex; align-items: center; gap: 5px; padding: 4px 12px; font-size: var(--ef-text-13); border-radius: var(--ef-radius-4); cursor: pointer; border: 1px solid; }
.aim-toggle-active[b-9ec9iycngv] { background: var(--ef-green-bg); color: var(--ef-green-text); border-color: var(--ef-green); }
.aim-toggle-paused[b-9ec9iycngv] { background: var(--ef-yellow-bg); color: var(--ef-yellow-text); border-color: var(--ef-yellow); }
.aim-toggle-active:hover[b-9ec9iycngv] { filter: brightness(0.95); }
.aim-toggle-paused:hover[b-9ec9iycngv] { filter: brightness(0.95); }

/* ── Throughput Sparkline ────────────────────────────────────────────────── */
.aim-sparkline-wrap[b-9ec9iycngv] { padding: 10px 14px 12px; display: flex; flex-direction: column; gap: 6px; }
.aim-sparkline-svg[b-9ec9iycngv]  { width: 100%; height: 72px; display: block; border-radius: var(--ef-radius-4); background: var(--ef-surface-2); }
.aim-spark-legend[b-9ec9iycngv]   { display: flex; align-items: center; font-size: var(--ef-text-12); color: var(--ef-text-muted); flex-wrap: wrap; gap: 4px; }
.aim-spark-dot[b-9ec9iycngv]      { display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.aim-spark-peak[b-9ec9iycngv]     { margin-left: auto; font-size: 11px; color: var(--ef-text-disabled); white-space: nowrap; }
.aim-spark-labels[b-9ec9iycngv]   { display: flex; justify-content: space-between; font-size: 10px; color: var(--ef-text-disabled); padding: 0 2px; }

/* ── Retry Modal ─────────────────────────────────────────────────────────── */
.aim-modal-backdrop[b-9ec9iycngv] {
    position: fixed;
    inset: 0;
    background: var(--ef-overlay);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
}
.aim-modal[b-9ec9iycngv] {
    background: var(--ef-surface);
    border-radius: var(--ef-radius-8);
    box-shadow: var(--ef-shadow-4);
    width: 420px;
    max-width: calc(100vw - 32px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--ef-border);
}
.aim-modal-hdr[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid var(--ef-border);
    font-size: var(--ef-text-15);
    font-weight: 600;
    color: var(--ef-text);
}
.aim-modal-close[b-9ec9iycngv] { background: none; border: none; font-size: 20px; line-height: 1; cursor: pointer; color: var(--ef-text-muted); padding: 0 4px; }
.aim-modal-close:hover[b-9ec9iycngv] { color: var(--ef-text); }
.aim-modal-body[b-9ec9iycngv]  { padding: 18px; display: flex; flex-direction: column; gap: 14px; font-size: var(--ef-text-13); color: var(--ef-text); }
.aim-modal-body p[b-9ec9iycngv] { margin: 0; }
.aim-modal-field[b-9ec9iycngv] { display: flex; flex-direction: column; gap: 5px; }
.aim-modal-field label[b-9ec9iycngv] { font-size: var(--ef-text-12); font-weight: 600; color: var(--ef-text-muted); }
.aim-modal-result[b-9ec9iycngv] { padding: 10px 12px; border-radius: var(--ef-radius-4); font-size: var(--ef-text-13); }
.aim-modal-ok[b-9ec9iycngv]    { background: var(--ef-green-bg); color: var(--ef-green-text); border: 1px solid var(--ef-green); }
.aim-modal-error[b-9ec9iycngv] { background: var(--ef-red-bg);   color: var(--ef-red-text);   border: 1px solid var(--ef-red); }
.aim-modal-footer[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 18px;
    border-top: 1px solid var(--ef-border);
    background: var(--ef-surface-2);
}
.aim-modal-btn[b-9ec9iycngv] {
    padding: 6px 18px;
    font-size: var(--ef-text-13);
    border-radius: var(--ef-radius-4);
    border: 1px solid var(--ef-border);
    background: var(--ef-surface);
    cursor: pointer;
    color: var(--ef-text);
    display: flex;
    align-items: center;
    gap: 5px;
}
.aim-modal-btn:hover[b-9ec9iycngv]    { background: var(--ef-surface-2); }
.aim-modal-btn:disabled[b-9ec9iycngv] { opacity: 0.6; cursor: default; }
.aim-modal-btn-primary[b-9ec9iycngv]  { background: var(--ef-color-primary); border-color: var(--ef-color-primary); color: #fff; }
.aim-modal-btn-primary:hover[b-9ec9iycngv]    { background: var(--ef-color-primary-hover); }
.aim-modal-btn-primary:disabled[b-9ec9iycngv] { opacity: 0.6; }

/* ── Embeddings notice ───────────────────────────────────────────────────── */
.aim-vec-notice[b-9ec9iycngv] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 10px 14px;
    background: var(--ef-blue-bg);
    border: 1px solid var(--ef-blue);
    border-radius: var(--ef-radius-6);
    font-size: var(--ef-text-13);
    color: var(--ef-blue-text);
    line-height: 1.5;
}
.aim-vec-notice-icon[b-9ec9iycngv] { flex-shrink: 0; margin-top: 2px; color: var(--ef-blue); }

/* ── Vec config panel ────────────────────────────────────────────────────── */
.aim-vec-config[b-9ec9iycngv] { padding: 12px 14px; display: flex; flex-direction: column; gap: 9px; }
.aim-vec-config-row[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--ef-text-12);
    border-bottom: 1px solid var(--ef-border);
    padding-bottom: 9px;
}
.aim-vec-config-row:last-child[b-9ec9iycngv] { border-bottom: none; padding-bottom: 0; }
.aim-vec-config-key[b-9ec9iycngv] { font-weight: 600; color: var(--ef-text-muted); min-width: 130px; flex-shrink: 0; }
.aim-vec-config-val[b-9ec9iycngv] { color: var(--ef-text); font-family: monospace; font-size: 11px; word-break: break-all; }
.aim-vec-tbd[b-9ec9iycngv] { color: var(--ef-text-disabled); font-style: italic; font-family: inherit; font-size: var(--ef-text-12); }

/* ── Vec events table header ─────────────────────────────────────────────── */
.aim-table-hdr[b-9ec9iycngv] { display: flex; align-items: center; gap: 10px; padding: 10px 12px 8px; }
.aim-table-title[b-9ec9iycngv] { font-size: var(--ef-text-13); font-weight: 600; color: var(--ef-text); }
.aim-vec-mock-badge[b-9ec9iycngv] {
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    background: var(--ef-yellow-bg);
    color: var(--ef-yellow-text);
    border: 1px solid var(--ef-yellow);
    border-radius: var(--ef-radius-full);
    letter-spacing: 0.3px;
}
.aim-doc-id[b-9ec9iycngv] { font-family: monospace; font-size: var(--ef-text-12); color: var(--ef-text-muted); }

/* ── Spin animation ──────────────────────────────────────────────────────── */
@keyframes spin-b-9ec9iycngv { to { transform: rotate(360deg); } }
.spin[b-9ec9iycngv] { animation: spin-b-9ec9iycngv 0.8s linear infinite; }

/* ── Clickable rows ─────────────────────────────────────────────────────── */
.aim-row-clickable[b-9ec9iycngv] { cursor: pointer; }
.aim-row-clickable:hover td[b-9ec9iycngv] { background: var(--ef-surface-2) !important; }

/* ── Job Detail Slide-In Panel ───────────────────────────────────────────── */
.aim-detail-backdrop[b-9ec9iycngv] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.3);
    z-index: 400;
}

.aim-detail-panel[b-9ec9iycngv] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 400px;
    max-width: 95vw;
    background: var(--ef-surface);
    border-left: 1px solid var(--ef-border);
    z-index: 401;
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 20px rgba(0,0,0,0.12);
    overflow: hidden;
}

.aim-detail-hdr[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
}
.aim-detail-hdr-left[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--ef-text-14);
    font-weight: 600;
    color: var(--ef-text);
}
.aim-detail-close[b-9ec9iycngv] {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--ef-text-muted);
    padding: 4px;
    border-radius: var(--ef-radius-4);
    display: flex;
    align-items: center;
}
.aim-detail-close:hover[b-9ec9iycngv] { background: var(--ef-surface-2); color: var(--ef-text); }

.aim-detail-loading[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 32px 20px;
    color: var(--ef-text-muted);
    font-size: var(--ef-text-13);
}

.aim-detail-body[b-9ec9iycngv] {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.aim-detail-id-row[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.aim-detail-docid[b-9ec9iycngv] {
    font-size: var(--ef-text-15);
    font-weight: 700;
    color: var(--ef-text);
}
.aim-detail-pdf-badge[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    padding: 2px 7px;
    border-radius: 10px;
    background: var(--ef-green-bg);
    color: var(--ef-green-text);
    border: 1px solid var(--ef-green);
    font-weight: 600;
}

.aim-detail-meta[b-9ec9iycngv] {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.aim-detail-meta-item[b-9ec9iycngv] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
}

.aim-detail-section-title[b-9ec9iycngv] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ef-text-muted);
    padding-bottom: 4px;
    border-bottom: 1px solid var(--ef-border);
}

/* Timeline */
.aim-timeline[b-9ec9iycngv] {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-left: 4px;
}
.aim-tl-item[b-9ec9iycngv] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding-bottom: 16px;
    position: relative;
}
.aim-tl-item:not(:last-child)[b-9ec9iycngv]::after {
    content: '';
    position: absolute;
    left: 7px;
    top: 16px;
    bottom: 0;
    width: 2px;
    background: var(--ef-border);
}
.aim-tl-item.aim-tl-done:not(:last-child)[b-9ec9iycngv]::after { background: var(--ef-green); }
.aim-tl-item.aim-tl-failed:not(:last-child)[b-9ec9iycngv]::after { background: var(--ef-red); }

.aim-tl-dot[b-9ec9iycngv] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--ef-border);
    background: var(--ef-surface);
    flex-shrink: 0;
    margin-top: 1px;
    position: relative;
    z-index: 1;
}
.aim-tl-done .aim-tl-dot[b-9ec9iycngv] {
    background: var(--ef-green);
    border-color: var(--ef-green);
}
.aim-tl-failed .aim-tl-dot[b-9ec9iycngv] {
    background: var(--ef-red-bg);
    border-color: var(--ef-red);
}
.aim-tl-pending .aim-tl-dot[b-9ec9iycngv] {
    background: var(--ef-surface);
    border-color: var(--ef-border);
}
.aim-tl-content[b-9ec9iycngv] { flex: 1; }
.aim-tl-label[b-9ec9iycngv] {
    font-size: var(--ef-text-13);
    font-weight: 600;
    color: var(--ef-text);
}
.aim-tl-pending .aim-tl-label[b-9ec9iycngv] { color: var(--ef-text-muted); }
.aim-tl-time[b-9ec9iycngv] {
    font-size: 11px;
    color: var(--ef-text-muted);
    margin-top: 2px;
}

/* Stats */
.aim-detail-stats[b-9ec9iycngv] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.aim-detail-stat[b-9ec9iycngv] {
    background: var(--ef-bg);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    padding: 8px 14px;
    text-align: center;
    min-width: 70px;
}
.aim-detail-stat-val[b-9ec9iycngv] {
    font-size: var(--ef-text-16);
    font-weight: 700;
    color: var(--ef-text);
}
.aim-detail-stat-val.aim-detail-stat-sm[b-9ec9iycngv] { font-size: var(--ef-text-12); }
.aim-detail-stat-lbl[b-9ec9iycngv] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ef-text-muted);
    margin-top: 2px;
}

/* Text preview */
.aim-detail-text-preview[b-9ec9iycngv] {
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    background: var(--ef-bg);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    padding: 10px 12px;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 180px;
    overflow-y: auto;
    line-height: 1.5;
}

/* Error */
.aim-detail-error[b-9ec9iycngv] {
    font-size: var(--ef-text-12);
    color: var(--ef-red-text);
    background: var(--ef-red-bg);
    border: 1px solid var(--ef-red);
    border-radius: var(--ef-radius-4);
    padding: 10px 12px;
    word-break: break-word;
}

/* Actions */
.aim-detail-actions[b-9ec9iycngv] {
    display: flex;
    gap: 8px;
    padding-top: 4px;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .aim-panels[b-9ec9iycngv] { flex-direction: column; }
    .aim-panel-breakdown[b-9ec9iycngv],
    .aim-panel-throughput[b-9ec9iycngv] { flex: none; width: 100%; }
}
/* /Components/Pages/Cabinet/RecordDetail.razor.rz.scp.css */
.record-detail[b-pa1r1bybqf] {
    display: flex;
    height: 100%;
    overflow: hidden;
}

.record-form[b-pa1r1bybqf] {
    flex: 0 0 50%;
    display: flex;
    flex-direction: column;
    overflow: auto;
    padding: 16px 24px;
}

.record-form-header[b-pa1r1bybqf] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    flex-shrink: 0;
}

.record-form-title[b-pa1r1bybqf] {
    font-size: var(--ef-text-18);
    font-weight: 600;
    color: var(--ef-text);
}

.record-loading[b-pa1r1bybqf] {
    display: flex;
    justify-content: center;
    padding: 48px;
}

.record-error[b-pa1r1bybqf] {
    padding: 10px 14px;
    background: rgba(220, 38, 38, .08);
    color: var(--ef-red);
    border-radius: var(--ef-radius-6);
    font-size: var(--ef-text-13);
    margin-bottom: 16px;
    border: 1px solid rgba(220, 38, 38, .2);
}

.record-success[b-pa1r1bybqf] {
    padding: 10px 14px;
    background: rgba(22, 163, 74, .08);
    color: var(--ef-green);
    border-radius: var(--ef-radius-6);
    font-size: var(--ef-text-13);
    margin-bottom: 16px;
    border: 1px solid rgba(22, 163, 74, .2);
}

.record-fields[b-pa1r1bybqf] {
    max-width: 600px;
    flex: 1;
    overflow: auto;
}

.record-actions[b-pa1r1bybqf] {
    display: flex;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--ef-border);
    max-width: 600px;
    flex-shrink: 0;
}

/* ── Right Panel: Viewer / Upload ── */
.record-viewer[b-pa1r1bybqf] {
    flex: 0 0 50%;
    border-left: 1px solid var(--ef-border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.viewer-header[b-pa1r1bybqf] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
    font-size: var(--ef-text-13);
    flex-shrink: 0;
}

.viewer-header .active[b-pa1r1bybqf] {
    color: var(--ef-color-primary);
    font-weight: 600;
}

.viewer-type[b-pa1r1bybqf] {
    font-weight: 600;
    color: var(--ef-color-primary);
}

.viewer-field[b-pa1r1bybqf] {
    color: var(--ef-text-muted);
}

.viewer-placeholder[b-pa1r1bybqf] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--ef-surface-2);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-14);
    gap: 8px;
}

.viewer-hint[b-pa1r1bybqf] {
    font-size: var(--ef-text-12);
    opacity: 0.6;
}

/* ── Upload Zone ── */
.upload-zone[b-pa1r1bybqf] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px;
    border: 2px dashed var(--ef-border);
    margin: 16px;
    border-radius: var(--ef-radius-14);
    background: var(--ef-surface-2);
    transition: border-color 200ms, background 200ms;
    position: relative;
    min-height: 200px;
}

.upload-zone.drag-over[b-pa1r1bybqf] {
    border-color: var(--ef-color-primary);
    background: var(--ef-primary-bg);
}

.upload-input[b-pa1r1bybqf] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
}

.upload-icon[b-pa1r1bybqf] {
    opacity: .4;
}

/* ── Basket Browser ── */
.basket-browser[b-pa1r1bybqf] {
    flex: 1;
    overflow: auto;
}

.basket-item[b-pa1r1bybqf] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    margin-bottom: 6px;
    cursor: pointer;
    transition: background 120ms;
}

.basket-item:hover[b-pa1r1bybqf] {
    background: var(--ef-surface-alt);
}

.basket-doc-item[b-pa1r1bybqf] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    margin-bottom: 4px;
}

/* ── Uploaded Files List ── */
.uploaded-files[b-pa1r1bybqf] {
    border-top: 1px solid var(--ef-border);
    flex-shrink: 0;
    max-height: 180px;
    overflow: auto;
}

.uploaded-file-row[b-pa1r1bybqf] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    font-size: var(--ef-text-12);
    cursor: pointer;
    border-bottom: 1px solid var(--ef-border);
    transition: background 120ms;
}

.uploaded-file-row:hover[b-pa1r1bybqf] {
    background: var(--ef-surface-alt);
}

.uploaded-file-row.active[b-pa1r1bybqf] {
    background: var(--ef-primary-bg);
    border-left: 3px solid var(--ef-color-primary);
}
/* /Components/Pages/Cabinet/RetentionReview.razor.rz.scp.css */
/* P2.7 — Retention review queue. Scoped styles (never global). Uses EF design tokens. */

.rr-page[b-83x9c5lc0r] {
    padding: var(--ef-space-20);
    font-family: var(--ef-font);
    color: var(--ef-text, #1f2937);
    max-width: 1100px;
    margin: 0 auto;
}

.rr-header[b-83x9c5lc0r] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-12);
    margin-bottom: var(--ef-space-16);
}

.rr-back[b-83x9c5lc0r] {
    background: transparent;
    border: 1px solid var(--ef-border, #d1d5db);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-4) var(--ef-space-12);
    font-size: var(--ef-text-13);
    cursor: pointer;
}

.rr-back:hover[b-83x9c5lc0r] { background: var(--ef-color-primary-bg); }

.rr-title[b-83x9c5lc0r] {
    font-size: var(--ef-text-20);
    font-weight: 700;
    margin: 0;
}

.rr-cab[b-83x9c5lc0r] { color: var(--ef-text-muted, #6b7280); font-weight: 500; }

.rr-warning[b-83x9c5lc0r] {
    background: var(--ef-red-bg);
    color: var(--ef-red-text);
    border: 1px solid var(--ef-color-danger, #dc2626);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-12);
    font-size: var(--ef-text-13);
    margin-bottom: var(--ef-space-16);
}

/* Tabs */
.rr-tabs[b-83x9c5lc0r] {
    display: flex;
    gap: var(--ef-space-4);
    border-bottom: 1px solid var(--ef-border, #e5e7eb);
    margin-bottom: var(--ef-space-16);
}

.rr-tab[b-83x9c5lc0r] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-14);
    cursor: pointer;
    color: var(--ef-text-muted, #6b7280);
}

.rr-tab:hover[b-83x9c5lc0r] { color: var(--ef-color-primary); }

.rr-tab-active[b-83x9c5lc0r] {
    color: var(--ef-color-primary);
    border-bottom-color: var(--ef-color-primary);
    font-weight: 600;
}

.rr-tab-count[b-83x9c5lc0r] {
    display: inline-block;
    min-width: 18px;
    padding: 0 6px;
    margin-left: 6px;
    font-size: var(--ef-text-11);
    background: var(--ef-border, #e5e7eb);
    border-radius: 10px;
    text-align: center;
}

/* Panel + table */
.rr-table[b-83x9c5lc0r] { width: 100%; border-collapse: collapse; font-size: var(--ef-text-13); }
.rr-table th[b-83x9c5lc0r], .rr-table td[b-83x9c5lc0r] {
    text-align: left;
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border, #eef0f3);
}
.rr-table th[b-83x9c5lc0r] { font-weight: 600; color: var(--ef-text-muted, #6b7280); background: var(--ef-surface-2, #f9fafb); }
.rr-col-check[b-83x9c5lc0r] { width: 36px; text-align: center; }
.rr-row-held[b-83x9c5lc0r] { background: var(--ef-red-bg); }

/* Badges */
.rr-badge[b-83x9c5lc0r] {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 10px;
    font-size: var(--ef-text-11);
    font-weight: 600;
}
.rr-badge-pending[b-83x9c5lc0r] { background: var(--ef-yellow-bg); color: var(--ef-yellow-text); }
.rr-badge-approve[b-83x9c5lc0r] { background: var(--ef-red-bg); color: var(--ef-red-text); }
.rr-badge-reject[b-83x9c5lc0r]  { background: var(--ef-border, #e5e7eb); color: var(--ef-text-muted, #6b7280); }
.rr-badge-hold[b-83x9c5lc0r]    { background: var(--ef-blue-bg); color: var(--ef-blue-text); }
/* P3.3 — Deferred (parked, revisitable) + approaching-expiry warning. */
.rr-badge-defer[b-83x9c5lc0r]   { background: var(--ef-surface-2, #f3f4f6); color: var(--ef-text, #374151); border: 1px solid var(--ef-border, #e5e7eb); }
.rr-badge-expiry[b-83x9c5lc0r]  { background: var(--ef-orange-bg, #fff4e5); color: var(--ef-orange-text, #b45309); margin-left: 6px; }

/* Actions */
.rr-actions[b-83x9c5lc0r] { margin-top: var(--ef-space-16); }
.rr-note-label[b-83x9c5lc0r] { display: block; font-size: var(--ef-text-13); font-weight: 600; margin-bottom: var(--ef-space-4); }
.rr-req[b-83x9c5lc0r] { color: var(--ef-color-danger); font-weight: 500; }
.rr-note[b-83x9c5lc0r] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ef-border, #d1d5db);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-8);
    font-family: var(--ef-font);
    font-size: var(--ef-text-13);
    resize: vertical;
}

.rr-buttons[b-83x9c5lc0r] {
    display: flex;
    gap: var(--ef-space-8);
    justify-content: flex-end;
    margin-top: var(--ef-space-12);
}

.rr-btn[b-83x9c5lc0r] {
    border: 1px solid transparent;
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-13);
    font-weight: 600;
    cursor: pointer;
}
.rr-btn:disabled[b-83x9c5lc0r] { opacity: 0.5; cursor: not-allowed; }
.rr-btn-reject[b-83x9c5lc0r]  { background: #fff; border-color: var(--ef-border, #d1d5db); color: var(--ef-text, #374151); }
.rr-btn-defer[b-83x9c5lc0r]   { background: #fff; border-color: var(--ef-border, #d1d5db); color: var(--ef-text, #374151); }
.rr-btn-approve[b-83x9c5lc0r] { background: var(--ef-color-danger, #dc2626); color: #fff; }
.rr-btn-approve:hover:not(:disabled)[b-83x9c5lc0r] { background: var(--ef-color-danger-hover, #b91c1c); }

.rr-empty[b-83x9c5lc0r] { color: var(--ef-text-muted, #6b7280); font-size: var(--ef-text-13); padding: var(--ef-space-16); }
.rr-error[b-83x9c5lc0r] { color: var(--ef-red-text); font-size: var(--ef-text-13); }
.rr-ok[b-83x9c5lc0r]    { color: var(--ef-green-text); font-size: var(--ef-text-13); }

/* Screen-reader-only caption */
.rr-sr-only[b-83x9c5lc0r] {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/Pages/Cabinet/ScanningReport.razor.rz.scp.css */
.sr-page[b-u4c9c1gn54] {
    width: 100%;
    min-height: 100vh;
    background: #fff;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    font-size: 14px;
    display: flex;
    flex-direction: column;
}

/* Navbar */
.sr-navbar[b-u4c9c1gn54] {
    background: #fff;
    border-bottom: 1px solid #ddd;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}

.sr-brand[b-u4c9c1gn54] { font-size: 15px; font-weight: 600; color: #333; }

.sr-nav-right[b-u4c9c1gn54] { display: flex; align-items: center; gap: 8px; }

/* Body */
.sr-body[b-u4c9c1gn54] { padding: 16px 20px; display: flex; flex-direction: column; gap: 14px; }

/* Title */
.sr-title[b-u4c9c1gn54] { font-size: 18px; font-weight: 400; color: #333; margin: 0 0 4px 0; }
.sr-cabinet-label[b-u4c9c1gn54] { color: darkgray; }

/* Stats */
.sr-stats-table[b-u4c9c1gn54] { width: 100%; border-collapse: collapse; }
.sr-stat-label[b-u4c9c1gn54] { color: #555; padding: 4px 0; min-width: 160px; }
.sr-stat-value[b-u4c9c1gn54] { font-weight: 600; padding: 4px 8px; min-width: 120px; }
.sr-date-range-cell[b-u4c9c1gn54] { padding: 4px 0; }
.sr-date-range[b-u4c9c1gn54] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sr-label[b-u4c9c1gn54] { font-size: 13px; color: #555; margin: 0; }

/* Buttons */
.sr-btn[b-u4c9c1gn54] {
    padding: 3px 10px;
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 3px;
    cursor: pointer;
    white-space: nowrap;
    background: #f8f8f8;
    color: #333;
}
.sr-btn:disabled[b-u4c9c1gn54] { opacity: 0.6; cursor: default; }
.sr-btn-default[b-u4c9c1gn54]  { background: #f8f8f8; border-color: #ccc; }
.sr-btn-default:hover:not(:disabled)[b-u4c9c1gn54] { background: #e9e9e9; }
.sr-btn-primary[b-u4c9c1gn54]  { background: #337ab7; border-color: #2e6da4; color: #fff; }
.sr-btn-primary:hover:not(:disabled)[b-u4c9c1gn54] { background: #286090; }
.sr-btn-success[b-u4c9c1gn54]  { background: #5cb85c; border-color: #4cae4c; color: #fff; }
.sr-btn-success:hover:not(:disabled)[b-u4c9c1gn54] { background: #449d44; }
.sr-btn-match[b-u4c9c1gn54]    { margin-top: 16px; min-width: 60px; }
.sr-btn-xs[b-u4c9c1gn54]       { font-size: 12px; padding: 2px 6px; }

/* Inputs */
.sr-input[b-u4c9c1gn54] { height: 29px; font-size: 13px; border: 1px solid #ccc; border-radius: 3px; padding: 0 8px; max-width: 200px; }
.sr-input:disabled[b-u4c9c1gn54] { background: #f5f5f5; color: #aaa; }
.sr-input-date[b-u4c9c1gn54] { height: 29px; font-size: 13px; border: 1px solid #ccc; border-radius: 3px; padding: 0 6px; }
.sr-select[b-u4c9c1gn54] { height: 29px; font-size: 13px; border: 1px solid #ccc; border-radius: 3px; padding: 0 6px; width: 200px; }
.sr-select:disabled[b-u4c9c1gn54] { background: #f5f5f5; color: #aaa; }

/* Sections */
.sr-section[b-u4c9c1gn54] { display: flex; flex-direction: column; gap: 8px; }
.sr-upload-row[b-u4c9c1gn54] { display: flex; align-items: center; gap: 10px; }
.sr-filename[b-u4c9c1gn54] { font-style: italic; color: darkgray; font-size: 13px; max-width: 450px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sr-tablename-row[b-u4c9c1gn54] { display: flex; flex-direction: column; gap: 6px; }
.sr-tablename-controls[b-u4c9c1gn54] { display: flex; align-items: center; gap: 8px; }
.sr-italic-note[b-u4c9c1gn54] { font-style: italic; font-size: 13px; color: #555; }
.sr-upload-success[b-u4c9c1gn54] { padding: 3px 10px; background: #e5ffe5; color: green; border-radius: 4px; font-size: 13px; }
.sr-maplabel[b-u4c9c1gn54] { color: darkgray; font-size: 13px; }
.sr-small-label[b-u4c9c1gn54] { font-size: 13px; margin-bottom: 2px; }
.sr-map-table[b-u4c9c1gn54] { border-collapse: collapse; }
.sr-map-table td[b-u4c9c1gn54] { padding: 0 10px 0 0; vertical-align: top; }

/* Metrics table */
.sr-metrics-table[b-u4c9c1gn54] { width: 100%; border-collapse: collapse; border: 1px solid #ddd; font-size: 13px; }
.sr-metrics-table thead th[b-u4c9c1gn54] {
    background: #f5f5f5;
    padding: 8px 10px;
    border: 1px solid #ddd;
    font-weight: 400;
    text-align: center;
}
.sr-metrics-th-label[b-u4c9c1gn54] { background: whitesmoke; color: dimgray; width: 165px; vertical-align: middle; font-weight: 600 !important; text-align: left !important; }
.sr-metrics-table tbody td[b-u4c9c1gn54] { padding: 8px 10px; border: 1px solid #ddd; }
.sr-center[b-u4c9c1gn54] { text-align: center; }
.sr-bold[b-u4c9c1gn54] { font-weight: 600; }
.sr-missing-cell[b-u4c9c1gn54] { position: relative; }
.sr-show-btn[b-u4c9c1gn54] { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); }
.sr-missings-header[b-u4c9c1gn54] { background: whitesmoke; }
.sr-missings-row[b-u4c9c1gn54] { background: #fcfcfc; }
.sr-missings-scroll[b-u4c9c1gn54] { max-height: 500px; overflow: auto; font-size: 13px; }

/* Cartons */
.sr-cartons-row[b-u4c9c1gn54] { display: flex; align-items: center; gap: 10px; }
.sr-carton-total[b-u4c9c1gn54] { color: gray; font-size: 13px; }
.sr-carton-count[b-u4c9c1gn54] { color: gray; font-size: 13px; }
.sr-missing-cartons-box[b-u4c9c1gn54] { padding: 5px 10px; font-size: 13px; color: #555; }

/* Grid */
.sr-grid[b-u4c9c1gn54] { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 6px; }
.sr-grid thead th[b-u4c9c1gn54] {
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    padding: 8px 10px;
    text-align: left;
    font-weight: 600;
    color: #495057;
    white-space: nowrap;
}
.sr-grid thead th.sr-right[b-u4c9c1gn54] { text-align: right; }
.sr-grid tbody tr[b-u4c9c1gn54] { border-bottom: 1px solid #eee; }
.sr-grid-row[b-u4c9c1gn54] { cursor: pointer; }
.sr-grid-row:hover[b-u4c9c1gn54] { background: #f5f5f5; }
.sr-grid tbody td[b-u4c9c1gn54] { padding: 7px 10px; }
.sr-right[b-u4c9c1gn54] { text-align: right; }
.sr-detail-row[b-u4c9c1gn54] { background: #fafafa; }
.sr-detail-content[b-u4c9c1gn54] { padding: 6px 10px; font-size: 12px; color: #555; }
/* /Components/Pages/Home/Dashboard.razor.rz.scp.css */
.dashboard[b-gui717ks52] {
    padding: 24px;
    overflow-y: auto;
    height: 100%;
}

.dashboard-header[b-gui717ks52] {
    margin-bottom: 24px;
}

.dashboard-title[b-gui717ks52] {
    font-size: var(--ef-text-24);
    font-weight: 700;
    color: var(--ef-text);
    margin-bottom: 4px;
}

.dashboard-subtitle[b-gui717ks52] {
    font-size: var(--ef-text-14);
    color: var(--ef-text-muted);
}

.dashboard-loading[b-gui717ks52] {
    display: flex;
    justify-content: center;
    padding: 48px;
}

.dashboard-filter[b-gui717ks52] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    margin-bottom: var(--ef-space-16);
}

.cabinet-grid[b-gui717ks52] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

/* ── Cabinet Cards ── */
.cabinet-card[b-gui717ks52] {
    display: flex;
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-10);
    overflow: visible;
    cursor: pointer;
    transition: box-shadow var(--ef-transition-base), transform var(--ef-transition-base), border-color var(--ef-transition-base);
    box-shadow: var(--ef-shadow-1);
}

.cabinet-card:hover[b-gui717ks52] {
    box-shadow: var(--ef-shadow-3);
    transform: translateY(-2px);
    border-color: var(--ef-color-primary);
}

.cabinet-card:hover .cabinet-card-accent[b-gui717ks52] {
    background: var(--ef-color-primary);
}

.cabinet-card-inactive[b-gui717ks52] {
    opacity: 0.7;
}

.cabinet-card-inactive:hover[b-gui717ks52] {
    border-color: var(--ef-border-strong, var(--ef-border));
}

.cabinet-card-inactive .cabinet-card-accent[b-gui717ks52] {
    background: var(--ef-text-muted);
}

.cabinet-card-accent[b-gui717ks52] {
    width: 4px;
    flex-shrink: 0;
    background: var(--ef-color-primary-light, rgba(37, 99, 235, 0.25));
    transition: background var(--ef-transition-base);
    border-radius: var(--ef-radius-10) 0 0 var(--ef-radius-10);
}

.cabinet-card-content[b-gui717ks52] {
    flex: 1;
    padding: var(--ef-space-16);
    display: flex;
    flex-direction: column;
    gap: var(--ef-space-8);
}

.cabinet-card-top[b-gui717ks52] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
}

.cabinet-card-icon[b-gui717ks52] {
    color: var(--ef-color-primary);
    flex-shrink: 0;
}

.cabinet-card-label[b-gui717ks52] {
    font-size: var(--ef-text-15, 15px);
    font-weight: 600;
    color: var(--ef-text);
    margin: 0;
    flex: 1;
}

.cabinet-card-badge[b-gui717ks52] {
    flex-shrink: 0;
}

/* ── Info button ── */
.cab-info-btn[b-gui717ks52] {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border-radius: 50%;
    border: 1.5px solid currentColor;
    background: none;
    color: var(--ef-text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-size: 10px;
    font-style: italic;
    font-weight: 700;
    font-family: Georgia, serif;
    line-height: 1;
    opacity: 0.35;
    transition: opacity .15s, color .15s, border-color .15s, background .15s;
}

.cab-info-btn:hover[b-gui717ks52] {
    opacity: 1;
    color: var(--ef-color-primary);
    border-color: var(--ef-color-primary);
    background: rgba(37,99,235,.06);
}

/* ── Cabinet info modal table ── */
.cab-info-table[b-gui717ks52] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.cab-info-table td[b-gui717ks52] {
    border-bottom: 1px solid var(--ef-border);
    vertical-align: top;
}

.cab-info-table tr:last-child td[b-gui717ks52] {
    border-bottom: none;
}

.cab-info-table td:first-child[b-gui717ks52] {
    color: var(--ef-text-muted);
    width: 130px;
    font-weight: 500;
}

.cab-info-table td:last-child[b-gui717ks52] {
    font-weight: 600;
    color: var(--ef-text);
}

.cab-info-table tr.cab-info-section td[b-gui717ks52] {
    background: var(--ef-bg, #f7f7f7);
    color: var(--ef-text-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 6px 16px;
    border-bottom: 1px solid var(--ef-border);
}

.cab-info-table td[b-gui717ks52] {
    padding: 7px 16px;
}

.cab-info-table code[b-gui717ks52] {
    font-size: 12px;
    background: var(--ef-bg, #f5f5f5);
    padding: 1px 5px;
    border-radius: 3px;
    font-weight: 500;
    color: var(--ef-text);
}

.cabinet-card-desc[b-gui717ks52] {
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    line-height: 1.4;
    margin: 0;
}

.cabinet-card-stats[b-gui717ks52] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-16);
    margin-top: var(--ef-space-4);
}

.cabinet-stat[b-gui717ks52] {
    display: inline-flex;
    align-items: center;
    gap: var(--ef-space-4);
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
}

.cabinet-stat strong[b-gui717ks52] {
    color: var(--ef-text);
    font-weight: 600;
}

.cabinet-stat svg[b-gui717ks52] {
    opacity: 0.5;
}

/* ── Activity Feed ── */
.activity-section[b-gui717ks52] {
    margin-top: 32px;
}

.activity-title[b-gui717ks52] {
    font-size: var(--ef-text-18);
    font-weight: 600;
    color: var(--ef-text);
    margin-bottom: 16px;
}

.activity-feed[b-gui717ks52] {
    display: flex;
    flex-direction: column;
}

.activity-item[b-gui717ks52] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--ef-border);
}

.activity-item:last-child[b-gui717ks52] {
    border-bottom: none;
}

.activity-dot[b-gui717ks52] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 6px;
}

[b-gui717ks52] .dot-green { background: var(--ef-green); }
[b-gui717ks52] .dot-red { background: var(--ef-red); }
[b-gui717ks52] .dot-blue { background: var(--ef-color-primary); }
[b-gui717ks52] .dot-gray { background: var(--ef-text-muted); opacity: .5; }

.activity-content[b-gui717ks52] {
    flex: 1;
    min-width: 0;
}

.activity-text[b-gui717ks52] {
    font-size: var(--ef-text-13);
    color: var(--ef-text);
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    align-items: baseline;
}

.activity-link[b-gui717ks52] {
    color: var(--ef-color-primary);
    text-decoration: none;
    cursor: pointer;
}

.activity-link:hover[b-gui717ks52] {
    text-decoration: underline;
}

.activity-detail[b-gui717ks52] {
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.activity-time[b-gui717ks52] {
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted);
    white-space: nowrap;
    flex-shrink: 0;
}
/* /Components/Pages/LegalHold/LegalHoldDetailPage.razor.rz.scp.css */
/* LH P2.3 + P2.4 — Legal Hold detail. Scoped styles (never global). EF tokens. */

.lhd-page[b-savxi0ro7t] {
    padding: var(--ef-space-20);
    font-family: var(--ef-font);
    color: var(--ef-text, #1f2937);
    max-width: 1100px;
    margin: 0 auto;
}

.lhd-head[b-savxi0ro7t] { margin-bottom: var(--ef-space-12); }
.lhd-back[b-savxi0ro7t] {
    background: transparent;
    border: 1px solid var(--ef-border, #d1d5db);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-4) var(--ef-space-12);
    font-size: var(--ef-text-13);
    cursor: pointer;
}
.lhd-back:hover[b-savxi0ro7t] { background: var(--ef-color-primary-bg); }

.lhd-title-row[b-savxi0ro7t] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--ef-space-16);
    margin-bottom: var(--ef-space-16);
}
.lhd-title[b-savxi0ro7t] { font-size: var(--ef-text-20); font-weight: 700; margin: 0 0 var(--ef-space-4) 0; }
.lhd-sub[b-savxi0ro7t] { display: flex; align-items: center; gap: var(--ef-space-12); flex-wrap: wrap; }
.lhd-ref[b-savxi0ro7t] { font-weight: 600; color: var(--ef-text-muted, #6b7280); font-size: var(--ef-text-13); }
.lhd-scope[b-savxi0ro7t] { font-size: var(--ef-text-12); color: var(--ef-text-muted, #6b7280); }

.lhd-actions[b-savxi0ro7t] { display: flex; align-items: center; gap: var(--ef-space-8); flex-shrink: 0; }
.lhd-pending[b-savxi0ro7t] { font-size: var(--ef-text-12); color: var(--ef-yellow-text, #92400e); font-weight: 600; }
.lhd-released[b-savxi0ro7t] { font-size: var(--ef-text-12); color: var(--ef-text-muted, #6b7280); max-width: 280px; }

.lhd-btn[b-savxi0ro7t] {
    border: 1px solid transparent;
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-13);
    font-weight: 600;
    cursor: pointer;
}
.lhd-btn:disabled[b-savxi0ro7t] { opacity: 0.5; cursor: not-allowed; }
.lhd-btn-secondary[b-savxi0ro7t] { background: #fff; border-color: var(--ef-border, #d1d5db); color: var(--ef-text, #374151); }
.lhd-btn-danger[b-savxi0ro7t] { background: var(--ef-color-danger, #dc2626); color: #fff; }
.lhd-btn-danger:hover:not(:disabled)[b-savxi0ro7t] { background: var(--ef-color-danger-hover, #b91c1c); }

/* Release form */
.lhd-release-form[b-savxi0ro7t] {
    border: 1px solid var(--ef-color-danger, #dc2626);
    background: var(--ef-red-bg, #fef2f2);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-12);
    margin-bottom: var(--ef-space-16);
}
.lhd-release-form label[b-savxi0ro7t] { display: block; font-size: var(--ef-text-13); font-weight: 600; margin-bottom: var(--ef-space-4); }
.lhd-req[b-savxi0ro7t] { color: var(--ef-color-danger, #dc2626); font-weight: 500; }
.lhd-input[b-savxi0ro7t] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ef-border, #d1d5db);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-8);
    font-family: var(--ef-font);
    font-size: var(--ef-text-13);
    resize: vertical;
}
.lhd-release-buttons[b-savxi0ro7t] { display: flex; justify-content: flex-end; gap: var(--ef-space-8); margin-top: var(--ef-space-8); }

/* Tabs */
.lhd-tabs[b-savxi0ro7t] {
    display: flex;
    gap: var(--ef-space-4);
    border-bottom: 1px solid var(--ef-border, #e5e7eb);
    margin-bottom: var(--ef-space-16);
}
.lhd-tab[b-savxi0ro7t] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-14);
    cursor: pointer;
    color: var(--ef-text-muted, #6b7280);
}
.lhd-tab:hover[b-savxi0ro7t] { color: var(--ef-color-primary); }
.lhd-tab-active[b-savxi0ro7t] { color: var(--ef-color-primary); border-bottom-color: var(--ef-color-primary); font-weight: 600; }

.lhd-panel[b-savxi0ro7t] { font-size: var(--ef-text-13); }

/* Table */
.lhd-table[b-savxi0ro7t] { width: 100%; border-collapse: collapse; font-size: var(--ef-text-13); }
.lhd-table th[b-savxi0ro7t], .lhd-table td[b-savxi0ro7t] {
    text-align: left;
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border, #eef0f3);
}
.lhd-table th[b-savxi0ro7t] { font-weight: 600; color: var(--ef-text-muted, #6b7280); background: var(--ef-surface-2, #f9fafb); }

/* Timeline */
.lhd-timeline[b-savxi0ro7t] { list-style: none; padding: 0; margin: 0; }
.lhd-event[b-savxi0ro7t] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-12);
    padding: var(--ef-space-8) 0;
    border-bottom: 1px solid var(--ef-border, #eef0f3);
    flex-wrap: wrap;
}
.lhd-event-type[b-savxi0ro7t] { flex-shrink: 0; }
.lhd-event-when[b-savxi0ro7t] { color: var(--ef-text-muted, #6b7280); font-size: var(--ef-text-12); }
.lhd-event-actor[b-savxi0ro7t] { font-weight: 600; }
.lhd-event-detail[b-savxi0ro7t] {
    font-family: var(--ef-font-mono, monospace);
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted, #6b7280);
    background: var(--ef-surface-2, #f9fafb);
    padding: 2px 6px;
    border-radius: 4px;
}

/* Criteria */
.lhd-repro[b-savxi0ro7t] {
    background: var(--ef-blue-bg, #eff6ff);
    color: var(--ef-blue-text, #1e40af);
    border: 1px solid var(--ef-color-primary, #2563eb);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-12);
    font-size: var(--ef-text-13);
    margin-bottom: var(--ef-space-12);
}
.lhd-criteria[b-savxi0ro7t] {
    background: var(--ef-surface-2, #f9fafb);
    border: 1px solid var(--ef-border, #e5e7eb);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-12);
    font-family: var(--ef-font-mono, monospace);
    font-size: var(--ef-text-12);
    overflow-x: auto;
    white-space: pre-wrap;
}

.lhd-status[b-savxi0ro7t] { color: var(--ef-text-muted, #6b7280); font-size: var(--ef-text-13); padding: var(--ef-space-16) 0; }
.lhd-error[b-savxi0ro7t] { color: var(--ef-red-text, #991b1b); font-size: var(--ef-text-13); }

.lhd-sr-only[b-savxi0ro7t] {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/Pages/LegalHold/LegalHoldList.razor.rz.scp.css */
/* LH P2.3 — Legal Hold list. Scoped styles (never global). EF design tokens. */

.lhl-page[b-4kp3icjg78] {
    padding: var(--ef-space-20);
    font-family: var(--ef-font);
    color: var(--ef-text, #1f2937);
    max-width: 1100px;
    margin: 0 auto;
}

.lhl-head[b-4kp3icjg78] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--ef-space-16);
}

.lhl-title[b-4kp3icjg78] { font-size: var(--ef-text-20); font-weight: 700; margin: 0; }

.lhl-btn[b-4kp3icjg78] {
    border: 1px solid transparent;
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-13);
    font-weight: 600;
    cursor: pointer;
}
.lhl-btn-primary[b-4kp3icjg78] { background: var(--ef-color-primary, #2563eb); color: #fff; }
.lhl-btn-primary:hover[b-4kp3icjg78] { background: var(--ef-color-primary-hover, #1d4ed8); }

.lhl-table[b-4kp3icjg78] { width: 100%; border-collapse: collapse; font-size: var(--ef-text-13); }
.lhl-table th[b-4kp3icjg78], .lhl-table td[b-4kp3icjg78] {
    text-align: left;
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border, #eef0f3);
}
.lhl-table th[b-4kp3icjg78] { font-weight: 600; color: var(--ef-text-muted, #6b7280); background: var(--ef-surface-2, #f9fafb); }
.lhl-row[b-4kp3icjg78] { cursor: pointer; }
.lhl-row:hover[b-4kp3icjg78] { background: var(--ef-surface-2, #f9fafb); }
.lhl-ref[b-4kp3icjg78] { color: var(--ef-color-primary, #2563eb); font-weight: 600; text-decoration: none; }
.lhl-ref:hover[b-4kp3icjg78] { text-decoration: underline; }

.lhl-status[b-4kp3icjg78] { color: var(--ef-text-muted, #6b7280); font-size: var(--ef-text-13); padding: var(--ef-space-16); }
.lhl-error[b-4kp3icjg78] { color: var(--ef-red-text, #991b1b); font-size: var(--ef-text-13); }

.lhl-sr-only[b-4kp3icjg78] {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/Pages/LegalHold/PlaceHold.razor.rz.scp.css */
/* LH P2.2 — Place wizard. Scoped styles (never global). EF design tokens. */

.lh-wizard[b-2ltrp3fxjc] {
    padding: var(--ef-space-20);
    font-family: var(--ef-font);
    color: var(--ef-text, #1f2937);
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    /* Bound the wizard to its CONTAINER (.app-body), not the viewport. The app
       shell is a 100vh flex column: header + .app-content (which holds @Body) +
       a persistent .status-bar. Sizing to 100vh made the wizard taller than
       .app-body, so its pinned footer (Back / Next / Place) extended past the
       content area and was COVERED by the status-bar. height:100% fills the
       already-correctly-bounded container instead. The head + stepper + footer
       stay put; only .lh-body scrolls. */
    height: 100%;
    box-sizing: border-box;
    min-height: 0;
}

.lh-head[b-2ltrp3fxjc] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-12);
    margin-bottom: var(--ef-space-16);
    flex-shrink: 0;
}

.lh-back[b-2ltrp3fxjc] {
    background: transparent;
    border: 1px solid var(--ef-border, #d1d5db);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-4) var(--ef-space-12);
    font-size: var(--ef-text-13);
    cursor: pointer;
}
.lh-back:hover[b-2ltrp3fxjc] { background: var(--ef-color-primary-bg); }

.lh-title[b-2ltrp3fxjc] { font-size: var(--ef-text-20); font-weight: 700; margin: 0; }

/* Stepper */
.lh-stepper[b-2ltrp3fxjc] {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0 0 var(--ef-space-20) 0;
    gap: var(--ef-space-8);
    flex-shrink: 0;
}
.lh-step[b-2ltrp3fxjc] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    flex: 1;
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 3px solid var(--ef-border, #e5e7eb);
    color: var(--ef-text-muted, #6b7280);
    font-size: var(--ef-text-13);
}
.lh-step-active[b-2ltrp3fxjc] { border-bottom-color: var(--ef-color-primary); color: var(--ef-color-primary); font-weight: 600; }
.lh-step-done[b-2ltrp3fxjc] { border-bottom-color: var(--ef-green-text, #16a34a); color: var(--ef-text, #1f2937); }
.lh-step-num[b-2ltrp3fxjc] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--ef-border, #e5e7eb); color: var(--ef-text, #374151);
    font-size: var(--ef-text-11); font-weight: 700;
}
.lh-step-active .lh-step-num[b-2ltrp3fxjc] { background: var(--ef-color-primary); color: #fff; }
.lh-step-done .lh-step-num[b-2ltrp3fxjc] { background: var(--ef-green-text, #16a34a); color: #fff; }

/* Body / panel — the single growing scroll region. Any step taller than the
   available space (e.g. a long cabinet picker or candidate grid) scrolls here,
   keeping the footer's action buttons always visible below it. */
.lh-body[b-2ltrp3fxjc] { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.lh-panel[b-2ltrp3fxjc] {
    border: 1px solid var(--ef-border, #e5e7eb);
    border-radius: var(--ef-radius, 8px);
    padding: var(--ef-space-20);
    background: var(--ef-surface, #fff);
}

/* Fields */
.lh-field[b-2ltrp3fxjc] { margin-bottom: var(--ef-space-16); }
.lh-field-row[b-2ltrp3fxjc] { display: flex; gap: var(--ef-space-16); flex-wrap: wrap; }
.lh-field-row .lh-field[b-2ltrp3fxjc] { flex: 1; min-width: 180px; }
.lh-field label[b-2ltrp3fxjc] { display: block; font-size: var(--ef-text-13); font-weight: 600; margin-bottom: var(--ef-space-4); }
/* Inline info affordance ("ⓘ") next to a field label — native title tooltip + keyboard-focusable. */
.lh-info-icon[b-2ltrp3fxjc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: var(--ef-space-4);
    padding: 0;
    border: none;
    background: none;
    color: var(--ef-text-muted, #6b7280);
    font-size: var(--ef-text-12);
    font-weight: 400;
    line-height: 1;
    cursor: help;
    vertical-align: baseline;
}
.lh-info-icon:hover[b-2ltrp3fxjc], .lh-info-icon:focus-visible[b-2ltrp3fxjc] { color: var(--ef-color-primary, #2563eb); }
.lh-info-icon:focus-visible[b-2ltrp3fxjc] { outline: 2px solid var(--ef-color-primary, #2563eb); outline-offset: 2px; border-radius: var(--ef-radius, 6px); }
.lh-req[b-2ltrp3fxjc] { color: var(--ef-color-danger, #dc2626); }
.lh-muted[b-2ltrp3fxjc] { color: var(--ef-text-muted, #6b7280); font-weight: 400; }
.lh-input[b-2ltrp3fxjc] {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ef-border, #d1d5db);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-8);
    font-family: var(--ef-font);
    font-size: var(--ef-text-13);
}
textarea.lh-input[b-2ltrp3fxjc] { resize: vertical; }
.lh-readonly[b-2ltrp3fxjc] { font-size: var(--ef-text-13); padding: var(--ef-space-8) 0; }
.lh-check[b-2ltrp3fxjc] { display: flex; align-items: center; gap: var(--ef-space-8); font-weight: 500; font-size: var(--ef-text-13); cursor: pointer; }

/* Custodian chips */
.lh-chips[b-2ltrp3fxjc] { display: flex; flex-wrap: wrap; gap: var(--ef-space-8); margin-bottom: var(--ef-space-8); }
.lh-chip[b-2ltrp3fxjc] {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--ef-color-primary-bg, #eff6ff);
    color: var(--ef-color-primary, #2563eb);
    border-radius: 12px; padding: 2px 6px 2px 10px; font-size: var(--ef-text-12);
}
.lh-chip-x[b-2ltrp3fxjc] { background: transparent; border: none; cursor: pointer; color: inherit; font-size: 15px; line-height: 1; }
.lh-chip-add[b-2ltrp3fxjc] { display: flex; gap: var(--ef-space-8); }
.lh-chip-add .lh-input[b-2ltrp3fxjc] { flex: 1; }

/* Scope segmented toggle */
.lh-scope[b-2ltrp3fxjc] { border: none; padding: 0; margin: 0 0 var(--ef-space-16) 0; }
.lh-scope legend[b-2ltrp3fxjc] { font-size: var(--ef-text-13); font-weight: 600; margin-bottom: var(--ef-space-8); padding: 0; }
.lh-segmented[b-2ltrp3fxjc] { display: inline-flex; border: 1px solid var(--ef-border, #d1d5db); border-radius: var(--ef-radius, 6px); overflow: hidden; }
.lh-seg[b-2ltrp3fxjc] {
    background: var(--ef-surface, #fff);
    border: none;
    border-right: 1px solid var(--ef-border, #d1d5db);
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-13);
    cursor: pointer;
    color: var(--ef-text, #374151);
}
.lh-seg:last-child[b-2ltrp3fxjc] { border-right: none; }
.lh-seg-active[b-2ltrp3fxjc] { background: var(--ef-color-primary, #2563eb); color: #fff; font-weight: 600; }

.lh-search-block[b-2ltrp3fxjc] { margin-top: var(--ef-space-8); }
.lh-sub[b-2ltrp3fxjc] { font-size: var(--ef-text-14); font-weight: 700; margin: var(--ef-space-16) 0 var(--ef-space-8) 0; }

/* Reproducibility note — always visible, legally material. */
.lh-repro[b-2ltrp3fxjc] {
    background: var(--ef-blue-bg, #eff6ff);
    color: var(--ef-blue-text, #1e40af);
    border: 1px solid var(--ef-color-primary, #2563eb);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-12);
    font-size: var(--ef-text-13);
    margin: var(--ef-space-16) 0;
}

.lh-warning[b-2ltrp3fxjc] {
    background: var(--ef-red-bg, #fef2f2);
    color: var(--ef-red-text, #991b1b);
    border: 1px solid var(--ef-color-danger, #dc2626);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-12);
    font-size: var(--ef-text-13);
    margin-top: var(--ef-space-8);
}

/* Cabinet picker — its own bounded scroll region. A tenant can carry dozens of
   cabinets; cap the height and scroll within rather than letting the list run off
   the page (the missing-scrollbar / truncation fix). */
.lh-cab-picker[b-2ltrp3fxjc] {
    display: flex;
    flex-direction: column;
    gap: var(--ef-space-8);
    margin-top: var(--ef-space-8);
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid var(--ef-border, #e5e7eb);
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-12);
    background: var(--ef-surface, #fff);
}
.lh-cab-summary[b-2ltrp3fxjc] { font-size: var(--ef-text-13); }

/* §2.2-R cabinet picker table — pick + per-cabinet mode (search vs wholesale). */
.lh-cab-table[b-2ltrp3fxjc] { width: 100%; border-collapse: collapse; font-size: var(--ef-text-13); }
.lh-cab-table th[b-2ltrp3fxjc], .lh-cab-table td[b-2ltrp3fxjc] {
    text-align: left;
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border, #eef0f3);
    vertical-align: middle;
}
.lh-cab-table th[b-2ltrp3fxjc] { font-weight: 600; color: var(--ef-text-muted, #6b7280); background: var(--ef-surface-2, #f9fafb); }

/* Small segmented control inside the cabinet-mode column. */
.lh-segmented-sm .lh-seg[b-2ltrp3fxjc] { padding: var(--ef-space-4) var(--ef-space-12); font-size: var(--ef-text-12); }

/* Review table */
.lh-review-bar[b-2ltrp3fxjc] { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--ef-space-8); }
.lh-count[b-2ltrp3fxjc] { font-size: var(--ef-text-13); color: var(--ef-text-muted, #6b7280); }
.lh-review-actions[b-2ltrp3fxjc] { display: flex; gap: var(--ef-space-12); }
.lh-link[b-2ltrp3fxjc] { background: none; border: none; color: var(--ef-color-primary, #2563eb); cursor: pointer; font-size: var(--ef-text-13); padding: 0; }
.lh-link:hover[b-2ltrp3fxjc] { text-decoration: underline; }

.lh-table[b-2ltrp3fxjc] { width: 100%; border-collapse: collapse; font-size: var(--ef-text-13); }
.lh-table th[b-2ltrp3fxjc], .lh-table td[b-2ltrp3fxjc] {
    text-align: left;
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border, #eef0f3);
}
.lh-table th[b-2ltrp3fxjc] { font-weight: 600; color: var(--ef-text-muted, #6b7280); background: var(--ef-surface-2, #f9fafb); }
.lh-col-check[b-2ltrp3fxjc] { width: 36px; text-align: center; }

.lh-summary[b-2ltrp3fxjc] { display: grid; grid-template-columns: 180px 1fr; gap: var(--ef-space-8) var(--ef-space-16); font-size: var(--ef-text-13); margin: 0; }
.lh-summary dt[b-2ltrp3fxjc] { font-weight: 600; color: var(--ef-text-muted, #6b7280); }
.lh-summary dd[b-2ltrp3fxjc] { margin: 0; }

/* Status / error */
.lh-status[b-2ltrp3fxjc] { color: var(--ef-text-muted, #6b7280); font-size: var(--ef-text-13); padding: var(--ef-space-8) 0; }
.lh-error[b-2ltrp3fxjc] { color: var(--ef-red-text, #991b1b); font-size: var(--ef-text-13); }

/* Footer — never scrolls away. flex-shrink:0 keeps the action buttons pinned
   below the scrolling .lh-body so Back / Save draft / Next / Place are ALWAYS
   visible regardless of step-body length. */
.lh-footer[b-2ltrp3fxjc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    margin-top: var(--ef-space-16);
    padding-top: var(--ef-space-16);
    border-top: 1px solid var(--ef-border, #e5e7eb);
    background: var(--ef-surface, #fff);
}
.lh-footer-right[b-2ltrp3fxjc] { display: flex; gap: var(--ef-space-8); }

.lh-btn[b-2ltrp3fxjc] {
    border: 1px solid transparent;
    border-radius: var(--ef-radius, 6px);
    padding: var(--ef-space-8) var(--ef-space-16);
    font-size: var(--ef-text-13);
    font-weight: 600;
    cursor: pointer;
}
.lh-btn:disabled[b-2ltrp3fxjc] { opacity: 0.5; cursor: not-allowed; }
.lh-btn-primary[b-2ltrp3fxjc] { background: var(--ef-color-primary, #2563eb); color: #fff; }
.lh-btn-primary:hover:not(:disabled)[b-2ltrp3fxjc] { background: var(--ef-color-primary-hover, #1d4ed8); }
.lh-btn-secondary[b-2ltrp3fxjc] { background: #fff; border-color: var(--ef-border, #d1d5db); color: var(--ef-text, #374151); }
.lh-btn-secondary:hover:not(:disabled)[b-2ltrp3fxjc] { background: var(--ef-surface-2, #f9fafb); }

/* Screen-reader-only caption */
.lh-sr-only[b-2ltrp3fxjc] {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* /Components/Pages/Mobile/MobileCabinetPicker.razor.rz.scp.css */
/* Plan 118 Phase 3 (v7.536) — section headings on the mobile cabinet picker */
.m-section-label[b-02kc3syrpm] {
    padding: 4px 4px 6px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--ef-text-muted);
}
/* /Components/Pages/Mobile/MobileCabinetSearch.razor.rz.scp.css */
/* Sticky search bar at the top of the result list — sits flush under the
   48-px MobileLayout top-bar so the input stays available while scrolling. */

.m-search-wrap[b-xtttrke5al] {
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--ef-bg, #f9fafb);
    padding: 12px 12px 8px;
    border-bottom: 1px solid var(--ef-border, #e5e7eb);
}

.m-search-bar[b-xtttrke5al] {
    display: flex;
    gap: 8px;
}

.m-search-input[b-xtttrke5al] {
    flex: 1;
}

.m-search-btn[b-xtttrke5al] {
    flex-shrink: 0;
    width: 48px;
    padding: 0;
}

/* Plan 118 Phase 2 (v7.536) — per-field filters, sort, result count */
.m-filter-toggle[b-xtttrke5al] {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    margin-top: 6px;
    padding: 8px 10px;
    border: 1px solid var(--ef-border);
    border-radius: 8px;
    background: var(--ef-surface);
    color: var(--ef-text-muted);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.m-filters[b-xtttrke5al] {
    margin-top: 6px;
    padding: 10px;
    border: 1px solid var(--ef-border);
    border-radius: 8px;
    background: var(--ef-surface);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.m-filter-row[b-xtttrke5al] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.m-filter-label[b-xtttrke5al] {
    font-size: 12px;
    font-weight: 600;
    color: var(--ef-text-muted);
}

.m-result-count[b-xtttrke5al] {
    padding: 2px 4px 8px;
    font-size: 12px;
    color: var(--ef-text-muted);
}
/* /Components/Pages/Mobile/MobileDocumentViewer.razor.rz.scp.css */
/* Full-bleed document viewer — fills everything below the layout's 48-px top
   bar. height: 100% so it follows .m-body's flex sizing instead of fighting
   it; the WebViewer iframe inside fills the container 1:1. */

.m-viewer-wrap[b-oji90924iw] {
    height: 100%;
    width: 100%;
    background: #525659; /* PDFTron's default page-background grey */
    display: flex;
}

.m-webviewer[b-oji90924iw] {
    flex: 1;
    width: 100%;
    height: 100%;
    min-height: 0;
}

/* The WebViewer JS injects an <iframe> into #m-webviewer — make sure it
   stretches with us. */
.m-webviewer iframe[b-oji90924iw] {
    width: 100% !important;
    height: 100% !important;
    border: none;
    display: block;
}

/* Plan 118 Phase 1 (v7.535) — version picker bar above the viewer */
.m-version-bar[b-oji90924iw] {
    padding: 8px 12px;
    background: var(--ef-surface);
    border-bottom: 1px solid var(--ef-border);
}
/* /Components/Pages/ReleaseNotes/ReleaseNotes.razor.rz.scp.css */
.rn-page[b-ftsft2bmxx] {
    height: 100%;
    overflow-y: auto;
    box-sizing: border-box;
    padding: var(--ef-space-32) max(var(--ef-space-24), calc(50% - 400px));
}

.rn-header[b-ftsft2bmxx] {
    margin-bottom: var(--ef-space-32);
    border-bottom: 1px solid var(--ef-border);
    padding-bottom: var(--ef-space-16);
}

.rn-h1[b-ftsft2bmxx] {
    font-size: var(--ef-text-24);
    font-weight: 700;
    color: var(--ef-text);
    margin: 0 0 var(--ef-space-4);
}

.rn-sub[b-ftsft2bmxx] {
    font-size: var(--ef-text-14);
    color: var(--ef-text-muted);
    margin: 0;
}

.rn-release[b-ftsft2bmxx] {
    margin-bottom: var(--ef-space-32);
}

.rn-version-row[b-ftsft2bmxx] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-12);
    margin-bottom: var(--ef-space-4);
}

.rn-version[b-ftsft2bmxx] {
    font-size: var(--ef-text-20);
    font-weight: 700;
    color: var(--ef-text);
    margin: 0;
}

.rn-date[b-ftsft2bmxx] {
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
}

.rn-pill[b-ftsft2bmxx] {
    font-size: var(--ef-text-11);
    padding: 2px 10px;
    border-radius: 999px;
    font-weight: 500;
}

.rn-pill-current[b-ftsft2bmxx] {
    background: var(--ef-primary-bg, rgba(37, 99, 235, 0.1));
    color: var(--ef-color-primary);
}

.rn-components[b-ftsft2bmxx] {
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    margin-bottom: var(--ef-space-24);
}

.rn-components strong[b-ftsft2bmxx] {
    color: var(--ef-text);
}

.rn-sep[b-ftsft2bmxx] {
    margin: 0 6px;
    opacity: 0.5;
}

.rn-h3[b-ftsft2bmxx] {
    font-size: var(--ef-text-16, 16px);
    font-weight: 600;
    color: var(--ef-text);
    margin: var(--ef-space-24) 0 var(--ef-space-8);
}

.rn-release p[b-ftsft2bmxx] {
    font-size: var(--ef-text-14);
    color: var(--ef-text);
    line-height: 1.6;
    margin: 0 0 var(--ef-space-12);
}

.rn-release ul[b-ftsft2bmxx] {
    margin: 0 0 var(--ef-space-16);
    padding-left: var(--ef-space-24);
    color: var(--ef-text);
    font-size: var(--ef-text-14);
    line-height: 1.7;
}

.rn-release li[b-ftsft2bmxx] {
    margin-bottom: 4px;
}

.rn-release code[b-ftsft2bmxx] {
    background: var(--ef-surface-2);
    border: 1px solid var(--ef-border);
    border-radius: 4px;
    padding: 1px 6px;
    font-family: var(--ef-font-mono, "Consolas", "Monaco", monospace);
    font-size: 0.92em;
    color: var(--ef-text);
}

.rn-footer[b-ftsft2bmxx] {
    margin-top: var(--ef-space-32);
    padding-top: var(--ef-space-16);
    border-top: 1px solid var(--ef-border);
}

.rn-footer-note[b-ftsft2bmxx] {
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    text-align: center;
    margin: 0;
}

.rn-footer-note a[b-ftsft2bmxx] {
    color: var(--ef-color-primary);
    text-decoration: none;
}

.rn-footer-note a:hover[b-ftsft2bmxx] {
    text-decoration: underline;
}
/* /Components/Pages/Search/GlobalSearch.razor.rz.scp.css */
/* ── Page shell ──────────────────────────────────────────── */
/* MainLayout's .app-body is overflow:hidden — make this page its own
   scroll container so long result lists scroll.
   v7.550 (Plan 123): full screen width (was centered at 960px) — result rows
   now carry every index field, so the page uses all the room it can get. */
.gs-page[b-7eidkaaath] {
    height: 100%;
    overflow-y: auto;
    box-sizing: border-box;
    padding: var(--ef-space-24);
}

.gs-title[b-7eidkaaath] {
    font-size: var(--ef-text-20);
    font-weight: 600;
    color: var(--ef-text);
    margin: 0 0 var(--ef-space-16);
}

/* ── Search row ──────────────────────────────────────────── */
.gs-search-row[b-7eidkaaath] {
    display: flex;
    gap: var(--ef-space-8);
    margin-bottom: var(--ef-space-16);
}

.gs-input-wrap[b-7eidkaaath] {
    flex: 1;
    position: relative;
}

.gs-input-icon[b-7eidkaaath] {
    position: absolute;
    left: var(--ef-space-12);
    top: 50%;
    transform: translateY(-50%);
    color: var(--ef-text-muted);
    pointer-events: none;
}

.gs-input[b-7eidkaaath] {
    width: 100%;
    padding-left: 36px !important;
    height: var(--ef-btn-height-lg);
    font-size: var(--ef-text-14);
}

.gs-spinner-inline[b-7eidkaaath] {
    width: 14px;
    height: 14px;
    border-width: 2px;
    margin-right: 6px;
    display: inline-block;
}

/* ── Cabinet pills ───────────────────────────────────────── */
.gs-cabinet-pills[b-7eidkaaath] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ef-space-8);
    margin-bottom: var(--ef-space-20);
    align-items: center;
}

.gs-pill[b-7eidkaaath] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid var(--ef-border);
    border-radius: 999px;
    background: var(--ef-surface);
    color: var(--ef-text);
    font-size: var(--ef-text-13);
    font-family: var(--ef-font);
    cursor: pointer;
    transition: all 100ms;
    white-space: nowrap;
    line-height: 1;
}

.gs-pill:hover[b-7eidkaaath] {
    border-color: var(--ef-color-primary);
    color: var(--ef-color-primary);
}

.gs-pill.selected[b-7eidkaaath] {
    background: var(--ef-primary-bg, rgba(37, 99, 235, 0.1));
    color: var(--ef-color-primary);
    border-color: var(--ef-color-primary);
    font-weight: 500;
}

.gs-pill-dot[b-7eidkaaath] {
    font-size: 8px;
    line-height: 1;
}

.gs-pill-badge[b-7eidkaaath] {
    background: var(--ef-color-primary);
    color: #fff;
    font-size: var(--ef-text-11);
    padding: 1px 7px;
    border-radius: 999px;
    min-width: 18px;
    text-align: center;
    line-height: 1.4;
}

/* ── Summary ─────────────────────────────────────────────── */
.gs-summary[b-7eidkaaath] {
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    margin-bottom: var(--ef-space-16);
}

.gs-summary strong[b-7eidkaaath] {
    color: var(--ef-text);
}

.gs-timing[b-7eidkaaath] {
    margin-left: 6px;
    opacity: 0.6;
}

/* ── Loading / hint / empty / error states ───────────────── */
.gs-loading[b-7eidkaaath] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-12);
    padding: var(--ef-space-32) var(--ef-space-16);
    color: var(--ef-text-muted);
}

.gs-hint-state[b-7eidkaaath],
.gs-empty[b-7eidkaaath] {
    text-align: center;
    padding: var(--ef-space-48) var(--ef-space-16);
    color: var(--ef-text-muted);
}

.gs-hint-icon[b-7eidkaaath] {
    color: var(--ef-text-muted);
    opacity: 0.4;
    margin-bottom: var(--ef-space-12);
}

.gs-hint[b-7eidkaaath] {
    font-size: var(--ef-text-13);
    margin-top: var(--ef-space-8);
}

.gs-error[b-7eidkaaath] {
    padding: var(--ef-space-12) var(--ef-space-16);
    color: var(--ef-red);
    background: var(--ef-red-bg);
    border: 1px solid var(--ef-red-bg);
    border-radius: var(--ef-radius-6);
    font-size: var(--ef-text-13);
}

/* ── Cabinet result groups ───────────────────────────────── */
.gs-cabinet-group[b-7eidkaaath] {
    border: 1px solid var(--ef-border);
    border-radius: 8px;
    margin-bottom: var(--ef-space-16);
    overflow: hidden;
    background: var(--ef-surface);
}

.gs-cabinet-header[b-7eidkaaath] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-12) var(--ef-space-16);
    background: var(--ef-surface-2);
    border-bottom: 1px solid var(--ef-border);
    color: var(--ef-text);
}

.gs-cabinet-label[b-7eidkaaath] {
    font-weight: 600;
    font-size: var(--ef-text-13);
}

.gs-count-badge[b-7eidkaaath] {
    font-size: var(--ef-text-12);
    background: var(--ef-primary-bg, rgba(37, 99, 235, 0.1));
    color: var(--ef-color-primary);
    padding: 2px 10px;
    border-radius: 999px;
    margin-left: auto;
    font-weight: 500;
}

/* ── Result table ────────────────────────────────────────── */
/* v7.550 (Plan 123) — wide cabinets scroll horizontally inside their own
   group; the page body itself never scrolls sideways. */
.gs-table-wrap[b-7eidkaaath] {
    overflow-x: auto;
}

.gs-table[b-7eidkaaath] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--ef-text-13);
}

.gs-head-row[b-7eidkaaath] {
    cursor: default;
}

.gs-table th[b-7eidkaaath] {
    padding: var(--ef-space-8) var(--ef-space-16);
    text-align: left;
    font-weight: 600;
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    white-space: nowrap;
    border-bottom: 1px solid var(--ef-border);
    background: var(--ef-surface);
}

.gs-table tr[b-7eidkaaath] {
    border-top: 1px solid var(--ef-border);
    cursor: pointer;
    transition: background 100ms;
}

.gs-table tr:first-child[b-7eidkaaath] {
    border-top: none;
}

.gs-table tr:hover[b-7eidkaaath] {
    background: var(--ef-surface-hover);
}

.gs-table td[b-7eidkaaath] {
    padding: var(--ef-space-8) var(--ef-space-16);
    vertical-align: middle;
}

.gs-td-docid[b-7eidkaaath] {
    color: var(--ef-color-primary);
    font-weight: 500;
    white-space: nowrap;
    width: 80px;
}

.gs-td-modified[b-7eidkaaath] {
    color: var(--ef-text-muted);
    white-space: nowrap;
    width: 110px;
}

.gs-td-preview[b-7eidkaaath] {
    color: var(--ef-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 280px;
}

.gs-th-field[b-7eidkaaath] {
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gs-td-action[b-7eidkaaath] {
    text-align: right;
    width: 40px;
}

/* ── View all link ───────────────────────────────────────── */
.gs-view-all[b-7eidkaaath] {
    display: block;
    padding: var(--ef-space-8) var(--ef-space-16);
    color: var(--ef-color-primary);
    font-size: var(--ef-text-13);
    border-top: 1px solid var(--ef-border);
    cursor: pointer;
    text-decoration: none;
    background: var(--ef-surface);
}

.gs-view-all:hover[b-7eidkaaath] {
    background: var(--ef-surface-hover);
    text-decoration: underline;
}
/* /Components/Pages/Settings/UserProfile.razor.rz.scp.css */
.settings[b-6wnhhjmkep] {
    padding: 24px;
    max-width: 640px;
}

.settings-title[b-6wnhhjmkep] {
    font-size: var(--ef-text-24);
    font-weight: 700;
    color: var(--ef-text);
    margin-bottom: 24px;
}

.settings-notice[b-6wnhhjmkep] {
    color: var(--ef-text-muted);
}

.settings-section[b-6wnhhjmkep] {
    margin-bottom: 16px;
}

.profile-grid[b-6wnhhjmkep] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.profile-grid .fg:last-child[b-6wnhhjmkep] {
    grid-column: 1 / -1;
}

.theme-options[b-6wnhhjmkep] {
    display: flex;
    gap: 16px;
}

.theme-option[b-6wnhhjmkep] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--ef-text-13);
    cursor: pointer;
}

.settings-select[b-6wnhhjmkep] {
    max-width: 200px;
}

.settings-actions[b-6wnhhjmkep] {
    margin-top: 16px;
}

.settings-message[b-6wnhhjmkep] {
    margin-top: 12px;
    font-size: var(--ef-text-13);
    color: var(--ef-green);
}
/* /Components/Pages/SharedDocument.razor.rz.scp.css */
.sd-container[b-xmignblg73] {
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    background: #fff;
}

.sd-center[b-xmignblg73] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.sd-error-box[b-xmignblg73] {
    text-align: center;
    padding: 40px;
    color: #721c24;
    background: #f8d7da;
    border: 1px solid #f5c6cb;
    border-radius: 6px;
    max-width: 420px;
}

.sd-pwd-box[b-xmignblg73] {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 32px;
    width: 360px;
    box-shadow: 0 4px 20px rgba(0,0,0,.12);
    font-family: "Segoe UI", sans-serif;
    font-size: 13px;
}

.sd-input[b-xmignblg73] {
    width: 100%;
    height: 34px;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 0 10px;
    font-size: 13px;
    box-sizing: border-box;
}

.sd-input:focus[b-xmignblg73] { outline: none; border-color: #86b7fe; box-shadow: 0 0 0 2px rgba(13,110,253,.15); }

.sd-pwd-error[b-xmignblg73] {
    color: #721c24;
    background: #f8d7da;
    border: 1px solid #f5c6cb;
    border-radius: 3px;
    padding: 5px 8px;
    font-size: 12px;
    margin-top: 6px;
}
/* /Components/Pages/Site/SiteTab.razor.rz.scp.css */
.st-page[b-4nbnb6rlt5] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.st-iframe[b-4nbnb6rlt5] {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    border: none;
    background: var(--ef-bg);
}

.st-toolbar[b-4nbnb6rlt5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2px var(--ef-space-12);   /* slimmer — recover vertical space */
    background: var(--ef-surface-2);
    border-bottom: 1px solid var(--ef-border);
    flex-shrink: 0;
    min-height: 0;
    line-height: 1.4;
}

.st-toolbar-label[b-4nbnb6rlt5] {
    font-size: var(--ef-text-13);
    font-weight: 600;
    color: var(--ef-text);
}

.st-open-link[b-4nbnb6rlt5] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--ef-text-12);
    color: var(--ef-color-primary);
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--ef-font);
}

.st-open-link:hover[b-4nbnb6rlt5] {
    text-decoration: underline;
}

.st-empty[b-4nbnb6rlt5] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--ef-text-muted);
    font-size: var(--ef-text-14);
}
/* /Components/Pages/Templates/Templates.razor.rz.scp.css */
/* Plan 106 Phase 4 — Document Templates management page.
   Tokens only; Plan 100 records real drift here, where an undefined var falls back silently. */

.tpl-page[b-0q3ohpcj06] { padding: var(--ef-space-16); max-width: 1100px; }

.tpl-title[b-0q3ohpcj06] { font-size: var(--ef-text-20); margin: 0 0 var(--ef-space-8); }
.tpl-subtitle[b-0q3ohpcj06] { font-size: var(--ef-text-15); margin: 0 0 var(--ef-space-12); }

.tpl-intro[b-0q3ohpcj06] {
    color: var(--ef-text-muted);
    font-size: var(--ef-text-13);
    margin: 0 0 var(--ef-space-16);
    max-width: 70ch;
}

.tpl-msg[b-0q3ohpcj06] {
    padding: var(--ef-space-8) var(--ef-space-12);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    background: var(--ef-surface-2);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-13);
    margin-bottom: var(--ef-space-12);
}

.tpl-error[b-0q3ohpcj06] { color: var(--ef-color-danger); border-color: var(--ef-color-danger); }
.tpl-notice[b-0q3ohpcj06] { color: var(--ef-text); }

.tpl-toolbar[b-0q3ohpcj06] { margin-bottom: var(--ef-space-12); }

.tpl-btn[b-0q3ohpcj06] {
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    color: var(--ef-text);
    font-size: var(--ef-text-13);
    padding: 5px 12px;
    cursor: pointer;
}

.tpl-btn:hover:not(:disabled)[b-0q3ohpcj06] { border-color: var(--ef-color-primary); }
.tpl-btn:disabled[b-0q3ohpcj06] { opacity: .6; cursor: default; }

.tpl-btn-primary[b-0q3ohpcj06] { background: var(--ef-color-primary); border-color: var(--ef-color-primary); color: #fff; }
.tpl-btn-danger[b-0q3ohpcj06] { border-color: var(--ef-color-danger); color: var(--ef-color-danger); }

.tpl-table[b-0q3ohpcj06] { width: 100%; border-collapse: collapse; font-size: var(--ef-text-13); }

.tpl-table th[b-0q3ohpcj06],
.tpl-table td[b-0q3ohpcj06] {
    text-align: left;
    padding: var(--ef-space-8);
    border-bottom: 1px solid var(--ef-border);
    vertical-align: top;
}

.tpl-table th[b-0q3ohpcj06] { color: var(--ef-text-muted); font-weight: 600; }

/* A broken template must be obvious in the list, not discovered at instantiate time. */
.tpl-row-attention[b-0q3ohpcj06] { background: var(--ef-surface-2); }

.tpl-attention[b-0q3ohpcj06] {
    color: var(--ef-color-danger);
    font-size: var(--ef-text-11);
    font-weight: 600;
    margin-top: 2px;
}

.tpl-reasons[b-0q3ohpcj06] {
    margin: 4px 0 0;
    padding-left: var(--ef-space-16);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-11);
}

.tpl-actions[b-0q3ohpcj06] { white-space: nowrap; }
.tpl-actions .tpl-btn[b-0q3ohpcj06] { margin-right: 4px; }

.tpl-editor[b-0q3ohpcj06] {
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    padding: var(--ef-space-16);
    background: var(--ef-surface);
}

.tpl-label[b-0q3ohpcj06] {
    display: block;
    margin-bottom: var(--ef-space-12);
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
}

.tpl-input[b-0q3ohpcj06] {
    display: block;
    width: 100%;
    max-width: 420px;
    margin-top: 4px;
    padding: 5px 8px;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    background: var(--ef-surface);
    color: var(--ef-text);
    font-size: var(--ef-text-13);
}

.tpl-prefill[b-0q3ohpcj06] {
    margin: var(--ef-space-16) 0;
    padding-top: var(--ef-space-12);
    border-top: 1px solid var(--ef-border);
}

.tpl-prefill-head[b-0q3ohpcj06] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--ef-space-8);
    font-size: var(--ef-text-13);
}

.tpl-prefill-row[b-0q3ohpcj06] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.tpl-prefill-row .tpl-input[b-0q3ohpcj06] { margin-top: 0; max-width: 260px; }

.tpl-row-error[b-0q3ohpcj06] { color: var(--ef-color-danger); font-size: var(--ef-text-11); }

.tpl-editor-actions[b-0q3ohpcj06] {
    display: flex;
    gap: var(--ef-space-8);
    padding-top: var(--ef-space-12);
    border-top: 1px solid var(--ef-border);
}
/* /Components/Pages/WhatsNew/WhatsNew.razor.rz.scp.css */
.wn-page[b-3l417fbem8] {
    height: 100%;
    overflow-y: auto;
    box-sizing: border-box;
    padding: var(--ef-space-32) max(var(--ef-space-24), calc(50% - 400px));
}

.wn-header[b-3l417fbem8] {
    margin-bottom: var(--ef-space-32);
    border-bottom: 1px solid var(--ef-border);
    padding-bottom: var(--ef-space-16);
}

.wn-h1[b-3l417fbem8] {
    font-size: var(--ef-text-24);
    font-weight: 700;
    color: var(--ef-text);
    margin: 0 0 var(--ef-space-4);
}

.wn-sub[b-3l417fbem8] {
    font-size: var(--ef-text-14);
    color: var(--ef-text-muted);
    margin: 0;
}

.wn-group[b-3l417fbem8] {
    margin-bottom: var(--ef-space-32);
}

.wn-area[b-3l417fbem8] {
    font-size: var(--ef-text-12);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ef-color-primary);
    margin: 0 0 var(--ef-space-12);
    padding-bottom: var(--ef-space-4);
    border-bottom: 1px solid var(--ef-border);
}

.wn-item[b-3l417fbem8] {
    margin-bottom: var(--ef-space-16);
    max-width: 65ch;
}

.wn-name[b-3l417fbem8] {
    font-size: var(--ef-text-15);
    font-weight: 600;
    color: var(--ef-text);
    margin: 0 0 var(--ef-space-4);
}

.wn-ver[b-3l417fbem8] {
    font-size: var(--ef-text-11);
    font-weight: 500;
    color: var(--ef-text-muted);
    margin-left: var(--ef-space-4);
    white-space: nowrap;
}

.wn-item p[b-3l417fbem8] {
    font-size: var(--ef-text-13);
    color: var(--ef-text);
    line-height: 1.55;
    margin: 0 0 var(--ef-space-4);
}

.wn-item code[b-3l417fbem8] {
    font-size: var(--ef-text-12);
    background: var(--ef-surface-alt, rgba(127, 127, 127, 0.12));
    padding: 1px 5px;
    border-radius: var(--ef-radius-4);
}

.wn-where[b-3l417fbem8] {
    font-size: var(--ef-text-12) !important;
    color: var(--ef-text-muted) !important;
}

.wn-footer[b-3l417fbem8] {
    border-top: 1px solid var(--ef-border);
    padding-top: var(--ef-space-16);
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
}

.wn-footer a[b-3l417fbem8] {
    color: var(--ef-color-primary);
}
/* /Components/Pages/Workspace/MyWorkspace.razor.rz.scp.css */
.workspace[b-tp9udtlu0i] {
    padding: 24px;
    overflow-y: auto;
    height: 100%;
}

.workspace-header[b-tp9udtlu0i] {
    margin-bottom: 24px;
}

.workspace-title[b-tp9udtlu0i] {
    font-size: var(--ef-text-24);
    font-weight: 700;
    color: var(--ef-text);
    margin-bottom: 4px;
}

.workspace-subtitle[b-tp9udtlu0i] {
    font-size: var(--ef-text-14);
    color: var(--ef-text-muted);
}

.workspace-loading[b-tp9udtlu0i] {
    display: flex;
    justify-content: center;
    padding: 48px;
}

.workspace-section[b-tp9udtlu0i] {
    margin-bottom: 20px;
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    padding: 20px 24px;
}

.workspace-section-header[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--ef-space-16);
    flex-wrap: wrap;
    gap: var(--ef-space-8);
}

/* v7.710 — the My Cabinets filter. margin-left:auto so the title keeps the left edge and the search
   sits WITH the Add Cabinet button rather than floating to the middle, which is where a third child
   lands under justify-content: space-between. */
.ws-cab-search[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-4);
    margin-left: auto;
}

.ws-cab-search .fi[b-tp9udtlu0i] {
    width: 200px;
    max-width: 40vw;
    padding: 4px 8px;
    font-size: var(--ef-text-13);
}

.workspace-section-title[b-tp9udtlu0i] {
    font-size: var(--ef-text-16);
    font-weight: 600;
    color: var(--ef-text);
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    margin: 0;
}

.workspace-count[b-tp9udtlu0i] {
    background: var(--ef-color-primary);
    color: #fff;
    font-size: var(--ef-text-11);
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 10px;
}

.workspace-filter[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
}

.workspace-filter .fi[b-tp9udtlu0i] {
    min-width: 220px;
}

.workspace-empty[b-tp9udtlu0i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px 24px;
    text-align: center;
    color: var(--ef-text-muted);
}

.workspace-empty p[b-tp9udtlu0i] {
    margin: 8px 0 0;
    font-size: var(--ef-text-14);
}

.workspace-empty-hint[b-tp9udtlu0i] {
    font-size: var(--ef-text-13) !important;
    max-width: 400px;
}

/* ── Search card grid ── */
.search-grid[b-tp9udtlu0i] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}

.search-card[b-tp9udtlu0i] {
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    overflow: hidden;
    display: flex;
    transition: box-shadow 150ms, border-color 150ms;
    cursor: default;
}

.search-card:hover[b-tp9udtlu0i] {
    border-color: var(--ef-color-primary);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.search-card-accent[b-tp9udtlu0i] {
    width: 4px;
    background: var(--ef-color-primary);
    flex-shrink: 0;
}

.search-card-content[b-tp9udtlu0i] {
    flex: 1;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.search-card-top[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.search-card-name[b-tp9udtlu0i] {
    font-size: var(--ef-text-14);
    font-weight: 600;
    color: var(--ef-text);
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
}

.search-card-meta[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--ef-text-12);
}

.search-card-cabinet[b-tp9udtlu0i] {
    background: var(--ef-bg-muted, #edf2f7);
    color: var(--ef-text-muted);
    padding: 2px 8px;
    border-radius: 4px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 180px;
}

.search-card-date[b-tp9udtlu0i] {
    color: var(--ef-text-muted);
    white-space: nowrap;
}

.search-card-criteria[b-tp9udtlu0i] {
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-style: italic;
}

.search-card-actions[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.search-card-delete[b-tp9udtlu0i] {
    color: var(--ef-text-muted) !important;
    margin-left: auto;
}

.search-card-delete:hover[b-tp9udtlu0i] {
    color: var(--ef-red, #e53e3e) !important;
}

/* ── My Projects ── the projects this user manages (Project Manager or Operations Manager). This is the
   section's PRIMARY content: a table rather than cards, because it mirrors the Project Manager grid and
   people scan it by column. Pinned projects follow underneath as a secondary block. */
.wp-managed[b-tp9udtlu0i] {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--ef-border);
}

/* Pinned projects, now secondary to the managed list. */
.wp-pinned-title[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    margin: 18px 0 10px;
    padding-top: 14px;
    border-top: 1px solid var(--ef-border);
}

.wp-managed-title[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    margin: 0 0 10px;
}

.wp-managed-wrap[b-tp9udtlu0i] {
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    overflow-x: auto;
}

.wp-managed-table[b-tp9udtlu0i] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.wp-managed-table th[b-tp9udtlu0i] {
    padding: 9px 12px;
    text-align: left;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--ef-text-muted);
    background: var(--ef-surface-2, var(--ef-surface));
    border-bottom: 1px solid var(--ef-border);
    white-space: nowrap;
}

.wp-managed-table td[b-tp9udtlu0i] {
    padding: 9px 12px;
    border-bottom: 1px solid var(--ef-border);
}

.wp-managed-table tbody tr:last-child td[b-tp9udtlu0i] { border-bottom: none; }

.wp-managed-row[b-tp9udtlu0i] { cursor: pointer; }
.wp-managed-row:hover[b-tp9udtlu0i] { background: var(--ef-surface-2, var(--ef-bg)); }

.wp-strong[b-tp9udtlu0i] { font-weight: 600; white-space: nowrap; }

/* v7.607 — per-project task expanders. Red = something is due within a day or overdue. */
.wp-task-toggle-cell[b-tp9udtlu0i] { width: 1%; white-space: nowrap; }
.wp-task-toggle[b-tp9udtlu0i] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--ef-text-muted);
    background: var(--ef-surface-2, var(--ef-bg));
    border: 1px solid var(--ef-border);
    border-radius: 999px;
    cursor: pointer;
}
.wp-task-toggle.urgent[b-tp9udtlu0i] {
    color: #fff;
    background: var(--ef-red, #dc2626);
    border-color: var(--ef-red, #dc2626);
}
.wp-task-chevron[b-tp9udtlu0i] { font-size: 10px; }
.wp-task-urgent-text[b-tp9udtlu0i] { color: var(--ef-red, #dc2626); }

.wp-task-detail-row td[b-tp9udtlu0i] { background: var(--ef-surface-2, var(--ef-bg)); }
.wp-task-list[b-tp9udtlu0i] { list-style: none; margin: 0; padding: 2px 0; display: flex; flex-direction: column; gap: 4px; }
.wp-task[b-tp9udtlu0i] { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.wp-task-mark[b-tp9udtlu0i] { width: 14px; text-align: center; font-weight: 700; color: var(--ef-text-muted); flex: none; }
.wp-task.urgent .wp-task-mark[b-tp9udtlu0i] { color: var(--ef-red, #dc2626); }
.wp-task-text[b-tp9udtlu0i] { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.wp-task.done .wp-task-text[b-tp9udtlu0i] { text-decoration: line-through; color: var(--ef-text-muted); font-weight: 400; }
.wp-task-assignee[b-tp9udtlu0i] { font-size: 12px; color: var(--ef-text-muted); white-space: nowrap; }
.wp-task-assignee[b-tp9udtlu0i]::before { content: "→ "; }
.wp-task-due[b-tp9udtlu0i] { font-size: 12px; color: var(--ef-text-muted); white-space: nowrap; }
.wp-task.urgent .wp-task-due[b-tp9udtlu0i] { color: var(--ef-red, #dc2626); font-weight: 600; }

/* Cabinet cell: name plus its own Open button. The button stays on one line with the name so the column
   doesn't grow a second row on narrow screens. */
.wp-cab-cell[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

/* ── Quick Link cards ── */
.link-grid[b-tp9udtlu0i] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 12px;
}

.link-card[b-tp9udtlu0i] {
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-8);
    padding: 12px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    transition: border-color 150ms, box-shadow 150ms;
    position: relative;
}

.link-card:hover[b-tp9udtlu0i] {
    border-color: var(--ef-color-primary);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* v7.100 — drag-reorder on draggable tiles (Cabinets, Quick Links, Saved Searches). */
.draggable-tile[b-tp9udtlu0i] {
    cursor: grab;
}
.draggable-tile:active[b-tp9udtlu0i] {
    cursor: grabbing;
}
.draggable-tile.drag-over[b-tp9udtlu0i] {
    border-color: var(--ef-color-primary);
    background: var(--ef-bg-hover, rgba(0, 102, 204, 0.04));
    box-shadow: 0 0 0 2px var(--ef-color-primary) inset;
}

.link-card-icon[b-tp9udtlu0i] {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--ef-radius-6);
    background: var(--ef-bg-muted, #f0f4f8);
    color: var(--ef-color-primary);
}

.link-card-body[b-tp9udtlu0i] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.link-card-name[b-tp9udtlu0i] {
    font-size: var(--ef-text-13);
    font-weight: 600;
    color: var(--ef-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.link-card-url[b-tp9udtlu0i] {
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.link-card-badge[b-tp9udtlu0i] {
    font-size: var(--ef-text-10);
    font-weight: 600;
    color: var(--ef-color-primary);
    background: rgba(var(--ef-color-primary-rgb, 59,130,246), 0.1);
    padding: 2px 6px;
    border-radius: 4px;
    white-space: nowrap;
    position: absolute;
    top: 6px;
    right: 6px;
}

.link-card-actions[b-tp9udtlu0i] {
    display: flex;
    gap: 2px;
    flex-shrink: 0;
}

.link-delete:hover[b-tp9udtlu0i] {
    color: var(--ef-red, #e53e3e) !important;
}

.btn-xs[b-tp9udtlu0i] {
    padding: 2px 4px;
    font-size: var(--ef-text-11);
}

/* ── Label style ── */
.lbl[b-tp9udtlu0i] {
    display: block;
    font-size: var(--ef-text-13);
    font-weight: 500;
    margin-bottom: 6px;
    color: var(--ef-text);
}

/* ── Icon Picker ── */
.icon-picker[b-tp9udtlu0i] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.icon-pick[b-tp9udtlu0i] {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    background: var(--ef-surface);
    color: var(--ef-text-muted);
    cursor: pointer;
    transition: border-color 150ms, color 150ms, background 150ms;
}

.icon-pick:hover[b-tp9udtlu0i] {
    border-color: var(--ef-color-primary);
    color: var(--ef-color-primary);
}

.icon-pick-active[b-tp9udtlu0i] {
    border-color: var(--ef-color-primary);
    background: rgba(var(--ef-color-primary-rgb, 59,130,246), 0.1);
    color: var(--ef-color-primary);
}


/* ── Cabinet picker (Add Cabinet dialog) ── */
.cabinet-pick-list[b-tp9udtlu0i] {
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    background: var(--ef-input-bg);
}

.cabinet-pick-row[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-12);
    padding: var(--ef-space-8) var(--ef-space-12);
    cursor: pointer;
    border-bottom: 1px solid var(--ef-border);
    font-size: var(--ef-text-13);
    color: var(--ef-text);
}

.cabinet-pick-row:last-child[b-tp9udtlu0i] {
    border-bottom: none;
}

.cabinet-pick-row:hover[b-tp9udtlu0i] {
    background: var(--ef-surface-alt);
}

.cabinet-pick-label[b-tp9udtlu0i] {
    flex: 1;
    font-weight: 500;
}

.cabinet-pick-name[b-tp9udtlu0i] {
    color: var(--ef-text-muted);
    font-size: var(--ef-text-12);
    font-family: var(--ef-font-mono, monospace);
}

/* v7.526 — side navigation. Same keys/order/drag-reorder as the old top tab row; the
   section list outgrew a single line. Folds back to a horizontal scroller on narrow screens. */
.workspace-layout[b-tp9udtlu0i] {
    display: flex;
    align-items: flex-start;
    gap: 24px;
}

.workspace-nav[b-tp9udtlu0i] {
    flex: 0 0 190px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    position: sticky;
    top: 16px;
}

.ws-nav-item[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    padding: 9px 12px;
    border: none;
    border-left: 3px solid transparent;
    border-radius: 0 6px 6px 0;
    background: none;
    color: var(--ef-text-muted);
    font-size: var(--ef-text-13);
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.ws-nav-item:hover[b-tp9udtlu0i] {
    color: var(--ef-text);
    background: var(--ef-surface-secondary, rgba(0, 0, 0, 0.04));
}

.ws-nav-item.active[b-tp9udtlu0i] {
    border-left-color: var(--ef-color-primary);
    color: var(--ef-color-primary);
    font-weight: 700;
    background: var(--ef-color-primary-bg, rgba(37, 99, 235, 0.12));
}

.ws-nav-item.drag-over[b-tp9udtlu0i] {
    box-shadow: 0 -2px 0 var(--ef-color-primary);
}

.ws-nav-label[b-tp9udtlu0i] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ws-nav-count[b-tp9udtlu0i] {
    flex-shrink: 0;
    font-size: var(--ef-text-11);
    font-weight: 600;
    padding: 1px 8px;
    border-radius: 999px;
    background: var(--ef-surface-secondary, rgba(0, 0, 0, 0.06));
    color: inherit;
}

.workspace-content[b-tp9udtlu0i] {
    flex: 1 1 auto;
    min-width: 0;
}

@media (max-width: 800px) {
    .workspace-layout[b-tp9udtlu0i] { display: block; }
    .workspace-nav[b-tp9udtlu0i] {
        position: static;
        flex-direction: row;
        overflow-x: auto;
        border-bottom: 1px solid var(--ef-border);
        margin-bottom: 16px;
        padding-bottom: 2px;
    }
    .ws-nav-item[b-tp9udtlu0i] {
        width: auto;
        white-space: nowrap;
        border-left: none;
        border-bottom: 3px solid transparent;
        border-radius: 6px 6px 0 0;
    }
    .ws-nav-item.active[b-tp9udtlu0i] {
        border-left-color: transparent;
        border-bottom-color: var(--ef-color-primary);
    }
}

/* v7.526 — "Your Microsoft Teams" one-click add list in the My Teams section. */
.ws-graph-teams[b-tp9udtlu0i] {
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid var(--ef-border);
}

.ws-graph-teams-head[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}

.ws-graph-teams-title[b-tp9udtlu0i] {
    font-size: var(--ef-text-13);
    font-weight: 600;
    color: var(--ef-text);
}

.ws-graph-teams-note[b-tp9udtlu0i] {
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
    margin: 4px 0 0;
}

.ws-graph-teams-list[b-tp9udtlu0i] {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ws-graph-team-row[b-tp9udtlu0i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 10px;
    border-radius: var(--ef-radius-6);
    font-size: var(--ef-text-13);
}

.ws-graph-team-row:hover[b-tp9udtlu0i] {
    background: var(--ef-surface-secondary, rgba(0, 0, 0, 0.04));
}

.ws-graph-team-name[b-tp9udtlu0i] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Plan 196 · Notifications ─────────────────────────────────────────────────── */
.ntf-toolbar[b-tp9udtlu0i] { display: flex; align-items: center; gap: var(--ef-space-8); flex-wrap: wrap; }
.ntf-toggle[b-tp9udtlu0i] { display: inline-flex; align-items: center; gap: var(--ef-space-4); font-size: var(--ef-text-13); color: var(--ef-text-muted); cursor: pointer; }
.ntf-muted[b-tp9udtlu0i] { color: var(--ef-text-muted); font-size: var(--ef-text-13); margin: 0 0 var(--ef-space-8); }
.ntf-error[b-tp9udtlu0i] { color: var(--ef-red); font-size: var(--ef-text-13); margin: 0 0 var(--ef-space-8); }

.ntf-list[b-tp9udtlu0i] { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--ef-space-8); }
.ntf-item[b-tp9udtlu0i] {
    display: grid; grid-template-columns: auto 1fr auto; gap: var(--ef-space-12); align-items: start;
    background: var(--ef-surface); border: 1px solid var(--ef-border); border-radius: var(--ef-radius-6);
    padding: var(--ef-space-12);
}
.ntf-item.ntf-unread[b-tp9udtlu0i] { border-left: 3px solid var(--ef-color-primary); background: var(--ef-color-primary-bg); }
.ntf-kind[b-tp9udtlu0i] {
    font-size: var(--ef-text-11); font-weight: 600; letter-spacing: .03em; text-transform: uppercase;
    padding: 2px 8px; border-radius: 999px; white-space: nowrap;
    background: var(--ef-surface-2); color: var(--ef-text-muted);
}
.ntf-kind-task_assigned[b-tp9udtlu0i]   { color: var(--ef-color-primary); }
.ntf-kind-project_message[b-tp9udtlu0i] { color: var(--ef-green); }
.ntf-kind-feedback_update[b-tp9udtlu0i] { color: var(--ef-yellow); }
.ntf-kind-feedback_new[b-tp9udtlu0i]    { color: var(--ef-red); }
.ntf-main[b-tp9udtlu0i] { min-width: 0; display: grid; gap: 2px; }
.ntf-title[b-tp9udtlu0i] { font-weight: 600; font-size: var(--ef-text-14); color: var(--ef-text); overflow-wrap: anywhere; }
.ntf-body[b-tp9udtlu0i] { font-size: var(--ef-text-13); color: var(--ef-text); white-space: pre-line; overflow-wrap: anywhere; }
.ntf-meta[b-tp9udtlu0i] { display: flex; gap: var(--ef-space-4); font-size: var(--ef-text-12); color: var(--ef-text-muted); }
.ntf-actions[b-tp9udtlu0i] { display: flex; gap: var(--ef-space-4); align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.ntf-remove[b-tp9udtlu0i] { min-width: 28px; }

.ntf-config[b-tp9udtlu0i] { margin-top: var(--ef-space-24); }
.ntf-chips[b-tp9udtlu0i] { list-style: none; margin: 0 0 var(--ef-space-12); padding: 0; display: flex; flex-wrap: wrap; gap: var(--ef-space-8); }
.ntf-chip[b-tp9udtlu0i] {
    display: inline-flex; align-items: center; gap: var(--ef-space-4);
    background: var(--ef-surface-2); border: 1px solid var(--ef-border); border-radius: 999px;
    padding: 2px 4px 2px 10px; font-size: var(--ef-text-13);
}
.ntf-chip-x[b-tp9udtlu0i] { border: 0; background: transparent; color: var(--ef-text-muted); cursor: pointer; padding: 2px 6px; border-radius: 999px; }
.ntf-chip-x:hover[b-tp9udtlu0i], .ntf-chip-x:focus-visible[b-tp9udtlu0i] { color: var(--ef-red); background: var(--ef-surface); }
.ntf-add[b-tp9udtlu0i] { display: flex; gap: var(--ef-space-8); align-items: center; flex-wrap: wrap; }
.ntf-add .form-select[b-tp9udtlu0i] { width: auto; min-width: 240px; max-width: 100%; }

@media (max-width: 640px) {
    .ntf-item[b-tp9udtlu0i] { grid-template-columns: 1fr; }
    .ntf-actions[b-tp9udtlu0i] { justify-content: flex-start; }
}
/* /Components/Shared/CommandPalette.razor.rz.scp.css */
/* Plan 090 P1 — command palette (⌘K). Tokens only, works in light + dark. */

.cp-overlay[b-j6bh0j6k25] {
    position: fixed;
    inset: 0;
    background: var(--ef-overlay, rgba(0, 0, 0, 0.45));
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 12vh;
}

.cp-box[b-j6bh0j6k25] {
    width: min(560px, 92vw);
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-10, 10px);
    box-shadow: var(--ef-shadow-4);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    max-height: 70vh;
}

.cp-input-row[b-j6bh0j6k25] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: 0 var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    flex-shrink: 0;
}

.cp-search-ico[b-j6bh0j6k25] {
    width: 17px;
    height: 17px;
    color: var(--ef-text-muted);
    flex-shrink: 0;
}

.cp-input[b-j6bh0j6k25] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    color: var(--ef-text);
    font-size: var(--ef-text-14);
    font-family: inherit;
    padding: 14px 0;
}

.cp-input[b-j6bh0j6k25]::placeholder { color: var(--ef-text-muted); }

.cp-kbd[b-j6bh0j6k25] {
    border: 1px solid var(--ef-border-strong, var(--ef-border));
    border-bottom-width: 2px;
    border-radius: var(--ef-radius-4, 4px);
    padding: 1px 5px;
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted);
    background: var(--ef-surface-2);
    font-family: inherit;
}

.cp-results[b-j6bh0j6k25] {
    overflow-y: auto;
    padding: var(--ef-space-4) 0;
    flex: 1;
}

.cp-item[b-j6bh0j6k25] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    width: 100%;
    border: none;
    background: none;
    text-align: left;
    padding: 9px var(--ef-space-12);
    color: var(--ef-text);
    font-size: var(--ef-text-13);
    font-family: inherit;
    cursor: pointer;
}

.cp-item:hover[b-j6bh0j6k25],
.cp-sel[b-j6bh0j6k25] {
    background: var(--ef-color-primary-bg);
    color: var(--ef-color-primary);
}

/* Keyboard selection must be visible without a mouse. */
.cp-item:focus-visible[b-j6bh0j6k25] {
    outline: 2px solid var(--ef-color-primary);
    outline-offset: -2px;
}

.cp-ico[b-j6bh0j6k25] {
    width: 17px;
    height: 17px;
    display: inline-flex;
    color: var(--ef-text-muted);
    flex-shrink: 0;
}

.cp-sel .cp-ico[b-j6bh0j6k25],
.cp-item:hover .cp-ico[b-j6bh0j6k25] { color: var(--ef-color-primary); }

.cp-ico :global(svg)[b-j6bh0j6k25] { width: 17px; height: 17px; }

.cp-label[b-j6bh0j6k25] { font-weight: 500; }

.cp-group[b-j6bh0j6k25] {
    margin-left: auto;
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
}

.cp-empty[b-j6bh0j6k25] {
    padding: 20px var(--ef-space-12);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-13);
    text-align: center;
}

.cp-foot[b-j6bh0j6k25] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-12);
    padding: 7px var(--ef-space-12);
    border-top: 1px solid var(--ef-border);
    background: var(--ef-surface-2);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-11);
    flex-shrink: 0;
}

.cp-foot-hint[b-j6bh0j6k25] { margin-left: auto; }

@media (prefers-reduced-motion: no-preference) {
    .cp-box[b-j6bh0j6k25] { animation: cp-in-b-j6bh0j6k25 120ms ease-out; }
    @keyframes cp-in-b-j6bh0j6k25 {
        from { opacity: 0; transform: translateY(-6px); }
        to   { opacity: 1; transform: none; }
    }
}
/* /Components/Shared/DeletedDocumentsModal.razor.rz.scp.css */
.ddm-dialog[b-l6fnlxv1k4] {
    background: var(--ef-bg, #fff);
    border-radius: 6px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    width: 900px;
    max-width: 96vw;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    overflow: visible;
    position: relative;
}

.ddm-actions[b-l6fnlxv1k4] {
    display: flex;
    gap: 6px;
    margin-left: auto;
    margin-right: 10px;
}

.ddm-table[b-l6fnlxv1k4] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.ddm-table th[b-l6fnlxv1k4],
.ddm-table td[b-l6fnlxv1k4] {
    padding: 5px 10px;
    border-bottom: 1px solid var(--ef-border, #e0e0e0);
    white-space: nowrap;
    vertical-align: middle;
}

.ddm-table th[b-l6fnlxv1k4] {
    background: var(--ef-surface, #f8f8f8);
    font-weight: 600;
    font-size: 11px;
    color: var(--ef-text-muted, #666);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    position: sticky;
    top: 0;
    z-index: 1;
}

.ddm-row:hover[b-l6fnlxv1k4] {
    background: var(--ef-surface-2, #f0f4ff);
}

.ddm-comment[b-l6fnlxv1k4] {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ddm-view-link[b-l6fnlxv1k4] {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin-left: 4px;
    opacity: 0.7;
}

.ddm-view-link:hover[b-l6fnlxv1k4] {
    opacity: 1;
}

.ddm-info-btn[b-l6fnlxv1k4] {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    opacity: 0.85;
}

.ddm-info-btn:hover[b-l6fnlxv1k4] {
    opacity: 1;
}

.ddm-popover[b-l6fnlxv1k4] {
    position: absolute;
    right: 8px;
    bottom: 44px;
    z-index: 200;
    background: var(--ef-bg, #fff);
    border: 1px solid var(--ef-border, #ddd);
    border-radius: 4px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    padding: 10px 12px;
    min-width: 260px;
    font-size: 12px;
}

.ddm-popover-row[b-l6fnlxv1k4] {
    display: flex;
    gap: 6px;
    margin-bottom: 4px;
    line-height: 1.4;
}

.ddm-pop-label[b-l6fnlxv1k4] {
    font-weight: 600;
    color: var(--ef-text-muted, #555);
    white-space: nowrap;
    min-width: 120px;
}

.confirm-dialog[b-l6fnlxv1k4] {
    background: var(--ef-bg, #fff);
    border-radius: 6px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.2);
    padding: 20px 24px;
    min-width: 320px;
    max-width: 480px;
}
/* /Components/Shared/ExportMetadataModal.razor.rz.scp.css */
/* ── Dialog ── */
.em-dialog[b-1mupts1gnp] {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    width: 1180px;
    max-width: 96vw;
    /* Fixed height so the modal never resizes when users click radios/tabs.
       Either panel scrolls internally if its content exceeds this. Caps at
       90vh so it still fits short viewports. */
    height: 760px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    font-size: 13px;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

.em-header[b-1mupts1gnp] {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    border-bottom: 1px solid #ddd;
    background: #f8f8f8;
    flex-shrink: 0;
}

.em-title[b-1mupts1gnp] { font-size: 14px; font-weight: 600; color: #333; flex: 1; }

.em-close-btn[b-1mupts1gnp] {
    background: none;
    border: none;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    color: #666;
    padding: 0 4px;
}
.em-close-btn:hover[b-1mupts1gnp] { color: #000; }

.em-body[b-1mupts1gnp] {
    flex: 1;
    display: flex;
    flex-direction: row;
    overflow: hidden;
    min-height: 0;
}

.em-body-left[b-1mupts1gnp] {
    flex: 1;
    padding: 16px 18px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
}

.em-body-right[b-1mupts1gnp] {
    width: 380px;
    flex-shrink: 0;
    border-left: 1px solid #ddd;
    background: #fafafa;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

.em-footer[b-1mupts1gnp] {
    padding: 8px 12px;
    border-top: 1px solid #ddd;
    background: #f8f8f8;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

/* ── Status panel ── */
.em-status-panel[b-1mupts1gnp] {
    background: #eef6fc;
    border: 1px solid #c8dff0;
    border-radius: 4px;
    overflow: hidden;
    font-size: 13px;
}

.em-status-banner[b-1mupts1gnp] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #eef6fc;
    padding: 8px 12px;
}

.em-status-banner-icon[b-1mupts1gnp] {
    color: #31708f;
    font-size: 16px;
    flex-shrink: 0;
}

.em-status-banner-text[b-1mupts1gnp] {
    color: #31708f;
    font-size: 13px;
}

.em-btn-icon[b-1mupts1gnp] {
    padding: 2px 7px;
    font-size: 14px;
    line-height: 1.4;
}

.em-status-table[b-1mupts1gnp] {
    width: auto;
    border-collapse: collapse;
    font-size: 13px;
}

.em-status-table thead th[b-1mupts1gnp] {
    padding: 6px 12px;
    font-weight: 600;
    color: #333;
    text-align: left;
}

.em-status-table tbody td[b-1mupts1gnp] {
    padding: 5px 12px;
}

.em-status-table tbody td:first-child[b-1mupts1gnp] {
    min-width: 200px;
}

.em-status-table tbody tr:last-child td[b-1mupts1gnp] {
    border-bottom: none;
}

.em-success[b-1mupts1gnp] { color: #3c763d; font-weight: 600; }
.em-failed[b-1mupts1gnp]  { color: #a94442; font-weight: 600; }

/* ── Fields ── */
.em-field-row[b-1mupts1gnp] { display: flex; flex-direction: column; gap: 3px; }
.em-label[b-1mupts1gnp] { font-size: 13px; color: #333; }
.em-input[b-1mupts1gnp] {
    height: 28px;
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 0 8px;
    width: 100%;
    box-sizing: border-box;
}
.em-input:focus[b-1mupts1gnp] { outline: none; border-color: #86b7fe; box-shadow: 0 0 0 2px rgba(13,110,253,.15); }

/* ── Radio groups ── */
.em-group-label[b-1mupts1gnp] { font-size: 13px; color: #333; margin-bottom: 2px; }
.em-radio-group[b-1mupts1gnp] { display: flex; flex-direction: column; gap: 4px; padding-left: 20px; }
.em-radio-group label[b-1mupts1gnp] { font-weight: normal; cursor: pointer; display: flex; align-items: center; gap: 5px; }

/* ── Path builder ── */
.em-path-section[b-1mupts1gnp] { display: flex; flex-direction: column; gap: 6px; padding-left: 20px; }

.em-path-toolbar[b-1mupts1gnp] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.em-sublabel[b-1mupts1gnp] { font-size: 12px; color: #555; }

.em-path-builder[b-1mupts1gnp] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 1px;
    min-height: 32px;
    width: 100%;
    padding: 3px 6px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: #fff;
    box-sizing: border-box;
}

.em-path-select[b-1mupts1gnp] {
    height: 26px;
    font-size: 12px;
    border: 1px solid #aaa;
    border-radius: 3px;
    padding: 0 4px;
    background: #fff;
    cursor: pointer;
}

.em-path-text[b-1mupts1gnp] {
    flex: none;
    font-size: 12px;
    color: #333;
    outline: none;
    min-width: 2px;
    white-space: pre;
    cursor: text;
    line-height: 24px;
}
.em-path-text-empty[b-1mupts1gnp]::before {
    content: attr(data-placeholder);
    color: #aaa;
    pointer-events: none;
}

.em-seg-remove[b-1mupts1gnp] {
    background: none;
    border: none;
    color: #999;
    cursor: pointer;
    font-size: 12px;
    padding: 0 2px;
    line-height: 1;
}
.em-seg-remove:hover[b-1mupts1gnp] { color: #c00; }

.em-path-error[b-1mupts1gnp] { font-size: 11px; color: #c00; }

/* ── Insert field dropdown ── */
.em-insert-wrap[b-1mupts1gnp] { position: relative; }
.em-insert-dropdown[b-1mupts1gnp] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 200;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 3px;
    box-shadow: 0 3px 10px rgba(0,0,0,.15);
    min-width: 180px;
    max-height: 220px;
    overflow-y: auto;
}
.em-insert-item[b-1mupts1gnp] {
    padding: 5px 10px;
    cursor: pointer;
    font-size: 12px;
    color: #333;
}
.em-insert-item:hover[b-1mupts1gnp] { background: #f0f0f0; }

/* ── Options row ── */
.em-options-row[b-1mupts1gnp] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}

.em-check[b-1mupts1gnp] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-weight: normal;
    cursor: pointer;
    white-space: nowrap;
}
.em-check input[type=checkbox][b-1mupts1gnp] { cursor: pointer; }
.em-disabled[b-1mupts1gnp] { opacity: 0.5; pointer-events: none; }
.em-note[b-1mupts1gnp] { font-style: italic; color: #777; font-size: 12px; margin-left: 2px; }

.em-format-wrap[b-1mupts1gnp] { display: flex; align-items: center; gap: 6px; }
.em-label-inline[b-1mupts1gnp] { font-size: 13px; color: #333; white-space: nowrap; }
.em-select[b-1mupts1gnp] {
    height: 28px;
    font-size: 13px;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 0 6px;
}

/* ── Error ── */
.em-error[b-1mupts1gnp] {
    color: #721c24;
    background: #f8d7da;
    border: 1px solid #f5c6cb;
    border-radius: 3px;
    padding: 6px 10px;
    font-size: 12px;
}

/* ── Buttons ── */
.em-btn[b-1mupts1gnp] {
    padding: 4px 10px;
    font-size: 12px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: #f8f8f8;
    color: #333;
    cursor: pointer;
    white-space: nowrap;
    line-height: 1.4;
}
.em-btn:hover:not(:disabled)[b-1mupts1gnp] { background: #e8e8e8; }
.em-btn:disabled[b-1mupts1gnp] { opacity: 0.55; cursor: default; }
.em-btn-primary[b-1mupts1gnp]  { background: #337ab7; border-color: #2e6da4; color: #fff; }
.em-btn-primary:hover:not(:disabled)[b-1mupts1gnp] { background: #286090; }
.em-btn-danger[b-1mupts1gnp]   { background: #d9534f; border-color: #c9302c; color: #fff; }
.em-btn-danger:hover:not(:disabled)[b-1mupts1gnp] { background: #c9302c; }
.em-btn-history[b-1mupts1gnp]  { display: flex; align-items: center; gap: 5px; }
.em-btn-xs[b-1mupts1gnp]       { font-size: 11px; padding: 1px 4px; }

/* ── Export Fields table ── */
.em-fields-table[b-1mupts1gnp] { width: 100%; border-collapse: collapse; font-size: 13px; }
.em-fields-table thead th[b-1mupts1gnp] {
    background: #f5f5f5;
    padding: 8px 10px;
    border-bottom: 2px solid #ddd;
    font-weight: 600;
    text-align: left;
    position: sticky;
    top: 0;
    z-index: 1;
}
.em-fields-table tbody tr:hover[b-1mupts1gnp] { background: #f8f8f8; }
.em-fields-table tbody td[b-1mupts1gnp] { padding: 5px 10px; border-bottom: 1px solid #f0f0f0; vertical-align: middle; }
.em-drag-handle[b-1mupts1gnp] { color: #bbb; cursor: grab; font-size: 14px; user-select: none; text-align: center; width: 28px; }
.em-drag-handle:hover[b-1mupts1gnp] { color: #555; }
.em-drag-over[b-1mupts1gnp] { outline: 2px solid #337ab7; background: #f0f7ff !important; }

/* ── History table ── */
.em-history-table[b-1mupts1gnp] { width: 100%; border-collapse: collapse; font-size: 12px; }
.em-history-table thead th[b-1mupts1gnp] {
    background: #f5f5f5;
    padding: 7px 10px;
    border-bottom: 2px solid #ddd;
    font-weight: 600;
    text-align: left;
    white-space: nowrap;
    position: sticky;
    top: 0;
}
.em-history-table tbody tr:hover[b-1mupts1gnp] { background: #f9f9f9; }
.em-history-table tbody td[b-1mupts1gnp] {
    padding: 6px 10px;
    border-bottom: 1px solid #eee;
    white-space: nowrap;
}
.em-history-path[b-1mupts1gnp] { max-width: 200px; overflow: hidden; text-overflow: ellipsis; }

/* ── Export Destination right panel ── */
.em-dest-panel-title[b-1mupts1gnp] {
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 600;
    color: #333;
    border-bottom: 1px solid #ddd;
    background: #f0f0f0;
    flex-shrink: 0;
}

.em-dest-body[b-1mupts1gnp] {
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.em-dest-divider[b-1mupts1gnp] {
    font-size: 11px;
    font-weight: 600;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-top: 1px solid #e0e0e0;
    padding-top: 8px;
    margin-top: 2px;
}

.em-dest-err[b-1mupts1gnp] { font-size: 12px; color: #a94442; }

/* Export History — Details expander (redesigned grid: Date/Time · Batch · Output Path · Result · Details) */
.em-btn-sm[b-1mupts1gnp] { font-size: 12px; padding: 2px 10px; }
.em-history-details-row > td[b-1mupts1gnp] { background: #f7f9fb; padding: 0; }
.em-history-details[b-1mupts1gnp] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 4px 18px;
    padding: 10px 14px;
    font-size: 12.5px;
}
.em-hd-label[b-1mupts1gnp] { color: var(--ef-text-muted, #6b7280); margin-right: 4px; }
/* /Components/Shared/ExtractPagesModal.razor.rz.scp.css */
.epm-progress[b-ml100hznto] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--ef-text-muted);
    padding: 8px 0;
}

.epm-guide[b-ml100hznto] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    color: var(--ef-text-muted);
    padding: 4px 0;
}

.epm-options[b-ml100hznto] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.epm-option[b-ml100hznto] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--ef-border);
    border-radius: 6px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.epm-option:hover[b-ml100hznto] {
    border-color: var(--ef-color-primary);
    background: rgba(37,99,235,.03);
}

.epm-option.selected[b-ml100hznto] {
    border-color: var(--ef-color-primary);
    background: rgba(37,99,235,.05);
}

.epm-option input[type="radio"][b-ml100hznto] {
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--ef-color-primary);
}

.epm-option-body[b-ml100hznto] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.epm-option-title[b-ml100hznto] {
    font-size: 13px;
    font-weight: 600;
    color: var(--ef-text);
}

.epm-option-desc[b-ml100hznto] {
    font-size: 12px;
    color: var(--ef-text-muted);
    line-height: 1.4;
}
/* /Components/Shared/ExtractPagesSplitView.razor.rz.scp.css */
/* Full-screen overlay that replaces workspace during extract pages review */
.epsv-overlay[b-d8og5b5cuv] {
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: var(--ef-bg, #fff);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Top bar */
.epsv-topbar[b-d8og5b5cuv] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 14px;
    border-bottom: 1px solid var(--ef-border, #ddd);
    background: var(--ef-surface, #f8f8f8);
    flex-shrink: 0;
    min-height: 42px;
}

.epsv-title[b-d8og5b5cuv] {
    font-weight: 600;
    font-size: 13px;
    color: var(--ef-text, #333);
    white-space: nowrap;
}

.epsv-progress-msg[b-d8og5b5cuv] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--ef-text-muted, #888);
}

.epsv-error-msg[b-d8og5b5cuv] {
    font-size: 12px;
    color: var(--ef-red, #d32f2f);
}

/* Chunks selector strip (only shown for the multi-chunk split workflow) */
.epsv-chunks[b-d8og5b5cuv] {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    padding: 4px 14px;
    border-bottom: 1px solid var(--ef-border, #ddd);
    background: var(--ef-surface, #f8f8f8);
}

/* Body — MultiViewerMode (the PDFTron-native side-by-side that supports
   cross-doc thumbnail DnD) takes over the viewer with its own 50/50
   divider. The EFConnector indexing iframe moves to a fixed-width right
   sidebar; if we overlaid the divider zone like before, we'd hide the
   right viewer's thumbnails panel which sits right after the divider. */
.epsv-body[b-d8og5b5cuv] {
    display: flex;
    flex: 1;
    overflow: hidden;
}

.epsv-split-iframe[b-d8og5b5cuv] {
    flex: 1;
    min-width: 0;
    border: none;
    height: 100%;
}

.epsv-middle-iframe[b-d8og5b5cuv] {
    width: 320px;
    flex-shrink: 0;
    height: 100%;
    border: none;
    border-left: 1px solid var(--ef-border, #ddd);
    background: var(--ef-bg, #fff);
}

/* Index form in middle pane */
.epsv-form[b-d8og5b5cuv] {
    padding: 10px 10px 20px;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.epsv-field-row[b-d8og5b5cuv] {
    display: flex;
    flex-direction: column;
    margin-bottom: 8px;
}

.epsv-field-label[b-d8og5b5cuv] {
    font-size: 11px;
    font-weight: 500;
    color: var(--ef-text-muted, #666);
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.epsv-required[b-d8og5b5cuv]::after {
    content: " *";
    color: var(--ef-red, #d32f2f);
}

.epsv-field-input[b-d8og5b5cuv] {
    width: 100%;
    font-size: 12px;
}
/* /Components/Shared/RecordDetailsModal.razor.rz.scp.css */
/* v7.416 — Document Info detail layout (CASO design system).
   Replaces the legacy green (#5cb85c) badge popover with a clean, tokenized
   label/value definition list that matches the rest of the app. */

.doc-info[b-xik0zi721l] {
    margin: 0;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-6);
    overflow: hidden;
    font-size: var(--ef-text-13);
}

.doc-info .di-row[b-xik0zi721l] {
    display: grid;
    grid-template-columns: 160px 1fr;
    align-items: baseline;
    gap: var(--ef-space-16);
    padding: var(--ef-space-8) var(--ef-space-12);
}

/* Zebra striping via the secondary surface token for scannability */
.doc-info .di-row:nth-child(even)[b-xik0zi721l] {
    background: var(--ef-surface-2);
}

.doc-info .di-row + .di-row[b-xik0zi721l] {
    border-top: 1px solid var(--ef-border);
}

.doc-info dt[b-xik0zi721l] {
    margin: 0;
    color: var(--ef-text-muted);
    font-size: var(--ef-text-12);
    font-weight: 500;
}

.doc-info dd[b-xik0zi721l] {
    margin: 0;
    color: var(--ef-text);
    font-weight: 600;
    word-break: break-word;
}

.doc-info dd.di-danger[b-xik0zi721l] {
    color: var(--ef-red);
}
/* /Components/Shared/RecordViewPanel.razor.rz.scp.css */
/* Plan 186 Phase 1 — the read-only record panel.
   Every value is a token; nothing here is hard-coded, so the dark theme needs no second copy. */

.rv-root[b-t8q276glqa] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    background: var(--ef-surface);
}

.rv-meta[b-t8q276glqa] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    flex-wrap: wrap;
    padding: var(--ef-space-8) var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
}

.rv-meta-id[b-t8q276glqa] {
    font-weight: 600;
    color: var(--ef-text);
}

.rv-deleted[b-t8q276glqa] {
    padding: 1px 7px;
    border-radius: var(--ef-radius-10);
    background: var(--ef-color-danger-bg, rgba(220, 38, 38, 0.1));
    color: var(--ef-red);
    font-size: var(--ef-text-11);
    font-weight: 600;
}

/* Two columns, because a 380px panel of one-per-row wastes half its height on labels and makes
   a fifteen-field cabinet a scroll. Wide fields opt out via .rv-wide. */
.rv-fields[b-t8q276glqa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: var(--ef-space-12);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 var(--ef-space-16);
    align-content: start;
}

.rv-item[b-t8q276glqa] {
    min-width: 0;
    padding: 6px 0 7px;
    border-bottom: 1px solid var(--ef-surface-2);
}

.rv-wide[b-t8q276glqa] {
    grid-column: 1 / -1;
}

.rv-label[b-t8q276glqa] {
    display: flex;
    align-items: center;
    gap: var(--ef-space-4);
    font-size: var(--ef-text-11);
    color: var(--ef-text-muted);
}

.rv-label-text[b-t8q276glqa] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* A required field with nothing in it is the single most useful thing this panel can point at,
   so it is marked rather than left to look like any other blank. */
.rv-req[b-t8q276glqa] {
    flex-shrink: 0;
    padding: 0 5px;
    border-radius: var(--ef-radius-8);
    background: rgba(217, 119, 6, 0.14);
    color: var(--ef-yellow);
    font-size: var(--ef-text-11);
    font-weight: 600;
    line-height: 15px;
}

.rv-value[b-t8q276glqa] {
    margin-top: 2px;
    font-size: var(--ef-text-13);
    color: var(--ef-text);
    /* Memo fields keep their line breaks; long unbroken values (URLs, barcodes) wrap instead of
       forcing the whole panel to scroll sideways. */
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.rv-blank[b-t8q276glqa] {
    color: var(--ef-text-muted);
}

.rv-foot[b-t8q276glqa] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--ef-space-8);
    padding: var(--ef-space-8) var(--ef-space-12);
    border-top: 1px solid var(--ef-border);
    background: var(--ef-surface);
}

.rv-foot-note[b-t8q276glqa] {
    flex: 1 1 auto;
    font-size: var(--ef-text-12);
    color: var(--ef-text-muted);
}

.rv-state[b-t8q276glqa] {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--ef-space-24) var(--ef-space-12);
    font-size: var(--ef-text-13);
    color: var(--ef-text-muted);
    text-align: center;
}

.rv-error[b-t8q276glqa] {
    color: var(--ef-red);
}
/* /Components/Shared/RelatedDocumentsPanel.razor.rz.scp.css */
/* Plan 096 — Related Documents panel. Design tokens only; works in light + dark. */

.rd-panel[b-x0g5k6vuq4] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    font-size: var(--ef-text-13);
    color: var(--ef-text);
}

.rd-msg[b-x0g5k6vuq4] {
    padding: var(--ef-space-16);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-13);
    text-align: center;
}

.rd-error[b-x0g5k6vuq4] { color: var(--ef-red); }

.rd-sub[b-x0g5k6vuq4] {
    padding: var(--ef-space-8) var(--ef-space-12);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-12);
    border-bottom: 1px solid var(--ef-border);
}

/* Wide result sets scroll inside the panel — never the page. */
.rd-scroll[b-x0g5k6vuq4] {
    overflow: auto;
    flex: 1;
    min-height: 0;
}

.rd-table[b-x0g5k6vuq4] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--ef-text-13);
}

.rd-table th[b-x0g5k6vuq4] {
    position: sticky;
    top: 0;
    z-index: 1;
    text-align: left;
    font-size: var(--ef-text-11);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--ef-text-muted);
    background: var(--ef-surface-2);
    border-bottom: 1px solid var(--ef-border);
    padding: 7px var(--ef-space-12);
    white-space: nowrap;
}

.rd-table td[b-x0g5k6vuq4] {
    padding: 7px var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    white-space: nowrap;
    max-width: 320px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rd-row[b-x0g5k6vuq4] { cursor: pointer; }
.rd-row:hover td[b-x0g5k6vuq4] { background: var(--ef-surface-hover, var(--ef-surface-2)); }

/* The row currently shown in the viewer. The left bar carries the meaning — a tint alone
   sits too close to :hover to tell apart while clicking down the list. */
.rd-row-active td[b-x0g5k6vuq4] {
    background: var(--ef-primary-soft, var(--ef-surface-2));
    font-weight: 600;
}
.rd-row-active td:first-child[b-x0g5k6vuq4] {
    box-shadow: inset 3px 0 0 0 var(--ef-color-primary);
}

/* The relate key is the first column — emphasize it so the reason for the match reads first. */
.rd-table td:first-child[b-x0g5k6vuq4] { font-weight: 600; }

.rd-foot[b-x0g5k6vuq4] {
    padding: 6px var(--ef-space-12);
    border-top: 1px solid var(--ef-border);
    background: var(--ef-surface-2);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-11);
    flex-shrink: 0;
}

/* ── Plan 106 — "Add a document" ──────────────────────────────────────────────
   Creates a record from a template in this cabinet, inheriting the relate key.
   Sits above the list because it acts on the set, not on any one row. */
.rd-toolbar[b-x0g5k6vuq4] {
    display: flex;
    justify-content: flex-end;
    padding: 6px var(--ef-space-12);
    border-bottom: 1px solid var(--ef-border);
    flex-shrink: 0;
}

.rd-add-btn[b-x0g5k6vuq4] {
    background: none;
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    color: var(--ef-text);
    font-size: var(--ef-text-12);
    padding: 3px 10px;
    cursor: pointer;
}

.rd-add-btn:hover:not(:disabled)[b-x0g5k6vuq4] {
    background: var(--ef-surface-2);
    border-color: var(--ef-color-primary);
}

.rd-add-btn:disabled[b-x0g5k6vuq4] { opacity: .6; cursor: default; }



.rd-picker-lead[b-x0g5k6vuq4] {
    margin: 0 0 var(--ef-space-12);
    color: var(--ef-text-muted);
    font-size: var(--ef-text-13);
}

/* Scrolls inside the dialog rather than growing it off-screen. */
.rd-picker-list[b-x0g5k6vuq4] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 46vh;
    overflow-y: auto;
}

.rd-picker-item[b-x0g5k6vuq4] {
    text-align: left;
    background: var(--ef-surface);
    border: 1px solid var(--ef-border);
    border-radius: var(--ef-radius-4);
    color: var(--ef-text);
    font-size: var(--ef-text-13);
    padding: 9px 12px;
    cursor: pointer;
}

.rd-picker-busy[b-x0g5k6vuq4] {
    margin-right: auto;
    color: var(--ef-text-muted);
    font-size: var(--ef-text-12);
}

.rd-picker-item:hover:not(:disabled)[b-x0g5k6vuq4] { border-color: var(--ef-color-primary); }
.rd-picker-item:disabled[b-x0g5k6vuq4] { opacity: .6; cursor: default; }


/* Distinct from .rd-error: an outcome worth reading, not a failure. */
.rd-notice[b-x0g5k6vuq4] { color: var(--ef-text-muted); }
/* /Components/Shared/SendLinkModal.razor.rz.scp.css */
.sl-dialog[b-rkqw9x47ix] {
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    width: 500px;
    max-width: 92vw;
    font-size: 13px;
    font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

.sl-check-row[b-rkqw9x47ix] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.sl-check-row label[b-rkqw9x47ix] { cursor: pointer; margin: 0; }
.sl-check-row input[type=checkbox][b-rkqw9x47ix] { cursor: pointer; }

.sl-input[b-rkqw9x47ix] {
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 4px;
}

.sl-input:disabled[b-rkqw9x47ix] { background: #f5f5f5; color: #aaa; }

.sl-error[b-rkqw9x47ix] {
    margin-top: 10px;
    color: #721c24;
    background: #f8d7da;
    border: 1px solid #f5c6cb;
    border-radius: 3px;
    padding: 6px 10px;
    font-size: 12px;
}

.sl-link-box[b-rkqw9x47ix] {
    margin-top: 14px;
    padding: 10px;
    background: #f5f5f5;
    border: 1px solid #86b7fe;
    border-radius: 5px;
    word-wrap: break-word;
    overflow-wrap: break-word;
    font-size: 12px;
    color: #333;
}

.sl-link-text[b-rkqw9x47ix] { line-height: 1.5; }

.sl-link-actions[b-rkqw9x47ix] {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

.sl-exp-note[b-rkqw9x47ix] {
    font-size: 11px;
    color: #555;
    margin-top: 6px;
    font-style: italic;
}
