:root,[data-theme=dark]{--bg-rail: #0f1014;--bg-side: #17181e;--bg-main: #1c1d24;--bg-elev: #23242c;--bg-input: #2a2b35;--bg-hover: rgba(255,255,255,.045);--bg-sel: rgba(255,255,255,.085);--bg-modal: #1f2028;--bg-float: #121318;--line: rgba(255,255,255,.065);--line-strong: rgba(255,255,255,.12);--text: #e3e5ec;--text-2: #b0b4c2;--muted: #80859a;--head: #fafbff;--brand: #6e5bff;--brand-2: #b05bff;--brand-soft: rgba(110,91,255,.16);--brand-text: #a99eff;--ok: #2fd27d;--idle: #f5b33a;--danger: #ff5068;--dnd: #ff5068;--link: #5fb4ff;--mention-bg: rgba(255,186,64,.09);--mention-bar: #f5b33a;--shadow: 0 12px 40px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.3);color-scheme:dark}[data-theme=oled]{--bg-rail: #000;--bg-side: #070708;--bg-main: #0b0b0d;--bg-elev: #141418;--bg-input: #18181d;--bg-modal: #0e0e11;--bg-float: #050506}[data-theme=light]{--bg-rail: #e4e6ee;--bg-side: #f1f2f7;--bg-main: #ffffff;--bg-elev: #f6f7fb;--bg-input: #ebedf3;--bg-hover: rgba(0,0,0,.04);--bg-sel: rgba(0,0,0,.075);--bg-modal: #fff;--bg-float: #fff;--line: rgba(0,0,0,.08);--line-strong: rgba(0,0,0,.14);--text: #2a2d38;--text-2: #4d5163;--muted: #7c8194;--head: #11131a;--brand-soft: rgba(110,91,255,.12);--brand-text: #5b48ef;--link: #0068d6;--mention-bg: rgba(245,179,58,.14);--shadow: 0 12px 40px rgba(20,20,40,.18), 0 2px 6px rgba(20,20,40,.08);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:var(--bg-main);color:var(--text);font:15px/1.45 Figtree,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.compact .msg{padding-top:1px!important}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}::selection{background:#6e5bff59}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:10px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.thin::-webkit-scrollbar{width:6px}.thin::-webkit-scrollbar-thumb{border-width:1px}[hidden]{display:none!important}.ic{display:inline-grid;place-items:center;width:20px;height:20px;flex:none}.ic svg{width:100%;height:100%}.ic.sm{width:16px;height:16px}.ic.lg{width:24px;height:24px}.av{width:var(--s);height:var(--s);border-radius:50%;background:var(--acc);display:grid;place-items:center;color:#fff;font-weight:700;position:relative;flex:none;transition:box-shadow .12s}.av>img{width:100%;height:100%;border-radius:50%;object-fit:cover}.av.speaking{box-shadow:0 0 0 2px var(--bg-side),0 0 0 4px var(--ok)}.av .st{position:absolute;right:-2px;bottom:-2px;width:max(10px,calc(var(--s) * .3));height:max(10px,calc(var(--s) * .3));border-radius:50%;border:max(2.5px,calc(var(--s) * .075)) solid var(--ring, var(--bg-side));background:var(--muted)}.st-online{background:var(--ok)!important}.st-idle{background:var(--idle)!important;-webkit-mask:radial-gradient(circle at 30% 30%,transparent 32%,#000 34%);mask:radial-gradient(circle at 30% 30%,transparent 32%,#000 34%)}.st-dnd{background:var(--dnd)!important}.st-dnd:after{content:"";position:absolute;inset:40% 22%;background:var(--ring, var(--bg-side));border-radius:2px}.st-offline{background:var(--bg-input)!important;box-shadow:inset 0 0 0 max(2px,calc(var(--s) * .06)) var(--muted)}#auth{position:fixed;inset:0;display:grid;place-items:center;z-index:50;overflow:auto;padding:24px;background:radial-gradient(1200px 600px at 10% 10%,rgba(110,91,255,.35),transparent 60%),radial-gradient(900px 600px at 90% 90%,rgba(176,91,255,.28),transparent 60%),radial-gradient(600px 400px at 70% 20%,rgba(47,210,125,.12),transparent 60%),#0c0d12}#auth .card{width:min(460px,100%);background:#181920e0;backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:36px;box-shadow:var(--shadow);color:#e3e5ec;animation:pop .35s cubic-bezier(.2,.9,.3,1.2)}#auth .logo{width:56px;height:56px;border-radius:18px;margin:0 auto 16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;box-shadow:0 8px 24px #6e5bff73}#auth .logo svg{width:32px}#auth h1{margin:0;text-align:center;font-size:26px;color:#fff;letter-spacing:-.02em}#auth p.sub{text-align:center;color:#9aa0b4;margin:6px 0 24px}#auth .auth-switch{text-align:center;margin-top:16px;color:#9aa0b4;font-size:14px}#auth .auth-switch a{cursor:pointer}#auth .invite-preview{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:#ffffff0a;margin-bottom:18px}.field{margin-bottom:14px}.field label,.label{display:block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.field label .req{color:var(--danger)}.input,.field input,.field textarea,.field select{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--bg-float);outline:none;transition:border-color .15s,box-shadow .15s;resize:vertical}#auth .field input{background:#00000059;border-color:#ffffff14;color:#e3e5ec}.input:focus,.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.hint{font-size:13px;color:var(--muted);margin-top:6px}.err{color:var(--danger);font-size:14px;min-height:20px;margin:4px 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;font-weight:600;font-size:14px;background:var(--bg-input);color:var(--text);transition:filter .15s,transform .08s,background .15s;white-space:nowrap}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,var(--brand),#8a5bff);color:#fff;box-shadow:0 4px 14px #6e5bff4d}.btn.green{background:#1fb56a;color:#fff}.btn.danger{background:var(--danger);color:#fff}.btn.ghost{background:transparent}.btn.ghost:hover{background:var(--bg-hover);filter:none}.btn.link{background:none;color:var(--link);padding:0}.btn.block{width:100%;padding:12px;font-size:15px}.btn.sm{padding:6px 12px;font-size:13px;border-radius:8px}#app{display:grid;grid-template-columns:76px 256px minmax(0,1fr) auto;height:100vh;height:100dvh}#rail{background:var(--bg-rail);display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0;overflow-y:auto;scrollbar-width:none}#rail::-webkit-scrollbar{display:none}.rail-item{position:relative;width:48px;height:48px;flex:none}.rail-btn{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:var(--bg-elev);color:var(--text);font-weight:700;transition:border-radius .18s,background .18s,color .18s}.rail-btn img{width:100%;height:100%;object-fit:cover}.rail-item:hover .rail-btn,.rail-item.active .rail-btn{border-radius:16px}.rail-item.active .rail-btn.plain,.rail-item:hover .rail-btn.plain{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff}.rail-btn.add{color:var(--ok);background:var(--bg-elev)}.rail-item:hover .rail-btn.add{background:var(--ok);color:#fff}.rail-btn.home svg{width:28px}.rail-item:before{content:"";position:absolute;left:-14px;top:50%;width:4px;height:0;border-radius:0 4px 4px 0;background:var(--head);transform:translateY(-50%);transition:height .18s}.rail-item.unread:before{height:8px}.rail-item:hover:before{height:20px}.rail-item.active:before{height:40px}.badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:11.5px;font-weight:800;display:inline-grid;place-items:center;line-height:1}.rail-item .badge{position:absolute;right:-4px;bottom:-4px;box-shadow:0 0 0 3px var(--bg-rail)}.rail-sep{width:32px;height:2px;border-radius:1px;background:var(--line-strong);flex:none}.rail-item .av{--ring: var(--bg-rail)}#side{background:var(--bg-side);display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}.side-head{height:52px;flex:none;display:flex;align-items:center;gap:8px;padding:0 14px;font-weight:700;color:var(--head);border-bottom:1px solid var(--line);cursor:pointer;position:relative;overflow:hidden}.side-head:hover{background:var(--bg-hover)}.side-head .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-head.banner{height:128px;align-items:flex-start;padding-top:14px;background-size:cover;background-position:center;border-bottom:0}.side-head.banner:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 60%);pointer-events:none}.side-head.banner>*{position:relative;z-index:1;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.6)}.side-search{margin:10px;padding:7px 10px;border-radius:8px;background:var(--bg-rail);color:var(--muted);font-size:13.5px;text-align:left;flex:none}#side-list{flex:1;overflow-y:auto;padding:8px 8px 16px}.cat{display:flex;align-items:center;gap:4px;padding:18px 6px 6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);user-select:none}.cat span{flex:1}.cat button{color:var(--muted);opacity:.8}.cat button:hover{color:var(--text);opacity:1}.ch{display:flex;align-items:center;gap:7px;padding:7px 8px;margin:1px 0;border-radius:8px;color:var(--muted);cursor:pointer;user-select:none;position:relative}.ch .n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.ch:hover{background:var(--bg-hover);color:var(--text-2)}.ch.active{background:var(--bg-sel);color:var(--head)}.ch.unread{color:var(--head)}.ch.unread .n{font-weight:700}.ch.unread:before{content:"";position:absolute;left:-8px;top:50%;width:4px;height:8px;margin-top:-4px;border-radius:0 4px 4px 0;background:var(--head)}.ch .acts{display:none;gap:2px}.ch:hover .acts{display:flex}.ch .acts button{color:var(--muted)}.ch .acts button:hover{color:var(--text)}.ch.voice-active{color:var(--text-2)}.ch .live{background:var(--danger);color:#fff;font-size:10px;font-weight:800;padding:1px 5px;border-radius:4px}.vu{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 34px;border-radius:6px;color:var(--muted);font-size:14px;cursor:pointer}.vu:hover{background:var(--bg-hover);color:var(--text-2)}.vu .n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vu .ics{display:flex;gap:3px;color:var(--muted)}.vu .ics .ic{width:15px;height:15px}.dm{display:flex;align-items:center;gap:11px;padding:6px 8px;border-radius:8px;color:var(--muted);cursor:pointer;margin:1px 0}.dm:hover{background:var(--bg-hover);color:var(--text-2)}.dm.active{background:var(--bg-sel);color:var(--head)}.dm.unread{color:var(--head);font-weight:600}.dm .meta{flex:1;min-width:0}.dm .meta .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm .meta .s{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}.dm .av,.dm.active .av,.dm:hover .av{--ring: var(--bg-side)}#voice-panel{flex:none;padding:10px;border-top:1px solid var(--line);background:var(--bg-float)}#voice-panel .row{display:flex;align-items:center;gap:6px}#voice-panel .state{flex:1;min-width:0;cursor:pointer}#voice-panel .state b{color:var(--ok);font-size:14px;display:flex;align-items:center;gap:6px}#voice-panel .state b.connecting{color:var(--idle)}#voice-panel .state small{color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}#voice-panel .btns{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}#voice-panel .btns .btn{padding:7px}#voice-panel .btns .btn.on{background:var(--brand);color:#fff}.sig{display:inline-flex;gap:2px;align-items:flex-end;height:12px}.sig i{width:3px;background:currentColor;border-radius:1px}#user-panel{flex:none;display:flex;align-items:center;gap:4px;padding:8px;background:var(--bg-float)}#user-panel .me{display:flex;align-items:center;gap:9px;flex:1;min-width:0;padding:3px 4px;border-radius:8px;cursor:pointer}#user-panel .me:hover{background:var(--bg-hover)}#user-panel .me .av{--ring: var(--bg-float)}#user-panel .me .t{min-width:0;line-height:1.2}#user-panel .me .t b{display:block;font-size:14px;color:var(--head);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#user-panel .me .t small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.ibtn{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:var(--text-2);flex:none;transition:background .12s,color .12s}.ibtn:hover{background:var(--bg-hover);color:var(--head)}.ibtn.on{color:var(--danger)}.ibtn.active{color:var(--head);background:var(--bg-sel)}#main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-main);position:relative}.top{height:52px;flex:none;display:flex;align-items:center;gap:10px;padding:0 12px 0 18px;border-bottom:1px solid var(--line);background:var(--bg-main);z-index:2}.top .title{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--head);min-width:0;flex:none;max-width:50%}.top .title .ic{color:var(--muted)}.top .title span.t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top .topic{color:var(--muted);font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;border-left:1px solid var(--line-strong);padding-left:10px;cursor:pointer}.top .spacer{flex:1}.top .tools{display:flex;align-items:center;gap:2px}.top .search-box{width:170px;padding:6px 10px;border-radius:8px;background:var(--bg-rail);border:0;outline:none;font-size:13.5px;transition:width .2s}.top .search-box:focus{width:240px}#mobile-menu{display:none}#content{flex:1;display:flex;min-height:0}#chat{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}#messages{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:12px;overscroll-behavior:contain}.chat-start{padding:32px 18px 12px}.chat-start .big-ic{width:68px;height:68px;border-radius:50%;background:var(--bg-input);display:grid;place-items:center;color:var(--head);margin-bottom:12px}.chat-start .big-ic .ic{width:38px;height:38px}.chat-start h1{margin:0 0 6px;color:var(--head);font-size:30px;letter-spacing:-.02em}.chat-start p{margin:0;color:var(--muted)}.loading-more{text-align:center;color:var(--muted);padding:12px;font-size:13px}.day-sep{display:flex;align-items:center;margin:20px 16px 6px;color:var(--muted);font-size:12px;font-weight:600}.day-sep:before,.day-sep:after{content:"";flex:1;height:1px;background:var(--line-strong)}.day-sep span{padding:0 8px}.new-sep{display:flex;align-items:center;margin:10px 16px 0;color:var(--danger);font-size:11.5px;font-weight:800;text-transform:uppercase}.new-sep:before{content:"";flex:1;height:1px;background:var(--danger)}.new-sep span{background:var(--danger);color:#fff;padding:1px 6px;border-radius:4px;margin-left:4px}.msg{position:relative;display:grid;grid-template-columns:56px 1fr;padding:2px 48px 2px 16px;margin-top:16px;min-height:24px}.msg.cont{margin-top:0}.msg:hover{background:#00000012}[data-theme=light] .msg:hover{background:#00000006}.msg.mentioned{background:var(--mention-bg)}.msg.mentioned:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--mention-bar)}.msg.highlight{animation:flash 2s ease-out}.msg.pending{opacity:.55}.msg.failed .body{color:var(--danger)}.msg .gutter{padding-top:2px}.msg .gutter .av{cursor:pointer}.msg .gutter .ts{display:none;font-size:11px;color:var(--muted);padding-top:4px;text-align:right;padding-right:14px}.msg.cont:hover .gutter .ts{display:block}.msg .head{display:flex;align-items:baseline;gap:8px;line-height:1.3;margin-bottom:1px}.msg .author{font-weight:600;color:var(--head);cursor:pointer}.msg .author:hover{text-decoration:underline}.msg .tag{font-size:10.5px;font-weight:700;padding:1px 5px;border-radius:4px;background:var(--brand);color:#fff;align-self:center}.msg .time{font-size:12px;color:var(--muted)}.msg .body{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;color:var(--text);min-width:0}.msg .body .edited{font-size:11px;color:var(--muted)}.msg .body code{background:var(--bg-rail);padding:1px 5px;border-radius:5px;font:13.5px/1.4 ui-monospace,JetBrains Mono,Consolas,monospace}.msg .body pre.code{background:var(--bg-rail);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:4px 0;overflow-x:auto;white-space:pre;max-width:100%}.msg .body pre.code code{background:none;padding:0}.msg .body .quote{border-left:4px solid var(--line-strong);padding-left:10px;margin:2px 0}.msg .body .h1{font-size:22px;font-weight:800;color:var(--head);margin:6px 0 2px}.msg .body .h2{font-size:19px;font-weight:800;color:var(--head);margin:6px 0 2px}.msg .body .h3{font-size:16.5px;font-weight:700;color:var(--head);margin:4px 0 2px}.msg .body .sub{font-size:12.5px;color:var(--muted)}.msg .body .jumbo{font-size:44px;line-height:1.2}.spoiler{background:var(--text);color:transparent;border-radius:4px;cursor:pointer;transition:all .15s}.spoiler.shown{background:var(--bg-sel);color:inherit}.mention{background:var(--brand-soft);color:var(--brand-text);border-radius:4px;padding:0 3px;font-weight:600;cursor:pointer}.mention:hover{background:var(--brand);color:#fff}.reply-ref{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin:0 0 2px;min-width:0;position:relative;cursor:pointer;grid-column:2}.reply-ref:before{content:"";position:absolute;left:-36px;top:50%;width:30px;height:12px;border:2px solid var(--line-strong);border-right:0;border-bottom:0;border-top-left-radius:7px}.reply-ref b{color:var(--text-2);font-weight:600;flex:none}.reply-ref .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-ref:hover .t{color:var(--text)}.msg.has-reply{margin-top:16px}.atts{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.att-img{max-width:min(420px,100%);max-height:340px;border-radius:10px;cursor:zoom-in;display:block;background:var(--bg-input)}.att-video{max-width:min(480px,100%);max-height:340px;border-radius:10px;background:#000;display:block}.att-audio{width:min(420px,100%)}.att-file{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--bg-elev);border:1px solid var(--line);width:min(420px,100%)}.att-file .ic{width:34px;height:34px;color:var(--brand-text)}.att-file .meta{flex:1;min-width:0}.att-file .meta a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.att-file .meta small{color:var(--muted)}.att-spoiler{position:relative;border-radius:10px;overflow:hidden;cursor:pointer}.att-spoiler>*{filter:blur(40px);pointer-events:none}.att-spoiler:after{content:"SPOILER";position:absolute;inset:0;display:grid;place-items:center;font-weight:800;letter-spacing:.1em;background:#00000059;color:#fff}.att-spoiler.shown>*{filter:none;pointer-events:auto}.att-spoiler.shown:after{display:none}.embed.yt{position:relative;width:min(420px,100%);aspect-ratio:16/9;border-radius:10px;overflow:hidden;cursor:pointer;margin-top:4px;background:#000;border-left:4px solid #ff0033}.embed.yt img{width:100%;height:100%;object-fit:cover}.embed.yt .play{position:absolute;inset:0;margin:auto;width:64px;height:44px;border-radius:12px;background:#ff0033e6;color:#fff;display:grid;place-items:center;font-size:20px}.embed.yt iframe{width:100%;height:100%;border:0}.embed.spotify{width:min(420px,100%);border:0;border-radius:12px;margin-top:4px;display:block}.embed-img{margin-top:4px}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.react{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:8px;background:var(--bg-elev);border:1px solid transparent;font-size:14px;line-height:1.5;transition:background .1s,border-color .1s;user-select:none}.react:hover{border-color:var(--line-strong)}.react.mine{background:var(--brand-soft);border-color:var(--brand)}.react b{font-size:13px;font-weight:700;color:var(--text-2)}.react.mine b{color:var(--brand-text)}.react.add{opacity:0;color:var(--muted)}.msg:hover .react.add{opacity:1}.react.pop{animation:pop .25s}.msg-tools{position:absolute;right:16px;top:-16px;display:none;background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:8px;box-shadow:0 4px 12px #0003;overflow:hidden;z-index:3}.msg:hover .msg-tools,.msg.menu-open .msg-tools{display:flex}.msg-tools button{width:34px;height:32px;display:grid;place-items:center;color:var(--text-2);font-size:17px}.msg-tools button:hover{background:var(--bg-hover);color:var(--head)}.msg-tools button.danger:hover{color:var(--danger)}.msg.editing .msg-tools{display:none!important}.edit-box textarea{width:100%;background:var(--bg-input);border:0;border-radius:8px;padding:10px 12px;outline:none;resize:none;margin:2px 0}.edit-box .hint a{cursor:pointer}#composer-wrap{padding:0 16px 6px;flex:none;position:relative}.composer-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-elev);border-radius:12px 12px 0 0;font-size:13.5px;color:var(--text-2)}.composer-bar b{color:var(--head)}.composer-bar .sp{flex:1}.composer-bar+.composer{border-top-left-radius:0;border-top-right-radius:0}.pending-atts{display:flex;gap:10px;padding:12px;background:var(--bg-input);border-radius:12px 12px 0 0;overflow-x:auto;border-bottom:1px solid var(--line)}.pending-atts+.composer{border-top-left-radius:0;border-top-right-radius:0}.patt{position:relative;width:150px;flex:none;background:var(--bg-elev);border-radius:8px;padding:8px}.patt .thumb{height:110px;border-radius:6px;background:var(--bg-rail) center/cover;display:grid;place-items:center;color:var(--muted);overflow:hidden}.patt .thumb .ic{width:40px;height:40px}.patt .nm{font-size:12.5px;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patt .bar{height:4px;border-radius:2px;background:var(--bg-rail);margin-top:6px;overflow:hidden}.patt .bar i{display:block;height:100%;background:var(--brand);width:0;transition:width .15s}.patt .x{position:absolute;top:-6px;right:-6px;width:26px;height:26px;border-radius:50%;background:var(--bg-float);border:1px solid var(--line-strong);display:grid;place-items:center;color:var(--danger)}.patt .sp{position:absolute;top:-6px;right:24px;height:26px;padding:0 8px;border-radius:13px;background:var(--bg-float);border:1px solid var(--line-strong);font-size:11px;font-weight:700}.patt .sp.on{background:var(--brand);color:#fff}.composer{display:flex;align-items:flex-end;gap:4px;background:var(--bg-input);border-radius:12px;padding:0 6px 0 4px}.composer textarea{flex:1;background:none;border:0;outline:none;resize:none;padding:12px 6px;max-height:50vh;line-height:1.375rem;min-height:46px}.composer .ibtn{margin-bottom:6px}.composer .ibtn:first-child .ic{width:22px;height:22px}#typing{height:22px;padding:0 18px;font-size:13px;color:var(--text-2);display:flex;align-items:center;gap:6px;flex:none}#typing b{color:var(--head)}.dots{display:inline-flex;gap:3px}.dots i{width:5px;height:5px;border-radius:50%;background:var(--text-2);animation:blink 1.2s infinite}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}.no-perm{margin:0 16px 24px;padding:14px;border-radius:12px;background:var(--bg-input);color:var(--muted);text-align:center}.jump-bottom{position:absolute;right:24px;bottom:96px;z-index:4}.ac{position:absolute;left:16px;right:16px;bottom:calc(100% - 4px);background:var(--bg-float);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow);padding:6px;max-height:300px;overflow-y:auto;z-index:10}.ac .ttl{font-size:11.5px;font-weight:700;text-transform:uppercase;color:var(--muted);padding:6px 8px}.ac .it{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;cursor:pointer}.ac .it.sel,.ac .it:hover{background:var(--bg-sel)}.ac .it small{color:var(--muted);margin-left:auto}.ac .it .e{font-size:20px;width:24px;text-align:center}#members{width:248px;background:var(--bg-side);overflow-y:auto;padding:8px 8px 20px;border-left:1px solid var(--line);flex:none}#members .cat{padding-top:20px}.mem{display:flex;align-items:center;gap:11px;padding:6px 8px;border-radius:8px;cursor:pointer}.mem:hover{background:var(--bg-hover)}.mem.off{opacity:.4}.mem.off:hover{opacity:1}.mem .meta{min-width:0;flex:1}.mem .meta .n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:4px}.mem .meta .n .ic{width:14px;height:14px}.mem .meta .s{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel{width:400px;flex:none;border-left:1px solid var(--line);background:var(--bg-side);display:flex;flex-direction:column;min-height:0}.panel .ph{height:52px;display:flex;align-items:center;padding:0 12px 0 16px;font-weight:700;color:var(--head);border-bottom:1px solid var(--line);flex:none}.panel .ph span{flex:1}.panel .pb{flex:1;overflow-y:auto;padding:8px 0}.panel .msg{background:var(--bg-main);margin:8px 10px;border-radius:10px;padding:8px 12px 8px 10px;border:1px solid var(--line);cursor:pointer;grid-template-columns:50px 1fr}.panel .msg:hover{border-color:var(--line-strong)}.panel .empty{text-align:center;color:var(--muted);padding:40px 20px}.panel .chname{font-size:12px;color:var(--muted);margin:10px 14px 0;font-weight:600}.friends{flex:1;display:flex;flex-direction:column;min-height:0}.tabs{display:flex;gap:6px;align-items:center}.tab{padding:4px 10px;border-radius:6px;color:var(--text-2);font-weight:600;font-size:14.5px;display:inline-flex;align-items:center;gap:6px}.tab:hover{background:var(--bg-hover);color:var(--head)}.tab.on{background:var(--bg-sel);color:var(--head)}.tab.add{background:#1fb56a;color:#fff}.tab.add.on{background:transparent;color:var(--ok)}.friends .list{flex:1;overflow-y:auto;padding:16px 20px 20px 28px}.friends .list .cnt{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:4px 0 8px}.frow{display:flex;align-items:center;gap:12px;padding:10px;margin:0 -10px;border-top:1px solid var(--line);border-radius:10px;cursor:pointer}.frow:hover{background:var(--bg-hover);border-top-color:transparent}.frow:hover+.frow{border-top-color:transparent}.frow .meta{flex:1;min-width:0}.frow .meta b{color:var(--head)}.frow .meta small{color:var(--muted);margin-left:6px;display:none}.frow:hover .meta small{display:inline}.frow .meta .s{font-size:13px;color:var(--muted)}.frow .acts{display:flex;gap:8px}.frow .acts button{width:38px;height:38px;border-radius:50%;background:var(--bg-side);color:var(--text-2);display:grid;place-items:center}.frow .acts button:hover{color:var(--head)}.frow .acts button.ok:hover{color:var(--ok)}.frow .acts button.no:hover{color:var(--danger)}.add-friend{padding:20px 28px;border-bottom:1px solid var(--line)}.add-friend h2{margin:0 0 6px;font-size:16px;color:var(--head);text-transform:uppercase}.add-friend p{margin:0 0 14px;color:var(--muted);font-size:14px}.add-friend form{display:flex;gap:10px;padding:6px 6px 6px 14px;border-radius:12px;background:var(--bg-float);border:1px solid var(--line)}.add-friend form:focus-within{border-color:var(--brand)}.add-friend input{flex:1;background:none;border:0;outline:none;font-size:15px}.add-friend .msgline{margin-top:8px;font-size:14px}.empty-state{display:grid;place-items:center;text-align:center;color:var(--muted);padding:60px 20px}.empty-state .art{font-size:64px;margin-bottom:12px;filter:grayscale(.2)}.active-now{width:340px;border-left:1px solid var(--line);padding:16px;overflow-y:auto;flex:none}.active-now h3{margin:4px 0 14px;font-size:19px;color:var(--head)}.an-card{background:var(--bg-side);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:10px;cursor:pointer}.an-card:hover{border-color:var(--line-strong)}.an-card .r{display:flex;align-items:center;gap:10px}.an-card small{color:var(--muted)}#stage{flex:1;display:flex;flex-direction:column;min-height:0;background:#000;position:relative}[data-theme=light] #stage{background:#11131a}.stage-grid{flex:1;display:grid;gap:8px;padding:12px;align-content:center;justify-content:center;min-height:0;overflow:auto}.tile{position:relative;border-radius:12px;overflow:hidden;background:#1a1b22;aspect-ratio:16/9;display:grid;place-items:center;min-width:0;min-height:0;transition:box-shadow .12s;cursor:pointer}.tile.speaking{box-shadow:inset 0 0 0 3px var(--ok)}.tile video{width:100%;height:100%;object-fit:cover;background:#000}.tile.screen video{object-fit:contain}.tile .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(30px) brightness(.5);transform:scale(1.3)}.tile .av{z-index:1}.tile .tname{position:absolute;left:10px;bottom:10px;z-index:2;display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;background:#0009;color:#fff;font-size:13.5px;font-weight:600;backdrop-filter:blur(6px);max-width:calc(100% - 20px)}.tile .tname .ic{width:15px;height:15px}.tile .corner{position:absolute;right:10px;top:10px;z-index:2;display:none;gap:6px}.tile:hover .corner{display:flex}.tile .corner button{width:32px;height:32px;border-radius:8px;background:#0009;color:#fff;display:grid;place-items:center}.tile .live{position:absolute;left:10px;top:10px;z-index:2;background:var(--danger);color:#fff;font-size:11px;font-weight:800;padding:2px 7px;border-radius:5px}.stage-grid.focus{grid-template-columns:1fr!important;grid-template-rows:1fr auto;align-content:stretch}.stage-grid.focus .tile.focused{aspect-ratio:auto;height:100%}.stage-strip{display:flex;gap:8px;overflow-x:auto;justify-content:center}.stage-strip .tile{width:180px;flex:none}.stage-ctl{flex:none;display:flex;justify-content:center;gap:12px;padding:14px}.cbtn{width:54px;height:54px;border-radius:50%;background:#2a2b35;color:#fff;display:grid;place-items:center;transition:background .15s,transform .1s}.cbtn:hover{background:#363846}.cbtn .ic{width:24px;height:24px}.cbtn.on{background:#fff;color:#111}.cbtn.off{background:#fff;color:var(--danger)}.cbtn.end{background:var(--danger);width:64px;border-radius:27px}.cbtn.join{background:#1fb56a;width:auto;padding:0 22px;border-radius:27px;font-weight:700;gap:8px;display:flex}.stage-empty{color:#b0b4c2;text-align:center}.stage-empty h2{color:#fff;margin:10px 0 6px}.stage-top{position:absolute;top:0;left:0;right:0;height:52px;display:flex;align-items:center;gap:8px;padding:0 16px;color:#fff;font-weight:700;z-index:3;background:linear-gradient(to bottom,rgba(0,0,0,.6),transparent);pointer-events:none}.layer{position:fixed;inset:0;z-index:100}.menu{position:fixed;min-width:200px;max-width:300px;background:var(--bg-float);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:101;animation:pop .12s ease-out;max-height:80vh;overflow-y:auto}.menu .mi{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:6px;color:var(--text-2);font-size:14px;text-align:left}.menu .mi:hover{background:var(--brand);color:#fff}.menu .mi.danger{color:var(--danger)}.menu .mi.danger:hover{background:var(--danger);color:#fff}.menu .mi .r{margin-left:auto}.menu .mi .chk{width:18px;height:18px;border-radius:4px;border:2px solid var(--muted);display:grid;place-items:center}.menu .mi .chk.on{background:var(--brand);border-color:var(--brand);color:#fff}.menu .mi .dot{width:12px;height:12px;border-radius:50%}.menu .sep{height:1px;background:var(--line-strong);margin:4px 6px}.menu .mlabel{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;padding:6px 10px 4px}.menu .range{padding:4px 10px 8px}.menu .range input{width:100%;accent-color:var(--brand)}.modal-bg{position:fixed;inset:0;background:#000000b3;display:grid;place-items:center;z-index:90;padding:16px;animation:fade .15s}.modal{background:var(--bg-modal);border-radius:16px;width:min(480px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:var(--shadow);animation:pop .2s cubic-bezier(.2,.9,.3,1.2);border:1px solid var(--line);overflow:hidden}.modal .mh{padding:22px 22px 8px;position:relative}.modal .mh h2{margin:0;font-size:21px;color:var(--head);letter-spacing:-.01em}.modal .mh p{margin:6px 0 0;color:var(--muted)}.modal .mh.center{text-align:center}.modal .mx{position:absolute;right:14px;top:14px}.modal .mb{padding:12px 22px 16px;overflow-y:auto}.modal .mf{padding:14px 22px;display:flex;justify-content:flex-end;gap:10px;background:var(--bg-side)}.modal.wide{width:min(720px,100%)}.profile{width:340px;border-radius:14px;overflow:hidden;background:var(--bg-float);border:1px solid var(--line-strong);box-shadow:var(--shadow);position:fixed;z-index:101;animation:pop .15s ease-out;max-height:calc(100vh - 20px);overflow-y:auto}.profile .bn{height:120px;background:var(--acc) center/cover;position:relative}.profile .avw{position:absolute;left:16px;top:64px}.profile .avw .av{--ring: var(--bg-float);box-shadow:0 0 0 6px var(--bg-float);cursor:pointer}.profile .pb{padding:54px 16px 16px}.profile .nm{font-size:21px;font-weight:800;color:var(--head);line-height:1.2;word-break:break-word}.profile .un{color:var(--text-2);font-size:14px}.profile .cs{margin-top:8px;font-size:14px}.profile .box{margin-top:12px;padding:12px;border-radius:10px;background:var(--bg-elev)}.profile .box h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--head)}.profile .box h4+*{font-size:14px}.profile .box .bio{white-space:pre-wrap;word-wrap:break-word}.profile .box+.box{margin-top:8px}.profile .roles{display:flex;flex-wrap:wrap;gap:4px}.role-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;background:var(--bg-input);font-size:12.5px;font-weight:600}.role-chip i{width:10px;height:10px;border-radius:50%;background:var(--c, var(--muted))}.profile .acts{display:flex;gap:8px;margin-top:12px}.profile .acts .btn{flex:1}.profile .mutual{display:flex;gap:6px;flex-wrap:wrap}.settings{position:fixed;inset:0;z-index:80;display:flex;background:var(--bg-main);animation:zoomin .2s}.settings .snav{flex:1 0 220px;background:var(--bg-side);display:flex;justify-content:flex-end;overflow-y:auto;padding:60px 8px 20px 20px}.settings .snav>div{width:210px}.settings .snav .cat{padding:14px 10px 6px}.settings .snav button{display:block;width:100%;text-align:left;padding:7px 10px;border-radius:6px;color:var(--text-2);font-weight:500;margin:1px 0}.settings .snav button:hover{background:var(--bg-hover);color:var(--head)}.settings .snav button.on{background:var(--bg-sel);color:var(--head)}.settings .snav button.danger{color:var(--danger)}.settings .snav .sep{height:1px;background:var(--line-strong);margin:8px 10px}.settings .sbody{flex:1 1 800px;overflow-y:auto;padding:60px 40px 80px;position:relative}.settings .sbody>.inner{max-width:740px}.settings h2{margin:0 0 20px;color:var(--head);font-size:22px}.settings h3{margin:28px 0 12px;color:var(--head);font-size:16px}.settings .closer{position:fixed;right:max(20px,calc(50vw - 600px));top:60px;text-align:center;color:var(--muted);font-size:12px;font-weight:700;z-index:2}.settings .closer button{width:38px;height:38px;border-radius:50%;border:2px solid var(--muted);display:grid;place-items:center;color:var(--muted);margin-bottom:6px}.settings .closer button:hover{border-color:var(--head);color:var(--head);background:var(--bg-hover)}.card-row{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-side);border-radius:12px;margin-bottom:10px}.card-row .meta{flex:1;min-width:0}.card-row .meta b{display:block;color:var(--head)}.card-row .meta small{color:var(--muted)}.split{display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:start}.toggle-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.toggle-row .meta{flex:1}.toggle-row .meta b{display:block;color:var(--head);font-weight:600}.toggle-row .meta small{color:var(--muted)}.switch{width:44px;height:26px;border-radius:13px;background:var(--bg-input);position:relative;transition:background .15s;flex:none;border:1px solid var(--line-strong)}.switch:after{content:"";position:absolute;left:2px;top:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px #0000004d}.switch.on{background:var(--ok);border-color:var(--ok)}.switch.on:after{transform:translate(18px)}.color-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.color-row .sw{width:34px;height:34px;border-radius:8px;border:2px solid transparent}.color-row .sw.on{border-color:var(--head)}.color-row input[type=color]{width:44px;height:36px;border:0;background:none;padding:0;cursor:pointer}.upload-row{display:flex;gap:8px;flex-wrap:wrap}.meter{height:8px;border-radius:4px;background:var(--bg-input);overflow:hidden}.meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ok),var(--idle),var(--danger));transition:width .06s}.theme-pick{display:flex;gap:12px}.theme-pick button{width:64px;height:64px;border-radius:50%;border:3px solid transparent}.theme-pick button.on{border-color:var(--brand)}.role-editor{display:grid;grid-template-columns:200px 1fr;gap:20px}.role-list button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border-radius:6px;text-align:left;color:var(--text-2)}.role-list button:hover{background:var(--bg-hover)}.role-list button.on{background:var(--bg-sel);color:var(--head)}.role-list i{width:12px;height:12px;border-radius:50%;background:var(--c, var(--muted));flex:none}.table-row{display:flex;align-items:center;gap:12px;padding:10px 6px;border-bottom:1px solid var(--line)}.table-row .meta{flex:1;min-width:0}.table-row .meta b{color:var(--head)}.table-row .meta small{color:var(--muted);display:block}.danger-zone{border:1px solid rgba(255,80,104,.4);border-radius:12px;padding:16px;margin-top:30px}.danger-zone b{color:var(--head)}.emoji-picker{width:380px;height:420px;display:flex;flex-direction:column;padding:0!important;overflow:hidden!important}.emoji-picker .eh{padding:10px;border-bottom:1px solid var(--line)}.emoji-picker .eh input{width:100%;padding:8px 10px;border-radius:8px;border:0;background:var(--bg-input);outline:none}.emoji-picker .eb{flex:1;overflow-y:auto;padding:6px 10px 10px}.emoji-picker .et{font-size:11.5px;font-weight:700;text-transform:uppercase;color:var(--muted);padding:10px 2px 4px;position:sticky;top:-6px;background:var(--bg-float)}.emoji-picker .eg{display:grid;grid-template-columns:repeat(9,1fr)}.emoji-picker .eg button{font-size:24px;height:38px;border-radius:6px;line-height:1}.emoji-picker .eg button:hover{background:var(--bg-hover);transform:scale(1.12)}.emoji-picker .ef{padding:8px 12px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);height:38px;display:flex;align-items:center;gap:8px}.emoji-picker .ef .big{font-size:22px}#toasts{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{background:var(--bg-float);border:1px solid var(--line-strong);color:var(--text);padding:10px 16px;border-radius:10px;box-shadow:var(--shadow);animation:up .2s;font-weight:500;pointer-events:auto}.toast.err{border-color:var(--danger)}.toast.ok{border-color:var(--ok)}.lightbox{position:fixed;inset:0;background:#000000e0;z-index:120;display:grid;place-items:center;animation:fade .15s;cursor:zoom-out}.lightbox img{max-width:92vw;max-height:86vh;border-radius:6px;box-shadow:0 10px 40px #0009}.lightbox a{position:absolute;bottom:20px;color:#ddd;font-size:14px}.call-card{position:fixed;z-index:110;top:20px;left:50%;transform:translate(-50%);width:280px;padding:22px;border-radius:18px;background:var(--bg-float);border:1px solid var(--line-strong);box-shadow:var(--shadow);text-align:center;animation:pop .25s}.call-card .av{margin:0 auto 10px;animation:ringpulse 1.4s infinite}.call-card h3{margin:0;color:var(--head)}.call-card p{margin:4px 0 18px;color:var(--muted)}.call-card .row{display:flex;justify-content:center;gap:22px}.call-card .row .cbtn{background:var(--ok)}.call-card .row .cbtn.end{background:var(--danger);width:54px}.conn-banner{position:fixed;top:0;left:0;right:0;z-index:150;text-align:center;padding:6px;background:var(--idle);color:#111;font-weight:700;font-size:13.5px}.drop-overlay{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#6e5bff33;backdrop-filter:blur(2px);pointer-events:none}.drop-overlay div{padding:30px 40px;border-radius:20px;background:var(--brand);color:#fff;font-size:20px;font-weight:800;box-shadow:var(--shadow);text-align:center}.drop-overlay small{display:block;font-size:14px;font-weight:500;opacity:.9}.skeleton{padding:20px}.skeleton div{height:14px;border-radius:7px;background:var(--bg-elev);margin:10px 0;animation:shimmer 1.4s infinite}@keyframes pop{0%{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}@keyframes zoomin{0%{transform:scale(1.04);opacity:0}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}}@keyframes up{0%{transform:translateY(12px);opacity:0}}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@keyframes flash{0%,30%{background:var(--brand-soft)}to{background:transparent}}@keyframes shimmer{50%{opacity:.45}}@keyframes ringpulse{0%{box-shadow:0 0 #2fd27d99}to{box-shadow:0 0 0 18px #2fd27d00}}@media(max-width:1100px){#members,.active-now{display:none}#members.force{display:block;position:fixed;right:0;top:52px;bottom:0;z-index:30;box-shadow:var(--shadow)}.panel{position:fixed;right:0;top:0;bottom:0;z-index:30;width:min(400px,100vw);box-shadow:var(--shadow)}}@media(max-width:760px){#app{grid-template-columns:1fr}#rail,#side{position:fixed;top:0;bottom:0;z-index:40;transition:transform .22s ease}#rail{left:0;width:72px}#side{left:72px;width:min(300px,calc(100vw - 72px))}body:not(.drawer) #rail,body:not(.drawer) #side{transform:translate(calc(-100% - 80px))}body.drawer:after{content:"";position:fixed;inset:0;background:#00000080;z-index:35}#mobile-menu{display:grid}.top{padding-left:6px}.top .topic,.top .search-box{display:none}.msg{padding-right:12px;grid-template-columns:48px 1fr}.msg-tools{right:8px}.settings{flex-direction:column}.settings .snav{flex:none;padding:50px 10px 10px;justify-content:flex-start;max-height:40vh}.settings .snav>div{width:100%}.settings .sbody{padding:20px 16px 60px}.settings .closer{top:10px;right:10px}.split,.role-editor{grid-template-columns:1fr}.emoji-picker{width:min(360px,96vw)}.profile{width:min(340px,96vw)}.friends .list{padding:12px}.cbtn{width:48px;height:48px}}
