.auth-page{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;position:relative;overflow:auto}.auth-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(88,101,242,.35),transparent),radial-gradient(ellipse 60% 40% at 100% 100%,rgba(114,137,218,.15),transparent),var(--bg-tertiary);z-index:0}.auth-logo{position:relative;z-index:1;text-align:center;margin-bottom:32px}.auth-logo-icon{display:block;margin:0 auto 8px;color:var(--accent);filter:drop-shadow(0 0 20px rgba(88,101,242,.6))}.auth-logo h1{font-size:28px;font-weight:800;color:var(--header-primary);letter-spacing:-.5px}.auth-logo p{color:var(--text-muted);margin-top:4px;font-size:14px}.auth-card{position:relative;z-index:1;width:100%;max-width:420px;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow)}.auth-card h2{color:var(--header-primary);font-size:22px;margin-bottom:24px;font-weight:700}.auth-field{margin-bottom:16px}.auth-field label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;letter-spacing:.02em}.auth-hint{display:block;font-size:11px;color:var(--text-muted);margin-top:6px}.auth-error{color:#f23f43;font-size:13px;margin-bottom:12px;padding:8px 12px;background:#f23f431f;border-radius:var(--radius)}.auth-submit{width:100%;margin-top:8px;padding:12px;font-size:15px}.auth-switch{text-align:center;margin-top:20px;font-size:14px;color:var(--text-muted)}.auth-switch a{color:var(--text-link);font-weight:600}.auth-switch a:hover{text-decoration:underline}.sidebar{display:flex;width:312px;min-width:312px;background:var(--bg-secondary)}.sidebar-rail{width:72px;background:var(--bg-tertiary);padding:12px 0;display:flex;flex-direction:column;align-items:center;gap:8px}.rail-btn{width:48px;height:48px;border-radius:50%;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;transition:border-radius .2s,background .2s;overflow:hidden}.rail-btn:hover,.rail-btn.active{border-radius:16px;background:var(--accent)}.rail-group{font-weight:700;font-size:14px;color:#fff}.rail-divider{width:32px;height:2px;background:var(--bg-modifier);border-radius:1px;margin:4px 0}.sidebar-dms{flex:1;display:flex;flex-direction:column;min-width:0}.sidebar-header{padding:12px;box-shadow:0 1px #0003}.sidebar-search{background:var(--bg-tertiary);font-size:13px}.sidebar-section-title{padding:16px 12px 8px;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.04em}.convo-list{flex:1;overflow-y:auto;padding:0 8px 8px}.convo-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px;border-radius:var(--radius);text-align:left;margin-bottom:2px}.convo-item:hover,.convo-item.active{background:var(--bg-modifier)}.convo-info{flex:1;min-width:0}.convo-name{display:block;font-weight:600;color:var(--interactive-hover);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.convo-preview{display:block;font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-empty{padding:16px;font-size:13px;color:var(--text-muted);text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-panel{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--bg-modifier)}.modal-header h2{font-size:18px;color:var(--header-primary);font-weight:700}.modal-close{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--interactive-normal)}.modal-close:hover{background:var(--bg-modifier);color:var(--interactive-hover)}.modal-body{padding:20px;overflow-y:auto}.checkbox-field{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-field.disabled{opacity:.45;cursor:not-allowed}.checkbox-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.checkbox-visual{flex-shrink:0;width:20px;height:20px;border-radius:5px;border:2px solid var(--interactive-normal);background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s,box-shadow .15s}.checkbox-field:hover:not(.disabled) .checkbox-visual{border-color:var(--interactive-hover)}.checkbox-native:focus-visible+.checkbox-visual{outline:2px solid var(--accent);outline-offset:2px}.checkbox-native:checked+.checkbox-visual{background:var(--accent);border-color:var(--accent)}.checkbox-label{font-size:14px;color:var(--text-normal)}.friends-panel{display:flex;flex-direction:column;height:100%}.friends-header{padding:16px 20px;border-bottom:1px solid var(--bg-modifier);display:flex;flex-wrap:wrap;align-items:center;gap:12px;box-shadow:0 1px #0000001a}.friends-breadcrumb{color:var(--header-primary);font-weight:700;font-size:15px}.friends-tabs{display:flex;gap:4px;flex:1}.friends-tabs button{padding:6px 12px;border-radius:var(--radius);font-size:13px;font-weight:600;color:var(--interactive-normal)}.friends-tabs button:hover{color:var(--interactive-hover);background:var(--bg-modifier)}.friends-tabs button.active{color:var(--interactive-active);background:var(--bg-modifier)}.group-btn{font-size:13px}.friends-content{flex:1;overflow-y:auto;padding:16px 20px}.friends-add input{margin-bottom:16px}.friends-list{display:flex;flex-direction:column;gap:8px}.friend-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius);border:1px solid transparent}.friend-profile-hit{flex:1;min-width:0;display:flex;align-items:center;gap:12px;border:none;background:transparent;padding:0;cursor:pointer;text-align:left;color:inherit;font:inherit}.friend-profile-hit:hover .friend-meta strong{color:var(--text-link)}.friend-row:hover{background:var(--bg-secondary);border-color:var(--bg-modifier)}.friend-avatar-wrap{position:relative}.status-dot{position:absolute;bottom:0;right:0;width:12px;height:12px;border-radius:50%;border:3px solid var(--bg-primary)}.status-dot.online{background:var(--status-online)}.status-dot.offline{background:var(--status-offline)}.friend-meta{flex:1;min-width:0}.friend-meta strong{display:block;color:var(--header-primary);font-size:15px}.friend-meta .disc{color:var(--text-muted);font-size:13px}.friend-meta .sub{font-size:12px;color:var(--text-muted)}.friend-actions{display:flex;align-items:center;gap:8px}.action-icon{width:36px;height:36px;border-radius:50%;background:var(--bg-secondary);font-size:16px}.action-icon:hover{background:var(--bg-modifier)}.friends-empty{text-align:center;color:var(--text-muted);padding:40px}.modal-label{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.group-select-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.group-select-item{padding:6px 8px;border-radius:var(--radius)}.group-select-item:hover{background:var(--bg-secondary)}.group-select-user{display:inline-flex;align-items:center;gap:10px}.friends-error{margin:0 20px 8px;padding:8px 12px;font-size:13px;color:#f23f43;background:#f23f431f;border-radius:var(--radius)}.friend-badge{font-size:12px;color:var(--text-muted);padding:6px 10px;background:var(--bg-modifier);border-radius:var(--radius)}.chat-view{display:flex;flex-direction:column;height:100%}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);gap:8px}.chat-empty-icon{color:var(--text-muted);opacity:.45;margin-bottom:8px}.chat-empty h3{color:var(--header-primary);font-size:20px}.chat-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--bg-modifier);box-shadow:0 1px #0000001a}.chat-header-avatar-btn{border:none;background:transparent;padding:0;cursor:pointer;border-radius:50%;flex-shrink:0}.chat-header-avatar-btn:disabled{cursor:default;opacity:.85}.chat-header-info h3{font-size:15px;color:var(--header-primary);font-weight:700}.chat-status{font-size:12px;color:var(--text-muted)}.chat-header-actions{margin-left:auto;display:flex;gap:8px}.message-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:4px}.message-row{display:flex;gap:12px;align-items:flex-start;padding:2px 0;max-width:85%}.message-row.own{margin-left:auto;flex-direction:row-reverse}.message-bubble{background:var(--bg-secondary);padding:8px 12px;border-radius:var(--radius);min-width:0}.message-row.own .message-bubble{background:var(--accent)}.message-avatar-btn{border:none;background:transparent;padding:0;cursor:pointer;border-radius:50%;flex-shrink:0}.message-author-btn{display:block;width:100%;text-align:left;border:none;background:transparent;padding:0;font-size:12px;font-weight:700;color:var(--text-link);margin-bottom:4px;cursor:pointer}.message-author-btn:hover{text-decoration:underline}.message-bubble p{font-size:15px;line-height:1.4;word-break:break-word;color:var(--text-normal)}.message-row.own .message-bubble p{color:#fff}.message-bubble time{display:block;font-size:10px;color:var(--text-muted);margin-top:4px;text-align:right}.message-row.own .message-bubble time{color:#ffffffa6}.typing-indicator{padding:0 16px 8px;font-size:12px;color:var(--text-muted);font-style:italic}.chat-input-bar{display:flex;gap:8px;padding:12px 16px 20px}.chat-input-bar input{flex:1;padding:12px 16px;font-size:15px}.send-btn{width:44px;height:44px;padding:0;border-radius:50%;font-size:18px}.call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-floating);z-index:900;display:flex;flex-direction:column}.call-main{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:#000}.call-remote{width:100%;height:100%;object-fit:contain}.call-local{position:absolute;bottom:100px;right:24px;width:200px;height:140px;object-fit:cover;border-radius:var(--radius);border:2px solid var(--accent);box-shadow:var(--shadow)}.call-remote-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.call-remote-audio{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.call-waiting{text-align:center;color:var(--header-primary)}.call-waiting h2{margin-top:20px;font-size:22px}.call-waiting p{color:var(--text-muted);margin-top:8px}.call-controls{display:flex;justify-content:center;gap:16px;padding:24px;background:var(--bg-secondary)}.call-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 24px;border-radius:50px;background:var(--bg-modifier);font-size:14px;font-weight:600;color:var(--header-primary);transition:transform .15s,background .15s}.call-btn.icon-only{padding:14px;border-radius:50%}.call-btn:hover{background:var(--bg-primary);transform:scale(1.05)}.call-btn.accept{background:var(--status-online);color:#fff}.call-btn.reject{background:var(--danger);color:#fff}.call-btn.active{background:var(--accent);color:#fff}.staff-badge{display:inline-block;margin-left:6px;padding:2px 8px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#c62828,#8e0000);border-radius:4px;vertical-align:middle;box-shadow:0 0 0 1px #00000040}.user-panel{position:fixed;bottom:0;left:72px;width:240px;height:52px;background:var(--bg-floating);display:flex;align-items:center;padding:0 8px;z-index:10}.user-panel-profile{flex:1;display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:var(--radius);text-align:left;min-width:0}.user-panel-profile:hover{background:var(--bg-modifier)}.user-panel-info{min-width:0;display:flex;flex-direction:column;gap:2px}.user-panel-name-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.user-panel-info .username{font-size:13px;font-weight:600;color:var(--header-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-panel-info .tag{font-size:11px;color:var(--text-muted)}.user-panel-actions{display:flex;gap:4px}.user-panel-actions button{width:32px;height:32px;border-radius:var(--radius);font-size:16px;color:var(--interactive-normal)}.user-panel-actions button:hover{background:var(--bg-modifier);color:var(--interactive-hover)}.toggle-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}.toggle-switch.disabled{opacity:.45;cursor:not-allowed}.toggle-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.toggle-track{width:40px;height:22px;border-radius:11px;background:var(--bg-modifier);position:relative;transition:background .2s}.toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--header-primary);transition:transform .2s ease;box-shadow:0 1px 3px #00000059}.toggle-native:checked+.toggle-track{background:var(--accent)}.toggle-native:checked+.toggle-track .toggle-thumb{transform:translate(18px)}.toggle-native:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.main-app{display:flex;height:100%;background:var(--bg-tertiary)}.main-center{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-primary)}.app-loading{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:16px}:root{--bg-primary: #313338;--bg-secondary: #2b2d31;--bg-tertiary: #1e1f22;--bg-floating: #111214;--bg-modifier: #3f4147;--bg-input: #383a40;--accent: #5865f2;--accent-hover: #4752c4;--accent-muted: #4e5d94;--text-normal: #dbdee1;--text-muted: #949ba4;--text-link: #00a8fc;--header-primary: #f2f3f5;--interactive-normal: #b5bac1;--interactive-hover: #dbdee1;--interactive-active: #fff;--status-online: #23a559;--status-idle: #f0b232;--status-dnd: #f23f43;--status-offline: #80848e;--danger: #da373c;--radius: 8px;--radius-lg: 16px;--shadow: 0 8px 16px rgba(0, 0, 0, .24);--font: "Noto Sans", "Segoe UI", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg-tertiary);color:var(--text-normal);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea{font-family:inherit;border:none;outline:none;background:var(--bg-input);color:var(--text-normal);border-radius:var(--radius);padding:10px 12px;width:100%}input::placeholder,textarea::placeholder{color:var(--text-muted)}a{color:var(--text-link);text-decoration:none}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:var(--bg-floating);border-radius:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--radius);font-weight:600;font-size:14px;transition:background .15s,transform .1s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost{background:transparent;color:var(--interactive-normal)}.btn-ghost:hover{background:var(--bg-modifier);color:var(--interactive-hover)}.action-icon{width:36px;height:36px;border-radius:50%;background:var(--bg-secondary);display:inline-flex;align-items:center;justify-content:center;color:var(--interactive-normal);transition:background .15s,color .15s}.action-icon:hover{background:var(--bg-modifier);color:var(--interactive-hover)}.rail-btn svg{color:var(--interactive-normal)}.rail-btn.active svg,.rail-btn:hover svg{color:#fff}.avatar{border-radius:50%;object-fit:cover;background:var(--accent-muted);flex-shrink:0}.avatar-placeholder{display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;text-transform:uppercase}
