/* _content/Ayva.Finance.Treasury/Components/Admin/CommitmentsTab.razor.rz.scp.css */
/* CommitmentsTab — a list of claims on cash, each with the bank rows that
   have answered it. Desktop-first; the header and the row heads stack at
   768. Tokens only. */

.treasury-commitments[b-eq2u8ycvl1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
    min-width: 0;
}

.treasury-commitments-head[b-eq2u8ycvl1] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-lg);
    flex-wrap: wrap;
}

.treasury-commitments-heading[b-eq2u8ycvl1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
    max-width: 46rem;
}

.treasury-commitments-title[b-eq2u8ycvl1] {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
}

.treasury-commitments-sub[b-eq2u8ycvl1] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
    line-height: 1.5;
}

.treasury-commitments-actions[b-eq2u8ycvl1] {
    display: flex;
    gap: var(--space-xs);
    flex-wrap: wrap;
}

.treasury-commitments-loading[b-eq2u8ycvl1] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-2xl);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

/* ── Rows ──────────────────────────────────────────────────────────────── */

.treasury-commitment-list[b-eq2u8ycvl1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.treasury-card[b-eq2u8ycvl1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    padding: var(--space-lg);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    min-width: 0;
}

.treasury-card-bad[b-eq2u8ycvl1] {
    flex-direction: row;
    align-items: center;
    color: var(--error-color);
    font-size: var(--text-sm);
}

.treasury-commitment-head[b-eq2u8ycvl1] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-lg);
}

.treasury-commitment-title[b-eq2u8ycvl1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
}

.treasury-commitment-description[b-eq2u8ycvl1] {
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    overflow-wrap: anywhere;
}

.treasury-commitment-meta[b-eq2u8ycvl1] {
    color: var(--text-muted);
    font-size: var(--text-2xs);
}

.treasury-commitment-figures[b-eq2u8ycvl1] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-2xs);
}

.treasury-commitment-amount[b-eq2u8ycvl1] {
    font-size: var(--text-base);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.treasury-commitment-note[b-eq2u8ycvl1] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-2xs);
    line-height: 1.5;
}

.treasury-commitment-actions[b-eq2u8ycvl1] {
    display: flex;
    gap: var(--space-xs);
}

/* ── Matches ───────────────────────────────────────────────────────────── */

.treasury-match-list[b-eq2u8ycvl1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin: 0;
    padding: var(--space-md);
    list-style: none;
    background: var(--bg-elevated);
    border-radius: var(--radius-md);
}

.treasury-match-row[b-eq2u8ycvl1] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-md);
    font-size: var(--text-xs);
}

.treasury-match-what[b-eq2u8ycvl1] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.treasury-match-when[b-eq2u8ycvl1] {
    display: block;
    color: var(--text-muted);
    font-size: var(--text-2xs);
}

.treasury-match-amount[b-eq2u8ycvl1] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* ── Badges ────────────────────────────────────────────────────────────── */

.treasury-badge[b-eq2u8ycvl1] {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-xs);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-2xs);
    color: var(--text-secondary);
    font-size: var(--text-2xs);
    line-height: 1.6;
    white-space: nowrap;
}

.treasury-badge-open[b-eq2u8ycvl1] {
    border-color: color-mix(in srgb, var(--accent-color) 45%, transparent);
    color: var(--accent-color-light);
}

.treasury-badge-warn[b-eq2u8ycvl1] {
    border-color: color-mix(in srgb, var(--warning-color) 45%, transparent);
    color: var(--warning-color);
}

.treasury-badge-good[b-eq2u8ycvl1] {
    border-color: color-mix(in srgb, var(--success-color) 45%, transparent);
    color: var(--success-color);
}

.treasury-badge-muted[b-eq2u8ycvl1] {
    color: var(--text-muted);
}

/* ── Shared ────────────────────────────────────────────────────────────── */

.treasury-empty[b-eq2u8ycvl1] {
    margin: 0;
    padding: var(--space-2xl) 0;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.treasury-action[b-eq2u8ycvl1] {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-target-min);
    padding: var(--space-sm) var(--space-lg);
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-xs);
    cursor: pointer;
    white-space: nowrap;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.treasury-action:hover:not(:disabled)[b-eq2u8ycvl1] {
    border-color: var(--accent-color);
    color: var(--accent-color-light);
}

.treasury-action:disabled[b-eq2u8ycvl1] {
    opacity: 0.5;
    cursor: not-allowed;
}

.treasury-action:focus-visible[b-eq2u8ycvl1] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/* ── Responsive ────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .treasury-commitment-head[b-eq2u8ycvl1] {
        flex-direction: column;
    }

    .treasury-commitment-figures[b-eq2u8ycvl1] {
        align-items: flex-start;
        flex-direction: row;
        gap: var(--space-sm);
    }
}

@media (max-width: 640px) {
    .treasury-match-row[b-eq2u8ycvl1] {
        flex-direction: column;
        gap: var(--space-2xs);
    }
}

@media (prefers-reduced-motion: reduce) {
    .treasury-action[b-eq2u8ycvl1] {
        transition: none;
    }
}
/* _content/Ayva.Finance.Treasury/Components/Admin/ForecastTab.razor.rz.scp.css */
/* ForecastTab — a wide day table with a per-day drawer. Desktop-first: the
   table scrolls inside its own box rather than pushing the page sideways,
   because a per-source column count is data-driven and can exceed any
   breakpoint. Tokens only. */

