:root {
  --accent: #7467f0;
  --accent-2: #45d4c2;
  --accent-soft: color-mix(in srgb, var(--accent) 18%, transparent);
  --bg: #0c0e13;
  --rail: #0a0b10;
  --sidebar: #11141b;
  --surface: #151922;
  --surface-2: #1b202b;
  --surface-3: #232a37;
  --surface-hover: #252c39;
  --input: #0f1218;
  --text: #f2f4f8;
  --muted: #939bab;
  --muted-2: #687181;
  --border: rgba(255,255,255,.075);
  --danger: #ff6476;
  --warning: #f4b85a;
  --success: #44d19e;
  --info: #5ba8ff;
  --radius: 14px;
  --radius-sm: 9px;
  --panel-blur: 0px;
  --sidebar-width: 264px;
  --context-width: 264px;
  --message-gap: 4px;
  --font-size: 15px;
  --font-family: Inter, Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --wallpaper: none;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; }
body { font-family: var(--font-family); font-size: var(--font-size); color: var(--text); background: var(--bg); }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid color-mix(in srgb, var(--accent) 75%, white); outline-offset: 2px; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border: 3px solid transparent; border-radius: 10px; background-clip: padding-box; }
.hidden { display: none !important; }

.app-shell { width: 100vw; height: 100vh; display: grid; grid-template-columns: 72px var(--sidebar-width) minmax(0, 1fr); background: var(--bg); }
.server-rail { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 12px 8px; background: var(--rail); border-right: 1px solid var(--border); z-index: 20; }
.brand-orb, .server-orb { border: 0; width: 48px; height: 48px; border-radius: 16px; display: grid; place-items: center; background: var(--surface-2); color: var(--muted); font-weight: 800; cursor: pointer; transition: .18s ease; position: relative; }
.brand-orb { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: white; box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 22%, transparent); }
.server-orb:hover, .server-orb.active { border-radius: 13px; background: var(--accent); color: white; transform: translateY(-1px); }
.server-orb.active::before, .brand-orb.active::before { content:""; position:absolute; left:-12px; width:4px; height:26px; background:white; border-radius:0 4px 4px 0; }
.server-orb.add { color: var(--success); }
.server-orb.discover { color: var(--accent-2); }
.server-orb.settings { color: var(--warning); }
.rail-divider { width: 32px; height: 1px; background: var(--border); }
.rail-spacer { flex: 1; }

