:root{--color-primary:#06c;--color-primary-hover:#05a;--color-success:#080;--color-error:#c00;--color-info:#069;--color-online:green;--color-offline:gray;--color-speaking:#3ba55d;--color-text:#000;--color-text-muted:#888;--color-text-secondary:#666;--color-text-inverse:#fff;--color-bg:#fff;--color-bg-secondary:#f5f5f5;--color-bg-hover:#eee;--color-bg-overlay:#00000080;--color-bg-dark:#1a1a1a;--color-bg-video:#000;--color-border:#ccc;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:.75rem;--spacing-lg:1rem;--spacing-xl:1.5rem;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-full:50%;--border-width:1px;--border:var(--border-width) solid var(--color-border);--shadow-sm:0 1px 2px #0000001a;--shadow-md:0 2px 4px #00000026;--shadow-lg:0 4px 8px #0003;--font-family-base:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-family-mono:var(--font-family-base);--line-height-base:1.5;--font-size-xs:.75rem;--font-size-sm:.85rem;--font-size-md:1rem;--font-size-lg:1.25rem;--sidebar-width:240px;--member-list-width:150px;--toast-width:250px;--z-modal:1000;--z-toast:9999}:root[data-theme=dark]{--color-primary:#4a9eff;--color-primary-hover:#6bb3ff;--color-success:#3ba55d;--color-error:#ed4245;--color-info:#5bc0de;--color-online:#3ba55d;--color-offline:#747f8d;--color-text:#fff;--color-text-muted:#a0a0a0;--color-text-secondary:#b0b0b0;--color-text-inverse:#000;--color-bg:#000;--color-bg-secondary:#111;--color-bg-hover:#222;--color-bg-overlay:#000000b3;--color-border:#606060}.button{color:var(--color-primary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.button:disabled{color:var(--color-text-muted);cursor:not-allowed;text-decoration:none}.button.danger:not(:disabled){color:var(--color-error)}.input-group{flex-direction:column;flex:1;align-self:stretch;display:flex}.input-group label{margin-bottom:var(--spacing-xs)}.input-group input{padding:var(--spacing-sm);font:inherit;background-color:var(--color-bg);color:var(--color-text);border:var(--border)}.input-group input:-webkit-autofill{-webkit-text-fill-color:var(--color-text);-webkit-box-shadow:0 0 0 1000px var(--color-bg) inset;transition:background-color 5000s ease-in-out}.input-group input:-webkit-autofill:hover{-webkit-text-fill-color:var(--color-text);-webkit-box-shadow:0 0 0 1000px var(--color-bg) inset;transition:background-color 5000s ease-in-out}.input-group input:-webkit-autofill:focus{-webkit-text-fill-color:var(--color-text);-webkit-box-shadow:0 0 0 1000px var(--color-bg) inset;transition:background-color 5000s ease-in-out}.input-group input[type=number]{appearance:textfield}.input-group input[type=number]::-webkit-inner-spin-button{appearance:none}.input-group input[type=number]::-webkit-outer-spin-button{appearance:none}.input-group .number-input,.input-group .password-input{background-color:var(--color-bg);border:var(--border);align-items:center;display:flex}.input-group .number-input input,.input-group .password-input input{border:none;flex:1}.input-group .number-input .button,.input-group .password-input .button{padding:var(--spacing-sm);text-decoration:none}.input-group .error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.auth-page{max-width:400px;padding:var(--spacing-lg);margin:0 auto}.auth-page h1{margin-bottom:var(--spacing-md)}.auth-page form{gap:var(--spacing-md);flex-direction:column;display:flex}.auth-page p{margin-top:var(--spacing-md)}.error-boundary{justify-content:center;align-items:center;gap:var(--spacing-md);height:100%;padding:var(--spacing-xl);text-align:center;flex-direction:column;display:flex}.error-boundary h1{margin:0}.error-boundary p{color:var(--color-text-muted);margin:0}.server-list{padding:var(--spacing-sm);justify-content:space-between;gap:var(--spacing-sm);border-right:var(--border);width:var(--member-list-width);flex-direction:column;display:flex}.server-list .servers{align-items:center;gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.server-list .servers li{width:100%}.server-list .server-item{appearance:none;color:inherit;font:inherit;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);border:var(--border);cursor:pointer;box-sizing:border-box;background:0 0;flex-direction:column;width:100%;display:flex}.server-list .server-item:hover{background-color:var(--color-bg-hover)}.server-list .server-item.selected{border-color:var(--color-text);box-shadow:inset 0 0 0 1px var(--color-text)}.server-list .server-icon{border:var(--border);width:48px;height:48px;font-weight:700;font-size:var(--font-size-lg);justify-content:center;align-items:center;display:flex;position:relative}.server-list .server-badge{background:var(--color-bg);color:var(--color-error);font-weight:700;font-size:var(--font-size-sm);padding:0 2px;line-height:1;position:absolute;top:-2px;right:-2px}.server-list .server-name{text-overflow:ellipsis;white-space:nowrap;text-align:center;max-width:100%;font-size:var(--font-size-sm);overflow:hidden}.server-list .server-list-actions{gap:var(--spacing-xs);flex-direction:column;display:flex}.channel-list{padding:var(--spacing-sm);flex:1;overflow-y:auto}.channel-list .categories{margin-bottom:var(--spacing-lg);padding:0;list-style:none}.channel-list .category{margin-bottom:var(--spacing-sm)}.channel-list .channels{margin:0;padding:0;list-style:none}.channel-list .category-header{justify-content:space-between;font-weight:700;display:flex}.channel-list .channel-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding-left:var(--spacing-sm);display:block;overflow:hidden}.channel-list .channel-name.unread{font-weight:700}.channel-list .channel-name .unread-marker,.channel-list .channel-name .mention-marker{color:var(--color-error);font-weight:700}.channel-list .channel-marker{width:2ch;display:inline-block}.channel-list .voice-participants{padding-left:var(--spacing-xl);font-size:var(--font-size-sm);opacity:.8}.channel-list .voice-participants .voice-participant{padding:2px 0}.modal-overlay{box-sizing:border-box;background:var(--color-bg-overlay);width:100%;max-width:none;height:100%;max-height:none;color:inherit;z-index:var(--z-modal);border:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:fixed;inset:0}.modal-overlay .modal-overlay{background:0 0}.modal{background:var(--color-bg);border:var(--border);padding:var(--spacing-lg);overflow-wrap:break-word;box-sizing:border-box;width:90%;max-width:600px;max-height:80vh;overflow-y:auto}.modal .modal-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.modal .modal-header h2{margin:0}.modal .modal-header .close-button{flex-shrink:0}.modal .modal-content form{gap:var(--spacing-md);flex-direction:column;display:flex}.modal .modal-content .error{color:var(--color-error)}.user-profile-popup{min-width:300px}.user-profile-popup .pronouns{opacity:.7}.user-profile-popup .bio{white-space:pre-wrap}.user-profile-popup .empty{opacity:.5;font-style:italic}.member-list{padding:var(--spacing-sm);border-left:var(--border);width:var(--member-list-width);flex-direction:column;display:flex}.member-list .header{margin-bottom:var(--spacing-sm);font-weight:700}.member-list .members{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.member-list .member{appearance:none;box-sizing:border-box;width:100%;padding:var(--spacing-xs) var(--spacing-sm);color:inherit;font:inherit;text-align:left;margin-bottom:var(--spacing-xs);align-items:center;gap:var(--spacing-xs);cursor:pointer;background:0 0;border:0;display:flex}.member-list .member .status-dot{border-radius:var(--radius-full);box-sizing:border-box;flex-shrink:0;width:8px;height:8px}.member-list .member .member-info{flex-direction:column;min-width:0;display:flex}.member-list .member .member-info .username{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member-list .member .member-info .pronouns{font-size:var(--font-size-xs);opacity:.7}.member-list .member.online .status-dot{background-color:var(--color-online)}.member-list .member.offline{opacity:.6}.member-list .member.offline .status-dot{border:2px solid var(--color-offline);background-color:#0000}.chat{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.chat .jump-to-latest{z-index:1;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg);border:var(--border);position:absolute;bottom:3.5rem;left:50%;transform:translate(-50%)}.chat .messages{overflow-anchor:none;padding:var(--spacing-sm) 0;flex:1;overflow-y:auto}.chat .message{padding:var(--spacing-xs) var(--spacing-sm)}.chat .message:hover{background:var(--color-bg-hover)}.chat .message .message-content{white-space:pre-wrap;word-break:break-word}.chat .message.group-start{margin-top:var(--spacing-sm)}.chat .message.pending{opacity:.6}.chat .message.pending.failed{opacity:1}.chat .pending-status{margin-left:var(--spacing-sm);color:var(--color-text-muted);font-size:var(--font-size-sm)}.chat .message.pending.failed .pending-status{color:var(--color-error)}.chat .message-header{align-items:baseline;gap:var(--spacing-sm);display:flex}.chat .message-header .author{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.chat .message-header .author:hover{text-decoration:underline}.chat .message-header .timestamp{color:var(--color-text-muted);font-size:var(--font-size-sm)}.chat .new-messages-divider{align-items:center;gap:var(--spacing-sm);margin:var(--spacing-sm) 0;display:flex}.chat .new-messages-divider span{color:var(--color-error);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em}.chat .new-messages-divider:before,.chat .new-messages-divider:after{content:"";background:var(--color-error);flex:1;height:1px}.chat .mention{font:inherit;color:var(--color-primary);background:0 0;border:none;padding:0;font-weight:700}.chat button.mention{cursor:pointer}.chat button.mention:hover{text-decoration:underline}.chat .mention-popover{left:var(--spacing-sm);right:var(--spacing-sm);z-index:2;background:var(--color-bg);border:var(--border);max-height:12rem;position:absolute;bottom:3.5rem;overflow-y:auto}.chat .mention-popover .mention-option{text-align:left;width:100%;padding:var(--spacing-xs) var(--spacing-sm);color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;display:block}.chat .mention-popover .mention-option.active,.chat .mention-popover .mention-option:hover{background:var(--color-bg-hover)}.chat .message-form{gap:var(--spacing-sm);padding:var(--spacing-sm);border-top:var(--border);display:flex}.select-group{flex-direction:column;display:flex}.select-group label{margin-bottom:var(--spacing-xs)}.select-group .select-wrapper{display:inline-flex;position:relative}.select-group .select-wrapper select{appearance:none;padding:var(--spacing-xs) var(--spacing-sm);padding-right:calc(var(--spacing-sm) + 1.2em);font:inherit;font-size:var(--font-size-sm);background-color:var(--color-bg);color:var(--color-text);border:var(--border);border-radius:var(--radius-sm);cursor:pointer;min-width:0}.select-group .select-wrapper select:focus{border-color:var(--color-primary)}.select-group .select-wrapper select:disabled{opacity:.6;cursor:not-allowed}.select-group .select-wrapper select option{background-color:var(--color-bg);color:var(--color-text)}.select-group .select-wrapper .select-arrow{right:var(--spacing-sm);pointer-events:none;border-left:4px solid #0000;border-right:4px solid #0000;border-top:4px solid var(--color-text);width:0;height:0;position:absolute;top:50%;transform:translateY(-50%)}.select-group .error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.voice-controls{padding:var(--spacing-sm);border-top:var(--border);gap:var(--spacing-sm);flex-direction:column;display:flex}.voice-controls .voice-info{flex-direction:column;gap:2px;display:flex}.voice-controls .voice-info .voice-status{font-size:var(--font-size-xs);font-weight:600}.voice-controls .voice-info .voice-channel{font-size:var(--font-size-xs)}.voice-controls .voice-buttons{gap:var(--spacing-xs);flex-direction:column;display:flex}.voice-controls .voice-buttons .button-row{gap:var(--spacing-xs);display:flex}.voice-controls .voice-buttons .button-row .select-group{margin-left:auto}.voice-controls .voice-buttons .voice-btn.active,.voice-controls .voice-buttons .voice-btn.leave{font-weight:700}.voice-panel{flex-direction:column;flex-shrink:0;max-height:50%;display:flex;overflow:hidden auto}.voice-panel .video-section{gap:var(--spacing-md);padding:var(--spacing-md);grid-template-columns:1fr;display:grid}@media (width>=768px){.voice-panel .video-section{gap:var(--spacing-lg);padding:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}.voice-panel .video-section .video-tile{aspect-ratio:16/9;border-radius:var(--radius-lg);background:var(--color-bg-dark);position:relative;overflow:hidden}.voice-panel .video-section .video-tile video{object-fit:contain;background:var(--color-bg-video);width:100%;height:100%}.voice-panel .video-section .video-tile .video-label{bottom:var(--spacing-sm);left:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:#fff;text-shadow:0 1px 2px #000c;background:#000000a6;font-weight:500;position:absolute}.voice-panel .video-section .video-tile .video-controls{top:var(--spacing-sm);right:var(--spacing-sm);gap:var(--spacing-xs);opacity:0;display:flex;position:absolute}.voice-panel .video-section .video-tile .video-controls .quality-select{padding:var(--spacing-xs);font-size:var(--font-size-xs);border-radius:var(--radius-md);cursor:pointer}.voice-panel .video-section .video-tile .video-controls .stop-video-btn{border-radius:var(--radius-full);color:#fff;cursor:pointer;background:#c83232cc;border:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;font-weight:700;display:flex}.voice-panel .video-section .video-tile .video-controls .stop-video-btn:hover{background:#dc3232}.voice-panel .video-section .video-tile:hover .video-controls,.voice-panel .video-section .video-tile:focus-within .video-controls{opacity:1}@media (width>=768px){.voice-panel .video-section .video-tile.screen{grid-column:span 2}}.voice-panel .users-section{gap:var(--spacing-md);padding:var(--spacing-lg);border-top:var(--border);flex-wrap:wrap;display:flex}.voice-panel .users-section .user-tile{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);border:2px solid #0000;display:flex}.voice-panel .users-section .user-tile.speaking{border-color:var(--color-speaking)}.voice-panel .users-section .user-tile .speaking-badge{font-size:var(--font-size-xs);margin-left:auto}.voice-panel .users-section .user-tile .avatar-placeholder{border-radius:var(--radius-full);border:var(--border);width:32px;height:32px;font-size:var(--font-size-sm);justify-content:center;align-items:center;font-weight:600;display:flex}.voice-panel .users-section .user-tile .username{font-size:var(--font-size-sm);font-weight:500}.type-options{gap:var(--spacing-md);display:flex}.type-options label{align-items:center;gap:var(--spacing-xs);cursor:pointer;display:flex}.invite-modal .invite-result{gap:var(--spacing-md);flex-direction:column;display:flex}.invite-modal .invite-result .button-row{gap:var(--spacing-sm);display:flex}.invite-modal .invite-form{gap:var(--spacing-md);flex-direction:column;display:flex}.invite-modal .invite-form .expiry-section{gap:var(--spacing-xs);border:0;flex-direction:column;min-inline-size:0;margin:0;padding:0;display:flex}.invite-modal .invite-form .expiry-section legend{padding:0}.invite-modal .invite-form .expiry-section .expiry-options{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.invite-modal .invite-form .expiry-section .expiry-options label{align-items:center;gap:var(--spacing-xs);cursor:pointer;display:flex}.invite-modal .invite-form .error{color:var(--color-error)}.invite-modal .existing-invites{margin-top:var(--spacing-lg)}.invite-modal .existing-invites h3{margin-bottom:var(--spacing-sm)}.invite-modal .existing-invites .invites-list{gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.invite-modal .existing-invites .invite-item{opacity:1}.invite-modal .existing-invites .invite-item.invalid{opacity:.5}.invite-modal .existing-invites .invite-item .invite-header{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.invite-modal .existing-invites .invite-item .invite-header code{font-family:var(--font-family-mono)}.invite-modal .existing-invites .invite-item .invite-header .invite-status{color:var(--color-text-muted)}.invite-modal .existing-invites .invite-item .invite-users{font-size:var(--font-size-sm);margin-top:var(--spacing-xs);color:var(--color-text-muted)}.textarea-group{flex-direction:column;flex:1;align-self:stretch;display:flex}.textarea-group label{margin-bottom:var(--spacing-xs)}.textarea-group textarea{padding:var(--spacing-sm);font:inherit;background-color:var(--color-bg);color:var(--color-text);border:var(--border);resize:vertical}.textarea-group .error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--spacing-xs)}.profile-modal{min-width:400px}.profile-modal textarea{box-sizing:border-box;width:100%}.profile-modal .profile-header{align-items:baseline;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:var(--border);display:flex}.profile-modal .profile-header .profile-username{font-weight:700;font-size:var(--font-size-lg)}.profile-modal .profile-header .profile-pronouns{font-size:var(--font-size-sm);opacity:.7}.profile-modal .profile-notifications{align-items:flex-start;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:var(--border);flex-direction:column;display:flex}.profile-modal .profile-notifications .notifications-label{font-weight:700}.profile-modal .profile-notifications .notifications-hint{font-size:var(--font-size-sm);opacity:.7}.profile-modal .profile-footer{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:var(--border)}.profile-modal .profile-footer .logout-button{color:var(--color-error)}.confirm-button{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:inline-flex}.confirm-button .confirm-message{font-size:var(--font-size-sm)}.admin-modal{flex-direction:column;width:90%;max-width:800px;height:70vh;display:flex;overflow:hidden}.admin-modal .modal-content{flex:1;min-height:0;overflow-y:auto}.admin-modal .modal-content :where(button,input,select,textarea,a){scroll-margin-top:3rem}.admin-modal .admin-tabs{gap:var(--spacing-sm);padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);z-index:1;background:var(--color-bg);display:flex;position:sticky;top:0}.admin-modal .admin-tabs .button.active{border-bottom:2px solid var(--color-accent,currentColor);font-weight:700}.admin-modal .users-section h2{margin-bottom:var(--spacing-md)}.admin-modal .users-section .users-list{gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.admin-modal .users-section .user-item{padding:var(--spacing-sm);border:var(--border)}.admin-modal .users-section .user-item .user-header{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.admin-modal .users-section .user-item .user-header .user-name{font-weight:700}.admin-modal .users-section .user-item .user-header .badge{font-size:var(--font-size-sm);padding:0 var(--spacing-xs);border:var(--border)}.admin-modal .users-section .user-item .user-header .badge.admin{color:var(--color-accent,currentColor)}.admin-modal .users-section .user-item .user-header .user-pronouns{font-size:var(--font-size-sm);color:var(--color-text-muted)}.admin-modal .users-section .user-item .user-meta{gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--spacing-xs);flex-wrap:wrap;display:flex}.admin-modal .users-section .user-item .user-bio{margin:var(--spacing-xs) 0 0;font-size:var(--font-size-sm)}.admin-modal .users-section .user-item .user-actions{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm);flex-wrap:wrap;display:flex}.admin-modal .users-section .user-item .user-edit-form{gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:var(--border);flex-direction:column;display:flex}.admin-modal .users-section .user-item .form-actions{gap:var(--spacing-sm);display:flex}.admin-modal .create-section{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:var(--border)}.admin-modal .create-section h2{margin-bottom:var(--spacing-md)}.admin-modal .invite-form{gap:var(--spacing-md);flex-direction:column;display:flex}.admin-modal .invite-form .expiry-section{gap:var(--spacing-xs);border:0;flex-direction:column;min-inline-size:0;margin:0;padding:0;display:flex}.admin-modal .invite-form .expiry-section legend{padding:0}.admin-modal .invite-form .expiry-section .expiry-options{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.admin-modal .invite-form .expiry-section .expiry-options label{align-items:center;gap:var(--spacing-xs);cursor:pointer;display:flex}.admin-modal .invite-form .error{color:var(--color-error)}.admin-modal .existing-invites h2{margin-bottom:var(--spacing-md)}.admin-modal .existing-invites .invites-list{gap:var(--spacing-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.admin-modal .existing-invites .invite-item{padding:var(--spacing-sm);border:var(--border)}.admin-modal .existing-invites .invite-item.invalid{opacity:.5}.admin-modal .existing-invites .invite-item .invite-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);flex-wrap:wrap;display:flex}.admin-modal .existing-invites .invite-item .invite-header code{font-family:var(--font-family-mono)}.admin-modal .existing-invites .invite-item .invite-details{gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.admin-modal .existing-invites .invite-item .invite-details .status{color:var(--color-error)}.admin-modal .existing-invites .invite-item .invite-users{font-size:var(--font-size-sm);margin-top:var(--spacing-xs);color:var(--color-text-muted)}.toast-container{top:var(--spacing-lg);right:var(--spacing-lg);z-index:var(--z-toast);gap:var(--spacing-sm);flex-direction:column;display:flex;position:fixed}.toast{width:var(--toast-width);padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-inverse)}.toast.toast-error{background-color:var(--color-error)}.toast.toast-success{background-color:var(--color-success)}.toast.toast-info{background-color:var(--color-info)}html,body,#root{background-color:var(--color-bg);height:100%;color:var(--color-text);font-family:var(--font-family-base);line-height:var(--line-height-base);margin:0}button,input,textarea,select{font-family:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--spacing-sm);z-index:var(--z-toast);padding:var(--spacing-sm);background:var(--color-bg);border:var(--border);color:var(--color-text);position:absolute;top:-100%}.skip-link:focus{top:var(--spacing-sm)}.icon-button{justify-content:center;align-items:center;min-width:24px;min-height:24px;display:inline-flex}.app-layout{height:100%;display:flex}.app-layout.mobile .server-list{width:var(--member-list-width);flex:none}.app-layout.mobile .channel-sidebar{border-right:none;flex:1;width:auto}.app-layout.mobile .main-content,.app-layout.mobile.servers-only .server-list{flex:1;width:100%}.channel-sidebar{width:var(--sidebar-width);border-right:var(--border);flex-direction:column;display:flex}.channel-sidebar .sidebar-header{padding:var(--spacing-sm);border-bottom:var(--border);gap:var(--spacing-sm);display:flex}.channel-sidebar .sidebar-header .members-toggle{margin-left:auto}.channel-sidebar .user-panel{border:none;border-top:var(--border);color:inherit;text-align:left;cursor:pointer;width:100%;padding:var(--spacing-sm);align-items:center;gap:var(--spacing-sm);background:0 0;display:flex}.channel-sidebar .user-panel:hover{background-color:var(--color-bg-hover)}.channel-sidebar .user-panel .user-info{flex-direction:column;min-width:0;display:flex}.channel-sidebar .user-panel .user-info .username{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.channel-sidebar .user-panel .user-info .pronouns{font-size:var(--font-size-sm);opacity:.7}.main-content{padding:var(--spacing-sm);gap:var(--spacing-sm);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.main-content .mobile-header{align-items:center;gap:var(--spacing-sm);padding-bottom:var(--spacing-sm);border-bottom:var(--border);flex-shrink:0;display:flex}.main-content .mobile-header .channel-name{font-size:var(--font-size-md);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-weight:700;overflow:hidden}.main-content .channel-header{padding-bottom:var(--spacing-sm);border-bottom:var(--border);flex-shrink:0}.main-content .channel-header h1{font-size:var(--font-size-lg);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.main-content .placeholder-message{flex:1;justify-content:center;align-items:center;margin:0;display:flex}.main-content .server-not-found{justify-content:center;align-items:center;gap:var(--spacing-sm);text-align:center;flex-direction:column;flex:1;display:flex}.main-content .server-not-found h1,.main-content .server-not-found p{margin:0}.member-list-modal{width:280px;max-width:90vw;max-height:80vh}.member-list-modal .member-list{border-left:none;width:auto}
