*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--sidebar-w: 260px;--members-w: 280px;--border: #e8e8ed;--bg-main: #f8f9fb;--bg-white: #fff;--text: #1a1a2e;--text-secondary: #65676b;--text-muted: #a0a3a8;--accent: #7c3aed;--accent-light: #ede9fe;--online: #22c55e;--radius: 8px;--radius-round: 50%;--app-font-size: 15px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg-main);line-height:1.4;font-size:var(--app-font-size)}.compact-mode .message-group{padding:4px 20px}.compact-mode .message-item{gap:8px}.compact-mode .message-avatar{width:28px;height:28px;font-size:11px}.compact-mode .member-item{padding:4px 16px}.hide-avatars .message-avatar,.hide-avatars .member-avatar{display:none}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-main)}.login-card{background:var(--bg-white);padding:40px;border-radius:12px;box-shadow:0 2px 16px #00000014;width:360px}.login-card h1{font-size:28px;margin-bottom:8px}.login-card p{color:var(--text-secondary);margin-bottom:24px}.login-card input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;outline:none;margin-bottom:16px}.login-card input:focus{border-color:var(--accent)}.login-card button{width:100%;padding:10px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer}.login-card button:hover{opacity:.9}.login-error{color:#ef4444;font-size:13px;margin-bottom:12px}.app-layout{display:flex;height:100vh;background:var(--bg-white)}.sidebar-left{width:var(--sidebar-w);border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--bg-white);flex-shrink:0}.user-profile{display:flex;align-items:center;padding:14px 16px;gap:10px;border-bottom:1px solid var(--border)}.avatar{width:40px;height:40px;border-radius:var(--radius-round);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:15px;flex-shrink:0}.user-profile .user-info{flex:1;min-width:0}.user-profile .user-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile .user-title{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-actions{display:flex;gap:2px}.icon-btn{width:30px;height:30px;border:none;background:none;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:16px}.icon-btn:hover{background:#f3f4f6}.search-box{padding:8px 16px}.search-wrapper{position:relative}.search-wrapper svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:14px;height:14px;pointer-events:none}.search-input{width:100%;padding:7px 10px 7px 32px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;outline:none;background:var(--bg-white)}.search-input:focus{border-color:var(--accent)}.search-overlay-container{position:relative}.search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:16px;color:var(--text-muted);cursor:pointer;line-height:1;padding:2px 4px}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0000001f;z-index:100;max-height:420px;display:flex;flex-direction:column;overflow:hidden}.search-tabs{display:flex;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border);flex-shrink:0}.search-tab{background:none;border:none;font-size:12px;padding:4px 8px;border-radius:4px;cursor:pointer;color:var(--text-secondary)}.search-tab.active{background:var(--accent-light);color:var(--accent);font-weight:600}.search-tab.filter-toggle{margin-left:auto;display:flex;align-items:center}.search-filters{display:flex;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border);flex-shrink:0}.search-filters select,.search-filters input{font-size:12px;padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-white);flex:1;min-width:0}.search-results{overflow-y:auto;padding:4px 0}.search-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.search-section{padding:4px 0}.search-section-label{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);padding:4px 12px;letter-spacing:.04em}.search-hit{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;background:none;border:none;cursor:pointer;text-align:left;font-size:13px;color:var(--text)}.search-hit:hover{background:var(--accent-light)}.search-hit-icon{font-weight:700;font-size:15px}.search-hit-avatar{width:24px;height:24px;border-radius:var(--radius-round);color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.search-hit-avatar.small{width:20px;height:20px;font-size:9px}.search-hit-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-hit-meta{color:var(--text-muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-hit-badge{font-size:10px;background:var(--accent-light);color:var(--accent);padding:1px 5px;border-radius:4px;margin-left:auto}.search-hit-message{flex-direction:column;align-items:stretch;gap:2px}.search-hit-msg-header{display:flex;align-items:center;gap:6px}.search-hit-context{color:var(--text-muted);font-size:11px;margin-left:auto}.search-hit-time{color:var(--text-muted);font-size:11px;flex-shrink:0}.search-hit-body{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:26px}.section-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.section-header .add-btn{width:20px;height:20px;border:1px solid var(--border);background:none;border-radius:var(--radius-round);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-secondary);line-height:1}.section-header .add-btn:hover{background:#f3f4f6}.channel-list{list-style:none}.channel-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;transition:background .15s}.channel-item:hover{background:#f3f4f6}.channel-item.active{background:var(--accent-light)}.channel-avatar{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;flex-shrink:0}.channel-info{flex:1;min-width:0}.channel-name{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.channel-desc{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;transition:background .15s}.dm-item:hover{background:#f3f4f6}.dm-item.active{background:var(--accent-light)}.dm-avatar{width:36px;height:36px;border-radius:var(--radius-round);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0}.dm-avatar--saved{background:var(--accent);color:#fff}.dm-name{font-weight:500;font-size:13px}.unread-badge{margin-left:auto;background:var(--accent);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.channel-item.unread .channel-name,.dm-item.unread .dm-name{font-weight:800}.sidebar-scroll{flex:1;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.sidebar-scroll::-webkit-scrollbar{display:none}.dm-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:center;justify-content:center}.dm-modal{background:var(--bg-white);border-radius:12px;box-shadow:0 16px 48px #0003;width:380px;max-height:480px;display:flex;flex-direction:column;overflow:hidden}.dm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:15px}.dm-modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-secondary);line-height:1;padding:0 4px}.dm-modal-close:hover{color:var(--text-primary)}.dm-modal-search{padding:10px 16px;border-bottom:1px solid var(--border)}.dm-modal-search input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;outline:none;box-sizing:border-box}.dm-modal-search input:focus{border-color:var(--accent)}.dm-modal-list{list-style:none;overflow-y:auto;padding:4px 0;margin:0;flex:1}.dm-modal-user{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;transition:background .12s}.dm-modal-user:hover{background:#f3f4f6}.dm-modal-user-info{display:flex;flex-direction:column;min-width:0}.dm-modal-user-name{font-size:14px;font-weight:500;color:var(--text-primary)}.dm-modal-user-title{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-modal-empty{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.ch-modal-form{padding:12px 16px 16px;display:flex;flex-direction:column;gap:12px}.ch-modal-label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;color:var(--text-primary)}.ch-modal-required{color:#dc2626}.ch-modal-input{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--bg-white);color:var(--text-primary);outline:none}.ch-modal-input:focus{border-color:var(--accent)}.ch-modal-fieldset{border:none;margin:0;padding:0}.ch-modal-fieldset legend{font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:6px}.ch-modal-colors{display:flex;gap:6px;flex-wrap:wrap}.ch-modal-color-btn{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s}.ch-modal-color-btn:hover{opacity:.85}.ch-modal-color-btn.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-white)}.ch-modal-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary);cursor:pointer}.ch-modal-error{color:#dc2626;font-size:13px;margin:0}.ch-modal-submit{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.ch-modal-submit:hover{opacity:.9}.ch-modal-submit:disabled{opacity:.6;cursor:not-allowed}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.settings-modal{display:flex;width:680px;max-width:95vw;height:520px;max-height:85vh;background:var(--bg-white);border-radius:12px;box-shadow:0 12px 40px #00000040;overflow:hidden}.settings-nav{width:200px;min-width:200px;background:var(--bg-light);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 0;overflow-y:auto}.settings-nav-header{padding:0 16px 12px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.settings-nav-item{display:flex;align-items:center;gap:8px;padding:8px 16px;border:none;background:none;font-size:14px;color:var(--text-primary);cursor:pointer;text-align:left;width:100%;transition:background .12s}.settings-nav-item:hover{background:var(--hover)}.settings-nav-item.active{background:var(--accent);color:#fff;border-radius:0}.settings-nav-icon{font-size:16px;width:22px;text-align:center}.settings-content{flex:1;overflow-y:auto;position:relative;padding:24px}.settings-close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:22px;color:var(--text-muted);cursor:pointer;line-height:1;padding:4px 8px;border-radius:4px}.settings-close:hover{background:var(--hover);color:var(--text-primary)}.settings-panel h3{margin:0 0 4px;font-size:18px;font-weight:600}.settings-panel h4{margin:0 0 4px;font-size:14px;font-weight:600}.settings-description{margin:0 0 16px;font-size:13px;color:var(--text-muted)}.settings-profile-card{display:flex;align-items:center;gap:14px;padding:14px 0;margin-bottom:16px}.settings-profile-card .avatar-lg{width:52px;height:52px;font-size:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:600}.settings-profile-name{font-weight:600;font-size:15px}.settings-profile-email{font-size:13px;color:var(--text-muted)}.settings-label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:12px}.settings-input{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--bg-white);color:var(--text-primary);outline:none}.settings-input:focus{border-color:var(--accent)}.settings-select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--bg-white);color:var(--text-primary);outline:none}.settings-toggle{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-primary);cursor:pointer;padding:6px 0}.settings-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.settings-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.settings-btn-primary{padding:8px 20px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.settings-btn-primary:hover{opacity:.9}.settings-btn-danger{padding:8px 20px;background:#dc2626;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.settings-btn-danger:hover{opacity:.9}.settings-btn-danger:disabled{opacity:.5;cursor:not-allowed}.settings-error{color:#dc2626;font-size:13px;margin:0 0 8px}.settings-success{color:#059669;font-size:13px}.settings-divider{border:none;border-top:1px solid var(--border);margin:16px 0}.settings-info-grid{display:grid;grid-template-columns:100px 1fr;gap:6px 12px;font-size:13px}.settings-info-label{color:var(--text-muted);font-weight:500}.settings-info-grid code{font-family:SF Mono,Fira Code,monospace;font-size:12px;background:var(--bg-light);padding:1px 6px;border-radius:4px}.main-content{flex:1;display:flex;flex-direction:column;background:var(--bg-white);min-width:0}.chat-header{padding:12px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.chat-header-title{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:700;cursor:pointer}.chat-header-title .arrow{color:var(--text-muted);font-size:12px}.chat-header-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.pinned-bar{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}.pinned-bar-header{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:600;color:var(--text-primary);background:var(--bg-surface);transition:background .1s}.pinned-bar-header:hover{background:var(--bg-hover)}.pinned-bar-icon{font-size:14px;flex-shrink:0}.pinned-bar-title{flex:1}.pinned-bar-toggle{font-size:11px;color:var(--text-muted)}.pinned-bar-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.pinned-bar-list li+li{border-top:1px solid var(--border)}.pinned-bar-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:7px 12px 7px 32px;text-align:left;background:none;border:none;cursor:pointer;transition:background .1s}.pinned-bar-item:hover{background:var(--bg-hover)}.pinned-bar-author{font-size:12px;font-weight:600;color:var(--accent)}.pinned-bar-body{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.message-list{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px}.message-item{display:flex;gap:12px}.message-avatar{width:40px;height:40px;border-radius:var(--radius-round);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:15px;flex-shrink:0}.message-content{flex:1;min-width:0}.message-header{display:flex;align-items:baseline;gap:8px}.message-author{font-weight:700;font-size:14px}.message-time{font-size:12px;color:var(--text-muted)}.message-body{margin-top:2px;font-size:14px;line-height:1.5;word-wrap:break-word}.message-images{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.message-image-link{display:block;max-width:320px;border-radius:var(--radius);overflow:hidden}.message-image{display:block;max-width:320px;max-height:240px;border-radius:var(--radius);object-fit:cover}.message-files{display:flex;flex-direction:column;gap:4px;margin-top:6px}.message-file-link{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-alt, #f3f4f6);border-radius:var(--radius);text-decoration:none;color:var(--text);font-size:13px;max-width:320px}.message-file-link:hover{background:var(--border)}.file-icon{flex-shrink:0}.file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{flex-shrink:0;color:var(--text-muted);font-size:11px}.composer-files{display:flex;flex-wrap:wrap;gap:6px;padding:6px 8px;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0}.composer-file-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--bg-alt, #f3f4f6);border-radius:var(--radius);font-size:12px}.file-chip-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-chip-size{color:var(--text-muted);font-size:11px}.file-chip-remove{border:none;background:none;cursor:pointer;color:var(--text-muted);font-size:14px;padding:0 2px;line-height:1}.file-chip-remove:hover{color:var(--text)}.message-composer{padding:12px 20px;border-top:1px solid var(--border)}.composer-bar{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;gap:4px}.composer-icons{display:flex;gap:0}.composer-icons .icon-btn{width:32px;height:32px}.composer-bar input{flex:1;border:none;outline:none;font-size:14px;padding:6px 8px;background:transparent}.send-btn{width:32px;height:32px;border:none;background:none;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.send-btn:hover{color:var(--accent)}.composer-emoji-anchor{position:relative}.emoji-picker{position:absolute;bottom:calc(100% + 6px);left:0;width:270px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 14px #00000014;display:flex;flex-direction:column;z-index:200;overflow:hidden}.emoji-picker-search{padding:6px 8px 5px;border-bottom:1px solid var(--border)}.emoji-search-input{width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:12px;background:var(--bg-main);color:var(--text);outline:none}.emoji-search-input:focus{border-color:var(--accent)}.emoji-categories-tabs{display:flex;gap:2px;padding:4px 8px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.emoji-categories-tabs::-webkit-scrollbar{display:none}.emoji-cat-tab{background:none;border:none;border-radius:5px;cursor:pointer;font-size:13px;padding:3px 4px;line-height:1;opacity:.6;transition:opacity .1s,background .1s}.emoji-cat-tab:hover{opacity:1;background:var(--bg-main)}.emoji-cat-tab.active{opacity:1;background:var(--accent-light)}.emoji-grid-container{flex:1;overflow-y:auto;padding:4px 6px 6px;max-height:180px}.emoji-cat-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;padding:3px 2px 4px}.emoji-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.emoji-btn{background:none;border:none;border-radius:5px;cursor:pointer;font-size:16px;line-height:1;padding:3px 2px;text-align:center;transition:background .1s,transform .1s}.emoji-btn:hover{background:var(--accent-light);transform:scale(1.15)}.emoji-no-results{text-align:center;padding:16px;color:var(--text-muted);font-size:12px}.icon-btn.active{color:var(--accent);background:var(--accent-light)}.message-item{position:relative}.message-item--hovered{background:var(--bg-main);border-radius:var(--radius)}.message-toolbar{position:absolute;top:-16px;right:8px;display:flex;align-items:center;gap:2px;background:#fff;border:1px solid var(--border);border-radius:20px;padding:3px 6px;box-shadow:0 2px 8px #0000001a;z-index:10;white-space:nowrap}.toolbar-btn{background:none;border:none;cursor:pointer;font-size:15px;padding:3px 5px;border-radius:6px;line-height:1;transition:background .12s}.toolbar-btn:hover{background:var(--accent-light)}.toolbar-btn--active{background:var(--accent-light);color:var(--accent)}.toolbar-btn--busy{opacity:.5;cursor:not-allowed}.toolbar-btn--danger:hover{background:#fee2e2;color:#dc2626}.toolbar-emoji-anchor{position:relative;display:flex;align-items:center}.toolbar-emoji-anchor .emoji-picker{position:absolute;bottom:calc(100% + 8px);right:-40px;left:auto}.toolbar-more-anchor{position:relative;display:flex;align-items:center}.toolbar-btn--more{font-size:14px;font-weight:700;letter-spacing:1px}.toolbar-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:190px;background:var(--bg-white, #fff);border:1px solid var(--border);border-radius:var(--radius, 8px);box-shadow:0 6px 20px #0000001f;z-index:200;padding:4px 0;overflow:hidden;animation:dropdown-fade-in .12s ease-out}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.toolbar-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;background:none;border:none;font-size:13px;font-family:inherit;color:var(--text, #1a1a1a);cursor:pointer;transition:background .1s;text-align:left;white-space:nowrap}.toolbar-dropdown-item:hover{background:var(--accent-light, #f0ebff)}.toolbar-dropdown-item:disabled{opacity:.45;cursor:not-allowed}.toolbar-dropdown-item--active{color:var(--accent, #7c3aed);font-weight:500}.toolbar-dropdown-item--danger{color:#dc2626}.toolbar-dropdown-item--danger:hover{background:#fee2e2}.toolbar-dropdown-icon{font-size:15px;line-height:1;flex-shrink:0}.toolbar-dropdown-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.message-item:focus{outline:none}.message-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.toolbar-btn:focus-visible,.delete-confirm-btn:focus-visible,.reaction-bubble:focus-visible,.reaction-add-btn:focus-visible,.message-thread-badge:focus-visible,.edit-action-btn:focus-visible,.emoji-btn:focus-visible,.emoji-cat-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.message-edit-input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.delete-confirm-label{font-size:12px;font-weight:600;color:#dc2626;padding:0 4px;white-space:nowrap}.delete-confirm-btn{padding:2px 10px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none;line-height:1.6}.delete-confirm-btn--yes{background:#dc2626;color:#fff}.delete-confirm-btn--yes:hover{background:#b91c1c}.delete-confirm-btn--yes:disabled{opacity:.5;cursor:not-allowed}.delete-confirm-btn--no{background:var(--bg-main);border:1px solid var(--border)!important;color:var(--text-muted)}.delete-confirm-btn--no:hover{background:var(--border)}.message-item--deleted{opacity:.55}.message-avatar--deleted{filter:grayscale(1)}.message-tombstone{font-style:italic;color:var(--text-muted);font-size:13px;padding:2px 0;-webkit-user-select:none;user-select:none}.delete-error{margin:0 0 4px;font-size:12px;color:#dc2626;font-weight:500}.toolbar-reaction-wrap{position:relative;display:flex;align-items:center}.reaction-picker-anchor{position:relative}.message-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;align-items:center}.reaction-bubble{display:inline-flex;align-items:center;gap:4px;background:var(--bg-main);border:1.5px solid var(--border);border-radius:12px;padding:2px 8px;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s,transform .08s;line-height:1.5;-webkit-user-select:none;user-select:none}.reaction-bubble:hover{background:var(--accent-light);border-color:var(--accent);transform:scale(1.08)}.reaction-bubble--own{background:var(--accent-light);border-color:var(--accent)}.reaction-bubble--own .reaction-count{color:var(--accent);font-weight:600}.reaction-emoji{font-size:15px;line-height:1}.reaction-count{font-size:12px;font-weight:500;color:#555;min-width:10px;text-align:center}.reaction-add-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:none;border:1.5px dashed var(--border);border-radius:12px;cursor:pointer;font-size:14px;color:var(--text-muted);line-height:1;transition:background .12s,border-color .12s,color .12s}.reaction-add-btn:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.message-edit-area{display:flex;flex-direction:column;gap:6px;margin-top:2px}.message-edit-input-wrap{position:relative;display:flex;align-items:flex-start}.message-edit-input-wrap .message-edit-input{padding-right:38px}.edit-emoji-anchor{position:absolute;right:6px;top:6px}.edit-emoji-btn{background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;border-radius:6px;opacity:.6;transition:opacity .12s,background .12s}.edit-emoji-btn:hover,.edit-emoji-btn--active{opacity:1;background:var(--accent-light)}.edit-emoji-btn:disabled{opacity:.3;cursor:not-allowed}.edit-emoji-anchor .emoji-picker{position:absolute;bottom:calc(100% + 6px);right:0;left:auto}.message-edit-input{width:100%;resize:vertical;padding:6px 10px;border:1.5px solid var(--accent);border-radius:var(--radius);font-size:14px;font-family:inherit;outline:none;background:#fff;box-sizing:border-box}.message-edit-actions{display:flex;gap:6px}.edit-action-btn{padding:3px 12px;border-radius:6px;font-size:13px;cursor:pointer;border:none}.edit-action-btn--save{background:var(--accent);color:#fff}.edit-action-btn--save:hover{opacity:.88}.edit-action-btn--cancel{background:var(--bg-main);border:1px solid var(--border);color:var(--text-muted)}.edit-action-btn--cancel:hover{background:var(--border)}.message-edited{font-size:11px;color:var(--text-muted);margin-left:4px;cursor:help}.message-pin-indicator{font-size:11px;margin-left:6px;opacity:.65;vertical-align:middle;flex-shrink:0;line-height:1}.pin-save-error{margin:2px 0 0;font-size:.72rem;color:#dc2626}.edit-action-btn:disabled{opacity:.45;cursor:not-allowed}.edit-hint{font-size:11px;color:var(--text-muted);align-self:center;margin-left:4px}.edit-error{margin:0;font-size:12px;color:#dc2626}.message-thread-badge{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:12px;font-weight:500;color:var(--accent);background:var(--accent-light);border:none;border-radius:10px;padding:2px 9px;cursor:pointer;transition:background .12s;line-height:1.6}.message-thread-badge:hover{background:#ddd6fe}.thread-badge-count{font-weight:700}.thread-panel{width:340px;min-width:280px;border-left:1px solid var(--border);display:flex;flex-direction:column;background:#fff;overflow:hidden;flex-shrink:0}.thread-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:15px;flex-shrink:0}.thread-panel-title{display:flex;align-items:center;gap:6px}.thread-panel-close{background:none;border:none;cursor:pointer;font-size:20px;line-height:1;color:var(--text-muted);padding:2px 6px;border-radius:4px}.thread-panel-close:hover{background:var(--bg-main);color:var(--text-primary, #1a1a2e)}.thread-panel-root{padding:4px 0;border-bottom:1px solid var(--border);background:var(--bg-main);flex-shrink:0}.thread-panel-replies-label{padding:8px 16px 4px;font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;flex-shrink:0}.thread-panel-messages{flex:1;overflow-y:auto;padding:4px 0 8px}.thread-panel-loading,.thread-panel-empty{padding:24px 16px;font-size:13px;color:var(--text-muted);text-align:center}.thread-panel-error{padding:12px 16px;font-size:13px;color:#dc2626}.thread-message-row{display:flex;gap:10px;padding:6px 16px;transition:background .1s}.thread-message-row:hover{background:var(--bg-main)}.thread-message-avatar{width:28px;height:28px;border-radius:50%;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.thread-message-content{min-width:0}.thread-message-meta{display:flex;align-items:baseline;gap:6px;margin-bottom:1px}.thread-message-author{font-size:13px;font-weight:600;color:#1a1a2e}.thread-message-time{font-size:11px;color:var(--text-muted)}.thread-message-body{font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:#1a1a2e}.thread-message-deleted{font-style:italic;color:var(--text-muted);font-size:13px}.thread-panel-composer{padding:10px 16px 12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;flex-shrink:0}.thread-panel-input{width:100%;box-sizing:border-box;resize:none;border:1.5px solid var(--border);border-radius:var(--radius);padding:7px 10px;font:inherit;font-size:13px;line-height:1.5;outline:none;overflow:hidden;min-height:36px}.thread-panel-input:focus{border-color:var(--accent)}.thread-panel-input:disabled{opacity:.6}.thread-composer-actions{display:flex;justify-content:space-between;align-items:center}.thread-composer-hint{font-size:11px;color:var(--text-muted)}.thread-composer-send{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:5px 16px;font-size:13px;font-weight:600;cursor:pointer}.thread-composer-send:hover:not(:disabled){opacity:.88}.thread-composer-send:disabled{opacity:.45;cursor:not-allowed}.thread-composer-error{margin:0;font-size:12px;color:#dc2626}.message-reply-quote{display:flex;flex-direction:column;gap:2px;margin-bottom:4px;padding:4px 10px;background:var(--bg-main);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;cursor:pointer;text-align:left;width:100%;max-width:500px;border-top:none;border-right:none;border-bottom:none;transition:background .1s}.message-reply-quote:hover{background:var(--accent-light)}.message-reply-quote-author{font-size:12px;font-weight:600;color:var(--accent);line-height:1.3}.message-reply-quote-body{font-size:12px;color:var(--text-muted);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.composer-reply-banner{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--accent-light);border-left:3px solid var(--accent);border-radius:var(--radius) var(--radius) 0 0;font-size:13px;color:var(--accent)}.reply-banner-label{white-space:nowrap;flex-shrink:0}.reply-banner-preview{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#555}.reply-banner-close{background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-muted);padding:0 2px;line-height:1;flex-shrink:0}.reply-banner-close:hover{color:#dc2626}.sidebar-right{width:var(--members-w);border-left:1px solid var(--border);display:flex;flex-direction:column;background:var(--bg-white);flex-shrink:0}.members-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.members-header h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.members-search{padding:8px 16px}.member-list{flex:1;overflow-y:auto;list-style:none;scrollbar-width:none;-ms-overflow-style:none}.member-list::-webkit-scrollbar{display:none}.member-item{display:flex;align-items:center;gap:10px;padding:6px 16px}.member-avatar{width:36px;height:36px;border-radius:var(--radius-round);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0}.member-info{flex:1;min-width:0}.member-name{font-weight:600;font-size:13px}.member-name .you-badge{font-weight:400;color:var(--text-muted)}.member-title{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:16px}.message-highlight .message-item{animation:msg-flash 2s ease-out}@keyframes msg-flash{0%{background:var(--accent-light, rgba(124, 58, 237, .15))}to{background:transparent}}.owner-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100}.owner-modal{background:var(--bg-white);border-radius:14px;width:780px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003;overflow:hidden}.owner-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.owner-title{font-size:22px;font-weight:700}.owner-close{background:none;border:none;font-size:26px;cursor:pointer;color:var(--text-secondary);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center}.owner-close:hover{background:var(--bg-main)}.owner-tabs{display:flex;gap:0;padding:16px 24px 0;border-bottom:1px solid var(--border)}.owner-tab{background:none;border:none;padding:10px 16px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.owner-tab:hover{color:var(--text)}.owner-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.owner-body{flex:1;overflow-y:auto;padding:0}.owner-tab-content{padding:24px}.owner-loading{padding:60px;text-align:center;color:var(--text-muted);font-size:15px}.owner-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}.owner-stat-grid-small{grid-template-columns:repeat(5,1fr);gap:10px}.owner-stat-card{background:var(--bg-main);border-radius:10px;padding:16px;text-align:center}.owner-stat-card.small{padding:12px 8px}.owner-stat-value{font-size:26px;font-weight:700;line-height:1.2}.owner-stat-card.small .owner-stat-value{font-size:20px}.owner-stat-label{font-size:12px;color:var(--text-secondary);margin-top:4px;font-weight:500}.owner-stat-sub{font-size:11px;color:var(--text-muted);margin-top:2px}.owner-section-title{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--text)}.owner-role-bars{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}.owner-role-bar{display:flex;align-items:center;gap:10px}.owner-role-label{font-size:13px;font-weight:600;width:90px;text-align:right}.owner-bar-track{flex:1;height:8px;background:var(--bg-main);border-radius:4px;overflow:hidden}.owner-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.owner-role-count{font-size:13px;color:var(--text-secondary);width:30px}.owner-member-count{font-size:13px;color:var(--text-secondary);margin-bottom:12px;font-weight:500}.owner-member-list{display:flex;flex-direction:column}.owner-member-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.owner-member-row:last-child{border-bottom:none}.owner-member-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:600;flex-shrink:0}.owner-member-info{flex:1;min-width:0}.owner-member-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px}.owner-self-tag{font-size:10px;background:var(--accent-light);color:var(--accent);padding:1px 6px;border-radius:4px;font-weight:600}.owner-member-email{font-size:12px;color:var(--text-muted)}.owner-member-status{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-secondary);min-width:70px}.owner-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.owner-status-dot.online{background:var(--online)}.owner-status-dot.away{background:#f59e0b}.owner-role-badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px;flex-shrink:0}.owner-role-select{font-size:12px;padding:4px 8px;border-radius:6px;border:1.5px solid var(--border);background:var(--bg-white);cursor:pointer;font-weight:500;flex-shrink:0}.owner-role-select:focus{outline:none;border-color:var(--accent)}.owner-role-select:disabled{opacity:.5;cursor:not-allowed}.owner-top-list{display:flex;flex-direction:column;gap:4px;margin-bottom:28px}.owner-top-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:var(--bg-main)}.owner-top-rank{font-size:13px;font-weight:700;color:var(--text-muted);width:28px}.owner-top-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.owner-top-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600;flex-shrink:0}.owner-top-name{font-size:14px;font-weight:500;flex:1}.owner-top-meta{font-size:12px;color:var(--text-muted)}.owner-top-value{font-size:13px;font-weight:600;color:var(--accent)}.owner-chart{display:flex;align-items:flex-end;gap:6px;height:160px;margin-bottom:28px;padding:8px 0}.owner-chart-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.owner-chart-bar{width:100%;max-width:36px;background:var(--accent);border-radius:4px 4px 0 0;transition:height .3s ease;min-height:4px}.owner-chart-bar:hover{opacity:.8}.owner-chart-label{font-size:10px;color:var(--text-muted);margin-top:6px;white-space:nowrap}.owner-mod-log{display:flex;flex-direction:column;gap:8px}.owner-mod-item{background:var(--bg-main);border-radius:8px;padding:12px 14px}.owner-mod-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.owner-mod-badge{font-size:11px;font-weight:600;background:var(--accent-light);color:var(--accent);padding:2px 8px;border-radius:4px}.owner-mod-time{font-size:11px;color:var(--text-muted)}.owner-mod-detail{font-size:13px;color:var(--text)}.owner-mod-reason{font-size:12px;color:var(--text-secondary);margin-top:4px;font-style:italic}.owner-empty{padding:24px;text-align:center;color:var(--text-muted);font-size:14px}.adm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1200}.adm-panel{background:var(--bg-white);border-radius:14px;width:900px;max-width:96vw;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;overflow:hidden}.adm-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px}.adm-title-row{display:flex;align-items:center;gap:10px}.adm-title{font-size:22px;font-weight:700;margin:0}.adm-close{background:none;border:none;font-size:26px;cursor:pointer;color:var(--text-secondary);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center}.adm-close:hover{background:var(--bg-main)}.adm-loading{padding:60px;text-align:center;color:var(--text-muted);font-size:15px}.adm-err-icon{color:#dc2626;margin-right:6px}.adm-tabs{display:flex;gap:0;padding:0 24px;border-bottom:1px solid var(--border)}.adm-tab{background:none;border:none;padding:10px 14px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;display:flex;align-items:center;gap:5px}.adm-tab:hover{color:var(--text)}.adm-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.adm-tab-icon{font-size:14px}.adm-body{flex:1;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.adm-body::-webkit-scrollbar{display:none}.adm-tab-body{padding:24px}.adm-empty{text-align:center;padding:24px;color:var(--text-muted);font-size:14px}.adm-h4{font-size:14px;font-weight:600;margin:0 0 12px;color:var(--text)}.adm-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}.adm-stat-card{background:var(--bg-main);border-radius:10px;padding:16px;text-align:center}.adm-stat-icon{font-size:22px;margin-bottom:4px}.adm-stat-val{font-size:26px;font-weight:700;line-height:1.2}.adm-stat-label{font-size:12px;color:var(--text-secondary);margin-top:4px;font-weight:500}.adm-stat-sub{font-size:11px;color:var(--text-muted);margin-top:2px}.adm-mini-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.adm-mini-card{background:var(--bg-main);border-radius:8px;padding:12px 8px;text-align:center}.adm-mini-val{font-size:20px;font-weight:700;line-height:1.2}.adm-mini-label{font-size:11px;color:var(--text-secondary);margin-top:2px}.adm-section-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px}.adm-section-half{min-width:0}.adm-role-bars{display:flex;flex-direction:column;gap:8px}.adm-role-bar{display:flex;align-items:center;gap:10px}.adm-role-label{font-size:13px;font-weight:600;width:90px;text-align:right}.adm-bar-track{flex:1;height:8px;background:var(--bg-main);border-radius:4px;overflow:hidden}.adm-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.adm-role-n{font-size:13px;color:var(--text-secondary);width:30px}.adm-chart{display:flex;align-items:flex-end;gap:4px;height:140px;padding:8px 0;margin-bottom:28px}.adm-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.adm-chart-val{font-size:10px;color:var(--text-muted);margin-bottom:4px}.adm-chart-bar{width:100%;max-width:28px;background:var(--accent);border-radius:4px 4px 0 0;opacity:.85;transition:height .3s ease}.adm-chart-day{font-size:10px;color:var(--text-muted);margin-top:4px}.adm-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.adm-search{flex:1;min-width:160px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg-main);outline:none}.adm-search:focus{border-color:var(--accent)}.adm-filter{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg-white);cursor:pointer}.adm-count{font-size:12px;color:var(--text-muted);margin-left:auto}.adm-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.adm-table{width:100%;border-collapse:collapse;font-size:13px}.adm-table th{text-align:left;padding:10px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-main);border-bottom:1px solid var(--border)}.adm-table td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.adm-table tbody tr:last-child td{border-bottom:none}.adm-table tbody tr:hover{background:var(--hover)}.adm-td-muted{color:var(--text-muted);font-size:12px}.adm-row-muted{background:#fef3c7}.adm-row-muted:hover{background:#fde68a!important}.adm-user-cell{display:flex;align-items:center;gap:10px}.adm-user-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:12px;flex-shrink:0}.adm-user-name{font-weight:500;font-size:13px;display:flex;align-items:center;gap:6px}.adm-user-email{font-size:11px;color:var(--text-muted)}.adm-you{font-size:10px;background:var(--accent-light);color:var(--accent);padding:1px 6px;border-radius:4px;font-weight:600}.adm-muted-badge{font-size:14px}.adm-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:#9ca3af}.adm-status-dot.online{background:#22c55e}.adm-status-dot.away{background:#f59e0b}.adm-status-dot.offline{background:#9ca3af}.adm-role-pill{display:inline-block;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:600}.adm-role-sel{padding:4px 8px;border-radius:6px;border:1px solid var(--border);font-size:12px;background:var(--bg-white);cursor:pointer}.adm-ch-cell{display:flex;align-items:center;gap:10px}.adm-ch-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.adm-ch-name{font-weight:500}.adm-ch-desc{font-size:11px;color:var(--text-muted)}.adm-ch-type{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:500}.adm-ch-type.public{background:#dbeafe;color:#2563eb}.adm-ch-type.private{background:#fef3c7;color:#d97706}.adm-action-btns{display:flex;gap:4px}.adm-btn-sm{width:30px;height:30px;border:none;border-radius:6px;cursor:pointer;font-size:14px;background:var(--bg-main);display:flex;align-items:center;justify-content:center;transition:background .12s}.adm-btn-sm:hover{background:var(--border)}.adm-btn-sm:disabled{opacity:.4;cursor:not-allowed}.adm-btn-sm.adm-btn-warn:hover{background:#fde68a}.adm-btn-sm.adm-btn-green:hover{background:#bbf7d0}.adm-btn-sm.adm-btn-danger:hover{background:#fecaca}.adm-btn{padding:8px 16px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;background:var(--bg-white);transition:background .12s}.adm-btn:hover{background:var(--bg-main)}.adm-btn:disabled{opacity:.4;cursor:not-allowed}.adm-btn.adm-btn-warn{background:#f59e0b;color:#fff;border-color:#f59e0b}.adm-btn.adm-btn-warn:hover{background:#d97706}.adm-btn.adm-btn-green{background:#22c55e;color:#fff;border-color:#22c55e}.adm-btn.adm-btn-green:hover{background:#16a34a}.adm-btn.adm-btn-danger{background:#ef4444;color:#fff;border-color:#ef4444}.adm-btn.adm-btn-danger:hover{background:#dc2626}.adm-action-pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;background:var(--bg-main);padding:3px 10px;border-radius:6px}.adm-log-actor{font-weight:500}.adm-meta{font-size:11px;color:var(--text-muted)}.adm-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:1300}.adm-detail{background:var(--bg-white);border-radius:14px;width:380px;max-width:92vw;padding:28px;position:relative;box-shadow:0 16px 48px #0003;text-align:center}.adm-detail-close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-muted)}.adm-detail-close:hover{color:var(--text)}.adm-detail-av{width:64px;height:64px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:24px}.adm-detail-name{font-size:18px;font-weight:600;margin:0 0 4px}.adm-detail-email{font-size:13px;color:var(--text-muted);margin:0 0 4px}.adm-detail-title{font-size:12px;color:var(--text-secondary);margin:0 0 16px}.adm-detail-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;text-align:left;font-size:13px;margin-bottom:20px;padding:14px;background:var(--bg-main);border-radius:8px}.adm-detail-grid>span:nth-child(odd){color:var(--text-muted);font-weight:500}.adm-detail-actions{border-top:1px solid var(--border);padding-top:16px}.adm-detail-role-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;justify-content:center}.adm-detail-role-row label{font-size:13px;font-weight:500}.adm-detail-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.adm-mute-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1400}.adm-mute-modal{background:var(--bg-white);border-radius:14px;padding:24px;width:380px;max-width:92vw;box-shadow:0 16px 48px #0003}.adm-mute-modal h3{margin:0 0 16px;font-size:16px}.adm-mute-label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;margin-bottom:14px}.adm-mute-select,.adm-mute-input{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg-white)}.adm-mute-input:focus,.adm-mute-select:focus{border-color:var(--accent);outline:none}.adm-mute-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.adm-toast{padding:8px 20px;text-align:center;font-size:13px;font-weight:500;animation:adm-slide-in .25s ease}.adm-toast.ok{background:#dcfce7;color:#166534}.adm-toast.err{background:#fee2e2;color:#991b1b}@keyframes adm-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.adm-tools-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:28px}.adm-tool-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px;background:var(--bg-main);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:background .12s,border-color .12s}.adm-tool-card:hover{background:var(--bg-white);border-color:var(--accent)}.adm-tool-icon{font-size:28px}.adm-tool-label{font-size:14px;font-weight:600}.adm-tool-desc{font-size:12px;color:var(--text-muted)}.adm-info-block{background:var(--bg-main);border-radius:10px;padding:14px 18px;margin-bottom:24px}.adm-info-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px}.adm-info-row+.adm-info-row{border-top:1px solid var(--border)}.adm-info-block code{font-size:12px;background:var(--bg-white);padding:2px 8px;border-radius:4px;border:1px solid var(--border)}.adm-top-row{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13px}.adm-top-row+.adm-top-row{border-top:1px solid var(--border)}.adm-top-rank{color:var(--text-muted);font-size:12px;width:24px}.adm-color-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.adm-top-av{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:600;flex-shrink:0}.adm-top-name{flex:1;font-weight:500}.adm-top-val{font-weight:600;color:var(--text-secondary)}.adm-log-mini{margin-bottom:20px}.adm-log-row{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:13px}.adm-log-row+.adm-log-row{border-top:1px solid var(--border)}.adm-log-icon{font-size:16px;flex-shrink:0}.adm-log-text{flex:1}.adm-log-time{font-size:11px;color:var(--text-muted);flex-shrink:0}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:9999;background:#ef4444;color:#fff;text-align:center;padding:6px 16px;font-size:13px;font-weight:500;animation:slideDown .3s ease}.offline-banner span{opacity:.85}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.ws-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);padding:0 8px}.ws-status-dot{width:6px;height:6px;border-radius:50%;background:#22c55e}.ws-status-dot.disconnected{background:#ef4444}.ws-status-dot.reconnecting{background:#f59e0b;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.message-more-btn{display:none;align-items:center;justify-content:center;margin-left:auto;padding:2px 6px;background:none;border:none;border-radius:6px;font-size:16px;font-weight:700;color:var(--text-muted);cursor:pointer;line-height:1;letter-spacing:1px;min-height:24px;transition:background .1s}.message-more-btn:active{background:var(--bg-main)}.mobile-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:200;display:flex;flex-direction:column;justify-content:flex-end}.mobile-menu-sheet{background:var(--bg-white);border-radius:20px 20px 0 0;padding:8px 0 max(16px,env(safe-area-inset-bottom));max-height:90vh;overflow-y:auto;overscroll-behavior:contain}.mobile-menu-react-section{padding:12px 16px 4px;position:relative}.mobile-quick-reacts{display:flex;justify-content:space-between;gap:4px}.mobile-quick-react-btn{flex:1;min-height:48px;font-size:24px;background:var(--bg-main);border:2px solid transparent;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s,border-color .1s,transform .08s;padding:0}.mobile-quick-react-btn:active{transform:scale(.9)}.mobile-quick-react-btn--active{background:var(--accent-light);border-color:var(--accent)}.mobile-quick-react-btn--more{font-size:18px;font-weight:700;color:var(--text-muted)}.mobile-picker-anchor{position:relative;height:0}.mobile-menu-divider{height:1px;background:var(--border);margin:8px 0}.mobile-menu-actions{list-style:none;margin:0;padding:0 8px}.mobile-menu-action-btn{width:100%;display:flex;align-items:center;gap:12px;padding:13px 12px;background:none;border:none;border-radius:10px;font-size:15px;font-weight:500;color:var(--text);cursor:pointer;text-align:left;min-height:48px;transition:background .1s}.mobile-menu-action-btn:active,.mobile-menu-action-btn:hover{background:var(--bg-main)}.mobile-menu-action-btn:disabled{opacity:.5;cursor:not-allowed}.mobile-menu-action-btn--danger{color:#dc2626}.mobile-menu-action-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0;line-height:1}.mobile-menu-delete-confirm{padding:12px 16px}.mobile-menu-delete-label{margin:0 0 10px;font-size:14px;font-weight:600;color:#dc2626}.mobile-menu-delete-btns{display:flex;gap:8px}.mobile-confirm-btn{flex:1;padding:12px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;min-height:48px;transition:opacity .1s}.mobile-confirm-btn--yes{background:#dc2626;color:#fff}.mobile-confirm-btn--yes:disabled{opacity:.5;cursor:not-allowed}.mobile-confirm-btn--no{background:var(--bg-main);border:1px solid var(--border)!important;color:var(--text)}.mobile-confirm-btn--no:hover{background:var(--border)}.mobile-menu-cancel{display:block;width:calc(100% - 32px);margin:8px 16px 0;padding:14px;background:var(--bg-main);border:none;border-radius:12px;font-size:16px;font-weight:600;color:var(--text-muted);cursor:pointer;min-height:48px;text-align:center;transition:background .1s}.mobile-menu-cancel:active{background:var(--border)}@media (max-width: 768px){:root{--sidebar-w: 0px;--members-w: 0px}.sidebar{display:none}.sidebar.mobile-open{display:flex;position:fixed;top:0;left:0;bottom:0;width:280px;z-index:100;box-shadow:4px 0 20px #00000026}.members-panel{display:none}.members-panel.mobile-open{display:flex;position:fixed;top:0;right:0;bottom:0;width:280px;z-index:100;box-shadow:-4px 0 20px #00000026}.mobile-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99}.mobile-overlay.active{display:block}.chat-header .mobile-menu-btn{display:inline-flex}.offline-banner+.layout{padding-top:32px}.message-list{padding:12px;gap:16px}.message-item{padding:4px 2px}.message-avatar{width:36px;height:36px;font-size:13px}.message-more-btn{display:inline-flex}.message-toolbar{display:none!important}}@media (min-width: 769px){.chat-header .mobile-menu-btn,.message-more-btn{display:none}}@supports (padding-top: env(safe-area-inset-top)){.layout{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}.call-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:var(--radius);background:var(--accent-light);color:var(--accent);cursor:pointer;transition:background .15s,color .15s;flex-shrink:0}.call-btn:hover:not(:disabled){background:var(--accent);color:#fff}.call-btn:disabled{opacity:.4;cursor:not-allowed}.call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#0009;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.call-overlay-card{background:var(--bg-white);border-radius:20px;padding:40px 48px;text-align:center;box-shadow:0 24px 64px #00000040;min-width:300px}.call-avatar{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;margin:0 auto 16px}.call-overlay-name{font-size:20px;font-weight:700;color:var(--text);margin-bottom:4px}.call-overlay-status{font-size:14px;color:var(--text-muted);margin-bottom:28px}.call-pulse{animation:callPulse 1.5s ease-in-out infinite}@keyframes callPulse{0%,to{opacity:1}50%{opacity:.5}}.call-overlay-actions{display:flex;gap:24px;justify-content:center}.call-action-btn{width:56px;height:56px;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,box-shadow .15s;color:#fff}.call-action-btn:hover{transform:scale(1.1)}.call-accept{background:#22c55e;box-shadow:0 4px 16px #22c55e59}.call-reject{background:#ef4444;box-shadow:0 4px 16px #ef444459}.call-panel{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:300;background:var(--text);color:#fff;border-radius:0 0 16px 16px;padding:10px 20px;display:flex;align-items:center;gap:16px;box-shadow:0 8px 32px #0000004d;min-width:340px}.call-panel-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.call-panel-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;flex-shrink:0}.call-panel-details{min-width:0}.call-panel-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-panel-status{font-size:12px;color:#ffffffb3}.call-error{color:#fca5a5}.call-panel-controls{display:flex;gap:8px;flex-shrink:0}.call-control-btn{width:36px;height:36px;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#ffffff26;color:#fff;transition:background .15s}.call-control-btn:hover{background:#ffffff40}.call-control-btn.call-muted,.call-hangup-btn{background:#ef4444}.call-hangup-btn:hover{background:#dc2626}.call-media-error-icon{font-size:48px;margin-bottom:16px;line-height:1}.call-media-error-desc{font-size:14px;color:var(--text-secondary);line-height:1.5;max-width:320px;margin:0 auto 28px}.call-dismiss-btn{background:var(--text-muted);box-shadow:0 4px 16px #00000026}.presence-dot{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg-primary);background:#9ca3af}.presence-dot.online{background:#22c55e}.presence-dot.away{background:#f59e0b}.presence-dot.offline{background:#9ca3af}.presence-dot.ringing{background:#f59e0b;animation:presence-pulse 1.2s ease-in-out infinite}.presence-dot.in_call,.presence-dot.dnd{background:#ef4444}@keyframes presence-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.25)}}.dm-avatar{position:relative}.dm-label{display:flex;flex-direction:column;min-width:0}.dm-presence-label{font-size:11px;color:var(--text-muted);line-height:1.2}.member-avatar{position:relative}.member-presence-label{font-size:11px;color:var(--text-muted);margin-left:6px;font-weight:400}.chat-header-presence{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted);margin-top:2px}.chat-header-presence .presence-dot{position:static;width:8px;height:8px;border:none}.chat-header-presence.ringing{color:#f59e0b}.chat-header-presence.in_call,.chat-header-presence.dnd{color:#ef4444}.call-message{display:flex;align-items:center;gap:10px;padding:10px 16px;margin:4px 0;border-radius:var(--radius-md, 8px);background:var(--bg-tertiary, #f3f4f6);border-left:3px solid var(--text-muted, #9ca3af)}.call-message--ended{border-left-color:#22c55e}.call-message--missed{border-left-color:#f59e0b;background:#fef9ee}.call-message--rejected,.call-message--failed{border-left-color:#ef4444;background:#fef2f2}.call-message-icon{font-size:18px;flex-shrink:0}.call-message-body{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.call-message-label{font-weight:600;font-size:13px}.call-message-duration{font-size:12px;color:var(--text-secondary, #6b7280);background:var(--bg-primary, #fff);padding:1px 6px;border-radius:4px}.call-message-direction{font-size:11px;color:var(--text-muted, #9ca3af)}.call-message-time{font-size:11px;color:var(--text-muted, #9ca3af);flex-shrink:0}.notification-bell-wrapper{position:relative}.notification-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#ef4444;color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center;pointer-events:none}.bell-has-unread{color:#ef4444;animation:bell-ring 3s ease-in-out infinite;transform-origin:top center}@keyframes bell-ring{0%,60%,to{transform:rotate(0)}65%{transform:rotate(14deg)}70%{transform:rotate(-11deg)}75%{transform:rotate(8deg)}80%{transform:rotate(-5deg)}85%{transform:rotate(3deg)}90%{transform:rotate(0)}}.notification-panel{position:fixed;left:var(--sidebar-w);top:4px;width:320px;max-height:calc(100vh - 16px);background:var(--bg-surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:300;display:flex;flex-direction:column;overflow:hidden}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border, #e5e7eb)}.notification-panel-header h3{margin:0;font-size:14px;font-weight:600}.notification-mark-all{border:none;background:none;color:var(--accent, #6366f1);font-size:12px;cursor:pointer;padding:2px 6px;border-radius:4px}.notification-mark-all:hover{background:var(--accent-muted, #eef2ff)}.notification-panel-list{overflow-y:auto;flex:1}.notification-empty{padding:32px 16px;text-align:center;color:var(--text-secondary, #6b7280);font-size:13px}.notification-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;border:none;background:none;text-align:left;cursor:pointer;font-family:inherit;font-size:13px;color:inherit;border-bottom:1px solid var(--border, #f3f4f6);transition:background .15s}.notification-item:hover{background:var(--bg-hover, #f9fafb)}.notification-item.unread{background:var(--accent-muted, #eef2ff)}.notification-item.unread:hover{background:#e0e7ff}.notification-item-icon{position:relative;flex-shrink:0}.notification-item-icon .avatar-sm{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600}.notification-type-badge{position:absolute;bottom:-2px;right:-4px;font-size:12px;line-height:1}.notification-item-content{flex:1;min-width:0}.notification-item-text{font-size:13px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.notification-item-text strong{font-weight:600}.notification-item-time{font-size:11px;color:var(--text-muted, #9ca3af);margin-top:2px}.notification-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--accent, #6366f1);flex-shrink:0}.notification-call{border-left:3px solid transparent}.notification-call_incoming{border-left-color:#22c55e}.notification-call_missed{border-left-color:#ef4444}.notification-call_rejected{border-left-color:#f59e0b}.call-debug-overlay{position:fixed;top:0;right:0;width:420px;max-height:100vh;z-index:9999;pointer-events:none}.call-debug-panel{pointer-events:auto;margin:12px;background:#1e1e2e;border:1px solid #313244;border-radius:12px;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;max-height:calc(100vh - 24px);font-size:13px;color:#cdd6f4}.call-debug-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #313244;flex-shrink:0}.call-debug-title{font-weight:700;font-size:14px;white-space:nowrap}.call-debug-tabs{display:flex;gap:2px;flex:1;justify-content:center}.call-debug-tab{background:transparent;border:none;color:#6c7086;font-size:12px;padding:4px 10px;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.call-debug-tab:hover{background:#313244;color:#cdd6f4}.call-debug-tab.active{background:#45475a;color:#cdd6f4;font-weight:600}.call-debug-actions{display:flex;gap:4px}.call-debug-refresh,.call-debug-close{background:transparent;border:none;color:#6c7086;cursor:pointer;font-size:14px;padding:4px 6px;border-radius:6px}.call-debug-refresh:hover,.call-debug-close:hover{background:#313244;color:#cdd6f4}.call-debug-body{padding:14px;overflow-y:auto;flex:1}.call-debug-error{background:#45272a;color:#f38ba8;padding:8px 12px;border-radius:8px;margin-bottom:12px;font-size:12px}.call-debug-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.call-debug-metric{background:#181825;border-radius:8px;padding:10px 8px;text-align:center}.metric-value{font-size:20px;font-weight:700;line-height:1.2;color:#cdd6f4}.metric-label{font-size:11px;color:#6c7086;margin-top:2px}.call-debug-subtitle{font-size:12px;font-weight:600;color:#a6adc8;margin:12px 0 6px}.call-debug-status{background:#181825;padding:10px 14px;border-radius:8px;border-left:3px solid #6c7086;margin-bottom:12px}.call-debug-table{width:100%;border-collapse:collapse;font-size:12px}.call-debug-table th{text-align:left;color:#6c7086;font-weight:600;padding:4px 6px;border-bottom:1px solid #313244}.call-debug-table td{padding:4px 6px;border-bottom:1px solid #1e1e2e}.call-debug-daily{max-height:260px;overflow-y:auto}.call-debug-hint{font-size:12px;color:#6c7086;margin-bottom:12px}.call-debug-empty{text-align:center;color:#6c7086;padding:24px 0}.call-debug-log-list{display:flex;flex-direction:column;gap:4px;max-height:400px;overflow-y:auto}.call-debug-log-entry{display:flex;gap:8px;align-items:center;padding:6px 8px;background:#181825;border-radius:6px;border-left:3px solid #6c7086;font-size:12px}.call-debug-log-entry.severity-warning{border-left-color:#f59e0b}.call-debug-log-entry.severity-critical{border-left-color:#ef4444}.log-time{color:#6c7086;flex-shrink:0;font-family:monospace}.log-event{color:#89b4fa;font-weight:600;flex-shrink:0}.log-severity{color:#a6adc8;flex-shrink:0}.log-details{color:#6c7086;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
