/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-1kdj8voxy6] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-1kdj8voxy6] {
    flex: 1;
}

.sidebar[b-1kdj8voxy6] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-1kdj8voxy6] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-1kdj8voxy6]  a, .top-row[b-1kdj8voxy6]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-1kdj8voxy6]  a:hover, .top-row[b-1kdj8voxy6]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-1kdj8voxy6]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-1kdj8voxy6] {
        justify-content: space-between;
    }

    .top-row[b-1kdj8voxy6]  a, .top-row[b-1kdj8voxy6]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-1kdj8voxy6] {
        flex-direction: row;
    }

    .sidebar[b-1kdj8voxy6] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-1kdj8voxy6] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-1kdj8voxy6]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-1kdj8voxy6], article[b-1kdj8voxy6] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-1kdj8voxy6] {
    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-1kdj8voxy6] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-2dvy1xcygx] {
    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-2dvy1xcygx] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-2dvy1xcygx] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-2dvy1xcygx] {
    font-size: 1.1rem;
}

.bi[b-2dvy1xcygx] {
    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-2dvy1xcygx] {
    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-2dvy1xcygx] {
    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-2dvy1xcygx] {
    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-lock-nav-menu[b-2dvy1xcygx] {
    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-2dvy1xcygx] {
    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-2dvy1xcygx] {
    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-2dvy1xcygx] {
    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-2dvy1xcygx] {
    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");
}

.nav-item[b-2dvy1xcygx] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-2dvy1xcygx] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-2dvy1xcygx] {
        padding-bottom: 1rem;
    }

    .nav-item[b-2dvy1xcygx]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-2dvy1xcygx]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-2dvy1xcygx]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-2dvy1xcygx] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-2dvy1xcygx] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-2dvy1xcygx] {
        display: none;
    }

    .nav-scrollable[b-2dvy1xcygx] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Stat cards are links. Fill the grid cell, drop the anchor's underline/colour, and lift on hover so the
   whole card reads as clickable. ::deep reaches the MudPaper, which renders outside this component's scope. */
.stat-link[b-z76r6sx8oh] {
    display: block;
    text-decoration: none;
    color: inherit;
}

.stat-link[b-z76r6sx8oh]  .mud-paper {
    cursor: pointer;
    transition: box-shadow .15s ease, transform .15s ease;
}

.stat-link:hover[b-z76r6sx8oh]  .mud-paper {
    transform: translateY(-2px);
    box-shadow: var(--mud-elevation-8);
}
/* /Components/Pages/PaymentLinks.razor.rz.scp.css */
/* Table layout — same pattern as Upload Sessions (see the tables note in CLAUDE.md). The pager pins to
   the bottom of the viewport, the header stays put while the body scrolls, and every row is one height so
   paging never shifts anything. Row height is smaller here than Upload Sessions: these rows carry a single
   claimant line, not a document-flow bar. */
.pl-table-wrap[b-dxtn6qwg4s]  .mud-table-container {
    height: calc(100vh - 280px);
    overflow-y: auto;
}

.pl-table-wrap[b-dxtn6qwg4s]  thead {
    position: sticky;
    top: 0;
    z-index: 3;
}

.pl-table-wrap[b-dxtn6qwg4s]  thead th {
    background: var(--mud-palette-surface);
}

.pl-table-wrap[b-dxtn6qwg4s]  tbody td {
    height: max(40px, calc((100vh - 335px) / 14));
    padding-top: 6px;
    padding-bottom: 6px;
}

/* Note: unlike Upload Sessions, this table does NOT show the reload progress bar — it is suppressed in
   app.css (.pl-table .mud-progress-linear) because a live change-ping reloads the table constantly and the
   bar would flicker. So the loading-overlay rules from the standard table pattern are deliberately absent. */

/* Cell contents only. Row tint, column centring and the status pulse are in wwwroot/app.css. */

.pl-claimant[b-dxtn6qwg4s] {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
    min-width: 0;
}

/* On these lines, not the whole td — a blanket rule clipped the Type chip. */
.pl-name[b-dxtn6qwg4s],
.pl-sub[b-dxtn6qwg4s] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pl-name[b-dxtn6qwg4s] {
    font-weight: 600;
}