.channel-sidebar { min-width: 0; background: color-mix(in srgb, var(--sidebar) 94%, transparent); backdrop-filter: blur(var(--panel-blur)); border-right: 1px solid var(--border); display:flex; flex-direction:column; overflow:hidden; z-index:15; }
.workspace-header { min-height: 72px; padding: 16px 14px 12px 18px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border); box-shadow: 0 1px 0 rgba(0,0,0,.15); }
.workspace-header h1 { font-size: 16px; margin: 2px 0 0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.eyebrow { font-size:10px; font-weight:800; letter-spacing:.13em; color:var(--accent-2); }
.icon-btn { border:0; background:transparent; color:var(--muted); border-radius:8px; min-width:34px; height:34px; display:inline-grid; place-items:center; cursor:pointer; }
.icon-btn:hover { background:var(--surface-hover); color:var(--text); }
.icon-btn.labeled { display:flex; gap:7px; padding:0 9px; }
.icon-btn.labeled em { font-size:12px; font-style:normal; }
.event-card { margin:12px 10px 2px; border:1px solid color-mix(in srgb, var(--accent) 25%, var(--border)); padding:10px; border-radius:var(--radius-sm); background:linear-gradient(135deg, color-mix(in srgb,var(--accent) 15%,var(--surface)), var(--surface)); display:grid; grid-template-columns:32px 1fr auto; align-items:center; gap:8px; text-align:left; cursor:pointer; }
.event-card:hover { border-color:color-mix(in srgb,var(--accent) 55%,transparent); transform:translateY(-1px); }
.event-icon { width:30px; height:30px; border-radius:9px; display:grid; place-items:center; background:var(--accent); color:white; }
.event-card strong { font-size:12px; display:block; }
.event-card small { color:var(--muted); font-size:10px; }
.event-count { font-size:11px; color:var(--muted); }
.channel-groups { flex:1; overflow:auto; padding:8px 8px 12px; }
.channel-group { margin-top:12px; }
.group-title { display:flex; align-items:center; gap:6px; color:var(--muted-2); padding:0 5px 5px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.group-title button { margin-left:auto; border:0; background:transparent; color:inherit; cursor:pointer; }
.channel-item { width:100%; height:35px; border:0; background:transparent; color:var(--muted); border-radius:8px; display:grid; grid-template-columns:22px 1fr auto; align-items:center; gap:4px; padding:0 8px; text-align:left; cursor:pointer; margin:1px 0; }
.channel-item:hover { background:var(--surface-hover); color:var(--text); }
.channel-item.active { background:color-mix(in srgb,var(--accent) 18%,var(--surface-2)); color:white; }
.channel-item .ch-icon { text-align:center; color:var(--muted-2); font-weight:700; }
.channel-item .ch-name { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.channel-item .ch-meta { display:flex; gap:4px; align-items:center; font-size:10px; }
.badge { min-width:18px; height:18px; padding:0 5px; border-radius:9px; display:inline-grid; place-items:center; background:var(--danger); color:white; font-size:10px; font-weight:800; }
.channel-item.voice-user { height:30px; padding-left:26px; font-size:12px; }
.voice-dock { padding:10px; border-top:1px solid var(--border); background:color-mix(in srgb,var(--success) 5%,var(--surface)); }
.voice-status { display:flex; align-items:center; gap:8px; }
.voice-status strong, .voice-status small { display:block; }
.voice-status strong { color:var(--success); font-size:12px; }
.voice-status small { color:var(--muted); font-size:10px; }
.pulse-dot { width:8px; height:8px; border-radius:50%; background:var(--success); box-shadow:0 0 0 5px color-mix(in srgb,var(--success) 14%,transparent); }
.voice-actions { display:flex; margin-top:8px; gap:5px; }
.voice-actions button { flex:1; border:0; border-radius:7px; background:var(--surface-2); height:28px; cursor:pointer; }
.user-dock { min-height:58px; border-top:1px solid var(--border); background:color-mix(in srgb,var(--bg) 30%,var(--surface)); display:flex; align-items:center; padding:8px; gap:5px; }
.avatar-button { position:relative; border:0; background:transparent; padding:0; cursor:pointer; }
.avatar { width:34px; height:34px; border-radius:50%; display:inline-grid; place-items:center; font-size:12px; font-weight:800; background:var(--surface-3); color:white; flex:none; }
.avatar-gradient { background:linear-gradient(135deg,var(--accent),var(--accent-2)); }
.avatar-xl { width:84px; height:84px; font-size:24px; border:6px solid var(--surface); }
.status-dot { position:absolute; width:11px; height:11px; border-radius:50%; border:3px solid var(--sidebar); right:-1px; bottom:0; }
.status-dot.online { background:var(--success); }
.status-dot.idle { background:var(--warning); }
.status-dot.dnd { background:var(--danger); }
.status-dot.offline { background:var(--muted-2); }
.user-summary { flex:1; min-width:0; border:0; background:transparent; text-align:left; padding:2px; cursor:pointer; }
.user-summary strong,.user-summary small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.user-summary strong { font-size:12px; }.user-summary small{font-size:10px;color:var(--muted)}

.chat-main { min-width:0; display:flex; flex-direction:column; background-image:linear-gradient(color-mix(in srgb,var(--bg) 88%,transparent),color-mix(in srgb,var(--bg) 88%,transparent)),var(--wallpaper); background-size:cover; background-position:center; }
.chat-header { min-height:60px; display:flex; align-items:center; padding:0 14px; gap:12px; border-bottom:1px solid var(--border); background:color-mix(in srgb,var(--surface) 92%,transparent); backdrop-filter:blur(var(--panel-blur)); z-index:10; }
.channel-title-wrap { min-width:0; display:flex; gap:10px; align-items:center; flex:1; }
.channel-title-wrap h2 { margin:0; font-size:15px; }
.channel-title-wrap p { margin:2px 0 0; color:var(--muted); font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:520px; }
.channel-type-icon { color:var(--muted-2); font-size:24px; }
.chat-header-actions { display:flex; align-items:center; gap:2px; }
.search-box { width:210px; height:34px; display:flex; align-items:center; gap:7px; background:var(--input); border:1px solid var(--border); border-radius:8px; padding:0 8px; color:var(--muted); }
.search-box input { flex:1; width:100%; border:0; outline:0; background:transparent; color:var(--text); font-size:12px; }
kbd { border:1px solid var(--border); border-bottom-width:2px; border-radius:4px; padding:1px 4px; font-size:9px; color:var(--muted-2); }
.mobile-menu { display:none; border:0; background:transparent; color:var(--muted); font-size:20px; }
.notice-bar { min-height:42px; display:flex; align-items:center; gap:8px; padding:6px 14px; background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 20%,var(--surface)),color-mix(in srgb,var(--accent-2) 8%,var(--surface))); border-bottom:1px solid var(--border); }
.notice-bar p { margin:0; flex:1; font-size:12px; }.notice-bar button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:18px}
.chat-content { flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) var(--context-width); }
.message-column { min-width:0; position:relative; display:flex; flex-direction:column; }
.message-list { flex:1; overflow-y:auto; padding:20px 0 12px; scroll-behavior:smooth; }
.channel-welcome { padding:30px 26px 22px; }
.channel-welcome .welcome-icon { width:58px;height:58px;border-radius:20px;display:grid;place-items:center;background:var(--surface-3);font-size:30px; }
.channel-welcome h2 { font-size:28px; margin:14px 0 6px; }.channel-welcome p{margin:0;color:var(--muted);max-width:580px;line-height:1.6}
.date-divider { display:flex; align-items:center; gap:10px; color:var(--muted-2); font-size:10px; font-weight:700; margin:14px 20px; }
.date-divider::before,.date-divider::after{content:"";height:1px;flex:1;background:var(--border)}
.message { position:relative; display:grid; grid-template-columns:44px minmax(0,1fr); gap:10px; padding:7px 22px; margin:var(--message-gap) 0; }
.message:hover { background:color-mix(in srgb,var(--surface-hover) 60%,transparent); }
.message.compact { grid-template-columns:44px minmax(0,1fr); padding-top:1px; padding-bottom:1px; }
.message.compact .avatar { visibility:hidden; }.message.compact .message-author{display:none}.message.compact .message-time-inline{display:inline}
.message .avatar { margin-top:2px; cursor:pointer; }
.message-main { min-width:0; }
.message-author { display:flex; align-items:baseline; gap:7px; margin-bottom:3px; }
.message-author strong { font-size:13px; cursor:pointer; }.message-author time,.message-time-inline{font-size:9px;color:var(--muted-2)}.message-time-inline{display:none;margin-right:7px}
.role-dot { width:7px;height:7px;border-radius:50%;display:inline-block; }
.message-text { color:color-mix(in srgb,var(--text) 94%,transparent); line-height:1.45; overflow-wrap:anywhere; white-space:pre-wrap; }
.message-text .mention { color:color-mix(in srgb,var(--accent) 70%,white); background:var(--accent-soft); padding:1px 3px; border-radius:3px; }
.message-text a { color:var(--info); }
.message.deleted .message-text { color:var(--muted-2); font-style:italic; }
.reply-reference { border-left:2px solid var(--muted-2); padding-left:8px; color:var(--muted); font-size:11px; margin-bottom:5px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.message-actions { display:none; position:absolute; right:18px; top:-13px; background:var(--surface-2); border:1px solid var(--border); border-radius:8px; padding:2px; box-shadow:0 8px 24px rgba(0,0,0,.22); z-index:2; }
.message:hover .message-actions { display:flex; }
.message-actions button { border:0;background:transparent;color:var(--muted);height:27px;min-width:29px;border-radius:5px;cursor:pointer;font-size:11px; }.message-actions button:hover{background:var(--surface-hover);color:var(--text)}
.reactions { display:flex; gap:4px; flex-wrap:wrap; margin-top:6px; }
.reaction { border:1px solid var(--border); background:var(--surface-2); color:var(--muted); border-radius:7px; padding:3px 7px; font-size:11px; cursor:pointer; }.reaction.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}
.attachment-card { max-width:430px; margin-top:8px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface); padding:10px; display:flex; align-items:center; gap:10px; }.attachment-icon{width:38px;height:38px;border-radius:9px;background:var(--surface-3);display:grid;place-items:center}.attachment-meta strong,.attachment-meta small{display:block}.attachment-meta small{color:var(--muted);font-size:10px}
.embed-card { max-width:500px; border-left:4px solid var(--accent); background:var(--surface); border-radius:4px var(--radius-sm) var(--radius-sm) 4px; padding:12px; margin-top:8px; }.embed-card h4{margin:0 0 5px}.embed-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.poll-card { max-width:520px;margin-top:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px; }.poll-card h4{margin:0 0 12px}.poll-option{position:relative;width:100%;display:block;text-align:left;background:transparent;color:inherit;font:inherit;border:1px solid var(--border);border-radius:8px;padding:9px 10px;margin:6px 0;overflow:hidden;cursor:pointer}.poll-option:hover,.poll-option.selected{border-color:var(--accent)}.poll-option.selected{box-shadow:inset 0 0 0 1px var(--accent)}.poll-fill{position:absolute;inset:0 auto 0 0;background:var(--accent-soft);z-index:0}.poll-option span{position:relative;z-index:1}.poll-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:9px}
.system-message { margin:7px 22px; padding:9px 12px; border-radius:8px; background:color-mix(in srgb,var(--accent) 8%,var(--surface)); color:var(--muted); font-size:11px; border:1px solid var(--border); }
.typing-indicator { min-height:23px; display:flex; align-items:center; gap:3px; padding:0 22px; color:var(--muted); font-size:10px; }.typing-indicator span{width:4px;height:4px;border-radius:50%;background:var(--muted);animation:typing 1.2s infinite}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}.typing-indicator em{font-style:normal;margin-left:4px}@keyframes typing{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-3px);opacity:1}}
.jump-latest { position:absolute; bottom:108px; left:50%; transform:translateX(-50%); border:1px solid var(--border); border-radius:18px; padding:7px 13px; background:var(--accent); color:white; box-shadow:0 8px 24px rgba(0,0,0,.25); cursor:pointer; z-index:3; }
.composer-shell { padding:0 18px 12px; }
.composer { min-height:48px; display:flex; align-items:flex-end; gap:5px; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius); padding:7px; }
.composer:focus-within { border-color:color-mix(in srgb,var(--accent) 55%,var(--border)); box-shadow:0 0 0 3px var(--accent-soft); }
.composer textarea { flex:1; max-height:180px; resize:none; border:0; outline:0; background:transparent; color:var(--text); padding:7px 4px; line-height:1.4; }
.composer-btn,.composer-tools button { border:0;background:transparent;color:var(--muted);height:32px;min-width:32px;border-radius:8px;cursor:pointer;font-size:11px }.composer-btn{background:var(--muted-2);color:var(--surface);border-radius:50%;font-size:18px;width:27px;height:27px;min-width:27px;margin:3px}.composer-tools{display:flex;align-items:center}.composer-tools button:hover{background:var(--surface-hover);color:var(--text)}.composer-tools .send-btn{background:var(--accent);color:white;display:none}.composer:focus-within .send-btn{display:block}
.composer-meta { display:flex;justify-content:space-between;color:var(--muted-2);font-size:9px;padding:4px 5px 0; }
.reply-banner,.upload-preview{background:var(--surface);border:1px solid var(--border);border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:8px 11px;font-size:11px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.reply-banner button{border:0;background:transparent;color:var(--muted);cursor:pointer}.upload-preview{gap:8px;justify-content:flex-start;overflow:auto}.upload-chip{background:var(--surface-2);padding:6px 9px;border-radius:6px;white-space:nowrap}
.context-panel { border-left:1px solid var(--border); background:color-mix(in srgb,var(--surface) 92%,transparent); backdrop-filter:blur(var(--panel-blur)); overflow:hidden; }
.context-tabs { display:grid;grid-template-columns:repeat(3,1fr);padding:9px;border-bottom:1px solid var(--border);gap:4px}.context-tabs button{border:0;background:transparent;color:var(--muted);padding:8px 4px;border-radius:7px;font-size:11px;cursor:pointer}.context-tabs button.active{background:var(--surface-3);color:var(--text)}
.panel-view { display:none;height:calc(100% - 54px);overflow:auto;padding:12px 8px; }.panel-view.active{display:block}
.member-group-title { color:var(--muted-2);font-size:10px;font-weight:800;letter-spacing:.08em;padding:8px 8px 5px;text-transform:uppercase; }
.member-row { display:grid;grid-template-columns:36px 1fr auto;gap:7px;align-items:center;padding:6px 8px;border-radius:8px;cursor:pointer }.member-row:hover{background:var(--surface-hover)}.member-row .avatar-wrap{position:relative;width:34px}.member-row strong,.member-row small{display:block}.member-row strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-row small{font-size:9px;color:var(--muted)}.member-role{font-size:9px;color:var(--muted-2)}
.thread-empty,.pins-empty{text-align:center;color:var(--muted);padding:45px 15px}.thread-empty b,.pins-empty b{display:block;color:var(--text);margin-bottom:6px}.thread-card,.pin-card{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:10px;margin:6px 0;font-size:11px}.thread-card strong,.pin-card strong{display:block;margin-bottom:4px}.thread-card small,.pin-card small{color:var(--muted)}

.toast-stack { position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none }.toast{min-width:260px;max-width:400px;background:var(--surface-2);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;padding:11px 13px;box-shadow:0 14px 38px rgba(0,0,0,.35);animation:toastIn .2s ease}.toast.error{border-left-color:var(--danger)}.toast.success{border-left-color:var(--success)}.toast strong,.toast small{display:block}.toast small{color:var(--muted);margin-top:3px}@keyframes toastIn{from{transform:translateY(8px);opacity:0}}

.modal { border:0; padding:0; background:transparent; color:var(--text); max-width:none; max-height:none; }.modal::backdrop{background:rgba(2,3,6,.72);backdrop-filter:blur(6px)}
.modal-card { width:min(92vw,480px); max-height:90vh; overflow:auto; background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:25px; box-shadow:0 30px 80px rgba(0,0,0,.5); position:relative; }
.modal-close { position:absolute;right:12px;top:12px;border:0;background:var(--surface-2);color:var(--muted);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:18px;z-index:2 }.modal-close:hover{color:var(--text)}
.modal h2 { margin:0 0 20px; }.modal h3{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 7px}
.modal-brand { display:flex;align-items:center;gap:11px;margin-bottom:20px}.modal-brand .brand-orb{width:42px;height:42px}.modal-brand strong,.modal-brand small{display:block}.modal-brand small{color:var(--muted)}
.auth-tabs { display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);border-radius:9px;padding:4px;margin-bottom:18px}.auth-tabs button{border:0;background:transparent;color:var(--muted);padding:9px;border-radius:7px;cursor:pointer}.auth-tabs button.active{background:var(--surface-3);color:var(--text)}
.auth-form { display:none }.auth-form.active{display:grid;gap:13px}.auth-form button[disabled]{cursor:wait;opacity:.68}.auth-status{min-height:17px;margin:0;text-align:center;font-size:10px;color:var(--muted)}.auth-status.error{color:var(--danger)}.auth-status.success{color:var(--success)}.password-hint{color:var(--muted-2);font-size:9px;line-height:1.45;margin-top:-3px}.modal label{display:grid;gap:6px;font-size:11px;color:var(--muted);font-weight:700}.modal input,.modal textarea,.modal select{width:100%;border:1px solid var(--border);background:var(--input);color:var(--text);border-radius:8px;padding:10px 11px;outline:0}.modal textarea{min-height:90px;resize:vertical}.modal input:focus,.modal textarea:focus,.modal select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.primary-btn,.secondary-btn,.danger-btn,.text-btn,.profile-actions button,.modal menu button,.social-login button { border:0;border-radius:8px;padding:10px 13px;cursor:pointer }.primary-btn{background:var(--accent);color:white;font-weight:700}.primary-btn:hover{filter:brightness(1.08)}.secondary-btn{background:var(--surface-3);color:var(--text)}.danger-btn{background:var(--danger);color:white}.text-btn{background:transparent;color:var(--accent-2);padding:3px}.social-login{display:grid;grid-template-columns:1fr 1fr;gap:8px}.social-login button{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}
.divider-label{height:31px;display:flex;align-items:center}.divider-label::before,.divider-label::after{content:"";height:1px;flex:1;background:var(--border)}.divider-label span{padding:0 10px;color:var(--muted-2);font-size:10px}.modal-footnote{text-align:center;color:var(--muted-2);font-size:9px;margin:13px 0 0}.checkbox-row{display:flex!important;grid-template-columns:18px 1fr!important;align-items:start}.checkbox-row input,.switch-row input{width:auto}.risk-box{border:1px solid color-mix(in srgb,var(--danger) 40%,var(--border));background:color-mix(in srgb,var(--danger) 8%,var(--surface));padding:9px;border-radius:8px;color:var(--danger);font-size:11px}
.profile-card{padding:0 22px 22px;overflow:visible}.profile-banner{height:110px;margin:0 -22px;background:linear-gradient(135deg,var(--accent),var(--accent-2));border-radius:18px 18px 0 0}.profile-identity{height:55px;display:flex;justify-content:space-between;align-items:start}.profile-avatar-wrap{position:relative;transform:translateY(-42px)}.profile-card h2{margin:5px 0 1px}.profile-card>p{margin:0;color:var(--muted);font-size:11px}.profile-section{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:11px;margin-top:11px}.profile-section p{margin:0;font-size:12px;line-height:1.5}.profile-section.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-chips{display:flex;gap:5px;flex-wrap:wrap}.role-chip{font-size:10px;padding:4px 7px;border-radius:8px;background:var(--surface-3);display:flex;align-items:center;gap:5px}.profile-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:12px}.profile-actions button{background:var(--surface-3);color:var(--text)}
.form-card{width:min(92vw,620px)}.form-card>label,.form-card>.form-grid{margin-bottom:13px}.form-grid{display:grid;gap:10px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}.switch-row{display:flex!important;grid-template-columns:1fr auto!important;align-items:center;padding:10px;background:var(--surface-2);border-radius:9px}.switch-row span strong,.switch-row span small{display:block}.switch-row span small{font-weight:400;color:var(--muted-2);margin-top:2px}.switch-row input{appearance:none;width:40px!important;height:22px;border-radius:12px!important;padding:0!important;position:relative;cursor:pointer}.switch-row input::after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--muted);left:2px;top:2px;transition:.2s}.switch-row input:checked{background:var(--accent)}.switch-row input:checked::after{left:20px;background:white}.modal menu{display:flex;justify-content:flex-end;gap:8px;padding:0;margin:20px 0 0}.modal menu button{background:var(--surface-2);color:var(--text)}.modal menu .primary-btn{background:var(--accent)}.input-prefix{display:flex;align-items:center;border:1px solid var(--border);background:var(--input);border-radius:8px;padding-left:10px}.input-prefix input{border:0!important;box-shadow:none!important}.command-card small{font-weight:400;color:var(--muted-2)}
.wide-modal .modal-card{width:min(94vw,960px)}.discover-card{padding:0 0 22px}.discover-hero{padding:36px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 25%,var(--surface)),color-mix(in srgb,var(--accent-2) 12%,var(--surface)));border-radius:18px 18px 0 0}.discover-hero h2{font-size:28px;margin:5px 0 18px}.discover-search{display:flex!important;grid-template-columns:24px 1fr!important;align-items:center;background:var(--input);padding:0 12px;border-radius:10px;max-width:560px}.discover-search input{border:0!important;box-shadow:none!important}.category-pills{display:flex;gap:7px;padding:17px 24px 8px;overflow:auto}.category-pills button{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);border-radius:16px;padding:6px 12px;cursor:pointer;white-space:nowrap}.category-pills button.active{background:var(--accent);color:white}.discover-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:12px 24px}.discover-card-item{background:var(--surface-2);border:1px solid var(--border);border-radius:13px;overflow:hidden;cursor:pointer;transition:.2s}.discover-card-item:hover{transform:translateY(-3px);border-color:var(--accent)}.discover-cover{height:80px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:end;padding:10px;font-size:28px}.discover-info{padding:12px}.discover-info h3{margin:0 0 5px;color:var(--text);font-size:14px;letter-spacing:0;text-transform:none}.discover-info p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.discover-meta{display:flex;justify-content:space-between;color:var(--muted-2);font-size:9px;margin-top:10px}

