:root{--bg:#f6f7f9;--card:#fff;--ink:#14181f;--mute:#5b6573;--line:#e1e5ea;--acc:#0b5fd1;--acc-ink:#fff;--ok:#12703a;--okbg:#e4f5ea;--err:#a31621;--errbg:#fde8ea;--warn:#8a5a00;--warnbg:#fff3d6}
@media (prefers-color-scheme:dark){:root{--bg:#0f1318;--card:#171c23;--ink:#e8ecf1;--mute:#97a1ae;--line:#2a323d;--acc:#5aa2ff;--acc-ink:#07111f;--ok:#6fd49a;--okbg:#12301f;--err:#ff8a93;--errbg:#3a1519;--warn:#f0c36b;--warnbg:#3a2c0c}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--acc)}
header.top{background:var(--card);border-bottom:1px solid var(--line)}
header.top .in{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
header.top .brand{font-weight:700;margin-right:8px}
header.top nav{display:flex;flex-wrap:wrap;gap:4px 14px;flex:1}
header.top nav a{text-decoration:none;color:var(--mute);padding:4px 0}
header.top nav a:hover{color:var(--ink)}
main{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:1.5rem;margin:0 0 16px}h2{font-size:1.1rem;margin:0 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:16px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px}
.stat .l{color:var(--mute);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.stat .v{font-size:1.5rem;font-weight:650;font-variant-numeric:tabular-nums}
.stat .s{color:var(--mute);font-size:.85rem}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--mute);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
td.n,th.n{text-align:right}
.scroll{overflow-x:auto}
label{display:block;font-weight:600;margin:10px 0 4px}
label.chk{font-weight:400;display:flex;gap:8px;align-items:center}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],select,textarea{width:100%;max-width:520px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--ink);font:inherit}
textarea{min-height:110px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9rem}
button,.btn{display:inline-block;background:var(--acc);color:var(--acc-ink);border:0;border-radius:7px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
button.sec{background:transparent;color:var(--ink);border:1px solid var(--line)}
button.danger{background:var(--err);color:#fff}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.row>div{flex:1 1 140px}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px}
.flash.ok{background:var(--okbg);color:var(--ok)}.flash.err{background:var(--errbg);color:var(--err)}
.pill{display:inline-block;padding:1px 9px;border-radius:99px;font-size:.78rem;font-weight:600;background:var(--line);color:var(--mute)}
.pill.ok{background:var(--okbg);color:var(--ok)}.pill.err{background:var(--errbg);color:var(--err)}.pill.warn{background:var(--warnbg);color:var(--warn)}
.mute{color:var(--mute)}.small{font-size:.85rem}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.secret{background:var(--warnbg);color:var(--ink);border:1px dashed var(--warn);border-radius:8px;padding:12px}
.chart{width:100%;height:auto;color:var(--acc)}
.auth{max-width:420px;margin:8vh auto;padding:0 16px}
.codes{columns:2;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.05rem;padding:12px;background:var(--bg);border-radius:8px}
.qr{background:#fff;padding:8px;border-radius:8px;display:inline-block}
.qr img{display:block;width:200px;height:200px}
form.inline{display:inline}

.pick{max-height:14rem;overflow-y:auto;border:1px solid #c9ced6;border-radius:6px;padding:8px 10px;margin:6px 0 12px}
.pick label.chk{padding:3px 0}
