/* _content/ACDrainWiz.Client.Web/Components/Account/Pages/ConfirmEmailChange.razor.rz.scp.css */
/* Center the confirmation message on all breakpoints (AccountLayout renders @Body bare). */
.confirm-status[b-stcr7xgwvh] {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    box-sizing: border-box;
    text-align: center;
}

.confirm-status-card[b-stcr7xgwvh] {
    width: 100%;
    max-width: 440px;
}

.confirm-status-card h1[b-stcr7xgwvh] {
    margin: 0 0 1rem;
    font-size: 1.5rem;
}
/* _content/ACDrainWiz.Client.Web/Components/Account/Pages/ForgotPassword.razor.rz.scp.css */
.login-hero-sub[b-dxrkmroqf8] {
    margin: 0 0 1.5rem;
    text-align: center;
}
.login-form-title[b-dxrkmroqf8] {
    font-size: 2rem;
    margin-bottom: .5rem;
}

.h1[b-dxrkmroqf8] {
    text-align: center;
}

/* ── Submit → success cross-fade ──
   Both faces share one grid cell so the container keeps a stable height while the
   form fades out and the success message fades in (no layout jump, any breakpoint). */
.fp-flip[b-dxrkmroqf8] {
    display: grid;
}

.fp-face[b-dxrkmroqf8] {
    grid-area: 1 / 1;
    transition: opacity .4s ease, transform .4s ease, visibility .4s;
}

.fp-face--success[b-dxrkmroqf8] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    pointer-events: none;
}

.fp-flip.is-sent .fp-face--form[b-dxrkmroqf8] {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    pointer-events: none;
}

.fp-flip.is-sent .fp-face--success[b-dxrkmroqf8] {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.fp-success-icon[b-dxrkmroqf8] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    margin-bottom: 1.25rem;
    border-radius: 50%;
    color: var(--success);
    background: var(--success-bg);
}

.fp-success-icon svg[b-dxrkmroqf8] {
    width: 32px;
    height: 32px;
}

.fp-success-title[b-dxrkmroqf8] {
    margin-bottom: .75rem;
}

.fp-success-msg[b-dxrkmroqf8] {
    margin: 0 0 1.75rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* "Return to Sign In" reuses the orange .login-submit button styling as an anchor */
.fp-success-back[b-dxrkmroqf8] {
    display: block;
    width: 100%;
    text-align: center;
    text-decoration: none;
    margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
    .fp-face[b-dxrkmroqf8] {
        transition: none;
        transform: none;
    }

    .fp-flip.is-sent .fp-face--form[b-dxrkmroqf8],
    .fp-face--success[b-dxrkmroqf8] {
        transform: none;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Account/Pages/Login.razor.rz.scp.css */
/* _content/ACDrainWiz.Client.Web/Components/Account/Pages/Register.razor.rz.scp.css */
/* 2-column fields on tablet/desktop; stacks to 1 column on mobile (<768px). */
@media (min-width: 768px) {
    .login-register .login-form-wrap[b-70lci1uf3x] {
        max-width: 560px;
    }

    .register-fields[b-70lci1uf3x] {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1.1rem 1.25rem;
        margin-bottom: 1.1rem;
    }

    .register-field--full[b-70lci1uf3x] {
        grid-column: 1 / -1;
    }

    /* grid gap owns spacing — drop the stacked-field margins */
    .register-fields .form-group--lg[b-70lci1uf3x] {
        margin-bottom: 0;
    }

    .register-fields .form-group + .form-group[b-70lci1uf3x] {
        margin-top: 0;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Account/Pages/RegisterConfirmation.razor.rz.scp.css */
.register-confirm-msg[b-62hdotk1rs] {
    text-align: center;
}

.confirm-error[b-62hdotk1rs] {
    text-align: center;
    font-size: 0.85rem;
    color: var(--text-error);
    margin: 0.5rem 0 0;
}

/* "Resend confirmation" is a button styled as the inline link; greys when disabled */
.resend-link[b-62hdotk1rs] {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    color: var(--text-link);
    font-weight: 600;
    cursor: pointer;
}

.resend-link:hover:not(:disabled)[b-62hdotk1rs] {
    text-decoration: underline;
}

.resend-link:disabled[b-62hdotk1rs] {
    color: var(--text-muted);
    cursor: default;
}

.resend-timer[b-62hdotk1rs] {
    text-align: center;
    font-size: 0.85rem;
    color: var(--text-muted);
    margin: 0.5rem 0 0;
}

/* clear separation from the resend link above */
.register-confirm-backlink[b-62hdotk1rs] {
    margin-top: 2rem;
}
/* _content/ACDrainWiz.Client.Web/Components/Account/Pages/ResetPassword.razor.rz.scp.css */
.main-text[b-1vyf8nii8o] {
   font-size: 2rem !important;
}
/* _content/ACDrainWiz.Client.Web/Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-om65wr7pw9] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-om65wr7pw9] {
    flex: 1;
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

article[b-om65wr7pw9] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: auto;
    padding-top: 10px;
    padding-bottom: var(--space-5);
    /* No stacking context here: page content (sticky headers ≤701, dialog overlays ≥1000)
       must stack at the root so dialogs paint above the sidebar collapse toggle (z 900). */
    position: relative;
}

/* <900px the layout stacks column: a rigid 100vh <main> sitting under the logo header pushes content off-screen on short iOS viewports (100vh = the large viewport) — flow and scroll the page naturally instead. */
@media (max-width: 899.98px) {
    main[b-om65wr7pw9] {
        height: auto;
        min-height: 100dvh;
        overflow: visible;
    }

    article[b-om65wr7pw9] {
        overflow: visible;
    }
}

.sidebar[b-om65wr7pw9] {
    position: relative;
    background: var(--sidebar-bg);
    background-attachment: fixed;
}

.top-row[b-om65wr7pw9] {
    background-color: var(--bg-surface);
    border-bottom: 1px solid rgba(255,255,255,0.15);
    justify-content: flex-start;
    height: 3.5rem;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding-right: var(--container-pad);
}

    .top-row[b-om65wr7pw9]  .btn-critical {
        padding-top: 0.3rem;
        padding-bottom: 0.3rem;
        line-height: 1.2;
    }

    .top-row[b-om65wr7pw9]  a, .top-row[b-om65wr7pw9]  .btn-link {
        white-space: nowrap;
        margin-left: var(--space-5);
        text-decoration: none;
    }

    .top-row[b-om65wr7pw9]  a:hover, .top-row[b-om65wr7pw9]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-om65wr7pw9]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

/* Mobile (<650): top-row links collapse */
@media (max-width: 649.98px) {
    .top-row[b-om65wr7pw9] {
        justify-content: space-between;
    }

    .top-row[b-om65wr7pw9]  a, .top-row[b-om65wr7pw9]  .btn-link {
        margin-left: 0;
    }

    /* Critical button sits top-right on mobile; the impersonate link (if any) stays left. */
    .top-row[b-om65wr7pw9]  .btn-critical {
        margin-left: auto;
    }
}

/* <900 the layout stacks under the logo header: collapse this row to nothing when empty so it isn't a blank surface bar, but let it grow for the critical/impersonate buttons when present */
@media (max-width: 899.98px) {
    .top-row[b-om65wr7pw9] {
        height: auto;
        min-height: 0;
        background-color: transparent;
        border-bottom: none;
        /* Indent the button to where page content begins (≈ Dashboard's Quick Look title); applies site-wide via the layout. */
        padding-left: 2.5rem;
    }

    .top-row[b-om65wr7pw9]  .btn-critical,
    .top-row[b-om65wr7pw9]  .btn-stop-impersonate {
        margin-top: 0.25rem;
        margin-bottom: 0.25rem;
    }
}

/* Desktop (≥900): persistent side-by-side sidebar */
@media (min-width: 900px) {
    .page[b-om65wr7pw9] {
        flex-direction: row;
    }

    .sidebar[b-om65wr7pw9] {
        width: var(--sidebar-w);
        height: 100vh;
        overflow: hidden;
        transition: width 0.3s ease;
    }

    /* Collapsed icon-rail: narrows the sidebar so main swipes left to fill the space.
       Toggled by the `sidebar-collapsed` class on <html> (see helpers.js / NavMenu). */
    html.sidebar-collapsed .sidebar[b-om65wr7pw9] {
        width: 50px;
    }

    .top-row.auth[b-om65wr7pw9]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-om65wr7pw9], article[b-om65wr7pw9] {
        padding-left: var(--container-pad) !important;
        padding-right: var(--container-pad) !important;
    }

    article[b-om65wr7pw9] {
        position: relative;
    }
}

#blazor-error-ui[b-om65wr7pw9] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-om65wr7pw9] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

@media (prefers-reduced-motion: reduce) {
    .sidebar[b-om65wr7pw9] {
        transition: none;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-lzybjy9pxz] {
    appearance: none;
    cursor: pointer;
    width: 30px;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: calc(50% - 2px);
    right: 1rem;
    transform: translateY(-50%);
    border: none;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 18'%3e%3cpath stroke='white' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M1 2h28M1 9h28M1 16h28'/%3e%3c/svg%3e") no-repeat center/30px transparent;
}

.top-row[b-lzybjy9pxz] {
    height: 3.5rem;
    background: transparent;
    display: flex;
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

.navbar-brand[b-lzybjy9pxz] {
    font-size: 1.1rem;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.bi[b-lzybjy9pxz] {
    display: inline-block;
    position: relative;
    width: calc(1em + 2px);
    height: calc(1em + 2px);
    flex-shrink: 0;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.bi-calendar-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4z'/%3E%3C/svg%3E");
}

.bi-collection-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM2 3.5a1.5 1.5 0 1 1 3 0c0 .67-.405 1.388-.84 1.966a11 11 0 0 1-.855.966l-.03.03-.008.007-.003.003a.3.3 0 0 1-.428 0l-.003-.003-.008-.007-.03-.03a11 11 0 0 1-.855-.966C2.405 4.888 2 4.17 2 3.5zM10.5 7a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3zM9 8.5a1.5 1.5 0 1 1 3 0c0 .67-.405 1.388-.84 1.966a11 11 0 0 1-.855.966l-.03.03-.008.007-.003.003a.3.3 0 0 1-.428 0l-.003-.003-.008-.007-.03-.03a11 11 0 0 1-.855-.966C9.405 9.888 9 9.17 9 8.5zM3.5 3a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1zm7 5a.5.5 0 1 0 0 1 .5.5 0 0 0 0-1zM1 14s-1 0-1-1 1-4 6.5-4c.5 0 .976.026 1.43.074-.293.456-.53.941-.53 1.426 0 .74.408 1.39.84 1.909.171.207.35.4.52.57C8.558 13.96 8.07 14 7.5 14H1zm12 0h-1.5l.03-.012c.2-.063.4-.148.594-.255.543-.3.876-.73.876-1.233C13 11.672 11.933 11 10.5 11c-.667 0-1.248.187-1.64.437A7.4 7.4 0 0 0 8 10.074C8.696 10.026 9.343 10 10.5 10c5.5 0 6.5 3 6.5 4s-1 1-1 1h-3z'/%3E%3C/svg%3E");
}

.bi-id-card-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M5 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4m4-2.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5M9 8a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 0 1h-4A.5.5 0 0 1 9 8m1 2.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5'/%3E%3Cpath d='M2 2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zm0 1h12a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1'/%3E%3Cpath d='M7 9.5C7 10.328 6.104 11 5 11s-2-.672-2-1.5S3.896 8 5 8s2 .672 2 1.5'/%3E%3C/svg%3E");
}

.bi-eye-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8M1.173 8a13 13 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5s3.879 1.168 5.168 2.457A13 13 0 0 1 14.828 8q-.086.13-.195.288c-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5s-3.879-1.168-5.168-2.457A13 13 0 0 1 1.172 8z'/%3E%3Cpath d='M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0'/%3E%3C/svg%3E");
}

.bi-clipboard-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M5.5 0a.5.5 0 0 1 .5.5V2h4V.5a.5.5 0 0 1 1 0V2h1a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5M4 3a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1z'/%3E%3Cpath d='M4 6.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 0 1h-7a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5'/%3E%3C/svg%3E");
}

.bi-building-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4 2.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM4 5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zM7.5 5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm2.5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zM4.5 8a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm2.5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z'/%3E%3Cpath d='M2 1a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v14h.5a.5.5 0 0 1 0 1H.5a.5.5 0 0 1 0-1H1zm1 14h4v-3a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v3h4V1H3z'/%3E%3C/svg%3E");
}

