.login-page{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg)}.login-page .card{text-align:center;padding:var(--space-2xl);width:100%;max-width:380px;background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.login-page .logo{font-family:var(--font-logo);font-size:3rem;font-weight:700;letter-spacing:-.03em;margin-bottom:var(--space-lg);color:var(--accent)}.login-page .tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg);background:var(--bg-surface);border-radius:var(--r-md);padding:3px}.login-page .tabs .tab{flex:1;padding:var(--space-md);border:none;background:none;color:var(--fg-2);font-size:var(--text-sm);font-weight:600;cursor:pointer;border-radius:var(--r-sm);transition:all var(--fast)}.login-page .tabs .tab.active{background:var(--bg-hover);color:var(--fg)}.login-page form{display:flex;flex-direction:column;gap:var(--space-lg)}.login-page form input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);color:var(--fg);font-size:var(--text-sm);outline:none;transition:border-color var(--fast),box-shadow var(--fast)}.login-page form input:focus{border-color:var(--accent);box-shadow:var(--glow-soft)}.login-page form input::placeholder{color:var(--fg-3)}.login-page .error{color:var(--fg-danger);font-size:var(--text-sm);text-align:left}.login-page .submit{padding:var(--space-md) var(--space-xl);background:var(--accent);color:#fff;border:none;border-radius:var(--r-md);font-weight:600;font-size:var(--text-base);cursor:pointer;transition:box-shadow var(--fast),opacity var(--fast)}.login-page .submit:hover:not(:disabled){box-shadow:var(--glow-strong)}.login-page .submit:disabled{opacity:.6;cursor:not-allowed}.login-page .verify{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.login-page .verify .icon{font-size:3rem;line-height:1}.login-page .verify h2{font-size:var(--text-xl);font-weight:600;color:var(--fg);margin:0}.login-page .verify p{color:var(--fg-2);font-size:var(--text-sm);margin:0;line-height:1.5}.login-page .verify p strong{color:var(--fg)}.login-page .verify input{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);color:var(--fg);font-size:var(--text-sm);outline:none;transition:border-color var(--fast),box-shadow var(--fast);box-sizing:border-box}.login-page .verify input:focus{border-color:var(--accent);box-shadow:var(--glow-soft)}.login-page .verify input::placeholder{color:var(--fg-3)}.login-page .verify .resend{width:100%;margin-top:var(--space-sm)}.login-page .back{background:none;border:none;color:var(--fg-2);font-size:var(--text-sm);cursor:pointer;padding:var(--space-sm);transition:color var(--fast)}.login-page .back:hover{color:var(--fg)}.login-page .desc{color:var(--fg-2);font-size:var(--text-sm);margin-bottom:var(--space-lg);line-height:1.5}.login-page .forgot{background:none;border:none;color:var(--fg-2);font-size:var(--text-sm);cursor:pointer;padding:0;text-align:center;transition:color var(--fast)}.login-page .forgot:hover{color:var(--fg)}.navbar{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 6px;background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-bottom:1px solid var(--border);flex-shrink:0;z-index:50}.navbar .left{display:flex;align-items:center;flex:1}.navbar .center{display:flex;align-items:center;justify-content:center}.navbar .logo{font-family:var(--font-logo);font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em;color:var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none}.navbar .right{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);flex:1}.navbar .btn{position:relative;width:36px;height:36px;padding:0;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:var(--fg-3);transition:color var(--fast),background var(--fast)}.navbar .btn:hover{color:var(--fg);background:var(--bg-raised)}.navbar .badge{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:2px solid var(--bg)}.navbar .avatar-btn{width:32px;height:32px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;transition:box-shadow var(--fast)}.navbar .avatar-btn:hover{box-shadow:var(--glow-soft)}.navbar .avatar-btn img{width:100%;height:100%;object-fit:cover}.navbar .avatar-btn .letter{font-size:var(--text-sm);font-weight:600;color:#fff}.club-sidebar{width:var(--sidebar-club);background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);display:flex;flex-direction:column;align-items:center;padding:var(--space-md) 0;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border)}.club-sidebar .list{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);flex:1}.club-sidebar .icon{width:48px;height:48px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;background:var(--bg-raised);color:var(--fg-2);transition:background var(--normal),color var(--normal),box-shadow var(--normal),outline-color var(--normal);overflow:visible;cursor:pointer;flex-shrink:0;outline:2px solid transparent;outline-offset:2px;position:relative}.club-sidebar .icon:hover{background:var(--accent);color:#fff;box-shadow:var(--glow)}.club-sidebar .icon.active{background:var(--accent);color:#fff;outline-color:var(--accent);box-shadow:var(--glow-strong)}.club-sidebar .icon.home{background:var(--bg-raised);color:var(--accent)}.club-sidebar .icon.create{background:var(--bg-raised);color:var(--success)}.club-sidebar .icon.create:hover{background:var(--success);color:#fff;box-shadow:var(--glow-success)}.club-sidebar .icon .text{font-size:var(--text-sm);font-weight:600;pointer-events:none}.club-sidebar .icon img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-full)}.club-sidebar .unread-badge{position:absolute;bottom:-1px;right:-1px;width:12px;height:12px;border-radius:50%;background:var(--danger);border:2px solid var(--bg-surface);pointer-events:none}.club-sidebar .bottom{display:flex;flex-direction:column;align-items:center;padding-top:var(--space-sm)}.club-sidebar .divider{width:24px;height:2px;background:var(--border);border-radius:1px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100}.modal-close{padding:var(--space-sm);color:var(--fg-3);border-radius:var(--r-full);display:flex;transition:color var(--fast),background var(--fast)}.modal-close:hover{color:var(--fg);background:var(--bg-raised)}.modal-close.over-banner{position:absolute;top:var(--space-sm);right:var(--space-sm);z-index:2}.modal-close.over-banner:hover{background:#0006}.modal{background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--space-xl);min-width:400px;max-width:500px;box-shadow:var(--shadow-lg)}.modal .title{font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-lg)}.modal .input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);color:var(--fg);font-size:var(--text-sm);margin-bottom:var(--space-lg);transition:border-color var(--fast),box-shadow var(--fast)}.modal .input:focus{border-color:var(--accent);box-shadow:var(--glow-soft)}.modal .input::placeholder{color:var(--fg-3)}.modal .modal-desc,.modal .modal-message{color:var(--fg-2);font-size:var(--text-sm);margin-bottom:var(--space-lg);line-height:1.5}.modal .modal-error{font-size:var(--text-sm);color:var(--fg-danger);margin-bottom:var(--space-sm)}.modal .modal-success{font-size:var(--text-sm);color:var(--fg-success)}.modal .actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--r-md);font-weight:500;font-size:var(--text-sm);transition:background var(--fast),box-shadow var(--fast)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:var(--glow)}.btn-secondary{background:transparent;color:var(--fg-2)}.btn-secondary:hover{color:var(--fg)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:var(--text-xs)}@media(max-width:768px){.club-sidebar{position:fixed;bottom:0;left:0;right:0;height:calc(var(--mobile-bar) + env(safe-area-inset-bottom,0px));padding:0 var(--space-lg) env(safe-area-inset-bottom,0px);flex-direction:row;z-index:45;border-right:none;border-top:1px solid var(--border);overflow-x:auto;overflow-y:hidden;width:100%;background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);scrollbar-width:none}.club-sidebar::-webkit-scrollbar{display:none}.club-sidebar .list{flex-direction:row;gap:var(--space-sm)}.club-sidebar .icon{width:40px;height:40px}.club-sidebar .divider{width:2px;height:var(--space-xl);margin:0 var(--space-xs)}.club-sidebar .bottom{flex-direction:row;padding-top:0;padding-left:var(--space-md)}}.invite{width:var(--modal-narrow-w);max-width:95vw;max-height:80vh;background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.invite .header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-lg) 0}.invite .header h2{font-size:var(--text-xl);font-weight:600}.invite .section{padding:var(--space-md) var(--space-lg) 0}.invite .search-wrap{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--fast),box-shadow var(--fast)}.invite .search-wrap:focus-within{border-color:var(--accent);box-shadow:var(--glow-soft)}.invite .search-icon{color:var(--fg-3);flex-shrink:0}.invite .search-input{flex:1;background:none;border:none;color:var(--fg);font-size:var(--text-sm);outline:none}.invite .search-input::placeholder{color:var(--fg-3)}.invite .results{margin-top:var(--space-sm);max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.invite .result{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--r-md);transition:background var(--fast)}.invite .result:hover{background:var(--bg-surface)}.invite .result .avatar{width:32px;height:32px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-xs);font-weight:600;flex-shrink:0;overflow:hidden}.invite .result .avatar img{width:100%;height:100%;object-fit:cover}.invite .result .name{flex:1;font-size:var(--text-sm);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite .sent-badge{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-xs);color:var(--fg-success);font-weight:500;flex-shrink:0}.invite .searching{padding:var(--space-sm);font-size:var(--text-xs);color:var(--fg-3);text-align:center}.invite .error{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--fg-danger)}.invite .divider{height:1px;background:var(--border);margin:var(--space-lg) var(--space-lg) 0}.invite .link-section{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg)}.invite .link-section .label{font-size:var(--text-sm);color:var(--fg-3)}.invite .link-section .copy-btn{display:flex;align-items:center;gap:var(--space-xs)}.voice-panel{border-top:1px solid var(--border);padding:var(--space-sm) var(--space-md);display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.voice-panel .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.voice-panel .info .status{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-xs);font-weight:600;color:var(--success);line-height:1}.voice-panel .info .status .dot{width:6px;height:6px;border-radius:50%;background:var(--success);flex-shrink:0}.voice-panel .info .channel{font-size:11px;color:var(--fg-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.voice-panel .controls{display:flex;gap:2px;flex-shrink:0}.voice-panel .controls .btn{width:32px;height:32px;padding:0;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:var(--fg-3);transition:color var(--fast),background var(--fast)}.voice-panel .controls .btn:hover{color:var(--fg);background:var(--bg-raised)}.voice-panel .controls .btn.active{color:var(--fg-danger)}.voice-panel .controls .btn.active:hover{color:var(--fg-danger);background:var(--bg-raised)}.voice-panel .controls .btn.disconnect:hover{color:#fff;background:var(--danger)}@media(max-width:768px){.voice-panel{position:fixed;bottom:calc(var(--mobile-bar) + env(safe-area-inset-bottom,0px));left:0;right:0;z-index:44;background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-top:1px solid var(--border)}}.channel-sidebar{width:var(--sidebar-channel);background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border)}.channel-sidebar .header{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-lg);border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--fast);position:relative}.channel-sidebar .header:hover{background:var(--bg-surface)}.channel-sidebar .header .name{font-weight:600;font-size:var(--text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-sidebar .dropdown{position:absolute;top:48px;left:var(--space-sm);right:var(--space-sm);background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--space-xs);z-index:50;box-shadow:var(--shadow-md)}.channel-sidebar .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:49}.channel-sidebar .dropdown-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--r-sm);font-size:var(--text-sm);color:var(--fg-2);transition:background var(--fast),color var(--fast)}.channel-sidebar .dropdown-item:hover{background:var(--accent);color:#fff}.channel-sidebar .dropdown-item.text-danger{color:var(--fg-danger)}.channel-sidebar .dropdown-item.text-danger:hover{background:var(--danger);color:#fff}.channel-sidebar .list{flex:1;overflow-y:auto;padding:var(--space-sm)}.channel-sidebar .category{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-sm) var(--space-xs);min-width:0}.channel-sidebar .category .label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.channel-sidebar .category .category-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--fast);flex-shrink:0}.channel-sidebar .category:hover .category-actions{opacity:1}.channel-sidebar .category .add{color:var(--fg-3);padding:2px;border-radius:var(--r-sm);display:flex}.channel-sidebar .category .add:hover{color:var(--fg)}.channel-sidebar .category .add.danger-hover:hover{color:var(--danger)}.channel-sidebar .item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:6px var(--space-sm);border-radius:var(--r-md);color:var(--fg-3);transition:background var(--fast),color var(--fast),box-shadow var(--fast),outline-color var(--fast);font-size:var(--text-base);outline:1.5px solid transparent;outline-offset:-1.5px}.channel-sidebar .item:hover{background:var(--bg-raised);color:var(--fg-2)}.channel-sidebar .item:hover .channel-actions{opacity:1}.channel-sidebar .item.active{background:var(--accent-soft);color:var(--fg);outline-color:var(--accent);box-shadow:var(--glow-soft)}.channel-sidebar .item.active .icon,.channel-sidebar .item.active .channel-actions{opacity:1}.channel-sidebar .item .icon{flex-shrink:0;opacity:.6}.channel-sidebar .item .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-sidebar .item .channel-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--fast);margin-left:auto;flex-shrink:0}.channel-sidebar .item.unread .name{font-weight:600;color:var(--fg)}.channel-sidebar .item.unread .icon{opacity:1}.channel-sidebar .item .channel-action{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--r-sm);color:var(--fg-3);cursor:pointer;transition:background var(--fast),color var(--fast)}.channel-sidebar .item .channel-action:hover{background:var(--bg-float);color:var(--fg)}.channel-sidebar .item .channel-action.danger:hover{background:var(--danger);color:#fff}.edit-channel-modal{min-width:340px;max-width:400px}@media(max-width:768px){.channel-sidebar{position:fixed;top:var(--navbar-h);left:0;right:0;bottom:calc(var(--mobile-bar) + env(safe-area-inset-bottom,0px));width:100%;z-index:40;background:var(--bg);border-right:none}}.channel-view{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-surface)}.channel-view .header{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-lg);border-bottom:1px solid var(--border);flex-shrink:0;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.channel-view .header .left{display:flex;align-items:center;gap:var(--space-sm)}.channel-view .header .icon{color:var(--fg-3)}.channel-view .header .name{font-weight:600;font-size:var(--text-base)}.messages{flex:1;overflow-y:auto;padding:var(--space-lg) 0}.messages .loading{display:flex;justify-content:center;padding:var(--space-lg)}.messages .list{display:flex;flex-direction:column}.message{display:flex;padding:2px var(--space-lg) 2px 72px;position:relative;transition:background var(--fast)}.message:hover{background:var(--bg-surface)}.message.group-start{margin-top:var(--space-lg);padding-top:var(--space-xs)}.message .avatar{position:absolute;left:var(--space-lg);top:var(--space-xs);width:40px;height:40px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:var(--text-sm);overflow:hidden;flex-shrink:0;cursor:pointer}.message .avatar img{width:100%;height:100%;object-fit:cover}.message .content{flex:1;min-width:0}.message header{display:flex;align-items:baseline;gap:var(--space-sm)}.message .author{font-weight:600;font-size:var(--text-base);color:var(--fg);cursor:pointer}.message .author:hover{text-decoration:underline}.message .time{font-size:var(--text-xs);color:var(--fg-3)}.message .text{color:var(--fg-2);word-break:break-word;white-space:pre-wrap;line-height:1.4}.message .text strong{color:var(--fg);font-weight:700}.message .text em{font-style:italic}.message .text s{text-decoration:line-through;opacity:.7}.message .text u{text-decoration:underline;text-underline-offset:2px}.message .text .msg-link{color:var(--accent);text-decoration:none}.message .text .msg-link:hover{text-decoration:underline}.message .text code{font-family:var(--mono);font-size:.85em;background:var(--bg-raised);padding:1px 5px;border-radius:var(--r-sm);color:var(--fg)}.message .text .msg-codeblock{margin:var(--space-xs) 0;padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border-radius:var(--r-md);border:1px solid var(--border);overflow-x:auto;white-space:pre}.message .text .msg-codeblock code{background:none;padding:0;border-radius:0;font-size:var(--text-sm);color:var(--fg-2)}.message .edited{font-size:var(--text-xs);color:var(--fg-3);margin-left:var(--space-xs)}.message .actions{display:none;position:absolute;right:var(--space-lg);top:-12px;background:var(--bg-float);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-radius:var(--r-md);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-sm)}.message:hover .actions{display:flex}.message .action-btn{padding:var(--space-xs) var(--space-sm);color:var(--fg-3);display:flex;transition:background var(--fast),color var(--fast)}.message .action-btn:hover{background:var(--bg-hover);color:var(--fg)}.message .action-btn.danger:hover{background:var(--danger);color:#fff}.message .edit{margin-top:var(--space-xs)}.message .edit textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);color:var(--fg);font-family:var(--font);font-size:var(--text-sm);resize:none;transition:border-color var(--fast),box-shadow var(--fast)}.message .edit textarea:focus{border-color:var(--accent);box-shadow:var(--glow-soft)}.message .edit .hint{font-size:var(--text-xs);color:var(--fg-3)}.message .attachments{margin-top:var(--space-xs);display:flex;flex-wrap:wrap;gap:var(--space-sm)}.message .attachments img{max-width:400px;max-height:300px;border-radius:var(--r-md);cursor:pointer}.message .attachments a{display:inline-block;padding:var(--space-sm) var(--space-md);background:var(--bg-surface);border-radius:var(--r-md);border:1px solid var(--border);font-size:var(--text-sm);color:var(--fg-link)}.typing{padding:var(--space-xs) var(--space-lg);font-size:var(--text-xs);color:var(--fg-2);display:flex;align-items:center;gap:var(--space-xs);height:24px}.typing .dots{display:flex;gap:2px}.typing .dots span{width:4px;height:4px;border-radius:50%;background:var(--fg-2);animation:typingBounce 1.4s infinite ease-in-out}.typing .dots span:nth-child(2){animation-delay:.16s}.typing .dots span:nth-child(3){animation-delay:.32s}@keyframes typingBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.send-error{padding:var(--space-xs) var(--space-lg);font-size:var(--text-xs);color:var(--danger)}.pending-files{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg) 0;flex-wrap:wrap}.pending-files .file{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--text-xs);color:var(--fg-2)}.pending-files .file button{color:var(--fg-3);font-size:var(--text-xs)}.msg-input{display:flex;align-items:flex-end;padding:0 var(--space-lg) var(--space-lg);gap:var(--space-sm)}.msg-input .input-wrap{flex:1;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--fast),box-shadow var(--fast)}.msg-input .input-wrap:focus-within{border-color:var(--accent);box-shadow:var(--glow-soft)}.msg-input .format-toolbar{display:flex;gap:2px;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.msg-input .fmt-btn{width:28px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);color:var(--fg-3);transition:color var(--fast),background var(--fast)}.msg-input .fmt-btn:hover{color:var(--fg);background:var(--bg-hover)}.msg-input textarea{width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--fg);font-family:var(--font);font-size:var(--text-sm);resize:none;max-height:200px;line-height:1.4;overflow-y:hidden}.msg-input textarea::placeholder{color:var(--fg-3)}.msg-input .btn{width:36px;height:36px;padding:0;color:var(--fg-3);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color var(--fast),background var(--fast)}.msg-input .btn:hover{color:var(--fg);background:var(--bg-raised)}.msg-input .btn.send{color:var(--accent)}.msg-input .btn:disabled{opacity:.4;cursor:not-allowed}.vc-view{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--bg-surface)}.vc-view .header{height:48px;padding:0 6px 0 var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--border);flex-shrink:0;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.vc-view .header .icon{color:var(--fg-3)}.vc-view .header .name{font-weight:600;font-size:var(--text-base);flex:1}.vc-view .header .chat-toggle{width:36px;height:36px;border-radius:var(--r-md);color:var(--fg-3);display:flex;align-items:center;justify-content:center;transition:color var(--fast),background var(--fast);position:relative}.vc-view .header .chat-toggle:hover{color:var(--fg);background:var(--bg-raised)}.vc-view .header .chat-toggle.active{color:var(--fg)}.vc-view .header .chat-toggle .unread-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:var(--r-full);background:var(--danger)}.vc-view .main{flex:1;display:flex;min-height:0}.vc-view .col{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.vc-view .body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:12px;gap:12px}.vc-view .body.has-focus{justify-content:flex-start}.vc-view .join{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg)}.vc-view .join .icon{color:var(--fg-3)}.vc-view .join p{font-size:var(--text-xl);font-weight:600;color:var(--fg-2)}.vc-view .join button{padding:var(--space-sm) var(--space-xl);background:var(--success);color:#fff;font-weight:600;font-size:var(--text-base);border-radius:var(--r-md);transition:background var(--fast),box-shadow var(--fast)}.vc-view .join button:hover{background:#1e8e4d;box-shadow:var(--glow-success)}.vc-view .grid{display:grid;gap:12px;place-content:center;width:100%;height:100%}.vc-view .grid .tile{width:100%;height:100%;aspect-ratio:unset}.vc-view .tile{position:relative;aspect-ratio:16 / 10;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-surface);border:2px solid var(--bg-raised);transition:border-color var(--normal),box-shadow var(--normal);cursor:pointer}.vc-view .tile:hover{border-color:var(--bg-active)}.vc-view .tile.speaking{border-color:var(--success);box-shadow:var(--glow-success)}.vc-view .tile.focused{width:100%;flex:1;min-height:0}.vc-view .tile.screen{border-color:var(--border)}.vc-view .tile.screen.speaking{border-color:var(--success);box-shadow:var(--glow-success)}.vc-view .tile.screen video{object-fit:contain;background:#000}.vc-view .tile video{width:100%;height:100%;object-fit:cover}.vc-view .tile .tile-avatar{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-surface)}.vc-view .tile .tile-avatar span{width:64px;height:64px;border-radius:var(--r-full);background:var(--bg-hover);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:700;color:var(--fg)}.vc-view .tile .bar{position:absolute;bottom:0;left:0;right:0;padding:var(--space-xs) var(--space-sm);background:linear-gradient(transparent,#000000b3);display:flex;align-items:center;gap:var(--space-xs)}.vc-view .tile .bar .name{font-size:var(--text-sm);font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vc-view .tile .bar .muted{color:var(--fg-danger);flex-shrink:0}.vc-view .strip{display:flex;gap:12px;overflow-x:auto;flex-shrink:0;max-width:100%;margin:0 auto}.vc-view .strip .tile{width:clamp(120px,15vw,180px);min-width:0;flex-shrink:0;aspect-ratio:16 / 10}.vc-view .strip .tile .tile-avatar span{width:36px;height:36px;font-size:var(--text-sm)}.vc-view .controls{height:64px;display:flex;align-items:center;justify-content:center;gap:var(--space-md);border-top:1px solid var(--border);flex-shrink:0}.vc-view .controls .ctrl-btn{width:44px;height:44px;border-radius:var(--r-full);background:var(--bg-raised);display:flex;align-items:center;justify-content:center;color:var(--fg-2);transition:color var(--fast),background var(--fast)}.vc-view .controls .ctrl-btn:hover,.vc-view .controls .ctrl-btn.active{background:var(--bg-active);color:var(--fg)}.vc-view .controls .ctrl-btn.disconnect{background:var(--danger);color:#fff}.vc-view .controls .ctrl-btn.disconnect:hover{background:var(--danger-hover)}.vc-view .chat{width:340px;border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;background:var(--bg-surface)}.vc-view .chat .msgs{flex:1;overflow-y:auto;padding:var(--space-lg) 0}.vc-view .chat .message{padding:2px var(--space-md) 2px 56px}.vc-view .chat .message .avatar{left:var(--space-md);width:32px;height:32px;font-size:var(--text-xs)}.vc-view .chat .message .attachments img{max-width:260px}.vc-view .chat .msg-input{padding:0 var(--space-md) var(--space-md)}@media(max-width:768px){.vc-view .chat{position:fixed;top:var(--navbar-h);left:0;right:0;bottom:calc(var(--mobile-bar) + env(safe-area-inset-bottom,0px));width:100%;z-index:40;background:var(--bg)}.vc-view .controls{height:var(--mobile-bar)}}.member-sidebar{width:var(--sidebar-members);background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);flex-shrink:0;overflow-y:auto;padding:8px;border-left:1px solid var(--border)}.member-sidebar .category{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);padding:var(--space-sm)}.member-sidebar .item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--r-md);transition:background var(--fast);cursor:pointer}.member-sidebar .item:hover{background:var(--bg-raised)}.member-sidebar .item.offline{opacity:.5}.member-sidebar .item .avatar{width:32px;height:32px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-xs);font-weight:600;position:relative;flex-shrink:0}.member-sidebar .item .avatar img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-full)}.member-sidebar .item .avatar .dot{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;border:2px solid rgba(10,10,15,.8)}.member-sidebar .item .avatar .dot.online{background:var(--online)}.member-sidebar .item .avatar .dot.idle{background:var(--idle)}.member-sidebar .item .avatar .dot.dnd{background:var(--dnd)}.member-sidebar .item .avatar .dot.offline{background:var(--offline)}.member-sidebar .item .info{overflow:hidden}.member-sidebar .item .name{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:4px}.member-sidebar .item .role-badge{flex-shrink:0}.member-sidebar .item .role-badge-owner{color:gold}.member-sidebar .item .role-badge-admin{color:var(--accent)}.settings{display:flex;width:var(--modal-w);max-width:95vw;height:var(--modal-h);background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg)}.settings .sidebar{width:220px;background:var(--bg-surface);padding:var(--space-lg) var(--space-sm);display:flex;flex-direction:column;gap:2px;flex-shrink:0;border-right:1px solid var(--border)}.settings .sidebar .title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);padding:var(--space-sm) var(--space-md)}.settings .sidebar .tab{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--fg-2);transition:background var(--fast),color var(--fast),box-shadow var(--fast);width:100%;text-align:left}.settings .sidebar .tab:hover{background:var(--bg-raised);color:var(--fg)}.settings .sidebar .tab.active{background:var(--accent-soft);color:var(--fg);box-shadow:var(--glow-soft)}.settings .sidebar .tab.danger{color:var(--fg-danger)}.settings .sidebar .tab.danger:hover{background:#dc26261a}.settings .sidebar .divider{height:1px;background:var(--border);margin:var(--space-sm) var(--space-md)}.settings .content{flex:1;padding:var(--space-xl);overflow-y:auto}.settings .content .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.settings .content .header h2{font-size:var(--text-xl);font-weight:600}.settings .content .section{margin-bottom:var(--space-xl)}.settings .content .section .title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);margin-bottom:var(--space-md)}.settings .content .field{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) 0;border-bottom:1px solid var(--border)}.settings .content .field:last-child{border-bottom:none}.settings .content .field .label{font-size:var(--text-sm);color:var(--fg)}.settings .content .field-value{font-size:var(--text-sm);color:var(--fg-2);margin-bottom:var(--space-sm)}.settings .content .row{display:flex;gap:var(--space-sm);align-items:center}.settings .content .row .input{flex:1}.settings .content .stack{display:flex;flex-direction:column;gap:var(--space-sm)}.settings .content .input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--fg);transition:border-color var(--fast),box-shadow var(--fast)}.settings .content .input:focus{border-color:var(--accent);box-shadow:var(--glow-soft)}.settings .content .input::placeholder{color:var(--fg-3)}.settings .content .error{font-size:var(--text-xs);color:var(--fg-danger);margin-top:var(--space-xs)}.settings .content .success{font-size:var(--text-xs);color:var(--fg-success);margin-top:var(--space-xs)}.settings .content .actions{display:flex;gap:var(--space-sm);align-items:center;justify-content:flex-end;margin-top:var(--space-sm)}.settings .content .btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--r-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background var(--fast),box-shadow var(--fast);white-space:nowrap;flex-shrink:0}.settings .content .btn-primary{background:var(--accent);color:#fff}.settings .content .btn-primary:hover{background:var(--accent-hover);box-shadow:var(--glow)}.settings .content .btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.settings .content .btn-ghost{background:var(--bg-raised);color:var(--fg-2)}.settings .content .btn-ghost:hover{background:var(--bg-hover);color:var(--fg)}.settings .content .btn-danger{background:var(--danger);color:#fff}.settings .content .btn-danger:hover{background:var(--danger-hover)}.settings .content .btn-danger:disabled{opacity:.4;cursor:not-allowed}.settings .content .dropdown{position:relative;width:100%}.settings .content .dropdown .trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--fg);cursor:pointer;transition:border-color var(--fast),box-shadow var(--fast)}.settings .content .dropdown .trigger:hover{border-color:var(--fg-3)}.settings .content .dropdown .trigger svg{color:var(--fg-3);transition:transform var(--fast),color var(--fast);flex-shrink:0}.settings .content .dropdown.open .trigger{border-color:var(--accent);box-shadow:var(--glow-soft)}.settings .content .dropdown.open .trigger svg{transform:rotate(180deg);color:var(--accent)}.settings .content .dropdown .menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--space-xs);z-index:10;box-shadow:var(--shadow-md)}.settings .content .dropdown .menu .item{width:100%;text-align:left;padding:var(--space-sm) var(--space-md);border-radius:calc(var(--r-md) - 2px);font-size:var(--text-sm);color:var(--fg-2);cursor:pointer;transition:background var(--fast),color var(--fast)}.settings .content .dropdown .menu .item:hover{background:var(--bg-hover);color:var(--fg)}.settings .content .dropdown .menu .item.active{background:var(--accent-soft);color:var(--fg)}.settings .content .toggle{position:relative;width:40px;height:22px;background:var(--bg-active);border-radius:var(--r-full);cursor:pointer;transition:background var(--fast);flex-shrink:0}.settings .content .toggle.on{background:var(--accent)}.settings .content .toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:var(--r-full);transition:transform var(--fast)}.settings .content .toggle.on:after{transform:translate(18px)}.settings .content .theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.settings .content .theme-grid .card{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);border:2px solid var(--border);border-radius:var(--r-lg);cursor:pointer;transition:border-color var(--fast),box-shadow var(--fast)}.settings .content .theme-grid .card:hover{border-color:var(--fg-3)}.settings .content .theme-grid .card:hover .swatch{transform:scale(1.08);box-shadow:0 4px 16px #0006}.settings .content .theme-grid .card.active{border-color:var(--accent);box-shadow:var(--glow-soft)}.settings .content .theme-grid .card.active .swatch{transform:scale(1.08);box-shadow:0 4px 16px #0006}.settings .content .theme-grid .card .swatch{width:44px;height:44px;border-radius:var(--r-full);flex-shrink:0;box-shadow:0 2px 8px #0000004d;transition:transform var(--fast),box-shadow var(--fast)}.settings .content .theme-grid .card .label{font-size:var(--text-xs);color:var(--fg-2);text-align:center}.settings .content textarea{width:100%;min-height:120px;padding:var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--text-sm);color:var(--fg);resize:vertical;transition:border-color var(--fast),box-shadow var(--fast)}.settings .content textarea:focus{border-color:var(--accent);box-shadow:var(--glow-soft)}.settings .content textarea::placeholder{color:var(--fg-3)}.settings .content .danger-zone{padding:var(--space-lg);border:1px solid var(--danger);border-radius:var(--r-lg);background:#dc26260d}.settings .content .danger-zone .title{color:var(--fg-danger)}.settings .content .coming-soon{font-size:var(--text-sm);color:var(--fg-3);padding:var(--space-md) 0}@media(max-width:768px){.settings{flex-direction:column}.settings .sidebar{width:100%;flex-direction:row;align-items:center;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);padding:var(--space-sm) var(--space-md);gap:var(--space-xs);scrollbar-width:none}.settings .sidebar::-webkit-scrollbar{display:none}.settings .sidebar .title,.settings .sidebar .divider{display:none}.settings .sidebar .tab{white-space:nowrap;flex-shrink:0;padding:var(--space-xs) var(--space-md);border-radius:var(--r-full)}.settings .content{padding:var(--space-lg)}}.dm-sidebar{width:var(--sidebar-channel);background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border)}.dm-sidebar .header{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 6px 0 var(--space-lg);border-bottom:1px solid var(--border);flex-shrink:0}.dm-sidebar .header .title{font-weight:600;font-size:var(--text-base)}.dm-sidebar .header .compose{width:28px;height:28px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:var(--fg-3);transition:color var(--fast),background var(--fast)}.dm-sidebar .header .compose:hover{color:var(--fg);background:var(--bg-raised)}.dm-sidebar .search{padding:var(--space-sm);border-bottom:1px solid var(--border)}.dm-sidebar .search .input-wrap{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border-radius:var(--r-md);border:1px solid var(--border);transition:border-color var(--fast),box-shadow var(--fast)}.dm-sidebar .search .input-wrap:focus-within{border-color:var(--accent);box-shadow:var(--glow-soft)}.dm-sidebar .search .input-wrap .icon{color:var(--fg-3);flex-shrink:0}.dm-sidebar .search .input-wrap input{flex:1;font-size:var(--text-sm);background:none;border:none;color:var(--fg);outline:none}.dm-sidebar .search .input-wrap input::placeholder{color:var(--fg-3)}.dm-sidebar .search .results{margin-top:var(--space-xs);max-height:200px;overflow-y:auto}.dm-sidebar .search .result{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);border-radius:var(--r-md);transition:background var(--fast)}.dm-sidebar .search .result:hover{background:var(--bg-raised)}.dm-sidebar .search .result .avatar{width:28px;height:28px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-xs);font-weight:600;flex-shrink:0;overflow:hidden}.dm-sidebar .search .result .avatar img{width:100%;height:100%;object-fit:cover}.dm-sidebar .search .result .name{font-size:var(--text-sm);font-weight:500}.dm-sidebar .search .loading{padding:var(--space-sm);font-size:var(--text-xs);color:var(--fg-3);text-align:center}.dm-sidebar .list{flex:1;overflow-y:auto;padding:var(--space-xs)}.dm-sidebar .item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm);border-radius:var(--r-md);transition:background var(--fast),outline-color var(--fast),box-shadow var(--fast);outline:1.5px solid transparent;outline-offset:-1.5px}.dm-sidebar .item:hover{background:var(--bg-raised)}.dm-sidebar .item.active{background:var(--accent-soft);outline-color:var(--accent);box-shadow:var(--glow-soft)}.dm-sidebar .item.unread .info .name{font-weight:700;color:var(--fg)}.dm-sidebar .item.unread .info .preview{color:var(--fg-2)}.dm-sidebar .item .avatar{width:36px;height:36px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-sm);font-weight:600;flex-shrink:0;overflow:hidden;cursor:pointer}.dm-sidebar .item .avatar img{width:100%;height:100%;object-fit:cover}.dm-sidebar .item .info{flex:1;min-width:0;text-align:left}.dm-sidebar .item .info .name{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-sidebar .item .info .preview{font-size:var(--text-xs);color:var(--fg-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-sidebar .item .time{font-size:var(--text-xs);color:var(--fg-3);flex-shrink:0;align-self:flex-start;margin-top:2px}.dm-sidebar .empty{padding:var(--space-xl);text-align:center;color:var(--fg-3);display:flex;flex-direction:column;align-items:center;gap:var(--space-md);font-size:var(--text-sm)}@media(max-width:768px){.dm-sidebar{position:fixed;top:var(--navbar-h);left:0;right:0;bottom:calc(var(--mobile-bar) + env(safe-area-inset-bottom,0px));width:100%;z-index:40;background:var(--bg);border-right:none}}.dm-call-view{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.dm-call-view .body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:12px;gap:12px}.dm-call-view .body.has-focus{justify-content:flex-start}.dm-call-view .grid{display:grid;gap:12px;place-content:center;width:100%;height:100%}.dm-call-view .grid .tile{width:100%;height:100%;aspect-ratio:unset}.dm-call-view .tile{position:relative;aspect-ratio:16 / 10;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-surface);border:2px solid var(--bg-raised);transition:border-color var(--normal),box-shadow var(--normal);cursor:pointer}.dm-call-view .tile:hover{border-color:var(--bg-active)}.dm-call-view .tile.speaking{border-color:var(--success);box-shadow:var(--glow-success)}.dm-call-view .tile.focused{width:100%;flex:1;min-height:0}.dm-call-view .tile.screen{border-color:var(--border)}.dm-call-view .tile.screen.speaking{border-color:var(--success);box-shadow:var(--glow-success)}.dm-call-view .tile.screen video{object-fit:contain;background:#000}.dm-call-view .tile video{width:100%;height:100%;object-fit:cover}.dm-call-view .tile .tile-avatar{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-surface)}.dm-call-view .tile .tile-avatar span{width:64px;height:64px;border-radius:var(--r-full);background:var(--bg-hover);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:700;color:var(--fg)}.dm-call-view .tile .bar{position:absolute;bottom:0;left:0;right:0;padding:var(--space-xs) var(--space-sm);background:linear-gradient(transparent,#000000b3);display:flex;align-items:center;gap:var(--space-xs)}.dm-call-view .tile .bar .name{font-size:var(--text-sm);font-weight:600;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-call-view .tile .bar .muted{color:var(--fg-danger);flex-shrink:0}.dm-call-view .strip{display:flex;gap:12px;overflow-x:auto;flex-shrink:0;max-width:100%;margin:0 auto}.dm-call-view .strip .tile{width:clamp(120px,15vw,180px);min-width:0;flex-shrink:0;aspect-ratio:16 / 10}.dm-call-view .strip .tile .tile-avatar span{width:36px;height:36px;font-size:var(--text-sm)}.dm-call-view .controls{height:64px;display:flex;align-items:center;justify-content:center;gap:var(--space-md);border-top:1px solid var(--border);flex-shrink:0}.dm-call-view .controls .ctrl-btn{width:44px;height:44px;border-radius:var(--r-full);background:var(--bg-raised);display:flex;align-items:center;justify-content:center;color:var(--fg-2);transition:color var(--fast),background var(--fast)}.dm-call-view .controls .ctrl-btn:hover,.dm-call-view .controls .ctrl-btn.active{background:var(--bg-active);color:var(--fg)}.dm-call-view .controls .ctrl-btn.disconnect{background:var(--danger);color:#fff}.dm-call-view .controls .ctrl-btn.disconnect:hover{background:var(--danger-hover)}@media(max-width:768px){.dm-call-view .controls{height:var(--mobile-bar)}}.dm-view{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-surface)}.dm-view .header{height:48px;display:flex;align-items:center;gap:var(--space-sm);padding:0 6px 0 var(--space-lg);border-bottom:1px solid var(--border);flex-shrink:0;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.dm-view .header .name{font-weight:600;font-size:var(--text-base);flex:1}.dm-view .header .call-btn{width:36px;height:36px;border-radius:var(--r-md);color:var(--fg-3);display:flex;align-items:center;justify-content:center;transition:color var(--fast),background var(--fast)}.dm-view .header .call-btn:hover:not(:disabled){color:var(--fg);background:var(--bg-raised)}.dm-view .header .call-btn:disabled{opacity:.4;cursor:not-allowed}.dm-view .calling{padding:var(--space-md) var(--space-lg);color:var(--fg-3);font-size:var(--text-sm);text-align:center}.emoji-picker{position:absolute;bottom:100%;left:0;width:280px;max-height:300px;overflow-y:auto;background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:var(--space-sm);z-index:100;margin-bottom:var(--space-xs)}.emoji-picker .label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);padding:var(--space-xs) var(--space-xs) 2px;position:sticky;top:0;background:var(--bg-float)}.emoji-picker .grid{display:grid;grid-template-columns:repeat(8,1fr);gap:1px}.emoji-picker .btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:18px;border-radius:var(--r-md);transition:background var(--fast);cursor:pointer}.emoji-picker .btn:hover{background:var(--bg-hover)}@media(max-width:768px){.emoji-picker{width:260px}}.profile{position:relative;width:var(--modal-w);max-width:95vw;height:var(--modal-h);background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-xl);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg),var(--glow-soft)}.profile .banner{height:220px;flex-shrink:0;background:linear-gradient(135deg,var(--accent-soft) 0%,rgba(255,255,255,.02) 50%,var(--accent-soft) 100%);background-size:cover;background-position:center;position:relative}.profile .banner:after{content:"";position:absolute;bottom:0;left:0;right:0;height:100px;background:linear-gradient(to bottom,transparent,var(--bg-float));pointer-events:none}.profile .banner .upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);background:#00000080;color:#fff;font-size:var(--text-sm);opacity:0;transition:opacity var(--fast);cursor:pointer;z-index:1}.profile .banner:hover .upload-overlay{opacity:1}.profile .banner .banner-actions{display:flex;gap:var(--space-lg)}.profile .banner .banner-actions button{display:flex;align-items:center;gap:var(--space-xs);background:transparent;border:none;color:#fff;font-size:var(--text-sm);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--r-sm);transition:background var(--fast)}.profile .banner .banner-actions button:hover{background:#ffffff26}.profile .avatar-section{display:flex;justify-content:center;margin-top:-60px;position:relative;z-index:2}.profile .avatar-lg{width:140px;height:140px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:3.2rem;font-weight:700;border:4px solid var(--accent);overflow:hidden;flex-shrink:0;position:relative;box-shadow:var(--glow-strong),0 8px 32px #00000080;transition:all .3s ease}.profile .avatar-lg img{width:100%;height:100%;object-fit:cover}.profile .avatar-lg .avatar-upload{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;color:#fff;opacity:0;transition:opacity var(--fast);cursor:pointer;border-radius:var(--r-full)}.profile .avatar-lg:hover .avatar-upload{opacity:1}.profile .avatar-lg:hover{box-shadow:var(--glow-strong),0 0 40px #0009;transform:scale(1.03)}.profile .avatar-remove{position:absolute;bottom:0;left:50%;transform:translate(30px);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);background:var(--bg-raised);border:2px solid var(--border);color:var(--fg-3);cursor:pointer;z-index:3;transition:all var(--fast)}.profile .avatar-remove:hover{color:var(--danger);border-color:var(--danger);background:#ff50501a}.profile .hero{display:flex;flex-direction:column;align-items:center;padding:var(--space-lg) var(--space-xl) var(--space-md);text-align:center;position:relative;flex-shrink:0}.profile .hero h2{font-family:var(--font-logo);font-size:2.2rem;font-weight:700;line-height:1.2;max-width:600px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-bottom:4px;border-bottom:1px solid transparent}.profile .edit-name{font-family:var(--font-logo);font-size:2.2rem;font-weight:700;line-height:1.2;text-align:center;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--fg);width:600px;max-width:90%;padding:0 0 4px;outline:none;transition:border-color var(--fast)}.profile .edit-name:focus{border-color:var(--accent)}.profile .edit-name::placeholder{color:var(--fg-3)}.profile .status{display:inline-flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);padding:3px var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-full);box-shadow:0 2px 12px #0003,var(--glow-soft);min-height:40px;transition:border-color var(--fast)}.profile .status:has(.emoji),.profile .status:has(.emoji-wrap){padding-left:3px}.profile .status:has(.status-input){width:600px;max-width:90%}.profile .status:focus-within{border-color:var(--accent)}.profile .status .emoji{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-full);background:var(--accent-soft);font-size:1.1rem;flex-shrink:0}.profile .status .text{font-size:var(--text-sm);color:var(--fg);max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--space-xs)}.profile .status .emoji-wrap{position:relative;flex-shrink:0}.profile .status .emoji-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);background:var(--accent-soft);cursor:pointer;font-size:1.1rem;border:none;transition:all var(--fast)}.profile .status .emoji-btn:hover{background:var(--accent)}.profile .status .emoji-btn.empty{color:var(--fg-3)}.profile .status .status-input{background:transparent;border:none;color:var(--fg);font-size:var(--text-sm);outline:none;flex:1;min-width:0;padding:0 var(--space-xs)}.profile .status .status-input::placeholder{color:var(--fg-3)}.profile .status .status-clear{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);color:var(--fg-3);background:transparent;flex-shrink:0;transition:all var(--fast)}.profile .status .status-clear:hover{color:var(--danger);background:#ff50501a}.profile .meta{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-top:var(--space-lg);width:600px;max-width:90%}.profile .meta-field{display:inline-flex;align-items:center;gap:4px;color:var(--fg-3)}.profile .meta-field:has(input){flex:1;min-width:0}.profile .meta-field svg{flex-shrink:0;opacity:.7}.profile .meta-field span{padding:2px 0;border-bottom:1px solid transparent;font-size:var(--text-xs);color:var(--fg-3);max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile .meta-field a{padding:2px 0;border-bottom:1px solid transparent;font-size:var(--text-xs);color:var(--accent);text-decoration:none;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:opacity var(--fast)}.profile .meta-field a:hover{opacity:.8}.profile .meta-field input{background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--fg-3);font-size:var(--text-xs);outline:none;width:100%;padding:2px 0;transition:border-color var(--fast),color var(--fast)}.profile .meta-field input:focus{border-color:var(--accent);color:var(--fg)}.profile .meta-field input::placeholder{color:var(--fg-3);opacity:.5}.profile .meta-dot{color:var(--fg-3);font-size:var(--text-xs);opacity:.5}.profile .body{display:flex;flex-direction:column;align-items:center;gap:var(--space-xl);padding:var(--space-md) var(--space-xl) var(--space-xl);flex:1;overflow-y:auto;min-height:0}.profile .bio-text{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--space-md) var(--space-lg);font-size:var(--text-sm);color:var(--fg-2);line-height:1.6;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;text-align:center;box-shadow:0 2px 12px #0003,var(--glow-soft);max-width:600px}.profile .bio-wrap{position:relative;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--space-md) var(--space-lg);box-shadow:0 2px 12px #0003,var(--glow-soft);width:600px;max-width:100%;transition:border-color var(--fast)}.profile .bio-wrap:focus-within{border-color:var(--accent)}.profile .bio-edit{display:block;background:transparent;border:none;font-size:var(--text-sm);color:var(--fg-2);line-height:1.6;width:100%;min-height:1.6em;max-height:200px;overflow-y:auto;font-family:var(--font);resize:none;outline:none;text-align:center;padding-bottom:var(--space-lg)}.profile .bio-edit::placeholder{color:var(--fg-3)}.profile .bio-counter{position:absolute;bottom:var(--space-sm);right:var(--space-md);font-size:var(--text-xs);color:var(--fg-3);pointer-events:none}.profile .connections-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);max-width:600px}.profile .connections-grid .badge{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-full);font-size:var(--text-xs);color:var(--fg-2);text-decoration:none;transition:all .2s ease}.profile .connections-grid .badge:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.profile .connections-grid .badge span{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile .connections-grid .badge.github{border-color:#ffffff1f}.profile .connections-grid .badge.x{border-color:#1da1f22e}.profile .connections-grid .badge.instagram{border-color:#e1306c2e}.profile .connections-grid .badge.youtube{border-color:#ff000026}.profile .connections-grid .badge.tiktok{border-color:#00f2ea26}.profile .connections-grid .badge.linkedin{border-color:#0a66c22e}.profile .connections-grid .badge.facebook{border-color:#1877f22e}.profile .connections-grid .badge.threads{border-color:#ffffff1f}.profile .connections-grid .badge.telegram{border-color:#26a5e42e}.profile .connections-grid .badge.snapchat{border-color:#fffc001f}.profile .connections-grid .badge.pinterest{border-color:#e600232e}.profile .connections-grid .badge.dribbble{border-color:#ea4c892e}.profile .connections-grid .badge.medium{border-color:#ffffff1f}.profile .connections-grid .badge.stackoverflow{border-color:#f480242e}.profile .connections-grid .badge.github:hover{background:#ffffff1f;border-color:#ffffff40;color:#e6edf3}.profile .connections-grid .badge.x:hover{background:#1da1f226;border-color:#1da1f259;color:#1da1f2}.profile .connections-grid .badge.instagram:hover{background:#e1306c26;border-color:#e1306c59;color:#e1306c}.profile .connections-grid .badge.youtube:hover{background:#ff00001f;border-color:#ff00004d;color:#f44}.profile .connections-grid .badge.tiktok:hover{background:#00f2ea1f;border-color:#00f2ea4d;color:#00f2ea}.profile .connections-grid .badge.linkedin:hover{background:#0a66c226;border-color:#0a66c259;color:#0a66c2}.profile .connections-grid .badge.facebook:hover{background:#1877f226;border-color:#1877f259;color:#1877f2}.profile .connections-grid .badge.threads:hover{background:#ffffff1f;border-color:#ffffff40;color:#e6edf3}.profile .connections-grid .badge.telegram:hover{background:#26a5e426;border-color:#26a5e459;color:#26a5e4}.profile .connections-grid .badge.snapchat:hover{background:#fffc001a;border-color:#fffc0040;color:#fffc00}.profile .connections-grid .badge.pinterest:hover{background:#e6002326;border-color:#e6002359;color:#e60023}.profile .connections-grid .badge.dribbble:hover{background:#ea4c8926;border-color:#ea4c8959;color:#ea4c89}.profile .connections-grid .badge.medium:hover{background:#ffffff1f;border-color:#ffffff40;color:#e6edf3}.profile .connections-grid .badge.stackoverflow:hover{background:#f4802426;border-color:#f4802459;color:#f48024}.profile .socials-edit{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);max-width:600px}.profile .social-pill{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 4px 0 var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-full);color:var(--fg-2);transition:border-color var(--fast)}.profile .social-pill:focus-within{border-color:var(--accent)}.profile .social-pill input{background:transparent;border:none;color:var(--fg);font-size:var(--text-xs);outline:none;width:80px;padding:0}.profile .social-pill input::placeholder{color:var(--fg-3)}.profile .social-remove{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);color:var(--fg-3);transition:all var(--fast);flex-shrink:0}.profile .social-remove:hover{color:var(--danger);background:#ff50501a}.profile .social-add-wrap{position:relative}.profile .social-add-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--space-md);border:1px dashed var(--border);border-radius:var(--r-full);color:var(--fg-3);font-size:var(--text-xs);background:transparent;transition:all .2s ease}.profile .social-add-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.profile .social-picker{position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:200px;margin-bottom:4px;background:var(--bg-float);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--space-xs);max-height:200px;overflow-y:auto;z-index:20;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:2px}.profile .social-picker-item{display:flex;align-items:center;gap:var(--space-sm);padding:6px var(--space-sm);border-radius:var(--r-sm);color:var(--fg-2);font-size:var(--text-xs);transition:all var(--fast);background:transparent;width:100%;text-align:left}.profile .social-picker-item:hover{background:var(--accent-soft);color:var(--fg)}.profile .actions{display:flex;justify-content:center;gap:var(--space-sm);margin-top:auto}.profile .profile-footer{flex-shrink:0;text-align:center;padding:var(--space-md) var(--space-xl);font-size:var(--text-xs);color:var(--fg-3);opacity:.5;border-top:1px solid var(--border)}.profile .profile-actions{position:absolute;top:calc(220px + var(--space-md));right:var(--space-md);z-index:10;display:flex;gap:var(--space-xs)}.profile .profile-action{width:36px;height:36px;padding:0;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:var(--fg-3);transition:color var(--fast),background var(--fast)}.profile .profile-action:hover{color:var(--fg);background:var(--bg-raised)}.profile .profile-action.accent{color:var(--accent)}.profile .profile-action.accent:hover{color:#fff;background:var(--accent)}.profile .profile-action:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.profile{width:100vw;height:100vh;max-width:100vw;border-radius:0}.profile .banner{height:140px}.profile .avatar-section{margin-top:-50px}.profile .avatar-lg{width:100px;height:100px;font-size:2.2rem}.profile .hero{padding:var(--space-md)}.profile .hero h2{font-size:1.5rem}.profile .hero .status .text{max-width:180px}.profile .profile-actions{top:calc(140px + var(--space-md))}.profile .edit-name{font-size:1.5rem;width:280px}.profile .meta{flex-direction:column;gap:var(--space-xs);width:280px}.profile .meta .meta-dot{display:none}.profile .body{padding:var(--space-md)}.profile .social-picker{max-height:150px}}.friends{width:var(--modal-narrow-w);max-width:95vw;max-height:80vh;background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.friends .header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-lg) 0}.friends .header h2{font-size:var(--text-xl);font-weight:600}.friends .tabs{display:flex;gap:var(--space-xs);padding:var(--space-md) var(--space-lg)}.friends .tabs .tab{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border-radius:var(--r-md);font-size:var(--text-sm);font-weight:500;color:var(--fg-2);transition:background var(--fast),color var(--fast)}.friends .tabs .tab:hover{background:var(--bg-raised);color:var(--fg)}.friends .tabs .tab.active{background:var(--accent-soft);color:var(--fg)}.friends .tabs .tab .badge{background:var(--danger);color:#fff;font-size:var(--text-xs);padding:0 6px;border-radius:var(--r-full);font-weight:600;min-width:18px;text-align:center;line-height:18px}.friends .content{flex:1;overflow-y:auto;padding:0 var(--space-lg) var(--space-lg)}.friends .list{display:flex;flex-direction:column;gap:2px}.friends .section-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);padding:var(--space-md) var(--space-sm) var(--space-xs)}.friends .item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--r-md);transition:background var(--fast)}.friends .item:hover{background:var(--bg-surface)}.friends .item .avatar{width:36px;height:36px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-sm);font-weight:600;flex-shrink:0;overflow:hidden}.friends .item .avatar img{width:100%;height:100%;object-fit:cover}.friends .item .info{flex:1;min-width:0}.friends .item .name{display:block;font-size:var(--text-sm);font-weight:500}.friends .item .actions{display:flex;gap:var(--space-xs);flex-shrink:0}.friends .item .action-btn{width:32px;height:32px;border-radius:var(--r-md);background:var(--bg-raised);display:flex;align-items:center;justify-content:center;color:var(--fg-2);transition:background var(--fast),color var(--fast)}.friends .item .action-btn:hover{background:var(--bg-hover);color:var(--fg)}.friends .item .action-btn.accept{color:var(--success)}.friends .item .action-btn.accept:hover{background:#22c55e26}.friends .item .action-btn.danger:hover{background:#dc262626;color:var(--fg-danger)}.friends .empty{padding:var(--space-xl);text-align:center;color:var(--fg-3);font-size:var(--text-sm)}.friends .add-form{padding:var(--space-md) 0}.friends .add-form .desc{font-size:var(--text-sm);color:var(--fg-2);margin-bottom:var(--space-md)}.friends .add-form .row{display:flex;gap:var(--space-sm)}.friends .add-form .input-wrap{flex:1;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--fast),box-shadow var(--fast)}.friends .add-form .input-wrap:focus-within{border-color:var(--accent);box-shadow:var(--glow-soft)}.friends .add-form .icon{color:var(--fg-3);flex-shrink:0}.friends .add-form .input{flex:1;background:none;border:none;color:var(--fg);font-size:var(--text-sm);outline:none}.friends .add-form .input::placeholder{color:var(--fg-3)}.friends .add-form .error{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--fg-danger)}.friends .add-form .success{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--fg-success)}.create-profile{position:relative;width:var(--modal-narrow-w);max-width:95vw;background:var(--bg-float);backdrop-filter:var(--blur-heavy);-webkit-backdrop-filter:var(--blur-heavy);border:1px solid var(--border);border-radius:var(--r-xl);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg),var(--glow-soft)}.create-profile .cp-banner{height:140px;flex-shrink:0;background:linear-gradient(135deg,var(--accent-soft) 0%,rgba(255,255,255,.02) 50%,var(--accent-soft) 100%);background-size:cover;background-position:center;position:relative}.create-profile .cp-banner:after{content:"";position:absolute;bottom:0;left:0;right:0;height:60px;background:linear-gradient(to bottom,transparent,var(--bg-float));pointer-events:none}.create-profile .cp-banner .upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);background:#00000080;color:#fff;font-size:var(--text-sm);opacity:0;transition:opacity var(--fast);cursor:pointer;z-index:1}.create-profile .cp-banner:hover .upload-overlay{opacity:1}.create-profile .cp-avatar-section{display:flex;justify-content:center;margin-top:-50px;position:relative;z-index:2}.create-profile .cp-avatar{width:100px;height:100px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.4rem;font-weight:700;border:4px solid var(--accent);overflow:hidden;flex-shrink:0;position:relative;box-shadow:var(--glow-strong),0 8px 32px #00000080;cursor:pointer;transition:all .3s ease}.create-profile .cp-avatar img{width:100%;height:100%;object-fit:cover}.create-profile .cp-avatar .avatar-upload{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;color:#fff;opacity:0;transition:opacity var(--fast);border-radius:var(--r-full)}.create-profile .cp-avatar:hover .avatar-upload{opacity:1}.create-profile .cp-avatar:hover{box-shadow:var(--glow-strong),0 0 40px #0009;transform:scale(1.03)}.create-profile .cp-form{display:flex;flex-direction:column;align-items:center;padding:var(--space-lg) var(--space-xl) var(--space-xl);gap:var(--space-md)}.create-profile .cp-name{font-family:var(--font-logo);font-size:2.2rem;font-weight:700;line-height:1.2;text-align:center;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--fg);width:100%;max-width:380px;padding:0 0 4px;outline:none;transition:border-color var(--fast)}.create-profile .cp-name:focus{border-color:var(--accent)}.create-profile .cp-name::placeholder{color:var(--fg-3)}.create-profile .cp-status{display:inline-flex;align-items:center;gap:var(--space-sm);padding:3px var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-full);box-shadow:0 2px 12px #0003,var(--glow-soft);min-height:40px;width:100%;max-width:380px;transition:border-color var(--fast)}.create-profile .cp-status:has(.emoji-wrap){padding-left:3px}.create-profile .cp-status:focus-within{border-color:var(--accent)}.create-profile .cp-status .emoji-wrap{position:relative;flex-shrink:0}.create-profile .cp-status .emoji-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);background:var(--accent-soft);cursor:pointer;font-size:1.1rem;border:none;transition:all var(--fast)}.create-profile .cp-status .emoji-btn:hover{background:var(--accent)}.create-profile .cp-status .emoji-btn.empty{color:var(--fg-3)}.create-profile .cp-status .status-input{background:transparent;border:none;color:var(--fg);font-size:var(--text-sm);outline:none;flex:1;min-width:0;padding:0 var(--space-xs)}.create-profile .cp-status .status-input::placeholder{color:var(--fg-3)}.create-profile .cp-status .status-clear{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);color:var(--fg-3);background:transparent;flex-shrink:0;transition:all var(--fast)}.create-profile .cp-status .status-clear:hover{color:var(--danger);background:#ff50501a}.create-profile .cp-bio-wrap{position:relative;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--space-md) var(--space-lg);box-shadow:0 2px 12px #0003,var(--glow-soft);width:100%;max-width:380px;transition:border-color var(--fast)}.create-profile .cp-bio-wrap:focus-within{border-color:var(--accent)}.create-profile .cp-bio{display:block;background:transparent;border:none;font-size:var(--text-sm);color:var(--fg-2);line-height:1.6;width:100%;min-height:1.6em;max-height:120px;overflow-y:auto;font-family:var(--font);resize:none;outline:none;text-align:center;padding-bottom:var(--space-lg)}.create-profile .cp-bio::placeholder{color:var(--fg-3)}.create-profile .cp-bio-counter{position:absolute;bottom:var(--space-sm);right:var(--space-md);font-size:var(--text-xs);color:var(--fg-3);pointer-events:none}.create-profile .cp-row{display:flex;align-items:center;gap:4px;width:100%;max-width:380px;color:var(--fg-3)}.create-profile .cp-row svg{flex-shrink:0;opacity:.7}.create-profile .cp-row input{background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--fg-3);font-size:var(--text-xs);outline:none;width:100%;padding:2px 0;transition:border-color var(--fast),color var(--fast)}.create-profile .cp-row input:focus{border-color:var(--accent);color:var(--fg)}.create-profile .cp-row input::placeholder{color:var(--fg-3);opacity:.5}.create-profile .cp-finish{width:100%;max-width:380px;height:44px;background:var(--accent);color:#fff;border:none;border-radius:var(--r-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:opacity var(--fast);margin-top:var(--space-sm)}.create-profile .cp-finish:hover{opacity:.9}.create-profile .cp-finish:disabled{opacity:.4;cursor:not-allowed}.create-profile .cp-skip{background:transparent;border:none;color:var(--fg-3);font-size:var(--text-xs);cursor:pointer;padding:var(--space-xs) var(--space-md);transition:color var(--fast)}.create-profile .cp-skip:hover{color:var(--fg-2)}@media(max-width:768px){.create-profile{width:100vw;max-width:100vw;border-radius:0;height:100vh}.create-profile .cp-form{padding:var(--space-md)}}.club-members-modal{min-width:500px;max-width:600px;max-height:80vh;display:flex;flex-direction:column}.club-members-modal .tabs{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg)}.club-members-modal .tab{padding:var(--space-xs) var(--space-md);border-radius:var(--r-md);font-size:var(--text-sm);font-weight:500;color:var(--fg-3);transition:background var(--fast),color var(--fast)}.club-members-modal .tab:hover{color:var(--fg-2)}.club-members-modal .tab.active{background:var(--accent);color:#fff}.club-members-modal .member-list{flex:1;overflow-y:auto;max-height:50vh}.club-members-modal .group-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);padding:var(--space-sm) 0}.club-members-modal .member-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0}.club-members-modal .member-row .member-avatar{width:36px;height:36px;border-radius:var(--r-full);background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-xs);font-weight:600;flex-shrink:0;overflow:hidden}.club-members-modal .member-row .member-avatar img{width:100%;height:100%;object-fit:cover}.club-members-modal .member-row .member-info{flex:1;overflow:hidden}.club-members-modal .member-row .member-name{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.club-members-modal .member-row .member-joined{font-size:var(--text-xs);color:var(--fg-3)}.club-members-modal .member-row .member-actions{display:flex;gap:var(--space-xs)}.club-members-modal .ban-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0}.club-members-modal .ban-row .ban-info{flex:1;overflow:hidden}.club-members-modal .ban-row .ban-name{font-size:var(--text-sm);font-weight:500}.club-members-modal .ban-row .ban-reason{font-size:var(--text-xs);color:var(--fg-3)}.club-members-modal .inline-badge{display:inline-block;vertical-align:middle;margin-left:4px}.club-members-modal .empty-state{color:var(--fg-3);font-size:var(--text-sm);text-align:center;padding:var(--space-xl) 0}@media(max-width:768px){.club-members-modal{min-width:auto;max-width:100%}}.edit-club-modal .icon-upload{width:80px;height:80px;border-radius:var(--r-full);background:var(--bg-raised);border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0 auto var(--space-lg);overflow:hidden;transition:border-color var(--fast);color:var(--fg-3);font-size:var(--text-lg);font-weight:600}.edit-club-modal .icon-upload:hover{border-color:var(--accent)}.edit-club-modal .icon-upload img{width:100%;height:100%;object-fit:cover}.edit-club-modal .slug-row{display:flex;align-items:center;gap:0;margin-bottom:var(--space-lg)}.edit-club-modal .slug-row .slug-prefix{font-size:var(--text-xs);color:var(--fg-3);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-right:none;border-radius:var(--r-md) 0 0 var(--r-md);white-space:nowrap;line-height:1.5}.edit-club-modal .slug-row .slug-input{flex:1;padding:var(--space-sm) var(--space-md);background:var(--bg-raised);border:1px solid var(--border);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--fg);font-size:var(--text-sm);margin-bottom:0;transition:border-color var(--fast),box-shadow var(--fast)}.edit-club-modal .slug-row .slug-input:focus{border-color:var(--accent);box-shadow:var(--glow-soft)}.edit-club-modal .field-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-3);margin-bottom:var(--space-xs)}.create-channel-modal .type-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-lg);background:var(--bg-surface);border-radius:var(--r-md);padding:3px}.create-channel-modal .type-tab{flex:1;padding:var(--space-md);border:none;background:none;color:var(--fg-2);font-size:var(--text-sm);font-weight:600;cursor:pointer;border-radius:var(--r-sm);transition:all var(--fast)}.create-channel-modal .type-tab.active{background:var(--bg-hover);color:var(--fg)}.incoming-call-overlay{position:fixed;top:0;right:0;z-index:9999;padding:var(--space-lg);pointer-events:none}.incoming-call-overlay .incoming-call{pointer-events:auto;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--space-xl);display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);min-width:240px;box-shadow:0 8px 32px #0006;animation:slide-in .2s ease-out}.incoming-call-overlay .caller-info{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.incoming-call-overlay .caller-avatar{width:64px;height:64px;border-radius:var(--r-full);object-fit:cover}.incoming-call-overlay .caller-avatar.placeholder{background:var(--bg-hover);display:flex;align-items:center;justify-content:center}.incoming-call-overlay .caller-avatar.placeholder span{font-size:var(--text-2xl);font-weight:700;color:var(--fg)}.incoming-call-overlay .caller-name{font-weight:600;font-size:var(--text-base);color:var(--fg)}.incoming-call-overlay .caller-label{font-size:var(--text-sm);color:var(--fg-3)}.incoming-call-overlay .call-actions{display:flex;gap:var(--space-lg)}.incoming-call-overlay .call-btn{width:48px;height:48px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;color:#fff;transition:opacity var(--fast)}.incoming-call-overlay .call-btn:hover{opacity:.85}.incoming-call-overlay .call-btn.accept{background:var(--success)}.incoming-call-overlay .call-btn.reject{background:var(--danger)}@keyframes slide-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.incoming-call-overlay{left:0;right:0;display:flex;justify-content:center}.incoming-call-overlay .incoming-call{min-width:auto;max-width:320px}}.outgoing-call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.outgoing-call-overlay .outgoing-call{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--space-2xl) var(--space-3xl);display:flex;flex-direction:column;align-items:center;gap:var(--space-xl);min-width:280px;box-shadow:0 8px 32px #0006;animation:fade-in .2s ease-out}.outgoing-call-overlay .caller-info{display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.outgoing-call-overlay .caller-avatar{width:80px;height:80px;border-radius:var(--r-full);object-fit:cover;animation:pulse-ring 2s ease-in-out infinite}.outgoing-call-overlay .caller-avatar.placeholder{background:var(--bg-hover);display:flex;align-items:center;justify-content:center}.outgoing-call-overlay .caller-avatar.placeholder span{font-size:var(--text-3xl);font-weight:700;color:var(--fg)}.outgoing-call-overlay .caller-name{font-weight:600;font-size:var(--text-lg);color:var(--fg)}.outgoing-call-overlay .caller-label{font-size:var(--text-sm);color:var(--fg-3);text-align:center}.outgoing-call-overlay .call-actions{display:flex;gap:var(--space-lg)}.outgoing-call-overlay .call-btn{width:52px;height:52px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;color:#fff;transition:opacity var(--fast)}.outgoing-call-overlay .call-btn:hover{opacity:.85}.outgoing-call-overlay .call-btn.reject{background:var(--danger)}@keyframes fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse-ring{0%,to{box-shadow:0 0 #ffffff1a}50%{box-shadow:0 0 0 12px #fff0}}.main-layout{display:flex;flex-direction:column;height:100%;overflow:hidden}.main-layout>.content{display:flex;flex:1;overflow:hidden}.main-layout>.content>.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--fg-3);gap:var(--space-sm);background:var(--bg-surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.main-layout>.content>.empty h2{font-size:var(--text-xl);font-weight:600;color:var(--fg-2)}.loading-screen{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;box-shadow:var(--glow-soft)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.main-layout>.content{padding-bottom:calc(var(--mobile-bar) + env(safe-area-inset-bottom,0px))}}@font-face{font-family:Berkeley Mono;src:url(/fonts/berkeley.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Snah;src:url(/fonts/snah.woff2) format("woff2"),url(/fonts/snah.woff) format("woff");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Ruff Cut Jagged;src:url(/fonts/ruffcut.woff2) format("woff2"),url(/fonts/ruffcut.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Luckybones;src:url(/fonts/luckybones.woff2) format("woff2"),url(/fonts/luckybones.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Illuma;src:url(/fonts/illuma.woff2) format("woff2"),url(/fonts/illuma.woff) format("woff");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Hanken Grotesk;src:url(/fonts/hkgrotesk.woff2) format("woff2"),url(/fonts/hkgrotesk.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Keiner;src:url(/fonts/keiner.woff2) format("woff2"),url(/fonts/keiner.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Jellee;src:url(/fonts/jellee.woff2) format("woff2"),url(/fonts/jellee.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Now;src:url(/fonts/now.woff2) format("woff2"),url(/fonts/now.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #0a0a0f;--bg-surface: rgba(255, 255, 255, .03);--bg-raised: rgba(255, 255, 255, .06);--bg-hover: rgba(255, 255, 255, .08);--bg-active: rgba(255, 255, 255, .12);--bg-float: rgba(15, 15, 25, .9);--bg-overlay: rgba(0, 0, 0, .6);--accent: #FFC72C;--accent-hover: #E5B327;--accent-soft: rgba(255, 199, 44, .15);--danger: #dc2626;--danger-hover: #991b1b;--success: #22c55e;--fg: #f0f0f5;--fg-2: #a0a0b8;--fg-3: #5a5a70;--fg-muted: #3a3a4e;--fg-link: #60a5fa;--fg-danger: #f87171;--fg-success: #4ade80;--border: rgba(255, 255, 255, .08);--blur: blur(20px);--blur-heavy: blur(32px);--glow: 0 0 20px rgba(255, 199, 44, .3);--glow-strong: 0 0 24px rgba(255, 199, 44, .45);--glow-soft: 0 0 12px rgba(255, 199, 44, .15);--glow-success: 0 0 16px rgba(34, 197, 94, .4);--online: #22c55e;--idle: #f0b232;--dnd: #f23f43;--offline: #80848e;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-full: 9999px;--font: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;--font-logo: "Snah", sans-serif;--mono: "Berkeley Mono", "SF Mono", "Fira Code", monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--sidebar-club: 72px;--sidebar-channel: 240px;--sidebar-members: 240px;--navbar-h: 48px;--mobile-bar: 64px;--fast: .15s ease-out;--normal: .25s ease-out;--modal-w: 880px;--modal-h: min(700px, 90vh);--modal-narrow-w: 520px;--shadow-sm: 0 4px 16px rgba(0, 0, 0, .3);--shadow-md: 0 12px 40px rgba(0, 0, 0, .4);--shadow-lg: 0 24px 80px rgba(0, 0, 0, .5)}[data-theme=berkeley]{--accent: #FFC72C;--accent-hover: #E5B327;--accent-soft: rgba(255, 199, 44, .15);--glow: 0 0 20px rgba(255, 199, 44, .3);--glow-strong: 0 0 24px rgba(255, 199, 44, .45);--glow-soft: 0 0 12px rgba(255, 199, 44, .15);--bg: #0B1128;--bg-surface: rgba(255, 199, 44, .04);--bg-raised: rgba(255, 199, 44, .08);--bg-hover: rgba(255, 199, 44, .1);--bg-active: rgba(255, 199, 44, .14)}[data-theme=boulder]{--accent: #5B8C5A;--accent-hover: #4A7349;--accent-soft: rgba(91, 140, 90, .15);--glow: 0 0 20px rgba(91, 140, 90, .3);--glow-strong: 0 0 24px rgba(91, 140, 90, .45);--glow-soft: 0 0 12px rgba(91, 140, 90, .15);--bg: #1A1E16;--bg-surface: rgba(91, 140, 90, .05);--bg-raised: rgba(91, 140, 90, .09);--bg-hover: rgba(91, 140, 90, .12);--bg-active: rgba(91, 140, 90, .16);--bg-float: rgba(26, 30, 22, .95)}[data-theme=charlottesville]{--accent: #F47B20;--accent-hover: #D96A15;--accent-soft: rgba(244, 123, 32, .15);--glow: 0 0 20px rgba(244, 123, 32, .3);--glow-strong: 0 0 24px rgba(244, 123, 32, .45);--glow-soft: 0 0 12px rgba(244, 123, 32, .15);--bg: #0A1628;--bg-surface: rgba(244, 123, 32, .04);--bg-raised: rgba(244, 123, 32, .08);--bg-hover: rgba(244, 123, 32, .1);--bg-active: rgba(244, 123, 32, .14)}[data-theme=houston]{--accent: #C000DE;--accent-hover: #A600C0;--accent-soft: rgba(192, 0, 222, .15);--glow: 0 0 20px rgba(192, 0, 222, .3);--glow-strong: 0 0 24px rgba(192, 0, 222, .45);--glow-soft: 0 0 12px rgba(192, 0, 222, .15)}[data-theme=louisville]{--accent: #DC2626;--accent-hover: #B91C1C;--accent-soft: rgba(220, 38, 38, .15);--glow: 0 0 20px rgba(220, 38, 38, .3);--glow-strong: 0 0 24px rgba(220, 38, 38, .45);--glow-soft: 0 0 12px rgba(220, 38, 38, .15);--bg: #0A0505;--bg-surface: rgba(220, 38, 38, .06);--bg-raised: rgba(220, 38, 38, .1);--bg-hover: rgba(220, 38, 38, .12);--bg-active: rgba(220, 38, 38, .16)}[data-theme=new-orleans]{--accent: #9B59B6;--accent-hover: #8344A0;--accent-soft: rgba(155, 89, 182, .15);--glow: 0 0 20px rgba(155, 89, 182, .3);--glow-strong: 0 0 24px rgba(155, 89, 182, .45);--glow-soft: 0 0 12px rgba(155, 89, 182, .15);--bg: #0E0A14;--bg-surface: rgba(155, 89, 182, .05);--bg-raised: rgba(155, 89, 182, .09);--bg-hover: rgba(155, 89, 182, .11);--bg-active: rgba(155, 89, 182, .15)}[data-theme=seattle]{--accent: #4A9EE8;--accent-hover: #3888D0;--accent-soft: rgba(74, 158, 232, .15);--glow: 0 0 20px rgba(74, 158, 232, .3);--glow-strong: 0 0 24px rgba(74, 158, 232, .45);--glow-soft: 0 0 12px rgba(74, 158, 232, .15);--bg: #0E1A24;--bg-surface: rgba(74, 158, 232, .04);--bg-raised: rgba(74, 158, 232, .08);--bg-hover: rgba(74, 158, 232, .11);--bg-active: rgba(74, 158, 232, .15);--bg-float: rgba(14, 26, 36, .95)}[data-theme=tucson]{--accent: #E07C4C;--accent-hover: #C96A3C;--accent-soft: rgba(224, 124, 76, .15);--glow: 0 0 20px rgba(224, 124, 76, .3);--glow-strong: 0 0 24px rgba(224, 124, 76, .45);--glow-soft: 0 0 12px rgba(224, 124, 76, .15);--bg: #120D0A;--bg-surface: rgba(224, 124, 76, .05);--bg-raised: rgba(224, 124, 76, .09);--bg-hover: rgba(224, 124, 76, .11);--bg-active: rgba(224, 124, 76, .15)}[data-high-contrast=true]{--border: rgba(255, 255, 255, .2);--fg-2: #c0c0d0;--fg-3: #8080a0;--fg-muted: #606080}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font);font-size:var(--text-base);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}a{color:var(--fg-link);text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}input,textarea{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;outline:none}ul,ol{list-style:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--bg-active)}code{font-family:var(--mono);font-size:.875em;background:var(--bg-raised);padding:2px 6px;border-radius:var(--r-sm)}@media(max-width:1024px){.member-sidebar{display:none}}@media(max-width:768px){:root{--sidebar-club: 0px;--sidebar-channel: 0px;--sidebar-members: 0px}.member-sidebar{display:none}.channel-view,.dm-view,.vc-view{position:relative;z-index:41;background:var(--bg);width:100%}.main-layout>.content>.empty{z-index:39}.mobile-back{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--fg-2);border-radius:var(--r-md);flex-shrink:0;transition:color var(--fast),background var(--fast)}.mobile-back:hover{color:var(--fg);background:var(--bg-hover)}.mobile-back:active{background:var(--bg-active)}.navbar,.channel-view .header,.dm-view .header{padding:0 var(--space-sm) 0 var(--space-md)}.settings{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:0}.friends{width:100%;max-width:100%;max-height:100%;border-radius:0}.modal{min-width:auto;max-width:100vw}.login-page .card{max-width:95vw}.message.group-start{margin-top:var(--space-md)}.message{padding:var(--space-xs) var(--space-md) var(--space-xs) 44px}.message .avatar{left:var(--space-sm);width:28px;height:28px;font-size:var(--text-xs)}.message .attachments img{max-width:min(280px,100%);max-height:200px}.msg-input{padding:0 var(--space-sm) var(--space-sm)}.voice-panel{left:0;width:100%}}
