:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--chart-text-secondary:#52514e;--chart-muted:#898781;--chart-grid:#e1e0d9;--series-weight:#2a78d6;--series-goal:#4a3aa7;--series-target:#2a78d6;--series-planned:#2a78d659;--series-interpolated:#2a78d699;--status-good:#0ca30c;--status-warning:#fab219;--status-critical:#d03b3b;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--chart-text-secondary:#c3c2b7;--chart-muted:#898781;--chart-grid:#2c2c2a;--series-weight:#3987e5;--series-goal:#9085e9;--series-target:#3987e5;--series-planned:#3987e559;--series-interpolated:#3987e599}}*{box-sizing:border-box}body{margin:0}#root{border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2,h3{font-family:var(--heading);color:var(--text-h);margin:0 0 8px;font-weight:500}h1{letter-spacing:-.8px;font-size:32px}h2{letter-spacing:-.2px;font-size:20px}h3{font-size:16px}p{margin:0}a{color:var(--accent)}.nav{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:16px 24px;display:flex}.nav .brand{color:var(--text-h);margin-right:auto;font-size:18px;font-weight:600}.nav a{color:var(--text);border-radius:8px;padding:8px 14px;font-size:15px;text-decoration:none}.nav a:hover{background:var(--code-bg)}.nav a.active{color:var(--text-h);background:var(--accent-bg)}.page{text-align:left;flex-direction:column;flex:1;gap:20px;padding:24px;display:flex}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.card{border:1px solid var(--border);background:var(--bg);border-radius:12px;padding:20px}.card-title-row{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.stat-tile .label{color:var(--chart-muted);font-size:13px}.stat-tile .value{color:var(--text-h);margin-top:4px;font-size:32px;font-weight:600}.stat-tile .sub{color:var(--chart-text-secondary);margin-top:2px;font-size:13px}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--chart-text-secondary);font-size:13px}input,select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:9px 11px;font-size:15px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent-border);outline-offset:1px}.form-row{flex-wrap:wrap;gap:12px;display:flex}.form-row .field{flex:1;min-width:140px}button{font:inherit;border:1px solid var(--accent-border);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;padding:9px 16px;font-size:15px;font-weight:500}button:hover{filter:brightness(1.05)}button.secondary{color:var(--text-h);border-color:var(--border);background:0 0}button.danger{color:var(--status-critical);border-color:var(--status-critical);background:0 0}button:disabled{opacity:.5;cursor:not-allowed}.hint{color:var(--chart-muted);font-size:13px}.error-banner{border:1px solid var(--status-critical);color:var(--status-critical);background:#d03b3b14;border-radius:8px;padding:10px 14px;font-size:14px}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.badge{border:1px solid var(--border);text-align:center;opacity:.35;filter:grayscale();border-radius:10px;padding:12px}.badge.earned{opacity:1;filter:none;border-color:var(--accent-border);background:var(--accent-bg)}.badge .icon{font-size:26px}.badge .name{color:var(--text-h);margin-top:4px;font-size:13px;font-weight:600}.badge .desc{color:var(--chart-muted);margin-top:2px;font-size:11px}.range-select{background:var(--code-bg);border-radius:9px;gap:2px;margin-bottom:12px;padding:3px;display:inline-flex}.range-btn{color:var(--chart-text-secondary);background:0 0;border:none;border-radius:6px;padding:5px 12px;font-size:13px;font-weight:500}.range-btn:hover{color:var(--text-h)}.range-btn.active{background:var(--bg);color:var(--text-h);box-shadow:0 1px 2px #00000014}.chart-legend{color:var(--chart-text-secondary);flex-wrap:wrap;gap:16px;margin-bottom:8px;font-size:13px;display:flex}.chart-legend .key{align-items:center;gap:6px;display:inline-flex}.chart-legend .swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.chart-legend .swatch.line{border-radius:0;width:14px;height:2px}.chart-legend .swatch.line.dashed{background:repeating-linear-gradient(to right, var(--series-goal) 0, var(--series-goal) 5px, transparent 5px, transparent 8px)}.plan-table-wrap{overflow-x:auto}.plan-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}.plan-table th,.plan-table td{text-align:center;border-bottom:1px solid var(--border);padding:6px 8px}.plan-table thead th{color:var(--chart-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}.plan-table tbody th{text-align:left;color:var(--chart-text-secondary);white-space:nowrap;font-weight:500}.plan-table input{text-align:center;width:68px;padding:6px 4px;font-size:13px}.plan-row-computed td{color:var(--text-h);font-variant-numeric:tabular-nums}.plan-row-total th,.plan-row-total td{border-top:2px solid var(--border);border-bottom:none;font-weight:600}.plan-row-total td.surplus-negative{color:var(--status-good)}.plan-row-total td.surplus-positive{color:var(--status-critical)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px}th{color:var(--chart-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}tbody tr:hover{background:var(--code-bg)}.status-pill{border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.status-pill.good{color:var(--status-good);background:#0ca30c1f}.status-pill.critical{color:var(--status-critical);background:#d03b3b1f}.status-pill.neutral{color:var(--chart-muted);background:var(--code-bg)}.recharts-bar-rectangle{transition:filter .1s}.recharts-bar-rectangle:hover{filter:brightness(1.12)}.recharts-cartesian-axis-tick-value{fill:var(--chart-muted);font-size:12px}.recharts-default-tooltip{background:var(--bg)!important;border:1px solid var(--border)!important;color:var(--text-h)!important;border-radius:8px!important}
