/* Finance report composition and data-driven chart geometry. */
.finance-reports { display:grid; gap:var(--zg-space-4); min-inline-size:0; }
.finance-report-screen { display:grid; gap:var(--zg-space-4); min-inline-size:0; }
.finance-reports :is(h2,h3,p) { margin:0; }
.finance-report-filters { flex-wrap:wrap; align-items:end; }
.finance-report-tabs { overflow-x:auto; box-sizing:border-box; }
.finance-report-tabs .zg-tab { flex-shrink:0; }
.finance-report-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:var(--zg-space-3); }
.finance-report-kpi { display:grid; gap:var(--zg-space-2); align-content:start; }
.finance-report-kpi strong { font-variant-numeric:tabular-nums; }
.finance-report-kpi-meta { display:grid; gap:var(--zg-space-1); }
.finance-report-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--zg-space-4); }
.finance-report-block { display:grid; gap:var(--zg-space-4); min-inline-size:0; }
.finance-report-detail { display:grid; gap:var(--zg-space-3); min-inline-size:0; }
.finance-report-detail-header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:var(--zg-space-3); }
.finance-report-detail-header>div { display:grid; gap:var(--zg-space-1); }
.finance-report-detail-total { text-align:end; font-variant-numeric:tabular-nums; }
.finance-report-detail .zg-table { table-layout:fixed; min-inline-size:760px; }
.finance-report-detail .zg-table tr>:first-child { inline-size:28%; }
.finance-report-detail .zg-table tbody th { background:var(--zg-surface-card); color:var(--zg-text-secondary); border-block-end:1px solid var(--zg-border-soft); font-weight:var(--zg-weight-regular); }
.finance-report-detail .zg-table tbody th>span { display:block; }
.finance-report-detail .zg-table tbody tr:last-child th { border-block-end:0; }
.finance-report-account-name { font-weight:var(--zg-weight-semibold); margin-block-end:var(--zg-space-1); }
.finance-report-detail .zg-table :is(th,td) { padding-block:var(--zg-space-2); }
.finance-report-detail .zg-table td small { display:block; margin-block-start:var(--zg-space-1); }
.finance-report-detail .zg-table thead th:not(:first-child) { text-align:end; }
.finance-report-detail--compact { align-content:start; }
.finance-report-detail--compact .zg-table { min-inline-size:360px; }
.finance-report-detail--compact .zg-table tr>:first-child { inline-size:34%; }
.finance-report-operations .zg-table { min-inline-size:540px; }
.finance-report-operations .zg-table tr>:first-child { inline-size:44%; }
.finance-report-staff .zg-table { min-inline-size:660px; }
.finance-report-columns>.zg-card { min-inline-size:0; }
.finance-report-annual .zg-table { min-inline-size:1400px; }
.finance-report-annual .zg-table tr>:first-child { inline-size:80px; position:sticky; inset-inline-start:0; }
.finance-report-annual .zg-table tr>:last-child { inline-size:120px; border-inline-start:1px solid var(--zg-border-default); }
.finance-report-annual .zg-table .finance-report-annual-actual>* { font-weight:var(--zg-weight-semibold); }
.finance-report-annual .zg-table tbody tr>:last-child { background:var(--zg-surface-soft); }
.finance-report-annual--result { border-inline-start:var(--zg-table-selected-marker-width) solid var(--zg-accent-primary); }
.finance-report-annual--result .finance-report-detail-header { background:var(--zg-accent-secondary); padding:var(--zg-space-3); border-radius:var(--zg-radius-md); }
.finance-report-annual--final { border:var(--zg-table-selected-marker-width) solid var(--zg-accent-primary); }
.finance-reports .zg-table-scroll { max-inline-size:100%; }
.finance-reports .zg-table td { text-align:end; white-space:nowrap; font-variant-numeric:tabular-nums; }
.finance-reports .zg-table th { text-align:start; }
.finance-reports .zg-table .finance-report-result>* { background:var(--zg-accent-secondary); color:var(--zg-text-primary); font-weight:var(--zg-weight-bold); border-block-start:var(--zg-table-selected-marker-width) solid var(--zg-border-default); }
.finance-reports .zg-table .finance-report-result--final>* { border-block-start:var(--zg-table-selected-marker-width) solid var(--zg-accent-primary); border-block-end:var(--zg-table-selected-marker-width) double var(--zg-accent-primary); }
.finance-report-result-label { display:grid; gap:var(--zg-space-1); padding-block:var(--zg-space-2); }
.finance-report-result-label small { font-weight:var(--zg-weight-regular); }
.finance-report-chart { display:grid; align-content:start; gap:var(--zg-space-3); }
.finance-report-chart svg { inline-size:100%; block-size:auto; }
.finance-report-chart text { fill:var(--zg-text-muted); font:var(--zg-weight-regular) var(--zg-font-caption) var(--zg-font-family); }
.finance-report-line { fill:none; stroke-width:2; }
.finance-report-series-0 { color:var(--zg-accent-primary); stroke:var(--zg-accent-primary); }
.finance-report-series-1 { color:var(--zg-state-info); stroke:var(--zg-state-info); stroke-dasharray:6 3; }
.finance-report-series-2 { color:var(--zg-text-muted); stroke:var(--zg-text-muted); stroke-dasharray:2 3; }
.finance-report-dot { fill:var(--zg-surface-card); stroke-width:2; }
.finance-report-axis { stroke:var(--zg-border-default); fill:none; }
.finance-report-bar-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--zg-space-2); margin-block:var(--zg-space-3); }
.finance-report-bar-row svg { grid-column:1/-1; inline-size:100%; block-size:var(--zg-space-2); }
.finance-report-bar-positive { fill:var(--zg-accent-primary); }
.finance-report-bar-negative { fill:var(--zg-state-warning); }
.finance-report-selection { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--zg-space-3); }
.finance-report-search { max-inline-size:420px; }
.finance-report-document { display:none; }
.finance-report-document.is-preview { display:grid; gap:var(--zg-space-6); }
.finance-report-document header { display:grid; gap:var(--zg-space-3); }
.finance-report-note { white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:800px) {
 .finance-report-columns,.finance-report-selection { grid-template-columns:minmax(0,1fr); }
 .finance-report-filters>.zg-field { flex:1; min-inline-size:120px; }
}
@media print {
 @page finance-report { size:A4 landscape; margin:12mm; }
 body.finance-reports-view { page:finance-report; background:var(--zg-surface-card); }
 .finance-reports-view :is(.finance-sidebar,.finance-skip-link,.finance-report-screen) { display:none!important; }
 .finance-reports-view :is(.finance-shell,.finance-main,.finance-reports,.finance-report-document) { display:block; margin:0; padding:0; min-block-size:0; }
 .finance-reports-view .finance-report-document { color:var(--zg-text-primary); }
 .finance-reports-view :is(.finance-main,.finance-report-document) { background:var(--zg-surface-card); }
 .finance-reports-view .finance-report-document>header { margin-block-end:var(--zg-space-4); }
 .finance-reports-view .finance-report-block { display:block; break-before:page; }
 .finance-reports-view .finance-report-document>.finance-report-block:first-of-type { break-before:auto; }
 .finance-reports-view .finance-report-block>h2 { margin-block-end:var(--zg-space-3); break-after:avoid; }
 .finance-reports-view .finance-report-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .finance-reports-view .finance-report-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .finance-reports-view :is(.finance-report-kpi,.finance-report-chart,tr) { break-inside:avoid; }
 .finance-reports-view .zg-table-scroll { overflow:visible; }
 .finance-reports-view .zg-table { inline-size:100%; min-inline-size:0; }
 .finance-reports-view .zg-table :is(th,td) { font-size:var(--zg-font-caption); padding:var(--zg-space-1); white-space:normal; }
 .finance-reports-view .zg-table thead { display:table-header-group; }
 .finance-reports-view .finance-report-detail { margin-block-end:var(--zg-space-4); }
 .finance-reports-view .finance-report-annual { break-inside:avoid; }
 .finance-reports-view .finance-report-annual .zg-table tr>:first-child { position:static; inline-size:60px; }
 .finance-reports-view .finance-report-annual .zg-table tr>:last-child { inline-size:90px; }
 .finance-reports-view .finance-report-chart-data { display:none; }
 .finance-reports-view .finance-report-document>footer { margin-block-start:var(--zg-space-4); }
}
