:root{font-family:IBM Plex Sans KR,system-ui,sans-serif;color:#f6eef4;background:#1c1530;font-synthesis:none;text-rendering:optimizeLegibility;font-size:16px;--bg:#1c1530;--panel:#271e40;--line:#3d3160;--muted:#a99cc4;--pink:#ec7aa2;--lav:#a9a6ec;--mint:#5fb5ae;--red:#ff4b3e}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse at top,#30244b,#1c1530 58%);overscroll-behavior:none}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.08;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E")}button,input,select{font:inherit}button{color:inherit;background:#352951;border:1px solid var(--line);border-radius:14px;padding:11px 14px;cursor:pointer}button:active{transform:translateY(2px)}button:disabled{opacity:.45;cursor:not-allowed}input,select{color:var(--pink);background:#1d1730;border:1px solid var(--line);border-radius:13px;padding:12px;min-width:0}input:focus,select:focus,button:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.shell{position:relative;isolation:isolate;width:min(100%,720px);min-height:100svh;margin:auto;padding:calc(env(safe-area-inset-top) + 18px) 18px calc(env(safe-area-inset-bottom) + 20px)}.landing{display:flex;flex-direction:column;gap:20px}.landing header{padding:12px 4px 0}.brand{font-family:Jua,sans-serif;font-size:40px;letter-spacing:.02em;color:var(--pink);-webkit-text-stroke:1px #3b2a6b;text-shadow:2px 2px 0 #3b2a6b,4px 4px 0 #3b2a6b,7px 7px 0 var(--lav)}.brand.compact{font-size:23px;text-shadow:1px 1px 0 #3b2a6b,3px 3px 0 var(--lav)}.label,.sub,.hint,small,footer{color:var(--muted)}.label{margin-top:12px;letter-spacing:.12em;font-size:13px}.panel{background:linear-gradient(145deg,#271e40f7,#231b39f7);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:0 10px 26px #100c1b55}.login{display:flex;flex-direction:column;gap:16px}.login label{display:grid;gap:8px;color:#d5c9dc;font-weight:600}.login h2,.panel h2{font-family:Jua,sans-serif;font-size:21px;margin:2px 0}.group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.group-chip{display:flex;align-items:center;justify-content:space-between;text-align:left;min-height:56px}.group-chip small{font-family:IBM Plex Mono,monospace}.group-chip.selected{border-color:var(--pink);background:#4b2c4a;box-shadow:0 0 0 1px var(--pink) inset}.button.primary{min-height:56px;background:var(--pink);border:0;color:#21152d;font-weight:700}.login details{border-top:1px solid var(--line);padding-top:14px;color:var(--muted)}.login summary{cursor:pointer}.inline{display:flex;gap:8px;margin-top:10px}.inline>*{flex:1}.error{color:#ff897f;margin:0}.landing footer{text-align:center;margin-top:auto;font-size:13px}.console{padding-bottom:184px}.topbar{display:flex;align-items:center;gap:12px;padding-bottom:16px}.topbar>div:first-child{flex:1}.sub{font-size:13px;margin-top:5px}.connection{font-family:IBM Plex Mono,monospace;color:#ffb876;font-size:12px;text-align:right}.connection.ok{color:var(--mint)}.connection small{display:block;font-size:9px}.icon{padding:8px 10px;font-size:12px}.tabs{display:flex;background:#171226;border-radius:15px;padding:4px;margin-bottom:14px}.tabs button{border:0;background:transparent;flex:1}.tabs button.active{background:#44345f;color:var(--pink)}.session-summary{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:15px 18px}.live-dot,.status-dot{width:10px;height:10px;background:var(--mint);border-radius:50%;display:inline-block}.session-count{margin-left:auto;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:12px}.roster,.channels,.quick{margin-bottom:14px}.roster h2 span{font-family:IBM Plex Mono,monospace;color:var(--mint);margin-left:8px}.person{display:flex;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid #3d316088}.person:last-of-type{border:0}.person-info{flex:1;min-width:80px;display:grid;grid-template-columns:12px 1fr;column-gap:7px;align-items:center}.person-info .status-dot{grid-row:span 2;width:8px;height:8px}.status-dot.offline{background:#736983}.person-info small{font-size:11px;grid-column:2}.person select{width:110px;font-size:12px;padding:8px}.person button{font-size:11px;padding:8px}.danger-text{color:#ff897f}.roster h3,.panel h3{font-size:14px;color:var(--muted);margin:18px 0 8px}.call-row,.group-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #3d316088}.call-row b,.group-row span{flex:1}.call-row button,.group-row button{font-size:11px;padding:7px}.group-editor{display:grid;gap:4px}.group-editor>.button{margin-top:10px}.quick{display:grid;gap:12px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.quick-grid button{color:var(--mint);border-color:#3f756e;min-height:45px}.channels{display:grid;gap:16px}.switch-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px}.switch-row input{accent-color:var(--mint);width:22px;height:22px}.bottom-controls{position:fixed;z-index:3;bottom:0;left:50%;transform:translate(-50%);width:min(100%,720px);padding:12px 18px calc(env(safe-area-inset-bottom) + 14px);background:linear-gradient(0deg,#1c1530 82%,transparent);display:grid;gap:9px}.target-label{text-align:center;color:var(--muted);font-size:12px}.ptt{height:84px;border:2px solid #6d5a93;border-radius:23px;background:var(--pink);color:#25152b;font-family:Jua,sans-serif;font-size:24px;box-shadow:0 7px 0 var(--lav);display:flex;align-items:center;justify-content:center;gap:10px;position:relative}.ptt span{font-size:18px}.ptt small{position:absolute;bottom:6px;right:12px;font:10px IBM Plex Sans KR,sans-serif;color:#51344e}.ptt.pressed{transform:translateY(5px);box-shadow:0 2px 0 var(--lav);background:#ff8db0}.ptt.latched{outline:3px solid #ff4b3e}.call-button{min-height:50px;color:var(--mint);border-color:#46857d}.toast-audio{display:none}.command-pop{position:fixed;z-index:5;left:50%;top:45%;transform:translate(-50%,-50%);width:min(88vw,520px);padding:28px 20px;border:2px solid var(--mint);border-radius:24px;text-align:center;background:#1d3c3b;color:#e9fff9;font-family:Jua,sans-serif;font-size:30px;box-shadow:0 14px 50px #0008;animation:pop .16s ease-out}.error-banner{position:fixed;z-index:6;top:10px;left:12px;right:12px;padding:13px;border-radius:12px;background:#762d3b;color:#fff;text-align:center;font-size:13px}@keyframes pop{0%{opacity:0;scale:.92}to{opacity:1;scale:1}}.onair{box-shadow:inset 0 0 0 3px var(--red)}@media(min-width:650px){.shell{padding-left:28px;padding-right:28px}.landing{justify-content:center}.login{padding:26px}.console{max-width:780px}.bottom-controls{width:min(100%,780px)}}
