/* /Components/Layout/LoginLayout.razor.rz.scp.css */
.login-page[b-f1h1u0yp1i] {
    min-height: 100vh;
    background: var(--bg-body);
    display: flex;
    flex-direction: column;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.app-layout[b-x2p3rri3ql] {
    display: flex;
    min-height: 100vh;
}

.sidebar[b-x2p3rri3ql] {
    width: var(--sidebar-width);
    background: var(--bg-sidebar);
    border-right: 1px solid var(--border-color);
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 100;
    overflow-y: auto;
    overflow-x: hidden;
    transition: width 200ms ease, transform 220ms ease;
    scrollbar-width: thin;
    scrollbar-color: rgba(148, 163, 184, 0.4) transparent;
}

.sidebar[b-x2p3rri3ql]::-webkit-scrollbar {
    width: 6px;
}

.sidebar[b-x2p3rri3ql]::-webkit-scrollbar-track {
    background: transparent;
}

.sidebar[b-x2p3rri3ql]::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.35);
    border-radius: 999px;
    border: 1px solid transparent;
    background-clip: content-box;
}

.sidebar:hover[b-x2p3rri3ql]::-webkit-scrollbar-thumb {
    background: rgba(148, 163, 184, 0.55);
    background-clip: content-box;
}

.sidebar[b-x2p3rri3ql]::-webkit-scrollbar-button,
.sidebar[b-x2p3rri3ql]::-webkit-scrollbar-corner {
    display: none;
    background: transparent;
}

.main-wrapper[b-x2p3rri3ql] {
    flex: 1;
    margin-left: var(--sidebar-width);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: var(--bg-body);
    transition: margin-left 200ms ease;
    min-width: 0;
}

.main-content[b-x2p3rri3ql] { flex: 1; min-width: 0; }

.page-content[b-x2p3rri3ql] {
    padding: var(--spacing-xl) var(--spacing-lg);
    width: 100%;
}

/* ===== Desktop collapsed (narrow 72px) ============================= */
.app-layout.sidebar-collapsed .sidebar[b-x2p3rri3ql] {
    width: var(--sidebar-width-collapsed);
    overflow: visible;
}

.app-layout.sidebar-collapsed .main-wrapper[b-x2p3rri3ql] {
    margin-left: var(--sidebar-width-collapsed);
}

/* Backdrop — always in DOM, visibility controlled per breakpoint below. */
.sidebar-backdrop[b-x2p3rri3ql] {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
    z-index: 99;
    animation: backdrop-fade-b-x2p3rri3ql 160ms ease-out;
}

@keyframes backdrop-fade-b-x2p3rri3ql {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ===== Tablet / mobile (<1024px) — off-canvas drawer ================
   Sidebar width becomes a fixed 280px drawer. The `.sidebar-collapsed`
   class (default on mobile) hides the drawer via transform.
   ===================================================================== */
@media (max-width: 1023px) {
    .sidebar[b-x2p3rri3ql] {
        width: 280px !important;
        box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    /* Expanded (drawer open) */
    .app-layout:not(.sidebar-collapsed) .sidebar[b-x2p3rri3ql] {
        transform: translateX(0);
    }

    /* Collapsed (drawer closed) */
    .app-layout.sidebar-collapsed .sidebar[b-x2p3rri3ql] {
        transform: translateX(-100%);
    }

    /* Main content never indented by sidebar on mobile. */
    .main-wrapper[b-x2p3rri3ql],
    .app-layout.sidebar-collapsed .main-wrapper[b-x2p3rri3ql] {
        margin-left: 0 !important;
    }

    /* Show backdrop only when drawer is open on mobile. */
    .app-layout:not(.sidebar-collapsed) .sidebar-backdrop[b-x2p3rri3ql] {
        display: block;
    }
}

/* ===== Small mobile (<640px) — tighter page padding ================= */
@media (max-width: 640px) {
    .page-content[b-x2p3rri3ql] {
        padding: var(--spacing-md) var(--spacing-md);
    }
}

@media (max-width: 1200px) and (min-width: 1024px) {
    .page-content[b-x2p3rri3ql] {
        padding: var(--spacing-lg) var(--spacing-xl);
    }
}

/* On 13"/14" laptops (~1366px) the brand fights for space inside a 240px
   sidebar. Narrow the sidebar a touch so the brand never clips and the
   main page gets more horizontal room. */
@media (max-width: 1366px) and (min-width: 1024px) {
    .sidebar[b-x2p3rri3ql] {
        width: 220px;
    }
    .main-wrapper[b-x2p3rri3ql] {
        margin-left: 220px;
    }
    .app-layout.sidebar-collapsed .sidebar[b-x2p3rri3ql] {
        width: var(--sidebar-width-collapsed);
    }
    .app-layout.sidebar-collapsed .main-wrapper[b-x2p3rri3ql] {
        margin-left: var(--sidebar-width-collapsed);
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* Header — same height as topbar so bottom borders align */
.sidebar-header[b-bapdsr3e1x] {
    position: relative;
    height: var(--header-height);
    padding: 0 var(--spacing-md);
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid var(--border-color);
    overflow: hidden;
}

/* Close button — hidden on desktop, shown only when drawer is active. */
.sidebar-close[b-bapdsr3e1x] {
    display: none;
    position: absolute;
    top: 50%;
    right: var(--spacing-sm);
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    color: var(--text-secondary);
    border-radius: var(--border-radius-md);
    cursor: pointer;
    align-items: center;
    justify-content: center;
}

.sidebar-close:hover[b-bapdsr3e1x] {
    background: var(--color-primary-subtle);
    color: var(--color-primary);
}

.sidebar-close i[b-bapdsr3e1x] { font-size: 1.25rem; }

@media (max-width: 1023px) {
    .sidebar-close[b-bapdsr3e1x] { display: inline-flex; }
}

.brand[b-bapdsr3e1x] {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    gap: 4px;
    min-width: 0;
}

.brand-lockup[b-bapdsr3e1x] {
    width: 100%;
    padding-left: 0;
    min-width: 0;
}

.brand-mark[b-bapdsr3e1x] {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    object-fit: contain;
    filter: drop-shadow(0 1px 2px rgba(35, 53, 73, 0.10));
}

.brand-word-inline[b-bapdsr3e1x] {
    white-space: nowrap;
    font-size: 1.3rem;
    letter-spacing: -0.02em;
    line-height: 1;
    transition: opacity 150ms ease;
    overflow: hidden;
    text-overflow: clip;
    min-width: 0;
}

/* Narrower brand on smaller laptops to stop wordmark clipping */
@media (max-width: 1366px) and (min-width: 1024px) {
    .brand-mark[b-bapdsr3e1x] { width: 28px; height: 28px; }
    .brand-word-inline[b-bapdsr3e1x] { font-size: 1.15rem; }
}

/* Brand word styles live in app.css so Login can reuse them. */

/* Navigation */
.sidebar-nav[b-bapdsr3e1x] {
    padding: var(--spacing-md) 0;
    flex: 1;
}

.nav-section-label[b-bapdsr3e1x] {
    padding: var(--spacing-md) var(--spacing-xl) var(--spacing-sm);
    font-size: 0.625rem;
    font-weight: var(--font-semibold);
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: var(--spacing-sm);
}

.nav-item[b-bapdsr3e1x] {
    padding: 0 var(--spacing-md);
    margin-bottom: 2px;
}

.nav-item .nav-link[b-bapdsr3e1x],
.nav-item[b-bapdsr3e1x]  .nav-link {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: 0.625rem var(--spacing-md);
    color: var(--text-sidebar);
    border-radius: var(--border-radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    transition: all var(--transition-fast);
    text-decoration: none;
}

.nav-item .nav-link i[b-bapdsr3e1x],
.nav-item[b-bapdsr3e1x]  .nav-link i {
    font-size: 1.125rem;
    flex-shrink: 0;
}

.nav-item .nav-link:not(.active):hover[b-bapdsr3e1x],
.nav-item[b-bapdsr3e1x]  .nav-link:not(.active):hover {
    background: var(--color-primary-subtle);
    color: var(--color-primary);
}

.nav-item .nav-link:not(.active):hover i[b-bapdsr3e1x],
.nav-item[b-bapdsr3e1x]  .nav-link:not(.active):hover i {
    color: var(--color-primary);
}

.nav-item a.active[b-bapdsr3e1x],
.nav-item[b-bapdsr3e1x]  a.active {
    background: var(--bg-sidebar-active);
    color: var(--text-sidebar-active);
    font-weight: var(--font-semibold);
}

.nav-item a.active i[b-bapdsr3e1x],
.nav-item[b-bapdsr3e1x]  a.active i {
    color: var(--text-sidebar-active);
}
/* /Components/Layout/TopBar.razor.rz.scp.css */
.topbar[b-xfkk1ajadq] {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    padding: 0 var(--spacing-lg);
    height: var(--header-height);
    background: var(--bg-card);
    border-bottom: 1px solid var(--border-color);
}

.topbar-left[b-xfkk1ajadq] {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    min-width: 0;
    flex: 1;
    justify-content: space-between;
}

.topbar-right[b-xfkk1ajadq] {
    display: flex;
    align-items: center;
    gap: 2px;
}

/* Icon button */
.topbar-icon-btn[b-xfkk1ajadq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: none;
    background: transparent;
    color: var(--text-secondary);
    border-radius: var(--border-radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    padding: 0;
}

.topbar-icon-btn i[b-xfkk1ajadq] {
    font-size: 1.25rem;
    line-height: 1;
}

.topbar-icon-btn:hover[b-xfkk1ajadq] {
    background: var(--color-primary-subtle);
    color: var(--color-primary);
}

/* Suppress default click focus ring; keep keyboard focus visible */
.topbar-icon-btn:focus[b-xfkk1ajadq] { outline: none; }

.topbar-icon-btn:focus-visible[b-xfkk1ajadq] {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.topbar-hamburger[b-xfkk1ajadq] {
    color: var(--text-primary);
}

/* Divider */
.topbar-divider[b-xfkk1ajadq] {
    width: 1px;
    height: 28px;
    background: var(--border-color);
    margin: 0 var(--spacing-xs);
}

/* Inline search */
.topbar-search-wrap[b-xfkk1ajadq] {
    position: relative;
    width: 100%;
    max-width: 560px;
}

.topbar-search[b-xfkk1ajadq] {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    width: 100%;
    padding: 0.375rem 0.75rem;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
}

.topbar-search-spinner[b-xfkk1ajadq] {
    color: var(--color-primary);
    font-size: 1rem;
    animation: tsr-spin-b-xfkk1ajadq 0.9s linear infinite;
}

@keyframes tsr-spin-b-xfkk1ajadq {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Results dropdown */
.topbar-search-results[b-xfkk1ajadq] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 460px;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    box-shadow: 0 10px 30px rgba(17,24,39,0.12);
    z-index: 60;
    padding: 0.25rem 0;
    /* Firefox: thin scrollbar, no buttons */
  /*  scrollbar-width: thin;
    scrollbar-color: var(--border-color) transparent;*/
}

/* WebKit / Chromium / Edge: slim, no up/down carets */
.topbar-search-results[b-xfkk1ajadq]::-webkit-scrollbar {
    width: 6px;
}

.topbar-search-results[b-xfkk1ajadq]::-webkit-scrollbar-track {
    background: transparent;
}

.topbar-search-results[b-xfkk1ajadq]::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 3px;
}

.topbar-search-results[b-xfkk1ajadq]::-webkit-scrollbar-thumb:hover {
    background: var(--text-tertiary);
}

.topbar-search-results[b-xfkk1ajadq]::-webkit-scrollbar-button {
    display: none;
    height: 0;
    width: 0;
}

.tsr-empty[b-xfkk1ajadq] {
    padding: 0.75rem 1rem;
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

.tsr-group + .tsr-group[b-xfkk1ajadq] {
    border-top: 1px solid var(--border-color);
    margin-top: 0.25rem;
    padding-top: 0.25rem;
}

.tsr-group-head[b-xfkk1ajadq] {
    padding: 0.375rem 1rem;
    font-size: 0.7rem;
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-tertiary);
}

.tsr-item[b-xfkk1ajadq] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.5rem 1rem;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    color: var(--text-primary);
    transition: background var(--transition-fast);
}

.tsr-item:hover[b-xfkk1ajadq],
.tsr-item--active[b-xfkk1ajadq] {
    background: var(--color-primary-subtle);
}

.tsr-item-icon[b-xfkk1ajadq] {
    font-size: 1.125rem;
    color: var(--color-primary);
    flex-shrink: 0;
}

.tsr-item-body[b-xfkk1ajadq] {
    flex: 1;
    min-width: 0;
}

.tsr-item-title[b-xfkk1ajadq] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tsr-item-sub[b-xfkk1ajadq] {
    font-size: 0.75rem;
    color: var(--text-tertiary);
    margin-top: 1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tsr-item-type[b-xfkk1ajadq] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-tertiary);
    background: var(--bg-body);
    padding: 0.15rem 0.4rem;
    border-radius: var(--border-radius-sm);
    flex-shrink: 0;
}

.topbar-search > i[b-xfkk1ajadq] {
    color: var(--text-tertiary);
    font-size: 1.125rem;
}

.topbar-search input[b-xfkk1ajadq] {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    color: var(--text-primary);
}

.topbar-search input[b-xfkk1ajadq]::placeholder {
    color: var(--text-tertiary);
}

.topbar-search-close[b-xfkk1ajadq] {
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    border-radius: var(--border-radius-sm);
    color: var(--text-tertiary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.topbar-search-close:hover[b-xfkk1ajadq] {
    background: var(--bg-badge);
    color: var(--text-primary);
}

.topbar-search-close i[b-xfkk1ajadq] { font-size: 1rem; }

/* Breadcrumb */
.breadcrumb[b-xfkk1ajadq] {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: var(--font-size-sm);
}

.breadcrumb-root[b-xfkk1ajadq] {
    color: var(--text-tertiary);
    font-weight: var(--font-medium);
}

.breadcrumb-sep[b-xfkk1ajadq] {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
}

.breadcrumb-current[b-xfkk1ajadq] {
    color: var(--text-primary);
    font-weight: var(--font-semibold);
}

@media (max-width: 768px) {
    .topbar[b-xfkk1ajadq] {
        padding: 0 var(--spacing-md);
        gap: var(--spacing-sm);
    }

    .breadcrumb[b-xfkk1ajadq] {
        display: none;
    }

    .topbar-icon-btn[aria-label="Language"][b-xfkk1ajadq],
    .topbar-icon-btn[aria-label="Enter fullscreen"][b-xfkk1ajadq],
    .topbar-icon-btn[aria-label="Exit fullscreen"][b-xfkk1ajadq] {
        display: none;
    }

    .topbar-divider[b-xfkk1ajadq] { display: none; }

    .topbar-search-wrap[b-xfkk1ajadq] {
        max-width: none;
    }
}

@media (max-width: 480px) {
    .topbar-icon-btn[b-xfkk1ajadq] {
        width: 32px;
        height: 32px;
    }

    .topbar-icon-btn i[b-xfkk1ajadq] { font-size: 1.125rem; }
}
/* /Components/Pages/Alerts.razor.rz.scp.css */
.alerts-page[b-4wwvwji8ac] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

/* Filter primitives moved to app.css — shared across pages.
   Skeleton card — matches AlertsTable / dashboard card geometry */
.alerts-skel-card[b-4wwvwji8ac] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-xl);
    padding: var(--spacing-lg) var(--spacing-xl);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.alerts-skel-head[b-4wwvwji8ac] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--border-color-subtle);
}

.alerts-skel-row[b-4wwvwji8ac] {
    display: grid;
    grid-template-columns: 40px 1fr 70px 80px 60px;
    gap: var(--spacing-md);
    align-items: center;
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--border-color-subtle);
}

.alerts-skel-row:last-child[b-4wwvwji8ac] { border-bottom: none; }

.alerts-skel-col[b-4wwvwji8ac] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

@media (max-width: 640px) {
    .alerts-skel-card[b-4wwvwji8ac] { padding: var(--spacing-md); }
    .alerts-skel-row[b-4wwvwji8ac] {
        grid-template-columns: 40px 1fr 60px;
    }
    .alerts-skel-row > :nth-child(4)[b-4wwvwji8ac],
    .alerts-skel-row > :nth-child(5)[b-4wwvwji8ac] { display: none; }
}

.spin[b-4wwvwji8ac] { animation: spin-b-4wwvwji8ac 1s linear infinite; }
@keyframes spin-b-4wwvwji8ac {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* /Components/Pages/AlertShare.razor.rz.scp.css */
.share-page[b-is6qwdi15j] {
    min-height: 100vh;
    background: var(--bg-body);
    display: flex;
    flex-direction: column;
    /* Tighter outer padding so the image card can stretch wider. */
    padding: var(--spacing-md) var(--spacing-md);
    gap: var(--spacing-md);
}

.share-header[b-is6qwdi15j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--spacing-md);
    max-width: 1600px;
    width: 100%;
    margin: 0 auto;
}

.share-brand[b-is6qwdi15j] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.share-brand .brand-mark[b-is6qwdi15j] {
    height: 48px;
    width: auto;
}

.share-brand-suffix[b-is6qwdi15j] {
    margin-left: 6px;
    font-weight: var(--font-medium);
    color: var(--text-secondary);
}

.share-brand-text[b-is6qwdi15j] {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}

.share-brand-slogan[b-is6qwdi15j] {
    font-size: var(--font-size-xs);
    font-weight: var(--font-medium);
    color: var(--text-tertiary);
    letter-spacing: 0.02em;
    margin-top: 2px;
}

/* Right-hand cluster in the share header: Back link + status badge. */
.share-header-actions[b-is6qwdi15j] {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-md);
}

.share-back-link[b-is6qwdi15j] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    text-decoration: none;
    transition: background 140ms ease, border-color 140ms ease, color 140ms ease;
}

.share-back-link:hover[b-is6qwdi15j] {
    background: var(--color-primary-subtle);
    border-color: var(--color-primary-subtle);
    color: var(--color-primary);
}

.share-back-link i[b-is6qwdi15j] { font-size: 1rem; }

.share-badge[b-is6qwdi15j] {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: var(--border-radius-full);
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
}

.share-badge-pending[b-is6qwdi15j]   { background: rgba(245, 158, 11, 0.12); color: #b45309; border: 1px solid rgba(245, 158, 11, 0.35); }
.share-badge-verified[b-is6qwdi15j]  { background: rgba(34, 197, 94, 0.12);  color: #15803d; border: 1px solid rgba(34, 197, 94, 0.35); }
.share-badge-dismissed[b-is6qwdi15j] { background: rgba(107, 114, 128, 0.12); color: #4b5563; border: 1px solid rgba(107, 114, 128, 0.35); }

.share-body[b-is6qwdi15j] {
    flex: 1;
    width: 100%;
    margin: 0 auto;
    /* Two-column layout: image left fills remaining width, details
       stacked on the right. Eliminates the white gap that opened up
       when the image's aspect ratio was narrower than the viewport. */
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: var(--spacing-md);
    align-items: start;
}

.share-image[b-is6qwdi15j] {
    margin: 0;
    background: var(--bg-card);
    border-radius: var(--border-radius-xl);
    border: 1px solid var(--border-color);
    overflow: hidden;
    box-shadow: var(--shadow-md);
}

.share-image img[b-is6qwdi15j] {
    display: block;
    width: 100%;
    height: auto;
    /* Meta now sits beside the image instead of below it, so the image
       can use almost the full viewport height. */
    max-height: 92vh;
    object-fit: contain;
    background: var(--bg-card);
}

.share-image-placeholder[b-is6qwdi15j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: var(--text-tertiary);
    padding: var(--spacing-3xl);
}

.share-image-placeholder i[b-is6qwdi15j] {
    font-size: 3rem;
}

.share-meta[b-is6qwdi15j] {
    /* Vertical stack of fact cards beside the image. */
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    background: var(--bg-card);
    border-radius: var(--border-radius-xl);
    border: 1px solid var(--border-color);
    padding: var(--spacing-md);
    position: sticky;
    top: var(--spacing-md);
}

.share-row[b-is6qwdi15j] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 12px;
    background: var(--bg-body);
    border: 1px solid var(--border-color-subtle);
    border-radius: var(--border-radius-md);
}

.share-label[b-is6qwdi15j] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--font-size-2xs);
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.share-label i[b-is6qwdi15j] {
    font-size: 0.875rem;
}

.share-value[b-is6qwdi15j] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.share-muted[b-is6qwdi15j] {
    color: var(--text-tertiary);
    font-weight: var(--font-medium);
}

.share-ai[b-is6qwdi15j] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    font-weight: var(--font-semibold);
    border-radius: var(--border-radius-full);
    align-self: flex-start;
}

.share-ai-conf[b-is6qwdi15j] { opacity: 0.85; font-weight: var(--font-medium); }

.share-state[b-is6qwdi15j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-3xl);
    color: var(--text-secondary);
}

.share-state i[b-is6qwdi15j] {
    font-size: 2.5rem;
    color: var(--text-tertiary);
}

.share-error i[b-is6qwdi15j] { color: var(--color-danger); }

/* On narrow screens collapse to single column (image stacks on top
   of the details, same as the old layout). */
@media (max-width: 900px) {
    .share-body[b-is6qwdi15j] {
        grid-template-columns: 1fr;
    }
    .share-meta[b-is6qwdi15j] {
        position: static;
    }
    .share-image img[b-is6qwdi15j] {
        max-height: 60vh;
    }
}
/* /Components/Pages/CameraDetail.razor.rz.scp.css */
.cam-detail-page[b-7bjtqkmvi5] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.cam-back[b-7bjtqkmvi5] {
    display: flex;
    align-items: center;
}

.cam-hero[b-7bjtqkmvi5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--border-radius-md);
    flex-wrap: wrap;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.cam-hero.is-disabled[b-7bjtqkmvi5] {
    border-left-color: var(--text-tertiary);
    background: linear-gradient(90deg, rgba(100, 116, 139, 0.04) 0%, var(--bg-card) 38%);
}

.cam-hero-eyebrow[b-7bjtqkmvi5] {
    display: block;
    font-size: 0.7rem;
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 4px;
}

.cam-hero-text h1[b-7bjtqkmvi5] {
    margin: 0 0 6px;
    font-size: 1.4rem;
    font-weight: var(--font-bold);
    color: var(--color-brand-dark);
    letter-spacing: -0.015em;
    line-height: 1.2;
}

.cam-hero-text p[b-7bjtqkmvi5] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--text-secondary);
}

.cam-hero-status[b-7bjtqkmvi5] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}

.cam-hero-meta[b-7bjtqkmvi5] {
    font-size: 0.75rem;
    color: var(--text-tertiary);
}

/* ===== Card head shared layout ===== */
.cam-card-head[b-7bjtqkmvi5] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.cam-card-head h3[b-7bjtqkmvi5] {
    margin: 0 0 4px;
    font-size: 1rem;
    font-weight: var(--font-semibold);
    color: var(--color-brand-dark);
    letter-spacing: -0.01em;
}

.cam-card-head p[b-7bjtqkmvi5] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--text-secondary);
    line-height: 1.5;
    max-width: 60ch;
}

/* ===== Webhook URL block ===== */
.cam-url-block[b-7bjtqkmvi5] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
}

.cam-url[b-7bjtqkmvi5] {
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    white-space: nowrap;
    font-family: Consolas, Menlo, monospace;
    font-size: 0.85rem;
    color: var(--color-brand-dark);
    background: transparent;
    padding: 0;
}

.cam-url-block .btn[b-7bjtqkmvi5] {
    flex-shrink: 0;
}

/* ===== Email config block (EmailOnMotion source) ===== */
.cam-email-fields[b-7bjtqkmvi5] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

.cam-email-row[b-7bjtqkmvi5] {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-color-subtle);
    background: var(--bg-card);
}

.cam-email-row:nth-child(even)[b-7bjtqkmvi5] {
    background: var(--bg-body);
}

.cam-email-row:last-child[b-7bjtqkmvi5] {
    border-bottom: none;
}