.bi-lock-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2zM5 8h6a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
}

.bi-person-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person' viewBox='0 0 16 16'%3E%3Cpath d='M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z'/%3E%3C/svg%3E");
}

.bi-person-badge-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person-badge' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 2a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0z'/%3E%3Cpath d='M4.5 0A2.5 2.5 0 0 0 2 2.5V14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2.5A2.5 2.5 0 0 0 11.5 0h-7zM3 2.5A1.5 1.5 0 0 1 4.5 1h7A1.5 1.5 0 0 1 13 2.5v10.795a4.2 4.2 0 0 0-.776-.492C11.392 12.387 10.063 12 8 12s-3.392.387-4.224.803a4.2 4.2 0 0 0-.776.492V2.5z'/%3E%3C/svg%3E");
}

.bi-person-fill-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person-fill' viewBox='0 0 16 16'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E");
}

.bi-arrow-bar-left-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-arrow-bar-left' viewBox='0 0 16 16'%3E%3Cpath d='M12.5 15a.5.5 0 0 1-.5-.5v-13a.5.5 0 0 1 1 0v13a.5.5 0 0 1-.5.5ZM10 8a.5.5 0 0 1-.5.5H3.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L3.707 7.5H9.5a.5.5 0 0 1 .5.5Z'/%3E%3C/svg%3E");
}

.bi-gear-fill-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.464 1.464 0 0 1-2.105.872l-.31-.17c-1.283-.698-2.686.705-1.987 1.987l.169.311c.446.82.023 1.841-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.464 1.464 0 0 1 .872 2.105l-.17.31c-.698 1.283.705 2.686 1.987 1.987l.311-.169a1.464 1.464 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.464 1.464 0 0 1 2.105-.872l.31.17c1.283.698 2.686-.705 1.987-1.987l-.169-.311a1.464 1.464 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.464 1.464 0 0 1-.872-2.105l.17-.31c.698-1.283-.705-2.686-1.987-1.987l-.311.169a1.464 1.464 0 0 1-2.105-.872l-.1-.34zM8 10.93a2.929 2.929 0 1 1 0-5.86 2.929 2.929 0 0 1 0 5.858z'/%3E%3C/svg%3E");
}

.bi-question-nav-menu[b-lzybjy9pxz] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M5.255 5.786a.237.237 0 0 0 .241.247h.825c.138 0 .248-.113.266-.25.09-.656.54-1.134 1.342-1.134.686 0 1.314.343 1.314 1.168 0 .635-.374.927-.965 1.371-.673.489-1.206 1.06-1.168 1.987l.003.217a.25.25 0 0 0 .25.246h.811a.25.25 0 0 0 .25-.25v-.105c0-.718.273-.927 1.01-1.486.609-.463 1.244-.977 1.244-2.056 0-1.511-1.276-2.241-2.673-2.241-1.267 0-2.655.59-2.75 2.286zm1.557 5.763c0 .533.425.927 1.01.927.609 0 1.028-.394 1.028-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94z'/%3E%3Cpath d='M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1M2 8a6 6 0 1 1 12 0A6 6 0 0 1 2 8'/%3E%3C/svg%3E");
}

/* Utility row: desktop — single icon-only row */
.nav-utility-row[b-lzybjy9pxz] {
    display: flex;
    flex-direction: row;
    margin-top: auto;
    border-top: 1px solid rgba(255,255,255,0.12);
    padding: 4px 0;
}

.nav-utility-item[b-lzybjy9pxz] {
    flex: 1;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.nav-utility-item[b-lzybjy9pxz]  .nav-link,
.nav-utility-item[b-lzybjy9pxz]  .nav-utility-btn {
    justify-content: center;
    padding: 0;
    height: 2.75rem;
    width: 100%;
}

.nav-utility-item .utility-text[b-lzybjy9pxz] {
    display: none;
}

.nav-utility-item[b-lzybjy9pxz]  .bi,
.nav-utility-item[b-lzybjy9pxz]  .nav-utility-icon {
    margin-right: 0;
}

.nav-utility-item[b-lzybjy9pxz]  .btn-text {
    display: none;
}

/* <900px: hide the desktop icon strip; its items now live in .nav-secondary-mobile below.
   The .nav-utility-item rules still style the What's New / Submit Feedback buttons in the Help dropdown. */
@media (max-width: 899.98px) {
    .nav-utility-row[b-lzybjy9pxz] {
        display: none;
    }

    .nav-utility-item[b-lzybjy9pxz] {
        padding-bottom: 0.25rem !important;
    }

    .nav-utility-item:first-of-type[b-lzybjy9pxz] {
        padding-top: 0 !important;
    }

    .nav-utility-item[b-lzybjy9pxz]  .nav-link,
    .nav-utility-item[b-lzybjy9pxz]  .nav-utility-btn {
        justify-content: flex-start;
        padding: 0 20px;
        height: 3rem;
    }

    .nav-utility-item .utility-text[b-lzybjy9pxz] {
        display: inline;
    }

    .nav-utility-item[b-lzybjy9pxz]  .bi,
    .nav-utility-item[b-lzybjy9pxz]  .nav-utility-icon {
        margin-right: 0.75rem;
    }

    .nav-utility-item[b-lzybjy9pxz]  .btn-text {
        display: inline;
    }
}

/* Secondary section — mobile/tablet (<900px) only. Hidden on desktop, where .nav-utility-row is used instead. */
.nav-secondary-mobile[b-lzybjy9pxz] {
    display: none;
}

/* Hidden checkbox driving the Help dropdown (CSS-only, like .navbar-toggler). The label toggles it. */
.nav-help-cb[b-lzybjy9pxz] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
    margin: 0;
}

@media (max-width: 899.98px) {
    .nav-secondary-mobile[b-lzybjy9pxz] {
        display: flex;
        flex-direction: column;
    }

    /* Request 1: divider between the main nav items and the secondary group */
    .nav-divider[b-lzybjy9pxz] {
        height: 1px;
        background: rgba(255, 255, 255, 0.12);
        margin: 0.5rem 20px;
    }

    .nav-help-toggle[b-lzybjy9pxz] {
        cursor: pointer;
        user-select: none;
    }

    .nav-help-chevron[b-lzybjy9pxz] {
        display: inline-block;
        width: 12px;
        height: 12px;
        flex-shrink: 0;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E") no-repeat center / contain;
        transition: transform 0.2s ease;
    }

    .nav-help-cb:checked ~ .nav-help-item .nav-help-chevron[b-lzybjy9pxz] {
        transform: rotate(90deg);
    }

    /* Collapsed by default; expands when the Help checkbox is checked */
    .nav-help-submenu[b-lzybjy9pxz] {
        overflow: hidden;
        max-height: 0;
        transition: max-height 0.25s ease;
    }

    .nav-help-cb:checked ~ .nav-help-submenu[b-lzybjy9pxz] {
        max-height: 200px;
    }

    /* Indent the collapsed items so they read as children of Help */
    .nav-help-submenu .nav-utility-item[b-lzybjy9pxz]  .nav-utility-btn,
    .nav-help-submenu .nav-utility-item[b-lzybjy9pxz]  .nav-link {
        padding-left: 44px;
    }
}

@media (max-width: 899.98px) and (prefers-reduced-motion: reduce) {
    .nav-help-chevron[b-lzybjy9pxz],
    .nav-help-submenu[b-lzybjy9pxz] {
        transition: none;
    }
}

.navbar-brand img[b-lzybjy9pxz] {
    height: 2rem;
    object-fit: contain;
}

/* Mobile/tablet: 150px-wide logo, ratio-correct height (389×90 native), 15px top/bottom padding in its container */
@media (max-width: 899.98px) {
    .top-row[b-lzybjy9pxz] {
        height: auto;
    }

    .navbar-brand[b-lzybjy9pxz] {
        padding: 15px 0;
    }

    .navbar-brand img[b-lzybjy9pxz] {
        width: 150px;
        height: 34.7px;
    }
}

.contractor-name[b-lzybjy9pxz] {
    color: rgba(255,255,255,0.92);
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.04rem;
    user-select: none;
    padding: 0 20px 20px;
    border-bottom: 1px solid rgba(255,255,255,0.15);
    text-align: center;
}

.impersonating-banner[b-lzybjy9pxz] {
    margin: 0 12px;
    padding: 8px 12px;
    background-color: #fef3c7;
    border: 1px solid #d97706;
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.impersonating-label[b-lzybjy9pxz] {
    font-size: 0.7rem;
    font-weight: 600;
    color: #92400e;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.impersonating-name[b-lzybjy9pxz] {
    font-size: 0.85rem;
    font-weight: 700;
    color: #78350f;
}

nav[b-lzybjy9pxz] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.nav-item[b-lzybjy9pxz] {
    font-size: min(1rem, 17px);
    padding-bottom: 0.25rem;
}

    .nav-item:first-of-type[b-lzybjy9pxz] {
        padding: 1rem .5rem;
    }

    .nav-item:last-of-type[b-lzybjy9pxz] {
        padding-bottom: 1rem;
    }

    .nav-item[b-lzybjy9pxz]  .nav-link {
        color: var(--sidebar-text);
        font-family: 'Saira', 'Helvetica Neue', Helvetica, Arial, sans-serif;
        font-size: inherit;
        font-weight: 500;
        background: none;
        border: none;
        border-radius: 6px;
        height: 3rem;
        display: flex;
        align-items: center;
        gap: 0.75rem;
        line-height: 3rem;
        width: 100%;
        padding: 0 20px 0 15px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        text-decoration: none;
        transition: background-color 0.15s, color 0.15s;
    }

.nav-item[b-lzybjy9pxz]  a.active {
    background-color: rgba(255,255,255,0.14);
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
    box-shadow: inset 3px 0 0 #FF4E00;
    border-radius: 0 6px 6px 0;
}

.nav-item[b-lzybjy9pxz]  .nav-link:hover {
    background-color: rgba(255,255,255,0.12);
    color: white;
}

.nav-scrollable[b-lzybjy9pxz] {
    display: none;
    overflow-x: hidden;
}

.navbar-toggler:checked ~ .nav-scrollable[b-lzybjy9pxz] {
    display: block;
}

/* Desktop (≥900px) — sidebar is persistent, no hamburger */
@media (min-width: 900px) {
    .navbar-toggler[b-lzybjy9pxz] {
        display: none;
    }

    .nav-scrollable[b-lzybjy9pxz] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
        overflow-x: hidden;
    }
}

