:root{--bg-primary:#111214;--bg-secondary:#2b2d31;--bg-tertiary:#1e1f22;--bg-hover:#35373c;--bg-modifier:#3f4147;--bg-input:#111214;--text-primary:#f2f3f5;--text-secondary:#b5bac1;--text-muted:#949ba4;--accent:#5ba89b;--accent-hover:#4a9084;--accent-15:#5ba89b26;--accent-25:#5ba89b40;--accent-50:#5ba89b80;--danger:#f23f42;--danger-15:#f23f4226;--danger-50:#f23f4280;--danger-text:#f8a9ab;--on-accent:#042f2e;--success:#23a55a;--mention:#c9cdfb;--border:#ffffff1a;--border-strong:#ffffff2e;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #0009;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-full:9999px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Space Grotesk", var(--font);--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:15px;--fs-lg:17px;--fs-xl:22px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;background-color:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);font-family:var(--font);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;line-height:1.5;overflow:hidden}input[type=search]{appearance:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}input[type=search]::-webkit-search-decoration{-webkit-appearance:none}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:where(button,[role=button],a,input):focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(.form-group input,.message-input,.gif-search input,.gif-input,.gif-input-affix input):focus-visible{outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.emoji-opt:hover,.btn-primary:active{transform:none}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#ffffff1a}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.loading-screen{background:var(--bg-primary);justify-content:center;align-items:center;height:100vh;display:flex}.spinner{border:3px solid #ffffff1a;border-top-color:var(--accent);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:16px}.form-group label{font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px;font-weight:600;display:block}.form-group input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-size:var(--fs-base);font-family:var(--font);outline:none;padding:10px 14px;transition:border-color .15s,box-shadow .15s}.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-15)}.form-group input::placeholder{color:var(--text-muted)}.btn-primary{background:var(--accent);width:100%;color:var(--on-accent);border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:600;font-family:var(--font);cursor:pointer;border:none;margin-top:8px;padding:11px;transition:background .15s,transform .1s}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{transform:scale(.98)}.error-alert{background:var(--danger-15);border:1px solid var(--danger-50);border-radius:var(--radius-md);color:var(--danger-text);font-size:var(--fs-base);margin-bottom:16px;padding:10px 14px}.auth-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:40px 36px}.auth-logo{justify-content:center;margin-bottom:12px;display:flex}.auth-title{font-size:var(--fs-xl);text-align:center;font-weight:700;font-family:var(--font-display);letter-spacing:-.02em;margin-bottom:4px}.auth-subtitle{font-size:var(--fs-base);color:var(--text-muted);text-align:center;margin-bottom:28px}.auth-tabs{background:var(--bg-primary);border-radius:var(--radius-md);gap:2px;margin-bottom:24px;padding:4px;display:flex}.auth-tabs .tab{color:var(--text-secondary);font-size:var(--fs-base);font-weight:500;font-family:var(--font);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:9px 12px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.auth-tabs .tab.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.auth-tabs .tab:hover:not(.active){color:var(--text-primary)}.auth-divider{color:var(--text-muted);font-size:var(--fs-sm);align-items:center;gap:12px;margin:20px 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.btn-google{background:var(--bg-tertiary);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--fs-base);font-weight:500;font-family:var(--font);cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:11px;transition:background .15s;display:flex}.btn-google:hover{background:var(--bg-hover)}.auth-success{flex-direction:column;align-items:center;gap:16px;padding:16px 0;display:flex}.success-icon{background:var(--success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;display:flex}.chat-layout{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.chat-header{padding:env(safe-area-inset-top,0px) max(20px, env(safe-area-inset-right,0px)) 0 max(20px, env(safe-area-inset-left,0px));height:calc(56px + env(safe-area-inset-top,0px));background:color-mix(in srgb, var(--bg-primary) 80%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);box-shadow:var(--shadow-sm);z-index:10;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header-brand{flex-shrink:0;align-items:center;gap:10px;display:flex}.brand-icon{border-radius:6px;flex-shrink:0;width:26px;height:26px}.brand-name{font-size:var(--fs-lg);letter-spacing:-.02em;white-space:nowrap;font-weight:700;font-family:var(--font-display)}.header-user{align-items:center;gap:12px;display:flex}@media (width<=640px){.chat-header{padding-left:max(12px, env(safe-area-inset-left,0px));padding-right:max(12px, env(safe-area-inset-right,0px))}.header-brand{gap:8px;min-width:0}.brand-name{font-size:var(--fs-md);text-overflow:ellipsis;overflow:hidden}.header-user{flex-shrink:0;gap:6px}.header-email,.user-menu-btn .chevron{display:none}.user-menu-btn{padding:4px}.online-count{white-space:nowrap}.online-popover{max-width:calc(100vw - 24px)}}@media (display-mode:fullscreen) and (orientation:portrait) and (width<=640px),(display-mode:standalone) and (orientation:portrait) and (width<=640px){.chat-header{--cutout-gap:84px;grid-template-columns:minmax(0, 1fr) var(--cutout-gap) minmax(0, 1fr);height:56px;padding-top:0;display:grid}.brand-name{display:none}.header-brand,.online-count-wrap{grid-area:1/1}.online-count-wrap{justify-self:start;margin:0 0 0 38px}.header-user{display:contents}.btn-notif,.user-menu-wrap{grid-area:1/3}.user-menu-wrap{justify-self:end}.btn-notif{justify-self:end;margin-right:46px}.online-popover{left:-38px}}.header-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.header-email{font-size:var(--fs-md);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.message-area{-webkit-overflow-scrolling:touch;overscroll-behavior:none;background:var(--bg-tertiary);flex-direction:column;flex:1;padding:12px 8px 8px;display:flex;overflow:hidden auto}.empty-state{text-align:center;color:var(--text-muted);font-size:var(--fs-base);margin-top:auto;padding:40px 0}.gif-panel{z-index:40;background:var(--bg-secondary);border-top:1px solid var(--border);gap:8px;padding:8px 20px;display:flex;position:absolute;bottom:100%;left:0;right:0;overflow-x:auto}.gif-chip{background:var(--bg-modifier);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--fs-md);font-family:var(--font);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:3px;transition:border-color .1s,background .1s;display:flex}.gif-chip:hover,.gif-chip.active{border-color:var(--accent)}.gif-chip.active{background:var(--bg-secondary)}.gif-chip-main{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0 2px 0 0;display:flex}.gif-chip-copy{border-radius:var(--radius-full);width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .1s,background .1s;display:flex}.gif-chip-copy:hover{color:var(--text-primary);background:var(--bg-primary)}.gif-chip-copy.copied{color:var(--accent)}.gif-chip-thumb{aspect-ratio:16/9;border-radius:var(--radius-full);background:var(--bg-primary);height:28px;display:block;overflow:hidden}.gif-chip-thumb img,.gif-chip-thumb video{object-fit:cover;width:100%;height:100%;display:block}.input-bar{padding:12px 20px 16px;padding-bottom:max(16px, env(safe-area-inset-bottom));background:var(--bg-tertiary);flex-shrink:0;position:relative}@media (pointer:coarse){.input-bar:has(.message-input:focus){padding-bottom:12px}}.composer{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:flex-end;gap:4px;padding:4px 6px;transition:border-color .15s,box-shadow .15s;display:flex}.composer:focus-within{border-color:var(--accent-50);box-shadow:0 0 0 3px var(--accent-15)}.message-input{min-width:0;color:var(--text-primary);font-size:var(--fs-base);font-family:var(--font);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:84px;padding:8px 4px;overflow-y:auto}@media (width<=640px){.message-input{font-size:16px}}.composer-btn{border-radius:var(--radius-md);min-width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;transition:background .15s,color .15s,opacity .15s;display:flex}.composer-btn:hover,.composer-btn.active{background:var(--bg-hover);color:var(--text-primary)}.composer-gif{font-family:var(--font-display);font-size:var(--fs-sm);letter-spacing:.04em;font-weight:700}.composer-send{border-radius:var(--radius-full);background:var(--accent);width:32px;color:var(--on-accent);padding:0}.composer-send:hover{background:var(--accent-hover);color:var(--on-accent)}.composer-send:disabled{background:var(--bg-hover);color:var(--text-muted);cursor:default;opacity:.6}.composer-emoji-wrap{flex-shrink:0;position:relative}.composer-gif-wrap{flex-shrink:0}.composer-gif-popover{z-index:50;animation:.12s msgIn;position:absolute;bottom:calc(100% + 8px);left:0;right:0}.gif-picker{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);max-height:min(420px,60vh);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.gif-picker-search{color:var(--text-muted);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 12px;display:flex}.gif-picker-search input{min-width:0;color:var(--text-primary);font-family:var(--font);font-size:var(--fs-base);background:0 0;border:none;outline:none;flex:1}.gif-picker-search input::placeholder{color:var(--text-muted)}@media (width<=640px){.gif-picker-search input{font-size:16px}}.gif-picker-scroll{flex:1;padding:8px;overflow-y:auto}.gif-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.gif-picker-tile{background:var(--bg-hover);border-radius:var(--radius-sm);color:var(--text-secondary);border:1px solid #0000;transition:border-color .12s,color .12s;position:relative;overflow:hidden}.gif-picker-tile:hover{border-color:var(--accent);color:var(--text-primary)}.gif-picker-pick{width:100%;color:inherit;font-family:var(--font);cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;padding:0;display:flex}.gif-picker-copy{border-radius:var(--radius-full);width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .1s,background .1s;display:flex;position:absolute;bottom:1px;right:2px}.gif-picker-copy:hover{color:var(--text-primary);background:var(--bg-primary)}.gif-picker-copy.copied{color:var(--accent)}.gif-more-divider{color:var(--text-muted);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;grid-column:1/-1;align-items:center;gap:8px;margin-top:4px;display:flex}.gif-more-divider:after{content:"";border-top:1px solid var(--border);flex:1}.gif-picker-thumb{aspect-ratio:16/9;background:var(--bg-primary);display:block;overflow:hidden}.gif-picker-thumb img,.gif-picker-thumb video{object-fit:cover;width:100%;height:100%;display:block}.gif-picker-tag{font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;padding:3px 24px 3px 6px;font-weight:600;overflow:hidden}.gif-picker-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-md);padding:24px 0}.gif-picker-footer{border-top:1px solid var(--border);justify-content:flex-end;padding:6px 10px;display:flex}.gif-picker-manage{color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 4px}.gif-picker-manage:hover{color:var(--accent)}.composer-emoji-popover{z-index:50;border-radius:var(--radius-md);width:min(352px,100vw - 32px);height:400px;max-height:60vh;box-shadow:var(--shadow-lg);animation:.12s msgIn;position:absolute;bottom:calc(100% + 12px);left:-6px;overflow:hidden}.message-input::placeholder{color:var(--text-muted)}.message-wrap{z-index:1;border-radius:var(--radius-sm);flex-direction:column;max-width:100%;padding:1px 16px;transition:background .1s;display:flex;position:relative}.message-wrap:hover{z-index:20;background:#ffffff0a}.message-wrap:has(.msg-actions.picker-open){z-index:30}.message{align-items:flex-start;gap:14px;width:100%;animation:.15s msgIn;display:flex}@keyframes msgIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:36px;height:36px;margin-top:2px}.avatar-spacer{flex-shrink:0;justify-content:flex-end;align-items:center;width:36px;display:flex}.hover-time{color:var(--text-muted);opacity:0;white-space:nowrap;padding-right:2px;font-size:10px;line-height:1;transition:opacity .1s}.message-wrap:hover .hover-time{opacity:1}.msg-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.msg-header{align-items:baseline;gap:8px;margin-bottom:2px;display:flex}.sender{font-size:var(--fs-base);font-weight:600;line-height:1.3}.msg-timestamp{font-size:var(--fs-xs);color:var(--text-muted);font-weight:400}.msg-content{font-size:var(--fs-base);color:var(--text-primary);word-break:break-word;overflow-wrap:anywhere;white-space:pre-line;line-height:1.5}.msg-edited{font-size:var(--fs-xs);color:var(--text-muted);cursor:default}.message-wrap.editing{background:var(--accent-15)}.message-wrap.highlighted{animation:1.6s ease-out msg-highlight}@keyframes msg-highlight{0%,40%{background:var(--accent-15)}to{background:0 0}}.message-wrap-grouped-follow{margin-top:2px}.message-wrap:not(.message-wrap-grouped-follow){margin-top:16px}.date-separator+.message-wrap,.new-divider+.message-wrap{margin-top:4px}.msg-content img:not(.mention-inline-avatar),.msg-content video,.msg-content iframe{border-radius:var(--radius-md);width:100%;max-width:clamp(280px,50vw,480px);margin-top:6px;display:block}.msg-content img:not(.mention-inline-avatar){cursor:zoom-in}.msg-content iframe{aspect-ratio:16/9;height:auto}.video-wrapper{border-radius:var(--radius-md);cursor:pointer;width:100%;max-width:clamp(280px,50vw,480px);margin-top:6px;display:inline-block;position:relative;overflow:hidden}.video-wrapper video{border-radius:var(--radius-md);width:100%;margin-top:0;display:block}.video-play-btn{border-radius:var(--radius-md);background:#00000073;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.video-play-btn svg{filter:drop-shadow(0 2px 6px #0009)}.video-wrapper.playing .video-play-btn{opacity:0;pointer-events:none}.image-wrapper{border-radius:var(--radius-md);background:var(--bg-secondary);width:100%;max-width:clamp(280px,50vw,480px);margin-top:6px;position:relative;overflow:hidden}.msg-content .image-wrapper img{object-fit:cover;max-width:100%;height:100%;margin-top:0}.image-wrapper img:not([src]){visibility:hidden}.image-wrapper.loading:after,.image-wrapper.failed:after{color:var(--text-muted);font-size:var(--fs-md);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.image-wrapper.loading:after{content:"Loading image…"}.image-wrapper.failed:after{content:"Image unavailable"}.media-collapsible{width:100%;max-width:clamp(280px,50vw,480px);margin-top:6px;display:block;position:relative}.media-collapsible img:not(.mention-inline-avatar),.media-collapsible .video-wrapper,.media-collapsible iframe{max-width:100%;margin-top:0}.media-collapse-btn,.media-collapse-placeholder{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-muted);font-size:var(--fs-md);font-family:var(--font);cursor:pointer;align-items:center;gap:6px;max-width:100%;margin-top:2px;padding:3px 10px 3px 8px;transition:color .15s,border-color .15s;display:none}.media-collapse-btn:hover,.media-collapse-placeholder:hover{color:var(--accent);border-color:var(--accent-50)}.media-collapse-content{margin-top:6px}.media-collapse-label{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.video-sound-btn{z-index:1;border-radius:var(--radius-full);cursor:pointer;background:#0009;border:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex;position:absolute;bottom:8px;right:8px}.video-sound-btn:hover{background:#000c}.video-sound-btn .icon-sound-on,.video-sound-btn.on .icon-sound-off{display:none}.video-sound-btn.on .icon-sound-on{display:block}.media-collapsible:not(.collapsed) .media-collapse-btn{display:inline-flex}.media-collapsible.collapsed .media-collapse-content{display:none}.media-collapsible.collapsed .media-collapse-placeholder{display:inline-flex}.lightbox{z-index:1000;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox img{border-radius:var(--radius-md);max-width:90vw;max-height:90vh;box-shadow:var(--shadow-lg);object-fit:contain}.page-center{text-align:center;background:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;padding:24px;display:flex}.page-center h1{font-size:80px;font-weight:800;line-height:1}.page-center p{font-size:var(--fs-lg);color:var(--text-secondary)}.page-center a{color:var(--accent)}.page-center .muted{font-size:var(--fs-sm);color:var(--text-muted)}.online-count-wrap{margin-right:4px;position:relative}.online-count{font-size:var(--fs-md);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-weight:500;font-family:var(--font);background:0 0;border:1px solid #0000;align-items:center;gap:5px;padding:4px 8px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:flex}.online-count:hover{border-color:var(--border);background:var(--bg-hover);color:var(--text-primary)}.online-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:8px;height:8px}.online-popover{z-index:100;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-md);padding:8px 0;animation:.12s msgIn;position:absolute;top:calc(100% + 8px);left:0}.online-popover-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:2px 14px 8px;font-weight:600}.online-user{align-items:center;gap:9px;padding:6px 14px;display:flex}.online-user:hover{background:var(--bg-hover)}.online-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:28px;height:28px}.online-name{font-size:var(--fs-md);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.online-you{font-size:var(--fs-sm);color:var(--text-muted);flex-shrink:0;margin-left:auto}.user-menu-wrap{position:relative}.user-menu-btn{border-radius:var(--radius-md);cursor:pointer;font-family:var(--font);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:4px 8px 4px 4px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:flex}.user-menu-btn:hover{background:var(--bg-hover);border-color:var(--border)}.chevron{color:var(--text-muted);flex-shrink:0}.user-menu-popover{z-index:100;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);min-width:220px;box-shadow:var(--shadow-md);padding:6px 0;animation:.12s msgIn;position:absolute;top:calc(100% + 8px);right:0}.user-menu-info{align-items:center;gap:10px;padding:10px 14px 12px;display:flex}.user-menu-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:36px;height:36px}.user-menu-name{font-size:var(--fs-base);color:var(--text-primary);font-weight:600}.user-menu-email{font-size:var(--fs-sm);color:var(--text-muted);margin-top:1px}.user-menu-divider{border:none;border-top:1px solid var(--border);margin:2px 0}.user-menu-item{width:100%;color:var(--text-secondary);font-size:var(--fs-md);font-family:var(--font);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:9px;padding:8px 14px;transition:background .1s,color .1s;display:flex}.user-menu-item:hover{background:var(--bg-hover);color:var(--text-primary)}.user-menu-item-danger:hover{background:var(--danger-15);color:var(--danger)}.user-menu-item.active{color:var(--accent)}.btn-notif{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;padding:5px 7px;transition:color .15s,background .15s,border-color .15s;display:flex}.btn-notif:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-15)}.gif-library-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:90vw;max-width:860px;max-height:85vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.15s msgIn;display:flex;overflow:hidden}.gif-library-header{flex-shrink:0;align-items:center;gap:10px;padding:18px 20px 14px 24px;display:flex}.gif-library-header h2{font-size:var(--fs-lg);font-weight:700;font-family:var(--font-display);letter-spacing:-.01em}.gif-library-count{border-radius:var(--radius-full);background:var(--bg-modifier);color:var(--text-secondary);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;padding:1px 8px;font-weight:600}.gif-library-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:auto;transition:background .1s,color .1s;display:flex}.gif-library-close:hover{background:var(--bg-hover);color:var(--text-primary)}.gif-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;gap:10px;padding:0 24px 16px;display:flex}.gif-search{background:var(--bg-tertiary);border-radius:var(--radius-md);min-width:0;height:38px;color:var(--text-muted);cursor:text;border:1px solid #0000;flex:1;align-items:center;gap:8px;padding:0 10px 0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.gif-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-15)}.gif-search input{min-width:0;color:var(--text-primary);font-family:var(--font);font-size:var(--fs-base);background:0 0;border:none;outline:none;flex:1}.gif-search input::placeholder{color:var(--text-muted)}.gif-search-clear{background:var(--bg-modifier);width:22px;height:22px;color:var(--text-secondary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:15px;line-height:1;transition:color .1s,background .1s;display:flex}.gif-search-clear:hover{color:var(--text-primary);background:var(--bg-hover)}.gif-toolbar-add{background:var(--accent);height:38px;color:var(--on-accent);border-radius:var(--radius-md);font-family:var(--font);font-size:var(--fs-md);white-space:nowrap;cursor:pointer;border:none;flex-shrink:0;align-items:center;gap:6px;padding:0 16px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.gif-toolbar-add:hover{background:var(--accent-hover)}.gif-toolbar-add svg{transition:transform .15s}.gif-toolbar-add.active{background:var(--bg-modifier);color:var(--text-primary)}.gif-toolbar-add.active svg{transform:rotate(45deg)}.gif-field{flex-direction:column;gap:6px;min-width:0;display:flex}.gif-field label{font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);font-weight:700}.gif-input,.gif-input-affix input{width:100%;min-width:0;color:var(--text-primary);font-family:var(--font);font-size:var(--fs-base)}.gif-input{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid #0000;outline:none;height:40px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.gif-input:focus,.gif-input-affix:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-15)}.gif-input::placeholder,.gif-input-affix input::placeholder{color:var(--text-muted)}.gif-input-affix{cursor:text;align-items:center;gap:2px;display:flex}.gif-input-affix span{color:var(--text-muted);font-weight:600}.gif-input-affix input{background:0 0;border:none;outline:none;height:100%;padding:0}@media (width<=640px){.gif-search input,.gif-input,.gif-input-affix input{font-size:16px}}.gif-form-error{font-size:var(--fs-md);color:var(--danger-text)}.gif-btn{border-radius:var(--radius-md);height:36px;font-family:var(--font);font-size:var(--fs-md);cursor:pointer;padding:0 16px;font-weight:600;transition:background .15s,color .15s}.gif-btn-primary{background:var(--accent);color:var(--on-accent);border:none}.gif-btn-primary:hover{background:var(--accent-hover)}.gif-btn-ghost{color:var(--text-secondary);background:0 0;border:none}.gif-btn-ghost:hover{color:var(--text-primary);text-decoration:underline}.gif-add-panel{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);flex-shrink:0;grid-template-columns:220px 1fr;gap:16px 20px;margin:16px 24px 0;padding:16px;animation:.15s msgIn;display:grid}.gif-add-preview{aspect-ratio:4/3;background:var(--bg-tertiary);border:1px dashed var(--border-strong);border-radius:var(--radius-md);justify-content:center;align-items:center;display:flex;overflow:hidden}.gif-add-preview img,.gif-add-preview video{object-fit:cover;width:100%;height:100%;display:block}.gif-add-preview-hint{color:var(--text-muted);font-size:var(--fs-sm);text-align:center;padding:12px}.gif-add-preview-bad{color:var(--danger-text)}.gif-add-fields{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-content:start;gap:14px 12px;display:grid}.gif-field-wide{grid-column:1/-1}.gif-field-help{font-size:var(--fs-sm);color:var(--text-muted)}.gif-field-note{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px;display:block}.gif-field-help strong{color:var(--accent);font-weight:600}.gif-add-footer{border-top:1px solid var(--border);grid-column:1/-1;justify-content:flex-end;align-items:center;gap:8px;padding-top:14px;display:flex}.gif-add-footer .gif-form-error{margin-right:auto}@media (width<=640px){.gif-toolbar{padding:0 16px 12px}.gif-toolbar-add span{display:none}.gif-toolbar-add{justify-content:center;width:38px;padding:0}.gif-add-panel{grid-template-columns:1fr;margin:12px 16px 0}.gif-add-preview{aspect-ratio:16/9}.gif-add-fields{grid-template-columns:1fr}}.gif-grid-wrap{flex:1;padding:16px 24px 24px;overflow-y:auto}@media (width<=640px){.gif-grid-wrap{padding:12px 16px 16px}}.gif-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-base);flex-direction:column;align-items:center;gap:12px;padding:40px 0;display:flex}.gif-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.gif-card{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s;position:relative;overflow:hidden}.gif-card:hover{border-color:var(--border-strong)}.gif-preview{aspect-ratio:16/9;background:var(--bg-primary);width:100%;overflow:hidden}.gif-preview-pick{cursor:pointer;border:none;padding:0;display:block}.gif-preview-pick:disabled{cursor:default}.gif-preview-pick:not(:disabled):hover{filter:brightness(1.1)}.gif-preview img,.gif-preview video{object-fit:cover;width:100%;height:100%;display:block}.gif-card-body{flex-direction:column;gap:2px;padding:8px 10px;display:flex}.gif-card-hashtag{font-size:var(--fs-md);color:var(--accent);font-weight:600}.gif-card-search{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gif-card-delete{color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--fs-md);font-family:var(--font);cursor:pointer;background:#000000a6;border:1px solid #0000;padding:2px 8px;transition:color .15s,border-color .15s,background .15s}.gif-card-delete:hover{color:var(--danger);border-color:var(--danger-50)}.gif-card-delete.confirming{opacity:1;color:var(--danger);border-color:var(--danger);background:var(--danger-15);font-weight:600}.gif-card-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:6px;right:6px}.gif-card:hover .gif-card-actions{opacity:1}.gif-card-edit{color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-family:var(--font);cursor:pointer;background:#000000a6;border:1px solid #0000;padding:2px 7px;transition:color .15s,border-color .15s}.gif-card-edit:hover{color:var(--accent);border-color:var(--accent-50)}.gif-card-editing{border-color:var(--accent)}.gif-edit-form{flex-direction:column;gap:10px;padding:10px;display:flex}.gif-edit-form .gif-input{height:34px;font-size:var(--fs-md);padding:0 10px}.gif-edit-form .gif-input-affix input{font-size:var(--fs-md)}.gif-edit-form .gif-form-error{font-size:var(--fs-sm)}.gif-edit-actions{justify-content:flex-end;gap:4px;display:flex}.gif-edit-actions .gif-btn{height:30px;font-size:var(--fs-sm);padding:0 12px}.typing-indicator{font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:6px;min-height:20px;padding:0 4px 6px;display:flex}.typing-dots{align-items:center;gap:3px;display:flex}.typing-dots span{background:var(--text-muted);border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite typingBounce}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.modal-backdrop{z-index:200;background:#0009;justify-content:center;align-items:center;padding:24px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-lg);padding:32px}.modal-card h2{font-size:var(--fs-lg);font-weight:700;font-family:var(--font-display);letter-spacing:-.01em;margin-bottom:6px}.modal-card p{font-size:var(--fs-base);color:var(--text-secondary)}.modal-card .form-group{margin-top:16px}.modal-actions{gap:8px;margin-top:4px;display:flex}.modal-actions .btn-primary{margin-top:0}.access-uid-row{align-items:center;gap:8px;margin-top:16px;display:flex}.access-uid{overflow-wrap:anywhere;min-width:0;font-size:var(--fs-sm);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);-webkit-user-select:all;user-select:all;flex:3;padding:8px 10px}.btn-skip{color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--fs-base);font-family:var(--font);cursor:pointer;background:0 0;flex:1;padding:11px;transition:background .15s}.btn-skip:hover{background:var(--bg-hover)}.date-separator{font-family:var(--font-display);color:var(--text-muted);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;flex-shrink:0;align-self:stretch;align-items:center;gap:12px;margin:16px 0 4px;font-weight:600;display:flex}.date-separator:before,.date-separator:after{content:"";background:var(--border);flex:1;height:1px}.unread-pill{z-index:20;background:var(--accent);color:var(--on-accent);border-radius:var(--radius-full);font-size:var(--fs-md);font-weight:600;font-family:var(--font-display);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-md);border:none;padding:6px 18px;animation:.15s msgIn;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.unread-pill:hover{background:var(--accent-hover)}.gif-hover-preview{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);pointer-events:none;z-index:900;max-width:260px;position:fixed;overflow:hidden;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 8px 24px #00000080}.gif-text-thumb{width:100%;height:100%;color:var(--text-primary);font-size:var(--fs-lg);text-align:center;overflow-wrap:anywhere;justify-content:center;align-items:center;padding:4px 8px;line-height:1.3;display:flex;overflow:hidden}.gif-chip-thumb .gif-text-thumb{font-size:var(--fs-xs);white-space:nowrap;justify-content:flex-start;padding:0 3px}.gif-preview .gif-text-thumb,.gif-add-preview .gif-text-thumb{font-size:var(--fs-xl)}.gif-hover-preview .gif-text-thumb{font-size:var(--fs-xl);padding:12px 16px}.gif-hover-preview img,.gif-hover-preview video{object-fit:contain;max-width:260px;max-height:180px;display:block}.msg-actions{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);opacity:0;pointer-events:none;z-index:100;align-items:center;gap:1px;padding:3px 4px;transition:opacity .12s;display:flex;position:absolute;top:-24px;right:8px;box-shadow:0 2px 8px #0006}.message-wrap:hover .msg-actions,.message-wrap:focus-within .msg-actions,.msg-actions.picker-open{opacity:1;pointer-events:auto}.msg-actions .action-btn-separator{background:var(--border);flex-shrink:0;width:1px;height:16px;margin:0 2px}.action-btn{width:30px;height:30px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:flex}.action-btn:hover{background:var(--bg-modifier);color:var(--text-primary)}.action-btn.delete-btn:hover{color:var(--danger);background:var(--danger-15)}.action-btn.delete-btn.confirming{color:#fff;background:var(--danger);border-radius:var(--radius-sm)}.action-btn.delete-btn.confirming:hover{color:#fff;background:var(--danger)}.emoji-picker-wrap{position:relative}.emoji-picker{z-index:300;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);white-space:nowrap;gap:2px;padding:6px 8px;animation:.12s msgIn;display:flex;position:absolute;bottom:calc(100% + 8px);right:0}.emoji-opt{cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 5px;font-size:18px;line-height:1;transition:transform .1s,background .1s}.emoji-opt:hover{background:var(--bg-hover);transform:scale(1.25)}.reaction-bar{flex-wrap:wrap;gap:3px;margin-top:2px;display:flex}.reaction-chip{border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--fs-sm);font-family:var(--font);color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:0 6px;line-height:1.6;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.reaction-chip:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}.reaction-chip.reaction-mine{background:var(--accent-15);border-color:var(--accent-50);color:var(--accent)}.reaction-chip.reaction-mine:hover{background:var(--accent-25)}.reaction-chip.reaction-who{opacity:0;padding:0 5px;transition:opacity .12s,background .15s}.message-wrap:hover .reaction-chip.reaction-who,.reaction-chip.reaction-who:focus-visible{opacity:1}@media (hover:none){.reaction-chip.reaction-who{opacity:1}}.reaction-chip-wrap{display:inline-flex;position:relative}.reaction-tooltip{z-index:300;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);width:max-content;max-width:220px;box-shadow:var(--shadow-md);font-size:var(--fs-sm);color:var(--text-secondary);text-align:center;opacity:0;visibility:hidden;pointer-events:none;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;line-height:1.35;transition:opacity .1s .15s,visibility 0s linear .25s;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.reaction-tooltip strong{color:var(--text-primary);font-weight:600}.reaction-tooltip-emoji{font-size:26px;line-height:1}.reaction-chip-wrap:hover .reaction-tooltip{opacity:1;visibility:visible;transition:opacity .1s .15s,visibility}@media (hover:none){.reaction-tooltip{display:none}}.emoji-opt-more{color:var(--text-secondary);border-left:1px solid var(--border);border-radius:0 var(--radius-sm) var(--radius-sm) 0;justify-content:center;align-items:center;margin-left:2px;display:inline-flex}.emoji-opt-more:hover{color:var(--text-primary);transform:none}.emoji-picker-full{z-index:950;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:.12s fadeIn;position:fixed;overflow:hidden}.emoji-picker-full emoji-picker,.composer-emoji-popover emoji-picker{--background:var(--bg-secondary);--border-color:var(--border);--button-hover-background:var(--bg-hover);--button-active-background:var(--bg-modifier);--input-border-color:var(--border);--input-font-color:var(--text-primary);--input-placeholder-color:var(--text-muted);--indicator-color:var(--accent);--outline-color:var(--accent);--category-font-color:var(--text-muted);--num-columns:9;width:100%;height:100%}.reactions-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;max-height:min(520px,80vh);box-shadow:var(--shadow-lg);flex-direction:column;animation:.15s msgIn;display:flex;overflow:hidden}.reactions-panel-header{justify-content:space-between;align-items:center;padding:14px 16px 8px;display:flex}.reactions-panel-header h2{font-size:var(--fs-lg);font-weight:700;font-family:var(--font-display);letter-spacing:-.01em}.reactions-panel-close{color:var(--text-muted);font-size:var(--fs-base);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;width:28px;height:28px}.reactions-panel-close:hover{color:var(--text-primary);background:var(--bg-hover)}.reactions-panel-tabs{border-bottom:1px solid var(--border);scrollbar-width:thin;gap:4px;padding:0 12px 8px;display:flex;overflow-x:auto}.reactions-tab{border-radius:var(--radius-full);font-family:var(--font);font-size:var(--fs-base);color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;align-items:center;gap:5px;padding:4px 10px;display:inline-flex}.reactions-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.reactions-tab.active{background:var(--accent-15);border-color:var(--accent-50);color:var(--text-primary)}.reactions-tab-count{font-size:var(--fs-sm);color:var(--text-muted)}.reactions-panel-list{padding:6px 8px 10px;list-style:none;overflow-y:auto}.reactions-panel-row{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:6px 8px;display:flex}.reactions-panel-row:hover{background:var(--bg-hover)}.reactions-panel-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:32px;height:32px}.reactions-panel-name{min-width:0;font-size:var(--fs-base);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.reactions-panel-you{color:var(--text-muted)}.reactions-panel-emojis{letter-spacing:2px;font-size:18px}.reply-quote{border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#00000026;align-items:center;gap:5px;min-width:0;max-width:100%;margin-bottom:4px;padding:4px 8px;display:flex;overflow:hidden}.reply-quote-jump{cursor:pointer}.reply-quote-jump:hover{background:#0000004d}.reply-quote-jump:hover .reply-quote-text{color:var(--text-secondary)}.reply-icon{color:var(--text-muted);opacity:.7;flex-shrink:0}.reply-mini-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:16px;height:16px}.reply-quote-author{font-size:var(--fs-sm);white-space:nowrap;flex-shrink:0;font-weight:600}.reply-quote-text{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.mention-inline{vertical-align:middle;background:0 0;border:none;border-radius:0;align-items:center;gap:5px;max-width:100%;margin:0 1px;padding:0;line-height:1.35;display:inline-flex}.mention-inline-avatar{object-fit:cover;vertical-align:middle;border-radius:50%;flex-shrink:0;width:18px;height:18px}.mention-inline-name{font-weight:600;font-size:inherit;white-space:nowrap;text-overflow:ellipsis;max-width:220px;color:var(--mention);overflow:hidden}.message-input-wrap{width:100%;position:relative}.mention-popover{z-index:40;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);max-height:200px;box-shadow:var(--shadow-md);padding:4px;animation:.12s msgIn;position:absolute;bottom:calc(100% + 6px);left:0;right:0;overflow-y:auto}.mention-popover-empty{font-size:var(--fs-sm);color:var(--text-muted);padding:10px 12px}.mention-popover-row{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font);font-size:var(--fs-md);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:6px 8px;transition:background .1s;display:flex}.mention-popover-row:hover,.mention-popover-row.active{background:var(--bg-hover)}.mention-popover-row.offline .mention-popover-avatar,.mention-popover-row.offline .mention-popover-label{opacity:.55}.mention-popover-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:24px;height:24px}.mention-popover-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.slash-usage{font-family:var(--font-mono,monospace);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.slash-help{flex-direction:column;gap:2px;padding:8px 12px;display:flex}.slash-help-title{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.slash-help-msg{font-size:var(--fs-md);color:var(--text-primary)}.slash-help.ok .slash-help-msg{color:var(--accent,var(--text-primary));font-weight:500}.slash-help-example{font-family:var(--font-mono,monospace);font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mention-popover-email{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:42%;margin-left:auto;overflow:hidden}.reply-banner{background:var(--bg-secondary);border-top:1px solid var(--border);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:7px 14px;animation:.12s msgIn;display:flex}.reply-banner-content{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.reply-banner-label{font-size:var(--fs-sm);color:var(--accent);font-weight:500}.reply-banner-preview{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.reply-banner-close{width:22px;height:22px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .1s,background .1s;display:flex}.clip-progress{width:100%;height:4px;accent-color:var(--accent);margin-top:4px}.clip-banner.clip-error .reply-banner-label{color:var(--danger,#e5534b)}.reply-banner-close:hover{color:var(--text-primary);background:var(--bg-hover)}.link-preview-draft{background:var(--bg-secondary);border-top:1px solid var(--border);border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:56px;padding:8px 14px;animation:.12s msgIn;display:flex}.link-preview-loading{color:var(--text-muted);font-size:var(--fs-sm)}.link-preview-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}.link-preview-draft-img{object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;width:52px;height:52px}.link-preview-draft-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.link-preview-draft-publisher{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--accent);font-weight:600}.link-preview-draft-title{font-size:var(--fs-md);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.link-preview-draft-desc{font-size:var(--fs-xs);color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.link-preview-draft-close{width:22px;height:22px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:color .1s,background .1s;display:flex}.link-preview-draft-close:hover{color:var(--text-primary);background:var(--bg-hover)}.link-preview-card{background:var(--bg-primary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-md);color:inherit;flex-direction:row;gap:10px;max-width:clamp(240px,50vw,400px);margin-top:6px;padding:8px 10px;text-decoration:none;transition:background .15s,border-color .15s;display:flex;overflow:hidden}.link-preview-card:hover{background:var(--bg-secondary);border-color:var(--border-strong);border-left-color:var(--accent);text-decoration:none}.link-preview-card-img{object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;width:60px;height:60px}.link-preview-card-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.link-preview-card-publisher{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--accent);font-weight:600}.link-preview-card-title{font-size:var(--fs-md);color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.link-preview-card-desc{font-size:var(--fs-xs);color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=640px){.composer-attach.has-text{display:none}}.drop-overlay{z-index:40;pointer-events:none;background:color-mix(in srgb, var(--bg-primary) 70%, transparent);border:2px dashed var(--accent-50);border-radius:var(--radius-lg);justify-content:center;align-items:center;margin:8px;display:flex;position:fixed;inset:56px 0 0}.drop-overlay span{border-radius:var(--radius-full);background:var(--accent);color:var(--on-accent);font-family:var(--font-display);padding:10px 18px;font-weight:700}.offline-banner{font-size:var(--fs-md);color:var(--text-secondary);background:var(--bg-tertiary);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:6px 12px;display:flex}.new-divider{font-family:var(--font-display);color:var(--accent);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:8px;margin:16px 16px 4px;font-weight:700;display:flex}.new-divider:before{content:"";background:var(--accent-50);flex:1;height:1px}.seen-by{justify-content:flex-end;padding:2px 0 0;display:flex}.seen-avatar{object-fit:cover;border:2px solid var(--bg-primary);box-sizing:content-box;border-radius:50%;width:16px;height:16px;margin-left:-5px}.online-popover-title-offline{border-top:1px solid var(--border);margin-top:6px;padding-top:10px}.offline-user .online-avatar{opacity:.5;filter:grayscale(.6)}.offline-user .online-name{color:var(--text-secondary)}.online-lastseen{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:12px}.msg-content.poll-question{font-weight:600}.poll-card{flex-direction:column;gap:6px;max-width:420px;margin-top:6px;display:flex}.poll-option{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font);font-size:var(--fs-md);text-align:left;cursor:pointer;align-items:center;gap:8px;padding:8px 12px;transition:border-color .15s;display:flex;position:relative;overflow:hidden}.poll-option:hover{border-color:var(--border-strong)}.poll-option.poll-mine{border-color:var(--accent)}.poll-bar{background:var(--bg-hover);transition:width .3s;position:absolute;inset:0 auto 0 0}.poll-mine .poll-bar{background:var(--accent-25)}.poll-label,.poll-voters,.poll-count{position:relative}.poll-label{overflow-wrap:anywhere;flex:1;min-width:0}.poll-voters{display:flex}.poll-voter{object-fit:cover;border:2px solid var(--bg-secondary);box-sizing:content-box;border-radius:50%;width:18px;height:18px;margin-left:-6px}.poll-count{min-width:1ch;color:var(--text-secondary);font-variant-numeric:tabular-nums;font-weight:600}.poll-footer{font-size:var(--fs-xs);color:var(--text-muted)}.msg-content code{border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border);padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.msg-content del{color:var(--text-muted)}.msg-content .spoiler{border-radius:var(--radius-sm);background:var(--bg-modifier);color:#0000;cursor:pointer;padding:0 3px;transition:color .15s,background .15s}.msg-content .spoiler *{visibility:hidden}.msg-content .spoiler.revealed{color:inherit;background:var(--bg-hover);cursor:text}.msg-content .spoiler.revealed *{visibility:visible}.history-loading{font-size:var(--fs-sm);color:var(--text-muted);justify-content:center;align-items:center;gap:8px;padding:8px;display:flex}
