:root{--top-h:58px;--paper:#f6f5f4;--card:#fff;--ink:#1c1c1c;--ink-2:#3d3d3d;--muted:#707070;--border:#dcdbda;--border-2:#ebeae9;--accent:#ed1c24;--accent-ink:#c4141b;--accent-wash:#fdecec;--gold:#c69e63;--pending:#8a5d12;--pending-wash:#fbf0dc;--ok:#2a6e48;--ok-wash:#e3f0e8;--bad:#8c1d18;--bad-wash:#f4e7e5;--surface-2:#fafafa;--surface-3:#f7f7f7;--hover:#f4f4f4;--hover-accent:#fbf6f6;--hover-line:#fcfafa;--chip-bg:#f0efee;--dot-line:#d3d2d1;--faint:#767472;--empty:#8e8c8a;--btn-line:#d9b4ad;--on-ink:#fff;--rail:#fff;--rail-border:#e4e2e1;--rail-hover:#f5f4f3;--rail-ink:#5e5e5e;--rail-active:#1c1c1c;--rail-active-bg:#f1f0ef;--rail-dot:#c9c7c5;--rail-tag-bg:#f0efee;--rail-tag-ink:#6e6c6a;--rail-sec:#9a9896;--rail-foot:#8e8c8a;--rail-foot-b:#4a4a4a;--r:5px;--mono:ui-monospace,"Cascadia Mono","Consolas",monospace}html[data-theme=dark]{--paper:#141414;--card:#1c1c1c;--ink:#f1f0ef;--ink-2:#c6c4c2;--muted:#9b9997;--border:#333231;--border-2:#282726;--accent:#ed1c24;--accent-ink:#ff4b52;--accent-wash:#3a1619;--pending:#e0a94b;--pending-wash:#3a2d14;--ok:#5fbe8c;--ok-wash:#17301f;--bad:#f08076;--bad-wash:#3a1a17;--surface-2:#232221;--surface-3:#262524;--hover:#2b2a29;--hover-accent:#2e2323;--hover-line:#282322;--chip-bg:#2e2d2c;--dot-line:#4a4846;--faint:#8a8886;--empty:#6e6c6a;--btn-line:#6b3a36;--on-ink:#141414;--rail:#0e0e0e;--rail-border:#2a2928;--rail-hover:#232322;--rail-ink:#a8a6a4;--rail-active:#fff;--rail-active-bg:#2a2928;--rail-dot:#4a4846;--rail-tag-bg:#2e2d2c;--rail-tag-ink:#b9b7b5;--rail-sec:#7c7a78;--rail-foot:#7c7a78;--rail-foot-b:#c4c2c0}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.45}button{font:inherit;cursor:pointer}.num{font-variant-numeric:tabular-nums}.mono,.num{font-family:var(--mono)}.page-head{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.page-head h1{letter-spacing:-.2px;font-size:16.5px;font-weight:650}.page-head p{color:var(--muted);max-width:62ch;font-size:12px}.head-actions{align-items:center;gap:7px;margin-left:auto;display:flex}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.panel+.panel{margin-top:14px}.panel-head{border-bottom:1px solid var(--border-2);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 13px;display:flex}.panel-head h2{font-size:12.5px;font-weight:650}.panel-head .spacer{margin-left:auto}.panel-body{padding:13px}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}thead th{text-align:left;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:8px 11px;font-size:10.5px;font-weight:600}tbody td{border-bottom:1px solid var(--border-2);vertical-align:middle;padding:8px 11px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--hover)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.mono,td.num,th.num{font-family:var(--mono)}.muted{color:var(--muted)}.btn,.nowrap{white-space:nowrap}.badge{letter-spacing:.2px;background:var(--chip-bg);color:var(--ink-2);border-radius:3px;align-items:center;gap:5px;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-flex}.badge.ok{background:var(--ok-wash);color:var(--ok)}.badge.bad{background:var(--bad-wash);color:var(--bad)}.badge.warn{background:var(--pending-wash);color:var(--pending)}.badge.accent{background:var(--accent-wash);color:var(--accent-ink)}.btn{border:1px solid var(--border);background:var(--card);color:var(--ink-2);border-radius:4px;align-items:center;gap:6px;padding:6px 11px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--hover);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}.btn-sm{min-height:24px;padding:3px 8px;font-size:11px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--ink-2);font-size:11.5px;font-weight:600}.field .hint{color:var(--muted);font-size:10.5px}.input,.select{border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:4px;width:100%;padding:7px 9px;font-size:12.5px}.input:focus,.select:focus{border-color:var(--ink-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 8%,transparent);outline:none}.grid2{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.msg{border:1px solid #0000;border-radius:4px;margin-bottom:12px;padding:7px 10px;font-size:11.5px}.msg.error{background:var(--bad-wash);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 25%,transparent)}.msg.ok{background:var(--ok-wash);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 25%,transparent)}.msg.info{background:var(--surface-3);color:var(--ink-2);border-color:var(--border-2)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.empty{text-align:center;color:var(--muted);padding:22px;font-size:12px}.spin{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite sp;display:inline-block}@keyframes sp{to{transform:rotate(1turn)}}@media (width<=900px){.grid2{grid-template-columns:1fr}.page-head h1{font-size:15.5px}}
