/* /Components/Layout/AuditCorner.razor.rz.scp.css */
/* Everything this file used to carry for the retired "Acting as" picker (.audit-corner-acting,
   -acting-label, -change, the select sizing) and for the Audit Trail link (.audit-corner-link) was
   removed on 9/4 along with the markup that used it - see the note at the top of AuditCorner.razor.
   Dead scoped rules are worth deleting rather than leaving: a class that looks defined but has no
   markup is what sends the next person looking for an element that isn't there. */

.audit-corner[b-y62ljaihlv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8rem;
    color: var(--muted, #6b7482);
    flex-wrap: wrap;
}

/* Signed-in pill: photo (or initials) + name + role. The app's only identity display. */
.audit-corner-user[b-y62ljaihlv] { display: inline-flex; align-items: center; gap: 9px; background: #fff; border: 1px solid rgba(31,52,103,.12); border-radius: 999px; padding: 3px 14px 3px 4px; }
.audit-corner-user-text[b-y62ljaihlv] { display: flex; flex-direction: column; line-height: 1.15; }
.audit-corner-user-name[b-y62ljaihlv] { font-weight: 700; font-size: .8125rem; color: #1A1A1A; }
.audit-corner-user-role[b-y62ljaihlv] { font-size: .7rem; color: #8299b3; }
/* /Components/Layout/GlobalSearch.razor.rz.scp.css */
/* Scoped to GlobalSearch, which is where this markup lives.
   NOT in NavMenu.razor.css: scoped CSS only styles its own component's elements, so rules for these
   classes placed there would never apply here. That exact mistake left the sign-in shell and the
   schedule-approval page unstyled for a week in August - see the app.css note on .signin-*. */

.nav-search[b-0e1z9zn1tf] {
    padding: 0 14px 14px;
    position: relative;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
    margin-bottom: 8px;
}

/* The field: a translucent wash over the navy rather than a solid fill, so it reads as inset into the
   sidebar the way the Sales CRM's does. */
.nav-search-field[b-0e1z9zn1tf] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 8px;
    padding: 0 10px;
    height: 36px;
    transition: border-color .15s ease, background-color .15s ease;
}

.nav-search-field:focus-within[b-0e1z9zn1tf] {
    background: rgba(255, 255, 255, .13);
    border-color: var(--blue2, #00A4E4);
}

.nav-search-icon[b-0e1z9zn1tf] {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    margin: 0;
    top: 0;
    color: rgba(255, 255, 255, .55);
}

.nav-search-input[b-0e1z9zn1tf] {
    flex: 1 1 auto;
    min-width: 0;
    background: none;
    border: 0;
    outline: none;
    color: #fff;
    font-size: 13px;
    font-family: inherit;
    padding: 0;
}

.nav-search-input[b-0e1z9zn1tf]::placeholder {
    color: rgba(255, 255, 255, .5);
}

/* Kill the browser's own clear affordance - type="search" draws an X that fights the Ctrl K hint. */
.nav-search-input[b-0e1z9zn1tf]::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}

.nav-search-hint[b-0e1z9zn1tf] {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .04em;
    color: rgba(255, 255, 255, .38);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 4px;
    padding: 1px 5px;
    white-space: nowrap;
}

/* ---- results ----
   Wider than the 220px sidebar on purpose: a ticket row is "P-1013 Summary text", which truncates to
   nothing in 190px. It overflows to the right over the page content, which is safe because the search
   sits ABOVE .nav-scrollable (whose overflow-y would otherwise have clipped it) and because .sidebar
   is given a stacking context in MainLayout.razor.css. */
.nav-search-results[b-0e1z9zn1tf] {
    position: absolute;
    top: calc(100% - 6px);
    left: 14px;
    width: 320px;
    max-height: 60vh;
    overflow-y: auto;
    background: #fff;
    border: 1px solid rgba(31, 52, 103, .18);
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(15, 25, 50, .28);
    padding: 6px;
    z-index: 1075;
}

.nav-search-group[b-0e1z9zn1tf] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #0079C2;
    padding: 8px 8px 4px;
}

.nav-search-hit[b-0e1z9zn1tf] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: 0;
    border-radius: 6px;
    padding: 6px 8px;
    cursor: pointer;
    color: #1a2b49;
}

.nav-search-hit:hover[b-0e1z9zn1tf],
.nav-search-hit:focus-visible[b-0e1z9zn1tf] {
    background: #eef2f8;
    outline: none;
}

.nav-search-hit-title[b-0e1z9zn1tf] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    /* Two lines then ellipsis: a ticket summary is often a whole sentence, and one line hides which
       ticket it is while three make the list a wall. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nav-search-hit-sub[b-0e1z9zn1tf] {
    display: block;
    font-size: 11px;
    color: #74839b;
    margin-top: 1px;
}

.nav-search-empty[b-0e1z9zn1tf] {
    padding: 10px 8px;
    font-size: 12px;
    color: #74839b;
}

.nav-search-tip[b-0e1z9zn1tf] {
    margin-top: 4px;
    font-size: 11px;
    color: #8fa0b8;
}

/* On a phone the sidebar is full width, so the dropdown matches the field instead of overhanging. */
@media (max-width: 640px) {
    .nav-search-results[b-0e1z9zn1tf] {
        width: calc(100% - 28px);
    }

    /* 16px stops iOS zooming the page when the field takes focus - same rule as the rest of the
       app's inputs under this width. */
    .nav-search-input[b-0e1z9zn1tf] {
        font-size: 16px;
    }

    .nav-search-field[b-0e1z9zn1tf] {
        height: 44px;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-yuqnyo3jx5] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-yuqnyo3jx5] {
    flex: 1;
    /* Column flex (9/10) so .app-footer's margin-top:auto pins it to the bottom of the viewport on
       a short page, rather than floating immediately under a half-empty content area. Block-level
       children (.top-corner-bar, article) render exactly as before - a column flex container's
       default stretch behavior just makes them full-width, which they already were. */
    display: flex;
    flex-direction: column;
    background-color: var(--bg, #f4f6f9);
    min-height: 100vh;
}

.sidebar[b-yuqnyo3jx5] {
    /* Navy, not near-black - matches the real brand block treatment already live in the sibling
       weaver-resourcing app (Bonus/Commissions), which Jason confirmed as the standard to match.
       See docs/page-review-notes.md General/Cross-Cutting. */
    background-color: var(--navy, #1F3467);

    /* Stacking context so the global search's results dropdown, which overhangs into the page area,
       paints above main - main comes later in the DOM and would otherwise cover it. */
    position: relative;
    z-index: 1070;
}

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

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

.top-corner-bar[b-yuqnyo3jx5] {
    display: flex;
    justify-content: flex-end;
    padding: 0.5rem 1.5rem 0;
    /* Reserve the bar's height so the page doesn't shift while CurrentUser populates. */
    min-height: 2.4rem;
}

/* Copyright + app name/version (9/10) - sits under the main content pane only, not under the
   sidebar too, matching the reference screenshot Jason sent. */
.app-footer[b-yuqnyo3jx5] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 1.5rem;
    padding: 0.75rem 1.5rem;
    margin-top: auto;
    border-top: 1px solid var(--line, rgba(31, 52, 103, .12));
    color: #6c757d;
    font-size: 0.75rem;
}

@media (min-width: 641px) {
    .page[b-yuqnyo3jx5] {
        flex-direction: row;
    }

    .sidebar[b-yuqnyo3jx5] {
        width: 220px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    article[b-yuqnyo3jx5] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
        padding-top: 1.5rem !important;
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-us59l8nxd2] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-us59l8nxd2] {
    background-color: rgba(255, 255, 255, 0.5);
}

.brand[b-us59l8nxd2] {
    padding: 18px 14px 12px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

    .brand .wordmark-img[b-us59l8nxd2] {
        /* 170px -> 200px (Jason, 9/3, matching the Sales CRM screenshot). The sidebar is 220px wide
           with 18px padding each side, so 200px would touch both edges - the brand padding below was
           trimmed to 14px to give it the room and keep an even margin. */
        max-width: 200px;
        width: 100%;
        height: auto;
        display: block;
    }

    .brand .app-name[b-us59l8nxd2] {
        /* Reads "Weaver PSA" as of 9/3, so slightly larger than the old bare "PSA". */
        font-size: 11px;
        color: var(--blue2, #00A4E4);
        letter-spacing: .8px;
        text-transform: uppercase;
        font-weight: 700;
        margin-top: 4px;
    }

.bi[b-us59l8nxd2] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-us59l8nxd2] {
    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-us59l8nxd2] {
    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-us59l8nxd2] {
    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-person-check-fill-nav-menu[b-us59l8nxd2] {
    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-check-fill' viewBox='0 0 16 16'%3E%3Cpath d='M12.5 16a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm1.679-4.493-1.335 2.226a.75.75 0 0 1-1.174.144l-.774-.773a.5.5 0 0 1 .708-.708l.547.548 1.17-1.951a.5.5 0 1 1 .858.514ZM11 5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Zm-9 8c0 1 1 1 1 1h5.256A4.493 4.493 0 0 1 8 13.5c0-1.01.377-1.933 1-2.634V13c0-1.616.815-2.762 2.417-3.176.02-.02.032-.06.032-.06.007-.03-.008-.062-.049-.096A5.526 5.526 0 0 0 8 8c-5 0-6 3-6 4v1Z'/%3E%3C/svg%3E");
}

.bi-building-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-building-fill' viewBox='0 0 16 16'%3E%3Cpath d='M3 0a1 1 0 0 0-1 1v14H1a.5.5 0 0 0 0 1h14a.5.5 0 0 0 0-1h-1V1a1 1 0 0 0-1-1H3Zm2 14h2v-3H5v3Zm3-9v1H4V5h4Zm2 0h-1v1h1V5Zm-3 3v1H4V8h4Zm2 0h-1v1h1V8Zm-2 3v1H4v-1h4Zm2 0h-1v1h1v-1ZM5 2h1v1H5V2Zm3 0H7v1h1V2Zm2 0h1v1h-1V2Z'/%3E%3C/svg%3E");
}

.bi-briefcase-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-briefcase-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 1A1.5 1.5 0 0 0 5 2.5V3H1.5A1.5 1.5 0 0 0 0 4.5v1.978c.5.28 1.06.483 1.66.591C2.99 6.918 4.92 7 8 7s5.01-.082 6.34-.331c.6-.108 1.16-.31 1.66-.59V4.5A1.5 1.5 0 0 0 14.5 3H11v-.5A1.5 1.5 0 0 0 9.5 1h-3ZM10 3H6v-.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V3ZM0 7.686v4.816A1.5 1.5 0 0 0 1.5 14h13a1.5 1.5 0 0 0 1.5-1.5V7.686c-.408.204-.859.359-1.339.47C13.14 8.5 11.144 8.5 8 8.5s-5.14 0-6.661-.344A6.98 6.98 0 0 1 0 7.686ZM6.5 9.5A.5.5 0 0 1 7 9h2a.5.5 0 0 1 0 1H7a.5.5 0 0 1-.5-.5Z'/%3E%3C/svg%3E");
}

.bi-file-earmark-text-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-file-earmark-text-fill' viewBox='0 0 16 16'%3E%3Cpath d='M9.293 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.707A1 1 0 0 0 13.707 4L10 .293A1 1 0 0 0 9.293 0M9.5 3.5v-2l3 3h-2a1 1 0 0 1-1-1M4.5 9a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5'/%3E%3C/svg%3E");
}

.bi-clock-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-clock-fill' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0ZM8.5 4.5a.5.5 0 0 0-1 0v3.793l2.146 2.147a.5.5 0 0 0 .708-.708L8.5 7.793V4.5Z'/%3E%3C/svg%3E");
}

