/* /Components/AdminSessionBanner.razor.rz.scp.css */
.admin-session-banner[b-6q2v8g2nkn] {
    background-color: rgba(232, 184, 75, 0.12);
    border-bottom: 1px solid rgba(232, 184, 75, 0.4);
    padding: 8px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.admin-session-banner__message[b-6q2v8g2nkn] {
    flex-grow: 1;
    color: var(--ink);
    font-size: 14px;
}
/* /Components/Report/AccountStatusDistributionChart.razor.rz.scp.css */
.chart-wrap[b-u2l0f2ab79] {
    position: relative;
    height: 320px;
    width: 100%;
}
/* /Components/Report/AccountTypeMixChart.razor.rz.scp.css */
.chart-wrap[b-27infptaf1] {
    position: relative;
    height: 280px;
    width: 100%;
}
/* /Components/Report/BalanceTrendChart.razor.rz.scp.css */
.chart-wrap[b-h2gqyrfyin] {
    position: relative;
    height: 280px;
    width: 100%;
}
/* /Components/Report/IndicatorRow.razor.rz.scp.css */
.indicator-row[b-kstaqafdq7] {
    display: grid;
    grid-template-columns: 12px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--surface);
    border: 1px solid var(--hairline);
    border-radius: 10px;
    transition: transform 0.12s ease, border-color 0.12s ease;
}

.indicator-row:hover[b-kstaqafdq7] {
    transform: translateX(2px);
    border-color: var(--surface-hover);
}

.indicator-dot[b-kstaqafdq7] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--ink-faint);
}

.indicator-row.rag-red    .indicator-dot[b-kstaqafdq7] { background: var(--status-danger); }
.indicator-row.rag-amber  .indicator-dot[b-kstaqafdq7] { background: var(--status-warning); }
.indicator-row.rag-green  .indicator-dot[b-kstaqafdq7] { background: var(--status-success); }

/* The ungraded states carry a distinct shape as well as a distinct colour, so a handler can still
   tell them apart without colour perception. WCAG 2.2 AA, 1.4.1 Use of Colour. Each also states
   its reason in words on the row. */

/* Not applicable: hollow circle. */
.indicator-row.rag-null .indicator-dot[b-kstaqafdq7] {
    background: transparent;
    border: 2px solid var(--ink-faint);
}

/* Insufficient data: filled square. */
.indicator-row.rag-insufficient .indicator-dot[b-kstaqafdq7] {
    background: var(--status-info);
    border-radius: 2px;
}

/* Unknown: dashed outline. */
.indicator-row.rag-unknown .indicator-dot[b-kstaqafdq7] {
    background: transparent;
    border: 2px dashed var(--ink-muted);
}

.indicator-text[b-kstaqafdq7] {
    min-width: 0;
}

.indicator-label[b-kstaqafdq7] {
    font-size: 13px;
    font-weight: 500;
    color: var(--ink);
    line-height: 1.3;
}

.indicator-meta[b-kstaqafdq7] {
    margin-top: 2px;
    font-size: 11px;
    color: var(--ink-muted);
    display: flex;
    align-items: center;
    gap: 6px;
}

.indicator-code[b-kstaqafdq7] {
    font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
    color: var(--ink-muted);
}

.indicator-source[b-kstaqafdq7] { color: var(--ink-faint); }

.indicator-reason[b-kstaqafdq7] {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--ink-muted);
}

.indicator-pill[b-kstaqafdq7] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--surface-raised);
    color: var(--ink-muted);
    /* "Insufficient data" and "Not applicable" are longer than "Red", so the pill must not clip. */
    white-space: nowrap;
}

