.auth-bg{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);background-image:radial-gradient(ellipse at 60% 20%,rgba(45,126,247,.08) 0%,transparent 60%)}.auth-card{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:14px;padding:40px;width:420px;max-width:95vw;box-shadow:0 20px 60px #00000080}.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:28px}.auth-logo-icon{width:42px;height:42px;background:var(--accent);border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#fff;letter-spacing:-.5px;flex-shrink:0}.auth-logo-name{font-size:20px;font-weight:700}.auth-card h2{font-size:20px;font-weight:700;margin-bottom:4px}.auth-sub{color:var(--text-secondary);margin-bottom:24px;font-size:13px}.auth-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px}.auth-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--red);border-radius:6px;padding:9px 12px;font-size:13px}.auth-switch{margin-top:18px;text-align:center;font-size:13px;color:var(--text-secondary)}.auth-switch button{color:var(--accent);font-weight:600}.auth-switch button:hover{text-decoration:underline}.settings-modal{width:480px;padding:0;gap:0}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.settings-header h3{font-size:16px;font-weight:700}.settings-close{width:28px;height:28px;border-radius:6px;color:var(--text-muted);font-size:14px;display:flex;align-items:center;justify-content:center;transition:background .1s,color .1s}.settings-close:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-body{padding:20px 24px;display:flex;flex-direction:column;gap:20px}.settings-section{display:flex;flex-direction:column;gap:8px}.settings-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary)}.device-row{display:flex;gap:8px;align-items:center}.device-row select{flex:1;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;padding:9px 32px 9px 12px;font-size:13px;color:var(--text-primary);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238899aa' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .15s}.device-row select:focus{outline:none;border-color:var(--accent)}.device-row select option{background:var(--bg-tertiary)}.test-btn{padding:8px 14px;border-radius:7px;background:var(--bg-hover);border:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text-secondary);white-space:nowrap;transition:all .15s;flex-shrink:0}.test-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.test-btn.active{background:#ef444426;border-color:var(--red);color:var(--red)}.mic-test-area{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border)}.level-label{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.level-meter{display:flex;gap:3px;align-items:flex-end;height:28px}.level-bar{flex:1;height:100%;border-radius:2px;transition:background .05s}.test-hint{font-size:12px;color:var(--text-muted);padding:6px 10px;background:var(--bg-secondary);border-radius:6px;border-left:2px solid var(--red)}.test-hint.playing{border-left-color:var(--accent);color:var(--accent)}.unsupported-note{font-size:12px;color:var(--text-muted);padding:10px 12px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);line-height:1.5}.settings-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border)}.topnav{height:var(--topnav-h);background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 12px;gap:4px;flex-shrink:0;position:relative;z-index:50;overflow:visible;-webkit-app-region:drag}.topnav.is-electron{padding-right:0}.topnav-logo{display:flex;align-items:center;gap:8px;padding:0 8px;-webkit-app-region:no-drag;flex-shrink:0}.logo-mark{width:32px;height:32px;background:var(--accent);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff;letter-spacing:-.5px}.logo-name{font-weight:700;font-size:15px;color:var(--text-primary)}.topnav-divider{width:1px;height:24px;background:var(--border-light);margin:0 8px;flex-shrink:0}.topnav-servers{display:flex;align-items:center;gap:2px;-webkit-app-region:no-drag;overflow-x:auto;flex-shrink:1;min-width:0}.topnav-servers::-webkit-scrollbar{display:none}.server-tab{padding:6px 14px;border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary);white-space:nowrap;transition:background .15s,color .15s;flex-shrink:0}.server-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.server-tab.active{background:var(--accent-dim);color:var(--accent);font-weight:600;box-shadow:inset 0 0 0 1px var(--accent-glow)}.server-tab.add-tab{color:var(--accent);border:1px dashed var(--accent-glow)}.server-tab.add-tab:hover{background:var(--accent-dim);border-color:var(--accent)}.add-server-wrap{position:relative;flex-shrink:0}.topnav-dropdown{position:absolute;top:calc(100% + 10px);left:0;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:10px;padding:8px;min-width:220px;display:flex;flex-direction:column;gap:4px;box-shadow:0 8px 32px #00000080;z-index:200}.topnav-dropdown label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);padding:4px 8px 0}.topnav-dropdown input{padding:8px 10px;font-size:13px;margin:0}.topnav-dropdown button{padding:9px 12px;border-radius:6px;font-size:13px;text-align:left;color:var(--text-primary);transition:background .1s}.topnav-dropdown button:hover{background:var(--bg-hover)}.topnav-dropdown button.cancel{color:var(--text-secondary)}.topnav-dropdown button.confirm{background:var(--accent);color:#fff;font-weight:600}.topnav-dropdown button.confirm:hover{background:var(--accent-hover)}.topnav-dropdown button.confirm:disabled{opacity:.5;cursor:not-allowed}.topnav-dropdown button.danger{color:var(--red)}.topnav-dropdown button.danger:hover{background:#ef44441a}.dd-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:4px}.dd-error{font-size:12px;color:var(--red);padding:2px 8px}.user-dropdown{right:0;left:auto;min-width:200px}.dd-profile{display:flex;align-items:center;gap:10px;padding:8px;border-radius:6px}.dd-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0}.dd-username{font-weight:600;font-size:14px}.dd-email{font-size:12px;color:var(--text-muted)}.dd-sep{height:1px;background:var(--border);margin:4px 0}.topnav-icon-btn{width:32px;height:32px;border-radius:8px;font-size:16px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0;-webkit-app-region:no-drag}.topnav-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.topnav-user{position:relative;-webkit-app-region:no-drag;flex-shrink:0}.user-chip{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border-radius:8px;cursor:pointer;transition:background .15s}.user-chip:hover{background:var(--bg-hover)}.user-chip-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.user-chip-name{font-size:13px;font-weight:600}.user-chip-arrow{font-size:10px;color:var(--text-muted)}.titlebar-controls{display:flex;align-items:center;height:var(--topnav-h);margin-left:8px;-webkit-app-region:no-drag}.titlebar-controls button{width:46px;height:100%;font-size:12px;color:var(--text-secondary);transition:background .1s,color .1s}.titlebar-controls button:hover{background:var(--bg-hover);color:var(--text-primary)}.titlebar-controls button.close:hover{background:var(--red);color:#fff}.dm-tab{position:relative;display:flex;align-items:center;gap:6px;flex-shrink:0}.dm-tab-badge{background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;min-width:16px;text-align:center}.avatar-upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:0;transition:opacity .15s}.dd-avatar:hover .avatar-upload-overlay{opacity:1}.voicebar{background:var(--bg-secondary);border-top:1px solid var(--border);padding:10px;flex-shrink:0;display:flex;flex-direction:column;gap:8px}.vb-status{display:flex;align-items:center;gap:8px}.vb-signal{display:flex;align-items:flex-end;gap:2px;height:16px;flex-shrink:0}.vb-signal span{width:3px;border-radius:2px;background:var(--text-muted);transition:background .2s,height .2s}.vb-signal span:nth-child(1){height:6px}.vb-signal span:nth-child(2){height:10px}.vb-signal span:nth-child(3){height:14px}.vb-signal.active span{background:var(--green);animation:pulse-bar .6s ease-in-out infinite alternate}.vb-signal.active span:nth-child(2){animation-delay:.15s}.vb-signal.active span:nth-child(3){animation-delay:.3s}@keyframes pulse-bar{0%{opacity:.6}to{opacity:1;transform:scaleY(1.2)}}.vb-info{flex:1;display:flex;flex-direction:column;min-width:0}.vb-channel{font-size:12px;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vb-connected{font-size:11px;color:var(--green)}.vb-controls{display:flex;gap:4px}.vb-btn{flex:1;height:32px;border-radius:6px;background:var(--bg-hover);font-size:14px;transition:background .15s;display:flex;align-items:center;justify-content:center}.vb-btn:hover{background:var(--bg-active)}.vb-btn.active-red{background:#ef444433;color:var(--red)}.vb-btn.leave{background:#ef444426;color:var(--red)}.vb-btn.leave:hover{background:var(--red);color:#fff}.vb-peers{display:flex;flex-direction:column;gap:3px;padding-top:4px;border-top:1px solid var(--border)}.vb-peer{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:5px;transition:background .15s}.vb-peer.speaking{background:#22c55e14}.vb-peer-avatar{width:22px;height:22px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;transition:box-shadow .2s}.vb-peer.speaking .vb-peer-avatar{box-shadow:0 0 0 2px var(--green)}.vb-peer-name{font-size:12px;color:var(--text-secondary)}.vb-peer.speaking .vb-peer-name{color:var(--text-primary)}.sidebar{width:var(--sidebar-w);background:var(--bg-tertiary);display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border);overflow:hidden}.sidebar-header{height:48px;display:flex;align-items:center;padding:0 14px;border-bottom:1px solid var(--border);flex-shrink:0;gap:8px}.sidebar-server-name{font-weight:700;font-size:14px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-btn{font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-glow);border-radius:5px;padding:3px 8px;white-space:nowrap;transition:background .15s,border-color .15s;flex-shrink:0}.invite-btn:hover{background:var(--accent-glow);border-color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:500;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:14px;padding:28px;width:400px;max-width:95vw;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px #0009}.modal h3{font-size:17px;font-weight:700}.modal p{font-size:13px;color:var(--text-secondary);line-height:1.5}.invite-code-row{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;padding:4px 4px 4px 14px}.invite-code{flex:1;font-family:monospace;font-size:18px;font-weight:700;letter-spacing:2px;color:var(--accent);-webkit-user-select:text;user-select:text}.copy-btn{padding:7px 16px;border-radius:6px;background:var(--accent);color:#fff;font-size:13px;font-weight:600;transition:background .15s;flex-shrink:0}.copy-btn:hover{background:var(--accent-hover)}.copy-btn.copied{background:var(--green)}.invite-hint{font-size:12px;color:var(--text-muted);background:var(--bg-secondary);border-radius:6px;padding:8px 12px}.modal-close{align-self:flex-end;padding:8px 20px;border-radius:8px;background:var(--bg-hover);font-size:13px;font-weight:600;transition:background .15s}.modal-close:hover{background:var(--bg-active)}.sidebar-channels{flex:1;overflow-y:auto;padding:8px 0}.sidebar-empty{padding:20px 14px;color:var(--text-muted);font-size:13px}.category{margin-top:8px}.category-row{display:flex;align-items:center;padding:0 6px 0 10px;margin-bottom:2px}.category-header{display:flex;align-items:center;gap:5px;flex:1;padding:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted);border-radius:4px;transition:color .1s}.category-header:hover{color:var(--text-secondary)}.category-arrow{font-size:8px;transition:transform .2s}.category-arrow.collapsed{transform:rotate(-90deg)}.cat-add-btn{width:18px;height:18px;color:var(--text-muted);font-size:15px;border-radius:4px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color .1s}.cat-add-btn:hover{color:var(--text-primary)}.channel-item-wrap{display:flex;align-items:center;margin:1px 6px;border-radius:6px;transition:background .1s}.channel-item-wrap:hover{background:var(--bg-hover)}.channel-item-wrap.active{background:var(--bg-active)}.channel-item{display:flex;align-items:center;gap:7px;flex:1;padding:5px 8px;color:var(--text-muted);font-size:13px;transition:color .1s}.channel-item-wrap:hover .channel-item,.channel-item-wrap.active .channel-item{color:var(--text-primary)}.channel-icon{font-size:15px;width:18px;text-align:center;flex-shrink:0;color:var(--text-muted)}.channel-item-wrap.active .channel-icon{color:var(--accent)}.channel-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.channel-item-wrap.active .channel-name{font-weight:600}.channel-item-wrap.in-voice .channel-icon,.channel-item-wrap.in-voice .channel-name{color:var(--green)}.voice-count{font-size:10px;background:var(--bg-active);border-radius:10px;padding:1px 5px;color:var(--text-muted);flex-shrink:0}.voice-presence{padding:2px 0 4px 28px;display:flex;flex-direction:column;gap:2px}.vp-user{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted);padding:2px 0}.vp-avatar{width:18px;height:18px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}.channel-delete-btn{width:20px;height:20px;border-radius:4px;font-size:11px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;margin-right:4px;transition:background .1s,color .1s}.channel-delete-btn:hover{background:#ef444426;color:var(--red)}.add-channel-btn{width:calc(100% - 12px);margin:2px 6px;padding:5px 8px;text-align:left;font-size:12px;color:var(--text-muted);border-radius:6px;transition:background .1s,color .1s}.add-channel-btn:hover{background:var(--bg-hover);color:var(--accent)}.new-channel-form{margin:4px 6px;padding:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:8px}.new-channel-form input{padding:6px 10px;font-size:13px}.chan-type-row{display:flex;gap:4px}.type-btn{flex:1;padding:5px;border-radius:5px;font-size:12px;background:var(--bg-hover);color:var(--text-secondary);transition:background .1s}.type-btn.active{background:var(--accent);color:#fff;font-weight:600}.new-chan-actions{display:flex;gap:6px;justify-content:flex-end}.sidebar-members{border-top:1px solid var(--border);padding:8px 0;max-height:220px;overflow-y:auto;flex-shrink:0}.members-header{padding:4px 14px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.member-item{display:flex;align-items:center;gap:8px;padding:4px 10px;margin:1px 4px;border-radius:6px;transition:background .1s}.member-item:hover{background:var(--bg-hover)}.member-avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;position:relative;flex-shrink:0;overflow:visible}.member-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.member-status{position:absolute;bottom:-1px;right:-1px;width:9px;height:9px;border-radius:50%;border:2px solid var(--bg-tertiary)}.member-name{font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.sidebar-user{height:50px;background:var(--bg-secondary);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 10px;gap:8px;flex-shrink:0}.su-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;position:relative}.su-status{position:absolute;bottom:-1px;right:-1px;width:9px;height:9px;border-radius:50%;background:var(--green);border:2px solid var(--bg-secondary)}.su-info{flex:1;overflow:hidden}.su-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.su-tag{font-size:11px;color:var(--text-muted)}.ch-unread-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;flex-shrink:0;min-width:16px;text-align:center}.member-item{cursor:pointer;width:100%;text-align:left}.dm-sidebar{width:var(--sidebar-w);background:var(--bg-tertiary);display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border);overflow:hidden}.dm-sidebar-header{height:48px;display:flex;align-items:center;padding:0 14px;border-bottom:1px solid var(--border);flex-shrink:0}.dm-sidebar-title{font-weight:700;font-size:14px}.dm-list{flex:1;overflow-y:auto;padding:6px 0}.dm-empty{padding:20px 14px;color:var(--text-muted);font-size:12px;line-height:1.6;text-align:center}.dm-item{display:flex;align-items:center;gap:10px;width:100%;padding:6px 10px;margin:1px 4px;border-radius:8px;width:calc(100% - 8px);transition:background .1s}.dm-item:hover{background:var(--bg-hover)}.dm-item.active{background:var(--bg-active)}.dm-item-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;position:relative;overflow:visible}.dm-item-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.dm-status-dot{position:absolute;bottom:0;right:0;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg-tertiary)}.dm-status-dot.status-online{background:var(--green)}.dm-status-dot.status-away{background:#eab308}.dm-status-dot.status-dnd{background:var(--red)}.dm-status-dot.status-offline{background:var(--text-muted)}.dm-item-info{flex:1;min-width:0;text-align:left;display:flex;flex-direction:column;gap:1px}.dm-item-name{font-size:13px;font-weight:600;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-item.active .dm-item-name{color:var(--text-primary)}.dm-item-preview{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-unread-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;flex-shrink:0;min-width:16px;text-align:center}.chat-area{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.chat-header{height:48px;display:flex;align-items:center;gap:8px;padding:0 20px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-primary)}.chat-hash{font-size:18px;font-weight:700;color:var(--accent)}.chat-channel-name{font-weight:700;font-size:15px}.chat-topic{font-size:13px;color:var(--text-muted);margin-left:10px;padding-left:12px;border-left:1px solid var(--border-light)}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#2d7ef714;border:2px dashed var(--accent);border-radius:8px;z-index:50;display:flex;align-items:center;justify-content:center;pointer-events:none}.drop-box{background:var(--bg-tertiary);border:1px solid var(--accent);padding:20px 36px;border-radius:10px;font-size:16px;font-weight:600;color:var(--accent)}.chat-messages{flex:1;overflow-y:auto;padding:12px 0 4px;display:flex;flex-direction:column}.chat-loading,.load-more-spinner{display:flex;justify-content:center;padding:16px}.channel-start{padding:20px 20px 12px;margin-bottom:8px}.channel-start h3{font-size:20px;font-weight:800;color:var(--text-primary);margin-bottom:4px}.channel-start h3 span{color:var(--accent)}.channel-start p{color:var(--text-secondary);font-size:13px}.date-divider{display:flex;align-items:center;padding:12px 20px 6px;gap:10px;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.date-divider:before,.date-divider:after{content:"";flex:1;height:1px;background:var(--border)}.message{display:flex;gap:10px;padding:3px 20px;position:relative}.message:hover{background:#ffffff04}.message:hover .msg-actions{opacity:1;pointer-events:all}.message.grouped{padding-top:1px;padding-bottom:1px}.msg-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;margin-top:2px;overflow:hidden}.msg-avatar img{width:100%;height:100%;object-fit:cover}.msg-avatar-placeholder{width:36px;flex-shrink:0}.msg-body{flex:1;min-width:0}.msg-header{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.msg-author{font-weight:700;font-size:14px;color:var(--accent)}.msg-time{font-size:11px;color:var(--text-muted)}.msg-time-hover{position:absolute;left:24px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--text-muted);opacity:0;pointer-events:none;width:32px;text-align:right}.message:hover .msg-time-hover{opacity:1}.msg-content{font-size:14px;line-height:1.5;word-break:break-word;white-space:pre-wrap;-webkit-user-select:text;user-select:text;color:var(--text-primary)}.edited-tag{font-size:10px;color:var(--text-muted);margin-left:4px}.msg-image{max-width:360px;max-height:260px;border-radius:8px;margin-top:6px;display:block;cursor:pointer;border:1px solid var(--border)}.msg-file{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--accent);font-size:13px;max-width:300px;transition:border-color .15s}.msg-file:hover{border-color:var(--accent)}.msg-actions{position:absolute;right:16px;top:-14px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:6px;display:flex;gap:1px;padding:3px;opacity:0;pointer-events:none;transition:opacity .1s;z-index:10;box-shadow:0 2px 8px #0000004d}.msg-actions button{width:28px;height:26px;border-radius:4px;font-size:13px;display:flex;align-items:center;justify-content:center;transition:background .1s}.msg-actions button:hover{background:var(--bg-hover)}.msg-actions button.danger:hover{background:#ef444426}.edit-box{display:flex;flex-direction:column;gap:4px;margin-top:2px}.edit-box textarea{resize:none;min-height:56px;background:var(--bg-secondary);border-color:var(--accent);border-radius:6px;padding:8px 10px;font-size:14px;line-height:1.5}.edit-actions{font-size:12px;color:var(--text-muted);display:flex;gap:12px}.edit-actions button{color:var(--accent);font-size:12px}.edit-actions button:hover{text-decoration:underline}.typing-indicator{height:22px;display:flex;align-items:center;gap:6px;padding:0 20px;font-size:12px;color:var(--text-secondary);flex-shrink:0}.typing-dots{display:flex;gap:3px;align-items:center}.typing-dots span{width:4px;height:4px;background:var(--text-muted);border-radius:50%;animation:bounce 1.2s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.chat-input-area{display:flex;align-items:center;gap:8px;padding:0 16px 16px;flex-shrink:0}.upload-btn{width:36px;height:36px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);font-size:20px;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s;flex-shrink:0}.upload-btn:hover{border-color:var(--accent);color:var(--accent)}.chat-input-area input{flex:1;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;padding:10px 16px;font-size:14px;transition:border-color .15s}.chat-input-area input:focus{border-color:var(--accent)}.send-btn{width:36px;height:36px;border-radius:8px;background:var(--accent);color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center;transition:background .15s,opacity .15s;flex-shrink:0}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:disabled{opacity:.35;cursor:not-allowed}.dm-area{display:flex;flex-direction:column;height:100%;overflow:hidden}.dm-header{height:48px;display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-primary)}.dm-header-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0;overflow:hidden}.dm-header-avatar img{width:100%;height:100%;object-fit:cover}.dm-header-name{font-weight:700;font-size:15px}.dm-header-status{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600;text-transform:capitalize}.dm-header-status.status-online{background:#22c55e26;color:var(--green)}.dm-header-status.status-offline{background:var(--bg-hover);color:var(--text-muted)}.dm-header-status.status-away{background:#eab30826;color:#eab308}.dm-header-status.status-dnd{background:#ef444426;color:var(--red)}.dm-messages{flex:1;overflow-y:auto;padding:12px 0 4px;display:flex;flex-direction:column}.dm-start{padding:20px 20px 16px;margin-bottom:8px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.dm-start-avatar{width:64px;height:64px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;overflow:hidden}.dm-start-avatar img{width:100%;height:100%;object-fit:cover}.dm-start h3{font-size:20px;font-weight:800}.dm-start p{font-size:13px;color:var(--text-secondary)}.dm-load-spinner{display:flex;justify-content:center;padding:16px}.dm-input-area{display:flex;align-items:center;gap:8px;padding:0 16px 16px;flex-shrink:0}.dm-input-area input{flex:1;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:10px;padding:11px 16px;font-size:14px;color:var(--text-primary);transition:border-color .15s}.dm-input-area input:focus{outline:none;border-color:var(--accent)}.dm-input-area input::placeholder{color:var(--text-muted)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{display:flex;flex:1;overflow:hidden}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.voice-error{background:#ef44441a;border-bottom:1px solid rgba(239,68,68,.3);color:var(--red);padding:10px 20px;font-size:13px;flex-shrink:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px;text-align:center;padding:40px}.empty-icon{width:64px;height:64px;border-radius:20px;background:var(--accent-dim);border:1px solid var(--accent-glow);display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:8px}.empty-state h3{font-size:18px;font-weight:700}.empty-state p{color:var(--text-secondary);font-size:14px;max-width:280px;line-height:1.6}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0d1117;--bg-secondary: #080c12;--bg-tertiary: #111920;--bg-hover: #172030;--bg-active: #1a2d45;--accent: #2d7ef7;--accent-hover: #1a6be8;--accent-dim: rgba(45,126,247,.12);--accent-glow: rgba(45,126,247,.25);--text-primary: #e2e8f0;--text-secondary:#8899aa;--text-muted: #55677a;--green: #22c55e;--red: #ef4444;--yellow: #f59e0b;--border: rgba(255,255,255,.06);--border-light: rgba(255,255,255,.1);--sidebar-w: 230px;--topnav-h: 52px;--radius: 8px}html,body,#root{height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.5;overflow:hidden;-webkit-user-select:none;user-select:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff24}button{cursor:pointer;border:none;background:none;color:inherit;font:inherit}input,textarea{font:inherit;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:9px 12px;width:100%;outline:none;transition:border-color .15s}input:focus,textarea:focus{border-color:var(--accent)}a{color:var(--accent);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;border-radius:var(--radius);font-weight:600;font-size:13px;transition:background .15s,transform .1s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{background:var(--red);color:#fff}.btn-ghost{background:#ffffff0f;color:var(--text-primary)}.btn-ghost:hover{background:#ffffff1a}.btn-sm{padding:5px 12px;font-size:12px}.spinner{width:18px;height:18px;border:2px solid var(--border-light);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