.pl-sub[b-dxtn6qwg4s] {
    font-size: 0.72rem;
    color: var(--mud-palette-text-secondary);
}

.pl-sub-warn[b-dxtn6qwg4s] {
    color: var(--mud-palette-warning-darken);
    text-decoration: underline dotted;
    cursor: help;
}

/* min-width stops the resend spinner shifting the row mid-action. */
.pl-actions[b-dxtn6qwg4s] {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 40px;
}

.pl-status[b-dxtn6qwg4s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.pl-amount[b-dxtn6qwg4s] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

/* Authorisation ceilings, not charges. */
.pl-amount-auth[b-dxtn6qwg4s] {
    color: var(--mud-palette-text-secondary);
    font-style: italic;
    font-weight: 400;
}
/* /Components/Pages/UploadSessions.razor.rz.scp.css */
/* MudTable injects a loading <tr> on every ServerData reload (each page change/filter).
   In flow it adds height and shifts the rows on and off — take it out of flow so the bar
   overlays the top of the body instead. */
.sessions-table[b-h8yt5qlh8l]  .mud-table-loading {
    height: 0;
}

.sessions-table[b-h8yt5qlh8l]  .mud-table-loading > td {
    padding: 0;
    border: 0;
    height: 0;
}

.sessions-table[b-h8yt5qlh8l]  .mud-table-loading .mud-table-loading-progress {
    position: absolute;
    left: 0;
    right: 0;
}

/* Fixed-height scroll container tied to the viewport: the pager is always pinned to the bottom, so a
   sparse page no longer jumps it up, and the body height never changes across pages. 100vh self-
   corrects to the real window; the subtracted px are the space above the table + the pager + a bottom
   margin. Header is made sticky so it stays while the body scrolls. */
.sessions-table[b-h8yt5qlh8l]  .mud-table-container {
    height: calc(100vh - 280px);
    overflow-y: auto;
}

.sessions-table[b-h8yt5qlh8l]  thead {
    position: sticky;
    top: 0;
    z-index: 3;
}

.sessions-table[b-h8yt5qlh8l]  thead th {
    background: var(--mud-palette-surface);
}

/* Rows fill a full page exactly (no bottom gap) and stay one height, so populated and sparse rows
   match and paging never shifts anything. max() floors the height on short windows so cell content
   can't clip — the container scrolls instead. Trimmed the default 16px cell padding to keep rows
   compact. */
.sessions-table[b-h8yt5qlh8l]  tbody td {
    height: max(48px, calc((100vh - 335px) / 10));
    padding-top: 8px;
    padding-bottom: 8px;
}

/* Segmented document-flow bar for the Upload Sessions table.
   Colours come from the MudBlazor palette variables, so light/dark themes work automatically. */

.seg-cell[b-h8yt5qlh8l] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 150px;
}

/* The bar opens the per-file diagnostic, so it needs to read as clickable. */
.seg-clickable[b-h8yt5qlh8l] {
    cursor: pointer;
}

.seg-clickable:hover .segbar[b-h8yt5qlh8l] {
    filter: brightness(1.1);
    box-shadow: 0 0 0 2px var(--mud-palette-action-default-hover);
}

.segbar[b-h8yt5qlh8l] {
    display: flex;
    width: 150px;
    height: 10px;
    border-radius: 5px;
    overflow: hidden;
    background: var(--mud-palette-action-disabled-background);
}

.seg[b-h8yt5qlh8l] {
    display: block;
    height: 100%;
}

.seg-ok[b-h8yt5qlh8l] {
    background: var(--mud-palette-success);
}

.seg-warn[b-h8yt5qlh8l] {
    background: var(--mud-palette-warning);
}

.seg-err[b-h8yt5qlh8l] {
    background: var(--mud-palette-error);
}

.segcap[b-h8yt5qlh8l] {
    font-size: 0.72rem;
    line-height: 1.1;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.segcap-strong[b-h8yt5qlh8l] {
    color: var(--mud-palette-text-primary);
    font-weight: 600;
}