.treasury-forecast[b-i5gvs9hdmq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
    min-width: 0;
}

.treasury-forecast-head[b-i5gvs9hdmq] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-lg);
    flex-wrap: wrap;
}

.treasury-forecast-heading[b-i5gvs9hdmq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
}

.treasury-forecast-title[b-i5gvs9hdmq] {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
}

.treasury-forecast-sub[b-i5gvs9hdmq] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
}

.treasury-forecast-loading[b-i5gvs9hdmq] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-2xl);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

/* ── Cards ─────────────────────────────────────────────────────────────── */

.treasury-card[b-i5gvs9hdmq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    padding: var(--space-lg);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    min-width: 0;
}

.treasury-card-bad[b-i5gvs9hdmq] {
    flex-direction: row;
    align-items: center;
    color: var(--error-color);
    font-size: var(--text-sm);
}

.treasury-card-head[b-i5gvs9hdmq] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-md);
    flex-wrap: wrap;
}

.treasury-card-title[b-i5gvs9hdmq] {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary);
}

.treasury-card-meta[b-i5gvs9hdmq] {
    color: var(--text-muted);
    font-size: var(--text-2xs);
}

/* ── What-if ───────────────────────────────────────────────────────────── */

.treasury-whatif-form[b-i5gvs9hdmq] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-md);
}

.treasury-whatif-answer[b-i5gvs9hdmq] {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1.5;
}

.treasury-whatif-sufficient[b-i5gvs9hdmq] {
    color: var(--success-color);
}

.treasury-whatif-insufficient[b-i5gvs9hdmq] {
    color: var(--error-color);
}

.treasury-whatif-unknown[b-i5gvs9hdmq] {
    color: var(--warning-color);
}

.treasury-whatif-note[b-i5gvs9hdmq] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-2xs);
}

/* ── Day table ─────────────────────────────────────────────────────────── */

.treasury-forecast-table[b-i5gvs9hdmq] {
    overflow-x: auto;
    min-width: 0;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
}

.treasury-day-table[b-i5gvs9hdmq] {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-xs);
}

.treasury-day-caption[b-i5gvs9hdmq] {
    padding: var(--space-md) var(--space-lg);
    color: var(--text-muted);
    font-size: var(--text-2xs);
    text-align: left;
}

.treasury-day-table th[b-i5gvs9hdmq],
.treasury-day-table td[b-i5gvs9hdmq] {
    padding: var(--space-sm) var(--space-md);
    text-align: left;
    white-space: nowrap;
    border-bottom: 1px solid var(--border-color);
}

.treasury-day-table thead th[b-i5gvs9hdmq] {
    position: sticky;
    top: 0;
    background: var(--bg-card-solid);
    color: var(--text-secondary);
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: var(--text-2xs);
}

.treasury-day-number[b-i5gvs9hdmq] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.treasury-day-closing[b-i5gvs9hdmq] {
    font-weight: var(--font-semibold);
}

.treasury-day-in[b-i5gvs9hdmq] {
    color: var(--success-color);
}

.treasury-day-out[b-i5gvs9hdmq] {
    color: var(--warning-color);
}

/* --chart-breach, not --error-color: this row and the band shading the same
   day in the Overview's chart are one fact, so they are one colour. */
.treasury-day-breach th[scope="row"][b-i5gvs9hdmq] {
    color: var(--chart-breach);
}

.treasury-day-why[b-i5gvs9hdmq] {
    min-height: var(--tap-target-min);
    padding: var(--space-2xs) var(--space-sm);
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-family: var(--font-primary);
    font-size: var(--text-2xs);
    cursor: pointer;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.treasury-day-why:hover[b-i5gvs9hdmq] {
    border-color: var(--accent-color);
    color: var(--accent-color-light);
}

.treasury-day-why:focus-visible[b-i5gvs9hdmq] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/* ── Drawer ────────────────────────────────────────────────────────────── */

.treasury-day-drawer-row td[b-i5gvs9hdmq] {
    white-space: normal;
    background: var(--bg-elevated);
}

.treasury-day-drawer[b-i5gvs9hdmq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    padding: var(--space-sm) 0;
}

.treasury-contributors[b-i5gvs9hdmq] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin: 0;
    padding: 0;
    list-style: none;
}

.treasury-contributor[b-i5gvs9hdmq] {
    display: grid;
    grid-template-columns: minmax(0, 14rem) minmax(0, 1fr) auto;
    align-items: baseline;
    gap: var(--space-md);
}

.treasury-contributor-source[b-i5gvs9hdmq] {
    color: var(--text-secondary);
}

.treasury-contributor-what[b-i5gvs9hdmq] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.treasury-contributor-reference[b-i5gvs9hdmq] {
    display: block;
    color: var(--text-muted);
    font-family: var(--font-mono);
    font-size: var(--text-2xs);
}

.treasury-contributor-amount[b-i5gvs9hdmq] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.treasury-contributor-note[b-i5gvs9hdmq] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-2xs);
    line-height: 1.5;
}

/* ── Badges + shared ───────────────────────────────────────────────────── */

.treasury-badge[b-i5gvs9hdmq] {
    display: inline-flex;
    align-items: center;
    margin-left: var(--space-xs);
    padding: 0 var(--space-xs);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-2xs);
    font-size: var(--text-2xs);
    line-height: 1.6;
}

.treasury-badge-breach[b-i5gvs9hdmq] {
    border-color: color-mix(in srgb, var(--chart-breach) 55%, transparent);
    color: var(--chart-breach);
}