.bi-people-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-people-fill' viewBox='0 0 16 16'%3E%3Cpath d='M7 14s-1 0-1-1 1-4 5-4 5 3 5 4-1 1-1 1H7Zm4-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm-9.995 7H6c-.001-.246.076-.68.302-1.124C6.746 13.032 7.596 12 9 12H1.005ZM6 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E");
}

.bi-kanban-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-kanban-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 2a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h1.5a.5.5 0 0 0 .5-.5V2.5a.5.5 0 0 0-.5-.5H2Zm4 0a.5.5 0 0 0-.5.5v6a.5.5 0 0 0 .5.5h1.5a.5.5 0 0 0 .5-.5v-6a.5.5 0 0 0-.5-.5H6Zm4.5.5a.5.5 0 0 1 .5-.5H12a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-1.5a.5.5 0 0 1-.5-.5v-7Z'/%3E%3C/svg%3E");
}

.bi-box-seam-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-box-seam' viewBox='0 0 16 16'%3E%3Cpath d='M8.186 1.113a.5.5 0 0 0-.372 0L1.846 3.5l2.404.961L10.404 2l-2.218-.887zm3.564 1.426L5.596 5 8 5.961 14.154 3.5l-2.404-.961zm3.25 1.7-6.5 2.6v7.922l6.5-2.6V4.24zM7.5 14.762V6.838L1 4.239v7.923l6.5 2.6zM7.443.184a1.5 1.5 0 0 1 1.114 0l7.129 2.852A.5.5 0 0 1 16 3.5v8.662a1 1 0 0 1-.629.928l-7.185 2.874a.5.5 0 0 1-.372 0L.63 13.09a1 1 0 0 1-.63-.928V3.5a.5.5 0 0 1 .314-.464L7.443.184z'/%3E%3C/svg%3E");
}