.indicator-pill.rag-red[b-kstaqafdq7]    { background: rgba(240,103,125,0.15); color: var(--status-danger); }
.indicator-pill.rag-amber[b-kstaqafdq7]  { background: rgba(232,184,75,0.15); color: var(--status-warning); }
.indicator-pill.rag-green[b-kstaqafdq7]  { background: rgba(74,222,128,0.15); color: var(--status-success); }
.indicator-pill.rag-insufficient[b-kstaqafdq7] { background: rgba(90,160,208,0.15); color: var(--status-info); }
.indicator-pill.rag-unknown[b-kstaqafdq7] { background: var(--surface-raised); color: var(--ink-muted); border: 1px dashed var(--hairline); }
.indicator-pill.rag-null[b-kstaqafdq7]   { background: var(--surface-raised); color: var(--ink-muted); }
/* /Components/Report/KpiCard.razor.rz.scp.css */
.kpi[b-6b42wvif1k] {
    background: var(--surface);
    border: 1px solid var(--hairline);
    border-left-width: 4px;
    border-radius: 14px;
    padding: 18px 20px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
    min-height: 102px;
}

.kpi-primary[b-6b42wvif1k] { border-left-color: var(--brand-primary); }
.kpi-red[b-6b42wvif1k]     { border-left-color: var(--status-danger); }
.kpi-amber[b-6b42wvif1k]   { border-left-color: var(--status-warning); }
.kpi-green[b-6b42wvif1k]   { border-left-color: var(--status-success); }

.kpi-label[b-6b42wvif1k] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 8px;
}

.kpi-value[b-6b42wvif1k] {
    font-family: InterSemiBold, Inter, sans-serif;
    font-size: 32px;
    line-height: 1.1;
    color: var(--ink);
}

.kpi-detail[b-6b42wvif1k] {
    margin-top: 6px;
    font-size: 12px;
    color: var(--ink-muted);
}
/* /Components/Report/PaymentHeatmap.razor.rz.scp.css */
.heatmap-wrap[b-7lj1ymxelp] {
    overflow-x: auto;
}

.heatmap-grid[b-7lj1ymxelp] {
    display: grid;
    gap: 4px;
    align-items: center;
}

.heatmap-name[b-7lj1ymxelp] {
    font-size: 12px;
    color: var(--ink);
    padding-right: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.heatmap-month[b-7lj1ymxelp] {
    font-size: 9px;
    color: var(--ink-faint);
    text-align: center;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    height: 48px;
    align-self: end;
    padding-bottom: 2px;
    font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
}

.heatmap-cell[b-7lj1ymxelp] {
    width: 18px;
    height: 18px;
    border-radius: 4px;
    background: var(--surface-raised);
}

.cell-0[b-7lj1ymxelp] { background: var(--status-success); }
.cell-1[b-7lj1ymxelp] { background: rgba(74,222,128,0.5); }
.cell-2[b-7lj1ymxelp] { background: var(--status-warning); }
.cell-3[b-7lj1ymxelp] { background: rgba(240,103,125,0.6); }
.cell-d[b-7lj1ymxelp] { background: var(--status-danger); }
.cell-u[b-7lj1ymxelp] { background: var(--surface-hover); }

.heatmap-legend[b-7lj1ymxelp] {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 11px;
    color: var(--ink-muted);
    align-items: center;
}

.lg[b-7lj1ymxelp] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    margin-right: 6px;
    vertical-align: middle;
}
.lg-0[b-7lj1ymxelp] { background: var(--status-success); }
.lg-1[b-7lj1ymxelp] { background: rgba(74,222,128,0.5); }
.lg-2[b-7lj1ymxelp] { background: var(--status-warning); }
.lg-3[b-7lj1ymxelp] { background: rgba(240,103,125,0.6); }
.lg-d[b-7lj1ymxelp] { background: var(--status-danger); }
.lg-u[b-7lj1ymxelp] { background: var(--surface-hover); }

.heatmap-empty[b-7lj1ymxelp] {
    font-size: 13px;
    color: var(--ink-muted);
    padding: 12px 0;
}
/* /Components/Report/TimelineItem.razor.rz.scp.css */
.timeline-item[b-xx5jptk8l9] {
    position: relative;
    display: grid;
    grid-template-columns: 16px 1fr;
    gap: 14px;
    padding: 10px 0 10px 4px;
}

.timeline-item[b-xx5jptk8l9]::before {
    content: "";
    position: absolute;
    left: 7px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: rgba(240,103,125,0.4);
    border-radius: 2px;
}

