:root{--bg:#0d1014;--panel:#171c23;--line:#2a323d;--text:#eef2f7;--muted:#8d97a8;--ok:#34c77b;--warn:#f5b942;--danger:#ff4d3d;--accent:#4f8cff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,sans-serif}.wrap{max-width:860px;margin:0 auto;padding:24px 20px 60px}h1{font-size:1.35rem;margin:0 0 4px}.sub{color:var(--muted);margin:0 0 20px;font-size:.9rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}.panel h2{text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}.panel h2,label{font-size:.8rem;color:var(--muted)}label{display:block;margin-bottom:6px}input,select{width:100%;background:#0f1319;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:.95rem;margin-bottom:12px;font-family:inherit}button{font-family:inherit;cursor:pointer}.btn{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:14px 20px;font-size:1rem}.btn.stop{background:#3a4250}.btn:disabled{opacity:.45;cursor:default}.vu-wrap{display:flex;align-items:center;gap:16px}canvas.vu{width:100%;height:72px;display:block;border-radius:8px;background:#0b0e12;border:1px solid var(--line)}.vu-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:2rem;min-width:150px;text-align:right}.vu-num small{display:block;font-size:.7rem;color:var(--muted);text-align:right}.alert{border-radius:12px;padding:14px 16px;margin-bottom:12px;font-size:1.05rem;font-weight:600;display:flex;align-items:center;gap:10px}.alert.clip{background:rgba(255,77,61,.16);border:1px solid var(--danger);color:#ff9d94}.alert.silence{background:rgba(245,185,66,.14);border:1px solid var(--warn);color:#ffd98a}.alert.reconnect{background:rgba(255,77,61,.18);border:1px solid var(--danger);color:#ffb3ab;animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.stat{background:#0f1319;border:1px solid var(--line);border-radius:10px;padding:12px}.stat .k{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stat .v{font-size:1.15rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:4px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.dot.connected{background:var(--ok)}.dot.reconnecting{background:var(--danger)}.dot.connecting,.dot.idle{background:var(--muted)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.err{color:#ff9d94;font-size:.9rem;margin:8px 0 0}.hint{color:var(--muted);font-size:.8rem;margin:6px 0 0}.support{display:flex;flex-wrap:wrap;gap:18px 32px;background:#141922;border:1px solid #2a3240;border-radius:12px;padding:12px 16px;margin-bottom:18px}.support .k{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#8b95a7}.support .code{font-family:ui-monospace,Consolas,monospace;font-size:1.35rem;letter-spacing:.12em}.advice{display:flex;flex-direction:column;gap:2px;border-radius:12px;padding:14px 16px;margin-bottom:12px;border:2px solid}.advice strong{font-size:1.15rem}.advice span{font-size:.98rem;opacity:.92}.advice.green{background:#0f2a1c;border-color:#34c77b;color:#b9f2d3}.advice.amber{background:#2e2611;border-color:#f5b942;color:#ffe6ac}.advice.red{background:#2e1414;border-color:#ff4d3d;color:#ffc9c3}.simple-meter{position:relative;height:34px;background:#0b0e12;border:1px solid #2a3240;border-radius:8px;overflow:hidden}.simple-meter .target-band{position:absolute;top:0;bottom:0;background:rgba(52,199,123,.18);border-left:2px dashed #34c77b;border-right:2px dashed #34c77b}.simple-meter .target-band span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#34c77b}.simple-meter .fill{position:absolute;top:0;bottom:0;left:0;opacity:.75;transition:width .1s linear}.simple-meter .fill.green{background:#34c77b}.simple-meter .fill.amber{background:#f5b942}.simple-meter .fill.red{background:#ff4d3d}.tech{margin-top:14px}.tech summary{cursor:pointer;color:#8b95a7;font-size:.85rem}.ack{display:block;margin-top:10px;font-size:.95rem}.ack input{width:auto;margin-right:6px}.takeover{position:fixed;inset:0;z-index:50;background:rgba(120,20,10,.97);display:flex;align-items:center;justify-content:center;text-align:center;padding:32px}.takeover h2{font-size:2rem;margin:0 0 12px}.takeover p{font-size:1.15rem;max-width:44ch;margin:0 auto 10px}