.bi-phone-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-phone' viewBox='0 0 16 16'%3E%3Cpath d='M11 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h6zM5 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H5z'/%3E%3Cpath d='M8 14a1 1 0 1 0 0-2 1 1 0 0 0 0 2z'/%3E%3C/svg%3E");
}

.bi-question-circle-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-question-circle-fill' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0ZM5.496 6.033h.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.286a.237.237 0 0 0 .241.247zm2.325 6.443c.61 0 1.029-.394 1.029-.927 0-.552-.42-.94-1.029-.94-.584 0-1.009.388-1.009.94 0 .533.425.927 1.01.927z'/%3E%3C/svg%3E");
}

/* Quick Links: an "opens elsewhere" arrow, since every entry on that page is an external tool.
   It used to share the question mark with nothing else - see finding N6. */
.bi-box-arrow-up-right-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-box-arrow-up-right' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z'/%3E%3Cpath fill-rule='evenodd' d='M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z'/%3E%3C/svg%3E");
}

.bi-calendar-week-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-calendar-week-fill' viewBox='0 0 16 16'%3E%3Cpath d='M4 .5a.5.5 0 0 0-1 0V1H2a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2h-1V.5a.5.5 0 0 0-1 0V1H4V.5zM1 4a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v1H1V4zm0 2h14v9a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6zm7 2a1 1 0 1 0 0 2h4a1 1 0 1 0 0-2H8z'/%3E%3C/svg%3E");
}

