:root{color-scheme:light;--surface-canvas: #f6f6f9;--surface-sidebar: #16141d;--surface-sidebar-hover: rgba(255, 255, 255, .06);--surface-sidebar-active: rgba(255, 255, 255, .1);--surface-panel: #ffffff;--surface-raised: #ffffff;--surface-sunken: #f0f0f4;--surface-overlay: rgba(17, 15, 23, .5);--text-primary: #18171f;--text-secondary: #5d5b6a;--text-tertiary: #91909e;--text-on-accent: #ffffff;--text-on-dark: #f3f2f7;--text-on-dark-secondary: rgba(243, 242, 247, .64);--text-on-dark-tertiary: rgba(243, 242, 247, .4);--border-subtle: #ececf1;--border-default: #e0dfe7;--border-strong: #cbc9d6;--border-on-dark: rgba(255, 255, 255, .09);--accent: #5b5ef4;--accent-hover: #4a4ce3;--accent-active: #3f41c9;--accent-subtle: #eeeefd;--accent-subtle-strong: #e0e0fc;--accent-on-dark-surface: #8082ff;--danger: #d83a4c;--danger-hover: #c22e3f;--danger-subtle: #fceced;--online: #29b673;--online-subtle: #e7f8ef;--bubble-mine: #d9d9e2;--bubble-other: var(--surface-raised);--purple-900: var(--surface-sidebar);--purple-800: var(--text-primary);--purple-accent: var(--accent);--purple-accent-light: var(--accent-hover);--bg: var(--surface-canvas);--text-dark: var(--text-primary);--text-light: var(--text-on-dark);--text-muted: var(--text-secondary);--border: var(--border-default);--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 22px;--radius-full: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--shadow-xs: 0 1px 2px rgba(23, 21, 34, .05);--shadow-sm: 0 2px 8px rgba(23, 21, 34, .07);--shadow-md: 0 10px 28px rgba(23, 21, 34, .12);--shadow-lg: 0 22px 52px rgba(23, 21, 34, .18);--shadow-focus: 0 0 0 3px var(--accent-subtle-strong);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Inter, system-ui, sans-serif;--text-xs: 11.5px;--text-sm: 12.5px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 25px;--transition-fast: .12s cubic-bezier(.2, .8, .2, 1);--transition-base: .18s cubic-bezier(.2, .8, .2, 1);--transition-slow: .26s cubic-bezier(.2, .8, .2, 1)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--surface-canvas: #121118;--surface-sidebar: #0c0b11;--surface-panel: #17161f;--surface-raised: #1c1b25;--surface-sunken: #232230;--surface-overlay: rgba(0, 0, 0, .6);--text-primary: #f1f0f6;--text-secondary: #a6a4b5;--text-tertiary: #726f82;--text-on-dark-secondary: rgba(243, 242, 247, .58);--text-on-dark-tertiary: rgba(243, 242, 247, .36);--border-subtle: #242330;--border-default: #2b2a38;--border-strong: #38364a;--border-on-dark: rgba(255, 255, 255, .07);--accent: #7b7ef9;--accent-hover: #8d90fa;--accent-active: #6a6ded;--accent-subtle: rgba(123, 126, 249, .16);--accent-subtle-strong: rgba(123, 126, 249, .28);--danger: #f2555f;--danger-hover: #f5747d;--danger-subtle: rgba(242, 85, 95, .14);--online: #35d488;--online-subtle: rgba(53, 212, 136, .14);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 10px rgba(0, 0, 0, .35);--shadow-md: 0 12px 32px rgba(0, 0, 0, .45);--shadow-lg: 0 26px 60px rgba(0, 0, 0, .55)}}:root[data-theme=dark]{color-scheme:dark;--surface-canvas: #121118;--surface-sidebar: #0c0b11;--surface-panel: #17161f;--surface-raised: #1c1b25;--surface-sunken: #232230;--surface-overlay: rgba(0, 0, 0, .6);--text-primary: #f1f0f6;--text-secondary: #a6a4b5;--text-tertiary: #726f82;--text-on-dark-secondary: rgba(243, 242, 247, .58);--text-on-dark-tertiary: rgba(243, 242, 247, .36);--border-subtle: #242330;--border-default: #2b2a38;--border-strong: #38364a;--border-on-dark: rgba(255, 255, 255, .07);--accent: #7b7ef9;--accent-hover: #8d90fa;--accent-active: #6a6ded;--accent-subtle: rgba(123, 126, 249, .16);--accent-subtle-strong: rgba(123, 126, 249, .28);--danger: #f2555f;--danger-hover: #f5747d;--danger-subtle: rgba(242, 85, 95, .14);--online: #35d488;--online-subtle: rgba(53, 212, 136, .14);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 10px rgba(0, 0, 0, .35);--shadow-md: 0 12px 32px rgba(0, 0, 0, .45);--shadow-lg: 0 26px 60px rgba(0, 0, 0, .55)}*{box-sizing:border-box}html,body,#root{height:100%;height:100dvh;margin:0;overflow:hidden}body{font-family:var(--font-sans);background:var(--surface-canvas);color:var(--text-primary);font-size:var(--text-base);-webkit-font-smoothing:antialiased;transition:background-color var(--transition-base),color var(--transition-base)}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}.auth-screen{height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(680px circle at 15% 20%,rgba(123,126,249,.35),transparent 60%),radial-gradient(600px circle at 85% 80%,rgba(91,94,244,.3),transparent 55%),linear-gradient(160deg,#15131e,#201d2f 60%,#16141d);padding:20px;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:28px;color:var(--text-on-dark);text-align:center}.auth-brand span{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;text-transform:uppercase}.auth-brand-mark{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.4))}.auth-shell{display:flex;flex-direction:column;align-items:center}.auth-card{background:var(--surface-raised);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-xl);padding:40px 32px;width:100%;max-width:372px;box-shadow:var(--shadow-lg)}.auth-card h1{margin:0 0 6px;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.auth-subtitle{margin:0 0 28px;color:var(--text-secondary);font-size:var(--text-base)}.totp-card{max-width:420px}.totp-steps{margin:0 0 16px;padding-left:20px;font-size:var(--text-sm);color:var(--text-secondary);display:flex;flex-direction:column;gap:4px}.totp-qr-wrap{display:flex;justify-content:center;padding:16px;background:#fff;border-radius:var(--radius-md);border:1px solid var(--border-default);margin-bottom:12px}.totp-qr{width:180px;height:180px;display:block}.totp-manual-secret{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center;margin:0 0 20px;word-break:break-all}.totp-manual-secret code{background:var(--surface-sunken);padding:2px 6px;border-radius:var(--radius-xs);color:var(--text-primary)}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form label{display:flex;flex-direction:column;gap:7px;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.auth-form input{padding:12px 14px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-primary);font-size:15px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.auth-form input:focus{outline:none;border-color:var(--accent);background:var(--surface-raised);box-shadow:var(--shadow-focus)}.auth-form button[type=submit]{margin-top:6px;padding:12px;border:none;border-radius:var(--radius-md);background:var(--accent);color:var(--text-on-accent);font-weight:600;font-size:var(--text-base);transition:background-color var(--transition-fast),transform var(--transition-fast)}.auth-form button[type=submit]:hover:not(:disabled){background:var(--accent-hover)}.auth-form button[type=submit]:active:not(:disabled){transform:scale(.98)}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.auth-switch{margin-top:20px;background:none;border:none;color:var(--accent);font-weight:600;font-size:var(--text-sm);width:100%;text-align:center}.auth-switch:hover{color:var(--accent-hover)}.auth-error{color:var(--danger);font-size:var(--text-sm);background:var(--danger-subtle);padding:9px 11px;border-radius:var(--radius-sm)}.auth-error.small{margin-top:6px;padding:7px 9px}.auth-notice{color:var(--accent);font-size:var(--text-sm);background:var(--accent-subtle);padding:9px 11px;border-radius:var(--radius-sm)}.auth-notice.small{margin-top:6px;padding:7px 9px}.chat-app{display:flex;height:100vh;height:100dvh;position:relative;overflow:hidden;background:var(--surface-canvas)}.sidebar{width:272px;flex-shrink:0;background:var(--surface-sidebar);color:var(--text-on-dark);display:flex;flex-direction:column;overflow-y:auto}.sidebar-header{display:flex;flex-direction:column;gap:10px;padding:var(--space-4);padding-top:max(16px,env(safe-area-inset-top));border-bottom:1px solid var(--border-on-dark)}.sidebar-header-actions{display:flex;align-items:center;gap:4px}.sidebar-header-profile-btn{width:100%;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:none;color:inherit;text-align:left;padding:6px;margin:-6px;border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.sidebar-header-profile-btn:hover{background:var(--surface-sidebar-hover)}.sidebar-header-info{flex:1;min-width:0}.sidebar-username{font-weight:600;font-size:var(--text-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.sidebar-status{font-size:var(--text-xs);color:var(--online);display:flex;align-items:center;gap:4px}.sidebar-icon-btn{background:none;border:none;color:var(--text-on-dark-secondary);font-size:15px;width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast),color var(--transition-fast)}.sidebar-icon-btn:hover:not(:disabled){background:var(--surface-sidebar-hover);color:var(--text-on-dark)}.sidebar-icon-btn:disabled{opacity:.3;cursor:default}.sidebar-section{padding:var(--space-3) var(--space-2)}.sidebar-section-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-on-dark-tertiary);padding:var(--space-2) var(--space-2) var(--space-2)}.icon-btn{background:none;border:none;color:var(--text-on-dark);font-size:14px;opacity:.75;width:26px;height:26px;border-radius:var(--radius-xs);display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast),opacity var(--transition-fast),color var(--transition-fast)}.icon-btn:hover{opacity:1;background:#0000000d}.new-channel-form{display:flex;gap:6px;padding:2px var(--space-2) var(--space-2);flex-wrap:wrap}.new-channel-form input{flex:1;min-width:0;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--surface-sidebar-hover);color:var(--text-on-dark);font-size:var(--text-sm)}.new-channel-form input::placeholder{color:var(--text-on-dark-tertiary)}.new-channel-form input:focus{outline:none;border-color:var(--accent);background:#0003}.new-channel-form button{padding:6px 12px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:var(--text-xs);font-weight:600}.new-channel-form button:hover{background:var(--accent-hover)}.new-group-name-input{width:100%;padding:11px 13px;margin-bottom:10px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-primary);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.new-group-name-input:focus{outline:none;border-color:var(--accent);background:var(--surface-raised);box-shadow:var(--shadow-focus)}.new-group-name-input::placeholder{color:var(--text-tertiary)}.channel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.list-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;background:none;color:var(--text-on-dark-secondary);border-radius:var(--radius-sm);font-size:var(--text-base);text-align:left;transition:background-color var(--transition-fast),color var(--transition-fast)}.list-item:hover{background:var(--surface-sidebar-hover);color:var(--text-on-dark)}.list-item.active{background:var(--accent-subtle);color:var(--accent-on-dark-surface);font-weight:600;box-shadow:inset 3px 0 0 var(--accent-on-dark-surface)}.list-item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.list-item-icon{flex-shrink:0;width:20px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;opacity:.85}.list-item-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-status{font-size:var(--text-xs);color:var(--text-on-dark-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item.active .list-item-status{color:var(--accent-on-dark-surface);opacity:.8}.dm-row{position:relative}.dm-hide-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:none;border-radius:50%;background:#0006;color:var(--text-on-dark-secondary);font-size:10.5px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.dm-row:hover .dm-hide-btn{opacity:1}.dm-hide-btn:hover{background:var(--danger);color:#fff}.unread-badge{margin-left:auto;flex-shrink:0;background:var(--danger);color:#fff;font-size:10.5px;font-weight:700;line-height:1;padding:4px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}.empty-hint{color:var(--text-on-dark-tertiary);font-size:var(--text-sm);padding:var(--space-2);line-height:1.5}.empty-hint.centered{text-align:center;color:var(--text-tertiary);margin-top:40px}.user-list-more-hint{text-align:center;color:var(--text-tertiary);font-size:var(--text-xs);padding:var(--space-2) 0 2px}.avatar-wrap{position:relative;display:inline-flex;flex-shrink:0;flex-grow:0}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;letter-spacing:-.02em}.avatar-spacer{width:30px;flex-shrink:0}.avatar-photo{object-fit:cover;background:var(--surface-sunken)}.presence-dot{position:absolute;bottom:-1px;right:-1px;width:9px;height:9px;border-radius:50%;border:2px solid var(--surface-sidebar)}.presence-dot.online{background:var(--online)}.presence-dot.offline{background:var(--text-tertiary)}.toast-stack{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;flex-direction:column;align-items:center;gap:8px;padding:max(12px,env(safe-area-inset-top)) 12px 0;pointer-events:none}.toast{pointer-events:auto;width:100%;max-width:380px;display:flex;align-items:center;gap:10px;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:11px 13px;text-align:left;animation:toast-in var(--transition-slow)}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.toast-body{flex:1;min-width:0}.toast-title{font-size:var(--text-sm);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast-text{font-size:var(--text-sm);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast-dismiss{flex-shrink:0;color:var(--text-tertiary);font-size:var(--text-xs);padding:4px;opacity:.7}.toast-dismiss:hover{opacity:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--surface-overlay);display:flex;align-items:center;justify-content:center;padding:20px;animation:overlay-in var(--transition-base)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:372px;max-height:90vh;overflow-y:auto;padding:var(--space-5);box-shadow:var(--shadow-lg);animation:modal-in var(--transition-slow)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);gap:var(--space-3)}.modal-header h3{margin:0;font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em;color:var(--text-primary);display:flex;align-items:center;gap:8px}.modal-header .icon-btn{color:var(--text-tertiary);opacity:1;background:var(--surface-sunken);width:30px;height:30px;border-radius:var(--radius-sm)}.modal-header .icon-btn:hover{color:var(--text-primary);background:var(--border-subtle)}.profile-avatar-picker{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:22px}.profile-admin-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-full);background:var(--accent-subtle);color:var(--accent);font-size:var(--text-xs);font-weight:700}.profile-avatar-btn{padding:7px 16px;border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-raised);color:var(--accent);font-size:var(--text-sm);font-weight:600;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.profile-avatar-btn:hover:not(:disabled){background:var(--accent-subtle);border-color:var(--accent-subtle-strong)}.profile-avatar-btn:disabled{opacity:.6}.profile-form{display:flex;flex-direction:column;gap:15px}.profile-form label{display:flex;flex-direction:column;gap:7px;font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.profile-form input{padding:10px 13px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-primary);font-size:15px;font-weight:400;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.profile-form input:focus{outline:none;border-color:var(--accent);background:var(--surface-raised);box-shadow:var(--shadow-focus)}.status-presets{display:flex;flex-wrap:wrap;gap:7px}.status-preset-btn{padding:6px 13px;border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-raised);color:var(--text-secondary);font-size:var(--text-xs);font-weight:500;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.status-preset-btn:hover{border-color:var(--accent-subtle-strong)}.status-preset-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.profile-save-btn{padding:11px;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-weight:600;font-size:var(--text-base);transition:background-color var(--transition-fast),transform var(--transition-fast)}.profile-save-btn:hover:not(:disabled){background:var(--accent-hover)}.profile-save-btn:active:not(:disabled){transform:scale(.98)}.profile-save-btn:disabled{opacity:.6}.profile-logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;padding:10px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:none;color:var(--danger);font-weight:600;font-size:var(--text-sm);transition:background-color var(--transition-fast)}.profile-logout-btn:hover{background:var(--danger-subtle);border-color:var(--danger-subtle)}.search-modal{max-width:460px}.search-form{display:flex;gap:8px;margin-bottom:12px}.search-form input{flex:1;min-width:0;padding:10px 13px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-primary);font-size:15px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-form input:focus{outline:none;border-color:var(--accent);background:var(--surface-raised);box-shadow:var(--shadow-focus)}.search-form button{padding:0 18px;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-weight:600;font-size:var(--text-sm);transition:background-color var(--transition-fast)}.search-form button:hover{background:var(--accent-hover)}.search-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}.search-result-btn{width:100%;text-align:left;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:none;padding:9px 11px;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.search-result-btn:hover{background:var(--surface-sunken);border-color:var(--border-default)}.search-result-meta{display:flex;gap:8px;font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:3px}.search-result-author{font-weight:700;color:var(--text-primary)}.search-result-time{margin-left:auto}.search-result-snippet{font-size:var(--text-base);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.search-contact-row{display:flex;align-items:center;gap:8px;font-size:var(--text-base);color:var(--text-primary)}.invite-panel{padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--border-subtle);background:var(--surface-panel)}.invite-panel-header{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:var(--text-sm);margin-bottom:8px;color:var(--text-primary)}.invite-panel-header .icon-btn{color:var(--text-tertiary);opacity:1}.invite-user-list{list-style:none;margin:0;padding:4px;display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto;background:var(--surface-sunken);border-radius:var(--radius-md)}.invite-user-row{display:flex;align-items:center;gap:10px;font-size:var(--text-sm);padding:7px 8px;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}.invite-user-row:hover{background:var(--surface-raised);box-shadow:var(--shadow-xs)}.invite-user-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.invite-user-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.invite-user-name-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;overflow:hidden}.invite-user-name-col .invite-user-name{flex:initial}.invite-user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text-tertiary)}.invite-add-btn{flex-shrink:0;padding:5px 12px;border:none;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:var(--text-xs);font-weight:600;transition:background-color var(--transition-fast)}.invite-add-btn:hover:not(:disabled){background:var(--accent-hover)}.invite-add-btn:disabled{opacity:.6}.invite-add-btn.danger{background:var(--danger)}.invite-add-btn.danger:hover:not(:disabled){background:var(--danger-hover)}.invite-role-tag{color:var(--text-tertiary);font-weight:500;font-size:var(--text-xs)}.invite-panel-subtitle{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin:14px 0 7px}.leave-group-btn{margin-top:14px;width:100%;padding:9px;border:1px solid var(--danger-subtle);border-radius:var(--radius-md);background:none;color:var(--danger);font-size:var(--text-sm);font-weight:600;transition:background-color var(--transition-fast)}.leave-group-btn:hover{background:var(--danger-subtle)}.new-conversation-modal{width:min(380px,92vw);max-height:80vh;display:flex;flex-direction:column}.new-conversation-modal .invite-user-list{overflow-y:auto}.new-conversation-search{display:flex;align-items:center;gap:8px;padding:10px 13px;margin-bottom:10px;background:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-tertiary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.new-conversation-search:focus-within{border-color:var(--accent);background:var(--surface-raised);box-shadow:var(--shadow-focus)}.new-conversation-search input{flex:1;border:none;background:none;color:var(--text-primary);font-size:var(--text-base)}.new-conversation-search input:focus{outline:none}.new-conversation-search input::placeholder{color:var(--text-tertiary)}.new-conversation-row{display:flex;align-items:center;gap:10px;width:100%;cursor:pointer;border:none;background:none;padding:0;text-align:left;color:inherit}.chat-window{flex:1;display:flex;flex-direction:column;background:var(--surface-canvas);min-width:0}.chat-window.empty-state{align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--text-md)}.chat-window-header{display:flex;align-items:center;gap:10px;padding:14px var(--space-6);padding-top:max(14px,env(safe-area-inset-top));border-bottom:1px solid var(--border-subtle);background:var(--surface-panel);min-height:32px}.chat-window-header h2{margin:0;font-size:var(--text-md);font-weight:700;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.chat-tabs{display:flex;gap:4px;padding:8px var(--space-6);border-bottom:1px solid var(--border-subtle);background:var(--surface-panel)}.chat-tab{border:none;background:none;padding:6px 14px;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;color:var(--text-tertiary);transition:background-color var(--transition-fast),color var(--transition-fast)}.chat-tab:hover{background:var(--surface-sunken);color:var(--text-primary)}.chat-tab.active{background:var(--accent-subtle);color:var(--accent)}.files-panel{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-6)}.files-panel-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.files-panel-item{display:flex;align-items:center;gap:4px}.files-panel-link{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-md);color:inherit;text-decoration:none;border:none;background:none;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--transition-fast)}.files-panel-link:hover{background:var(--surface-sunken)}.files-panel-icon{flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--accent-subtle);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:var(--text-base)}.files-panel-thumb{flex-shrink:0;width:42px;height:42px;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-default)}.files-panel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.files-panel-name{font-size:var(--text-base);font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-panel-meta{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-tertiary)}.files-panel-download{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-tertiary);font-size:var(--text-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.files-panel-download:hover{background:var(--accent-subtle);color:var(--accent)}.file-preview-modal{max-width:720px;width:100%}.file-preview-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:12px}.file-preview-actions{display:flex;flex-shrink:0;gap:4px}.file-preview-body{display:flex;align-items:center;justify-content:center;min-height:200px}.file-preview-body.fullscreen,.file-preview-body:fullscreen{background:#000;width:100vw;height:100vh}.file-preview-body:fullscreen .file-preview-image,.file-preview-body:fullscreen .file-preview-video{max-height:100vh;border-radius:0}.file-preview-body:fullscreen .file-preview-pdf{height:100vh;border-radius:0}.file-preview-image{max-width:100%;max-height:70vh;border-radius:var(--radius-md);display:block}.file-preview-pdf{width:100%;height:70vh;border:none;border-radius:var(--radius-md)}.file-preview-video{max-width:100%;max-height:70vh;border-radius:var(--radius-md)}.file-preview-fallback{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:var(--text-tertiary);text-align:center}.file-preview-fallback-icon{font-size:48px;color:var(--accent)}.file-preview-download-btn{display:flex;align-items:center;gap:8px;padding:9px 20px;border-radius:var(--radius-full);background:var(--accent);color:#fff;text-decoration:none;font-size:var(--text-base);font-weight:600;transition:background-color var(--transition-fast)}.file-preview-download-btn:hover{background:var(--accent-hover)}.video-recorder-modal{max-width:420px;width:100%}.video-recorder-preview{position:relative;background:#000;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:3 / 4}.video-recorder-video{width:100%;height:100%;object-fit:cover;display:block}.video-recorder-timer{position:absolute;top:10px;left:10px;display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);background:#0000008c;color:#fff;font-size:var(--text-xs);font-variant-numeric:tabular-nums}.video-recorder-actions{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px}.video-record-btn{width:56px;height:56px;border-radius:50%;border:3px solid var(--danger);background:var(--surface-raised);color:var(--danger);font-size:22px;display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast)}.video-record-btn:hover:not(:disabled){transform:scale(1.04)}.video-record-btn:disabled{opacity:.5;cursor:not-allowed}.video-record-btn.recording{background:var(--danger);color:#fff}.back-btn{display:none;align-items:center;justify-content:center;width:32px;height:32px;margin:-4px 0 -4px -6px;flex-shrink:0;border:none;background:none;color:var(--text-primary);font-size:18px;border-radius:50%;transition:background-color var(--transition-fast)}.back-btn:hover{background:var(--surface-sunken)}.call-start-btn{margin-left:auto;color:var(--text-secondary);opacity:1;font-size:16px;width:34px;height:34px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast),color var(--transition-fast)}.call-start-btn:hover:not(:disabled){background:var(--surface-sunken);color:var(--text-primary)}.call-start-btn:disabled{opacity:.35;cursor:not-allowed}.banner-error{background:var(--danger-subtle);color:var(--danger);padding:9px var(--space-6);font-size:var(--text-sm);cursor:pointer}.banner-error .dismiss{float:right}.message-list{flex:1;overflow-y:auto;padding:var(--space-5) var(--space-6);display:flex;flex-direction:column}.loading-more-hint{text-align:center;font-size:var(--text-xs);color:var(--text-tertiary);padding:4px 0 12px}.message-row{display:flex;gap:10px;align-items:flex-end;max-width:68%;border-radius:var(--radius-md);margin-top:14px;transition:background-color .5s ease}.message-row.grouped{margin-top:2px}.message-row.highlighted .message-bubble{animation:message-highlight-pulse 1.6s ease}@keyframes message-highlight-pulse{0%{box-shadow:0 0 0 3px var(--accent-subtle-strong)}to{box-shadow:0 0 0 3px transparent}}.message-row.mine{align-self:flex-end;flex-direction:row-reverse}.message-bubble-wrap{display:flex;flex-direction:column;min-width:0}.message-row.mine .message-bubble-wrap{align-items:flex-end}.message-meta{display:flex;align-items:baseline;gap:8px;font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:4px;padding:0 4px}.message-author{font-weight:700;color:var(--text-primary);font-size:var(--text-sm)}.message-bubble-line{display:flex;align-items:center;gap:4px}.message-delete-btn{flex-shrink:0;background:none;border:none;font-size:12px;opacity:0;color:var(--text-tertiary);padding:5px;border-radius:var(--radius-xs);transition:opacity var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast)}.message-row:hover .message-delete-btn{opacity:.55}.message-delete-btn:hover{opacity:1!important;color:var(--danger);background:var(--danger-subtle)}.message-bubble-actions{display:flex;flex-shrink:0;gap:1px}.message-bubble.editing{display:flex;flex-direction:column;gap:6px;min-width:240px;background:var(--bubble-other)}.message-edit-input{width:100%;min-height:48px;resize:vertical;border:none;border-radius:var(--radius-sm);padding:6px 8px;font-family:inherit;font-size:var(--text-base);color:var(--text-primary)}.message-edit-actions{display:flex;justify-content:flex-end;gap:8px}.message-edit-actions button{border:none;background:#00000014;color:var(--text-primary);border-radius:var(--radius-sm);padding:4px 11px;font-size:var(--text-xs);font-weight:600}.message-edit-actions button:hover{background:#00000024}.message-edited-tag{display:block;font-size:10px;opacity:.7;margin-top:2px}.message-ticks{display:flex;justify-content:flex-end;align-items:center;font-size:13px;margin-top:3px;opacity:.65}.message-ticks svg+svg{margin-left:-7px}.message-ticks.read{color:#53bdeb;opacity:1}.message-forwarded-tag{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-style:italic;opacity:.75;margin-bottom:4px}.forward-preview{display:flex;align-items:center;gap:8px;padding:9px 12px;margin-bottom:10px;border-radius:var(--radius-md);background:var(--surface-sunken);border-left:3px solid var(--accent);color:var(--text-secondary);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-reply-quote{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;border:none;border-left:3px solid rgba(0,0,0,.18);background:#0000000d;border-radius:var(--radius-xs);padding:5px 9px;margin-bottom:6px;transition:background-color var(--transition-fast)}.message-reply-quote:hover{background:#00000017}.message-bubble.mine .message-reply-quote{border-left-color:#fff9;background:#0003}.message-bubble.mine .message-reply-quote:hover{background:#00000047}.message-reply-quote-author{font-size:var(--text-xs);font-weight:700;opacity:.85}.message-reply-quote-text{font-size:var(--text-sm);opacity:.75;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-reply-quote.deleted{font-size:var(--text-sm);font-style:italic;opacity:.6;border-left:3px solid rgba(0,0,0,.14);background:#0000000a;border-radius:var(--radius-xs);padding:5px 9px;margin-bottom:6px}.reply-preview-bar{display:flex;align-items:center;gap:10px;padding:9px var(--space-6);background:var(--surface-sunken);border-top:1px solid var(--border-subtle)}.reply-preview-content{flex:1;min-width:0;display:flex;flex-direction:column;border-left:3px solid var(--accent);padding-left:9px}.reply-preview-author{font-size:var(--text-xs);font-weight:700;color:var(--accent)}.reply-preview-text{font-size:var(--text-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-bubble{background:var(--bubble-other);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:9px 13px;font-size:var(--text-base);line-height:1.45;word-wrap:break-word;overflow-wrap:anywhere;color:var(--text-primary)}.message-bubble.mine{background:var(--bubble-other);color:var(--text-primary);border-color:var(--border-subtle)}.message-text{white-space:pre-wrap}.attachment-image{max-width:260px;max-height:260px;border-radius:var(--radius-sm);display:block}.attachment-image-btn{display:block;margin-top:6px;padding:0;border:none;background:none;cursor:pointer}.attachment-file{display:inline-flex;align-items:center;gap:6px;margin-top:6px;color:inherit;text-decoration:underline;font-size:var(--text-sm);border:none;background:none;font-family:inherit;cursor:pointer;padding:0}.attachment-video{max-width:260px;max-height:260px;border-radius:var(--radius-sm);display:block;margin-top:6px}.audio-player{display:flex;align-items:center;gap:8px;min-width:200px;max-width:260px;margin-top:4px}.audio-player-toggle{flex-shrink:0;width:30px;height:30px;border-radius:50%;border:none;background:#00000014;color:inherit;font-size:var(--text-sm);display:flex;align-items:center;justify-content:center}.message-bubble.mine .audio-player-toggle{background:#ffffff40}.audio-player-seek{flex:1;min-width:0;accent-color:currentColor;height:4px}.audio-player-time{flex-shrink:0;font-size:var(--text-xs);font-variant-numeric:tabular-nums;opacity:.8}.audio-transcribe-btn{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:none;background:#00000014;color:inherit;font-size:var(--text-sm);display:flex;align-items:center;justify-content:center}.message-bubble.mine .audio-transcribe-btn{background:#ffffff40}.audio-transcribe-btn:disabled{opacity:.6}.audio-transcript{margin-top:6px;padding:8px 10px;border-radius:var(--radius-sm);background:#0000000f;font-size:var(--text-base);font-style:italic;line-height:1.4}.message-bubble.mine .audio-transcript{background:#ffffff2e}.audio-transcribe-error{margin-top:6px;font-size:var(--text-xs);color:var(--danger)}.message-bubble.mine .audio-transcribe-error{color:#ffd7da}.typing-indicator{padding:4px var(--space-6) 0;font-size:var(--text-xs);font-style:italic;color:var(--text-tertiary);background:var(--surface-canvas)}.message-input{position:relative;border-top:1px solid var(--border-subtle);background:var(--surface-panel);padding:var(--space-3) var(--space-6) var(--space-4);padding-bottom:max(16px,env(safe-area-inset-bottom))}.mention-suggestions{position:absolute;bottom:100%;left:var(--space-6);right:var(--space-6);margin-bottom:6px;background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:220px;overflow-y:auto;list-style:none;padding:6px;z-index:20}.mention-suggestion-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary)}.mention-suggestion-row.active,.mention-suggestion-row:hover{background:var(--surface-sunken)}.mention-suggestion-username{margin-left:auto;color:var(--text-tertiary);font-size:var(--text-xs)}.mention-tag{color:var(--accent);font-weight:600;background:#5a5fc724;padding:1px 5px;border-radius:4px}.mention-tag-me{background:var(--accent);color:#fff}.message-bubble.mine .mention-tag{background:#ffffff40;color:#fff}.message-bubble.mine .mention-tag-me{background:#ffffffe6;color:var(--accent)}.message-input-row{display:flex;align-items:center;gap:4px;background:var(--surface-sunken);border:1px solid transparent;border-radius:var(--radius-xl);padding:5px 6px 5px 10px;transition:border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.message-input-row:focus-within{border-color:var(--accent-subtle-strong);background:var(--surface-raised);box-shadow:var(--shadow-focus)}.message-text-input{flex:1;padding:8px 6px;border-radius:var(--radius-lg);border:none;background:none;color:var(--text-primary);font-size:15px}.message-text-input::placeholder{color:var(--text-tertiary)}.message-text-input:focus{outline:none}.message-input-row button[type=submit]{padding:8px 18px;border-radius:var(--radius-full);border:none;background:var(--accent);color:#fff;font-weight:600;font-size:var(--text-sm);transition:background-color var(--transition-fast),transform var(--transition-fast)}.message-input-row button[type=submit]:hover:not(:disabled){background:var(--accent-hover)}.message-input-row button[type=submit]:active:not(:disabled){transform:scale(.96)}.message-input-row button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.message-input-row .icon-btn{color:var(--text-secondary);font-size:16px;width:34px;height:34px;border-radius:50%;opacity:1}.message-input-row .icon-btn:hover:not(:disabled){background:var(--border-subtle);color:var(--text-primary)}.message-input-row .icon-btn:disabled{opacity:.4}.mic-btn{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff!important;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}.mic-btn:hover:not(:disabled){background:var(--accent-hover)!important}.mic-btn.recording{background:var(--danger)!important;color:#fff}.recording-row{flex:1;display:flex;align-items:center;gap:8px;padding:0 8px;min-width:0}.recording-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);flex-shrink:0;animation:recording-pulse 1s ease-in-out infinite}@keyframes recording-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.recording-time{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary);flex-shrink:0}.recording-hint{color:var(--text-tertiary);font-size:var(--text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-preview-row{display:flex;align-items:center;gap:10px}.audio-preview-row .audio-player{flex:1;max-width:none}.discard-btn{flex-shrink:0;font-size:17px;color:var(--danger);width:32px;height:32px;border-radius:50%}.discard-btn:hover{background:var(--danger-subtle)}.send-audio-btn{flex-shrink:0;padding:9px 20px;border-radius:var(--radius-full);border:none;background:var(--accent);color:#fff;font-weight:600;font-size:var(--text-sm);transition:background-color var(--transition-fast)}.send-audio-btn:hover:not(:disabled){background:var(--accent-hover)}.send-audio-btn:disabled{opacity:.5;cursor:not-allowed}.pending-file{display:inline-flex;align-items:center;gap:8px;background:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:5px 11px;font-size:var(--text-xs);margin-bottom:8px;color:var(--text-secondary)}.pending-file button{background:none;border:none;color:var(--danger);font-size:var(--text-sm)}.call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:radial-gradient(120% 120% at 50% 0%,#221f36,#121018 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.call-remote-video{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;object-fit:cover}.call-status-screen{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:14px;color:#fff;text-align:center;padding:0 24px}.call-peer-name{font-size:var(--text-xl);font-weight:700;letter-spacing:-.01em}.call-status-text{font-size:var(--text-base);color:#ffffffb3}.call-local-video{position:absolute;bottom:max(96px,calc(96px + env(safe-area-inset-bottom)));right:16px;width:110px;height:150px;border-radius:var(--radius-md);object-fit:cover;background:#000;box-shadow:var(--shadow-lg);transform:scaleX(-1);z-index:2;border:1px solid rgba(255,255,255,.1)}.call-local-video.preview{position:relative;z-index:2;width:140px;height:190px;margin-top:10px}.call-controls{position:absolute;left:0;right:0;bottom:max(32px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:22px;z-index:3}.call-btn{width:58px;height:58px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;font-size:22px;transition:transform var(--transition-fast),background-color var(--transition-fast)}.call-btn:hover{transform:translateY(-2px)}.call-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.call-btn-hangup{background:var(--danger);color:#fff}.call-btn-hangup:hover{background:var(--danger-hover)}.call-btn-accept{background:var(--online);color:#fff}.call-btn-toggle{background:#ffffff24;color:#fff}.call-btn-toggle.off{background:#ffffff59}.call-btn-toggle.active{background:var(--accent);color:#fff}.call-sharing-banner{position:absolute;top:max(16px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:3;display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:var(--text-sm);font-weight:600;box-shadow:var(--shadow-md)}.call-error-banner{position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:100;background:var(--danger);color:#fff;padding:10px 16px;border-radius:var(--radius-md);font-size:var(--text-sm);box-shadow:var(--shadow-md);max-width:90%}.call-error-banner .dismiss{margin-left:8px;opacity:.8}.call-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;gap:4px;padding:4px;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));align-content:center}.call-tile{position:relative;background:#14111f;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center}.call-tile.sharing{grid-column:1 / -1;grid-row:span 2;aspect-ratio:16 / 9;outline:2px solid var(--accent);outline-offset:-2px}.call-tile-video{width:100%;height:100%;object-fit:cover}.call-tile.sharing .call-tile-video{object-fit:contain}.call-tile-sharing-tag{position:absolute;top:8px;left:8px;z-index:2;display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);background:var(--accent);color:#fff;font-size:var(--text-xs);font-weight:600}.call-tile-placeholder{display:flex;flex-direction:column;align-items:center;gap:10px;color:#ffffffbf}.call-tile-connecting{font-size:var(--text-sm)}.call-alone-hint{grid-column:1 / -1;color:#fff9;font-size:var(--text-base)}.call-tile-name{position:absolute;left:8px;bottom:8px;z-index:2;color:#fff;font-size:var(--text-sm);font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.6)}.call-people-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:8px}.call-people-strip-item{display:flex;flex-direction:column;align-items:center;gap:6px;color:#ffffffd9;font-size:var(--text-sm);max-width:80px;text-align:center}.group-call-picker{width:min(420px,92vw);max-height:80vh;display:flex;flex-direction:column}.admin-panel{width:min(460px,92vw);max-width:460px;max-height:85vh;overflow-y:auto;overflow-x:hidden;transition:width var(--transition-fast),max-width var(--transition-fast),max-height var(--transition-fast)}.admin-panel.maximized{width:94vw;max-width:94vw;max-height:94vh;height:94vh}.admin-panel.maximized .ldap-settings-grid,.admin-panel.maximized .status-resource-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.admin-panel .invite-user-list{max-height:none}.ldap-settings-section{margin-top:14px;border-top:1px solid var(--border-subtle);padding-top:10px}.ldap-settings-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;padding:4px 0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);cursor:pointer}.ldap-settings-toggle span{display:flex;align-items:center;gap:7px}.ldap-settings-form{display:flex;flex-direction:column;gap:10px;margin-top:10px}.ldap-settings-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.ldap-settings-form input[type=text],.ldap-settings-form input[type=number],.ldap-settings-form input[type=password],.ldap-settings-form input[type=email],.ldap-settings-form input:not([type]){padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-sunken);color:var(--text-primary);font-size:var(--text-sm)}.ldap-settings-form input:focus{outline:none;border-color:var(--accent)}.ldap-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ldap-checkbox-row{flex-direction:row!important;align-items:center;gap:8px!important}.ldap-settings-divider{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-top:6px;padding-top:10px;border-top:1px dashed var(--border-subtle)}.ldap-settings-hint{font-size:12px;color:var(--text-tertiary);margin-top:-4px}.ldap-test-btn{align-self:flex-start;padding:7px 14px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-panel);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer}.ldap-test-btn:disabled{opacity:.5;cursor:default}.ldap-test-ok,.ldap-test-error{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);padding:7px 10px;border-radius:var(--radius-sm)}.ldap-test-ok{color:var(--online);background:var(--online-subtle)}.ldap-test-error{color:var(--danger);background:var(--danger-subtle)}.admin-tabs{display:flex;flex-wrap:wrap;gap:2px 4px;margin-top:16px;border-bottom:1px solid var(--border-subtle)}.admin-tab{display:flex;align-items:center;gap:5px;white-space:nowrap;padding:7px 9px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-tertiary);font-size:var(--text-xs);font-weight:500;cursor:pointer;margin-bottom:-1px}.admin-tab:hover{color:var(--text-primary)}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.admin-tab-content{padding-top:12px}.local-user-row{flex-wrap:wrap;gap:8px}.local-user-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.local-user-username{color:var(--text-tertiary);font-weight:400}.local-user-name-input{padding:5px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-sunken);color:var(--text-primary);font-size:var(--text-sm)}.local-user-edit-inputs{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.local-user-edit-inputs .local-user-name-input{width:100%}.local-user-email{color:var(--text-tertiary);font-weight:400}.local-user-email.missing{color:var(--text-tertiary);opacity:.6;font-style:italic}.local-user-notify-check{display:flex;align-items:center;gap:7px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer}.local-user-notify-check input{cursor:pointer}.local-user-tag{font-size:11px;padding:2px 7px;border-radius:999px;background:var(--surface-sunken);color:var(--text-tertiary);white-space:nowrap}.local-user-tag.danger{background:var(--danger-subtle);color:var(--danger)}.local-user-tag.totp-on{background:var(--online-subtle);color:var(--online)}.local-user-actions .icon-btn.active-toggle{background:var(--accent-subtle);color:var(--accent)}.local-user-actions{display:flex;align-items:center;gap:4px}.local-user-actions .icon-btn,.invite-user-row .icon-btn{color:var(--text-tertiary);opacity:1}.invite-user-row .icon-btn.active-toggle{background:var(--accent-subtle);color:var(--accent)}.local-user-actions .icon-btn.danger:hover{color:var(--danger);background:var(--danger-subtle)}.local-user-reset-row{display:flex;gap:6px;width:100%;margin-top:6px}.local-user-reset-row input{flex:1;padding:6px 9px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--surface-sunken);color:var(--text-primary);font-size:var(--text-sm)}.group-call-picker .invite-user-list{overflow-y:auto}.group-call-picker-row{display:flex;align-items:center;gap:10px;cursor:pointer;width:100%}.group-call-picker-row.offline{cursor:default;opacity:.5}.group-call-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;margin-top:8px;border-top:1px solid var(--border-subtle)}.group-call-picker-count{font-size:var(--text-xs);color:var(--text-tertiary)}@media (min-width: 601px) and (max-width: 900px){.sidebar{width:76px}.sidebar-header{align-items:center}.sidebar-header-profile-btn{justify-content:center}.sidebar-header-actions{justify-content:center;flex-wrap:wrap}.sidebar-username,.sidebar-status,.sidebar-section-title,.new-channel-form,.empty-hint,.list-item-name,.list-item-status,.list-item-text{display:none}.list-item{justify-content:center}.dm-hide-btn{display:none}}@media (max-width: 600px){.chat-app{display:block}.sidebar,.chat-window{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.sidebar{z-index:2;transition:transform var(--transition-slow)}.chat-window{transform:translate(100%);transition:transform var(--transition-slow)}.chat-app.has-active-view .sidebar{transform:translate(-100%)}.chat-app.has-active-view .chat-window{transform:translate(0)}.back-btn{display:inline-flex}.list-item{padding:12px 10px;font-size:var(--text-md)}.message-row{max-width:88%}.chat-window-header,.message-input{padding-left:16px;padding-right:16px}.message-list{padding:16px}}.service-status-btn{position:relative}.service-status-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;border:1.5px solid var(--surface-sidebar);background:var(--text-tertiary)}.service-status-dot.ok{background:var(--online)}.service-status-dot.warning{background:#e8a33d}.status-modal{width:min(480px,92vw);max-width:480px;max-height:85vh;overflow-y:auto;transition:width var(--transition-fast),max-width var(--transition-fast),max-height var(--transition-fast)}.status-modal.maximized{width:94vw;max-width:94vw;max-height:94vh;height:94vh}.status-modal-header-actions{display:flex;align-items:center;gap:6px}.status-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;margin-bottom:16px}.status-banner.ok{background:var(--online-subtle);color:var(--online)}.status-banner.warning{background:#e8a33d29;color:#b9791f}.status-banner.unknown{background:var(--surface-sunken);color:var(--text-tertiary)}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:20px}.status-card{background:var(--surface-sunken);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:2px;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.status-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.status-card-icon{color:var(--accent);font-size:13px;margin-bottom:4px}.status-card-value{display:flex;align-items:baseline;gap:6px;font-size:var(--text-lg);font-weight:700;color:var(--text-primary)}.status-card-percent{font-size:var(--text-xs);font-weight:600;color:var(--text-tertiary)}.status-card-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:6px}.status-progress{height:5px;border-radius:999px;background:var(--border-subtle);overflow:hidden;margin-top:auto}.status-progress-fill{height:100%;border-radius:999px;background:var(--online);transition:width var(--transition-fast)}.status-progress-fill.warning{background:#e8a33d}.status-progress-fill.danger{background:var(--danger)}.status-chart{background:var(--surface-sunken);border-radius:var(--radius-md);padding:12px 14px 8px;margin-bottom:20px}.status-chart-svg{width:100%;height:70px;display:block;overflow:visible}.status-chart-area{fill:color-mix(in srgb,var(--accent) 16%,transparent);stroke:none}.status-chart-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.status-chart-dot{fill:var(--accent)}.status-chart-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:var(--text-tertiary)}.status-resource-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:4px 16px;margin-bottom:8px}.status-resource .invite-panel-subtitle{margin-top:4px}.status-disk{background:var(--surface-sunken);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:20px}.status-disk-header{display:flex;align-items:baseline;gap:10px;font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:8px}.status-disk-free{color:var(--text-tertiary);font-weight:400;font-size:var(--text-xs)}.status-disk-percent{margin-left:auto;color:var(--accent);font-weight:700}.status-disk-total{margin-top:6px;font-size:var(--text-xs);color:var(--text-tertiary)}.status-modal.maximized .status-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.status-modal.maximized .status-chart-svg{height:140px}.status-integration-list{list-style:none}.status-integration-row{display:flex;align-items:center;gap:8px;padding:8px;font-size:var(--text-sm)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);flex-shrink:0}.status-dot.ok{background:var(--online)}.status-dot.warning{background:#e8a33d}.status-dot.off{background:var(--border-default)}.status-integration-label{font-weight:500}.status-integration-state{color:var(--text-tertiary);margin-left:auto;font-size:var(--text-xs)}.status-integration-detail{color:var(--text-tertiary);font-size:var(--text-xs)}
