.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.chart{margin:0;padding:18px;background:var(--card);border:1px solid var(--line-soft);min-width:0}.chart figcaption{display:grid;gap:3px}.chart figcaption strong{font-family:'Fraunces',serif;font-size:17px;color:var(--ink)}.chart figcaption span,.chart-summary{color:var(--muted);font-size:12px}.chart-summary{min-height:36px}.chart svg{display:block;width:100%;height:auto;max-height:220px;overflow:visible}.chart text{font:9px 'IBM Plex Sans',sans-serif;fill:var(--muted)}.chart rect{fill:var(--income)}.chart .chart-color-1{fill:var(--expense)}.chart-line-path{fill:none;stroke:var(--forest);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.chart-area-fill{fill:rgba(68,117,91,.18)}.chart circle{fill:var(--forest)}.chart-donut circle{fill:none;stroke-width:18;transform:rotate(-90deg);transform-origin:center}.chart-stroke-0{stroke:#315d46}.chart-stroke-1{stroke:#c4775b}.chart-stroke-2{stroke:#c5a35a}.chart-stroke-3{stroke:#6d5a8d}.chart-stroke-4{stroke:#568394}.chart-stroke-5{stroke:#9a7661}.chart-donut-wrap{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:18px;align-items:center}.chart-donut-legend,.chart-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11px;color:var(--muted)}.chart-donut-legend{display:grid}.chart-key{display:inline-block;width:9px;height:9px;margin-right:5px;background:var(--income)}.chart-key.chart-color-1{background:var(--expense)}.chart-key.chart-stroke-0{background:#315d46}.chart-key.chart-stroke-1{background:#c4775b}.chart-key.chart-stroke-2{background:#c5a35a}.chart-key.chart-stroke-3{background:#6d5a8d}.chart-key.chart-stroke-4{background:#568394}.chart-key.chart-stroke-5{background:#9a7661}.chart-h-row{display:grid;grid-template-columns:minmax(80px,1fr) 2fr auto;gap:9px;align-items:center;margin:10px 0;font-size:11px}.chart-h-row>div{height:8px;background:var(--paper-alt);overflow:hidden}.chart-h-row i{display:block;height:100%;background:var(--gold)}.chart-empty{padding:32px 10px;text-align:center;color:var(--muted);background:var(--paper-alt)}
.chart-zero{stroke:var(--border-emphasis,var(--line));stroke-width:1;stroke-dasharray:3 3}.chart-empty{display:grid;gap:5px}.chart-empty strong{font-family:'Fraunces',serif;color:var(--ink);font-weight:500}.chart-empty span{font-size:12px}.chart [tabindex="0"]:focus{outline:none;filter:drop-shadow(0 0 2px var(--gold))}
.chart-axis line{stroke:var(--line-soft);stroke-width:.5}.chart-axis text{fill:var(--text-secondary);font-size:7px}.chart-tooltip{position:absolute;z-index:4;inset:auto 18px 12px auto;max-width:calc(100% - 36px);padding:7px 10px;background:var(--ink);color:var(--paper);font-size:12px;box-shadow:0 4px 16px rgba(0,0,0,.18);pointer-events:none}.chart{position:relative}.chart-tooltip[hidden]{display:none}
.chart-gh-group{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:6px 16px;padding:12px 0;border-top:1px solid var(--line-soft)}.chart-gh-group h3{grid-row:1/5;margin:0;font-size:13px;overflow-wrap:anywhere}.chart-gh-series{display:grid;grid-template-columns:72px 1fr 84px;gap:8px;align-items:center;font-size:11px}.chart-gh-series>div{height:8px;background:var(--paper-alt)}.chart-gh-series i{display:block;height:100%;background:var(--income)}.chart-gh-series .chart-color-1{background:var(--expense)}.chart-gh-series .chart-color-2{background:var(--gold)}.chart-gh-group small{grid-column:2;color:var(--muted)}.chart-help{margin-top:12px;color:var(--muted)}
@media(max-width:480px){.chart-gh-group{grid-template-columns:1fr}.chart-gh-group h3,.chart-gh-group small{grid-column:1;grid-row:auto}.chart-gh-series{grid-template-columns:64px 1fr 74px}}
@media(max-width:768px){.dashboard-grid{grid-template-columns:1fr}.chart-donut-wrap{grid-template-columns:130px 1fr}}
@media(max-width:390px){.chart{padding:14px}.chart-donut-wrap{grid-template-columns:1fr}.chart-donut-wrap svg{max-height:150px}.chart-h-row{grid-template-columns:80px 1fr}.chart-h-row strong{grid-column:2}}
@media(prefers-reduced-motion:reduce){.chart *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.chart-reference line{stroke:var(--gold);stroke-width:1;stroke-dasharray:2 2}.chart-reference text{fill:var(--text-secondary);font-weight:600}.chart-highlighted{fill:var(--expense)!important;stroke:var(--card);stroke-width:2}.chart-daily{grid-column:1/-1}.chart-daily svg{max-height:340px}@media(max-width:900px){.chart-daily svg{max-height:260px}}@media(max-width:480px){.chart-daily svg{max-height:240px}}
@media print{.sidebar,.app-footer,.page-actions,.quick-actions{display:none!important}main{max-width:none;padding:0}.chart,.section{break-inside:avoid;box-shadow:none}}