.treasury-empty[b-i5gvs9hdmq] {
    margin: 0;
    padding: var(--space-lg) 0;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.treasury-visually-hidden[b-i5gvs9hdmq] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.treasury-action[b-i5gvs9hdmq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--tap-target-min);
    padding: var(--space-sm) var(--space-lg);
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-xs);
    cursor: pointer;
    white-space: nowrap;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.treasury-action:hover:not(:disabled)[b-i5gvs9hdmq] {
    border-color: var(--accent-color);
    color: var(--accent-color-light);
}

.treasury-action:disabled[b-i5gvs9hdmq] {
    opacity: 0.5;
    cursor: not-allowed;
}

.treasury-action:focus-visible[b-i5gvs9hdmq] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/* ── Responsive ────────────────────────────────────────────────────────── */

@media (max-width: 1200px) {
    .treasury-contributor[b-i5gvs9hdmq] {
        grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) auto;
    }
}

@media (max-width: 768px) {
    .treasury-whatif-form[b-i5gvs9hdmq] {
        grid-template-columns: minmax(0, 1fr);
    }

    .treasury-contributor[b-i5gvs9hdmq] {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .treasury-contributor-source[b-i5gvs9hdmq] {
        grid-column: 1 / -1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .treasury-action[b-i5gvs9hdmq],
    .treasury-day-why[b-i5gvs9hdmq] {
        transition: none;
    }
}
/* _content/Ayva.Finance.Treasury/Components/Admin/OverviewTab.razor.rz.scp.css */
/* OverviewTab — the treasury's front page. Desktop-first (an operations
   console), collapsing at 1200 / 768 / 640. Tokens only. */

.treasury-overview[b-vht5tq4nli] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xl);
    min-width: 0;
}

.treasury-overview-loading[b-vht5tq4nli] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-2xl);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

/* ── Header ────────────────────────────────────────────────────────────── */

.treasury-overview-head[b-vht5tq4nli] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-lg);
    flex-wrap: wrap;
}

.treasury-overview-heading[b-vht5tq4nli] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
}

.treasury-overview-title[b-vht5tq4nli] {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
}

.treasury-overview-sub[b-vht5tq4nli] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
}

/* ── Cards ─────────────────────────────────────────────────────────────── */

.treasury-card[b-vht5tq4nli] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    padding: var(--space-xl);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    min-width: 0;
}

.treasury-card-head[b-vht5tq4nli] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-md);
}

.treasury-card-title[b-vht5tq4nli] {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary);
}

.treasury-card-meta[b-vht5tq4nli] {
    color: var(--text-muted);
    font-size: var(--text-2xs);
}

.treasury-card-bad[b-vht5tq4nli] {
    flex-direction: row;
    align-items: center;
    color: var(--error-color);
    font-size: var(--text-sm);
}

.treasury-card-warn[b-vht5tq4nli] {
    flex-direction: row;
    align-items: flex-start;
    border-color: color-mix(in srgb, var(--warning-color) 45%, transparent);
}

/* A setup prompt is a card that is supposed to disappear — it reads as an
   instruction, not as a permanent panel. */
.treasury-card-prompt[b-vht5tq4nli] {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--space-md);
    border-color: color-mix(in srgb, var(--accent-color) 40%, transparent);
}

.treasury-prompt-text[b-vht5tq4nli] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
    flex: 1 1 auto;
}

.treasury-prompt-headline[b-vht5tq4nli] {
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
}

.treasury-prompt-detail[b-vht5tq4nli] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
    line-height: 1.5;
}

/* ── Figures ───────────────────────────────────────────────────────────── */

.treasury-overview-figures[b-vht5tq4nli] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-lg);
}

.treasury-figure[b-vht5tq4nli] {
    gap: var(--space-2xs);
}

.treasury-figure-label[b-vht5tq4nli] {
    color: var(--text-secondary);
    font-size: var(--text-2xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.treasury-figure-value[b-vht5tq4nli] {
    font-size: var(--text-xl);
    font-weight: var(--font-semibold);
    line-height: 1.2;
}

.treasury-figure-detail[b-vht5tq4nli] {
    color: var(--text-muted);
    font-size: var(--text-2xs);
    overflow-wrap: anywhere;
}

.treasury-figure-warn .treasury-figure-value[b-vht5tq4nli] {
    color: var(--warning-color);
}

/* ── Chart card ────────────────────────────────────────────────────────── */

.treasury-chart-card[b-vht5tq4nli] {
    gap: var(--space-md);
}

.treasury-chart-callout[b-vht5tq4nli] {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.treasury-chart-callout strong[b-vht5tq4nli] {
    color: var(--text-primary);
    font-weight: var(--font-semibold);
}

/* ── Inputs + payroll ──────────────────────────────────────────────────── */

.treasury-overview-grid[b-vht5tq4nli] {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    align-items: start;
    gap: var(--space-lg);
}

.treasury-inputs-alarm[b-vht5tq4nli] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    padding: var(--space-md);
    background: var(--warning-color-light);
    border: 1px solid color-mix(in srgb, var(--warning-color) 55%, transparent);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-size: var(--text-xs);
    line-height: 1.5;
}

.treasury-source-list[b-vht5tq4nli] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin: 0;
    padding: 0;
    list-style: none;
}

.treasury-source-row[b-vht5tq4nli] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-md);
    font-size: var(--text-sm);
}

