@import"https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap";:root{--color-bg: #0B0D13;--color-surface: #14161F;--color-surface-raised: #1B1E2A;--color-surface-overlay: #21243333;--color-border: #262A3A;--color-border-subtle: #1C1F2C;--color-text-primary: #F2F3F8;--color-text-secondary: #9BA0B4;--color-text-tertiary: #666C82;--color-text-inverse: #0B0D13;--color-accent-violet: #6C5CE7;--color-accent-violet-bright: #8B7FFF;--color-accent-coral: #FF6B5E;--color-accent-coral-bright: #FF8577;--color-accent-mint: #2ED88A;--color-accent-amber: #FFB84D;--gradient-primary: linear-gradient(135deg, #6C5CE7 0%, #8B7FFF 55%, #A78BFA 100%);--gradient-call: linear-gradient(135deg, #FF6B5E 0%, #FF8577 100%);--gradient-ambient: radial-gradient(circle at 20% 0%, rgba(108, 92, 231, .16), transparent 45%), radial-gradient(circle at 85% 15%, rgba(255, 107, 94, .1), transparent 40%);--color-online: #2ED88A;--color-danger: #FF5C5C;--color-warning: #FFB84D;--glass-bg: rgba(27, 30, 42, .72);--glass-border: rgba(255, 255, 255, .07);--glass-blur: blur(20px);--font-display: "Manrope", "Segoe UI", sans-serif;--font-body: "Inter", "Segoe UI", sans-serif;--font-size-xs: .6875rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-md: 1.0625rem;--font-size-lg: 1.25rem;--font-size-xl: 1.625rem;--font-size-2xl: 2.25rem;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .24);--shadow-md: 0 8px 24px rgba(0, 0, 0, .32);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .4);--shadow-glow-violet: 0 0 0 1px rgba(108, 92, 231, .4), 0 8px 32px rgba(108, 92, 231, .24);--shadow-glow-coral: 0 0 0 1px rgba(255, 107, 94, .4), 0 8px 32px rgba(255, 107, 94, .24);--transition-fast: .12s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .36s cubic-bezier(.16, 1, .3, 1);--z-toolbar: 10;--z-panel: 20;--z-modal-backdrop: 40;--z-modal: 50;--z-call-capsule: 60;--z-call-fullscreen: 70;--z-toast: 80}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-body);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg);background-image:var(--gradient-ambient);background-attachment:fixed;-webkit-font-smoothing:antialiased;line-height:1.45}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em}button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}input,textarea{font-family:inherit;color:inherit;background:none;border:none;outline:none}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}svg{display:block;flex-shrink:0}ul,ol{list-style:none}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}*::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hidden{display:none!important}.app-shell{position:fixed;top:var(--real-vh-offset, 0px);left:0;height:100vh;height:100dvh;height:calc(var(--real-vh, 1vh) * 100);width:100vw;overflow:hidden}.screen{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--color-bg)}.screen.screen-enter-push{transform:translate(100%);z-index:2}.screen.screen-exit-push{transform:translate(0);z-index:1}.screen.screen-enter-pop{transform:translate(0);z-index:2}.screen.screen-exit-pop{transform:translate(0);z-index:1}.screen.screen-transition-active{transition:transform var(--transition-slow)}.screen.screen-enter-push.screen-transition-active{transform:translate(0)}.screen.screen-exit-push.screen-transition-active{transform:translate(-24%)}.screen.screen-exit-pop.screen-transition-active{transform:translate(100%)}.screen.screen-enter-pop.screen-transition-active{transform:translate(0)}::selection{background:#6c5ce759;color:var(--color-text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);height:44px;padding:0 var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),opacity var(--transition-fast);white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-glow-violet)}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-danger{background:#ff5c5c24;color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:#ff5c5c38}.btn-secondary{background:var(--color-surface-raised);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-raised);color:var(--color-text-primary)}.btn-sm{height:34px;padding:0 var(--space-md);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.btn-block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);flex-shrink:0}.icon-btn:active{transform:scale(.88)}.icon-btn:hover{background:var(--color-surface-raised);color:var(--color-text-primary)}.icon-btn.active{color:var(--color-accent-violet-bright);background:#6c5ce724}.icon-btn-badged{position:relative}.icon-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--color-danger);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:0 0 0 2px var(--color-bg)}.fab{position:absolute;bottom:var(--space-lg);right:var(--space-lg);width:56px;height:56px;border-radius:var(--radius-full);background:var(--gradient-primary);box-shadow:var(--shadow-glow-violet);display:flex;align-items:center;justify-content:center;transition:transform var(--transition-base);z-index:var(--z-panel)}.fab:hover{transform:scale(1.06)}.fab:active{transform:scale(.94)}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500;padding-left:2px}.field-input-wrap{position:relative;display:flex;align-items:center}.field-input{width:100%;height:48px;padding:0 var(--space-md);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field-input:focus{border-color:var(--color-accent-violet);box-shadow:0 0 0 3px #6c5ce729}.field-input::placeholder{color:var(--color-text-tertiary)}.field-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding-left:2px}.field-error{font-size:var(--font-size-xs);color:var(--color-danger);padding-left:2px}.search-input-wrap{display:flex;align-items:center;gap:var(--space-xs);height:44px;padding:0 var(--space-md);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-full)}.search-input-wrap .field-input{height:auto;background:none;border:none;padding:0}.search-input-wrap .field-input:focus{box-shadow:none}.avatar{position:relative;flex-shrink:0;border-radius:var(--radius-full);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;color:#fff;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-full)}.avatar{text-overflow:clip;white-space:nowrap}.avatar-sm{width:36px;height:36px;font-size:var(--font-size-sm)}.avatar-md{width:44px;height:44px;font-size:var(--font-size-base)}.avatar-lg{width:64px;height:64px;font-size:var(--font-size-lg)}.avatar-xl{width:112px;height:112px;font-size:var(--font-size-2xl)}.avatar-presence-dot{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:var(--radius-full);background:var(--color-online);border:2.5px solid var(--color-bg);opacity:0;transform:scale(.6);transition:opacity var(--transition-fast),transform var(--transition-fast);z-index:1}.avatar-presence-dot.online{opacity:1;transform:scale(1)}.avatar-lg .avatar-presence-dot,.avatar-xl .avatar-presence-dot{width:16px;height:16px;border-width:3px}.unread-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--radius-full);background:var(--gradient-call);color:#fff;font-size:var(--font-size-xs);font-weight:700}.unread-badge.muted{background:var(--color-surface-raised);border:1px solid var(--color-border);color:var(--color-text-secondary)}.glass-panel{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.toast-stack{position:fixed;top:var(--space-lg);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--space-xs);z-index:var(--z-toast);pointer-events:none}.toast{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface-raised);border:1px solid var(--color-border);box-shadow:var(--shadow-md);font-size:var(--font-size-sm);animation:toast-in var(--transition-slow)}.toast.toast-error{border-color:#ff5c5c66;color:#ffb4b4}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-2xl);color:var(--color-text-tertiary);text-align:center;flex:1}.empty-state-title{font-size:var(--font-size-md);color:var(--color-text-secondary);font-weight:600}.empty-state-subtitle{font-size:var(--font-size-sm);max-width:260px}.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--color-border);border-top-color:var(--color-accent-violet-bright);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.waveform{display:inline-flex;align-items:center;gap:3px;height:16px}.waveform .bar{width:3px;border-radius:var(--radius-full);background:var(--color-online);height:4px;transition:height 90ms ease}.waveform.speaking .bar{animation:waveform-bounce .64s ease-in-out infinite}.waveform .bar:nth-child(1){animation-delay:0ms}.waveform .bar:nth-child(2){animation-delay:.11s}.waveform .bar:nth-child(3){animation-delay:.22s}.waveform .bar:nth-child(4){animation-delay:90ms}@keyframes waveform-bounce{0%,to{height:4px}50%{height:16px}}.toggle-switch{position:relative;display:inline-flex;align-items:center;width:44px;height:26px;border-radius:var(--radius-full);background:var(--color-surface-raised);border:1px solid var(--color-border);cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),border-color var(--transition-fast)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-text-secondary);transition:transform var(--transition-fast),background var(--transition-fast)}.toggle-switch.checked{background:var(--gradient-primary);border-color:transparent}.toggle-switch.checked:after{transform:translate(18px);background:#fff}.toggle-switch.disabled{opacity:.5;cursor:not-allowed}.settings-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-2xs)}.settings-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.settings-row-title{font-size:var(--font-size-base);color:var(--color-text-primary)}.settings-row-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.settings-section-title{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);padding:var(--space-sm) var(--space-2xs) 0}.verification-settings-block{padding:var(--space-2xs) var(--space-2xs) var(--space-sm)}.role-color-blue{--role-color: 91, 152, 255}.role-color-yellow{--role-color: 255, 196, 61}.role-color-green{--role-color: 46, 216, 138}.role-color-pink{--role-color: 255, 122, 200}.role-color-red{--role-color: 255, 92, 92}.message-role-badge{margin-left:auto;font-size:var(--font-size-xs);font-weight:700;padding:3px 10px;border-radius:var(--radius-full);background:rgba(var(--role-color),.22);border:1px solid rgba(var(--role-color),.4);color:rgb(var(--role-color));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.member-role-badge-inline{display:inline-block;margin-left:6px;font-size:10px;font-weight:700;padding:1px 7px;border-radius:var(--radius-full);background:rgba(var(--role-color),.2);border:1px solid rgba(var(--role-color),.38);color:rgb(var(--role-color));vertical-align:middle}.role-color-swatches{display:flex;gap:var(--space-sm);padding:var(--space-2xs) 0}.role-color-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;background:rgb(var(--role-color));cursor:pointer;transition:transform var(--transition-fast),border-color var(--transition-fast)}.role-color-swatch.selected{border-color:var(--color-text-primary);transform:scale(1.12)}.field-counter{display:block;text-align:right;font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:2px}.settings-row-column{flex-direction:column;align-items:stretch;gap:var(--space-xs)}.slow-mode-slider-row{display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-2xs)}.slow-mode-slider-row input[type=range]{flex:1;accent-color:var(--color-accent-violet-bright)}.slow-mode-slider-value{min-width:44px;text-align:right;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.link-confirm-url{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm);color:var(--color-accent-violet-bright);word-break:break-all}.auth-screen{align-items:center;justify-content:flex-start;padding:var(--space-lg);overflow-y:auto}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--space-lg);margin:auto 0;padding-bottom:var(--space-lg)}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.auth-brand-mark{width:64px;height:64px;border-radius:var(--radius-lg);background:var(--gradient-primary);box-shadow:var(--shadow-glow-violet);display:flex;align-items:center;justify-content:center}.auth-brand-title{font-size:var(--font-size-xl);font-family:var(--font-display)}.auth-brand-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.auth-form{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-xl);border-radius:var(--radius-xl);background:var(--color-surface);border:1px solid var(--color-border-subtle);box-shadow:var(--shadow-lg)}.auth-tabs{display:flex;padding:4px;border-radius:var(--radius-md);background:var(--color-surface-raised);margin-bottom:var(--space-xs)}.auth-tab{flex:1;height:38px;border-radius:calc(var(--radius-md) - 4px);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast)}.auth-tab.active{background:var(--gradient-primary);color:#fff}.auth-avatar-picker{display:flex;align-items:center;gap:var(--space-md)}.auth-avatar-picker .avatar{cursor:pointer;border:2px dashed var(--color-border);background:var(--color-surface-raised)}.auth-avatar-picker-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.auth-submit-error{font-size:var(--font-size-sm);color:var(--color-danger);text-align:center;min-height:18px}.auth-link-button{align-self:center;font-size:var(--font-size-sm);color:var(--color-accent-violet-bright);padding:var(--space-2xs) var(--space-xs);transition:opacity var(--transition-fast)}.auth-link-button:hover{opacity:.8}.auth-back-button{display:inline-flex;align-items:center;gap:var(--space-2xs);align-self:flex-start;font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-2xs) 0}.auth-back-button:hover{color:var(--color-text-primary)}.auth-form-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.telegram-link-banner{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-md);background:#ffb84d1a;border:1px solid rgba(255,184,77,.28)}.telegram-link-banner-icon{width:22px;height:22px;flex-shrink:0;color:var(--color-accent-amber);margin-top:2px}.telegram-link-banner-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.telegram-link-banner-title{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-primary)}.telegram-link-banner-text{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.45}.telegram-link-banner .btn{flex-shrink:0;align-self:center}.verification-code-input-wrap{display:flex;justify-content:center}.verification-code-input{text-align:center;letter-spacing:.5em;font-size:var(--font-size-lg);font-family:var(--font-display);font-weight:700;max-width:220px}.verification-code-timer{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center}.main-toolbar{position:relative;height:64px;padding:0 var(--space-md);flex-shrink:0;z-index:var(--z-toolbar);overflow:hidden}.main-toolbar-default,.main-toolbar-search{position:absolute;inset:0;display:flex;align-items:center;padding:0 var(--space-md);transition:transform var(--transition-base),opacity var(--transition-base)}.main-toolbar-default{justify-content:space-between;transform:translate(0);opacity:1}.main-toolbar-default.toolbar-slide-out{transform:translate(-24px);opacity:0;pointer-events:none}.main-toolbar-search{gap:var(--space-sm);transform:translate(24px);opacity:0;pointer-events:none}.main-toolbar-search.toolbar-slide-in{transform:translate(0);opacity:1;pointer-events:auto}.main-toolbar-search.hidden{display:none}.main-toolbar-search .search-input-wrap{flex:1}.main-toolbar-title{font-size:var(--font-size-lg);display:flex;align-items:center;gap:var(--space-xs)}.main-toolbar-actions{display:flex;align-items:center;gap:var(--space-2xs)}.chat-list{flex:1;min-height:0;overflow-y:auto;padding:0 var(--space-xs) 96px}.verification-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-2xs);flex-shrink:0;padding:var(--space-xs) var(--space-md);background:#ffb84d24;border-bottom:1px solid rgba(255,184,77,.28);color:var(--color-accent-amber);font-size:var(--font-size-sm);font-weight:600;transition:background var(--transition-fast)}.verification-banner:hover{background:#ffb84d38}.verification-banner [data-icon-slot]{width:16px;height:16px}.chat-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-md);transition:background var(--transition-fast);text-align:left}.chat-item:hover{background:var(--color-surface-raised)}.chat-item:active{background:var(--color-border)}.chat-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-item-top-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-xs)}.chat-item-name{font-weight:600;font-size:var(--font-size-base)}.chat-item-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary);flex-shrink:0}.chat-item-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.mention-indicator{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--gradient-primary);color:#fff;font-size:11px;font-weight:700}.chat-item-preview{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:4px}.chat-item-preview.live-call{color:var(--color-accent-coral-bright);font-weight:600}.chat-item-preview.typing-preview{color:var(--color-accent-violet-bright);font-weight:600;font-style:italic}.chat-item-preview .read-ticks{flex-shrink:0}.search-results-overlay{position:absolute;inset:64px 0 0;z-index:var(--z-panel);background:var(--color-bg);display:flex;flex-direction:column;animation:fade-in var(--transition-fast)}.search-results-overlay.hidden{display:none}.search-results{flex:1;overflow-y:auto;padding:var(--space-xs) var(--space-md)}.search-result-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-xs);border-radius:var(--radius-md)}.search-result-info{flex:1;min-width:0;display:flex;flex-direction:column}.search-result-username{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.search-result-verified-mark{display:inline-flex;vertical-align:middle;margin-left:4px;transform:translateY(-1px)}.friend-picker-list{display:flex;flex-direction:column;gap:var(--space-2xs);max-height:320px;overflow-y:auto}.friend-picker-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);transition:background var(--transition-fast)}.friend-picker-item:hover{background:var(--color-surface-raised)}.friend-picker-checkbox{width:22px;height:22px;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition-fast),border-color var(--transition-fast)}.friend-picker-checkbox.checked{background:var(--gradient-primary);border-color:transparent}.friend-picker-name{flex:1;font-size:var(--font-size-sm)}.chat-toolbar{display:flex;align-items:center;gap:var(--space-xs);height:64px;padding:0 var(--space-sm);flex-shrink:0;border-bottom:1px solid var(--color-border-subtle);position:relative;z-index:var(--z-toolbar)}.chat-toolbar-identity{display:flex;align-items:center;gap:var(--space-sm);flex:1;min-width:0;padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-md);transition:background var(--transition-fast)}.chat-toolbar-identity:hover{background:var(--color-surface-raised)}.chat-toolbar-text{min-width:0;display:flex;flex-direction:column}.chat-toolbar-name{font-weight:600;font-size:var(--font-size-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-toolbar-status{font-size:var(--font-size-xs);color:var(--color-text-tertiary);display:flex;align-items:center;gap:5px}.chat-toolbar-status.online{color:var(--color-online)}.chat-toolbar-status-dot{width:6px;height:6px;border-radius:var(--radius-full);background:currentColor}.join-call-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:linear-gradient(135deg,#ff6b5e29,#ff6b5e0f);border-bottom:1px solid rgba(255,107,94,.24);flex-shrink:0}.join-call-banner-text{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);font-weight:600;color:var(--color-accent-coral-bright)}.message-list{flex:1;min-height:0;overflow-y:auto;padding:var(--space-md) var(--space-md) var(--space-sm);display:flex;flex-direction:column;gap:2px}.message-list-loading-top{display:flex;justify-content:center;padding:var(--space-sm) 0}.message-day-divider{display:flex;align-items:center;justify-content:center;margin:var(--space-md) 0 var(--space-sm)}.message-day-divider span{font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--color-surface);padding:4px var(--space-sm);border-radius:var(--radius-full)}.message-row{display:flex;max-width:78%;margin-top:6px;position:relative;touch-action:pan-y}@media(hover:none){.message-row{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.message-row.outgoing{align-self:flex-end;justify-content:flex-end}.message-row.incoming{align-self:flex-start}.message-row.grouped{margin-top:2px}.message-bubble{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);font-size:var(--font-size-base);word-break:break-word;white-space:pre-wrap;position:relative;display:flex;flex-direction:column;gap:2px}.message-row.incoming .message-bubble{background:var(--color-surface-raised);border-bottom-left-radius:4px}.message-row.outgoing .message-bubble{background:var(--gradient-primary);color:#fff;border-bottom-right-radius:4px}.message-bubble-swiping,.message-row .message-bubble.message-bubble-swiping{transition:none}.message-row .message-bubble.message-bubble-spring-back{transition:transform var(--transition-base)}.message-swipe-icon{position:absolute;top:50%;width:30px;height:30px;border-radius:var(--radius-full);background:var(--color-surface-raised);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);opacity:0;transform:translateY(-50%) scale(.6);pointer-events:none;transition:background var(--transition-fast),color var(--transition-fast)}.message-swipe-icon-armed{background:var(--color-accent-violet);color:#fff}.message-swipe-icon-left{right:calc(100% + var(--space-xs))}.message-swipe-icon-right{left:calc(100% + var(--space-xs))}.message-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);margin-bottom:1px}.message-sender-name{font-size:var(--font-size-xs);font-weight:700;color:var(--color-accent-violet-bright);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-meta-row{display:flex;align-items:center;justify-content:flex-end;gap:4px;font-size:.65rem;opacity:.7;margin-top:1px}.read-ticks{display:inline-flex;align-items:center}.read-ticks svg{color:currentColor}.read-ticks.read{color:var(--color-accent-mint)}.message-row.outgoing .message-meta-row{color:#ffffffd9}.chat-input-bar{display:flex;align-items:flex-end;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);flex-shrink:0;border-top:1px solid var(--color-border-subtle)}.chat-input-field{flex:1;min-height:44px;max-height:120px;padding:var(--space-xs) var(--space-md);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--font-size-base);resize:none;overflow-y:auto;line-height:1.4;transition:border-color var(--transition-fast)}.chat-input-field:focus{border-color:var(--color-accent-violet)}.chat-input-send{width:44px;height:44px;border-radius:var(--radius-full);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform var(--transition-fast),opacity var(--transition-fast)}.chat-input-send:active{transform:scale(.92)}.chat-input-send:disabled{opacity:.4}.chat-input-attach-btn{width:40px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:color var(--transition-fast),transform var(--transition-fast)}.chat-input-attach-btn:hover{color:var(--color-accent-violet-bright)}.chat-input-attach-btn:active{transform:scale(.9)}.attachment-preview-row{display:flex;gap:var(--space-xs);padding:var(--space-xs) var(--space-md) 0;overflow-x:auto}.attachment-preview-item{position:relative;width:64px;height:64px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden}.attachment-preview-thumb{width:100%;height:100%;object-fit:cover;display:block}.attachment-preview-remove{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.attachment-preview-remove svg{width:12px;height:12px}.attachment-preview-progress{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.attachment-preview-progress-track{fill:#00000059;stroke:#ffffff40;stroke-width:2.5}.attachment-preview-progress-fill{fill:none;stroke:var(--color-accent-violet-bright);stroke-width:2.5;stroke-linecap:round;transition:stroke-dashoffset var(--transition-fast)}.attachment-preview-item.attachment-failed .attachment-preview-thumb{opacity:.4}.attachment-preview-item.attachment-failed:after{content:"!";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--color-danger)}.message-attachments-grid{display:grid;gap:3px;border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-2xs)}.message-attachments-grid.attachments-count-1{grid-template-columns:1fr;max-width:280px}.message-attachments-grid.attachments-count-2{grid-template-columns:1fr 1fr}.message-attachments-grid.attachments-count-3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.message-attachments-grid.attachments-count-3 .message-attachment-thumb:first-child{grid-row:1 / 3}.message-attachments-grid.attachments-count-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.message-attachments-grid.attachments-count-5{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr}.message-attachments-grid.attachments-count-5 .message-attachment-thumb:nth-child(-n+2){grid-row:1 / 2}.message-attachments-grid.attachments-count-5 .message-attachment-thumb:nth-child(1),.message-attachments-grid.attachments-count-5 .message-attachment-thumb:nth-child(2){aspect-ratio:3 / 2}.message-attachment-thumb{width:100%;height:100%;min-height:80px;object-fit:cover;cursor:pointer;display:block;background:var(--color-surface-raised)}.message-attachment-thumb.attachment-load-failed{opacity:.3}.attachment-viewer-overlay{position:fixed;inset:0;z-index:1000;background:#000000eb;display:flex;align-items:center;justify-content:center;animation:attachment-viewer-fade-in var(--transition-base)}@keyframes attachment-viewer-fade-in{0%{opacity:0}to{opacity:1}}.attachment-viewer-image{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:var(--radius-sm)}.attachment-viewer-close{position:absolute;top:var(--space-md);right:var(--space-md);width:40px;height:40px;border-radius:50%;background:#ffffff1a;color:#fff;display:flex;align-items:center;justify-content:center}.attachment-viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:#ffffff1a;color:#fff;display:flex;align-items:center;justify-content:center}.attachment-viewer-prev{left:var(--space-md)}.attachment-viewer-next{right:var(--space-md)}.chat-input-restricted{display:flex;align-items:center;justify-content:center;height:56px;flex-shrink:0;border-top:1px solid var(--color-border-subtle);color:var(--color-text-tertiary);font-size:var(--font-size-sm);gap:var(--space-xs)}.chat-delete-account-bar{padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-border-subtle);flex-shrink:0}.chat-toolbar-name-verified{display:inline-flex;align-items:center;gap:4px}.input-context-bar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);flex-shrink:0;background:var(--color-surface-raised);animation:context-bar-in var(--transition-fast)}@keyframes context-bar-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.input-context-accent{width:3px;align-self:stretch;border-radius:var(--radius-full);background:var(--color-accent-violet-bright);flex-shrink:0}.input-context-bar.edit-mode .input-context-accent{background:var(--color-accent-amber)}.input-context-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.input-context-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-accent-violet-bright)}.input-context-bar.edit-mode .input-context-title{color:var(--color-accent-amber)}.input-context-preview{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.message-reply-quote{display:flex;align-items:stretch;gap:var(--space-xs);width:100%;padding:4px 6px;margin-bottom:4px;border-radius:var(--radius-sm);background:#00000029;text-align:left;transition:background var(--transition-fast)}.message-reply-quote:hover{background:#00000047}.message-row.outgoing .message-reply-quote{background:#00000024}.message-reply-quote-accent{width:3px;border-radius:var(--radius-full);background:var(--color-accent-violet-bright);flex-shrink:0}.message-row.outgoing .message-reply-quote-accent{background:#ffffffb3}.message-reply-quote-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:0}.message-reply-quote-author{font-size:var(--font-size-xs);font-weight:700;color:var(--color-accent-violet-bright)}.message-row.outgoing .message-reply-quote-author{color:#ffffffe6}.message-reply-quote-text{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.message-row.outgoing .message-reply-quote-text{color:#ffffffb3}.message-reply-quote.reply-deleted .message-reply-quote-text{font-style:italic}.message-edited-mark{font-size:.65rem;color:var(--color-text-tertiary);margin-right:2px}.message-row.outgoing .message-edited-mark{color:#fff9}.chat-toolbar-status.typing{color:var(--color-accent-violet-bright)}.typing-dots{display:inline-flex;align-items:center;gap:2px}.typing-dots span{width:4px;height:4px;border-radius:var(--radius-full);background:currentColor;animation:typing-dot-bounce 1.1s ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typing-dot-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-3px);opacity:1}}.message-row-highlight .message-bubble{animation:message-highlight-flash 1.2s ease-out}@keyframes message-highlight-flash{0%{box-shadow:0 0 0 2px var(--color-accent-violet-bright)}to{box-shadow:0 0 0 0 transparent}}.message-row-entering .message-bubble{opacity:0;transform:translateY(10px) scale(.97)}.message-row .message-bubble{transition:opacity var(--transition-slow),transform var(--transition-slow)}.new-messages-badge{position:absolute;right:var(--space-md);bottom:84px;width:44px;height:44px;border-radius:var(--radius-full);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);cursor:pointer;z-index:5;animation:new-messages-badge-in var(--transition-base);transition:transform var(--transition-fast)}.new-messages-badge:active{transform:scale(.92)}@keyframes new-messages-badge-in{0%{opacity:0;transform:translateY(8px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}.new-messages-badge-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:var(--radius-full);background:var(--color-accent-violet-bright);color:#fff;font-size:.6875rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--color-surface)}.mention-jump-badge{position:absolute;right:var(--space-md);bottom:140px;width:40px;height:40px;border-radius:var(--radius-full);background:var(--gradient-primary);border:none;box-shadow:var(--shadow-glow-violet);color:#fff;font-size:var(--font-size-md);font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;animation:new-messages-badge-in var(--transition-base);transition:transform var(--transition-fast)}.mention-jump-badge:active{transform:scale(.92)}.message-mention-tag{color:var(--color-accent-violet-bright);font-weight:600;cursor:pointer}.message-mention-tag:hover{text-decoration:underline}.message-link-tag{color:var(--color-accent-mint);cursor:pointer;word-break:break-all}.message-link-tag:hover{text-decoration:underline}.modal-backdrop{position:fixed;inset:0;background:#06070b99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);display:flex;align-items:flex-end;justify-content:center;animation:fade-in var(--transition-base)}@media(min-width:640px){.modal-backdrop{align-items:center}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-backdrop.closing{animation:fade-out var(--transition-base) forwards}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.modal-sheet{width:100%;max-width:420px;max-height:86vh;display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:sheet-in var(--transition-slow);overflow:hidden}@media(min-width:640px){.modal-sheet{border-radius:var(--radius-xl)}}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-backdrop.closing .modal-sheet{animation:sheet-out var(--transition-base) forwards}@keyframes sheet-out{0%{transform:translateY(0);opacity:1}to{transform:translateY(16px);opacity:0}}.modal-handle{width:36px;height:4px;border-radius:var(--radius-full);background:var(--color-border);margin:var(--space-sm) auto 0;flex-shrink:0}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);flex-shrink:0}.modal-title{font-size:var(--font-size-md)}.modal-header-actions{display:flex;align-items:center;gap:var(--space-2xs)}.modal-body{padding:0 var(--space-lg) var(--space-lg);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.modal-footer{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg) var(--space-lg);flex-shrink:0}.modal-footer .btn{flex:1}.profile-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md) 0 var(--space-lg)}.profile-name{font-size:var(--font-size-lg);text-align:center}.profile-name-row{display:flex;align-items:center;justify-content:center;gap:6px}.profile-name-row .profile-name{margin:0}.profile-verified-mark{display:inline-flex;flex-shrink:0}.profile-spam-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);background:#e5484d29;color:var(--color-danger);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.profile-username{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.profile-status{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.profile-status.online{color:var(--color-online)}.profile-status-dot{width:7px;height:7px;border-radius:var(--radius-full);background:currentColor}.profile-actions{display:flex;flex-direction:column;gap:var(--space-xs)}.member-list{display:flex;flex-direction:column;gap:2px}.member-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-2xs);border-radius:var(--radius-md);transition:background var(--transition-fast)}.member-row:hover{background:var(--color-surface-raised)}.member-info{flex:1;min-width:0;display:flex;flex-direction:column}.member-name-row{display:flex;align-items:center;gap:6px}.member-owner-badge{font-size:.65rem;font-weight:700;color:var(--color-accent-amber);background:#ffb84d24;padding:2px 6px;border-radius:var(--radius-sm)}.member-restriction-badges{display:flex;gap:4px;margin-top:2px}.member-restriction-badge{font-size:.65rem;color:var(--color-text-tertiary);display:flex;align-items:center;gap:3px}.member-menu-trigger{width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);flex-shrink:0;transition:background var(--transition-fast),color var(--transition-fast)}.member-menu-trigger:hover{background:var(--color-border);color:var(--color-text-primary)}.section-label{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);padding:0 2px}.action-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-xs);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:background var(--transition-fast);width:100%;text-align:left}.action-row:hover{background:var(--color-surface-raised)}.action-row.danger,.action-row.danger .icon-btn{color:var(--color-danger)}.action-row:disabled{opacity:.45;cursor:not-allowed}.action-row:disabled:hover{background:none}.confirm-dialog-icon{width:52px;height:52px;border-radius:var(--radius-full);background:#ff5c5c24;display:flex;align-items:center;justify-content:center;color:var(--color-danger);margin:0 auto}.confirm-dialog-text{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.restriction-details{display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface-raised)}.restriction-details-row{display:flex;justify-content:space-between;gap:var(--space-md);font-size:var(--font-size-sm)}.restriction-details-label{color:var(--color-text-secondary)}.restriction-details-value{color:var(--color-text-primary);text-align:right;font-weight:500}.checkbox-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs)}.checkbox-row .friend-picker-checkbox{cursor:pointer}.checkbox-row-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.friend-request-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-2xs)}.friend-request-actions{display:flex;gap:var(--space-2xs)}.call-fullscreen{position:fixed;inset:0;z-index:var(--z-call-fullscreen);background:radial-gradient(circle at 50% 20%,#1b1730,#0b0d13 70%);display:flex;flex-direction:column;animation:fade-in var(--transition-base)}.call-fullscreen-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-lg) 0;flex-shrink:0}.call-fullscreen-title{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}.call-fullscreen-title-name{font-size:var(--font-size-md);font-weight:700}.call-fullscreen-title-timer{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.call-participants-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-lg);align-content:center;justify-items:center;padding:var(--space-xl) var(--space-lg);max-width:560px;margin:0 auto;width:100%}.call-participant-tile{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.call-participant-avatar-wrap{position:relative;width:92px;height:92px}.call-participant-avatar-wrap .avatar{width:100%;height:100%;font-size:var(--font-size-xl);transition:box-shadow var(--transition-base)}.call-participant-avatar-wrap.speaking .avatar{box-shadow:0 0 0 3px var(--color-online),0 0 24px #2ed88a66}.call-participant-mic-badge{position:absolute;right:-2px;bottom:-2px;width:30px;height:30px;border-radius:var(--radius-full);background:var(--color-surface-raised);border:2.5px solid var(--color-bg);display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary)}.call-participant-mic-badge.speaking{color:var(--color-online)}.call-participant-mic-badge.muted{color:var(--color-danger)}.call-participant-name{font-size:var(--font-size-sm);font-weight:600;text-align:center}.call-fullscreen-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-xl) var(--space-lg) var(--space-2xl);flex-shrink:0}.call-control-btn{width:60px;height:60px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--color-surface-raised);border:1px solid var(--color-border);transition:transform var(--transition-fast),background var(--transition-fast)}.call-control-btn:active{transform:scale(.92)}.call-control-btn.muted{background:#ff5c5c29;color:var(--color-danger);border-color:#ff5c5c4d}.call-control-btn.leave{background:var(--gradient-call);border-color:transparent;color:#fff}.call-control-btn.minimize{width:48px;height:48px}.call-capsule{position:fixed;left:50%;bottom:var(--space-lg);transform:translate(-50%);z-index:var(--z-call-capsule);display:flex;align-items:center;gap:var(--space-sm);height:56px;padding:0 var(--space-sm) 0 var(--space-2xs);border-radius:var(--radius-full);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);animation:capsule-in var(--transition-slow);cursor:pointer;max-width:calc(100vw - 32px)}@keyframes capsule-in{0%{transform:translate(-50%) translateY(24px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.call-capsule-avatars{display:flex;align-items:center}.call-capsule-avatars .avatar{width:40px;height:40px;border:2px solid var(--color-surface)}.call-capsule-avatars .avatar:not(:first-child){margin-left:-14px}.call-capsule-info{display:flex;flex-direction:column;gap:1px;min-width:0}.call-capsule-title{font-size:var(--font-size-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.call-capsule-timer{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.call-capsule-actions{display:flex;align-items:center;gap:2px;margin-left:var(--space-2xs)}.call-capsule .call-control-btn{width:40px;height:40px;background:transparent;border:none}.call-capsule .call-control-btn.leave{background:var(--gradient-call)}
