/* 0.15.0 beta — responsive charts in both application themes. */
body{--chart-muted:#a3b0c2;--chart-grid:#ffffff12;--chart-track:#ffffff0b;--chart-purple:#ad83ff;--chart-green:#4ade80;--chart-surface:#20272c;--chart-border:#3b4247}
body.light-theme{--chart-muted:#65738a;--chart-grid:#23304412;--chart-track:#2330440b;--chart-purple:#6418ff;--chart-green:#15803d;--chart-surface:#fff;--chart-border:#d9dde2}
.app-chart{min-width:0;margin-top:18px;margin-bottom:22px;padding:24px;background:var(--chart-surface);border-color:var(--chart-border)}
.chart-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.chart-heading h2{font-size:18px;line-height:1.35;margin:0}.chart-heading p{margin:6px 0 0;font-size:13px;color:var(--chart-muted)}.chart-heading-total{color:var(--chart-purple);font-size:19px;font-weight:800;white-space:nowrap}.chart-note{font-size:12px;line-height:1.6;color:var(--chart-muted);margin:16px 0 0}.chart-empty{min-height:170px;display:grid;place-items:center;text-align:center;color:var(--chart-muted);padding:24px;border:1px dashed var(--chart-border);border-radius:12px}
.chart-columns{display:flex;gap:clamp(12px,3vw,44px);padding:20px 12px 0;background:repeating-linear-gradient(to top,transparent 0,transparent 47px,var(--chart-grid) 48px,transparent 49px);border-bottom:1px solid var(--chart-border)}.chart-column{flex:1;min-width:0;text-align:center;border-radius:8px;outline-offset:4px}.chart-column:focus-visible{outline:2px solid var(--chart-purple)}.chart-column-track{height:170px;display:flex;align-items:flex-end;justify-content:center;position:relative;margin-bottom:12px}.chart-column-bar{display:block;width:min(110px,85%);background:linear-gradient(180deg,#b694f4,#6418ff);border-radius:7px 7px 0 0;transition:filter .15s}.chart-column:hover .chart-column-bar,.chart-column:focus .chart-column-bar{filter:brightness(1.14)}.chart-column-value{position:absolute;top:-24px;left:50%;transform:translateX(-50%);color:var(--chart-muted);font-size:12px;white-space:nowrap;font-weight:700}.chart-column>strong{display:block;font-size:13px;font-weight:700}.chart-column>small{display:block;color:var(--chart-muted);font-size:11px;padding-bottom:12px}
.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.chart-grid>.app-chart{margin-top:0}.chart-line-svg{display:block;width:100%;height:auto;max-height:330px;overflow:visible}.chart-grid-line{stroke:var(--chart-grid);stroke-width:1}.chart-zero-line{stroke:var(--chart-border);stroke-dasharray:4 4}.chart-axis-label{fill:var(--chart-muted);font:12px Nunito,system-ui,sans-serif}.chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.chart-line-revenue{stroke:var(--chart-green);fill:var(--chart-green)}.chart-line-profit{stroke:var(--chart-purple);fill:var(--chart-purple)}polyline.chart-line{fill:none}.chart-point{outline:none}.chart-point-target{fill:transparent;stroke:none}.chart-point:focus circle:not(.chart-point-target),.chart-point:hover circle:not(.chart-point-target){r:6;stroke:var(--chart-surface);stroke-width:2}.chart-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--chart-muted);margin:0 0 12px}.chart-legend span{display:flex;align-items:center;gap:8px}.chart-legend i,.chart-donut-legend i{width:10px;height:10px;border-radius:50%;flex:none}.chart-revenue-swatch{background:var(--chart-green)}.chart-profit-swatch{background:var(--chart-purple)}.chart-data{margin-top:16px;font-size:13px}.chart-data summary{color:var(--chart-purple);cursor:pointer;padding:6px 0;width:fit-content}.chart-data .table-wrap{margin-top:12px}.chart-ranking{list-style:none;margin:0;padding:0;display:grid;gap:20px}.chart-ranking li>div:first-child{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:9px;font-size:13px}.chart-ranking li span{min-width:0;overflow-wrap:anywhere}.chart-ranking li strong{flex-shrink:0;font-size:14px;color:var(--chart-purple)}.chart-ranking li small{font-size:11px;color:var(--chart-muted)}.chart-horizontal-track{height:10px;background:var(--chart-track);border-radius:8px;overflow:hidden}.chart-horizontal-track>span{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#6418ff,#b694f4)}
.chart-donut-layout{display:grid;gap:24px;justify-items:center}.chart-donut{width:190px;height:190px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.chart-donut>div{width:136px;height:136px;background:var(--chart-surface);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;gap:4px}.chart-donut small{color:var(--chart-muted);font-size:12px}.chart-donut strong{font-size:17px;max-width:120px;text-align:center;overflow-wrap:anywhere;line-height:1.4}.chart-donut-legend{display:grid;gap:14px;padding:0;margin:0;width:100%;list-style:none}.chart-donut-legend li{display:flex;align-items:center;gap:10px;font-size:13px}.chart-donut-legend li>span{flex:1;overflow-wrap:anywhere}.chart-donut-legend strong{font-size:13px;flex-shrink:0;text-align:right}.chart-donut-legend strong small{display:block;font-size:11px;color:var(--chart-muted);font-weight:400}.stock-projection-chart{border:1px solid var(--chart-border);padding:22px;border-radius:14px;margin:0 0 22px}.stock-projection-chart h3{font-size:16px;margin:0 0 20px}.chart-comparison{display:grid;gap:20px}.chart-comparison-label{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:9px;font-size:14px}.chart-comparison-label strong{white-space:nowrap}.chart-horizontal-track>.chart-stock-investment{background:linear-gradient(90deg,#2563eb,#60a5fa)}.chart-horizontal-track>.chart-stock-revenue{background:linear-gradient(90deg,#6418ff,#b694f4)}
.inventory-alert-card{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;margin:0 0 18px;border-color:var(--chart-border);background:var(--chart-surface)}.inventory-alert-card h2{margin:0 0 6px;font-size:17px}.inventory-alert-card p{margin:0;color:var(--chart-muted);font-size:13px;line-height:1.5}.inventory-alert-card>strong{font-size:36px;color:#f59e0b;line-height:1;font-weight:800}.inventory-alert-healthy>strong{color:var(--chart-green)}
@media(min-width:1300px){.chart-donut-layout{grid-template-columns:190px minmax(0,1fr);align-items:center;gap:20px}.chart-donut{width:170px;height:170px}.chart-donut>div{width:122px;height:122px}}
@media(max-width:850px){.chart-grid{grid-template-columns:1fr}.chart-heading{gap:12px}.chart-line-scroll{overflow-x:auto;padding-bottom:8px}.chart-line-svg{min-width:530px}.app-chart{padding:20px}.chart-columns{gap:14px;padding-inline:0}.chart-column-value{font-size:11px}.chart-column-bar{width:85%}}
@media(max-width:480px){.app-chart{padding:18px 14px}.chart-heading h2{font-size:16px}.chart-heading-total{font-size:15px}.chart-columns{gap:8px}.chart-column-track{height:150px}.chart-column-value{font-size:10px}.chart-column>strong{font-size:11px}.chart-column>small{font-size:10px}.inventory-alert-card{padding:18px;gap:16px}.inventory-alert-card h2{font-size:15px}.inventory-alert-card p{font-size:12px}.inventory-alert-card>strong{font-size:32px}.chart-comparison-label{font-size:12px}.chart-heading>.badge{font-size:10px;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.chart-column-bar{transition:none}}
.chart-column-value{max-width:100%;overflow:hidden;text-overflow:ellipsis}
