:root{--bg:#f4f5f6;--card:#fff;--ink:#16181b;--mute:#666b73;--line:#dfe2e6;--line2:#c9cdd3;--acc:#2f6fb5;--acc2:#e8f0f9;
 --grid:#eef0f2;--grid2:#d5d9de;--trace:#15171a;--ok:#1e8449;--warn:#b9770e;--bad:#b03a2e;--sel:rgba(47,111,181,.16);
 --W:#E3A33B;--R:#D2504A;--N1:#8EC3E6;--N2:#3F7FC4;--N3:#1D3466;--U:#c9ccd1}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#111214;--card:#1a1b1e;--ink:#e8e9eb;--mute:#9a9fa7;--line:#2c2e33;--line2:#3a3d43;
 --acc:#6aa5e6;--acc2:#1e2a38;--grid:#202226;--grid2:#30333a;--trace:#e3e5e8;--sel:rgba(106,165,230,.2);--N3:#5b7fc4;--U:#44474d}}
:root[data-theme="dark"]{--bg:#111214;--card:#1a1b1e;--ink:#e8e9eb;--mute:#9a9fa7;--line:#2c2e33;--line2:#3a3d43;
 --acc:#6aa5e6;--acc2:#1e2a38;--grid:#202226;--grid2:#30333a;--trace:#e3e5e8;--sel:rgba(106,165,230,.2);--N3:#5b7fc4;--U:#44474d}
*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
[hidden]{display:none!important}a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
.sub{color:var(--mute)}.small{font-size:12px}.num{font-variant-numeric:tabular-nums}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}
.btn{background:var(--acc);color:#fff;border:1px solid var(--acc);border-radius:7px;padding:7px 14px;font-weight:500}
.btn:disabled{opacity:.5;cursor:default}.btn.ok{background:var(--ok);border-color:var(--ok)}
.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:7px;padding:6px 12px}
.ghost:hover:not(:disabled){border-color:var(--acc)}.ghost:disabled{opacity:.45;cursor:default}.ghost.on{background:var(--acc2);border-color:var(--acc);color:var(--acc)}
input[type=text],input[type=password],input[type=number],select,textarea{background:var(--card);border:1px solid var(--line2);border-radius:7px;padding:7px 9px;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc);outline-offset:-1px}
label{display:block;font-size:12px;color:var(--mute);margin:10px 0 3px}
table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:500;color:var(--mute);font-size:12px}
.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:var(--grid);color:var(--mute);white-space:nowrap}
.pill.ok{background:rgba(30,132,73,.12);color:var(--ok)}.pill.warn{background:rgba(185,119,14,.13);color:var(--warn)}.pill.acc{background:var(--acc2);color:var(--acc)}
.topbar{display:flex;align-items:center;gap:14px;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--line)}
.topbar .brand{font-weight:650;letter-spacing:.2px}.topbar .sp{flex:1}
.err{color:var(--bad)}kbd{font:11px ui-monospace,Menlo,monospace;border:1px solid var(--line2);border-bottom-width:2px;border-radius:4px;padding:0 4px;background:var(--card)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal .card{max-width:520px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 10px 40px rgba(0,0,0,.25)}
