:root{--surface-0:#f3f5f8;--surface-1:#eef1f5;--surface-2:#fff;--text-primary:#111827;--text-secondary:#556070;--text-muted:#8a93a2;--border:rgba(16,24,40,.08);--border-strong:rgba(16,24,40,.14);--border-stronger:rgba(16,24,40,.26);--brand:#1f5fae;--brand-hover:#1a5096;--bg-accent:#e8f1fc;--text-accent:#1a56a0;--bg-success:#e6f6ec;--text-success:#1b7a3d;--border-success:#a6dcb9;--bg-warning:#fdf3e0;--text-warning:#93570a;--bg-danger:#fdecec;--text-danger:#b42318;--tb-bg:#e1edfb;--tb-tx:#174a88;--ta-bg:#dcf4ed;--ta-tx:#0b5e4a;--shadow:0 1px 2px rgba(16,24,40,.04),0 10px 30px rgba(16,24,40,.07)}
@media (prefers-color-scheme:dark){:root{--surface-0:#0e1116;--surface-1:#161a21;--surface-2:#1c212a;--text-primary:#eef1f5;--text-secondary:#a7b0bf;--text-muted:#7b8494;--border:rgba(255,255,255,.08);--border-strong:rgba(255,255,255,.14);--border-stronger:rgba(255,255,255,.26);--brand:#3d86e0;--brand-hover:#5596e6;--bg-accent:#132c4d;--text-accent:#a9cbf5;--bg-success:#123a22;--text-success:#9fe0b4;--border-success:#2a6b41;--bg-warning:#3d2a08;--text-warning:#f5c46b;--bg-danger:#41161a;--text-danger:#f4a1a1;--tb-bg:#16365e;--tb-tx:#b8d4f7;--ta-bg:#103d33;--ta-tx:#9fe1cb;--shadow:0 10px 30px rgba(0,0,0,.35)}}
*{box-sizing:border-box}html,body{margin:0}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:14px;background:var(--surface-0);color:var(--text-primary);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;font-size:13px;font-weight:500;height:36px;padding:0 14px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,transform .08s}
button:hover{background:var(--surface-1)}button:active{transform:scale(.98)}button:disabled{opacity:.75;cursor:default}
.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-hover)}
.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}
input{font:inherit;font-size:15px;height:46px;width:100%;padding:0 14px;border-radius:12px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary)}
input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--bg-accent)}
.card{background:var(--surface-2);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:500;padding:3px 9px;border-radius:999px;white-space:nowrap}
.c-accent{background:var(--bg-accent);color:var(--text-accent)}.c-ok{background:var(--bg-success);color:var(--text-success)}.c-warn{background:var(--bg-warning);color:var(--text-warning)}.c-bad{background:var(--bg-danger);color:var(--text-danger)}.c-mute{background:var(--surface-1);color:var(--text-secondary)}.c-new{background:var(--brand);color:#fff}
.tl{background:var(--tb-bg);color:var(--tb-tx)}.tv{background:var(--ta-bg);color:var(--ta-tx)}.co{border:1.5px dashed var(--border-stronger);color:var(--text-secondary)}
.muted{color:var(--text-secondary)}.tiny{font-size:12px}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}
.qr{background:#fff;padding:8px;border-radius:12px;display:inline-block;line-height:0}.qr svg{display:block;width:100%;height:auto}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:var(--text-primary);color:var(--surface-2);padding:12px 18px;border-radius:12px;font-size:13.5px;font-weight:500;max-width:92vw;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:all .3s;z-index:50}
.toast.show{opacity:1;transform:translate(-50%,0)}
.fade{animation:fd .45s ease-out}@keyframes fd{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pulse{animation:pl 1.6s infinite}@keyframes pl{50%{opacity:.35}}
.flash{animation:fl 1.4s ease-out}@keyframes fl{from{box-shadow:0 0 0 0 rgba(31,95,174,.55)}to{box-shadow:0 0 0 18px rgba(31,95,174,0)}}
[hidden]{display:none!important}
