:root{--font-scale:1;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--fs-xs:.8rem;--fs-sm:.9rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:1.35rem;--fs-xl:1.62rem;--fs-xxl:2rem;--lh:1.45;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-pill:999px;--rail-w:72px;--ease:cubic-bezier(.2, .7, .2, 1);--dur:.14s;--presence-online:#7cc47f;--presence-idle:#e2b340;--presence-dnd:#e5534b;--presence-offline:#7d6f63}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-rail:#15110e;--bg-sidebar:#1d1814;--bg-main:#241e19;--bg-elev:#2f2721;--bg-input:#2b241e;--bg-hover:#ffd6aa0f;--bg-active:#ffbe7821;--bg-overlay:#080503b3;--text:#f3e9df;--text-muted:#b8a796;--text-faint:#8c7c6d;--border:#ffe6c817;--accent:#f2a65a;--accent-strong:#e8862c;--accent-text:#1b120a;--ember:#e8662c;--danger:#ec6a5e;--danger-bg:#ec6a5e24;--ok:#8cc78f;--mention-bg:#f2a65a1f;--mention-chip:#f2a65a33;--highlight-bg:#f2a65a33;--focus:#ffc27a;--shadow:0 10px 30px #00000073;--code-bg:#1a1511}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-rail:#e6dbce;--bg-sidebar:#f1e8dd;--bg-main:#fbf7f2;--bg-elev:#fff;--bg-input:#efe6db;--bg-hover:#5a32140f;--bg-active:#c8641c1f;--bg-overlay:#28190f73;--text:#2a1f17;--text-muted:#6b5a4b;--text-faint:#8f7e6e;--border:#3c1e0a21;--accent:#c8641c;--accent-strong:#a94f12;--accent-text:#fff;--ember:#d9531b;--danger:#c23a2f;--danger-bg:#c23a2f1a;--ok:#2f7d34;--mention-bg:#c8641c17;--mention-chip:#c8641c29;--highlight-bg:#c8641c29;--focus:#b4560f;--shadow:0 10px 30px #3c1e0a2e;--code-bg:#f1e9df;--presence-offline:#9a8b7d}[data-theme=midnight]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-rail:#040302;--bg-sidebar:#0a0807;--bg-main:#0e0c0a;--bg-elev:#18140f;--bg-input:#15110d;--bg-hover:#ffd6aa0d;--bg-active:#ffbe781c;--bg-overlay:#000000bf;--text:#ece3d9;--text-muted:#a69685;--text-faint:#7b6d60;--border:#ffe6c814;--accent:#f0a050;--accent-strong:#e07f25;--accent-text:#120b05;--ember:#e05f25;--danger:#ea6458;--danger-bg:#ea645824;--ok:#86c289;--mention-bg:#f0a0501a;--mention-chip:#f0a0502e;--highlight-bg:#f0a0502e;--focus:#ffbe73;--shadow:0 10px 30px #0009;--code-bg:#070605}[data-reduced-motion=true]{--dur:0s}@media (prefers-reduced-motion:reduce){:root{--dur:0s}}*,:before,:after{box-sizing:border-box}html{font-size:calc(15px * var(--font-scale));-webkit-text-size-adjust:100%}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh);color:var(--text);background:var(--bg-main);-webkit-font-smoothing:antialiased;overflow:hidden}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--fs-xl);font-weight:700}h3{font-size:var(--fs-md);font-weight:650}ul,ol{margin:0;padding:0}ul{list-style:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:not-allowed;opacity:.5}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}*,:before,:after{transition-duration:var(--dur)}[data-reduced-motion=true] *,[data-reduced-motion=true] :before,[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--sp-2);z-index:100;background:var(--accent);color:var(--accent-text);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);position:absolute;top:-40px}.skip-link:focus{top:var(--sp-2)}.muted{color:var(--text-muted)}.break{word-break:break-all}.stack{gap:var(--sp-3);flex-direction:column;display:flex}.row{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.row-end{justify-content:flex-end;gap:var(--sp-2);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.btn{justify-content:center;align-items:center;gap:var(--sp-2);min-height:36px;padding:0 var(--sp-4);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--border);font-weight:600;font-size:var(--fs-sm);transition-property:background,border-color,transform;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-active)}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--accent-text);border-color:#0000}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-danger{background:var(--danger);color:#fff;border-color:#0000}.btn-danger:hover:not(:disabled){background:var(--danger);filter:brightness(1.08)}.btn-ghost{background:0 0;border-color:#0000}.btn-small{min-height:28px;padding:0 var(--sp-3);font-size:var(--fs-xs)}.btn-block{width:100%}.icon-btn{border-radius:var(--r-sm);width:32px;height:32px;color:var(--text-muted);flex-shrink:0;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled),.icon-btn[aria-pressed=true]{color:var(--text);background:var(--bg-hover)}.icon-danger:hover:not(:disabled){color:var(--danger)}.link-btn{color:var(--accent);font-weight:600}.link-btn:hover{text-decoration:underline}.input{width:100%;min-height:38px;padding:var(--sp-2) var(--sp-3);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r-md)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--mention-chip);outline:none}textarea.input{resize:vertical}.field{gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted);flex-direction:column;flex:1;font-weight:600;display:flex}.field .input,.field select{color:var(--text);font-weight:400}.field-hint{font-size:var(--fs-xs);color:var(--text-faint);font-weight:400}.field-error,.form-error{color:var(--danger);font-size:var(--fs-sm);font-weight:500}.form-ok{color:var(--ok);font-size:var(--fs-sm)}.toggle-row{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-2) 0;display:flex}.toggle-label{font-weight:550}.switch{border-radius:var(--r-pill);background:var(--bg-input);border:1px solid var(--border);flex-shrink:0;width:40px;height:22px;position:relative}.switch-knob{background:var(--text-faint);border-radius:50%;width:16px;height:16px;transition-property:transform,background;position:absolute;top:2px;left:2px}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true] .switch-knob{background:var(--accent-text);transform:translate(18px)}.color-input{border:1px solid var(--border);border-radius:var(--r-sm);background:0 0;width:64px;height:36px;padding:2px}.badge{border-radius:var(--r-pill);background:var(--ember);color:#fff;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.72rem;font-weight:700;display:inline-grid}.badge-inline{margin-left:auto}.splash{place-content:center;justify-items:center;gap:var(--sp-4);height:100%;color:var(--accent);display:grid}.splash p{color:var(--text-muted)}.splash .logo{animation:1.6s ease-in-out infinite alternate glow}@keyframes glow{0%{filter:drop-shadow(0 0 #0000)}to{filter:drop-shadow(0 0 14px var(--ember))}}.empty-state{place-content:center;justify-items:center;gap:var(--sp-3);text-align:center;height:100%;padding:var(--sp-8);display:grid}.empty-inline{padding:var(--sp-4) 0}.shell{grid-template-columns:var(--rail-w) var(--sidebar-w) 4px minmax(0, 1fr);height:100dvh;display:grid;position:relative;overflow:hidden}.shell[data-members]{grid-template-columns:var(--rail-w) var(--sidebar-w) 4px minmax(0, 1fr) 4px var(--members-w)}.conn-banner{z-index:30;padding:var(--sp-1) var(--sp-4);border-radius:0 0 var(--r-md) var(--r-md);background:var(--accent);color:var(--accent-text);font-size:var(--fs-sm);font-weight:600;position:absolute;top:0;left:50%;transform:translate(-50%)}.conn-fatal{background:var(--danger);color:#fff}.resize-handle{cursor:col-resize;background:var(--bg-sidebar);touch-action:none}.resize-handle:hover,.resize-handle:focus-visible{background:var(--accent);outline:none}.rail{align-items:center;gap:var(--sp-2);padding:var(--sp-3) 0;background:var(--bg-rail);scrollbar-width:none;flex-direction:column;display:flex;overflow-y:auto}.rail-list{gap:var(--sp-2);flex-direction:column;display:flex}.rail-item{width:var(--rail-w);place-items:center;display:grid;position:relative}.rail-pill{background:var(--accent);border-radius:0 4px 4px 0;width:4px;height:0;transition-property:height;position:absolute;left:0}.rail-item[data-unread] .rail-pill{height:8px}.rail-item:hover .rail-pill{height:18px}.rail-item[data-active] .rail-pill{height:36px}.rail-btn{background:var(--bg-sidebar);width:48px;height:48px;color:var(--accent);border-radius:30%;place-items:center;transition-property:border-radius,background,color;display:grid;overflow:hidden}.rail-btn:hover,.rail-item[data-active] .rail-btn{background:var(--accent);color:var(--accent-text);border-radius:22%}.rail-action{color:var(--ok)}.rail-action:hover{background:var(--ok);color:var(--bg-rail)}.rail-sep{background:var(--border);border-radius:1px;width:32px;height:2px}.rail-item .badge{border:3px solid var(--bg-rail);height:22px;position:absolute;bottom:-2px;right:8px}.server-icon{width:100%;height:100%;font-weight:700;font-size:var(--fs-sm);place-items:center;display:grid;overflow:hidden}.server-icon img{object-fit:cover;width:100%;height:100%}.sidebar{background:var(--bg-sidebar);flex-direction:column;min-width:0;display:flex}.sidebar-inner{flex-direction:column;flex:1;min-height:0;display:flex}.sidebar-header{justify-content:space-between;align-items:center;gap:var(--sp-2);height:52px;padding:0 var(--sp-4);border-bottom:1px solid var(--border);text-align:left;width:100%;font-weight:700;display:flex}button.sidebar-header:hover{background:var(--bg-hover)}.sidebar-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.channel-scroll{padding:var(--sp-2) var(--sp-2) var(--sp-4);flex:1;overflow-y:auto}.sidebar-empty{padding:var(--sp-2);font-size:var(--fs-sm)}.channel-group{margin-top:var(--sp-3)}.category-row{align-items:center;display:flex}.category-btn{align-items:center;gap:var(--sp-1);padding:var(--sp-1);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);text-align:left;flex:1;font-weight:700;display:flex}.category-btn:hover{color:var(--text)}.category-static{margin-top:var(--sp-4)}.channel-row{align-items:center;display:flex;position:relative}.channel-row[data-drop=before]:before,.channel-row[data-drop=after]:after,.category-row[data-drop=before],.category-row[data-drop=after]{box-shadow:inset 0 2px 0 var(--accent)}.channel-row[data-drop=before]:before,.channel-row[data-drop=after]:after{content:"";background:var(--accent);height:2px;position:absolute;left:0;right:0}.channel-row[data-drop=before]:before{top:-1px}.channel-row[data-drop=after]:after{bottom:-1px}.channel-row[data-dragging]{opacity:.5}.channel-btn{align-items:center;gap:var(--sp-2);min-width:0;min-height:34px;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);color:var(--text-faint);text-align:left;flex:1;margin:1px 0;display:flex}.channel-btn:hover{background:var(--bg-hover);color:var(--text-muted)}.channel-btn[aria-current=page]{background:var(--bg-active);color:var(--text)}.channel-btn[data-unread]{color:var(--text);font-weight:650}.channel-btn[data-unread]:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;left:-8px}.channel-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.channel-gear{opacity:0;width:26px;height:26px;position:absolute;right:2px}.channel-row:hover .channel-gear,.channel-gear:focus-visible{opacity:1}.home-link{color:var(--text-muted)}.user-panel{align-items:center;gap:var(--sp-1);padding:var(--sp-2);background:var(--bg-rail);display:flex}.user-chip{align-items:center;gap:var(--sp-2);min-width:0;padding:var(--sp-1);border-radius:var(--r-md);text-align:left;flex:1;display:flex}.user-chip:hover{background:var(--bg-hover)}.user-chip-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.user-chip-name{font-weight:650;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-chip-status{font-size:var(--fs-xs);color:var(--text-muted)}.avatar{border-radius:50%;flex-shrink:0;place-items:center;display:inline-grid;position:relative}.avatar img,.avatar-initials{object-fit:cover;border-radius:50%;width:100%;height:100%}.avatar-initials{color:#fff4ea;place-items:center;font-weight:700;display:grid}.presence-dot{border:3px solid var(--bg-sidebar);box-sizing:content-box;border-radius:50%;width:34%;min-width:10px;height:34%;min-height:10px;position:absolute;bottom:-2px;right:-2px}.presence-static{vertical-align:middle;border:0;width:10px;min-width:0;height:10px;min-height:0;display:inline-block;position:static}.presence-online{background:var(--presence-online)}.presence-idle{background:var(--presence-idle)}.presence-dnd{background:var(--presence-dnd)}.presence-offline{background:var(--presence-offline)}.main{background:var(--bg-main);flex-direction:column;min-width:0;min-height:0;display:flex}.members{background:var(--bg-sidebar);padding:var(--sp-3) var(--sp-2);min-width:0;overflow-y:auto}.members-heading{padding:var(--sp-4) var(--sp-2) var(--sp-1);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-weight:700}.member-row{align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);text-align:left;display:flex}.member-row:hover{background:var(--bg-hover)}.member-row[data-offline]{opacity:.45}.member-name{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.auth-page{min-height:100%;padding:var(--sp-6);background:radial-gradient(circle at 30% 20%, var(--mention-bg), transparent 60%), var(--bg-rail);place-items:center;display:grid;overflow-y:auto}.auth-card{gap:var(--sp-4);width:min(440px,100%);padding:var(--sp-8);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);flex-direction:column;display:flex}.auth-brand{align-items:center;gap:var(--sp-2);color:var(--accent);font-weight:800;font-size:var(--fs-lg);letter-spacing:.02em;display:flex}.auth-switch{font-size:var(--fs-sm);color:var(--text-muted)}.invite-card{align-items:center;gap:var(--sp-4);padding:var(--sp-4);background:var(--bg-input);border-radius:var(--r-md);display:flex}.invite-card .server-icon{background:var(--accent);color:var(--accent-text);border-radius:30%}.invite-server{font-size:var(--fs-md);font-weight:700}.friends{flex-direction:column;height:100%;display:flex}.friends-body{padding:var(--sp-4) var(--sp-6);flex:1;overflow-y:auto}.tabs{gap:var(--sp-1);margin-left:var(--sp-4);display:flex}.tab{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);color:var(--text-muted);font-weight:600;font-size:var(--fs-sm)}.tab:hover{background:var(--bg-hover);color:var(--text)}.tab[aria-selected=true]{background:var(--bg-active);color:var(--text)}.tab-accent{color:var(--accent)}.friend-list .friend-row,.admin-row{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-2);border-top:1px solid var(--border);display:flex}.friend-text,.admin-main{flex-direction:column;flex:1;min-width:0;display:flex}.friend-name{font-weight:650}.friend-actions{gap:var(--sp-1);display:flex}.add-friend{gap:var(--sp-2);margin-bottom:var(--sp-6);flex-direction:column;display:flex}.add-friend-label{font-weight:600}.add-friend-row{gap:var(--sp-2);display:flex}.chat{flex-direction:column;height:100%;min-height:0;display:flex}.chat-header{align-items:center;gap:var(--sp-2);min-height:52px;padding:0 var(--sp-4);border-bottom:1px solid var(--border);color:var(--text-faint);flex-shrink:0;display:flex}.chat-title{font-size:var(--fs-base);color:var(--text);white-space:nowrap;font-weight:700}.chat-topic{min-width:0;padding-left:var(--sp-3);margin-left:var(--sp-2);border-left:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.chat-header-actions{gap:var(--sp-1);margin-left:auto;display:flex}.message-list{flex:1;min-height:0;position:relative}.message-list-loading{color:var(--text-muted);place-items:center;display:grid}.message-scroller{height:100%}.new-bar{top:0;left:var(--sp-4);right:var(--sp-4);z-index:2;padding:var(--sp-1) var(--sp-3);border-radius:0 0 var(--r-md) var(--r-md);background:var(--accent);color:var(--accent-text);font-size:var(--fs-sm);justify-content:space-between;font-weight:600;display:flex;position:absolute}.new-bar .link-btn{color:inherit}.list-edge{height:40px;font-size:var(--fs-sm);place-items:center;display:grid}.list-start{padding:var(--sp-8) var(--sp-4) var(--sp-4)}.list-start h3{font-size:var(--fs-xl)}.day-break,.new-divider{align-items:center;gap:var(--sp-2);margin:var(--sp-3) var(--sp-4) var(--sp-1);font-size:var(--fs-xs);color:var(--text-faint);font-weight:700;display:flex}.day-break:before,.day-break:after,.new-divider:before{content:"";background:var(--border);flex:1;height:1px}.new-divider{color:var(--ember)}.new-divider:before{background:var(--ember)}.new-divider span{padding:0 var(--sp-2);border-radius:var(--r-sm);background:var(--ember);color:#fff}.msg{padding:var(--sp-1) var(--sp-4) var(--sp-1) 0;margin-top:var(--sp-3);grid-template-columns:56px minmax(0,1fr);grid-template-areas:"reply reply""gutter body";display:grid;position:relative}.msg[data-grouped]{margin-top:0;padding-top:1px;padding-bottom:1px}.msg:hover,.msg:focus-within{background:var(--bg-hover)}.msg[data-mentioned]{background:var(--mention-bg);box-shadow:inset 3px 0 0 var(--accent)}.msg[data-highlight]{background:var(--highlight-bg)}.msg-gutter{grid-area:gutter;justify-content:center;padding-top:2px;display:flex}.msg-body{grid-area:body;min-width:0}.msg-head{align-items:baseline;gap:var(--sp-2);display:flex}.msg-author{font-weight:650}.msg-time{font-size:var(--fs-xs);color:var(--text-faint)}.msg-time-hover{visibility:hidden;font-size:.68rem;line-height:1.6rem}.msg:hover .msg-time-hover{visibility:visible}.msg-content{white-space:pre-wrap;overflow-wrap:anywhere}.msg-edited{font-size:var(--fs-xs);color:var(--text-faint)}.msg-reply{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted);text-align:left;grid-area:reply;min-width:0;margin-left:56px;display:flex}.msg-reply-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.msg-actions{top:-14px;right:var(--sp-4);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow);padding:2px;display:none;position:absolute}.msg:hover .msg-actions,.msg:focus-within .msg-actions{display:flex}.msg-system{gap:var(--sp-3);color:var(--text-muted);align-items:baseline;padding-left:56px;display:flex}.msg-pending{opacity:.6}.msg-pending[data-failed]{opacity:1}.msg-pending[data-failed] .msg-content{color:var(--danger)}.msg-sending{font-size:var(--fs-xs);color:var(--text-faint)}.msg-failed{align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);font-size:var(--fs-sm);color:var(--danger);display:flex}.edit-box{gap:var(--sp-1);flex-direction:column;display:flex}.md-code{background:var(--code-bg);font-family:var(--font-mono);border-radius:4px;padding:.1em .35em;font-size:.88em}.md-pre{margin:var(--sp-1) 0;padding:var(--sp-3);border-radius:var(--r-md);background:var(--code-bg);border:1px solid var(--border);font-family:var(--font-mono);white-space:pre-wrap;font-size:.88em;overflow-x:auto}.md-quote{margin:var(--sp-1) 0;padding-left:var(--sp-3);border-left:4px solid var(--text-faint)}.md-h{margin:var(--sp-1) 0;font-weight:750}.md-h1{font-size:var(--fs-lg)}.md-h2{font-size:var(--fs-md)}.md-list{padding-left:var(--sp-6);white-space:normal}ul.md-list{list-style:outside}.md-link{color:var(--accent);text-decoration:none}.md-link:hover{text-decoration:underline}.mention{background:var(--mention-chip);color:var(--accent);border-radius:4px;padding:0 .2em;font-weight:600}button.mention:hover,.mention[data-me]{background:var(--accent);color:var(--accent-text)}.mention-role{background:0 0;border:1px solid}.spoiler{background:var(--text-faint);cursor:pointer;border-radius:4px}.spoiler>span[aria-hidden]{visibility:hidden}.spoiler[data-shown]{background:var(--bg-active);cursor:auto}.reactions{gap:var(--sp-1);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.reaction{align-items:center;gap:var(--sp-1);height:26px;padding:0 var(--sp-2);border-radius:var(--r-md);background:var(--bg-elev);font-size:var(--fs-sm);border:1px solid #0000;display:inline-flex}.reaction[aria-pressed=true]{background:var(--mention-chip);border-color:var(--accent)}.reaction-count{font-weight:650}.emoji-picker{width:280px;max-height:300px;overflow-y:auto}.emoji-quick{padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);gap:2px;display:flex}.emoji-group-label{margin:var(--sp-2) 0 var(--sp-1);font-size:var(--fs-xs);color:var(--text-faint);text-transform:uppercase}.emoji-grid{grid-template-columns:repeat(8,1fr);gap:2px;display:grid}.emoji-btn{border-radius:var(--r-sm);width:32px;height:32px;font-size:1.3rem}.emoji-btn:hover{background:var(--bg-hover)}.attachments{gap:var(--sp-2);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.attachment-image img,.attachment-preview{border-radius:var(--r-md);object-fit:contain;background:var(--bg-elev);max-width:min(400px,100%);max-height:320px}.attachment-preview{max-height:160px}.file-card{align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--border);min-width:240px;color:var(--accent);display:flex}.file-card>div{flex-direction:column;min-width:0;display:flex}.file-name{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.typing{align-items:center;gap:var(--sp-2);height:22px;padding:0 var(--sp-4);font-size:var(--fs-xs);color:var(--text-muted);display:flex}.typing-dots{gap:3px;display:inline-flex}.typing-dots span{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1s ease-in-out infinite ember-bob}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes ember-bob{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.composer{margin:0 var(--sp-4) var(--sp-4);border-radius:var(--r-lg);background:var(--bg-input);border:1px solid var(--border)}.composer[data-drag]{border-color:var(--accent);box-shadow:0 0 0 2px var(--mention-chip)}.composer-row{align-items:flex-end;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);display:flex}.composer-input{min-height:40px;max-height:40vh;padding:var(--sp-2) var(--sp-1);resize:none;background:0 0;border:0;flex:1;line-height:1.4}.composer-input:focus{outline:none}.composer-send:not(:disabled){color:var(--accent)}.composer-locked{margin:0 var(--sp-4) var(--sp-4);padding:var(--sp-3);border-radius:var(--r-lg);background:var(--bg-input);color:var(--text-muted);text-align:center}.composer .form-error{padding:0 var(--sp-3) var(--sp-2)}.reply-bar{align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted);display:flex}.reply-bar>span{flex:1}.staged{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);display:flex;overflow-x:auto}.staged-item{align-items:center;gap:var(--sp-1);width:120px;padding:var(--sp-2);border-radius:var(--r-md);background:var(--bg-elev);font-size:var(--fs-xs);flex-direction:column;display:flex}.staged-item img{object-fit:cover;border-radius:var(--r-sm);height:64px}.staged-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.dialog-overlay{z-index:40;background:var(--bg-overlay);animation:fade-in var(--dur) var(--ease);position:fixed;inset:0}.dialog{z-index:41;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-lg);width:min(520px,100vw - 32px);max-height:calc(100vh - 48px);box-shadow:var(--shadow);animation:pop-in var(--dur) var(--ease);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.dialog-sm{width:min(440px,100vw - 32px)}.dialog-lg{width:min(760px,100vw - 32px)}.dialog-full{width:min(1040px,100vw - 32px);height:min(760px,100vh - 48px)}.dialog-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5) var(--sp-2);display:flex}.dialog-title{font-size:var(--fs-lg);font-weight:700}.dialog-desc{padding:0 var(--sp-5);color:var(--text-muted);font-size:var(--fs-sm)}.dialog-body{padding:var(--sp-3) var(--sp-5) var(--sp-5);flex:1;min-height:0;overflow-y:auto}.dialog-full .dialog-body{padding:0;display:flex}.dialog-foot{justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--bg-sidebar);border-radius:0 0 var(--r-lg) var(--r-lg);display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translate(-50%,-48%)scale(.98)}}.link-preview{gap:var(--sp-1);margin-top:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-input);flex-direction:column;display:flex}.popover,.menu{z-index:50;padding:var(--sp-2);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);animation:fade-in var(--dur) var(--ease)}.menu{min-width:220px}.menu-item{align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-sm);cursor:pointer;outline:none;font-weight:550;display:flex}.menu-item[data-highlighted]{background:var(--accent);color:var(--accent-text)}.menu-accent{color:var(--accent)}.menu-danger{color:var(--danger)}.menu-danger[data-highlighted]{background:var(--danger);color:#fff}.menu-sep{height:1px;margin:var(--sp-1) 0;background:var(--border)}.status-picker{width:260px}.status-option{align-items:flex-start;gap:var(--sp-3);width:100%;padding:var(--sp-2);border-radius:var(--r-sm);text-align:left;display:flex}.status-option .presence-static{margin-top:6px}.status-option:hover,.status-option[aria-checked=true]{background:var(--bg-hover)}.status-option>span:last-child{flex-direction:column;display:flex}.status-label{font-weight:600}.user-card{gap:var(--sp-3);flex-direction:column;width:280px;display:flex}.user-card-head{gap:var(--sp-3);align-items:center;display:flex}.user-card-head .presence-dot{border-color:var(--bg-elev)}.user-card-name{font-weight:700;font-size:var(--fs-md)}.role-chips{gap:var(--sp-1);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.role-chip{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-sm);background:var(--bg-input);font-size:var(--fs-xs);display:inline-flex}.role-toggle[aria-pressed=false]{opacity:.55}.role-toggle[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--accent)}.role-dot{background:var(--text-faint);border-radius:50%;width:10px;height:10px}.dot-small{background:var(--accent);border-radius:50%;width:6px;height:6px;margin-left:auto}.settings-layout{flex:1;width:100%;min-height:0;display:flex}.settings-nav{width:200px;padding:var(--sp-3);background:var(--bg-sidebar);border-radius:0 0 0 var(--r-lg);flex-direction:column;flex-shrink:0;gap:2px;display:flex;overflow-y:auto}.settings-nav hr{border:0;border-top:1px solid var(--border);width:100%;margin:var(--sp-2) 0}.settings-tab{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);text-align:left;color:var(--text-muted);font-weight:550}.settings-tab:hover{background:var(--bg-hover);color:var(--text)}.settings-tab[aria-selected=true]{background:var(--bg-active);color:var(--text)}.settings-danger{color:var(--danger)}.settings-panel{min-width:0;padding:var(--sp-5) var(--sp-6);flex:1;overflow-y:auto}.roles-layout{gap:var(--sp-5);align-items:flex-start;display:flex}.roles-list{gap:var(--sp-2);flex-direction:column;flex-shrink:0;width:220px;display:flex;position:sticky;top:0}.role-item{border-radius:var(--r-sm);align-items:center;display:flex}.role-item[aria-selected=true]{background:var(--bg-active)}.role-select{align-items:center;gap:var(--sp-2);min-width:0;padding:var(--sp-2);text-align:left;flex:1;display:flex}.role-move{display:flex}.role-move .icon-btn{width:24px;height:24px}.role-editor{flex:1;min-width:0}.perm-section{border:0;margin:0;padding:0}.perm-section legend{margin-bottom:var(--sp-1);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-weight:700}.perm-section .toggle-row{border-bottom:1px solid var(--border)}.tri-row{padding:var(--sp-2) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.tri{border-radius:var(--r-sm);border:1px solid var(--border);display:inline-flex;overflow:hidden}.tri-btn{width:32px;height:28px;color:var(--text-faint);place-items:center;display:grid}.tri-btn+.tri-btn{border-left:1px solid var(--border)}.tri-deny[aria-checked=true]{background:var(--danger);color:#fff}.tri-inherit[aria-checked=true]{background:var(--bg-active);color:var(--text)}.tri-allow[aria-checked=true]{background:var(--ok);color:#0d1a0e}.sticky-actions{bottom:calc(-1 * var(--sp-5));padding:var(--sp-3) 0;background:var(--bg-elev);position:sticky}.danger-zone{gap:var(--sp-3);margin-top:var(--sp-6);padding:var(--sp-4);border:1px solid var(--danger);border-radius:var(--r-md);background:var(--danger-bg);flex-direction:column;display:flex}.admin-list .admin-row:first-child{border-top:0}.radio-cards{gap:var(--sp-2);border:0;flex-direction:column;padding:0;display:flex}.radio-card{gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-input);cursor:pointer;display:flex}.theme-picker{gap:var(--sp-3);border:0;padding:0;display:flex}.theme-swatch{align-items:center;gap:var(--sp-1);cursor:pointer;flex-direction:column;font-weight:600;display:flex}.theme-swatch input{opacity:0;position:absolute}.theme-sample{border-radius:var(--r-md);border:2px solid var(--border);width:88px;height:56px}.theme-swatch input:checked+.theme-sample{border-color:var(--accent);box-shadow:0 0 0 2px var(--mention-chip)}.theme-swatch input:focus-visible+.theme-sample{outline:2px solid var(--focus);outline-offset:2px}[data-swatch=light] .theme-sample{background:linear-gradient(90deg,#e6dbce 30%,#fbf7f2 30%)}[data-swatch=dark] .theme-sample{background:linear-gradient(90deg,#15110e 30%,#241e19 30%)}[data-swatch=midnight] .theme-sample{background:linear-gradient(90deg,#040302 30%,#0e0c0a 30%)}.invite-link-row{gap:var(--sp-2);display:flex}.switcher{padding:var(--sp-4);gap:var(--sp-3);top:22%;transform:translate(-50%)}.switcher-input{font-size:var(--fs-md)}.switcher-results{max-height:50vh;overflow-y:auto}.switcher-item{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);cursor:pointer;display:flex}.switcher-item[aria-selected=true]{background:var(--bg-active)}.switcher-label{font-weight:600}.switcher-item .muted{font-size:var(--fs-xs);margin-left:auto}.switcher-empty{padding:var(--sp-3)}.lightbox-overlay{background:#000000d9}.lightbox{z-index:41;padding:var(--sp-8);place-items:center;display:grid;position:fixed;inset:0}.lightbox img{object-fit:contain;border-radius:var(--r-md);max-width:100%;max-height:calc(100vh - 64px)}.lightbox-close{top:var(--sp-4);right:var(--sp-4);color:#fff;position:absolute}.channel-row:has(.voice-users){flex-wrap:wrap}.channel-btn[data-connected]{color:var(--ok)}.voice-users{margin:0 0 var(--sp-1) var(--sp-6);flex-basis:100%;padding:0;list-style:none}.voice-user{align-items:center;gap:var(--sp-2);width:100%;padding:2px var(--sp-2);border-radius:var(--r-sm);color:var(--text-muted);font-size:var(--fs-sm);text-align:left;display:flex}.voice-user:hover{background:var(--bg-hover);color:var(--text)}.voice-avatar{transition:box-shadow var(--dur) var(--ease);border-radius:50%;display:inline-flex;box-shadow:0 0 0 2px #0000}.voice-user[data-speaking] .voice-avatar{box-shadow:0 0 0 2px var(--ok)}.voice-user-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.voice-flag-server{color:var(--danger)}.voice-menu{gap:var(--sp-1);flex-direction:column;min-width:220px;display:flex}.voice-menu-name{margin:0 0 var(--sp-1);font-weight:650}.voice-menu .menu-item:hover,.voice-menu .menu-item:focus-visible{background:var(--bg-hover)}.voice-volume,.voice-move{gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted);flex-direction:column;display:flex}.voice-panel{border-top:1px solid var(--border);background:var(--bg-rail);padding:var(--sp-1) var(--sp-2) 0}.voice-conn{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-1) 0;display:flex}.voice-conn-text{min-width:0;font-size:var(--fs-sm);flex-direction:column;flex:1;line-height:1.3;display:flex}.voice-conn-status{color:var(--text-muted);font-weight:650}.voice-conn[data-status=connected] .voice-conn-status{color:var(--ok)}.voice-conn[data-status=error] .voice-conn-status,.voice-conn-error{color:var(--danger)}.voice-conn-where,.voice-conn-mode{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.voice-conn-mode[data-active]{color:var(--ok)}.voice-leave{color:var(--danger)}.voice-controls{align-items:center;gap:var(--sp-1);display:flex}.voice-settings-link{font-size:var(--fs-xs);margin-left:auto}.call-overlay{right:var(--sp-6);bottom:var(--sp-6);z-index:60;align-items:center;gap:var(--sp-3);min-width:240px;padding:var(--sp-5);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);animation:fade-in var(--dur) var(--ease);flex-direction:column;display:flex;position:fixed}.call-title{align-items:center;gap:var(--sp-2);margin:0;font-weight:650;display:flex}.call-actions{gap:var(--sp-2);display:flex}.voice-devices{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.mic-test{align-items:center;gap:var(--sp-3);margin:var(--sp-4) 0;display:flex}.mic-meter{border-radius:var(--r-pill);background:var(--bg-input);flex:1;height:10px;overflow:hidden}.mic-meter-fill{background:var(--ok);height:100%;transition:width 60ms linear}.voice-mode{gap:var(--sp-4);margin:0 0 var(--sp-3);border:0;padding:0;display:flex}.voice-mode legend{margin-bottom:var(--sp-2);font-weight:650}.ptt-key{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:reduce){.voice-avatar,.call-overlay{transition:none;animation:none}}.embeds{gap:var(--sp-2);margin-top:var(--sp-2);flex-direction:column;display:flex}.embed{gap:var(--sp-1);max-width:432px;padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--border);border-inline-start:4px solid var(--border);display:grid}.embed-site{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.embed-title{color:var(--accent);overflow-wrap:anywhere;font-weight:600}.embed-desc{font-size:var(--fs-sm);color:var(--text);white-space:pre-line;overflow-wrap:anywhere;margin:0}.embed-image{margin-top:var(--sp-1);cursor:zoom-in;background:0 0;border:0;justify-self:start;padding:0}.embed-image img{border-radius:var(--r-sm);max-width:100%;height:auto;display:block}.automod-alert .automod-icon{color:var(--danger);margin-top:6px}.automod-summary{color:var(--text-muted);margin:0}.automod-quote{margin:var(--sp-1) 0 0;padding:var(--sp-2) var(--sp-3);border-inline-start:3px solid var(--danger);background:var(--danger-bg);border-radius:var(--r-sm);white-space:pre-wrap;overflow-wrap:anywhere}.check-row{gap:var(--sp-2);font-size:var(--fs-sm);align-items:center;display:flex}.automod-rule{gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elev);display:grid}.automod-rule-head{align-items:center;gap:var(--sp-3);display:flex}.automod-rule-head h4{flex:1;margin:0}.automod-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.automod-chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.automod-chips label{gap:var(--sp-1);padding:2px var(--sp-2);border:1px solid var(--border);border-radius:var(--r-pill);font-size:var(--fs-sm);align-items:center;display:inline-flex}textarea.input{resize:vertical;min-height:72px;font-family:inherit}.install-hint{inset-inline:var(--sp-3);bottom:calc(var(--sp-3) + env(safe-area-inset-bottom));z-index:50;align-items:center;gap:var(--sp-3);max-width:480px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow);margin-inline:auto;display:flex;position:fixed}.install-hint p{font-size:var(--fs-sm);flex:1;margin:0}.trusted-list li{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);display:flex}.app-tag{margin-left:var(--sp-1);border-radius:var(--r-sm);background:var(--accent);color:var(--accent-text);font-size:var(--fs-xs);vertical-align:.1em;padding:0 5px;font-weight:700;line-height:1.5;display:inline-block}.msg-interaction{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted);grid-area:reply;margin-left:56px;display:flex}.msg-interaction strong{color:var(--text);font-weight:600}.msg[data-ephemeral]{background:var(--highlight-bg)}.msg-ephemeral,.msg-loading{align-items:center;gap:var(--sp-1);margin:var(--sp-1) 0 0;font-size:var(--fs-xs);color:var(--text-muted);display:flex}.msg-loading{font-style:italic}.command-name{font-family:var(--font-mono);color:var(--text);font-weight:600}.command-desc{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);flex:1;overflow:hidden}.command-app{font-size:var(--fs-xs);color:var(--text-faint);align-items:center;gap:4px;display:inline-flex}.command-picker{padding:var(--sp-1);border-bottom:1px solid var(--border);max-height:260px;margin:0;list-style:none;overflow-y:auto}.command-option{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);cursor:pointer;display:flex}.command-option:hover,.command-option[aria-selected=true]{background:var(--bg-hover)}.command-form{gap:var(--sp-2);padding:var(--sp-3);flex-direction:column;display:flex}.command-form-head{align-items:center;gap:var(--sp-3);display:flex}.command-fields{gap:var(--sp-3);flex-wrap:wrap;display:flex}.command-field{flex:180px}.secret-once{padding:var(--sp-3);border:1px solid var(--accent);border-radius:var(--r-md);background:var(--bg-elev)}.secret-once p{margin:0 0 var(--sp-2)}.secret-value{min-width:0;font-family:var(--font-mono);flex:1}.app-row{align-items:flex-start}.webhook-form{flex-wrap:wrap;align-items:flex-end}.addbot-perms{gap:var(--sp-1);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);flex-direction:column;display:flex}.check-row{align-items:center;gap:var(--sp-2);display:flex}.composer-row[hidden]{display:none}.security-section{gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;display:flex}.security-section h4{margin:0}.security-danger{border-color:var(--danger)}.qr-code{border-radius:var(--r-sm);align-self:flex-start}.totp-secret{font-family:var(--font-mono);-webkit-user-select:all;user-select:all;word-break:break-all}.backup-codes{gap:var(--sp-2) var(--sp-5);padding:var(--sp-3) var(--sp-4);background:var(--bg-rail);border-radius:var(--r-sm);font-family:var(--font-mono);-webkit-user-select:all;user-select:all;grid-template-columns:repeat(2,max-content);margin:0;list-style:none;display:grid}.session-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.session-row{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--border);display:flex}.session-row:last-child{border-bottom:0}.session-name{align-items:center;gap:var(--sp-2);font-weight:600;display:flex}.session-current{padding:0 var(--sp-2);border-radius:var(--r-pill);background:var(--ember);color:#fff;font-size:.72rem}.notices-btn{position:relative}.notices-badge{pointer-events:none;position:absolute;top:-4px;right:-4px}.notices-panel{gap:var(--sp-2);flex-direction:column;width:300px;display:flex}.notices-title{margin:0}.notices-list{gap:var(--sp-2);flex-direction:column;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.notice{padding:var(--sp-2);border-radius:var(--r-sm);flex-direction:column;display:flex}.notice-unread{background:var(--bg-hover)}