/* ── Mobile / tablet (<900px): slide-in drawer ──────────────────────────────
   Replaces the old expand-from-top menu. .nav-scrollable is a full-screen fading
   backdrop; the inner <nav> panel slides in from the left. Driven entirely by the
   .navbar-toggler checkbox (no JS). Tapping the backdrop or any link closes it via
   the existing onclick on .nav-scrollable. */
@media (max-width: 899.98px) {
    .nav-scrollable[b-lzybjy9pxz] {
        display: flex;             /* always rendered so it can animate; hidden via opacity */
        justify-content: flex-end; /* anchor the panel to the right edge (mobile drawer) */
        position: fixed;
        inset: 0;
        z-index: 1100;             /* above page content; below modals (≥1000 overlays cover the hamburger) */
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.45);
        opacity: 0;
        visibility: hidden;
        overflow: hidden;          /* the panel handles its own scrolling */
        transition: opacity 0.3s ease, visibility 0s linear 0.3s;
    }

    .navbar-toggler:checked ~ .nav-scrollable[b-lzybjy9pxz] {
        display: flex;             /* stay flex when open so the panel keeps its right anchor
                                      (overrides the base `:checked ~ .nav-scrollable { display: block }`) */
        justify-content: flex-end;
        opacity: 1;
        visibility: visible;
        transition: opacity 0.3s ease;
    }

    .nav-scrollable nav[b-lzybjy9pxz] {
        width: min(82vw, 300px);
        height: 100%;
        background: var(--sidebar-bg);
        background-attachment: fixed;
        overflow-x: hidden;
        overflow-y: auto;
        transform: translateX(100%);
        transition: transform 0.3s ease;
        box-shadow: -2px 0 16px rgba(0, 0, 0, 0.25);
    }

    .navbar-toggler:checked ~ .nav-scrollable nav[b-lzybjy9pxz] {
        transform: translateX(0);
    }

    /* Hamburger keeps its default z-index (below the overlay's 1100) so it's hidden while the drawer is open; close via backdrop/link tap */
}

@media (max-width: 899.98px) and (prefers-reduced-motion: reduce) {
    .nav-scrollable[b-lzybjy9pxz],
    .nav-scrollable nav[b-lzybjy9pxz] {
        transition: none;
    }
}

/* ── Collapsible icon-rail ────────────────────────────────────────────────────
   A pull-tab fixed to the sidebar's right edge toggles the rail. The collapsed
   state is a `sidebar-collapsed` class on <html> (set from localStorage in
   helpers.js) so it survives enhanced navigations. The width change itself lives
   in MainLayout.razor.css since .sidebar is owned there. Desktop-only. */

/* Positioning context for the expanded (in-header) toggle. overflow:hidden clips
   that absolute strip to the company-name box so its hover fill can't spill onto
   the row below; the collapsed tab is position:fixed, so it escapes the clip. */
.nav-header[b-lzybjy9pxz] {
    position: relative;
    overflow: hidden;
}

.nav-collapse-tab[b-lzybjy9pxz] {
    z-index: 850;                 /* above page content (sticky headers ≤701), below dialog backdrops (≥9999) */
    display: none;                /* shown only on the persistent desktop sidebar */
    align-items: center;
    justify-content: center;
    width: 24px;
    padding: 0;
    appearance: none;
    cursor: pointer;
    color: #fff;
    background: var(--sidebar-bg);
    background-attachment: fixed;  /* anchor the gradient to the viewport so it continues the sidebar */
    border: none;
    transition: background-color 0.15s, filter 0.15s;
}

.nav-collapse-tab:hover[b-lzybjy9pxz] {
    filter: brightness(1.25);
}

/* Dark mode: the sidebar gradient is near-black, so use a lighter blue so the
   tab stays visible against both the rail and the page background. */
[data-theme="dark"] .nav-collapse-tab[b-lzybjy9pxz] {
    background: linear-gradient(180deg, #14497a 0%, #0e3a63 100%);
}

/* ── Nav utility tooltip: appear to the right so they don't clip off the left edge ── */
/* Positioning override is in app.css (.nav-utility-row [data-tooltip]) since
   pseudo-elements on child component elements can't be overridden from scoped CSS. */

.nav-collapse-chevron[b-lzybjy9pxz] {
    display: inline-block;
    width: 14px;
    height: 14px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'/%3E%3C/svg%3E") no-repeat center / contain;
    transition: transform 0.3s ease;
}

/* Desktop only: show the tab, and wire up the collapsed icon-rail */
@media (min-width: 900px) {
    .nav-collapse-tab[b-lzybjy9pxz] {
        display: inline-flex;
    }

    /* Expanded: the toggle sits inside the company-name header, flush to its
       right edge and spanning the full container height. A slightly lighter
       shade of the sidebar's dark blue so it reads; only the inner (left)
       corners are rounded. */
    html:not(.sidebar-collapsed) .nav-collapse-tab[b-lzybjy9pxz] {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        background: rgba(33, 95, 160, 0.40);
        border-radius: 8px 0 0 8px;
    }

    html:not(.sidebar-collapsed) .nav-collapse-tab:hover[b-lzybjy9pxz] {
        background: rgba(33, 95, 160, 0.60);
        filter: none;
    }

    /* Keep the centered company name clear of the toggle strip. */
    html:not(.sidebar-collapsed) .contractor-name[b-lzybjy9pxz] {
        padding-left: 28px;
        padding-right: 28px;
    }

    /* Collapsed: unchanged — a rounded pull-tab fixed to the rail's right edge. */
    html.sidebar-collapsed .nav-collapse-tab[b-lzybjy9pxz] {
        position: fixed;
        top: 3.5rem;              /* top edge of the contractor-name container, below the logo row */
        left: 50px;               /* follows the collapsed sidebar's right edge */
        right: auto;
        bottom: auto;
        height: 24px;
        border-left: none;
        border-radius: 0 8px 8px 0;    /* flat left edge, rounded right — reads as part of the nav */
        box-shadow: 2px 0 5px rgba(0, 0, 0, 0.18);
        transition: left 0.3s ease, filter 0.15s;
    }

    html.sidebar-collapsed .nav-collapse-chevron[b-lzybjy9pxz] {
        transform: rotate(180deg);
    }

    html.sidebar-collapsed .contractor-name[b-lzybjy9pxz],
    html.sidebar-collapsed .impersonating-banner[b-lzybjy9pxz] {
        display: none;
    }

    html.sidebar-collapsed .nav-text[b-lzybjy9pxz] {
        display: none;
    }

    html.sidebar-collapsed .navbar-brand img[b-lzybjy9pxz] {
        max-width: 34px;
    }

    html.sidebar-collapsed .nav-item[b-lzybjy9pxz]  .nav-link {
        justify-content: center;
        gap: 0;
        padding: 0;
    }

    /* Utility icons stack vertically so each fits the 50px rail */
    html.sidebar-collapsed .nav-utility-row[b-lzybjy9pxz] {
        flex-direction: column;
        border-top: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nav-collapse-tab[b-lzybjy9pxz],
    .nav-collapse-chevron[b-lzybjy9pxz] {
        transition: none;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Addresses/Addresses.razor.rz.scp.css */
.addr-no-sensors-icon[b-tvcw1yulhn] {
    width: 14px;
    height: 14px;
    color: #ef4444;
    flex-shrink: 0;
    stroke-linecap: round;
}

/* Header structure comes from the shared .detail-header (app.css); only the
   Addresses-specific content tweaks live here. */
.detail-header-heading .info-strip[b-tvcw1yulhn] {
    padding: 0;
    margin: 0;
}

/* Search box wrapper — sits below the header. */
.addresses-search-wrap[b-tvcw1yulhn] {
    display: flex;
    justify-content: flex-end;
    margin: 1rem 0;
}

/* Desktop default: only the possessive title and short "Alerted" text show. */
.addr-title-mobile[b-tvcw1yulhn],
.alerted-text-mobile[b-tvcw1yulhn] {
    display: none;
}

/* ── Tablet (650–899px): title stays on one line; the action buttons stack
   (Contact History on top) and bottom-align with the email/phone strip. */
@media (min-width: 650px) and (max-width: 899.98px) {
    .detail-header > .detail-header-heading[b-tvcw1yulhn] {
        padding-left: 0;
    }

    .detail-header-heading h2[b-tvcw1yulhn] {
        white-space: nowrap;
    }

    .detail-header > .detail-header-actions[b-tvcw1yulhn] {
        flex-direction: column-reverse;
        align-items: stretch;
        align-self: end;
        gap: var(--space-2);
    }
}

/* ── Mobile (<650px) */
@media (max-width: 649.98px) {
    .detail-header-heading .info-strip[b-tvcw1yulhn] {
        flex-direction: row;
        justify-content: center;
        align-items: flex-start;
        gap: 1.5rem;
    }

    .addr-title-desktop[b-tvcw1yulhn],
    .alerted-text-desktop[b-tvcw1yulhn] {
        display: none;
    }

    .addr-title-mobile[b-tvcw1yulhn] {
        display: inline;
    }

    .alerted-text-mobile[b-tvcw1yulhn] {
        display: inline;
    }

    .addresses-search-wrap[b-tvcw1yulhn] {
        margin-top: 2rem;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/AddressGroups/AddressGroupDetails.razor.rz.scp.css */
/* ── Address Group Details Page ── */

/* ── Transfer widget (addresses & employees tabs) ── */

.agd-transfer[b-ff2cs6ic0v] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 1rem;
    align-items: start;
    margin-bottom: 1rem;
}

.agd-transfer-panel[b-ff2cs6ic0v] {
    display: flex;
    flex-direction: column;
    background: var(--bg-surface);
    border: 1px solid var(--border-color);
    border-radius: 0.5rem;
    overflow: hidden;
    min-height: 360px;
}

.agd-panel-header[b-ff2cs6ic0v] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.65rem 0.875rem;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-surface-2);
}

.agd-panel-title[b-ff2cs6ic0v] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-primary);
}

.agd-panel-count[b-ff2cs6ic0v] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--bg-surface-3, rgba(0,0,0,0.06));
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
}

.agd-search[b-ff2cs6ic0v] {
    margin: 0.5rem 0.625rem 0;
    flex-shrink: 0;
}

.agd-list[b-ff2cs6ic0v] {
    flex: 1;
    overflow-y: auto;
    padding: 0.375rem 0;
    min-height: 0;
}