.treasury-source-name[b-vht5tq4nli] {
    color: var(--text-secondary);
    min-width: 0;
}

.treasury-source-value[b-vht5tq4nli] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.treasury-source-in[b-vht5tq4nli] {
    color: var(--success-color);
}

.treasury-source-out[b-vht5tq4nli] {
    color: var(--text-primary);
}

.treasury-source-note[b-vht5tq4nli] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-xs);
    line-height: 1.5;
}

.treasury-source-gaps[b-vht5tq4nli] {
    color: var(--warning-color);
}

.treasury-chip[b-vht5tq4nli] {
    display: inline-flex;
    align-items: center;
    padding: var(--space-2xs) var(--space-sm);
    border-radius: var(--radius-full);
    font-size: var(--text-2xs);
    white-space: nowrap;
}

.treasury-chip-warn[b-vht5tq4nli] {
    background: var(--warning-color-light);
    color: var(--warning-color);
}

/* ── Facts + shared bits ───────────────────────────────────────────────── */

.treasury-facts[b-vht5tq4nli] {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    margin: 0;
}

.treasury-facts > div[b-vht5tq4nli] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-md);
}

.treasury-facts dt[b-vht5tq4nli] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
}

.treasury-facts dd[b-vht5tq4nli] {
    margin: 0;
    font-size: var(--text-sm);
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.treasury-empty[b-vht5tq4nli] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.treasury-action[b-vht5tq4nli] {
    align-self: flex-start;
    min-height: var(--tap-target-min);
    padding: var(--space-sm) var(--space-lg);
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-xs);
    cursor: pointer;
    white-space: nowrap;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.treasury-action:hover:not(:disabled)[b-vht5tq4nli] {
    border-color: var(--accent-color);
    color: var(--accent-color-light);
}

.treasury-action:disabled[b-vht5tq4nli] {
    opacity: 0.5;
    cursor: not-allowed;
}

.treasury-action:focus-visible[b-vht5tq4nli] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/* ── Responsive ────────────────────────────────────────────────────────── */

/* 1200: the two-column collapse the Gusto panel introduced — a laptop is not
   a phone, but a 3fr/2fr split stops being readable well before 768. */
@media (max-width: 1200px) {
    .treasury-overview-figures[b-vht5tq4nli] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .treasury-overview-grid[b-vht5tq4nli] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 768px) {
    .treasury-overview[b-vht5tq4nli] {
        gap: var(--space-lg);
    }

    .treasury-card[b-vht5tq4nli] {
        padding: var(--space-lg);
    }
}

@media (max-width: 640px) {
    .treasury-overview-figures[b-vht5tq4nli] {
        grid-template-columns: minmax(0, 1fr);
    }

    .treasury-card-prompt[b-vht5tq4nli],
    .treasury-card-warn[b-vht5tq4nli] {
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .treasury-action[b-vht5tq4nli] {
        transition: none;
    }
}
/* _content/Ayva.Finance.Treasury/Components/Admin/PatternEditDialog.razor.rz.scp.css */
/* PatternEditDialog — the read-only figure list a detected row shows instead
   of editable fields. MudBlazor owns everything else in this dialog. */

.treasury-dialog-facts[b-2t5jp57lq7] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin: 0;
}

.treasury-dialog-facts > div[b-2t5jp57lq7] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-md);
}

.treasury-dialog-facts dt[b-2t5jp57lq7] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
}

.treasury-dialog-facts dd[b-2t5jp57lq7] {
    margin: 0;
    font-size: var(--text-sm);
    font-variant-numeric: tabular-nums;
    text-align: right;
}
/* _content/Ayva.Finance.Treasury/Components/Admin/RecurringTab.razor.rz.scp.css */
/* RecurringTab — four groups of cards. Desktop-first; the card grid narrows
   at 1200 and stacks at 768. Tokens only. */

.treasury-recurring[b-glsl6auw67] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xl);
    min-width: 0;
}

.treasury-recurring-head[b-glsl6auw67] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-lg);
    flex-wrap: wrap;
}

.treasury-recurring-heading[b-glsl6auw67] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
    max-width: 46rem;
}

.treasury-recurring-title[b-glsl6auw67] {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
}

.treasury-recurring-sub[b-glsl6auw67] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
    line-height: 1.5;
}

.treasury-recurring-loading[b-glsl6auw67] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-2xl);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

/* ── Groups ────────────────────────────────────────────────────────────── */

.treasury-recurring-group[b-glsl6auw67] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    min-width: 0;
}

.treasury-group-head[b-glsl6auw67] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
}

.treasury-group-title[b-glsl6auw67] {
    margin: 0;
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-secondary);
}

.treasury-group-meta[b-glsl6auw67] {
    color: var(--text-muted);
    font-size: var(--text-xs);
    line-height: 1.5;
}

/* ── Pattern cards ─────────────────────────────────────────────────────── */

.treasury-pattern-cards[b-glsl6auw67] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
    align-items: start;
}

.treasury-card[b-glsl6auw67] {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    padding: var(--space-lg);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    min-width: 0;
}

.treasury-card-bad[b-glsl6auw67] {
    flex-direction: row;
    align-items: center;
    color: var(--error-color);
    font-size: var(--text-sm);
}

.treasury-pattern-head[b-glsl6auw67] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-md);
}

.treasury-pattern-label[b-glsl6auw67] {
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    overflow-wrap: anywhere;
}