.cam-email-row dt[b-7bjtqkmvi5] {
    margin: 0;
    font-size: 0.75rem;
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.cam-email-row dd[b-7bjtqkmvi5] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.cam-email-row .btn[b-7bjtqkmvi5] {
    flex-shrink: 0;
}

@media (max-width: 720px) {
    .cam-email-row[b-7bjtqkmvi5] {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* ===== Setup steps ===== Matches help-page step styling so the in-page
   "How to connect this camera" mini-guide reads identically to the full
   guide on /help/camera-setup. */
.cam-steps[b-7bjtqkmvi5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.cam-steps li[b-7bjtqkmvi5] {
    display: flex;
    gap: 16px;
    padding: 14px 16px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    align-items: flex-start;
}

.cam-step-num[b-7bjtqkmvi5] {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-brand-dark);
    color: #FFFFFF;
    border-radius: 50%;
    font-size: 1rem;
    font-weight: var(--font-bold);
    font-variant-numeric: tabular-nums;
    box-shadow: 0 0 0 4px var(--bg-body), 0 2px 6px rgba(35, 53, 73, 0.18);
    margin-top: 4px;
}

.cam-step-body h4[b-7bjtqkmvi5] {
    margin: 0 0 4px;
    font-size: 0.9rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.cam-step-body p[b-7bjtqkmvi5] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.cam-step-body strong[b-7bjtqkmvi5] { color: var(--text-primary); font-weight: var(--font-semibold); }
.cam-step-body em[b-7bjtqkmvi5] { color: var(--color-brand-dark); font-style: normal; font-weight: var(--font-semibold); }

.cam-guide-note[b-7bjtqkmvi5] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 14px;
    padding: 10px 14px;
    background: rgba(106, 176, 252, 0.08);
    border-radius: var(--border-radius-sm);
    font-size: 0.8125rem;
    color: var(--text-secondary);
}

.cam-guide-note i[b-7bjtqkmvi5] {
    color: var(--color-primary);
    font-size: 1rem;
    margin-top: 1px;
}

/* ===== Details panel ============================================== */
.cam-details[b-7bjtqkmvi5] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

.cam-detail-row[b-7bjtqkmvi5] {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-color-subtle);
    background: var(--bg-card);
}

.cam-detail-row:nth-child(even)[b-7bjtqkmvi5] {
    background: var(--bg-body);
}

.cam-detail-row:last-child[b-7bjtqkmvi5] {
    border-bottom: none;
}

.cam-details dt[b-7bjtqkmvi5] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 0.75rem;
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.cam-details dt i[b-7bjtqkmvi5] {
    width: 18px;
    text-align: center;
    font-size: 1rem;
    color: var(--color-primary);
}

.cam-details dd[b-7bjtqkmvi5] {
    margin: 0;
    font-size: 0.9rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.cam-detail-strong[b-7bjtqkmvi5] {
    color: var(--text-primary);
    font-weight: var(--font-semibold);
}

.cam-detail-muted[b-7bjtqkmvi5] {
    color: var(--text-tertiary);
    font-weight: var(--font-medium);
    font-size: 0.8125rem;
}

.cam-detail-warn[b-7bjtqkmvi5] {
    color: var(--color-danger) !important;
    font-weight: var(--font-medium) !important;
}

@media (max-width: 720px) {
    .cam-hero[b-7bjtqkmvi5] {
        flex-direction: column;
        align-items: flex-start;
        padding: 18px;
    }
    .cam-hero-status[b-7bjtqkmvi5] {
        align-items: flex-start;
        flex-direction: row;
        gap: 12px;
    }
    .cam-hero-text h1[b-7bjtqkmvi5] { font-size: 1.2rem; }

    .cam-url-block[b-7bjtqkmvi5] { flex-direction: column; align-items: stretch; }
    .cam-url-block .btn[b-7bjtqkmvi5] { width: 100%; }

    .cam-detail-row[b-7bjtqkmvi5] {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* Audit action chips — natural case for readability */
.audit-action[b-7bjtqkmvi5] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: var(--border-radius-full);
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
}
.audit-action--good[b-7bjtqkmvi5]  { background: rgba(34, 197, 94, 0.12);  color: #15803d; }
.audit-action--bad[b-7bjtqkmvi5]   { background: rgba(220, 38, 38, 0.12);  color: #b91c1c; }
.audit-action--warn[b-7bjtqkmvi5]  { background: rgba(245, 158, 11, 0.15); color: #b45309; }
.audit-action--info[b-7bjtqkmvi5]  { background: rgba(106, 176, 252, 0.12); color: var(--color-primary); }

.audit-val[b-7bjtqkmvi5] {
    max-width: 240px;
    word-break: break-word;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
}

.audit-summary[b-7bjtqkmvi5] {
    display: inline;
    margin-left: 10px;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
}


/* Test camera modal styles moved to Components/Shared/CameraTestModal.razor.css */

/* /Components/Pages/Dashboard.razor.rz.scp.css */
/* Action dashboard — pro security-console layout.
   Reference: Verkada Command / Eagle Eye / Rhombus patterns.
   Separation: title+subtitle (left), status+controls (right),
   underline tabs, subtle telemetry strip. */

.dash[b-udpv0m1vqs] {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding-bottom: var(--spacing-xl);
}

/* ===== Header ===================================================== */
.dash-head[b-udpv0m1vqs] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.dash-head-text h1[b-udpv0m1vqs] {
    margin: 0 0 4px;
    font-size: 1.25rem;           /* 20px */
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    letter-spacing: -0.015em;
    line-height: 1.25;
}

.dash-head-text p[b-udpv0m1vqs] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--text-secondary);
    line-height: 1.4;
}

.dash-head-right[b-udpv0m1vqs] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* ===== Live pill (prominent, standalone) ========================
   Theme: brand success green wash + subtle green border. Radius 8px
   to stay consistent with the sound/notify icon buttons beside it. */
.dash-live-pill[b-udpv0m1vqs] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    padding: 0 14px 0 12px;
    background: var(--color-success-subtle);
    border: 1px solid var(--color-success-subtle);
    border-radius: var(--border-radius-md);
    color: var(--color-success);
    font-size: 0.7rem;
    font-weight: var(--font-bold);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    user-select: none;
    transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}

/* Disconnected state — amber wash, dot pulse stops looking healthy. */
.dash-live-pill-off[b-udpv0m1vqs] {
    background: var(--color-warning-subtle);
    border-color: rgba(245, 184, 73, 0.30);
    color: #B87A14;
}

.dash-live-pill-off .dash-live-pill-dot[b-udpv0m1vqs] {
    background: var(--color-warning);
}

.dash-live-pill-off .dash-live-pill-dot[b-udpv0m1vqs]::before {
    background: var(--color-warning);
}

.dash-live-pill-dot[b-udpv0m1vqs] {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-success);
    flex-shrink: 0;
    box-shadow: 0 0 0 0 rgba(38, 191, 148, 0);
}

.dash-live-pill-dot[b-udpv0m1vqs]::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: var(--color-success);
    opacity: 0.4;
    animation: dash-live-pill-pulse-b-udpv0m1vqs 1.8s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

@keyframes dash-live-pill-pulse-b-udpv0m1vqs {
    0%   { transform: scale(0.55); opacity: 0.55; }
    100% { transform: scale(2.1);  opacity: 0; }
}

/* Prominent "Onboard client" CTA on the dashboard header. Sits to the
   left of the LIVE pill so admins land on it first. Inherits .btn /
   .btn-primary styling from app.css; we only tune the height + icon
   gap to match the 36px height of the LIVE pill beside it. */
.dash-onboard-btn[b-udpv0m1vqs] {
    height: 36px;
    padding: 0 14px;
    gap: 8px;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    font-size: var(--font-size-sm);
}

.dash-onboard-btn i[b-udpv0m1vqs] { font-size: 1.05rem; }

@media (max-width: 640px) {
    .dash-onboard-btn span[b-udpv0m1vqs] { display: none; }
    .dash-onboard-btn[b-udpv0m1vqs] { padding: 0 10px; }
}

/* ===== Icon buttons (sound / notify) ============================= */
.dash-ibtn[b-udpv0m1vqs] {
    position: relative;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: var(--bg-card);
    border: 1px solid var(--border-input);
    border-radius: var(--border-radius-md);
    color: var(--text-secondary);
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
    transition: border-color 140ms ease, color 140ms ease, box-shadow 140ms ease;
}

.dash-ibtn i[b-udpv0m1vqs] { font-size: 1.1rem; }

.dash-ibtn:hover[b-udpv0m1vqs] {
    border-color: var(--color-brand-dark);
    color: var(--color-brand-dark);
    box-shadow: 0 2px 4px rgba(15, 23, 42, 0.08);
}

/* On state: pure white bg, navy border + icon — state communicated
   by color not by fill. */
.dash-ibtn.on[b-udpv0m1vqs] {
    background: var(--bg-card);
    border-color: var(--color-brand-dark);
    color: var(--color-brand-dark);
}

/* ===== Top strip: tabs (left) + meta telemetry (right) ===========
   One white card holds both so the row reads as a single surface.
   Active tab is filled navy; inactives sit as quiet ghost buttons. */
.dash-topstrip[b-udpv0m1vqs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    padding: 6px 12px 6px 6px;
    flex-wrap: wrap;
}

.dash-tabs[b-udpv0m1vqs] {
    display: flex;
    gap: 2px;
    overflow-x: auto;
    scrollbar-width: none;
}
.dash-tabs[b-udpv0m1vqs]::-webkit-scrollbar { display: none; }

.dash-tab[b-udpv0m1vqs] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;                    /* more breathing room between label + count */
    height: 36px;
    padding: 0 14px;
    background: transparent;
    border: none;
    border-radius: var(--border-radius-md);
    font-family: var(--font-family);
    font-size: 0.875rem;          /* 14px */
    font-weight: 400;             /* regular */
    color: var(--text-tertiary);
    cursor: pointer;
    white-space: nowrap;
    transition: color 140ms ease, background 140ms ease;
    letter-spacing: -0.005em;
}

.dash-tab.active[b-udpv0m1vqs] { font-weight: var(--font-semibold); }

.dash-tab i[b-udpv0m1vqs] {
    font-size: 1.05rem;
    opacity: 0.85;
}

.dash-tab:hover[b-udpv0m1vqs] {
    color: var(--text-primary);
    background: var(--bg-badge);
}

.dash-tab.active[b-udpv0m1vqs] {
    background: var(--color-brand-dark);
    color: #FFFFFF;
}

.dash-tab.active i[b-udpv0m1vqs] { opacity: 1; color: #FFFFFF; }

.dash-tab-count[b-udpv0m1vqs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 7px;
    border-radius: var(--border-radius-full);
    background: var(--color-brand-dark-subtle);
    color: var(--text-secondary);
    font-size: 0.7rem;
    font-weight: var(--font-bold);
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
}

.dash-tab.active .dash-tab-count[b-udpv0m1vqs] {
    background: rgba(255, 255, 255, 0.22);
    color: #FFFFFF;
}

.dash-tab-count.critical[b-udpv0m1vqs] {
    background: var(--color-danger);
    color: #FFFFFF;
    animation: dash-tab-count-pulse-b-udpv0m1vqs 1.6s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
    margin-left: 5px;
}

.dash-tab.active .dash-tab-count.critical[b-udpv0m1vqs] {
    background: var(--color-danger);
    color: #FFFFFF;
}

@keyframes dash-tab-count-pulse-b-udpv0m1vqs {
    0%   { box-shadow: 0 0 0 0   var(--color-danger-subtle); }
    100% { box-shadow: 0 0 0 7px rgba(230, 83, 60, 0); }
}

/* ===== Meta telemetry (right side of top strip) ================= */
.dash-meta[b-udpv0m1vqs] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.78125rem;        /* 12.5px */
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
    padding-right: 4px;
}

.dash-meta-item[b-udpv0m1vqs] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: var(--font-semibold);
}

.dash-meta-item strong[b-udpv0m1vqs] {
    color: var(--text-primary);
    font-weight: var(--font-bold);
}

.dash-meta-item span[b-udpv0m1vqs] {
    color: var(--text-tertiary);
    font-weight: var(--font-semibold);
}

.dash-meta-item i[b-udpv0m1vqs] {
    font-size: 0.95rem;
    color: var(--color-primary);
}

.dash-meta-critical strong[b-udpv0m1vqs],
.dash-meta-critical span[b-udpv0m1vqs] { color: var(--color-danger); }

.dash-meta-sep[b-udpv0m1vqs] {
    width: 3px;
    height: 3px;
    border-radius: var(--border-radius-full);
    background: var(--color-primary);
    opacity: 0.35;
    flex-shrink: 0;
}

/* ===== Body slot ================================================== */
.dash-body[b-udpv0m1vqs] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-height: 320px;
}

/* ===== Tier sections ============================================= */
.tier[b-udpv0m1vqs] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tier + .tier[b-udpv0m1vqs] {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed var(--border-color);
}

.tier-head[b-udpv0m1vqs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2px;
}

.tier-head h2[b-udpv0m1vqs] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 0.7rem;
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.tier-dot[b-udpv0m1vqs] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--text-tertiary);
    flex-shrink: 0;
}

.tier-critical .tier-head[b-udpv0m1vqs] {
    padding: 6px 10px;
    background: var(--color-danger-subtle);
    border-radius: var(--border-radius-md);
}

.tier-critical .tier-head h2[b-udpv0m1vqs] { color: var(--color-danger); }

.tier-critical .tier-dot[b-udpv0m1vqs] {
    background: var(--color-danger);
    animation: tier-critical-pulse-b-udpv0m1vqs 1.6s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

@keyframes tier-critical-pulse-b-udpv0m1vqs {
    0%   { box-shadow: 0 0 0 0    rgba(230, 83, 60, 0.55); }
    100% { box-shadow: 0 0 0 10px rgba(230, 83, 60, 0); }
}

.tier-high   .tier-dot[b-udpv0m1vqs] { background: var(--color-warning); }
.tier-normal .tier-dot[b-udpv0m1vqs] { background: var(--text-tertiary); }

.tier-count[b-udpv0m1vqs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    padding: 0 7px;
    border-radius: 9px;
    background: var(--bg-badge);
    color: var(--text-secondary);
    font-size: 0.65rem;
    font-weight: var(--font-bold);
    letter-spacing: 0;
}

.tier-critical .tier-count[b-udpv0m1vqs] { background: var(--color-danger); color: #FFFFFF; }

.tier-list[b-udpv0m1vqs] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ===== Permission prompt strip ==================================
   First-load only — reminds operator to grant browser notification
   permission. Dismisses to localStorage so it never re-asks. */
.notify-prompt[b-udpv0m1vqs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    background: var(--color-primary-subtle);
    border: 1px solid rgba(106, 176, 252, 0.30);
    border-radius: var(--border-radius-md);
    flex-wrap: wrap;
}

.notify-prompt-text[b-udpv0m1vqs] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8125rem;
    color: var(--color-brand-dark);
    font-weight: var(--font-semibold);
}

.notify-prompt-text i[b-udpv0m1vqs] {
    font-size: 1.05rem;
    color: var(--color-primary);
}

.notify-prompt-actions[b-udpv0m1vqs] {
    display: inline-flex;
    gap: 6px;
}

.notify-prompt-actions .btn-sm[b-udpv0m1vqs] {
    padding: 0.4rem 0.85rem;
    font-size: 0.78rem;
}

/* ===== Empty state =============================================== */
.dash-empty[b-udpv0m1vqs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 64px 24px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    text-align: center;
}

.dash-empty i[b-udpv0m1vqs] {
    font-size: 2rem;
    color: var(--color-success);
}

.dash-empty h3[b-udpv0m1vqs] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.dash-empty p[b-udpv0m1vqs] {
    margin: 0;
    font-size: 0.82rem;
    color: var(--text-tertiary);
}

/* Larger empty-state card shown when an operator hasn't been assigned
   any clients or sites yet — the dashboard would otherwise look broken. */
.dash-empty-card[b-udpv0m1vqs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 64px 32px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-left: 4px solid var(--color-warning);
    border-radius: var(--border-radius-md);
    text-align: center;
    max-width: 640px;
    margin: 32px auto;
}

.dash-empty-icon[b-udpv0m1vqs] {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--color-warning-subtle);
    color: var(--color-warning);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.dash-empty-icon i[b-udpv0m1vqs] { font-size: 1.8rem; }

.dash-empty-card h2[b-udpv0m1vqs] {
    margin: 0;
    font-size: 1.1rem;
    font-weight: var(--font-semibold);
    color: var(--color-brand-dark);
    letter-spacing: -0.01em;
}

.dash-empty-card p[b-udpv0m1vqs] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--text-secondary);
    line-height: 1.55;
    max-width: 52ch;
}

/* ===== Responsive ================================================= */
@media (max-width: 640px) {
    .dash-head[b-udpv0m1vqs] {
        flex-direction: column;
        align-items: flex-start;
    }

    .dash-head-right[b-udpv0m1vqs] {
        width: 100%;
        justify-content: flex-start;
    }

    /* Top strip stacks: tabs row on top (equal-width), meta row
       below as a compact chip strip. Avoids the cramped wrap seen
       on narrow screens. */
    .dash-topstrip[b-udpv0m1vqs] {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        padding: 6px;
    }

    .dash-tabs[b-udpv0m1vqs] {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 4px;
        width: 100%;
    }

    .dash-tab[b-udpv0m1vqs] {
        width: 100%;
        justify-content: center;
        padding: 0 8px;
        height: 34px;
        font-size: 0.78rem;
    }

    .dash-tab i[b-udpv0m1vqs] { font-size: 0.95rem; }

    .dash-tab span:not(.dash-tab-count)[b-udpv0m1vqs] {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .dash-tab-count[b-udpv0m1vqs] {
        min-width: 18px;
        height: 17px;
        padding: 0 5px;
        font-size: 0.65rem;
    }

    /* Meta row: full-width chip strip aligned left, breaks naturally. */
    .dash-meta[b-udpv0m1vqs] {
        width: 100%;
        flex-wrap: wrap;
        gap: 6px 8px;
        padding: 4px 4px 0;
        font-size: 0.72rem;
        border-top: 1px dashed var(--border-color);
        padding-top: 8px;
    }

    .dash-meta-item[b-udpv0m1vqs] {
        gap: 4px;
        padding: 2px 8px;
        background: var(--bg-body);
        border-radius: var(--border-radius-full);
        font-size: 0.7rem;
    }

    .dash-meta-item i[b-udpv0m1vqs] { font-size: 0.85rem; }

    .dash-meta-critical[b-udpv0m1vqs] {
        background: var(--color-danger-subtle);
    }

    /* Hide the inline dot separators when each meta item is its
       own pill — the gap between pills is the separator now. */
    .dash-meta-sep[b-udpv0m1vqs] { display: none; }
}

/* Offline camera banner — surfaces real-time disconnects from CameraOfflineDetector */
.dash-offline-banner[b-udpv0m1vqs] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: rgba(220, 38, 38, 0.08);
    border: 1px solid rgba(220, 38, 38, 0.35);
    border-left: 4px solid var(--color-danger);
    border-radius: var(--border-radius-md);
    color: var(--color-danger);
}
.dash-offline-banner i[b-udpv0m1vqs] { font-size: 1.25rem; }
.dash-offline-text[b-udpv0m1vqs] {
    display: flex;
    flex-direction: column;
    flex: 1;
}
.dash-offline-text strong[b-udpv0m1vqs] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
}
.dash-offline-text span[b-udpv0m1vqs] {
    font-size: var(--font-size-xs);
    color: var(--text-secondary);
}
.dash-offline-link[b-udpv0m1vqs] {
    color: var(--color-danger);
    font-weight: var(--font-semibold);
    text-decoration: none;
    font-size: var(--font-size-sm);
}
.dash-offline-link:hover[b-udpv0m1vqs] { text-decoration: underline; }
/* /Components/Pages/DashboardLegacy.razor.rz.scp.css */
.dashboard[b-csnat2uf9h] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md); /* Reduced to md (12px) */
    padding-bottom: var(--spacing-xl);
}

/* Welcome header */
.welcome[b-csnat2uf9h] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-lg);
    flex-wrap: wrap;
}

.welcome-text h1[b-csnat2uf9h] {
    font-size: 1.125rem; /* 18px */
    font-weight: var(--font-semibold); /* Removed bold */
    color: var(--text-primary);
    letter-spacing: -0.01em;
    margin: 0 0 4px;
}

.welcome-text p[b-csnat2uf9h] {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin: 0;
}

.welcome-actions[b-csnat2uf9h] {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.today-pill[b-csnat2uf9h] {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: 0.5rem 0.875rem;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-secondary);
    cursor: default;
    user-select: none;
}

.today-pill i[b-csnat2uf9h] {
    font-size: 1rem;
    color: var(--text-tertiary);
}

/* Live indicator pill */
.live-pill[b-csnat2uf9h] {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: 0.5rem 0.875rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    border-radius: var(--border-radius-md);
    letter-spacing: 0.02em;
    border: 1px solid transparent;
}

.live-pill.live-on[b-csnat2uf9h] {
    background: #E9F9F4; /* Soft green */
    border-color: rgba(38, 191, 148, 0.2);
    color: var(--color-success);
}

.live-pill.live-off[b-csnat2uf9h] {
    background: var(--bg-badge);
    border-color: var(--border-color);
    color: var(--text-tertiary);
}

.live-dot[b-csnat2uf9h] {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: var(--border-radius-full);
    background: currentColor;
    flex-shrink: 0;
}

.live-on .live-dot[b-csnat2uf9h]::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: var(--border-radius-full);
    background: currentColor;
    opacity: 0.35;
    animation: live-pulse-b-csnat2uf9h 1.6s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

@keyframes live-pulse-b-csnat2uf9h {
    0%   { transform: scale(0.6); opacity: 0.5; }
    100% { transform: scale(1.9); opacity: 0; }
}

/* Layout rows */
.stats-row[b-csnat2uf9h] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-md); /* 12px */
}

.insights-row[b-csnat2uf9h] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: var(--spacing-md);
}

.insights-side[b-csnat2uf9h],
.insights-main[b-csnat2uf9h] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.insights-full-row[b-csnat2uf9h],
.analytics-strip[b-csnat2uf9h],
.table-full[b-csnat2uf9h] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

/* Premium Section Headers */
.section-header[b-csnat2uf9h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-xs);
}

.section-header-text h2[b-csnat2uf9h] {
    font-size: 1.0625rem; /* 17px */
    font-weight: var(--font-bold);
    color: var(--text-primary);
    letter-spacing: -0.01em;
    margin: 0;
}

.section-header-text p[b-csnat2uf9h] {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    margin: 2px 0 0;
}