.admin-modal[open]{width:100vw;height:100vh;margin:0}.admin-modal::backdrop{background:var(--bg)}.admin-shell{width:100vw;height:100vh;display:grid;grid-template-columns:230px 1fr;background:var(--bg)}.admin-nav{background:var(--sidebar);border-right:1px solid var(--border);padding:15px;display:flex;flex-direction:column}.admin-brand{display:flex;align-items:center;gap:10px;padding:5px 5px 18px;border-bottom:1px solid var(--border)}.admin-brand .brand-orb{width:40px;height:40px}.admin-brand strong,.admin-brand small{display:block}.admin-brand small{color:var(--muted);font-size:9px}.admin-nav nav{padding:15px 0;display:grid;gap:3px}.admin-nav nav button,.admin-exit{border:0;background:transparent;color:var(--muted);padding:10px 11px;border-radius:8px;text-align:left;cursor:pointer}.admin-nav nav button:hover,.admin-nav nav button.active{background:var(--surface-3);color:var(--text)}.admin-exit{margin-top:auto}.admin-content{min-width:0;overflow:auto;padding:24px 30px 50px}.admin-content>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.admin-content>header h2{margin:3px 0 0;font-size:24px}.admin-header-actions{display:flex;align-items:center;gap:10px}.admin-header-actions button{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;padding:8px 11px;cursor:pointer}.live-badge{font-size:10px;color:var(--success);background:color-mix(in srgb,var(--success) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--success) 25%,var(--border));padding:7px 9px;border-radius:14px}.live-badge i{width:6px;height:6px;border-radius:50%;background:var(--success);display:inline-block;margin-right:5px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stat-card small{color:var(--muted);font-size:10px}.stat-card strong{display:block;font-size:27px;margin:7px 0}.stat-card em{font-style:normal;font-size:9px;color:var(--success)}.admin-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:13px;margin-top:13px}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;min-width:0}.admin-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.admin-card-header h3{margin:0;color:var(--text);font-size:13px;letter-spacing:0;text-transform:none}.admin-card-header button,.toolbar button{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:7px;padding:7px 9px;cursor:pointer;font-size:10px}.chart-bars{height:160px;display:flex;align-items:end;gap:8px;border-bottom:1px solid var(--border);padding-top:15px}.chart-bar{flex:1;background:linear-gradient(to top,var(--accent),var(--accent-2));border-radius:5px 5px 0 0;min-height:8px;position:relative}.chart-bar span{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:8px;color:var(--muted)}.activity-list{display:grid;gap:9px}.activity-item{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center}.activity-icon{width:28px;height:28px;border-radius:8px;background:var(--surface-3);display:grid;place-items:center}.activity-item strong,.activity-item small{display:block}.activity-item strong{font-size:10px}.activity-item small,.activity-item time{font-size:8px;color:var(--muted)}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:13px}.toolbar input,.toolbar select{width:auto;min-width:140px}.toolbar .spacer{flex:1}.toolbar .primary{background:var(--accent);color:white}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{text-align:left;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em;padding:9px;border-bottom:1px solid var(--border)}.data-table td{padding:10px 9px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table tr:hover td{background:color-mix(in srgb,var(--surface-hover) 45%,transparent)}.data-table button{border:0;background:var(--surface-3);color:var(--text);border-radius:6px;padding:5px 7px;cursor:pointer;font-size:9px}.data-table button.danger{color:var(--danger)}.user-cell{display:flex;align-items:center;gap:8px}.user-cell strong,.user-cell small{display:block}.user-cell small{color:var(--muted);font-size:8px}.status-pill{display:inline-block;padding:4px 7px;border-radius:12px;background:var(--surface-3);font-size:9px}.status-pill.active{color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--surface))}.status-pill.banned{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.status-pill.warn{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--surface))}.setting-sections{display:grid;gap:12px}.setting-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:17px}.setting-section>h3{margin:0 0 4px;color:var(--text);font-size:13px;text-transform:none;letter-spacing:0}.setting-section>p{margin:0 0 15px;color:var(--muted);font-size:10px}.setting-row{display:grid;grid-template-columns:1fr minmax(180px,280px);align-items:center;gap:15px;padding:11px 0;border-top:1px solid var(--border)}.setting-row:first-of-type{border-top:0}.setting-row strong,.setting-row small{display:block}.setting-row strong{font-size:11px}.setting-row small{color:var(--muted);font-size:9px;margin-top:3px}.setting-control{display:flex;justify-content:flex-end;gap:7px;align-items:center}.setting-control input[type=color]{width:48px;height:34px;padding:3px}.setting-control input[type=range]{width:180px}.setting-control textarea{min-height:110px}.color-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.color-field{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:9px}.color-field label{font-size:9px;color:var(--muted)}.color-field input{height:38px;padding:3px;margin-top:5px}.layout-preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.layout-preset{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:10px;cursor:pointer;text-align:center}.layout-preset.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.layout-mini{height:56px;display:grid;grid-template-columns:10px 24px 1fr 20px;gap:3px;margin-bottom:7px}.layout-mini span{background:var(--muted-2);border-radius:2px}.command-list{display:grid;gap:8px}.command-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:11px}.command-name{font-family:monospace;color:var(--accent-2)}.command-item p{margin:3px 0 0;color:var(--muted);font-size:9px}.command-actions{display:flex;gap:5px}.command-actions button{border:0;background:var(--surface-3);color:var(--text);border-radius:6px;padding:6px 8px;cursor:pointer;font-size:9px}.tag-input{display:flex;gap:6px;flex-wrap:wrap;background:var(--input);border:1px solid var(--border);padding:8px;border-radius:9px;min-height:45px}.tag-input .tag{background:var(--surface-3);border-radius:7px;padding:5px 7px;font-size:9px}.tag-input input{border:0;background:transparent;padding:3px;width:150px}.danger-zone{border-color:color-mix(in srgb,var(--danger) 30%,var(--border))}.danger-zone h3{color:var(--danger)}
.confirm-modal .modal-card{text-align:center;width:min(90vw,390px)}.confirm-icon{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--danger) 15%,var(--surface));color:var(--danger);font-size:24px;font-weight:900;margin:0 auto 12px}.confirm-modal p{color:var(--muted);line-height:1.5}

