:root{--surface-lowest: #101218;--surface-low: #15171e;--surface-base: #1a1d25;--surface-raised: #232733;--surface-float: #0a0b0f;--interactive-hover: #20242e;--interactive-active: #2a2f3c;--message-hover: #16181f;--control: #39404e;--text-strong: #f3f4f8;--text-default: #d8dbe4;--text-secondary: #b0b6c4;--text-muted: #949bab;--text-subtle: #969dad;--icon-faint: #6b7284;--text-on-fill: #ffffff;--accent: #5865f2;--accent-hover: #4752c4;--focus-ring: #8b95fa;--accent-soft: rgba(88, 101, 242, .28);--accent-flash: rgba(88, 101, 242, .18);--online: #23c55e;--online-fill: #1d8749;--online-fill-hover: #166b39;--offline: #757b8a;--danger: #db393c;--danger-hover: #b8282b;--danger-soft: rgba(242, 63, 66, .14);--warning: #f2b53a;--warning-soft: rgba(242, 181, 58, .1);--link: #4cc2ff;--divider: #0d0f14;--divider-soft: #2b3040;--scrim: rgba(0, 0, 0, .65);--scrim-strong: rgba(0, 0, 0, .72);--scrim-heavy: rgba(0, 0, 0, .85);--scrim-light: rgba(255, 255, 255, .15);--spinner-track: rgba(255, 255, 255, .35);--scrollbar-thumb: rgba(255, 255, 255, .17);--scrollbar-thumb-hover: rgba(255, 255, 255, .3);--wash-accent: rgba(88, 101, 242, .2);--wash-link: rgba(76, 194, 255, .13);--video-letterbox: #000000;--font-xs: 11px;--font-sm: 12px;--font-md: 14px;--font-body: 15px;--font-lg: 16px;--font-xl: 20px;--font-field-min: 16px;--lh-tight: 1.25;--lh-body: 1.375;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-pill: 24px;--shadow-low: 0 1px 2px rgba(0, 0, 0, .3);--shadow-mid: 0 4px 14px rgba(0, 0, 0, .42);--shadow-high: 0 12px 40px rgba(0, 0, 0, .55);--shadow-hairline: 0 1px 0 rgba(0, 0, 0, .35);--dur-fast: 80ms;--dur-base: .15s;--dur-slow: .24s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--glow-accent: 0 0 0 3px rgba(88, 101, 242, .22);--glow-online: 0 0 0 3px rgba(35, 197, 94, .22);--danger-pulse: rgba(219, 57, 60, .55);--rail-w: 72px;--sidebar-w: 240px;--members-w: 240px}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2")}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-md);line-height:var(--lh-tight);background:var(--surface-base);color:var(--text-default)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--surface-lowest);background-image:radial-gradient(60% 55% at 18% 12%,var(--wash-accent),transparent 70%),radial-gradient(55% 50% at 84% 88%,var(--wash-link),transparent 70%)}.auth-card{background:var(--surface-base);border:1px solid var(--divider-soft);padding:var(--space-8);border-radius:var(--radius-md);width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--space-4);box-shadow:var(--shadow-high)}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.auth-mark{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;width:34px;height:34px;margin-bottom:var(--space-1)}.auth-mark span{background:var(--accent);border-radius:3px}.auth-mark span:nth-child(2){background:var(--link)}.auth-mark span:nth-child(3){background:var(--online)}.auth-mark span:nth-child(4){background:var(--accent);opacity:.55}.auth-card h1{margin:0;font-size:var(--font-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;text-align:center;color:var(--text-strong)}.auth-subtitle{margin:0;text-align:center;font-size:var(--font-md);line-height:var(--lh-body);color:var(--text-secondary)}.auth-tabs{margin-top:var(--space-1)}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:var(--font-xs);font-weight:var(--fw-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.auth-input-wrap{position:relative;display:flex}.auth-card input{width:100%;background:var(--surface-lowest);border:1px solid var(--divider-soft);border-radius:var(--radius-sm);padding:11px var(--space-3);color:var(--text-default);font-size:var(--font-md);transition:border-color var(--dur-fast) var(--ease-in-out),background var(--dur-fast) var(--ease-in-out)}.auth-card input::placeholder{color:var(--text-subtle)}.auth-card input:hover:not(:disabled){border-color:var(--control)}.auth-card input:focus{outline:none;border-color:var(--accent);background:var(--surface-base)}.auth-card input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.auth-card input:disabled{opacity:.6;cursor:not-allowed}.auth-input-wrap input{padding-right:60px}.auth-reveal{position:absolute;right:4px;top:4px;bottom:4px;padding:0 var(--space-2);background:none;border:none;border-radius:3px;color:var(--text-muted);font-size:var(--font-sm);font-weight:var(--fw-medium)}.auth-reveal:hover{color:var(--text-strong);background:var(--interactive-hover)}.auth-hint{font-size:var(--font-sm);color:var(--text-muted);line-height:var(--lh-body)}.auth-error:empty{display:none}.auth-error{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--danger-soft);border-left:3px solid var(--danger);color:var(--text-default);font-size:var(--font-md);line-height:var(--lh-body)}.auth-submit{display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:11px;font-size:var(--font-md);font-weight:var(--fw-semibold);transition:background var(--dur-fast) var(--ease-in-out)}.auth-submit:hover:not(:disabled){background:var(--accent-hover)}.auth-submit:disabled{opacity:.7;cursor:progress}.auth-spinner{width:14px;height:14px;border:2px solid var(--spinner-track);border-top-color:var(--text-on-fill);border-radius:50%;animation:auth-spin .7s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-foot{margin:0;text-align:center;font-size:var(--font-sm);color:var(--text-muted)}.link-btn{background:none;border:none;color:var(--link);font-size:var(--font-md);padding:0}.link-btn:hover{text-decoration:underline}.auth-foot .link-btn{font-size:var(--font-sm);font-weight:var(--fw-semibold)}@media(max-width:420px){.auth-screen{align-items:flex-start;padding:var(--space-8) var(--space-4)}.auth-card{padding:var(--space-6)}}.home{display:grid;grid-template-columns:var(--rail-w) var(--sidebar-w) minmax(0,1fr) var(--members-w);grid-template-rows:minmax(0,1fr);height:100vh;overflow:hidden}.home.members-hidden{--members-w: 0px}.server-sidebar{background:var(--surface-lowest);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;overflow-y:auto;scrollbar-width:none}.server-sidebar::-webkit-scrollbar{display:none}.server-rail-divider{width:32px;height:2px;background:var(--divider-soft);border-radius:1px;flex-shrink:0;margin:var(--space-1) 0}.server-icon-wrap{position:relative;display:flex;flex-shrink:0}.server-icon-wrap:before{content:"";position:absolute;left:-16px;top:50%;width:4px;height:0;border-radius:0 4px 4px 0;background:var(--text-strong);transform:translateY(-50%);transition:height var(--dur-base) var(--ease-in-out)}.server-icon-wrap:hover:before{height:20px}.server-icon-wrap.active:before{height:40px}.server-icon-wrap.unread:before{height:8px}.server-icon{width:48px;height:48px;border-radius:var(--radius-pill);background:var(--surface-base);color:var(--text-default);border:none;font-weight:var(--fw-semibold);font-size:var(--font-md);display:flex;align-items:center;justify-content:center;transition:border-radius var(--dur-base) var(--ease-in-out),background var(--dur-fast) var(--ease-in-out),color var(--dur-fast) var(--ease-in-out)}.server-icon:hover,.server-icon.active{border-radius:16px;background:var(--accent);color:var(--text-on-fill)}.server-icon.add{color:var(--online);font-size:var(--font-xl);font-weight:var(--fw-normal)}.server-icon.add:hover{background:var(--online-fill);color:var(--text-on-fill)}.server-icon.home-btn{color:var(--text-default)}.server-icon.home-btn.active,.server-icon.home-btn:hover{background:var(--accent);color:var(--text-on-fill)}.sidebar-column{background:var(--surface-low);display:flex;flex-direction:column;min-height:0;min-width:0}.channel-list{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto;padding:0 var(--space-2) var(--space-3)}.channel-list-header{position:sticky;top:0;z-index:2;background:var(--surface-low);margin:0 -8px 8px;padding:0 var(--space-4);height:48px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);border-bottom:1px solid var(--divider);box-shadow:var(--shadow-hairline);font-weight:var(--fw-semibold);color:var(--text-strong);font-size:var(--font-md)}.channel-list-header .server-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-list-header button{background:none;border:none;color:var(--text-default);display:flex;align-items:center;padding:2px;border-radius:var(--radius-sm)}.channel-list-header button:hover{color:var(--text-strong)}.channel-group{margin-top:var(--space-4)}.channel-group-title{display:flex;align-items:center;gap:2px;font-size:var(--font-xs);font-weight:var(--fw-semibold);letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);padding:0 var(--space-1) var(--space-1);width:100%;background:none;border:none}.channel-group-title:hover{color:var(--text-default)}.channel-group-title .caret{display:flex;transition:transform var(--dur-base) var(--ease-in-out)}.channel-group-title.collapsed .caret{transform:rotate(-90deg)}.channel-group-title .group-label{flex:1;text-align:left}.channel-group-add{background:none;border:none;color:var(--text-muted);display:flex;align-items:center;padding:2px;border-radius:var(--radius-sm)}.channel-group-add:hover{color:var(--text-strong)}.channel-item{position:relative;display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:none;border:none;color:var(--text-muted);padding:6px 8px;margin-bottom:2px;border-radius:var(--radius-sm);font-size:var(--font-md)}.channel-item .channel-icon{flex-shrink:0;color:var(--icon-faint)}.channel-item .channel-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-item:hover{background:var(--interactive-hover);color:var(--text-default)}.channel-item.active{background:var(--interactive-active);color:var(--text-on-fill)}.channel-item.active .channel-icon{color:var(--text-default)}.channel-item.in-voice{color:var(--online)}.channel-item.unread{color:var(--text-strong);font-weight:var(--fw-semibold)}.channel-item.unread .channel-icon{color:var(--text-default)}.channel-item .channel-hover-actions{margin-left:auto;display:none;align-items:center;gap:2px;color:var(--text-muted)}.channel-item:hover .channel-hover-actions{display:flex}.channel-item .channel-hover-actions button{background:none;border:none;color:inherit;padding:0;display:flex;align-items:center}.channel-item .channel-hover-actions button:hover{color:var(--text-strong)}.peer-count{margin-left:auto;font-size:var(--font-sm);color:var(--text-muted);display:flex;align-items:center;gap:3px}.voice-occupants{padding:0 0 4px 22px;display:flex;flex-direction:column;gap:2px}.voice-occupant{display:flex;align-items:center;gap:var(--space-2);padding:3px 8px;border-radius:var(--radius-sm);font-size:var(--font-md);color:var(--text-muted)}.voice-occupant:hover{background:var(--interactive-hover)}.voice-occupant .occupant-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-occupant .occupant-icons{margin-left:auto;display:flex;gap:var(--space-1);color:var(--danger)}.user-panel{flex-shrink:0;height:52px;background:var(--surface-float);display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2)}.user-panel-identity{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1;background:none;border:none;color:inherit;padding:var(--space-1);border-radius:var(--radius-sm);text-align:left}.user-panel-identity:hover{background:var(--interactive-hover)}.user-panel-names{min-width:0;display:flex;flex-direction:column}.user-panel-username{font-size:var(--font-md);font-weight:var(--fw-semibold);color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-panel-status{font-size:var(--font-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-panel-actions{display:flex;gap:2px;flex-shrink:0}.icon-btn{background:none;border:none;color:var(--text-default);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--interactive-hover);color:var(--text-strong)}.icon-btn.danger-state,.icon-btn.danger-state:hover{color:var(--danger)}.main-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--surface-base)}.top-bar{height:48px;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4);border-bottom:1px solid var(--divider);box-shadow:var(--shadow-hairline);flex-shrink:0;color:var(--text-strong);font-weight:var(--fw-semibold)}.top-bar .top-bar-icon{color:var(--icon-faint);display:flex}.top-bar .top-bar-actions{margin-left:auto;display:flex;gap:var(--space-1);color:var(--text-default)}.avatar{border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-fallback{background:var(--accent);color:var(--text-on-fill);display:flex;align-items:center;justify-content:center;font-weight:var(--fw-semibold)}.voice-status-bar{flex-shrink:0;background:var(--surface-float);border-bottom:1px solid var(--divider);padding:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.voice-status-info{min-width:0;flex:1;display:flex;flex-direction:column}.voice-status-title{font-size:var(--font-md);font-weight:var(--fw-semibold);color:var(--online);display:flex;align-items:center;gap:6px;min-width:0}.voice-status-label{min-width:0}.voice-status-channel{font-size:var(--font-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-status-bar .icon-btn{color:var(--text-default)}.voice-status-bar .icon-btn.hangup:hover{background:var(--danger);color:var(--text-on-fill)}.chat-panel{display:flex;flex-direction:column;min-height:0;flex:1}.chat-panel.empty{align-items:center;justify-content:center;color:var(--text-muted)}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-4) 0;display:flex;flex-direction:column}.chat-spacer{flex:1 1 auto;min-height:0}.chat-message-content{font-size:var(--font-body);line-height:var(--lh-body);word-wrap:break-word}.chat-input{padding:0 var(--space-4) var(--space-6)}.chat-input-box{display:flex;align-items:center;gap:10px;background:var(--surface-raised);border-radius:var(--radius-md);padding:0 var(--space-4)}.chat-input-box input{flex:1;background:none;border:none;padding:11px 0;color:var(--text-default);font-size:var(--font-md)}.chat-input-box input:focus{outline:none}.chat-input-box .attach-btn{background:none;border:none;color:var(--text-muted);display:flex;padding:0}.chat-input-box .attach-btn:hover{color:var(--text-default)}.voice-panel{flex:1;display:flex;flex-direction:column;min-height:0}.voice-panel.empty{align-items:center;justify-content:center;gap:var(--space-4)}.voice-header{height:48px;padding:0 var(--space-4);border-bottom:1px solid var(--divider);display:flex;align-items:center;gap:var(--space-2);font-weight:var(--fw-semibold);color:var(--text-strong);flex-shrink:0}.voice-header .top-bar-icon{color:var(--icon-faint);display:flex}.join-voice-btn{background:var(--online-fill);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-6);font-weight:var(--fw-semibold);font-size:var(--font-md);display:flex;align-items:center;gap:var(--space-2)}.peer-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,420px));gap:var(--space-3);padding:var(--space-4);align-content:center;justify-content:center;overflow-y:auto;min-height:0;max-width:1400px;width:100%;margin:0 auto}.peer-tile{background:var(--surface-lowest);border-radius:var(--radius-md);aspect-ratio:16 / 9;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:box-shadow var(--dur-fast) var(--ease-out)}.peer-tile video{width:100%;height:100%;object-fit:cover}.peer-tile video.video-hidden{display:none}.peer-name{position:absolute;bottom:6px;left:8px;font-size:var(--font-sm);font-weight:var(--fw-medium);color:var(--text-strong);background:var(--scrim);padding:3px 8px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:6px;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.peer-name .muted-icon{color:var(--danger);display:flex}.peer-grid.filmstrip{flex:0 0 auto;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:148px;justify-content:start;align-content:start;overflow-x:auto;overflow-y:hidden;padding:var(--space-3) var(--space-4);gap:var(--space-2);scrollbar-width:thin}.peer-grid.filmstrip .tile-placeholder-note,.peer-grid.filmstrip .watch-label{display:none}.voice-controls{display:flex;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4);flex-shrink:0}.voice-stage{flex:1;min-height:0;display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-4) 0;justify-content:center}.screen-tile{position:relative;background:var(--video-letterbox);border-radius:var(--radius-md);overflow:hidden;flex:1 1 0;min-width:0;min-height:0;max-width:100%;box-shadow:inset 0 0 0 1px var(--divider-soft)}.screen-tile video{width:100%;height:100%;object-fit:contain;background:var(--video-letterbox);display:block}.screen-tile:fullscreen{border-radius:0}.screen-tile-badge{position:absolute;top:10px;left:10px;display:flex;align-items:center;gap:6px;background:var(--scrim);color:var(--text-on-fill);font-size:var(--font-sm);font-weight:var(--fw-semibold);padding:4px 10px;border-radius:var(--radius-pill);opacity:.85;transition:opacity var(--dur-fast) var(--ease-out)}.screen-tile:hover .screen-tile-badge{opacity:1}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--danger)}.screen-tile-controls{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;opacity:0;transition:opacity var(--dur-fast) var(--ease-out);pointer-events:none}.screen-tile:hover .screen-tile-controls,.screen-tile-controls:focus-within{opacity:1;pointer-events:auto}@media(hover:none){.screen-tile-controls{opacity:1;pointer-events:auto}}.tile-pill{display:flex;align-items:center;gap:var(--space-1);background:var(--scrim-heavy);border-radius:var(--radius-pill);padding:5px 8px;box-shadow:var(--shadow-mid);max-width:calc(100% - 24px)}.tile-pill .tiny-btn{background:transparent;color:var(--text-on-fill);border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease-out)}.tile-pill .tiny-btn:hover{background:var(--scrim-light)}.tile-pill .tiny-btn svg{display:block}.pill-sep{width:1px;height:18px;background:var(--divider-soft);margin:0 2px}.pill-slider{width:0;overflow:hidden;transition:width var(--dur-fast) var(--ease-out)}.pill-slider.open{width:96px}.pill-slider input[type=range]{width:88px;margin:0 4px;accent-color:var(--accent);display:block}.screenshare-card{background:var(--surface-base);border-radius:var(--radius-md);width:360px;padding:var(--space-4)}.screenshare-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.screenshare-field{margin-bottom:var(--space-4)}.screenshare-field label{display:block;font-size:var(--font-xs);text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px}.segmented{display:flex;background:var(--surface-lowest);border-radius:var(--radius-sm);padding:3px;gap:3px}.segmented button{flex:1;background:none;border:none;color:var(--text-secondary);padding:var(--space-2);border-radius:3px;font-size:var(--font-md);font-weight:var(--fw-semibold)}.segmented button.active{background:var(--control);color:var(--text-on-fill)}.go-live-btn{width:100%;background:var(--online-fill);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:10px;font-weight:var(--fw-semibold);font-size:var(--font-md)}.go-live-btn:disabled{opacity:.6}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:800}.modal-card{background:var(--surface-base);border-radius:var(--radius-md);width:400px;max-width:92vw;padding:var(--space-4)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);color:var(--text-strong)}.modal-form{display:flex;flex-direction:column;gap:10px}.modal-form input{background:var(--surface-lowest);border:1px solid var(--surface-lowest);border-radius:var(--radius-sm);padding:10px;color:var(--text-default)}.modal-form button[type=submit]{background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:10px;font-weight:var(--fw-semibold)}.modal-form button[type=submit]:hover{background:var(--accent-hover)}.settings-card{background:var(--surface-base);border-radius:var(--radius-md);width:640px;max-width:92vw;height:520px;max-height:88vh;display:flex;overflow:hidden;position:relative}.settings-sidebar{width:180px;background:var(--surface-low);padding:var(--space-4) var(--space-2);display:flex;flex-direction:column;gap:2px;flex-shrink:0}.settings-sidebar button{text-align:left;background:none;border:none;color:var(--text-secondary);padding:8px 10px;border-radius:var(--radius-sm);font-size:var(--font-md)}.settings-sidebar button:hover{background:var(--interactive-hover);color:var(--text-default)}.settings-sidebar button.active{background:var(--interactive-active);color:var(--text-on-fill)}.settings-sidebar .settings-logout{color:var(--danger);margin-top:auto}.settings-sidebar .settings-logout:hover{background:var(--danger);color:var(--text-on-fill)}.settings-content{flex:1;padding:var(--space-6) var(--space-8);overflow-y:auto}.settings-close{position:absolute;top:16px;right:20px;background:var(--surface-low);border:none;color:var(--text-default);width:28px;height:28px;border-radius:50%;font-size:var(--font-md)}.settings-panel h2{margin:0 0 20px;color:var(--text-on-fill)}.settings-panel h3{margin:0 0 var(--space-2);color:var(--text-muted);font-size:var(--font-xs);font-weight:var(--fw-semibold);letter-spacing:.02em;text-transform:uppercase}.account-card{display:flex;align-items:center;gap:var(--space-4);background:var(--surface-low);border-radius:var(--radius-md);padding:20px}.account-card.editing{flex-direction:column;align-items:stretch;gap:var(--space-4)}.account-card-info{flex:1}.account-username{font-size:var(--font-xl);font-weight:var(--fw-semibold);color:var(--text-on-fill)}.account-meta{font-size:var(--font-sm);color:var(--text-muted);margin-top:var(--space-1)}.account-card>button{margin-left:auto;background:var(--control);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:8px 14px;font-size:var(--font-md)}.settings-secondary-btn{align-self:flex-start;background:var(--control);color:var(--text-on-fill);border-radius:var(--radius-sm);padding:var(--space-2) 14px;font-size:var(--font-md);font-weight:var(--fw-medium);transition:background var(--dur-fast) var(--ease-in-out)}.settings-secondary-btn:hover:not(:disabled){background:var(--interactive-active)}.settings-secondary-btn:disabled{opacity:.5;cursor:not-allowed}.avatar-edit{display:flex;align-items:center;gap:var(--space-3)}.avatar-edit-actions{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.settings-field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-xs);font-weight:var(--fw-semibold);color:var(--text-secondary);text-transform:uppercase}.settings-field input{background:var(--surface-lowest);border:1px solid var(--surface-lowest);border-radius:var(--radius-sm);padding:10px;color:var(--text-default);font-size:var(--font-md);text-transform:none}.settings-actions{display:flex;justify-content:flex-end;gap:var(--space-3);align-items:center}.settings-actions button[type=button]:not(.link-btn){background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-weight:var(--fw-semibold)}.device-section{background:var(--surface-low);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.device-section select{width:100%;background:var(--surface-lowest);border:1px solid var(--surface-lowest);border-radius:var(--radius-sm);padding:var(--space-2);color:var(--text-default);font-size:var(--font-md);margin-bottom:10px}.device-section button{background:var(--control);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:8px 14px;font-size:var(--font-md)}.device-section .hint{font-size:var(--font-sm);color:var(--text-muted);margin:var(--space-2) 0 0}.level-meter{height:10px;background:var(--surface-lowest);border-radius:5px;overflow:hidden;margin-bottom:10px}.level-meter-fill{height:100%;background:var(--online);transition:width 60ms linear}.cam-preview{width:100%;aspect-ratio:16 / 9;background:var(--surface-lowest);border-radius:6px;object-fit:cover;margin-bottom:10px}.cam-preview.hidden{display:none}.chat-date-divider{display:flex;align-items:center;justify-content:center;text-align:center;margin:var(--space-4) 0 var(--space-2);position:relative}.chat-date-divider:before,.chat-date-divider:after{content:"";flex:1;height:1px;background:var(--divider-soft)}.chat-date-divider span{padding:0 var(--space-3);font-size:var(--font-sm);font-weight:var(--fw-semibold);color:var(--text-muted);white-space:nowrap}.chat-message{position:relative;display:flex;gap:var(--space-4);align-items:flex-start;padding:2px 48px 2px 16px;margin:0 -16px}.chat-message.first-of-group{margin-top:17px}.chat-message:hover{background:var(--message-hover)}.chat-message-timestamp-gutter{width:40px;flex-shrink:0;font-size:var(--font-xs);color:var(--text-subtle);opacity:0;padding-top:var(--space-1);text-align:center}.chat-message:hover .chat-message-timestamp-gutter{opacity:1}.chat-message-body{flex:1;min-width:0}.chat-message-author{display:flex;align-items:baseline;gap:var(--space-2)}.chat-message-author .author-name{font-size:var(--font-md);font-weight:var(--fw-semibold);color:var(--text-strong)}.chat-message-time{font-size:var(--font-sm);font-weight:var(--fw-normal);color:var(--text-subtle)}.chat-message-edited{font-size:var(--font-xs);color:var(--text-subtle);margin-left:6px}.chat-message-actions{position:absolute;top:-16px;right:16px;display:flex;gap:2px;background:var(--surface-base);border:1px solid var(--divider);border-radius:6px;padding:2px;box-shadow:var(--shadow-low);opacity:0;pointer-events:none;z-index:1}.chat-message:hover .chat-message-actions{opacity:1;pointer-events:auto}.chat-message-actions button{background:none;border:none;color:var(--text-muted);padding:5px;border-radius:var(--radius-sm);display:flex;align-items:center}.chat-message-actions button:hover{background:var(--interactive-hover);color:var(--text-strong)}.chat-message-actions button.destructive:hover{background:var(--danger);color:var(--text-on-fill)}.chat-edit-input{width:100%;background:var(--surface-raised);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-2);color:var(--text-default);font-size:var(--font-md)}.chat-load-more{text-align:center;font-size:var(--font-sm);color:var(--text-muted);padding:6px 0;min-height:18px}.chat-typing{padding:2px 16px 4px;font-size:var(--font-md);color:var(--text-muted);min-height:20px}.chat-typing b{color:var(--text-strong);font-weight:var(--fw-semibold)}.chat-unread-divider{display:flex;align-items:center;gap:0;margin:var(--space-2) 0;position:relative;pointer-events:none}.chat-unread-divider:before{content:"";flex:1;height:1px;background:var(--danger)}.chat-unread-divider span{background:var(--danger);color:var(--text-on-fill);font-size:var(--font-xs);font-weight:var(--fw-bold);letter-spacing:.02em;text-transform:uppercase;padding:1px 6px;border-radius:0 4px 4px 0}.toast-banner{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--danger);color:var(--text-on-fill);padding:10px 18px;border-radius:6px;font-size:var(--font-md);font-weight:var(--fw-semibold);box-shadow:var(--shadow-mid);z-index:1000;cursor:pointer;max-width:80vw}.connection-banner{position:fixed;top:56px;left:50%;transform:translate(-50%);background:var(--surface-lowest);color:var(--warning);border:1px solid var(--warning);padding:var(--space-2) var(--space-4);border-radius:6px;font-size:var(--font-md);font-weight:var(--fw-semibold);box-shadow:var(--shadow-mid);z-index:999;max-width:80vw}.member-list{background:var(--surface-low);display:flex;flex-direction:column;min-width:0;overflow:hidden}.member-list-header{padding:var(--space-6) var(--space-3) var(--space-2);font-size:var(--font-xs);font-weight:var(--fw-semibold);letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.member-list-items{flex:1;overflow-y:auto;padding:0 var(--space-2) var(--space-3)}.member-item{display:flex;align-items:center;gap:var(--space-3);width:100%;text-align:left;background:none;border:none;padding:6px 8px;border-radius:var(--radius-sm)}.member-item:hover{background:var(--interactive-hover)}.member-item.offline{opacity:.4}.member-name{font-size:var(--font-md);color:var(--text-default);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-owner-badge{margin-left:auto;font-size:var(--font-sm);display:flex;color:var(--warning)}.unread-badge{margin-left:auto;font-size:var(--font-xs);font-weight:var(--fw-bold);line-height:16px;min-width:16px;height:16px;padding:0 5px;border-radius:8px;background:var(--danger);color:var(--text-on-fill);text-align:center}.server-unread-badge{position:absolute;bottom:-2px;right:-2px;font-size:var(--font-xs);font-weight:var(--fw-bold);line-height:16px;min-width:16px;height:16px;padding:0 5px;border-radius:8px;background:var(--danger);color:var(--text-on-fill);text-align:center;border:3px solid var(--surface-lowest);box-sizing:content-box;pointer-events:none}.context-menu{position:fixed;z-index:900;min-width:188px;background:var(--surface-float);border-radius:var(--radius-sm);padding:6px 8px;box-shadow:var(--shadow-mid);display:flex;flex-direction:column;gap:2px}.context-menu button{display:flex;align-items:center;gap:var(--space-2);width:100%;text-align:left;background:none;border:none;color:var(--text-secondary);padding:6px 8px;border-radius:3px;font-size:var(--font-md)}.context-menu button:hover{background:var(--accent);color:var(--text-on-fill)}.context-menu button .menu-icon{margin-left:auto;display:flex}.context-menu button.destructive{color:var(--danger)}.context-menu button.destructive:hover{background:var(--danger);color:var(--text-on-fill)}.context-menu .context-menu-separator{height:1px;background:var(--divider-soft);margin:var(--space-1) 0}.channel-group-title.as-label{cursor:default}.home-nav-item{margin-top:var(--space-2)}.home-sidebar-empty{margin:var(--space-1) var(--space-2);font-size:var(--font-md);color:var(--text-subtle);line-height:1.4}.friends-view{display:flex;flex-direction:column;min-height:0;height:100%}.friends-header{display:flex;align-items:center;gap:var(--space-4);height:48px;flex-shrink:0;padding:0 var(--space-4);border-bottom:1px solid var(--divider);box-shadow:var(--shadow-hairline)}.friends-title{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--fw-semibold);color:var(--text-strong);white-space:nowrap}.friends-tabs{display:flex;align-items:center;gap:var(--space-1);overflow-x:auto;scrollbar-width:none}.friends-tabs::-webkit-scrollbar{display:none}.friends-tab{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-muted);font-size:var(--font-md);padding:4px 10px;border-radius:var(--radius-sm);white-space:nowrap}.friends-tab:hover{background:var(--interactive-hover);color:var(--text-default)}.friends-tab.active{background:var(--interactive-active);color:var(--text-strong)}.friends-tab.cta{color:var(--text-on-fill);background:var(--online-fill)}.friends-tab.cta:hover{background:var(--online-fill-hover)}.friends-tab.cta.active{background:transparent;color:var(--online)}.friends-tab-badge{min-width:16px;height:16px;padding:0 var(--space-1);border-radius:8px;background:var(--danger);color:var(--text-on-fill);font-size:var(--font-xs);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center}.friends-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;padding:var(--space-3) var(--space-6) 0}.friends-search{flex:1;min-width:0;max-width:420px;display:flex;align-items:center;gap:var(--space-2);background:var(--surface-lowest);border-radius:var(--radius-sm);padding:0 var(--space-3);height:34px;color:var(--icon-faint)}.friends-search:focus-within{box-shadow:inset 0 0 0 1px var(--accent)}.friends-search svg{flex-shrink:0}.friends-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--text-default);font-size:var(--font-md)}.friends-search input::placeholder{color:var(--text-subtle)}.friends-search input::-webkit-search-cancel-button{display:none}.friends-scope{flex-shrink:0;margin-left:auto}.friends-scope button{flex:0 0 auto;padding:var(--space-1) var(--space-3)}.friends-scope button:hover{color:var(--text-strong)}.friends-section-note{margin-left:var(--space-2);text-transform:none;letter-spacing:0;font-weight:var(--fw-medium);color:var(--text-subtle)}.friends-loading{color:var(--text-muted);font-size:var(--font-md);padding:var(--space-4) 0}.friend-subtitle{display:flex;align-items:center;gap:5px}.friend-subtitle svg{display:block}.friends-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4) var(--space-6) var(--space-6)}.friends-section-header{font-size:var(--font-xs);font-weight:var(--fw-bold);letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);margin:var(--space-6) 0 var(--space-2)}.friends-section-header:first-child{margin-top:0}.friend-row{display:flex;align-items:center;gap:var(--space-3);padding:10px 8px;border-radius:var(--radius-md);border-top:1px solid var(--divider-soft)}.friend-row:hover{background:var(--interactive-hover);border-top-color:transparent}.friend-row:hover+.friend-row{border-top-color:transparent}.friend-identity{display:flex;flex-direction:column;min-width:0}.friend-name{color:var(--text-strong);font-weight:var(--fw-semibold);font-size:var(--font-md)}.friend-subtitle{color:var(--text-muted);font-size:var(--font-md)}.friend-actions{margin-left:auto;display:flex;gap:var(--space-2)}.friend-action{width:36px;height:36px;border-radius:50%;border:none;background:var(--surface-lowest);color:var(--text-muted);display:flex;align-items:center;justify-content:center}.friend-action:hover{color:var(--text-strong)}.friend-action.danger:hover{color:var(--danger)}.friends-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);height:100%;color:var(--text-muted);text-align:center}.friends-add{max-width:620px}.friends-add h3{margin:0 0 var(--space-2);font-size:var(--font-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em;color:var(--text-strong)}.friends-add-hint{margin:0 0 var(--space-4);color:var(--text-muted);font-size:var(--font-md)}.friends-add-form{display:flex;align-items:center;gap:var(--space-3);background:var(--surface-lowest);border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-2)}.friends-add-form.invalid{border-color:var(--danger)}.friends-add-form input{flex:1;min-width:0;background:none;border:none;color:var(--text-default);font-size:var(--font-md);padding:6px 8px}.friends-add-form input:focus{outline:none}.friends-add-form button{background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-size:var(--font-md);font-weight:var(--fw-medium);white-space:nowrap}.friends-add-form button:hover:not(:disabled){background:var(--accent-hover)}.friends-add-form button:disabled{opacity:.5;cursor:not-allowed}.friends-add-ok{margin-top:var(--space-2);color:var(--online);font-size:var(--font-md)}.friends-add-error{margin-top:var(--space-2);color:var(--danger);font-size:var(--font-md)}.dm-item{gap:10px;height:42px}.dm-avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px}.dm-group-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--surface-lowest);color:var(--text-secondary)}.dm-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-item.unread .dm-name{color:var(--text-default);font-weight:var(--fw-medium)}.dm-close{display:none;align-items:center;flex-shrink:0;color:var(--text-muted)}.dm-item:hover .dm-close{display:flex}.dm-close:hover{color:var(--text-default)}.group-picker{display:flex;flex-direction:column;gap:var(--space-1)}.group-picker-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer}.group-picker-row:hover{background:var(--interactive-hover)}.group-picker button{margin-top:var(--space-3);background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:10px;font-size:var(--font-md);font-weight:var(--fw-medium)}.group-picker button:disabled{opacity:.5;cursor:not-allowed}.peer-tile.speaking{box-shadow:inset 0 0 0 2px var(--online)}.peer-tile-controls{position:absolute;bottom:8px;left:8px;right:8px;display:flex;align-items:center;gap:var(--space-1);background:var(--scrim-heavy);border-radius:var(--radius-pill);padding:4px 8px;box-shadow:var(--shadow-mid)}.peer-tile-controls .tiny-btn{background:transparent;color:var(--text-on-fill);border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.peer-tile-controls .tiny-btn:hover{background:var(--scrim-light)}.peer-tile-controls input[type=range]{flex:1;accent-color:var(--accent)}.peer-name .muted-icon svg{display:block}.voice-panel.embedded{flex:0 0 auto;max-height:46vh;border-bottom:1px solid var(--divider);background:var(--surface-base)}.voice-panel.embedded .peer-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));padding:var(--space-3);gap:var(--space-2)}.voice-panel.embedded .voice-controls{padding:var(--space-2) var(--space-3)}.incoming-call{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:1000;background:var(--surface-float);border:1px solid var(--divider-soft);border-radius:var(--radius-md);padding:20px 28px;display:flex;flex-direction:column;align-items:center;gap:6px;box-shadow:var(--shadow-high);min-width:260px}.incoming-call-name{font-size:var(--font-lg);font-weight:var(--fw-semibold);color:var(--text-strong);margin-top:var(--space-1)}.incoming-call-sub{font-size:var(--font-md);color:var(--text-muted)}.incoming-call-actions{display:flex;gap:var(--space-4);margin-top:var(--space-3)}.call-accept,.call-decline{width:48px;height:48px;border-radius:50%;border:none;color:var(--text-on-fill);display:flex;align-items:center;justify-content:center}.call-accept{background:var(--online-fill)}.call-decline{background:var(--danger)}.call-accept:hover,.call-decline:hover{filter:brightness(1.15)}.call-decline.small{width:26px;height:26px}.outgoing-call{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;background:var(--surface-float);border:1px solid var(--divider-soft);border-radius:var(--radius-pill);padding:8px 10px 8px 18px;display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-md);color:var(--text-default);box-shadow:var(--shadow-mid)}.outgoing-call-dot{width:8px;height:8px;border-radius:50%;background:var(--online);animation:call-pulse 1.2s ease-in-out infinite}@keyframes call-pulse{0%,to{opacity:1}50%{opacity:.25}}.tile-live{position:absolute;top:6px;right:6px;display:flex;align-items:center;gap:6px}.live-badge{display:flex;align-items:center;gap:5px;background:var(--scrim-strong);color:var(--text-on-fill);font-size:var(--font-xs);font-weight:var(--fw-bold);letter-spacing:.06em;padding:3px 7px;border-radius:var(--radius-sm)}.live-count{display:flex;align-items:center;gap:3px;background:var(--scrim-strong);color:var(--text-default);font-size:var(--font-xs);font-weight:var(--fw-semibold);padding:3px 7px;border-radius:var(--radius-sm)}.live-count svg{display:block}.watch-btn{display:flex;align-items:center;gap:5px;background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:4px 9px;font-size:var(--font-xs);font-weight:var(--fw-semibold)}.watch-btn:hover{filter:brightness(1.12)}.watch-btn{white-space:nowrap}.voice-panel.embedded .watch-label{display:none}.voice-panel.embedded .tile-live{gap:var(--space-1)}.watch-btn.watching{background:var(--scrim-strong);color:var(--text-default)}.screen-tile-badge .live-count{padding:0 0 0 6px;background:none}.voice-panel.embedded.has-share{max-height:72vh}.voice-panel.embedded .voice-stage{padding:var(--space-3) var(--space-3) 0}.voice-panel.embedded .peer-grid.filmstrip{grid-auto-columns:118px;padding:var(--space-2) var(--space-3)}.modal-card:has(.server-settings){width:520px}.server-settings{display:flex;flex-direction:column;gap:18px;max-height:68vh;overflow-y:auto}.settings-section{display:flex;flex-direction:column;gap:6px}.settings-label{font-size:var(--font-xs);font-weight:var(--fw-bold);letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted)}.settings-row{display:flex;gap:var(--space-2);align-items:center}.settings-row input{flex:1;min-width:0;background:var(--surface-lowest);border:1px solid var(--surface-lowest);border-radius:var(--radius-sm);padding:9px 10px;color:var(--text-default);font-size:var(--font-md)}.settings-row input:read-only{color:var(--text-muted)}.settings-row button{display:flex;align-items:center;gap:6px;background:var(--surface-raised);color:var(--text-default);border:none;border-radius:var(--radius-sm);padding:9px 14px;font-size:var(--font-md);font-weight:var(--fw-semibold);white-space:nowrap}.settings-row button:hover:not(:disabled){background:var(--interactive-active)}.settings-row button:disabled{opacity:.45}.settings-hint{margin:0;font-size:var(--font-sm);color:var(--text-muted)}.settings-members{display:flex;flex-direction:column;max-height:200px;overflow-y:auto;background:var(--surface-lowest);border-radius:var(--radius-sm);padding:var(--space-1)}.settings-member{display:flex;align-items:center;gap:var(--space-2);padding:6px 8px;border-radius:var(--radius-sm)}.settings-member:hover{background:var(--interactive-hover)}.settings-member-name{flex:1;min-width:0;color:var(--text-default);font-size:var(--font-md);overflow:hidden;text-overflow:ellipsis}.settings-member-actions{display:flex;gap:10px;opacity:0}.settings-member:hover .settings-member-actions,.settings-member:focus-within .settings-member-actions{opacity:1}.link-btn.danger{color:var(--danger)}.danger-zone{border-top:1px solid var(--divider-soft);padding-top:14px}.danger-zone .settings-label{color:var(--danger)}.danger-btn{background:var(--danger);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:9px 14px;font-size:var(--font-md);font-weight:var(--fw-semibold);white-space:nowrap}.danger-btn:hover:not(:disabled){background:var(--danger-hover)}.danger-btn:disabled{opacity:.45}.channel-type-toggle{display:flex;gap:var(--space-2)}.channel-type-toggle button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--surface-lowest);color:var(--text-muted);border:1px solid transparent;border-radius:var(--radius-sm);padding:10px;font-size:var(--font-md);font-weight:var(--fw-semibold)}.channel-type-toggle button:hover{color:var(--text-default)}.channel-type-toggle button.active{background:var(--interactive-active);color:var(--text-strong);border-color:var(--accent)}.modal-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-md);color:var(--text-default)}.modal-check.disabled{color:var(--text-subtle);cursor:not-allowed}.modal-check em{font-style:normal;font-size:var(--font-xs);color:var(--text-subtle);margin-left:auto}.chat-message.has-reply{flex-wrap:wrap}.chat-reply-context{flex:0 0 100%;display:flex;align-items:center;gap:6px;margin:0 0 2px 56px;padding:0;background:none;border:none;color:var(--text-muted);font-size:var(--font-md);text-align:left;cursor:pointer;min-width:0;position:relative}.chat-reply-context:before{content:"";position:absolute;left:-36px;bottom:-18px;width:32px;height:28px;border-left:2px solid var(--divider-soft);border-top:2px solid var(--divider-soft);border-top-left-radius:6px}.chat-reply-context .reply-author{color:var(--text-default);font-weight:var(--fw-medium);flex-shrink:0}.chat-reply-context .reply-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.chat-reply-context:hover .reply-preview,.chat-reply-context:hover .reply-author{color:var(--text-strong)}.chat-message.flash{background:var(--accent-flash)}.chat-reactions{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-1)}.reaction-chip{display:flex;align-items:center;gap:5px;background:var(--surface-raised);border:1px solid transparent;border-radius:var(--radius-md);padding:2px 7px;color:var(--text-default);font-size:var(--font-md);line-height:20px;cursor:pointer;transition:background var(--dur-fast) var(--ease-in-out),border-color var(--dur-fast) var(--ease-in-out)}.reaction-chip:hover{border-color:var(--text-subtle)}.reaction-chip.mine{background:var(--accent-soft);border-color:var(--accent)}.reaction-chip.mine .reaction-count{color:var(--text-strong)}.reaction-chip .reaction-emoji{font-size:var(--font-lg)}.reaction-chip .reaction-count{color:var(--text-muted);font-variant-numeric:tabular-nums}.reaction-chip.add{color:var(--text-muted);padding:2px 8px}.reaction-chip.add:hover{color:var(--text-strong)}.chat-reply-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);background:var(--surface-low);border-radius:var(--radius-md) var(--radius-md) 0 0;padding:7px 16px;font-size:var(--font-md);color:var(--text-muted)}.chat-reply-bar strong{color:var(--text-strong);font-weight:var(--fw-semibold)}.chat-reply-bar button{background:none;border:none;color:var(--text-muted);display:flex;align-items:center;padding:2px;border-radius:var(--radius-sm);cursor:pointer}.chat-reply-bar button:hover{color:var(--text-strong);background:var(--interactive-hover)}.chat-reply-bar+.chat-input-box{border-radius:0 0 var(--radius-md) var(--radius-md)}.context-menu.emoji-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;min-width:0;width:auto;padding:6px}.context-menu.emoji-picker button{font-size:var(--font-xl);line-height:1;padding:6px;justify-content:center;border-radius:var(--radius-sm);min-width:0}.context-menu.emoji-picker button:hover{background:var(--interactive-hover)}.unread-badge.mention,.server-unread-badge.mention{background:var(--warning);color:var(--surface-lowest)}.chat-message.mentioned{background:var(--warning-soft);box-shadow:inset 2px 0 0 var(--warning)}.chat-message-content .md-p{margin:0;white-space:pre-wrap}.chat-message-content .md-p+.md-p{margin-top:2px}.md-code{background:var(--surface-lowest);border:1px solid var(--divider-soft);border-radius:var(--radius-sm);padding:1px 4px;font-family:Consolas,Courier New,monospace;font-size:var(--font-md)}.md-codeblock{background:var(--surface-lowest);border:1px solid var(--divider-soft);border-radius:var(--radius-sm);margin:var(--space-1) 0;padding:8px 10px;overflow-x:auto;max-width:100%}.md-codeblock code{font-family:Consolas,Courier New,monospace;font-size:var(--font-md);color:var(--text-default);white-space:pre}.md-quote{margin:2px 0;padding-left:10px;border-left:4px solid var(--divider-soft);border-radius:2px;white-space:pre-wrap}.md-link{color:var(--link);text-decoration:none}.md-link:hover{text-decoration:underline}.md-spoiler{background:var(--surface-float);color:transparent;border:none;border-radius:var(--radius-sm);padding:0 2px;font:inherit;cursor:pointer}.md-spoiler *{visibility:hidden}.md-spoiler.revealed{background:var(--interactive-hover);color:inherit;cursor:text}.md-spoiler.revealed *{visibility:visible}span.md-spoiler{cursor:default}.chat-input-box textarea{flex:1;background:none;border:none;padding:11px 0;color:var(--text-default);font-size:var(--font-md);font-family:inherit;line-height:1.375;resize:none;overflow-y:auto;max-height:200px}.chat-input-box textarea:focus{outline:none}.chat-input-box{align-items:flex-end}.chat-input-box .attach-btn{margin-bottom:var(--space-2)}.chat-attachments{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);margin-top:6px}.attachment-image img{display:block;max-width:min(520px,100%);max-height:360px;border-radius:var(--radius-md);background:var(--surface-lowest)}.attachment-failed{display:flex;align-items:center;gap:var(--space-2);padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-muted);font-size:var(--font-md)}.attachment-file{display:flex;align-items:center;gap:var(--space-3);max-width:min(420px,100%);padding:10px 12px;border:1px solid var(--divider-soft);border-radius:var(--radius-md);background:var(--surface-low)}.attachment-file .attachment-icon{color:var(--accent);flex-shrink:0}.attachment-meta{display:flex;flex-direction:column;min-width:0;flex:1}.attachment-name{color:var(--link);font-size:var(--font-md);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-size{color:var(--text-muted);font-size:var(--font-sm)}.attachment-file button{background:none;border:none;cursor:pointer;padding:6px;color:var(--text-muted);border-radius:var(--radius-sm);flex-shrink:0}.attachment-file button:hover:not(:disabled){color:var(--text-strong);background:var(--interactive-hover)}.attachment-file button:disabled{opacity:.5;cursor:default}.chat-attachment-tray{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-2) 0}.attachment-chip{display:flex;align-items:center;gap:var(--space-2);padding:6px 8px;border-radius:var(--radius-md);background:var(--surface-raised);font-size:var(--font-sm);color:var(--text-default);max-width:220px}.attachment-chip.uploading{opacity:.6}.attachment-chip img{width:40px;height:40px;object-fit:cover;border-radius:var(--radius-sm);background:var(--surface-lowest)}.attachment-chip-name{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip-size{color:var(--text-muted)}.attachment-chip button{background:none;border:none;cursor:pointer;padding:2px;color:var(--text-muted);display:flex}.attachment-chip button:hover{color:var(--danger)}.chat-upload-error{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 8px 6px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);font-size:var(--font-md)}.chat-upload-error button{background:none;border:none;cursor:pointer;color:var(--danger);display:flex;padding:2px}.voice-header-count{display:flex;align-items:center;gap:var(--space-1);margin-left:var(--space-2);padding:2px var(--space-2);background:var(--surface-lowest);border-radius:var(--radius-pill);font-size:var(--font-xs);font-weight:var(--fw-semibold);color:var(--text-muted)}.voice-header-count svg{display:block}.voice-ctl{width:44px;height:44px;border-radius:50%;border:none;background:var(--control);color:var(--text-on-fill);display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.voice-ctl:hover{background:var(--interactive-active)}.voice-ctl.active{background:var(--text-strong);color:var(--surface-lowest)}.voice-ctl.active:hover{background:var(--text-default)}.voice-ctl.danger,.voice-ctl.leave-btn{background:var(--danger)}.voice-ctl.danger:hover,.voice-ctl.leave-btn:hover{background:var(--danger-hover)}.voice-ctl.leave-btn{margin-left:var(--space-4)}.voice-panel.embedded .voice-ctl{width:36px;height:36px}.voice-panel.embedded .voice-ctl svg{width:17px;height:17px}.voice-solo-hint{margin:0;padding:0 var(--space-4) var(--space-2);text-align:center;font-size:var(--font-md);color:var(--text-muted)}.dm-identity{display:flex;flex-direction:column;min-width:0;flex:1}.dm-subtitle{font-size:var(--font-xs);color:var(--text-subtle);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-item:has(.dm-subtitle){height:46px}.dm-group-avatar svg{display:block}.dm-intro{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-6) 0 var(--space-4)}.dm-intro-avatar.group{width:72px;height:72px;border-radius:50%;background:var(--surface-raised);color:var(--text-secondary);display:flex;align-items:center;justify-content:center}.dm-intro-title{margin:var(--space-2) 0 0;font-size:var(--font-xl);font-weight:var(--fw-bold);color:var(--text-strong)}.dm-intro-body{margin:0;font-size:var(--font-md);color:var(--text-muted);line-height:var(--lh-body)}.avatar-wrap{position:relative;display:inline-flex;flex-shrink:0}.avatar-status{position:absolute;bottom:-1px;right:-1px;border-radius:50%;border:3px solid var(--avatar-ring, var(--surface-low));box-sizing:content-box}.avatar-status.online{background:var(--online)}.avatar-status.offline{background:var(--offline)}.avatar-status.idle{background:var(--warning)}.avatar-status.dnd{background:var(--danger)}.status-swatch{width:10px;height:10px;border-radius:50%;flex:none}.status-swatch.online{background:var(--online)}.status-swatch.idle{background:var(--warning)}.status-swatch.dnd{background:var(--danger)}.status-swatch.invisible{background:var(--offline)}.context-menu button:hover .status-swatch{box-shadow:0 0 0 2px var(--text-on-fill)}.member-item:hover,.dm-item:hover{--avatar-ring: var(--interactive-hover)}.dm-item.active{--avatar-ring: var(--interactive-active)}.user-panel{--avatar-ring: var(--surface-float)}.user-panel-identity:hover{--avatar-ring: var(--interactive-hover)}.friends-view{--avatar-ring: var(--surface-base)}.friend-row:hover{--avatar-ring: var(--interactive-hover)}.top-bar{--avatar-ring: var(--surface-base)}.top-bar-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.top-bar-count{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0;padding:2px var(--space-2);background:var(--surface-lowest);border-radius:var(--radius-pill);font-size:var(--font-xs);font-weight:var(--fw-semibold);color:var(--text-muted)}.top-bar-count svg{display:block}.voice-empty-icon{display:flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:var(--surface-raised);color:var(--text-subtle)}.voice-panel.empty h2{margin:0;font-size:var(--font-xl);color:var(--text-strong)}.voice-empty-body{margin:0;max-width:400px;text-align:center;font-size:var(--font-md);color:var(--text-muted);line-height:var(--lh-body)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--radius-pill);border:3px solid transparent;background-clip:content-box;transition:background-color var(--dur-fast) var(--ease-in-out)}*::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}*::-webkit-scrollbar-button{display:none}*::-webkit-scrollbar-corner{background:transparent}.profile-card{position:fixed;z-index:1200;width:300px;background:var(--surface-float);border-radius:var(--radius-md);box-shadow:var(--shadow-high);overflow:hidden;--profile-accent: var(--accent);--avatar-ring: var(--surface-float)}.profile-card.measuring{visibility:hidden}.profile-card-avatar{margin:-36px 0 0 var(--space-4);width:max-content;border-radius:50%;box-shadow:0 0 0 6px var(--surface-float)}.profile-card-body{padding:var(--space-3) var(--space-4) var(--space-4)}.profile-card-display{font-size:var(--font-xl);font-weight:var(--fw-bold);color:var(--text-strong);line-height:var(--lh-tight);word-break:break-word}.profile-card-subline{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1);margin-top:2px}.profile-card-username{font-size:var(--font-sm);color:var(--text-secondary)}.profile-card-label{margin-top:var(--space-3);font-size:var(--font-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.02em;color:var(--text-secondary)}.profile-card-about{margin:var(--space-1) 0 0;font-size:var(--font-sm);color:var(--text-default);line-height:var(--lh-body);white-space:pre-wrap;word-break:break-word}.profile-card-meta{margin:var(--space-1) 0 0;font-size:var(--font-sm);color:var(--text-default)}.profile-card-action{margin-top:var(--space-4);width:100%;padding:var(--space-2) var(--space-3);background:var(--control);color:var(--text-strong);border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:var(--fw-medium)}.profile-card-action:hover{background:var(--interactive-hover)}.author-avatar-btn{background:none;padding:0;border-radius:50%;display:block}.author-avatar-btn:hover{opacity:.85}.author-name-btn{background:none;padding:0;font:inherit;color:inherit}.author-name-btn:hover{text-decoration:underline}.settings-hint{font-size:var(--font-xs);color:var(--text-muted);font-weight:var(--fw-normal)}.settings-field textarea{width:100%;padding:var(--space-2) var(--space-3);background:var(--surface-lowest);color:var(--text-default);border-radius:var(--radius-sm);font:inherit;font-size:var(--font-sm);line-height:var(--lh-body);resize:vertical;min-height:66px}.accent-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.accent-swatch{width:28px;height:28px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px var(--scrim-light);transition:transform var(--dur-base) var(--ease-out)}.accent-swatch:hover{transform:scale(1.1)}.accent-swatch.selected{box-shadow:0 0 0 2px var(--surface-raised),0 0 0 4px var(--text-strong)}.accent-swatch.none{background:var(--surface-lowest);position:relative}.accent-swatch.none:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:linear-gradient(45deg,transparent 45%,var(--danger) 45%,var(--danger) 55%,transparent 55%)}.account-about{margin:var(--space-2) 0 var(--space-1);font-size:var(--font-sm);color:var(--text-default);line-height:var(--lh-body);white-space:pre-wrap}.account-card{border-left:3px solid var(--profile-accent, transparent)}.voice-audio{display:none}.invite-embed{margin-top:var(--space-1);max-width:420px;background:var(--surface-lowest);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-3)}.invite-embed.invalid{border-left-color:var(--offline)}.invite-label{display:block;font-size:var(--font-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);margin-bottom:var(--space-2)}.invite-body{display:flex;align-items:center;gap:var(--space-3)}.invite-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:var(--radius-md);background:var(--surface-raised);color:var(--text-secondary)}.invite-text{flex:1;min-width:0}.invite-name{margin:0;font-size:var(--font-md);font-weight:var(--fw-semibold);color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-meta{margin:2px 0 0;font-size:var(--font-sm);color:var(--text-muted)}.invite-btn{flex:none;background:var(--online-fill);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:9px 16px;font-size:var(--font-md);font-weight:var(--fw-medium)}.invite-btn:hover:not(:disabled){background:var(--online-fill-hover)}.invite-btn:disabled{background:var(--control);opacity:.8}.invite-modal{display:flex;flex-direction:column;gap:var(--space-4)}.invite-friend-list{display:flex;flex-direction:column;max-height:280px;overflow-y:auto;background:var(--surface-lowest);border-radius:var(--radius-sm);padding:var(--space-1)}.invite-friend-row{display:flex;align-items:center;gap:var(--space-2);padding:6px 8px;border-radius:var(--radius-sm)}.invite-friend-row:hover{background:var(--interactive-hover)}.invite-friend-name{flex:1;min-width:0;color:var(--text-default);font-size:var(--font-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-send-btn{flex:none;background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:6px 14px;font-size:var(--font-md);font-weight:var(--fw-medium)}.invite-send-btn:hover:not(:disabled){background:var(--accent-hover)}.invite-send-btn:disabled{background:var(--control);opacity:.8}.invite-send-btn.done{background:var(--online-fill)}.invite-modal-code{display:flex;flex-direction:column;gap:var(--space-2)}.chat-messages{padding-left:0;padding-right:0;position:relative}.chat-messages{padding-bottom:var(--space-4)}.chat-message{margin:0;padding:2px 48px 2px var(--space-4)}.chat-message.first-of-group{margin-top:var(--space-4)}.chat-day>.chat-date-divider,.chat-row>.chat-unread-divider,.chat-messages>.chat-load-more{padding-left:var(--space-4);padding-right:var(--space-4)}.chat-message{transition:background var(--dur-fast) var(--ease-in-out)}.chat-message.editing{background:var(--message-hover)}.chat-message-actions{background:var(--surface-raised);border-color:var(--divider-soft);border-radius:var(--radius-sm);box-shadow:var(--shadow-mid)}.chat-reply-context{margin-left:calc(40px + var(--space-4));flex-basis:calc(100% - 40px - var(--space-4))}.chat-reply-context .avatar{margin:0 2px}.chat-edit{display:flex;flex-direction:column;gap:var(--space-1)}textarea.chat-edit-input{width:100%;background:var(--surface-lowest);border:1px solid var(--divider-soft);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-default);font-size:var(--font-body);line-height:var(--lh-body);font-family:inherit;resize:none;overflow-y:auto}textarea.chat-edit-input:focus{outline:none;border-color:var(--accent)}.chat-edit-hint{font-size:var(--font-xs);color:var(--text-subtle)}.chat-edit-hint .link-btn{font-size:var(--font-xs)}.chat-intro{padding:var(--space-6) var(--space-4) var(--space-4)}.dm-intro{padding-left:var(--space-4);padding-right:var(--space-4)}.chat-intro-icon{display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:50%;background:var(--surface-raised);color:var(--text-default);margin-bottom:var(--space-3)}.chat-intro-title{margin:0 0 var(--space-2);font-size:var(--font-xl);font-weight:var(--fw-bold);color:var(--text-strong)}.chat-intro-body{margin:0;font-size:var(--font-md);color:var(--text-muted);line-height:var(--lh-body)}.chat-skeletons{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4)}.chat-skeleton{display:flex;gap:var(--space-4);align-items:flex-start}.skeleton-avatar{width:40px;height:40px;border-radius:50%;flex:none;background:var(--surface-raised)}.skeleton-lines{flex:1;display:flex;flex-direction:column;gap:var(--space-2)}.skeleton-line{height:10px;border-radius:var(--radius-sm);background:var(--surface-raised)}.skeleton-line.short{width:22%}.chat-skeleton .skeleton-avatar,.chat-skeleton .skeleton-line{animation:skeleton-pulse 1.4s var(--ease-in-out) infinite}.chat-skeleton:nth-child(2) .skeleton-line{animation-delay:80ms}.chat-skeleton:nth-child(3) .skeleton-line{animation-delay:.16s}.chat-skeleton:nth-child(4) .skeleton-line{animation-delay:.24s}.chat-skeleton:nth-child(5) .skeleton-line{animation-delay:.32s}@keyframes skeleton-pulse{0%,to{opacity:.5}50%{opacity:.9}}.chat-scroll{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.chat-jump-bar{position:absolute;left:var(--space-4);right:var(--space-4);bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:6px var(--space-3);font-size:var(--font-sm);font-weight:var(--fw-medium);box-shadow:var(--shadow-mid);animation:jump-bar-in var(--dur-base) var(--ease-out)}.chat-jump-bar:hover{background:var(--accent-hover)}.chat-jump-bar-action{display:inline-flex;align-items:center;gap:var(--space-1)}@keyframes jump-bar-in{0%{transform:translateY(100%)}to{transform:none}}.chat-typing{min-height:24px;display:flex;align-items:center}.chat-input-box.uploading{opacity:.75}.chat-delete-lede{margin:0 0 var(--space-3);font-size:var(--font-md);color:var(--text-muted)}.chat-delete-preview{display:flex;flex-direction:column;gap:2px;background:var(--surface-base);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4);font-size:var(--font-md);color:var(--text-default);max-height:180px;overflow-y:auto;overflow-wrap:anywhere}.chat-delete-preview strong{color:var(--text-strong);font-weight:var(--fw-semibold)}.occupant-avatar{display:inline-flex;border-radius:50%;flex:none}.occupant-avatar .avatar{box-shadow:0 0 0 2px transparent;transition:box-shadow var(--dur-fast) var(--ease-in-out)}.occupant-avatar.speaking .avatar{box-shadow:0 0 0 2px var(--online)}.chat-char-count{align-self:flex-end;margin-bottom:11px;font-size:var(--font-xs);color:var(--text-subtle);font-variant-numeric:tabular-nums}.chat-char-count.over{color:var(--danger);font-weight:var(--fw-semibold)}.peer-name-btn,.occupant-name-btn{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.peer-name-btn:hover,.occupant-name-btn:hover{text-decoration:underline}.voice-occupant .occupant-name-btn{flex:1;min-width:0}.peer-tile .author-avatar-btn{border-radius:50%}.profile-banner{position:relative;background:var(--banner-color, var(--profile-accent, var(--surface-raised)));overflow:hidden}.profile-banner-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.profile-card-banner{height:100px}.account-preview{border-radius:var(--radius-md);overflow:hidden;background:var(--surface-low)}.account-preview>.account-card{border-radius:0}.account-preview-banner{height:120px}.banner-edit{display:flex;flex-direction:column;gap:var(--space-2)}.banner-edit-preview{height:120px;border-radius:var(--radius-md)}.banner-edit-actions{display:flex;gap:var(--space-4)}.chat-day{display:flex;flex-direction:column}.chat-day>.chat-date-divider{position:sticky;top:0;z-index:2;background:var(--surface-base);margin:0;padding-top:var(--space-4);padding-bottom:var(--space-2)}.chat-day:first-of-type>.chat-date-divider{padding-top:var(--space-2)}.chat-scroll.has-unread-bar .chat-day>.chat-date-divider{top:calc(var(--font-sm) * var(--lh-tight) + 12px)}.chat-message-content{overflow-wrap:anywhere}.chat-messages{scrollbar-gutter:stable}.tooltip-wrap{position:relative;display:inline-flex}.tooltip-bubble{position:fixed;z-index:900;background:var(--surface-float);color:var(--text-strong);font-size:var(--font-sm);font-weight:var(--fw-semibold);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-mid)}.tooltip-top{transform:translate(-50%,-100%)}.tooltip-bottom{transform:translate(-50%)}.tooltip-right{transform:translateY(-50%)}.tooltip-left{transform:translate(-100%,-50%)}.tooltip-bubble:after{content:"";position:absolute;border:6px solid transparent}.tooltip-top:after{top:100%;left:50%;margin-left:-6px;border-top-color:var(--surface-float)}.tooltip-bottom:after{bottom:100%;left:50%;margin-left:-6px;border-bottom-color:var(--surface-float)}.tooltip-right:after{right:100%;top:50%;margin-top:-6px;border-right-color:var(--surface-float)}.tooltip-left:after{left:100%;top:50%;margin-top:-6px;border-left-color:var(--surface-float)}.chat-input-box>.attach-tooltip{align-self:flex-end}.member-owner-tip{margin-left:auto}.tooltip-rich .tooltip-bubble{white-space:normal;max-width:260px;text-align:center;font-weight:var(--fw-medium)}.chat-input{padding-bottom:0}.chat-typing{min-height:24px;padding:0 var(--space-4) var(--space-2)}.chat-panel{position:relative}.chat-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--scrim);pointer-events:none;animation:drop-overlay-in var(--dur-fast) var(--ease-out)}.chat-drop-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);width:100%;height:100%;border:2px dashed var(--accent);border-radius:var(--radius-md);color:var(--text-strong);text-align:center}.chat-drop-card strong{font-size:var(--font-lg);font-weight:var(--fw-bold)}.chat-drop-card span{font-size:var(--font-sm);color:var(--text-muted)}.chat-drop-card svg{color:var(--accent)}@keyframes drop-overlay-in{0%{opacity:0}to{opacity:1}}.chat-input{position:relative}.emoji-popover{position:absolute;z-index:500;right:0;bottom:calc(100% + var(--space-2));width:340px;max-width:calc(100vw - var(--space-8));display:flex;flex-direction:column;background:var(--surface-float);border:1px solid var(--divider-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-mid);overflow:hidden}.emoji-search{margin:var(--space-3) var(--space-3) var(--space-2);background:var(--surface-lowest);border:1px solid var(--divider-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);color:var(--text-default);font-size:var(--font-md);font-family:inherit}.emoji-search:focus{outline:none;border-color:var(--accent)}.emoji-scroll{overflow-y:auto;max-height:280px;padding:0 var(--space-3) var(--space-3)}.emoji-group-name{position:sticky;top:0;z-index:1;background:var(--surface-float);padding:var(--space-2) 0 var(--space-1);font-size:var(--font-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em;color:var(--text-subtle)}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr)}.emoji-cell{background:none;border:none;cursor:pointer;width:100%;aspect-ratio:1;padding:0;display:flex;align-items:center;justify-content:center;font-size:var(--font-xl);line-height:1;border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-in-out)}.emoji-cell:hover,.emoji-cell:focus-visible{background:var(--surface-raised);outline:none}.emoji-grid>.tooltip-wrap{display:flex}.emoji-empty{padding:var(--space-4) 0;font-size:var(--font-sm);color:var(--text-muted);text-align:center}.emoji-btn{background:none;border:none;color:var(--text-muted);display:flex;padding:0;cursor:pointer}.emoji-btn:hover,.emoji-btn.open{color:var(--text-default)}.chat-input-box>.emoji-tooltip{align-self:flex-end;margin-bottom:var(--space-2)}.mention-popover{position:absolute;z-index:500;left:0;right:0;bottom:calc(100% + var(--space-2));display:flex;flex-direction:column;background:var(--surface-float);border:1px solid var(--divider-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-mid);padding:var(--space-2);gap:2px;overflow:hidden}.mention-item{display:flex;align-items:center;gap:var(--space-2);background:none;border:none;cursor:pointer;text-align:left;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-md);font-family:inherit}.mention-item.active{background:var(--accent);color:var(--text-on-fill)}.mention-name{font-weight:var(--fw-semibold)}.mention-username{color:var(--text-subtle);font-size:var(--font-sm)}.mention-item.active .mention-username{color:var(--text-on-fill);opacity:.75}.top-bar-divider{width:1px;height:24px;flex:none;background:var(--divider);margin:0 var(--space-1)}.top-bar-topic{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-sm);font-weight:var(--fw-normal);color:var(--text-muted)}.top-bar>.top-bar-topic-tip{min-width:0;flex:0 1 auto}.chat-unread-bar{position:absolute;left:var(--space-4);right:var(--space-4);top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--surface-float);color:var(--text-default);border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:var(--shadow-mid);font-size:var(--font-sm);font-weight:var(--fw-medium);animation:unread-bar-in var(--dur-base) var(--ease-out)}.chat-unread-bar button{background:none;border:none;cursor:pointer;color:inherit;font:inherit;padding:6px var(--space-3)}.chat-unread-bar-jump{flex:1;text-align:left;min-width:0}.chat-unread-bar-jump:hover{color:var(--text-strong)}.chat-unread-bar-action{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--text-muted);flex:none}.chat-unread-bar-action:hover{color:var(--text-strong)}@keyframes unread-bar-in{0%{transform:translateY(-100%)}to{transform:none}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);height:100%;padding:var(--space-4);color:var(--text-muted);text-align:center}.empty-state-icon{color:var(--text-subtle);display:flex}.empty-state-title{margin:var(--space-2) 0 0;font-size:var(--font-md);font-weight:var(--fw-semibold);color:var(--text-secondary)}.empty-state-body{margin:0;max-width:400px;font-size:var(--font-sm);line-height:var(--lh-body)}.empty-state-inline{height:auto;padding:var(--space-6) var(--space-3)}.empty-state-inline .empty-state-title{font-size:var(--font-sm)}.empty-state-inline .empty-state-body{font-size:var(--font-xs)}.chat-message.entering{animation:message-in var(--dur-base) var(--ease-out)}@keyframes message-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.chat-unread-divider.fading{animation:divider-out var(--dur-slow) var(--ease-in-out) forwards;overflow:hidden}@keyframes divider-out{0%{opacity:1;max-height:40px;margin-top:var(--space-2);margin-bottom:var(--space-2)}to{opacity:0;max-height:0;margin-top:0;margin-bottom:0}}.channel-drop-line{height:2px;margin:1px var(--space-2);background:var(--accent);border-radius:1px;pointer-events:none}.channel-item[draggable=true]{cursor:grab}.channel-item[draggable=true]:active{cursor:grabbing}.composer-send{display:none;background:none;border:none;padding:0;color:var(--accent);align-self:flex-end;margin-bottom:var(--space-2)}.composer-send:disabled{color:var(--icon-faint);cursor:default}@media(max-width:780px),(hover:none){.composer-send{display:flex}}.peer-tile.self video{transform:scaleX(-1)}.peer-grid{grid-template-columns:repeat(auto-fit,minmax(180px,300px))}.peer-grid.video-active{grid-template-columns:repeat(auto-fit,minmax(220px,420px))}.voice-panel.embedded .peer-grid:not(.video-active){grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.tile-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);max-width:100%;padding:0 var(--space-2)}.tile-placeholder-note{display:flex;align-items:center;gap:5px;font-size:var(--font-xs);color:var(--text-muted)}.tile-placeholder-note svg{display:block}.peer-grid.filmstrip,.peer-grid.filmstrip.video-active,.voice-panel.embedded .peer-grid.filmstrip,.voice-panel.embedded .peer-grid.filmstrip:not(.video-active){grid-template-columns:none}.peer-grid.filmstrip .peer-name{font-size:var(--font-xs)}.nav-toggle{display:none;background:none;border:none;color:var(--text-default);width:38px;height:38px;margin-left:calc(var(--space-2) * -1);align-items:center;justify-content:center;border-radius:var(--radius-sm);flex-shrink:0}.nav-toggle:hover{background:var(--interactive-hover);color:var(--text-strong)}.nav-scrim,.top-bar.empty-bar{display:none}.channel-item.unread:before{content:"";position:absolute;left:calc(-1 * var(--space-2));top:50%;width:var(--space-1);height:var(--space-2);margin-top:calc(-1 * var(--space-1));border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--text-strong)}.channel-item.unread.active:before{display:none}.spinner{display:inline-block;flex:none;border-radius:50%;border:2px solid var(--text-muted);border-right-color:transparent;animation:auth-spin 1s linear infinite}.spinner-16{width:16px;height:16px}.spinner-24{width:24px;height:24px;border-width:3px}.spinner-32{width:32px;height:32px;border-width:3px}.chat-load-more{display:flex;justify-content:center}.busy-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.busy-btn .spinner{border-color:currentColor;border-right-color:transparent}.busy-btn:disabled{opacity:.5;cursor:not-allowed}.list-skeletons{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2)}.list-skeleton{display:flex;align-items:center;gap:var(--space-3)}.list-skeleton .skeleton-avatar{width:32px;height:32px}.list-skeleton .skeleton-line{flex:none}.list-skeleton .skeleton-avatar,.list-skeleton .skeleton-line{animation:skeleton-pulse 1.4s var(--ease-in-out) infinite}.modal-overlay{animation:layer-fade var(--dur-slow) var(--ease-out)}.modal-card,.settings-card{animation:layer-in var(--dur-slow) var(--ease-out)}@keyframes layer-fade{0%{opacity:0}to{opacity:1}}@keyframes layer-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.modal-close{display:flex;align-items:center;justify-content:center;padding:var(--space-1);background:none;color:var(--text-muted);border-radius:var(--radius-sm)}.modal-close:hover{color:var(--text-strong);background:var(--interactive-hover)}.settings-close{display:flex;align-items:center;justify-content:center}.modal-card:focus,.settings-card:focus,.profile-card:focus,.context-menu:focus{outline:none}.context-menu [role=menuitem]:focus-visible{outline:none;background:var(--accent);color:var(--text-on-fill)}.settings-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-md);color:var(--text-default)}.header-search{position:relative;display:flex;align-items:center}.header-search input{width:144px;height:26px;padding:0 26px 0 var(--space-2);background:var(--surface-lowest);color:var(--text-default);border:none;border-radius:var(--radius-sm);font-size:var(--font-sm);transition:width var(--dur-base) var(--ease-in-out)}.header-search input::placeholder{color:var(--text-muted)}.header-search input:focus,.header-search.has-value input{width:240px}.header-search-icon{position:absolute;right:4px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-muted);background:none;border:none;padding:0;border-radius:var(--radius-sm)}.header-search-icon.clear:hover{color:var(--text-strong)}.search-panel-header{flex:none;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2) 0 var(--space-4);box-shadow:var(--shadow-hairline)}.search-panel-count{font-size:var(--font-sm);font-weight:var(--fw-semibold);color:var(--text-muted)}.search-panel-body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-2)}.search-status{display:flex;align-items:center;gap:var(--space-2);justify-content:center;padding:var(--space-6) 0;font-size:var(--font-md);color:var(--text-muted)}.search-error{margin:var(--space-4) var(--space-2);font-size:var(--font-md);color:var(--danger)}.search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.search-result-channel{display:flex;align-items:center;gap:2px;padding:0 var(--space-1) var(--space-1);font-size:var(--font-xs);font-weight:var(--fw-semibold);color:var(--text-muted)}.search-result-card{display:flex;gap:var(--space-2);padding:var(--space-2);background:var(--surface-base);border-radius:var(--radius-md);transition:background var(--dur-fast) var(--ease-in-out)}.search-result-card:hover{background:var(--interactive-hover)}.search-result-avatar{flex:none;align-self:flex-start;padding:0;border:none;background:none;border-radius:50%}.search-result-open{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:0;border:none;background:none;text-align:left;color:inherit}.search-result-head{display:flex;align-items:baseline;gap:var(--space-2);min-width:0}.search-result-author{font-size:var(--font-md);font-weight:var(--fw-semibold);color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-head time{flex:none;font-size:var(--font-xs);color:var(--text-muted)}.search-result-content{font-size:var(--font-md);line-height:var(--lh-body);color:var(--text-default);white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.search-result-content mark{background:var(--wash-accent);color:var(--text-strong);border-radius:2px;padding:0 1px}.search-more{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;margin-top:var(--space-2);padding:var(--space-2);background:var(--surface-raised);color:var(--text-default);border:none;border-radius:var(--radius-sm);font-size:var(--font-md)}.search-more:hover:not(:disabled){background:var(--interactive-active)}.search-more:disabled{opacity:.5;cursor:not-allowed}.chat-message:focus-within{background:var(--message-hover)}.chat-message:focus-within .chat-message-actions{opacity:1;pointer-events:auto}.chat-message:focus-within .chat-message-timestamp-gutter{opacity:1}.pin-card{position:relative}.pin-card .search-result-open{padding-right:var(--space-6)}.pin-card .search-result-content{white-space:normal}.pin-unpin{position:absolute;top:var(--space-1);right:var(--space-1);display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--text-muted)}.pin-unpin:hover{color:var(--text-strong);background:var(--interactive-active)}.top-bar-actions .icon-btn.pins-open{color:var(--text-strong)}.quick-switcher-overlay{align-items:flex-start;padding-top:12vh}.quick-switcher{width:560px;max-width:92vw;max-height:70vh;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--surface-base);border-radius:var(--radius-md);box-shadow:var(--shadow-mid);animation:layer-in var(--dur-slow) var(--ease-out)}.quick-switcher:focus{outline:none}.quick-switcher-input{flex:none;height:44px;padding:0 var(--space-3);background:var(--surface-lowest);color:var(--text-default);border:none;border-radius:var(--radius-sm);font-size:var(--font-lg)}.quick-switcher-input::placeholder{color:var(--text-muted)}.quick-switcher-list{flex:1;min-height:0;overflow-y:auto;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.quick-switcher-item{display:flex;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);font-size:var(--font-md)}.quick-switcher-item.active{background:var(--interactive-active);color:var(--text-strong)}.quick-switcher-icon{flex:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.quick-switcher-icon.glyph{border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text-default);font-size:var(--font-xs);font-weight:var(--fw-semibold)}.quick-switcher-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-switcher-label.unread{color:var(--text-strong);font-weight:var(--fw-semibold)}.quick-switcher-sub{flex:none;margin-left:auto;font-size:var(--font-xs);color:var(--text-muted);max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-switcher-item .unread-badge{flex:none}.quick-switcher-empty{margin:0;padding:var(--space-4) 0;text-align:center;color:var(--text-muted);font-size:var(--font-md)}.quick-switcher-hint{flex:none;margin:0;font-size:var(--font-xs);color:var(--text-muted)}.quick-switcher-hint kbd{font-family:inherit;font-size:var(--font-xs);color:var(--text-default);background:var(--surface-raised);border-radius:var(--radius-sm);padding:0 var(--space-1);margin:0 1px}.attachment-image-open{display:block;padding:0;border:none;background:none;border-radius:var(--radius-md);cursor:zoom-in}.image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:calc(var(--space-8) + var(--space-6)) var(--space-4);background:var(--scrim);cursor:zoom-out;animation:layer-fade var(--dur-slow) var(--ease-out)}.image-viewer:focus{outline:none}.image-viewer img{display:block;max-width:100%;max-height:100%;min-height:0;object-fit:contain;border-radius:var(--radius-sm);box-shadow:var(--shadow-high);cursor:zoom-in;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform var(--dur-base) var(--ease-in-out);animation:layer-in var(--dur-slow) var(--ease-out)}.image-viewer img.zoomed{cursor:grab}.image-viewer img.zoomed:active{cursor:grabbing}.image-viewer-name{flex:none;max-width:100%;color:var(--text-default);font-size:var(--font-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-viewer-close-wrap{position:absolute;top:calc(var(--space-3) + env(safe-area-inset-top));right:var(--space-3);z-index:1}.image-viewer-close{display:flex;align-items:center;justify-content:center;padding:var(--space-2);border:none;border-radius:var(--radius-pill);cursor:pointer;background:var(--surface-base);color:var(--text-default)}.image-viewer-close:hover{color:var(--text-strong);background:var(--surface-raised)}.peer-tile.focusable,.screen-tile.compact{cursor:pointer}.tile-focus{position:absolute;top:6px;left:6px;z-index:1;opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}.screen-tile .tile-focus{left:auto;right:6px}.peer-tile:hover .tile-focus,.screen-tile:hover .tile-focus,.tile-focus:focus-within{opacity:1}.tile-focus .tiny-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);cursor:pointer;background:var(--scrim-strong);color:var(--text-on-fill)}.tile-focus .tiny-btn:hover{background:var(--scrim-heavy)}@media(hover:none){.tile-focus{opacity:1}}.voice-stage .peer-tile{flex:1 1 0;min-width:0;min-height:0;aspect-ratio:auto}.voice-stage .peer-tile video{object-fit:contain;background:var(--video-letterbox)}.peer-grid .screen-tile{flex:none;aspect-ratio:16 / 9}.peer-grid .screen-tile .screen-tile-badge{top:6px;left:6px;padding:2px 8px;font-size:var(--font-xs)}.peer-grid.strip-hidden{display:none}.share-preview{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;background:var(--video-letterbox);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:inset 0 0 0 1px var(--divider-soft)}.share-preview-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6);transition:filter var(--dur-fast) var(--ease-out)}.share-preview:hover .share-preview-img{filter:brightness(.75)}.share-preview-empty{color:var(--text-muted);display:flex}.share-preview-play-wrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.share-preview-play{width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--scrim-heavy);color:var(--text-on-fill);box-shadow:var(--shadow-mid);transition:background var(--dur-fast) var(--ease-out)}.share-preview-play svg{margin-left:3px}.share-preview:hover .share-preview-play,.share-preview-play:focus-visible{background:var(--accent)}.share-preview .peer-name svg{flex-shrink:0}.peer-grid.filmstrip .share-preview-play,.voice-panel.embedded .share-preview-play{width:34px;height:34px}.peer-grid.filmstrip .share-preview-play svg,.voice-panel.embedded .share-preview-play svg{width:15px;height:15px}.peer-grid.filmstrip .share-preview .live-badge{display:none}@media(prefers-reduced-motion:reduce){.share-preview-img,.share-preview-play{transition:none}}.auth-screen{background-size:130% 130%;animation:auth-wash-drift 18s var(--ease-in-out) infinite alternate}@keyframes auth-wash-drift{0%{background-position:0% 0%}to{background-position:100% 100%}}.auth-card{animation:auth-card-in .52s var(--ease-out) both}@keyframes auth-card-in{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.auth-card.shake-a{animation:auth-shake-a .36s var(--ease-in-out)}.auth-card.shake-b{animation:auth-shake-b .36s var(--ease-in-out)}@keyframes auth-shake-a{0%,to{transform:none}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}@keyframes auth-shake-b{0%,to{transform:none}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}.auth-mark span{animation:auth-mark-pop .42s var(--ease-spring) both}.auth-mark span:nth-child(1){animation-delay:.12s}.auth-mark span:nth-child(2){animation-delay:.19s}.auth-mark span:nth-child(3){animation-delay:.26s}.auth-mark span:nth-child(4){animation-delay:.33s}@keyframes auth-mark-pop{0%{transform:scale(0)}to{transform:scale(1)}}.auth-card input{transition:border-color var(--dur-fast) var(--ease-in-out),background var(--dur-fast) var(--ease-in-out),box-shadow var(--dur-base) var(--ease-out)}.auth-card input:focus{box-shadow:var(--glow-accent)}.auth-submit{transition:background var(--dur-fast) var(--ease-in-out),transform var(--dur-base) var(--ease-out)}.auth-submit:active:not(:disabled){transform:scale(.98)}.auth-error:not(:empty){animation:grow-in var(--dur-slow) var(--ease-out) both;overflow:hidden}@keyframes grow-in{0%{opacity:0;max-height:0}to{opacity:1;max-height:80px}}.auth-tabs{position:relative}.auth-tabs-thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 4.5px);border-radius:3px;background:var(--control);transition:transform var(--dur-slow) var(--ease-out)}.auth-tabs-thumb.second{transform:translate(calc(100% + 3px))}.auth-tabs button{position:relative;transition:color var(--dur-base) var(--ease-in-out)}.segmented.auth-tabs button.active{background:none}.server-icon-wrap:before{transition:height var(--dur-slow) var(--ease-spring)}.server-icon{transition:border-radius var(--dur-base) var(--ease-in-out),background var(--dur-fast) var(--ease-in-out),color var(--dur-fast) var(--ease-in-out),transform var(--dur-base) var(--ease-out)}.server-icon:active{transform:translateY(1px) scale(.96)}.icon-btn{transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out)}.icon-btn:active{transform:scale(.92)}.chat-message-actions{transform:translateY(4px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.chat-message:hover .chat-message-actions,.chat-message:focus-within .chat-message-actions{transform:none}.reaction-chip{transition:background var(--dur-fast) var(--ease-in-out),border-color var(--dur-fast) var(--ease-in-out),transform var(--dur-base) var(--ease-out)}.reaction-chip:active{transform:scale(.92)}.reaction-chip.pop-a{animation:reaction-pop-a .32s var(--ease-spring)}.reaction-chip.pop-b{animation:reaction-pop-b .32s var(--ease-spring)}@keyframes reaction-pop-a{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes reaction-pop-b{0%{transform:scale(.8)}to{transform:scale(1)}}.chat-typing{gap:6px}.typing-dots{display:flex;gap:3px}.typing-dots span{width:5px;height:5px;border-radius:50%;background:var(--text-default);animation:typing-bob 1.1s var(--ease-in-out) infinite}.typing-dots span:nth-child(2){animation-delay:.14s}.typing-dots span:nth-child(3){animation-delay:.28s}@keyframes typing-bob{0%,60%,to{transform:none;opacity:.4}30%{transform:translateY(-3px);opacity:1}}.chat-input-box{transition:box-shadow var(--dur-base) var(--ease-out)}.chat-input-box:focus-within{box-shadow:inset 0 0 0 1px var(--divider-soft)}.peer-tile,.share-preview{animation:tile-in .38s var(--ease-spring) both}@keyframes tile-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}.peer-tile{transition:box-shadow var(--dur-base) var(--ease-out)}.peer-tile.speaking{box-shadow:inset 0 0 0 2px var(--online),var(--glow-online)}.occupant-avatar .avatar{transition:box-shadow var(--dur-base) var(--ease-out)}.occupant-avatar.speaking .avatar{box-shadow:0 0 0 2px var(--online),var(--glow-online)}.voice-stage{animation:stage-in .32s var(--ease-out) both}@keyframes stage-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.voice-status-bar{animation:status-bar-up var(--dur-slow) var(--ease-out) both}@keyframes status-bar-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}.voice-ctl{transition:background var(--dur-base) var(--ease-in-out),color var(--dur-base) var(--ease-in-out),transform var(--dur-base) var(--ease-out)}.voice-ctl:hover{transform:translateY(-1px)}.voice-ctl:active{transform:scale(.92)}.voice-ctl-icon{display:flex;animation:icon-swap .26s var(--ease-spring) both}@keyframes icon-swap{0%{opacity:0;transform:scale(.5) rotate(-20deg)}to{opacity:1;transform:none}}.live-dot{animation:live-pulse 1.6s var(--ease-in-out) infinite}@keyframes live-pulse{0%,to{box-shadow:0 0 0 0 var(--danger-pulse)}50%{box-shadow:0 0 0 4px transparent}}.join-voice-btn{transition:background var(--dur-fast) var(--ease-in-out),transform var(--dur-base) var(--ease-out)}.join-voice-btn:hover{background:var(--online-fill-hover)}.join-voice-btn:active{transform:scale(.97)}.incoming-call{animation:call-drop-in var(--dur-slow) var(--ease-out) both}@keyframes call-drop-in{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}.desktop-prompt{flex-shrink:0;display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-2);padding:var(--space-3);background:var(--surface-raised);border-radius:var(--radius-md)}.desktop-prompt-icon{flex-shrink:0;color:var(--accent);margin-top:2px}.desktop-prompt-text{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:1}.desktop-prompt-title{font-size:var(--font-md);font-weight:var(--fw-semibold);color:var(--text-strong)}.desktop-prompt-meta{font-size:var(--font-sm);color:var(--text-muted)}.desktop-prompt-download{align-self:flex-start;margin-top:var(--space-1);background:var(--accent);color:var(--text-on-fill);border:none;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--font-md);font-weight:var(--fw-medium)}.desktop-prompt-download:hover{background:var(--accent-hover)}.settings-check:has(input:disabled){opacity:.5;cursor:not-allowed}.settings-check:has(input:disabled) input{cursor:not-allowed}.settings-check+.settings-check,.hint+.settings-check{margin-top:var(--space-3)}.desktop-prompt-close{width:24px;height:24px;margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-1)) 0 0;color:var(--text-muted)}@media(max-width:1100px){:root{--members-w: 224px}}@media(max-width:900px){:root{--rail-w: 64px;--members-w: 200px}.server-icon{width:44px;height:44px}.server-icon-wrap:before{left:-14px}.chat-messages,.chat-input{padding-left:var(--space-3);padding-right:var(--space-3)}}@media(max-width:780px){:root{--rail-w: 60px}.home{grid-template-columns:minmax(0,1fr);height:var(--app-height, 100dvh)}.server-sidebar,.sidebar-column{position:fixed;top:0;bottom:0;z-index:60;transition:transform var(--dur-base) var(--ease-in-out)}.server-sidebar{left:0;width:var(--rail-w);transform:translate(-100%);padding-top:calc(var(--space-3) + env(safe-area-inset-top));padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom))}.sidebar-column{left:var(--rail-w);width:min(78vw,280px);transform:translate(calc(-100% - var(--rail-w)));box-shadow:var(--shadow-mid);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.home.nav-open .server-sidebar,.home.nav-open .sidebar-column{transform:none}.member-list{position:fixed;top:0;right:0;bottom:0;width:min(76vw,280px);z-index:60;transform:translate(100%);transition:transform var(--dur-base) var(--ease-in-out);box-shadow:var(--shadow-mid);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.home:not(.members-hidden) .member-list{transform:none}.header-search input{width:96px}.header-search input:focus,.header-search.has-value input{width:150px}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;border:none;padding:0;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-in-out)}.home.nav-open .nav-scrim,.home:not(.members-hidden) .nav-scrim{opacity:1;pointer-events:auto}.nav-toggle,.top-bar.empty-bar{display:flex}.voice-status-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-bar,.voice-header{height:calc(48px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--space-3) 0}.friends-header{padding-top:calc(var(--space-3) + env(safe-area-inset-top))}.top-bar-topic,.top-bar-divider{display:none}.top-bar-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-input{padding-bottom:max(var(--space-3),env(safe-area-inset-bottom))}.chat-messages{padding-left:var(--space-2);padding-right:var(--space-2)}input,textarea,select{font-size:var(--font-field-min)}.peer-grid,.peer-grid.video-active,.voice-panel.embedded .peer-grid,.voice-panel.embedded .peer-grid:not(.video-active){grid-template-columns:minmax(0,1fr);padding:var(--space-3);gap:var(--space-2)}.peer-grid.filmstrip,.peer-grid.filmstrip.video-active,.voice-panel.embedded .peer-grid.filmstrip,.voice-panel.embedded .peer-grid.filmstrip:not(.video-active){grid-template-columns:none;grid-auto-columns:120px}.voice-controls{flex-wrap:wrap;padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}.modal-overlay{padding:var(--space-3)}.modal-card{width:100%;max-width:none}.modal-overlay:has(>.settings-card){padding:0}.settings-card{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;flex-direction:column}.settings-sidebar{width:auto;flex-direction:row;overflow-x:auto;gap:var(--space-1);padding:calc(var(--space-2) + env(safe-area-inset-top)) 44px var(--space-2) var(--space-2);scrollbar-width:none}.settings-sidebar::-webkit-scrollbar{display:none}.settings-sidebar button{white-space:nowrap}.settings-sidebar .settings-logout{margin-top:0;margin-left:auto}.settings-content{padding:var(--space-4) var(--space-4) max(var(--space-6),env(safe-area-inset-bottom))}.settings-close{top:calc(12px + env(safe-area-inset-top));right:12px}}@media(hover:none){.chat-message-actions{opacity:1;transform:none;pointer-events:auto;top:2px;right:8px}.tooltip-bubble{display:none}.icon-btn{width:38px;height:38px}.chat-message-actions button{padding:8px}}
