@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.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{--ground-abyss:#06080c;--ground-deep:#080b10;--ground:#0b0f15;--surface:#10151d;--surface-raised:#161d26;--surface-hover:#1b232e;--surface-active:#212b38;--line-faint:#ffffff0b;--line:#ffffff13;--line-strong:#ffffff1f;--ink:#f1f4f8;--ink-muted:#9fabba;--ink-faint:#6b7686;--ink-ghost:#4a5462;--gill-100:#ffe3ec;--gill-200:#ffc2d8;--gill-300:#ff9dbe;--gill:#ff7ba9;--gill-600:#f2568c;--gill-700:#cf3a71;--gill-glow:#ff7ba947;--blush:#ffd8e3;--fleck:#f3c97e;--wild:#9e86f0;--tone-encrypted:#5ee0c8;--tone-visible:#f0b661;--tone-online:#52d6a0;--tone-idle:#f0b661;--tone-dnd:#ff6b6b;--tone-offline:#5a6472;--tone-danger:#ff6b6b;--tone-danger-ink:#ffd9d9;--r-xs:6px;--r-sm:9px;--r-md:13px;--r-lg:18px;--r-xl:24px;--r-2xl:30px;--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--font-display:"Bricolage Grotesque Variable", ui-sans-serif, system-ui, sans-serif;--font-ui:"Geist Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", monospace;--t-micro:10px;--t-tiny:11px;--t-small:12px;--t-body:14px;--t-lead:15px;--t-h3:18px;--t-h2:24px;--t-h1:34px;--lift-1:0 1px 2px #0006, 0 0 0 1px var(--line-faint);--lift-2:0 4px 16px -4px #0000008c, 0 0 0 1px var(--line);--lift-3:0 18px 48px -12px #000000b3, 0 0 0 1px var(--line);--inner-hi:inset 0 1px 0 #ffffff0f;--ease-swim:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(.33, 1, .68, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--d-instant:90ms;--d-fast:.15s;--d-base:.22s;--d-slow:.38s;--d-drift:.62s}:root[data-theme=light]{--ground-abyss:#eceef2;--ground-deep:#f2f4f7;--ground:#f7f8fa;--surface:#fff;--surface-raised:#fff;--surface-hover:#f0f2f6;--surface-active:#e6e9ef;--line-faint:#090e160d;--line:#090e1617;--line-strong:#090e1629;--ink:#131922;--ink-muted:#545e6d;--ink-faint:#78828f;--ink-ghost:#9aa3ae;--gill:#e14c86;--gill-600:#c93a72;--gill-700:#a82a5c;--gill-glow:#e14c862e;--tone-encrypted:#0e9c85;--tone-visible:#b5761c;--tone-online:#17a06a;--tone-offline:#8b94a1;--lift-1:0 1px 2px #090e160f, 0 0 0 1px var(--line-faint);--lift-2:0 4px 16px -4px #090e161a, 0 0 0 1px var(--line);--lift-3:0 18px 48px -12px #090e1629, 0 0 0 1px var(--line);--inner-hi:inset 0 1px 0 #ffffffe6}@media (prefers-reduced-motion:reduce){:root{--d-instant:1ms;--d-fast:1ms;--d-base:1ms;--d-slow:1ms;--d-drift:1ms}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ground-deep);color:var(--ink);font-family:var(--font-ui);font-size:var(--t-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.55;overflow:hidden}body:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(46rem 32rem at 12% -8%,#ff7ba917,#0000 62%),radial-gradient(38rem 30rem at 96% 8%,#9e86f012,#0000 60%),radial-gradient(50rem 40rem at 60% 108%,#5ee0c80b,#0000 62%);position:fixed;inset:-20%}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}:focus-visible{outline:2px solid var(--gill);outline-offset:2px;border-radius:var(--r-xs)}:focus:not(:focus-visible){outline:none}::selection{background:var(--gill-glow);color:var(--ink)}.scroll{scrollbar-width:thin;scrollbar-color:transparent transparent;transition:scrollbar-color var(--d-base) var(--ease-swim);overflow-y:auto}.scroll:hover,.scroll:focus-within{scrollbar-color:var(--line-strong) transparent}.scroll::-webkit-scrollbar{width:10px}.scroll::-webkit-scrollbar-thumb{border-radius:var(--r-pill);transition:background-color var(--d-base) var(--ease-swim);background:padding-box content-box;border:3px solid #0000}.scroll:hover::-webkit-scrollbar-thumb{background-color:var(--line-strong);background-clip:content-box}:root{--rail-w:68px;--sidebar-w:248px;--members-w:232px}.shell{z-index:1;grid-template-columns:var(--rail-w) var(--sidebar-w) minmax(0, 1fr) var(--members-w);gap:var(--s-2);height:100%;padding:var(--s-2);display:grid;position:relative}.panel{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--lift-2), var(--inner-hi);flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.rail{align-items:center;gap:var(--s-2);padding:var(--s-3) 0;background:var(--ground);border-radius:var(--r-xl);box-shadow:var(--lift-1);flex-direction:column;display:flex}.rail-item{border-radius:var(--r-lg);background:var(--surface-raised);width:46px;height:46px;color:var(--ink-muted);font-family:var(--font-display);font-weight:600;font-size:var(--t-lead);transition:border-radius var(--d-base) var(--ease-swim), background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-swim);place-items:center;display:grid;position:relative}.rail-item:hover{border-radius:var(--r-md);background:var(--surface-hover);color:var(--ink)}.rail-item:active{transform:scale(.94)}.rail-item[data-active=true]{background:linear-gradient(150deg, var(--gill-600), var(--gill-700));color:#fff;border-radius:var(--r-md)}.rail-pip{border-radius:var(--r-pill);background:var(--ink);width:4px;transition:height var(--d-base) var(--ease-swim);position:absolute;top:50%;left:-10px;transform:translateY(-50%)}.rail-divider{background:var(--line);width:26px;height:1px;margin:var(--s-1) 0;flex:none}.sidebar-head{justify-content:space-between;align-items:center;gap:var(--s-2);padding:var(--s-4) var(--s-4) var(--s-3);border-bottom:1px solid var(--line-faint);flex:none;display:flex}.sidebar-title{font-family:var(--font-display);font-size:var(--t-lead);letter-spacing:-.015em;margin:0;font-weight:600}.sidebar-sub{font-size:var(--t-tiny);color:var(--ink-faint);align-items:center;gap:5px;margin-top:1px;display:flex}.group-label{align-items:center;gap:var(--s-1);padding:var(--s-4) var(--s-3) var(--s-1);font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-ghost);font-weight:600;display:flex}.channel{align-items:center;gap:var(--s-2);width:calc(100% - var(--s-4));margin:1px var(--s-2);padding:7px var(--s-2);border-radius:var(--r-sm);color:var(--ink-faint);font-size:var(--t-body);text-align:left;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);display:flex}.channel:hover{background:var(--surface-hover);color:var(--ink-muted)}.channel[data-active=true]{background:var(--surface-active);color:var(--ink);font-weight:500}.channel-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.channel-badge{border-radius:var(--r-pill);background:var(--gill-600);color:#fff;min-width:18px;height:18px;font-size:var(--t-micro);font-variant-numeric:tabular-nums;flex:none;place-items:center;padding:0 5px;font-weight:600;display:grid}.voice-member{align-items:center;gap:var(--s-2);margin:1px var(--s-2) 1px var(--s-6);padding:4px var(--s-2);border-radius:var(--r-sm);font-size:var(--t-small);color:var(--ink-faint);display:flex}.user-panel{align-items:center;gap:var(--s-2);padding:var(--s-2);margin:var(--s-2);border-radius:var(--r-md);background:var(--ground);box-shadow:var(--inner-hi);flex:none;display:flex}.icon-btn{border-radius:var(--r-sm);width:30px;height:30px;color:var(--ink-faint);transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-swim);place-items:center;display:grid}.icon-btn:hover{background:var(--surface-hover);color:var(--ink)}.icon-btn:active{transform:scale(.92)}.icon-btn[data-danger=true]:hover{color:var(--tone-danger);background:#ff6b6b24}.avatar{border-radius:var(--r-pill);background:linear-gradient(150deg, var(--gill-300), var(--wild));color:#12161d;font-weight:600;font-family:var(--font-display);flex:none;place-items:center;display:grid;position:relative;overflow:visible}.avatar-status{border-radius:var(--r-pill);border:2.5px solid var(--surface);width:12px;height:12px;position:absolute;bottom:-1px;right:-1px}.chan-head{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line-faint);flex:none;display:flex}.chan-title{align-items:baseline;gap:var(--s-2);min-width:0;display:flex}.chan-title h2{font-family:var(--font-display);font-size:var(--t-h3);letter-spacing:-.02em;white-space:nowrap;margin:0;font-weight:600}.chan-topic{font-size:var(--t-small);color:var(--ink-faint);padding-left:var(--s-3);border-left:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.seal{border-radius:var(--r-pill);font-size:var(--t-tiny);letter-spacing:.01em;white-space:nowrap;align-items:center;gap:6px;padding:4px 10px 4px 8px;font-weight:500;display:inline-flex}.seal[data-tone=encrypted]{color:var(--tone-encrypted);background:#5ee0c81a;box-shadow:inset 0 0 0 1px #5ee0c833}.seal[data-tone=visible]{color:var(--tone-visible);background:#f0b66117;box-shadow:inset 0 0 0 1px #f0b6612e}.messages{min-height:0;padding:var(--s-4) var(--s-4) var(--s-2);flex-direction:column;flex:1;gap:2px;display:flex}.msg{gap:var(--s-3);padding:3px var(--s-2);border-radius:var(--r-sm);transition:background-color var(--d-fast) var(--ease-out);grid-template-columns:40px minmax(0,1fr);display:grid}.msg:hover{background:#ffffff05}.msg[data-grouped=true]{padding-top:1px;padding-bottom:1px}.msg-head{align-items:baseline;gap:var(--s-2);margin-bottom:1px;display:flex}.msg-author{font-weight:600;font-size:var(--t-body);letter-spacing:-.005em}.msg-time{font-size:var(--t-micro);color:var(--ink-ghost);font-variant-numeric:tabular-nums}.msg-body{font-size:var(--t-body);color:var(--ink-muted);overflow-wrap:anywhere}.msg-body code{font-family:var(--font-mono);border-radius:var(--r-xs);background:var(--ground);color:var(--gill-200);box-shadow:inset 0 0 0 1px var(--line-faint);padding:1px 5px;font-size:.9em}.day-rule{align-items:center;gap:var(--s-3);margin:var(--s-4) var(--s-2) var(--s-2);font-size:var(--t-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-ghost);font-weight:600;display:flex}.day-rule:before,.day-rule:after{content:"";background:var(--line-faint);flex:1;height:1px}.composer-wrap{padding:0 var(--s-4) var(--s-4);flex:none}.composer{border-radius:calc(var(--r-lg) + 5px);background:var(--ground);box-shadow:inset 0 0 0 1px var(--line-faint);transition:box-shadow var(--d-base) var(--ease-swim);padding:5px}.composer:focus-within{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 3px var(--gill-glow)}.composer-core{align-items:flex-end;gap:var(--s-2);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);border-radius:var(--r-lg);background:var(--surface-raised);display:flex}.composer textarea{resize:none;min-height:24px;max-height:180px;font-size:var(--t-body);background:0 0;border:none;outline:none;flex:1;padding:4px 0;line-height:1.5}.composer textarea::placeholder{color:var(--ink-ghost)}.composer-foot{justify-content:space-between;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-2) 0;font-size:var(--t-tiny);color:var(--ink-ghost);display:flex}.send{align-items:center;gap:var(--s-2);border-radius:var(--r-pill);background:var(--gill-600);color:#fff;font-size:var(--t-small);transition:transform var(--d-fast) var(--ease-swim), background-color var(--d-fast) var(--ease-out), opacity var(--d-fast) var(--ease-out);padding:5px 5px 5px 14px;font-weight:500;display:inline-flex}.send:hover:not(:disabled){background:var(--gill)}.send:active:not(:disabled){transform:scale(.975)}.send:disabled{opacity:.4;cursor:not-allowed}.send-well{border-radius:var(--r-pill);width:26px;height:26px;transition:transform var(--d-base) var(--ease-swim);background:#ffffff2e;place-items:center;display:grid}.send:hover:not(:disabled) .send-well{transform:translate(2px)scale(1.06)}.member{align-items:center;gap:var(--s-2);margin:1px var(--s-2);padding:5px var(--s-2);border-radius:var(--r-sm);transition:background-color var(--d-fast) var(--ease-out);display:flex}.member:hover{background:var(--surface-hover)}.member-name{font-size:var(--t-small);color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member[data-online=false]{opacity:.46}.member[data-online=false]:hover{opacity:.78}.member-avatar{flex:none}.presence-fronds{flex:none;overflow:visible}.member .presence-fronds{margin-left:auto}.typing-line{color:var(--gill-200);animation:typing-in var(--d-base) var(--ease-swim) both;align-items:center;gap:6px;display:inline-flex}@keyframes typing-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.voice-panel{margin:0 var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--ground);box-shadow:var(--inner-hi);border:1px solid var(--line-faint);gap:var(--s-2);animation:voice-in var(--d-base) var(--ease-swim) both;flex-direction:column;flex:none;display:flex}.voice-panel[data-status=live]{border-color:#ff7ba938}.voice-panel[data-status=failed]{border-color:#ff6b6b59}@keyframes voice-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.voice-participants{flex-direction:column;gap:3px;display:flex}.voice-participant{align-items:center;gap:var(--s-2);font-size:var(--t-small);color:var(--ink-muted);transition:color var(--d-fast) var(--ease-out);display:flex}.voice-participant[data-speaking=true]{color:var(--ink)}.voice-participant-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.voice-actions{gap:var(--s-2);display:flex}.voice-btn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);height:30px;color:var(--ink-muted);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-swim);flex:1;justify-content:center;align-items:center;display:inline-flex}.voice-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.voice-btn:active:not(:disabled){transform:scale(.96)}.voice-btn:disabled{opacity:.4;cursor:not-allowed}.voice-btn[aria-pressed=true]{color:var(--tone-danger);border-color:#ff6b6b4d}.voice-leave:hover{color:var(--tone-danger);background:#ff6b6b24;border-color:#ff6b6b4d}.voice-channel-group{flex-direction:column;display:flex}.voice-roster{margin:1px var(--s-2) 3px calc(var(--s-2) + 22px);flex-direction:column;gap:1px;display:flex}.voice-roster-row{padding:2px var(--s-2);border-radius:var(--r-xs);font-size:var(--t-micro);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;display:flex;overflow:hidden}.voice-count{font-size:var(--t-micro);color:var(--ink-ghost);font-variant-numeric:tabular-nums;margin-left:auto}.dialog.settings-dialog{gap:var(--s-4);text-align:left;flex-direction:column;display:flex}.dialog.settings-dialog h2{text-align:center}.setting-block{gap:var(--s-3);flex-direction:column;display:flex}.setting-head h3{font-size:var(--t-body);margin:0 0 4px}.setting-head p{font-size:var(--t-small);color:var(--ink-muted);margin:0;line-height:1.5}.setting-choices{gap:var(--s-2);flex-direction:column;display:flex}.setting-choice{align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink-muted);text-align:left;cursor:pointer;transition:border-color var(--d-fast) var(--ease-out), background-color var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-swim);display:flex}.setting-choice:hover:not(:disabled){background:var(--surface-hover)}.setting-choice:active:not(:disabled){transform:scale(.99)}.setting-choice:disabled{opacity:.5;cursor:progress}.setting-choice[data-selected=true]{border-color:var(--gill-600);background:var(--surface-raised);color:var(--ink)}.setting-choice-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.setting-choice-body strong{font-size:var(--t-small);font-weight:600}.setting-choice-body span{font-size:var(--t-micro);color:var(--ink-faint);line-height:1.45}.setting-note{padding:var(--s-3);border-radius:var(--r-sm);background:var(--ground);border:1px solid var(--line-faint);font-size:var(--t-micro);color:var(--ink-faint);margin:0;line-height:1.55}.setting-note strong{color:var(--ink-muted)}.setting-error{font-size:var(--t-micro);color:var(--tone-danger);margin:0}.dialog.app-dialog{gap:var(--s-3);text-align:left;flex-direction:column;width:min(440px,100%);display:flex}.dialog.app-dialog-wide{width:min(600px,100%)}.dialog-title{font-size:var(--t-body);text-align:left;margin:0;padding-right:28px}.dialog-close{top:var(--s-3);right:var(--s-3);position:absolute}.dialog-form{gap:var(--s-3);flex-direction:column;display:flex}.dialog-label{font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);flex-direction:column;gap:6px;display:flex}.dialog-input-wrap{padding-left:var(--s-3);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--ground);align-items:center;gap:6px;display:flex}.dialog-input-wrap:focus-within{border-color:var(--gill-600)}.dialog-input-prefix{color:var(--ink-ghost);font-size:var(--t-small)}.dialog-input{width:100%;padding:10px var(--s-3);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--ground);color:var(--ink);font:inherit;font-size:var(--t-small);text-transform:none;letter-spacing:normal}.dialog-input-wrap .dialog-input{background:0 0;border:0;padding-left:0}.dialog-input:focus{border-color:var(--gill-600);outline:none}.dialog-hint{min-height:16px;font-size:var(--t-micro);color:var(--ink-faint);line-height:1.4}.dialog-hint code{font-family:var(--font-mono);color:var(--ink-muted)}.dialog-error{color:var(--tone-danger)}.dialog-body{font-size:var(--t-small);color:var(--ink-muted);line-height:1.55}.dialog-actions{justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-1);display:flex}.btn-primary,.btn-quiet,.btn-danger{font:inherit;font-size:var(--t-small);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-swim);border:1px solid #0000;border-radius:999px;padding:8px 16px;font-weight:600}.btn-primary:active:not(:disabled),.btn-quiet:active:not(:disabled),.btn-danger:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--gill-600);color:#2a0713}.btn-primary:hover:not(:disabled){background:var(--gill)}.btn-quiet{border-color:var(--line);color:var(--ink-muted);background:0 0}.btn-quiet:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.btn-danger{color:var(--tone-danger-ink);background:#ff6b6b29;border-color:#ff6b6b59}.btn-danger:hover:not(:disabled){background:#ff6b6b42}.btn-primary:disabled,.btn-quiet:disabled,.btn-danger:disabled{opacity:.45;cursor:not-allowed}.kind-choices{gap:var(--s-2);flex-direction:column;display:flex}.kind-choice{align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink-muted);text-align:left;cursor:pointer;transition:border-color var(--d-fast) var(--ease-out), background-color var(--d-fast) var(--ease-out);display:flex}.kind-choice:hover{background:var(--surface-hover)}.kind-choice[data-selected=true]{border-color:var(--gill-600);background:var(--surface-raised);color:var(--ink)}.kind-choice>span{flex-direction:column;gap:2px;min-width:0;display:flex}.kind-choice strong{font-size:var(--t-small);font-weight:600}.kind-choice span span{font-size:var(--t-micro);color:var(--ink-faint)}.group-label-row{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.group-add{border-radius:var(--r-xs);width:18px;height:18px;color:var(--ink-ghost);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.group-add:hover{background:var(--surface-hover);color:var(--ink)}.user-panel-wrap{flex:none;position:relative}.user-identity{align-items:center;gap:var(--s-2);border-radius:var(--r-sm);min-width:0;color:inherit;text-align:left;cursor:pointer;transition:background-color var(--d-fast) var(--ease-out);background:0 0;border:0;flex:1;margin:-2px;padding:2px;display:flex}.user-identity:hover{background:var(--surface-hover)}.user-identity-text{flex-direction:column;min-width:0;display:flex}.user-identity-name{font-size:var(--t-small);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.user-identity-status{font-size:var(--t-micro);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-menu{bottom:calc(100% + 6px);left:var(--s-2);right:var(--s-2);z-index:60;gap:var(--s-2);padding:var(--s-2);border-radius:var(--r-md);background:var(--surface-raised);border:1px solid var(--line-strong);flex-direction:column;display:flex;position:absolute;box-shadow:0 18px 40px #0000008c}.user-menu-head{padding:4px var(--s-2);font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-ghost)}.user-menu-group{padding-top:var(--s-1);border-top:1px solid var(--line-faint);flex-direction:column;gap:1px;display:flex}.user-menu-group:first-of-type{border-top:0;padding-top:0}.user-menu-item{align-items:center;gap:var(--s-2);padding:7px var(--s-2);border-radius:var(--r-sm);color:var(--ink-muted);text-align:left;cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);background:0 0;border:0;display:flex}.user-menu-item:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.user-menu-item[data-selected=true]{background:var(--surface-active);color:var(--ink)}.user-menu-item:disabled{opacity:.5;cursor:progress}.user-menu-danger:hover{color:var(--tone-danger);background:#ff6b6b24}.user-menu-body{flex-direction:column;gap:1px;min-width:0;display:flex}.user-menu-body strong{font-size:var(--t-small);font-weight:600}.user-menu-body span{font-size:var(--t-micro);color:var(--ink-faint)}.user-menu-note{padding:var(--s-2);border-radius:var(--r-sm);background:var(--ground);font-size:var(--t-micro);color:var(--ink-ghost);margin:0;line-height:1.5}.voice-avatar{color:#2a0713;background:linear-gradient(140deg, var(--gill-200), var(--wild));width:24px;height:24px;transition:box-shadow var(--d-base) var(--ease-swim), transform var(--d-base) var(--ease-swim);border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:700;display:grid;box-shadow:0 0 #5ee0c800}.voice-avatar[data-speaking=true]{box-shadow:0 0 0 2px var(--tone-online), 0 0 12px #52d6a073;transform:scale(1.06)}.invite-link{align-items:center;gap:var(--s-2);padding:6px 6px 6px var(--s-3);border-radius:var(--r-md);border:1px solid var(--line);background:var(--ground);color:var(--ink-ghost);display:flex}.invite-link .dialog-input{font-family:var(--font-mono);font-size:var(--t-micro);background:0 0;border:0;padding-left:0}.invite-copy{font-size:var(--t-micro);flex:none;align-items:center;gap:6px;padding:7px 12px;display:inline-flex}.invite-toggle{align-items:flex-start;gap:var(--s-2);cursor:pointer;display:flex}.invite-toggle input{accent-color:var(--gill-600);margin-top:3px}.invite-toggle>span{flex-direction:column;gap:1px;display:flex}.invite-toggle strong{font-size:var(--t-small);color:var(--ink);font-weight:600}.invite-toggle span span{font-size:var(--t-micro);color:var(--ink-faint)}.invite-preview strong{color:var(--ink)}.rail-home{background:0 0}.rail-home:hover{background:var(--surface-hover)}.rail-home[data-active=true]{background:var(--surface-active)}.friends-panel{gap:var(--s-3);text-align:left;flex-direction:column;width:min(680px,100%);display:flex}.friends-tabs{align-items:center;gap:var(--s-1);padding-bottom:var(--s-2);border-bottom:1px solid var(--line-faint);flex-wrap:wrap;display:flex}.friends-tab{border-radius:var(--r-sm);color:var(--ink-faint);font:inherit;font-size:var(--t-small);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);background:0 0;border:0;padding:6px 12px;font-weight:600}.friends-tab:hover{background:var(--surface-hover);color:var(--ink)}.friends-tab[data-selected=true]{background:var(--surface-active);color:var(--ink)}.friends-tab-cta{background:var(--gill-600);color:#2a0713;align-items:center;gap:6px;margin-left:auto;display:inline-flex}.friends-tab-cta:hover{background:var(--gill);color:#2a0713}.friends-list{flex-direction:column;gap:1px;display:flex}.friend-row{align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-2);border-radius:var(--r-sm);transition:background-color var(--d-fast) var(--ease-out);display:flex}.friend-row:hover{background:var(--surface-hover)}.friend-avatar{color:#2a0713;background:linear-gradient(140deg, var(--gill-200), var(--wild));border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.friend-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.friend-body strong{font-size:var(--t-small);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.friend-body span{font-size:var(--t-micro);color:var(--ink-faint)}.friend-action{border:1px solid var(--line);background:var(--surface);width:28px;height:28px;color:var(--ink-muted);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);border-radius:50%;flex:none;place-items:center;display:grid}.friend-action:hover{background:var(--surface-hover);color:var(--ink)}.friend-action-danger:hover{color:var(--tone-danger);background:#ff6b6b29;border-color:#ff6b6b4d}.friends-empty{margin:var(--s-3) 0;font-size:var(--t-small);color:var(--ink-faint)}.friends-add h3{font-size:var(--t-body);margin:0 0 4px}.friends-add p{margin:0 0 var(--s-3);font-size:var(--t-small);color:var(--ink-muted)}.friends-add-row{gap:var(--s-2);align-items:center;display:flex}.friends-add-row .dialog-input{flex:1}.friends-ok{color:var(--tone-online)}.voice-mute-icon{flex:none}.voice-mute-icon[data-kind=self]{color:var(--ink-ghost)}.voice-mute-icon[data-kind=server]{color:var(--tone-danger)}.voice-mute-icon[data-kind=local]{color:var(--tone-idle)}.voice-participant{cursor:default}.peer-menu{z-index:80;min-width:216px;padding:var(--s-2);border-radius:var(--r-md);background:var(--surface-raised);border:1px solid var(--line-strong);transform-origin:0 0;flex-direction:column;gap:2px;display:flex;position:fixed;box-shadow:0 18px 40px #0000008c}.peer-menu-head{padding:4px var(--s-2) 6px;font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-ghost);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.peer-menu-item{align-items:center;gap:var(--s-2);padding:7px var(--s-2);border-radius:var(--r-sm);color:var(--ink-muted);font:inherit;font-size:var(--t-small);text-align:left;cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);background:0 0;border:0;display:flex}.peer-menu-item:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.peer-menu-item:disabled{opacity:.4;cursor:not-allowed}.peer-menu-group{padding-top:var(--s-1);border-top:1px solid var(--line-faint);margin-top:2px}.peer-menu-volume{gap:4px var(--s-2);padding:var(--s-2);font-size:var(--t-micro);color:var(--ink-faint);grid-template-columns:1fr auto;align-items:center;display:grid}.peer-menu-volume input{width:100%;accent-color:var(--gill-600);grid-column:1/-1}.peer-menu-volume-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-muted)}.auth-download{margin-top:var(--s-3);border:1px solid var(--line);background:var(--surface);color:var(--ink-muted);font-size:var(--t-small);transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-weight:600;text-decoration:none;display:inline-flex}.auth-download:hover{background:var(--surface-hover);color:var(--ink)}.auth-download span{font-weight:400;font-size:var(--t-micro);color:var(--ink-ghost)}:root[data-desktop=true] body,:root[data-desktop=true] #root{height:100%}:root[data-desktop=true] #root{flex-direction:column;display:flex}:root[data-desktop=true] #root>.shell,:root[data-desktop=true] #root>.auth{flex:1;min-height:0}.titlebar{height:32px;padding-left:var(--s-3);background:var(--ground-abyss);border-bottom:1px solid var(--line-faint);-webkit-app-region:drag;-webkit-user-select:none;user-select:none;flex:none;justify-content:space-between;align-items:center;display:flex}.titlebar-brand{font-size:var(--t-micro);letter-spacing:.04em;color:var(--ink-faint);align-items:center;gap:8px;font-weight:600;display:flex}.titlebar-controls{-webkit-app-region:no-drag;align-items:stretch;height:100%;display:flex}.titlebar-button{width:46px;color:var(--ink-faint);cursor:default;background:0 0;border:0;place-items:center;transition:background-color 90ms linear,color 90ms linear;display:grid}.titlebar-button:hover{background:var(--surface-hover);color:var(--ink)}.titlebar-close:hover{color:#fff;background:#c42b1c}.voice-head{justify-content:space-between;align-items:center;gap:var(--s-2);min-width:0;display:flex}.voice-head-main{align-items:center;gap:var(--s-2);min-width:0;display:flex}.voice-head-text{flex-direction:column;min-width:0;display:flex}.voice-state{font-size:var(--t-small);color:var(--tone-online);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.voice-panel[data-status=connecting] .voice-state{color:var(--tone-idle)}.voice-panel[data-status=failed] .voice-state{color:var(--tone-danger)}.voice-where{font-size:var(--t-micro);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.voice-signal{color:var(--ink-ghost);flex:none}.voice-signal[data-live=true]{color:var(--tone-online)}.voice-head-side{align-items:center;gap:var(--s-2);flex:none;display:flex}.voice-duration{font-family:var(--font-mono);font-size:var(--t-micro);font-variant-numeric:tabular-nums;color:var(--ink-ghost)}.voice-hangup{border-radius:var(--r-sm);width:28px;height:28px;color:var(--ink-muted);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);background:0 0;border:0;place-items:center;display:grid}.voice-hangup:hover{color:var(--tone-danger);background:#ff6b6b29}.user-avatar-wrap{flex:none;display:inline-flex;position:relative}.user-status-dot{border:2px solid var(--ground);background:var(--tone-offline);border-radius:50%;width:11px;height:11px;position:absolute;bottom:-1px;right:-1px}.user-status-dot[data-status=online]{background:var(--tone-online)}.user-status-dot[data-status=idle]{background:var(--tone-idle)}.user-status-dot[data-status=dnd]{background:var(--tone-dnd)}.user-status-dot[data-status=invisible]{background:var(--ground);box-shadow:inset 0 0 0 2px var(--tone-offline)}.icon-btn[data-danger=true]{color:var(--tone-danger)}.voice-roster .voice-participant{padding:2px var(--s-2);gap:6px}.voice-roster .voice-participant .voice-participant-name{font-size:var(--t-micro);color:var(--ink-faint)}.voice-roster .voice-participant[data-speaking=true] .voice-participant-name{color:var(--ink)}.voice-roster .voice-avatar{width:20px;height:20px;font-size:10px}.voice-roster-row .voice-avatar{opacity:.85}.titlebar-actions{padding-right:var(--s-2);-webkit-app-region:no-drag;align-items:center;margin-left:auto;display:flex}.update-badge{border-radius:var(--r-sm);width:28px;height:28px;color:var(--gill);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);background:0 0;border:0;place-items:center;display:grid;position:relative}.update-badge:hover{background:var(--surface-hover);color:var(--gill-200)}.update-badge-dot{background:var(--gill-600);border-radius:50%;width:7px;height:7px;position:absolute;top:4px;right:4px}.update-badge[data-required=true]{color:var(--tone-danger)}.update-badge[data-required=true] .update-badge-dot{background:var(--tone-danger);animation:update-pulse 1.6s var(--ease-in-out) infinite}@keyframes update-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.35)}}.screen-stage{gap:var(--s-2);padding:var(--s-2) var(--s-3) 0;flex:none;display:flex;position:relative;overflow-x:auto}.screen-surface{border-radius:var(--r-md);border:1px solid var(--line);background:#000;flex:1 1 0;min-width:240px;max-height:42vh;position:relative;overflow:hidden}.screen-surface video{object-fit:contain;background:#000;width:100%;height:100%;max-height:42vh;display:block}.screen-label{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:var(--t-micro);color:var(--ink-muted);background:#06080cb8;border-radius:999px;padding:3px 8px;position:absolute;bottom:8px;left:8px}.screen-stop{top:calc(var(--s-2) + 8px);right:calc(var(--s-3) + 8px);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--tone-danger-ink);font-size:var(--t-micro);cursor:pointer;background:#ff6b6b2e;border:1px solid #ff6b6b59;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:inline-flex;position:absolute}.screen-stop:hover{background:#ff6b6b4d}.voice-btn[data-active=true]{color:var(--tone-online);background:#52d6a029;border-color:#52d6a066}.setting-switch{background:var(--surface-active);width:34px;height:20px;box-shadow:inset 0 0 0 1px var(--line);transition:background-color var(--d-fast) var(--ease-out);border-radius:999px;flex:none;position:relative}.setting-switch:after{content:"";background:var(--ink-faint);width:14px;height:14px;transition:transform var(--d-base) var(--ease-swim), background-color var(--d-fast) var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px}.setting-switch[data-on=true]{background:var(--gill-600);box-shadow:none}.setting-switch[data-on=true]:after{background:#2a0713;transform:translate(14px)}.setting-value{font-family:var(--font-mono);font-size:var(--t-micro);color:var(--ink-ghost);white-space:nowrap}.live-badge{background:var(--tone-danger);color:#fff;letter-spacing:.06em;border-radius:4px;flex:none;padding:1px 5px;font-size:9px;font-weight:800}.call-view{flex-direction:column;height:100%;min-height:0;display:flex}.call-head{justify-content:space-between;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line-faint);flex:none;display:flex}.call-head-text h2{font-size:var(--t-body);margin:0}.call-head-text span{font-size:var(--t-micro);color:var(--ink-faint)}.call-stage{gap:var(--s-3);min-height:0;padding:var(--s-3);flex:1;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-content:center;display:grid;overflow:auto}.call-stage[data-focus=true]{grid-template-columns:1fr;align-content:stretch}.call-stage[data-focus=true] .call-tile:not(.call-tile-video){display:none}.call-stage[data-focus=true] .call-tile-camera{right:var(--s-3);bottom:var(--s-3);border-radius:var(--r-md);width:220px;height:124px;position:absolute;box-shadow:0 12px 30px #00000080}.call-stage{position:relative}.call-tile-camera video{object-fit:cover}.call-tile{border-radius:var(--r-lg);background:var(--ground);min-height:160px;transition:border-color var(--d-base) var(--ease-swim);border:2px solid #0000;place-items:center;display:grid;position:relative;overflow:hidden}.call-tile[data-speaking=true]{border-color:var(--tone-online)}.call-tile-video{background:#000;min-height:0}.call-tile-video video{object-fit:contain;background:#000;width:100%;height:100%;max-height:calc(100vh - 260px)}.call-tile-label{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:var(--t-micro);color:var(--ink-muted);background:#06080cb8;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex;position:absolute;bottom:10px;left:10px}.call-avatar{color:#2a0713;background:linear-gradient(140deg, var(--gill-200), var(--wild));width:76px;height:76px;transition:box-shadow var(--d-base) var(--ease-swim);border-radius:50%;place-items:center;font-size:30px;font-weight:700;display:grid}.call-avatar[data-speaking=true]{box-shadow:0 0 0 3px var(--tone-online), 0 0 24px #52d6a066}.call-controls{justify-content:center;gap:var(--s-2);padding:var(--s-3);flex:none;display:flex}.call-btn{border:1px solid var(--line);background:var(--surface);width:46px;height:46px;color:var(--ink-muted);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-swim);border-radius:50%;place-items:center;display:grid}.call-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.call-btn:active:not(:disabled){transform:scale(.95)}.call-btn:disabled{opacity:.4;cursor:not-allowed}.call-btn[data-danger=true]{color:var(--tone-danger);border-color:#ff6b6b4d}.call-btn[data-active=true]{color:var(--tone-online);background:#52d6a029;border-color:#52d6a066}.call-hangup{background:var(--tone-danger);color:#2a0707;border-color:#0000}.call-hangup:hover{color:#2a0707;background:#ff8080}.channel-row{align-items:center;display:flex;position:relative}.channel-row .channel{flex:1;min-width:0}.channel-gear{right:calc(var(--s-2) + 4px);border-radius:var(--r-xs);width:20px;height:20px;color:var(--ink-ghost);opacity:0;cursor:pointer;transition:opacity var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);background:0 0;border:0;place-items:center;display:grid;position:absolute}.channel-row:hover .channel-gear,.channel-gear:focus-visible{opacity:1}.channel-gear:hover{color:var(--ink)}.perm-layout{gap:var(--s-3);grid-template-columns:150px 1fr;min-height:260px;display:grid}.perm-roles{padding-right:var(--s-3);border-right:1px solid var(--line-faint);flex-direction:column;gap:2px;display:flex}.perm-role{padding:7px var(--s-2);border-radius:var(--r-sm);color:var(--ink-muted);font:inherit;font-size:var(--t-small);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;overflow:hidden}.perm-role:hover{background:var(--surface-hover);color:var(--ink)}.perm-role[data-selected=true]{background:var(--surface-active);color:var(--ink)}.perm-list{flex-direction:column;gap:2px;max-height:46vh;display:flex;overflow-y:auto}.perm-row{justify-content:space-between;align-items:center;gap:var(--s-3);padding:6px var(--s-2);border-radius:var(--r-sm);display:flex}.perm-row:hover{background:var(--surface-hover)}.perm-row-text{flex-direction:column;gap:1px;min-width:0;display:flex}.perm-row-text strong{font-size:var(--t-small);color:var(--ink);font-weight:500}.perm-row-text span{font-size:var(--t-micro);color:var(--ink-faint)}.perm-tri{border-radius:var(--r-sm);border:1px solid var(--line);flex:none;display:flex;overflow:hidden}.perm-tri button{width:30px;height:26px;color:var(--ink-ghost);cursor:pointer;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);background:0 0;border:0;place-items:center;display:grid}.perm-tri button:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.perm-tri button:disabled{cursor:progress}.perm-tri button[data-selected=true][data-value=deny]{color:var(--tone-danger);background:#ff6b6b33}.perm-tri button[data-selected=true][data-value=inherit]{background:var(--surface-active);color:var(--ink-muted)}.perm-tri button[data-selected=true][data-value=allow]{color:var(--tone-online);background:#52d6a033}.update-bar{border-bottom:1px solid var(--line-faint);background:linear-gradient(100deg,#ff7ba91f,#9e86f012 60%,#0000);flex:none;overflow:hidden}.update-bar-inner{align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3) var(--s-2) var(--s-4);font-size:var(--t-small);display:flex}.update-bar-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.update-bar-text strong{font-weight:600}.update-bar-note{color:var(--ink-faint)}@media (max-width:760px){.update-bar-note{display:none}}.update-cta{border-radius:var(--r-pill);background:var(--gill-600);color:#fff;font-size:var(--t-small);transition:background-color var(--d-fast) var(--ease-out), transform var(--d-fast) var(--ease-swim);align-items:center;gap:6px;padding:5px 12px;font-weight:500;display:inline-flex}.update-cta:hover{background:var(--gill)}.update-cta:active{transform:scale(.96)}.scrim{z-index:70;padding:var(--s-4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#040609b8;place-items:center;display:grid;position:fixed;inset:0}.dialog{width:min(440px,100%);padding:var(--s-6);border-radius:var(--r-2xl);background:var(--surface);box-shadow:var(--lift-3), var(--inner-hi);text-align:center}.dialog h2{font-family:var(--font-display);font-size:var(--t-h2);letter-spacing:-.025em;margin:var(--s-4) 0 var(--s-2);font-weight:600}.dialog p{margin:0 0 var(--s-5);color:var(--ink-muted);font-size:var(--t-body)}@media (max-width:1100px){:root{--members-w:0px}.shell{grid-template-columns:var(--rail-w) var(--sidebar-w) minmax(0, 1fr)}.members-panel{display:none}}@media (max-width:760px){.shell{grid-template-columns:minmax(0,1fr);gap:0;padding:0}.rail,.sidebar-panel{display:none}.panel{box-shadow:none;border-radius:0}.chan-topic{display:none}}.auth-page{z-index:1;height:100%;padding:var(--s-6) var(--s-4);place-items:center;display:grid;position:relative;overflow-y:auto}.auth-card{width:min(420px,100%);padding:var(--s-8) var(--s-6) var(--s-6);border-radius:var(--r-2xl);background:var(--surface);box-shadow:var(--lift-3), var(--inner-hi)}.auth-brand{text-align:center;margin-bottom:var(--s-6);justify-items:center;gap:2px;display:grid}.auth-brand h1{font-family:var(--font-display);font-size:var(--t-h1);letter-spacing:-.04em;margin:var(--s-3) 0 0;font-weight:600}.auth-brand p{color:var(--ink-faint);font-size:var(--t-small);margin:0}.auth-tabs{gap:var(--s-1);margin-bottom:var(--s-5);border-radius:var(--r-pill);background:var(--ground);box-shadow:inset 0 0 0 1px var(--line-faint);grid-template-columns:1fr 1fr;padding:4px;display:grid;position:relative}.auth-tab{border-radius:var(--r-pill);font-size:var(--t-small);color:var(--ink-faint);transition:color var(--d-fast) var(--ease-out);padding:8px;font-weight:500;position:relative}.auth-tab[data-active=true]{color:var(--ink)}.auth-tab-indicator{border-radius:var(--r-pill);background:var(--surface-active);box-shadow:var(--lift-1);position:absolute;inset:0}.field{margin-bottom:var(--s-4);display:block}.field-label{font-size:var(--t-tiny);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px;font-weight:600;display:block}.field-input{width:100%;padding:11px var(--s-3);border-radius:var(--r-md);background:var(--ground);color:var(--ink);font-size:var(--t-body);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow var(--d-base) var(--ease-swim);border:none}.field-input::placeholder{color:var(--ink-ghost)}.field-input:focus{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 3px var(--gill-glow);outline:none}.field-input[aria-invalid=true]{box-shadow:inset 0 0 0 1px #ff6b6b8c}.field-affix{align-items:center;display:flex;position:relative}.field-affix .field-input{padding-right:44px}.field-affix .icon-btn{position:absolute;right:5px}.field-problem{font-size:var(--t-tiny);color:var(--tone-danger);margin-top:5px;display:block}.auth-error{align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);padding:9px var(--s-3);border-radius:var(--r-md);color:var(--tone-danger-ink);font-size:var(--t-small);background:#ff6b6b1a;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #ff6b6b38}.auth-submit{justify-content:center;align-items:center;gap:var(--s-2);width:100%;padding:6px 6px 6px var(--s-4);border-radius:var(--r-pill);background:linear-gradient(140deg, var(--gill-600), var(--gill-700));color:#fff;font-size:var(--t-lead);transition:transform var(--d-fast) var(--ease-swim), filter var(--d-fast) var(--ease-out), opacity var(--d-fast) var(--ease-out);font-weight:500;display:flex}.auth-submit:hover:not(:disabled){filter:brightness(1.1)}.auth-submit:active:not(:disabled){transform:scale(.985)}.auth-submit:disabled{opacity:.45;cursor:not-allowed}.auth-claims{margin:var(--s-6) 0 0;padding:var(--s-4) 0 0;border-top:1px solid var(--line-faint);gap:var(--s-3);list-style:none;display:grid}.auth-claims li{gap:var(--s-2);font-size:var(--t-tiny);color:var(--ink-faint);grid-template-columns:18px 1fr;align-items:start;line-height:1.5;display:grid}.auth-claims strong{color:var(--ink-muted);font-weight:600}.conn-chip{border-radius:var(--r-pill);font-size:var(--t-micro);background:var(--ground);box-shadow:inset 0 0 0 1px var(--line-faint);color:var(--ink-faint);align-items:center;gap:6px;padding:3px 9px;font-weight:500;display:inline-flex}.conn-dot{border-radius:var(--r-pill);width:6px;height:6px}.e2ee-center{place-content:center;justify-items:center;gap:var(--s-3);padding:var(--s-8) var(--s-6);text-align:center;flex:1;display:grid}.e2ee-center p{font-family:var(--font-display);font-size:var(--t-h3);letter-spacing:-.02em;margin:0;font-weight:600}.e2ee-hint{max-width:42ch;font-size:var(--t-small);color:var(--ink-faint);line-height:1.6}.rail-item[data-dm=true]{border-radius:var(--r-md);color:var(--tone-encrypted);background:linear-gradient(150deg,#5ee0c82e,#5ee0c80f);box-shadow:inset 0 0 0 1px #5ee0c838}.rail-item[data-dm=true][data-active=true]{background:linear-gradient(150deg,#5ee0c852,#5ee0c81f);box-shadow:inset 0 0 0 1px #5ee0c866}.dm-entry{align-items:center;gap:var(--s-2);width:calc(100% - var(--s-4));margin:1px var(--s-2);padding:7px var(--s-2);border-radius:var(--r-sm);color:var(--ink-faint);font-size:var(--t-body);text-align:left;transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast) var(--ease-out);display:flex}.dm-entry:hover{background:var(--surface-hover);color:var(--ink-muted)}.dm-entry[data-active=true]{background:var(--surface-active);color:var(--ink);font-weight:500}.safety-dialog{text-align:left;width:min(480px,100%);max-height:84vh;position:relative;overflow-y:auto}.safety-close{top:var(--s-3);right:var(--s-3);position:absolute}.safety-caveat{font-size:var(--t-tiny);color:var(--ink-faint);margin:0 0 var(--s-4);line-height:1.6}.safety-entry{padding:var(--s-4);margin-bottom:var(--s-3);border-radius:var(--r-lg);background:var(--ground);box-shadow:inset 0 0 0 1px var(--line-faint)}.safety-entry-head{justify-content:space-between;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3);font-size:var(--t-small);display:flex}.safety-number{margin:0 0 var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:var(--surface-raised);box-shadow:inset 0 0 0 1px var(--line-faint);font-family:var(--font-mono);font-size:var(--t-body);letter-spacing:.08em;word-spacing:.5em;color:var(--tone-encrypted);white-space:pre-wrap;-webkit-user-select:all;user-select:all;line-height:1.9}.safety-undo{width:auto;font-size:var(--t-tiny);color:var(--ink-faint)}
