:root{--bg-app:#edf0f6;--bg-panel:#fff;--bg-elevated:#fff;--bg-subtle:#eef1f6;--bg-hover:#6366f112;--bg-active:#6366f11f;--text:#0f1220;--text-muted:#3f4756;--text-faint:#5b6270;--border:#dfe3ec;--border-strong:#c9cfdb;--accent:#6366f1;--accent-hover:#4f46e5;--accent-soft:#6366f11a;--accent-ring:#6366f140;--bubble-own-bg:linear-gradient(135deg, #6366f1, #8b5cf6);--bubble-own-fg:#fff;--bubble-other-bg:#fff;--bubble-other-fg:#0f1220;--bubble-other-border:#e8eaf0;--danger:#e11d48;--danger-bg:#fff1f2;--success:#10b981;--info:#2563eb;--shadow-sm:0 1px 2px #0f12200d;--shadow-md:0 6px 20px #0f12200f;--shadow-lg:0 20px 48px #0f122024;--radius-sm:8px;--radius:12px;--radius-lg:18px;--radius-pill:999px;--fs-xs:12px;--fs-sm:13px;--fs-base:14.5px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:var(--fs-base);color:var(--text);background:var(--bg-app);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5}@media (prefers-color-scheme:dark){:root{--bg-app:#0b0d12;--bg-panel:#12151c;--bg-elevated:#1a1e27;--bg-subtle:#161a23;--bg-hover:#818cf814;--bg-active:#818cf829;--text:#ecedf4;--text-muted:#b3bccc;--text-faint:#8a92a5;--border:#262c39;--border-strong:#343b4b;--accent:#818cf8;--accent-hover:#6366f1;--accent-soft:#818cf81f;--accent-ring:#818cf84d;--bubble-own-bg:linear-gradient(135deg, #6366f1, #8b5cf6);--bubble-own-fg:#fff;--bubble-other-bg:#1a1e27;--bubble-other-fg:#ecedf4;--bubble-other-border:#232833;--danger:#fb7185;--danger-bg:#3f0b16;--info:#60a5fa;--shadow-sm:0 1px 2px #00000059;--shadow-md:0 6px 20px #00000073;--shadow-lg:0 20px 48px #0009}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-app);margin:0;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex}button{font-family:inherit}.auth-page{background:var(--bg-app);justify-content:center;align-items:center;height:100dvh;display:flex}.auth-form{background:var(--bg-panel);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:16px;flex-direction:column;gap:16px;width:100%;max-width:420px;padding:36px;display:flex}.auth-form h1{text-align:center;letter-spacing:-.01em;margin-bottom:8px;font-size:24px;font-weight:600}.auth-form input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-md);background:var(--bg-panel);color:var(--text);outline:none;padding:12px 16px;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.auth-form button[type=submit]{background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:var(--fs-md);cursor:pointer;border:none;padding:12px;font-weight:600;transition:background .15s}.auth-form button[type=submit]:hover{background:var(--accent-hover)}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.auth-link{text-align:center;color:var(--text-muted);font-size:var(--fs-sm)}.auth-link a{color:var(--accent);text-decoration:none}.error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-sm);font-size:var(--fs-sm);padding:10px 14px}.success{color:var(--success);border-radius:var(--radius-sm);font-size:var(--fs-sm);background:#10b9811a;padding:10px 14px}.loading-screen{height:100dvh;color:var(--text-muted);font-size:var(--fs-lg);justify-content:center;align-items:center;display:flex}.chat-page{background:var(--bg-app);height:100dvh;display:flex;position:relative;overflow:hidden}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;width:300px;min-width:300px;max-width:320px;display:flex;overflow:hidden}@media (width>=1440px){.sidebar{width:320px;min-width:320px}}.sidebar-backdrop{display:none}.sidebar-toggle{z-index:25;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);box-shadow:var(--shadow-sm);padding:8px 10px;display:none;position:absolute;top:12px;left:12px}@media (width<=768px){.sidebar{z-index:20;width:86vw;min-width:0;max-width:340px;box-shadow:var(--shadow-lg);transition:left .2s;position:absolute;top:0;bottom:0;left:-360px}.sidebar.open{left:0}.sidebar-backdrop{z-index:15;background:#00000073;display:block;position:fixed;inset:0}.sidebar-toggle{align-items:center;display:flex}.chat-header{padding-left:56px!important}}.sidebar-user{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;display:flex}.sidebar-user-main{align-items:center;gap:12px;min-width:0;display:flex}.user-avatar{background:var(--accent-soft);width:38px;min-width:38px;height:38px;color:var(--accent);font-weight:600;font-size:var(--fs-md);border-radius:50%;justify-content:center;align-items:center;display:flex}.user-info{min-width:0}.user-display-name{font-weight:600;font-size:var(--fs-md);letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-username{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-menu-wrap{position:relative}.user-menu{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;box-shadow:var(--shadow-lg);z-index:30;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.user-menu button{text-align:left;font-size:var(--fs-base);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);background:0 0;border:none;padding:9px 12px}.user-menu button:hover{background:var(--bg-hover)}.user-menu button.danger{color:var(--danger)}.chat-search{background:var(--bg-subtle);border:1px solid var(--border-strong);border-radius:var(--radius-pill);height:38px;color:var(--text-muted);flex:1;align-items:center;gap:8px;padding:0 12px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.chat-search:focus-within{border-color:var(--accent);background:var(--bg-panel);color:var(--accent)}.chat-search input{font-size:var(--fs-base);color:var(--text);background:0 0;border:none;outline:none;flex:1}.chat-search input::placeholder{color:var(--text-muted);opacity:1}.chat-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.chat-list{flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-list-header{align-items:center;gap:8px;padding:12px 14px;display:flex}.new-chat-btn{background:var(--accent);color:#fff;border-radius:var(--radius-pill);cursor:pointer;width:40px;min-width:40px;height:40px;box-shadow:0 2px 8px var(--accent-ring);border:none;justify-content:center;align-items:center;transition:background .15s,transform .1s,box-shadow .15s;display:flex}.new-chat-btn:hover{background:var(--accent-hover);box-shadow:0 3px 12px var(--accent-ring)}.new-chat-btn:active{transform:scale(.94)}.chat-list-items{scrollbar-width:thin;flex:1;padding:4px 8px 12px;overflow-y:auto}.chat-list-item{cursor:pointer;border-radius:var(--radius);text-align:left;width:100%;color:var(--text);background:0 0;border:none;align-items:center;gap:12px;padding:10px 10px 10px 14px;transition:background .12s,transform 60ms;display:flex;position:relative}.chat-list-item:hover{background:var(--bg-hover)}.chat-list-item:active{transform:translateY(1px)}.chat-list-item.active{background:#6366f124}.chat-list-item.active:hover{background:#6366f12e}.chat-list-item.active:before{content:"";background:var(--accent);border-radius:4px;width:4px;position:absolute;top:8px;bottom:8px;left:2px}@media (prefers-color-scheme:dark){.chat-list-item.active{background:#818cf82e}.chat-list-item.active:hover{background:#818cf83d}}.chat-avatar{background:linear-gradient(135deg, var(--accent-soft), transparent);width:44px;min-width:44px;height:44px;color:var(--accent);font-weight:600;font-size:var(--fs-lg);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;display:flex}.chat-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.chat-info-row{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.chat-name{font-weight:600;font-size:var(--fs-md);letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-list-item.active .chat-name{color:var(--accent)}.chat-last-message{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.chat-time{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.chat-unread{background:var(--accent);color:#fff;border-radius:var(--radius-pill);justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 7px;font-size:11px;font-weight:700;line-height:1;display:flex}.chat-list-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:40px 16px}.chat-area{--rail-max:760px;--rail-gutter:max(24px, calc((100% - var(--rail-max)) / 2));background:var(--bg-panel);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-area-empty{justify-content:center;align-items:center}@media (width<=640px){.chat-area{--rail-gutter:16px}}.chat-header{padding:10px var(--rail-gutter);background:var(--bg-panel);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:56px;display:flex}.chat-header-actions{align-items:center;gap:4px;display:flex}.btn-icon.active{background:var(--accent-soft);color:var(--accent)}.chat-header-main{align-items:center;gap:12px;min-width:0;display:flex}.chat-avatar-header{width:40px;min-width:40px;height:40px;font-size:var(--fs-md);position:relative}.online-dot{background:var(--success);border:2px solid var(--bg-panel);border-radius:50%;width:11px;height:11px;position:absolute;bottom:-1px;right:-1px}.chat-header-text{flex-direction:column;min-width:0;display:flex}.chat-header h3{font-size:var(--fs-md);letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.chat-header-status{font-size:var(--fs-xs);color:var(--text-muted);font-weight:500}.chat-header-status.online{color:var(--success)}.message-list-wrap{flex:1;min-height:0;display:flex;position:relative}.message-list{padding:16px var(--rail-gutter) 6px;scrollbar-width:thin;scroll-behavior:smooth;flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.message-list-spacer{flex:1 1 0;min-height:0}.messages-start{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:12px 16px}.date-separator{pointer-events:none;justify-content:center;margin:14px 0 10px;display:flex}.date-separator span{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-pill);padding:5px 12px;font-size:11.5px;font-weight:600;box-shadow:0 1px 2px #0f12200a}.drop-overlay{border:2px dashed var(--accent);border-radius:var(--radius-lg);background:var(--accent-soft);pointer-events:none;z-index:4;justify-content:center;align-items:center;display:flex;position:absolute;inset:12px}.drop-overlay-inner{color:var(--accent);font-weight:600;font-size:var(--fs-md);flex-direction:column;align-items:center;gap:10px;display:flex}.scroll-to-bottom{background:var(--bg-panel);width:42px;height:42px;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-md);cursor:pointer;z-index:3;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:14px;right:20px}.scroll-to-bottom:hover{background:var(--bg-hover)}.stb-badge{background:var(--accent);color:#fff;border-radius:var(--radius-pill);border:2px solid var(--bg-app);justify-content:center;align-items:center;min-width:20px;height:20px;padding:2px 7px;font-size:11px;font-weight:700;line-height:1;display:flex;position:absolute;top:-6px;right:-6px}.empty-chat{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;margin:auto;padding:32px;display:flex}.empty-chat h3{font-size:var(--fs-lg);color:var(--text);letter-spacing:-.01em;font-weight:600}.empty-chat p{font-size:var(--fs-sm);color:var(--text-muted);max-width:320px}.message-row{align-items:flex-end;gap:6px;max-width:100%;display:flex}.message-row.own{justify-content:flex-end}.message-row{margin-top:4px}.message-row.group-start{margin-top:10px}.message-row.author-change{margin-top:16px}.message-row.group-start:first-child,.message-row.author-change:first-child{margin-top:0}.bubble-avatar-slot{justify-content:center;align-self:flex-end;align-items:flex-end;width:28px;min-width:28px;display:flex}.bubble-avatar{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);font-weight:600;font-size:var(--fs-sm);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1px;display:flex}.message-bubble{border-radius:var(--radius-lg);word-wrap:break-word;min-width:60px;max-width:min(560px,70%);font-size:var(--fs-md);flex-direction:column;gap:2px;padding:7px 13px 6px;line-height:1.45;transition:opacity .15s;display:flex;position:relative}.message-bubble.other{background:var(--bubble-other-bg);color:var(--bubble-other-fg);border:1px solid var(--bubble-other-border)}.message-bubble.own{background:var(--bubble-own-bg);color:var(--bubble-own-fg)}.message-bubble.other:not(.group-first){border-top-left-radius:6px}.message-bubble.other:not(.group-last){border-bottom-left-radius:6px}.message-bubble.own:not(.group-first){border-top-right-radius:6px}.message-bubble.own:not(.group-last){border-bottom-right-radius:6px}.message-bubble.pending{opacity:.75}.message-bubble.failed{outline:1px solid var(--danger);outline-offset:-1px}.message-bubble.deleted{background:var(--bg-subtle);color:var(--text-muted);border:1px dashed var(--border-strong);padding:6px 12px;font-style:italic}.deleted-text{font-size:var(--fs-sm)}.message-sender{font-size:var(--fs-xs);color:var(--accent);letter-spacing:.005em;margin-bottom:1px;font-weight:600;line-height:1.2}.message-content{font-size:var(--fs-md);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.reply-preview{font-size:var(--fs-sm);background:#ffffff24;border-left:3px solid;border-radius:6px;flex-direction:column;gap:1px;margin:-2px 0 6px;padding:6px 10px;display:flex}.message-bubble.other .reply-preview{background:var(--accent-soft);border-left-color:var(--accent)}.reply-name{font-weight:600;font-size:var(--fs-xs);opacity:.9}.reply-text{opacity:.75;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.message-meta{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:6px;margin-top:1px;font-size:11px;display:flex}.message-bubble.own .message-meta{color:#ffffffe0}.message-time{letter-spacing:.01em;font-size:11px;font-weight:500}.message-edited{opacity:.8;font-size:11px;font-style:italic}.msg-status{color:inherit;font:inherit;cursor:default;background:0 0;border:none;align-items:center;gap:3px;padding:0;display:inline-flex}.msg-status.failed{color:#ffdbe0;cursor:pointer;font-size:11px;font-weight:600}.msg-status.read{color:#a7f3d0}.message-bubble.other .msg-status.read{color:var(--success)}.message-menu-btn{cursor:pointer;opacity:0;color:inherit;background:0 0;border:none;border-radius:6px;padding:3px;line-height:0;transition:opacity .15s,background .15s;position:absolute;top:4px;right:6px}.message-bubble:hover .message-menu-btn,.message-menu-btn:focus-visible{opacity:.85}.message-menu-btn:hover{opacity:1;background:#0000001f}.message-bubble.own .message-menu-btn:hover{background:#fff3}.message-menu{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:5;min-width:120px;padding:4px;position:absolute;top:0;right:32px;overflow:hidden}.message-bubble.own .message-menu{left:32px;right:auto}.message-menu button{text-align:left;cursor:pointer;width:100%;font-size:var(--fs-sm);color:var(--text);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:7px 10px;display:flex}.message-menu button:hover{background:var(--bg-hover)}.message-menu button.danger{color:var(--danger)}.message-edit{flex-direction:column;gap:6px;min-width:200px;display:flex}.message-edit input{border:1px solid var(--border);font-size:var(--fs-sm);background:var(--bg-panel);color:var(--text);border-radius:8px;outline:none;padding:6px 10px}.edit-actions{justify-content:flex-end;gap:6px;display:flex}.edit-actions button{cursor:pointer;font-size:var(--fs-xs);background:var(--bg-subtle);color:var(--text);border:none;border-radius:6px;padding:4px 12px}.edit-actions button:first-child{background:var(--accent);color:#fff}.typing-indicator{padding:4px var(--rail-gutter) 6px;font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:8px;min-height:20px;display:flex}.typing-dots{gap:3px;display:inline-flex}.typing-dots span{background:var(--text-muted);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite typing-bounce}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.message-input{padding:10px var(--rail-gutter) 14px;background:var(--bg-app);border-top:1px solid var(--border);display:flex}.composer-shell{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);flex:1;align-items:flex-end;gap:4px;min-height:48px;padding:4px 4px 4px 10px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.composer-shell:hover{border-color:var(--text-faint)}.composer-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.composer-icon{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-pill);background:0 0;border:none;justify-content:center;align-items:center;margin:0 0 2px;padding:8px;transition:color .15s,background .15s,transform .1s;display:flex}.composer-icon:hover{color:var(--accent);background:var(--accent-soft)}.composer-icon:active{transform:scale(.94)}.message-text-input{font-family:inherit;font-size:var(--fs-md);resize:none;color:var(--text);background:0 0;border:none;outline:none;flex:1;max-height:160px;padding:11px 6px;line-height:1.4;overflow-y:auto}.message-text-input::placeholder{color:var(--text-muted);opacity:1}.composer-send{background:var(--bg-subtle);width:40px;min-width:40px;height:40px;color:var(--text-faint);cursor:not-allowed;border:none;border-radius:50%;justify-content:center;align-items:center;margin:0;transition:background .15s,color .15s,transform .1s,box-shadow .15s;display:flex}.composer-send.active{background:var(--accent);color:#fff;cursor:pointer;box-shadow:0 2px 10px var(--accent-ring), inset 0 -1px 0 #0000001a}.composer-send.active:hover{background:var(--accent-hover);box-shadow:0 4px 16px var(--accent-ring), inset 0 -1px 0 #0000001f}.composer-send.active:active{transform:scale(.94)}.info-panel{background:var(--bg-panel);border-left:1px solid var(--border);scrollbar-width:thin;flex-direction:column;width:320px;min-width:320px;display:flex;overflow-y:auto}@media (width>=1600px){.info-panel{width:360px;min-width:360px}}@media (width<=1279px){.info-panel{z-index:12;box-shadow:var(--shadow-lg);position:absolute;top:0;bottom:0;right:0}}@media (width<=640px){.info-panel{width:100vw;min-width:0}}.info-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:60px;padding:14px 16px;display:flex}.info-header h3{font-size:var(--fs-md);letter-spacing:-.005em;font-weight:600}.info-profile{border-bottom:1px solid var(--border);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:24px 20px 20px;display:flex}.info-avatar{background:linear-gradient(135deg, var(--accent), #8b5cf6);color:#fff;letter-spacing:-.02em;width:72px;height:72px;box-shadow:0 6px 20px var(--accent-ring);border-radius:50%;justify-content:center;align-items:center;margin-bottom:6px;font-size:28px;font-weight:700;display:flex}.info-name{font-size:var(--fs-lg);letter-spacing:-.01em;font-weight:600}.info-subline{font-size:var(--fs-sm);color:var(--text-muted)}.info-presence{font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:6px;margin-top:4px;display:inline-flex}.info-presence.online{color:var(--success)}.presence-dot{background:var(--text-faint);border-radius:50%;width:8px;height:8px}.info-presence.online .presence-dot,.presence-dot-inline{background:var(--success)}.info-section{border-bottom:1px solid var(--border);padding:16px 18px}.info-section:last-child{border-bottom:none}.info-section-title{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:700}.info-search{background:var(--bg-subtle);border-radius:var(--radius-pill);height:34px;color:var(--text-muted);align-items:center;gap:8px;padding:0 12px;display:flex}.info-search input{font-size:var(--fs-sm);color:var(--text);background:0 0;border:none;outline:none;flex:1}.info-search-results{flex-direction:column;gap:8px;max-height:260px;margin-top:10px;display:flex;overflow-y:auto}.info-search-result{background:var(--bg-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.search-result-sender{color:var(--accent);letter-spacing:.005em;font-size:11px;font-weight:600}.search-result-text{font-size:var(--fs-sm);color:var(--text)}.info-hint{font-size:var(--fs-sm);color:var(--text-muted)}.info-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:32px 20px}.info-members{flex-direction:column;gap:4px;display:flex}.info-member{align-items:center;gap:10px;padding:6px 4px;display:flex}.info-member-text{min-width:0;font-size:var(--fs-sm);flex:1}.info-member-text>div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.info-member-handle{color:var(--text-muted);font-size:var(--fs-xs)}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);color:var(--text);align-items:center;gap:12px;padding:10px 12px 10px 14px;animation:.2s ease-out toast-in;display:flex}.toast-error{border-left:3px solid var(--danger)}.toast-info{border-left:3px solid var(--info)}.toast-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.dialog-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0c148c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--bg-elevated);border:1px solid var(--border);width:90%;max-width:460px;max-height:82vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:28px;overflow-y:auto}.dialog h2{font-size:var(--fs-xl);letter-spacing:-.01em;margin-bottom:16px}.chat-type-toggle{background:var(--bg-subtle);border-radius:var(--radius);gap:4px;margin-bottom:16px;padding:4px;display:flex}.chat-type-toggle button{border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-base);color:var(--text-muted);background:0 0;border:none;flex:1;padding:8px;transition:all .15s}.chat-type-toggle button.active{background:var(--bg-panel);color:var(--text);box-shadow:var(--shadow-sm)}.group-name-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;font-size:var(--fs-base);background:var(--bg-panel);color:var(--text);outline:none;margin-bottom:12px;padding:10px 14px}.user-select-list{flex-direction:column;gap:4px;max-height:300px;margin-bottom:16px;display:flex;overflow-y:auto}.user-select-item{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;transition:background .15s;display:flex}.user-select-item:hover{background:var(--bg-hover)}.user-select-item input{accent-color:var(--accent)}.user-avatar-small{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);font-weight:600;font-size:var(--fs-sm);border-radius:50%;justify-content:center;align-items:center;display:flex}.username{color:var(--text-muted);font-size:var(--fs-sm)}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.dialog-actions button{border-radius:var(--radius-sm);font-size:var(--fs-base);cursor:pointer;border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text);padding:10px 20px;transition:all .15s}.dialog-actions button:last-child{background:var(--accent);color:#fff;border-color:var(--accent)}.dialog-actions button:last-child:disabled{opacity:.5;cursor:not-allowed}.settings-page{background:var(--bg-app);justify-content:center;align-items:flex-start;height:100dvh;padding:40px 20px;display:flex;overflow-y:auto}.settings-container{background:var(--bg-panel);border:1px solid var(--border);width:100%;max-width:500px;box-shadow:var(--shadow-sm);border-radius:16px;padding:32px}.admin-container{max-width:640px}.settings-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.settings-header button{cursor:pointer;color:var(--accent);font-size:var(--fs-md);background:0 0;border:none}.settings-header h1{letter-spacing:-.01em;font-size:22px;font-weight:600}.settings-container form{flex-direction:column;gap:16px;display:flex}.settings-container label{font-size:var(--fs-base);color:var(--text-muted);flex-direction:column;gap:6px;display:flex}.settings-container label input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-md);background:var(--bg-panel);color:var(--text);outline:none;padding:10px 14px}.settings-container label input:disabled{opacity:.6}.settings-container form button[type=submit]{background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:var(--fs-md);cursor:pointer;border:none;padding:10px;font-weight:600}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-header h2{font-size:var(--fs-lg);letter-spacing:-.005em}.section-header button{background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:var(--fs-base);cursor:pointer;border:none;padding:8px 16px}.section-header button:disabled{opacity:.5}.invite-list{flex-direction:column;gap:8px;display:flex}.invite-item{border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:6px;padding:12px 16px;display:flex}.invite-item.used{opacity:.55}.invite-code{align-items:center;gap:8px;display:flex}.invite-code code{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:var(--fs-sm);background:var(--bg-subtle);border-radius:6px;padding:4px 8px}.invite-meta{font-size:var(--fs-sm);color:var(--text-muted);justify-content:space-between;align-items:center;display:flex}.chat-list-item:focus-visible,.btn-icon:focus-visible,.composer-send:focus-visible,.composer-icon:focus-visible,.new-chat-btn:focus-visible,.user-menu button:focus-visible,.message-menu button:focus-visible,.message-menu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chat-search:focus-within,.info-search:focus-within{box-shadow:0 0 0 3px var(--accent-ring)}.btn-icon{cursor:pointer;border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;transition:background .15s,color .15s,transform .1s;display:inline-flex}.btn-icon:hover{background:var(--bg-hover);color:var(--text)}.btn-icon:active{transform:scale(.94)}.btn-small{font-size:var(--fs-xs);border:1px solid var(--border-strong);cursor:pointer;background:var(--bg-panel);color:var(--text);border-radius:6px;padding:4px 10px}.btn-small:hover{background:var(--bg-hover)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background:var(--danger-bg)}