@media (max-width: 1280px) {
    .stats-row[b-csnat2uf9h]    { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
    .insights-row[b-csnat2uf9h] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .stats-row[b-csnat2uf9h]    { grid-template-columns: minmax(0, 1fr); }

    .welcome[b-csnat2uf9h] {
        flex-direction: column;
        align-items: stretch;
    }

    .welcome-actions[b-csnat2uf9h] {
        flex-wrap: wrap;
    }

    .welcome-text h1[b-csnat2uf9h] {
        font-size: 1.125rem;
    }

    .today-pill[b-csnat2uf9h],
    .live-pill[b-csnat2uf9h] {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* Stack the dashboard sections tighter on small screens */
@media (max-width: 640px) {
    .dashboard[b-csnat2uf9h] { gap: var(--spacing-lg); }
}
/* /Components/Pages/Help.razor.rz.scp.css */
/* Help & Guide styles hoisted to global app.css (.help-* classes) so
   /help and /help/camera-setup share them via the same global rules.
   The block below is dormant — kept commented for traceability. */
/*
.help-page {
    display: flex;
    flex-direction: column;
    gap: 18px;
    width: 100%;
   /* max-width: 1200px;
    margin: 0 auto;*/
    padding-bottom: var(--spacing-xl);[b-x73lick7np]
}

/* =====================================================================
   Phase strip — high-level flow visualisation at the top
   ===================================================================== */
.help-phases[b-x73lick7np] {
    display: flex;
    align-items: stretch;
    gap: 8px;
    padding: 18px 14px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
    overflow-x: auto;
    scrollbar-width: none;
}
.help-phases[b-x73lick7np]::-webkit-scrollbar { display: none; }

.help-phase[b-x73lick7np] {
    position: relative;
    flex: 1 1 0;
    min-width: 150px;
    padding: 14px 14px 12px;
    text-align: center;
}

.help-phase-icon[b-x73lick7np] {
    width: 40px;
    height: 40px;
    margin: 0 auto 8px;
    border-radius: 50%;
    background: var(--color-primary-subtle);
    color: var(--color-brand-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.help-phase-icon i[b-x73lick7np] { font-size: 1.15rem; }

.help-phase-num[b-x73lick7np] {
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 0.62rem;
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    letter-spacing: 0.06em;
}

.help-phase h4[b-x73lick7np] {
    margin: 0 0 2px;
    font-size: 0.85rem;
    font-weight: var(--font-bold);
    color: var(--color-brand-dark);
}

.help-phase p[b-x73lick7np] {
    margin: 0;
    font-size: 0.75rem;
    color: var(--text-tertiary);
    line-height: 1.4;
}

@media (max-width: 880px) {
    .help-phases[b-x73lick7np] { flex-direction: column; gap: 8px; padding: 16px; }
    .help-phase[b-x73lick7np] { min-width: 0; }
}

/* =====================================================================
   Link card — used to point Help-overview users at deeper guides
   (e.g. /help/camera-setup) without inflating the main timeline.
   ===================================================================== */
.help-link-card[b-x73lick7np] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--border-radius-md);
    text-decoration: none;
    transition: all 160ms ease;
}

.help-link-card:hover[b-x73lick7np] {
    border-color: var(--color-primary);
    box-shadow: 0 2px 8px rgba(106, 176, 252, 0.15);
}

.help-link-icon[b-x73lick7np] {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    border-radius: var(--border-radius-md);
}

.help-link-icon i[b-x73lick7np] { font-size: 1.4rem; }

.help-link-body[b-x73lick7np] {
    flex: 1 1 auto;
    min-width: 0;
}

.help-link-body h3[b-x73lick7np] {
    margin: 0 0 4px;
    font-size: 0.95rem;
    font-weight: var(--font-semibold);
    color: var(--color-brand-dark);
    letter-spacing: -0.01em;
}

.help-link-body p[b-x73lick7np] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.help-link-cta[b-x73lick7np] {
    flex-shrink: 0;
    color: var(--text-tertiary);
    transition: transform 160ms ease, color 160ms ease;
}

.help-link-cta i[b-x73lick7np] { font-size: 1.2rem; }

.help-link-card:hover .help-link-cta[b-x73lick7np] {
    color: var(--color-primary);
    transform: translateX(4px);
}

/* =====================================================================
   Section header — sub-page heading inside the Help page (e.g. "Connecting
   a camera"). Sits above its own help-step timeline.
   ===================================================================== */
.help-section[b-x73lick7np] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--border-color-subtle);
}

.help-section-head[b-x73lick7np] {
    padding: 4px 4px 0;
}

.help-section-head h2[b-x73lick7np] {
    margin: 0 0 6px;
    font-size: 1.15rem;
    font-weight: var(--font-bold);
    color: var(--color-brand-dark);
    letter-spacing: -0.01em;
}

.help-section-head p[b-x73lick7np] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--text-secondary);
    line-height: 1.55;
    max-width: 70ch;
}

/* =====================================================================
   Detailed steps — vertical connector line with circle markers
   ===================================================================== */
.help-steps[b-x73lick7np] {
    display: flex;
    flex-direction: column;
    position: relative;
    padding-left: 4px;
}

    .help-steps[b-x73lick7np]::before {
        content: '';
        position: absolute;
        left: 28px;
        top: 28px;
        bottom: 28px;
        width: 2px;
        /*    background: linear-gradient(180deg,
        var(--color-primary) 0%,
        var(--color-primary-subtle) 8%,
        var(--border-color) 30%,
        var(--border-color) 70%,
        var(--color-primary-subtle) 92%,
        var(--color-primary) 100%);*/
        background: var(--border-color);
        z-index: 0;
        border-radius: 2px;
    }

.help-step[b-x73lick7np] {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 16px;
    padding: 8px 0;
    position: relative;
    z-index: 1;
}

.help-step-marker[b-x73lick7np] {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.help-step-num[b-x73lick7np] {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-brand-dark);
    color: #FFFFFF;
    font-size: 1rem;
    font-weight: var(--font-bold);
    font-variant-numeric: tabular-nums;
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--bg-body), 0 2px 6px rgba(35, 53, 73, 0.18);
    margin-top: 4px;
}

.help-step-body[b-x73lick7np] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    padding: 18px 22px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.help-step-body h2[b-x73lick7np] {
    margin: 0 0 8px;
    font-size: 1.05rem;
    font-weight: var(--font-semibold);
    color: var(--color-brand-dark);
    letter-spacing: -0.01em;
}

.help-step-body p[b-x73lick7np] {
    margin: 0 0 10px;
    font-size: 0.9rem;
    color: var(--text-secondary);
    line-height: 1.6;
}

.help-step-body p:last-child[b-x73lick7np] { margin-bottom: 0; }

.help-step-body strong[b-x73lick7np] { color: var(--text-primary); font-weight: var(--font-semibold); }

.help-step-body em[b-x73lick7np] {
    color: var(--color-brand-dark);
    font-style: normal;
    font-weight: var(--font-semibold);
}

/* ===== Pills + tag groups ======================================== */
.help-tags[b-x73lick7np] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 6px 0 12px;
}

.help-pill[b-x73lick7np] {
    display: inline-flex;
    align-items: center;
    padding: 3px 11px;
    border-radius: var(--border-radius-full);
    font-size: 0.72rem;
    font-weight: var(--font-bold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.help-pill-pending[b-x73lick7np]  { background: var(--bg-badge); color: var(--text-secondary); }
.help-pill-priority[b-x73lick7np] { background: var(--color-danger-subtle); color: var(--color-danger); }
.help-pill-info[b-x73lick7np]     { background: var(--color-primary-subtle); color: var(--color-brand-dark); }

/* ===== Tier list (step 3) ======================================== */
.help-tier-list[b-x73lick7np] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 8px 0 6px;
}

.help-tier[b-x73lick7np] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-left-width: 3px;
    border-radius: var(--border-radius-sm);
}

.help-tier strong[b-x73lick7np] {
    display: block;
    font-size: 0.9rem;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.help-tier p[b-x73lick7np] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.help-tier-dot[b-x73lick7np] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-top: 7px;
    flex-shrink: 0;
}

.help-tier-critical[b-x73lick7np] { border-left-color: var(--color-danger); }
.help-tier-critical .help-tier-dot[b-x73lick7np] { background: var(--color-danger); }

.help-tier-high[b-x73lick7np] { border-left-color: var(--color-warning); }
.help-tier-high .help-tier-dot[b-x73lick7np] { background: var(--color-warning); }

.help-tier-normal[b-x73lick7np] { border-left-color: var(--text-tertiary); }
.help-tier-normal .help-tier-dot[b-x73lick7np] { background: var(--text-tertiary); }

/* ===== Action cards (step 4) ===================================== */
.help-actions[b-x73lick7np] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 10px;
    margin: 10px 0;
}

.help-action[b-x73lick7np] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
}

.help-action i[b-x73lick7np] {
    font-size: 1.5rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.help-action strong[b-x73lick7np] {
    display: block;
    font-size: 0.9rem;
    margin-bottom: 2px;
    color: var(--text-primary);
}

.help-action p[b-x73lick7np] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.help-action-real i[b-x73lick7np] { color: var(--color-danger); }
.help-action-false i[b-x73lick7np] { color: var(--text-tertiary); }

.help-note[b-x73lick7np] {
    font-size: 0.8125rem !important;
    color: var(--text-tertiary) !important;
    font-style: italic;
}

/* ===== Channels (step 5) ========================================= */
.help-channels[b-x73lick7np] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px;
    margin: 10px 0;
}

.help-channel[b-x73lick7np] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px;
    background: var(--color-primary-subtle);
    border-radius: var(--border-radius-sm);
}

.help-channel i[b-x73lick7np] {
    font-size: 1.4rem;
    color: var(--color-brand-dark);
    flex-shrink: 0;
    margin-top: 2px;
}

.help-channel strong[b-x73lick7np] {
    display: block;
    font-size: 0.9rem;
    margin-bottom: 2px;
    color: var(--color-brand-dark);
}

.help-channel p[b-x73lick7np] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* ===== Tip card =================================================== */
.help-tip[b-x73lick7np] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 22px;
    background: linear-gradient(135deg, var(--color-primary-subtle), rgba(106, 176, 252, 0.04));
    border: 1px solid rgba(106, 176, 252, 0.30);
    border-radius: var(--border-radius-md);
}

.help-tip-icon[b-x73lick7np] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--color-primary);
    color: #FFFFFF;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.help-tip-icon i[b-x73lick7np] { font-size: 1.5rem; }

.help-tip-body h3[b-x73lick7np] {
    margin: 0 0 4px;
    font-size: 1rem;
    font-weight: var(--font-semibold);
    color: var(--color-brand-dark);
    letter-spacing: -0.01em;
}

.help-tip-body p[b-x73lick7np] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--text-secondary);
    line-height: 1.55;
}

.help-tip-body strong[b-x73lick7np] { color: var(--color-brand-dark); font-weight: var(--font-semibold); }

/* ===== Responsive ================================================= */
@media (max-width: 640px) {
    .help-step[b-x73lick7np] {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 10px;
    }
    .help-steps[b-x73lick7np]::before { left: 17px; top: 22px; bottom: 22px; }
    .help-step-num[b-x73lick7np] {
        width: 28px;
        height: 28px;
        font-size: 0.85rem;
        box-shadow: 0 0 0 3px var(--bg-body), 0 2px 6px rgba(35, 53, 73, 0.18);
    }
    .help-step-body[b-x73lick7np] { padding: 14px 16px; }

    .help-step-body h2[b-x73lick7np] { font-size: 1rem; }
    .help-step-body p[b-x73lick7np]  { font-size: 0.85rem; }

    .help-tip[b-x73lick7np] { padding: 16px 18px; gap: 12px; flex-wrap: wrap; }
    .help-tip-icon[b-x73lick7np] { width: 40px; height: 40px; }
    .help-tip-icon i[b-x73lick7np] { font-size: 1.2rem; }
    .help-tip-body h3[b-x73lick7np] { font-size: 0.95rem; }
    .help-tip-body p[b-x73lick7np]  { font-size: 0.85rem; }

    .help-phase h4[b-x73lick7np] { font-size: 0.8rem; }
    .help-phase p[b-x73lick7np]  { font-size: 0.7rem; }
}

@media (max-width: 420px) {
    .help-action[b-x73lick7np],
    .help-channel[b-x73lick7np],
    .help-tier[b-x73lick7np] { padding: 10px 12px; }
    .help-action i[b-x73lick7np],
    .help-channel i[b-x73lick7np] { font-size: 1.25rem; }
    .help-action strong[b-x73lick7np],
    .help-channel strong[b-x73lick7np],
    .help-tier strong[b-x73lick7np] { font-size: 0.85rem; }
    .help-action p[b-x73lick7np],
    .help-channel p[b-x73lick7np],
    .help-tier p[b-x73lick7np] { font-size: 0.78rem; }
    .help-tip[b-x73lick7np] { flex-direction: column; align-items: flex-start; }
}
*/[b-x73lick7np]
/* /Components/Pages/HelpCameraSetup.razor.rz.scp.css */
/* HelpCameraSetup page — readable, plain-English layout */

.hcs-info[b-114t3dkk58] {
    border-left: 4px solid var(--color-primary);
}

.hcs-info-head[b-114t3dkk58] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.hcs-info-head i[b-114t3dkk58] {
    color: var(--color-success);
    font-size: 1.4rem;
}
.hcs-info-head h3[b-114t3dkk58] {
    margin: 0;
    font-size: 1rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.hcs-info-list[b-114t3dkk58] {
    margin: 0;
    padding-left: 22px;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.7;
}

.help-step-num[b-114t3dkk58] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin-right: 10px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 50%;
    font-size: 0.95rem;
    font-weight: var(--font-bold);
    vertical-align: middle;
}

.hcs-prose[b-114t3dkk58] {
    margin: 0 0 14px;
    color: var(--text-secondary);
    line-height: 1.65;
    font-size: var(--font-size-sm);
    word-spacing: 0.04em;
    letter-spacing: 0.005em;
}

.hcs-prose:last-child[b-114t3dkk58] { margin-bottom: 0; }

.hcs-fields[b-114t3dkk58] {
    margin: 0 0 14px;
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 10px 16px;
    padding: 14px 16px;
    background: var(--bg-body);
    border: 1px solid var(--border-color-subtle);
    border-radius: var(--border-radius-md);
}

.hcs-fields dt[b-114t3dkk58] {
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    font-size: var(--font-size-sm);
}

.hcs-fields dd[b-114t3dkk58] {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.6;
    word-spacing: 0.04em;
}

.hcs-fields em[b-114t3dkk58] {
    font-style: normal;
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    padding: 1px 6px;
    border-radius: 4px;
    font-weight: var(--font-semibold);
}

@media (max-width: 720px) {
    .hcs-fields[b-114t3dkk58] {
        grid-template-columns: 1fr;
        gap: 6px 0;
    }
    .hcs-fields dt[b-114t3dkk58] { margin-top: 8px; }
}

.hcs-vendor-grid[b-114t3dkk58] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
    margin: 14px 0;
}

.hcs-vendor[b-114t3dkk58] {
    background: var(--bg-body);
    border: 1px solid var(--border-color-subtle);
    border-radius: var(--border-radius-md);
    padding: 14px 16px;
}

.hcs-vendor header[b-114t3dkk58] {
    margin-bottom: 10px;
}

.hcs-vendor-tag[b-114t3dkk58] {
    display: inline-block;
    padding: 3px 10px;
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    border-radius: var(--border-radius-full);
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
}

.hcs-vendor ol[b-114t3dkk58] {
    margin: 0;
    padding-left: 22px;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.65;
    word-spacing: 0.04em;
}

.hcs-vendor ol li[b-114t3dkk58] { padding: 3px 0; }

.hcs-vendor em[b-114t3dkk58] {
    font-style: normal;
    background: rgba(245, 158, 11, 0.15);
    color: #b45309;
    padding: 1px 6px;
    border-radius: 4px;
    font-weight: var(--font-semibold);
}

.hcs-tip[b-114t3dkk58] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 8px;
    padding: 10px 14px;
    background: rgba(106, 176, 252, 0.08);
    border-left: 3px solid var(--color-primary);
    border-radius: var(--border-radius-sm);
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.6;
    word-spacing: 0.04em;
}

.hcs-tip i[b-114t3dkk58] {
    color: var(--color-primary);
    font-size: 1rem;
    margin-top: 2px;
    flex-shrink: 0;
}

.hcs-check-list[b-114t3dkk58] {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.hcs-check-list li[b-114t3dkk58] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.6;
    word-spacing: 0.04em;
}

.hcs-check-list i[b-114t3dkk58] {
    color: var(--color-success);
    font-size: 1.1rem;
    margin-top: 1px;
    flex-shrink: 0;
}

.hcs-check-list em[b-114t3dkk58] {
    font-style: normal;
    color: var(--text-primary);
    font-weight: var(--font-semibold);
}

.hcs-tip-list[b-114t3dkk58] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.hcs-tip-list li[b-114t3dkk58] {
    padding: 10px 14px;
    background: var(--bg-body);
    border-left: 3px solid var(--color-primary-subtle);
    border-radius: var(--border-radius-sm);
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.6;
    word-spacing: 0.04em;
}

.hcs-tip-list strong[b-114t3dkk58] {
    color: var(--text-primary);
    display: block;
    margin-bottom: 2px;
}

.hcs-tip-list em[b-114t3dkk58] {
    font-style: normal;
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    padding: 1px 6px;
    border-radius: 4px;
    font-weight: var(--font-semibold);
}
/* /Components/Pages/IncidentDetail.razor.rz.scp.css */
.incident-detail-page[b-m3fway1orp] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ===== Back link container ======================================== */
/* Button itself uses the global .back-link class (in app.css). */
.incident-detail-back[b-m3fway1orp] {
    display: flex;
    align-items: center;
}

/* ===== Hero ======================================================= */
.incident-hero[b-m3fway1orp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-left: 4px solid var(--text-tertiary);
    border-radius: var(--border-radius-md);
    flex-wrap: wrap;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.incident-hero.is-real[b-m3fway1orp] {
    border-left-color: var(--color-danger);
    background: linear-gradient(90deg, rgba(230, 83, 60, 0.05) 0%, var(--bg-card) 38%);
}

.incident-hero.is-dismissed[b-m3fway1orp] {
    border-left-color: var(--text-tertiary);
    background: linear-gradient(90deg, rgba(100, 116, 139, 0.04) 0%, var(--bg-card) 38%);
}


.incident-hero-eyebrow[b-m3fway1orp] {
    display: block;
    font-size: 0.7rem;
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 4px;
}

.incident-hero-text h1[b-m3fway1orp] {
    margin: 0 0 6px;
    font-size: 1.4rem;
    font-weight: var(--font-bold);
    color: var(--color-brand-dark);
    letter-spacing: -0.015em;
    line-height: 1.2;
}

.incident-hero.is-real .incident-hero-text h1[b-m3fway1orp] { color: var(--color-danger); }

.incident-hero-text p[b-m3fway1orp] {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--text-secondary);
}

.incident-hero-pills[b-m3fway1orp] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.incident-hero-pill[b-m3fway1orp] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: var(--border-radius-full);
    font-size: 0.78rem;
    font-weight: var(--font-bold);
    letter-spacing: 0.04em;
}

.incident-hero-pill.outcome[b-m3fway1orp] {
    background: var(--bg-badge);
    color: var(--text-secondary);
}

.incident-hero.is-real .incident-hero-pill.outcome[b-m3fway1orp] {
    background: var(--color-danger);
    color: #FFFFFF;
}

.incident-hero-pill.conf[b-m3fway1orp] {
    background: var(--color-primary-subtle);
    color: var(--color-brand-dark);
    font-variant-numeric: tabular-nums;
}

.incident-hero-pill i[b-m3fway1orp] { font-size: 1rem; }

/* ===== Detail grid ================================================ */
.incident-detail-grid[b-m3fway1orp] {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
    gap: 16px;
    align-items: start;
}

@media (max-width: 900px) {
    .incident-detail-grid[b-m3fway1orp] { grid-template-columns: minmax(0, 1fr); }
}

/* ===== Snapshot ================================================== */
.incident-snapshot[b-m3fway1orp] {
    position: relative;
    padding: 0;
    overflow: hidden;
    background: #0B1220;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.incident-snapshot img[b-m3fway1orp] {
    width: 100%;
    height: auto;
    max-height: 640px;
    object-fit: contain;
    display: block;
}

.incident-no-image[b-m3fway1orp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: #6B7280;
    padding: 60px 20px;
}

.incident-no-image i[b-m3fway1orp] { font-size: 2rem; }

.incident-snapshot-caption[b-m3fway1orp] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    background: linear-gradient(180deg, rgba(11, 18, 32, 0) 0%, rgba(11, 18, 32, 0.7) 70%, rgba(11, 18, 32, 0.85) 100%);
    color: #FFFFFF;
    font-size: 0.78rem;
    font-weight: var(--font-semibold);
    letter-spacing: 0.02em;
    pointer-events: none;
}

.incident-snapshot-cap-left[b-m3fway1orp],
.incident-snapshot-cap-right[b-m3fway1orp] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.incident-snapshot-caption i[b-m3fway1orp] { font-size: 1rem; opacity: 0.85; }

/* ===== Confidence visual ========================================== */
.incident-conf-bar[b-m3fway1orp] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 120px;
}

.incident-conf-num[b-m3fway1orp] {
    font-size: 0.85rem;
    font-weight: var(--font-bold);
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
}

.incident-conf-num.low[b-m3fway1orp]    { color: var(--color-danger); }
.incident-conf-num.medium[b-m3fway1orp] { color: var(--color-warning); }
.incident-conf-num.high[b-m3fway1orp]   { color: var(--color-primary); }

.incident-conf-track[b-m3fway1orp] {
    display: block;
    height: 5px;
    background: var(--bg-badge);
    border-radius: var(--border-radius-full);
    overflow: hidden;
}

.incident-conf-fill[b-m3fway1orp] {
    display: block;
    height: 100%;
    border-radius: var(--border-radius-full);
    background: var(--color-primary);
    transition: width 240ms ease;
}

.incident-conf-fill.low[b-m3fway1orp]    { background: var(--color-danger); }
.incident-conf-fill.medium[b-m3fway1orp] { background: var(--color-warning); }
.incident-conf-fill.high[b-m3fway1orp]   { background: var(--color-primary); }

/* ===== Meta stack ================================================= */
.incident-meta-stack[b-m3fway1orp] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.incident-card[b-m3fway1orp] {
    padding: 18px 20px;
}

