:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--text:#0b0b0b;--secondary:#52514e;--muted:#898781;--grid:#e1e0d9;--baseline:#c3c2b7;--border:#0b0b0b1a;--highlight:#2a78d614;--accent:#2a78d6;--series-forecast:#2a78d6;--series-actual:#eb6834;--series-corrected:#1baf7a;--band:#2a78d629;--diverge-pos:#e34948;--diverge-neg:#2a78d6;--radius:12px;color:var(--text);background:var(--page);font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--text:#f0efec;--secondary:#c3c2b7;--grid:#2c2c2a;--baseline:#383835;--border:#ffffff1a;--highlight:#3987e524;--accent:#3987e5;--series-forecast:#3987e5;--series-actual:#d95926;--series-corrected:#199e70;--band:#3987e53d;--diverge-pos:#e66767;--diverge-neg:#3987e5}}*{box-sizing:border-box}body{background:var(--page);margin:0}.app{max-width:1240px;margin:0 auto;padding:0 16px 32px}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 0 12px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-name{font-size:18px;font-weight:650}.brand-sub{color:var(--secondary);font-size:13px}label{color:var(--secondary);align-items:center;gap:8px;font-size:13px;display:inline-flex}select,input[type=date],button,.button{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:14px}button,.button{cursor:pointer}button:disabled{opacity:.4;cursor:default}.button{background:var(--accent);color:#fff;border-color:#0000;margin-top:8px;text-decoration:none;display:inline-block}.ghost{white-space:nowrap;background:0 0}.ghost:hover:not(:disabled){background:var(--highlight)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tabs{border-bottom:1px solid var(--grid);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.tabs button{color:var(--secondary);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:10px 14px;font-size:14px}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.page{flex-direction:column;gap:16px;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.stepper{align-items:center;gap:6px;display:flex}.switch input{accent-color:var(--accent)}.slider{flex:1;min-width:260px}.slider input{accent-color:var(--accent);flex:1}.lede{color:var(--secondary);margin:0;font-size:15px;line-height:1.5}.lede b{color:var(--text)}.kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.kpi-accent{box-shadow:inset 3px 0 0 var(--series-corrected)}.kpi-label{color:var(--secondary);font-size:13px}.kpi-value{margin:4px 0;font-size:28px;font-weight:650}.kpi-sub{color:var(--muted);font-size:12.5px;line-height:1.4}.kpi-sub b{color:var(--secondary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:16px;transition:opacity .15s}.card.is-loading{opacity:.55}.card h3{margin:0;font-size:15px;font-weight:620}.card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.card-sub{color:var(--muted);margin:4px 0 0;font-size:12.5px;line-height:1.4}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:16px;display:grid}.legend{color:var(--secondary);flex-wrap:wrap;gap:4px 16px;margin:0 0 8px;padding:0;font-size:12.5px;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:flex}.swatch{flex:none;display:inline-block}.swatch-line{border-radius:2px;width:14px;height:3px}.swatch-area,.swatch-bar{border-radius:3px;width:12px;height:12px}.tip{background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:180px;padding:8px 10px;font-size:12.5px;box-shadow:0 4px 16px #0000001f}.tip-label{margin-bottom:4px;font-weight:600}.tip-row{align-items:center;gap:6px;padding:1px 0;display:flex}.tip-name{color:var(--secondary);flex:1}.tip-val{font-variant-numeric:tabular-nums;font-weight:550}.insights ul{margin:10px 0 4px;padding-left:20px;font-size:14.5px;line-height:1.6}.note{color:var(--secondary);margin:12px 0 0;font-size:13px;line-height:1.5}.table-wrap{max-height:420px;margin-top:8px;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}th,td{text-align:right;border-bottom:1px solid var(--grid);white-space:nowrap;padding:6px 10px}th:first-child,td:first-child{text-align:left}thead th{color:var(--secondary);background:var(--surface);font-weight:550;position:sticky;top:0}.state{text-align:center;color:var(--secondary);padding:48px}footer{color:var(--muted);margin-top:28px;font-size:12px;line-height:1.5}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.recharts-wrapper:focus,.recharts-surface:focus{outline:none}.hint{color:var(--muted);font-size:12px}kbd{font:inherit;border:1px solid var(--border);background:var(--surface);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:11px}.muted{color:var(--muted)}.heatmap-scroll{overflow-x:auto}.heatmap svg{width:100%;height:auto;display:block}.heatmap svg:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.heatmap-label{fill:var(--muted);font-size:8.5px}.heatmap-focus{fill:none;stroke:var(--text);stroke-width:1.5px;pointer-events:none}.heatmap-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin-top:8px;font-size:12.5px;display:flex}.heatmap-legend{color:var(--secondary);align-items:center;gap:8px;display:flex}.heatmap-ramp{border-radius:5px;width:140px;height:10px}.heatmap-readout{min-height:1.4em;color:var(--secondary)}.heatmap-readout b{color:var(--text)}@media (width<=600px){.hint{display:none}.kpis{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:10px 12px}.kpi-value{font-size:21px}.kpi-sub{font-size:11.5px}.card{padding:12px}.brand-sub{font-size:12px}}
