:root{--bg:#f3f5f9;--card:#fff;--tx:#1b2330;--mu:#6b7686;--bd:#dfe4ec;--pr:#1d5fd6;--ok:#12805c;--okbg:#e2f6ee;--bad:#b3261e;--badbg:#fde8e6;--wait:#8a5a00;--waitbg:#fff3d6}
@media(prefers-color-scheme:dark){:root{--bg:#10141b;--card:#1a212c;--tx:#e8edf5;--mu:#93a0b4;--bd:#2d3746;--pr:#5b93ff;--ok:#5fd6a6;--okbg:#12362a;--bad:#ff8a80;--badbg:#401a17;--wait:#ffd27a;--waitbg:#3b2d0c}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding:24px 16px}
.card{max-width:460px;margin:0 auto;background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:24px}
.card.wide{max-width:980px}.card.small{max-width:360px}
h1{font-size:1.4rem;margin:0 0 4px}h2{font-size:1.1rem}
.muted,small{color:var(--mu)}
.note{background:var(--badbg);color:var(--bad);font-weight:700;padding:8px 12px;border-radius:9px;font-size:.88rem;margin:10px 0 0}a{color:var(--pr)}
label{display:block;margin:14px 0 0;font-weight:600;font-size:.92rem}
input,select{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--bd);border-radius:9px;background:var(--bg);color:var(--tx);font:inherit}
input[type=radio]{display:inline;width:auto;margin:0 10px 0 0}
fieldset{border:1px solid var(--bd);border-radius:10px;margin:18px 0 0;padding:6px 14px 12px}
legend{font-weight:600;font-size:.92rem;padding:0 6px}
.group{margin-top:10px;color:var(--mu);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.opt{display:flex;align-items:center;font-weight:500;margin:6px 0 0;padding:9px 10px;border:1px solid var(--bd);border-radius:9px;cursor:pointer}
button,.btn{display:inline-block;margin-top:18px;padding:12px 18px;background:var(--pr);color:#fff;border:0;border-radius:9px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}
form>button{width:100%}
button.ghost{background:transparent;color:var(--pr);border:1px solid var(--pr);margin-top:6px;padding:8px 14px}
.alert{background:var(--badbg);color:var(--bad);padding:10px 12px;border-radius:9px;margin:14px 0}
.alert.okbox{background:var(--okbg);color:var(--ok)}
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.8rem;font-weight:600}
.badge.ok{background:var(--okbg);color:var(--ok)}.badge.bad{background:var(--badbg);color:var(--bad)}.badge.wait{background:var(--waitbg);color:var(--wait)}
.kv{width:100%;border-collapse:collapse;margin:14px 0}.kv td{padding:7px 0;border-bottom:1px solid var(--bd);vertical-align:top}.kv td:first-child{color:var(--mu);width:38%}
.va{font:700 1.6rem/1.2 ui-monospace,Consolas,monospace;letter-spacing:.06em;padding:14px;background:var(--bg);border-radius:10px;text-align:center;word-break:break-all}
.qr{display:flex;justify-content:center;padding:16px;background:#fff;border-radius:12px;margin:10px 0}
.bar{display:flex;justify-content:space-between;align-items:center}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}
.stats div{background:var(--bg);border-radius:10px;padding:12px;color:var(--mu);font-size:.85rem}.stats span{display:block;font-size:1.3rem;font-weight:700;color:var(--tx)}
.pbtns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.pbtns button{margin:0;padding:8px 14px;background:transparent;color:var(--pr);border:1px solid var(--pr);font-weight:600;font-size:.9rem}
.pbtns button.on{background:var(--pr);color:#fff}
.ppanel p{margin:6px 0 0}
.filters{display:flex;gap:8px;flex-wrap:wrap}.filters input{flex:1;min-width:180px;margin:0}.filters select{width:auto;margin:0}.filters button{margin:0;padding:10px 16px}
.scroll{overflow-x:auto;margin-top:14px}.list{width:100%;border-collapse:collapse;font-size:.92rem}.list th,.list td{padding:10px 8px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top;white-space:nowrap}
.log{border:1px solid var(--bd);border-radius:9px;padding:10px;margin:8px 0}.log pre{white-space:pre-wrap;word-break:break-all;margin:8px 0 0;font-size:.82rem}
