:root{--bg:#f5f3ee;--surface:#ffffff;--border:#e6e1d6;--text:#1a1a1a;--text-secondary:#555049;--text-tertiary:#8a8378;--accent:#c2410c;--accent-soft:#fdebd8;--success:#15803d;--danger:#b91c1c;--radius:12px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1100px;margin:0 auto;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.btn{display:inline-block;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}.btn:hover{opacity:.92}.btn.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}th{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px}.badge,th{font-weight:600;font-size:11px}.badge{display:inline-block;padding:2px 8px;border-radius:999px}.badge.queued{background:#fef3c7;color:#92400e}.badge.running{background:#dbeafe;color:#1e40af}.badge.done{background:#dcfce7;color:#166534}.badge.failed{background:#fee2e2;color:#991b1b}.input{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--surface);color:var(--text)}.muted{color:var(--text-tertiary)}.nav{display:flex;gap:18px;align-items:center;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.nav .brand{font-weight:700;letter-spacing:1px;color:var(--text)}.nav a{color:var(--text-secondary);font-weight:500}.nav a.active{color:var(--accent)}.nav .spacer{flex:1 1}:root{--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#4a3aa7;--series-other:#b5b3ac;--seq-100:#cde2fb;--seq-200:#9ec5f4;--seq-300:#6da7ec;--seq-400:#3987e5;--seq-500:#256abf;--seq-600:#184f95;--seq-700:#0d366b;--status-good:#0ca30c;--status-warning:#fab219;--status-critical:#d03b3b;--chart-grid:#ece8df;--chart-axis:#c3c2b7;--chart-empty:#f0efec}.chart{width:100%;height:auto;display:block}.chart-tick{fill:var(--text-tertiary);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-hero{fill:var(--text);font-size:28px;font-weight:700}.chart-mark:hover path,.chart-mark:hover rect,path.chart-mark:hover,rect.chart-mark:hover{opacity:.8}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--text-secondary)}.chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.metrics-grid.tiles{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metrics-section{margin-bottom:16px}.metrics-grid h2,.metrics-section h2{font-size:15px;margin:0 0 4px}.metrics-grid .muted.caption,.metrics-section .muted.caption{margin:0 0 12px;font-size:12px}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:600}.stat-value{font-size:28px;font-weight:700;margin:4px 0}.range-picker{display:flex;gap:12px;align-items:center}.range-picker a.active{font-weight:700}.switch{display:inline-flex;align-items:center;gap:10px;padding:6px 12px 6px 8px;margin-right:8px;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text);font:inherit;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s}.switch:hover{border-color:var(--accent)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch.on{border-color:var(--accent);background:var(--accent-soft)}.switch.pending{cursor:progress}.switch-track{position:relative;width:36px;height:20px;flex-shrink:0;border-radius:999px;background:var(--chart-axis);transition:background .2s}.switch.on .switch-track{background:var(--accent)}.switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .2s ease}.switch.on .switch-knob{transform:translateX(16px)}@media (prefers-reduced-motion:reduce){.switch,.switch-knob,.switch-track{transition:none}}