.incident-card-title[b-m3fway1orp] {
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
    font-size: 0.7rem;
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.incident-meta[b-m3fway1orp] {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.incident-meta-row[b-m3fway1orp] {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
}

.incident-meta dt[b-m3fway1orp] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.78rem;
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    margin: 0;
}

.incident-meta dt i[b-m3fway1orp] {
    font-size: 1rem;
    color: var(--color-primary);
    width: 20px;
    text-align: center;
}

.incident-meta dd[b-m3fway1orp] {
    margin: 0;
    font-size: 0.9rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.incident-label[b-m3fway1orp] {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    background: var(--color-primary-subtle);
    color: var(--color-brand-dark);
    border-radius: var(--border-radius-full);
    font-size: 0.75rem;
    font-weight: var(--font-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.incident-muted[b-m3fway1orp] {
    color: var(--text-tertiary);
    font-weight: var(--font-medium);
    font-style: italic;
}

/* ===== Operator log block ========================================= */
.incident-log-block[b-m3fway1orp] {
    padding: 14px 16px;
    background: var(--bg-body);
    border-radius: var(--border-radius-sm);
    border-left: 3px solid var(--color-primary);
}

.incident-log-block + .incident-log-block[b-m3fway1orp] { margin-top: 10px; }

.incident-log-block h4[b-m3fway1orp] {
    margin: 0 0 6px;
    font-size: 0.7rem;
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.incident-log-block p[b-m3fway1orp] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--text-primary);
    line-height: 1.5;
    white-space: pre-wrap;
}

/* ===== Responsive ================================================= */
@media (max-width: 720px) {
    .incident-hero[b-m3fway1orp] {
        flex-direction: column;
        align-items: flex-start;
        padding: 18px 18px;
        gap: 14px;
    }
    .incident-hero-text h1[b-m3fway1orp] { font-size: 1.2rem; line-height: 1.25; }
    .incident-hero-text p[b-m3fway1orp]  { font-size: 0.78rem; }
    .incident-snapshot[b-m3fway1orp] { min-height: 220px; }
    .incident-snapshot img[b-m3fway1orp] { max-height: 420px; }
    .incident-card[b-m3fway1orp] { padding: 14px 16px; }
}

@media (max-width: 640px) {
    .incident-detail-page[b-m3fway1orp] { gap: 12px; }
    .incident-meta-row[b-m3fway1orp] {
        grid-template-columns: 1fr;
        gap: 4px;
    }
    .incident-meta dt[b-m3fway1orp] { font-size: 0.72rem; }
    .incident-meta dd[b-m3fway1orp] { font-size: 0.85rem; }
    .incident-hero-pill[b-m3fway1orp] { padding: 5px 10px; font-size: 0.72rem; }
    .incident-back-btn[b-m3fway1orp] { padding: 7px 12px; font-size: 0.78rem; }
    .incident-snapshot-caption[b-m3fway1orp] {
        padding: 8px 10px;
        font-size: 0.72rem;
    }
    .incident-snapshot-cap-left[b-m3fway1orp],
    .incident-snapshot-cap-right[b-m3fway1orp] { gap: 4px; }
    .incident-log-block[b-m3fway1orp] { padding: 12px 14px; }
}
/* /Components/Pages/Incidents.razor.rz.scp.css */
/* Incidents history list polish — uses Alerts filter primitives,
   adds subtle outcome-tier accent on each row. */

.incident-row[b-k08clcbnr5] {
    cursor: pointer;
    transition: background 140ms ease;
}

.incident-row:hover[b-k08clcbnr5] {
    background: rgba(106, 176, 252, 0.06);
}

@media (max-width: 540px) {
    .incident-row td[b-k08clcbnr5] { padding: 10px 8px; }
}
/* /Components/Pages/Index.razor.rz.scp.css */
/* Landing Page Scoped Styles */

.sw-landing[b-gtgwnzrnxm] {
    padding-top: var(--s-header-height);
}

.sw-container[b-gtgwnzrnxm] {
    max-width: var(--s-container);
    margin: 0 auto;
    padding: 0 24px;
}

/* Animations */
@@keyframes fadeInUp {
    from[b-gtgwnzrnxm] { opacity: 0; transform: translateY(30px); }
    to[b-gtgwnzrnxm] { opacity: 1; transform: translateY(0); }
}

@@keyframes pulse-glow {
    0%[b-gtgwnzrnxm] { box-shadow: 0 0 0 0 rgba(106, 176, 252, 0.4); }
    70%[b-gtgwnzrnxm] { box-shadow: 0 0 0 15px rgba(106, 176, 252, 0); }
    100%[b-gtgwnzrnxm] { box-shadow: 0 0 0 0 rgba(106, 176, 252, 0); }
}

@@keyframes float {
    0%[b-gtgwnzrnxm] { transform: translateY(0px); }
    50%[b-gtgwnzrnxm] { transform: translateY(-10px); }
    100%[b-gtgwnzrnxm] { transform: translateY(0px); }
}

/* Hero Section */
.sw-hero[b-gtgwnzrnxm] {
    position: relative;
    padding: 60px 0 100px;
    overflow: hidden;
    background: #fff;
}

.sw-hero-content[b-gtgwnzrnxm] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 80px;
    position: relative;
    z-index: 10;
}

.sw-hero-text[b-gtgwnzrnxm] {
    animation: fadeInUp 0.8s ease-out;
    margin-bottom:12%;
}

.sw-badge[b-gtgwnzrnxm] {
    display: inline-block;
    padding: 6px 16px;
    background: rgba(106, 176, 252, 0.1);
    color: var(--s-blue);
    border-radius: 99px;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 24px;
}

.sw-hero-text h1[b-gtgwnzrnxm] {
    font-size: 2.6rem;
    line-height: 1.1;
    margin-bottom: 24px;
    color: var(--s-navy);
}

.sw-hero-text h1 span[b-gtgwnzrnxm] {
    color: var(--s-blue);
}

.sw-hero-text p[b-gtgwnzrnxm] {
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--s-text-muted);
    margin-bottom: 48px;
    max-width: 540px;
}

.sw-hero-actions[b-gtgwnzrnxm] {
    display: flex;
    gap: 16px;
}

.sw-btn-lg[b-gtgwnzrnxm] {
    padding: 10px 20px;
    font-size: 0.95rem;
}

.sw-btn-outline[b-gtgwnzrnxm] {
    border: 2px solid var(--s-navy);
    color: var(--s-navy);
    background: transparent;
}

.sw-btn-outline:hover[b-gtgwnzrnxm] {
    background: var(--s-navy);
    color: #fff !important;
}

.sw-hero-visual[b-gtgwnzrnxm] {
    position: relative;
    animation: fadeInUp 1s ease-out 0.2s backwards;
}

.sw-hero-dashboard-img[b-gtgwnzrnxm] {
    width: 100%;
    height: auto;
    display: block;
    max-width: 100%;
}

.sw-hero-card[b-gtgwnzrnxm] {
    background: #cfcfcf;
    border: 1px solid rgba(0,0,0,0.05);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 40px 80px rgba(0,0,0,0.1);
}


.sw-card-header[b-gtgwnzrnxm] {
    padding: 20px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(0,0,0,0.05);
}

.sw-live-indicator[b-gtgwnzrnxm] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--s-navy);
    font-size: 0.85rem;
    font-weight: 600;
}

.sw-live-indicator .dot[b-gtgwnzrnxm] {
    width: 10px;
    height: 10px;
    background: #ff4d4d;
    border-radius: 50%;
    animation: pulse-glow 2s infinite;
}

.sw-camera-name[b-gtgwnzrnxm] {
    color: var(--s-text-muted);
    font-size: 0.8rem;
}

.sw-card-video[b-gtgwnzrnxm] {
    position: relative;
    aspect-ratio: 16/9;
    background: #f5f7fa;
}

.sw-card-video img[b-gtgwnzrnxm] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.9;
}

.sw-ai-overlay[b-gtgwnzrnxm] {
    position: absolute;
    inset: 0;
    z-index: 5;
}

.sw-bounding-box[b-gtgwnzrnxm] {
    position: absolute;
    border: 2px solid var(--s-blue);
    border-radius: 4px;
    box-shadow: 0 0 15px rgba(106, 176, 252, 0.6);
}

.sw-bounding-box.danger[b-gtgwnzrnxm] {
    border-color: #ff4d4d;
    box-shadow: 0 0 15px rgba(255, 77, 77, 0.6);
}

.sw-bounding-box .label[b-gtgwnzrnxm] {
    position: absolute;
    top: -26px;
    left: -2px;
    background: var(--s-blue);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 2px;
    white-space: nowrap;
}

.sw-bounding-box.danger .label[b-gtgwnzrnxm] {
    background: #ff4d4d;
}

.sw-card-footer[b-gtgwnzrnxm] {
    padding: 20px 24px;
}

.sw-alert-pill[b-gtgwnzrnxm] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: 99px;
    font-size: 0.9rem;
    font-weight: 600;
}

.sw-alert-pill.critical[b-gtgwnzrnxm] {
    background: rgba(255, 77, 77, 0.15);
    color: #ff4d4d;
    border: 1px solid rgba(255, 77, 77, 0.25);
}

.sw-hero-bg[b-gtgwnzrnxm] {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.gradient-1[b-gtgwnzrnxm] {
    position: absolute;
    top: -15%;
    right: -10%;
    width: 70%;
    height: 70%;
    background: radial-gradient(circle, rgba(106, 176, 252, 0.12) 0%, rgba(255,255,255,0) 70%);
}

.gradient-2[b-gtgwnzrnxm] {
    position: absolute;
    bottom: -15%;
    left: -10%;
    width: 60%;
    height: 60%;
    background: radial-gradient(circle, rgba(35, 53, 73, 0.08) 0%, rgba(255,255,255,0) 70%);
}

/* Trust Bar */
.sw-trust-bar[b-gtgwnzrnxm] {
    padding: 40px 0;
    background: #fff;
    border-top: 1px solid rgba(0,0,0,0.05);
    border-bottom: 1px solid rgba(0,0,0,0.05);
    text-align: center;
}

.sw-trust-bar p[b-gtgwnzrnxm] {
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--s-text-muted);
    margin-bottom: 32px;
}

.sw-logo-cloud[b-gtgwnzrnxm] {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 60px;
    flex-wrap: wrap;
    opacity: 0.6;
}

.logo-item[b-gtgwnzrnxm] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--s-navy);
}

.logo-item i[b-gtgwnzrnxm] { font-size: 1.5rem; color: var(--s-blue); }

/* Stats Section */
.sw-stats[b-gtgwnzrnxm] {
    padding: 50px 0;
    background: #F8FAFC;
    border-top: 1px solid rgba(226, 232, 240, 0.8);
    border-bottom: 1px solid rgba(226, 232, 240, 0.8);
}

.sw-stats-grid[b-gtgwnzrnxm] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    text-align: center;
}

.sw-stat-item h3[b-gtgwnzrnxm] {
    font-size: 2.75rem;
    margin-bottom: 8px;
    color: var(--s-blue);
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.sw-stat-item h3 i[b-gtgwnzrnxm] {
    font-size: 2.2rem;
    color: var(--s-blue);
    opacity: 0.95;
}

.sw-stat-item p[b-gtgwnzrnxm] {
    color: #475569;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-size: 0.85rem;
}

/* How it Works */
.sw-how-it-works[b-gtgwnzrnxm] {
    padding: 100px 0;
    background: #fff;
    border-bottom: 1px solid rgba(226, 232, 240, 0.8);
    overflow: hidden;
}

.sw-flowchart-wrapper[b-gtgwnzrnxm] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-top: 60px;
}

.sw-flow-step[b-gtgwnzrnxm] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 1;
    min-width: 170px;
}

.sw-flow-step.wide-step[b-gtgwnzrnxm] {
    flex: 1;
    min-width: 190px;
}

.sw-flow-graphic-circle[b-gtgwnzrnxm] {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.75rem;
    margin-bottom: 24px;
    position: relative;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
    border-width: 2px;
    border-style: solid;
}

.sw-flow-step:hover .sw-flow-graphic-circle[b-gtgwnzrnxm] {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(37, 99, 235, 0.12);
}

.sw-flow-graphic-circle.red-tint[b-gtgwnzrnxm] {
    background: #FFF0F0;
    color: #EF4444;
    border-color: #FEE2E2;
}

.sw-flow-graphic-circle.blue-tint[b-gtgwnzrnxm] {
    background: #EFF6FF;
    color: var(--s-blue);
    border-color: #DBEAFE;
}

.sw-flow-graphic-circle.green-tint[b-gtgwnzrnxm] {
    background: #F0FDF4;
    color: #22C55E;
    border-color: #DCFCE7;
}

.sw-flow-badge-icon[b-gtgwnzrnxm] {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    border: 2px solid #fff;
    color: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.sw-flow-badge-icon.alert-badge[b-gtgwnzrnxm] {
    background: #EF4444;
}

.sw-flow-badge-icon.transfer-badge[b-gtgwnzrnxm] {
    background: var(--s-blue);
}

.sw-flow-badge-icon.police-badge[b-gtgwnzrnxm] {
    background: #22C55E;
}

.sw-flow-arrow[b-gtgwnzrnxm] {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #CBD5E1;
    height: 120px;
    flex-shrink: 0;
}

.sw-flow-decision-cards[b-gtgwnzrnxm] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    width: 100%;
}

.sw-decision-card[b-gtgwnzrnxm] {
    background: #fff;
    border-radius: 12px;
    padding: 10px 14px;
    width: 180px;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
    border: 1px solid rgba(226, 232, 240, 0.8);
    text-align: left;
    transition: all 0.3s ease;
    z-index: 2;
}

.sw-decision-card.green-card[b-gtgwnzrnxm] {
    border-color: #A7F3D0;
    border-left: 4px solid #10B981;
}

.sw-decision-card.red-card[b-gtgwnzrnxm] {
    border-color: #FCA5A5;
    border-left: 4px solid #EF4444;
}

.sw-decision-card:hover[b-gtgwnzrnxm] {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
}

.sw-decision-card .card-title[b-gtgwnzrnxm] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    font-weight: 800;
    margin-bottom: 4px;
    letter-spacing: 0.5px;
}

.sw-decision-card.green-card .card-title[b-gtgwnzrnxm] {
    color: #10B981;
}

.sw-decision-card.red-card .card-title[b-gtgwnzrnxm] {
    color: #EF4444;
}

.sw-decision-card .card-list[b-gtgwnzrnxm] {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.7rem;
    color: #64748B;
    font-weight: 600;
    line-height: 1.4;
}

.sw-decision-card .card-list li[b-gtgwnzrnxm] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.sw-decision-connector[b-gtgwnzrnxm] {
    position: absolute;
    top: -12px;
    background: #F1F5F9;
    border: 1px dashed #CBD5E1;
    color: #475569;
    font-size: 0.6rem;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 99px;
    text-transform: uppercase;
    white-space: nowrap;
    letter-spacing: 0.5px;
    z-index: 3;
}

.sw-flow-info h3[b-gtgwnzrnxm] {
    font-size: 1.15rem;
    color: var(--s-navy);
    font-weight: 800;
    margin: 0 0 10px;
    min-height: 4.4rem;
    line-height: 1.4;
}

.sw-flow-info p[b-gtgwnzrnxm] {
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--s-text-muted);
    margin: 0;
    padding: 0 8px;
}

/* Camera Compatibility & Stats Section */
.sw-camera-stats[b-gtgwnzrnxm] {
    padding: 120px 0;
    background: linear-gradient(135deg, #F8FAFC 0%, #EFF6FF 100%);
    border-bottom: 1px solid rgba(226, 232, 240, 0.8);
    overflow: hidden;
}

.sw-camera-stats-content[b-gtgwnzrnxm] {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    align-items: center;
    gap: 80px;
}

.sw-stats-text[b-gtgwnzrnxm] {
    text-align: left;
}

.sw-stats-text h2[b-gtgwnzrnxm] {
    font-size: 3.2rem;
    font-weight: 800;
    color: var(--s-navy);
    line-height: 1.15;
    margin-bottom: 24px;
}

.sw-stats-text h2 span[b-gtgwnzrnxm] {
    color: var(--s-blue);
}

.sw-stats-text p[b-gtgwnzrnxm] {
    color: var(--s-text-muted);
    font-size: 1.1rem;
    line-height: 1.7;
    margin: 0 0 40px 0;
}

.sw-stats-metrics[b-gtgwnzrnxm] {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sw-metric-row[b-gtgwnzrnxm] {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 18px 24px;
    background: #FFFFFF;
    border: 1px solid rgba(var(--s-blue-rgb), 0.12);
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.sw-metric-row:hover[b-gtgwnzrnxm] {
    transform: translateX(6px);
    border-color: rgba(var(--s-blue-rgb), 0.35);
    box-shadow: 0 8px 30px rgba(var(--s-blue-rgb), 0.08);
}

.sw-metric-num[b-gtgwnzrnxm] {
    font-size: 2.25rem;
    font-weight: 800;
    color: var(--s-blue);
    line-height: 1;
    min-width: 75px;
    flex-shrink: 0;
}

.sw-metric-label[b-gtgwnzrnxm] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sw-metric-label strong[b-gtgwnzrnxm] {
    font-size: 1.05rem;
    color: var(--s-navy);
    font-weight: 700;
}

.sw-metric-label span[b-gtgwnzrnxm] {
    font-size: 0.88rem;
    color: var(--s-text-muted);
    line-height: 1.45;
}

.sw-stats-image[b-gtgwnzrnxm] {
    display: flex;
    justify-content: center;
}

.sw-stats-image .sw-image-frame[b-gtgwnzrnxm] {
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
    border: 1px solid rgba(var(--s-blue-rgb), 0.15);
    background: #fff;
    padding: 12px;
    transition: all 0.3s ease;
}

.sw-stats-image .sw-image-frame:hover[b-gtgwnzrnxm] {
    transform: translateY(-5px);
    box-shadow: 0 30px 60px rgba(var(--s-blue-rgb), 0.15);
    border-color: rgba(var(--s-blue-rgb), 0.3);
}

.sw-stats-image img[b-gtgwnzrnxm] {
    width: 100%;
    height: auto;
    border-radius: 16px;
    display: block;
}

/* Features Section */
.sw-features[b-gtgwnzrnxm] {
    padding: 80px 0;
    background: var(--s-bg-alt);
}

.sw-section-head[b-gtgwnzrnxm] {
    text-align: center;
    max-width: 700px;
    margin: 0 auto 80px;
}

.sw-subtitle[b-gtgwnzrnxm] {
    color: var(--s-blue);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 0.95rem;
    display: block;
    margin-bottom: 16px;
}

.sw-section-head h2[b-gtgwnzrnxm] {
    font-size: 3.5rem;
    margin-bottom: 24px;
    color: var(--s-navy);
}

.sw-section-head h2 span[b-gtgwnzrnxm] {
    color: var(--s-blue);
}

.sw-features-grid[b-gtgwnzrnxm] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.sw-feature-card[b-gtgwnzrnxm] {
    background: #fff;
    padding: 48px;
    border-radius: 32px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
    border: 1px solid rgba(0,0,0,0.02);
    display: flex;
    flex-direction: column;
}

.sw-feature-card:hover[b-gtgwnzrnxm] {
    transform: translateY(-10px);
    box-shadow: 0 30px 60px rgba(0,0,0,0.1);
    border-color: var(--s-blue);
}

.sw-feature-icon[b-gtgwnzrnxm] {
    width: 72px;
    height: 72px;
    background: rgba(106, 176, 252, 0.1);
    color: var(--s-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
    border-radius: 20px;
    margin-bottom: 32px;
    transition: all 0.3s ease;
}

.sw-feature-card:hover .sw-feature-icon[b-gtgwnzrnxm] {
    background: var(--s-blue);
    color: #fff;
}

.sw-feature-card h3[b-gtgwnzrnxm] {
    font-size: 1.6rem;
    margin-bottom: 16px;
    color: var(--s-navy);
}

.sw-feature-card p[b-gtgwnzrnxm] {
    font-size: 1.05rem;
    line-height: 1.6;
    margin-bottom: 24px;
    flex: 1;
}

.sw-link[b-gtgwnzrnxm] {
    font-weight: 700;
    color: var(--s-blue);
    display: flex;
    align-items: center;
    gap: 8px;
    transition: gap 0.2s ease;
}

.sw-link:hover[b-gtgwnzrnxm] { gap: 12px; }

.sw-features-footer[b-gtgwnzrnxm] {
    text-align: center;
    margin-top: 60px;
}

/* Dashboard Preview */
.sw-dashboard-preview[b-gtgwnzrnxm] {
    padding: 140px 0;
}

.sw-preview-content[b-gtgwnzrnxm] {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    align-items: center;
    gap: 100px;
}

.sw-preview-image[b-gtgwnzrnxm] {
    position: relative;
}

.sw-preview-image .main-img[b-gtgwnzrnxm] {
    width: 100%;
    border-radius: 32px;
    box-shadow: 0 40px 100px rgba(0,0,0,0.18);
}

.floating-ui[b-gtgwnzrnxm] {
    position: absolute;
    background: #fff;
    padding: 20px 28px;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.12);
    display: flex;
    align-items: center;
    gap: 14px;
    font-weight: 700;
    color: var(--s-navy);
    z-index: 10;
}

.ui-1[b-gtgwnzrnxm] {
    top: 15%;
    right: -40px;
    animation: float 5s ease-in-out infinite;
}

.ui-1 i[b-gtgwnzrnxm] { color: #26BF94; font-size: 1.8rem; }

.ui-2[b-gtgwnzrnxm] {
    bottom: 15%;
    left: -40px;
    animation: float 5s ease-in-out infinite 1.5s;
}

.ui-2 .pulse[b-gtgwnzrnxm] {
    width: 14px;
    height: 14px;
    background: var(--s-blue);
    border-radius: 50%;
    position: relative;
}

.ui-2 .pulse[b-gtgwnzrnxm]::after {
    content: '';
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    border: 2px solid var(--s-blue);
    animation: pulse-glow 2s infinite;
}

.sw-preview-text h2[b-gtgwnzrnxm] {
    font-size: 3.2rem;
    margin-bottom: 24px;
}

.sw-preview-text h2 span[b-gtgwnzrnxm] { color: var(--s-blue); }

.sw-list[b-gtgwnzrnxm] {
    margin: 40px 0 56px;
    list-style: none;
    padding: 0;
}

.sw-list li[b-gtgwnzrnxm] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    font-weight: 600;
    color: var(--s-navy);
    font-size: 1.1rem;
}

.sw-list i[b-gtgwnzrnxm] {
    color: var(--s-blue);
    font-size: 1.4rem;
}

/* Solutions Section */
.sw-solutions[b-gtgwnzrnxm] {
    padding: 80px 0;
    background: #fff;
}

.sw-solutions-grid[b-gtgwnzrnxm] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.sw-solution-card[b-gtgwnzrnxm] {
    position: relative;
    height: 450px;
    border-radius: 32px;
    overflow: hidden;
    cursor: pointer;
}

.sw-solution-bg[b-gtgwnzrnxm] {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.sw-solution-card:hover .sw-solution-bg[b-gtgwnzrnxm] {
    transform: scale(1.1);
}

.sw-solution-card[b-gtgwnzrnxm]::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(35, 53, 73, 0.95) 0%, rgba(35, 53, 73, 0.2) 60%);
}

.sw-solution-content[b-gtgwnzrnxm] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 48px;
    z-index: 10;
    color: #fff;
}

.sw-solution-content h3[b-gtgwnzrnxm] {
    font-size: 2rem;
    margin-bottom: 12px;
    color: #fff;
}

.sw-solution-content p[b-gtgwnzrnxm] {
    color: rgba(255,255,255,0.8);
    margin: 0;
    font-size: 1.1rem;
}

.sw-solutions-footer[b-gtgwnzrnxm] {
    text-align: center;
    margin-top: 60px;
}

/* Testimonials */
.sw-testimonials[b-gtgwnzrnxm] {
    padding: 80px 0;
    background: var(--s-bg-alt);
}

.sw-testimonials-grid[b-gtgwnzrnxm] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.sw-test-card[b-gtgwnzrnxm] {
    background: #fff;
    padding: 40px;
    border-radius: 32px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.05);
}

.sw-stars[b-gtgwnzrnxm] {
    color: #F5B849;
    margin-bottom: 24px;
    font-size: 1.2rem;
    display: flex;
    gap: 4px;
}

.sw-test-card p[b-gtgwnzrnxm] {
    font-size: 1.1rem;
    font-style: italic;
    line-height: 1.7;
    color: var(--s-navy);
    margin-bottom: 32px;
}

.sw-author[b-gtgwnzrnxm] {
    display: flex;
    flex-direction: column;
}

.sw-author strong[b-gtgwnzrnxm] {
    font-size: 1.1rem;
    color: var(--s-navy);
}

.sw-author span[b-gtgwnzrnxm] {
    font-size: 0.9rem;
    color: var(--s-text-muted);
}


/* Responsive */
@media (max-width: 1200px) {
   .sw-hero-text h1[b-gtgwnzrnxm] { font-size: 2.4rem; }
    .sw-features-grid[b-gtgwnzrnxm] { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 992px) {
    .sw-hero-content[b-gtgwnzrnxm] { grid-template-columns: 1fr; text-align: center; gap: 60px; }
    .sw-hero-text p[b-gtgwnzrnxm] { margin-left: auto; margin-right: auto; }
    .sw-hero-actions[b-gtgwnzrnxm] { 
        justify-content: center; 
        flex-wrap: wrap;
    }
    .sw-stats-grid[b-gtgwnzrnxm] { grid-template-columns: repeat(2, 1fr); }
    .sw-preview-content[b-gtgwnzrnxm], .sw-camera-stats-content[b-gtgwnzrnxm] { grid-template-columns: 1fr; gap: 80px; }
    .sw-preview-text[b-gtgwnzrnxm], .sw-stats-text[b-gtgwnzrnxm] { order: -1; text-align: center; }
    .sw-stats-metrics[b-gtgwnzrnxm] { max-width: 500px; margin: 0 auto; text-align: left; }
    .sw-list[b-gtgwnzrnxm] { display: inline-block; text-align: left; }
    .sw-solutions-grid[b-gtgwnzrnxm] { grid-template-columns: 1fr; }
    .sw-testimonials-grid[b-gtgwnzrnxm] { grid-template-columns: 1fr; }

    /* Flowchart responsiveness */
    .sw-flowchart-wrapper[b-gtgwnzrnxm] {
        flex-direction: column;
        align-items: center;
        gap: 32px;
    }
    .sw-flow-arrow[b-gtgwnzrnxm] {
        transform: rotate(90deg);
        height: auto;
        margin: 12px 0;
    }
    .sw-flow-step[b-gtgwnzrnxm], .sw-flow-step.wide-step[b-gtgwnzrnxm] {
        max-width: 340px;
        width: 100%;
    }
    .sw-flow-info h3[b-gtgwnzrnxm] {
        min-height: auto;
    }
}
@media (max-width: 640px) {
    .sw-hero-text h1[b-gtgwnzrnxm] { font-size: 1.75rem; line-height: 1.2; }
    .sw-hero-text p[b-gtgwnzrnxm] { font-size: 1rem; margin-bottom: 32px; }
    .sw-hero[b-gtgwnzrnxm] { padding: 100px 0 40px; }
    .sw-hero-actions[b-gtgwnzrnxm] { 
        flex-direction: column; 
        width: 100%; 
        max-width: 300px; 
        margin: 0 auto; 
    }
    .sw-hero-actions .sw-btn[b-gtgwnzrnxm] { width: 100%; justify-content: center; }
    .sw-hero-visual[b-gtgwnzrnxm] { margin-top: 40px; }
    .sw-hero-card[b-gtgwnzrnxm] { border-radius: 16px; }
    .sw-card-header[b-gtgwnzrnxm] { padding: 12px 16px; }
    .sw-card-footer[b-gtgwnzrnxm] { padding: 12px 16px; }
    .sw-alert-pill[b-gtgwnzrnxm] { padding: 8px 16px; font-size: 0.8rem; }
    
    .sw-section-head h2[b-gtgwnzrnxm] { font-size: 1.8rem !important; }
    .sw-metric-row[b-gtgwnzrnxm] { padding: 14px 18px; gap: 16px; border-radius: 12px; }
    .sw-metric-num[b-gtgwnzrnxm] { font-size: 1.75rem; min-width: 60px; }
    .sw-stats-grid[b-gtgwnzrnxm] { grid-template-columns: 1fr; gap: 24px; }
    .sw-features-grid[b-gtgwnzrnxm] { grid-template-columns: 1fr; }
    .sw-logo-cloud[b-gtgwnzrnxm] { gap: 24px; }
    .logo-item[b-gtgwnzrnxm] { font-size: 1.1rem; }
    .sw-preview-image[b-gtgwnzrnxm] { padding: 0; }
    .floating-ui[b-gtgwnzrnxm] { padding: 12px 20px; font-size: 0.8rem; gap: 8px; }
    .ui-1[b-gtgwnzrnxm] { right: -10px; }
    .ui-2[b-gtgwnzrnxm] { left: -10px; }
}
/* /Components/Pages/Login.razor.rz.scp.css */
/* Login page — layout + primitives live in app.css (/* ===== Auth pages ===== */ section)
   so they are shared with ForgotPassword and ResetPassword. This file is kept
   for any future page-specific Login tweaks. */[b-afxrmc7jzi]