.bi-award-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-award-fill' viewBox='0 0 16 16'%3E%3Cpath d='m8 0 1.669.864 1.858.282.842 1.68 1.337 1.32L13.4 6l.306 1.854-1.337 1.32-.842 1.68-1.858.282L8 12l-1.669-.864-1.858-.282-.842-1.68-1.337-1.32L2.6 6l-.306-1.854 1.337-1.32.842-1.68L6.331.864z'/%3E%3Cpath d='M4 11.794V16l4-1 4 1v-4.206l-2.018.306L8 13.126 6.018 12.1z'/%3E%3C/svg%3E");
}

.bi-bar-chart-steps-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-bar-chart-steps' viewBox='0 0 16 16'%3E%3Cpath d='M.5 0a.5.5 0 0 1 .5.5v15a.5.5 0 0 1-1 0V.5A.5.5 0 0 1 .5 0zM6 4a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V4zm-2 5a1 1 0 0 1 1-1h9a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9zm-2 5a1 1 0 0 1 1-1h11a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-1z'/%3E%3C/svg%3E");
}

.bi-credit-card-fill-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-credit-card-fill' viewBox='0 0 16 16'%3E%3Cpath d='M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v1H0V4Zm0 3h16v5a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V7Zm3 2a1 1 0 0 0 0 2h1a1 1 0 1 0 0-2H3Z'/%3E%3C/svg%3E");
}