.treasury-pattern-amount[b-glsl6auw67] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.treasury-pattern-in[b-glsl6auw67] {
    color: var(--success-color);
}

.treasury-pattern-out[b-glsl6auw67] {
    color: var(--text-primary);
}

.treasury-pattern-anchor[b-glsl6auw67] {
    display: block;
    color: var(--text-muted);
    font-size: var(--text-2xs);
}

.treasury-pattern-note[b-glsl6auw67] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-2xs);
    line-height: 1.5;
}

.treasury-pattern-actions[b-glsl6auw67] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

/* ── Facts + shared ────────────────────────────────────────────────────── */

.treasury-facts[b-glsl6auw67] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin: 0;
}

.treasury-facts > div[b-glsl6auw67] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-md);
}

.treasury-facts dt[b-glsl6auw67] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
    white-space: nowrap;
}

.treasury-facts dd[b-glsl6auw67] {
    margin: 0;
    font-size: var(--text-xs);
    text-align: right;
    overflow-wrap: anywhere;
}

.treasury-empty[b-glsl6auw67] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.treasury-action[b-glsl6auw67] {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-target-min);
    padding: var(--space-sm) var(--space-lg);
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-xs);
    cursor: pointer;
    white-space: nowrap;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.treasury-action:hover:not(:disabled)[b-glsl6auw67] {
    border-color: var(--accent-color);
    color: var(--accent-color-light);
}

.treasury-action:disabled[b-glsl6auw67] {
    opacity: 0.5;
    cursor: not-allowed;
}

.treasury-action:focus-visible[b-glsl6auw67] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/* ── Responsive ────────────────────────────────────────────────────────── */

@media (max-width: 1200px) {
    .treasury-pattern-cards[b-glsl6auw67] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .treasury-recurring[b-glsl6auw67] {
        gap: var(--space-xl);
    }

    .treasury-pattern-cards[b-glsl6auw67] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .treasury-pattern-actions .treasury-action[b-glsl6auw67] {
        flex: 1 1 auto;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .treasury-action[b-glsl6auw67] {
        transition: none;
    }
}
/* _content/Ayva.Finance.Treasury/Components/Admin/SettingsTab.razor.rz.scp.css */
/* SettingsTab — a column of cards, one per group. Tokens only; the fields
   themselves are MudBlazor inputs, so this file styles the card chrome, the
   help text and the send-money row, never the input internals. */

.treasury-settings[b-g0ynbwfwpd] {
    display: flex;
    flex-direction: column;
    gap: var(--space-xl);
    min-width: 0;
    color: var(--text-primary);
    font-family: var(--font-primary);
}

/* ── Head ──────────────────────────────────────────────────────────────── */

.treasury-settings-head[b-g0ynbwfwpd] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
}

.treasury-settings-title[b-g0ynbwfwpd] {
    margin: 0;
    font-size: var(--text-2xl);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.treasury-settings-sub[b-g0ynbwfwpd] {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

/* ── States ────────────────────────────────────────────────────────────── */

.treasury-settings-loading[b-g0ynbwfwpd] {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-3xl) 0;
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.treasury-settings-fatal[b-g0ynbwfwpd] {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-lg) var(--space-xl);
    background: var(--bg-card);
    border: 1px solid var(--error-color-30);
    border-radius: var(--radius-lg);
    color: var(--error-text);
    font-size: var(--text-sm);
}

/* ── Card ──────────────────────────────────────────────────────────────── */

.treasury-settings-card[b-g0ynbwfwpd] {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
    min-width: 0;
    padding: var(--space-xl);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
}

.treasury-settings-card-title[b-g0ynbwfwpd] {
    margin: 0;
    color: var(--text-muted);
    font-size: var(--text-3xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.treasury-settings-fields[b-g0ynbwfwpd] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: var(--space-xl);
    min-width: 0;
}

.treasury-settings-field[b-g0ynbwfwpd] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
}

.treasury-settings-help[b-g0ynbwfwpd] {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--text-2xs);
    line-height: 1.5;
}

.treasury-settings-label[b-g0ynbwfwpd] {
    color: var(--text-primary);
    font-size: var(--text-sm);
    font-weight: 600;
}

/* ── Send money ────────────────────────────────────────────────────────── */

/* The one row on this screen that is state plus a gesture, not a field. It
   spans the grid so the switch in front of outbound payments is never a
   half-width control tucked beside a text box. */
.treasury-settings-danger[b-g0ynbwfwpd] {
    grid-column: 1 / -1;
    padding: var(--space-lg);
    background: var(--warning-color-5);
    border: 1px solid var(--warning-color-20);
    border-radius: var(--radius-md);
}

.treasury-settings-state-row[b-g0ynbwfwpd] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-md);
    min-width: 0;
}

.treasury-settings-chip[b-g0ynbwfwpd] {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-full);
    color: var(--text-secondary);
    font-size: var(--text-2xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.treasury-settings-chip-warn[b-g0ynbwfwpd] {
    background: var(--warning-color-10);
    border-color: var(--warning-color-30);
    color: var(--warning-text);
}

.treasury-settings-chip-off[b-g0ynbwfwpd] {
    background: var(--bg-hover);
}

/* ── Actions ───────────────────────────────────────────────────────────── */

.treasury-settings-card-actions[b-g0ynbwfwpd] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    min-width: 0;
}