.timeline-dot[b-xx5jptk8l9] {
    position: relative;
    width: 12px;
    height: 12px;
    margin-top: 4px;
    background: var(--status-danger);
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(240,103,125,0.15);
    z-index: 1;
}

.timeline-date[b-xx5jptk8l9] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--status-danger);
}

.timeline-title[b-xx5jptk8l9] {
    margin-top: 2px;
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
}

.timeline-meta[b-xx5jptk8l9] {
    margin-top: 2px;
    font-size: 12px;
    color: var(--ink-muted);
}
/* /Components/Report/UtilisationRow.razor.rz.scp.css */
.util-row[b-v3mseuyx37] {
    display: grid;
    grid-template-columns: 220px 1fr 130px;
    align-items: center;
    gap: 16px;
    padding: 10px 4px;
    border-bottom: 1px solid var(--hairline);
}

.util-row:last-child[b-v3mseuyx37] { border-bottom: 0; }

.util-name[b-v3mseuyx37] { min-width: 0; }
.util-lender[b-v3mseuyx37] {
    font-size: 13px;
    font-weight: 500;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.util-type[b-v3mseuyx37] {
    font-size: 11px;
    color: var(--ink-muted);
    margin-top: 2px;
}

.util-bar-wrap[b-v3mseuyx37] {
    height: 10px;
    background: var(--surface-raised);
    border-radius: 999px;
    overflow: hidden;
}
.util-bar[b-v3mseuyx37] {
    height: 100%;
    border-radius: 999px;
    transition: width 0.4s ease;
}
.util-green[b-v3mseuyx37] { background: var(--status-success); }
.util-amber[b-v3mseuyx37] { background: var(--status-warning); }
.util-red[b-v3mseuyx37]   { background: var(--status-danger); }

.util-figures[b-v3mseuyx37] {
    text-align: right;
}
.util-balance[b-v3mseuyx37] {
    font-size: 12px;
    color: var(--ink-muted);
    font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
}
.util-pct[b-v3mseuyx37] {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    margin-top: 2px;
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* Shell chrome (sidebar + top bar) is styled globally in wwwroot/css/app.css
   under the ".app-shell" section so it can be shared and tokenised. */
/* /Pages/Reports/Report.razor.rz.scp.css */
/* ──────────────── Container ──────────────── */
.report-container[b-2uwtdarvrq] {
    background: transparent;
    margin: -20px;
    padding: 24px 28px 48px;
    min-height: calc(100% + 40px);
}

.report-back[b-2uwtdarvrq] {
    margin-bottom: 16px;
    font-size: 13px;
}

.report-back a[b-2uwtdarvrq] {
    color: var(--gold);
    text-decoration: none;
}

.report-back a:hover[b-2uwtdarvrq] { text-decoration: underline; }

/* ──────────────── Hero ──────────────── */
.hero[b-2uwtdarvrq] {
    background: var(--surface-raised);
    border: 1px solid var(--hairline);
    border-radius: 14px;
    padding: 24px 28px;
    margin-bottom: 16px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
}

.hero-left[b-2uwtdarvrq] { flex-grow: 1; min-width: 0; }

.hero-badge[b-2uwtdarvrq] {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gold);
    background: rgba(232, 184, 75, 0.15);
    padding: 4px 10px;
    border-radius: 999px;
    margin-bottom: 10px;
}

.hero-name[b-2uwtdarvrq] {
    font-family: InterSemiBold, Inter, sans-serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--ink);
    margin: 0 0 8px 0;
    letter-spacing: -0.01em;
}

.hero-meta[b-2uwtdarvrq] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    font-size: 12px;
    color: var(--ink-muted);
}

.hero-meta-item[b-2uwtdarvrq] {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
}

.hero-meta-label[b-2uwtdarvrq] {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ink-faint);
}

.hero-meta-value[b-2uwtdarvrq] { color: var(--ink); }

/* A field with no source on this submission type. Muted and italic so it reads as an explicit
   statement of absence rather than a value, but still rendered so the gap is never silent.
   The wording carries the meaning, so the distinction is not conveyed by styling alone. */