.bi-graph-up-nav-menu[b-us59l8nxd2] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-graph-up' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M0 0h1v15h15v1H0V0Zm14.817 3.113a.5.5 0 0 1 .07.704l-4.5 5.5a.5.5 0 0 1-.74.037L7.06 6.767l-3.656 5.027a.5.5 0 0 1-.808-.588l4-5.5a.5.5 0 0 1 .758-.06l2.609 2.61 4.15-5.073a.5.5 0 0 1 .704-.07Z'/%3E%3C/svg%3E");
}

.nav-item[b-us59l8nxd2] {
    font-size: 0.85rem;
    padding: 0 0.75rem 0.2rem;
}

    .nav-item:first-of-type[b-us59l8nxd2] {
        padding-top: 0.75rem;
    }

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

    /* Sizing and color read straight off the Sales CRM's sidebar (crm.weavertech.us, 8/14/2026):
       14px / 700, 41px tall, 14px of left padding, 10px radius, and white-at-72% for a resting
       link rather than a custom pale blue. */
    .nav-item[b-us59l8nxd2]  .nav-link {
        color: rgba(255, 255, 255, .72);
        font-size: 14px;
        font-weight: 700;
        background: none;
        border: none;
        border-radius: 10px;
        height: 41px;
        display: flex;
        align-items: center;
        line-height: 41px;
        width: 100%;
        padding-left: 14px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

/* The CRM's active item is a translucent white wash over the navy, not a solid brand-blue fill.
   Solid #0079C2 was the loudest thing on the whole screen and read as a different product. That
   decision is about the BACKGROUND and stays; the text itself now goes to Weaver gold/yellow on
   click (Jason, 9/10 - corrected same day from an initial "orange" ask, matching the goal-bar fill
   color on Home/the Services Scoreboard). 6.77:1 against the navy sidebar - clears WCAG AA
   comfortably even for plain text, not just this bold 14px weight's large-text threshold (the
   orange this replaced was a borderline 3.55:1). */
.nav-item[b-us59l8nxd2]  a.active {
    background-color: rgba(255, 255, 255, .16);
    color: var(--gold, #EEBB3F);
}

.nav-item[b-us59l8nxd2]  .nav-link:hover {
    background-color: rgba(255, 255, 255, .08);
    color: #fff;
}

/* Without this, moving the mouse over the already-active item would flip its text white via the
   hover rule above (same specificity, later in the file) and back to gold on mouse-out - a
   flicker rather than a steady "this is where you are" indicator. */
.nav-item[b-us59l8nxd2]  a.active:hover {
    color: var(--gold, #EEBB3F);
}

.nav-scrollable[b-us59l8nxd2] {
    display: none;
}

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

@media (min-width: 641px) {
    .navbar-toggler[b-us59l8nxd2] {
        display: none;
    }

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

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 65px);
        overflow-y: auto;
    }
}

/* ---- Signed-in identity + sign out (Entra ID, backlog #175) ---- */

/* Pushed to the bottom of the nav column and separated by a rule, so "Sign out" reads as a
   different kind of action from the page links above it. */
.signed-in[b-us59l8nxd2] {
    margin-top: auto;
    padding-top: 0.75rem;
    padding-bottom: 0.5rem;
    border-top: 1px solid rgba(255,255,255,0.12);
}

/* .signed-in-name is gone (finding N7, 9/4): the name showed here AND in the top-right pill.
   The pill is the one identity display now, so this footer is just the Sign out action. */

.signed-in form[b-us59l8nxd2] {
    margin: 0;
}

/* Matches .nav-link above so the submit button is visually a nav item, not a form control. */
.signout-btn[b-us59l8nxd2] {
    color: #cdd7e8;
    font-weight: 600;
    background: none;
    border: none;
    border-radius: 8px;
    height: 2.75rem;
    display: flex;
    align-items: center;
    width: 100%;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    font-size: inherit;
}

.signout-btn:hover[b-us59l8nxd2] {
    background-color: rgba(255,255,255,0.08);
    color: #fff;
}

/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-flq7uk0e3i],
.components-reconnect-repeated-attempt-visible[b-flq7uk0e3i],
.components-reconnect-failed-visible[b-flq7uk0e3i],
.components-pause-visible[b-flq7uk0e3i],
.components-resume-failed-visible[b-flq7uk0e3i],
.components-rejoining-animation[b-flq7uk0e3i] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-flq7uk0e3i],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-flq7uk0e3i],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-flq7uk0e3i],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-flq7uk0e3i],
#components-reconnect-modal.components-reconnect-retrying[b-flq7uk0e3i],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-flq7uk0e3i],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-flq7uk0e3i],
#components-reconnect-modal.components-reconnect-failed[b-flq7uk0e3i],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-flq7uk0e3i] {
    display: block;
}


