.report-visuals { display:grid; gap:16px; min-width:0; }
.report-visuals .chart-card { min-width:0; }
.report-visuals .daily-card { order:0; }
.report-visuals .chart-legend { font-size:12px; color:var(--color-neutral-700); }
.report-chart-head { margin-bottom:16px; }
.report-chart-head h3 { margin:0 0 5px; font-family:var(--font-heading); font-size:19px; font-weight:600; }
.report-chart-head p,.report-note { margin:4px 0; font-size:12px; color:var(--color-neutral-700); line-height:1.6; }
.report-breakdowns { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.report-income { background:var(--color-accent); }
.report-expense { background:var(--color-warning); }
.report-empty { min-height:140px; display:flex; align-items:center; margin:0; font-size:14px; color:var(--color-neutral-700); line-height:1.6; }
.report-trend-readout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:12px; margin-bottom:18px; background:var(--color-neutral-100); border-radius:var(--radius-sm); font-size:12px; font-variant-numeric:tabular-nums; }
.report-trend-readout strong { display:block; margin-top:4px; overflow-wrap:anywhere; }
.report-trend-scroll { max-width:100%; overflow-x:auto; padding-bottom:8px; }
.report-trend { display:grid; grid-template-columns:68px minmax(0,1fr); height:226px; }
.report-axis { display:flex; flex-direction:column; justify-content:space-between; padding:0 8px 31px 0; font-size:12px; color:var(--color-neutral-700); text-align:right; }
.report-plot { position:relative; min-width:0; }
.report-grid-lines { position:absolute; inset:0 0 35px; display:flex; flex-direction:column; justify-content:space-between; pointer-events:none; }
.report-grid-lines i { display:block; border-top:1px solid var(--color-divider); }
.report-columns { position:relative; height:100%; display:grid; grid-template-columns:repeat(var(--trend-columns),minmax(0,1fr)); gap:4px; }
.report-column { border:0; background:transparent; padding:0 2px; color:var(--color-neutral-700); cursor:pointer; min-width:0; display:flex; flex-direction:column; font:inherit; border-radius:4px; }
.report-column.selected { background:var(--color-accent-100); }
.report-column:hover { background:var(--color-neutral-100); }
.report-column-pair { position:relative; width:100%; height:191px; display:flex; justify-content:center; align-items:flex-end; gap:3px; }
.report-column-pair i { width:40%; max-width:28px; border-radius:3px 3px 0 0; }
.report-column-label { width:100%; padding-top:10px; font-size:12px; white-space:nowrap; }
.report-dimension { display:flex; gap:6px; margin-bottom:16px; }
.report-dimension button,.report-detail-header button { min-height:40px; border:1px solid var(--color-divider); background:var(--color-surface); border-radius:var(--radius-sm); color:var(--color-text); padding:6px 12px; font:inherit; font-size:12px; cursor:pointer; }
.report-dimension button[aria-pressed=true] { border-color:var(--color-accent); color:var(--color-accent-800); background:var(--color-accent-100); }
.report-breakdown-total { display:flex; align-items:center; gap:18px; margin:0 0 18px; min-width:0; }
.report-breakdown-total svg { width:100px; height:100px; flex:none; }
.report-breakdown-total > div { min-width:0; }
.report-breakdown-money { font-family:var(--font-heading); font-size:clamp(20px,5.4vw,28px); overflow-wrap:anywhere; }
.report-ranking { display:grid; gap:4px; }
.report-ranking-row { width:100%; display:block; text-align:left; border:1px solid transparent; background:transparent; color:var(--color-text); border-radius:var(--radius-sm); padding:10px 8px; font:inherit; cursor:pointer; }
.report-ranking-row:hover,.report-detail-row:hover { background:var(--color-neutral-100); }
.report-ranking-row[aria-pressed=true] { border-color:var(--color-accent-300); background:var(--color-accent-100); }
.report-ranking-head { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:4px 12px; font-size:13px; }
.report-category-name { min-width:0; overflow-wrap:anywhere; }
.report-ranking-track { display:block; height:7px; background:var(--color-neutral-200); overflow:hidden; border-radius:4px; margin:7px 0; }
.report-ranking-track i { display:block; height:100%; border-radius:4px; }
.report-ranking-meta { display:flex; justify-content:space-between; font-size:12px; color:var(--color-neutral-700); }
.report-details { border-top:1px solid var(--color-divider); margin-top:16px; padding-top:6px; }
.report-details summary { padding:10px 0; cursor:pointer; font-size:13px; color:var(--color-accent-800); }
.report-detail-header { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; padding:8px 0; font-size:13px; }
.report-detail-list { max-height:420px; overflow:auto; }
.report-detail-row { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; width:100%; padding:12px 8px; text-align:left; background:transparent; border:0; border-bottom:1px solid var(--color-divider); color:var(--color-text); font:inherit; font-size:13px; cursor:pointer; }
.report-detail-row > span { min-width:0; overflow-wrap:anywhere; }
.report-detail-row > .num { flex:none; }
.report-detail-row small { display:block; font-size:12px; color:var(--color-neutral-700); margin-top:3px; }
.report-comparison-row { padding:12px 0; border-top:1px solid var(--color-divider); }
.report-comparison-line { display:grid; grid-template-columns:26px minmax(20px,1fr) auto; align-items:center; gap:10px; font-size:12px; }
.report-visuals button:focus-visible,.report-details summary:focus-visible,.report-trend-scroll:focus-visible { outline:2px solid var(--color-accent); outline-offset:2px; }
@media(min-width:900px) { .report-breakdowns { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; } }
@media(min-width:600px) { .report-trend-readout { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:390px) { .report-breakdown-total { gap:12px; } .report-breakdown-total svg { width:84px; height:84px; } }