.hero-meta-unavailable[b-2uwtdarvrq] {
    color: var(--ink-faint);
    font-style: italic;
}

.hero-right[b-2uwtdarvrq] {
    text-align: right;
    flex-shrink: 0;
    max-width: 300px;
}

.hero-focus[b-2uwtdarvrq] {
    font-family: InterSemiBold, Inter, sans-serif;
    font-size: 15px;
    color: var(--ink);
    margin-top: 4px;
}

/* ──────────────── KPI grid ──────────────── */
.kpi-grid[b-2uwtdarvrq] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 16px;
}

@media (max-width: 1100px) {
    .kpi-grid[b-2uwtdarvrq] { grid-template-columns: repeat(2, 1fr); }
    .hero[b-2uwtdarvrq] { flex-direction: column; }
    .hero-right[b-2uwtdarvrq] { text-align: left; }
}

.dot-sep[b-2uwtdarvrq] { color: var(--ink-faint); margin: 0 4px; }
.rag-red-text[b-2uwtdarvrq]   { color: var(--status-danger); font-weight: 500; }
.rag-amber-text[b-2uwtdarvrq] { color: var(--status-warning); font-weight: 500; }

/* ──────────────── Panels ──────────────── */
.panel[b-2uwtdarvrq] {
    background: var(--surface-raised);
    border: 1px solid var(--hairline);
    border-radius: 14px;
    padding: 22px 24px;
    margin-bottom: 16px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
}

.panel-row[b-2uwtdarvrq] {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}

.panel-row > .panel[b-2uwtdarvrq] { margin-bottom: 0; }

@media (max-width: 1100px) {
    .panel-row[b-2uwtdarvrq] { grid-template-columns: 1fr; }
}

.panel-title[b-2uwtdarvrq] {
    font-family: InterSemiBold, Inter, sans-serif;
    font-size: 16px;
    color: var(--ink);
    margin: 0 0 4px 0;
}

.panel-sub[b-2uwtdarvrq] {
    font-size: 12px;
    color: var(--ink-muted);
    margin-bottom: 16px;
}

/* ──────────────── Indicators ──────────────── */
.indicators-grid[b-2uwtdarvrq] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

@media (max-width: 900px) {
    .indicators-grid[b-2uwtdarvrq] { grid-template-columns: 1fr; }
}

.indicator-col-head[b-2uwtdarvrq] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-muted);
    padding: 4px 0 8px 0;
    border-bottom: 1px solid var(--hairline);
    margin-bottom: 10px;
}

/* ──────────────── Data sufficiency ──────────────── */
.sufficiency-windows[b-2uwtdarvrq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px;
}

@media (max-width: 640px) {
    .sufficiency-windows[b-2uwtdarvrq] { grid-template-columns: 1fr; }
}

.sufficiency-item[b-2uwtdarvrq] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 8px 12px;
    background: var(--surface);
    border: 1px solid var(--hairline);
    border-radius: 8px;
}

.sufficiency-item-label[b-2uwtdarvrq] {
    font-size: 12px;
    color: var(--ink-muted);
}

.sufficiency-item-value[b-2uwtdarvrq] {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink);
    text-align: right;
}

.sufficiency-subtitle[b-2uwtdarvrq] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin: 20px 0 10px 0;
}

.sufficiency-rules[b-2uwtdarvrq] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sufficiency-rule[b-2uwtdarvrq] {
    font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
    font-size: 11px;
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--surface-raised);
    color: var(--ink);
    border: 1px solid var(--hairline);
}

.sufficiency-count[b-2uwtdarvrq] {
    margin-top: 10px;
    font-size: 12px;
    color: var(--ink-muted);
}

.indicator-col[b-2uwtdarvrq] { display: flex; flex-direction: column; gap: 6px; }

/* ──────────────── Timeline ──────────────── */
.timeline[b-2uwtdarvrq] {
    display: flex;
    flex-direction: column;
}