.agd-list-item[b-ff2cs6ic0v] {
    padding: 0.45rem 0.875rem;
    font-size: 0.875rem;
    color: var(--text-primary);
    cursor: pointer;
    user-select: none;
    transition: background 0.1s;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.agd-list-item:hover[b-ff2cs6ic0v] {
    background: var(--bg-hover);
}

.agd-list-item-selected[b-ff2cs6ic0v] {
    background: var(--accent-bg, rgba(13,110,253,0.1));
    color: var(--accent, #0077C5);
    font-weight: 500;
}

.agd-list-item-selected:hover[b-ff2cs6ic0v] {
    background: var(--accent-bg, rgba(13,110,253,0.15));
}

/* ── Middle transfer buttons ── */

.agd-transfer-controls[b-ff2cs6ic0v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding-top: 3rem;
}

.agd-ctrl-btn[b-ff2cs6ic0v] {
    width: 2.2rem;
    height: 2.2rem;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;
    border-radius: 0.375rem;
}

.agd-ctrl-btn:disabled[b-ff2cs6ic0v] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* ── Footer (reset / save) ── */

.agd-footer[b-ff2cs6ic0v] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
    margin-top: 0.25rem;
}

/* ── Notifications grid ── */

.agd-notif-grid[b-ff2cs6ic0v] {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 0.65rem 1rem;
    align-items: center;
}

.agd-notif-label[b-ff2cs6ic0v] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-secondary);
    white-space: nowrap;
}

