:root{color:#172018;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f8f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}:focus-visible{outline:2px solid var(--tg-button,#2aabee);outline-offset:2px;box-shadow:0 0 0 3px #2aabee47;box-shadow:var(--tg-focus-ring,0 0 0 3px #2aabee47)}:where(button,a,input,textarea,select){transition:background-color var(--tg-motion-fast,.12s) var(--tg-ease-standard,ease), border-color var(--tg-motion-fast,.12s) var(--tg-ease-standard,ease), box-shadow var(--tg-motion-fast,.12s) var(--tg-ease-standard,ease), color var(--tg-motion-fast,.12s) var(--tg-ease-standard,ease), opacity var(--tg-motion-fast,.12s) var(--tg-ease-standard,ease), transform var(--tg-motion-fast,.12s) var(--tg-ease-standard,ease)}button:active:not(:disabled),a:active{transform:translateY(1px)scale(.99)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}button:active:not(:disabled),a:active{transform:none}}:root{--tg-bg:#e8edf3;--tg-text:#14202b;--tg-hint:#6d7a86;--tg-button:#2aabee;--tg-button-text:#fff;--tg-panel:#fff;--tg-border:#14202b1f;--tg-soft-border:#14202b14;--tg-message-incoming:#fff;--tg-message-own:#dff1ff;--tg-message-own-border:#2aabee33;--tg-shadow:0 1px 2px #14202b1a;--tg-danger:#ef4444;--tg-success:#16a34a;--tg-warning:#f59e0b;--tg-info:#2aabee;--tg-soft-bg:#d6eaf8;--tg-surface-raised:#f7fbff;--tg-surface-glass:#ffffffdb;--tg-surface-danger:#fef3f3;--tg-surface-warning:#fff7e7;--tg-surface-success:#f3faf5;--tg-focus-ring:0 0 0 3px #2aabee47;--tg-radius-xs:6px;--tg-radius-sm:10px;--tg-radius-md:14px;--tg-radius-lg:20px;--tg-radius-pill:999px;--tg-shadow-subtle:0 1px 2px #14202b14;--tg-shadow-raised:0 10px 28px #14202b1f;--tg-shadow-floating:0 18px 48px #14202b2e;--tg-motion-fast:.12s;--tg-motion-normal:.22s;--tg-motion-slow:.42s;--tg-ease-standard:cubic-bezier(.2, 0, 0, 1);--tg-ease-spring:cubic-bezier(.16, 1, .3, 1);--tg-skeleton-base:#6d7a861f;--tg-skeleton-sheen:#2aabee24}:root[data-theme=dark]{--tg-soft-bg:#162b3a;--tg-surface-raised:#1b2a35;--tg-surface-danger:#351b1f;--tg-surface-warning:#332716;--tg-surface-success:#173022;--tg-skeleton-base:#8fa1af24;--tg-skeleton-sheen:#2aabee2e;--tg-surface-glass:#1f2c38d1;--tg-border:#eef5fb24;--tg-soft-border:#eef5fb14;--tg-message-incoming:#1f2c38;--tg-message-own:#15344a;--tg-message-own-border:#2aabee52;--tg-shadow:0 1px 2px #0000004d;--tg-shadow-subtle:0 1px 2px #00000047;--tg-shadow-raised:0 12px 32px #00000052;--tg-shadow-floating:0 18px 54px #0000006b}@supports (color:color-mix(in srgb, white, black)){:root{--tg-soft-bg:color-mix(in srgb, var(--tg-button) 7%, var(--tg-bg));--tg-surface-raised:color-mix(in srgb, var(--tg-panel) 94%, var(--tg-button) 6%);--tg-surface-glass:color-mix(in srgb, var(--tg-panel) 86%, transparent);--tg-surface-danger:color-mix(in srgb, var(--tg-danger) 10%, var(--tg-panel));--tg-surface-warning:color-mix(in srgb, var(--tg-warning) 12%, var(--tg-panel));--tg-surface-success:color-mix(in srgb, var(--tg-success) 10%, var(--tg-panel));--tg-focus-ring:0 0 0 3px color-mix(in srgb, var(--tg-button) 28%, transparent);--tg-skeleton-base:color-mix(in srgb, var(--tg-hint) 12%, transparent);--tg-skeleton-sheen:color-mix(in srgb, var(--tg-button) 14%, transparent)}:root[data-theme=dark]{--tg-surface-glass:color-mix(in srgb, var(--tg-panel) 82%, transparent)}}body{background:var(--tg-bg);color:var(--tg-text)}.app-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.app-panel{border:1px solid var(--tg-border);background:var(--tg-panel);border-radius:8px;width:min(100%,560px);padding:24px}.app-eyebrow{color:var(--tg-hint);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:.82rem;font-weight:700}.app-panel h1{letter-spacing:0;margin:0 0 12px;font-size:clamp(1.6rem,1.2rem + 1vw,2.1rem);line-height:1.15}.app-heading-row{align-items:center;gap:10px;min-width:0;display:flex}.app-heading-logo{object-fit:cover;border-radius:8px;flex:none;width:45px;height:45px}.app-panel .app-heading-row{margin-bottom:12px}.app-panel .app-heading-row h1{margin:0}.app-copy{color:var(--tg-hint);margin:0;line-height:1.5}.ui-surface{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-md);background:var(--tg-surface-raised);box-shadow:var(--tg-shadow-subtle)}.ui-surface--glass{background:var(--tg-surface-glass);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.ui-surface--glass{background:var(--tg-surface-raised)}}.ui-notice{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-md);background:var(--tg-surface-raised);box-shadow:var(--tg-shadow-subtle);color:var(--tg-text);gap:4px;padding:12px 14px;display:grid}.ui-notice--error{border-color:#ef444473;border-color:color-mix(in srgb, var(--tg-danger) 38%, var(--tg-border));background:var(--tg-surface-danger)}.ui-notice--warning{border-color:#f59e0b7a;border-color:color-mix(in srgb, var(--tg-warning) 42%, var(--tg-border));background:var(--tg-surface-warning)}.ui-notice--success{border-color:#16a34a6e;border-color:color-mix(in srgb, var(--tg-success) 36%, var(--tg-border));background:var(--tg-surface-success)}.ui-empty-state{border:1px dashed #2aabee5c;border:1px dashed color-mix(in srgb, var(--tg-button) 28%, var(--tg-border));border-radius:var(--tg-radius-md);background:var(--tg-bg);background:radial-gradient(circle at 12% 18%, color-mix(in srgb, var(--tg-button) 12%, transparent), transparent 34%), var(--tg-bg);color:var(--tg-hint);justify-items:start;gap:8px;padding:18px;display:grid}.ui-empty-state strong{color:var(--tg-text)}.ui-skeleton{border-radius:var(--tg-radius-md);background:var(--tg-skeleton-base);position:relative;overflow:hidden}.ui-skeleton:after{background:linear-gradient(90deg, transparent, var(--tg-skeleton-sheen), transparent);content:"";animation:ui-skeleton-shimmer 1.4s var(--tg-ease-standard) infinite;position:absolute;inset:0;transform:translate(-100%)}@keyframes ui-skeleton-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.ui-skeleton:after{animation:none}}@keyframes ui-enter-up{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes ui-pop-in{0%{opacity:0;transform:translateY(8px)scale(.94)}70%{opacity:1;transform:translateY(-1px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}.app-actions{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.login-guide__version{text-align:center;margin-top:18px;font-size:.82rem}.settings-actions{align-items:stretch}.settings-actions .app-button{min-width:0}.app-button{border:1px solid color-mix(in srgb, var(--tg-button) 18%, transparent);border-radius:var(--tg-radius-sm);background:linear-gradient(180deg, #ffffff24, transparent), var(--tg-button);min-height:44px;box-shadow:0 8px 18px color-mix(in srgb, var(--tg-button) 20%, transparent);color:var(--tg-button-text);cursor:pointer;padding:0 18px;font-weight:800}.app-button:hover:not(:disabled),.app-button:focus-visible:not(:disabled){box-shadow:var(--tg-focus-ring), 0 12px 26px color-mix(in srgb, var(--tg-button) 24%, transparent);transform:translateY(-1px)}.app-button-secondary{border:1px solid var(--tg-border);background:color-mix(in srgb, var(--tg-panel) 72%, transparent);box-shadow:var(--tg-shadow-subtle);color:var(--tg-text)}.app-button-secondary:hover:not(:disabled),.app-button-secondary:focus-visible:not(:disabled){border-color:color-mix(in srgb, var(--tg-button) 42%, var(--tg-border));background:color-mix(in srgb, var(--tg-button) 9%, var(--tg-panel))}.app-button-danger{border-color:color-mix(in srgb, var(--tg-danger) 42%, var(--tg-border));color:var(--tg-danger)}.app-button-danger:hover:not(:disabled),.app-button-danger:focus-visible:not(:disabled){border-color:color-mix(in srgb, var(--tg-danger) 58%, var(--tg-border));background:color-mix(in srgb, var(--tg-danger) 10%, var(--tg-panel));box-shadow:var(--tg-focus-ring), 0 12px 26px color-mix(in srgb, var(--tg-danger) 18%, transparent)}.app-button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.rooms-shell{width:min(100%,760px);min-height:100vh;padding:20px;padding-top:calc(20px + var(--tg-content-safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)));margin:0 auto}.rooms-entry-hub{isolation:isolate;width:min(100%,820px);position:relative}.rooms-entry-hub:before{z-index:-1;background:radial-gradient(circle at 20% 8%, color-mix(in srgb, var(--tg-button) 14%, transparent), transparent 32%), radial-gradient(circle at 86% 18%, color-mix(in srgb, var(--tg-success) 9%, transparent), transparent 30%), var(--tg-bg);content:"";position:fixed;inset:0}.rooms-header h1,.room-panel h2{letter-spacing:0;margin:0}.rooms-header{justify-content:flex-start;align-items:center;gap:12px;margin-bottom:20px;padding:6px 2px;display:flex}.rooms-header__title{min-width:0;margin-right:auto;display:grid}.room-panel{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-lg);background:linear-gradient(145deg, color-mix(in srgb, var(--tg-button) 5%, transparent), transparent 42%), var(--tg-surface-raised);box-shadow:var(--tg-shadow-subtle);animation:ui-enter-up var(--tg-motion-normal) var(--tg-ease-spring) both;gap:14px;margin:14px 0;padding:16px;display:grid}.room-panel__description{margin-top:-6px}.room-disclosure__heading{margin:0}.room-disclosure__toggle{border-radius:var(--tg-radius-sm);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;padding:0;display:flex}.room-disclosure__toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--tg-button) 72%, transparent);outline-offset:4px}.room-disclosure__icon{transition:transform var(--tg-motion-fast) var(--tg-ease-standard);flex:none}.room-disclosure__icon.is-open{transform:rotate(180deg)}.room-disclosure__body{gap:14px;display:grid}.room-disclosure-enter-active,.room-disclosure-leave-active{transition:max-height var(--tg-motion-normal) var(--tg-ease-standard), opacity var(--tg-motion-fast) var(--tg-ease-standard), transform var(--tg-motion-fast) var(--tg-ease-standard);will-change:max-height, opacity, transform;overflow:hidden}.room-disclosure-enter-from,.room-disclosure-leave-to{opacity:0;max-height:0;transform:translateY(-6px)}.room-disclosure-enter-to,.room-disclosure-leave-from{opacity:1;max-height:520px;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.room-disclosure-enter-active,.room-disclosure-leave-active{transition:none}.room-disclosure-enter-from,.room-disclosure-leave-to,.room-disclosure-enter-to,.room-disclosure-leave-from{opacity:1;max-height:none;transform:none}}.room-direct-join__label{color:var(--tg-hint);margin-bottom:8px;font-weight:700;display:block}.room-direct-join__row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.room-direct-join__input{border:1px solid var(--tg-border);border-radius:var(--tg-radius-sm);background:color-mix(in srgb, var(--tg-bg) 82%, var(--tg-panel));min-width:0;min-height:44px;color:var(--tg-text);padding:0 13px;box-shadow:inset 0 1px #ffffff2e}.room-direct-join__input:focus-visible{border-color:color-mix(in srgb, var(--tg-button) 58%, var(--tg-border));background:var(--tg-panel)}.room-create-dialog__row{grid-template-columns:74% 1% 25%;align-items:center;display:grid}.room-list,.room-invitation-list{gap:8px;margin-top:0;display:grid}.room-invitation-list{padding:0;list-style:none}.room-list-item,.room-invitation,.room-error{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-md);background:var(--tg-surface-raised);box-shadow:var(--tg-shadow-subtle);color:var(--tg-text);justify-content:space-between;align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.room-list-item{animation:ui-enter-up var(--tg-motion-normal) var(--tg-ease-spring) both}.room-list-item:hover,.room-list-item:focus-visible{border-color:color-mix(in srgb, var(--tg-button) 34%, var(--tg-border));box-shadow:var(--tg-shadow-raised);transform:translateY(-2px)}.room-list-item__main{min-width:0;display:grid}.room-list-item__meta{gap:2px;min-width:0;display:grid}.room-list-item__id{opacity:.74}.room-list-skeleton{gap:8px;display:grid}.room-card-skeleton{height:68px}.rooms-empty-state{min-height:96px}.room-list-item__main small{color:var(--tg-hint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-list-item__badges,.room-invitation__actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.room-source-badge{background:color-mix(in srgb, var(--tg-button) 13%, transparent);min-width:48px;color:var(--tg-text);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;padding:3px 6px;font-size:.75rem;font-weight:700;line-height:1.25;display:inline-flex}.room-invitation{align-items:flex-start}.room-invitation__main{gap:3px;min-width:0;display:grid}.room-invitation__main small{color:var(--tg-hint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-error.ui-notice{background:var(--tg-surface-danger);justify-content:flex-start;align-items:flex-start;gap:12px;display:flex}.room-error{border-color:color-mix(in srgb, var(--tg-danger) 45%, transparent)}.chat-room-shell{isolation:isolate;width:min(100%,820px);height:100vh;height:calc(var(--tg-viewport-stable-height,100vh));min-height:100vh;min-height:calc(var(--tg-viewport-stable-height,100vh));padding-top:calc(var(--tg-content-safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)));background:linear-gradient(180deg, color-mix(in srgb, var(--tg-panel) 72%, transparent), transparent 38%), radial-gradient(circle at 16% 4%, color-mix(in srgb, var(--tg-button) 20%, transparent), transparent 32%), radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--tg-success) 14%, transparent), transparent 30%), linear-gradient(color-mix(in srgb, var(--tg-bg) 94%, transparent), color-mix(in srgb, var(--tg-bg) 94%, transparent)), radial-gradient(circle at 18px 18px, color-mix(in srgb, var(--tg-button) 12%, transparent) 0 1px, transparent 1.5px), var(--tg-bg);box-shadow:0 0 0 1px color-mix(in srgb, var(--tg-border) 54%, transparent);background-size:auto,auto,auto,auto,24px 24px,auto;flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.chat-room-shell__atmosphere{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.chat-room-shell__atmosphere:before,.chat-room-shell__atmosphere:after{content:"";filter:blur(2px);opacity:.72;border-radius:999px;position:absolute}.chat-room-shell__atmosphere:before{background:radial-gradient(circle, color-mix(in srgb, var(--tg-button) 22%, transparent), transparent 68%);width:220px;height:220px;top:-96px;right:-72px}.chat-room-shell__atmosphere:after{background:radial-gradient(circle, color-mix(in srgb, var(--tg-success) 14%, transparent), transparent 70%);width:260px;height:260px;bottom:16%;left:-112px}.chat-room-shell>:not(.chat-room-shell__atmosphere){z-index:1;position:relative}.chat-room-shell>[data-panel-region]{z-index:3}.chat-room-shell>.message-timeline,.chat-room-shell>.message-composer{z-index:2}.chat-header{z-index:12;border:1px solid color-mix(in srgb, var(--tg-soft-border) 86%, transparent);background:linear-gradient(135deg, #ffffff24, transparent 42%), color-mix(in srgb, var(--tg-panel) 76%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.24);backdrop-filter:blur(18px)saturate(1.24);border-radius:22px;flex:none;align-items:center;gap:10px;margin:8px 10px 0;padding:10px;display:flex;position:sticky;top:0;box-shadow:0 18px 40px #00000024,inset 0 1px #ffffff2e}.chat-header__title{min-width:0;display:grid}.chat-header__title small{color:var(--tg-hint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-header__status{cursor:default;letter-spacing:.02em;text-align:center;font-size:.78rem;font-weight:800;line-height:1}.chat-header__status[data-status=connected]{background:radial-gradient(circle at 28% 22%, #ffffff3d, transparent 34%), color-mix(in srgb, var(--tg-button) 14%, var(--tg-panel))}.chat-header__status[data-status=degraded]{background:radial-gradient(circle at 28% 22%, #ffffff3d, transparent 34%), color-mix(in srgb, var(--tg-warning) 16%, var(--tg-panel))}.chat-header__status[data-status=idle]{background:radial-gradient(circle at 28% 22%, #ffffff2e, transparent 34%), color-mix(in srgb, var(--tg-hint) 12%, var(--tg-panel))}.chat-header__status--accent{--chat-status-breathe-color:var(--tg-button);border-color:color-mix(in srgb, var(--tg-button) 38%, var(--tg-border));color:var(--tg-button)}.chat-header__status--degraded{--chat-status-breathe-color:#f59e0b;border-color:color-mix(in srgb, #f59e0b 38%, var(--tg-border));color:#f59e0b}.chat-header__status--breathing{animation:chat-status-breathe var(--chat-status-breathe-duration,1s) ease-in-out infinite;will-change:box-shadow, opacity, transform}@keyframes chat-status-breathe{0%,to{opacity:.88;transform:scale(1);box-shadow:0 0 #2aabee00}50%{box-shadow:0 0 0 3px color-mix(in srgb, var(--chat-status-breathe-color,var(--tg-button)) 18%, transparent);opacity:1;transform:scale(1.03)}}@media (prefers-reduced-motion:reduce){.chat-header__status--breathing{animation:none}}.chat-header__actions{gap:6px;margin-left:auto;display:flex}.chat-header__more{position:relative}.chat-header__more-menu{z-index:20;border:1px solid color-mix(in srgb, var(--tg-soft-border) 88%, transparent);background:linear-gradient(145deg, #ffffff1f, transparent 48%), color-mix(in srgb, var(--tg-panel) 88%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.18);backdrop-filter:blur(18px)saturate(1.18);border-radius:18px;gap:5px;min-width:190px;padding:8px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 18px 40px #0003,inset 0 1px #ffffff29}.chat-header__more-menu button{width:100%;min-height:40px;color:var(--tg-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:9px;padding:8px 10px;font-weight:700;display:flex}.chat-header__more-menu button:hover,.chat-header__more-menu button:focus-visible{background:color-mix(in srgb, var(--tg-button) 13%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tg-button) 12%, transparent)}.side-panel{border:1px solid var(--tg-soft-border);background:var(--tg-panel);border-radius:8px;flex:none;gap:10px;margin:10px 14px 0;padding:12px;display:grid}.side-panel--members{min-height:0;max-height:min(50vh,420px);overflow:hidden}.side-panel--favorites,.side-panel--blocks{max-height:min(45vh,380px)}.side-panel h2,.side-panel p{margin:0}.side-panel__form,.room-management__details,.room-management__collaboration,.room-management__danger-zone{gap:8px;display:grid}.room-management__details .app-button,.room-management__collaboration .app-button,.room-management__danger-zone .app-button{justify-self:start}.room-management__collaboration,.room-management__danger-zone{grid-template-columns:repeat(auto-fit,minmax(130px,max-content));align-items:center}.room-management__danger-zone.ui-notice{background:linear-gradient(135deg, color-mix(in srgb, var(--tg-danger) 8%, transparent), transparent 70%), var(--tg-surface-danger);padding:10px}.search-panel__form .app-button{justify-self:start}.member-picker{min-width:0;position:relative}.member-picker__trigger{border:1px solid var(--tg-border);background:var(--tg-bg);width:100%;min-height:42px;color:var(--tg-text);text-align:left;border-radius:8px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;padding:6px 12px;display:grid}.member-picker__trigger-label,.member-picker__option-main{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.member-picker__popover{border:1px solid var(--tg-soft-border);background:var(--tg-panel);border-radius:8px;gap:8px;margin-top:8px;padding:8px;display:grid}.member-picker__list{gap:4px;max-height:220px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.member-picker__option{cursor:pointer;border-radius:8px;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;min-height:44px;padding:6px;display:grid}.member-picker__option:hover,.member-picker__option:focus{background:var(--tg-soft-bg);outline:none}.member-picker__option[aria-selected=true]{background:color-mix(in srgb, var(--tg-accent) 14%, transparent)}.member-picker__avatar{object-fit:cover;background:var(--tg-soft-bg);width:28px;height:28px;color:var(--tg-text);border-radius:999px}.member-picker__avatar--fallback{justify-content:center;align-items:center;font-weight:700;display:inline-flex}.member-picker__option-main{gap:2px;display:grid}.member-picker__option-main small,.member-picker__empty{color:var(--tg-hint)}.member-picker__empty{padding:8px}.side-panel__header{justify-content:space-between;align-items:center;gap:10px;display:flex}.side-panel__list--scrollable{overscroll-behavior:contain;max-height:min(38vh,320px);padding-bottom:8px;overflow:hidden auto}.side-panel__loading{color:var(--tg-hint);text-align:center;font-size:.82rem}.member-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;display:grid}.member-row__avatar{object-fit:cover;border-radius:50%;width:32px;height:32px}.member-row__avatar--fallback{background:color-mix(in srgb, var(--tg-button) 16%, transparent);place-items:center;font-size:.82rem;font-weight:800;display:grid}.member-row__main{min-width:0;display:grid}.member-row__main strong,.member-row__main small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.member-row__main small{color:var(--tg-hint)}.diagnostics-output{white-space:pre-wrap;word-break:break-word;max-height:220px;margin:0;overflow:auto}.diagnostics-section{gap:.5rem;display:grid}.diagnostics-section__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.diagnostics-section__header h3{margin:0;font-size:.95rem}.diagnostics-detail-gate{gap:.75rem;display:grid}.segmented-control{border:1px solid var(--tg-border);background:var(--tg-bg);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segmented-control__option{min-width:0;min-height:34px;color:var(--tg-hint);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:6px;font-size:.88rem;font-weight:700;display:inline-flex}.segmented-control__option span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.segmented-control__option--active{background:var(--tg-panel);color:var(--tg-text);box-shadow:var(--tg-shadow)}.favorite-toggle{border:1px solid var(--tg-border);width:30px;height:30px;color:var(--tg-hint);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:inline-grid}.favorite-toggle--active,.favorite-marker{color:var(--tg-danger);fill:var(--tg-danger)}.favorite-marker{vertical-align:-.1em;flex:none}.favorite-marker--inline{justify-self:end}.chat-icon-button{border:1px solid color-mix(in srgb, var(--tg-border) 86%, transparent);background:linear-gradient(180deg, #ffffff29, transparent), color-mix(in srgb, var(--tg-panel) 88%, transparent);width:36px;min-width:36px;height:36px;color:var(--tg-text);border-radius:50%;place-items:center;display:inline-grid;box-shadow:0 8px 18px #00000014,inset 0 1px #ffffff29}button.chat-icon-button{cursor:pointer}button.chat-icon-button:hover:not(:disabled),button.chat-icon-button:focus-visible:not(:disabled){border-color:color-mix(in srgb, var(--tg-button) 42%, var(--tg-border));background:linear-gradient(180deg, #ffffff2e, transparent), color-mix(in srgb, var(--tg-button) 10%, var(--tg-panel));box-shadow:var(--tg-focus-ring), 0 12px 24px color-mix(in srgb, var(--tg-button) 16%, transparent);transform:translateY(-1px)}button.chat-icon-button:active:not(:disabled){transform:translateY(0)scale(.98)}.chat-icon-button.chat-header__status--accent{border-color:color-mix(in srgb, var(--tg-button) 38%, var(--tg-border));color:var(--tg-button)}.chat-icon-button.chat-header__status--degraded{border-color:color-mix(in srgb, #f59e0b 38%, var(--tg-border));color:#f59e0b}.chat-icon-button.chat-header__status--idle{border-color:color-mix(in srgb, var(--tg-hint) 32%, var(--tg-border));color:var(--tg-hint)}.chat-icon-button--send{border-color:var(--tg-button);background:linear-gradient(180deg, #ffffff2e, transparent), var(--tg-button);color:var(--tg-button-text)}.chat-icon-button:disabled{cursor:not-allowed;opacity:.55}.chat-error{border:1px solid color-mix(in srgb, var(--tg-danger) 45%, transparent);color:var(--tg-text);border-radius:8px;margin:10px 14px 0;padding:10px 12px}.room-announcement-panel{color:var(--tg-text);margin:10px 14px 0;padding:12px 14px;font-size:.92rem;line-height:1.55;display:grid}.room-announcement-content{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0;margin:0}.room-announcement-content strong{font-weight:800}.key-copy-toast{left:50%;bottom:max(84px, calc(72px + env(safe-area-inset-bottom,0px)));z-index:20;background:color-mix(in srgb, var(--tg-text) 88%, transparent);max-width:min(86vw,340px);color:var(--tg-bg);box-shadow:var(--tg-shadow);text-align:center;border-radius:999px;padding:10px 14px;font-size:.88rem;font-weight:700;line-height:1.25;position:fixed;transform:translate(-50%)}.key-copy-toast--error{border:1px solid color-mix(in srgb, var(--tg-danger) 62%, transparent);background:color-mix(in srgb, var(--tg-danger) 92%, var(--tg-panel));color:#fff}.app-update-banner{right:14px;bottom:max(84px, calc(72px + env(safe-area-inset-bottom,0px)));z-index:50;max-width:760px;animation:ui-pop-in var(--tg-motion-normal) var(--tg-ease-spring) both;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;margin:0 auto;position:fixed;left:14px}.app-update-banner__button,.app-update-banner__dismiss{border-radius:var(--tg-radius-pill);cursor:pointer;border:0;min-height:36px;font-weight:800}.app-update-banner__button{background:var(--tg-button);color:var(--tg-button-text);padding:0 14px}.app-update-banner__dismiss{background:color-mix(in srgb, var(--tg-text) 8%, transparent);width:36px;color:var(--tg-text);font-size:1.2rem;line-height:1}.message-timeline{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:8px;min-height:0;padding:14px 12px 16px;scroll-padding-block:56px 72px;display:flex;position:relative;overflow-y:auto}.message-timeline__loading{z-index:11;border:1px solid color-mix(in srgb, var(--tg-button) 16%, var(--tg-soft-border));border-radius:var(--tg-radius-pill);background:color-mix(in srgb, var(--tg-panel) 94%, transparent);min-width:132px;color:var(--tg-hint);pointer-events:none;text-align:center;box-shadow:var(--tg-shadow);align-self:center;margin:0 0 -28px;padding:6px 14px;font-size:.82rem;font-weight:700;line-height:1;position:sticky;top:8px}.message-timeline__loading--readable{white-space:nowrap;justify-content:center;align-items:center;min-height:32px;line-height:1.35;display:inline-flex}.message-timeline__loading span{z-index:1;position:relative}.message-timeline__empty{text-align:center;place-content:center;align-self:stretch;justify-items:center;min-height:116px;margin:auto 10px}.message-timeline__new-messages{z-index:10;border-radius:var(--tg-radius-pill);background:linear-gradient(180deg, #ffffff2e, transparent), var(--tg-button);min-height:36px;color:var(--tg-button-text,#fff);cursor:pointer;box-shadow:0 10px 24px color-mix(in srgb, var(--tg-button) 28%, transparent);transition:box-shadow var(--tg-motion-fast) var(--tg-ease-standard), transform var(--tg-motion-fast) var(--tg-ease-standard);border:1px solid #ffffff2e;align-self:center;padding:8px 18px;font-size:.82rem;font-weight:800;animation:.2s ease-out slide-up;position:sticky;bottom:8px}.message-timeline__new-messages:hover,.message-timeline__new-messages:focus-visible{box-shadow:var(--tg-focus-ring), 0 14px 30px color-mix(in srgb, var(--tg-button) 34%, transparent);transform:translateY(-1px)}.message-timeline__new-messages:active{transform:translateY(0)scale(.98)}@media (prefers-reduced-motion:reduce){.message-timeline__new-messages{animation:none}.message-timeline__new-messages:hover,.message-timeline__new-messages:focus-visible,.message-timeline__new-messages:active{transform:none}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.message-bubble{content-visibility:auto;contain-intrinsic-size:96px;border:1px solid var(--tg-soft-border);background:var(--tg-message-incoming);width:fit-content;min-width:min(172px,100%);max-width:min(84%,620px);color:var(--tg-text);box-shadow:var(--tg-shadow);border-radius:16px 16px 16px 5px;grid-template-columns:44px minmax(0,1fr) auto;align-self:flex-start;align-items:start;gap:9px;padding:7px 9px 8px;display:grid}.message-bubble--own{border-color:var(--tg-message-own-border);background:var(--tg-message-own);border-radius:16px 16px 5px;grid-template-columns:minmax(0,1fr) auto;align-self:flex-end}.message-bubble--own .message-bubble__avatar{display:none}.message-bubble--pending{opacity:.78}.message-bubble__avatar{object-fit:cover;border-radius:50%;width:44px;height:44px}.message-bubble__avatar--fallback{background:color-mix(in srgb, var(--tg-button) 16%, transparent);color:var(--tg-text);place-items:center;font-size:.82rem;font-weight:800;display:grid}.message-bubble__avatar--clickable{cursor:pointer}.message-bubble__avatar--clickable:hover{opacity:.8}.message-bubble__meta{align-items:baseline;gap:7px;min-width:0;margin-bottom:2px;display:flex}.message-bubble__meta strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.message-bubble__meta small{flex:none}.message-bubble__text{overflow-wrap:anywhere;white-space:pre-wrap;margin:0 0 2px;line-height:1.42}.message-mention{color:var(--tg-button);vertical-align:middle;white-space:nowrap;align-items:center;gap:.22em;font-weight:700;display:inline-flex;transform:translateY(-.1em)}.message-mention__avatar{object-fit:cover;width:1.5em;height:1.5em;font-size:inherit;vertical-align:-.12em;border-radius:50%;flex:none;place-items:center;line-height:1;display:inline-grid}.message-mention__avatar--fallback{background:color-mix(in srgb, var(--tg-button) 18%, transparent);color:var(--tg-button)}.message-mention__initial{font-size:.72em}.message-reactions{flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.message-reactions__item{border:1px solid var(--tg-soft-border);background:color-mix(in srgb, var(--tg-bg) 80%, transparent);min-height:22px;color:var(--tg-text);border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:.82rem;line-height:1;display:inline-flex}.message-reactions__item--own{border-color:color-mix(in srgb, var(--tg-button) 36%, var(--tg-soft-border));background:color-mix(in srgb, var(--tg-button) 13%, var(--tg-bg));color:var(--tg-button)}.message-reference{border-left:3px solid var(--tg-button);background:color-mix(in srgb, var(--tg-button) 10%, transparent);border-radius:10px;gap:2px;width:100%;min-width:0;max-width:100%;margin:0 0 8px;padding:7px 9px;display:grid;overflow:hidden}.message-reference__label,.message-reference__preview{min-width:0}.message-reference__label{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.message-reference__preview{overflow-wrap:anywhere;white-space:normal;word-break:break-word;display:block}.message-reference__preview,.message-file-link{color:var(--tg-hint);font-size:.86rem}.message-link-preview{border-left:3px solid var(--tg-button);background:color-mix(in srgb, var(--tg-button) 9%, transparent);width:min(100%,320px);color:var(--tg-text);border-radius:10px;gap:2px;margin:7px 0 4px;padding:8px 10px;text-decoration:none;display:grid}.message-link-preview__host,.message-link-preview__path{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.message-link-preview__host{font-weight:800}.message-link-preview__path{color:var(--tg-hint);font-size:.82rem}.message-bubble__image-button{cursor:zoom-in;background:0 0;border:0;border-radius:12px;width:fit-content;max-width:100%;padding:0;display:block}.message-bubble__image{object-fit:contain;border-radius:12px;max-width:min(100%,320px);max-height:320px;display:block}.image-lightbox{z-index:1000;cursor:pointer;background:#000000d1;place-items:center;padding:56px 16px 24px;display:grid;position:fixed;inset:0}.image-lightbox__close{top:calc(14px + var(--tg-content-safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)));right:max(14px, env(safe-area-inset-right));color:#fff;z-index:1001;background:#ffffff24;border-color:#ffffff38;position:fixed}.image-lightbox__toolbar{right:max(14px, env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:1001;border-radius:var(--tg-radius-pill);-webkit-backdrop-filter:blur(12px)saturate(1.2);backdrop-filter:blur(12px)saturate(1.2);background:#00000047;border:1px solid #ffffff2e;gap:8px;padding:6px;display:flex;position:fixed}.image-lightbox__control{color:#fff;background:#ffffff24;border-color:#ffffff38}.image-lightbox__control:disabled{opacity:.42}.image-lightbox__container{cursor:default;touch-action:none;place-items:center;max-width:100%;max-height:calc(100vh - 96px);display:grid;overflow:auto}.image-lightbox__container--pannable{cursor:grab}.image-lightbox__container--panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.image-lightbox__image{object-fit:contain;touch-action:none;max-width:100%;max-height:calc(100vh - 96px);transition:width var(--tg-motion-fast) var(--tg-ease-standard), height var(--tg-motion-fast) var(--tg-ease-standard);border-radius:12px;display:block}.message-file-link{overflow-wrap:anywhere;max-width:100%;display:inline-flex}.message-bubble small{color:var(--tg-hint)}.message-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.reaction-picker-popover{z-index:100;border:1px solid var(--tg-soft-border);background:var(--tg-panel);box-shadow:var(--tg-shadow);border-radius:12px;padding:4px;position:fixed}.sender-action-menu{z-index:120;border:1px solid var(--tg-soft-border);background:var(--tg-panel);box-shadow:var(--tg-shadow);border-radius:8px;gap:4px;padding:6px;display:grid;position:fixed}.sender-action-menu button{width:100%;min-height:38px;color:var(--tg-text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.sender-action-menu button:last-child{color:var(--tg-danger)}.sender-action-menu button:hover,.sender-action-menu button:focus-visible{background:color-mix(in srgb, var(--tg-button) 12%, transparent);outline:none}.reaction-picker{flex-wrap:wrap;gap:4px;display:flex}.reaction-picker__button{background:var(--tg-bg);cursor:pointer;border:0;border-radius:50%;place-items:center;width:32px;height:32px;font-size:1.05rem;display:grid}.message-bubble--own .message-actions{grid-column:2}.message-bubble--referenced .message-actions{grid-column:2;justify-self:end;margin-top:2px}.message-bubble--own.message-bubble--referenced .message-actions{grid-column:1}.message-composer{padding:10px 10px max(10px, env(safe-area-inset-bottom));border:1px solid color-mix(in srgb, var(--tg-soft-border) 88%, transparent);background:linear-gradient(145deg, #ffffff21, transparent 48%), color-mix(in srgb, var(--tg-panel) 86%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.18);backdrop-filter:blur(18px)saturate(1.18);transition:border-color var(--tg-motion-fast) var(--tg-ease-standard), box-shadow var(--tg-motion-fast) var(--tg-ease-standard), transform var(--tg-motion-fast) var(--tg-ease-standard);border-radius:24px;gap:8px;margin:0 10px 10px;display:grid;position:sticky;bottom:0;box-shadow:0 18px 42px #00000029,inset 0 1px #ffffff29}.message-composer:focus-within,.message-composer--ready{border-color:color-mix(in srgb, var(--tg-button) 34%, var(--tg-border));box-shadow:0 20px 48px #0000002e, 0 0 0 1px color-mix(in srgb, var(--tg-button) 12%, transparent), inset 0 1px 0 #ffffff2e}.message-composer__row{grid-template-columns:36px 36px minmax(0,1fr) 36px;align-items:end;gap:8px;display:grid}.message-composer__input{resize:none;border:1px solid color-mix(in srgb, var(--tg-border) 86%, transparent);background:linear-gradient(180deg, #ffffff14, transparent), color-mix(in srgb, var(--tg-bg) 86%, var(--tg-panel));min-height:40px;max-height:112px;color:var(--tg-text);transition:background var(--tg-motion-fast) var(--tg-ease-standard), border-color var(--tg-motion-fast) var(--tg-ease-standard), box-shadow var(--tg-motion-fast) var(--tg-ease-standard);border-radius:20px;padding:10px 14px;line-height:1.35;box-shadow:inset 0 1px #ffffff1f}.message-composer__input:focus-visible{border-color:color-mix(in srgb, var(--tg-button) 54%, var(--tg-border));background:color-mix(in srgb, var(--tg-panel) 92%, transparent);box-shadow:var(--tg-focus-ring), inset 0 1px 0 #ffffff24;outline:none}.message-composer--ready .chat-icon-button--send{border-color:color-mix(in srgb, var(--tg-button) 78%, #fff);background:radial-gradient(circle at 30% 20%, #ffffff57, transparent 34%), linear-gradient(180deg, #ffffff29, transparent), var(--tg-button);box-shadow:0 12px 28px color-mix(in srgb, var(--tg-button) 34%, transparent), inset 0 1px 0 #fff3;transform:translateY(-1px)scale(1.04)}.message-composer .chat-icon-button:disabled,.message-composer .chat-icon-button[disabled]{border-color:color-mix(in srgb, var(--tg-border) 72%, transparent);background:color-mix(in srgb, var(--tg-hint) 10%, var(--tg-panel));color:var(--tg-hint);cursor:not-allowed;opacity:.62;transform:none;box-shadow:inset 0 1px #ffffff1a}.message-composer .chat-error.ui-notice{margin:0;padding:10px 12px}.mention-suggestions{z-index:20;border:1px solid color-mix(in srgb, var(--tg-soft-border) 90%, transparent);background:linear-gradient(145deg, #ffffff1f, transparent 46%), color-mix(in srgb, var(--tg-panel) 92%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.16);backdrop-filter:blur(16px)saturate(1.16);max-height:min(288px,42vh);box-shadow:var(--tg-shadow-floating);animation:ui-pop-in var(--tg-motion-fast) var(--tg-ease-spring) both;border-radius:18px;padding:8px;display:grid;position:absolute;bottom:calc(100% + 8px);left:14px;right:14px;overflow-y:auto}.mention-suggestions__item{width:100%;min-height:42px;color:var(--tg-text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:9px;padding:5px 8px;display:grid}.mention-suggestions__item:hover,.mention-suggestions__item:focus-visible{background:color-mix(in srgb, var(--tg-button) 10%, transparent);outline:none}.mention-suggestions__avatar{object-fit:cover;border-radius:50%;place-items:center;width:32px;height:32px;font-size:.76rem;font-weight:800;display:grid}.mention-suggestions__avatar--fallback{background:color-mix(in srgb, var(--tg-button) 16%, transparent)}.mention-suggestions__main{justify-items:start;min-width:0;display:grid}.mention-suggestions__main strong,.mention-suggestions__main small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mention-suggestions__main small{color:var(--tg-hint)}.emoji-picker{flex-wrap:wrap;gap:6px;padding:2px 2px 0;display:flex}.emoji-picker__button{background:var(--tg-bg);cursor:pointer;border:0;border-radius:50%;place-items:center;width:34px;height:34px;font-size:1.05rem;display:grid}.search-result-row{border:1px solid var(--tg-soft-border);background:var(--tg-bg);border-radius:12px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:8px;display:grid}.search-result-row--clickable{cursor:pointer}.search-result-row--clickable:hover{border-color:color-mix(in srgb, var(--tg-button) 35%, var(--tg-soft-border));background:color-mix(in srgb, var(--tg-button) 7%, var(--tg-bg))}.search-result-row__avatar{background:color-mix(in srgb, var(--tg-button) 16%, transparent);border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.search-result-row__main{gap:2px;min-width:0;display:grid}.search-result-row__meta{align-items:baseline;gap:8px;min-width:0;display:flex}.search-result-row__meta strong,.search-result-row__text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.search-result-row__meta small,.search-result-row__text{color:var(--tg-hint)}.search-result-row__text mark{color:inherit;background:#2aabee3d;border-radius:3px;padding:0 2px}.reply-preview{border-left:3px solid var(--tg-button);background:color-mix(in srgb, var(--tg-button) 10%, transparent);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:8px 10px;display:flex;overflow:hidden}.reply-preview__content{overflow-wrap:anywhere;white-space:normal;word-break:break-word;min-width:0;line-height:1.35}.reply-preview .chat-icon-button{flex:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.file-picker-button{position:relative;overflow:hidden}.file-picker-button__input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.upload-progress-list{gap:6px;display:grid}.file-upload-preview,.upload-progress-list__row{align-items:center;gap:8px;min-width:0;display:flex}.file-upload-preview__image{object-fit:cover;border-radius:8px;width:42px;height:42px}.file-upload-preview__name,.upload-progress-list__row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-upload-preview__error{color:#d84f4f;overflow-wrap:anywhere;min-width:0;font-size:.78rem}.upload-progress-list__row progress{width:120px;accent-color:var(--tg-button)}@media (width<=520px){.room-direct-join__row,.room-invitation,.room-error{grid-template-columns:1fr}.room-invitation,.room-error{flex-direction:column;align-items:stretch}.room-list-item{align-items:center}.room-create-dialog__row{grid-template-columns:minmax(0,1fr);gap:8px}.room-create-dialog__row span{display:none}.message-bubble{grid-template-columns:44px minmax(0,1fr);max-width:min(92%,620px)}.message-bubble--own{grid-template-columns:minmax(0,1fr) auto}.message-bubble .message-actions{grid-column:2}.message-composer__row{grid-template-columns:34px 34px minmax(0,1fr) 34px}.segmented-control{grid-template-columns:1fr}.settings-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.settings-actions .app-button{overflow-wrap:break-word;white-space:normal;width:100%;padding-inline:10px;line-height:1.2}}@media (width<=380px){.chat-header{gap:8px;padding-inline:10px}.chat-header__actions{gap:4px}.chat-icon-button{width:32px;min-width:32px;height:32px}.message-composer__row{grid-template-columns:32px 32px minmax(0,1fr) 32px}}.message-bubble{max-width:min(92%,620px);animation:ui-enter-up var(--tg-motion-normal) var(--tg-ease-spring) both;align-items:end}.message-bubble--incoming{align-self:flex-start}.message-bubble--own{align-self:flex-end}.message-bubble__body{min-width:0}.message-bubble--sending{opacity:1}.message-bubble--sending .message-bubble__body{opacity:.82;animation:message-sending-pulse 1.2s var(--tg-ease-standard) infinite}.message-bubble--failed{border-color:color-mix(in srgb, var(--tg-danger) 42%, var(--tg-border));background:var(--tg-surface-danger)}.message-bubble--failed .message-bubble__body{color:var(--tg-text)}.message-bubble--focused{outline:none}.message-bubble--focused .message-bubble__body{animation:message-focus-pulse 1.4s var(--tg-ease-spring) both}@keyframes message-sending-pulse{50%{opacity:1;transform:translateY(-1px)}}@keyframes message-focus-pulse{0%,to{box-shadow:var(--tg-shadow-subtle)}35%{box-shadow:0 0 0 4px color-mix(in srgb, var(--tg-button) 24%, transparent), var(--tg-shadow-raised)}}.message-reference,.message-link-preview,.message-file-link{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-sm);background:color-mix(in srgb, var(--tg-button) 7%, var(--tg-panel));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--tg-button) 48%, transparent)}.message-reactions__item{border:1px solid color-mix(in srgb, var(--tg-button) 26%, var(--tg-border));border-radius:var(--tg-radius-pill);background:color-mix(in srgb, var(--tg-button) 8%, var(--tg-panel))}.image-lightbox{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:ui-enter-up var(--tg-motion-normal) var(--tg-ease-spring) both;background:#000000c2}.image-lightbox__container{border-radius:var(--tg-radius-lg);max-width:min(100%,960px);max-height:min(100%,82vh);box-shadow:var(--tg-shadow-floating);overflow:auto}@media (prefers-reduced-motion:reduce){.message-bubble,.image-lightbox,.message-bubble--sending .message-bubble__body,.message-bubble--focused .message-bubble__body{animation:none}}.message-bubble--failed{opacity:1}.message-bubble--focused{outline:2px solid color-mix(in srgb, var(--tg-button) 70%, transparent);outline-offset:2px}.image-lightbox__image{max-height:100%}@media (prefers-reduced-motion:reduce){.message-bubble--focused .message-bubble__body{box-shadow:0 0 0 4px color-mix(in srgb, var(--tg-button) 24%, transparent)}}.side-panel{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-lg);background:var(--tg-surface-glass);box-shadow:var(--tg-shadow-raised);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);animation:ui-enter-up var(--tg-motion-normal) var(--tg-ease-spring) both;flex:none;gap:12px;margin:10px 14px 0;padding:14px;display:grid}.side-panel__header{justify-content:space-between;align-items:center;gap:10px;padding-bottom:2px;display:flex}.side-panel__list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.side-panel__list--scrollable{overscroll-behavior:contain;max-height:min(38vh,320px);padding-bottom:8px;padding-right:2px;overflow:hidden auto}.members-panel__list{padding-bottom:28px;padding-bottom:max(28px, calc(env(safe-area-inset-bottom,0px) + 16px));scroll-padding-bottom:28px;scroll-padding-bottom:max(28px, calc(env(safe-area-inset-bottom,0px) + 16px))}.member-row,.search-result-row{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-md);background:color-mix(in srgb, var(--tg-panel) 82%, transparent);box-shadow:var(--tg-shadow-subtle)}.reply-preview{border:1px solid color-mix(in srgb, var(--tg-button) 26%, var(--tg-border));border-radius:var(--tg-radius-md);background:color-mix(in srgb, var(--tg-button) 8%, var(--tg-panel));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--tg-button) 54%, transparent);animation:ui-enter-up var(--tg-motion-fast) var(--tg-ease-spring) both}.message-actions,.sender-action-menu,.reaction-picker,.reaction-picker-popover{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-md);background:var(--tg-surface-glass);box-shadow:var(--tg-shadow-floating);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2)}.message-actions--inline{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0}.message-actions .message-actions__button--frameless{box-shadow:none;background:0 0;border-color:#0000}.message-actions .message-actions__button--frameless:hover:not(:disabled),.message-actions .message-actions__button--frameless:focus-visible:not(:disabled){box-shadow:var(--tg-focus-ring);color:var(--tg-button);background:0 0;border-color:#0000}.message-actions .message-actions__button--frameless:active:not(:disabled){box-shadow:none}@media (prefers-reduced-motion:reduce){.side-panel,.reply-preview{animation:none}}.settings-panel{gap:14px;padding:16px}.settings-field{gap:8px;display:grid}.settings-sync-notice{align-items:start;margin-top:2px}.settings-sync-notice .app-copy{color:inherit}.diagnostics-section{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-md);background:color-mix(in srgb, var(--tg-panel) 80%, transparent);box-shadow:var(--tg-shadow-subtle);gap:10px;padding:12px;display:grid}.diagnostics-output{border:1px solid var(--tg-soft-border);border-radius:var(--tg-radius-sm);background:var(--tg-bg);max-height:min(42vh,320px);color:var(--tg-text);white-space:pre-wrap;word-break:break-word;margin:0;padding:12px;font-size:.82rem;line-height:1.55;overflow:auto}@media (prefers-reduced-motion:reduce){.room-panel,.room-list-item,.side-panel,.message-bubble,.message-composer,.message-timeline__new-messages,.app-update-banner,.mention-suggestions,.emoji-picker,.emoji-picker__button,.image-lightbox,.image-lightbox__container,.chat-header__status--breathing,.message-bubble--sending .message-bubble__body,.message-bubble--focused .message-bubble__body,.ui-skeleton:after{transition:none;animation:none}.room-list-item:hover,.room-list-item:focus-visible,.app-button:hover:not(:disabled),.app-button:focus-visible:not(:disabled),.app-button:active:not(:disabled),.message-composer--ready .chat-icon-button--send,.message-timeline__new-messages:hover,.message-timeline__new-messages:focus-visible,.message-timeline__new-messages:active,button.chat-icon-button:hover:not(:disabled),button.chat-icon-button:focus-visible:not(:disabled),button.chat-icon-button:active:not(:disabled),.chat-header__status--breathing,.message-bubble--sending .message-bubble__body,.message-mention{transform:none}.chat-header__status--breathing{opacity:1;will-change:auto}.message-bubble--sending .message-bubble__body{opacity:.88}.message-bubble--focused .message-bubble__body{box-shadow:0 0 0 4px color-mix(in srgb, var(--tg-button) 24%, transparent)}.ui-skeleton:after{content:none}}@media (width>=900px){.rooms-shell,.rooms-entry-hub{width:min(100%,920px)}.rooms-entry-hub{grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);align-items:start;gap:16px;display:grid}.rooms-entry-hub>.rooms-header,.rooms-entry-hub>.room-error{grid-column:1/-1}.rooms-entry-hub>.room-panel{margin:0}.rooms-entry-hub>.room-panel:first-of-type{grid-row:span 3}.chat-room-shell{width:min(100%,900px)}.message-timeline{padding-inline:18px}.message-bubble{max-width:min(78%,640px)}.message-composer,.chat-header{margin-inline:16px}.side-panel{margin-inline:18px}}@media (width<=420px){.app-shell,.rooms-shell{padding-inline:12px}.rooms-shell{padding-top:calc(14px + var(--tg-content-safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)))}.rooms-header{gap:8px;margin-bottom:14px}.app-heading-logo{width:38px;height:38px}.room-panel,.side-panel{gap:12px;padding:12px}.room-list-item,.room-invitation,.room-error{flex-direction:column;align-items:stretch;gap:10px}.room-list-item__badges,.room-invitation__actions{justify-content:flex-start}.chat-header{border-radius:18px;margin:6px 8px 0;padding:8px}.chat-header__title small{max-width:46vw}.side-panel{margin:8px 10px 0}.message-timeline{gap:7px;padding:10px 8px 12px}.message-bubble{grid-template-columns:39px minmax(0,1fr);min-width:min(148px,100%);max-width:min(94%,620px);padding:7px 8px}.message-bubble--own{grid-template-columns:minmax(0,1fr) auto}.message-bubble__avatar{width:39px;height:39px}.message-actions{grid-column:2}.message-composer{padding:8px 8px max(8px, env(safe-area-inset-bottom));border-radius:20px;margin:0 8px 8px}.message-composer__row{grid-template-columns:32px 32px minmax(0,1fr) 32px;gap:6px}.message-composer__input{padding-inline:12px}.mention-suggestions{max-height:min(248px,40vh);left:8px;right:8px}.emoji-picker{gap:4px}.emoji-picker__button{width:32px;height:32px}.image-lightbox{padding:48px 10px 18px}.app-update-banner{grid-template-columns:minmax(0,1fr) auto;left:10px;right:10px}.app-update-banner__dismiss{grid-area:1/2}.app-update-banner__button{grid-column:1/-1;justify-self:stretch}}.route-fade-enter-active,.route-fade-leave-active,.room-enter-enter-active,.room-enter-leave-active{transition:opacity var(--tg-motion-normal) var(--tg-ease-standard), transform var(--tg-motion-normal) var(--tg-ease-spring), filter var(--tg-motion-normal) var(--tg-ease-standard)}.route-fade-enter-from,.route-fade-leave-to{opacity:0}.room-enter-enter-from{opacity:0;filter:blur(6px);transform:translateY(18px)scale(.985)}.room-enter-leave-to{opacity:0;filter:blur(2px);transform:translateY(-8px)scale(.995)}@media (prefers-reduced-motion:reduce){.route-fade-enter-active,.route-fade-leave-active,.room-enter-enter-active,.room-enter-leave-active{transition:none}.room-enter-enter-from,.room-enter-leave-to{filter:none;transform:none}.route-fade-enter-from,.route-fade-leave-to,.room-enter-enter-from,.room-enter-leave-to{opacity:1;filter:none;transform:none}}
