:root { --report-value-font-size:14px; --report-dot-size:9px; }
.report-section-list { display:grid; gap:10px; }
.report-section { width:100%; min-width:0; min-height:40px; padding:10px 15px; border:0; border-radius:3px; background:transparent; display:flex; gap:10px; align-items:center; text-align:left; position:relative; }
.report-section-open { min-width:0; flex:1; padding:0; border:0; background:none; text-align:left; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.report-section[aria-current=true] { background:white; }
.report-section:hover { background:#e1c16e25; }
.report-section.drop-before::before,.report-section.drop-after::after { content:''; position:absolute; height:2px; background:var(--brass); left:0; right:0; }
.report-section.drop-before::before { top:-6px; }
.report-section.drop-after::after { bottom:-6px; }
.report-toolbar { display:flex; gap:25px; justify-content:flex-end; align-items:center; min-width:0; }
.has-reporting .page-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:25px; }
.has-reporting .page-heading>.eyebrow,.has-reporting .page-heading>h1 { grid-column:1; }
.has-reporting .page-heading .report-toolbar { grid-column:2; grid-row:2; align-self:center; }
.has-reporting #pageTitle { display:flex; align-items:center; min-width:0; }
.report-snapshot { margin:25px 0 0; font-size:10px; flex:none; }
.report-tools { display:flex; gap:25px; flex:none; }
.report-tools button { border:0; padding:0; background:none; width:15px; height:15px; }
.report-tools svg { display:block; width:15px; height:15px; }
.report-months-scroll { overflow:visible; }
.report-month-layout { width:100%; min-width:0; }
.report-month-plot > svg { display:block; width:100%; height:132px; }
.report-month-zoom-row { display:grid; grid-template-columns:repeat(var(--report-month-count),minmax(0,1fr)); margin-top:25px; margin-bottom:25px; }
.report-month-zoom-row > div { display:flex; justify-content:center; height:25px; }
.report-months [data-zoom] { display:grid; place-items:center; width:25px; height:25px; padding:0; border:0; border-radius:3px; background:#e8e8e8; color:var(--muted); cursor:zoom-in; }
.report-months [data-zoom].current-month { background:var(--ink); color:white; }
.report-months [data-zoom] svg { display:block; width:var(--action-icon-size,15px); height:var(--action-icon-size,15px); }
.report-months [data-zoom]:focus-visible { outline:2px solid var(--brass); }
.report-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; gap:25px; margin-top:25px; }

.report-summary { min-width:0; }
.report-summary-heading { display:flex; align-items:center; gap:25px; justify-content:space-between; }
.report-summary-heading h2 { margin:0; line-height:25px; }
.report-summary-plot { overflow:auto; margin-top:25px; }
.report-summary-plot > svg { display:block; width:260px; height:185px; max-width:none; margin-inline:auto; }
.report-switch-symbol { display:inline-grid; place-items:center; flex:none; width:15px; height:15px; padding:0; border:1px solid var(--ink); border-radius:50%; background:transparent; }
.report-switch-symbol::after { content:''; display:block; width:var(--report-dot-size); height:var(--report-dot-size); background:var(--ink); border-radius:50%; }

.report-legend h2 { margin:0; font-size:11px; line-height:25px; }
.report-legend-items { display:flex; flex:1; flex-direction:column; justify-content:space-between; gap:5px; }
.report-legend-items p { display:grid; grid-template-columns:15px minmax(0,1fr); align-items:center; gap:5px; font-size:10px; line-height:15px; margin:0; min-height:15px; }
.legend-dot { width:var(--report-dot-size); height:var(--report-dot-size); border-radius:50%; justify-self:center; }
.report-legend-icon { display:inline-flex; flex:none; width:15px; height:15px; color:var(--ink); }
.report-legend-icon svg { display:block; width:100%; height:100%; }
.report-source { font-size:10px; color:var(--muted); margin:25px 0; text-align:center; overflow-wrap:anywhere; }
.report-unavailable { font-size:10px; }
dialog.report-detail { width:900px; max-height:calc(100dvh - 50px); overflow:auto; }
.report-detail-heading { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.report-detail-heading h2 { margin:0; }
.report-detail table { border-collapse:collapse; width:100%; }
.report-detail-chart { overflow:auto; margin:25px 0; }
.report-detail-chart svg { display:block; height:330px; width:auto; max-width:none; margin-inline:auto; }
.report-detail :is(th,td) { padding:12px 8px; border-bottom:1px solid var(--line); text-align:left; overflow-wrap:anywhere; }
.report-detail :is(th,td):nth-last-child(-n+2) { text-align:right; }
.report-print-frame { position:fixed; width:1px; height:1px; bottom:0; right:0; border:0; }
@media (max-width:750px) { .report-summary-grid { grid-template-columns:1fr; } .report-detail :is(th,td) { padding:10px 3px; font-size:10px; } }

.report-column-sort { display:inline-flex; align-items:center; gap:8px; border:0; padding:0; background:none; color:inherit; font:inherit; cursor:pointer; text-align:inherit; }
.report-column-sort svg { width:14px; height:14px; flex:none; }

.report-values { width:100%; table-layout:fixed; border-collapse:collapse; font-size:var(--report-value-font-size); font-weight:400; }
.report-values :is(th,td) { height:25px; padding:0 2px; text-align:center; font-weight:400; white-space:nowrap; }
.report-values th { font-size:12px; color:var(--muted); }
.report-month-values th { font-weight:600; letter-spacing:0.1em; }
.report-values th.current-month { color:var(--ink); }
.values-previous { color:#899089; }
.values-budget { color:#a58536; }

.report-section-navigator { display:grid; grid-template-columns:25px minmax(0,1fr) 25px; column-gap:25px; align-items:center; height:25px; width:350px; max-width:100%; min-width:0; font-size:12px; font-weight:400; }
.report-section-navigator button { display:flex; align-items:center; justify-content:center; height:25px; min-width:0; padding:5px; border:0; background:none; color:#000001; font:inherit; line-height:1; }
.report-section-navigator [data-section-picker] { display:block; padding:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; letter-spacing:0.1em; }
.report-section-navigator svg { width:15px; height:15px; flex:none; }
.report-section-navigator button:disabled { color:#d9d9d9; cursor:default; opacity:1; }
.report-section-navigator button:not(:disabled):hover { color:var(--brass); }
.report-section-picker { position:fixed; margin:0; border:0; border-radius:3px; padding:25px; background:white; color:#000; box-shadow:5px 5px 15px #00000040; overflow:auto; }
.report-section-picker .report-section[aria-current=true] { background:var(--field); }
.report-section-picker .report-section-open { white-space:normal; overflow-wrap:anywhere; }

/* A dedicated label gutter keeps month values, zoom controls and bars aligned. */
.report-month-layout { width:100%; min-width:0; }
.report-month-plot,.report-month-zoom-row { margin-left:100px; }
.report-month-values .report-row-label { width:100px; text-align:left; letter-spacing:normal; font-weight:400; color:inherit; }
.report-values tbody th { font-size:var(--report-value-font-size); }
.report-summary-values th { text-align:left; color:inherit; width:auto; }
.report-summary-values td { text-align:right; }
.report-summary-values .report-deviation { width:auto; padding-left:5px; }
.report-summary-plot[data-forecast] { overflow:visible; }
.report-summary-plot[data-forecast] > svg { width:100%; max-width:100%; margin:0; }
.report-summary-values-scroll { overflow-x:auto; max-width:100%; }
.report-summary-values { min-width:0; table-layout:auto; }
.report-summary-actions { display:flex; align-items:center; gap:25px; flex:none; }
.report-explanation { max-height:calc(100dvh - 50px); overflow-y:auto; overflow-x:hidden; }
.report-explanation h2 { margin:0; font-size:12px; font-weight:600; }
.report-explanation-body p { margin:25px 0 0; line-height:1.5; overflow-wrap:anywhere; }

/* Flexible graph rows reserve space for headings, tables and controls first. */
.has-reporting #content { display:flex; flex-direction:column; gap:25px; }
/* Minimum: 50px padding + 35px plot + 35px zoom row + four 20px table rows. */
.report-months { flex:1 1 0; min-height:200px; display:flex; flex-direction:column; }
.report-months-scroll,.report-month-layout { height:100%; min-height:0; }
.report-month-layout { display:flex; flex-direction:column; }
.report-month-plot { flex:1; min-height:35px; }
.report-month-plot>svg { height:100%; }
.report-month-zoom-row { margin-top:5px; margin-bottom:5px; flex:none; }
.report-summary-grid { flex:1.2 1 0; min-height:min-content; margin-top:0; gap:25px; }
.report-summary { display:grid; grid-template-rows:subgrid; grid-row:1 / 4; height:100%; }
.report-summary-heading { gap:10px; flex:none; flex-wrap:wrap; align-content:start; }
.report-summary-heading h2 { font-size:11px; }
.report-summary-actions { gap:15px; }
/* Let the shared graph row size the SVG, not its 185px intrinsic height. */
.report-summary-plot[data-forecast] { contain:size; min-height:35px; margin-top:0; }
.report-summary-plot[data-forecast]>svg { width:100%; height:100%; }
.report-summary-values-scroll { flex:none; overflow:visible; }
.report-summary-values { font-size:11px; }
.report-summary-values tbody th { font-size:11px; }
.report-legend { grid-column:4; grid-row:1 / 4; display:flex; flex-direction:column; gap:5px; min-width:0; height:100%; }
.report-legend .report-source { margin:0; font-size:10px; line-height:15px; text-align:left; }
.report-summary-grid { grid-template-rows:auto minmax(35px,1fr) auto; row-gap:10px; }
.report-values,.report-values tbody th { font-size:clamp(9px,.85vw,14px); }
.report-month-values th { font-size:10px; }
.report-month-plot,.report-month-zoom-row { margin-left:80px; }
.report-month-values .report-row-label { width:80px; }
@media(min-width:751px) and (max-width:1279px) {
 .has-reporting #content { display:block; }
 .report-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; margin-top:25px; }
 .report-summary { display:flex; flex-direction:column; grid-row:auto; }
 .report-legend { grid-column:auto; grid-row:auto; }
 .report-summary-plot[data-forecast] { flex:0 0 185px; height:185px; margin-top:10px; }
 .report-months-scroll { overflow-x:auto; }
 .report-month-layout { min-width:850px; }
}
@media(max-width:750px) {
 .has-reporting #content { display:block; }
 .report-months { min-height:260px; }
 .report-summary-grid { display:grid; grid-template-columns:minmax(0,1fr); margin-top:25px; }
 .report-summary-grid { grid-template-rows:none; }
 .report-summary { display:flex; flex-direction:column; grid-row:auto; min-height:280px; }
 .report-summary-plot[data-forecast] { flex:0 0 185px; height:185px; margin-top:10px; }
 .report-legend { grid-column:auto; grid-row:auto; }
 .report-months-scroll { overflow-x:auto; }
 .report-month-layout { min-width:850px; }
}

.has-reporting .report-values :is(th,td) { height:20px; }
@media(max-width:750px) {
 .has-reporting .page-heading { grid-template-columns:minmax(0,1fr); }
 .has-reporting .page-heading .report-toolbar { grid-column:1; grid-row:3; margin-top:15px; }
 .report-summary-values-scroll { overflow-x:auto; }
 .report-summary-values { min-width:240px; }
 .report-legend { min-width:0; }
}

.report-deviation.development-positive { color:#2A922A; }
.report-deviation.development-negative { color:#b73535; }
.report-deviation.development-neutral { color:#383E42; }