.treasury-settings-button[b-g0ynbwfwpd] {
    min-height: var(--tap-target-min);
    padding: 0 var(--space-xl);
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-xs);
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.treasury-settings-button:hover:not(:disabled)[b-g0ynbwfwpd] {
    border-color: var(--accent-color);
    background: var(--bg-hover);
}

.treasury-settings-button:focus-visible[b-g0ynbwfwpd] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

.treasury-settings-button:disabled[b-g0ynbwfwpd] {
    cursor: not-allowed;
    opacity: 0.5;
}

.treasury-settings-button-danger[b-g0ynbwfwpd] {
    background: var(--warning-color-10);
    border-color: var(--warning-color-30);
    color: var(--warning-text);
}

.treasury-settings-card-error[b-g0ynbwfwpd] {
    margin: 0;
    padding: var(--space-md) var(--space-lg);
    background: var(--error-color-10);
    border: 1px solid var(--error-color-30);
    border-radius: var(--radius-md);
    color: var(--error-text);
    font-size: var(--text-xs);
}

/* ── Responsive ────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .treasury-settings[b-g0ynbwfwpd] {
        gap: var(--space-lg);
    }

    .treasury-settings-title[b-g0ynbwfwpd] {
        font-size: var(--text-xl);
    }

    .treasury-settings-fields[b-g0ynbwfwpd] {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-lg);
    }

    .treasury-settings-card[b-g0ynbwfwpd] {
        padding: var(--space-lg);
    }
}

@media (max-width: 640px) {
    .treasury-settings-state-row[b-g0ynbwfwpd] {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .treasury-settings-button[b-g0ynbwfwpd] {
        transition: none;
    }
}
/* _content/Ayva.Finance.Treasury/Components/Admin/TransactionsTab.razor.rz.scp.css */
/* TransactionsTab — the ledger. Desktop-first; the table hands off to
   MudBlazor's own stacked layout below Md, and its wrapper scrolls rather
   than pushing the page sideways. Tokens only. */

.treasury-ledger[b-q1dz1z65uw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
    min-width: 0;
}

.treasury-ledger-head[b-q1dz1z65uw] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-lg);
    flex-wrap: wrap;
}

.treasury-ledger-heading[b-q1dz1z65uw] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
}

.treasury-ledger-title[b-q1dz1z65uw] {
    margin: 0;
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
}

.treasury-ledger-sub[b-q1dz1z65uw] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
    font-variant-numeric: tabular-nums;
}

.treasury-ledger-export[b-q1dz1z65uw] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-xs);
    max-width: 22rem;
}

.treasury-ledger-truncated[b-q1dz1z65uw] {
    color: var(--warning-color);
    font-size: var(--text-2xs);
    line-height: 1.5;
    text-align: right;
}

/* ── Filters ───────────────────────────────────────────────────────────── */

.treasury-filters[b-q1dz1z65uw] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-md);
    padding: var(--space-lg);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
}

/* ── Table ─────────────────────────────────────────────────────────────── */

.treasury-ledger-table[b-q1dz1z65uw] {
    /* Wide content scrolls inside its own box; the page body never does. */
    overflow-x: auto;
    min-width: 0;
}

/* ::deep — MudTable renders a child component, so a scoped rule ending in a
   .mud-* class matches nothing without it (recurring bug class). */
.treasury-ledger-table[b-q1dz1z65uw]  .treasury-ledger-mud-table {
    background: transparent;
}

.treasury-ledger-table[b-q1dz1z65uw]  .mud-table-cell {
    font-size: var(--text-xs);
    vertical-align: top;
}

.treasury-ledger-table[b-q1dz1z65uw]  .mud-table-head .mud-table-cell {
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.treasury-ledger-date[b-q1dz1z65uw],
.treasury-ledger-counterparty[b-q1dz1z65uw] {
    display: block;
    white-space: nowrap;
}

.treasury-ledger-counterparty[b-q1dz1z65uw] {
    white-space: normal;
    font-weight: var(--font-medium);
    overflow-wrap: anywhere;
}

.treasury-ledger-description[b-q1dz1z65uw] {
    display: block;
    color: var(--text-muted);
    font-size: var(--text-2xs);
    overflow-wrap: anywhere;
}

.treasury-ledger-badges[b-q1dz1z65uw] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xs);
    margin-top: var(--space-2xs);
}

.treasury-ledger-amount[b-q1dz1z65uw] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.treasury-ledger-in[b-q1dz1z65uw] {
    color: var(--success-color);
}

.treasury-ledger-out[b-q1dz1z65uw] {
    color: var(--text-primary);
}

/* ── Badges ────────────────────────────────────────────────────────────── */

.treasury-badge[b-q1dz1z65uw] {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--space-xs);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-2xs);
    color: var(--text-secondary);
    font-size: var(--text-2xs);
    line-height: 1.6;
    white-space: nowrap;
}

.treasury-badge-pattern[b-q1dz1z65uw] {
    border-color: color-mix(in srgb, var(--accent-color) 45%, transparent);
    color: var(--accent-color-light);
}

.treasury-badge-commitment[b-q1dz1z65uw] {
    border-color: color-mix(in srgb, var(--success-color) 45%, transparent);
    color: var(--success-color);
}

.treasury-badge-class[b-q1dz1z65uw],
.treasury-badge-muted[b-q1dz1z65uw] {
    color: var(--text-muted);
}

/* ── Pager + shared ────────────────────────────────────────────────────── */

.treasury-pager[b-q1dz1z65uw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-md);
}

