:root,[data-theme=dark]{--color-primary: #7f4bee;--color-primary-hover: #6a37d6;--color-primary-active: #5a2cc0;--color-secondary: #fa9e50;--color-secondary-hover: #f08a32;--color-secondary-active: #d9761f;--gradient-accent: linear-gradient(135deg, #7f4bee 0%, #fa9e50 100%);--color-bg: #121212;--color-surface: #1e1e1e;--color-surface-2: #2a2a2a;--color-border: #333333;--color-text: #ffffff;--color-text-muted: #a0a0a0;--color-danger: #e5484d;--color-success: #46a758;--shadow-card: 0 2px 8px rgba(0, 0, 0, .4);--shadow-modal: 0 10px 40px rgba(0, 0, 0, .6);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--bottom-nav-height: 64px;--side-nav-width: 220px;--side-nav-width-collapsed: 64px;--content-max-width: 1440px}[data-theme=light]{--color-bg: #ffffff;--color-surface: #f5f5f5;--color-surface-2: #ececec;--color-border: #e0e0e0;--color-text: #000000;--color-text-muted: #606060;--shadow-card: 0 2px 8px rgba(0, 0, 0, .08);--shadow-modal: 0 10px 40px rgba(0, 0, 0, .18)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--color-bg);color:var(--color-text);transition:background-color .2s ease,color .2s ease;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.app-shell{display:flex;flex-direction:column;min-height:100%}.app-content{flex:1;padding:var(--space-md);padding-bottom:calc(var(--bottom-nav-height) + var(--space-md));width:100%;margin:0 auto}.app-content.app-content--bleed{padding:0;max-width:none;width:100%;margin:0}.feed-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media (min-width: 768px){.app-shell{flex-direction:row}.app-content{padding-bottom:var(--space-lg)}.feed-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.feed-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1920px){body{font-size:20px}.app-content{max-width:var(--content-max-width)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease;color:var(--color-text);background:var(--color-surface);border-color:var(--color-border)}.btn:hover{background:var(--color-surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:#fff;border-color:transparent}.btn--primary:hover{background:var(--color-primary-hover)}.btn--primary:active{background:var(--color-primary-active)}.btn--accent{background:var(--gradient-accent);color:#fff;border-color:transparent}.btn--ghost{background:transparent;border-color:transparent}.btn--icon{padding:var(--space-sm);border-radius:50%}.input-field{display:flex;flex-direction:column;gap:var(--space-xs)}.input-field label{font-size:.85rem;color:var(--color-text-muted)}.input-field input{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:1rem}.input-field input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.input-field--error input{border-color:var(--color-danger)}.input-field .input-error{font-size:.8rem;color:var(--color-danger)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:var(--gradient-accent);color:#fff;font-weight:700;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--space-md);z-index:1000}.modal{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-width:480px;padding:var(--space-lg)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.modal-title{font-size:1.2rem;font-weight:700;margin:0}.nav-brand-row{display:flex;align-items:center;gap:8px;padding:4px 8px;margin-bottom:4px}.nav-brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;flex:1;min-width:0}.nav-brand-mark{width:34px;height:34px;border-radius:10px;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;letter-spacing:.5px;flex-shrink:0}.nav-brand-text{font-size:17px;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav--collapsed .nav-brand-text{display:none}.nav--collapsed .nav-brand-row{justify-content:center;padding:4px 0}.nav-collapse{background:none;border:none;color:var(--color-text-muted);width:26px;height:26px;border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s,color .12s}.nav-collapse:hover{background:var(--color-surface-2);color:var(--color-text)}.nav--collapsed .nav-collapse{position:absolute;top:8px;right:-13px;background:var(--color-surface);border:1px solid var(--color-border);z-index:5}.nav-list{list-style:none;margin:0;padding:0;display:flex}.nav-list--vertical{flex-direction:column;gap:var(--space-xs)}.nav-list--horizontal{flex-direction:row;justify-content:space-around;flex:1}.nav-link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:.9rem}.nav-link--active{color:var(--color-primary);background:var(--color-surface-2)}.nav-link:hover{color:var(--color-text)}.record-actions{display:flex;gap:var(--space-sm)}.record-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:#fff}.record-btn--mic{background:var(--color-primary)}.record-btn--video{background:var(--color-secondary)}.nav--bottom{position:fixed;left:0;right:0;bottom:0;height:var(--bottom-nav-height);display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-sm);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100}.nav--bottom .nav-label{display:none}.nav--bottom .record-actions{padding-right:var(--space-sm)}.nav--side{display:flex;flex-direction:column;gap:var(--space-sm);width:var(--side-nav-width);min-height:100vh;padding:10px 10px var(--space-md);background:var(--color-surface);border-right:1px solid var(--color-border);position:sticky;top:0;flex-shrink:0;transition:width .18s ease}.nav--collapsed{width:var(--side-nav-width-collapsed)}.nav--collapsed .nav-link{justify-content:center;gap:0;padding:9px 0}.nav--collapsed .nav-label{display:none}.nav--collapsed .record-actions{justify-content:center}.nav--collapsed .record-btn{width:36px;height:36px}.nav--collapsed .nav-aside{justify-content:center}.nav--collapsed .nav-link{position:relative}.nav--collapsed .nav-link:after{content:attr(data-label);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--color-surface-2);color:var(--color-text);font-size:12px;padding:4px 10px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:50}.nav--collapsed .nav-link:hover:after{opacity:1}.nav--side .nav-aside{margin-top:auto}.nav--side .resize-handle--side{position:absolute;top:0;right:-2px;bottom:0;width:4px;background:transparent;cursor:col-resize;z-index:5;transition:background .12s}.nav--side .resize-handle--side:hover,.nav--side.is-resizing .resize-handle--side{background:var(--color-primary)}.nav--side.is-resizing{-webkit-user-select:none;user-select:none}.nav--collapsed .resize-handle--side{display:none}.nav--top{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.nav--top .nav-aside{display:flex;align-items:center;gap:var(--space-md)}.nav--top .nav-link{font-size:1.1rem}.nav-icon-wrap{position:relative;display:inline-flex}.nav-badge{position:absolute;top:-4px;right:-8px;background:var(--color-danger, #e53935);color:#fff;font-size:.65rem;line-height:1;font-weight:700;padding:2px 5px;border-radius:999px;min-width:16px;text-align:center}.feed-tiktok{position:relative;height:calc(100vh - var(--bottom-nav-height))}@media (min-width: 768px){.feed-tiktok{height:100vh}}.feed-scroller{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none}.feed-scroller::-webkit-scrollbar{display:none}.feed-slide-wrapper{height:100%;scroll-snap-align:start;scroll-snap-stop:always}.slide{position:relative;height:100%;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000}.slide--audio{background:var(--gradient-accent)}.slide__video{width:100%;height:100%;object-fit:contain;background:#000}.slide__audio{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.slide__heart-burst{position:absolute;font-size:6rem;color:#fff;animation:heart-pop .7s ease-out forwards;pointer-events:none}@keyframes heart-pop{0%{transform:scale(.4);opacity:0}30%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:0}}.slide__countdown{position:absolute;top:var(--space-md);left:50%;transform:translate(-50%);background:#0000008c;color:#fff;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);font-size:.9rem}.slide__actions{position:absolute;right:var(--space-md);bottom:calc(var(--space-xl) * 2);display:flex;flex-direction:column;gap:var(--space-md)}.slide-action{display:flex;flex-direction:column;align-items:center;gap:2px;background:#00000059;border:none;color:#fff;border-radius:50%;width:52px;height:52px;cursor:pointer;font-size:1.2rem}.slide-action--liked .slide-action__icon{color:var(--color-danger)}.slide-action__count{font-size:.7rem}.slide__author{position:absolute;left:var(--space-md);bottom:var(--space-xl);display:flex;align-items:center;gap:var(--space-sm);color:#fff}.slide__author-meta{display:flex;flex-direction:column}.slide__author-name{font-weight:700}.slide__category{font-size:.75rem;opacity:.85}.feed-end{display:flex;align-items:center;justify-content:center;background:var(--color-bg);color:var(--color-text);text-align:center}.feed-cta{display:flex;flex-direction:column;gap:var(--space-md);align-items:center;padding:var(--space-lg)}.feed-error{position:absolute;bottom:var(--space-md);width:100%;text-align:center;color:var(--color-danger)}.audio-visual{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);color:#fff}.character{width:120px;height:120px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center}.character--active{animation:breathe 2s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.06) translateY(-4px)}}.character__face{position:relative;width:70px;height:70px}.character__eye{position:absolute;top:18px;width:12px;height:12px;border-radius:50%;background:#fff}.character__eye:first-child{left:12px}.character__eye:nth-child(2){right:12px}.character__mouth{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:30px;height:14px;border-bottom-left-radius:20px;border-bottom-right-radius:20px;background:#fff}.waveform{display:flex;align-items:center;gap:3px;height:80px}.waveform__bar{width:4px;background:#fff;border-radius:2px;opacity:.85}.audio-visual[data-active=true] .waveform__bar{animation:wave .9s ease-in-out infinite alternate}@keyframes wave{0%{transform:scaleY(.5)}to{transform:scaleY(1)}}.comments-panel{background:var(--color-surface);color:var(--color-text);border-left:1px solid var(--color-border);display:flex;flex-direction:column}.comments-panel--side{position:absolute;top:0;right:0;width:360px;height:100%;box-shadow:var(--shadow-modal);z-index:50}.comments-panel--full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.comments-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-bottom:1px solid var(--color-border)}.comments-header h3{margin:0}.comments-list{list-style:none;margin:0;padding:var(--space-md);flex:1;overflow-y:auto}.comment-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-sm)}.comment-author{font-weight:700;font-size:.85rem}.comment-text{margin:2px 0 0}.comment-replies{list-style:none;margin:0 0 0 var(--space-lg);padding:0;border-left:2px solid var(--color-border);padding-left:var(--space-sm)}.comments-empty{padding:var(--space-lg);color:var(--color-text-muted);text-align:center}.comments-form{display:flex;gap:var(--space-sm);padding:var(--space-md);border-top:1px solid var(--color-border)}.comments-form input{flex:1;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text)}.page-title{margin:0 0 var(--space-md);font-size:1.4rem}.placeholder{text-align:center;padding:var(--space-xl) var(--space-md)}.placeholder h1{margin-bottom:var(--space-sm)}.page-loading{padding:var(--space-xl);text-align:center;color:var(--color-text-muted)}.auth-page{max-width:380px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg) var(--space-md)}.auth-method-tabs{display:flex;gap:var(--space-xs)}.auth-tab{flex:1;padding:var(--space-sm);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer}.auth-tab.is-active{background:var(--color-surface-2);border-color:var(--color-primary);color:var(--color-primary)}.auth-form{display:flex;flex-direction:column;gap:var(--space-sm)}.auth-consent{display:flex;align-items:center;gap:var(--space-xs);font-size:.9rem;color:var(--color-text-muted)}.auth-error{color:var(--color-danger);margin:0}.auth-info{color:var(--color-success);margin:0}.auth-hint{color:var(--color-text-muted);margin:0}.auth-switch{text-align:center;margin:0;font-size:.9rem}.auth-switch a{color:var(--color-primary)}.auth-oauth{display:flex;flex-direction:column;gap:var(--space-xs);align-items:stretch}.auth-oauth-divider{text-align:center;color:var(--color-text-muted);font-size:.85rem;margin:var(--space-xs) 0}.auth-oauth-btn{text-align:center;text-decoration:none}.settings{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-md)}.devices-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.device-row{display:flex;justify-content:space-between;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.device-platform{font-weight:600;text-transform:capitalize}.device-token{color:var(--color-text-muted);font-family:monospace}.report-form{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md)}.report-reasons{border:none;display:flex;flex-direction:column;gap:var(--space-xs);margin:0;padding:0}.report-reason{display:flex;align-items:center;gap:var(--space-xs)}.report-comment{display:flex;flex-direction:column;gap:var(--space-xs);color:var(--color-text-muted)}.report-comment textarea{padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.report-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.comment-report-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:2px;align-self:flex-start}.comment-report-btn:hover{color:var(--color-danger)}.toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%);background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);box-shadow:0 4px 16px #0000004d;z-index:1000}.thought-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-sm)}.thought-card__head{display:flex;align-items:center;gap:var(--space-sm)}.thought-card__type{font-size:.9rem;color:var(--color-text-muted)}.thought-card__likes{margin-left:auto;color:var(--color-secondary);font-weight:600}.thought-card__category{align-self:flex-start;font-size:.75rem;padding:2px 8px;border-radius:var(--radius-sm);background:var(--color-surface-2);color:var(--color-text-muted)}.thought-card__tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.tag-chip{font-size:.75rem;color:var(--color-primary)}.feed-footer{display:flex;justify-content:center;margin-top:var(--space-lg)}.feed-cta{text-align:center;display:flex;flex-direction:column;gap:var(--space-sm);align-items:center}.notifications-page{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-md)}.notifications-head{display:flex;align-items:center;justify-content:space-between}.notifications-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.notification-row{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-sm) var(--space-md)}.notification-row--unread{border-color:var(--color-primary);background:color-mix(in oklab,var(--color-surface),var(--color-primary) 8%)}.notification-link{color:var(--color-text);text-decoration:none;display:block}.notification-meta{display:flex;justify-content:space-between;gap:var(--space-sm)}.notification-title{font-weight:600}.notification-time{color:var(--color-text-muted);font-size:.8rem}.notification-preview{margin:4px 0 0;color:var(--color-text-muted)}.notification-badge{display:inline-block;margin-left:6px;background:var(--color-danger);color:#fff;font-size:.7rem;padding:1px 6px;border-radius:999px}.notifications-footer{display:flex;justify-content:center}.totp-modal{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md)}.totp-qr{width:220px;height:220px;align-self:center;background:#fff;padding:var(--space-xs);border-radius:var(--radius-md)}.totp-secret{font-family:monospace;background:var(--color-surface-2);padding:var(--space-xs);border-radius:var(--radius-sm);word-break:break-all;text-align:center}.record-choose{text-align:center;padding:var(--space-xl) var(--space-md)}.record-choose__buttons{display:flex;flex-direction:column;gap:var(--space-md);max-width:320px;margin:var(--space-lg) auto 0}.recorder{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-md)}.recorder-hint{color:var(--color-text-muted);text-align:center}.recorder-hint--small{font-size:.8rem}.record-circle{width:96px;height:96px;border-radius:50%;border:4px solid var(--color-border);background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.6rem}.record-circle--active{background:var(--color-danger);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.recorder-error{color:var(--color-danger)}.recorder--video{position:relative}.recorder-preview{width:100%;max-width:480px;aspect-ratio:9 / 16;background:#000;border-radius:var(--radius-md);object-fit:cover}.recorder-countdown{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);font-size:5rem;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6)}.recorder-controls{display:flex;align-items:center;gap:var(--space-lg);margin-top:var(--space-md)}.editor{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-md)}.editor-section{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.editor-section legend{color:var(--color-text-muted);padding:0 var(--space-xs)}.editor-section select,.editor-section textarea{padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.editor-checkbox{display:flex;align-items:center;gap:var(--space-sm)}.editor-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.tag-suggest{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.tag-suggest .tag-chip{background:var(--color-surface-2);border:none;cursor:pointer;padding:2px 8px;border-radius:var(--radius-sm);color:var(--color-primary)}.location-picker{display:flex;flex-direction:column;gap:var(--space-sm)}.location-map-placeholder{height:120px;display:flex;align-items:center;justify-content:center;background:var(--color-surface-2);border-radius:var(--radius-md);color:var(--color-text-muted)}.location-coords{display:flex;gap:var(--space-sm)}.profile{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;margin:0 auto}.profile-head{display:flex;align-items:center;gap:var(--space-md)}.profile-avatar-btn{background:none;border:none;cursor:pointer;padding:0}.profile-name{margin:0}.profile-email{margin:0;color:var(--color-text-muted)}.profile-section{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.profile-field{display:flex;flex-direction:column;gap:var(--space-xs);color:var(--color-text-muted)}.profile-field textarea,.profile-field select{padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.profile-field-row{display:flex;align-items:center;justify-content:space-between}.profile-saved{color:var(--color-success);font-size:.85rem}.profile-hint{color:var(--color-text-muted);font-size:.85rem;margin:0}.tag-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.tag-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:grab}.tag-item--selected{border-color:var(--color-primary)}.tag-item--dragging{opacity:.5}.tag-grip{color:var(--color-text-muted);cursor:grab}.tag-name{color:var(--color-primary);font-weight:600}.tag-count{margin-left:auto;color:var(--color-text-muted)}.tags-empty{color:var(--color-text-muted)}.friends{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-lg)}.friends-section{display:flex;flex-direction:column;gap:var(--space-sm)}.friends-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.friend-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.friend-row--clickable{cursor:pointer}.friend-row--clickable:hover{border-color:var(--color-primary)}.friend-name{font-weight:600}.friend-actions{margin-left:auto;display:flex;gap:var(--space-xs)}.friend-open{margin-left:auto;color:var(--color-primary);font-size:.85rem}body.messenger-active{overflow:hidden}body.messenger-active .app-shell{height:100vh;min-height:0}body.messenger-active .app-content{min-height:0;display:flex;flex-direction:column;overflow:hidden}.messenger{display:flex;flex:1;min-height:0;height:100%;gap:0;background:var(--color-bg)}.messenger[data-device=mobile]{height:calc(var(--app-vh, 100dvh) - var(--bottom-nav-height));flex:none}@supports not (height: 100dvh){.messenger[data-device=mobile]{height:calc(var(--app-vh, 100vh) - var(--bottom-nav-height))}}body.messenger-chat-open .messenger[data-device=mobile]{height:var(--app-vh, 100dvh)}@media (max-width: 768px){body.messenger-chat-open .nav--bottom{display:none}}.chat-list{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-sm);padding-right:0;overflow-y:auto;min-height:0;background:var(--color-surface)}.chat-list.is-resizing{-webkit-user-select:none;user-select:none}.resize-handle{flex-shrink:0;background:var(--color-border);position:relative;z-index:1}.resize-handle--vertical{width:4px;cursor:col-resize;transition:background .12s}.resize-handle--vertical:hover,.resize-handle--vertical:active{background:var(--color-primary)}@media (max-width: 1024px) and (min-width: 769px){.chat-list{width:240px}}.messenger[data-device=mobile] .chat-list{width:100%;border-right:none}.chat-list ul{list-style:none;margin:0;padding:0}.chat-list-item{display:flex;align-items:center;gap:10px;padding:9px 10px;margin:1px 6px;border-radius:10px;cursor:pointer;transition:background .12s}.chat-list-item:hover{background:var(--color-surface-2)}.chat-list-item.is-active{background:#7f4bee29}.chat-list-meta{display:flex;flex-direction:column;min-width:0}.chat-list-title{font-weight:600}.chat-list-last{color:var(--color-text-muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.chat-list-unread{margin-left:auto;background:var(--color-primary);color:#fff;border-radius:999px;padding:0 8px;font-size:.75rem;min-width:20px;text-align:center}.chat-list-empty,.chat-empty{color:var(--color-text-muted);padding:var(--space-md)}.chat-empty{flex:1;display:flex;align-items:center;justify-content:center}.chat-sidebar{display:flex;min-height:0;flex-shrink:0}.messenger[data-device=mobile] .chat-sidebar{width:100%}.folder-rail{width:48px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-right:1px solid var(--color-border);overflow-y:auto}.folder-rail-add{width:36px;height:36px;border-radius:10px;border:1px dashed var(--color-border);background:none;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s,color .15s,background .12s}.folder-rail-add:hover{border-color:var(--color-primary);color:var(--color-primary);background:#7f4bee1a}.folder-rail-btn{position:relative;width:36px;height:36px;border-radius:10px;background:none;border:none;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,color .12s}.folder-rail-btn:hover{background:#7f4bee26;color:var(--color-primary)}.folder-rail-btn.is-active{background:#7f4bee33;color:var(--color-primary)}.folder-rail-tip{position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--color-surface-2);color:var(--color-text);font-size:11px;padding:4px 10px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:50}.folder-rail-btn:hover .folder-rail-tip{opacity:1}.folder-rail-sep{width:24px;height:1px;background:var(--color-border);margin:4px 0}.folder-rail--expanded{align-items:stretch;padding:8px}.folder-rail--expanded .folder-rail-btn,.folder-rail--expanded .folder-rail-chip,.folder-rail--expanded .folder-rail-add{width:100%;justify-content:flex-start;padding:6px 8px;gap:10px;height:36px}.folder-rail--expanded .folder-rail-tip{display:none}.folder-rail-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-rail-chip{display:inline-flex;align-items:center;gap:8px}.folder-rail-chip-mark{width:28px;height:28px;border-radius:8px;background:var(--color-surface-2);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.folder-rail{transition:width 0s}.folder-rail.is-resizing{-webkit-user-select:none;user-select:none}.resize-handle--rail{width:3px}.resize-handle--side{width:4px}.folder-rail-chip{width:36px;height:36px;border-radius:10px;background:var(--color-surface-2);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;cursor:pointer;transition:background .12s,color .12s}.folder-rail-chip:hover{background:#7f4bee26;color:var(--color-primary)}.chat-list-scroll{overflow-y:auto;min-height:0}.chat-list-actions{display:flex;gap:6px;padding:0 10px 8px;border-bottom:1px solid var(--color-border);margin-bottom:4px}.chat-list-actions .btn{flex:1;padding:6px 0;font-size:11px;font-weight:700;border-radius:8px;min-width:0;border:none}.chat-list-actions .btn--primary{background:#7f4bee2e;color:var(--color-primary)}.chat-list-actions .btn--primary:hover{background:#7f4bee4d}.chat-list-actions .btn--accent{background:#fa9e5026;color:var(--color-secondary, #fa9e50)}.chat-list-actions .btn--accent:hover{background:#fa9e5047}.chat-list-actions .btn--ghost{background:none;border:1px solid var(--color-border);color:var(--color-text-muted)}.chat-list-actions .btn--ghost:hover{color:var(--color-text);border-color:var(--color-text-muted)}.chat-list-aside{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.chat-list-time{font-size:.7rem;color:var(--color-text-muted)}.chat-list-item[draggable=true]{cursor:pointer}.chat-folder{margin-bottom:var(--space-xs)}.chat-folder-head{display:flex;align-items:center;gap:var(--space-xs);padding:2px var(--space-xs)}.chat-folder-head--root{color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.chat-folder-toggle{display:flex;align-items:center;gap:var(--space-xs);flex:1;background:none;border:none;color:var(--color-text);cursor:pointer;font-weight:600;padding:var(--space-xs);border-radius:var(--radius-sm);text-align:left}.chat-folder-toggle:hover{background:var(--color-surface-2)}.chat-folder-caret{width:1em;color:var(--color-text-muted)}.chat-folder-count{margin-left:auto;color:var(--color-text-muted);font-size:.8rem}.chat-folder-del{background:none;border:none;color:var(--color-text-muted);cursor:pointer;opacity:0;transition:opacity .15s}.chat-folder-head:hover .chat-folder-del{opacity:1}.chat-folder-del:hover{color:var(--color-danger)}.chat-folder-empty{list-style:none;color:var(--color-text-muted);font-size:.8rem;padding:var(--space-xs) var(--space-sm);border:1px dashed var(--color-border);border-radius:var(--radius-sm);margin:2px var(--space-xs)}.chat-search-wrap{position:relative}.chat-search-wrap-icon{position:absolute;top:50%;left:12px;transform:translateY(-50%);color:var(--color-text-muted);display:inline-flex;align-items:center;pointer-events:none;z-index:1}.chat-search-wrap{padding:10px 10px 8px;position:relative}.chat-search-wrap .input-field input{padding:7px 12px 7px 34px;border-radius:20px;background:var(--color-surface-2);transition:border-color .15s;font-size:13px}.chat-search-wrap .input-field input:focus{border-color:var(--color-primary)}.chat-search-wrap-icon{left:22px}.search-dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;margin-top:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);max-height:60vh;overflow-y:auto}.search-dropdown ul{list-style:none;margin:0;padding:0}.search-group-label{padding:var(--space-xs) var(--space-sm);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.search-result{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);cursor:pointer}.search-result:hover{background:var(--color-surface-2)}.search-result-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-kind{margin-left:auto;font-size:.72rem;color:var(--color-text-muted)}.search-empty{padding:var(--space-md);color:var(--color-text-muted)}.folder-dialog,.requests-modal{display:flex;flex-direction:column;gap:var(--space-md);min-width:280px}.folder-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.chat-view{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.chat-header{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;min-height:56px}.chat-header .avatar{flex-shrink:0}.chat-header-info{display:flex;flex-direction:column;gap:1px;min-width:0;margin-right:auto;cursor:pointer}.chat-title{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-status{font-size:12px;color:var(--color-text-muted);line-height:1.2}.chat-font-controls{display:inline-flex;gap:2px;align-items:center;flex-shrink:0}.chat-font-btn{font-size:12px;font-weight:700;letter-spacing:.5px;font-family:inherit}.chat-font-btn:disabled{opacity:.35}@media (max-width: 480px){.chat-font-controls{display:none}}.hd-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:color .15s,background .15s}.hd-btn:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-2)}.hd-btn:disabled{opacity:.45;cursor:not-allowed}.chat-back{color:var(--color-text)}.chat-status--open{color:var(--color-success)}.chat-pins{display:flex;align-items:center;gap:6px;padding:6px 16px;background:#7f4bee12;font-size:.82rem;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .15s}.chat-pins:hover{background:#7f4bee1f}.chat-pins .chat-pins-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-search{display:flex;align-items:center;gap:6px;padding:8px 16px;flex-shrink:0}.chat-search-icon{display:inline-flex;align-items:center;color:var(--color-text-muted);padding-left:12px;border:1px solid var(--color-border);border-right:none;border-radius:20px 0 0 20px;background:var(--color-surface-2);height:32px;transition:border-color .15s}.chat-search input{flex:1;padding:6px 12px;border-radius:0 20px 20px 0;border:1px solid var(--color-border);border-left:none;background:var(--color-surface-2);color:var(--color-text);font:inherit;font-size:13px;outline:none;height:32px;transition:border-color .15s}.chat-search:focus-within .chat-search-icon,.chat-search:focus-within input{border-color:var(--color-primary)}.chat-search-clear{background:none;border:none;color:var(--color-text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px}.chat-search-clear:hover{color:var(--color-text);background:var(--color-surface-2)}.chat-messages{flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(127,127,127,.35) transparent}.chat-messages [data-testid=virtuoso-scroller]::-webkit-scrollbar,.chat-messages::-webkit-scrollbar{width:8px}.chat-messages [data-testid=virtuoso-scroller]::-webkit-scrollbar-track,.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages [data-testid=virtuoso-scroller]::-webkit-scrollbar-thumb,.chat-messages::-webkit-scrollbar-thumb{background:#7f7f7f4d;border-radius:4px}.chat-messages [data-testid=virtuoso-scroller]::-webkit-scrollbar-thumb:hover,.chat-messages::-webkit-scrollbar-thumb:hover{background:#7f7f7f80}.chat-messages [data-testid=virtuoso-item-list]{padding:12px 16px 24px}.chat-typing{color:var(--color-text-muted);font-style:italic;font-size:.85rem;padding-left:4px}.msg{display:flex;align-items:flex-end;margin-bottom:3px;--bubble-radius: 14px}.msg--own{justify-content:flex-end}.msg-bubble{position:relative;max-width:min(72%,560px);padding:6px 11px 7px;border-radius:var(--bubble-radius);border-bottom-left-radius:4px;background:var(--color-surface-2);font-size:var(--chat-msg-size, 14px);line-height:1.35;word-wrap:break-word;box-shadow:0 1px 1px #0000000a}.msg--own .msg-bubble{background:var(--color-primary);color:#fff;border-bottom-left-radius:var(--bubble-radius);border-bottom-right-radius:4px}.msg-media{max-width:100%;border-radius:var(--radius-sm);display:block}.msg-audio{max-width:220px}.msg-file{color:inherit;text-decoration:underline}.msg-sticker{font-size:2.5rem}.msg-deleted{opacity:.6}.msg-forward{font-size:.75rem;opacity:.8;margin-bottom:2px}.msg-reply-preview{display:flex;gap:6px;font-size:.8rem;opacity:.85;margin-bottom:4px}.msg-reply-bar{width:3px;background:currentColor;border-radius:2px}.msg-meta{display:flex;align-items:center;gap:4px;justify-content:flex-end;font-size:max(.66em,10px);opacity:.7;margin-top:1px;line-height:1}.msg--own .msg-meta{color:#ffffffeb;opacity:.9}.msg-checks{font-size:max(.78em,11px);letter-spacing:-1px}.msg-checks--read{color:#cfe8ff}.msg--other .msg-checks--read{color:var(--color-primary)}.msg-reactions{display:flex;gap:4px;margin-top:4px}.msg-reaction{background:#7f7f7f40;border:none;border-radius:999px;padding:0 6px;font-size:.75rem;cursor:pointer;color:inherit}.msg-menu-btn{position:absolute;top:2px;right:4px;background:none;border:none;color:inherit;cursor:pointer;opacity:0;font-size:1rem}.msg-bubble:hover .msg-menu-btn{opacity:.7}.msg-menu,.msg-reaction-picker{position:absolute;top:100%;right:0;z-index:5;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;padding:var(--space-xs);min-width:200px}.msg-reaction-picker{flex-direction:row;padding:4px;min-width:0}.msg-menu--up,.msg-reaction-picker--up{top:auto;bottom:100%;margin-bottom:4px}.msg-menu-ic{display:inline-flex;width:1.4em;justify-content:center;margin-right:var(--space-sm);opacity:.85}.msg-menu button,.msg-reaction-picker button{background:none;border:none;color:inherit;padding:var(--space-xs) var(--space-md);text-align:left;cursor:pointer;font-size:.9rem;border-radius:var(--radius-sm);display:flex;align-items:center}.msg-menu button:hover,.msg-reaction-picker button:hover{background:var(--color-surface-2)}.msg-menu-danger{color:var(--color-danger)}.msg--selectable{cursor:pointer;align-items:center}.msg--selectable .msg-bubble{pointer-events:none}.msg--selected .msg-bubble{outline:2px solid var(--color-primary);outline-offset:1px}.msg-select-box{font-size:1.2rem;color:var(--color-primary);padding:0 var(--space-xs);flex-shrink:0}.chat-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--color-surface-2);border-top:1px solid var(--color-border)}.chat-selection-actions{display:flex;gap:var(--space-xs)}.chat-reply-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-md);background:var(--color-surface-2);border-top:1px solid var(--color-border);font-size:.85rem}.chat-reply-bar button{background:none;border:none;color:var(--color-text-muted);cursor:pointer}.chat-upload{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);font-size:.8rem}.chat-upload-bar{height:6px;background:var(--color-primary);border-radius:3px;transition:width .2s;flex:1;max-width:200px}.chat-composer{display:flex;align-items:stretch;gap:0;padding:0;border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;transition:border-top-color .15s}.chat-composer:focus-within{border-top-color:var(--color-primary)}.composer-left{display:grid;grid-template-columns:34px 34px;grid-template-rows:34px 34px;gap:2px;padding:8px 4px 8px 8px;flex-shrink:0;align-self:flex-end}.composer-right{display:flex;flex-direction:column;gap:2px;padding:8px 8px 8px 4px;flex-shrink:0;align-self:flex-end}.composer-btn,.composer-left .chat-attach,.composer-left .chat-voice-btn,.composer-right .chat-voice-btn,.composer-left .emoji-trigger{background:none;border:none;color:var(--color-text-muted);cursor:pointer;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:19px;line-height:1;padding:0;transition:color .15s,background .15s;position:relative;flex-shrink:0}.composer-btn:hover,.composer-left .chat-attach:hover,.composer-left .chat-voice-btn:hover,.composer-right .chat-voice-btn:hover,.composer-left .emoji-trigger:hover{color:var(--color-text);background:var(--color-surface-2)}.chat-voice-btn--active{color:var(--color-danger);animation:chat-mic-pulse 1.1s ease-in-out infinite}.chat-voice-btn-label{position:absolute;right:calc(100% + 6px);top:50%;transform:translateY(-50%);font-size:11px;color:var(--color-danger);background:var(--color-surface);border:1px solid var(--color-border);padding:2px 8px;border-radius:999px;white-space:nowrap;pointer-events:none}@media (max-width: 480px){.chat-voice-btn-label{display:none}}@keyframes chat-mic-pulse{0%,to{opacity:1}50%{opacity:.55}}.chat-schedule-btn .chat-schedule{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;pointer-events:none;border:none;padding:0;background:transparent}.chat-schedule-btn.is-set{color:var(--color-primary)}.chat-input{flex:1 1 0%;background:none;border:none;outline:none;color:var(--color-text);font:inherit;font-size:.95rem;line-height:1.5;padding:10px 6px;resize:none;min-height:calc(3em + 20px);max-height:30vh;overflow-y:hidden;align-self:stretch}.chat-input::placeholder{color:var(--color-text-muted);opacity:.65}.composer-send{width:34px;height:34px;border-radius:9px;border:none;background:var(--color-surface-2);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0;transition:background .15s,color .15s,transform .1s}.composer-send:hover{color:var(--color-text)}.composer-send:active{transform:scale(.92)}.composer-send.active{background:var(--color-primary);color:#fff}.composer-send.active:hover{background:var(--color-primary-hover)}@media (max-width: 480px){.composer-left{grid-template-columns:34px 34px;grid-template-rows:34px;padding-right:2px}.composer-left .chat-schedule-btn{display:none}.chat-input{font-size:.92rem;padding:8px 4px}}.chat-delete-modal{position:fixed;inset:auto 0 0 0;margin:auto;max-width:360px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:0 8px 32px #0006;z-index:50;bottom:80px}.chat-delete-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);justify-content:flex-end}.social-hub{max-width:960px;margin:0 auto}.social-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-md);margin-top:var(--space-md)}.social-tile{display:flex;flex-direction:column;gap:6px;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-decoration:none;color:var(--color-text);transition:transform .1s,border-color .1s}.social-tile:hover{transform:translateY(-2px);border-color:var(--color-primary)}.social-tile-emoji{font-size:2rem}.social-tile-title{font-weight:700}.social-tile-desc{font-size:.8rem;color:var(--color-text-muted)}.social-list,.social-answers{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-sm)}.social-note{color:var(--color-text-muted)}.social-answers-head{display:flex;align-items:center;gap:var(--space-sm)}.silent-questions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.silent-question{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md)}.geo-radius{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-muted)}.geo-map{min-height:200px;border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);background:var(--color-surface-2)}.geo-marker,.geo-cluster{padding:var(--space-xs) var(--space-sm);background:var(--color-surface);border-radius:var(--radius-sm)}.geo-cluster-count{display:inline-block;background:var(--color-primary);color:#fff;border-radius:999px;padding:0 8px;margin-right:6px}.social-slide-wrap{position:relative}.social-overlay{position:absolute;left:var(--space-md);bottom:96px;z-index:4}.live-list,.live-room{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-md)}.live-start{display:flex;gap:var(--space-sm);flex-wrap:wrap}.live-rooms{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.live-room-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.live-room-icon{font-size:1.6rem}.live-room-meta{display:flex;flex-direction:column}.live-room-title{font-weight:700}.live-room-count{color:var(--color-text-muted);font-size:.85rem}.live-room-card .btn{margin-left:auto}.live-stage{aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#aaa}.live-creds{background:var(--color-surface-2);border-radius:var(--radius-md);padding:var(--space-md);display:grid;grid-template-columns:auto 1fr;gap:6px var(--space-md);font-size:.85rem}.live-creds dt{color:var(--color-text-muted)}.live-creds dd{margin:0;word-break:break-all}.live-ws{font-family:monospace}.chat-list-actions{display:flex;gap:var(--space-xs);margin-bottom:var(--space-sm)}.create-chat-form,.members-modal{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md)}.create-chat-types{border:none;display:flex;gap:var(--space-md);padding:0;margin:0}.create-chat-type{display:flex;align-items:center;gap:var(--space-xs)}.members-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs);max-height:320px;overflow-y:auto}.member-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.member-meta{display:flex;flex-direction:column}.member-role{color:var(--color-text-muted);font-size:.8rem}.member-actions{margin-left:auto;display:flex;gap:var(--space-xs)}.add-member-form{display:flex;align-items:flex-end;gap:var(--space-sm)}.add-member-form .input-field{flex:1}.emoji-picker-wrap,.gif-picker-wrap{position:relative;display:inline-block}.emoji-trigger{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;padding:4px 8px;font-size:1.05rem;line-height:1}.emoji-trigger:hover{border-color:var(--color-primary)}.emoji-panel{position:absolute;bottom:calc(100% + var(--space-xs));right:0;z-index:50;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000059;padding:var(--space-sm);max-width:360px;max-height:420px;overflow-y:auto}.emoji-section h4{font-size:.8rem;margin:6px 0 4px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.emoji-cell{background:none;border:none;cursor:pointer;padding:4px;font-size:1.2rem;border-radius:var(--radius-sm);color:inherit}.emoji-cell:hover{background:var(--color-surface-2)}.emoji-cell--image img{width:22px;height:22px;display:block}.gif-panel{width:320px;display:flex;flex-direction:column;gap:var(--space-xs)}.gif-search-input,.gif-tags-input{width:100%;padding:6px var(--space-xs);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.gif-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.gif-cell{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;overflow:hidden;padding:0;aspect-ratio:1}.gif-cell img{width:100%;height:100%;object-fit:cover}.gif-cell:hover{border-color:var(--color-primary)}.gif-empty{color:var(--color-text-muted);text-align:center;padding:var(--space-sm)}.gif-upload{display:flex;gap:var(--space-xs);margin-top:var(--space-xs);align-items:center}.gif-upload .gif-tags-input{flex:1}.admin-emojis-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.admin-emoji-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.admin-emoji-img{width:32px;height:32px;object-fit:contain}.admin-emoji-name{flex:1;font-family:monospace;color:var(--color-primary)}.sticker-panel{width:320px;display:flex;flex-direction:column;gap:var(--space-xs)}.sticker-tabs{display:flex;gap:var(--space-xs)}.sticker-packs-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow-y:auto}.sticker-pack-row{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);cursor:pointer;color:var(--color-text)}.sticker-pack-row:hover{border-color:var(--color-primary)}.sticker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.sticker-cell{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;padding:0;aspect-ratio:1;overflow:hidden}.sticker-cell img{width:100%;height:100%;object-fit:contain}.sticker-cell:hover{border-color:var(--color-primary)}.msg-sticker-img{max-width:180px;max-height:180px;display:block}.media-picker-wrap{position:relative;display:inline-block}.media-picker-panel{position:absolute;bottom:calc(100% + var(--space-xs));left:0;z-index:50;width:360px;max-width:90vw;max-height:60vh;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000059;overflow:hidden}.media-picker-tabs{display:flex;gap:2px;padding:var(--space-xs);border-bottom:1px solid var(--color-border);flex-shrink:0}.media-tab{flex:1;background:var(--color-surface-2);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);padding:6px var(--space-sm);cursor:pointer;font-size:.9rem}.media-tab:hover{color:var(--color-text)}.media-tab.is-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.media-picker-body{min-height:0;overflow-y:auto;padding:var(--space-sm)}.media-picker-body .emoji-panel,.media-picker-body .gif-panel,.media-picker-body .sticker-panel{position:static;inset:auto;box-shadow:none;border:none;border-radius:0;padding:0;margin:0;width:100%;max-width:none;max-height:none;overflow:visible}.stickers-page{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-md)}.my-packs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.my-pack-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.my-pack-row.is-active{border-color:var(--color-primary)}.my-pack-name{flex:1;background:none;border:none;cursor:pointer;text-align:left;color:var(--color-text);font-weight:600}.copy-pack-modal{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.qr-login{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-md) 0}.qr-code-wrap{background:#fff;padding:var(--space-md);border-radius:var(--radius-md)}.qr-scan-modal{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.qr-confirm,.qr-done{display:flex;flex-direction:column;gap:var(--space-sm)}.chat-stranger-warning{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:#ffc80026;border-bottom:1px solid var(--color-border);font-size:.85rem}.chat-stranger-warning>span{flex:1}.chat-stranger-block{background:var(--color-danger);color:#fff;border:none;border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer;font-size:.8rem}.admin-shell{display:grid;grid-template-columns:var(--side-nav-width) 1fr;min-height:100vh;background:var(--color-bg);color:var(--color-text)}.admin-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.admin-brand{font-weight:700;font-size:1.05rem;padding:var(--space-sm) var(--space-xs);background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;color:transparent}.admin-nav{display:flex;flex-direction:column;gap:2px}.admin-nav-link{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:.95rem;transition:background .15s,color .15s}.admin-nav-link:hover{background:var(--color-surface-2);color:var(--color-text)}.admin-nav-link.is-active{background:var(--color-primary);color:#fff}.admin-nav-icon{width:1.4em;text-align:center}.admin-main{display:flex;flex-direction:column;min-width:0}.admin-topbar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0;z-index:10}.admin-topbar-title{font-weight:600}.admin-topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-md)}.admin-user-name{color:var(--color-text-muted);font-size:.9rem}.admin-burger{display:none;background:none;border:none;color:var(--color-text);font-size:1.4rem;cursor:pointer}.admin-content{padding:var(--space-lg);flex:1;min-width:0}.admin-page-title{margin:0 0 var(--space-lg);font-size:1.5rem}.admin-page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.admin-page-head .admin-page-title{margin:0}.admin-muted{color:var(--color-text-muted)}.admin-loading{color:var(--color-text-muted);padding:var(--space-lg)}.admin-error{color:var(--color-danger)}.admin-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.admin-widget{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.admin-widget-title{color:var(--color-text-muted);font-size:.85rem}.admin-widget-value{font-size:1.8rem;font-weight:700}.admin-widget-sub{color:var(--color-text-muted);font-size:.8rem}.admin-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md)}.admin-card h3{margin:0 0 var(--space-md);font-size:1rem}.admin-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-bottom:var(--space-lg)}.admin-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-lg)}.admin-field{display:flex;flex-direction:column;gap:var(--space-xs);font-size:.85rem;color:var(--color-text-muted)}.admin-field select{padding:var(--space-sm);background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95rem}.admin-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.92rem}.admin-table th,.admin-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}.admin-table th{color:var(--color-text-muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table-row--click{cursor:pointer}.admin-table-row--click:hover td{background:var(--color-surface-2)}.admin-table-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-lg)!important}.admin-row-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-md)}.admin-page-info{color:var(--color-text-muted);font-size:.9rem}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--color-surface-2);color:var(--color-text-muted)}.badge--green{background:#46a7582e;color:var(--color-success)}.badge--red{background:#e5484d2e;color:var(--color-danger)}.badge--gray{background:var(--color-surface-2);color:var(--color-text-muted)}.admin-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.admin-status-dot--green{background:var(--color-success)}.admin-status-dot--red{background:var(--color-danger)}.admin-status-dot--gray{background:var(--color-text-muted)}.admin-load{display:flex;align-items:center;gap:var(--space-sm);min-width:140px}.admin-load-bar{flex:1;height:8px;border-radius:999px;background:var(--color-surface-2);overflow:hidden}.admin-load-fill{height:100%;background:var(--color-primary)}.admin-load-fill--green{background:var(--color-success)}.admin-load-fill--amber{background:var(--color-secondary)}.admin-load-fill--red{background:var(--color-danger)}.admin-tabs{display:flex;gap:var(--space-xs);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-lg);flex-wrap:wrap}.admin-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:.95rem}.admin-tab.is-active{color:var(--color-text);border-bottom-color:var(--color-primary)}.admin-tab-panel{min-height:120px}.admin-user-head{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.admin-user-head-actions{margin-left:auto;display:flex;gap:var(--space-sm)}.admin-modal-body{display:flex;flex-direction:column;gap:var(--space-md);min-width:280px}.admin-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.admin-form{display:flex;flex-direction:column;gap:var(--space-md);max-width:420px}.admin-form select{padding:var(--space-sm);background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.admin-flags{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.admin-flag-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-flag-name{display:block;font-weight:600}.admin-flag-desc{display:block;color:var(--color-text-muted);font-size:.82rem}.admin-add-locale{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-lg)}.admin-switch{position:relative;display:inline-block;width:44px;height:24px;flex:0 0 auto}.admin-switch input{opacity:0;width:0;height:0}.admin-switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;transition:background .15s}.admin-switch-slider:before{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .15s}.admin-switch input:checked+.admin-switch-slider{background:var(--color-primary);border-color:var(--color-primary)}.admin-switch input:checked+.admin-switch-slider:before{transform:translate(20px)}.admin-upload-row{display:flex;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-md)}.admin-emoji-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:var(--space-md)}.admin-emoji-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-emoji-img{width:48px;height:48px;object-fit:contain}.admin-emoji-name{font-size:.8rem;color:var(--color-text-muted)}.admin-pack-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.admin-pack-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-pack-info{display:flex;flex-direction:column}.admin-pack-name{font-weight:600}.admin-chart{width:100%;height:auto}.admin-pie-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.admin-pie{width:180px;height:180px}.admin-pie-legend{list-style:none;margin:var(--space-md) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:.82rem}.admin-pie-legend li{display:flex;align-items:center;gap:4px}.admin-pie-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.admin-checkbox{display:flex;align-items:center;gap:var(--space-xs);font-size:.9rem;color:var(--color-text-muted)}@media (max-width: 880px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--side-nav-width);transform:translate(-100%);transition:transform .2s;z-index:30}.admin-shell--menu-open .admin-sidebar{transform:translate(0)}.admin-burger{display:block}.admin-charts-row{grid-template-columns:1fr}.admin-user-head-actions{margin-left:0;width:100%}}.admin-subtitle{font-size:1.05rem;margin:var(--space-lg) 0 var(--space-sm)}.admin-service-card{gap:var(--space-sm)}.admin-service-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.admin-service-rows{margin:0;display:grid;grid-template-columns:1fr auto;gap:2px var(--space-sm);font-size:.85rem}.admin-service-rows>div{display:contents}.admin-service-rows dt{color:var(--color-text-muted)}.admin-service-rows dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.admin-service-error{color:var(--color-danger);font-size:.78rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-error-logs{display:flex;flex-direction:column;gap:var(--space-md)}.admin-page-actions{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.admin-switch--inline{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.admin-switch-label{font-size:.88rem;color:var(--color-text)}.admin-hint{margin:0;padding:var(--space-sm) var(--space-md);background:var(--color-surface-2);border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.85rem;line-height:1.5}.admin-empty{padding:var(--space-lg);text-align:center;color:var(--color-text-muted);background:var(--color-surface-2);border-radius:var(--radius-md)}.admin-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) 0}.admin-pager-info{font-size:.85rem;color:var(--color-text-muted)}.admin-table--logs td{vertical-align:top}.admin-table--logs .error-row{cursor:pointer}.admin-table--logs .error-row:hover td{background:var(--color-surface-2)}.error-level{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em}.error-level--warning{background:#e6a23c2e;color:#b97914}.error-level--error{background:#e158582e;color:#c43838}.error-level--critical{background:#c43838;color:#fff}.error-where{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--color-text);word-break:break-word}.error-where-sub{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;color:var(--color-text-muted);margin-top:2px}.error-message{font-size:.86rem;color:var(--color-text);word-break:break-word}.error-exc{margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;color:var(--color-danger);word-break:break-word}.error-row--error td{background:#e1585808}.error-row--critical td{background:#e1585812}.error-detail{display:flex;flex-direction:column;gap:var(--space-sm)}.error-detail-grid{display:grid;grid-template-columns:110px 1fr;gap:4px var(--space-sm);font-size:.85rem}.error-detail-grid>:nth-child(odd){color:var(--color-text-muted)}.error-section{margin:var(--space-sm) 0 0;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.error-pre{margin:0;padding:var(--space-sm);background:var(--color-surface-2);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}.error-pre--code{font-size:.74rem;line-height:1.5}.mod-shell{min-height:100vh;background:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column}.mod-topbar{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10;flex-wrap:wrap}.mod-brand{font-weight:700;background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;color:transparent}.mod-nav{display:flex;gap:var(--space-xs)}.mod-nav-link{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:.95rem}.mod-nav-link:hover{background:var(--color-surface-2);color:var(--color-text)}.mod-nav-link.is-active{background:var(--color-primary);color:#fff}.mod-topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-md)}.mod-user-name{color:var(--color-text-muted);font-size:.9rem}.mod-content{padding:var(--space-lg);max-width:900px;width:100%;margin:0 auto}.mod-page-title{margin:0 0 var(--space-lg);font-size:1.5rem}.mod-subtitle{font-size:1.1rem;margin:var(--space-lg) 0 var(--space-md)}.mod-loading,.mod-empty,.mod-muted{color:var(--color-text-muted)}.mod-empty{padding:var(--space-xl);text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.mod-error{color:var(--color-danger)}.mod-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-md)}.mod-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.mod-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.mod-card-title{font-weight:600}.mod-card-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-sm);margin:0}.mod-card-meta dt{color:var(--color-text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.mod-card-meta dd{margin:2px 0 0}.mod-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.mod-snippet-label{color:var(--color-text-muted);font-size:.8rem}.mod-snippet-body{margin:var(--space-xs) 0 0;padding:var(--space-sm);background:var(--color-surface-2);border-radius:var(--radius-sm);font-size:.85rem;white-space:pre-wrap;word-break:break-word;max-height:160px;overflow-y:auto;font-family:inherit}.mod-preview-video{width:100%;max-height:320px;border-radius:var(--radius-sm);background:#000}.mod-modal-body{display:flex;flex-direction:column;gap:var(--space-md);min-width:280px}.mod-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.mod-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-lg);color:var(--color-text-muted)}.mod-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.mod-history-row{display:flex;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.9rem}.mod-page .badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.78rem;font-weight:600}.chat-call-btn.hd-btn:hover:not(:disabled){color:var(--color-primary)}.call-popup{position:fixed;z-index:1000;min-width:280px;max-width:480px;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);display:flex;flex-direction:column;overflow:hidden}.call-popup--full{top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;border-radius:0;border:none}.call-popup-head{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-surface-2);cursor:grab;-webkit-user-select:none;user-select:none}.call-popup-head:active{cursor:grabbing}.call-popup-title{font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call-popup-status{color:var(--color-text-muted);font-size:.82rem}.call-popup-body{min-height:220px;background:var(--color-surface-2);display:flex;align-items:center;justify-content:center;position:relative}.call-popup--full .call-popup-body{flex:1;min-height:0}.call-popup--video .call-popup-body{background:#000}.call-audio-stage{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md)}.call-mic-ind{font-size:1.4rem;opacity:.8}.call-mic-ind.is-off{color:var(--color-danger)}.call-video-stage{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.call-video-remote{width:100%;max-height:60vh;background:#000;object-fit:cover}.call-popup--full .call-video-remote{max-height:none;height:100%}.call-video-local{position:absolute;bottom:var(--space-sm);right:var(--space-sm);width:28%;max-width:160px;border-radius:var(--radius-sm);border:2px solid rgba(255,255,255,.6);background:#000;object-fit:cover}.call-popup-actions{display:flex;gap:var(--space-sm);justify-content:center;padding:var(--space-sm)}.call-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md);cursor:pointer;font-size:1rem;line-height:1}.call-btn:hover{background:var(--color-surface-2)}.call-btn--ghost{border:none;padding:2px 6px;background:transparent}.call-btn--off{border-color:var(--color-danger);color:var(--color-danger)}.call-btn--accept{background:var(--color-success);border-color:var(--color-success);color:#fff}.call-btn--reject,.call-btn--end{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.call-tray{position:fixed;bottom:var(--space-md);right:var(--space-md);z-index:1000;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.call-tray-name{font-weight:600}.call-tray-status{color:var(--color-text-muted);font-size:.85rem}.incoming-call{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001}.incoming-call-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;gap:var(--space-md);min-width:280px;text-align:center;box-shadow:var(--shadow-modal);animation:incoming-pulse 1.4s ease-in-out infinite}.incoming-call-title{margin:0;font-size:1.1rem}.incoming-call-name{margin:0;color:var(--color-text-muted)}.incoming-call-actions{display:flex;gap:var(--space-md)}@keyframes incoming-pulse{0%,to{box-shadow:0 0 #7f4bee99,var(--shadow-modal)}50%{box-shadow:0 0 0 12px #7f4bee00,var(--shadow-modal)}}.msg--system{justify-content:center!important}.msg--system .msg-bubble{background:var(--color-surface-2);color:var(--color-text-muted);font-size:.82rem;border-radius:999px;padding:4px var(--space-md)}.msg--system .msg-meta,.msg--system .msg-menu-btn,.msg--system .msg-reactions{display:none}.msg-call{display:inline-flex;align-items:center;gap:var(--space-xs)}.msg-call-dur{opacity:.75;font-variant-numeric:tabular-nums}
