:root{--bg-guilds: #1e1f22;--bg-sidebar: #2b2d31;--bg-chat: #313338;--bg-elevated: #383a40;--bg-input: #383a40;--bg-overlay: rgba(0, 0, 0, .6);--text-normal: #dbdee1;--text-muted: #949ba4;--text-faint: #80848e;--text-strong: #f2f3f5;--text-link: #00a8fc;--int-normal: #949ba4;--int-hover: #dbdee1;--int-active: #f2f3f5;--brand: #5865f2;--brand-hover: #4752c4;--ok: #23a559;--warn: #f0b232;--danger: #f23f42;--line: #1f2023;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--r-sm: 4px;--r-md: 8px;--r-lg: 16px;--r-full: 999px;--fs-xs: 12px;--fs-sm: 14px;--fs-md: 16px;--fs-lg: 20px;--fs-xl: 24px;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--shadow-low: 0 1px 0 rgba(0, 0, 0, .2), 0 1.5px 0 rgba(0, 0, 0, .05);--shadow-high: 0 8px 16px rgba(0, 0, 0, .24);--t-fast: .1s;--t-med: .17s}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;overflow:hidden;background:var(--bg-chat);color:var(--text-normal);font-family:Segoe UI,system-ui,sans-serif;font-size:var(--fs-sm);line-height:1.4}[hidden]{display:none!important}h1,h2,h3,p{margin:0;font-size:inherit;font-weight:inherit}button,input,textarea,select{font:inherit;color:inherit}button{background:none;border:none;padding:0;cursor:pointer}a{color:var(--text-link)}img{max-width:100%}*{scrollbar-width:thin;scrollbar-color:var(--bg-guilds) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--bg-guilds);border-radius:var(--r-full)}::-webkit-scrollbar-track{background:transparent}:focus-visible{outline:2px solid var(--text-link);outline-offset:2px}:focus:not(:focus-visible){outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-sm);color:var(--int-normal);transition:color var(--t-fast),background-color var(--t-fast)}.icon-btn:hover{color:var(--int-hover);background:var(--bg-elevated)}.icon-btn[aria-pressed=true],.icon-btn[aria-expanded=true]{color:var(--int-active)}.icon-btn.danger,.icon-btn.danger:hover{color:var(--danger)}.icon-btn svg{display:block}.icon-btn:disabled{opacity:.4;cursor:default}.avatar{flex:none;width:var(--avatar-size, 32px);height:var(--avatar-size, 32px);border-radius:var(--r-full);object-fit:cover;background:var(--bg-elevated)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important}}#app{--col-guilds: 72px;--col-side: 240px;--col-members: 240px;height:100vh;display:grid;grid-template-columns:var(--col-guilds) var(--col-side) 1fr var(--col-members);grid-template-rows:48px auto auto 1fr auto auto;grid-template-areas:"guilds side head   head" "guilds side stream members" "guilds side video  members" "guilds side msgs   members" "guilds side typing members" "guilds side form   members"}#guilds{grid-area:guilds}#sidebar{grid-area:side;background:var(--bg-sidebar);display:flex;flex-direction:column;min-height:0;overflow:hidden}#channels{flex:1;min-height:0;overflow-y:auto}#voice-footer,#user-panel{flex:none}#channel-head{grid-area:head}#stream-panel{grid-area:stream}#video-panel{grid-area:video}#messages{grid-area:msgs;min-height:0;overflow-y:auto;overflow-anchor:none}#typing{grid-area:typing}#composer{grid-area:form}#members-panel{grid-area:members;background:var(--bg-sidebar);min-height:0;overflow-y:auto}#app.hide-members{--col-members: 0px}#app.hide-members #members-panel{display:none}@media(max-width:1100px){#app{--col-members: 0px}#app #members-panel{display:none}}@media(max-width:820px){#app{--col-guilds: 0px;--col-side: 200px}#app #guilds{display:none}}#login{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-guilds)}.login-card{width:min(400px,92vw);background:var(--bg-chat);border-radius:var(--r-md);box-shadow:var(--shadow-high);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4);text-align:center}.login-card h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-strong)}.login-sub{margin-top:calc(var(--sp-2) * -1);color:var(--text-muted);font-size:var(--fs-sm)}#login-error{color:var(--danger);font-size:var(--fs-sm)}#login-discord{background:var(--brand);color:var(--text-strong);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-md);font-weight:var(--fw-medium);transition:background-color var(--t-fast)}#login-discord:hover:not(:disabled){background:var(--brand-hover)}#login-discord:disabled{opacity:.6;cursor:default}.login-dev{border-top:1px solid var(--line);padding-top:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.login-dev h2{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);text-align:left}.login-dev form{display:flex;gap:var(--sp-2)}#dev-username{flex:1;min-width:0;background:var(--bg-input);border:none;border-radius:var(--r-sm);color:var(--text-normal);padding:var(--sp-2) var(--sp-3)}#dev-username::placeholder{color:var(--text-faint)}.login-dev button[type=submit]{flex:none;background:var(--bg-elevated);color:var(--text-normal);border-radius:var(--r-sm);padding:0 var(--sp-4);font-weight:var(--fw-medium);transition:color var(--t-fast)}.login-dev button[type=submit]:hover{color:var(--text-strong)}#guilds{background:var(--bg-guilds);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-3) 0;overflow-y:auto}#guild-home{position:relative;flex:none;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);background:var(--bg-sidebar);color:var(--text-strong);font-size:var(--fs-lg);font-weight:var(--fw-semibold);transition:border-radius var(--t-med),background-color var(--t-med)}#guild-home:hover,#guild-home[aria-current=true]{border-radius:var(--r-md);background:var(--brand)}#guild-home:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:4px;height:0;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--text-strong);transition:height var(--t-med)}#guild-home:hover:before{height:20px}#guild-home[aria-current=true]:before{height:40px}#channel-head{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);background:var(--bg-chat);border-bottom:1px solid var(--line);box-shadow:var(--shadow-low);position:relative;z-index:1}#channel-icon{flex:none;display:inline-flex;color:var(--text-faint)}#channel-name{flex:none;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-strong);white-space:nowrap}#channel-topic{min-width:0;padding-left:var(--sp-3);border-left:1px solid var(--line);color:var(--text-muted);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#channel-topic:empty{display:none}#head-actions{margin-left:auto;flex:none;display:flex;align-items:center;gap:var(--sp-1)}#status{flex:none;width:8px;height:8px;margin-left:var(--sp-2);border-radius:var(--r-full);background:var(--text-faint);transition:background-color var(--t-fast)}#status.online{background:var(--ok)}#status.offline{background:var(--danger)}.conn-bar{position:fixed;top:48px;left:calc(var(--col-guilds) + var(--col-side));right:0;z-index:2;padding:var(--sp-1) var(--sp-4);text-align:center;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--bg-guilds);background:var(--bg-elevated);pointer-events:none;visibility:hidden;transform:translateY(-100%);transition:transform var(--t-med),visibility var(--t-med)}.conn-bar.on{visibility:visible;transform:none}.conn-bar.warn{background:var(--warn)}.conn-bar.danger{background:var(--danger)}.conn-bar.ok{background:var(--ok)}#typing{min-height:20px;padding:0 var(--sp-4);font-size:var(--fs-xs);color:var(--text-muted)}#composer{margin:0 var(--sp-4) var(--sp-4);display:flex;align-items:flex-end;gap:var(--sp-2);background:var(--bg-input);border-radius:var(--r-md);padding:0 var(--sp-3)}#composer:focus-within{outline:2px solid var(--text-link);outline-offset:2px}#input{flex:1;min-width:0;background:none;border:none;resize:none;color:var(--text-normal);padding:11px 0;overflow-y:hidden}#input::placeholder{color:var(--text-faint)}#input:focus-visible{outline:none}.composer-count{flex:none;align-self:flex-end;margin-bottom:12px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--warn)}.composer-count.over{color:var(--danger)}#composer button[type=submit]{flex:none;height:32px;margin-bottom:5px;padding:0 var(--sp-4);background:var(--brand);color:var(--text-strong);border-radius:var(--r-sm);font-weight:var(--fw-medium);transition:background-color var(--t-fast)}#composer button[type=submit]:hover:not(:disabled){background:var(--brand-hover)}#composer button[type=submit]:disabled{background:var(--bg-elevated);color:var(--text-faint);cursor:default}#stream-panel{background:var(--bg-chat);border-bottom:1px solid var(--line);padding:var(--sp-2) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.stream-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.stream-panel-head h2{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stream-panel-actions{flex:none;display:flex;gap:var(--sp-1)}.stream-panel-actions button{background:var(--bg-elevated);border-radius:var(--r-sm);color:var(--text-normal);font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-3);transition:color var(--t-fast)}.stream-panel-actions button:hover{color:var(--text-strong)}#stream-unmute,#stream-unmute:hover{color:var(--danger)}#stream-box{background:#000;border-radius:var(--r-md);overflow:hidden;display:flex;justify-content:center}#stream-box video{display:block;width:100%;max-height:60vh;object-fit:contain}#video-panel{background:var(--bg-chat);border-bottom:1px solid var(--line);padding:var(--sp-2) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.video-panel-head{display:flex;align-items:center;justify-content:space-between}.video-panel-head h2{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}#video-collapse{background:var(--bg-elevated);border-radius:var(--r-sm);color:var(--text-normal);font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-3);transition:color var(--t-fast)}#video-collapse:hover{color:var(--text-strong)}#video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-2);max-height:40vh;overflow-y:auto}.video-tile{position:relative;aspect-ratio:16 / 9;background:#000;border-radius:var(--r-md);overflow:hidden}.video-tile video{width:100%;height:100%;object-fit:cover;display:block}.video-tile-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0 var(--sp-2);text-align:center;color:var(--text-muted);font-size:var(--fs-xs)}.video-tile-name{position:absolute;left:var(--sp-2);bottom:var(--sp-2);max-width:calc(100% - var(--sp-4));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs);color:var(--text-strong);background:var(--bg-overlay);border-radius:var(--r-sm);padding:1px var(--sp-2)}#sidebar-head{flex:none;display:flex;align-items:center;gap:var(--sp-2);height:48px;padding:0 var(--sp-4);border-bottom:1px solid var(--line);box-shadow:var(--shadow-low);color:var(--text-strong);font-size:var(--fs-md);font-weight:var(--fw-semibold);transition:background-color var(--t-fast)}#sidebar-head:hover{background:var(--bg-elevated)}#sidebar-head svg{margin-left:auto;color:var(--int-normal);transition:transform var(--t-fast)}#sidebar-head[aria-expanded=false] svg{transform:rotate(-90deg)}#channels{padding:var(--sp-2) var(--sp-2) var(--sp-4)}.cat+.cat{margin-top:var(--sp-4)}.cat-head{display:flex;align-items:center;gap:var(--sp-1);width:100%;padding:var(--sp-2) var(--sp-1) var(--sp-1);color:var(--text-faint);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em;text-align:left;transition:color var(--t-fast)}.cat-head:hover{color:var(--int-active)}.cat-head svg{flex:none;transition:transform var(--t-fast)}.cat-head[aria-expanded=false] svg{transform:rotate(-90deg)}.cat-list{margin:0;padding:0;list-style:none}.channel{position:relative;display:flex;align-items:center;gap:var(--sp-2);width:100%;height:32px;margin-top:2px;padding:0 var(--sp-2);border-radius:var(--r-sm);color:var(--int-normal);text-align:left;transition:background-color var(--t-fast),color var(--t-fast)}.channel:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:0;border-radius:var(--r-full);background:var(--text-strong);transition:height var(--t-fast)}.channel:hover{background:var(--bg-elevated);color:var(--int-hover)}.channel:hover:before{height:8px}.channel svg{flex:none;color:var(--text-faint)}.channel-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-medium)}.channel.is-open{background:var(--bg-elevated);color:var(--int-active)}.channel.is-open:before{height:20px}.channel.is-open svg{color:var(--int-active)}.channel.is-connected .channel-name,.channel.is-connected svg{color:var(--ok)}.voice-users{margin:0 0 var(--sp-1);padding:0 0 0 var(--sp-4);list-style:none}.voice-user{--avatar-size: 24px;display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);color:var(--int-normal);text-align:left;transition:background-color var(--t-fast),color var(--t-fast)}.voice-user .av{border-radius:var(--r-full);box-shadow:0 0 0 0 var(--ok);transition:box-shadow var(--t-fast)}.voice-user.speaking .av{box-shadow:0 0 0 2px var(--ok)}.voice-user.speaking{color:var(--int-active)}.voice-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm)}.voice-user.watchable:hover{background:var(--bg-elevated);color:var(--int-hover)}.voice-flag{flex:none;display:inline-flex;color:var(--text-faint)}.live-badge{flex:none;display:inline-flex;align-items:center;gap:2px;padding:0 var(--sp-1);border-radius:var(--r-sm);background:var(--danger);color:var(--text-strong);font-size:10px;font-weight:var(--fw-bold);letter-spacing:.02em}#voice-footer{padding:var(--sp-2) var(--sp-2) var(--sp-1);border-top:1px solid var(--line)}.voice-footer-info{display:flex;flex-direction:column;padding:0 var(--sp-2)}#voice-footer-status{color:var(--ok);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}#voice-footer.connecting #voice-footer-status{color:var(--warn)}#voice-footer-status.error{color:var(--danger)}#voice-footer-channel{color:var(--text-muted);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-footer-actions{display:flex;align-items:center;gap:var(--sp-1);margin-top:var(--sp-1)}#voice-leave{margin-left:auto;color:var(--danger)}#ptt-section{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--text-muted)}#ptt-section.transmitting{color:var(--ok)}.ptt-toggle{display:flex;align-items:center;gap:var(--sp-1);flex:1;min-width:0;cursor:pointer}.ptt-toggle input{flex:none;accent-color:var(--brand)}#ptt-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#ptt-key{flex:none;padding:2px var(--sp-2);border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--text-normal);font-size:var(--fs-xs);transition:color var(--t-fast)}#ptt-key:hover:not(:disabled){color:var(--text-strong)}#ptt-key:disabled{opacity:.6;cursor:default}#user-panel{position:relative;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--bg-guilds)}.user-panel-id{flex:1;min-width:0;display:flex;flex-direction:column;padding-left:var(--sp-1)}#me-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}#me-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:var(--fs-xs);line-height:1.2}#user-panel .icon-btn{width:28px;height:28px}.user-menu{position:absolute;right:var(--sp-2);bottom:calc(100% + var(--sp-1));min-width:160px;padding:var(--sp-1);border-radius:var(--r-md);background:var(--bg-elevated);box-shadow:var(--shadow-high);z-index:2}.menu-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-2);border-radius:var(--r-sm);color:var(--text-normal);font-size:var(--fs-sm);text-align:left;transition:background-color var(--t-fast),color var(--t-fast)}.menu-item:hover{background:var(--bg-guilds);color:var(--text-strong)}.menu-item.danger:hover{background:var(--danger);color:var(--text-strong)}:root{--av-c0: #7f9bec;--av-c1: #4fc38a;--av-c2: #e8a33d;--av-c3: #ef7ab8;--av-c4: #a992f0;--av-c5: #46c5e8}.av{--dot: calc(var(--avatar-size, 32px) * .34);position:relative;flex:none;display:block;width:var(--avatar-size, 32px);height:var(--avatar-size, 32px)}.av-cut .avatar{--hole: calc(var(--dot) * .5 + 2px);--hole-at: calc(100% - var(--dot) * .5);-webkit-mask-image:radial-gradient(circle var(--hole) at var(--hole-at) var(--hole-at),#0000 98%,#000 100%);mask-image:radial-gradient(circle var(--hole) at var(--hole-at) var(--hole-at),#0000 98%,#000 100%)}.av-dot{position:absolute;right:0;bottom:0;width:var(--dot);height:var(--dot);border-radius:var(--r-full)}.av-dot.av-online{background:var(--ok)}.av-dot.av-idle{background:var(--warn);-webkit-mask-image:radial-gradient(ellipse 58% 58% at 78% 16%,#0000 98%,#000 100%);mask-image:radial-gradient(ellipse 58% 58% at 78% 16%,#0000 98%,#000)}.av-dot.av-dnd{background:var(--danger);-webkit-mask-image:linear-gradient(#000 0 32%,#0000 32% 68%,#000 68% 100%);mask-image:linear-gradient(#000 0 32%,#0000 32% 68%,#000 68% 100%)}.av-dot.av-offline{background:var(--text-faint);-webkit-mask-image:radial-gradient(circle at 50% 50%,#0000 44%,#000 46%);mask-image:radial-gradient(circle at 50% 50%,#0000 44%,#000 46%)}.av-initial{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--av, var(--brand)) 24%,var(--bg-elevated));color:var(--av, var(--brand));font-size:calc(var(--avatar-size, 32px) * .42);font-weight:var(--fw-semibold);line-height:1;-webkit-user-select:none;user-select:none}#members{padding-bottom:var(--sp-4)}.members-head{position:sticky;top:0;z-index:1;padding:var(--sp-3) var(--sp-4) var(--sp-2);background:var(--bg-sidebar);color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.members-empty{padding:0 var(--sp-4);color:var(--text-muted);font-size:var(--fs-xs)}.member-group-head{padding:var(--sp-4) var(--sp-4) var(--sp-1);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em}.member-list{margin:0;padding:0 var(--sp-2);list-style:none}.member{width:100%;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);color:var(--int-normal);text-align:left;transition:background-color var(--t-fast),color var(--t-fast)}.member:not(:disabled):hover{background:var(--bg-elevated);color:var(--int-hover)}.member:disabled{cursor:default}.member-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-medium)}.member-group-offline .av{opacity:.45}.member-badge{flex:none;padding:0 var(--sp-1);border-radius:var(--r-sm);background:color-mix(in srgb,var(--brand) 26%,var(--bg-sidebar));color:var(--text-strong);font-size:var(--fs-xs);font-weight:var(--fw-medium);line-height:1.4;white-space:nowrap}.member-badge.is-owner{background:color-mix(in srgb,var(--warn) 26%,var(--bg-sidebar))}.member-badge.is-timeout{background:color-mix(in srgb,var(--danger) 26%,var(--bg-sidebar))}#messages{padding:var(--sp-4) 0 var(--sp-5);background:var(--bg-chat)}.msg-row{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);padding:2px var(--sp-4);transition:background-color var(--t-fast)}.msg-row:hover,.msg-row:focus-within{background:var(--bg-elevated)}.msg:not(.msg--cont) .msg-row{padding-top:var(--sp-3)}.msg.pending{opacity:.5}.msg--mention .msg-row{background:color-mix(in srgb,var(--warn) 8%,transparent);box-shadow:inset 2px 0 0 var(--warn)}.msg--mention .msg-row:hover,.msg--mention .msg-row:focus-within{background:color-mix(in srgb,var(--warn) 14%,transparent)}.msg-avatar{margin-top:2px}.msg--cont .msg-avatar{display:none}.msg-minitime{display:none;color:var(--text-faint);font-size:var(--fs-xs)}.msg--cont .msg-minitime{display:block;visibility:hidden;padding-right:var(--sp-3);text-align:right;line-height:22px}.msg--cont .msg-row:hover .msg-minitime,.msg--cont .msg-row:focus-within .msg-minitime{visibility:visible}.msg-body{min-width:0}.msg-head{display:flex;align-items:baseline;gap:var(--sp-2)}.msg--cont .msg-head{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.msg-author{font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-strong)}.msg-author-unknown{color:var(--text-faint);font-style:italic}.msg-time{font-size:var(--fs-xs);color:var(--text-faint)}.msg-content{display:block;font-size:var(--fs-md);line-height:22px;color:var(--text-normal);white-space:pre-wrap;overflow-wrap:anywhere}.msg-edited{font-size:var(--fs-xs);color:var(--text-faint)}.msg.msg--system .msg-row{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);color:var(--text-muted);font-size:var(--fs-sm)}.msg-system-icon{display:inline-flex;flex:none}.msg-system-icon--in{color:var(--ok)}.msg-system-icon--out{color:var(--danger)}.msg-system-name{font-weight:var(--fw-medium)}.msg-system-time{flex:none;color:var(--text-faint);font-size:var(--fs-xs)}.msg.pending.msg--failed{opacity:1}.msg--failed .msg-row{background:color-mix(in srgb,var(--danger) 7%,transparent);box-shadow:inset 2px 0 0 var(--danger)}.msg--failed .msg-row:hover,.msg--failed .msg-row:focus-within{background:color-mix(in srgb,var(--danger) 12%,transparent)}.msg--failed .msg-content{color:var(--text-muted)}.msg-failed{display:flex;align-items:baseline;gap:var(--sp-2);margin-top:var(--sp-1);font-size:var(--fs-xs)}.msg-failed-text{color:var(--danger)}.msg-failed-btn{color:var(--text-link);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.msg-failed-btn:hover{text-decoration:underline}.msg-failed-btn--danger{color:var(--text-faint)}.msg-failed-btn--danger:hover{color:var(--danger)}.msg-actions{position:absolute;top:-14px;right:var(--sp-4);display:flex;padding:2px;background:var(--bg-chat);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-low);opacity:0;transition:opacity var(--t-fast)}.msg-row:hover .msg-actions,.msg-row:focus-within .msg-actions{opacity:1}.msg-actions .icon-btn{width:28px;height:28px}.msg-actions .msg-action-danger:hover{color:var(--danger);background:var(--bg-elevated)}.msg-sep{display:none}.msg--day .msg-sep{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) var(--sp-4) var(--sp-2)}.msg-sep:before,.msg-sep:after{content:"";flex:1;height:1px;background:var(--line)}.msg-sep-label{flex:none;padding:0 var(--sp-1);background:var(--bg-chat);color:var(--text-faint);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.edit-box{display:block;margin:var(--sp-1) 0}.edit-input{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--bg-input);border:none;border-radius:var(--r-md);color:var(--text-normal);font-size:var(--fs-md)}.edit-hint{display:block;margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--text-faint)}.load-retry{display:block;margin:var(--sp-5) auto;padding:var(--sp-2) var(--sp-4);background:var(--bg-elevated);border-radius:var(--r-md);color:var(--text-normal);transition:color var(--t-fast)}.load-retry:hover{color:var(--text-strong)}.typing-dots{display:inline-flex;align-items:center;gap:3px;margin-right:var(--sp-2)}.typing-dots span{width:4px;height:4px;border-radius:var(--r-full);background:var(--text-muted);animation:typing-bounce 1.2s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.msg:focus{outline:none}.msg:focus-visible .msg-row{outline:2px solid var(--text-link);outline-offset:-2px}.msg:focus .msg-actions{opacity:1}@keyframes msg-flash{0%{background:color-mix(in srgb,var(--brand) 34%,transparent)}to{background:transparent}}.msg--flash .msg-row{animation:msg-flash 2s ease-out}.msg-reply{position:relative;display:flex;align-items:center;gap:var(--sp-2);min-width:0;margin-bottom:2px;color:var(--text-muted);font-size:var(--fs-sm);text-align:left}.msg-reply:before{content:"";position:absolute;top:50%;left:-30px;width:26px;height:12px;border-top:2px solid color-mix(in srgb,var(--text-faint) 55%,transparent);border-left:2px solid color-mix(in srgb,var(--text-faint) 55%,transparent);border-top-left-radius:6px}.msg-reply-avatar{flex:none}.msg-reply-author{flex:none;font-weight:var(--fw-medium);color:var(--text-normal)}.msg-reply-excerpt{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}button.msg-reply:hover .msg-reply-excerpt,button.msg-reply:hover .msg-reply-author{color:var(--text-strong)}.msg-reply--gone .msg-reply-excerpt{color:var(--text-faint);font-style:italic}.msg-reply--nojump{animation:msg-reply-shake .4s ease-in-out}@keyframes msg-reply-shake{0%,to{color:var(--text-muted)}50%{color:var(--warn)}}.msg-attachments{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-1)}.attachment{display:block;width:min(var(--att-w, 240px),100%);aspect-ratio:var(--att-ratio, 4 / 3);overflow:hidden;border-radius:var(--r-md);background:var(--bg-elevated)}.attachment:hover{filter:brightness(1.06)}.attachment-img{display:block;width:100%;height:100%;object-fit:contain}.attachment--erro{display:flex;align-items:center;justify-content:center;padding:var(--sp-3);cursor:default}.attachment-erro{color:var(--text-faint);font-size:var(--fs-xs);text-align:center;overflow-wrap:anywhere}.lightbox{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-5);background:var(--bg-overlay);z-index:30}.lightbox[hidden]{display:none}.lightbox-img{max-width:min(1200px,92vw);max-height:82vh;object-fit:contain;border-radius:var(--r-md)}.lightbox-close{position:absolute;top:var(--sp-4);right:var(--sp-4);color:var(--text-strong)}.lightbox-caption{color:var(--text-muted);font-size:var(--fs-sm);overflow-wrap:anywhere}.msg-embeds:empty{display:none}.link-card{display:flex;flex-direction:column;gap:2px;max-width:440px;margin-top:var(--sp-1);padding:var(--sp-2) var(--sp-3);border-left:4px solid var(--brand);border-radius:var(--r-sm);background:var(--bg-elevated);text-decoration:none}.link-card:hover{background:var(--bg-input)}.link-card:hover .link-card-title{text-decoration:underline}.link-card-site{font-size:var(--fs-xs);color:var(--text-faint)}.link-card-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-link)}.link-card-desc{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--fs-sm);color:var(--text-muted)}.msg-reactions{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-1)}.msg-reactions:empty{display:none}.reaction{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 var(--sp-2);border:1px solid transparent;border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--text-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;transition:background-color var(--t-fast),border-color var(--t-fast)}.reaction:hover{border-color:color-mix(in srgb,var(--text-faint) 60%,transparent);color:var(--text-normal)}.reaction--mine{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 22%,transparent);color:var(--text-strong)}.reaction--mine:hover{border-color:var(--brand-hover)}.reaction-emoji{font-size:15px;line-height:1}.reaction[aria-busy=true]{opacity:.55}.reaction--add{padding:0 6px;color:var(--text-faint)}.reaction--add:hover{color:var(--text-normal)}.reaction--add svg{display:block}.msg-menu{position:fixed;min-width:208px;padding:var(--sp-1);border-radius:var(--r-md);background:var(--bg-elevated);box-shadow:var(--shadow-high);z-index:5}.msg-menu .menu-item:focus{background:var(--bg-guilds);color:var(--text-strong);outline:none}.msg-menu .menu-item.danger:focus{background:var(--danger);color:var(--text-strong)}.msg-toast{position:fixed;bottom:84px;left:50%;transform:translate(-50%);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);background:var(--bg-guilds);color:var(--text-normal);font-size:var(--fs-sm);box-shadow:var(--shadow-high);opacity:0;pointer-events:none;transition:opacity var(--t-med);z-index:5}.msg-toast--on{opacity:1}.composer-reply{display:flex;align-items:center;gap:var(--sp-2);margin:0 var(--sp-4);padding:var(--sp-1) var(--sp-2) var(--sp-1) var(--sp-3);border-radius:var(--r-md) var(--r-md) 0 0;background:var(--bg-elevated);color:var(--text-normal);font-size:var(--fs-sm)}.composer-reply[hidden]{display:none}.composer-reply-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-group{min-width:232px}.menu-label{padding:var(--sp-2) var(--sp-2) var(--sp-1);color:var(--text-normal);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em}.menu-sep{height:1px;margin:var(--sp-1) 0;background:var(--line)}.status-item{align-items:flex-start}.status-item .av-dot{--dot: 10px;position:static;flex:none;margin-top:5px}.status-text{flex:1;min-width:0;display:flex;flex-direction:column}.status-name{color:var(--text-strong);font-weight:var(--fw-medium)}.status-hint{color:var(--text-normal);font-size:var(--fs-xs);line-height:1.35}.status-check{flex:none;display:flex;align-items:center;margin-top:2px;color:var(--text-strong)}.status-item[aria-checked=false] .status-check{visibility:hidden}#nickname-dialog .dialog-panel{width:min(420px,100%)}.nick-form{display:flex;flex-direction:column;gap:var(--sp-2)}.nick-label{color:var(--text-normal);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em}.nick-input{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-input);color:var(--text-strong)}.nick-input::placeholder{color:var(--text-normal)}.nick-input:disabled{opacity:.5}.nick-hint{color:var(--text-normal);font-size:var(--fs-xs);line-height:1.4}.nick-error{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:color-mix(in srgb,var(--danger) 20%,var(--bg-chat));color:var(--text-strong);font-size:var(--fs-sm)}.nick-btn{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--text-normal);font-weight:var(--fw-medium);transition:background-color var(--t-fast),color var(--t-fast)}.nick-btn:hover:not(:disabled){background:var(--bg-sidebar);color:var(--text-strong)}.nick-btn:disabled{opacity:.5;cursor:default}.nick-btn-primary{background:var(--brand);color:var(--text-strong)}.nick-btn-primary:hover:not(:disabled){background:var(--brand-hover);color:var(--text-strong)}.uc-pop{position:fixed;z-index:10;width:320px;max-height:calc(100vh - 16px);overflow-y:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);background:var(--bg-chat);border-radius:var(--r-md);box-shadow:var(--shadow-high)}.uc-head{display:flex;align-items:flex-start;gap:var(--sp-3)}.uc-avatar{flex:none;width:56px;height:56px}.uc-idbox{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--sp-2)}.uc-name{flex:1;min-width:0;color:var(--text-strong);font-size:var(--fs-md);font-weight:var(--fw-semibold);overflow-wrap:anywhere}.uc-handle{width:100%;color:var(--text-normal);font-size:var(--fs-xs);overflow-wrap:anywhere}.uc-sub{width:100%;color:var(--text-normal);font-size:var(--fs-xs)}.uc-since{width:100%;margin-top:var(--sp-1);color:var(--text-normal);font-size:var(--fs-xs)}.uc-badge{padding:0 var(--sp-1);border-radius:var(--r-sm);background:var(--brand);color:var(--text-strong);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.uc-badge-owner{background:var(--warn);color:var(--bg-guilds)}.uc-close{align-self:start}.uc-flag{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-sm);background:var(--bg-elevated);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.uc-flag svg{flex:none}.uc-flag-voice{color:var(--danger)}.uc-flag-chat{color:var(--warn)}.uc-body,.uc-section{display:flex;flex-direction:column;gap:var(--sp-2)}.uc-section-head{color:var(--text-normal);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em}.uc-row{padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-elevated)}.uc-label{color:var(--text-strong);font-weight:var(--fw-medium);cursor:pointer}.uc-desc{color:var(--text-normal);font-size:var(--fs-xs)}.uc-hint{margin-top:var(--sp-1);color:var(--text-normal);font-size:var(--fs-xs);font-style:italic}.uc-warn{margin-top:var(--sp-1);color:var(--warn);font-size:var(--fs-xs)}.uc-switch-row{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:var(--sp-3);row-gap:var(--sp-1)}.uc-switch-row>.settings-switch{grid-row:1 / span 2;grid-column:1}.uc-switch-row>.uc-label,.uc-switch-row>.uc-desc,.uc-switch-row>.uc-hint{grid-column:2}.uc-switch-row>.settings-switch:disabled{opacity:.4;cursor:default}.uc-switch-row:has(>.settings-switch:disabled)>.uc-label{color:var(--text-normal);cursor:default}.uc-volume{display:grid;grid-template-columns:auto auto 1fr;align-items:center;column-gap:var(--sp-2);row-gap:var(--sp-1)}.uc-volume>.uc-label{grid-column:1}.uc-value{grid-column:2;color:var(--text-normal);font-variant-numeric:tabular-nums}.uc-reset{grid-column:3;justify-self:end;padding:0 var(--sp-2);border-radius:var(--r-sm);color:var(--text-normal);font-size:var(--fs-xs);transition:background-color var(--t-fast),color var(--t-fast)}.uc-reset:hover{background:var(--bg-chat);color:var(--text-strong)}.uc-volume input[type=range]{grid-column:1 / -1;width:100%;margin:0;accent-color:var(--brand);cursor:pointer}.uc-volume>.uc-desc,.uc-volume>.uc-warn{grid-column:1 / -1}.uc-admin{margin-top:var(--sp-1);padding-top:var(--sp-3);border-top:1px solid var(--line)}.uc-danger-zone{margin-top:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--danger)}.uc-danger-zone>.uc-section-head{color:var(--danger)}.uc-destructive{border-left:2px solid var(--danger)}.uc-destructive .settings-switch:checked{background:var(--danger)}.uc-action-btn,.uc-danger-btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-chat);font-weight:var(--fw-medium);transition:background-color var(--t-fast),color var(--t-fast)}.uc-action-btn{color:var(--text-strong)}.uc-action-btn:hover:not(:disabled){background:var(--brand)}.uc-danger-btn{color:var(--danger)}.uc-danger-btn:hover:not(:disabled){background:var(--danger);color:var(--text-strong)}.uc-action-btn:disabled,.uc-danger-btn:disabled{opacity:.4;cursor:default}.uc-row>.uc-action-btn+.uc-desc,.uc-row>.uc-danger-btn+.uc-desc{margin-top:var(--sp-2)}.uc-role{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.uc-subrow{padding:0;background:none;border-radius:0}.uc-timeout{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.uc-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.uc-chip{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);background:var(--bg-chat);color:var(--text-strong);font-size:var(--fs-xs);font-weight:var(--fw-medium);transition:background-color var(--t-fast),color var(--t-fast)}.uc-chip:hover{background:var(--warn);color:var(--bg-guilds)}.uc-timeout-clear{margin-top:var(--sp-1)}.uc-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.uc-confirm-text{width:100%;color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.uc-reason{width:100%;padding:var(--sp-2);border:none;border-radius:var(--r-sm);background:var(--bg-input);color:var(--text-normal);font-size:var(--fs-sm)}.uc-reason::placeholder{color:var(--text-faint)}.uc-cancel{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--text-normal);transition:background-color var(--t-fast),color var(--t-fast)}.uc-cancel:hover:not(:disabled){background:var(--bg-chat);color:var(--text-strong)}.uc-error{padding:var(--sp-2);border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--danger);font-size:var(--fs-xs)}#sound-settings{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--bg-overlay)}.settings-panel{width:min(520px,100%);max-height:100%;display:flex;flex-direction:column;min-height:0;background:var(--bg-chat);border-radius:var(--r-md);box-shadow:var(--shadow-high);overflow:hidden}.settings-head{flex:none;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--line)}.settings-head h2{flex:1;min-width:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-strong)}.settings-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4);border-top:1px solid var(--line)}.settings-reset{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--text-normal);transition:background-color var(--t-fast),color var(--t-fast)}.settings-reset:hover{background:var(--bg-elevated);color:var(--text-strong)}.settings-done{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);background:var(--brand);color:var(--text-strong);font-weight:var(--fw-medium);transition:background-color var(--t-fast)}.settings-done:hover{background:var(--brand-hover)}.settings-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.settings-group{min-width:0;margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:var(--sp-3)}.settings-group:disabled{opacity:.5}.settings-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:var(--sp-3);row-gap:var(--sp-1);padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-elevated)}.settings-row>.settings-switch,.settings-row>.settings-test{grid-row:1 / span 2}.settings-row>.settings-switch{grid-column:1}.settings-row>.settings-label{grid-column:2;color:var(--text-strong);font-weight:var(--fw-medium);cursor:pointer}.settings-row>.settings-desc{grid-column:2;color:var(--text-normal);font-size:var(--fs-xs)}.settings-row>.settings-test{grid-column:3}.settings-switch{appearance:none;flex:none;position:relative;width:40px;height:24px;margin:0;border-radius:var(--r-full);background:var(--bg-guilds);cursor:pointer;transition:background-color var(--t-fast)}.settings-switch:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:var(--r-full);background:var(--text-strong);transition:transform var(--t-fast)}.settings-switch:checked{background:var(--brand)}.settings-switch:checked:before{transform:translate(16px)}.settings-switch:disabled{cursor:default}.settings-test{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-chat);color:var(--text-normal);font-size:var(--fs-xs);transition:background-color var(--t-fast),color var(--t-fast)}.settings-test:hover:not(:disabled){background:var(--bg-sidebar);color:var(--text-strong)}.settings-test:disabled{cursor:default}.settings-volume{grid-template-columns:1fr auto}.settings-volume label{grid-column:1;color:var(--text-strong);font-weight:var(--fw-medium)}.settings-volume .settings-value{grid-column:2;color:var(--text-normal);font-variant-numeric:tabular-nums}.settings-volume input[type=range]{grid-column:1 / -1;width:100%;margin:0;accent-color:var(--brand);cursor:pointer}.settings-note{padding:0 var(--sp-1);color:var(--text-normal);font-size:var(--fs-xs)}.settings-locked{padding:0 var(--sp-1);color:var(--warn);font-size:var(--fs-xs)}#soundboard{display:flex;flex-direction:column;gap:var(--sp-1);margin-top:var(--sp-1);padding:var(--sp-2);border-radius:var(--r-md);background:var(--bg-guilds)}#soundboard.sb-dragging{outline:2px dashed var(--brand);outline-offset:-2px}.sb-head{display:flex;align-items:center;gap:var(--sp-2)}.sb-title{flex:1;min-width:0;font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-normal)}.sb-add{display:inline-flex;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--text-normal);font-size:var(--fs-xs);transition:background-color var(--t-fast),color var(--t-fast)}.sb-add:hover{background:var(--brand);color:var(--text-strong)}.sb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--sp-1);max-height:30vh;overflow-y:auto}.sb-cell{position:relative;min-width:0}.sb-pad{position:relative;display:flex;align-items:center;gap:var(--sp-1);width:100%;min-width:0;padding:var(--sp-2);border-radius:var(--r-sm);background:var(--bg-sidebar);color:var(--text-normal);text-align:left;transition:background-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)}.sb-pad:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-strong)}.sb-pad:active:not(:disabled){background:var(--brand);color:var(--text-strong)}.sb-pad:disabled{opacity:.5;cursor:default}.sb-pad.sb-flash{box-shadow:inset 0 0 0 2px var(--ok);color:var(--text-strong)}.sb-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs)}.sb-key{flex:none;width:14px;color:var(--text-faint);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.sb-wait{flex:none;color:var(--warn);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.sb-edit{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:var(--r-sm);background:var(--bg-guilds);opacity:0;transition:opacity var(--t-fast)}.sb-cell:hover .sb-edit,.sb-edit:focus-visible{opacity:1}.sb-empty{padding:var(--sp-2);color:var(--text-normal);font-size:var(--fs-xs)}.sb-status{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-1);color:var(--text-normal);font-size:var(--fs-xs)}.sb-status.is-error{color:var(--danger)}.sb-status>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-silence{flex:none;padding:0 var(--sp-1);border-radius:var(--r-sm);color:var(--text-faint);font-size:var(--fs-xs);text-decoration:underline;transition:color var(--t-fast)}.sb-silence:hover{color:var(--text-strong)}.voice-user.sb-hit .av{box-shadow:0 0 0 2px var(--brand)}.voice-user.sb-hit{color:var(--int-active)}#soundboard-dialog{position:fixed;inset:0;z-index:21;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--bg-overlay)}.sb-dialog{width:min(440px,100%);max-height:100%;display:flex;flex-direction:column;min-height:0;background:var(--bg-chat);border-radius:var(--r-md);box-shadow:var(--shadow-high);overflow:hidden}.sb-dialog-head{flex:none;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--line)}.sb-dialog-head h2{flex:1;min-width:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-strong)}.sb-dialog-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.sb-dialog-foot{flex:none;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4);border-top:1px solid var(--line)}.sb-remove{margin-right:auto;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--danger);transition:background-color var(--t-fast),color var(--t-fast)}.sb-remove:hover:not(:disabled){background:var(--danger);color:var(--text-strong)}.sb-remove.is-confirming{background:var(--danger);color:var(--text-strong);font-weight:var(--fw-medium)}.sb-cancel{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--text-normal);transition:background-color var(--t-fast),color var(--t-fast)}.sb-cancel:hover{background:var(--bg-elevated);color:var(--text-strong)}.sb-submit{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);background:var(--brand);color:var(--text-strong);font-weight:var(--fw-medium);transition:background-color var(--t-fast)}.sb-submit:hover:not(:disabled){background:var(--brand-hover)}.sb-submit:disabled{opacity:.5;cursor:default}.sb-drop{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-5) var(--sp-4);border:2px dashed var(--line);border-radius:var(--r-md);background:var(--bg-elevated);text-align:center}.sb-drop.is-over{border-color:var(--brand)}.sb-drop-text{color:var(--text-strong);font-weight:var(--fw-medium)}.sb-drop-hint{color:var(--text-normal);font-size:var(--fs-xs)}.sb-pick{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);background:var(--bg-chat);color:var(--text-normal);transition:color var(--t-fast)}.sb-pick:hover{color:var(--text-strong)}.sb-file-input{display:none}.sb-summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-elevated)}.sb-summary-name{flex:1 0 100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-strong);font-weight:var(--fw-medium)}.sb-summary-meta{flex:1 0 100%;color:var(--text-normal);font-size:var(--fs-xs)}.sb-preview,.sb-swap{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-chat);color:var(--text-normal);font-size:var(--fs-xs);transition:color var(--t-fast)}.sb-preview:hover:not(:disabled),.sb-swap:hover:not(:disabled){color:var(--text-strong)}.sb-preview:disabled,.sb-swap:disabled{opacity:.5;cursor:default}.sb-field{display:grid;grid-template-columns:1fr auto;gap:var(--sp-1)}.sb-field label{color:var(--text-strong);font-weight:var(--fw-medium)}.sb-counter{color:var(--text-normal);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.sb-field input{grid-column:1 / -1;padding:var(--sp-2) var(--sp-3);border:none;border-radius:var(--r-sm);background:var(--bg-input);color:var(--text-strong)}.sb-field input:disabled{opacity:.5}.sb-error{color:var(--danger);font-size:var(--fs-xs)}.sb-progress{height:4px;border-radius:var(--r-full);background:var(--bg-elevated);overflow:hidden}.sb-bar{width:0;height:100%;background:var(--brand);transition:width var(--t-fast)}.sb-settings{display:flex;flex-direction:column;gap:var(--sp-3)}.sb-silenced-row-wrap{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-2)}.sb-silenced{display:flex;flex-direction:column;gap:var(--sp-1)}.sb-silenced-row{display:flex;align-items:center;gap:var(--sp-2)}.sb-silenced-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-strong)}.sb-silenced-empty{color:var(--text-normal);font-size:var(--fs-xs)}.dialog-overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);background:var(--bg-overlay)}.dialog-panel{width:min(560px,100%);max-height:100%;display:flex;flex-direction:column;min-height:0;background:var(--bg-chat);border-radius:var(--r-md);box-shadow:var(--shadow-high);overflow:hidden}.dialog-head{flex:none;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--line)}.dialog-head h2{flex:1;min-width:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text-strong)}.dialog-body{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.dialog-foot{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4);border-top:1px solid var(--line)}.vs-section{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-elevated)}.vs-section-title{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-strong);font-size:var(--fs-md);font-weight:var(--fw-semibold)}.vs-field{display:flex;flex-direction:column;gap:var(--sp-1)}.vs-field-label{color:var(--text-normal);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.vs-select{width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg-input);color:var(--text-strong);cursor:pointer}.vs-select:disabled{opacity:.5;cursor:default}.vs-btn{align-self:flex-start;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-chat);color:var(--text-normal);font-size:var(--fs-xs);font-weight:var(--fw-medium);transition:background-color var(--t-fast),color var(--t-fast)}.vs-btn:hover:not(:disabled){background:var(--bg-sidebar);color:var(--text-strong)}.vs-btn:disabled{opacity:.5;cursor:default}.vs-done{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);background:var(--brand);color:var(--text-strong);font-weight:var(--fw-medium);transition:background-color var(--t-fast)}.vs-done:hover{background:var(--brand-hover)}.vs-meter{height:8px;border-radius:var(--r-full);background:var(--bg-guilds);overflow:hidden}.vs-meter-fill{width:0;height:100%;border-radius:var(--r-full);background:var(--ok);transition:width 60ms linear}.vs-meter-fill.is-hot{background:var(--danger)}.vs-switch-row{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:var(--sp-3);row-gap:var(--sp-1);padding:var(--sp-2) 0}.vs-switch-row>.settings-switch{grid-row:1 / span 2;grid-column:1}.vs-switch-label{grid-column:2;color:var(--text-strong);font-weight:var(--fw-medium);cursor:pointer}.vs-switch-desc{grid-column:2;color:var(--text-normal);font-size:var(--fs-xs)}.vs-preview{width:100%;max-width:280px;aspect-ratio:16 / 9;border-radius:var(--r-sm);background:var(--bg-guilds);object-fit:cover;transform:scaleX(-1)}.vs-stat{display:grid;grid-template-columns:1fr auto;column-gap:var(--sp-3);row-gap:2px;padding:var(--sp-1) 0}.vs-stat-label{grid-column:1;color:var(--text-strong);font-weight:var(--fw-medium)}.vs-stat-value{grid-column:2;color:var(--text-normal);font-variant-numeric:tabular-nums}.vs-stat-desc{grid-column:1 / -1;color:var(--text-normal);font-size:var(--fs-xs)}.vs-pill{grid-column:2;justify-self:end;padding:2px var(--sp-2);border:1px solid var(--text-faint);border-radius:var(--r-full);background:var(--bg-chat);color:var(--text-strong);font-size:var(--fs-xs);font-weight:var(--fw-semibold)}.vs-pill.is-boa{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 22%,var(--bg-chat))}.vs-pill.is-media{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 22%,var(--bg-chat))}.vs-pill.is-ruim{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 22%,var(--bg-chat))}.vs-hint{color:var(--text-normal);font-size:var(--fs-xs)}.vs-status{min-height:1.4em;color:var(--text-strong);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.vs-note{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--warn);border-radius:var(--r-sm);background:var(--bg-chat);font-size:var(--fs-xs)}.vs-warn{color:var(--warn)}.vs-note .vs-btn{color:var(--text-normal);background:var(--bg-elevated)}.vs-note .vs-btn:hover:not(:disabled){color:var(--text-strong);background:var(--bg-sidebar)}.inv-intro{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.4;margin-bottom:var(--sp-4)}.inv-section+.inv-section{margin-top:var(--sp-5);border-top:1px solid var(--line);padding-top:var(--sp-4)}.inv-section-title{font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:var(--sp-3)}.inv-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3)}.inv-field{display:flex;flex-direction:column;gap:var(--sp-1);flex:1 1 150px;min-width:0}.inv-field-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted)}.inv-select{width:100%;background:var(--bg-input);color:var(--text-normal);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}.inv-btn{flex:none;background:var(--bg-elevated);color:var(--text-normal);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);display:inline-flex;align-items:center;gap:var(--sp-1);transition:background-color var(--t-fast),color var(--t-fast)}.inv-btn:hover:not(:disabled){color:var(--text-strong)}.inv-btn:disabled{opacity:.6;cursor:default}.inv-btn-primary{background:var(--brand);color:var(--text-strong);padding:var(--sp-2) var(--sp-5)}.inv-btn-primary:hover:not(:disabled){background:var(--brand-hover)}.inv-danger{color:var(--danger)}.inv-danger:hover:not(:disabled){background:var(--danger);color:var(--text-strong)}.inv-copy.is-copied{color:var(--ok)}.inv-copy.is-failed{color:var(--warn)}.inv-result{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);padding:var(--sp-3);background:var(--bg-guilds);border:1px solid var(--brand);border-radius:var(--r-sm)}.inv-link{flex:1;min-width:0;background:transparent;border:none;color:var(--text-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-sm);text-overflow:ellipsis}.inv-status{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted)}.inv-status.is-danger{color:var(--danger)}.inv-list{display:flex;flex-direction:column;gap:var(--sp-2);list-style:none;margin:0;padding:0}.inv-row{background:var(--bg-elevated);border-radius:var(--r-sm);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.inv-row.is-dead{opacity:.55}.inv-row-head{display:flex;align-items:center;gap:var(--sp-2)}.inv-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-strong);letter-spacing:.04em}.inv-pill{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--r-full);padding:2px var(--sp-2)}.inv-pill.is-new{background:var(--brand);color:var(--text-strong)}.inv-pill.is-dead{background:var(--bg-guilds);color:var(--text-muted)}.inv-meta{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-xs);color:var(--text-muted)}.inv-meta>span+span:before{content:"·";margin-right:var(--sp-3);color:var(--text-faint)}.inv-actions{display:flex;align-items:center;gap:var(--sp-2)}.inv-dead-note{font-size:var(--fs-xs);color:var(--text-faint);font-style:italic}.inv-empty{color:var(--text-faint);font-size:var(--fs-sm);padding:var(--sp-3);text-align:center}.inv-done{margin-left:auto;background:var(--brand);color:var(--text-strong);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-5);font-weight:var(--fw-medium);transition:background-color var(--t-fast)}.inv-done:hover{background:var(--brand-hover)}#invite-landing{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:var(--bg-guilds);overflow-y:auto}.inv-landing-card{width:min(440px,100%);background:var(--bg-chat);border-radius:var(--r-md);box-shadow:var(--shadow-high);padding:var(--sp-6);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);text-align:center}.inv-landing-card:focus{outline:none}.inv-landing-badge{width:64px;height:64px;border-radius:var(--r-lg);background:var(--brand);color:var(--text-strong);font-size:var(--fs-xl);font-weight:var(--fw-bold);display:flex;align-items:center;justify-content:center}.inv-landing-badge.is-bad{background:var(--bg-elevated);color:var(--warn)}.inv-landing-kicker{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.inv-landing-card h1{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-strong);line-height:1.2;overflow-wrap:anywhere}.inv-landing-lead{color:var(--text-normal);font-size:var(--fs-md);line-height:1.45;overflow-wrap:anywhere}.inv-landing-lead strong{color:var(--text-strong);font-weight:var(--fw-semibold)}.inv-landing-cta{width:100%;margin-top:var(--sp-2);background:var(--brand);color:var(--text-strong);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-md);font-weight:var(--fw-medium);transition:background-color var(--t-fast)}.inv-landing-cta:hover:not(:disabled){background:var(--brand-hover)}.inv-landing-cta:disabled{opacity:.6;cursor:default}.inv-landing-fine{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4}.inv-landing-skip{margin-top:var(--sp-2);color:var(--text-muted);font-size:var(--fs-sm);text-decoration:underline;transition:color var(--t-fast)}.inv-landing-skip:hover{color:var(--text-normal)}.md-strong{font-weight:var(--fw-bold)}.md-em{font-style:italic}.md-underline{text-decoration:underline}.md-strike{text-decoration:line-through}.md-code,.md-codeblock{font-family:ui-monospace,Cascadia Mono,Consolas,Liberation Mono,monospace;font-size:85%;background:var(--bg-guilds);border:1px solid var(--line);border-radius:var(--r-sm)}.md-code{padding:1px var(--sp-1);white-space:break-spaces}.md-codeblock{display:block;margin:var(--sp-2) 0;padding:var(--sp-2) var(--sp-3);overflow-x:auto;white-space:pre;color:var(--text-normal)}.md-codeblock code{font:inherit;background:none;border:none;padding:0}.md-quote{display:block;margin:var(--sp-1) 0;padding-left:var(--sp-3);border-left:4px solid var(--bg-elevated);color:var(--text-muted)}.md-link{color:var(--text-link);text-decoration:none;overflow-wrap:anywhere}.md-link:hover{text-decoration:underline}.md-mention{padding:0 2px;border-radius:var(--r-sm);font-weight:var(--fw-medium);color:var(--text-strong);background:color-mix(in srgb,var(--brand) 30%,transparent);display:inline;text-align:inherit;transition:background-color var(--t-fast)}.md-mention:hover{background:var(--brand)}.md-mention--self{background:color-mix(in srgb,var(--warn) 25%,transparent);color:var(--warn)}.md-mention--self:hover{background:color-mix(in srgb,var(--warn) 40%,transparent)}span.md-mention{cursor:default}.channel.has-unread .channel-name{color:var(--int-active);font-weight:var(--fw-bold)}.channel.has-unread svg{color:var(--int-hover)}.unread-badge{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-full);background:var(--bg-guilds);color:var(--text-normal);font-size:var(--fs-xs);font-weight:var(--fw-bold);line-height:1;font-variant-numeric:tabular-nums}.unread-badge--mention{background:color-mix(in srgb,var(--danger) 78%,var(--bg-guilds));color:var(--text-strong)}.unread-line{display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-2) var(--sp-4) 0}.unread-line:before{content:"";flex:1;height:1px;background:var(--danger)}.unread-line-label{flex:none;color:color-mix(in srgb,var(--danger) 65%,var(--text-strong));font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em}.msg:has(.unread-line) .msg-row{padding-top:var(--sp-3)}#composer{position:relative}#composer:has(.jump-bar:focus){outline:none}.jump-bar{position:absolute;left:0;right:0;bottom:calc(100% + var(--sp-1));display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm) var(--r-sm) 0 0;background:var(--brand-hover);color:var(--text-strong);font-size:var(--fs-xs);font-weight:var(--fw-medium);text-align:left;box-shadow:var(--shadow-low);transition:background-color var(--t-fast)}.jump-bar:hover{background:color-mix(in srgb,var(--brand-hover) 85%,var(--bg-guilds))}.jump-bar-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jump-bar-action{flex:none;font-weight:var(--fw-semibold)}.jump-bar svg{flex:none}.emoji-btn{align-self:flex-end;margin-bottom:5px}.emoji-picker{position:fixed;display:flex;flex-direction:column;width:358px;max-width:calc(100vw - var(--sp-4));background:var(--bg-sidebar);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-high);padding:var(--sp-2);gap:var(--sp-2)}.emoji-picker[hidden]{display:none}.ep-search{flex:none;width:100%;padding:var(--sp-2) var(--sp-3);background:var(--bg-chat);border:none;border-radius:var(--r-sm);color:var(--text-normal);font-size:var(--fs-sm)}.ep-search::placeholder{color:var(--text-faint)}.ep-tabs{flex:none;display:flex;gap:var(--sp-1);padding-bottom:var(--sp-2);border-bottom:1px solid var(--line)}.ep-tab{flex:1;height:28px;border-radius:var(--r-sm);font-size:var(--fs-md);line-height:1;transition:background-color var(--t-fast)}.ep-tab:hover{background:var(--bg-elevated)}.ep-grid{position:relative;display:grid;grid-template-columns:repeat(9,1fr);gap:2px;height:280px;overflow-y:auto;scrollbar-gutter:stable}.ep-cat{grid-column:1 / -1;padding:var(--sp-2) var(--sp-1) var(--sp-1);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;position:sticky;top:0;background:var(--bg-sidebar)}.ep-emoji{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:var(--r-sm);font-size:22px;line-height:1;transition:background-color var(--t-fast)}.ep-emoji:hover,.ep-emoji.is-active{background:var(--bg-elevated)}.ep-emoji.is-active{outline:2px solid var(--text-link);outline-offset:-2px}.ep-preview{flex:none;display:flex;align-items:center;gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--line);min-height:28px}.ep-preview-char{font-size:var(--fs-xl);line-height:1}.ep-preview-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emoji-ac{position:fixed;width:320px;max-width:calc(100vw - var(--sp-4));background:var(--bg-sidebar);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-high);padding:var(--sp-1)}.emoji-ac[hidden]{display:none}.emoji-ac-list{display:flex;flex-direction:column;max-height:240px;overflow-y:auto}.emoji-ac-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);text-align:left;color:var(--text-muted)}.emoji-ac-item:hover,.emoji-ac-item.is-active{background:var(--bg-elevated);color:var(--text-normal)}.emoji-ac-char{flex:none;font-size:var(--fs-lg);line-height:1}.emoji-ac-name{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.emoji-picker{width:calc(100vw - var(--sp-4))}.ep-grid{grid-template-columns:repeat(7,1fr);height:240px}.emoji-ac{width:calc(100vw - var(--sp-4))}}#composer{flex-wrap:wrap}.composer-tray{flex-basis:100%;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--line);margin-bottom:var(--sp-2)}.composer-tray-items{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.composer-tray-items:empty{display:none}.composer-tray-msg{color:var(--warn);font-size:var(--fs-xs)}.attach-card{position:relative;display:flex;align-items:center;gap:var(--sp-2);width:220px;padding:var(--sp-2);background:var(--bg-chat);border:1px solid var(--line);border-radius:var(--r-sm)}.attach-thumb{flex:none;width:40px;height:40px;border-radius:var(--r-sm);object-fit:cover;background:var(--bg-elevated)}.attach-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--text-faint)}.attach-meta{flex:1;min-width:0;display:flex;flex-direction:column}.attach-name{color:var(--text-normal);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attach-sub{color:var(--text-faint);font-size:var(--fs-xs)}.attach-remove{width:24px;height:24px}.attach-card[data-estado=enviando] .attach-thumb{opacity:.45;animation:attach-pulse 1.2s ease-in-out infinite}@keyframes attach-pulse{50%{opacity:.85}}.attach-card.is-error{border-color:var(--danger);cursor:pointer}.attach-card.is-error .attach-sub{color:var(--danger)}#composer.is-dragging{outline:2px dashed var(--brand);outline-offset:2px}.attach-btn{align-self:flex-end;margin-bottom:5px}#search-dialog .dialog-panel{width:min(720px,100%);height:min(640px,100%)}.dialog-body.sr-body{overflow:hidden;gap:var(--sp-3)}.sr-bar{flex:none;display:flex;align-items:center;gap:var(--sp-3)}.sr-field{flex:1;min-width:0;padding:var(--sp-2) var(--sp-3);background:var(--bg-input);border:none;border-radius:var(--r-sm);color:var(--text-normal);font-size:var(--fs-md)}.sr-field::placeholder{color:var(--text-faint)}.sr-field::-webkit-search-cancel-button{display:none}.sr-filter{flex:none;display:flex;align-items:center;gap:var(--sp-2);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;max-width:200px}.sr-filter span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-filter:has(input:disabled){opacity:.4;cursor:default}.sr-status{flex:none;display:flex;flex-direction:column;gap:var(--sp-1);color:var(--text-muted);font-size:var(--fs-sm)}.sr-status.is-buscando{color:var(--text-faint)}.sr-status.is-ok{color:var(--text-faint);font-size:var(--fs-xs)}.sr-status.is-erro{flex-direction:row;align-items:center;gap:var(--sp-3);color:var(--danger)}.sr-hint{color:var(--text-faint);font-size:var(--fs-xs)}.sr-retry{flex:none;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--text-normal);font-size:var(--fs-xs);transition:background-color var(--t-fast)}.sr-retry:hover{background:var(--bg-input)}.sr-list{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable}.sr-group{position:sticky;top:0;padding:var(--sp-2) var(--sp-1);background:var(--bg-chat);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em}.sr-hit{display:block;width:100%;text-align:left;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border-left:2px solid transparent;cursor:pointer}.sr-hit:hover,.sr-hit.is-active{background:var(--bg-elevated);border-left-color:var(--brand)}.sr-hit[aria-disabled=true]{cursor:default}.sr-hit[aria-disabled=true]:hover{background:none;border-left-color:transparent}.sr-hit-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:2px}.sr-hit-author{color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.sr-hit-time{color:var(--text-faint);font-size:var(--fs-xs)}.sr-hit-text{color:var(--text-normal);font-size:var(--fs-sm);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;word-break:break-word}.sr-hit-text mark{background:none;color:var(--text-link);font-weight:var(--fw-semibold)}.msg.msg-highlight .msg-row{background:color-mix(in srgb,var(--brand) 14%,transparent);box-shadow:inset 2px 0 0 var(--brand);transition:background-color var(--t-med)}