/* Design variants */
.app-shell[data-message-style="bubbles"] .message { padding-top:4px;padding-bottom:4px; }.app-shell[data-message-style="bubbles"] .message-main{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:9px 11px;max-width:min(720px,92%)}.app-shell[data-message-style="bubbles"] .message:hover{background:transparent}.app-shell[data-message-style="bubbles"] .message.self .message-main{margin-left:auto;background:color-mix(in srgb,var(--accent) 18%,var(--surface-2));border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}
.app-shell[data-message-style="cards"] .message { margin:7px 18px;padding:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 80%,transparent);border-radius:var(--radius) }.app-shell[data-message-style="cards"] .message:hover{border-color:color-mix(in srgb,var(--accent) 25%,var(--border))}
.app-shell[data-density="compact"] { --message-gap:0px;--font-size:13px; }.app-shell[data-density="compact"] .message{padding-top:3px;padding-bottom:3px}.app-shell[data-density="spacious"]{--message-gap:8px;--font-size:16px}.app-shell[data-density="spacious"] .message{padding-top:10px;padding-bottom:10px}
body.light-theme{--bg:#f2f4f8;--rail:#e8ebf1;--sidebar:#f7f8fb;--surface:#ffffff;--surface-2:#f0f2f6;--surface-3:#e5e8ef;--surface-hover:#e5e8ef;--input:#edf0f5;--text:#1d2230;--muted:#697386;--muted-2:#8c95a6;--border:rgba(30,40,60,.11);color-scheme:light}
body.high-contrast{--text:#fff;--muted:#c7ced9;--border:rgba(255,255,255,.2);--surface-hover:#30394b}

@media (max-width: 1100px){ :root{--context-width:230px}.search-box{width:160px}.icon-btn.labeled em{display:none}.discover-grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width: 850px){
  .app-shell{grid-template-columns:62px minmax(0,1fr)}.channel-sidebar{position:fixed;left:62px;top:0;bottom:0;width:min(82vw,290px);transform:translateX(-110%);transition:.25s;box-shadow:20px 0 50px rgba(0,0,0,.35)}.channel-sidebar.open{transform:translateX(0)}.chat-main{grid-column:2}.mobile-menu{display:block}.context-panel{position:fixed;right:0;top:60px;bottom:0;width:min(82vw,290px);transform:translateX(110%);transition:.25s;z-index:30;box-shadow:-20px 0 50px rgba(0,0,0,.35)}.context-panel.open{transform:translateX(0)}.chat-content{grid-template-columns:1fr}.chat-header-actions .icon-btn:nth-of-type(1),.chat-header-actions .icon-btn:nth-of-type(2),.chat-header-actions .icon-btn:nth-last-of-type(1){display:none}.search-box{width:130px}.admin-shell{grid-template-columns:70px 1fr}.admin-brand div,.admin-nav nav button{font-size:0}.admin-nav nav button::first-letter{font-size:15px}.admin-exit{font-size:0}.admin-content{padding:18px}.admin-grid{grid-template-columns:1fr}.layout-preset-grid,.color-controls{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 580px){
  .app-shell{grid-template-columns:1fr}.server-rail{display:none}.chat-main{grid-column:1}.channel-sidebar{left:0}.chat-header{padding:0 8px;gap:6px}.channel-title-wrap p{display:none}.search-box{width:38px;border:0;background:transparent}.search-box input,.search-box kbd{display:none}.notice-bar{font-size:10px}.message{padding-left:11px;padding-right:11px;grid-template-columns:36px 1fr}.message .avatar{width:30px;height:30px}.message-actions{right:8px}.composer-shell{padding:0 7px 7px}.composer-tools button:not(.send-btn):not(#emojiBtn){display:none}.discover-grid{grid-template-columns:1fr}.discover-hero{padding:28px 20px}.form-grid.two,.form-grid.three,.profile-section.grid{grid-template-columns:1fr}.admin-shell{grid-template-columns:1fr}.admin-nav{position:fixed;left:0;right:0;bottom:0;height:58px;z-index:100;padding:4px;display:block;border-right:0;border-top:1px solid var(--border)}.admin-brand,.admin-exit{display:none}.admin-nav nav{display:flex;overflow:auto;padding:0}.admin-nav nav button{min-width:54px;text-align:center;padding:8px 4px;font-size:0}.admin-nav nav button:nth-child(-n+11)::first-letter{font-size:15px}.admin-content{padding:15px 12px 75px}.admin-content>header{align-items:flex-start}.admin-header-actions .live-badge{display:none}.stat-grid{grid-template-columns:1fr 1fr}.toolbar{flex-wrap:wrap}.toolbar .spacer{display:none}.data-table{min-width:650px}.admin-card:has(.data-table){overflow:auto}.setting-row{grid-template-columns:1fr}.setting-control{justify-content:flex-start}.layout-preset-grid,.color-controls{grid-template-columns:1fr 1fr}
}


/* ChatForge Studio v2: auth gate, profile images, game bridge and sandbox bot */
body.auth-required .app-shell{filter:blur(7px);pointer-events:none;user-select:none;transform:scale(.995)}
.auth-modal::backdrop{background:rgba(2,3,8,.9)}
.auth-lock-mark{position:absolute;right:18px;top:18px;width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--surface-2);border:1px solid var(--border)}
.auth-welcome{display:grid;gap:4px;padding:11px 12px;margin:-5px 0 15px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.auth-welcome strong{font-size:12px}.auth-welcome span{font-size:10px;color:var(--muted);line-height:1.45}
.avatar{overflow:hidden;flex:0 0 auto}.avatar img,.avatar-image{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.avatar-uploader{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:12px;border:1px solid var(--border);background:var(--surface-2);border-radius:12px}
.avatar-upload-preview{position:relative;width:76px;height:76px}.avatar-upload-preview .avatar{width:76px;height:76px;font-size:25px}.avatar-camera{position:absolute;right:-2px;bottom:-2px;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--surface-2);font-size:12px}
.avatar-uploader strong,.avatar-uploader small{display:block}.avatar-uploader small{color:var(--muted);font-size:9px;margin-top:4px;line-height:1.4}.avatar-upload-actions{display:flex;gap:7px;margin-top:9px}.avatar-upload-actions button{padding:7px 9px}.danger-text{color:var(--danger)!important}.danger-outline{color:var(--danger)!important;border:1px solid color-mix(in srgb,var(--danger) 40%,var(--border))!important;background:color-mix(in srgb,var(--danger) 7%,var(--surface-2))!important}
.profile-actions{grid-template-columns:repeat(4,1fr)}
.code-editor{min-height:240px!important;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace!important;tab-size:2;white-space:pre}
.command-sandbox-badge{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent-2) 15%,var(--surface-3));color:var(--accent-2);font-size:8px;font-weight:800}
.game-modal .game-card{width:min(96vw,1180px);height:min(92vh,820px);display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;padding:20px}.game-header{display:flex;justify-content:space-between;align-items:start;padding-right:36px}.game-header h2{margin:3px 0}.game-header p{margin:0;color:var(--muted);font-size:11px}.game-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:13px 0}.game-toolbar button,.game-upload-button{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:8px;padding:8px 10px;cursor:pointer;font-size:10px}.game-upload-button{background:var(--accent);color:white;border-color:transparent}.game-toolbar span{color:var(--muted);font-size:10px;margin-left:auto}.game-layout{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 250px;border:1px solid var(--border);border-radius:13px;overflow:hidden}.game-stage{position:relative;min-height:430px;background:#05060a}.game-stage iframe{width:100%;height:100%;border:0;background:#080a10}.game-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--muted);padding:30px}.game-empty span{font-size:48px}.game-empty strong{color:var(--text);font-size:16px;margin-top:9px}.game-empty p{font-size:10px}.game-presence-panel{border-left:1px solid var(--border);background:var(--surface-2);padding:14px;overflow:auto}.game-presence-panel h3{color:var(--text);font-size:12px}.game-player{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:center;padding:8px;border-radius:9px}.game-player:hover{background:var(--surface-hover)}.game-player strong,.game-player small{display:block}.game-player small{color:var(--muted);font-size:9px}.game-player-state{font-size:9px;color:var(--success)}.game-bridge-note{margin-top:12px;padding:10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.game-bridge-note strong{font-size:10px}.game-bridge-note p{font-size:9px;color:var(--muted);line-height:1.5;margin:5px 0 0}.game-admin-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:13px}.game-drop-zone{border:1px dashed color-mix(in srgb,var(--accent) 55%,var(--border));border-radius:12px;padding:24px;text-align:center;background:color-mix(in srgb,var(--accent) 5%,var(--surface-2))}.game-drop-zone strong,.game-drop-zone small{display:block}.game-drop-zone small{color:var(--muted);margin:6px 0 13px}.game-code-sample{background:#090b10;color:#d7e1ff;border:1px solid var(--border);border-radius:9px;padding:11px;font:10px/1.5 ui-monospace,monospace;overflow:auto;white-space:pre-wrap}
@media(max-width:850px){.game-layout{grid-template-columns:1fr}.game-presence-panel{border-left:0;border-top:1px solid var(--border);max-height:180px}.game-stage{min-height:360px}.game-admin-grid{grid-template-columns:1fr}}
@media(max-width:580px){.profile-actions{grid-template-columns:1fr 1fr}.avatar-uploader{grid-template-columns:1fr;text-align:center}.avatar-upload-preview{margin:auto}.avatar-upload-actions{justify-content:center}.game-modal .game-card{width:100vw;height:100vh;max-height:none;border-radius:0;padding:12px}.game-toolbar span{width:100%;margin-left:0}.game-stage{min-height:300px}}


/* ChatForge Studio v2.2: mouse wheel + optional drag scrolling */
.drag-scroll-area {
  cursor: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
  touch-action: pan-y pan-x;
}
.drag-scroll-area.drag-scrolling {
  cursor: auto !important;
  scroll-behavior: auto !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}
.drag-scroll-area.drag-scrolling * {
  user-select: none !important;
  -webkit-user-select: none !important;
}
.drag-scroll-area[data-drag-axis="y"] { touch-action: pan-y; }
.drag-scroll-area[data-drag-axis="x"] { touch-action: pan-x; }
.drag-scroll-area[data-drag-axis="both"] { touch-action: pan-x pan-y; }

/* 스크롤 가능한 주요 화면은 위아래 드래그가 자연스럽게 이어지도록 한다. */
.message-list,
.channel-groups,
.panel-view,
.modal-card,
.admin-content,
.game-presence-panel {
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
}

/* 드래그 중 브라우저의 이미지/링크 기본 끌기를 막는다. */
.drag-scroll-area img,
.drag-scroll-area a {
  -webkit-user-drag: none;
}


/* v2.2: 마우스 휠 스크롤을 모든 주요 패널에서 확실하게 사용한다. */
.chat-main,
.chat-content,
.message-column,
.channel-sidebar,
.context-panel,
.admin-shell {
  min-height: 0;
}

.server-rail,
.channel-groups,
.message-list,
.panel-view,
.modal-card,
.admin-content,
.game-presence-panel,
.category-pills,
.upload-preview,
.admin-nav nav,
.admin-card:has(.data-table) {
  scrollbar-width: auto;
  scrollbar-color: color-mix(in srgb, var(--text) 24%, transparent) transparent;
}

.server-rail { overflow-y: auto; }
.channel-groups,
.message-list,
.panel-view,
.modal-card,
.admin-content,
.game-presence-panel {
  overflow-y: auto;
}

.wheel-scroll-area {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.wheel-scroll-area::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,.24);
  border: 3px solid transparent;
  background-clip: padding-box;
}

body.light-theme .wheel-scroll-area::-webkit-scrollbar-thumb:hover {
  background: rgba(25,35,55,.28);
  border: 3px solid transparent;
  background-clip: padding-box;
}
