@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{font-family:IBM Plex Sans,sans-serif;color:#d6e1e8;color-scheme:dark;background:#0b1015;--font-mono: "IBM Plex Mono", monospace;--app-bg: #0b1015;--app-bg-alt: #10161d;--panel: #111821;--panel-strong: #0d141b;--panel-soft: #151e27;--panel-softest: #18222c;--line: #24323f;--line-strong: #375060;--text: #d6e1e8;--text-dim: #95a8b5;--text-faint: #677884;--accent: #6cc9e8;--accent-strong: #8ae0fb;--accent-soft: rgba(108, 201, 232, .12);--success: #7cc69c;--warning: #d7b06a;--danger: #ef9e86;--scrollbar: rgba(108, 201, 232, .28)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 14rem),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(180deg,var(--app-bg),var(--app-bg-alt));background-size:auto,24px 24px,24px 24px,auto;color:var(--text);overscroll-behavior:none}button,input,select{font:inherit}button{cursor:pointer}audio{display:none}::selection{background:#6cc9e838}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:2px solid transparent;background:var(--scrollbar);background-clip:padding-box}.app-shell{position:relative;height:100dvh;overflow:hidden}.ambient{display:none}.irc-shell{position:relative;display:grid;grid-template-columns:18rem minmax(0,1fr);height:100%;min-height:0}.irc-shell-stats-open{grid-template-columns:18rem minmax(0,1fr) 21rem}.channels-panel,.users-panel,.stats-panel{min-width:0;min-height:0;background:var(--panel)}.channels-panel,.users-panel{border-right:1px solid var(--line)}.channels-panel,.stats-panel{display:flex;flex-direction:column}.users-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.irc-shell:not(.irc-shell-stats-open) .users-panel{border-right:0}.brand-strip,.room-bar,.users-footer{border-bottom:1px solid var(--line);background:var(--panel-strong)}.brand-strip{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.9rem 1rem}.brand-strip-copy{display:flex;align-items:center;gap:.8rem;min-width:0}.brand-mark,.user-avatar{display:grid;place-items:center;font-family:var(--font-mono);font-weight:600}.brand-mark{width:2.2rem;height:2.2rem;border:1px solid #28728b;background:linear-gradient(180deg,#6cc9e8,#44a5c6);color:#041017}.brand-strip h1,.room-title-line h2,.stat-row strong,.invite-code-row strong,.invite-result strong,.range-meta strong,.room-meta-line{font-family:var(--font-mono)}.brand-strip h1,.room-title-line h2{margin:0;letter-spacing:.04em;text-transform:uppercase}.brand-strip h1{font-size:1.15rem}.brand-strip p,.room-bar p,.users-footer,.network-note,.table-empty,.modal-head p{margin:.3rem 0 0;color:var(--text-dim);line-height:1.45}.channel-actions{display:grid;grid-template-columns:1fr;gap:.6rem;padding:.85rem 1rem;border-bottom:1px solid var(--line)}.invite-feedback{margin:.85rem 1rem 0;border:1px solid var(--line-strong);background:#6cc9e814;color:var(--text);padding:.65rem .75rem;font-size:.78rem;line-height:1.45}.channels-scroll,.stats-scroll,.users-table-body{min-height:0;overflow:auto;scrollbar-gutter:stable}.channels-scroll,.stats-scroll{flex:1 1 auto;display:grid;align-content:start;gap:1rem;padding:1rem}.channel-section{display:grid;gap:.7rem}.channel-section+.channel-section{padding-top:1rem;border-top:1px solid var(--line)}.channel-section-head{display:grid;gap:.22rem}.channel-section-note{color:var(--text-faint);font-size:.75rem;line-height:1.4}.channel-list{display:grid;gap:.3rem}.channel-row{display:flex;align-items:center;gap:.55rem;width:100%;min-width:0;border:1px solid transparent;background:transparent;color:var(--text);padding:.62rem .7rem;text-align:left;transition:background .14s ease,border-color .14s ease}.channel-row-main{display:flex;align-items:center;gap:.55rem;flex:1 1 auto;min-width:0;border:0;background:transparent;color:inherit;padding:0;text-align:left}.channel-row:hover{border-color:var(--line);background:#ffffff08}.channel-row-selected{border-color:var(--line-strong);background:linear-gradient(90deg,#6cc9e838,#6cc9e80a 10rem),#ffffff05}.channel-dot{width:.5rem;height:.5rem;border-radius:999px;background:#fff3;flex:0 0 auto}.channel-dot-live{background:var(--success)}.channel-hash{color:var(--accent);font-family:var(--font-mono);font-weight:600}.channel-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-row-actions{display:flex;align-items:center;flex:0 0 auto;margin-left:auto;padding-left:.55rem;border-left:1px solid var(--line)}.channel-leave-button{border:1px solid rgba(239,158,134,.28);background:transparent;color:var(--text-dim);padding:.28rem .5rem;font-family:var(--font-mono);font-size:.67rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.channel-leave-button:hover:not(:disabled){border-color:#ef9e867a;background:#ef9e8614;color:#ffdacd}.channel-tag{display:inline-flex;align-items:center;flex:0 0 auto;gap:.28rem;margin-left:auto;padding-left:.55rem;border-left:1px solid var(--line);color:var(--text-faint);font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.channel-empty{min-height:6rem;border:1px dashed var(--line);padding:.9rem;font-size:.8rem}.mobile-drawer-toggle,.mobile-drawer-close,.mobile-drawer-backdrop,.mobile-ptt-fab{display:none}.nick-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.6rem;padding:.9rem 1rem;border-bottom:1px solid var(--line);background:var(--panel-strong)}.nick-panel .panel-label{grid-column:1 / -1}.panel-label,.users-table-head,.user-self,.user-role-text,.user-state,.device-field span,.stat-row span,.network-status-head span,.invite-code-row span,.capacity-scale span{font-family:var(--font-mono)}.panel-label{color:var(--accent-strong);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}input,select{width:100%;border:1px solid var(--line-strong);background:#091017;color:var(--text);padding:.7rem .75rem;outline:none}input:focus,select:focus{border-color:var(--accent);box-shadow:inset 0 0 0 1px #6cc9e847}.primary-button,.ghost-button,.ptt-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid var(--line-strong);padding:.72rem .85rem;color:var(--text);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;transition:border-color .14s ease,background .14s ease,color .14s ease}.primary-button:hover,.ghost-button:hover,.ptt-button:hover{transform:none}.primary-button:disabled,.ghost-button:disabled,.ptt-button:disabled{opacity:.45;cursor:not-allowed}.primary-button{background:linear-gradient(180deg,#1a5367,#123f50);color:#dff5fb}.primary-button:hover:not(:disabled){border-color:#4a7c92;background:linear-gradient(180deg,#20627a,#184d62)}.ghost-button{background:transparent;color:var(--text-dim)}.ghost-button:hover:not(:disabled){border-color:var(--line-strong);background:#ffffff0a;color:var(--text)}.ghost-button.mobile-drawer-close{display:none}.slim-button{width:auto}.nick-save-button-saved{border-color:#7cc69c8f;background:#7cc69c24;color:#dff7e8}.nick-save-button-saved:hover:not(:disabled){border-color:#7cc69cb3;background:#7cc69c33;color:#f2fff7}.room-bar{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding:1rem 1.1rem}.room-title-line,.room-badges,.room-bar-side,.stat-row,.signal-head,.network-line,.network-status-head,.range-meta{display:flex;align-items:center;justify-content:space-between;gap:.65rem}.room-title-line{justify-content:flex-start}.room-bar-side{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start}.stats-toggle-button{flex:0 0 auto}.mobile-drawer-toggle{align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border:1px solid var(--line-strong);background:transparent;color:var(--text-dim);padding:0}.mobile-drawer-toggle:hover{border-color:var(--accent);color:var(--text)}.room-hash{color:var(--accent);font-family:var(--font-mono);font-size:1.1rem;font-weight:600}.room-title-line h2{font-size:1.05rem}.room-meta-line{color:var(--text-faint);font-size:.8rem}.badge{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);background:var(--panel-softest);padding:.24rem .52rem;color:var(--text-dim);font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.badge-owner{color:#f0d4a5;border-color:#d7b06a66;background:#d7b06a14}.badge-admin{color:#a7e3f3;border-color:#6cc9e866;background:#6cc9e814}.badge-moderator,.badge-online{color:#b1e5c8;border-color:#7cc69c61;background:#7cc69c14}.badge-host{color:#dff5fb;border-color:#2b6a7f;background:#6cc9e824}.badge-idle{color:#ecd3a0;border-color:#d7b06a61;background:#d7b06a14}.badge-warning{color:#ffcfbf;border-color:#ef9e8661;background:#ef9e8614}.users-table{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.users-table-head,.user-row{display:grid;grid-template-columns:minmax(12rem,1.7fr) minmax(5rem,.8fr) minmax(6rem,.8fr) minmax(7rem,.9fr);gap:.8rem;align-items:center}.users-table-head{position:sticky;top:0;z-index:1;border-bottom:1px solid var(--line);background:var(--panel-strong);color:var(--text-faint);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:.8rem 1rem}.users-table-body{background:var(--panel)}.user-row{border-bottom:1px solid rgba(255,255,255,.05);padding:.75rem 1rem}.user-row-actionable{cursor:context-menu}.user-row:hover{background:#ffffff05}.user-cell{min-width:0}.user-cell-name{display:flex;align-items:center;gap:.65rem}.user-avatar{width:1.9rem;height:1.9rem;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-color, var(--accent)) 84%,white 16%),color-mix(in srgb,var(--accent-color, var(--accent)) 60%,black 24%));color:#041017;flex:0 0 auto}.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.user-self{color:var(--text-faint);font-size:.68rem;letter-spacing:.05em;text-transform:uppercase}.user-role-text,.user-state{color:var(--text-dim);font-size:.74rem;letter-spacing:.03em;text-transform:uppercase}.user-role-badge{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-dim)}.user-state-muted{color:var(--warning)}.user-signal-bar,.signal-bar{overflow:hidden;width:100%;height:.42rem;background:#ffffff14}.user-signal-fill,.signal-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--warning))}.table-empty{display:grid;place-items:center;min-height:10rem;text-align:center;padding:1rem}.users-footer{padding:.8rem 1rem;font-size:.74rem;letter-spacing:.03em}.stats-card{display:grid;gap:.75rem;padding:.85rem .9rem;border:1px solid var(--line);background:var(--panel-soft)}.stats-card-voice{flex:0 0 auto;margin:0;border:0;border-bottom:1px solid var(--line);background:var(--panel-strong);padding:1rem}.channel-voice-card{border-top:1px solid var(--line);border-bottom:0}.stats-actions{display:grid;gap:.6rem}.voice-note,.voice-inline-error{margin:0;font-size:.78rem;line-height:1.45}.voice-note{color:var(--text-dim)}.voice-inline-error,.error-banner{border:1px solid rgba(239,158,134,.38);background:#ef9e8614;color:#ffdacd;padding:.7rem .8rem}.invite-card,.bandwidth-note,.invite-result,.signal-card,.network-status{display:grid;gap:.7rem}.invite-code-row{display:grid;gap:.2rem}.invite-code-row span,.capacity-scale span,.device-field span,.stat-row span,.network-status-head span{color:var(--text-dim);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}.invite-code-row strong,.invite-result strong,.range-meta strong,.stat-row strong{overflow-wrap:anywhere;font-size:.92rem}.invite-actions,.modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.bandwidth-note{border:1px solid var(--line);background:#ffffff08;padding:.8rem}.bandwidth-note strong{font-size:.85rem}.bandwidth-note p{margin:0;color:var(--text-dim);line-height:1.45}.capacity-scale{display:flex;align-items:center;justify-content:space-between;gap:1rem}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#070a0ed1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-card{display:grid;gap:1rem;width:min(36rem,100%);border:1px solid var(--line-strong);background:var(--panel);padding:1rem;max-height:calc(100dvh - 2rem);overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-head,.modal-body{display:grid;gap:.85rem}.modal-head{grid-template-columns:minmax(0,1fr) auto;align-items:start}.user-menu{position:fixed;z-index:30;display:grid;gap:.7rem;min-width:min(15rem,calc(100vw - 1.5rem));max-width:calc(100vw - 1.5rem);border:1px solid var(--line-strong);background:var(--panel-strong);padding:.75rem;box-shadow:0 18px 42px #0000006b}.user-menu-head{display:grid;gap:.28rem;padding-bottom:.65rem;border-bottom:1px solid var(--line)}.user-menu-head strong{overflow-wrap:anywhere;font-size:.94rem}.user-menu-meta{color:var(--text-dim);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}.user-menu-actions{display:grid;gap:.45rem}.user-menu-button{display:inline-flex;align-items:center;justify-content:flex-start;gap:.45rem;border:1px solid var(--line);background:transparent;color:var(--text);padding:.62rem .72rem;font-size:.76rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.user-menu-button:hover:not(:disabled){border-color:var(--line-strong);background:#ffffff0a}.user-menu-button-active{border-color:#6cc9e86b;background:#6cc9e81a;color:#dff5fb}.user-menu-button:disabled{opacity:.68;cursor:default}.ptt-button{background:#6cc9e80f}.ptt-button-active{border-color:#7cc69c85;background:#7cc69c14}.device-field{display:grid;gap:.45rem}.range-field{gap:.55rem}input[type=range]{width:100%;height:.4rem;border:0;background:#ffffff14;padding:0;box-shadow:none;accent-color:var(--accent)}.stat-list{display:grid;gap:.45rem}.stat-row{padding-top:.45rem;border-top:1px solid rgba(255,255,255,.05)}.stat-row:first-child{padding-top:0;border-top:0}.signal-head{justify-content:flex-start;color:var(--text-dim)}.network-note{display:grid;gap:.55rem}.network-status{border:1px solid var(--line);background:#ffffff08;padding:.75rem}.network-status p{margin:0;color:var(--text);line-height:1.45}.network-room-text,.network-line{color:var(--text-dim)}.network-line{justify-content:flex-start}.app-shell-fallback{display:grid;place-items:center;height:100dvh;padding:1rem}.fallback-card{display:grid;gap:.8rem;width:min(32rem,100%);border:1px solid var(--line);background:var(--panel);padding:1rem}.fallback-card h1,.fallback-card p{margin:0}.fallback-card p{color:var(--text-dim);line-height:1.5}@media(max-width:1320px){.irc-shell-stats-open{grid-template-columns:16.5rem minmax(0,1fr) 18rem}}@media(max-width:980px){.app-shell{height:100dvh;min-height:100dvh;overflow:hidden}.irc-shell{grid-template-columns:1fr;height:100dvh;min-height:100dvh}.channels-panel{position:fixed;top:0;left:0;z-index:26;width:min(20rem,88vw);height:100dvh;border-right:1px solid var(--line);background:var(--panel);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;transform:translate(-100%);transition:transform .18s ease;box-shadow:0 24px 48px #0000006b}.app-shell-drawer-open .channels-panel{transform:translate(0)}.mobile-drawer-backdrop{display:block;position:fixed;inset:0;z-index:25;border:0;background:#04080cad;opacity:0;pointer-events:none;padding:0}.mobile-drawer-backdrop-visible{opacity:1;pointer-events:auto}.users-panel{border-right:0;height:100dvh;min-height:0}.users-footer,.stats-panel{display:none}.channels-scroll,.users-table-body{overflow:auto}.channels-scroll{flex:0 0 auto;overflow:visible}.channel-actions,.invite-actions,.modal-actions,.stats-actions{grid-template-columns:1fr}.room-bar{flex-direction:column;align-items:stretch;padding:.85rem .95rem}.room-badges,.room-bar-side,.stats-toggle-button{display:none}.stats-card-voice{position:static}.nick-panel{grid-template-columns:1fr}.nick-panel .slim-button,.primary-button,.ghost-button,.ptt-button{width:100%}.mobile-drawer-toggle{display:inline-flex}.mobile-drawer-close{display:inline-flex;width:auto}.ghost-button.mobile-drawer-close,.mobile-ptt-fab{display:inline-flex}.sidebar-audio-card{margin:0 1rem 1rem}.users-table-body{padding-bottom:calc(7.25rem + env(safe-area-inset-bottom))}.mobile-ptt-fab{position:fixed;left:50%;right:auto;bottom:calc(.9rem + env(safe-area-inset-bottom));z-index:24;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;width:7.5rem;height:5.25rem;min-width:7.5rem;min-height:5.25rem;border:1px solid var(--line-strong);border-radius:999px;background:linear-gradient(180deg,#143c4b,#0e2c37);color:#dff5fb;padding:.65rem;box-shadow:0 16px 30px #00000061;transform:translate(-50%);font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.mobile-ptt-fab *{user-select:none;-webkit-user-select:none;pointer-events:none}.mobile-ptt-fab-active{border-color:#7cc69cb3;background:linear-gradient(180deg,#1b5644,#123c31)}}@media(max-width:760px){.modal-backdrop{place-items:start center;padding-top:max(.75rem,env(safe-area-inset-top));padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.brand-strip,.channel-actions,.channels-scroll,.nick-panel,.room-bar,.users-footer,.stats-card-voice,.modal-card{padding-left:.75rem;padding-right:.75rem}.sidebar-audio-card{margin-left:.75rem;margin-right:.75rem}.users-table-head{display:none}.user-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name role" "state state" "signal signal";gap:.45rem .75rem}.user-cell-name{grid-area:name}.user-cell-role{grid-area:role;justify-self:end}.user-cell-state{grid-area:state}.user-cell-signal{grid-area:signal}.modal-head{grid-template-columns:1fr}.user-row{padding:.65rem .75rem}.user-avatar{width:1.7rem;height:1.7rem}.user-name{font-size:.95rem}}