.treasury-pager-position[b-q1dz1z65uw] {
    color: var(--text-secondary);
    font-size: var(--text-xs);
    font-variant-numeric: tabular-nums;
}

.treasury-ledger-loading[b-q1dz1z65uw] {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-2xl);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

.treasury-card[b-q1dz1z65uw] {
    display: flex;
    gap: var(--space-md);
    padding: var(--space-xl);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
}

.treasury-card-bad[b-q1dz1z65uw] {
    align-items: center;
    color: var(--error-color);
    font-size: var(--text-sm);
}

.treasury-empty[b-q1dz1z65uw] {
    margin: 0;
    padding: var(--space-2xl) 0;
    color: var(--text-muted);
    font-size: var(--text-sm);
}

.treasury-action[b-q1dz1z65uw] {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-target-min);
    padding: var(--space-sm) var(--space-lg);
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-family: var(--font-primary);
    font-size: var(--text-xs);
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color var(--transition-fast), color var(--transition-fast);
}

.treasury-action:hover:not(:disabled)[b-q1dz1z65uw] {
    border-color: var(--accent-color);
    color: var(--accent-color-light);
}

.treasury-action:disabled[b-q1dz1z65uw] {
    opacity: 0.5;
    cursor: not-allowed;
}

.treasury-action:focus-visible[b-q1dz1z65uw] {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/* ── Responsive ────────────────────────────────────────────────────────── */

@media (max-width: 1200px) {
    .treasury-filters[b-q1dz1z65uw] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .treasury-ledger-export[b-q1dz1z65uw] {
        align-items: flex-start;
        max-width: none;
    }

    .treasury-ledger-truncated[b-q1dz1z65uw] {
        text-align: left;
    }
}

@media (max-width: 640px) {
    .treasury-filters[b-q1dz1z65uw] {
        grid-template-columns: minmax(0, 1fr);
        padding: var(--space-md);
    }
}

@media (prefers-reduced-motion: reduce) {
    .treasury-action[b-q1dz1z65uw] {
        transition: none;
    }
}
/* _content/Ayva.Finance.Treasury/Components/Admin/TreasuryAdminConsole.razor.rz.scp.css */
/* TreasuryAdminConsole — desktop-first (it is an operations console), but the
   tab strip still has to survive a phone: it wraps rather than becoming a
   horizontal scroller that hides the current tab. Six tabs is two more than
   Payroll's, so the wrap point matters more here. Tokens only. */

.treasury-admin[b-5jot67g56w] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: var(--text-primary);
    font-family: var(--font-primary);
}

/* ── Full-surface states ───────────────────────────────────────────────── */

.treasury-admin-centre[b-5jot67g56w] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-md);
    min-height: 40dvh;
    padding: var(--space-3xl) var(--space-xl);
    color: var(--text-secondary);
    font-size: var(--text-sm);
    text-align: center;
}

.treasury-admin-fatal[b-5jot67g56w] {
    color: var(--warning-color);
}

/* ── Tabs ──────────────────────────────────────────────────────────────── */

.treasury-admin-tabs[b-5jot67g56w] {
    display: flex;
    align-items: stretch;
    gap: var(--space-xs);
    border-bottom: 1px solid var(--border-color);
}

.treasury-admin-tab[b-5jot67g56w] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    min-height: var(--tap-target-min);
    padding: var(--space-md) var(--space-lg);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--text-muted);
    font-family: var(--font-primary);
    font-size: var(--text-sm);
    white-space: nowrap;
    cursor: pointer;
    transition: color var(--transition-fast), border-color var(--transition-fast);
}

.treasury-admin-tab:hover[b-5jot67g56w] {
    color: var(--text-secondary);
}

.treasury-admin-tab:focus-visible[b-5jot67g56w] {
    outline: 2px solid var(--accent-color);
    outline-offset: -2px;
}

.treasury-admin-tab-current[b-5jot67g56w] {
    /* -light: the strip sits on the panel ground where the base accent only
       clears 4.16:1. The underline keeps the saturated accent. */
    color: var(--accent-color-light);
    border-bottom-color: var(--accent-color);
}

.treasury-admin-tab-current[b-5jot67g56w]  .mud-icon-root {
    /* ::deep — MudIcon renders a child component with no scope attribute. */
    color: var(--accent-color-light);
}

/* ── Body ──────────────────────────────────────────────────────────────── */

.treasury-admin-body[b-5jot67g56w] {
    flex: 1 1 auto;
    min-width: 0;
    padding: var(--space-2xl) 0 0;
}

.treasury-admin-denied[b-5jot67g56w] {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-2xl);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-lg);
    color: var(--text-secondary);
    font-size: var(--text-sm);
}

/* ── Laptop: six tabs stop fitting before a phone does ─────────────────── */

@media (max-width: 1200px) {
    .treasury-admin-tab[b-5jot67g56w] {
        padding: var(--space-md);
    }
}

/* ── Phone ─────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .treasury-admin-tabs[b-5jot67g56w] {
        flex-wrap: wrap;
        row-gap: 0;
    }

    .treasury-admin-tab[b-5jot67g56w] {
        flex: 1 1 auto;
        justify-content: center;
        padding: var(--space-sm) var(--space-md);
    }

    .treasury-admin-body[b-5jot67g56w] {
        padding-top: var(--space-lg);
    }
}

@media (max-width: 640px) {
    /* Below this the six labels no longer fit two-up beside their icons; the
       icon alone is ambiguous, so the label wins and the icon goes. */
    .treasury-admin-tab[b-5jot67g56w]  .mud-icon-root {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .treasury-admin-tab[b-5jot67g56w] {
        transition: none;
    }
}
/* _content/Ayva.Finance.Treasury/Components/Shared/ForecastChart.razor.rz.scp.css */
/* ForecastChart — the container only. Everything inside the chart is painted
   by ApexCharts into its own canvas, which no stylesheet reaches; its colours
   come from TreasuryChartColors (the C# twin of the --chart-* tokens). */

