:root{--rail-bg: #1e1f22;--sidebar-bg: #2b2d31;--chat-bg: #313338;--members-bg: #2b2d31;--modal-bg: #313338;--channel-hover: #35373c;--channel-active: #404249;--channel-active-text: #ffffff;--text-normal: #dbdee1;--text-muted: #949ba4;--text-faint: #80848e;--header-shadow: #26282c;--blurple: #5865f2;--blurple-hover: #4752c4;--green: #23a55a;--red: #f23f43;--font: "gg sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text-normal);background:var(--chat-bg);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input{font-family:inherit}.fullscreen-center{height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.login-bg{height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,#3b3d99,#1a1b2e 60%,#121318)}.login-card{width:420px;max-width:92vw;background:var(--sidebar-bg);border-radius:8px;padding:32px;box-shadow:0 8px 24px #0006;display:flex;flex-direction:column}.login-logo{margin:0 0 4px;font-size:28px;font-weight:800;text-align:center;color:#fff;letter-spacing:.5px}.login-sub{margin:0 0 20px;text-align:center;color:var(--text-muted)}.field-label{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;margin-top:12px}.field-input{background:#1e1f22;border:1px solid #111214;border-radius:4px;padding:10px;color:var(--text-normal);font-size:15px;outline:none}.field-input:focus{border-color:var(--blurple)}.btn-primary{margin-top:20px;background:var(--blurple);color:#fff;font-weight:600;padding:11px;border-radius:4px;font-size:15px;transition:background .15s}.btn-primary:hover{background:var(--blurple-hover)}.btn-primary:disabled{opacity:.6;cursor:default}.login-error{margin-top:12px;color:var(--red);font-size:14px}.login-switch{margin-top:14px;font-size:14px;color:var(--text-muted)}.link{color:#00a8fc;padding:0}.link:hover{text-decoration:underline}.app{height:100%;display:grid;grid-template-columns:72px 240px 1fr 240px;overflow:hidden}.server-rail{background:var(--rail-bg);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:8px;overflow-y:auto}.rail-pill{width:48px;height:48px;border-radius:24px;background:var(--sidebar-bg);color:var(--text-normal);font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center;transition:border-radius .15s,background .15s;flex-shrink:0}.rail-pill:hover,.rail-pill.active{border-radius:16px;background:var(--blurple);color:#fff}.rail-pill.home{background:var(--blurple);color:#fff}.rail-pill.add{color:var(--green);background:var(--sidebar-bg);font-size:24px}.rail-pill.add:hover{background:var(--green);color:#fff}.rail-pill.explore{color:var(--green);font-size:20px}.rail-pill.explore:hover{background:var(--green);color:#fff}.rail-divider{width:32px;height:2px;background:#35363c;border-radius:1px}.channel-sidebar{background:var(--sidebar-bg);display:flex;flex-direction:column;min-height:0}.sidebar-header{height:48px;padding:0 16px;display:flex;align-items:center;box-shadow:0 1px #0003,0 1px 2px #0000000f;flex-shrink:0}.sidebar-title{font-weight:700;font-size:15px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.channel-scroll{flex:1;overflow-y:auto;padding:8px;min-height:0}.channel-category{display:flex;align-items:center;justify-content:space-between;padding:16px 8px 4px}.cat-label{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);cursor:pointer;letter-spacing:.02em}.cat-label:hover{color:var(--text-normal)}.cat-add{color:var(--text-muted);font-size:18px;line-height:1;padding:0 4px}.cat-add:hover{color:var(--text-normal)}.channel-item{width:100%;display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:4px;color:var(--text-muted);font-size:15px;text-align:left}.channel-item:hover{background:var(--channel-hover);color:var(--text-normal)}.channel-item.active{background:var(--channel-active);color:var(--channel-active-text)}.channel-icon{font-size:15px;opacity:.8;width:20px;text-align:center}.channel-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-channel-block{display:flex;flex-direction:column}.voice-user{display:flex;align-items:center;gap:8px;padding:3px 8px 3px 28px;color:var(--text-muted);font-size:14px}.voice-user span.speaking{color:#fff;transition:color .1s ease-out}.voice-user-icons{display:flex;align-items:center;margin-left:auto;font-size:12px;opacity:.85}.voice-call-info{display:flex;align-items:center;gap:6px;padding:2px 8px 4px 28px;min-width:0}.call-duration{flex-shrink:0;color:var(--green);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.call-topic{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-muted);font-size:12px}.call-topic.editable{cursor:pointer}.call-topic.editable:hover{color:var(--text-normal);text-decoration:underline dotted}.call-topic-input{min-width:0;flex:1;background:#1e1f22;border:1px solid var(--blurple);border-radius:3px;padding:1px 5px;color:var(--text-normal);font-size:12px}.voice-connected{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:#232428;border-top:1px solid #1f2023}.voice-connected-info{display:flex;flex-direction:column}.voice-signal{color:var(--green);font-size:13px;font-weight:700}.voice-ping{margin-left:6px;color:var(--text-muted);font-size:12px;font-weight:500}.voice-connected-channel{color:var(--text-muted);font-size:12px}.voice-disconnect{color:var(--text-muted);font-size:18px;padding:6px;border-radius:4px}.voice-disconnect:hover{color:var(--red);background:var(--channel-hover)}.user-panel{height:52px;background:#232428;display:flex;align-items:center;justify-content:space-between;padding:0 8px;flex-shrink:0}.user-panel-id{display:flex;align-items:center;gap:8px;min-width:0}.user-panel-names{display:flex;flex-direction:column;min-width:0}.user-panel-username{font-size:14px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-panel-status{font-size:12px;color:var(--text-muted)}.user-panel-actions{display:flex;gap:2px}.status-menu{position:relative;flex:1;min-width:0}.status-trigger{width:100%;padding:4px;border-radius:4px;text-align:left}.status-trigger:hover{background:var(--channel-hover)}.status-menu-popup{position:absolute;bottom:calc(100% + 8px);left:0;min-width:200px;background:var(--modal-bg);border-radius:8px;box-shadow:0 8px 16px #00000052;padding:6px;display:flex;flex-direction:column;gap:2px;z-index:50}.status-menu-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:4px;font-size:14px;color:var(--text-normal);text-align:left}.status-menu-item:hover{background:var(--channel-hover)}.status-menu-item.active{background:var(--channel-active);color:#fff;font-weight:600}.status-menu-dot{font-size:12px}.icon-btn{width:32px;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:15px}.icon-btn:hover{background:var(--channel-hover)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn.muted{color:var(--red)}.chat{background:var(--chat-bg);display:flex;flex-direction:column;min-width:0}.chat-header{height:48px;display:flex;align-items:center;gap:8px;padding:0 16px;box-shadow:0 1px #0003,0 1.5px #0000000d;flex-shrink:0;z-index:1}.chat-header .hash{color:var(--text-faint);font-size:22px;font-weight:500}.chat-header-name{font-weight:700;color:#fff}.chat-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.message-list{flex:1;overflow-y:auto;padding:16px 16px 8px;min-height:0}.message-empty{color:var(--text-muted);padding:16px 0}.message-row{position:relative;display:flex;gap:16px;padding:6px 0}.message-row:hover{background:#0202020f;border-radius:4px}.message-body{min-width:0;flex:1}.message-meta{display:flex;align-items:baseline;gap:8px}.message-author{font-weight:600;color:#fff;font-size:15px}.message-time{font-size:12px;color:var(--text-faint)}.message-edited{font-size:11px;color:var(--text-faint)}.message-content{color:var(--text-normal);font-size:15px;line-height:1.375;word-wrap:break-word;white-space:pre-wrap}.message-reply-quote{display:flex;align-items:center;gap:6px;max-width:100%;margin-bottom:2px;padding-left:10px;border-left:2px solid var(--text-faint);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;color:var(--text-muted)}.message-reply-author{flex-shrink:0;font-weight:600;color:var(--text-normal)}.message-reply-content{overflow:hidden;text-overflow:ellipsis}.message-row.editing{background:#5865f214;border-radius:4px}.message-actions{position:absolute;top:-14px;right:8px;display:none;gap:2px;background:var(--chat-bg);border:1px solid var(--channel-hover);border-radius:6px;padding:2px;box-shadow:0 2px 6px #0000004d}.message-row:hover .message-actions{display:flex}.message-action{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:14px}.message-action:hover{background:var(--channel-hover)}.message-input-wrap{padding:0 16px 24px}.message-input input{width:100%;background:#383a40;border:none;border-radius:8px;padding:12px 16px;color:var(--text-normal);font-size:15px;outline:none}.message-input input::placeholder{color:var(--text-faint)}.reply-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 16px;margin-bottom:4px;background:#383a40;border-radius:8px 8px 0 0;font-size:13px;color:var(--text-muted)}.reply-banner-text{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.edit-banner{background:#5865f226;color:var(--text-normal)}.reply-banner-cancel{flex-shrink:0;color:var(--text-muted);font-size:14px;padding:2px 4px;border-radius:3px}.reply-banner-cancel:hover{color:var(--text-normal);background:var(--channel-hover)}.members-list{background:var(--members-bg);overflow-y:auto;padding:16px 8px}.member-category{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);padding:16px 8px 4px;letter-spacing:.02em}.member-row{display:flex;align-items:center;gap:10px;padding:5px 8px;border-radius:4px}.member-row:hover{background:var(--channel-hover)}.member-info{display:flex;flex-direction:column;min-width:0}.member-name{font-size:15px;font-weight:500;color:var(--text-normal)}.member-name.dim{color:var(--text-faint)}.member-voice{font-size:12px;color:var(--text-muted)}.avatar-wrap{position:relative;flex-shrink:0}.avatar{border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;box-shadow:0 0 0 0 var(--green);transition:box-shadow .1s ease-out}.avatar.speaking{box-shadow:0 0 0 3px var(--green)}.status-dot{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;border:3px solid var(--sidebar-bg)}.status-dot.online{background:var(--green)}.status-dot.dnd{background:var(--red)}.status-dot.offline{background:#80848e}.status-dot.invisible{background:#80848e;box-shadow:inset 0 0 0 2px var(--sidebar-bg),0 0 0 1px #80848e}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{width:440px;max-width:92vw;background:var(--modal-bg);border-radius:8px;padding:24px;box-shadow:0 8px 24px #00000080}.modal-title{margin:0 0 16px;color:#fff;font-size:20px}.modal-empty{color:var(--text-muted);padding:16px 0}.discover-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto}.discover-row{display:flex;align-items:center;justify-content:space-between;background:#2b2d31;padding:12px;border-radius:6px}.discover-info{display:flex;flex-direction:column}.discover-name{font-weight:600;color:#fff}.discover-count{font-size:12px;color:var(--text-muted)}.discover-joined{font-size:13px;color:var(--text-muted)}.btn-small{background:var(--green);color:#fff;font-weight:600;padding:8px 16px;border-radius:4px;font-size:14px}.btn-small:hover{filter:brightness(1.1)}.modal-close{margin-top:20px;width:100%;background:var(--blurple);color:#fff;font-weight:600;padding:10px;border-radius:4px}.modal-close:hover{background:var(--blurple-hover)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#1a1b1e;border-radius:4px}::-webkit-scrollbar-track{background:transparent}.version-badge{position:fixed;right:8px;bottom:6px;font-size:11px;color:var(--text-faint);opacity:.6;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1000}
