@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-0:#0a0c0e;--bg-1:#15181c;--bg-2:#0e1012;--bg-3:#1c2026;--bg-4:#2a2f37;--line:#2a2f37;--text-1:#eef1f4;--text-2:#c3cad3;--text-3:#a3adb9;--accent:#2ed3b7;--accent-hover:#55e0c8;--on-accent:#05241f;--accent-soft:#2ed3b724;--danger:#ff6b81;--danger-soft:#ff6b8129;--warn:#f2b84b;--ok:#4ade80;--on-danger:#2a0710;--mention:#f0b23c17;--shadow:0 12px 40px #00000080;--radius:10px;--radius-sm:6px;--display:"Space Grotesk Variable", "Inter Variable", "Segoe UI", system-ui, sans-serif;--font:"Inter Variable", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", sans-serif;--mono:"Cascadia Code", "JetBrains Mono", Consolas, ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg-0:#dfe3e8;--bg-1:#eceff2;--bg-2:#fff;--bg-3:#f1f3f6;--bg-4:#e2e6eb;--line:#d9dee4;--text-1:#14181d;--text-2:#46505c;--text-3:#76818d;--accent:#0c9a82;--accent-hover:#0a8973;--on-accent:#fff;--accent-soft:#0c9a821f;--danger:#d6304f;--on-danger:#fff;--danger-soft:#d6304f1a;--warn:#b97a06;--ok:#17a558;--mention:#d696141f;--shadow:0 12px 40px #141e2d2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-2);color:var(--text-1);font:15px/1.45 var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed}h1,h2,h3,h4,h5,p{margin:0}h1,h2,h3{font-family:var(--display)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--bg-4) transparent}fieldset{border:0;min-width:0;margin:0;padding:0}fieldset:disabled{opacity:.6}input:not([type=range],[type=color],[type=file]),select,textarea{background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--text-1);font:inherit;padding:9px 11px;transition:border-color .12s}:root[data-theme=light] input:not([type=range],[type=color],[type=file]),:root[data-theme=light] select,:root[data-theme=light] textarea{background:var(--bg-2)}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}textarea{resize:vertical}input[type=range]{width:100%;accent-color:var(--accent)}input[type=color]{cursor:pointer;background:0 0;border:0;width:30px;height:30px;padding:0}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field-label{letter-spacing:.03em;text-transform:uppercase;color:var(--text-2);font-size:12px;font-weight:650}.field-hint{color:var(--text-3);font-size:12.5px}.search{margin-bottom:10px}.grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.form-actions.start{justify-content:flex-start;margin-top:4px}.form-error{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);margin-bottom:12px;padding:9px 11px;font-size:14px}.row-between{justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.inline-form{align-items:center;gap:8px;margin:10px 0;display:flex}.inline-form select,.inline-form input{min-width:180px}.copy-row{gap:8px;margin:12px 0;display:flex}.muted{color:var(--text-3)}.small{font-size:12.5px}.mono{font-family:var(--mono);font-size:13px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grow{flex:1}.pad{padding:14px}.danger{color:var(--danger)}code{font-family:var(--mono);background:var(--bg-0);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:.88em}.btn{border-radius:var(--radius-sm);background:var(--bg-4);min-height:36px;color:var(--text-1);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:7px 14px;font-size:14px;font-weight:600;transition:background .12s,opacity .12s;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:disabled{opacity:.5}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);filter:none}.btn.danger{background:var(--danger);color:var(--on-danger)}.btn.ghost{color:var(--text-2);background:0 0}.btn.block{width:100%}.btn.keycap{font-family:var(--mono);border:1px solid var(--line);min-width:150px}.btn.keycap.listening{border-color:var(--accent);color:var(--accent)}.link{color:var(--accent);font-weight:600}.link:hover{text-decoration:underline}.icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-2);flex:none;place-items:center;transition:background .1s,color .1s;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--bg-4);color:var(--text-1)}.icon-btn:disabled{opacity:.4}.icon-btn.small{width:24px;height:24px}.icon-btn.on{color:var(--accent);background:var(--accent-soft)}.icon-btn.off,.icon-btn.danger{color:var(--danger)}.icon-btn.off{background:var(--danger-soft)}.mobile-only{display:none}.switch{background:var(--bg-4);border:1px solid var(--line);border-radius:12px;flex:none;width:42px;height:24px;transition:background .15s;position:relative}.switch span{background:var(--text-2);border-radius:50%;width:18px;height:18px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.switch.on{background:var(--accent);border-color:var(--accent)}.switch.on span{background:var(--on-accent);transform:translate(18px)}.switch:disabled{opacity:.45}.tag{letter-spacing:.04em;background:var(--accent-soft);color:var(--accent);vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.badge{background:var(--danger);min-width:18px;height:18px;color:var(--on-danger);box-shadow:0 0 0 3px var(--bg-0);border-radius:9px;place-items:center;padding:0 5px;font-size:11px;font-weight:700;display:grid;position:absolute;bottom:0;right:2px}.badge.inline{box-shadow:none;flex:none;position:static}.notice{background:var(--bg-3);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:var(--radius-sm);margin:10px 0;padding:10px 12px;font-size:14px}.notice.success{border-left-color:var(--accent)}.tabs,.segmented{background:var(--bg-0);border-radius:var(--radius-sm);gap:4px;margin-bottom:16px;padding:4px;display:flex}.tabs button,.segmented button{text-align:center;color:var(--text-2);border-radius:4px;flex:1;padding:7px 10px;font-size:14px;font-weight:600}.tabs button.active,.segmented button.active{background:var(--bg-4);color:var(--text-1)}.choice{gap:8px;margin-bottom:16px;display:grid}.choice button{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg-3);color:var(--text-2);align-items:center;gap:12px;padding:12px 14px;display:flex}.choice button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text-1)}.choice strong,.choice small{display:block}.choice small{color:var(--text-3);font-size:12.5px}.avatar{border-radius:50%;flex:none;display:inline-block;position:relative}.avatar img,.avatar-fallback{object-fit:cover;color:#fff;-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;width:100%;height:100%;font-weight:650;display:grid}.avatar.square img,.avatar.square .avatar-fallback{border-radius:28%}.avatar.speaking{box-shadow:0 0 0 2px var(--bg-1), 0 0 0 4px var(--ok)}.status-dot{border:2.5px solid var(--bg-1);background:var(--text-3);border-radius:50%;width:34%;min-width:10px;height:34%;min-height:10px;position:absolute;bottom:-2px;right:-2px}.status-dot.static{border:0;width:10px;height:10px;display:block;position:static}.status-dot.online{background:var(--ok)}.status-dot.idle{background:var(--warn)}.status-dot.dnd{background:var(--danger)}.spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.overlay{z-index:50;background:#040609a8;place-items:center;padding:20px;animation:.12s ease-out fade;display:grid;position:fixed;inset:0}.overlay.top{z-index:80}@keyframes fade{0%{opacity:0}}.modal{background:var(--bg-2);border:1px solid var(--line);width:min(460px,100%);max-height:min(90dvh,760px);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;animation:.14s ease-out pop;display:flex}@keyframes pop{0%{opacity:0;transform:scale(.97)}}.modal.wide{width:min(980px,100%);height:min(90dvh,760px)}.modal-head{justify-content:space-between;align-items:center;padding:16px 16px 4px 20px;display:flex}.modal-head h2{font-size:18px}.modal-body{flex:1;min-height:0;padding:12px 20px 20px;overflow-y:auto}.modal.wide .modal-body{padding:0;overflow:hidden}.modal-foot{background:var(--bg-1);border-top:1px solid var(--line);border-radius:0 0 14px 14px;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;display:flex}.image-viewer{cursor:zoom-out;grid-template-rows:1fr auto;gap:10px}.image-viewer img{cursor:default;border-radius:8px;align-self:end;max-width:92vw;max-height:84dvh}.image-viewer a{color:var(--text-2);align-self:start;font-size:13px}.menu,.user-card,.emoji-picker{z-index:70;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);position:fixed}.menu{min-width:210px;padding:6px}.menu-item{width:100%;color:var(--text-2);border-radius:5px;align-items:center;gap:9px;padding:7px 9px;font-size:14px;display:flex}.menu-item:hover:not(:disabled){background:var(--accent);color:var(--on-accent)}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger);color:var(--on-danger)}.menu-item:disabled{opacity:.45}.menu-icon{place-items:center;width:16px;display:grid}.menu-label{flex:1}.menu-sep{background:var(--line);height:1px;margin:5px 4px}.toasts{z-index:100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{background:var(--bg-0);color:var(--text-1);border:1px solid var(--line);border-left:3px solid var(--text-3);border-radius:var(--radius-sm);box-shadow:var(--shadow);max-width:min(480px,92vw);padding:10px 14px;font-size:14px;animation:.14s ease-out pop}.toast.error{border-left-color:var(--danger)}.toast.success{border-left-color:var(--accent)}.splash,.auth{background:radial-gradient(900px 500px at 15% -10%, var(--accent-soft), transparent 60%), var(--bg-0);align-content:center;place-items:center;gap:22px;height:100%;padding:20px;display:grid;overflow-y:auto}.auth-card{background:var(--bg-2);border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);border-radius:16px;padding:28px}.auth-brand{align-items:center;gap:14px;margin-bottom:22px;display:flex}.auth-brand h1{letter-spacing:-.01em;font-size:21px}.auth-brand p{color:var(--text-3);font-size:13.5px}.auth-card h2{margin-bottom:14px;font-size:16px}.auth-invite{background:var(--accent-soft);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 12px;font-size:14px}.auth-switch{text-align:center;color:var(--text-3);margin-top:16px;font-size:14px}.app{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:auto minmax(0,1fr);height:100dvh;display:grid}.conn-banner{background:var(--warn);color:#1d1400;grid-column:1/-1;justify-content:center;align-items:center;gap:8px;padding:4px;font-size:13px;font-weight:600;display:flex}.app-nav{grid-row:3;min-height:0;display:flex}.main{background:var(--bg-2);flex-direction:column;grid-row:3;min-width:0;min-height:0;display:flex}.main-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;height:50px;padding:0 10px 0 16px;display:flex}.main-head h1{white-space:nowrap;text-overflow:ellipsis;min-width:40px;font-size:15.5px;font-weight:650;overflow:hidden}.main-head-icon{color:var(--text-3);flex:none;place-items:center;display:grid}.main-head-topic{color:var(--text-3);border-left:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;flex-shrink:5;min-width:0;margin-left:4px;padding-left:12px;font-size:13.5px;overflow:hidden}.main-body{flex:1;min-height:0;display:flex}.chat-column{flex-direction:column;flex:1;min-width:0;display:flex}.welcome{text-align:center;color:var(--text-2);flex:1;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid;position:relative}.welcome h2{color:var(--text-1);margin-top:8px;font-size:24px}.welcome p{max-width:420px}.welcome-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.welcome-menu{position:absolute;top:8px;left:8px}.chat{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.messages{overflow-anchor:none;flex:1;min-height:0;overflow-y:auto}.messages-inner{flex-direction:column;justify-content:flex-end;min-height:100%;padding:16px 0 6px;display:flex}.messages-loading{color:var(--text-3);place-items:center;padding:14px;display:grid}.chat-empty{color:var(--text-3);text-align:center;margin:auto;padding:30px}.chat-intro{padding:30px 18px 14px}.chat-intro h3{letter-spacing:-.01em;font-size:22px}.chat-intro p{color:var(--text-3);margin-top:4px}.day-sep{color:var(--text-3);align-items:center;gap:10px;margin:14px 18px 6px;font-size:12px;font-weight:650;display:flex}.day-sep:before,.day-sep:after{content:"";background:var(--line);flex:1;height:1px}.msg{grid-template-columns:54px minmax(0,1fr);margin-top:12px;padding:3px 18px 3px 16px;display:grid;position:relative}.msg.grouped{margin-top:0}.msg:hover,.msg.hover{background:color-mix(in srgb, var(--bg-3) 55%, transparent)}.msg.mentioned{background:var(--mention);box-shadow:inset 2px 0 0 var(--warn)}.msg-reply{color:var(--text-3);grid-column:2;align-items:center;gap:6px;min-width:0;margin-bottom:2px;font-size:13px;display:flex}.msg-reply strong{color:var(--text-2);flex:none}.msg-reply span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msg-gutter{color:var(--text-3);grid-column:1;justify-content:flex-start;display:flex}.msg.grouped .msg-gutter time{opacity:0;font-size:10.5px;line-height:22px}.msg.grouped:hover .msg-gutter time{opacity:1}.msg-avatar{border-radius:50%;height:38px;margin-top:2px}.msg-body{grid-column:2;min-width:0}.msg-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.msg-author{color:var(--text-1);font-weight:650}.msg-author:hover{text-decoration:underline}.msg-head time,.msg.system time{color:var(--text-3);font-size:11.5px}.msg-head .tag{align-self:center;margin-left:0}.msg-content{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-1)}.msg-content pre{background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm);white-space:pre;margin:4px 0;padding:10px 12px;overflow-x:auto}.msg-content pre code{background:0 0;border:0;padding:0;font-size:13px}.msg-content blockquote{border-left:3px solid var(--bg-4);color:var(--text-2);margin:2px 0;padding-left:10px}.msg-edited{color:var(--text-3);margin-left:5px;font-size:11px}.msg.system{color:var(--text-2);margin-top:8px;font-size:14px}.msg.system .msg-gutter{color:var(--ok);justify-content:center;padding-right:14px}.md-mention{background:var(--accent-soft);color:var(--accent);cursor:pointer;border-radius:4px;padding:0 3px;font-weight:600}.md-mention.me{background:color-mix(in srgb, var(--warn) 22%, transparent);color:var(--warn)}.md-spoiler{background:var(--bg-4);color:#0000;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px}.md-spoiler.shown{background:var(--bg-3);color:inherit;cursor:text;-webkit-user-select:text;user-select:text}.msg-attachments{flex-direction:column;align-items:flex-start;gap:6px;margin-top:5px;display:flex}.att-image{background:var(--bg-3);cursor:zoom-in;border-radius:8px;max-width:min(420px,100%);display:block;overflow:hidden}.att-image img{object-fit:contain;width:100%;height:100%;max-height:320px;display:block}.att-video{background:#000;border-radius:8px;max-width:min(480px,100%);max-height:340px}.att-audio,.att-file{background:var(--bg-3);border:1px solid var(--line);max-width:min(420px,100%);color:var(--text-2);border-radius:8px;align-items:center;gap:12px;padding:10px 12px;display:flex}.att-audio{flex-direction:column;align-items:stretch;gap:6px}.att-audio audio{width:320px;max-width:100%;height:36px}.att-file:hover{border-color:var(--accent);text-decoration:none}.att-file-text{flex:1;min-width:0;display:grid}.att-name{color:var(--text-1);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.att-size{color:var(--text-3);font-size:12px}.msg-reactions{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.reaction{background:var(--bg-3);border:1px solid var(--line);border-radius:12px;align-items:center;gap:5px;padding:2px 8px;font-size:14px;display:inline-flex}.reaction:hover{border-color:var(--text-3)}.reaction.mine{background:var(--accent-soft);border-color:var(--accent)}.reaction-count{color:var(--text-2);font-size:12.5px;font-weight:650}.msg-tools{background:var(--bg-1);border:1px solid var(--line);z-index:2;border-radius:8px;padding:2px;display:none;position:absolute;top:-16px;right:18px;box-shadow:0 4px 14px #00000040}.msg:hover .msg-tools,.msg.hover .msg-tools,.msg:focus-within .msg-tools{display:flex}.tool{width:30px;height:30px;color:var(--text-2);border-radius:6px;place-items:center;display:grid}.tool:hover{background:var(--bg-4);color:var(--text-1)}.tool.emoji{font-size:16px}.tool.danger:hover{color:var(--danger)}.edit-box textarea{background:var(--bg-3);resize:none;margin-top:2px}.edit-hint{color:var(--text-3);font-size:12px}.typing{height:20px;color:var(--text-2);flex:none;align-items:center;gap:7px;padding:0 20px;font-size:12.5px;display:flex}.typing-dots{gap:3px;display:inline-flex}.typing-dots i{background:var(--text-2);border-radius:50%;width:5px;height:5px;animation:1.2s infinite both blink}.typing-dots i:nth-child(2){animation-delay:.2s}.typing-dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.composer-wrap{background:var(--bg-3);border:1px solid var(--line);border-radius:var(--radius);flex:none;margin:0 16px 16px;position:relative}.composer-wrap:focus-within{border-color:color-mix(in srgb, var(--accent) 60%, var(--line))}.composer{align-items:flex-end;gap:2px;padding:5px 6px;display:flex}.composer textarea{resize:none;border:0;flex:1;max-height:240px;padding:7px 6px;line-height:1.4;background:0 0!important}.composer.disabled{border-radius:var(--radius);background:var(--bg-3);color:var(--text-3);margin:0 16px 16px;padding:13px 16px;font-size:14px}.icon-btn.send:not(:disabled){color:var(--accent)}.counter{color:var(--text-3);align-self:center;padding:0 4px;font-size:12px}.counter.over{color:var(--danger);font-weight:700}.reply-bar{color:var(--text-2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:6px 8px 6px 14px;font-size:13px;display:flex}.pending-files{border-bottom:1px solid var(--line);gap:10px;padding:12px;display:flex;overflow-x:auto}.pending-file{background:var(--bg-1);border:1px solid var(--line);width:132px;color:var(--text-3);border-radius:8px;flex:none;justify-items:center;gap:6px;padding:8px;display:grid;position:relative}.pending-file img{object-fit:cover;border-radius:5px;width:100%;height:84px}.pending-file svg{margin:27px 0}.pending-name{width:100%;color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:12px;overflow:hidden}.pending-bar{background:var(--bg-4);border-radius:2px;width:100%;height:3px;overflow:hidden}.pending-bar i{background:var(--accent);height:100%;transition:width .15s;display:block}.pending-remove{background:var(--bg-0);position:absolute;top:4px;right:4px}.pending-remove svg{margin:0}.mention-list{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);z-index:5;padding:5px;position:absolute;bottom:calc(100% + 6px);left:0;right:0}.mention-list button{border-radius:5px;align-items:center;gap:9px;width:100%;padding:6px 8px;display:flex}.mention-list button.active{background:var(--bg-4)}.drop-hint{border:2px dashed var(--accent);background:color-mix(in srgb, var(--bg-2) 86%, transparent);color:var(--accent);pointer-events:none;z-index:6;border-radius:14px;place-items:center;font-size:18px;font-weight:700;display:none;position:absolute;inset:8px}.chat.dragging .drop-hint{display:grid}.emoji-picker{flex-direction:column;width:320px;height:330px;display:flex}.emoji-tabs{border-bottom:1px solid var(--line);gap:2px;padding:6px;display:flex}.emoji-tabs button{text-align:center;filter:grayscale(.6);opacity:.7;border-radius:6px;flex:1;height:32px;font-size:17px}.emoji-tabs button.active{background:var(--bg-4);filter:none;opacity:1}.emoji-grid{flex:1;grid-template-columns:repeat(8,1fr);align-content:start;gap:2px;padding:8px;display:grid;overflow-y:auto}.emoji-grid button{aspect-ratio:1;text-align:center;border-radius:6px;font-size:21px}.emoji-grid button:hover{background:var(--bg-4)}.voice-area{background:var(--bg-0);flex-direction:column;flex:1;min-width:0;display:flex}.voice-chat{border-left:1px solid var(--line);flex:none;width:min(380px,42%);display:flex}.stage{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px;display:flex;position:relative}.stage.compact{flex:none;height:clamp(190px,34dvh,380px)}.stage-banner{background:var(--bg-3);color:var(--text-2);border-radius:16px;flex:none;align-self:center;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:inline-flex}.stage-banner.action{background:var(--warn);color:#1d1400;font-weight:650}.stage-grid{grid-template-columns:repeat(var(--cols,3), minmax(0, 1fr));flex:1;grid-auto-rows:minmax(0,1fr);gap:10px;min-height:0;display:grid}.stage-grid.n0,.stage-grid.n1{--cols:1}.stage-grid.n2,.stage-grid.n3,.stage-grid.n4{--cols:2}.stage-focus{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.stage-focus>.tile{flex:1;min-height:0}.stage-strip{flex:none;justify-content:center;gap:8px;display:flex;overflow-x:auto}.tile{background:var(--bg-2);cursor:pointer;outline-offset:-2px;border-radius:12px;outline:2px solid #0000;place-items:center;min-width:0;min-height:0;transition:outline-color .1s;display:grid;position:relative;overflow:hidden}.tile.screen{background:#000}.tile.speaking{outline-color:var(--ok)}.tile.small{flex:none;width:164px;height:96px}.tile video{object-fit:contain;background:#000;width:100%;height:100%}.tile.user video{object-fit:cover}.tile.focused video{object-fit:contain}.tile video.mirror{transform:scaleX(-1)}.tile-center{color:var(--text-3);place-items:center;display:grid}.tile-label{color:#fff;background:#080a0db8;border-radius:12px;align-items:center;gap:6px;max-width:calc(100% - 16px);padding:3px 9px;font-size:12.5px;font-weight:600;display:flex;position:absolute;bottom:8px;left:8px}.tile-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tile-name:hover{text-decoration:underline}.tile-full{color:#fff;opacity:0;background:#080a0db8;position:absolute;top:8px;right:8px}.tile:hover .tile-full,.tile-full:focus-visible{opacity:1}.tile:fullscreen{background:#000;border-radius:0}.tile:fullscreen video{object-fit:contain}.call-controls{flex:none;justify-content:center;gap:10px;padding:10px 14px 16px;display:flex}.call-btn{background:var(--bg-4);width:48px;height:48px;color:var(--text-1);border-radius:50%;place-items:center;transition:transform .1s,background .12s;display:grid}.call-btn:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}.call-btn:disabled{opacity:.4}.call-btn.on{background:var(--accent);color:var(--on-accent)}.call-btn.off{background:var(--danger-soft);color:var(--danger)}.call-btn.hangup{background:var(--danger);color:var(--on-danger);border-radius:24px;width:60px}.lobby{text-align:center;color:var(--text-2);flex:1;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid}.lobby h2{color:var(--text-1);font-size:22px}.lobby-icon{background:var(--bg-3);width:76px;height:76px;color:var(--text-2);border-radius:50%;place-items:center;display:grid}.lobby-avatars{flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0 8px;display:flex}.dm-call-area{background:var(--bg-0);border-bottom:1px solid var(--line);flex:none}.dm-call-area .call-controls{padding-top:0}.call-banner{background:var(--accent-soft);color:var(--text-1);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;padding:8px 16px;font-size:14px;display:flex}.call-banner span{flex:1}.incoming-call{z-index:90;background:var(--bg-1);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:12px;padding:12px 14px;animation:.16s ease-out pop;display:flex;position:fixed;top:18px;right:18px}.incoming-text{margin-right:8px;display:grid}.incoming-text span{color:var(--text-3);font-size:13px}.incoming-call .call-btn{width:42px;height:42px}.members{background:var(--bg-1);border-left:1px solid var(--line);flex:none;width:244px;padding:14px 8px;overflow-y:auto}.members h4{letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:10px 8px 4px;font-size:11.5px;font-weight:700}.member{border-radius:var(--radius-sm);align-items:center;gap:10px;width:100%;padding:5px 8px;display:flex}.member:hover{background:var(--bg-3)}.member.dim{opacity:.45}.member.dim:hover{opacity:1}.member-text{min-width:0;display:grid}.member-name{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.member-sub{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.crown{color:var(--warn);vertical-align:-1px;margin-left:5px}.user-card{border-radius:14px;width:308px;overflow:hidden}.card-banner{opacity:.85;height:58px}.card-head{align-items:flex-end;gap:12px;margin-top:-30px;padding:0 16px;display:flex}.card-head .avatar{box-shadow:0 0 0 5px var(--bg-1)}.card-head .status-dot{border-color:var(--bg-1);border-width:4px;width:26%;height:26%}.card-names{min-width:0;padding-bottom:4px;display:grid}.card-names strong{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.card-body{max-height:52dvh;padding:12px 10px 10px;overflow-y:auto}.card-status{color:var(--text-2);padding:0 6px 6px;font-size:14px}.owner-line{color:var(--warn);align-items:center;gap:5px;margin-top:4px;font-size:12.5px;display:flex}.card-section{border-top:1px solid var(--line);padding:8px 6px}.card-section h5{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);align-items:center;gap:5px;margin-bottom:6px;font-size:11.5px;display:flex}.card-actions{border-top:1px solid var(--line);padding-top:6px}.role-chips{flex-wrap:wrap;gap:5px;display:flex}.role-chips.compact{flex:1;justify-content:flex-end}.role-chip{background:var(--bg-3);border:1px solid var(--line);color:var(--text-3);border-radius:6px;align-items:center;gap:6px;padding:2px 8px;font-size:12.5px;display:inline-flex}.role-chip.on{color:var(--text-1)}.role-chip:not(.on){border-style:dashed}.role-chip i{border-radius:50%;width:9px;height:9px}button.role-chip:hover:not(:disabled){border-color:var(--accent)}.settings{grid-template-columns:220px minmax(0,1fr);height:100%;display:grid}.settings-nav{background:var(--bg-1);border-right:1px solid var(--line);border-radius:14px 0 0 14px;flex-direction:column;gap:2px;padding:20px 10px;display:flex;overflow-y:auto}.settings-nav h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;padding:0 10px 8px;font-size:11.5px;overflow:hidden}.settings-nav button{border-radius:var(--radius-sm);color:var(--text-2);padding:8px 10px;font-weight:550}.settings-nav button:hover{background:var(--bg-3)}.settings-nav button.active{background:var(--bg-4);color:var(--text-1)}.settings-nav button.danger{color:var(--danger);margin-top:auto}.settings-main{padding:24px 28px 90px;position:relative;overflow-y:auto}.settings-main h2{margin-bottom:14px;padding-right:90px;font-size:20px}.settings-main h3{margin:22px 0 8px;font-size:15px}.settings-main>p{margin-bottom:12px}.settings-close{z-index:2;position:absolute;top:18px;right:20px}.image-picker{align-items:center;gap:16px;margin-bottom:18px;display:flex}.image-picker-preview{flex:none;place-items:center;width:84px;height:84px;display:grid}.image-picker-preview img,.image-picker-preview span{object-fit:cover;color:#fff;border-radius:50%;place-items:center;width:84px;height:84px;font-size:28px;font-weight:650;display:grid}.image-picker-preview .square{border-radius:26%}.image-picker-actions{gap:8px;display:flex}.danger-zone{border:1px solid color-mix(in srgb, var(--danger) 45%, var(--line));border-radius:var(--radius);margin-top:28px;padding:4px 16px 8px}.danger-zone h3{color:var(--danger);margin-top:12px}.roles{grid-template-columns:210px minmax(0,1fr);gap:20px;margin-top:14px;display:grid}.roles-list{flex-direction:column;gap:3px;display:flex}.roles-list>.btn,.roles-list>select{margin-bottom:8px}.roles-item{border-radius:var(--radius-sm);align-items:center;padding-right:4px;display:flex}.roles-item:hover{background:var(--bg-3)}.roles-item.active{background:var(--bg-4)}.roles-pick{flex:1;align-items:center;gap:9px;min-width:0;padding:8px 10px;display:flex}.roles-pick i{border-radius:50%;flex:none;width:11px;height:11px}.roles-pick span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roles-move{display:flex}.roles-edit h3{margin:0 0 6px}.swatches{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.swatch{border:2px solid #0000;border-radius:7px;width:28px;height:28px}.swatch.none{background:repeating-linear-gradient(45deg, var(--bg-4) 0 5px, var(--bg-3) 5px 10px)}.swatch.on{border-color:var(--text-1)}.perm-group h4{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin:18px 0 2px;font-size:11.5px}.perm{border-bottom:1px solid var(--line)}.save-bar{background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);opacity:0;pointer-events:none;align-items:center;gap:8px;margin-top:16px;padding:10px 10px 10px 16px;transition:transform .18s,opacity .18s;display:flex;position:sticky;bottom:-70px;transform:translateY(140%)}.save-bar.show{opacity:1;pointer-events:auto;transform:none}.save-bar span{flex:1;font-size:14px}.table{flex-direction:column;gap:2px;margin:10px 0;display:flex}.table-row{border-radius:var(--radius-sm);background:var(--bg-3);align-items:center;gap:12px;width:100%;padding:8px 10px;display:flex}button.table-row:hover{background:var(--bg-4)}.table-row.dim{opacity:.5}.table-main{flex:1;min-width:0;display:grid}.table-main .muted{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.tri{border:1px solid var(--line);border-radius:var(--radius-sm);flex:none;display:inline-flex;overflow:hidden}.tri button{width:32px;height:28px;color:var(--text-3);place-items:center;display:grid}.tri button+button{border-left:1px solid var(--line)}.tri .deny.on{background:var(--danger);color:var(--on-danger)}.tri .inherit.on{background:var(--bg-4);color:var(--text-1)}.tri .allow.on{background:var(--ok);color:#04210f}.mic-test{align-items:center;gap:12px;margin-bottom:16px;display:flex}.meter{background:var(--bg-0);border:1px solid var(--line);border-radius:5px;flex:1;height:10px;overflow:hidden}.meter i{background:linear-gradient(90deg, var(--ok), var(--warn));height:100%;transition:width 60ms linear;display:block}.pick-list{flex-direction:column;gap:2px;max-height:46dvh;display:flex;overflow-y:auto}.pick{border-radius:var(--radius-sm);align-items:center;gap:12px;padding:7px 8px;display:flex}.pick:hover{background:var(--bg-3)}.pick.on{background:var(--accent-soft)}.pick-text{flex:1;min-width:0;display:grid}.pick-text .muted{font-size:12.5px}.pick-check{border:1.5px solid var(--line);width:22px;height:22px;color:var(--on-accent);border-radius:6px;place-items:center;display:grid}.pick.on .pick-check{background:var(--accent);border-color:var(--accent)}@media (max-width:1000px){.members{z-index:20;box-shadow:var(--shadow);position:absolute;top:0;bottom:0;right:0}.main-body{position:relative}}@media (max-width:760px){.mobile-only{display:inline-grid}.app{grid-template-columns:minmax(0,1fr)}.app-nav,.main{grid-column:1}.app.pane-nav .main,.app.pane-main .app-nav{display:none}.settings{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.settings-nav{border-right:0;border-bottom:1px solid var(--line);border-radius:14px 14px 0 0;flex-direction:row;padding:10px;overflow-x:auto}.settings-nav h3{display:none}.settings-nav button{white-space:nowrap}.settings-nav button.danger{margin-top:0}.settings-main{padding:18px 16px 90px}.roles,.grid-2{grid-template-columns:1fr}.voice-chat{z-index:15;background:var(--bg-2);width:auto;position:absolute;inset:0}.msg{padding-left:10px;padding-right:10px}.composer-wrap,.composer.disabled{margin:0 8px 8px}.stage-grid{--cols:1!important}.stage-grid.n4,.stage-grid.n5,.stage-grid.n6,.stage-grid.n7,.stage-grid.n8,.stage-grid.n9{--cols:2!important}.overlay{padding:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}@media (max-width:760px){input:not([type=range],[type=color],[type=file]),select,textarea{font-size:16px}}.topbar{background:var(--bg-1);border-bottom:1px solid var(--line);grid-area:2/1/auto/-1;align-items:center;gap:10px;min-width:0;padding:8px 16px;display:flex}.space{align-items:center;gap:2px;min-width:0;display:flex}.space-switch{border:1px solid var(--line);background:var(--bg-3);border-radius:12px;align-items:center;gap:10px;min-width:0;min-height:44px;padding:0 12px 0 6px;display:flex}.space-switch:hover{border-color:var(--text-3)}.space-icon{background:var(--accent);color:#fff;width:32px;height:32px;font-family:var(--display);border-radius:9px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid;overflow:hidden}.space-icon img{object-fit:cover;width:100%;height:100%}.space-name{font-family:var(--display);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:16px;font-weight:600;overflow:hidden}.quick-btn{border:1px solid var(--line);background:var(--bg-2);max-width:480px;min-height:44px;color:var(--text-3);border-radius:12px;flex:240px;align-items:center;gap:10px;min-width:0;padding:0 14px;display:flex}.quick-btn:hover{border-color:var(--text-3);color:var(--text-1)}.quick-btn-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}kbd{font:12px var(--font);color:var(--text-3);border:1px solid var(--line);white-space:nowrap;border-radius:6px;padding:2px 7px}.online-btn{min-height:44px;color:var(--text-3);border-radius:12px;align-items:center;gap:10px;padding:0 10px;font-size:13px;display:flex}.online-btn:hover,.online-btn.on{background:var(--bg-3);color:var(--text-1)}.online-stack{display:flex}.online-stack .avatar{box-shadow:0 0 0 2px var(--bg-1)}.online-stack .avatar+.avatar{margin-left:-8px}.user-chip{border-radius:12px;align-items:center;gap:9px;min-height:44px;padding:0 10px 0 6px;font-weight:600;display:flex}.user-chip:hover{background:var(--bg-3)}.rooms{background:var(--bg-1);border-right:1px solid var(--line);flex-direction:column;width:360px;min-height:0;display:flex}.rooms-scroll{flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px 16px 20px;display:flex;overflow-y:auto}.rooms-head{justify-content:space-between;align-items:center;min-height:34px;display:flex}.rooms-head.dms{margin-top:14px}.rooms-head h2{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:12.5px;font-weight:600}.rooms-empty{color:var(--text-3);justify-items:start;gap:10px;font-size:14px;display:grid}.room{border:1px solid var(--line);border-radius:16px;align-items:center;gap:12px;padding:12px 12px 12px 14px;display:flex}.room.busy{background:var(--bg-3)}.room.active{border:1.5px solid var(--accent);background:var(--bg-3);flex-direction:column;align-items:stretch;gap:0;padding:14px}.room-main{border-radius:8px;flex:1;gap:5px;min-width:0;display:grid}.room-title{font-family:var(--display);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;min-width:0;font-size:17px;font-weight:600;display:flex;overflow:hidden}button.room-title:hover,.room-main:hover .room-title{text-decoration:underline}.room-summary{align-items:center;gap:8px;min-width:0;display:flex}.room-stack{flex:none;display:flex}.room-stack .avatar{box-shadow:0 0 0 2px var(--bg-3)}.room-stack .avatar+.avatar{margin-left:-7px}.room-names{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.room .btn{border:1px solid var(--line);background:0 0;border-radius:12px;min-height:40px}.room .btn.primary{background:var(--accent);border-color:var(--accent)}.room-head{align-items:center;gap:8px;display:flex}.room-head .room-title{flex:1;font-size:18px}.room-status{color:var(--accent);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.room-status.pending,.room-status.warn{color:var(--warn)}.room-status.bad{color:var(--danger)}.room-people{flex-direction:column;gap:2px;margin:10px 0 12px;display:flex}.room-person{border-radius:10px;align-items:center;gap:10px;min-height:38px;padding:0 6px;display:flex}.room-person:hover{background:var(--bg-4)}.room-person .avatar.speaking{box-shadow:0 0 0 2px var(--bg-3), 0 0 0 4px var(--ok)}.room-person-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.room-person-icons{color:var(--text-3);align-items:center;gap:6px;display:flex}.room-controls{gap:8px;display:flex}.room-btn{background:var(--bg-4);height:44px;color:var(--text-1);border-radius:12px;flex:1;place-items:center;transition:filter .1s;display:grid}.room-btn:hover:not(:disabled){filter:brightness(1.2)}.room-btn:disabled{opacity:.4}.room-btn.on{background:var(--accent);color:var(--on-accent)}.room-btn.off{background:var(--danger-soft);color:var(--danger)}.room-btn.leave{background:var(--danger);color:var(--on-danger)}.live-tag{background:var(--danger);color:var(--on-danger);font:700 10.5px var(--font);letter-spacing:.04em;border-radius:6px;flex:none;padding:2px 6px}.dm{color:var(--text-2);border-radius:12px;align-items:center;padding-right:4px;display:flex}.dm:hover{background:var(--bg-3)}.dm.active{background:var(--bg-4);color:var(--text-1)}.dm.unread .dm-title{color:var(--text-1);font-weight:650}.dm-main{flex:1;align-items:center;gap:10px;min-width:0;min-height:46px;padding:0 8px;display:flex}.dm-text{flex:1;min-width:0;display:grid}.dm-title,.dm-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dm-sub{color:var(--text-3);font-size:12px}.dm-call{color:var(--ok);flex:none}.dm-close{opacity:0}.dm:hover .dm-close,.dm-close:focus-visible{opacity:1}.tabs-bar{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:4px;min-width:0;padding:0 10px 0 12px;display:flex}.tabs-scroll{scrollbar-width:none;flex:1;gap:2px;min-width:0;display:flex;overflow-x:auto}.tab{height:48px;color:var(--text-3);white-space:nowrap;border-bottom:2px solid #0000;flex:none;align-items:center;gap:6px;padding:0 12px;display:flex}.tab:hover{color:var(--text-1)}.tab.unread{color:var(--text-1);font-weight:600}.tab.active{color:var(--text-1);border-bottom-color:var(--accent);font-weight:600}.tab.call{color:var(--ok)}.tab.call.active{border-bottom-color:var(--ok)}.tab-name{text-overflow:ellipsis;max-width:180px;overflow:hidden}.tab-dot{background:var(--warn);border-radius:50%;width:8px;height:8px}.topic-bar{color:var(--text-3);border-bottom:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;flex:none;padding:7px 20px;font-size:13px;overflow:hidden}.quick-overlay{z-index:85;place-items:start center;padding-top:min(14dvh,120px)}.quick{background:var(--bg-3);border:1px solid var(--bg-4);width:min(620px,100%);max-height:min(70dvh,560px);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;animation:.12s ease-out pop;display:flex;overflow:hidden}.quick-input{border-bottom:1px solid var(--line);color:var(--text-3);align-items:center;gap:12px;padding:12px 18px;display:flex}.quick-input input{flex:1;min-width:0;padding:6px 0;font-size:17px;background:0 0!important;border:0!important}.quick-list{padding:8px;overflow-y:auto}.quick-list h3{font:600 12px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:10px 10px 4px}.quick-item{border-radius:12px;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 10px;display:flex}.quick-item.active{background:var(--accent);color:var(--on-accent)}.quick-icon{flex:none;place-items:center;width:24px;display:grid}.quick-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.quick-hint{opacity:.75;white-space:nowrap;text-overflow:ellipsis;max-width:50%;font-size:13px;overflow:hidden}.quick-empty{text-align:center;color:var(--text-3);padding:20px}@media (max-width:760px){.rooms{border-right:0;flex:1;width:auto}.quick-btn-text,.quick-btn kbd,.online-count,.user-chip-name,.space-name{display:none}.quick-btn{flex:0 0 44px;justify-content:center;padding:0}.topbar{gap:6px;padding:8px 10px}}.admin{background:var(--bg-2);grid-template-columns:240px minmax(0,1fr);height:100dvh;display:grid}.admin-nav{background:var(--bg-1);border-right:1px solid var(--line);flex-direction:column;gap:2px;min-height:0;padding:18px 12px;display:flex;overflow-y:auto}.admin-brand{align-items:center;gap:12px;padding:0 8px 18px;display:flex}.admin-brand div{display:grid}.admin-brand strong{font-family:var(--display);font-size:16px}.admin-brand .muted{align-items:center;gap:4px;display:flex}.admin-nav>button{min-height:44px;color:var(--text-2);border-radius:12px;align-items:center;gap:10px;padding:0 12px;font-weight:550;display:flex}.admin-nav>button:hover{background:var(--bg-3);color:var(--text-1)}.admin-nav>button.active{background:var(--bg-4);color:var(--text-1)}.admin-main{min-width:0;padding:28px 32px 60px;overflow-y:auto}.admin-main h1{font-size:24px}.admin-main h2{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:26px 0 10px;font-size:12.5px;font-weight:600}.admin-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.stats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.stat{border:1px solid var(--line);background:var(--bg-1);border-radius:16px;gap:2px;padding:14px 16px;display:grid}.stat-label{color:var(--text-3);font-size:13px}.stat-value{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.15}.stat-hint{color:var(--text-3);font-size:12.5px}.charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin:26px 0 14px;display:grid}.chart{border:1px solid var(--line);background:var(--bg-1);border-radius:16px;min-width:0;padding:16px}.chart-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.chart-head h3{font-size:16px}.chart-plot{border-bottom:1px solid var(--line);border-top:1px dashed var(--line);height:150px;position:relative}.chart-max{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11.5px;position:absolute;top:3px;left:0}.chart-bars{align-items:flex-end;display:flex;position:absolute;inset:0}.chart-col{flex:1;justify-content:center;align-items:flex-end;height:100%;padding:0 1px;display:flex}.chart-col i{background:var(--accent);opacity:.85;border-radius:4px 4px 0 0;width:100%;max-width:14px;display:block}.chart-col.on{background:var(--bg-3)}.chart-col.on i{opacity:1}.chart-tip{background:var(--bg-0);border:1px solid var(--line);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow);z-index:3;border-radius:10px;padding:6px 10px;font-size:13px;position:absolute;bottom:calc(100% + 6px);transform:translate(-50%)}.chart-tip span{color:var(--text-3);font-size:12px;display:block}.chart-axis{color:var(--text-3);justify-content:space-between;padding-top:6px;font-size:11.5px;display:flex}.chart-table{max-height:190px;overflow-y:auto}.chart-table table,.admin-table{border-collapse:collapse;width:100%;font-size:14px}.chart-table th,.chart-table td,.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px}.chart-table th,.admin-table th{letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);background:var(--bg-1);font-size:12px;font-weight:600;position:sticky;top:0}.admin-table .num,.chart-table td:last-child,.chart-table th:last-child{text-align:right;font-variant-numeric:tabular-nums}.admin-tools{flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0;display:flex}.admin-tools .search{flex:260px;max-width:420px;margin:0}.admin-tools .segmented{margin:0}.admin-tools .segmented button{flex:none;padding:7px 14px}.admin-split{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.admin-split.open{grid-template-columns:minmax(0,1fr) 380px}.admin-table-wrap{border:1px solid var(--line);background:var(--bg-1);border-radius:16px;overflow-x:auto}.admin-table-wrap>.btn,.admin-table-wrap>.spinner{width:calc(100% - 24px);margin:12px}.admin-table-wrap>.spinner{width:18px}.admin-table tbody tr:hover{background:var(--bg-3)}.admin-table tbody tr.selected{background:var(--accent-soft)}.admin-table tbody tr.dim td:not(:first-child){color:var(--text-3)}.admin-table tr:last-child td{border-bottom:0}.cell-user{text-align:left;align-items:center;gap:10px;display:flex}.server-icon{color:#fff;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid;overflow:hidden}.server-icon img{object-fit:cover;width:100%;height:100%}.danger-tag{background:var(--danger-soft);color:var(--danger)}.admin-side{border:1px solid var(--line);background:var(--bg-1);border-radius:16px;max-height:calc(100dvh - 60px);position:sticky;top:0;overflow-y:auto}.admin-side-close{position:absolute;top:8px;right:8px}.admin-detail{padding:18px}.admin-detail h3{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:20px 0 8px;font-size:12.5px;font-weight:600}.detail-head{align-items:center;gap:14px;padding-right:70px;display:flex}.detail-head div{min-width:0;display:grid}.detail-head strong{font-family:var(--display);font-size:18px}.detail-head .tag{margin:4px 6px 0 0}.admin-detail dl{margin:0}.kv{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:6px 0;font-size:14px;display:flex}.kv dt{color:var(--text-3);flex:none}.kv dd{text-align:right;overflow-wrap:anywhere;min-width:0;margin:0}.plain{gap:6px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.detail-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.audit{border:1px solid var(--line);background:var(--bg-1);border-radius:16px;margin:14px 0 0;padding:0;list-style:none}.audit li{border-bottom:1px solid var(--line);gap:16px;padding:11px 16px;font-size:14px;display:flex}.audit li:last-child{border-bottom:0}.audit time{color:var(--text-3);font-variant-numeric:tabular-nums;flex:0 0 150px}@media (max-width:1100px){.admin-split.open{grid-template-columns:minmax(0,1fr)}.admin-side{z-index:40;width:min(420px,100%);max-height:none;box-shadow:var(--shadow);border-radius:0;position:fixed;inset:0 0 0 auto}}@media (max-width:760px){.admin{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.admin-nav{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;padding:8px;overflow-x:auto}.admin-brand{padding:0 8px 0 0}.admin-brand div,.admin-nav>button span{display:none}.admin-nav>button{flex:none}.admin-main{padding:18px 14px 40px}.audit li{flex-direction:column;gap:2px}.audit time{flex:none}}.app-banners{grid-area:1/1/auto/-1;display:grid}.announce{background:var(--accent-soft);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:7px 14px;font-size:14px;display:flex}.announce span{flex:1;min-width:0}.announce.warning{background:color-mix(in srgb, var(--warn) 22%, transparent)}.announce>svg{color:var(--accent);flex:none}.announce.warning>svg{color:var(--warn)}.recovery{font-family:var(--mono);columns:2;background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm);-webkit-user-select:all;user-select:all;margin:12px 0;padding:12px 14px;font-size:14px}.pick.static{cursor:default}.pick.static:hover{background:0 0}.check{align-items:center;gap:8px;margin:4px 0 14px;font-size:14px;display:flex}.check input{width:17px;height:17px;accent-color:var(--danger)}.stat.alert{border-color:var(--warn)}.stat.alert .stat-value{color:var(--warn)}.warn-tag{background:color-mix(in srgb, var(--warn) 20%, transparent);color:var(--warn)}.notice-btn{text-align:left;align-items:center;gap:8px;width:100%;font-weight:600;display:flex}.notice-btn:hover{border-color:var(--warn)}.notice .btn{margin:8px 0 0;display:flex}.reports{gap:12px;display:grid}.report{border:1px solid var(--line);background:var(--bg-1);border-radius:16px;gap:8px;padding:14px 16px;display:grid}.report.done{opacity:.7}.report header{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.report-reason{font-size:15px}.report blockquote{border-left:3px solid var(--bg-4);background:var(--bg-2);color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:0 8px 8px 0;margin:0;padding:8px 12px}.report footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.panel{border:1px solid var(--line);background:var(--bg-1);border-radius:16px;max-width:860px;margin-top:16px;padding:18px}.panel h3{margin-bottom:12px;font-size:16px}.announce-form,.note-form{gap:8px;margin:10px 0 14px;display:flex}.announce-form input,.note-form input{flex:1;min-width:0}.announce-form select{width:auto}.announce-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:8px 0;display:flex}.announce-row.dim{opacity:.55}.notes li{background:var(--bg-2);border-radius:10px;gap:2px;padding:8px 10px;display:grid}.row-actions{justify-content:flex-end;display:flex}.admin-nav>button .badge{margin-left:auto}@media (max-width:760px){.announce-form{flex-wrap:wrap}.recovery{columns:1}}