/* /Components/Pages/Onboarding.razor.rz.scp.css */
/* ===== Onboarding wizard ===== */
.ob-page[b-n8zlxop6g1] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

/* ===== Stepper =====
   Each step is a flex row that owns its own connector to the next step
   on the right. That lets the connector colour change cleanly as the
   wizard progresses without fighting the parent flexbox.

   States:
     todo    — muted, thin outlined circle
     current — brand-filled circle, brand label, faint pulse ring
     done    — success-filled circle with tick, success connector */
.ob-stepper[b-n8zlxop6g1] {
    list-style: none;
    margin: 0;
    padding: 0.875rem 1rem;
    display: flex;
    align-items: center;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    overflow-x: auto;
    scrollbar-width: none;
}

.ob-stepper[b-n8zlxop6g1]::-webkit-scrollbar { display: none; }

.ob-step[b-n8zlxop6g1] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
    cursor: default;
    transition: color 160ms ease;
}

/* Completed steps can be re-clicked to jump back. Only "done" steps
   get this — current and todo stay inert. */
.ob-step--clickable[b-n8zlxop6g1] {
    cursor: pointer;
}

.ob-step--clickable:hover .ob-step-num[b-n8zlxop6g1] {
    transform: scale(1.06);
}

.ob-step--clickable:hover .ob-step-label[b-n8zlxop6g1] {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Connector line growing to the right of every step except the last. */
.ob-step:not(:last-child)[b-n8zlxop6g1]::after {
    content: '';
    flex: 1;
    height: 2px;
    background: var(--border-color);
    margin: 0 12px;
    border-radius: 1px;
    transition: background 200ms ease;
}

/* Done step paints its own onward connector in success colour so the
   trail behind the current step is clearly visible. */
.ob-step--done:not(:last-child)[b-n8zlxop6g1]::after {
    background: var(--color-success);
}

.ob-step-num[b-n8zlxop6g1] {
    position: relative;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 2px solid var(--border-color);
    color: var(--text-tertiary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-card);
    flex-shrink: 0;
    transition: border-color 200ms ease, background 200ms ease, color 200ms ease, transform 200ms ease;
}

.ob-step-num i[b-n8zlxop6g1] {
    font-size: 1.1rem;
    line-height: 1;
}

.ob-step-label[b-n8zlxop6g1] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-tertiary);
    letter-spacing: -0.005em;
    white-space: nowrap;
    transition: color 200ms ease, font-weight 200ms ease;
}

/* Current — brand-filled circle, brand text, faint outer ring so the
   eye lands on it instantly. */
.ob-step--current .ob-step-num[b-n8zlxop6g1] {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #FFFFFF;
    transform: scale(1.05);
    box-shadow: 0 0 0 4px var(--color-primary-subtle);
}

.ob-step--current .ob-step-label[b-n8zlxop6g1] {
    color: var(--color-primary);
    font-weight: var(--font-semibold);
}

/* Done — solid primary fill with a tick. Same hue as the current
   step but no glow ring and no scale, so the current step still stands
   out as "where you are right now". Primary across both states keeps
   the brand consistent and reserves green for live-alarm signals on
   the dashboard. */
.ob-step--done .ob-step-num[b-n8zlxop6g1] {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #FFFFFF;
}

.ob-step--done .ob-step-num i[b-n8zlxop6g1] { font-size: 1rem; }

.ob-step--done .ob-step-label[b-n8zlxop6g1] {
    color: var(--color-primary);
    font-weight: var(--font-semibold);
}

/* Connector behind a done step paints primary so the completed trail
   is obviously connected to the current step. */
.ob-step--done:not(:last-child)[b-n8zlxop6g1]::after {
    background: var(--color-primary);
}

/* Todo — keep neutral. Default values cover it; explicit class for
   future tweaks. */
.ob-step--todo .ob-step-label[b-n8zlxop6g1] { color: var(--text-tertiary); }

/* ===== "Use existing" checkbox toggle =====
   Replaces the earlier segmented control. Plain inline checkbox row
   that lives above the section's form fields. */
.ob-toggle[b-n8zlxop6g1] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: var(--spacing-md);
    cursor: pointer;
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
}

/* ===== Checkbox scope override =====
   The dashboard uses 18px iOS-style checkboxes. In the wizard each
   checkbox sits inline next to short label text, where 18px feels
   oversized. Scope a 14px variant just for this page so the
   dashboard's pattern stays untouched. */
.ob-page .app-cb[b-n8zlxop6g1] {
    --cb-size: 14px;
    border-width: 1.5px;
}

.ob-page .app-cb[b-n8zlxop6g1]::after {
    width: 4px;
    height: 8px;
    border-width: 0 2px 2px 0;
}

.ob-page .app-checkbox[b-n8zlxop6g1] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
}

/* Sub-headings within a step (used by the contacts step). */
.ob-subhead[b-n8zlxop6g1] {
    margin: 0 0 var(--spacing-sm);
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ob-subhead--spaced[b-n8zlxop6g1] {
    margin-top: var(--spacing-lg);
}

/* ===== Review step =====
   Each review block reads like a small data sheet: avatar-style icon
   top-left, title + subtitle stacked, edit pill on the right, then a
   tidy stack of label-value rows below. */
.ob-review[b-n8zlxop6g1] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-md);
}

.ob-review-card[b-n8zlxop6g1] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    padding: var(--spacing-md);
    transition: border-color 140ms ease, box-shadow 140ms ease;
}

.ob-review-card:hover[b-n8zlxop6g1] {
    border-color: var(--color-primary-subtle);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.ob-review-card-head[b-n8zlxop6g1] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--border-color);
}

.ob-review-title[b-n8zlxop6g1] {
    flex: 1;
    min-width: 0;
}

.ob-review-title .ob-review-sub[b-n8zlxop6g1] {
    display: block;
    margin-bottom: 4px;
    font-size: 0.7rem;
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: var(--font-semibold);
}

.ob-review-title h4[b-n8zlxop6g1] {
    margin: 0;
    font-size: var(--font-size-base);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    letter-spacing: -0.01em;
}

.ob-review-edit[b-n8zlxop6g1] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    color: var(--color-primary);
    font-size: 0.78rem;
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: background 140ms ease, border-color 140ms ease;
}

.ob-review-edit i[b-n8zlxop6g1] { font-size: 0.9rem; }

.ob-review-edit:hover[b-n8zlxop6g1] {
    background: var(--color-primary-subtle);
    border-color: var(--color-primary-subtle);
}

.ob-review-rows[b-n8zlxop6g1] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ob-review-row[b-n8zlxop6g1] {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 12px;
    font-size: var(--font-size-sm);
    align-items: baseline;
}

.ob-review-row + .ob-review-row[b-n8zlxop6g1] {
    padding-top: 8px;
    border-top: 1px dashed var(--border-color);
}

.ob-review-key[b-n8zlxop6g1] {
    color: var(--text-tertiary);
    font-size: 0.72rem;
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ob-review-val[b-n8zlxop6g1] {
    color: var(--text-primary);
    font-weight: var(--font-medium);
    word-break: break-word;
}

.ob-review-val--muted[b-n8zlxop6g1] {
    color: var(--text-tertiary);
    font-style: italic;
    font-weight: var(--font-regular);
}

.ob-review-empty[b-n8zlxop6g1] {
    margin: 0;
    color: var(--text-tertiary);
    font-size: var(--font-size-sm);
    text-align: center;
    padding: var(--spacing-md) 0;
}

/* "Pill" tag used inline next to value labels (e.g. Reused / New). */
.ob-tag[b-n8zlxop6g1] {
    display: inline-block;
    padding: 1px 7px;
    margin-left: 6px;
    border-radius: var(--border-radius-full);
    font-size: 0.65rem;
    font-weight: var(--font-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ob-tag--new[b-n8zlxop6g1]    { background: var(--color-primary-subtle); color: var(--color-primary); }
.ob-tag--reuse[b-n8zlxop6g1]  { background: var(--bg-body); color: var(--text-secondary); border: 1px solid var(--border-color); }

/* Error banner shown when a partway-through pipeline step fails. */
.ob-error-banner[b-n8zlxop6g1] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: var(--spacing-md);
    padding: 12px 14px;
    background: rgba(220, 38, 38, 0.08);
    border: 1px solid rgba(220, 38, 38, 0.35);
    border-radius: var(--border-radius-md);
    color: var(--color-danger);
}

.ob-error-banner > i[b-n8zlxop6g1] {
    font-size: 1.4rem;
    margin-top: 1px;
    flex-shrink: 0;
}

.ob-error-banner strong[b-n8zlxop6g1] {
    display: block;
    margin-bottom: 2px;
    font-weight: var(--font-semibold);
}

.ob-error-banner p[b-n8zlxop6g1] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--text-secondary);
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
    .ob-review[b-n8zlxop6g1] { grid-template-columns: 1fr; }

    /* On narrow viewports the labels alone won't fit. Show the label
       only for the current step; done and todo collapse to circle + line
       so the stepper still tells the operator where they are. */
    .ob-step-label[b-n8zlxop6g1] { display: none; }
    .ob-step--current .ob-step-label[b-n8zlxop6g1] { display: inline; }
    .ob-step:not(:last-child)[b-n8zlxop6g1]::after { margin: 0 8px; }
    .ob-step-num[b-n8zlxop6g1] { width: 28px; height: 28px; font-size: 0.8rem; }
    .ob-step-num i[b-n8zlxop6g1] { font-size: 0.9rem; }
    .ob-step[b-n8zlxop6g1] { gap: 6px; }
}

/* Extra-small screens — tighten the stepper further so it never
   overflows or needs horizontal scroll on phones. */
@media (max-width: 480px) {
    .ob-stepper[b-n8zlxop6g1] { padding: 0.75rem 0.625rem; }
    .ob-step-num[b-n8zlxop6g1] { width: 24px; height: 24px; }
    .ob-step-num i[b-n8zlxop6g1] { font-size: 0.8rem; }
    .ob-step:not(:last-child)[b-n8zlxop6g1]::after { margin: 0 4px; }
    .ob-step--current .ob-step-num[b-n8zlxop6g1] { box-shadow: 0 0 0 3px var(--color-primary-subtle); }
    .ob-step--current .ob-step-label[b-n8zlxop6g1] { font-size: var(--font-size-xs); }
    .ob-step[b-n8zlxop6g1] { gap: 4px; }
}
/* /Components/Pages/OperatorEdit.razor.rz.scp.css */
/* Operator assignment picker — checkbox rows for clients + sites. */

.op-pick-list[b-sh8x0y8nmq] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 280px;
    overflow-y: auto;
    padding: 6px;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
}

.op-pick-row[b-sh8x0y8nmq] {
    display: grid;
    grid-template-columns: 24px 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-sm);
    cursor: pointer;
    transition: border-color 140ms ease, background 140ms ease;
}

.op-pick-row:hover:not(.is-disabled)[b-sh8x0y8nmq] {
    border-color: var(--color-primary);
    background: var(--color-primary-subtle);
}

.op-pick-row input[type="checkbox"][b-sh8x0y8nmq] {
    width: 16px;
    height: 16px;
    accent-color: var(--color-primary);
    cursor: pointer;
}

.op-pick-row.is-disabled[b-sh8x0y8nmq] {
    opacity: 0.55;
    cursor: not-allowed;
}

.op-pick-main[b-sh8x0y8nmq] {
    font-size: 0.875rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.op-pick-sub[b-sh8x0y8nmq] {
    font-size: 0.75rem;
    color: var(--text-tertiary);
}

.op-pick-tag[b-sh8x0y8nmq] {
    font-size: 0.68rem;
    font-weight: var(--font-bold);
    color: var(--color-brand-dark);
    background: var(--color-primary-subtle);
    padding: 2px 8px;
    border-radius: var(--border-radius-full);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.op-pick-empty[b-sh8x0y8nmq] {
    padding: 18px;
    text-align: center;
    color: var(--text-tertiary);
    font-size: 0.85rem;
}

@media (max-width: 540px) {
    .op-pick-row[b-sh8x0y8nmq] {
        grid-template-columns: 22px 1fr;
        gap: 8px;
    }
    .op-pick-row .op-pick-sub[b-sh8x0y8nmq],
    .op-pick-row .op-pick-tag[b-sh8x0y8nmq] { grid-column: 2; }
}
/* /Components/Pages/Operators.razor.rz.scp.css */
/* Operators page — table primitives now live in global app.css (.at-*).
   Only page-specific bits stay here. */

.ops-page[b-9lk15zvd3n] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.ops-initials[b-9lk15zvd3n] { letter-spacing: 0.04em; }

.ops-skel-row[b-9lk15zvd3n] {
    display: grid;
    grid-template-columns: 40px 1fr 1fr 60px 100px;
    gap: var(--spacing-md);
    align-items: center;
    padding: var(--spacing-md) 0;
    border-bottom: 1px solid var(--border-color-subtle);
}

.ops-skel-row:last-child[b-9lk15zvd3n] { border-bottom: none; }
/* /Components/Pages/Simulator.razor.rz.scp.css */
.simulator[b-xz6zov7b0v] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

/* ===== Image-source toggle ====================================== */
.sim-source-toggle[b-xz6zov7b0v] {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    background: var(--bg-badge);
    border-radius: var(--border-radius-md);
    margin-bottom: var(--spacing-md);
}

.sim-source-btn[b-xz6zov7b0v] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 14px;
    background: transparent;
    border: none;
    border-radius: var(--border-radius-md);
    font-family: var(--font-family);
    font-size: 0.8125rem;
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    cursor: pointer;
    transition: background 140ms ease, color 140ms ease;
}

.sim-source-btn i[b-xz6zov7b0v] { font-size: 1rem; }

.sim-source-btn:hover[b-xz6zov7b0v] { color: var(--text-primary); }

.sim-source-btn.active[b-xz6zov7b0v] {
    background: var(--color-brand-dark);
    color: #FFFFFF;
}

.sim-source-btn.active i[b-xz6zov7b0v] { color: #FFFFFF; }

/* ===== Sample picker ============================================= */
.sim-samples[b-xz6zov7b0v] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}

.sim-sample[b-xz6zov7b0v] {
    position: relative;
    padding: 0;
    background: var(--bg-card);
    border: 2px solid var(--border-color);
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    transition: border-color 140ms ease, transform 140ms ease;
}

.sim-sample img[b-xz6zov7b0v] {
    width: 100%;
    height: 120px;
    object-fit: cover;
    display: block;
}

.sim-sample-label[b-xz6zov7b0v] {
    display: block;
    padding: 8px 10px;
    background: var(--bg-card);
    font-size: 0.8125rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    text-align: left;
    border-top: 1px solid var(--border-color);
}

.sim-sample:hover[b-xz6zov7b0v] { border-color: var(--text-tertiary); }

.sim-sample.active[b-xz6zov7b0v] {
    border-color: var(--color-primary);
    transform: translateY(-1px);
}

/* ===== Upload preview ============================================ */
.sim-upload-preview[b-xz6zov7b0v] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    padding: 8px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 6px;
}

.sim-upload-preview img[b-xz6zov7b0v] {
    width: 80px;
    height: 56px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--border-color);
}

.sim-upload-preview span[b-xz6zov7b0v] {
    font-size: 0.78rem;
    color: var(--text-secondary);
    font-weight: var(--font-semibold);
}

/* ===== History list ============================================== */
.sim-history[b-xz6zov7b0v] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sim-history li[b-xz6zov7b0v] {
    display: grid;
    grid-template-columns: 80px 1fr 1.4fr auto;
    gap: 12px;
    align-items: center;
    padding: 8px 10px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 0.8125rem;
}

.sim-history-time[b-xz6zov7b0v] {
    font-variant-numeric: tabular-nums;
    color: var(--text-tertiary);
    font-weight: var(--font-semibold);
}

.sim-history-camera[b-xz6zov7b0v] {
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.sim-history-source[b-xz6zov7b0v] {
    color: var(--text-secondary);
    font-size: 0.78rem;
}

.spin[b-xz6zov7b0v] {
    animation: spin-b-xz6zov7b0v 1s linear infinite;
}

@keyframes spin-b-xz6zov7b0v {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

@media (max-width: 640px) {
    .sim-history li[b-xz6zov7b0v] {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}
/* /Components/Pages/Subscribers.razor.rz.scp.css */
.sub-channels[b-rgnacohr20] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.sub-channels .at-chip i[b-rgnacohr20] { font-size: 0.85rem; margin-right: 2px; }
/* /Components/Pages/SystemLogs.razor.rz.scp.css */
.syslog-cat[b-qly6y48dsg],
.syslog-sev[b-qly6y48dsg] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--border-radius-full);
    font-size: var(--font-size-2xs);
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.syslog-cat--good[b-qly6y48dsg]  { background: rgba(34, 197, 94, 0.12);  color: #15803d; }
.syslog-cat--bad[b-qly6y48dsg]   { background: rgba(220, 38, 38, 0.12);  color: #b91c1c; }
.syslog-cat--muted[b-qly6y48dsg] { background: rgba(107, 114, 128, 0.12); color: #4b5563; }
.syslog-cat--info[b-qly6y48dsg]  { background: rgba(106, 176, 252, 0.12); color: var(--color-primary); }

.syslog-sev--info[b-qly6y48dsg]  { background: rgba(106, 176, 252, 0.12); color: var(--color-primary); }
.syslog-sev--warn[b-qly6y48dsg]  { background: rgba(250, 204, 21, 0.18); color: #a16207; }
.syslog-sev--err[b-qly6y48dsg]   { background: rgba(220, 38, 38, 0.15);  color: #b91c1c; }
.syslog-sev--crit[b-qly6y48dsg]  { background: #b91c1c; color: #fff; }

.syslog-msg[b-qly6y48dsg] {
    max-width: 480px;
    white-space: normal;
    word-break: break-word;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
}

.cell-sub[b-qly6y48dsg] {
    display: block;
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
}

.table-paging[b-qly6y48dsg] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: var(--spacing-md) 0;
}

.table-empty[b-qly6y48dsg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: var(--spacing-3xl);
    color: var(--text-tertiary);
}
.table-empty i[b-qly6y48dsg] { font-size: 2rem; }
/* /Components/Shared/ActionQueueCard.razor.rz.scp.css */
/* ActionQueueCard — minimal, professional.
   Thumb + body + actions. No gradients, no tier-pill, no confidence ring.
   Tier is a 3px left edge. Action is the loudest thing on the card. */

.qc[b-b5bhqbiit9] {
    position: relative;
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    padding: 10px 14px 10px 11px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--border-color);
    border-radius: 0 6px 6px 0;
    transition: border-color 140ms ease;
}

.qc:hover[b-b5bhqbiit9] {
    border-color: var(--color-brand-dark-subtle);
}

/* Critical — looks dangerous: pinkish skin, red border all round,
   red accent on subject + reason text. Thick left edge + ambient glow
   so eye catches it instantly. All colors from --color-danger* tokens. */
.qc-critical[b-b5bhqbiit9] {
    background: rgba(230, 83, 60, 0.18);
    border-color: rgba(230, 83, 60, 0.22);
    border-left-color: var(--color-danger);
    border-left-width: 5px;
    padding-left: 9px;
    box-shadow:
        0 0 0 1px rgba(230, 83, 60, 0.20),
        0 4px 16px rgba(230, 83, 60, 0.14);
}

.qc-critical:hover[b-b5bhqbiit9] {
    border-color: var(--color-danger);
    border-left-color: var(--color-danger);
    box-shadow:
        0 0 0 1px rgba(230, 83, 60, 0.35),
        0 6px 22px rgba(230, 83, 60, 0.18);
}

.qc-high[b-b5bhqbiit9] {
    border-left-color: var(--color-warning);
}

.qc-normal[b-b5bhqbiit9] {
    border-left-color: var(--text-tertiary);
}

/* ===== Thumb ====================================================== */
.qc-thumb[b-b5bhqbiit9] {
    width: 120px;
    height: 80px;
    padding: 0;
    border: none;
    border-radius: 4px;
    overflow: hidden;
    background: var(--bg-badge);
    cursor: pointer;
    flex-shrink: 0;
}

.qc-thumb img[b-b5bhqbiit9] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 320ms ease;
}

.qc-thumb:hover img[b-b5bhqbiit9] { transform: scale(1.04); }

/* "No snapshot" placeholder when ImagePath / ThumbnailPath cleared by
   the retention sweep. Matches AlertDetailModal placeholder treatment:
   neutral background, muted image-frame icon centred. */
.qc-thumb-placeholder[b-b5bhqbiit9] {
    width: 100%;
    height: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-badge);
    color: var(--text-tertiary);
}

.qc-thumb-placeholder i[b-b5bhqbiit9] {
    font-size: 1.6rem;
}

/* ===== Body ======================================================= */
.qc-body[b-b5bhqbiit9] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.qc-headline[b-b5bhqbiit9] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}

.qc-subject[b-b5bhqbiit9] {
    font-size: 0.9375rem;   /* 15px */
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    letter-spacing: -0.005em;
}

.qc-critical .qc-subject[b-b5bhqbiit9] {
    color: var(--color-danger);
    font-weight: var(--font-bold);
}

.qc-conf[b-b5bhqbiit9] {
    font-size: 0.75rem;     /* 12px */
    font-weight: var(--font-bold);
    color: var(--text-tertiary);
    letter-spacing: 0.02em;
    padding: 2px 7px;
    background: var(--bg-badge);
    border-radius: 10px;
    font-variant-numeric: tabular-nums;
}

.qc-critical .qc-conf[b-b5bhqbiit9] {
    background: var(--color-danger-subtle);
    color: var(--color-danger);
}

.qc-high .qc-conf[b-b5bhqbiit9] {
    background: var(--color-warning-subtle);
    color: #B87A14;
}

.qc-location[b-b5bhqbiit9] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8125rem;   /* 13px */
    color: var(--text-secondary);
    line-height: 1.35;
    flex-wrap: wrap;
}

.qc-sep[b-b5bhqbiit9] {
    display: inline-block;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--text-tertiary);
    opacity: 0.45;
    flex-shrink: 0;
}

/* Reason inline beside subject (replaces previous standalone line). */
.qc-reason-inline[b-b5bhqbiit9] {
    font-size: 0.8125rem;
    color: var(--text-secondary);
    font-weight: var(--font-semibold);
}

.qc-critical .qc-reason-inline[b-b5bhqbiit9] { color: var(--color-danger); }
.qc-high     .qc-reason-inline[b-b5bhqbiit9] { color: #B87A14; }

/* Recommended action chip — small pill under the location row. */
/* Recommendation badge — quieter than the action buttons. Outlined,
   no fill, small. Tier accent only on the border + text. */
.qc-recommend[b-b5bhqbiit9] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    padding: 1px 7px;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-full);
    font-size: 0.7rem;
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    letter-spacing: 0.01em;
    text-transform: uppercase;
    align-self: flex-start;
    line-height: 1.5;
}