/* ──────────────── Utilisation ──────────────── */
.util-list[b-2uwtdarvrq] {
    display: flex;
    flex-direction: column;
}

/* ──────────────── Per lender result ──────────────── */

/* The twelve column table is wider than the panel on any realistic viewport. max-width pins the
   scroller to the panel so the overflow is consumed here and never reaches the page body. */
.lender-table-scroll[b-2uwtdarvrq] {
    overflow-x: auto;
    max-width: 100%;
    border: 1px solid var(--hairline);
    border-radius: 8px;
}

.lender-caveat[b-2uwtdarvrq] {
    font-size: 12px;
    color: var(--status-warning);
    background: rgba(232, 184, 75, 0.10);
    border: 1px solid var(--hairline);
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 12px;
}

.lender-table-scroll:focus-visible[b-2uwtdarvrq] {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

.lender-footer[b-2uwtdarvrq] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.lender-count[b-2uwtdarvrq] {
    font-size: 12px;
    color: var(--ink-muted);
}

.lender-expand[b-2uwtdarvrq] {
    font-family: InterSemiBold, Inter, sans-serif;
    font-size: 12px;
    color: var(--gold);
    background: transparent;
    border: 1px solid var(--hairline);
    border-radius: 8px;
    padding: 6px 12px;
    cursor: pointer;
}

.lender-expand:hover[b-2uwtdarvrq] { background: var(--surface-hover); }

.lender-expand:focus-visible[b-2uwtdarvrq] {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

/* ──────────────── Raw outputs (collapsed) ──────────────── */
.raw-panel[b-2uwtdarvrq] { padding: 14px 24px; }

.raw-summary[b-2uwtdarvrq] {
    cursor: pointer;
    font-family: InterSemiBold, Inter, sans-serif;
    font-size: 14px;
    color: var(--gold);
    padding: 6px 0;
    user-select: none;
}

.raw-group-title[b-2uwtdarvrq] {
    font-family: InterSemiBold, Inter, sans-serif;
    font-size: 13px;
    color: var(--ink);
    margin: 16px 0 6px 0;
}

.raw-table-scroll[b-2uwtdarvrq] {
    overflow-x: auto;
    margin-bottom: 12px;
}

.calc-table[b-2uwtdarvrq] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.calc-table th[b-2uwtdarvrq] {
    background: var(--surface-hover);
    text-align: left;
    padding: 6px 8px;
    border: 1px solid var(--hairline);
    white-space: nowrap;
    font-family: InterSemiBold, Inter, sans-serif;
    color: var(--ink-muted);
}

.calc-table td[b-2uwtdarvrq] {
    padding: 6px 8px;
    border: 1px solid var(--hairline);
    vertical-align: top;
}

.calc-table td:nth-child(2)[b-2uwtdarvrq] {
    min-width: 200px;
    max-width: 320px;
    white-space: normal;
    word-break: break-word;
}

.raw-other[b-2uwtdarvrq] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.raw-other th[b-2uwtdarvrq], .raw-other td[b-2uwtdarvrq] {
    padding: 6px 8px;
    border: 1px solid var(--hairline);
    text-align: left;
    vertical-align: top;
}

.raw-other th[b-2uwtdarvrq] {
    background: var(--surface-hover);
    font-family: InterSemiBold, Inter, sans-serif;
    color: var(--ink-muted);
}

/* ──────────────── Job meta + actions ──────────────── */
.job-meta[b-2uwtdarvrq] { padding-bottom: 12px; }

.job-meta-row[b-2uwtdarvrq] {
    display: flex;
    gap: 16px;
    font-size: 12px;
    padding: 4px 0;
}

.job-meta-label[b-2uwtdarvrq] {
    width: 140px;
    color: var(--ink-muted);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 10px;
    padding-top: 2px;
}

.job-meta-value[b-2uwtdarvrq] {
    color: var(--ink);
    font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
}

.actions-row[b-2uwtdarvrq] {
    display: flex;
    gap: 8px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--hairline);
}

.info-text[b-2uwtdarvrq] {
    font-size: 14px;
    color: var(--ink-muted);
}