.treasury-chart[b-euq73kvdww] {
    width: 100%;
    min-width: 0;
    /* The chart is the widest thing on the Overview; it scrolls inside its own
       box rather than pushing the page sideways. */
    overflow-x: auto;
}

.treasury-chart-empty[b-euq73kvdww] {
    margin: 0;
    padding: var(--space-2xl);
    color: var(--text-secondary);
    font-size: var(--text-sm);
    text-align: center;
}
/* _content/Ayva.Finance.Treasury/Panels/TreasuryAdminPanel.razor.rz.scp.css */
/* TreasuryAdminPanel — the treasury console inside the /coms shell. Framing
   only; TreasuryAdminConsole owns everything below the bar. Tokens only. */

.treasury-admin-panel[b-isrmgwyzmj] {
    display: flex;
    flex-direction: column;
    width: 100%;
    color: var(--text-primary);
    font-family: var(--font-primary);
}

.treasury-admin-panel-bar[b-isrmgwyzmj] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-lg);
    padding: 0 0 var(--space-md);
    border-bottom: 1px solid var(--border-color);
}

.treasury-admin-panel-title[b-isrmgwyzmj] {
    font-size: var(--text-xl);
    font-weight: 700;
    letter-spacing: -0.01em;
}

/* Embedded: the console must not repeat the title the panel bar already
   shows, and its tab strip sits flush with the panel's own edges. ::deep
   reaches TreasuryAdminConsole's scope, which this component never touches. */
.treasury-admin-panel[b-isrmgwyzmj]  .treasury-admin {
    min-height: 0;
}

@media (max-width: 640px) {
    .treasury-admin-panel-bar[b-isrmgwyzmj] {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-xs);
    }
}
/* _content/Ayva.Finance.Treasury/Widgets/CashPositionWidget.razor.rz.scp.css */
/* CashPositionWidget — the /coms dashboard tile.
   Tokens only; the stat-box layout mirrors the other dashboard widgets so a
   grid of tiles reads as one surface rather than as several. */

.widget-content[b-7fmxq6lc0q] {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    padding: var(--space-sm) 0;
    height: 100%;
    font-family: var(--font-primary);
}

/* ── Loading / error states ── */

.loading-state[b-7fmxq6lc0q] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-lg);
    flex: 1;
}

.error-state[b-7fmxq6lc0q] {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    color: var(--error-color);
    font-size: var(--text-sm);
    padding: var(--space-sm);
}

.error-state .material-icons[b-7fmxq6lc0q] {
    font-size: var(--text-lg);
    flex-shrink: 0;
}

/* ── Stats row ── */

.stats-row[b-7fmxq6lc0q] {
    display: flex;
    gap: var(--space-sm);
}

.stat-box[b-7fmxq6lc0q] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: var(--space-sm) var(--space-xs);
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast);
}

.stat-box:hover[b-7fmxq6lc0q] {
    border-color: var(--accent-color);
}

/* A reserve nobody has set is the one thing on this tile worth a colour: the
   funds gate is answering against zero until it changes. */
.stat-box--attention[b-7fmxq6lc0q] {
    border-color: color-mix(in srgb, var(--warning-color) 45%, transparent);
}

.stat-box--attention .stat-value[b-7fmxq6lc0q] {
    color: var(--warning-color);
}

.stat-value[b-7fmxq6lc0q] {
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.stat-label[b-7fmxq6lc0q] {
    font-size: var(--text-2xs);
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: var(--space-xs);
    text-align: center;
    white-space: nowrap;
}

.stat-sub[b-7fmxq6lc0q] {
    font-size: var(--text-2xs);
    color: var(--text-secondary);
    margin-top: var(--space-2xs);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* ── Callouts ── */

.treasury-widget-callout[b-7fmxq6lc0q],
.treasury-widget-payroll[b-7fmxq6lc0q] {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--text-xs);
    line-height: 1.5;
}

.treasury-widget-callout strong[b-7fmxq6lc0q] {
    color: var(--text-primary);
    font-weight: 600;
}

/* --chart-breach: the same colour the Overview's chart shades a breach with,
   so the tile and the console agree at a glance. */
.treasury-widget-chip[b-7fmxq6lc0q] {
    align-self: flex-start;
    padding: var(--space-2xs) var(--space-sm);
    background: color-mix(in srgb, var(--chart-breach) 14%, transparent);
    border-radius: var(--radius-full);
    color: var(--chart-breach);
    font-size: var(--text-2xs);
}

/* MudProgressCircular is a child component and carries no scope attribute. */
.loading-state[b-7fmxq6lc0q]  .mud-progress-circular {
    color: var(--accent-color);
}

@media (max-width: 768px) {
    .stats-row[b-7fmxq6lc0q] {
        flex-wrap: wrap;
    }

    .stat-box[b-7fmxq6lc0q] {
        flex-basis: calc(50% - var(--space-sm));
    }

    .stat-label[b-7fmxq6lc0q] {
        white-space: normal;
    }
}