.agd-notif-select[b-ff2cs6ic0v] {
    max-width: 340px;
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/AddressGroups/AddressGroupNode.razor.rz.scp.css */
/* Address group node styles moved to wwwroot/app.css — "ADDRESS GROUPS" section. */
/* _content/ACDrainWiz.Client.Web/Components/Pages/AddressGroups/AddressGroups.razor.rz.scp.css */
/* Address group styles moved to wwwroot/app.css — "ADDRESS GROUPS" section. */
/* _content/ACDrainWiz.Client.Web/Components/Pages/ContractorImpersonation/ContractorImpersonation.razor.rz.scp.css */
.ci-search-section[b-n04z6s1jlg] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.ci-search-section[b-n04z6s1jlg]  .addr-search-wrap {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.ci-search-section[b-n04z6s1jlg]  .addr-search-dropdown {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    flex: 1;
    max-height: none;
    border-top: 1px solid var(--border-color);
    border-radius: 0 0 0.375rem 0.375rem;
    box-shadow: none;
    overflow-y: auto;
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Customers/Customers.razor.rz.scp.css */
/* Mobile: page-header→contents so its title + button reorder around the divider via `order`. */
@media (max-width: 649.98px) {
    .page-header[b-294kdx9o65] {
        display: contents;
    }

    .page-header-left[b-294kdx9o65] {
        order: -4;
        justify-content: center;
        text-align: center;
    }

    /* Zero the h2's default block margin so the divider's 0.5rem owns the gap. */
    .page-header-left h2[b-294kdx9o65] {
        margin: 0;
    }

    .page-content[b-294kdx9o65]  .app-divider {
        order: -3;
        margin-top: 0.5rem;
        margin-bottom: 2rem;
    }

    .page-header-actions[b-294kdx9o65] {
        order: -2;
        justify-content: flex-end;
    }

    .customers-search-wrap[b-294kdx9o65] {
        order: -1;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Dashboard/AddressSensorDetails.razor.rz.scp.css */
.asd-section-title[b-sxtoaxlf3v] {
    color: var(--text-primary);
    margin: 0 0 0 0.2rem;
    align-self: center;
    white-space: nowrap;
}

.asd-dismiss-title[b-sxtoaxlf3v] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 0.5rem;
}

.asd-dismiss-text[b-sxtoaxlf3v] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    margin: 0 0 0.5rem;
    line-height: 1.5;
    /* Cap the measure so copy isn't a full-width wall on wide dialogs; reset on mobile below. */
    max-width: 60ch;
}

/* View Address + View Open Service Call sit inline above the client info strip. */
.asd-action-row[b-sxtoaxlf3v] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

/* ── Mobile + tablet (<900px): sensor cards get a soft surface (list keeps its own scroll on tablet; only mobile scrolls the dialog) ── */
@media (max-width: 899.98px) {
    .table-scroll[b-sxtoaxlf3v] {
        margin-top: 1rem;
    }

    .table-scroll tbody tr:not(:has(.table-footer))[b-sxtoaxlf3v] {
        background: var(--bg-surface-2);
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
    }
}

/* ── Mobile (<650px) ────────────────────────────────────────────────────────── */
@media (max-width: 649.98px) {
    .info-strip[b-sxtoaxlf3v] {
        flex-direction: column;
        gap: 0.85rem;
    }

    .info-strip-item[b-sxtoaxlf3v] {
        padding-left: 1rem;
    }

    .info-strip-item + .info-strip-item[b-sxtoaxlf3v]::before {
        left: 0;
        top: -0.45rem;
        height: 1px;
        width: 100%;
        background: linear-gradient(to right, transparent, #d1d5db 50%, transparent);
    }

    .info-strip-item span[b-sxtoaxlf3v] {
        overflow-wrap: anywhere;
    }

    /* Full-width copy on mobile (the measure cap is desktop/tablet only). */
    .asd-dismiss-text[b-sxtoaxlf3v] {
        max-width: none;
    }

    /* Short title scales up to the true 2rem h2 (matches desktop from ~400px); eases down only on the narrowest phones so the nowrap text never overflows. */
    h2.dialog-title[b-sxtoaxlf3v] {
        font-size: clamp(1.25rem, 8vw, 2rem);
        white-space: nowrap;
    }

    .asd-section-title[b-sxtoaxlf3v] {
        font-size: 1rem;
        margin: 0;
        white-space: normal;
    }

    /* Keep "Sensors attached…" inline with the sort dropdown on mobile. */
    .page-header.asd-sensors-header[b-sxtoaxlf3v] {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.5rem;
    }

    .page-header.asd-sensors-header .asd-section-title[b-sxtoaxlf3v] {
        flex: 1;
        min-width: 0;
    }

    /* Stack both actions full-width above the client data; Open Call on top. */
    .asd-action-row[b-sxtoaxlf3v] {
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }

    .asd-action-row .asd-open-call-btn[b-sxtoaxlf3v] {
        order: -1;
    }

    /* Mobile: the whole dialog scrolls, so the sensor list flows inline. */
    .table-scroll[b-sxtoaxlf3v] {
        overflow-y: visible;
        flex: none;
        min-height: 0;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Dashboard/Dashboard.razor.rz.scp.css */
/* --- Toolbar row above the table: filter chip on the left, search box on the right.
   Search-box uses margin-left:auto so it stays right-aligned whether or not a chip is present. */
.dash-toolbar[b-kpleegs6z5] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

    .dash-toolbar .search-box[b-kpleegs6z5] {
        margin-left: auto;
    }

.dash-filter-chip[b-kpleegs6z5] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.35rem 0.5rem 0.35rem 0.85rem;
    background: var(--accent-bg);
    border: 1px solid var(--accent);
    border-radius: 999px;
    color: var(--accent);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

    .dash-filter-chip:hover[b-kpleegs6z5] {
        background: var(--bg-hover);
        box-shadow: var(--shadow-sm);
    }

    .dash-filter-chip:focus-visible[b-kpleegs6z5] {
        outline: 2px solid var(--accent);
        outline-offset: 2px;
    }

.dash-filter-chip-close[b-kpleegs6z5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    background: var(--accent);
    color: var(--text-on-accent);
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1;
}

/* Mobile (<650px): stack the toolbar so the search box sits on top and the
   active-filter chip drops below it (instead of side-by-side). */
@media (max-width: 649.98px) {
    .dash-toolbar[b-kpleegs6z5] {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }

        .dash-toolbar .search-box[b-kpleegs6z5] {
            order: -1;          /* search on top, chip below */
            margin-left: 0;
        }

        .dash-toolbar .dash-filter-chip[b-kpleegs6z5] {
            align-self: flex-start;   /* keep the chip pill-sized, hugging the left */
        }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Employees/AddEmployeeRoleDialog.razor.rz.scp.css */
/* Permission groups stack to a single column on mobile. */
@media (max-width: 649.98px) {
    .ar-perms-grid[b-liqa1ojzok] {
        grid-template-columns: 1fr;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Employees/AddInvitationDialog.razor.rz.scp.css */
/* Mobile: Email on its own row; Role + "+ Add" share the second row. */
@media (max-width: 649.98px) {
    .ai-input-row[b-pntyfo1hpm] {
        flex-wrap: wrap;
        align-items: flex-end;
    }

    .ai-email-field[b-pntyfo1hpm] {
        flex: 1 0 100%;
    }

    .ai-role-field[b-pntyfo1hpm] {
        flex: 1 1 auto;
        width: auto;
    }

    .ai-add-btn[b-pntyfo1hpm] {
        flex: 0 0 auto;
    }

    /* Expanded staged-invite permissions: single column. */
    .ai-staged-perms[b-pntyfo1hpm] {
        grid-template-columns: 1fr;
    }

    /* Drop the nested 420px scroll so the dialog body is the only scroll container — expanded permissions stay fully reachable. */
    .ai-staged-list[b-pntyfo1hpm] {
        max-height: none;
        overflow: visible;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Employees/EditEmployeeRoleDialog.razor.rz.scp.css */
/* Permission groups stack to a single column on mobile. */
@media (max-width: 649.98px) {
    .ar-perms-grid[b-brme7hu2w2] {
        grid-template-columns: 1fr;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Employees/EmployeeInvitations.razor.rz.scp.css */
/* Header uses the shared .detail-header layout (app.css). */
/* _content/ACDrainWiz.Client.Web/Components/Pages/Employees/EmployeeRoles.razor.rz.scp.css */
/* Header uses the shared .detail-header layout (app.css). */
/* _content/ACDrainWiz.Client.Web/Components/Pages/JoinContractor/JoinContractor.razor.rz.scp.css */
/* clear separation from the OTP boxes above */
.join-confirm-backlink[b-9sc4nxtgj2] {
    margin-top: 2rem;
}

/* 2-column signup fields on tablet/desktop; stacks to 1 column on mobile (<768px). */
@media (min-width: 768px) {
    .login-register .login-form-wrap[b-9sc4nxtgj2] {
        max-width: 560px;
    }

    .register-fields[b-9sc4nxtgj2] {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1.1rem 1.25rem;
        margin-bottom: 1.1rem;
    }

    .register-field--full[b-9sc4nxtgj2] {
        grid-column: 1 / -1;
    }

    /* grid gap owns spacing — drop the stacked-field margins */
    .register-fields .form-group--lg[b-9sc4nxtgj2] {
        margin-bottom: 0;
    }

    .register-fields .form-group + .form-group[b-9sc4nxtgj2] {
        margin-top: 0;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Onboarding/AddPaymentMethod.razor.rz.scp.css */
.opm-wrap[b-czy3hqehwy] {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: 100vh;
    padding: 3rem 1rem 2rem;
    background: var(--bg-app);
}

.opm-card[b-czy3hqehwy] {
    background: var(--bg-surface);
    border: 1px solid var(--border-color);
    border-radius: 0.875rem;
    box-shadow: var(--shadow-md);
    width: 100%;
    max-width: 540px;
    padding: 2.5rem 2rem 2rem;
    animation: dialog-in 0.2s ease;
}

.opm-logo[b-czy3hqehwy] {
    display: block;
    height: 40px;
    margin: 0 auto 1.25rem;
}

.opm-header[b-czy3hqehwy] {
    text-align: center;
    margin-bottom: 2rem;
}

.opm-title[b-czy3hqehwy] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 0.6rem;
}

.opm-sub[b-czy3hqehwy] {
    font-size: 0.9rem;
    color: var(--text-muted);
    line-height: 1.6;
    margin: 0;
}

.opm-success[b-czy3hqehwy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    gap: 0.5rem;
    text-align: center;
}

.opm-success-icon[b-czy3hqehwy] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #dcfce7;
    color: #16a34a;
    font-size: 1.75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.5rem;
}

.opm-success-text[b-czy3hqehwy] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.opm-success-sub[b-czy3hqehwy] {
    font-size: 0.875rem;
    color: var(--text-muted);
    margin: 0;
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/SelectContractor/SelectContractor.razor.rz.scp.css */
/* Intentionally empty — content was reverted to app.css. Safe to delete. */
/* _content/ACDrainWiz.Client.Web/Components/Pages/Sensors/Sensors.razor.rz.scp.css */
/* Header layout is the shared .detail-header (app.css); only Sensors content
   tweaks live here. */
.sensors-title-row[b-04izq9imi9] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
}

.sensors-name[b-04izq9imi9] {
    margin: 0;
}

.sensors-sep[b-04izq9imi9] {
    font-size: 1.4rem;
}

.sensors-title[b-04izq9imi9] {
    font-size: 1.4rem;
    margin: 0;
}

.address-contact-accordion[b-04izq9imi9] {
    display: none;
}

.page-content[b-04izq9imi9]  .app-divider {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

@media (max-width: 649.98px) {
    /* Shared mobile centers the heading; Sensors keeps its children full-width so
       the two-column info strip still spans the row. */
    .detail-header-heading.sensors-header-body[b-04izq9imi9] {
        align-items: stretch;
    }

    .sensors-sep[b-04izq9imi9] {
        display: none;
    }

    .sensors-title[b-04izq9imi9] {
        flex-basis: 100%;
    }

    .sensors-addr-sep[b-04izq9imi9] {
        display: none;
    }

    .sensors-addr-line2[b-04izq9imi9] {
        display: block;
    }

    .info-strip[b-04izq9imi9] {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }

    .info-strip-item[b-04izq9imi9] {
        min-width: 0;
        align-items: center;
        text-align: center;
        overflow-wrap: anywhere;
    }

    /* Vertical divider centered in the gap between the two stats. */
    .info-strip-item + .info-strip-item[b-04izq9imi9]::before {
        left: -0.5rem;
    }
}

@media (max-width: 899.98px) {
    /* Centered title — drop the shared heading indent so it reads truly centered. */
    .detail-header > .detail-header-heading.sensors-header-body[b-04izq9imi9] {
        padding-left: 0;
    }

    .sensors-name[b-04izq9imi9],
    .sensors-title[b-04izq9imi9] {
        text-align: center;
        width: 100%;
    }

    .sensors-sep[b-04izq9imi9] {
        display: none;
    }

    .info-strip[b-04izq9imi9] {
        justify-content: center;
    }

    .info-strip-item[b-04izq9imi9] {
        align-items: center;
        text-align: center;
    }

    .address-contact-body .info-label[b-04izq9imi9]::after {
        content: " :";
    }

    .detail-header-heading.sensors-header-body[b-04izq9imi9] {
        gap: 1.5rem;
    }

    .table-scroll[b-04izq9imi9] {
        margin-top: 0.5rem;
    }

    .table-scroll tbody tr[b-04izq9imi9] {
        display: grid;
        grid-template-columns: auto 1fr auto auto auto;
        grid-template-areas:
            "chevron name status bell kebab"
            "water water water water water"
            "battery battery battery battery battery"
            "last last last last last";
        column-gap: 1.5rem;
        row-gap: 0.5rem;
        align-items: center;
        cursor: pointer;
    }

    /* Chevron signals the row is an expandable accordion: right when collapsed, down when open. */
    .table-scroll tbody tr[b-04izq9imi9]::before {
        content: "";
        grid-area: chevron;
        width: 0.45rem;
        height: 0.45rem;
        border: solid var(--text-muted);
        border-width: 2px 2px 0 0;
        transform: rotate(45deg);
        transform-origin: center;
        transition: transform 0.2s ease;
        align-self: center;
        justify-self: center;
    }

    .table-scroll tbody tr.sensor-row-expanded[b-04izq9imi9]::before {
        transform: rotate(135deg);
    }

    .table-scroll tbody tr:has(.table-footer)[b-04izq9imi9]::before {
        content: none;
    }

    .table-scroll tbody tr > td[b-04izq9imi9] {
        padding: 0;
    }

    .table-scroll tbody td:nth-child(1)[b-04izq9imi9] {
        grid-area: bell;
        width: auto;
        justify-self: center;
        align-self: center;
    }

    .sensor-alert-icon[b-04izq9imi9]::before {
        transform: scale(1.5);
        transform-origin: center;
    }

    .table-scroll tbody td:nth-child(2)[b-04izq9imi9] {
        grid-area: name;
        font-size: 16px;
        font-weight: 600;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .table-scroll tbody td:nth-child(3)[b-04izq9imi9] {
        grid-area: water;
    }

    .table-scroll tbody td:nth-child(4)[b-04izq9imi9] {
        grid-area: battery;
    }

    .table-scroll tbody td:nth-child(5)[b-04izq9imi9] {
        grid-area: last;
    }

    /* Expanded rows show a label beside the value. */
    .table-scroll tbody td:nth-child(3)[b-04izq9imi9],
    .table-scroll tbody td:nth-child(4)[b-04izq9imi9],
    .table-scroll tbody td:nth-child(5)[b-04izq9imi9] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
    }

    .table-scroll tbody td:nth-child(3)[b-04izq9imi9]::before,
    .table-scroll tbody td:nth-child(4)[b-04izq9imi9]::before,
    .table-scroll tbody td:nth-child(5)[b-04izq9imi9]::before {
        content: attr(data-label) " :";
        flex-shrink: 0;
        font-size: var(--fs-small);
        font-weight: 600;
        letter-spacing: 0.04em;
        color: var(--text-muted);
    }

    .table-scroll tbody td:nth-child(6)[b-04izq9imi9] {
        grid-area: status;
        justify-self: center;
    }

    .sensor-status-cell[b-04izq9imi9] {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.25rem;
    }

    .table-scroll tbody td.td-actions[b-04izq9imi9] {
        grid-area: kebab;
        position: static;
        transform: none;
        top: auto;
        right: auto;
        background: transparent;
        margin-left: 0.75rem;
    }

    .table-scroll tbody tr:not(.sensor-row-expanded) > td:nth-child(3)[b-04izq9imi9],
    .table-scroll tbody tr:not(.sensor-row-expanded) > td:nth-child(4)[b-04izq9imi9],
    .table-scroll tbody tr:not(.sensor-row-expanded) > td:nth-child(5)[b-04izq9imi9] {
        display: none;
    }

    .table-scroll tbody tr:has(.table-footer)[b-04izq9imi9] {
        display: block;
        text-align: center;
    }

    /* Tapping a card (to expand) must not tint it. */
    .table-scroll tbody tr:hover td[b-04izq9imi9],
    .table-scroll tbody tr:active td[b-04izq9imi9],
    .table-scroll tbody tr:hover td.td-actions[b-04izq9imi9] {
        background-color: transparent;
    }

    /* Email + phone move out of the info strip into the accordion below. */
    .info-item-contact[b-04izq9imi9] {
        display: none;
    }

    .address-contact-accordion[b-04izq9imi9] {
        display: block;
        width: 100%;
        margin-top: 0.5rem;
    }

    .address-contact-toggle[b-04izq9imi9] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.5rem;
        width: 100%;
        min-height: 40px;
        padding: 0;
        background: transparent;
        border: none;
        color: var(--text-primary);
        font-weight: 450;
        font-size: 1.2rem;
        letter-spacing: 0.12rem;
        cursor: pointer;
    }

    .address-contact-chevron[b-04izq9imi9] {
        width: 0.45rem;
        height: 0.45rem;
        border: solid var(--text-muted);
        border-width: 2px 2px 0 0;
        transform: rotate(45deg);
        transform-origin: center;
        transition: transform 0.2s ease;
        flex-shrink: 0;
    }

    .address-contact-chevron.open[b-04izq9imi9] {
        transform: rotate(135deg);
    }

    .address-contact-body[b-04izq9imi9] {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
        padding: 0.5rem 0 0;
    }

    .address-contact-body .info-strip-item[b-04izq9imi9] {
        flex-direction: row;
        justify-content: space-between;
        align-items: baseline;
        gap: 0.75rem;
    }

    .address-contact-body .info-strip-item > span:last-child[b-04izq9imi9] {
        text-align: right;
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .address-contact-body .info-strip-item + .info-strip-item[b-04izq9imi9]::before {
        display: none;
    }
}

@media (min-width: 900px) {
    .td-center[b-04izq9imi9] {
        text-align: center;
    }

    .td-center .data-cell[b-04izq9imi9] {
        justify-content: center;
    }

    thead th:not(:first-child):not(:last-child)[b-04izq9imi9] {
        width: 20%;
    }
}

.sensor-row-editing td[b-04izq9imi9] {
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}

/* ── Cell-content wrapper: slides right + fades when row enters edit mode ── */
.sensor-cell-wrap[b-04izq9imi9] {
    overflow: hidden;
    transition: transform 0.5s ease, opacity 0.4s ease;
}

.sensor-row-editing .sensor-cell-wrap[b-04izq9imi9] {
    transform: translateX(10px);
    opacity: 0;
    pointer-events: none;
}

/* ── Edit-name td ── */
.sensor-edit-td[b-04izq9imi9] {
    position: relative;
}

/* ── Edit-name cell: slides in from the left ── */
.sensor-edit-cell[b-04izq9imi9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    animation: sensor-edit-appear-b-04izq9imi9 0.25s ease forwards;
}

@keyframes sensor-edit-appear-b-04izq9imi9 {
    from {
        opacity: 0;
        transform: translateX(-8px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* ── Advanced dialog ── */
.adv-section[b-04izq9imi9] {
    border: 1px solid var(--border-color);
    border-radius: 0.5rem;
    overflow: hidden;
    margin-bottom: 1.25rem;
    background: var(--bg-surface-2);
}

.adv-section-header[b-04izq9imi9] {
    border-bottom: 1px solid var(--border-color);
    padding: 0.6rem 0.9rem;
}

.adv-section-title[b-04izq9imi9] {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
}

.adv-section-desc[b-04izq9imi9] {
    display: block;
    font-size: 0.78rem;
    color: var(--text-faint);
    margin-top: 0.15rem;
}

.alert-level-row[b-04izq9imi9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 0.9rem;
    border-bottom: 1px solid var(--border-color-2);
    gap: 1rem;
    transition: background 0.15s;
}

.alert-level-row:last-child[b-04izq9imi9] {
    border-bottom: none;
}

.alert-level-row-locked[b-04izq9imi9] {
    opacity: 0.45;
    pointer-events: none;
    background: var(--bg-surface-2);
}

.alert-level-label[b-04izq9imi9] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-secondary);
    min-width: 70px;
}

.alert-level-controls[b-04izq9imi9] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.alert-level-toggle[b-04izq9imi9] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    color: var(--text-muted);
    cursor: pointer;
    user-select: none;
}

.alert-level-toggle-disabled[b-04izq9imi9] {
    cursor: not-allowed;
}

.alert-level-input-row[b-04izq9imi9] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.alert-level-input[b-04izq9imi9] {
    width: 70px;
    text-align: center;
    padding: 0.3rem 0.4rem;
}

.alert-level-pct[b-04izq9imi9] {
    font-size: 0.875rem;
    color: var(--text-secondary);
}

.alert-level-disabled-label[b-04izq9imi9] {
    font-size: 0.82rem;
    color: var(--text-faint);
    font-style: italic;
}

/* ── Validation error floats below the row so it never expands row height ── */
.sensor-edit-error[b-04izq9imi9] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    font-size: 0.78rem;
    color: var(--text-error);
    background: var(--bg-surface);
    padding: 0.2rem 0.75rem;
    border-bottom: 1px solid #fecaca;
    pointer-events: none;
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/ServiceCalls/ServiceCallDetails.razor.rz.scp.css */
/* ── Header: grid so the badge stack, back button, title and actions can be
   re-placed per breakpoint without separate markup. Desktop keeps the classic
   "Back  Title ………  Edit Complete" inline row; the badge stack is hidden here
   because the detail grid still carries the labelled Status / Priority. ── */
.scv-header[b-0ih2yrrl35] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "back title actions";
    align-items: center;
    column-gap: 1rem;
    row-gap: 0.5rem;
    margin-bottom: 1.25rem;
}

.scv-header-badges[b-0ih2yrrl35] {
    display: none;
}

.scv-back[b-0ih2yrrl35] {
    grid-area: back;
    justify-self: start;
}

/* Desktop + tablet: "Service Call - 123 Main St" on one line; if it can't fit,
   the address wraps as a whole to a second line under the title. */
.scv-title[b-0ih2yrrl35] {
    grid-area: title;
    margin: 0;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.4rem;
}

.scv-title-addr[b-0ih2yrrl35]::before {
    content: "- ";
}

.scv-header-actions[b-0ih2yrrl35] {
    grid-area: actions;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    justify-self: end;
}

/* ── Mobile only (<650px): the Open/Closed badge sits top-left inline with the
   back button (which moves to the right, matching the Manage Customers flow),
   with the Priority badge stacked just beneath it. "Service Call" gets its own
   line with the address below it, all centered. Edit/Complete become their own
   wider stacked column with the primary Complete on the bottom. Tablet
   (650–899px) keeps the desktop header/layout. ── */
@media (max-width: 649.98px) {
    .scv-header[b-0ih2yrrl35] {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "status  back"
            "title   title"
            "actions actions";
    }

    .scv-header-badges[b-0ih2yrrl35] {
        grid-area: status;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 0.5rem;
        justify-self: start;
    }

    .scv-back[b-0ih2yrrl35] {
        justify-self: end;
        align-self: start;
    }

    /* Mobile: "Service Call" on its own line with the address stacked beneath
       it (no dash), all centered. */
    .scv-title[b-0ih2yrrl35] {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0.1rem;
        margin: 0.25rem 0;
    }

    .scv-title-addr[b-0ih2yrrl35]::before {
        content: none;
    }

    .scv-title-addr[b-0ih2yrrl35] {
        font-size: var(--fs-h3);
        font-weight: 600;
    }

    /* column-reverse puts the primary Complete on top of Edit while keeping the
       markup order (and the desktop/tablet left-to-right order) unchanged. */
    .scv-header-actions[b-0ih2yrrl35] {
        flex-direction: column-reverse;
        align-items: center;
        justify-self: stretch;
        gap: var(--space-2, 0.5rem);
        margin-top: 0.25rem;
    }

        .scv-header-actions > button[b-0ih2yrrl35] {
            width: 300px;
            max-width: 100%;
        }

    /* Status + Priority now live in the header badge stack — drop both from the
       detail grid to avoid duplicates. */
    .scv-status-detail[b-0ih2yrrl35],
    .scv-priority-detail[b-0ih2yrrl35] {
        display: none;
    }

    /* Customer / Phone / Address all centered. Customer | Phone stay inline
       (divider between); address drops to its own full-width row, no divider. */
    .scv-col-details .info-strip[b-0ih2yrrl35] {
        justify-content: center;
        text-align: center;
    }

        .scv-col-details .info-strip .info-strip-item[b-0ih2yrrl35] {
            align-items: center;
        }

    .scv-addr-item[b-0ih2yrrl35] {
        flex: 1 0 100%;
    }

    .info-strip .scv-addr-item[b-0ih2yrrl35]::before {
        display: none;
    }

    /* Detail box: two columns (Tech, Created, Scheduled, Completed) instead of a
       single stacked column, so it stays compact on phones. */
    .scv-detail-row[b-0ih2yrrl35] {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.75rem 1rem;
    }

    .scv-detail-item[b-0ih2yrrl35] {
        min-width: 0;
    }

    /* Notes panel reads as "big list, tiny input" — double the compose box so
       more of the typed note is visible at once. */
    .sc-note-textarea[b-0ih2yrrl35] {
        min-height: 76px;
    }
}

/* ── Tablet (650–899px): vertical header — the "Service Call - address" title is
   the top row (Back button on its right; the title wraps to a second line if it
   can't fit), then the Status/Priority badges, then the Edit/Complete buttons
   beneath them. Status/Priority are dropped from the detail box. ── */
@media (min-width: 650px) and (max-width: 899.98px) {
    .scv-header[b-0ih2yrrl35] {
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "title   back"
            "status  status"
            "actions actions";
        align-items: start;
    }

    .scv-back[b-0ih2yrrl35] {
        justify-self: end;
        align-self: start;
    }

    .scv-header-badges[b-0ih2yrrl35] {
        grid-area: status;
        display: flex;
        flex-direction: row;
        align-items: center;
        gap: 0.5rem;
        justify-self: start;
        margin-top: 0.25rem;
    }

    .scv-header-actions[b-0ih2yrrl35] {
        justify-self: start;
        margin-top: 0.5rem;
    }

    .scv-status-detail[b-0ih2yrrl35],
    .scv-priority-detail[b-0ih2yrrl35] {
        display: none;
    }
}

/* ── Very small phones: the two-column detail box gets cramped, so fall back to
   a single stacked column. ── */
@media (max-width: 379.98px) {
    .scv-detail-row[b-0ih2yrrl35] {
        grid-template-columns: 1fr;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Pages/Settings/Settings.razor.rz.scp.css */
h2[b-u16h3nyudl] {
    margin-top: 1rem;
}

/* Settings page — change-password trigger button */
.btn-change-password[b-u16h3nyudl] {
    align-self: flex-start;
}

/* Settings page — change-password form sub-card */
.settings-sub-card[b-u16h3nyudl] {
    padding: 1.25rem 0.75rem;
    max-width: 340px;
}

/* ── Update Payment Method dialog ── */
.stripe-form-wrap[b-u16h3nyudl] {
    position: relative;
    min-height: 240px;
}

.stripe-or-divider[b-u16h3nyudl] {
    display: flex;
    align-items: center;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.85rem;
    margin: 1.25rem 0;
}

    .stripe-or-divider[b-u16h3nyudl]::before,
    .stripe-or-divider[b-u16h3nyudl]::after {
        content: '';
        flex: 1;
        border-bottom: 1px solid var(--border-color);
    }

    .stripe-or-divider span[b-u16h3nyudl] {
        padding: 0 0.75rem;
    }

.stripe-hidden[b-u16h3nyudl] {
    visibility: hidden;
}

.stripe-loading-overlay[b-u16h3nyudl] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-surface);
    border-radius: 0.5rem;
    z-index: 2;
}

/* _content/ACDrainWiz.Client.Web/Components/Shared/CompanyQuickLook.razor.rz.scp.css */
.cql-container[b-6gkxz900uo] {
    background: var(--bg-surface);
    border: 1px solid var(--border-color);
    border-radius: 0.5rem;
    box-shadow: var(--shadow-sm);
    margin-bottom: 1.25rem;
    overflow: hidden;
}

/* Header is a flex row of two zones: toggle button (left) + stats (right). */
.cql-header[b-6gkxz900uo] {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 0.5rem 0.6rem 0.5rem 0.4rem;
    transition: background-color 0.15s ease;
}

    /* Hovering the toggle (title/chevron area) lights up the entire header row */
    .cql-header:has(.cql-toggle:hover)[b-6gkxz900uo] {
        background: var(--bg-hover);
    }

/* Toggle button — chevron + title, expands the accordion */
.cql-toggle[b-6gkxz900uo] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.85rem;
    background: transparent;
    border: none;
    border-radius: 0.375rem;
    cursor: pointer;
    text-align: left;
    color: inherit;
    font: inherit;
    flex-shrink: 0;
}

    .cql-toggle:focus-visible[b-6gkxz900uo] {
        outline: 2px solid var(--accent);
        outline-offset: -2px;
    }

.cql-chevron[b-6gkxz900uo] {
    display: inline-block;
    color: var(--text-muted);
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.cql-expanded .cql-chevron[b-6gkxz900uo] {
    transform: rotate(90deg);
}

.cql-title[b-6gkxz900uo] {
    font-family: 'Saira', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: 0.02em;
    white-space: nowrap;
}

/* Stats zone */
.cql-stats[b-6gkxz900uo] {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    flex: 1;
}

/* Each stat tile — base style (used for non-interactive Total Clients / Sensors) */
.cql-stat[b-6gkxz900uo] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.85rem;
    min-width: 0;
    border-radius: 0.375rem;
}

/* Stat info column (label above value) */
.cql-stat-info[b-6gkxz900uo] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
    align-items: flex-start;
}

/* When .cql-stat is a button (Attention / Active SC) — clickable affordance */
.cql-stat-action[b-6gkxz900uo] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: inherit;
    font: inherit;
    text-align: left;
    transition: background-color 0.15s ease;
}

    .cql-stat-action:hover[b-6gkxz900uo] {
        background: var(--bg-hover);
    }

    .cql-stat-action:focus-visible[b-6gkxz900uo] {
        outline: 2px solid var(--accent);
        outline-offset: -2px;
    }

    .cql-stat-action:hover .cql-stat-chevron[b-6gkxz900uo] {
        color: var(--accent);
        transform: translateX(2px);
    }

.cql-stat-chevron[b-6gkxz900uo] {
    color: var(--text-faint);
    flex-shrink: 0;
    transition: transform 0.15s ease, color 0.15s ease;
}

/* For .cql-stat without .cql-stat-info wrapper (non-action tiles), keep label-above-value */
.cql-stat:not(.cql-stat-action)[b-6gkxz900uo] {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
}

.cql-stat-label[b-6gkxz900uo] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.cql-stat-value[b-6gkxz900uo] {
    font-family: 'Saira', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.1;
}

.cql-stat-alert[b-6gkxz900uo] {
    color: #cc3e00;
}

/* Accordion body — collapses with max-height transition */
.cql-body[b-6gkxz900uo] {
    max-height: 0;
    overflow: hidden;
    border-top: 0 solid var(--border-color);
    transition: max-height 0.25s ease, border-top-width 0s linear 0.25s;
}

.cql-expanded .cql-body[b-6gkxz900uo] {
    max-height: 25vh;
    border-top-width: 1px;
    transition: max-height 0.25s ease, border-top-width 0s linear;
}

.cql-body-inner[b-6gkxz900uo] {
    padding: 1rem 1.1rem;
    height: 100%;
    overflow-y: auto;
}

/* --- Breakdown grid (expanded body) --- */
.cql-breakdown-grid[b-6gkxz900uo] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.85rem;
    min-height: 0;
}

.cql-breakdown-card[b-6gkxz900uo] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.85rem 1rem;
    background: var(--bg-surface-2);
    border: 1px solid var(--border-color);
    border-radius: 0.5rem;
    position: relative;
    min-width: 0;
    overflow: hidden;
}

.cql-breakdown-card-action[b-6gkxz900uo] {
    cursor: pointer;
    text-align: left;
    color: inherit;
    font: inherit;
    padding-right: 2.2rem; /* room for chevron */
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

    .cql-breakdown-card-action:hover[b-6gkxz900uo] {
        background: var(--bg-hover);
        border-color: var(--accent);
    }

    .cql-breakdown-card-action:focus-visible[b-6gkxz900uo] {
        outline: 2px solid var(--accent);
        outline-offset: -2px;
    }

    .cql-breakdown-card-action:hover .cql-breakdown-chevron[b-6gkxz900uo] {
        color: var(--accent);
        transform: translateY(-50%) translateX(3px);
    }

.cql-breakdown-card-label[b-6gkxz900uo] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cql-breakdown-card-value[b-6gkxz900uo] {
    font-family: 'Saira', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.1;
}

.cql-breakdown-card-description[b-6gkxz900uo] {
    font-size: 0.78rem;
    color: var(--text-muted);
    line-height: 1.3;
}

.cql-loading-text[b-6gkxz900uo] {
    font-style: italic;
    opacity: 0.85;
}

.cql-breakdown-chevron[b-6gkxz900uo] {
    position: absolute;
    right: 0.8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-faint);
    transition: transform 0.15s ease, color 0.15s ease;
}

/* Priority chip row for Active Service Calls breakdown */
.cql-priority-row[b-6gkxz900uo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin-top: 0.15rem;
}

.cql-priority-chip[b-6gkxz900uo] {
    display: inline-flex;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem !important; /* override .badge-priority-* font-size */
    font-weight: 600;
    white-space: nowrap;
    line-height: 1.3;
}

/* Responsive: collapse the grid */
@media (max-width: 900px) {
    .cql-breakdown-grid[b-6gkxz900uo] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 520px) {
    .cql-breakdown-grid[b-6gkxz900uo] {
        grid-template-columns: 1fr;
    }
}

/* Mobile: stack title above stats */
@media (max-width: 720px) {
    .cql-header[b-6gkxz900uo] {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }

    .cql-stats[b-6gkxz900uo] {
        justify-content: flex-start;
        gap: 0.5rem;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/CompanyQuickLookSimple.razor.rz.scp.css */
/* Container query collapses each stat to icon + value (label hidden) at narrow widths. */

.cqls-container[b-ny1syoqlnq] {
    container-type: inline-size;
    container-name: cqls;
}

/* 0.5rem gap is the minimum before the container query collapses to icon mode. */
.cqls-row[b-ny1syoqlnq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.6rem 0.5rem 0.4rem;
}

.cqls-title[b-ny1syoqlnq] {
    font-family: 'Saira', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: 0.02em;
    white-space: nowrap;
    align-self: center;
    margin: 0;
    padding: 0.5rem 0.85rem;
    flex-shrink: 0;
}

/* --- Stats zone — sized to content, no wrapping, right-aligned so its right edge
   lines up with the search bar and the table on the right side of the dashboard. --- */
.cqls-stats[b-ny1syoqlnq] {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    flex-wrap: nowrap;
    min-width: 0;
    margin-left: auto;
}

/* Each stat tile — label above value. Same shape whether it's a <button> or <div>. */
.cqls-stat[b-ny1syoqlnq] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    padding: 0.5rem 0.85rem;
    min-width: 0;
    border-radius: 0.375rem;
}

/* Clickable variants — aggressively reset browser button chrome so it looks identical
   to the info-only stats, then layer on hover/focus affordances. */
.cqls-stat-action[b-ny1syoqlnq] {
    /* reset */
    background: transparent;
    border: none;
    margin: 0;
    color: inherit;
    font: inherit;
    text-align: left;
    line-height: inherit;
    appearance: none;
    -webkit-appearance: none;

    /* affordance */
    cursor: pointer;
    transition: background-color 0.21s ease, box-shadow 0.21s ease;
}

    .cqls-stat-action:hover[b-ny1syoqlnq] {
        background: var(--bg-hover);
        box-shadow: inset 0 -2px 0 0 var(--accent);
    }

    .cqls-stat-action:focus-visible[b-ny1syoqlnq] {
        outline: 2px solid var(--accent);
        outline-offset: -2px;
    }

.cqls-stat-label[b-ny1syoqlnq] {
    font-size: 0.81rem; /* 13px — meets project text-minimum */
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
}

.cqls-stat-value[b-ny1syoqlnq] {
    font-family: 'Saira', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.1;
}

.cqls-stat-alert[b-ny1syoqlnq] {
    color: #cc3e00;
}

/* Stat icon — hidden in text mode, shown in icon mode (via container query below). */
.cqls-stat-icon[b-ny1syoqlnq] {
    display: none;
    color: var(--text-muted);
    flex-shrink: 0;
}

.cqls-stat-icon-alert[b-ny1syoqlnq] {
    color: #cc3e00;
}

/* Row holding the Active SC big number + priority circles inline */
.cqls-value-row[b-ny1syoqlnq] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: nowrap;
}

/* --- Priority circles (replace text chips from the original) --- */
.cqls-priority-circles[b-ny1syoqlnq] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.cqls-priority-circle[b-ny1syoqlnq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    font-size: 0.81rem; /* 13px */
    font-weight: 700;
    line-height: 1;
    flex-shrink: 0;
}

.cqls-priority-emergency[b-ny1syoqlnq] {
    background: #fee2e2;
    color: var(--text-error);
}

.cqls-priority-high[b-ny1syoqlnq] {
    background: #ffedd5;
    color: #9a3412;
}

.cqls-priority-medium[b-ny1syoqlnq] {
    background: #fef9c3;
    color: #854d0e;
}

.cqls-priority-low[b-ny1syoqlnq] {
    background: #dcfce7;
    color: #166534;
}

/* Loading indicator while priority breakdown is being fetched */
.cqls-loading-dot[b-ny1syoqlnq] {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--text-faint);
    animation: cqls-pulse-b-ny1syoqlnq 1s ease-in-out infinite;
}

@keyframes cqls-pulse-b-ny1syoqlnq {
    0%, 100% { opacity: 0.3; }
    50%      { opacity: 1; }
}

/* 870 container-px ≈ viewport 1200 on this dashboard layout.
   Hover on any stat swipes the hidden label out to the right of the value (and circles, for Active SC). */
@container cqls (max-width: 870px) {
    /* In icon mode the stats sit next to the title (left-aligned) with a 3rem margin */


    .cqls-stats[b-ny1syoqlnq] {
        margin-left: 0;
    }

    .cqls-stat[b-ny1syoqlnq] {
        flex-direction: row;
        align-items: center;
        gap: 0; /* spacing controlled by margins so collapsed state has zero visible gap */
        padding: 0.5rem 0.7rem;

        /* All stats get the same border treatment so the hover effect is consistent */
        border: 2px solid transparent;
        border-radius: 10px;
        background: transparent;
        box-shadow: none;
        transition: border-color 0.3125s ease;
    }

    .cqls-stat:hover[b-ny1syoqlnq] {
        border-color: var(--accent);
    }

    /* Order: icon (1) → value (2) → label (3) → priority circles (4). Active SC's
       .cqls-value-row uses display:contents so circles lift to direct flex items. */
    .cqls-stat-icon[b-ny1syoqlnq] {
        display: inline-block;
        order: 1;
        margin-right: 0.45rem;
    }

    .cqls-stat-value[b-ny1syoqlnq] {
        order: 2;
        font-size: 1.2rem;
    }

    .cqls-value-row[b-ny1syoqlnq] {
        display: contents;
    }

    /* Hide label via max-width collapse (not display:none) so it can animate open */
    .cqls-stat-label[b-ny1syoqlnq] {
        display: inline-block;
        order: 3;
        max-width: 0;
        opacity: 0;
        overflow: hidden;
        white-space: nowrap;
        margin-left: 0;
        transition: max-width 0.375s ease-out,
                    opacity 0.25s ease-out 0.0625s,
                    margin-left 0.375s ease-out;
    }

    .cqls-stat:hover .cqls-stat-label[b-ny1syoqlnq] {
        max-width: 14rem;
        opacity: 1;
        margin-left: 0.45rem;
    }

    /* Same swipe-in trick for the Active SC priority circles — order 4 puts them
       on the far right, after the label. */
    .cqls-priority-circles[b-ny1syoqlnq] {
        order: 4;
        max-width: 0;
        opacity: 0;
        overflow: hidden;
        margin-left: 0;
        transition: max-width 0.375s ease-out,
                    opacity 0.25s ease-out 0.0625s,
                    margin-left 0.375s ease-out;
    }

    .cqls-stat:hover .cqls-priority-circles[b-ny1syoqlnq] {
        max-width: 14rem;
        opacity: 1;
        margin-left: 0.45rem;
    }

    /* Active filter: show only the selected stat, expanded to its full wording. */
    .cqls-stats--filtered .cqls-stat:not(.cqls-stat-selected)[b-ny1syoqlnq] {
        display: none;
    }

    .cqls-stat-selected .cqls-stat-label[b-ny1syoqlnq] {
        max-width: 14rem;
        opacity: 1;
        margin-left: 0.45rem;
    }

    .cqls-stat-selected .cqls-priority-circles[b-ny1syoqlnq] {
        max-width: 14rem;
        opacity: 1;
        margin-left: 0.45rem;
    }

    /* The two action stats: keep the click affordance (cursor) but suppress the
       text-mode underline+bg hover so it doesn't fight the new border treatment. */
    .cqls-stat-action[b-ny1syoqlnq] {
        background: transparent;
        box-shadow: none;
    }

    .cqls-stat-action:hover[b-ny1syoqlnq] {
        background: transparent;
        box-shadow: none;
    }
}

/* Very narrow: stack title above stats (icon mode is already active by this point) */
@container cqls (max-width: 480px) {
    .cqls-row[b-ny1syoqlnq] {
        flex-direction: column;
        align-items: stretch;
        gap: 0.4rem;
    }

    .cqls-stats[b-ny1syoqlnq] {
        justify-content: center;   /* center the icon stats on mobile */
        gap: 0.4rem;
    }
}

/* --- Dark theme overrides for priority circles --- */
:global([data-theme="dark"]) .cqls-priority-emergency[b-ny1syoqlnq] {
    background: #2d0a0a;
    color: var(--text-error);
}

:global([data-theme="dark"]) .cqls-priority-high[b-ny1syoqlnq] {
    background: #3b1a0a;
    color: #fdba74;
}

:global([data-theme="dark"]) .cqls-priority-medium[b-ny1syoqlnq] {
    background: #2d1f00;
    color: #f59e0b; /* amber-500 — darker warning yellow, more saturated than the previous #fcd34d */
}

:global([data-theme="dark"]) .cqls-priority-low[b-ny1syoqlnq] {
    background: #052e16;
    color: #86efac;
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/Dialog.razor.rz.scp.css */
.dialog-overlay[b-twpsy1tu5e] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.dialog-box[b-twpsy1tu5e] {
    background: var(--bg-surface);
    border-radius: 0.5rem;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    padding: 3rem 1.8rem;
    width: min(92vw, 1100px);
    max-height: 90vh;
    max-height: 90dvh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
}

.dialog-body[b-twpsy1tu5e] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}

/* Mobile (<650px): trim the dialog's horizontal padding so content has more
   usable width. Top/bottom 3rem stays — that's the room for the X close button. */
@media (max-width: 649.98px) {
    .dialog-box[b-twpsy1tu5e] {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/Divider.razor.rz.scp.css */
.app-divider[b-omddb0rnm5] {
    width: 95%;
    height: 2px;
    margin: 1rem auto;
    background: linear-gradient(to right,
        transparent 0%,
        var(--accent) 20%,
        var(--accent) 80%,
        transparent 100%);
    border-radius: 1px;
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/EmptyState.razor.rz.scp.css */
.empty-state[b-96msyztary] {
    flex: 1 1 auto;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 3rem 1rem;
    width: 100%;
    min-height: 50vh;
    text-align: center;
    color: var(--text-muted);
}

.empty-state-icon[b-96msyztary] {
    width: 120px;
    height: auto;
    opacity: 0.55;
    color: var(--text-muted);
}

.empty-state-text[b-96msyztary] {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--text-muted);
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/FeedbackButton.razor.rz.scp.css */
.feedback-icon[b-0efx99l8rl] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M2.678 11.894a1 1 0 0 1 .287.801 11 11 0 0 1-.398 2c1.395-.323 2.247-.697 2.634-.893a1 1 0 0 1 .71-.074A8 8 0 0 0 8 14c3.996 0 7-2.807 7-6s-3.004-6-7-6-7 2.808-7 6c0 1.468.617 2.83 1.678 3.894m-.493 3.905a22 22 0 0 1-.713.129c-.2.032-.352-.176-.273-.362a10 10 0 0 0 .244-.637l.003-.01c.248-.72.45-1.548.524-2.319C.743 11.37 0 9.76 0 8c0-3.866 3.582-7 8-7s8 3.134 8 7-3.582 7-8 7a9 9 0 0 1-2.347-.306c-.52.263-1.639.742-3.468 1.105'/%3E%3C/svg%3E");
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/FixedDialog.razor.rz.scp.css */
.fixed-dialog-overlay[b-kb1s3mu415] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.fixed-dialog-box[b-kb1s3mu415] {
    background: var(--bg-surface);
    border-radius: 0.5rem;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    padding: 2rem;
    width: min(92vw, 990px);
    max-height: 90vh;
    max-height: 90dvh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
}

@media (max-width: 899.98px) {
    .fixed-dialog-overlay[b-kb1s3mu415] {
        padding: 0;
        align-items: stretch;
    }

    .fixed-dialog-box[b-kb1s3mu415] {
        width: 100%;
        max-width: 100%;
        max-height: 100vh;
        max-height: 100dvh;
        height: 100dvh;
        border-radius: 0;
    }
}

.fixed-dialog-body[b-kb1s3mu415] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
}

.fixed-dialog-box-wide[b-kb1s3mu415] {
    width: min(92vw, 900px);
}

.fixed-dialog-box-tall[b-kb1s3mu415] {
    max-height: 90vh;
    max-height: 90dvh;
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/InviteEmployeesForm.razor.rz.scp.css */
.ai-empty-roles-hint[b-ha85icyn94] {
    color: var(--text-muted);
    font-size: 0.875rem;
    margin: 0 0 0.75rem;
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/OtpCodeInput.razor.rz.scp.css */
.code-inputs[b-gte4s2wsng] {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin: 1.5rem 0;
    /* digit size lives here: the global iOS-zoom rule sizes inputs as max(16px, 1em),
       so 1em must resolve against this parent to render large digits */
    font-size: 1.5rem;
}

.code-box[b-gte4s2wsng] {
    flex: 1 1 0;
    min-width: 0;
    max-width: 3rem;
    height: 3rem;
    padding: 0;
    text-align: center;
    font-weight: 600;
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/ServiceCallQuickView.razor.rz.scp.css */
/* Root container — fills the .dialog-body's available height so the notes zone can flex */
.scqv-root[b-mufrzq1k1a] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

/* Notes zone — takes all remaining vertical space after the header, info strip, and sensors */
.scqv-notes-zone[b-mufrzq1k1a] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 150px;
    margin-top: 1.25rem;
    overflow: hidden;
}

.scqv-notes-heading[b-mufrzq1k1a] {
    margin: 0 0 0.4rem 0;
}

/* The actual scrolling notes list — overrides the global .sc-notes-list { max-height: 220px } */
[b-mufrzq1k1a] .scqv-notes-list {
    flex: 1;
    min-height: 0;
    max-height: none;
}

/* Loading/empty placeholders fill the notes zone so the layout doesn't collapse */
.scqv-notes-state[b-mufrzq1k1a] {
    flex: 1;
    padding: 0.75rem;
    font-size: 0.85rem;
    color: var(--text-muted);
    background: var(--bg-surface-2);
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.scqv-footer-note[b-mufrzq1k1a] {
    margin: 1rem 0 0 0;
    font-style: italic;
    flex-shrink: 0;
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/SortDropdown.razor.rz.scp.css */
/* Custom icon sort dropdown — replaces a native <select> when each option
   needs its own icon. Trigger reads like a form-select; menu paints an icon +
   label per row. Outside-click backdrop matches the global .dropdown-overlay
   z-index convention (overlay 499, menu 500). */

.sort-dd[b-shv074fe5m] {
    position: relative;
    display: inline-flex;
    min-width: 0;
}

.sort-dd-trigger[b-shv074fe5m] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 42px;
    padding: 0.45rem 0.75rem;
    border: 1px solid var(--input-border);
    border-radius: 0.375rem;
    background-color: var(--input-bg);
    color: var(--input-text);
    font-size: 1rem;
    font-family: inherit;
    letter-spacing: 0.04em;
    cursor: pointer;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    max-width: 100%;
}

    .sort-dd-trigger:hover[b-shv074fe5m] {
        border-color: var(--accent);
    }

    .sort-dd-trigger:focus-visible[b-shv074fe5m],
    .sort-dd-open .sort-dd-trigger[b-shv074fe5m] {
        border-color: var(--accent);
        box-shadow: 0 0 0 2px rgba(0, 119, 197, 0.2);
    }

.sort-dd-trigger-label[b-shv074fe5m] {
    flex: 1;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sort-dd-placeholder[b-shv074fe5m] {
    color: var(--text-faint);
    font-weight: 400;
}

.sort-dd-icon[b-shv074fe5m] {
    flex-shrink: 0;
    color: var(--text-muted);
}

.sort-dd-chevron[b-shv074fe5m] {
    flex-shrink: 0;
    color: var(--text-muted);
    transition: transform 0.18s ease;
}

.sort-dd-open .sort-dd-chevron[b-shv074fe5m] {
    transform: rotate(180deg);
}

/* Outside-click backdrop — sits just below the menu's z-index so clicks anywhere
   else close the dropdown. High enough to win against sticky table headers (700)
   and other in-page chrome. */
.sort-dd-overlay[b-shv074fe5m] {
    position: fixed;
    inset: 0;
    z-index: 1099;
}

/* Menu uses position:fixed + JS placement (acdwPositionPopup) so it escapes any
   ancestor overflow (dialog body, table-scroll) and can be clamped to the
   viewport when the trigger sits near the right edge. Hidden until JS positions
   it so we don't flash at (0,0). */
.sort-dd-menu[b-shv074fe5m] {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1100;
    visibility: hidden;
    width: max-content;
    min-width: 12rem;
    max-width: min(320px, 92vw);
    max-height: 320px;
    overflow-y: auto;
    background: var(--bg-surface);
    border: 1px solid var(--border-color);
    border-radius: 0.5rem;
    box-shadow: var(--shadow-md);
    padding: 0.25rem 0;
}

.sort-dd-item[b-shv074fe5m] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.55rem 0.9rem;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    font-size: 0.9rem;
    font-family: inherit;
    color: var(--text-secondary);
    white-space: nowrap;
    transition: background-color 0.1s ease;
}

    .sort-dd-item:hover[b-shv074fe5m] {
        background: var(--bg-hover);
    }

    .sort-dd-item:focus-visible[b-shv074fe5m] {
        outline: 2px solid var(--accent);
        outline-offset: -2px;
    }

.sort-dd-item-selected[b-shv074fe5m],
.sort-dd-item-selected:hover[b-shv074fe5m] {
    background: var(--accent-bg);
    color: var(--accent-strong);
    font-weight: 600;
}

    .sort-dd-item-selected .sort-dd-icon[b-shv074fe5m] {
        color: var(--accent-strong);
    }

.sort-dd-item-label[b-shv074fe5m] {
    flex: 1;
}

/* Mobile: drop the trigger's vertical padding — min-height keeps it a 40px touch target. */
@media (max-width: 649.98px) {
    .sort-dd-trigger[b-shv074fe5m] {
        padding-top: 0;
        padding-bottom: 0;
        min-height: 40px;
    }
}
/* _content/ACDrainWiz.Client.Web/Components/Shared/WhatsNewButton.razor.rz.scp.css */
.whats-new-icon[b-ssj4t0u9mi] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M7.657 6.247c.11-.33.576-.33.686 0l.645 1.937a2.89 2.89 0 0 0 1.829 1.828l1.936.645c.33.11.33.576 0 .686l-1.937.645a2.89 2.89 0 0 0-1.828 1.829l-.645 1.936a.361.361 0 0 1-.686 0l-.645-1.937a2.89 2.89 0 0 0-1.828-1.828l-1.937-.645a.361.361 0 0 1 0-.686l1.937-.645a2.89 2.89 0 0 0 1.828-1.828l.645-1.937zM3.794 1.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387A1.734 1.734 0 0 0 4.593 5.69l-.387 1.162a.217.217 0 0 1-.412 0L3.407 5.69A1.734 1.734 0 0 0 2.31 4.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387A1.734 1.734 0 0 0 3.407 2.31l.387-1.162zM10.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732L9.1 2.137a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L10.863.1z'/%3E%3C/svg%3E");
}
