:root{--bg-0: #070b10;--bg-1: #0d131a;--bg-2: #131c25;--bg-3: #1a2632;--line: rgba(148, 184, 170, .14);--line-strong: rgba(148, 184, 170, .26);--ink: #eaf2ee;--ink-soft: #b9c8c0;--ink-mute: #7e8e87;--accent: #34d399;--accent-ink: #06241a;--accent-glow: rgba(52, 211, 153, .35);--live: #ef4444;--live-ink: #2a0a0a;--live-glow: rgba(239, 68, 68, .45);--warn: #f59e0b;--info: #38bdf8;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--shadow-1: 0 1px 0 rgba(255,255,255,.04) inset, 0 12px 32px rgba(0,0,0,.35);--shadow-2: 0 24px 60px rgba(0,0,0,.55);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Inter,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--bg-0);color-scheme:dark;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;width:100%;max-width:100%;overflow-x:clip}@supports not (overflow-x: clip){html,body,#root{overflow-x:hidden}}body{min-height:100vh;min-height:100dvh;background:linear-gradient(#070b10d6,#070b10e6),url(/brand-background.svg) center / cover fixed,radial-gradient(1200px 600px at 100% -10%,rgba(56,189,248,.1),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(52,211,153,.1),transparent 60%),linear-gradient(180deg,#07101a,#060a10);background-attachment:fixed}@supports (min-height: 100svh){body{min-height:100svh}}button{font:inherit}input,select,textarea{font:inherit;font-size:16px}button,input,select,textarea{max-width:100%}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:44px;padding:10px 14px;background:var(--bg-2);color:var(--ink);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .05s ease}button:hover:not(:disabled){background:var(--bg-3);border-color:var(--line-strong)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:linear-gradient(180deg,#3ee0a3,#1fb27e);color:var(--accent-ink);border-color:#0003;box-shadow:0 6px 18px var(--accent-glow)}button.primary:hover:not(:disabled){filter:brightness(1.05)}button.danger{background:linear-gradient(180deg,#f97171,#d93b3b);color:#fff;border-color:#0003;box-shadow:0 6px 18px var(--live-glow)}button.ghost{background:#ffffff0a}button.iconButton{width:40px;height:40px;min-height:40px;padding:0;background:#ffffff0a}label{display:grid;gap:8px;font-weight:600;color:var(--ink-soft);font-size:13px}input,select{width:100%;min-height:44px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-1);color:var(--ink)}input::placeholder{color:var(--ink-mute)}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.loginPage{min-height:100vh;display:grid;place-items:center;padding:24px}.loginCard{width:min(440px,100%);background:linear-gradient(180deg,#131c25f2,#0d131af2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-2)}.loginCard form,.adminForm{display:grid;gap:14px}.brand{display:flex;align-items:center;gap:14px;margin-bottom:22px;min-width:0}.brandMark{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#34d3992e,#38bdf81a);border:1px solid var(--line-strong);display:grid;place-items:center;flex:0 0 auto}.brandMark img{width:32px;height:32px}.brandText h1{margin:0;font-size:22px;letter-spacing:-.01em;font-weight:700}.brandText p{margin:3px 0 0;color:var(--ink-mute);font-size:13px}.brandText{min-width:0}.brandText h1,.brandText p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand.small{margin:0}.brand.small .brandMark{width:44px;height:44px;border-radius:12px}.brand.small .brandMark img{width:26px;height:26px}.brand.small .brandText h1{font-size:18px}.brand.small .brandText p{font-size:12px}.hint{color:var(--ink-mute);font-size:13px;margin:0}.error{background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:#fecaca;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px}.appShell{padding:max(18px,env(safe-area-inset-top)) clamp(14px,3vw,28px) max(40px,env(safe-area-inset-bottom));width:100%;max-width:1280px;margin:0 auto;padding-bottom:40px;overflow-x:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line);min-width:0}.topbarRight{display:flex;align-items:center;gap:12px;min-width:0}.sessionMeta{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 6px;background:#ffffff08;border:1px solid var(--line);border-radius:999px;min-width:0}.sessionMeta .who{display:flex;flex-direction:column;line-height:1.1;padding-left:6px}.whoName{font-weight:600;font-size:13px}.whoEmail{color:var(--ink-mute);font-size:11px}.rolePill{text-transform:uppercase;letter-spacing:.08em;background:#38bdf824;color:#bae6fd;border:1px solid rgba(56,189,248,.3);border-radius:999px;padding:4px 10px;font-size:10px;font-weight:700}.statusStrip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.statusItem{display:flex;align-items:center;gap:12px;padding:12px 14px;background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid var(--line);border-radius:var(--radius);min-height:56px;min-width:0}.statusItem em{display:block;font-style:normal;color:var(--ink-mute);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.statusItem span{font-size:14px;font-weight:600;overflow-wrap:anywhere}.statusItem svg{color:var(--ink-soft);flex:0 0 auto}.statusItem.state-live{border-color:#ef444466;background:#ef444414}.statusItem.state-idle{border-color:#34d39959;background:#34d3990f}.statusItem.state-off{border-color:var(--line)}.dot{display:inline-block;width:10px;height:10px;border-radius:999px;background:var(--ink-mute);flex:0 0 auto}.dot-live{background:var(--live);box-shadow:0 0 0 4px #ef444433;animation:pulseDot 1.1s infinite}.dot-idle{background:var(--accent);box-shadow:0 0 0 4px #34d39933}.dot-off{background:#475569}.dot-warn{background:var(--warn)}@keyframes pulseDot{0%,to{box-shadow:0 0 0 4px #ef444433}50%{box-shadow:0 0 0 8px #ef44440d}}.grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:16px;align-items:start}.panel{background:linear-gradient(180deg,#131c25d9,#0d131ad9);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-1);min-width:0}.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.panel h2{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:700;letter-spacing:-.005em;color:var(--ink)}.panel h2 .count,.count{display:inline-block;font-size:11px;background:#ffffff0f;border:1px solid var(--line);color:var(--ink-soft);padding:2px 8px;border-radius:999px;margin-left:6px;font-weight:600}.mainPanel{display:grid;gap:16px}.roomRow{display:flex;align-items:center;justify-content:space-between;gap:12px}.roomTitle h2{margin:0;font-size:20px}.roomTitle p{margin:6px 0 0;color:var(--ink-mute);display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:500;flex-wrap:wrap}.liveBadge{display:inline-flex;align-items:center;gap:6px;background:#ffffff0d;border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:11px;letter-spacing:.08em;color:var(--ink);font-weight:700}.liveBadge.listenOnly{border-color:#38bdf859;color:#bae6fd}.roomSelect{gap:6px}.roomSelect span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mute)}.roomSelect select{min-width:0}.channelCard{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff08}.channelCard svg{color:var(--info)}.channelCard span{display:flex;flex-direction:column;font-weight:700}.channelCard span,.channelCard em{min-width:0;overflow:hidden;text-overflow:ellipsis}.channelCard em{color:var(--ink-mute);font-size:12px;font-style:normal;font-weight:500;margin-top:2px}.channelCard b{background:#34d3991f;border:1px solid rgba(52,211,153,.28);color:#bbf7d0;border-radius:999px;padding:4px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.ptt{position:relative;height:220px;width:100%;border-radius:var(--radius-lg);border:1px solid rgba(0,0,0,.25);background:radial-gradient(120% 120% at 50% 0%,#2dd4a4,#15a574 60%,#0f8a60);color:var(--accent-ink);font-weight:800;display:grid;place-items:center;grid-template-rows:auto auto auto;gap:6px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:pointer;box-shadow:0 1px #ffffff40 inset,0 -10px #0000002e inset,0 18px 40px var(--accent-glow);overflow:hidden;transition:transform .05s ease,box-shadow .15s ease,background .15s ease}.ptt.idle{background:linear-gradient(180deg,#1f2a35,#131c25);color:var(--ink-mute);box-shadow:0 1px #ffffff0a inset,0 -8px #00000040 inset}.ptt.idle .pttRing{display:none}.ptt:active:not(:disabled){transform:translateY(2px)}.ptt .pttIcon{display:grid;place-items:center}.ptt .pttIcon svg{width:56px;height:56px}.ptt .pttLabel{font-size:26px;letter-spacing:.04em;line-height:1}.ptt .pttHint{font-size:12px;font-weight:600;opacity:.8;letter-spacing:.04em;text-transform:uppercase}.ptt.talking{background:radial-gradient(120% 120% at 50% 0%,#ff6b6b,#e23838 60%,#b81d1d);color:#fff;box-shadow:0 1px #fff3 inset,0 -10px #00000040 inset,0 22px 50px var(--live-glow)}.ptt.talking .pttRing{position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:var(--radius-lg);border:2px solid rgba(255,255,255,.45);animation:ringPulse 1s ease-out infinite;pointer-events:none}@keyframes ringPulse{0%{transform:scale(.98);opacity:.9}to{transform:scale(1.04);opacity:0}}.toggles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.toggle{flex-direction:row;justify-content:flex-start;gap:12px;padding:12px 14px;background:#ffffff09;border:1px solid var(--line);color:var(--ink);text-align:left;min-height:60px}.toggle span{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;font-weight:700;font-size:13px}.toggle em{font-style:normal;color:var(--ink-mute);font-size:11px;font-weight:500;margin-top:2px}.toggle.active{background:#f59e0b1f;border-color:#f59e0b73;color:#fde68a}.toggle.active em{color:#fde68acc}.toggle svg{color:currentColor}.branchPanel,.accountPanel{grid-column:1 / -1}.branchGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px;min-width:0}.branchTile{min-height:72px;align-items:flex-start;flex-direction:column;gap:3px;text-align:left}.branchTile span{font-weight:800}.branchTile em{color:var(--ink-mute);font-size:12px;font-style:normal}.branchTile.active{border-color:#34d3996b;background:#34d3991a}.list{display:grid;gap:8px;margin-top:12px}.onlineList,.adminUserList{max-height:min(420px,54vh);overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.onlineList:empty,.adminUserList:empty{padding-right:0}.person{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;background:#ffffff09;border:1px solid var(--line);border-radius:var(--radius)}.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#38bdf8,#34d399);color:#04161a;font-weight:800;display:grid;place-items:center;font-size:14px}.personName{display:flex;flex-direction:column;line-height:1.2;min-width:0}.personName em{font-style:normal;color:var(--ink-mute);font-size:11px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person b{background:#22d3ee24;color:#a5f3fc;border:1px solid rgba(34,211,238,.25);border-radius:999px;padding:3px 9px;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.person b.inactive{background:#94a3b81a;border-color:#94a3b833;color:var(--ink-mute)}.userActions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.dangerMini{color:#fecaca;border-color:#ef444452;background:#ef44441a}.emptyState{padding:18px;text-align:center;border:1px dashed var(--line);border-radius:var(--radius);background:#ffffff05}.adminGrid{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:16px;margin-top:4px}.editPanel{grid-column:1 / -1}.editForm{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.passwordForm{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.passwordForm .adminMsg,.editForm .roomPicker{grid-column:1 / -1}.editForm>button{grid-column:1 / -1;justify-self:start}.adminForm{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0}.adminForm .adminMsg{grid-column:1 / -1}.accessToggle{min-height:44px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff09}.accessToggle input{width:18px;min-height:18px;accent-color:var(--accent)}.accessToggle span{color:var(--ink);font-size:13px}.roomPicker{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;min-width:0}.roomPicker button{min-height:56px;align-items:flex-start;flex-direction:column;gap:2px;padding:10px;text-align:left}.roomPicker button.active{border-color:#34d39973;background:#34d3991c}.roomPicker em{color:var(--ink-mute);font-size:11px;font-style:normal}.smallList{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin-top:8px}.adminUserList{max-height:min(520px,62vh)}.securityList{display:grid;gap:8px;margin-top:12px}.securityItem{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--line);background:#ffffff09}.securityItem svg{margin-top:1px}.securityItem.pass{border-color:#34d3994d}.securityItem.pass svg{color:var(--accent)}.securityItem.warn{border-color:#f59e0b59;background:#f59e0b14}.securityItem.warn svg{color:var(--warn)}.securityItem span{font-weight:700;font-size:13px;display:block}.securityItem em{display:block;margin-top:3px;color:var(--ink-mute);font-size:12px;font-style:normal;font-weight:500;line-height:1.4}.appFoot{display:flex;justify-content:space-between;align-items:center;margin-top:22px;padding-top:14px;border-top:1px solid var(--line);color:var(--ink-mute);font-size:12px}.appFoot b{color:var(--ink-soft);font-weight:600}@media(max-width:1100px){.statusStrip{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){body{background-attachment:scroll}.appShell{padding:max(12px,env(safe-area-inset-top)) 12px max(22px,env(safe-area-inset-bottom));width:100%;max-width:100%;overflow-x:clip}.grid,.adminGrid{grid-template-columns:minmax(0,1fr);gap:12px}.statusStrip{gap:8px;margin-bottom:12px}.statusItem{min-height:48px;padding:9px 10px;gap:8px}.statusItem em{font-size:10px}.statusItem span{font-size:12px;line-height:1.25}.statusItem svg{width:16px;height:16px}.panel{padding:14px;border-radius:var(--radius)}.mainPanel{gap:12px}.toggles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.toggle{min-height:54px;padding:10px;gap:8px}.toggle svg{width:18px;height:18px}.toggle span{font-size:12px}.adminForm,.editForm,.passwordForm{grid-template-columns:1fr}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px}.topbarRight{min-width:0;gap:6px}.sessionMeta .who{display:none}.sessionMeta{padding:4px 6px}.hideSm{display:none}.ptt{height:172px;border-radius:var(--radius)}.ptt .pttIcon svg{width:44px;height:44px}.ptt .pttLabel{font-size:21px}.ptt .pttHint{font-size:10px}.roomRow{flex-direction:column;align-items:stretch}.roomRow>button{width:100%}.roomTitle h2{font-size:17px}.roomTitle p{gap:7px;font-size:12px}.liveBadge{padding:3px 8px;font-size:10px}.channelCard{grid-template-columns:18px minmax(0,1fr) auto;padding:10px;gap:8px}.channelCard b{padding:3px 7px;font-size:10px}.branchGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow-x:hidden;gap:8px;padding:0;margin-left:0;margin-right:0}.branchTile{min-height:62px;width:100%}.branchTile span{font-size:13px}.branchTile em{font-size:11px}.roomPicker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow-x:hidden;gap:8px;padding-bottom:0}.roomPicker button{width:100%;min-height:54px}.smallList{grid-template-columns:minmax(0,1fr)}.onlineList,.adminUserList{max-height:360px;padding-right:0}.person{grid-template-columns:34px minmax(0,1fr);align-items:start}.person .userActions{grid-column:1 / -1;justify-content:flex-start}.avatar{width:34px;height:34px}.panelHeader{align-items:flex-start}.appFoot{flex-direction:column;gap:6px;text-align:center}}@media(max-width:480px){.statusStrip{grid-template-columns:repeat(2,minmax(0,1fr))}.appShell{padding-left:8px;padding-right:8px}.panel{padding:12px}.brand.small .brandText p{display:none}.brand.small{gap:9px}.brand.small .brandText h1{font-size:15px}.brand.small .brandMark{width:36px;height:36px;border-radius:10px}.brand.small .brandMark img{width:23px;height:23px}.sessionMeta{display:none}button.iconButton{width:36px;height:36px;min-height:36px}.ghost{padding-left:10px;padding-right:10px}.ptt{height:156px}.ptt .pttIcon svg{width:38px;height:38px}.ptt .pttLabel{font-size:19px}.toggles{grid-template-columns:repeat(2,minmax(0,1fr))}.toggle{min-height:64px;flex-direction:column;align-items:flex-start;justify-content:center}.toggle span{font-size:11px}.toggle em{font-size:10px}.passwordForm input,.passwordForm button,.adminForm input,.adminForm select,.adminForm button,.editForm input,.editForm select,.editForm button{min-height:42px}}@media(max-width:360px){.statusStrip,.toggles,.branchGrid,.roomPicker{grid-template-columns:1fr}.brand.small .brandText h1{max-width:130px}.topbar{grid-template-columns:minmax(0,1fr) auto}}@media(prefers-reduced-motion:reduce){.dot-live,.ptt.talking .pttRing{animation:none}}
