:root{--bg:#0e1116;--pn:#151a21;--pn2:#1b222b;--bd:#262f3b;--tx:#e6e9ee;--mu:#8c97a6;--ac:#f5b83d;--up:#26c281;--dn:#ef5350;--bl:#4aa3ff;
--sans:'IBM Plex Sans',system-ui,Segoe UI,sans-serif;--mono:'IBM Plex Mono',Consolas,monospace}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--tx);font:14px/1.4 var(--sans)}
a{color:var(--ac)}
button,input,select{font:inherit;color:inherit}
input,select{background:#0b0f14;border:1px solid var(--bd);border-radius:6px;padding:9px 11px;width:100%}
input:focus,select:focus{outline:none;border-color:var(--ac)}
label{display:block;font-size:12px;color:var(--mu);margin:12px 0 4px}
.btn{background:var(--pn2);border:1px solid var(--bd);border-radius:6px;padding:8px 14px;cursor:pointer}
.btn:hover{border-color:var(--ac)}
.btn.pri{background:var(--ac);color:#1a1405;border-color:var(--ac);font-weight:600}
.btn.up{background:var(--up);color:#04170f;border-color:var(--up);font-weight:700}
.btn.dn{background:var(--dn);color:#fff;border-color:var(--dn);font-weight:700}
.btn.sm{padding:4px 9px;font-size:12px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.card{background:var(--pn);border:1px solid var(--bd);border-radius:10px;padding:24px}
.err{color:#ff8a80;font-size:13px;min-height:18px;margin-top:8px}
.ok{color:var(--up);font-size:13px}
.mut{color:var(--mu)}
.mono{font-family:var(--mono)}
.up{color:var(--up)}.dn{color:var(--dn)}
.chip{display:inline-block;padding:3px 9px;border:1px solid var(--bd);border-radius:99px;font-size:12px;color:var(--mu);margin:2px}
.chip.on{color:var(--ac);border-color:var(--ac)}
.tag{padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600}
.tag.ok{background:#12301f;color:var(--up)}.tag.bad{background:#3a1717;color:#ff8a80}.tag.warn{background:#3a2d10;color:var(--ac)}
