:root{--bg:#eef2f5;--surface:#ffffff;--ink:#17202b;--muted:#566373;--line:#d5dce4;--accent:#2d6e4f;--accent-soft:#e1efe7;--tag:#f2c94c;--tag-ink:#3b2f05;--good:#2b7a4b;--warn:#a96c12;--bad:#bf3a2c;--good-bg:#e2f2e8;--warn-bg:#fbf0dc;--bad-bg:#fbe5e2;--f-display:"Bricolage Grotesque", "Avenir Next", system-ui, sans-serif;--f-body:"Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f141a;--surface:#18202a;--ink:#e5eaf0;--muted:#9aa7b6;--line:#2b3644;--accent:#7fcca3;--accent-soft:#1a2e24;--tag:#e3b93b;--tag-ink:#2a2003;--good:#5cc28a;--warn:#e3a94c;--bad:#f07264;--good-bg:#16301f;--warn-bg:#33270f;--bad-bg:#3a1a17;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f141a;--surface:#18202a;--ink:#e5eaf0;--muted:#9aa7b6;--line:#2b3644;--accent:#7fcca3;--accent-soft:#1a2e24;--tag:#e3b93b;--tag-ink:#2a2003;--good:#5cc28a;--warn:#e3a94c;--bad:#f07264;--good-bg:#16301f;--warn-bg:#33270f;--bad-bg:#3a1a17;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5}.wrap{max-width:1040px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 48px;display:grid;grid-template-columns:minmax(0,1fr);gap:22px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;line-height:1.1}h1{font-size:clamp(26px,5.5vw,38px);font-weight:800;letter-spacing:-.01em}h2{font-size:22px;font-weight:800}h3{font-size:15px;font-weight:600}p{margin:0}a{color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.note{font-size:13px;color:var(--muted);max-width:65ch}.error{color:var(--bad);font-size:14px}.topbar{border-bottom:1px solid var(--line);background:var(--surface)}.topbar .inner{max-width:1040px;margin:0 auto;padding:10px max(16px,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap}.brand{font-family:var(--f-display);font-weight:800;font-size:18px;color:var(--ink);text-decoration:none;margin-right:auto}.topbar nav{display:flex;gap:4px;flex-wrap:wrap}.topbar nav a{color:var(--muted);text-decoration:none;font-weight:700;font-size:14px;padding:6px 10px;border-radius:6px}.topbar nav a.router-link-active{color:var(--accent);background:var(--accent-soft)}.topbar nav a:hover{color:var(--ink)}.tag{display:inline-flex;align-items:center;gap:8px;background:var(--tag);color:var(--tag-ink);font-family:var(--f-mono);font-size:12px;font-weight:600;padding:4px 10px;border-radius:3px;width:max-content;max-width:100%}.tag:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 2px var(--tag-ink)}header.page{display:grid;gap:10px}.lede{max-width:62ch;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px}.field{display:grid;gap:6px;min-width:0}input,select,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;min-width:0}textarea{resize:vertical;min-height:64px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=number]{font-family:var(--f-mono)}.stat{display:grid;gap:2px}.stat b{font-family:var(--f-mono);font-size:22px;font-weight:600}button,.btn{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 12px;text-decoration:none;display:inline-flex;align-items:center;gap:6px}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:700}button.ghost{background:transparent}button.danger{color:var(--bad)}button:hover,.btn:hover{border-color:var(--accent)}button:disabled{opacity:.55;cursor:default}.x{padding:6px 0;width:32px;justify-content:center;background:transparent;border-color:transparent;color:var(--muted);font-size:18px;line-height:1}.x:hover{color:var(--bad);border-color:transparent}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chip{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap}.ok{background:var(--good-bg);color:var(--good)}.close{background:var(--warn-bg);color:var(--warn)}.low,.high{background:var(--bad-bg);color:var(--bad)}.pill{font-size:12px;border:1px solid var(--line);border-radius:4px;padding:1px 6px;white-space:nowrap}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--bg)}tr:last-child td{border-bottom:0}td.num,th.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.group td{background:var(--accent-soft);font-family:var(--f-display);font-weight:600;color:var(--accent)}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;font-size:14px;z-index:10;max-width:calc(100% - 32px)}footer.foot{font-size:12px;color:var(--muted);max-width:75ch}@media(prefers-reduced-motion:no-preference){.bar i{transition:width .3s ease}}.bar{display:block;height:8px;border-radius:999px;background:var(--line);overflow:hidden;background-color:var(--line)}.bar i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.bar.ok i{background:var(--good)}.bar.close i{background:var(--warn)}.bar.low i,.bar.high i{background:var(--bad)}.bar.ok,.bar.close,.bar.low,.bar.high{background:var(--line)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
