:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-tertiary: #0f3460;--bg-surface: #1e2746;--text-primary: #e8e8e8;--text-secondary: #a0a0b0;--text-muted: #6b6b80;--accent: #4f8cff;--accent-hover: #3a70e0;--accent-light: rgba(79, 140, 255, .15);--danger: #e74c3c;--danger-hover: #c0392b;--success: #27ae60;--border: #2a2a4a;--btn-text: #fff;--radius: 8px;--radius-sm: 4px;--shadow: 0 2px 8px rgba(0, 0, 0, .3);--header-height: 52px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-size:14px;cursor:pointer;transition:background .15s,border-color .15s}.btn:hover{background:var(--bg-tertiary);border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:4px 10px;font-size:12px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--btn-text)}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-full{width:100%}input,textarea{width:100%;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s}input:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-muted)}label{display:block;margin-bottom:4px;font-size:13px;color:var(--text-secondary)}.form-group{margin-bottom:16px}.form-actions{display:flex;gap:8px;margin-top:8px}.app-layout{display:flex;flex-direction:column;height:100%}.app-header{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.header-brand{font-size:18px;font-weight:700;color:var(--accent);letter-spacing:-.5px}.verify-email-banner{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#f39c1226;border-bottom:1px solid rgba(243,156,18,.3);color:var(--text-primary);font-size:13px;flex-shrink:0;gap:12px}.verify-email-actions{display:flex;gap:8px;flex-shrink:0}.header-user{display:flex;align-items:center;gap:12px}.header-username{font-size:13px;color:var(--text-secondary)}.app-main{flex:1;overflow:hidden;display:flex;flex-direction:column}.auth-page{display:flex;align-items:center;justify-content:center;flex:1;padding:20px}.auth-card{width:100%;max-width:400px;padding:32px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.auth-card h1{font-size:28px;color:var(--accent);margin-bottom:4px;text-align:center}.auth-card h2{font-size:16px;color:var(--text-secondary);font-weight:400;margin-bottom:24px;text-align:center}.auth-switch{margin-top:16px;text-align:center;font-size:13px;color:var(--text-secondary)}.auth-switch a{color:var(--accent);text-decoration:none}.auth-switch a:hover{text-decoration:underline}.error-banner{padding:10px 12px;margin-bottom:16px;background:#e74c3c26;border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);font-size:13px;cursor:pointer}.oauth-section{margin-top:16px}.oauth-divider{display:flex;align-items:center;margin-bottom:16px;gap:12px}.oauth-divider:before,.oauth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.oauth-divider span{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.oauth-buttons{display:flex;flex-direction:column;gap:8px}.btn-oauth{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;text-decoration:none}.btn-oauth:hover{text-decoration:none;opacity:.9}.oauth-icon{flex-shrink:0}.btn-google{background:#fff;color:#3c4043;border:1px solid #dadce0}.btn-google:hover{background:#f8f9fa;border-color:#c6c6c6}.btn-github{background:#24292e;color:#fff;border:1px solid #444d56}.btn-github:hover{background:#2f363d;border-color:#666}.chat-page{display:flex;flex:1;min-height:0}.sidebar-resize-handle{width:4px;cursor:col-resize;background:transparent;flex-shrink:0;transition:background .15s}.sidebar-resize-handle:hover,.sidebar-resize-handle:active{background:var(--accent)}.room-list{width:280px;min-width:200px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;min-height:0}.dm-section{display:flex;flex-direction:column;overflow:hidden}.dm-section .dm-items{overflow-y:auto;flex:1;min-height:0}.dm-resize-handle{height:4px;cursor:row-resize;background:transparent;flex-shrink:0;transition:background .15s}.dm-resize-handle:hover,.dm-resize-handle:active{background:var(--accent)}.room-list-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.room-list-header h2{font-size:15px;font-weight:600}.room-list-header-toggle{cursor:pointer;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none}.room-list-header-toggle:hover{color:var(--accent)}.collapse-arrow{font-size:10px;transition:transform .15s;display:inline-block}.collapse-arrow.collapsed{transform:rotate(-90deg)}.collapse-count{font-size:11px;font-weight:400;color:var(--text-muted);background:var(--bg-tertiary);padding:0 6px;border-radius:10px;margin-left:4px}.collapse-count-unread{background:var(--accent);color:var(--btn-text);font-weight:600}.room-list-actions{display:flex;gap:6px}.create-room-form{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.room-items{flex:1;overflow-y:auto}.room-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:pointer;border-bottom:1px solid rgba(42,42,74,.5);transition:background .1s}.room-item:hover{background:var(--bg-surface)}.room-item.active{background:var(--accent-light);border-left:3px solid var(--accent)}.room-item-unread .room-name{font-weight:700;color:#fff}.dm-close-btn{display:none;background:none;border:none;color:var(--text-muted);font-size:16px;line-height:1;padding:2px 6px;margin-left:4px;cursor:pointer;border-radius:4px;flex-shrink:0}.dm-close-btn:hover{color:var(--danger, #ef4444);background:#ef444426}.room-item:hover .dm-close-btn{display:block}.voice-indicator{display:inline-flex;align-items:center;color:var(--success);margin-left:2px;animation:voice-pulse 2s ease-in-out infinite}@keyframes voice-pulse{0%,to{opacity:1}50%{opacity:.5}}.unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;flex-shrink:0;margin-left:auto}.room-info{display:flex;flex-direction:column;min-width:0}.room-name{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-prefix-hash{color:var(--text-muted);font-weight:600;font-size:15px;flex-shrink:0}.room-prefix-icon{color:var(--text-muted);flex-shrink:0;opacity:.7}.room-members{font-size:11px;color:var(--text-muted)}.room-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.room-list-header-rooms{border-top:none}.dm-search-results{max-height:160px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary)}.dm-search-result-item{padding:8px 12px;cursor:pointer;transition:background .1s;font-size:13px}.dm-search-result-item:hover{background:var(--bg-surface)}.dm-search-username{color:var(--text-primary)}.chat-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0}.no-room-selected{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-muted)}.no-room-selected h2{font-size:20px;margin-bottom:8px;color:var(--text-secondary)}.chat-panel{display:flex;flex-direction:column;flex:1;min-height:0}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.chat-header-info h3{font-size:15px;font-weight:600;display:flex;align-items:center;gap:6px}.encryption-badge{font-size:11px;padding:2px 8px;border-radius:var(--radius-sm);font-weight:600;letter-spacing:.3px;vertical-align:middle;margin-left:8px}.encryption-badge-on{color:#27ae60;background:#27ae601f;border:1px solid rgba(39,174,96,.3)}.encryption-badge-off{color:#e74c3c;background:#e74c3c1f;border:1px solid rgba(231,76,60,.3);animation:pulse-red 2s ease-in-out infinite}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.7}}.encryption-badge-clickable{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.encryption-badge-clickable:hover{background:#e74c3c40;border-color:#e74c3c99}.encryption-badge-clickable:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.encryption-badge-pending{color:#f39c12;background:#f39c121f;border:1px solid rgba(243,156,18,.3);animation:pulse-amber 1.5s ease-in-out infinite}@keyframes pulse-amber{0%,to{opacity:1}50%{opacity:.6}}.encryption-status-banner{display:flex;align-items:center;justify-content:center;padding:6px 16px;font-size:.82em;font-weight:600;color:#f39c12;background:#f39c121a;border-bottom:1px solid rgba(243,156,18,.2)}.encryption-status-success{color:#27ae60;background:#27ae601a;border-bottom-color:#27ae6033}.encryption-status-error{color:#e74c3c;background:#e74c3c1a;border-bottom-color:#e74c3c33}.encryption-unlock-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#e74c3c26;border-bottom:2px solid #e74c3c;color:#ff6b6b;font-size:13px;cursor:pointer;transition:background .15s}.encryption-unlock-banner:hover{background:#e74c3c40}.encryption-unlock-banner svg{flex-shrink:0;stroke:#e74c3c}.encryption-unlock-banner span{flex:1}.encryption-unlock-banner-btn{background:#e74c3c!important;color:#fff!important;border:none!important;white-space:nowrap;font-weight:600}.encryption-unlock-banner-btn:hover{background:#c0392b!important}.header-keys-locked-btn{background:#e74c3c33!important;border:1px solid rgba(231,76,60,.5)!important;color:#e74c3c!important;font-weight:600;animation:pulse-red 2s ease-in-out infinite}.header-keys-locked-btn:hover{background:#e74c3c59!important}.invite-banner{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--accent-light);border-bottom:1px solid var(--border);font-size:13px}.invite-banner code{background:var(--bg-primary);padding:2px 8px;border-radius:var(--radius-sm);font-family:monospace;-webkit-user-select:all;user-select:all}.visibility-toggle{display:flex;align-items:center;gap:6px;padding:2px 4px;border-radius:var(--radius-sm);white-space:nowrap}.visibility-toggle-label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);font-weight:500;-webkit-user-select:none;user-select:none}.visibility-toggle-label svg{opacity:.7}.visibility-toggle .settings-switch{flex-shrink:0}.visibility-status-banner{display:flex;align-items:center;gap:8px;padding:6px 14px;background:#27ae601f;border-bottom:1px solid rgba(39,174,96,.25);font-size:13px;color:#27ae60;animation:visibility-toast-in .25s ease-out}.visibility-status-banner svg{flex-shrink:0}@keyframes visibility-toast-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.chat-description{font-size:12px;color:var(--text-muted)}.chat-description-editable{cursor:pointer;border-bottom:1px dashed transparent;transition:border-color .15s}.chat-description-editable:hover{border-bottom-color:var(--text-muted)}.topic-edit-form{display:inline-flex;flex:1;min-width:0}.topic-edit-input{font-size:12px;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;width:100%;max-width:400px;outline:none}.chat-header-actions{display:flex;gap:8px}.chat-body{display:flex;flex:1;overflow:hidden;min-height:0}.chat-messages-container{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0}.message-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:0}.load-more{align-self:center;margin-bottom:12px}.message-empty{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted);font-size:14px}.message{display:flex;flex-direction:column;align-items:flex-start;max-width:70%;margin-top:8px}.message-grouped{margin-top:1px}.message-grouped .message-bubble{border-top-left-radius:4px}.message-grouped .message-time{opacity:0;transition:opacity .15s}.message-grouped:hover .message-time{opacity:1}.message-own .message-sender-name{color:var(--accent);font-weight:600}.message-own .message-bubble{background:#4f8cff33;border-color:#4f8cff66}.message-sender{font-size:11px;color:var(--accent);margin-bottom:2px;margin-left:8px}.message-bubble{padding:8px 12px;background:var(--bg-surface);border-radius:var(--radius);border:1px solid var(--border);max-width:100%}.message-content{font-size:14px;word-break:break-word;white-space:pre-wrap}.message-link{color:var(--accent);text-decoration:none;word-break:break-all}.message-link:hover{text-decoration:underline}.url-preview{margin-top:6px;border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-primary);overflow:hidden;max-width:400px;position:relative}.url-preview-dismiss{position:absolute;top:4px;right:4px;background:#0009;color:var(--text-muted);border:none;border-radius:50%;width:20px;height:20px;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;z-index:2}.url-preview:hover .url-preview-dismiss{opacity:1}.url-preview-dismiss:hover{color:var(--text-primary);background:#000c}.url-preview-generic{display:flex}.url-preview-generic-link{display:flex;text-decoration:none;color:inherit;flex:1}.url-preview-generic-link:hover{background:var(--bg-secondary)}.url-preview-image{width:80px;min-height:60px;object-fit:cover;flex-shrink:0}.url-preview-info{padding:8px 10px;min-width:0}.url-preview-site{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.url-preview-title{font-size:13px;font-weight:600;color:var(--accent);text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.url-preview-title:hover{text-decoration:underline}.url-preview-desc{font-size:12px;color:var(--text-secondary);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.url-preview-youtube{max-width:400px}.url-preview-thumbnail-btn{position:relative;display:block;width:100%;border:none;padding:0;cursor:pointer;background:#000;line-height:0}.url-preview-thumbnail{width:100%;aspect-ratio:16/9;object-fit:cover;opacity:.85;transition:opacity .15s}.url-preview-thumbnail-btn:hover .url-preview-thumbnail{opacity:1}.url-preview-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;color:#ffffffe6;text-shadow:0 2px 8px rgba(0,0,0,.5);pointer-events:none}.url-preview-embed{position:relative;width:100%;padding-top:56.25%}.url-preview-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.message-time{font-size:10px;color:var(--text-muted);margin-top:2px;text-align:right}.message-lock-icon{font-size:9px;margin-right:3px;opacity:.5}.message-encrypted-failed{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#ffffff08;border:1px dashed var(--text-muted);border-radius:var(--radius-sm);color:var(--text-muted);font-style:italic;font-size:13px}.encrypted-lock-icon{font-size:14px;opacity:.6;flex-shrink:0}.encrypted-failed-text{opacity:.8}.typing-indicator{font-size:12px;color:var(--text-muted);font-style:italic;padding:4px 8px}.message-input{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0}.message-input textarea{flex:1;resize:none;min-height:40px;max-height:120px}.send-btn{height:40px;min-width:64px}.members-panel{width:200px;min-width:200px;background:var(--bg-secondary);border-left:1px solid var(--border);padding:12px;overflow-y:auto}.members-panel h4{font-size:13px;font-weight:600;margin-bottom:12px;color:var(--text-secondary)}.member-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;font-size:13px;border-bottom:1px solid rgba(42,42,74,.3)}.member-self .member-name{color:var(--accent)}.member-name{font-weight:500}.member-role{font-size:10px;color:var(--text-muted);text-transform:uppercase}.member-badge{font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;margin-left:4px;flex-shrink:0}.member-badge-admin{background:#e74c3c33;color:#e74c3c}.member-badge-bot{background:#9b59b633;color:#9b59b6}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{width:100%;max-width:400px;padding:32px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.modal h2{font-size:18px;margin-bottom:8px;color:var(--accent)}.modal p{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.form-error{padding:8px 12px;margin-bottom:12px;background:#e74c3c26;border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);font-size:13px}.header-profile-btn{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:background .15s}.header-profile-btn:hover{background:var(--bg-tertiary)}.header-avatar{width:28px;height:28px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);flex-shrink:0}.header-avatar-img{width:100%;height:100%;object-fit:cover}.header-avatar-initials{font-size:11px;font-weight:600;color:var(--accent);line-height:1}.message-sender-row{display:flex;align-items:center;gap:6px;margin-bottom:2px;margin-left:4px}.message-avatar-btn{width:22px;height:22px;border-radius:50%;overflow:visible;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;cursor:pointer;padding:0;flex-shrink:0;transition:opacity .15s;position:relative}.message-avatar-btn>.message-avatar-img{border-radius:50%}.message-avatar-btn:hover{opacity:1}.avatar-hover-preview{display:none;position:absolute;left:0;bottom:calc(100% + 8px);z-index:100;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:6px;box-shadow:0 4px 16px #0006;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.avatar-hover-preview img{width:128px;height:128px;border-radius:8px;object-fit:cover;display:block}.avatar-hover-name{font-size:11px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.message-avatar-btn:hover .avatar-hover-preview{display:flex}.message-avatar-img{width:100%;height:100%;object-fit:cover}.message-avatar-initials{font-size:9px;font-weight:600;color:var(--accent);line-height:1}.message-sender-name{font-size:11px;color:var(--accent);background:none;border:none;cursor:pointer;padding:0;font-family:inherit;transition:text-decoration .15s}.message-sender-name:hover{text-decoration:underline}.profile-modal{max-width:420px}.profile-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.profile-modal-header h2{margin-bottom:0}.profile-loading{text-align:center;color:var(--text-muted);padding:24px 0}.profile-avatar-section{display:flex;justify-content:center;margin-bottom:16px}.profile-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:2px solid var(--border);position:relative}.profile-avatar-editable{cursor:pointer}.profile-avatar-editable:hover .profile-avatar-overlay{opacity:1}.profile-avatar-img{width:100%;height:100%;object-fit:cover}.profile-avatar-initials{font-size:28px;font-weight:700;color:var(--accent);line-height:1}.profile-avatar-overlay{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:600;opacity:0;transition:opacity .15s;border-radius:50%}.profile-info{text-align:center;margin-bottom:16px}.profile-username{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:2px}.profile-status{font-size:13px;color:var(--accent);margin-bottom:4px}.profile-email{font-size:12px;color:var(--text-muted);margin-bottom:2px}.profile-joined{font-size:12px;color:var(--text-muted)}.profile-bio-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.profile-section-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.profile-bio{font-size:13px;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.profile-edit-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.profile-char-count{text-align:right;font-size:11px;color:var(--text-muted);margin-top:2px}.webhook-modal{max-width:520px;max-height:80vh;overflow-y:auto}.webhook-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.webhook-header h2{margin-bottom:0}.webhook-loading{color:var(--text-muted);text-align:center;padding:16px 0}.webhook-empty{color:var(--text-muted);text-align:center;padding:16px 0;font-size:13px}.webhook-list{display:flex;flex-direction:column;gap:8px}.webhook-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm)}.webhook-item-info{flex:1;min-width:0}.webhook-item-name{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.webhook-item-url{font-size:12px;color:var(--text-muted);word-break:break-all;margin-bottom:4px}.webhook-item-events{display:flex;gap:4px;flex-wrap:wrap}.webhook-event-tag{display:inline-block;padding:2px 6px;font-size:10px;background:var(--accent-light);color:var(--accent);border-radius:3px;font-weight:500}.webhook-secret-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;background:#27ae6026;border:1px solid var(--success);border-radius:var(--radius-sm);font-size:13px}.webhook-secret-banner p{width:100%;margin-bottom:4px;color:var(--success)}.webhook-secret-banner code{background:var(--bg-primary);padding:4px 8px;border-radius:var(--radius-sm);font-family:monospace;font-size:11px;word-break:break-all;-webkit-user-select:all;user-select:all;flex:1}.webhook-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.webhook-event-checkboxes{display:flex;flex-direction:column;gap:6px}.webhook-event-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary);cursor:pointer}.webhook-event-checkbox input[type=checkbox]{width:auto;margin:0;cursor:pointer}.loading-screen{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:16px}.file-message{margin:2px 0}.file-message-image{display:flex;flex-direction:column;gap:4px}.file-message-image a{display:block;line-height:0}.file-preview-img{max-width:320px;max-height:240px;border-radius:var(--radius-sm);object-fit:contain;cursor:pointer;transition:opacity .15s}.file-preview-img:hover{opacity:.85}.file-info-row{display:flex;align-items:center;gap:8px;font-size:12px}.file-info-row .file-name{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.file-info-row .file-size{color:var(--text-muted);flex-shrink:0}.file-message-generic{display:flex;align-items:center;gap:10px;padding:6px 4px}.file-icon{flex-shrink:0;color:var(--accent)}.file-details{display:flex;flex-direction:column;min-width:0}.file-name-link{font-size:13px;font-weight:500;color:var(--accent);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.file-name-link:hover{text-decoration:underline}.file-details .file-size{font-size:11px;color:var(--text-muted)}.file-download-btn{flex-shrink:0;height:32px;width:32px;min-width:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);text-decoration:none}.message-input-wrapper{display:flex;flex-direction:column;flex-shrink:0}.paste-preview{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-secondary);border-top:1px solid var(--border)}.paste-preview-img{max-height:80px;max-width:120px;border-radius:6px;object-fit:contain;border:1px solid var(--border)}.paste-preview-actions{display:flex;align-items:center;gap:8px}.paste-preview-label{font-size:13px;color:var(--text-secondary)}.btn-sm{padding:4px 12px;font-size:12px}.upload-progress-bar{position:relative;height:24px;background:var(--bg-secondary);border-top:1px solid var(--border);overflow:hidden}.upload-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--accent);opacity:.25;transition:width .2s ease}.upload-progress-text{position:relative;display:flex;align-items:center;justify-content:center;height:100%;font-size:11px;color:var(--text-secondary);z-index:1}.upload-error{padding:6px 16px;background:#e74c3c26;border-top:1px solid var(--danger);color:var(--danger);font-size:12px;cursor:pointer}.attach-btn{height:40px;width:40px;min-width:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0}.attach-btn:hover{color:var(--accent)}.attach-btn:disabled{opacity:.4;cursor:not-allowed}.unencrypted-warning{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#e74c3c26;border:1px solid rgba(231,76,60,.4);border-radius:var(--radius-sm);color:#e74c3c;font-size:13px;font-weight:500;margin-bottom:4px}.unencrypted-warning svg{flex-shrink:0;stroke:#e74c3c}.unencrypted-warning span{flex:1}.unencrypted-warning-action{background:#e74c3c33;border:1px solid rgba(231,76,60,.5);color:#e74c3c;font-size:11px;font-weight:600;padding:3px 10px;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap}.unencrypted-warning-action:hover{background:#e74c3c4d}.unencrypted-warning-dismiss{background:none;border:none;color:#e74c3c;font-size:16px;padding:0 4px;cursor:pointer;opacity:.6;line-height:1}.unencrypted-warning-dismiss:hover{opacity:1}.message-input-unencrypted{border-color:#e74c3c80!important;box-shadow:0 0 0 1px #e74c3c4d,inset 0 0 0 1px #e74c3c1a}.message-input-unencrypted textarea::placeholder{color:#e74c3c99}.btn-warning{background:#e74c3c33!important;color:#e74c3c!important;border:1px solid rgba(231,76,60,.4)!important;font-size:11px}.btn-warning:hover:not(:disabled){background:#e74c3c4d!important}.encryption-indicator{font-size:16px;line-height:1;flex-shrink:0;cursor:default}.encryption-indicator.encrypted{opacity:.5}.encryption-indicator.unencrypted{opacity:1;animation:pulse-red 2s ease-in-out infinite}.encrypt-file-dialog{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin-bottom:8px}.encrypt-file-dialog-content{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.encrypt-file-dialog-icon{font-size:1.5em;flex-shrink:0}.encrypt-file-dialog-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:120px}.encrypt-file-dialog-filename{font-size:.85em;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px}.encrypt-file-dialog-actions{display:flex;align-items:center;gap:12px;margin-left:auto;flex-wrap:wrap}.encrypt-file-dialog-remember{display:flex;align-items:center;gap:6px;font-size:.85em;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.encrypt-file-dialog-remember input{cursor:pointer}.encrypt-file-dialog-buttons{display:flex;gap:6px}.encrypt-prefs-info{display:flex;align-items:center;gap:8px;padding:4px 12px;font-size:.8em;color:var(--text-secondary)}.encrypt-prefs-label{white-space:nowrap}.encrypt-pref-chip{display:inline-flex;align-items:center;gap:4px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:2px 8px;font-size:.9em}.encrypt-pref-reset{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1.1em;line-height:1;padding:0 2px}.encrypt-pref-reset:hover{color:var(--error)}.file-encrypt-badge{font-size:.85em;margin-right:4px}.file-decrypt-loading{display:flex;align-items:center;gap:8px;padding:16px;color:var(--text-secondary);font-size:.9em}.file-decrypt-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.file-decrypt-error{padding:12px 16px;color:var(--text-secondary);font-size:.9em}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.presence-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1.5px solid var(--bg-primary)}.presence-dot-sm{width:8px;height:8px;border-width:1px}.status-selector{position:relative}.status-dot-btn{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:50%;width:24px;height:24px;cursor:pointer;padding:0;transition:border-color .15s}.status-dot-btn:hover{border-color:var(--accent)}.status-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:100;min-width:160px;padding:4px 0}.status-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;color:var(--text-primary);font-size:13px;cursor:pointer;font-family:inherit;text-align:left;transition:background .1s}.status-option:hover{background:var(--bg-tertiary)}.status-option.active{color:var(--accent);font-weight:600}.theme-selector{position:relative}.theme-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:100;min-width:180px;padding:4px 0;max-height:320px;overflow-y:auto}.theme-option{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;border:none;background:none;color:var(--text-secondary);font-size:13px;cursor:pointer;text-align:left;transition:background .1s}.theme-option:hover{background:var(--bg-tertiary);color:var(--text-primary)}.theme-option.active{color:var(--accent);font-weight:600}.theme-swatch{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;border:2px solid;flex-shrink:0}.about-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;min-width:300px;max-width:380px;text-align:center;box-shadow:var(--shadow)}.about-modal h2{margin:0 0 4px;font-size:22px;color:var(--accent)}.about-version{font-size:16px;color:var(--text-muted);margin-bottom:20px}.about-details{text-align:left;margin-bottom:20px}.about-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--text-secondary)}.about-row:last-child{border-bottom:none}.about-label{color:var(--text-muted);font-weight:600}.about-row a{color:var(--accent);text-decoration:none}.about-row a:hover{text-decoration:underline}.member-name-row{display:flex;align-items:center;gap:6px}.connection-banner{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 16px;font-size:13px;font-weight:500;flex-shrink:0;animation:bannerSlideIn .25s ease-out}@keyframes bannerSlideIn{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.connection-banner-warn{background:#e74c3c33;border-bottom:1px solid rgba(231,76,60,.4);color:#f5a0a0}.connection-banner-ok{background:#27ae6033;border-bottom:1px solid rgba(39,174,96,.4);color:#a0f5c0;animation:bannerSlideIn .25s ease-out,bannerFadeOut .5s ease-out 2.5s forwards}.connection-banner-login-btn{background:none;border:none;color:inherit;text-decoration:underline;cursor:pointer;font-size:inherit;padding:0}.connection-banner-login-btn:hover{color:var(--text-primary)}@keyframes bannerFadeOut{0%{opacity:1}to{opacity:0}}.notification-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--accent-light);border-bottom:1px solid var(--border);font-size:13px;color:var(--text-primary);flex-shrink:0}.notification-banner span{flex:1}.message-bubble{position:relative}.message-actions{position:absolute;top:-8px;right:-4px;display:flex;gap:2px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px;z-index:10;box-shadow:var(--shadow)}.message-action-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:3px;background:transparent;cursor:pointer;font-size:14px;color:var(--text-secondary);transition:background .1s,color .1s}.message-action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.message-action-btn-danger:hover{background:#e74c3c33;color:#e74c3c}.message-deleted .message-bubble{opacity:.5}.message-deleted-content{color:var(--text-secondary);font-style:italic}.message-edited-label{background:none;border:none;padding:0;font-size:.7rem;color:var(--text-secondary);cursor:pointer;margin-right:4px;opacity:.7;transition:opacity .15s}.message-edited-label:hover{opacity:1;text-decoration:underline}.message-edit-container{width:100%}.message-edit-input{width:100%;min-height:40px;max-height:120px;padding:8px 10px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-family:inherit;font-size:.9rem;resize:vertical;outline:none}.message-edit-input:focus{border-color:var(--accent-light);box-shadow:0 0 0 2px #6366f133}.message-edit-hint{font-size:.7rem;color:var(--text-secondary);margin-top:4px;opacity:.7}.message-delete-confirm{display:flex;align-items:center;gap:8px;padding:6px 8px;margin-top:4px;background:#e74c3c14;border:1px solid rgba(231,76,60,.2);border-radius:var(--radius-sm);font-size:.8rem;color:var(--text-secondary)}.message-delete-confirm-yes{background:#e74c3c!important;color:#fff!important;border:none!important;font-size:.75rem}.message-delete-confirm-yes:hover{background:#c0392b!important}.edit-history-modal{max-width:500px;width:90%}.edit-history-modal .modal-body{max-height:400px;overflow-y:auto}.edit-history-entry{padding:10px 0;border-bottom:1px solid var(--border)}.edit-history-entry:last-child{border-bottom:none}.edit-history-text{color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.edit-history-time{font-size:.7rem;color:var(--text-secondary);margin-top:4px}.edit-history-loading,.edit-history-empty{text-align:center;color:var(--text-secondary);padding:20px}.emoji-picker{position:absolute;top:-44px;left:0;display:flex;gap:2px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:6px;z-index:20;box-shadow:var(--shadow)}.emoji-picker-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-size:18px;transition:background .1s}.emoji-picker-btn:hover{background:var(--bg-tertiary)}.emoji-picker-expand{font-size:16px;font-weight:700;color:var(--text-muted);border-left:1px solid var(--border);margin-left:2px;padding-left:6px}.emoji-picker-full{position:absolute;top:-320px;left:0;width:340px;height:320px;display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:30;overflow:hidden}.emoji-picker-search{padding:8px 8px 4px}.emoji-search-input{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:13px;outline:none;box-sizing:border-box}.emoji-search-input:focus{border-color:var(--accent)}.emoji-picker-tabs{display:flex;gap:0;padding:0 4px;border-bottom:1px solid var(--border)}.emoji-tab{flex:1;display:flex;align-items:center;justify-content:center;padding:6px 0;border:none;border-bottom:2px solid transparent;background:transparent;cursor:pointer;font-size:16px;opacity:.6;transition:opacity .1s,border-color .1s}.emoji-tab:hover{opacity:1;background:var(--bg-tertiary)}.emoji-tab-active{opacity:1;border-bottom-color:var(--accent)}.emoji-picker-category-label{padding:4px 10px 2px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.emoji-picker-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:4px 6px}.emoji-grid-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-size:20px;transition:background .1s,transform .1s}.emoji-grid-btn:hover{background:var(--bg-tertiary);transform:scale(1.15)}.emoji-grid-btn-custom{padding:4px}.custom-emoji-img{width:24px;height:24px;object-fit:contain;border-radius:2px}.custom-emoji-inline{width:18px;height:18px;object-fit:contain;vertical-align:middle;border-radius:2px}.reaction-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;margin-left:4px}.reaction-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--border);border-radius:12px;background:var(--bg-surface);cursor:pointer;font-size:13px;transition:background .1s,border-color .1s}.reaction-chip:hover{background:var(--bg-tertiary);border-color:var(--text-muted)}.reaction-chip-own{background:var(--accent-light);border-color:var(--accent)}.reaction-chip-own:hover{background:#4f8cff40}.reaction-emoji{font-size:14px;line-height:1}.reaction-count{font-size:11px;color:var(--text-secondary);font-weight:500}.reaction-chip-own .reaction-count{color:var(--accent)}.message-thread-reply{padding-left:16px;border-left:2px solid rgba(79,140,255,.3)}.message-thread-indicator{font-size:10px;color:var(--text-muted);font-style:italic;margin-bottom:2px}.thread-reply-link{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;margin-top:4px;margin-left:4px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:#4f8cff14;color:var(--accent);cursor:pointer;font-size:12px;font-family:inherit;font-weight:600;transition:background .15s,border-color .15s}.thread-reply-link:hover{background:#4f8cff2e;border-color:var(--accent)}.thread-reply-link-active{background:#4f8cff38;border-color:var(--accent);color:var(--accent)}.thread-reply-link svg{flex-shrink:0;opacity:.8}.thread-list-panel{width:360px;min-width:360px;background:var(--bg-secondary);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.thread-list-body{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.thread-list-empty{color:var(--text-secondary);font-size:13px;text-align:center;padding:24px 12px}.thread-list-item{display:block;width:100%;text-align:left;padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:background .15s,border-color .15s;color:var(--text-primary);font:inherit}.thread-list-item:hover{background:#4f8cff14;border-color:var(--accent)}.thread-list-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.thread-list-item-author{font-weight:600;font-size:13px;color:var(--accent)}.thread-list-item-time{font-size:11px;color:var(--text-secondary)}.thread-list-item-preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}.thread-list-item-meta{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--accent);font-weight:500}.thread-list-item-meta svg{opacity:.8}.thread-list-item-last{color:var(--text-secondary);font-weight:400}.btn-active{background:var(--accent)!important;color:#fff!important}.thread-panel{width:360px;min-width:360px;background:var(--bg-secondary);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.thread-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.thread-panel-header h4{font-size:14px;font-weight:600;color:var(--text-primary)}.thread-panel-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:4px}.thread-root-message{padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:4px}.thread-root-message .message-content{font-size:14px;word-break:break-word;white-space:pre-wrap}.thread-root-message .message-sender-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.thread-divider{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:11px;color:var(--text-muted)}.thread-divider:before,.thread-divider:after{content:"";flex:1;height:1px;background:var(--border)}.thread-panel-input{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0}.thread-input-row{display:flex;align-items:flex-end;gap:8px}.thread-input-row textarea{flex:1;resize:none;min-height:36px;max-height:100px;font-size:13px}.thread-panel-input .send-btn{height:36px;min-width:56px;font-size:12px}.send-to-channel-label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.send-to-channel-label input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.thread-panel .message,.thread-panel .message-bubble{max-width:100%}.message-sender-name-static{font-size:11px;color:var(--accent);font-weight:500}.category-section{border-bottom:1px solid rgba(42,42,74,.3)}.category-header{display:flex;align-items:center;gap:6px;padding:8px 16px;cursor:pointer;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);transition:background .1s;-webkit-user-select:none;user-select:none}.category-header:hover{background:#2a2a4a4d}.category-header-uncategorized{cursor:default}.category-arrow{font-size:8px;width:10px;text-align:center}.category-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-count{font-size:10px;color:var(--text-muted);opacity:.7}.category-delete-btn{padding:0 4px!important;font-size:10px!important;line-height:1;opacity:0;transition:opacity .15s;border:none!important;background:none!important;color:var(--text-muted)!important}.category-header:hover .category-delete-btn{opacity:1}.category-delete-btn:hover{color:var(--danger)!important}.room-item-categorized{padding-left:32px}.add-category-btn{margin:8px 16px;width:calc(100% - 32px);font-size:11px!important;color:var(--text-muted)!important;border-style:dashed!important}.category-context-menu{position:absolute;right:8px;top:100%;z-index:50;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:160px;padding:4px 0}.category-context-title{padding:6px 12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border)}.category-context-item{padding:8px 12px;font-size:13px;cursor:pointer;color:var(--text-primary);transition:background .1s}.category-context-item:hover{background:var(--bg-tertiary)}.category-context-cancel{border-top:1px solid var(--border);color:var(--text-muted);font-size:12px}.room-item{position:relative}.search-modal{width:100%;max-width:560px;max-height:70vh;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;overflow:hidden}.search-modal-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.search-modal-input{flex:1;background:var(--bg-secondary)!important;border:1px solid var(--border)!important}.search-modal-results{flex:1;overflow-y:auto;padding:8px 0;min-height:100px;max-height:calc(70vh - 60px)}.search-loading,.search-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.search-section{margin-bottom:8px}.search-section-title{padding:8px 16px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.search-result-item{padding:8px 16px;cursor:pointer;transition:background .1s}.search-result-item:hover{background:var(--bg-tertiary)}.search-result-name{font-size:14px;font-weight:500;color:var(--text-primary)}.search-result-meta{font-size:12px;color:var(--text-muted);margin-left:8px}.search-result-message-header{display:flex;align-items:baseline;gap:4px;margin-bottom:2px}.search-result-preview{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-page{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.admin-header h1{font-size:20px;font-weight:700;color:var(--accent)}.admin-tabs{display:flex;gap:6px}.admin-content{flex:1;overflow-y:auto;padding:24px}.admin-loading,.admin-error{text-align:center;color:var(--text-muted);padding:48px 24px;font-size:14px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.stat-card{padding:24px 20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.stat-value{font-size:36px;font-weight:700;color:var(--accent);line-height:1.1;margin-bottom:4px}.stat-label{font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.admin-table-container{overflow-x:auto}.admin-table-search{margin-bottom:16px;max-width:300px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap}.admin-table td{padding:10px 12px;border-bottom:1px solid rgba(42,42,74,.3);color:var(--text-primary);vertical-align:middle}.admin-table tbody tr:hover{background:#2a2a4a33}.admin-row-banned{opacity:.5}.admin-badge{display:inline-block;padding:2px 8px;font-size:10px;font-weight:600;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;background:var(--bg-tertiary);color:var(--text-muted);margin-right:4px}.admin-badge-active{background:#27ae6033;color:var(--success)}.admin-badge-banned{background:#e74c3c33;color:var(--danger)}.admin-badge-admin{background:var(--accent-light);color:var(--accent)}.admin-badge-bot{background:#9b59b633;color:#9b59b6}.admin-actions{display:flex;gap:4px;flex-wrap:wrap}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px}.admin-page-info{font-size:13px;color:var(--text-muted)}.dm-search-status{font-size:12px;color:var(--text-muted);padding:4px 0}.dm-search-results{max-height:150px;overflow-y:auto}.dm-search-result-item{padding:6px 8px;cursor:pointer;border-radius:var(--radius-sm);transition:background .1s}.dm-search-result-item:hover{background:var(--bg-tertiary)}.dm-search-username{font-size:13px;color:var(--text-primary)}.room-list-header-rooms{border-top:1px solid var(--border)}.call-buttons{position:relative;display:inline-flex;gap:4px;margin-right:4px}.call-btn{position:relative;padding:4px 8px;display:inline-flex;align-items:center;justify-content:center}.call-btn-active{background:var(--success)!important;border-color:var(--success)!important;color:#fff!important}.call-btn-ongoing{border-color:var(--success)!important;color:var(--success)!important;animation:call-pulse 2s infinite}@keyframes call-pulse{0%,to{opacity:1}50%{opacity:.6}}.call-badge-dot{position:absolute;top:2px;right:2px;width:6px;height:6px;border-radius:50%;background:var(--success)}.call-btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--text-muted);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.call-error-toast{position:absolute;top:calc(100% + 6px);right:0;background:var(--danger);color:#fff;padding:8px 12px;border-radius:var(--radius);font-size:.82rem;white-space:nowrap;z-index:100;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow);animation:fadeIn .2s ease}.call-error-dismiss{background:none;border:none;color:#fffc;font-size:1.1rem;cursor:pointer;padding:0 2px;line-height:1}.call-error-dismiss:hover{color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.call-panel{background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:max-height .3s ease}.call-panel-voice{max-height:180px}.call-panel-video{max-height:50vh;min-height:280px}.call-panel-screenshare{max-height:65vh;min-height:360px}.call-panel-expanded{max-height:85vh!important;min-height:500px!important}.call-panel-header{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.call-panel-title{font-size:13px;font-weight:600;color:var(--success)}.call-panel-count{font-weight:400;color:var(--text-muted);margin-left:8px;font-size:12px}.call-panel-header-actions{display:flex;align-items:center;gap:8px}.call-error{font-size:12px;color:var(--danger)}.call-panel-expand-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.call-panel-expand-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.call-participants{flex:1;display:flex;overflow:hidden;min-height:0}.call-grid{display:flex;flex-wrap:wrap;gap:8px;padding:8px;flex:1;align-content:start;overflow-y:auto}.call-grid-sidebar{flex:0 0 150px;flex-direction:column;overflow-y:auto;padding:6px;gap:6px;border-left:1px solid var(--border)}.call-screen-share-container{flex:1;min-width:0;padding:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;background:#000;border-radius:var(--radius);margin:8px 0 8px 8px}.call-screen-share-label{position:absolute;top:8px;left:8px;display:flex;align-items:center;gap:6px;padding:4px 10px;background:#000000b3;color:var(--text-muted);font-size:11px;border-radius:var(--radius-sm);pointer-events:none}.call-screen-share-actions{position:absolute;top:8px;right:8px;display:flex;gap:4px;opacity:0;transition:opacity .2s}.call-screen-share-container:hover .call-screen-share-actions{opacity:1}.call-screen-share-container:fullscreen .call-screen-share-actions{opacity:1}.call-screen-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:#000000b3;color:#fff;cursor:pointer;transition:background .15s}.call-screen-action-btn:hover{background:#fff3}.call-screen-share-container:fullscreen{background:#000;margin:0;border-radius:0;padding:0}.call-screen-share-container:fullscreen .call-video-screen{border-radius:0}.call-participant{display:flex;flex-direction:column;align-items:center;background:var(--bg-surface);border:2px solid transparent;border-radius:var(--radius);overflow:hidden;min-width:120px;flex:0 0 auto;transition:border-color .2s}.call-panel-video .call-participant{flex:1 1 calc(50% - 8px);min-height:140px;max-height:300px}.call-panel-voice .call-participant{flex:0 0 auto;padding:8px 16px;flex-direction:row;gap:8px;min-width:auto}.call-participant-compact{flex:0 0 auto!important;min-width:0!important;min-height:0!important;max-height:none!important;flex-direction:row!important;padding:6px 10px!important;gap:8px}.call-participant-compact .call-participant-avatar{width:32px;height:32px;min-height:32px;flex:0 0 32px;border-radius:50%}.call-participant-compact .call-participant-initial{font-size:13px}.call-participant-compact .call-participant-info{background:none;padding:0;width:auto;flex:1;min-width:0}.call-participant-speaking{border-color:var(--success)}.call-participant-avatar{display:flex;align-items:center;justify-content:center;flex:1;width:100%;min-height:60px;background:var(--bg-tertiary)}.call-panel-voice .call-participant-avatar{width:36px;height:36px;min-height:36px;flex:0 0 36px;border-radius:50%}.call-participant-initial{font-size:24px;font-weight:700;color:var(--text-secondary)}.call-panel-voice .call-participant-initial{font-size:14px}.call-participant-info{display:flex;align-items:center;gap:6px;padding:4px 8px;width:100%;background:#0000004d}.call-panel-voice .call-participant-info{background:none;padding:0;width:auto}.call-participant-name{font-size:11px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.call-participant-indicators{display:flex;gap:4px;flex-shrink:0}.call-indicator-muted{color:var(--danger);display:flex;align-items:center}.call-indicator-screen{color:var(--accent);display:flex;align-items:center}.call-participant-popout{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;opacity:0;transition:opacity .15s,color .15s}.call-participant:hover .call-participant-popout{opacity:1}.call-participant-popout:hover{color:var(--accent)}.call-controls{display:flex;justify-content:center;gap:12px;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg-primary);flex-shrink:0}.call-control-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.call-control-btn:hover{background:var(--bg-tertiary);border-color:var(--accent)}.call-control-off{background:var(--danger)!important;border-color:var(--danger)!important;color:#fff!important}.call-control-disabled{opacity:.35;cursor:not-allowed!important}.call-control-active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.call-control-hangup{background:var(--danger)!important;border-color:var(--danger)!important;color:#fff!important}.call-control-hangup:hover{background:var(--danger-hover)!important}.call-video{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm)}.call-video-screen{object-fit:contain;max-height:100%;max-width:100%;background:#000;border-radius:var(--radius-sm)}.call-video-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--bg-tertiary);color:var(--text-muted);font-size:13px;border-radius:var(--radius-sm)}.drag-handle{flex-shrink:0;color:var(--text-muted);opacity:0;cursor:grab;margin-right:4px;transition:opacity .15s,color .15s}.room-item-draggable:hover .drag-handle{opacity:.6}.room-item-draggable:hover .drag-handle:hover{opacity:1;color:var(--text-secondary)}.room-item-dragging{opacity:.35;background:var(--bg-tertiary)}.room-item-drop-above{box-shadow:inset 0 2px 0 0 var(--accent)}.room-item-drop-below{box-shadow:inset 0 -2px 0 0 var(--accent)}.forgot-password-link{display:inline-block;margin-top:6px;font-size:12px;color:var(--accent);text-decoration:none}.forgot-password-link:hover{text-decoration:underline}.success-banner{padding:10px 12px;margin-bottom:16px;background:#27ae6026;border:1px solid var(--success);border-radius:var(--radius-sm);color:var(--success);font-size:13px}.warning-banner{padding:10px 12px;margin-bottom:16px;background:#f39c1226;border:1px solid #f39c12;border-radius:var(--radius-sm);color:#f39c12;font-size:13px;line-height:1.5}.mobile-back-btn{display:none}@media(max-width:768px){.app-header{padding:0 8px;gap:6px}.header-user{gap:6px}.header-username{display:none}.header-brand{font-size:16px}.chat-page{position:relative}.chat-page .room-list{width:100%!important;min-width:0;position:absolute;inset:0;z-index:10;transition:transform .2s ease}.chat-page.mobile-chat-open .room-list{transform:translate(-100%);pointer-events:none}.chat-page .sidebar-resize-handle{display:none}.chat-page .chat-area{position:absolute;inset:0;z-index:5}.chat-page.mobile-chat-open .chat-area{z-index:15}.mobile-back-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--accent);font-size:14px;padding:4px 8px;cursor:pointer;flex-shrink:0}.mobile-back-btn:hover{color:var(--accent-hover)}.chat-header{gap:6px;padding:0 8px}.chat-header-name{font-size:14px}.chat-header-actions{gap:4px}.chat-header-actions .btn{padding:4px 8px;font-size:11px}.message-input{padding:6px;gap:4px}.message-input textarea{font-size:16px}.thread-panel{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;z-index:20;width:100%!important;max-width:none}.emoji-picker-popup{width:280px;max-height:300px}}.welcome-page{min-height:100vh;background:#0a0a0a;color:var(--text-primary);overflow-x:hidden}.welcome-page{--accent: #2a9d8f;--accent-light: #3dbba8;--accent-glow: rgba(42, 157, 143, .15);--accent-glow-strong: rgba(42, 157, 143, .3);--border-hover: #2a9d8f;--text-muted: #666666;--radius-lg: 20px}.welcome-nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;background:#0a0a0ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid #222222}.welcome-page .nav-logo{font-size:1.5rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.welcome-page .nav-logo span{color:var(--accent)}.welcome-page .nav-links{display:flex;gap:2rem;align-items:center}.welcome-page .nav-links a:not(.btn){color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:color .2s ease;text-decoration:none}.welcome-page .nav-links a:not(.btn):hover{color:var(--text-primary)}.welcome-page .hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:8rem 2rem 6rem;position:relative;overflow:hidden}.welcome-page .hero:before{content:"";position:absolute;top:-40%;left:50%;transform:translate(-50%);width:800px;height:800px;background:radial-gradient(circle,var(--accent-glow-strong) 0%,transparent 70%);pointer-events:none;animation:heroGlow 8s ease-in-out infinite alternate}@keyframes heroGlow{0%{opacity:.5;transform:translate(-50%) scale(1)}to{opacity:1;transform:translate(-50%) scale(1.15)}}.hero-badge{display:inline-block;padding:.4rem 1rem;border-radius:20px;border:1px solid var(--border-hover);background:var(--accent-glow);color:var(--accent-light);font-size:.8rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:2rem;animation:fadeInUp .6s ease-out}.welcome-page .hero h1{font-size:clamp(3rem,8vw,5.5rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:1.5rem;animation:fadeInUp .6s ease-out .1s both}.welcome-page .hero h1 .gradient-text{background:linear-gradient(135deg,var(--accent) 0%,#5cd4c4 50%,var(--accent-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-page .hero p{font-size:clamp(1.1rem,2.5vw,1.35rem);color:var(--text-secondary);max-width:600px;margin-bottom:2.5rem;animation:fadeInUp .6s ease-out .2s both}.hero-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;animation:fadeInUp .6s ease-out .3s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.welcome-page .btn{display:inline-block;padding:.65rem 1.5rem;border-radius:8px;font-weight:600;font-size:.9rem;transition:all .25s ease;cursor:pointer;border:none;text-align:center;text-decoration:none}.welcome-page .btn-lg{padding:.85rem 2.25rem;font-size:1.05rem;border-radius:10px}.welcome-page .btn-primary{background:var(--accent);color:#fff;box-shadow:0 0 20px var(--accent-glow)}.welcome-page .btn-primary:hover{background:var(--accent-light);color:#fff;box-shadow:0 0 30px var(--accent-glow-strong);transform:translateY(-1px)}.welcome-page .btn-outline{background:transparent;color:var(--accent-light);border:1px solid var(--border-hover)}.welcome-page .btn-outline:hover{background:var(--accent-glow);color:var(--accent-light);transform:translateY(-1px)}.welcome-page section{padding:6rem 2rem}.welcome-page .container{max-width:1140px;margin:0 auto}.section-header{text-align:center;margin-bottom:4rem}.section-header h2{font-size:clamp(2rem,4vw,2.75rem);font-weight:700;letter-spacing:-.02em;margin-bottom:1rem}.section-header p{font-size:1.1rem;color:var(--text-secondary);max-width:550px;margin:0 auto}.welcome-page .features{background:#111;border-top:1px solid #222222;border-bottom:1px solid #222222}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.feature-card{background:#161616;border:1px solid #222222;border-radius:12px;padding:2rem;transition:all .3s ease;position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;transition:opacity .3s ease}.feature-card:hover{border-color:var(--border-hover);background:#1a1a1a;transform:translateY(-4px);box-shadow:0 12px 40px #0000004d,0 0 30px var(--accent-glow)}.feature-card:hover:before{opacity:1}.feature-icon{width:48px;height:48px;border-radius:10px;background:var(--accent-glow);border:1px solid rgba(42,157,143,.2);display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem}.feature-icon svg{width:24px;height:24px;stroke:var(--accent-light);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.feature-card h3{font-size:1.15rem;font-weight:600;margin-bottom:.6rem}.feature-card p{font-size:.92rem;color:var(--text-secondary);line-height:1.6}.welcome-page .how-it-works{background:#0a0a0a}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem}.step{text-align:center;padding:2rem 1.5rem;position:relative}.step-number{width:56px;height:56px;border-radius:50%;background:var(--accent-glow);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;font-size:1.25rem;font-weight:700;color:var(--accent-light)}.step h3{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.step p{font-size:.9rem;color:var(--text-secondary)}.welcome-page .downloads{background:#111;border-top:1px solid #222222;border-bottom:1px solid #222222}.download-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;max-width:760px;margin:0 auto}.download-card{background:#161616;border:1px solid #222222;border-radius:12px;padding:2.5rem 2rem;text-align:center;transition:all .3s ease}.download-card:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:0 12px 40px #00000040}.download-card svg{width:48px;height:48px;stroke:var(--accent-light);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:1.25rem}.download-card h3{font-size:1.2rem;font-weight:600;margin-bottom:.4rem}.download-card .platform{color:var(--text-muted);font-size:.85rem;margin-bottom:1.5rem}.download-card .btn{width:100%}.welcome-page .cta{text-align:center;padding:8rem 2rem;position:relative;overflow:hidden}.welcome-page .cta:before{content:"";position:absolute;bottom:-30%;left:50%;transform:translate(-50%);width:700px;height:700px;background:radial-gradient(circle,var(--accent-glow) 0%,transparent 70%);pointer-events:none}.welcome-page .cta h2{font-size:clamp(2rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;margin-bottom:1rem;position:relative}.welcome-page .cta p{font-size:1.15rem;color:var(--text-secondary);max-width:500px;margin:0 auto 2.5rem;position:relative}.welcome-page footer{background:#111;border-top:1px solid #222222;padding:3rem 2rem}.footer-content{max-width:1140px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}.footer-brand{font-size:1.1rem;font-weight:600}.footer-brand span{color:var(--accent)}.footer-links{display:flex;gap:2rem}.footer-links a{color:var(--text-muted);font-size:.85rem;transition:color .2s ease;text-decoration:none}.footer-links a:hover{color:var(--text-secondary)}.footer-copy{width:100%;text-align:center;color:var(--text-muted);font-size:.8rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #222222}@media(max-width:768px){.welcome-nav{padding:.75rem 1.25rem}.welcome-page .nav-links{gap:1rem}.welcome-page .nav-links a:not(.btn){display:none}.welcome-page section{padding:4rem 1.25rem}.features-grid,.download-grid{grid-template-columns:1fr}.welcome-page .hero{padding:7rem 1.25rem 4rem}.hero-buttons{flex-direction:column;align-items:center}.footer-content{flex-direction:column;text-align:center}.footer-links{justify-content:center}}@media(max-width:480px){.steps{grid-template-columns:1fr}}.settings-modal{max-width:500px;max-height:80vh;display:flex;flex-direction:column}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-shrink:0}.settings-modal-header h2{margin-bottom:0}.settings-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-shrink:0}.settings-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s}.settings-tab:hover{color:var(--text-primary)}.settings-tab-active{color:var(--accent);border-bottom-color:var(--accent)}.settings-content{overflow-y:auto;flex:1;min-height:0}.settings-section{display:flex;flex-direction:column;gap:20px}.settings-group{padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.settings-group-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.settings-row:last-child{border-bottom:none}.settings-label{color:var(--text-secondary)}.settings-value{color:var(--text-primary);font-weight:500}.settings-status{font-weight:600;font-size:12px;padding:2px 8px;border-radius:var(--radius-sm)}.settings-status-ok{color:#27ae60;background:#27ae601f}.settings-status-warn{color:#e74c3c;background:#e74c3c1f}.settings-action-btn{margin-top:10px;width:100%}.settings-notice{margin-top:8px;padding:8px 10px;border-radius:var(--radius-sm);font-size:12px;line-height:1.4}.settings-notice-warn{background:#f39c121f;border:1px solid rgba(243,156,18,.3);color:#f39c12}.settings-description{font-size:12px;color:var(--text-muted);margin-bottom:10px;line-height:1.4}.settings-info{margin-top:8px;padding:8px 10px;background:#4f8cff14;border:1px solid rgba(79,140,255,.2);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);line-height:1.4}.settings-toggle-group{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.settings-toggle-btn{padding:4px 10px;font-size:12px;font-family:inherit;background:var(--bg-primary);border:none;border-right:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.settings-toggle-btn:last-child{border-right:none}.settings-toggle-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.settings-toggle-active{background:var(--bg-tertiary);color:var(--text-primary);font-weight:600}.settings-toggle-encrypt.settings-toggle-active{background:#27ae6026;color:#27ae60}.settings-toggle-plain.settings-toggle-active{background:#e74c3c26;color:#e74c3c}.settings-switch{position:relative;width:36px;height:20px;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:background .2s,border-color .2s;padding:0}.settings-switch-on{background:#27ae604d;border-color:#27ae60}.settings-switch-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--text-secondary);border-radius:50%;transition:transform .2s,background .2s}.settings-switch-on .settings-switch-knob{transform:translate(16px);background:#27ae60}.header-settings-btn{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px!important}.header-settings-btn svg{display:block}.key-request-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#3498db1f;border-bottom:2px solid rgba(52,152,219,.4);color:#5dade2;font-size:13px}.key-request-banner svg{flex-shrink:0;stroke:#3498db}.key-request-banner span{flex:1}.key-request-banner-btn{background:#3498db!important;color:#fff!important;border:none!important;white-space:nowrap;font-weight:600}.key-request-banner-btn:hover{background:#2980b9!important}.key-request-admin-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#f39c121f;border-bottom:2px solid rgba(243,156,18,.4);color:#f1c40f;font-size:13px}.key-request-admin-banner svg{flex-shrink:0;stroke:#f39c12}.key-request-admin-banner span{flex:1}.key-request-review-panel{padding:8px 16px;background:var(--bg-secondary, #1e1e3a);border-bottom:1px solid var(--border, #2a2a4a);max-height:200px;overflow-y:auto}.key-request-review-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border, #2a2a4a)}.key-request-review-item:last-child{border-bottom:none}.key-request-review-info{display:flex;flex-direction:column;gap:2px}.key-request-username{font-weight:600;font-size:14px;color:var(--text-primary, #e0e0f0)}.key-request-date{font-size:12px;color:var(--text-muted, #6b6b80)}.key-request-review-actions{display:flex;gap:6px}