.qc-recommend i[b-b5bhqbiit9] { font-size: 0.78rem; opacity: 0.8; }

.qc-critical .qc-recommend[b-b5bhqbiit9] {
    background: transparent;
    border-color: rgba(200, 68, 47, 0.30);
    color: #C8442F;
}

.qc-high .qc-recommend[b-b5bhqbiit9] {
    background: transparent;
    border-color: rgba(245, 184, 73, 0.40);
    color: #B87A14;
}

.qc-normal .qc-recommend[b-b5bhqbiit9] {
    background: transparent;
    border-color: rgba(106, 176, 252, 0.35);
    color: var(--color-brand-dark);
}

/* ===== Actions ==================================================== */
.qc-actions[b-b5bhqbiit9] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.qc-btn[b-b5bhqbiit9] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    padding: 0 12px;
    border: 1px solid transparent;
    border-radius: 4px;
    font-family: var(--font-family);
    font-size: 0.8125rem;  /* 13px */
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: background 140ms ease, border-color 140ms ease, color 140ms ease;
    white-space: nowrap;
    letter-spacing: 0;
}

.qc-btn-real[b-b5bhqbiit9]  { min-width: 96px; }
.qc-btn-false[b-b5bhqbiit9] { min-width: 72px; }

.qc-btn:disabled[b-b5bhqbiit9] { opacity: 0.45; cursor: not-allowed; }

/* Primary — "confirm this is real, dispatch" */
.qc-btn-real[b-b5bhqbiit9] {
    background: var(--color-brand-dark);
    color: #FFFFFF;
}

.qc-btn-real:not(:disabled):hover[b-b5bhqbiit9] {
    background: #1a2838;
}

/* Critical tier upgrades Real button to a deeper red + slow ambient
   pulse so the eye keeps catching the action even on a static screen.
   Darker than --color-danger per client feedback. */
.qc-critical .qc-btn-real[b-b5bhqbiit9] {
    background: #C8442F;
    border-color: #C8442F;
    animation: qc-real-pulse-b-b5bhqbiit9 2.4s ease-in-out infinite;
}

.qc-critical .qc-btn-real:not(:disabled):hover[b-b5bhqbiit9] {
    background: #B03B27;
    border-color: #B03B27;
    animation: none;
}

@keyframes qc-real-pulse-b-b5bhqbiit9 {
    0%, 100% { box-shadow: 0 0 0 0   rgba(200, 68, 47, 0.0); }
    50%      { box-shadow: 0 0 0 6px rgba(200, 68, 47, 0.20); }
}

/* Secondary — dismiss. Solid neutral chip so it balances next to the
   solid Real-alarm button without competing for attention. */
.qc-btn-false[b-b5bhqbiit9] {
    background: var(--color-success);
    border-color: var(--color-success);
    color: #FFFFFF;
}

.qc-btn-false:not(:disabled):hover[b-b5bhqbiit9] {
    background: #1FA37D;
    border-color: #1FA37D;
    color: #FFFFFF;
}

/* Tertiary — view. Explicit white bg so it stands out on the
   danger-subtle pink of Critical cards (transparent would blend). */
.qc-btn-view[b-b5bhqbiit9] {
    min-width: 0;
    width: 34px;
    padding: 0;
    background: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-tertiary);
}

.qc-btn-view i[b-b5bhqbiit9] { font-size: 1.05rem; }

.qc-btn-view:not(:disabled):hover[b-b5bhqbiit9] {
    border-color: var(--text-tertiary);
    color: var(--text-primary);
}

/* Critical tier — pair border with the danger scheme for coherence. */
.qc-critical .qc-btn-view[b-b5bhqbiit9] {
    border-color: var(--color-danger-subtle);
    color: var(--color-danger);
}

.qc-critical .qc-btn-view:not(:disabled):hover[b-b5bhqbiit9] {
    border-color: var(--color-danger);
    color: var(--color-danger);
}

/* ===== Notification-click flash ==================================
   Applied via JS when operator clicks the system notification — pulses
   the box-shadow once so the eye lands on the right card. */
.qc-flash[b-b5bhqbiit9] {
    animation: qc-flash-b-b5bhqbiit9 1.4s ease-out;
}

@keyframes qc-flash-b-b5bhqbiit9 {
    0%   { box-shadow: 0 0 0 0   rgba(106, 176, 252, 0.55); }
    35%  { box-shadow: 0 0 0 10px rgba(106, 176, 252, 0.18); }
    100% { box-shadow: 0 0 0 0   rgba(106, 176, 252, 0); }
}

.qc-critical.qc-flash[b-b5bhqbiit9] {
    animation: qc-flash-critical-b-b5bhqbiit9 1.4s ease-out;
}

@keyframes qc-flash-critical-b-b5bhqbiit9 {
    0%   { box-shadow: 0 0 0 0   rgba(200, 68, 47, 0.55); }
    35%  { box-shadow: 0 0 0 12px rgba(200, 68, 47, 0.20); }
    100% { box-shadow: 0 0 0 0   rgba(200, 68, 47, 0); }
}

/* ===== Arrival + leaving animations =============================== */
.qc-arrived[b-b5bhqbiit9] { animation: qc-arrive-b-b5bhqbiit9 700ms cubic-bezier(0.22, 0.61, 0.36, 1); }

@keyframes qc-arrive-b-b5bhqbiit9 {
    0%   { opacity: 0; transform: translateY(-6px); }
    100% { opacity: 1; transform: translateY(0); }
}

.qc-critical.qc-arrived[b-b5bhqbiit9] {
    animation: qc-arrive-b-b5bhqbiit9 700ms cubic-bezier(0.22, 0.61, 0.36, 1),
               qc-critical-flash-b-b5bhqbiit9 1.2s ease-out;
}

@keyframes qc-critical-flash-b-b5bhqbiit9 {
    0%   { background: var(--color-danger-subtle); }
    100% { background: var(--bg-card); }
}

.qc-leaving[b-b5bhqbiit9] { animation: qc-fade-out-b-b5bhqbiit9 280ms ease forwards; pointer-events: none; }

@keyframes qc-fade-out-b-b5bhqbiit9 {
    0%   { opacity: 1; transform: translateX(0); max-height: 140px; margin-bottom: 8px; padding-top: 14px; padding-bottom: 14px; }
    60%  { opacity: 0; transform: translateX(12px); }
    100% { opacity: 0; transform: translateX(12px); max-height: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; border-width: 0; }
}

/* ===== Responsive ================================================= */
@media (max-width: 900px) {
    .qc[b-b5bhqbiit9] {
        grid-template-columns: 112px minmax(0, 1fr);
        grid-template-areas:
            "thumb body"
            "actions actions";
        gap: 14px;
    }
    .qc-thumb[b-b5bhqbiit9]   { grid-area: thumb; width: 112px; height: 80px; }
    .qc-body[b-b5bhqbiit9]    { grid-area: body; }
    .qc-actions[b-b5bhqbiit9] { grid-area: actions; }
    .qc-actions .qc-btn-real[b-b5bhqbiit9],
    .qc-actions .qc-btn-false[b-b5bhqbiit9] { flex: 1; }
}

@media (max-width: 600px) {
    .qc[b-b5bhqbiit9] {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 10px;
        padding: 10px 10px 10px 8px;
    }

    .qc-thumb[b-b5bhqbiit9] {
        width: 96px;
        height: 68px;
        border-radius: 4px;
    }

    .qc-body[b-b5bhqbiit9] { gap: 3px; }

    .qc-headline[b-b5bhqbiit9] { gap: 6px; }

    .qc-subject[b-b5bhqbiit9] {
        font-size: 0.875rem;       /* 14px */
        letter-spacing: 0;
    }

    .qc-conf[b-b5bhqbiit9] {
        font-size: 0.68rem;
        padding: 1px 5px;
    }

    .qc-location[b-b5bhqbiit9] {
        font-size: 0.75rem;
        gap: 5px;
        line-height: 1.3;
    }

    /* Recommend pill takes precious vertical space on phones; drop it. */
    .qc-recommend[b-b5bhqbiit9] { display: none; }

    .qc-actions[b-b5bhqbiit9] { gap: 5px; }
}

@media (max-width: 480px) {
    .qc[b-b5bhqbiit9] {
        padding: 10px 10px 10px 8px;
        gap: 9px;
    }

    .qc-thumb[b-b5bhqbiit9] { width: 88px; height: 62px; }

    .qc-btn[b-b5bhqbiit9] {
        padding: 0 10px;
        font-size: 0.78rem;
        height: 34px;
    }

    .qc-btn-real[b-b5bhqbiit9]  { min-width: 0; flex: 2; }
    .qc-btn-false[b-b5bhqbiit9] { min-width: 0; flex: 1; }
    .qc-btn-view[b-b5bhqbiit9]  { width: 34px; flex: 0 0 auto; }

    /* Reason inline gets pushed to its own line so the headline stays
       readable on narrow phones. */
    .qc-reason-inline[b-b5bhqbiit9] { width: 100%; }
    .qc-headline .qc-sep[b-b5bhqbiit9] { display: none; }

    /* Drop the third meta item ("time ago") so the line stays single,
       since site + camera is the operator-critical context. */
    .qc-location > span:nth-child(5)[b-b5bhqbiit9],
    .qc-location > .qc-sep:nth-child(4)[b-b5bhqbiit9] {
        display: none;
    }
}
/* /Components/Shared/ActionQueueSkeleton.razor.rz.scp.css */
.qsk[b-5z99qjr0cb] {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Live-bar placeholder */
.qsk-bar[b-5z99qjr0cb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 6px;
}

.qsk-tier[b-5z99qjr0cb] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.qsk-tier-head[b-5z99qjr0cb] {
    padding: 0 2px;
}

.qsk-list[b-5z99qjr0cb] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.qsk-card[b-5z99qjr0cb] {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    padding: 14px 16px 14px 13px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--border-color);
    border-radius: 6px;
}

.qsk-body[b-5z99qjr0cb] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.qsk-actions[b-5z99qjr0cb] {
    display: flex;
    align-items: center;
    gap: 6px;
}

@media (max-width: 900px) {
    .qsk-card[b-5z99qjr0cb] {
        grid-template-columns: 112px minmax(0, 1fr);
        grid-template-areas:
            "thumb body"
            "actions actions";
        gap: 14px;
    }
    .qsk-card > :first-child[b-5z99qjr0cb] { grid-area: thumb; width: 112px; height: 80px; }
    .qsk-body[b-5z99qjr0cb] { grid-area: body; }
    .qsk-actions[b-5z99qjr0cb] { grid-area: actions; }
}
/* /Components/Shared/ActiveIncidentsStrip.razor.rz.scp.css */
/* Active incidents strip — minimal card with a thin red accent edge.
   Clean typography; no gradient backdrop. */

.aistrip[b-mn2u0ls3ju] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--color-danger);
    border-radius: 0 6px 6px 0;
}

.aistrip-head[b-mn2u0ls3ju] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.aistrip-head h3[b-mn2u0ls3ju] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 0.7rem;
    font-weight: var(--font-bold);
    color: var(--color-danger);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.aistrip-head h3 i[b-mn2u0ls3ju] {
    font-size: 0.95rem;
}

.aistrip-count[b-mn2u0ls3ju] {
    font-size: 0.72rem;
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    letter-spacing: 0;
}

.aistrip-list[b-mn2u0ls3ju] {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    /* Thin, on-brand scrollbar — replaces the chunky browser default. */
    scrollbar-width: thin;
    scrollbar-color: rgba(35, 53, 73, 0.22) transparent;
    /* Soft fade on the right edge hints there is more to scroll. */
    -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 24px), transparent 100%);
            mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 24px), transparent 100%);
}

.aistrip-list[b-mn2u0ls3ju]::-webkit-scrollbar {
    height: 4px;
}

.aistrip-list[b-mn2u0ls3ju]::-webkit-scrollbar-track {
    background: transparent;
}

.aistrip-list[b-mn2u0ls3ju]::-webkit-scrollbar-thumb {
    background: rgba(35, 53, 73, 0.18);
    border-radius: 2px;
}

.aistrip-list[b-mn2u0ls3ju]::-webkit-scrollbar-thumb:hover {
    background: rgba(35, 53, 73, 0.35);
}

/* Incident tile — compact row. */
.incident[b-mn2u0ls3ju] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 280px;
    flex: 0 0 auto;
    padding: 8px 10px 8px 8px;
    background: #FFFFFF;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    transition: border-color 140ms ease;
}

.incident:hover[b-mn2u0ls3ju] {
    border-color: rgba(35, 53, 73, 0.18);
}

.incident-thumb[b-mn2u0ls3ju] {
    width: 44px;
    height: 44px;
    border-radius: 4px;
    overflow: hidden;
    background: var(--bg-badge);
    flex-shrink: 0;
}

.incident-thumb img[b-mn2u0ls3ju] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* "No snapshot" placeholder — matches AlertsTable placeholder styling. */
.incident-thumb-placeholder[b-mn2u0ls3ju] {
    width: 100%;
    height: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-badge);
    color: var(--text-tertiary);
    border-radius: inherit;
}

.incident-thumb-placeholder i[b-mn2u0ls3ju] {
    font-size: 1.2rem;
}

.incident-body[b-mn2u0ls3ju] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.incident-head[b-mn2u0ls3ju] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-width: 0;
}

.incident-head h4[b-mn2u0ls3ju] {
    margin: 0;
    font-size: 0.82rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.incident-site[b-mn2u0ls3ju] {
    font-size: 0.72rem;
    color: var(--text-tertiary);
    white-space: nowrap;
}

.incident-meta[b-mn2u0ls3ju] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    color: var(--text-secondary);
}

.incident-timer[b-mn2u0ls3ju] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--color-danger);
    font-weight: var(--font-bold);
    font-variant-numeric: tabular-nums;
}

.incident-status[b-mn2u0ls3ju] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text-tertiary);
}

.incident-sep[b-mn2u0ls3ju] { color: var(--text-tertiary); opacity: 0.6; }

.incident-timer i[b-mn2u0ls3ju],
.incident-status i[b-mn2u0ls3ju] { font-size: 0.85rem; }

.incident-close[b-mn2u0ls3ju] {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    color: var(--text-tertiary);
    cursor: pointer;
    transition: border-color 140ms ease, color 140ms ease, background 140ms ease;
}

.incident-close:hover[b-mn2u0ls3ju] {
    background: var(--color-primary-subtle);
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.incident-close i[b-mn2u0ls3ju] { font-size: 1rem; }

@media (max-width: 640px) {
    .incident[b-mn2u0ls3ju] { min-width: 240px; }
}

/* Resolve checkbox replaces the green-tick button — same column slot.
   Operator ticks the box to mark the incident as resolved. */
.incident-resolve[b-mn2u0ls3ju] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
    cursor: pointer;
    user-select: none;
    transition: all 150ms ease;
    white-space: nowrap;
}

.incident-resolve:hover[b-mn2u0ls3ju] {
    border-color: var(--color-success);
    background: rgba(34, 197, 94, 0.06);
}
/* /Components/Shared/AlertDetailModal.razor.rz.scp.css */
/* Backdrop */
.modal-backdrop[b-fxyobc1ui6] {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, 0.55);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: var(--spacing-lg);
    animation: fade-in-b-fxyobc1ui6 var(--transition-normal);
}

/* Panel */
.modal-panel[b-fxyobc1ui6] {
    background: var(--bg-card);
    border-radius: var(--border-radius-xl);
    box-shadow: var(--shadow-lg);
    max-width: 720px;
    width: 100%;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: slide-up-b-fxyobc1ui6 var(--transition-normal);
}

/* Header */
.modal-header[b-fxyobc1ui6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md) var(--spacing-xl);
    border-bottom: 1px solid var(--border-color);
    flex-shrink: 0;
}

.modal-title-group[b-fxyobc1ui6] {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.modal-title[b-fxyobc1ui6] {
    font-size: var(--font-size-lg);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    margin: 0;
    letter-spacing: -0.01em;
}

.modal-close[b-fxyobc1ui6] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--bg-badge);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    color: var(--text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.modal-close:hover[b-fxyobc1ui6] {
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    border-color: var(--color-primary-subtle);
}

.modal-close i[b-fxyobc1ui6] {
    font-size: var(--font-size-lg);
}

/* Body */
.modal-body[b-fxyobc1ui6] {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow-y: auto;
   /* scrollbar-width: thin;
    scrollbar-color: var(--text-tertiary) transparent;*/
}

    .modal-body[b-fxyobc1ui6]::-webkit-scrollbar {
        width: 8px;
        background: var(--border-color);
    }

.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-track {
    background: transparent;
}

.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-thumb {
    background: var(--text-tertiary);
    border-radius: 8px;
    border: 2px solid var(--bg-card);
}

.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-thumb:hover {
    background: var(--text-secondary);
}

.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:single-button,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:start,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:end,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:start:decrement,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:end:increment,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:vertical:start:decrement,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:vertical:end:increment,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:vertical:start:increment,
.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-button:vertical:end:decrement {
    display: none !important;
    height: 0 !important;
    width: 0 !important;
    background: transparent !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.modal-body[b-fxyobc1ui6]::-webkit-scrollbar-corner {
    background: transparent;
}

/* Image — background matches modal (no black), image scales to fit */
.modal-image[b-fxyobc1ui6] {
    position: relative;
    background: var(--bg-body);
    width: 100%;
    flex-shrink: 0;
    border-bottom: 1px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-image a[b-fxyobc1ui6] {
    display: block;
    width: 100%;
    text-align: center;
    position: relative;
    line-height: 0;
}

.modal-image img[b-fxyobc1ui6] {
    display: block;
    width: 100%;
    height: auto;
    cursor: default;
}

.modal-image-fullscreen[b-fxyobc1ui6] { display: none; }

.modal-image-placeholder[b-fxyobc1ui6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: var(--text-tertiary);
    padding: var(--spacing-3xl);
}

.modal-image-placeholder i[b-fxyobc1ui6] {
    font-size: 3rem;
}

/* Details below image — horizontal padding 0 so rows align with image edges */
.modal-details[b-fxyobc1ui6] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spacing-sm);
    padding: var(--spacing-md) 0;
    background: var(--bg-card);
}

.md-row[b-fxyobc1ui6] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 12px;
    background: var(--bg-body);
    border: 1px solid var(--border-color-subtle);
    border-radius: var(--border-radius-md);
}

.md-label[b-fxyobc1ui6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--font-size-2xs);
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.md-label i[b-fxyobc1ui6] {
    font-size: 0.875rem;
}

.md-value[b-fxyobc1ui6] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    line-height: 1.3;
}

.md-sub[b-fxyobc1ui6] {
    font-size: var(--font-size-xs);
    font-weight: var(--font-regular);
    color: var(--text-tertiary);
}

.md-muted[b-fxyobc1ui6] {
    color: var(--text-tertiary);
    font-weight: var(--font-medium);
}

/* AI tag */
.ai-tag[b-fxyobc1ui6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    border-radius: var(--border-radius-full);
    align-self: flex-start;
}

.ai-tag-sep[b-fxyobc1ui6] {
    opacity: 0.5;
}

.ai-tag-confidence[b-fxyobc1ui6] {
    font-weight: var(--font-medium);
    opacity: 0.85;
}

/* Footer */
.modal-footer[b-fxyobc1ui6] {
    display: flex;
    justify-content: flex-end;
    padding: var(--spacing-md) var(--spacing-xl);
    border-top: 1px solid var(--border-color);
    background: var(--bg-body);
    flex-shrink: 0;
}

/* State */
.modal-state[b-fxyobc1ui6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-3xl);
    color: var(--text-secondary);
}

.modal-state i[b-fxyobc1ui6] {
    font-size: 2.5rem;
    color: var(--text-tertiary);
}

.modal-error i[b-fxyobc1ui6] {
    color: var(--color-danger);
}

.spin[b-fxyobc1ui6] {
    animation: spin-b-fxyobc1ui6 1s linear infinite;
}

