.chart-card{transition:var(--transition);flex-direction:column;gap:clamp(.9rem,3%,1.25rem);padding:clamp(1rem,4%,1.5rem);display:flex}.card.chart-card{overflow:visible}.chart-card:hover{border-color:var(--e2-border);box-shadow:var(--e2-shadow)}.chart-card__title{color:var(--text-primary);font-size:.95rem;font-weight:700}.chart-card__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.chart-card__empty{color:var(--text-muted);text-align:center;padding:1.5rem 0;font-size:.85rem}.line-chart{width:100%;height:auto;overflow:visible}.line-chart--fit{height:200px}.line-chart__grid{stroke:var(--border-color);stroke-width:1px}.line-chart__area{fill:rgba(var(--accent-rgb), .1);stroke:none}.line-chart__stroke{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.line-chart__dot{fill:var(--accent);stroke:var(--e1-bg);stroke-width:2px;r:4px;transition:r var(--dur-2) var(--ease-out)}.line-chart__dot.is-hovered{r:6px}.line-chart__hit{fill:#0000;cursor:pointer}.line-chart__hit:focus-visible{outline:none}.line-chart__crosshair{stroke:var(--border-color);stroke-width:1px;stroke-dasharray:3 3}.chart-tooltip{pointer-events:none}.chart-tooltip-anchor{fill:var(--accent);stroke:var(--e1-bg);stroke-width:2px}.chart-tooltip-bg{fill:var(--e3-bg);stroke:var(--e3-border);stroke-width:1px}.chart-tooltip-label{fill:var(--text-muted);font-size:8.5px}.chart-tooltip-value{fill:var(--text-primary);font-size:11px;font-weight:700}.line-chart .chart-tooltip-label{font-size:11px}.line-chart .chart-tooltip-value{font-size:15px}.line-chart__end-value{fill:var(--text-primary);font-size:11px;font-weight:700}.line-chart__axis-label{fill:var(--text-muted);font-size:9px}.pie-chart{flex-wrap:wrap;align-items:center;gap:clamp(.75rem,3%,1.5rem);display:flex}.pie-chart__svg{aspect-ratio:1;flex:0 auto;width:100%;min-width:7.25rem;max-width:12.5rem;height:auto}.pie-chart__track{fill:none;stroke:var(--e2-bg);stroke-width:18px}.pie-chart__segment{stroke-width:18px;transition:opacity var(--dur-2) var(--ease-out), stroke-width var(--dur-2) var(--ease-out)}.pie-chart__segment:focus-visible{outline:none}.pie-chart:has(.pie-chart__segment.is-hovered) .pie-chart__segment:not(.is-hovered){opacity:.35}.pie-chart__segment.is-hovered{stroke-width:24px}.pie-chart__total{fill:var(--text-primary);font-family:var(--display-font);font-size:34px;font-weight:700}.pie-chart__total--sm{font-size:24px}.pie-chart__total--xs{font-size:18px}.pie-chart__total-label{fill:var(--text-muted);font-size:11px}.pie-chart__legend{flex-direction:column;flex:11rem;gap:.6rem;min-width:0;display:flex}.pie-chart__legend-item{border-radius:var(--radius-sm);transition:background-color var(--dur-2) var(--ease-out);align-items:center;gap:.55rem;margin:-.15rem -.3rem;padding:.3rem;font-size:.82rem;display:flex}.pie-chart__legend-item.is-hovered{background:var(--e2-bg)}.pie-chart__swatch{flex-shrink:0}.pie-chart__legend-label{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pie-chart__legend-value{min-width:1.75rem;color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;font-size:.82rem;font-weight:600}.pie-chart__legend-percent{min-width:2.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;font-size:.78rem}.chart-card--compact{gap:1rem;padding:1.1rem}.chart-card--compact .pie-chart{gap:.9rem}.chart-card--compact .pie-chart__svg{max-width:8.25rem}.chart-card--compact .pie-chart__legend{flex:100%;min-width:0}.pie-chart--centered{flex-flow:column;flex:1;justify-content:center;align-items:center}.pie-chart--centered .pie-chart__svg{max-width:10.5rem}.pie-chart--centered .pie-chart__legend{flex-direction:column;gap:.15rem;width:min(100%,17rem);display:flex}.pie-chart--centered .pie-chart__legend-item{justify-content:space-between}.chart-card{container-type:inline-size}@container (width<=20rem){.pie-chart{flex-flow:column;align-items:center}.pie-chart__legend{width:100%}}.charts-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1.5rem;margin-top:1.5rem;display:grid}