#components-reconnect-modal[b-flq7uk0e3i] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-flq7uk0e3i 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-flq7uk0e3i 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-flq7uk0e3i 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-flq7uk0e3i]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-flq7uk0e3i 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-flq7uk0e3i {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-flq7uk0e3i {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-flq7uk0e3i {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-flq7uk0e3i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-flq7uk0e3i] {
    margin: 0;
    text-align: center;
}

/* Weaver blue, not the Blazor template's stock blues - this overlay is the one screen everyone
   sees when a circuit hiccups, so it should look like ours. */
#components-reconnect-modal button[b-flq7uk0e3i] {
    border: 0;
    background-color: #0079C2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
    font-family: "Montserrat", Arial, sans-serif;
    font-weight: 600;
}

    #components-reconnect-modal button:hover[b-flq7uk0e3i] {
        background-color: #0068a8;
    }

    #components-reconnect-modal button:active[b-flq7uk0e3i] {
        background-color: #005a91;
    }

.components-rejoining-animation[b-flq7uk0e3i] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-flq7uk0e3i] {
        position: absolute;
        border: 3px solid #00A4E4;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-flq7uk0e3i 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-flq7uk0e3i] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-flq7uk0e3i {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/AccountManager/AccountManagerView.razor.rz.scp.css */
/* KPI tile click-through - same pattern as My Workbench's PM KPI strip. Only tiles with a
   nonzero count get the pointer/hover treatment since a tile sitting at 0 has nothing to filter to. */
.kpi-clickable[b-l72rp6utx6] {
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.kpi-clickable:hover[b-l72rp6utx6] {
    box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
    transform: translateY(-1px);
}

/* Lets multi-word column headers (Block Hours Remaining, Agreement Expiration, etc.) wrap onto a
   second line and stay a reasonable width, instead of stretching the whole table wider than it
   needs to be to fit one long header on a single line. */
.wrap-header[b-l72rp6utx6] {
    white-space: normal;
    max-width: 110px;
}
/* /Components/Pages/MyTracker/MyWorkbenchCheckIn.razor.rz.scp.css */
/* Mood picker for the Weekly Check-In form. These rules used to live in MyTracker.razor.css,
   but Blazor CSS isolation scopes a .razor.css file to the component that owns it - the mood
   buttons are rendered by THIS component, so over there the selectors never matched and the
   picker rendered unstyled. Moved here so the scoping attribute actually lands on the buttons. */
.mood-btn[b-l9utwy6z3x] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    background: none;
    border: 2px solid transparent;
    border-radius: 12px;
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    transition: transform 0.1s ease, border-color 0.1s ease;
}

.mood-btn:hover[b-l9utwy6z3x] {
    border-color: var(--line, #e3e8f0);
}

.mood-btn.selected[b-l9utwy6z3x] {
    border-color: var(--blue, #0079C2);
    transform: scale(1.08);
}

.mood-emoji[b-l9utwy6z3x] {
    font-size: 2rem;
    line-height: 1;
}

.mood-label[b-l9utwy6z3x] {
    font-size: 0.75rem;
    color: var(--muted, #6b7482);
}

.mood-btn.selected .mood-label[b-l9utwy6z3x] {
    color: var(--blue, #0079C2);
    font-weight: 600;
}
/* /Components/Pages/MyTracker/PersonalWorkbenchBody.razor.rz.scp.css */
/* Mood picker styles moved to MyWorkbenchCheckIn.razor.css - CSS isolation scopes this file to
   MyTracker.razor, and the mood buttons render in MyWorkbenchCheckIn.razor, so the rules never
   applied from here. */

/* Temporary highlight for a card that was jumped to but has more than one match, so there's no
   single row to land on (e.g. Unassigned Tasks). Fades in, holds, then the C# side clears the
   class after ~2.5s - see JumpToUnassignedAsync. */
.kpi-flash[b-3lfye1vis0] {
    animation: kpi-flash-pulse-b-3lfye1vis0 2.5s ease-out;
}

@keyframes kpi-flash-pulse-b-3lfye1vis0 {
    0% {
        box-shadow: 0 0 0 3px rgba(0, 121, 194, 0.5);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(0, 121, 194, 0);
    }
}
/* /Components/Pages/PhonePreview.razor.rz.scp.css */
.stage[b-vql4b8ujuw] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 14px 16px 18px;
    background: #1F3467;
    color: #fff;
    font-family: Montserrat, Arial, sans-serif;
}

.bar[b-vql4b8ujuw] {
    width: 100%;
    max-width: 1100px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}

.muted[b-vql4b8ujuw] { color: #b9c6e4; font-size: .85rem; }
.spacer[b-vql4b8ujuw] { flex: 1 1 auto; }

.chip[b-vql4b8ujuw] {
    color: #fff;
    text-decoration: none;
    font-size: .8rem;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: 99px;
    border: 1px solid #5d78b5;
}

.chip:hover[b-vql4b8ujuw] { border-color: #fff; }
.chip.on[b-vql4b8ujuw] { background: #0079C2; border-color: #0079C2; }

/* The device: width is the real phone width (so the app's media queries fire), height shrinks to fit the screen
   rather than scaling, because scaling would change the width the page sees. */
.device[b-vql4b8ujuw] {
    width: var(--w);
    max-width: 100%;
    height: min(var(--h), calc(100vh - 150px));
    background: #1A1A1A;
    border-radius: 28px;
    padding: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, .45);
    box-sizing: content-box;
}

iframe[b-vql4b8ujuw] {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 18px;
    background: #fff;
    display: block;
}

.hint[b-vql4b8ujuw] { margin: 0; font-size: .78rem; color: #b9c6e4; text-align: center; max-width: 60ch; }