/* Animations */
@keyframes fade-in-b-fxyobc1ui6 {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slide-up-b-fxyobc1ui6 {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes spin-b-fxyobc1ui6 {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Responsive */
@media (max-width: 720px) {
    .modal-details[b-fxyobc1ui6] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .modal-image img[b-fxyobc1ui6] {
        max-height: 40vh;
    }

    .modal-header[b-fxyobc1ui6] {
        padding: var(--spacing-md) var(--spacing-lg);
    }

    .modal-details[b-fxyobc1ui6] {
        padding: var(--spacing-md) var(--spacing-lg);
    }
}

@media (max-width: 480px) {
    .modal-details[b-fxyobc1ui6] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Shared/AlertsTable.razor.rz.scp.css */
.at-card[b-p9jxiesw7h] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    padding: var(--spacing-lg);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    overflow: hidden;
}

@media (max-width: 640px) {
    .at-card[b-p9jxiesw7h] {
        padding: var(--spacing-md);
    }

    .at-head[b-p9jxiesw7h] {
        flex-direction: column;
        align-items: flex-start;
    }

    .at-head > div:first-child[b-p9jxiesw7h] {
        text-align: left;
        width: 100%;
    }

    .at-head h3[b-p9jxiesw7h],
    .at-head p[b-p9jxiesw7h] {
        text-align: left;
    }

    .at-actions[b-p9jxiesw7h] {
        width: 100%;
    }

    .at-search[b-p9jxiesw7h] {
        flex: 1;
        min-width: 0;
    }

    .at-sort-wrap[b-p9jxiesw7h] {
        flex-shrink: 0;
    }
}

.at-head[b-p9jxiesw7h] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

.at-head h3[b-p9jxiesw7h] {
    font-size: var(--font-size-base);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    margin: 0;
    letter-spacing: -0.01em;
}

.at-head p[b-p9jxiesw7h] {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    margin: 2px 0 0;
}

.at-actions[b-p9jxiesw7h] {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.at-search[b-p9jxiesw7h] {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: 0.375rem 0.625rem;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    min-width: 200px;
}

.at-search i[b-p9jxiesw7h] {
    color: var(--text-tertiary);
    font-size: 1rem;
}

.at-search input[b-p9jxiesw7h] {
    border: none;
    background: transparent;
    outline: none;
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    width: 100%;
}

.at-search-clear[b-p9jxiesw7h] {
    width: 20px;
    height: 20px;
    border: none;
    background: transparent;
    border-radius: var(--border-radius-sm);
    color: var(--text-tertiary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.at-search-clear:hover[b-p9jxiesw7h] {
    background: var(--bg-badge);
    color: var(--text-primary);
}

.at-search-clear i[b-p9jxiesw7h] { font-size: 0.875rem; }

.at-sort-wrap[b-p9jxiesw7h] {
    position: relative;
}

.at-sort[b-p9jxiesw7h] {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: 0.5rem 0.75rem;
    background: var(--color-brand-dark);
    border: none;
    border-radius: var(--border-radius-md);
    color: var(--text-light);
    font-family: var(--font-family);
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
    cursor: pointer;
    white-space: nowrap;
}

.at-sort:hover[b-p9jxiesw7h] {
    background: var(--color-brand-dark);
}

.at-sort-backdrop[b-p9jxiesw7h] {
    position: fixed;
    inset: 0;
    z-index: 40;
}

.at-sort-menu[b-p9jxiesw7h] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 50;
    min-width: 200px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.at-sort-item[b-p9jxiesw7h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    width: 100%;
    padding: 0.5rem 0.875rem;
    border: none;
    background: transparent;
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
}

.at-sort-item:hover[b-p9jxiesw7h] {
    background: var(--color-brand-dark-subtle);
    color: var(--color-brand-dark);
}

.at-sort-item.active[b-p9jxiesw7h] {
    /*background: var(--color-brand-dark-subtle);*/
    color: var(--color-brand-dark);
    font-weight: var(--font-semibold);
}

.at-sort-item i[b-p9jxiesw7h] { font-size: 0.875rem; }

/* Table */
.at-wrap[b-p9jxiesw7h] {
    overflow-x: auto;
    margin: 0 calc(var(--spacing-xl) * -1);
    padding: 0 var(--spacing-xl);
}

.at-table[b-p9jxiesw7h] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-sm);
}

.at-table thead th[b-p9jxiesw7h] {
    text-align: left;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 1px solid var(--border-color);
    white-space: nowrap;
}

.at-th-thumb[b-p9jxiesw7h] { width: 56px; }
.at-th-actions[b-p9jxiesw7h] { text-align: left; width: 80px; }

.at-table tbody td[b-p9jxiesw7h] {
    padding: var(--spacing-md);
    border-bottom: 1px solid var(--border-color-subtle);
    vertical-align: middle;
}

.at-table tbody tr:last-child td[b-p9jxiesw7h] {
    border-bottom: none;
}

.at-table tbody tr:hover[b-p9jxiesw7h] {
    background: var(--bg-body);
}

.at-thumb[b-p9jxiesw7h] {
    width: 48px;
    height: 48px;
    border-radius: var(--border-radius-md);
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
}

.at-thumb img[b-p9jxiesw7h] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

.at-thumb i[b-p9jxiesw7h] {
    font-size: 1.25rem;
}

/* "No snapshot" placeholder when ImagePath cleared by retention sweep.
   Same visual language as the AlertDetailModal placeholder: muted
   image-frame icon on a neutral background. */
.at-thumb-placeholder[b-p9jxiesw7h] {
    width: 100%;
    height: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-badge);
    color: var(--text-tertiary);
    border-radius: inherit;
}

.at-thumb-placeholder i[b-p9jxiesw7h] {
    font-size: 1.2rem;
}

.at-camera[b-p9jxiesw7h] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.at-camera-name[b-p9jxiesw7h] {
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.at-camera-sub[b-p9jxiesw7h] {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
}

/* Chips */
.at-chip[b-p9jxiesw7h] {
    display: inline-flex;
    align-items: center;
    padding: 0.1875rem 0.625rem;
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
    border-radius: var(--border-radius-full);
    letter-spacing: 0.02em;
}

.at-chip-primary[b-p9jxiesw7h] { background: var(--color-primary-subtle);   color: var(--color-primary); }
.at-chip-info[b-p9jxiesw7h]    { background: var(--color-info-subtle);      color: var(--color-info); }
.at-chip-warning[b-p9jxiesw7h] { background: var(--color-warning-subtle);   color: var(--color-warning); }
.at-chip-success[b-p9jxiesw7h] { background: var(--color-success-subtle);   color: var(--color-success); }
.at-chip-muted[b-p9jxiesw7h]   { background: var(--bg-badge);               color: var(--text-secondary); }

.at-source[b-p9jxiesw7h] {
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Confidence */
.at-conf[b-p9jxiesw7h] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 80px;
}

.at-conf-num[b-p9jxiesw7h] {
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.at-conf-track[b-p9jxiesw7h] {
    display: block;
    height: 4px;
    background: var(--bg-badge);
    border-radius: var(--border-radius-full);
    overflow: hidden;
}

.at-conf-fill[b-p9jxiesw7h] {
    display: block;
    height: 100%;
    background: var(--color-primary);
    border-radius: var(--border-radius-full);
}

.at-conf-fill.low[b-p9jxiesw7h]    { background: var(--color-danger); }
.at-conf-fill.medium[b-p9jxiesw7h] { background: var(--color-warning); }
.at-conf-fill.high[b-p9jxiesw7h]   { background: var(--color-primary); }

.at-conf-num.low[b-p9jxiesw7h]    { color: var(--color-danger); }
.at-conf-num.medium[b-p9jxiesw7h] { color: var(--color-warning); }
.at-conf-num.high[b-p9jxiesw7h]   { color: var(--color-primary); }

.at-conf-empty[b-p9jxiesw7h] {
    color: var(--text-tertiary);
    font-weight: var(--font-medium);
}

/* Time */
.at-time[b-p9jxiesw7h] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.at-time-rel[b-p9jxiesw7h] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
}

.at-time-abs[b-p9jxiesw7h] {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
}

/* Status */
.at-status[b-p9jxiesw7h] {
    display: inline-flex;
    align-items: center;
    padding: 0.1875rem 0.625rem;
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
    border-radius: var(--border-radius-full);
    letter-spacing: 0.02em;
}

.at-status-pending[b-p9jxiesw7h]   { background: var(--color-warning-subtle); color: var(--color-warning); }
.at-status-verified[b-p9jxiesw7h]  { background: var(--color-success-subtle); color: var(--color-success); }
.at-status-dismissed[b-p9jxiesw7h] { background: var(--bg-badge);             color: var(--text-secondary); }
.at-status-escalated[b-p9jxiesw7h] { background: var(--color-danger-subtle);  color: var(--color-danger); }

/* Actions */
.at-actions-row[b-p9jxiesw7h] {
    display: flex;
    align-items: center;
    gap: 4px;
    justify-content: flex-start;
}

.at-act-btn[b-p9jxiesw7h] {
    position: relative;
    width: 32px;
    height: 32px;
    border: none;
    background: var(--color-primary-subtle);
    border-radius: var(--border-radius-md);
    color: var(--color-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-fast);
}

.at-act-btn i[b-p9jxiesw7h] {
    font-size: 1rem;
}

.at-act-view:hover[b-p9jxiesw7h]    { background: var(--color-primary); color: var(--text-light); }

/* Footer */
.at-foot[b-p9jxiesw7h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border-color-subtle);
}

.at-foot-text[b-p9jxiesw7h] {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
}

.at-pager[b-p9jxiesw7h] {
    display: flex;
    gap: 2px;
}

.at-page-btn[b-p9jxiesw7h] {
    padding: 0.375rem 0.625rem;
    border: 1px solid var(--border-color);
    background: var(--bg-card);
    border-radius: var(--border-radius-sm);
    color: var(--text-secondary);
    font-family: var(--font-family);
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.at-page-btn:hover:not(:disabled):not(.at-page-active)[b-p9jxiesw7h] {
    border-color: var(--color-brand-dark);
    color: var(--color-brand-dark);
}

.at-page-btn:disabled[b-p9jxiesw7h] {
    opacity: 0.4;
    cursor: not-allowed;
}

.at-page-active[b-p9jxiesw7h],
.at-page-active:hover[b-p9jxiesw7h] {
    background: var(--color-brand-dark);
    border-color: var(--color-brand-dark);
    color: var(--text-light);
    cursor: default;
}

/* Empty */
.at-empty[b-p9jxiesw7h] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-3xl) var(--spacing-lg);
    text-align: center;
}

.at-empty-icon[b-p9jxiesw7h] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: var(--bg-badge);
    border-radius: var(--border-radius-full);
    margin-bottom: var(--spacing-sm);
}

.at-empty-icon i[b-p9jxiesw7h] {
    font-size: 1.5rem;
    color: var(--text-tertiary);
}

.at-empty h4[b-p9jxiesw7h] {
    font-size: var(--font-size-base);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    margin: 0;
}

.at-empty p[b-p9jxiesw7h] {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin: 0;
    max-width: 320px;
}
/* /Components/Shared/AlertStatusDonut.razor.rz.scp.css */
.status-card[b-jo3n79qzxc] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    padding: var(--spacing-lg);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    height: 100%;
}

.status-head h3[b-jo3n79qzxc] {
    font-size: var(--font-size-base);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    margin: 0;
    letter-spacing: -0.01em;
}

.status-head p[b-jo3n79qzxc] {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    margin: 2px 0 0;
}

.status-chart[b-jo3n79qzxc] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 240px;
    flex: 1;
}

.status-center[b-jo3n79qzxc] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    pointer-events: none;
}

.sc-label[b-jo3n79qzxc] {
    font-size: var(--font-size-xs);
    color: var(--text-secondary);
    font-weight: var(--font-medium);
}

.sc-value[b-jo3n79qzxc] {
    font-size: 1.75rem;
    font-weight: var(--font-bold);
    color: var(--text-primary);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

.status-empty[b-jo3n79qzxc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
    color: var(--text-tertiary);
}

.status-empty i[b-jo3n79qzxc] { font-size: 2.25rem; }

.status-empty span[b-jo3n79qzxc] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
}

.status-legend[b-jo3n79qzxc] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-md);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border-color-subtle);
}

.sl-item[b-jo3n79qzxc] {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
}

.sl-dot[b-jo3n79qzxc] {
    width: 8px;
    height: 8px;
    border-radius: var(--border-radius-full);
    flex-shrink: 0;
    margin-top: 6px;
}

.sl-text[b-jo3n79qzxc] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sl-label[b-jo3n79qzxc] {
    font-size: var(--font-size-xs);
    color: var(--text-secondary);
    font-weight: var(--font-medium);
}

.sl-count[b-jo3n79qzxc] {
    font-size: var(--font-size-xl);
    font-weight: var(--font-bold);
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
}
/* /Components/Shared/AppErrorBoundary.razor.rz.scp.css */
.error-boundary[b-1v5ri18rrh] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    padding: var(--spacing-xl);
}

.error-boundary-card[b-1v5ri18rrh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--spacing-md);
    padding: var(--spacing-3xl) var(--spacing-2xl);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-xl);
    box-shadow: var(--shadow-sm);
    max-width: 420px;
}

.error-icon[b-1v5ri18rrh] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    background: var(--color-danger-subtle);
    color: var(--color-danger);
    border-radius: var(--border-radius-full);
    margin-bottom: var(--spacing-sm);
}

.error-icon i[b-1v5ri18rrh] {
    font-size: 1.75rem;
}

.error-boundary-card h2[b-1v5ri18rrh] {
    font-size: var(--font-size-lg);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    margin: 0;
}

.error-boundary-card p[b-1v5ri18rrh] {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin: 0;
    max-width: 300px;
}
/* /Components/Shared/CameraTestModal.razor.rz.scp.css */
/* ===== Test camera modal — matches AlertDetailModal aesthetic ===== */
.cam-test-backdrop[b-jv4ys726bp] {
    position: fixed;
    inset: 0;
    background: rgba(17, 24, 39, 0.55);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: var(--spacing-lg);
    animation: cam-test-fade-b-jv4ys726bp 200ms ease-out;
}

.cam-test-panel[b-jv4ys726bp] {
    background: var(--bg-card);
    border-radius: var(--border-radius-xl);
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.28);
    max-width: 560px;
    width: 100%;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: cam-test-slide-b-jv4ys726bp 220ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

@keyframes cam-test-fade-b-jv4ys726bp {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes cam-test-slide-b-jv4ys726bp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

.cam-test-header[b-jv4ys726bp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md) var(--spacing-xl);
    border-bottom: 1px solid var(--border-color);
    flex-shrink: 0;
}

.cam-test-title-group[b-jv4ys726bp] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cam-test-title-group i[b-jv4ys726bp] {
    color: var(--color-primary);
    font-size: 1.25rem;
}

.cam-test-title[b-jv4ys726bp] {
    font-size: var(--font-size-lg);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    margin: 0;
    letter-spacing: -0.01em;
}

.cam-test-subtitle[b-jv4ys726bp] {
    margin-top: 2px;
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    font-weight: var(--font-medium);
}

.cam-test-close[b-jv4ys726bp] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--bg-badge);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 150ms ease;
}

.cam-test-close:hover[b-jv4ys726bp] {
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    border-color: var(--color-primary-subtle);
}

.cam-test-close i[b-jv4ys726bp] {
    font-size: var(--font-size-lg);
}

.cam-test-body[b-jv4ys726bp] {
    flex: 1;
    overflow-y: auto;
}

.cam-test-snapshot[b-jv4ys726bp],
.cam-test-live[b-jv4ys726bp] {
    padding: var(--spacing-md) var(--spacing-xl);
}

.cam-test-snapshot[b-jv4ys726bp] {
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-body);
}

.cam-test-row[b-jv4ys726bp] {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 12px;
    padding: 6px 0;
    align-items: center;
}

.cam-test-label[b-jv4ys726bp] {
    font-size: var(--font-size-2xs);
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.cam-test-value[b-jv4ys726bp] {
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    font-weight: var(--font-medium);
    word-spacing: 0.04em;
}

.cam-test-sub[b-jv4ys726bp] {
    color: var(--text-tertiary);
    font-size: var(--font-size-xs);
    font-weight: var(--font-regular);
}

.cam-test-pill[b-jv4ys726bp] {
    display: inline-block;
    padding: 3px 12px;
    border-radius: var(--border-radius-full);
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
}
.cam-test-pill--ok[b-jv4ys726bp]  { background: rgba(34, 197, 94, 0.12);  color: #15803d; }
.cam-test-pill--bad[b-jv4ys726bp] { background: rgba(220, 38, 38, 0.12);  color: #b91c1c; }

.cam-test-prompt[b-jv4ys726bp] {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.6;
    word-spacing: 0.04em;
}

.cam-test-banner[b-jv4ys726bp] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border-radius: var(--border-radius-md);
    border: 1px solid transparent;
}

.cam-test-banner > i[b-jv4ys726bp] {
    font-size: 1.5rem;
    margin-top: 2px;
    flex-shrink: 0;
}

.cam-test-banner strong[b-jv4ys726bp] {
    display: block;
    margin-bottom: 4px;
    color: var(--text-primary);
    font-weight: var(--font-semibold);
}

.cam-test-banner p[b-jv4ys726bp] {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.55;
    word-spacing: 0.04em;
}

.cam-test-banner--info[b-jv4ys726bp] {
    background: var(--color-primary-subtle);
    border-color: var(--color-primary);
}
.cam-test-banner--info > i[b-jv4ys726bp] { color: var(--color-primary); }

.cam-test-banner--ok[b-jv4ys726bp] {
    background: rgba(34, 197, 94, 0.08);
    border-color: rgba(34, 197, 94, 0.4);
}
.cam-test-banner--ok > i[b-jv4ys726bp] { color: #15803d; }

.cam-test-banner--bad[b-jv4ys726bp] {
    background: rgba(220, 38, 38, 0.06);
    border-color: rgba(220, 38, 38, 0.35);
}
.cam-test-banner--bad > i[b-jv4ys726bp] { color: #b91c1c; }

.cam-test-footer[b-jv4ys726bp] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: var(--spacing-md) var(--spacing-xl);
    border-top: 1px solid var(--border-color);
    background: var(--bg-body);
    flex-shrink: 0;
}

@media (max-width: 480px) {
    .cam-test-backdrop[b-jv4ys726bp] { padding: var(--spacing-sm); }
    .cam-test-header[b-jv4ys726bp],
    .cam-test-snapshot[b-jv4ys726bp],
    .cam-test-live[b-jv4ys726bp],
    .cam-test-footer[b-jv4ys726bp] { padding-left: var(--spacing-md); padding-right: var(--spacing-md); }

    .cam-test-row[b-jv4ys726bp] {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}
/* /Components/Shared/ConfirmDialog.razor.rz.scp.css */
/* ConfirmDialog — small centered modal with icon + title + message + 2 buttons. */

.cd-backdrop[b-rodkfk6z5y] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
    z-index: 950;
    animation: cd-fade-b-rodkfk6z5y 140ms ease;
}

.cd-modal[b-rodkfk6z5y] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(420px, calc(100vw - 32px));
    background: var(--bg-card);
    border-radius: 10px;
    padding: 24px 24px 20px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.28);
    z-index: 951;
    text-align: center;
    animation: cd-pop-b-rodkfk6z5y 160ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

@keyframes cd-fade-b-rodkfk6z5y {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes cd-pop-b-rodkfk6z5y {
    from { opacity: 0; transform: translate(-50%, -48%) scale(0.96); }
    to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.cd-icon[b-rodkfk6z5y] {
    width: 56px;
    height: 56px;
    margin: 0 auto 14px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.cd-icon i[b-rodkfk6z5y] { font-size: 1.6rem; }

.cd-icon-danger[b-rodkfk6z5y] {
    background: var(--color-danger-subtle);
    color: var(--color-danger);
}

.cd-icon-info[b-rodkfk6z5y] {
    background: var(--color-primary-subtle);
    color: var(--color-brand-dark);
}

.cd-title[b-rodkfk6z5y] {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    letter-spacing: -0.01em;
}

.cd-message[b-rodkfk6z5y] {
    margin: 0 0 20px;
    font-size: 0.875rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.cd-actions[b-rodkfk6z5y] {
    display: flex;
    gap: 8px;
    justify-content: center;
}

.cd-actions .btn[b-rodkfk6z5y] { min-width: 100px; }
/* /Components/Shared/ConfirmRealAlarmDialog.razor.rz.scp.css */
/* Base modal classes duplicated from ConfirmDialog.razor.css because
   Blazor scoped CSS is per-component — sharing class names across files
   doesn't carry the scope attribute over. Keep these in sync if the
   base dialog ever restyles. */

.cd-backdrop[b-mw4sismdge] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(2px);
    z-index: 950;
    animation: cd-fade-b-mw4sismdge 140ms ease;
}

.cd-modal[b-mw4sismdge] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(460px, calc(100vw - 32px));
    background: var(--bg-card);
    border-radius: 10px;
    padding: 24px 24px 20px;
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.28);
    z-index: 951;
    text-align: center;
    animation: cd-pop-b-mw4sismdge 160ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

@keyframes cd-fade-b-mw4sismdge {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes cd-pop-b-mw4sismdge {
    from { opacity: 0; transform: translate(-50%, -48%) scale(0.96); }
    to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.cd-icon[b-mw4sismdge] {
    width: 56px;
    height: 56px;
    margin: 0 auto 14px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.cd-icon i[b-mw4sismdge] { font-size: 1.6rem; }

.cd-icon-danger[b-mw4sismdge] {
    background: var(--color-danger-subtle);
    color: var(--color-danger);
}

.cd-title[b-mw4sismdge] {
    margin: 0 0 6px;
    font-size: 1rem;
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    letter-spacing: -0.01em;
}

.cd-message[b-mw4sismdge] {
    margin: 0 0 16px;
    font-size: 0.875rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.cd-actions[b-mw4sismdge] {
    display: flex;
    gap: 8px;
    justify-content: center;
}

.cd-actions .btn[b-mw4sismdge] { min-width: 100px; }

/* Channel checkbox row — bespoke to this dialog. */

.cd-channels[b-mw4sismdge] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spacing-sm);
    margin: var(--spacing-md) 0;
    width: 100%;
}

.cd-channels-2[b-mw4sismdge] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cd-channel[b-mw4sismdge] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: var(--bg-body);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    cursor: pointer;
    transition: all var(--transition-fast);
    user-select: none;
}

.cd-channel:hover[b-mw4sismdge] {
    border-color: var(--color-primary);
    background: var(--color-primary-subtle);
}

.cd-channel input[type="checkbox"][b-mw4sismdge] {
    accent-color: var(--color-primary);
    width: 18px;
    height: 18px;
    cursor: pointer;
    flex-shrink: 0;
}

.cd-channel-icon[b-mw4sismdge] {
    display: inline-flex;
    color: var(--text-secondary);
}

.cd-channel-icon i[b-mw4sismdge] {
    font-size: 1.1rem;
}

.cd-channel-label[b-mw4sismdge] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
}

.cd-message-tight[b-mw4sismdge] {
    margin-top: 0;
    margin-bottom: var(--spacing-md);
}
/* /Components/Shared/DashboardHistory.razor.rz.scp.css */
/* History tab — segmented picker over AlertsTable. */

.history-toolbar[b-pk764n03mr] {
    display: flex;
    justify-content: flex-start;
    margin-bottom: var(--spacing-sm);
}

.history-seg[b-pk764n03mr] {
    display: inline-flex;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    padding: 4px;
    gap: 2px;
    overflow-x: auto;
    max-width: 100%;
}

.history-seg-btn[b-pk764n03mr] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0.45rem 0.85rem;
    background: transparent;
    border: none;
    border-radius: var(--border-radius-sm);
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-tertiary);
    cursor: pointer;
    white-space: nowrap;
    transition: all var(--transition-fast);
}

.history-seg-btn i[b-pk764n03mr] { font-size: 1rem; }

.history-seg-btn:hover[b-pk764n03mr] { color: var(--color-primary); }

.history-seg-btn.active[b-pk764n03mr] {
    background: var(--color-brand-dark);
    color: #FFFFFF;
}

.history-seg-btn.active i[b-pk764n03mr] { color: #FFFFFF; }
/* /Components/Shared/DashboardInsights.razor.rz.scp.css */
/* Insights tab layout — ported from the legacy dashboard grid so the
   existing widgets keep their exact visual language inside the new
   action-focused dashboard. */

.stats-row[b-26a6lb2ueh] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--spacing-md);
}

.insights-row[b-26a6lb2ueh] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: var(--spacing-md);
}

.insights-side[b-26a6lb2ueh],
.insights-main[b-26a6lb2ueh] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.insights-full-row[b-26a6lb2ueh],
.analytics-strip[b-26a6lb2ueh] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

@media (max-width: 1280px) {
    .stats-row[b-26a6lb2ueh] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
    .insights-row[b-26a6lb2ueh] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .stats-row[b-26a6lb2ueh] { grid-template-columns: minmax(0, 1fr); }
}
/* /Components/Shared/DashboardSkeleton.razor.rz.scp.css */
.dsk[b-k14fv0m658] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xl);
}

.dsk-stats[b-k14fv0m658] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spacing-md);
}

.dsk-statcard[b-k14fv0m658] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-xl);
    padding: var(--spacing-lg) var(--spacing-xl);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.dsk-statcard-row[b-k14fv0m658] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
}

.dsk-insights[b-k14fv0m658] {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: var(--spacing-lg);
}

.dsk-card[b-k14fv0m658] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-xl);
    padding: var(--spacing-lg) var(--spacing-xl);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.dsk-donut[b-k14fv0m658] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-lg) 0;
}

.dsk-legend[b-k14fv0m658] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    border-top: 1px solid var(--border-color-subtle);
    padding-top: var(--spacing-md);
}

.dsk-strip[b-k14fv0m658] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
}

.dsk-list-row[b-k14fv0m658] {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.dsk-list-body[b-k14fv0m658] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dsk-table-head[b-k14fv0m658] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--border-color);
}

.dsk-table-row[b-k14fv0m658] {
    display: grid;
    grid-template-columns: 40px 1.2fr 0.8fr 0.8fr 1fr 0.8fr 0.8fr;
    gap: var(--spacing-md);
    align-items: center;
    padding: var(--spacing-md) 0;
    border-bottom: 1px solid var(--border-color-subtle);
}

.dsk-table-row:last-child[b-k14fv0m658] {
    border-bottom: none;
}

@media (max-width: 1024px) {
    .dsk-stats[b-k14fv0m658]      { grid-template-columns: repeat(2, 1fr); }
    .dsk-insights[b-k14fv0m658],
    .dsk-strip[b-k14fv0m658]      { grid-template-columns: 1fr; }
}
/* /Components/Shared/DetailRow.razor.rz.scp.css */
.detail-row[b-yq6b2v6vcx] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--border-color-subtle);
}

.detail-row:last-child[b-yq6b2v6vcx] {
    border-bottom: none;
}

.detail-label[b-yq6b2v6vcx] {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: var(--font-size-xs);
    font-weight: var(--font-medium);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.detail-label i[b-yq6b2v6vcx] {
    font-size: var(--font-size-base);
}

.detail-value[b-yq6b2v6vcx] {
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    font-weight: var(--font-medium);
    word-break: break-word;
}
/* /Components/Shared/NotificationMenu.razor.rz.scp.css */
.notif-menu[b-y1vs808u86] {
    position: relative;
}

/* Trigger */
.notif-trigger[b-y1vs808u86] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    background: transparent;
    border: none;
    border-radius: var(--border-radius-md);
    color: var(--text-secondary);
    cursor: pointer;
    transition: all var(--transition-fast);
    padding: 0;
}

