:root,[data-theme=dark]{--bg: #0a0a0a;--panel: #111111;--card: #171717;--card-2: #1a1a1a;--line: #2a2a2a;--text: #f3f3f3;--muted: #8d8d8d;--btn: #f2f2f2;--btn-text: #111;--ok: #3dcc6e;--meter: #2ecc71;--danger: #e23d3d;--tally: #d31212;--warn: #c9a227;--warn-bg: #2a230e;--err-bg: #2a1518;--radius: 0;--radius-sm: 0}[data-theme=light]{--bg: #ececec;--panel: #f7f7f7;--card: #ffffff;--card-2: #f3f3f3;--line: #d8d8d8;--text: #161616;--muted: #6a6a6a;--btn: #161616;--btn-text: #fff;--warn-bg: #fff6d6;--err-bg: #fde8e8}*{box-sizing:border-box;border-radius:0}html,body,#root{margin:0;min-height:100%;background:var(--bg);color:var(--text)}body{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:14px}button,input,select,textarea{font:inherit;color:inherit;border-radius:0}button{cursor:pointer}a{color:inherit}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:28px 16px 72px;background:radial-gradient(ellipse at 50% 0%,#161616 0%,var(--bg) 55%)}[data-theme=light] .login-wrap{background:radial-gradient(ellipse at 50% 0%,#fff 0%,var(--bg) 55%)}.login-card{width:min(420px,100%);background:var(--card);border:1px solid var(--line);border-radius:0;padding:28px 28px 22px;box-shadow:0 20px 60px #00000059}.brand-block{display:flex;align-items:center;gap:12px;margin-bottom:22px}.mark{width:40px;height:40px;border-radius:0;background:#2a2a2a;color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;letter-spacing:.04em}[data-theme=light] .mark{background:#222}.brand-title{font-size:22px;font-weight:700;line-height:1.2}.brand-sub{color:var(--muted);font-size:12px;margin-top:2px}label{display:block;font-size:13px;color:var(--muted);margin:14px 0 7px}.hint{color:var(--muted);font-size:12px;margin:6px 0 0;line-height:1.45}.hint.warn{color:#c45c4a}input,select{width:100%;background:#0f0f0f;border:1px solid #2f2f2f;border-radius:0;padding:11px 12px;color:var(--text)}[data-theme=light] input,[data-theme=light] select{background:#fff;border-color:#d4d4d4}input:focus,select:focus{outline:none;border-color:#666}.btn{border:0;border-radius:0;padding:9px 16px;background:#2a2a2a;color:#f2f2f2}[data-theme=light] .btn{background:#e8e8e8;color:#111}.btn-white{background:var(--btn);color:var(--btn-text);font-weight:700;width:100%;margin-top:18px;padding:12px 16px;border-radius:0}.btn-ghost{background:#1c1c1c;border:1px solid var(--line);color:var(--text);border-radius:0}[data-theme=light] .btn-ghost{background:#fff}.btn-danger{background:#3a1d1b;color:#ffd4d0}.btn:disabled{opacity:.45;cursor:not-allowed}.callout{margin-top:14px;padding:10px 12px;border-radius:0;background:var(--warn-bg);color:var(--warn);font-size:12px;line-height:1.5}.err-pill{margin-top:12px;padding:10px 12px;border-radius:0;background:var(--err-bg);color:#f0a8a8;font-size:13px}.theme-dock{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;z-index:20}.theme-dock.corner{position:fixed;top:14px;right:18px}.theme-dock.chrome{position:static}.theme-dock button{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:0;padding:4px 10px}.theme-dock button.on{color:#f2f2f2;background:#2a2a2a}[data-theme=light] .theme-dock button.on{background:#161616;color:#fff}.page{min-height:100vh;padding:36px 40px 80px}.page h1{font-size:28px;margin:0 0 8px;font-weight:700}.lede{color:var(--muted);margin:0 0 28px;max-width:720px;line-height:1.55}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.pick-card{background:var(--card);border:1px solid var(--line);border-radius:0;padding:20px 20px 16px;display:flex;flex-direction:column;min-height:210px}.pick-card h2{margin:0 0 8px;font-size:20px}.meta{color:var(--muted);font-size:13px;line-height:1.55;margin-bottom:16px}.pick-card .btn-white{margin-top:auto}.foot-actions{display:flex;gap:10px;margin-top:28px}.wall{min-height:100vh;display:flex;flex-direction:column}.wall-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px;background:#111;border-bottom:1px solid var(--line)}[data-theme=light] .wall-top{background:#fff}.wall-top.hot{background:var(--tally);border-bottom-color:#8d0d0d}.wall-top.hot .muted,.wall-top.hot{color:#fff}.mic-meter,.header-meters{display:flex;align-items:center;gap:14px;min-width:0;font-size:12px}.meter-cell{display:inline-flex;align-items:center;gap:8px;margin:0;color:inherit;font-size:12px}.meter-label{font-size:12px;font-weight:400;letter-spacing:.02em;line-height:1;white-space:nowrap}.mic-bar{width:90px;height:8px;border-radius:0;background:#2a2a2a;overflow:hidden;flex:0 0 90px}.mic-bar>i{display:block;height:100%;width:0;background:var(--ok);transition:none}.wall-top.hot .mic-bar>i{background:#fff}.master-listen{display:inline-flex;align-items:center;gap:8px;color:inherit;font-size:12px}.vol-step{display:inline-flex;align-items:center;gap:4px;margin:0;padding:0;min-width:0}.vol-step button{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:0 6px;border:1px solid var(--line);background:#202020;color:inherit;line-height:1;flex:0 0 auto}.vol-step button:disabled{opacity:.35;cursor:default}[data-theme=light] .vol-step button{background:#eee}.vol-step-val{display:inline-grid;place-items:center;font-variant-numeric:tabular-nums;line-height:1}.vol-step-val>span{grid-area:1 / 1}.vol-step-reserve{visibility:hidden;pointer-events:none}.vol-step-master{height:8px;flex:0 0 auto}.vol-step-master button,.vol-step-master .vol-step-val{font-size:12px}.cam{font-size:28px;font-weight:800;letter-spacing:.04em}.top-right{display:flex;align-items:center;gap:10px}.qos-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--line);background:#1c1c1c;color:var(--muted);font-size:12px;letter-spacing:.02em;white-space:nowrap}[data-theme=light] .qos-chip{background:#fff}.wall-top.hot .qos-chip{border-color:#ffffff59;background:#0003;color:#fff}.dot{width:8px;height:8px;border-radius:0;background:var(--ok);display:inline-block}.wall-main{padding:22px 20px 40px}.wall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.wall-grid.wall-weaknet{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.wall-weaknet .ch-card{min-height:148px}.wall-weaknet .ch-name{font-size:20px;padding:6px 4px}.wall-weaknet .ch-presence{height:4px}.wall-top.tally{background:#141414}[data-theme=light] .wall-top.tally{background:#fff}.tally-bar{display:flex;align-items:center;gap:12px;min-width:0}.tally-pgm{font-weight:800;letter-spacing:.06em;font-size:13px;background:var(--tally);color:#fff;border-radius:0;padding:4px 10px}.tally-pgm.off{opacity:.4}.tally-pvw{font-weight:800;letter-spacing:.06em;font-size:13px;background:#333;color:#888;border-radius:0;padding:4px 10px}.tally-pvw.on{background:#2a4a2a;color:#c8f0c8}[data-theme=light] .tally-pvw{background:#ddd;color:#888}[data-theme=light] .tally-pvw.on{background:#cfe8cf;color:#163}.tally-member{font-weight:700;font-size:18px}.dot.warn{background:var(--warn)}.reconnect-banner{background:var(--warn-bg);color:var(--warn);padding:8px 18px;font-size:13px}.reconnect-banner a{text-decoration:underline;margin-left:8px}.reconnect-page{display:grid;align-content:start}.ch-card{background:var(--card);border:1px solid var(--line);border-radius:0;padding:0;overflow:hidden;min-height:188px;display:flex;flex-direction:column}.ch-card.hot{border-color:var(--danger);box-shadow:none}.ch-mic{flex:1;padding:10px 14px 14px;display:flex;flex-direction:column;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:132px}.ch-mic.listen-only{cursor:default}.ch-mic.hot{background:#2a1212}[data-theme=light] .ch-mic.hot{background:#fde8e8}.ch-chrome{display:flex;justify-content:center;align-items:center;gap:8px}.ch-chrome .chips{flex:0 1 auto;min-width:0;justify-content:center}.ch-name{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;font-size:28px;letter-spacing:.04em;line-height:1.15;padding:16px 6px 8px}.ch-note{margin:0 0 4px;font-size:11px;color:var(--danger);line-height:1.4;text-align:center}.ch-vol{flex:0 0 auto;padding:12px 16px 8px;border-bottom:1px solid var(--line)}.ch-vol .vol-step-card{width:100%;height:6px}.ch-vol .vol-step-card button,.ch-vol .vol-step-card .vol-step-val{font-size:12px}.mic-tag{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--danger);border:1px solid var(--danger);border-radius:0;padding:1px 7px}.mic-tag.spacer{visibility:hidden;border-color:transparent}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:#202020;color:var(--muted);border-radius:0;padding:3px 8px;font-size:11px}.chip.on{color:#f2f2f2;border-color:#555}.chip.peer{border-style:dashed}.chip.talk.on{color:#ffd0d0;border-color:var(--danger);background:#2a1212}[data-theme=light] .chip{background:#eee;color:#666}[data-theme=light] .chip.on{background:#e4e4e4;color:#111;border-color:#bbb}[data-theme=light] .chip.talk.on{background:#fde8e8;color:#a11;border-color:#e23d3d}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;padding:0;background:#2a2a2a;border:0;border-radius:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:0;background:#fff;border:0}[data-theme=light] input[type=range]{background:#ddd}[data-theme=light] input[type=range]::-webkit-slider-thumb{background:#161616}.ch-presence{height:6px;border-radius:0;background:#222;margin-top:6px}.ch-presence.on{background:var(--meter)}[data-theme=light] .ch-presence{background:#ddd}[data-theme=light] .ch-presence.on{background:var(--meter)}input[type=range]:disabled{opacity:.4;pointer-events:none}.nr-picks{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}.nr-pick{border:1px solid var(--line);background:transparent;color:inherit;border-radius:0;padding:8px 16px;cursor:pointer;min-width:56px}.nr-pick.on{background:#222;color:#fff;border-color:#555}[data-theme=light] .nr-pick.on{background:#111;color:#fff;border-color:#111}.settings{max-width:720px}.settings-drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000059}.settings-drawer{position:absolute;top:0;left:0;bottom:0;width:min(440px,92vw);background:var(--bg);border-right:1px solid var(--line);overflow:auto;padding:20px 18px 28px;animation:settings-drawer-in .18s ease-out}.settings-drawer h1{margin-top:0}.settings-drawer .settings-panel,.settings-sheet .settings-panel{max-width:none}@keyframes settings-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}[data-shell=mobile] .settings-overlay.above-tabs{z-index:18}[data-shell=mobile] .settings-sheet{max-height:min(80dvh,calc(100dvh - 72px - env(safe-area-inset-bottom)))}[data-shell=mobile] .settings-sheet .settings-panel{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}.section{background:var(--card);border:1px solid var(--line);border-radius:0;padding:18px 20px;margin-bottom:14px}.section h2{margin:0 0 14px;font-size:16px}.switch-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:8px 0}.switch-row p{margin:4px 0 0;color:var(--muted);font-size:12px}.link-status-lines{display:flex;flex-direction:column;gap:2px;margin-top:4px}.link-status-lines p{margin:0}.link-status-lines p.warn{color:var(--warn)}.toggle{width:42px;height:24px;border-radius:0;border:0;background:#333;position:relative;flex:0 0 auto}.toggle.on{background:#e8e8e8}.toggle i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:0;background:#111;transition:left .15s}.toggle.on i{left:21px;background:#111}[data-theme=light] .toggle{background:#ccc}[data-theme=light] .toggle.on{background:#222}[data-theme=light] .toggle.on i{background:#fff}.empty{color:var(--muted);padding:48px 12px;text-align:center}.tiny{color:var(--muted);font-size:12px;margin-top:16px}.lk-sink{position:absolute;width:0;height:0;overflow:hidden}@media(max-width:720px){.page{padding:20px 14px 72px}.picker-grid{grid-template-columns:1fr}.wall-top{flex-wrap:wrap;padding:8px 10px}.cam{font-size:20px}.wall-grid,.wall-grid.wall-independent,.wall-grid.wall-weaknet{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ch-card{min-height:156px}.ch-name{font-size:18px}.ch-mic{min-height:108px;padding:8px 10px 6px}}[data-shell=mobile]{--touch: 44px}[data-shell=mobile] body,[data-shell=mobile] button,[data-shell=mobile] input,[data-shell=mobile] select{font-size:16px}[data-shell=mobile] .btn,[data-shell=mobile] .btn-white,[data-shell=mobile] .btn-ghost,[data-shell=mobile] input,[data-shell=mobile] select{min-height:var(--touch)}.m-login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:24px 16px calc(28px + env(safe-area-inset-bottom));background:var(--bg)}.m-login-card{width:100%;background:var(--card);border:1px solid var(--line);padding:22px 16px}.m-login-card input,.m-login-card .btn-white{min-height:var(--touch)}.m-shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}.m-top{position:sticky;top:0;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--bg)}.m-crumb{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-top-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.m-main{flex:1;min-height:0;overflow:auto;padding:16px 14px;padding-bottom:calc(88px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.m-tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);gap:0;min-height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:var(--panel)}.m-tab{min-height:var(--touch);border:0;background:transparent;color:var(--muted);font-weight:600;padding:8px 2px;font-size:13px}.m-tab.on{color:var(--text);background:#1c1c1c}.m-tab.inert{opacity:.4}.m-tab.lock-tab{letter-spacing:0}.m-tab.lock-tab.locked{color:var(--warn);background:var(--warn-bg)}[data-theme=light] .m-tab.on{background:#e6e6e6;color:#111}.m-stack{display:flex;flex-direction:column;gap:12px}.m-pick-card{background:var(--card);border:1px solid var(--line);padding:18px 16px 14px;display:flex;flex-direction:column}.m-pick-card h2{margin:0 0 8px;font-size:22px}.m-pick-card .btn-white{margin-top:16px;min-height:var(--touch)}.nav-group{color:var(--muted);font-size:12px;letter-spacing:.06em;margin:12px 0 6px}.m-wall{overscroll-behavior:none}.m-wall-top{position:sticky;top:0;z-index:12;display:flex;flex-direction:column;gap:2px;padding:6px 8px;padding-top:max(6px,env(safe-area-inset-top));background:#111;border-bottom:1px solid var(--line)}[data-theme=light] .m-wall-top{background:#fff}.m-wall-top.hot{background:var(--tally);border-bottom-color:#8d0d0d;color:#fff}.m-wall-top.hot .muted,.m-wall-top.hot{color:#fff}.m-wall-top.tally{background:#141414}[data-theme=light] .m-wall-top.tally{background:#fff}.m-tally-bar{display:flex;align-items:center;gap:8px}.m-tally-cam{font-weight:800;letter-spacing:.04em}.m-wall-row1,.m-wall-row2{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap}.m-wall-row1{min-height:26px}.m-wall-row2{--spk: 13px;min-height:var(--spk);max-height:16px}.m-wall-row1 .meter-cell,.m-wall-row2 .meter-cell,.m-wall-row2 .master-listen{min-height:0;gap:4px;flex:0 1 auto}.m-wall-row1 .mic-bar{width:44px;flex:1 1 44px;max-width:64px;height:6px}.m-wall-row1 .qos-chip{padding:1px 5px;font-size:11px;flex:0 0 auto}.m-online{display:inline-flex;align-items:center;gap:4px;font-size:11px;flex:0 0 auto}.m-show-name,.m-user-name{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;min-width:0}.m-show-name{flex:0 1 auto;max-width:42%}.m-user-name{flex:0 1 auto;max-width:28%;color:var(--muted)}.m-wall-top.hot .m-user-name{color:#fff}.m-wall-row2 .master-listen{flex:1 1 88px;min-width:0;margin-left:auto;font-size:var(--spk);gap:4px}.m-wall-row2 .master-listen .meter-label{font-size:var(--spk);line-height:var(--spk);height:var(--spk)}.m-wall-row2 .master-listen .vol-step-master{width:auto;flex:1 1 88px;max-width:140px;height:var(--spk);min-height:0;max-height:15px}.m-wall-row2 .master-listen .vol-step-master button,.m-wall-row2 .master-listen .vol-step-master .vol-step-val{height:var(--spk);max-height:15px;font-size:var(--spk)}.m-wall-main{flex:1;min-height:0;overflow:auto;padding:8px 8px calc(88px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.m-wall-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}[data-shell=mobile] .m-wall .ch-card{min-height:168px}[data-shell=mobile] .m-wall .ch-mic{min-height:118px;padding:8px 8px 10px;touch-action:manipulation;-webkit-user-select:none;user-select:none}[data-shell=mobile] .m-wall .ch-name{font-size:20px;padding:10px 4px 6px}[data-shell=mobile] .m-wall .ch-vol{padding:10px 10px 6px;min-height:calc(var(--touch) + 8px)}[data-shell=mobile] .m-wall-row2 .master-listen .vol-step-master{min-height:0;height:var(--spk);max-height:15px}[data-shell=mobile] .m-wall .ch-vol .vol-step-card{height:10px;min-height:10px}[data-shell=mobile] .m-wall .ch-vol .vol-step-card button,[data-shell=mobile] .m-wall .ch-vol .vol-step-card .vol-step-val{height:10px;font-size:11px}[data-shell=mobile] .m-wall .ch-presence{height:6px}[data-shell=mobile] .m-wall .chip{min-height:26px;padding:3px 6px;font-size:11px;display:inline-flex;align-items:center}[data-shell=mobile] .nr-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}[data-shell=mobile] .nr-pick{min-height:var(--touch);width:100%;font-size:16px}[data-shell=mobile] .toggle{width:52px;height:32px}[data-shell=mobile] .toggle i{width:24px;height:24px}[data-shell=mobile] .toggle.on i{left:25px}[data-shell=mobile] .section{padding:16px}[data-shell=mobile] .switch-row{min-height:var(--touch)}.kick-dialog{width:min(380px,calc(100% - 32px));background:var(--card);border:1px solid var(--line);padding:22px 20px 18px}.kick-dialog h2{margin:0 0 10px;font-size:18px}.kick-dialog p{margin:0;color:var(--muted);line-height:1.55}.kick-dialog .sheet-actions{margin-top:18px}.kick-dialog .btn-white{margin-top:0}.kick-dialog .btn-ghost{width:100%;min-height:44px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;background:#00000073}.sheet-back{align-items:end;place-items:end center;padding:0}[data-shell=mobile] .sheet-back.above-tabs{bottom:calc(56px + env(safe-area-inset-bottom));z-index:18}[data-shell=mobile] .above-tabs .sheet{max-height:min(80dvh,calc(100dvh - 72px - env(safe-area-inset-bottom)))}.sheet{width:100%;max-height:min(88dvh,720px);overflow:hidden;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-bottom:0;padding:10px 16px calc(16px + env(safe-area-inset-bottom))}.sheet-grab{width:40px;height:4px;margin:6px auto 12px;background:#3a3a3a;flex:0 0 auto}.sheet h2{margin:0 0 10px;font-size:18px;flex:0 0 auto}.sheet-body{padding-bottom:8px;overflow:auto;flex:1;min-height:0}.sheet-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px;flex:0 0 auto}.sheet-actions .btn,.sheet-actions .btn-white,.sheet-actions .btn-ghost{width:100%;min-height:var(--touch)}.m-more-group{margin-bottom:8px}.m-more-link{display:flex;align-items:center;width:100%;min-height:var(--touch);padding:8px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;text-align:left}.m-more-theme{padding:8px 4px 12px}[data-shell=desktop] .m-shell{display:none}
