:root{--bg-1:#313338;--bg-2:#2b2d31;--bg-3:#1e1f22;--bg-hover:#35373c;--bg-active:#404249;--text:#dbdee1;--text-strong:#f2f3f5;--muted:#949ba4;--accent:#5865f2;--accent-hover:#4752c4;--danger:#da373c;--green:#23a55a;--border:#1f2023;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:gg sans,Noto Sans,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-3);color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{color:var(--text-strong);margin:0}code,.mono{font-family:ui-monospace,Cascadia Code,Menlo,monospace}:focus-visible{outline-offset:1px;outline:2px solid #00a8fc}.muted{color:var(--muted)}.small-text{font-size:12px}.spacer{flex:1}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ellipsis-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}input,select,textarea{background:var(--bg-3);border:1px solid #0000;border-radius:4px;width:100%;padding:9px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}input.narrow{width:90px}label{text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-size:12px;font-weight:700;display:block}label.inline-label{white-space:nowrap;align-self:center;margin:0}.btn{background:var(--bg-active);color:var(--text-strong);border:0;border-radius:4px;padding:8px 16px;font-weight:600}.btn:hover:not(:disabled){filter:brightness(1.15)}.btn.primary{background:var(--accent)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);filter:none}.btn.danger{background:var(--danger)}.btn.small{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{color:var(--muted);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.icon-btn:hover,.icon-btn.active{color:var(--text-strong);background:var(--bg-hover)}.icon-btn.danger:hover{color:#fff;background:var(--danger)}.icon-btn.off{color:var(--danger)}.icon-btn.on{color:var(--green)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.row .grow{flex:1;width:auto}.fullscreen{background:var(--bg-1);place-items:center;height:100%;padding:16px;display:grid}.card{background:var(--bg-2);border-radius:8px;width:min(440px,100%);padding:32px;box-shadow:0 8px 24px #0006}.card h1{margin-bottom:8px;font-size:24px}.card .btn{width:100%;margin-top:18px}.card .row .btn{width:auto;margin:0}.login-card{text-align:center}.login-card .login-logo{border-radius:14px;margin:0 auto 12px;display:block}.login-card .row{justify-content:center;margin-top:18px}.login-error{color:#f2a0a3;background:#da373c22;border-radius:4px;margin:12px 0 0;padding:8px 10px;font-size:13px}.app{height:100%;display:flex;overflow:hidden}.guild-rail{background:var(--bg-3);flex-direction:column;flex:none;align-items:center;gap:8px;width:72px;padding:12px 0;display:flex;overflow-y:auto}.guild-item{justify-content:center;width:100%;display:flex;position:relative}.guild-item:before{content:"";background:#fff;border-radius:0 4px 4px 0;width:4px;height:8px;transition:all .15s;position:absolute;top:50%;left:0;transform:translateY(-50%)scale(0)}.guild-item.active:before{height:40px;transform:translateY(-50%)scale(1)}.guild-item:hover:not(.active):before{height:20px;transform:translateY(-50%)scale(1)}.guild-icon{background:hsl(var(--hue,230) 45% 38%);color:#fff;border:0;border-radius:50%;width:48px;height:48px;font-size:16px;font-weight:700;transition:border-radius .15s,background .15s}.guild-item.active .guild-icon,.guild-icon:hover{border-radius:16px}.guild-icon.add{background:var(--bg-1);color:var(--green);font-size:26px;font-weight:400}.guild-icon.add:hover{background:var(--green);color:#fff}.sidebar{background:var(--bg-2);flex-direction:column;flex:none;width:240px;min-height:0;display:flex}.sidebar-header{border:0;border-bottom:1px solid var(--border);height:48px;color:var(--text-strong);text-align:left;background:0 0;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:flex;box-shadow:0 1px #0002}.sidebar-header:hover{background:var(--bg-hover)}.sidebar-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.channel-scroll{flex:1;padding:8px 8px 12px;overflow-y:auto}.section-title{text-transform:uppercase;letter-spacing:.02em;color:var(--muted);justify-content:space-between;align-items:center;margin:0;padding:16px 8px 4px 4px;font-size:12px;font-weight:700;display:flex}.channel-row{border-radius:4px;align-items:center;display:flex;position:relative}.channel-row:hover,.channel-row.active{background:var(--bg-hover)}.channel-row.active{background:var(--bg-active)}.channel-btn{text-align:left;min-width:0;color:var(--muted);background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:6px 8px;font-weight:500;display:flex}.channel-row:hover .channel-btn,.channel-row.active .channel-btn{color:var(--text-strong)}.channel-actions{gap:2px;padding-right:4px;display:none}.channel-row:hover .channel-actions,.channel-row:focus-within .channel-actions{display:inline-flex}.voice-user{color:var(--muted);align-items:center;gap:8px;padding:3px 8px 3px 32px;font-size:14px;display:flex}.voice-user .flag{color:var(--danger);display:inline-flex}.voice-user .ellipsis{flex:1}.voice-user .flag.live{color:var(--green)}.voice-user .avatar{transition:box-shadow .12s}.voice-user.speaking{color:var(--text-strong)}.voice-user.speaking .avatar{box-shadow:0 0 0 2px var(--green), 0 0 8px 2px #23a55a99}.channel-btn:disabled{opacity:.6;cursor:wait}.user-panel{background:#232428;flex:none;align-items:center;gap:8px;height:52px;padding:0 8px;display:flex}.user-panel-text{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.user-name{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.status-btn{text-align:left;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;font-size:12px;overflow:hidden}.status-btn:hover{color:var(--text);text-decoration:underline}.status-input{padding:2px 6px;font-size:12px}.avatar{color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:relative}.presence{border:2px solid var(--bg-2);border-radius:50%;width:10px;height:10px;position:absolute;bottom:-2px;right:-2px}.presence.on{background:var(--green)}.presence.off{background:#80848e}.main{background:var(--bg-1);flex-direction:column;flex:1;min-width:0;display:flex}.main.empty-main{justify-content:center;align-items:center}.pane-header{border-bottom:1px solid var(--border);height:48px;color:var(--muted);flex:none;align-items:center;gap:8px;padding:0 16px;display:flex;box-shadow:0 1px #0002}.pane-header h1,.pane-header h2{font-size:16px}.topic{border-left:1px solid var(--bg-active);padding-left:12px;font-size:14px}.messages{flex:1;padding:16px 0 8px;overflow-y:auto}.empty{padding:0 16px}.message{gap:16px;margin-top:16px;padding:2px 16px;display:flex;position:relative}.message.grouped{margin-top:0}.message:hover{background:#2e3035}.message-gutter{flex:none;width:40px}.message.grouped .message-gutter{justify-content:center;align-items:flex-start;display:flex}.hover-time{visibility:hidden;color:var(--muted);white-space:nowrap;font-size:11px;line-height:22px}.message:hover .hover-time{visibility:visible}.message-body{flex:1;min-width:0}.message-head{align-items:baseline;gap:8px;display:flex}.author{color:var(--text-strong);font-weight:600}.message-head time{font-size:12px}.text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.edited{font-size:11px}.message-actions{background:var(--bg-1);border:1px solid var(--border);border-radius:6px;gap:2px;padding:2px;display:none;position:absolute;top:-14px;right:16px}.message:hover .message-actions,.message:focus-within .message-actions{display:flex}.thread-link{border:1px solid var(--bg-active);background:var(--bg-2);color:#00a8fc;border-radius:4px;align-items:center;gap:6px;margin-top:4px;padding:3px 8px;font-size:13px;font-weight:600;display:inline-flex}.thread-link:hover{background:var(--bg-hover);text-decoration:underline}.edit-box textarea{resize:vertical;min-height:44px}.composer{flex:none;padding:0 16px 20px;position:relative}.composer textarea{resize:none;background:#383a40;border-radius:8px;max-height:200px;padding:11px 14px;line-height:1.4;display:block}.counter{color:var(--muted);font-size:11px;position:absolute;bottom:28px;right:28px}.counter.over{color:var(--danger)}.thread-panel{background:var(--bg-1);border-left:1px solid var(--border);flex-direction:column;flex:none;width:380px;min-height:0;display:flex}.thread-parent{background:var(--bg-2);border-bottom:1px solid var(--border);padding:8px 16px;font-size:13px}.thread-panel .message{gap:12px}.members{background:var(--bg-2);flex:none;width:240px;padding:0 8px 16px;overflow-y:auto}.members ul{margin:0;padding:0;list-style:none}.member{text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:10px;width:100%;padding:5px 8px;display:flex}button.member:hover{background:var(--bg-hover)}li.offline .member{opacity:.5}.member-text{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.member-name{font-weight:500}.badge{text-transform:uppercase;background:var(--bg-active);color:var(--text-strong);border-radius:3px;padding:1px 6px;font-size:10px;font-weight:700}.badge.owner{color:#1e1f22;background:#f0b232}.badge.admin{background:var(--accent)}.members .presence{border-color:var(--bg-2)}.welcome{background:var(--bg-1);flex-direction:column;flex:1;display:flex}.welcome-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;display:flex}.voice-bar{border-top:1px solid var(--border);background:#232428;flex-direction:column;flex:none;gap:6px;padding:8px;display:flex}.voice-bar-top{align-items:center;gap:8px;min-width:0;display:flex}.voice-bar-text{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;min-width:0;padding:0;line-height:1.25;display:flex}.voice-bar-status{color:var(--green);font-size:13px;font-weight:700}.voice-bar-channel{color:var(--muted);max-width:100%;font-size:12px}.voice-bar-text:hover .voice-bar-channel{color:var(--text);text-decoration:underline}.voice-bar-buttons{justify-content:space-between;display:flex}.quality{color:var(--muted);display:inline-flex}.quality.q-excellent,.quality.q-good{color:var(--green)}.quality.q-poor{color:#f0b232}.quality.q-lost{color:var(--danger)}.voice-view{background:#1a1b1e;min-height:0}.voice-view .pane-header{background:var(--bg-1)}.voice-empty{flex:1;place-items:center;display:grid}.voice-stage{flex-direction:column;flex:1;gap:8px;min-height:0;padding:12px;display:flex}.voice-focus{flex:1;min-height:0;display:flex}.voice-focus .tile{aspect-ratio:auto;flex:1}.tile-grid{flex:1;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-auto-rows:minmax(150px,1fr);align-content:center;gap:8px;min-height:0;display:grid}.tile-grid[data-count="1"]{grid-template-columns:minmax(240px,720px);justify-content:center}.tile-grid.strip{flex:none;gap:8px;height:120px;display:flex;overflow-x:auto}.tile-grid.strip .tile{flex:none;width:200px}.tile-grid[data-count="0"]{display:none}.tile{min-width:0;min-height:0;color:inherit;background:#2b2d31;border:0;border-radius:8px;padding:0;display:block;position:relative;overflow:hidden}.tile video{width:100%;height:100%;position:absolute;inset:0}.tile video.cover{object-fit:cover}.tile video.contain{object-fit:contain;background:#000}.tile.speaking{box-shadow:inset 0 0 0 3px var(--green)}.tile.focused{outline:2px solid var(--accent);outline-offset:-2px}.tile-avatar{place-items:center;display:grid;position:absolute;inset:0}.tile-label{color:#fff;background:#000a;border-radius:4px;align-items:center;gap:6px;max-width:calc(100% - 16px);padding:3px 8px;font-size:13px;font-weight:600;display:inline-flex;position:absolute;bottom:8px;left:8px}.tile-label .flag{color:#f23f42;display:inline-flex}.backdrop{z-index:50;background:#000a;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--bg-1);border-radius:8px;width:min(440px,100%);max-height:90vh;padding:20px 24px 24px;overflow-y:auto;box-shadow:0 8px 32px #000a}.modal-wide{width:min(600px,100%)}.modal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.modal-head h2{font-size:20px}.modal h3{margin-top:24px;font-size:14px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.tabs{border-bottom:1px solid var(--bg-active);gap:4px;margin-bottom:4px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px;font-weight:600}.tabs button.active{color:var(--text-strong);border-bottom-color:var(--accent)}.invite-list{flex-direction:column;gap:6px;margin:16px 0 0;padding:0;list-style:none;display:flex}.invite-list li{background:var(--bg-2);border-radius:4px;align-items:center;gap:8px;padding:8px 10px;display:flex}.invite-list code{color:var(--text-strong);font-size:14px}.menu{z-index:60;background:#111214;border-radius:4px;flex-direction:column;min-width:180px;padding:6px 8px;display:flex;position:fixed;box-shadow:0 8px 16px #0008}.menu button{text-align:left;color:var(--text);background:0 0;border:0;border-radius:3px;padding:7px 8px;font-size:14px}.menu button:hover,.menu button:focus-visible{background:var(--accent);color:#fff;outline:none}.menu button.danger{color:#f23f42}.menu button.danger:hover,.menu button.danger:focus-visible{background:var(--danger);color:#fff}.toasts{z-index:100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{color:var(--text-strong);border-left:4px solid var(--accent);background:#111214;border-radius:6px;max-width:80vw;padding:10px 16px;box-shadow:0 4px 16px #0008}.toast-error{border-left-color:var(--danger)}@media (width<=900px){.members{display:none}.thread-panel{width:300px}}.drawer{display:contents}.drawer-btn,.members-head,.drawer-header{display:none}@media (hover:none){.message.actions-open .message-actions{display:flex}}@media (width<=767px){html{-webkit-tap-highlight-color:transparent}button,.tile{touch-action:manipulation}.messages,.members,.channel-scroll{overscroll-behavior:contain}.app{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);--voice-bar-h:calc(56px + env(safe-area-inset-bottom,0px));flex-direction:column}.main,.welcome{flex:1 1 0;min-height:0}.drawer{z-index:40;width:min(88vw,360px);padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:var(--bg-3);visibility:hidden;transition:transform .2s,visibility 0s linear .2s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 0 24px #000a}.drawer.open{visibility:visible;transition:transform .2s;transform:none}.drawer-scrim{z-index:35;background:#0008;position:fixed;inset:0}.sidebar{flex:1;width:auto;min-width:0}.channel-scroll{padding-bottom:16px}.channel-btn{min-height:44px}.channel-actions{display:inline-flex}.user-panel{height:auto;min-height:64px;padding:6px 8px}.status-btn{align-items:center;min-height:40px;margin-top:-8px;display:flex}.status-input{padding:8px;font-size:16px}.pane-header{height:calc(52px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 8px 0 4px;gap:4px}.pane-header .topic{display:none}.drawer-btn{display:inline-flex}.drawer-header{align-self:stretch;display:flex}.main.empty-main{justify-content:flex-start}.main.empty-main>p{margin:auto}.icon-btn{min-width:40px;min-height:40px}.btn{min-height:44px}.btn.small{min-height:40px;padding:8px 14px}input,select,textarea{padding:11px 12px;font-size:16px}.tabs button{min-height:44px}.menu button{min-height:44px;padding:10px 12px}.thread-link{min-height:40px}.guild-icon{width:48px;height:48px}.message{flex-wrap:wrap;gap:12px;padding:2px 12px}.message:hover{background:0 0}.message.actions-open{background:#2e3035}.message-body{flex:1 1 0}.message-actions,.message:hover .message-actions,.message:focus-within .message-actions{background:0 0;border:0;flex:0 0 100%;gap:6px;margin:2px 0 4px 52px;padding:0;display:none;position:static}.message.actions-open .message-actions{display:flex}.message-actions .icon-btn{background:var(--bg-2)}.edit-box textarea{min-height:64px}.composer{padding:0 12px max(12px, env(safe-area-inset-bottom,0px))}.app.voice-on .composer{padding-bottom:12px}.counter{bottom:22px;right:24px}.thread-panel,.members{z-index:30;width:auto;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);border-left:0;position:fixed;inset:0}.members{padding:0 calc(8px + env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) calc(8px + env(safe-area-inset-left,0px));display:block}.members-head{background:var(--bg-2);z-index:1;margin:0 -8px;display:flex;position:sticky;top:0}.member{min-height:48px}.app.voice-on .thread-panel,.app.voice-on .members{bottom:var(--voice-bar-h);padding-bottom:0}.voice-bar.docked{height:var(--voice-bar-h);padding:0 6px env(safe-area-inset-bottom,0px) 10px;flex-direction:row;align-items:center;gap:4px}.voice-bar.docked .voice-bar-top{flex:1;align-self:stretch;min-width:0}.voice-bar.docked .voice-bar-text{justify-content:center;align-self:stretch}.voice-bar.docked .voice-bar-buttons{gap:2px}.voice-bar.docked .icon-btn{width:44px;height:44px}.voice-stage{padding:8px}.tile-grid:not(.strip){overflow-y:auto}.backdrop{padding:max(12px, env(safe-area-inset-top,0px)) max(12px, env(safe-area-inset-right,0px)) max(12px, env(safe-area-inset-bottom,0px)) max(12px, env(safe-area-inset-left,0px))}.modal{max-height:100%;padding:16px 16px 20px}.modal-actions .btn{flex:1}.toasts{bottom:calc(72px + env(safe-area-inset-bottom,0px))}.fullscreen{padding:max(16px, env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) max(16px, env(safe-area-inset-bottom,0px)) max(16px, env(safe-area-inset-left,0px))}.card{padding:24px}.welcome{padding-top:env(safe-area-inset-top,0px)}.welcome .user-panel{padding-bottom:env(safe-area-inset-bottom,0px)}.welcome-body{padding:16px}}