.notif-trigger:hover[b-y1vs808u86] {
    background: var(--color-primary-subtle);
    color: var(--color-primary);
}

.notif-trigger i[b-y1vs808u86] {
    font-size: 1.25rem;
}

.notif-count[b-y1vs808u86] {
    position: absolute;
    top: 2px;
    right: 0px;
    min-width: 8px;
    height: 16px;
    padding: 0 4px;
    background: var(--color-danger);
    color: var(--text-light);
    font-size: var(--font-size-2xs);
    /* font-weight: var(--font-bold); */
    border-radius: var(--border-radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--bg-card);
    box-sizing: content-box;
}

/* Backdrop */
.notif-backdrop[b-y1vs808u86] {
    position: fixed;
    inset: 0;
    z-index: 100;
}

/* Dropdown */
.notif-dropdown[b-y1vs808u86] {
    position: absolute;
    top: calc(100% + var(--spacing-xs));
    right: 0;
    width: 340px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-lg);
    z-index: 200;
    overflow: hidden;
    animation: menu-slide-b-y1vs808u86 var(--transition-fast);
}

@keyframes menu-slide-b-y1vs808u86 {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Header */
.notif-header[b-y1vs808u86] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--border-color-subtle);
}

.notif-header[b-y1vs808u86] {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.notif-header h3[b-y1vs808u86] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    margin: 0;
}

.notif-subtitle[b-y1vs808u86] {
    font-size: var(--font-size-2xs);
    color: var(--text-tertiary);
}

.notif-clear[b-y1vs808u86] {
    background: transparent;
    border: none;
    color: var(--color-primary);
    font-family: var(--font-family);
    font-size: var(--font-size-xs);
    font-weight: var(--font-medium);
    cursor: pointer;
    padding: 0;
}

.notif-clear:hover[b-y1vs808u86] {
    text-decoration: underline;
}

/* List */
.notif-list[b-y1vs808u86] {
    max-height: 360px;
    overflow-y: auto;
}

.notif-empty[b-y1vs808u86] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-xl);
    color: var(--text-tertiary);
}

.notif-empty i[b-y1vs808u86] {
    font-size: 2rem;
}

.notif-empty span[b-y1vs808u86] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
}

/* Item */
.notif-item[b-y1vs808u86] {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    width: 100%;
    padding: var(--spacing-md) var(--spacing-lg);
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--border-color-subtle);
    cursor: pointer;
    transition: background var(--transition-fast);
    text-align: left;
    font-family: var(--font-family);
}

.notif-item:last-child[b-y1vs808u86] {
    border-bottom: none;
}

.notif-item:hover[b-y1vs808u86] {
    background: var(--bg-body);
}

/* Thumbnail */
.notif-thumb[b-y1vs808u86] {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: var(--border-radius-md);
    background: var(--bg-badge);
    flex-shrink: 0;
}

.notif-thumb-fallback[b-y1vs808u86] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-tertiary);
}

.notif-thumb-fallback i[b-y1vs808u86] { font-size: 1.25rem; }

.notif-body[b-y1vs808u86] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.notif-row-1[b-y1vs808u86] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
}

.notif-camera[b-y1vs808u86] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.notif-status[b-y1vs808u86] {
    font-size: var(--font-size-2xs);
    font-weight: var(--font-semibold);
    padding: 2px 8px;
    border-radius: var(--border-radius-full);
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.notif-status-pending[b-y1vs808u86]   { background: var(--color-warning-subtle); color: var(--color-warning); }
.notif-status-verified[b-y1vs808u86]  { background: var(--color-success-subtle); color: var(--color-success); }
.notif-status-dismissed[b-y1vs808u86] { background: var(--bg-badge); color: var(--text-tertiary); }

.notif-row-2[b-y1vs808u86] {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.notif-label[b-y1vs808u86] {
    font-size: var(--font-size-2xs);
    font-weight: var(--font-semibold);
    color: var(--color-primary);
    padding: 2px 8px;
    background: var(--color-primary-subtle);
    border-radius: var(--border-radius-full);
}

.notif-label-muted[b-y1vs808u86] {
    color: var(--text-tertiary);
    background: var(--bg-badge);
}

.notif-confidence[b-y1vs808u86] {
    font-size: var(--font-size-2xs);
    font-weight: var(--font-semibold);
    color: var(--text-secondary);
}

.notif-row-3[b-y1vs808u86] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--font-size-2xs);
    color: var(--text-tertiary);
}

.notif-row-3 i[b-y1vs808u86] { font-size: 0.875rem; }

/* Footer */
.notif-footer[b-y1vs808u86] {
    padding: var(--spacing-sm) var(--spacing-lg);
    border-top: 1px solid var(--border-color-subtle);
    background: var(--bg-body);
}

.notif-view-all[b-y1vs808u86] {
    width: 100%;
    background: transparent;
    border: none;
    color: var(--color-primary);
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
    padding: var(--spacing-xs) 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.notif-view-all:hover[b-y1vs808u86] {
    color: var(--color-primary-hover);
}

.notif-view-all i[b-y1vs808u86] { font-size: 0.875rem; }
/* /Components/Shared/PageHeader.razor.rz.scp.css */
.page-header[b-6hu02wnr01] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-lg);
    flex-wrap: wrap;
    margin-bottom: var(--spacing-md);
}

.page-header-text[b-6hu02wnr01] {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    min-width: 0;
}

.page-header-title[b-6hu02wnr01] {
    font-size: 1.125rem;
    font-weight: 600;
    color: #1a202c;
    letter-spacing: -0.01em;
    line-height: 1.2;
    margin: 0;
}

.page-header-subtitle[b-6hu02wnr01] {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
    margin: 0;
}

.page-header-actions[b-6hu02wnr01] {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

@media (max-width: 640px) {
    .page-header[b-6hu02wnr01] {
        flex-direction: column;
        align-items: stretch;
    }

}
/* /Components/Shared/QueueLiveBar.razor.rz.scp.css */
/* Telemetry strip — sits just under the tabs. Subtle, not card-like.
   Purpose: continuous live data (last event tick + counts) so operator
   always has system state in view. The prominent LIVE pill up top shows
   the connection; this strip shows the numbers. */

.qlb[b-9o5wp1enw4] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    flex-wrap: wrap;
    font-size: 0.78125rem;        /* 12.5px */
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
    background: #FFFFFF;
    border: 1px solid var(--border-color);
    border-radius: 6px;
}

/* Left slot hidden — LIVE is now in the page header pill. */
.qlb-left[b-9o5wp1enw4] { display: none; }

.qlb-stats[b-9o5wp1enw4] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    flex: 1;
}

.qlb-stat[b-9o5wp1enw4] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: var(--font-semibold);
}

.qlb-stat strong[b-9o5wp1enw4] {
    color: var(--text-primary);
    font-weight: var(--font-bold);
}

.qlb-stat span[b-9o5wp1enw4] {
    color: var(--text-tertiary);
    font-weight: var(--font-semibold);
}

.qlb-stat i[b-9o5wp1enw4] {
    font-size: 0.95rem;
    color: var(--text-tertiary);
}

.qlb-stat-time strong[b-9o5wp1enw4] {
    color: var(--color-brand-dark);
}

.qlb-stat-time i[b-9o5wp1enw4] {
    color: var(--color-primary);
}

.qlb-stat-critical strong[b-9o5wp1enw4],
.qlb-stat-critical span[b-9o5wp1enw4] { color: var(--color-danger); }

.qlb-stat-active strong[b-9o5wp1enw4],
.qlb-stat-active span[b-9o5wp1enw4]  { color: var(--color-danger); }

.qlb-stat-active i[b-9o5wp1enw4]     { color: var(--color-danger); }

.qlb-sep[b-9o5wp1enw4] {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--color-primary);
    opacity: 0.35;
    flex-shrink: 0;
}

@media (max-width: 640px) {
    .qlb[b-9o5wp1enw4] { gap: 8px; }
    .qlb-stats[b-9o5wp1enw4] { gap: 8px; }
}
/* /Components/Shared/RecentActivityTimeline.razor.rz.scp.css */
.ra-card[b-6zmz2tbyac] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-xl);
    padding: var(--spacing-lg) var(--spacing-xl);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    height: 100%;
}

.ra-head h3[b-6zmz2tbyac] {
    font-size: var(--font-size-base);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    margin: 0;
    letter-spacing: -0.01em;
}

.ra-head p[b-6zmz2tbyac] {
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
    margin: 2px 0 0;
}

.ra-list[b-6zmz2tbyac] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.ra-list li[b-6zmz2tbyac] {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
}

.ra-dot[b-6zmz2tbyac] {
    width: 10px;
    height: 10px;
    border-radius: var(--border-radius-full);
    flex-shrink: 0;
    margin-top: 6px;
}

.ra-dot-primary[b-6zmz2tbyac] { background: var(--color-primary); }
.ra-dot-success[b-6zmz2tbyac] { background: var(--color-success); }
.ra-dot-danger[b-6zmz2tbyac]  { background: var(--color-danger); }
.ra-dot-warning[b-6zmz2tbyac] { background: var(--color-warning); }

.ra-body[b-6zmz2tbyac] {
    flex: 1;
    min-width: 0;
}

.ra-title[b-6zmz2tbyac] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 2px;
}

.ra-action[b-6zmz2tbyac] {
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

.ra-camera[b-6zmz2tbyac] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.ra-meta[b-6zmz2tbyac] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--font-size-xs);
    color: var(--text-tertiary);
}

.ra-sep[b-6zmz2tbyac] { color: var(--text-muted); }

.ra-empty[b-6zmz2tbyac] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-xl);
    text-align: center;
    color: var(--text-tertiary);
}

.ra-empty i[b-6zmz2tbyac] {
    font-size: 2rem;
}

.ra-empty span[b-6zmz2tbyac] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    max-width: 320px;
}
/* /Components/Shared/SearchableSelect.razor.rz.scp.css */
/* SearchableSelect — looks like a native select, but the panel has a
   search input at the top. Uses theme tokens so it picks up wherever
   it's dropped (filter rows, edit forms, modals…). */

/* Default: full-width block so it lines up with sibling .form-input
   fields inside .form-group containers. Filter rows on list pages can
   opt out of the full-width default via the `.at-actions .ss` override
   below, which keeps the old narrow inline footprint there. */
.ss[b-jg13xh7syl] {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
}

/* List-page filter rows expect an inline-sized control like the old
   native <select>; preserve that without each caller having to pass a
   modifier class. */
.at-actions .ss[b-jg13xh7syl] {
    flex: 1;
    min-width: 180px;
    max-width: 320px;
    width: auto;
}

.ss-trigger[b-jg13xh7syl] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 0.625rem 0.875rem;
    background: var(--bg-body);
    border: 1px solid var(--border-input);
    border-radius: var(--border-radius-md);
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    color: var(--text-primary);
    cursor: pointer;
    text-align: left;
    transition: border-color 140ms ease, box-shadow 140ms ease;
}
.ss-sm-trigger[b-jg13xh7syl] {
    padding: 0.375rem 0.625rem;
}

/* When a SearchableSelect lives inside a list-page filter row, shrink
   the trigger to match .filter-select compact sizing. Form pages
   (CameraEdit, SiteEdit, SubscriberEdit, Onboarding) are untouched —
   they keep the default trigger padding so it aligns with .form-input
   field heights. */
.filter-control .ss-trigger[b-jg13xh7syl] {
    padding: 0.45rem 0.75rem;
}
.ss-trigger:hover:not(:disabled)[b-jg13xh7syl] {
    border-color: var(--color-primary);
}

.ss-trigger:disabled[b-jg13xh7syl] {
    background: var(--bg-badge);
    color: var(--text-tertiary);
    cursor: not-allowed;
}

.ss-trigger--open[b-jg13xh7syl] {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary-subtle);
}

.ss-trigger-label[b-jg13xh7syl] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ss-trigger-placeholder[b-jg13xh7syl] {
    color: var(--text-tertiary);
}

.ss-chevron[b-jg13xh7syl] {
    font-size: 1rem;
    color: var(--text-tertiary);
    transition: transform 140ms ease;
    flex-shrink: 0;
}

.ss-trigger--open .ss-chevron[b-jg13xh7syl] {
    transform: rotate(180deg);
    color: var(--color-primary);
}

/* ===== Panel ============================================== */
.ss-panel[b-jg13xh7syl] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 60;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    box-shadow: 0 10px 30px rgba(17,24,39,0.12);
    overflow: hidden;
    animation: ss-fade-in-b-jg13xh7syl 140ms ease-out;
}

@keyframes ss-fade-in-b-jg13xh7syl {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.ss-search[b-jg13xh7syl] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-body);
}

.ss-search > i[b-jg13xh7syl] {
    color: var(--text-tertiary);
    font-size: 1rem;
    flex-shrink: 0;
}

.ss-search input[b-jg13xh7syl] {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    color: var(--text-primary);
}

.ss-search input[b-jg13xh7syl]::placeholder {
    color: var(--text-tertiary);
}

.ss-search-clear[b-jg13xh7syl] {
    width: 22px;
    height: 22px;
    border: none;
    background: transparent;
    color: var(--text-tertiary);
    cursor: pointer;
    border-radius: var(--border-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ss-search-clear:hover[b-jg13xh7syl] {
    background: var(--bg-badge);
    color: var(--text-primary);
}

.ss-search-clear i[b-jg13xh7syl] { font-size: 0.9rem; }

/* ===== List ============================================== */
.ss-list[b-jg13xh7syl] {
    max-height: 280px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.25rem 0;
    scrollbar-width: thin;
    scrollbar-color: var(--border-color) transparent;
}

.ss-list[b-jg13xh7syl]::-webkit-scrollbar { width: 6px; }
.ss-list[b-jg13xh7syl]::-webkit-scrollbar-track { background: transparent; }
.ss-list[b-jg13xh7syl]::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 3px;
}
.ss-list[b-jg13xh7syl]::-webkit-scrollbar-thumb:hover { background: var(--text-tertiary); }
.ss-list[b-jg13xh7syl]::-webkit-scrollbar-button { display: none; height: 0; width: 0; }

.ss-empty[b-jg13xh7syl] {
    padding: 0.75rem 1rem;
    font-size: var(--font-size-sm);
    color: var(--text-secondary);
}

.ss-option[b-jg13xh7syl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    padding: 0.5rem 0.875rem;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    color: var(--text-primary);
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    transition: background var(--transition-fast);
}

.ss-option:hover[b-jg13xh7syl],
.ss-option--highlight[b-jg13xh7syl] {
    background: var(--color-primary-subtle);
}

.ss-option--active[b-jg13xh7syl] {
    color: var(--color-primary);
    font-weight: var(--font-semibold);
}

.ss-option-label[b-jg13xh7syl] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ss-option-tick[b-jg13xh7syl] {
    color: var(--color-primary);
    font-size: 1rem;
    flex-shrink: 0;
}

.ss-option--clear[b-jg13xh7syl] {
    border-bottom: 1px solid var(--border-color);
    color: var(--text-secondary);
}
/* /Components/Shared/SiteMultiSelect.razor.rz.scp.css */
/* SiteMultiSelect-specific styles only — shared .ms-* moved to app.css
   so ClientMultiSelect and future dropdowns share them. */
/* /Components/Shared/StatCard.razor.rz.scp.css */
.stat-card[b-xwmlquv5j7] {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    padding: var(--spacing-lg);
    display: flex;
    flex-direction: column;
    gap: 8px; /* Reduced from 12px */
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.stat-card:hover[b-xwmlquv5j7] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.stat-row[b-xwmlquv5j7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
}

.stat-label[b-xwmlquv5j7] {
    font-size: 0.8125rem; /* Slightly larger but very light */
    font-weight: var(--font-regular);
    color: #8c90a7;
    letter-spacing: 0.01em;
}

.stat-icon[b-xwmlquv5j7] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--border-radius-md);
    flex-shrink: 0;
}

.stat-icon i[b-xwmlquv5j7] {
    font-size: 1.25rem;
}

.stat-icon-primary[b-xwmlquv5j7]  { background: var(--color-primary-subtle);   color: var(--color-primary); }
.stat-icon-secondary[b-xwmlquv5j7]{ background: var(--color-secondary-subtle); color: var(--color-secondary); }
.stat-icon-success[b-xwmlquv5j7]  { background: var(--color-success-subtle);   color: var(--color-success); }
.stat-icon-warning[b-xwmlquv5j7]  { background: var(--color-warning-subtle);   color: var(--color-warning); }
.stat-icon-danger[b-xwmlquv5j7]   { background: var(--color-danger-subtle);    color: var(--color-danger); }
.stat-icon-info[b-xwmlquv5j7]     { background: var(--color-info-subtle);      color: var(--color-info); }
.stat-icon-pink[b-xwmlquv5j7]     { background: var(--color-pink-subtle);      color: var(--color-pink); }
.stat-icon-orange[b-xwmlquv5j7]   { background: var(--color-orange-subtle);    color: var(--color-orange); }

.stat-value[b-xwmlquv5j7] {
    font-size: 1.625rem;
    font-weight: var(--font-bold);
    color: var(--text-primary);
    letter-spacing: -0.01em;
    line-height: 1.2;
    margin-top: 4px;
    font-variant-numeric: tabular-nums;
}

.stat-footer[b-xwmlquv5j7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    margin-top: auto;
}

.stat-link[b-xwmlquv5j7] {
    font-size: var(--font-size-xs);
    font-weight: var(--font-medium);
    color: var(--text-secondary);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--transition-fast);
}

.stat-link:hover[b-xwmlquv5j7] {
    color: var(--color-primary);
}

.stat-delta[b-xwmlquv5j7] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-semibold);
    cursor: default;
    outline: none;
    white-space: nowrap;
}

.stat-delta-tooltip[b-xwmlquv5j7] {
    position: absolute;
    bottom: calc(100% + 10px);
    right: -8px;
    min-width: 200px;
    max-width: 260px;
    padding: 10px 12px;
    background: #1F2937;
    color: #F9FAFB;
    font-size: var(--font-size-xs);
    font-weight: var(--font-medium);
    text-transform: none;
    letter-spacing: normal;
    line-height: 1.45;
    border-radius: var(--border-radius-md);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
    letter-spacing: 0;
    text-align: left;
    white-space: normal;
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity 150ms ease, transform 150ms ease, visibility 0s 150ms;
    z-index: 50;
    pointer-events: none;
}

.stat-delta-tooltip[b-xwmlquv5j7]::after {
    content: '';
    position: absolute;
    top: 100%;
    right: 16px;
    border: 6px solid transparent;
    border-top-color: #1F2937;
}

.stat-delta:hover .stat-delta-tooltip[b-xwmlquv5j7],
.stat-delta:focus-visible .stat-delta-tooltip[b-xwmlquv5j7] {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 0s;
}

.stat-delta i[b-xwmlquv5j7] {
    font-size: 0.875rem;
}

.stat-delta.up[b-xwmlquv5j7]      { color: var(--color-success); }
.stat-delta.down[b-xwmlquv5j7]    { color: var(--color-danger); }
.stat-delta.neutral[b-xwmlquv5j7] {
    color: #475569;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    padding: 2px 8px;
    border-radius: var(--border-radius-full);
    font-size: 0.6875rem;
    letter-spacing: 0.02em;
    text-transform: none;
    font-weight: var(--font-semibold);
}
/* /Components/Shared/UserAvatar.razor.rz.scp.css */
.user-avatar-wrap[b-s8i04rlv2h] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--border-radius-full);
    overflow: hidden;
    flex-shrink: 0;
    font-weight: var(--font-bold);
    letter-spacing: 0.02em;
}

.user-avatar-img[b-s8i04rlv2h] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.user-avatar-initials[b-s8i04rlv2h] {
    width: 100%;
    height: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tint-primary[b-s8i04rlv2h] { background: var(--color-primary-subtle); color: var(--color-primary); }
.tint-success[b-s8i04rlv2h] { background: var(--color-success-subtle); color: var(--color-success); }
.tint-pink[b-s8i04rlv2h]    { background: var(--color-pink-subtle);    color: var(--color-pink); }
.tint-info[b-s8i04rlv2h]    { background: var(--color-info-subtle);    color: var(--color-info); }
.tint-warning[b-s8i04rlv2h] { background: var(--color-warning-subtle); color: var(--color-warning); }
.tint-danger[b-s8i04rlv2h]  { background: var(--color-danger-subtle);  color: var(--color-danger); }
/* /Components/Shared/UserMenu.razor.rz.scp.css */
.user-menu[b-puhff4m8vm] {
    position: relative;
}

/* Trigger */
.user-menu-trigger[b-puhff4m8vm] {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: 0.25rem var(--spacing-sm) 0.25rem 0.25rem;
    background: transparent;
    border: none;
    border-radius: var(--border-radius-full);
    cursor: pointer;
    transition: all var(--transition-fast);
    font-family: var(--font-family);
}

.user-menu-trigger:hover[b-puhff4m8vm] {
    background: var(--color-primary-subtle);
}

.user-avatar[b-puhff4m8vm] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    border-radius: var(--border-radius-full);
    flex-shrink: 0;
}

.user-avatar i[b-puhff4m8vm] {
    font-size: var(--font-size-base);
}

.user-info[b-puhff4m8vm] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
}

.user-name[b-puhff4m8vm] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    white-space: nowrap;
    line-height: 1;
}

.user-role[b-puhff4m8vm] {
    font-size: var(--font-size-2xs);
    font-weight: var(--font-medium);
    color: var(--text-tertiary);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1;
    margin-top: 2px;
}

.user-caret[b-puhff4m8vm] {
    font-size: var(--font-size-sm);
    color: var(--text-tertiary);
    transition: transform var(--transition-fast);
}

.user-caret.rotate[b-puhff4m8vm] {
    transform: rotate(180deg);
}

/* Dropdown backdrop (closes on click) */
.user-menu-backdrop[b-puhff4m8vm] {
    position: fixed;
    inset: 0;
    z-index: 100;
}

/* Dropdown panel */
.user-menu-dropdown[b-puhff4m8vm] {
    position: absolute;
    top: calc(100% + var(--spacing-xs));
    right: 0;
    min-width: 200px;
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-lg);
    z-index: 200;
    overflow: hidden;
    animation: menu-slide-b-puhff4m8vm var(--transition-fast);
}

@keyframes menu-slide-b-puhff4m8vm {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Dropdown header */
.user-menu-header[b-puhff4m8vm] {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-md) var(--spacing-lg);
}

.user-menu-avatar[b-puhff4m8vm] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--color-primary-subtle);
    color: var(--color-primary);
    border-radius: var(--border-radius-full);
    flex-shrink: 0;
}

.user-menu-avatar i[b-puhff4m8vm] {
    font-size: var(--font-size-lg);
}

.user-menu-details[b-puhff4m8vm] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.user-menu-name[b-puhff4m8vm] {
    font-size: var(--font-size-sm);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-menu-email[b-puhff4m8vm] {
    font-size: var(--font-size-xs);
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-menu-divider[b-puhff4m8vm] {
    height: 1px;
    background: var(--border-color);
    margin: 0;
}

/* Items */
.user-menu-item[b-puhff4m8vm] {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-lg);
    background: transparent;
    border: none;
    font-family: var(--font-family);
    font-size: var(--font-size-sm);
    font-weight: var(--font-medium);
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.user-menu-item:hover[b-puhff4m8vm] {
    background: var(--bg-body);
}

.user-menu-item i[b-puhff4m8vm] {
    font-size: var(--font-size-base);
    color: var(--text-secondary);
    flex-shrink: 0;
}

.user-menu-item:hover i[b-puhff4m8vm] {
    color: var(--color-primary);
}

.user-menu-item-danger[b-puhff4m8vm] {
    color: var(--color-danger);
}

.user-menu-item-danger i[b-puhff4m8vm] {
    color: var(--color-danger);
}

.user-menu-item-danger:hover[b-puhff4m8vm] {
    background: var(--color-danger-subtle);
}

.user-menu-item-danger:hover i[b-puhff4m8vm] {
    color: var(--color-danger);
}

/* Responsive: hide name+role text on small */
@media (max-width: 640px) {
    .user-info[b-puhff4m8vm] {
        display: none;
    }

    .user-caret[b-puhff4m8vm] {
        display: none;
    }
}
