:root{--accent: #3B8BEA;--accent-weak: #93BFF3;--accent-hover: #3680D7;--accent-press: #3275C5;--accent-deep: #2F6FBB;--accent-tint: rgba(59, 139, 234, .1);--accent-wash: rgba(59, 139, 234, .06);--on-accent: #ffffff;--focus-ring: rgba(59, 139, 234, .24);--font-scale: 1;--bg: #ffffff;--chat-bg: #F2F2F7;--panel-bg: #EBEBF0;--rail-bg: #E3E3E9;--rail-fg: #5D5D63;--rail-hover: rgba(0, 0, 0, .06);--rail-active-bg: #ffffff;--panel-hover: #E2E2E8;--panel-active: var(--accent-tint);--surface: #ffffff;--surface-2: rgba(118, 118, 128, .1);--surface-3: rgba(118, 118, 128, .18);--presence-online: #34c759;--presence-away: #ff9f0a;--presence-offline: rgba(142, 142, 147, .85);--text: #1D1D1F;--text-muted: #5D5D63;--text-faint: #63636B;--icon-subtle: #6D6D72;--border: rgba(60, 60, 67, .14);--border-strong: rgba(60, 60, 67, .22);--bubble-other: #ffffff;--danger: #FF3B30;--danger-tint: rgba(255, 59, 48, .1);--danger-strong: #D70015;--danger-text: #D70015;--on-danger: #ffffff;--qr-bg: #ffffff;--warn: #C93400;--warn-tint: rgba(255, 149, 0, .12);--warn-border: rgba(255, 149, 0, .38);--success: #248A3D;--success-tint: rgba(52, 199, 89, .14);--overlay: rgba(0, 0, 0, .4);--panel-pop-gap: 10px;--glass: saturate(180%) blur(20px);--glass-thin: saturate(160%) blur(8px);--glass-bg: rgba(248, 248, 251, .82);--glass-header-bg: rgba(255, 255, 255, .78);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .14);--radius: 10px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-bubble: 18px;--avatar-radius: 24%;--ease: cubic-bezier(.25, .1, .25, 1);--switch-on: #34C759}body.dark{--accent: #4C9EF7;--accent-weak: #356FAD;--accent-hover: #73B3F9;--accent-press: #90C3FA;--accent-deep: #70B1F9;--accent-tint: rgba(76, 158, 247, .16);--accent-wash: rgba(76, 158, 247, .09);--on-accent: #ffffff;--focus-ring: rgba(76, 158, 247, .32);--bg: #1C1C1E;--chat-bg: #101114;--panel-bg: #161618;--rail-bg: #0F0F11;--rail-fg: #98989D;--rail-hover: rgba(255, 255, 255, .12);--rail-active-bg: #26262A;--panel-hover: #2B2B2F;--panel-active: #2D2D31;--surface: #1C1C1E;--surface-2: rgba(120, 120, 128, .22);--surface-3: rgba(120, 120, 128, .34);--presence-online: #30d158;--presence-away: #ffd60a;--presence-offline: rgba(152, 152, 157, .8);--text: #F5F5F7;--text-muted: #98989D;--text-faint: #96969B;--icon-subtle: #7E7E86;--border: rgba(120, 120, 128, .4);--border-strong: rgba(158, 158, 166, .6);--bubble-other: #2C2C2E;--accent-pale: #335A86;--accent-ink: #C2DBF7;--bubble-own: var(--accent-pale);--bubble-own-fg: var(--accent-ink);--bubble-own-muted: #C9DEF7;--bubble-own-code-bg: #2A435F;--bubble-own-line: rgba(76, 158, 247, .45);--danger: #FF453A;--danger-tint: rgba(255, 69, 58, .14);--danger-strong: #E02D24;--danger-text: #FF6B61;--on-danger: #ffffff;--qr-bg: #ffffff;--warn: #FF9F0A;--warn-tint: #372C1C;--warn-border: rgba(255, 159, 10, .5);--success: #30D158;--success-tint: rgba(48, 209, 88, .16);--overlay: rgba(0, 0, 0, .55);--glass: saturate(180%) blur(20px);--glass-thin: saturate(160%) blur(8px);--glass-bg: rgba(30, 30, 32, .8);--glass-header-bg: rgba(28, 28, 30, .75);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);--shadow-md: 0 4px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .6)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior-y:none}body{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--panel-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;--accent-weak: #93BFF3;--accent-hover: #3680D7;--accent-press: #3275C5;--accent-deep: #2F6FBB;--accent-tint: rgba(59, 139, 234, .1);--accent-wash: rgba(59, 139, 234, .06);--focus-ring: rgba(59, 139, 234, .24);--panel-active: var(--accent-tint);--accent-pale: #C4DCF9;--accent-ink: #253C58;--bubble-own: var(--accent-pale);--bubble-own-fg: var(--accent-ink);--bubble-own-muted: rgba(37, 60, 88, .6);--bubble-own-code-bg: rgba(59, 139, 234, .08);--bubble-own-line: rgba(59, 139, 234, .28)}::selection{background:var(--accent);color:var(--on-accent)}body.dark ::selection{background:var(--accent);color:var(--on-accent)}button{font:inherit;cursor:pointer;border:1px solid transparent;background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm);padding:7px 14px;transition:background var(--dur-state) var(--ease),color var(--dur-state) var(--ease),border-color .15s var(--ease),transform .1s var(--ease),opacity .15s}button:active:not(:disabled){transform:scale(.97)}@media(hover:hover){button:hover{background:var(--surface-3)}}button:disabled{opacity:.45;cursor:default}button[type=submit]:disabled,button.primary:disabled{color:var(--accent-deep)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button[type=submit],button.primary{background:var(--accent);color:var(--on-accent);font-weight:500}@media(hover:hover){button[type=submit]:hover,button.primary:hover{background:var(--accent-hover)}}button[type=submit]:active:not(:disabled),button.primary:active:not(:disabled){background:var(--accent-press)}input,textarea,select{font:inherit;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:10px 12px;width:100%;background:var(--bg);transition:border-color var(--dur-state) var(--ease),box-shadow var(--dur-state) var(--ease)}input[type=checkbox],input[type=radio]{width:auto;padding:0;border:none;accent-color:var(--accent)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3.5px var(--focus-ring)}label{display:block}a{color:var(--accent)}.error{color:var(--danger);overflow-wrap:anywhere}label.has-error input{border-color:var(--danger)}label.has-error input:focus{box-shadow:0 0 0 3px var(--danger-tint)}.field-error{display:block;margin-top:4px;font-size:calc(12px * var(--font-scale, 1));color:var(--danger)}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:calc(15px * var(--font-scale, 1));background:var(--panel-bg)}.offline-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;padding:24px;text-align:center;background:var(--panel-bg);color:var(--text-muted)}.offline-icon{font-size:calc(40px * var(--font-scale, 1))}.offline-title{font-size:calc(17px * var(--font-scale, 1));font-weight:600;color:var(--text)}.offline-desc{font-size:calc(13px * var(--font-scale, 1));line-height:1.7;max-width:320px;margin:0}.offline-retry{margin-top:6px;padding:8px 32px;border:none;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-size:calc(14px * var(--font-scale, 1));font-weight:600;cursor:pointer}.offline-retry:active{opacity:.85}.sk{display:inline-block;background:linear-gradient(100deg,var(--surface-2) 40%,var(--surface-3) 50%,var(--surface-2) 60%);background-size:200% 100%;animation:sk-shimmer 1.4s linear infinite}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sk-circle{border-radius:50%;flex-shrink:0}.sk-line{border-radius:6px}.sk-block{border-radius:10px;display:block;width:100%}@media(prefers-reduced-motion:reduce){.sk{animation:none;background:var(--surface-2)}}.presence-dot{position:absolute;right:-1px;bottom:-1px;border-radius:50%;border:2px solid var(--panel-bg);pointer-events:none}.presence-dot--online{background:var(--presence-online)}.presence-dot--away{background:var(--presence-away)}.presence-dot--offline{background:var(--presence-offline)}.avatar-wrap{position:relative;display:inline-block;line-height:0;flex-shrink:0}.profile-card .avatar-wrap .presence-dot{right:2px;bottom:2px}.boot-skeleton{display:flex;flex-direction:column;align-items:center;gap:28px;width:100%}.sk-chat-list{width:min(320px,80vw);display:flex;flex-direction:column;gap:18px;padding:22px 16px}.sk-chat-row{display:flex;align-items:center;gap:12px}.sk-chat-lines{display:flex;flex-direction:column;gap:8px;flex:1}.sk-phase{color:var(--text-muted);font-size:calc(14px * var(--font-scale, 1))}:root{--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 12px;--sp-6: 16px;--sp-7: 20px;--sp-8: 24px;--sp-9: 32px;--sp-10: 40px;--fs-micro: .719rem;--fs-caption: .781rem;--fs-ui: .844rem;--fs-body: .9375rem;--fs-title: 1.0625rem;--fs-heading: 1.25rem;--fs-display: 1.5625rem;--lh-tight: 1.3;--lh-ui: 1.4;--lh-body: 1.5;--dur-press: 90ms;--dur-state: .14s;--dur-enter: .2s;--dur-exit: .14s;--dur-sheet: .28s;--ease-standard: cubic-bezier(.2, .8, .2, 1);--ease-emphasized: cubic-bezier(.32, .72, 0, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);--row-h: 58px;--tap-min: 28px;--z-sticky: 10;--z-menu: 100;--z-sheet: 200;--z-modal: 300;--z-toast: 400;--z-call: 500}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(pointer:coarse){:root{--tap-min: 44px;--dur-press: .11s;--dur-state: .18s;--dur-enter: .24s;--dur-sheet: .3s}}@media(max-width:767px){:root{--fs-micro: .75rem;--fs-caption: .844rem;--fs-ui: .906rem;--fs-body: 1rem;--fs-heading: 1.3125rem;--fs-display: 1.625rem;--lh-body: 1.55;--row-h: 66px}}html{color-scheme:light;background:#ebebf0}html.dark{color-scheme:dark;background:#161618}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(hover:none){button:active:not(:disabled):not([type=submit]):not(.primary){background:var(--surface-3);transition-duration:var(--dur-press)}.chat-row:active{background:var(--panel-hover)}.list-rail-btn:active,.tab-bar button:active{background:var(--surface-2)}}body{font-size:calc(16px * var(--font-scale, 1))}:root{--content-max: none}.sr-only-input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}@supports (color: color-mix(in srgb,red,blue)){:root{--accent-weak: color-mix(in srgb, var(--accent) 55%, #fff);--accent-hover: color-mix(in srgb, var(--accent) 92%, #000);--accent-press: color-mix(in srgb, var(--accent) 84%, #000);--accent-deep: color-mix(in srgb, var(--accent) 80%, #000);--accent-tint: color-mix(in srgb, var(--accent) 10%, transparent);--accent-wash: color-mix(in srgb, var(--accent) 6%, transparent);--focus-ring: color-mix(in srgb, var(--accent) 24%, transparent)}body{--accent-weak: color-mix(in srgb, var(--accent) 55%, #fff);--accent-hover: color-mix(in srgb, var(--accent) 92%, #000);--accent-press: color-mix(in srgb, var(--accent) 84%, #000);--accent-deep: color-mix(in srgb, var(--accent) 80%, #000);--accent-tint: color-mix(in srgb, var(--accent) 10%, transparent);--accent-wash: color-mix(in srgb, var(--accent) 6%, transparent);--focus-ring: color-mix(in srgb, var(--accent) 24%, transparent);--accent-pale: color-mix(in srgb, var(--accent) 30%, #fff);--accent-ink: color-mix(in srgb, var(--accent) 28%, #1D1D1F);--bubble-own-muted: color-mix(in srgb, var(--accent-ink) 60%, transparent);--bubble-own-code-bg: color-mix(in srgb, var(--accent) 8%, transparent);--bubble-own-line: color-mix(in srgb, var(--accent) 28%, transparent)}body.dark{--accent-weak: color-mix(in srgb, var(--accent) 70%, #000);--accent-hover: color-mix(in srgb, var(--accent) 78%, #fff);--accent-press: color-mix(in srgb, var(--accent) 62%, #fff);--accent-deep: color-mix(in srgb, var(--accent) 80%, #fff);--accent-tint: color-mix(in srgb, var(--accent) 16%, transparent);--accent-wash: color-mix(in srgb, var(--accent) 9%, transparent);--focus-ring: color-mix(in srgb, var(--accent) 32%, transparent);--accent-pale: color-mix(in srgb, var(--accent) 48%, var(--surface));--accent-ink: color-mix(in srgb, var(--accent) 30%, #F5F5F7);--bubble-own-muted: color-mix(in srgb, var(--accent) 26%, #F5F5F7);--bubble-own-code-bg: color-mix(in srgb, var(--accent) 30%, var(--surface));--bubble-own-line: color-mix(in srgb, var(--accent) 45%, transparent);--warn-tint: color-mix(in srgb, var(--warn) 12%, var(--surface))}}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur-sheet);animation-timing-function:var(--ease-standard)}@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}.login-screen{min-height:100dvh;display:grid;place-items:center;background:var(--chat-bg);padding:24px}.login-card{width:100%;max-width:340px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:36px 32px 26px;display:flex;flex-direction:column;gap:14px;animation:loginCardIn var(--dur-enter) var(--ease-standard)}@keyframes loginCardIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.login-card{animation:none}}.login-logo{width:64px;height:64px;border-radius:var(--radius-lg);background:var(--accent);color:var(--on-accent);display:grid;place-items:center;margin:0 auto}.login-title{text-align:center;font-size:calc(18px * var(--font-scale, 1));font-weight:600;margin:0 0 4px;letter-spacing:.01em}.login-card .error{background:var(--danger-tint);color:var(--danger);border-radius:var(--radius-sm);padding:9px 12px;font-size:calc(13px * var(--font-scale, 1))}.login-card label span{display:block;font-size:calc(12px * var(--font-scale, 1));font-weight:600;color:var(--text-muted);margin-bottom:5px}.login-card button[type=submit]{margin-top:4px;padding:10px 16px}.login-pass-wrap{position:relative}.login-pass-wrap .login-pass{width:100%;padding-right:36px}.login-pass-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--text-faint);padding:6px;border-radius:8px;cursor:pointer;display:grid;place-items:center}.login-pass-toggle:active:not(:disabled){transform:translateY(-50%) scale(.97)}@media(hover:hover){.login-pass-toggle:hover{color:var(--text);background:var(--surface-2, rgba(127,127,127,.12))}}.login-mode-switch{border:none;background:transparent;color:var(--accent);font-size:calc(13px * var(--font-scale, 1));cursor:pointer;padding:2px}@media(hover:hover){.login-mode-switch:hover{text-decoration:underline}}.login-card .ok-msg{background:var(--accent-tint, rgba(59,139,234,.1));color:var(--accent);border-radius:var(--radius-sm);padding:9px 12px;font-size:calc(13px * var(--font-scale, 1))}.login-footnote{text-align:center;font-size:calc(11.5px * var(--font-scale, 1));color:var(--text-faint);margin:4px 0 0;line-height:1.5}.app-shell{position:relative;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;background:var(--panel-bg)}.shell-body{display:flex;flex:1;min-height:0;min-width:0}.app-shell.mobile .shell-body{flex-direction:column}.rail-user-menu,.plus-menu,.mention-panel,.context-menu,.emoji-panel,.plus-panel,.sticker-panel,.emoji-panel-full,.msg-emoji-picker,.schedule-menu,.quick-phrases-panel,.gif-panel,.slash-panel{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.rail-user-menu,.plus-menu,.mention-panel,.context-menu,.emoji-panel,.plus-panel,.sticker-panel,.emoji-panel-full,.msg-emoji-picker,.schedule-menu,.quick-phrases-panel,.gif-panel,.slash-panel{background:var(--bg)}}.nav-rail{width:60px;flex-shrink:0;background:var(--rail-bg);display:flex;flex-direction:column;align-items:center;padding:16px 0 14px;gap:8px;z-index:400}.rail-avatar-wrap{position:relative;margin-bottom:8px}.rail-avatar{cursor:pointer}.rail-tabs{display:flex;flex-direction:column;gap:6px}.rail-tab{position:relative;width:42px;height:42px;padding:0;border:none;border-radius:12px;background:transparent;color:var(--rail-fg);display:grid;place-items:center;transition:background var(--dur-press),color var(--dur-press)}@media(hover:hover){.rail-tab:hover{background:var(--rail-hover);color:var(--text)}}.rail-tab.active{background:var(--rail-active-bg);color:var(--accent)}.rail-badge{font-variant-numeric:tabular-nums;position:absolute;top:3px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--danger);color:var(--on-accent);font-size:calc(10px * var(--font-scale, 1));font-weight:600;display:flex;align-items:center;justify-content:center}.rail-user-menu{position:absolute;top:0;left:50px;z-index:500;width:210px;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:4px 5px;display:flex;flex-direction:column}.menu-user-info{padding:10px 14px 8px;border-bottom:1px solid var(--border)}.menu-display-name{font-size:calc(14px * var(--font-scale, 1));font-weight:600;color:var(--text)}.menu-user-id{font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item-status{margin-left:auto;font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 14px;font-size:calc(13px * var(--font-scale, 1));text-align:left;border:none;background:transparent;color:var(--text);cursor:pointer;border-radius:7px}@media(hover:hover){.menu-item:hover{background:var(--surface-2)}}.menu-item.copy-btn{color:var(--accent-hover);font-size:calc(12px * var(--font-scale, 1))}.menu-item.danger{color:var(--danger)}.menu-divider{height:1px;background:var(--border);margin:4px 2px}.avatar{border-radius:var(--avatar-radius);object-fit:cover;background:var(--accent);color:var(--on-accent);font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;-webkit-user-select:none;user-select:none}.avatar.clickable{cursor:pointer;transition:opacity var(--dur-press)}@media(hover:hover){.avatar.clickable:hover{opacity:.85}}.list-panel{width:var(--list-width, 290px);flex-shrink:0;background:var(--panel-bg);display:flex;flex-direction:column;min-width:0;min-height:0}.list-panel-body{display:flex;flex-direction:column;flex:1;min-height:0}.list-search{position:relative;display:flex;gap:8px;align-items:center;padding:var(--sp-3) var(--sp-5) var(--sp-3);flex-shrink:0}.list-search-box{flex:1;display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid transparent;border-radius:8px;padding:0 10px;height:30px;color:var(--text-faint);transition:background var(--dur-press),border-color var(--dur-press)}.list-search-box:focus-within{background:var(--bg);border-color:var(--accent);color:var(--text-muted)}.list-search-box input{border:none;background:transparent;padding:0;height:100%;font-size:calc(13px * var(--font-scale, 1));color:var(--text)}.list-search-box input:focus{box-shadow:none}.list-search-add{width:30px;height:30px;padding:0;border:none;background:transparent;border-radius:8px;color:var(--text-muted);display:grid;place-items:center}@media(hover:hover){.list-search-add:hover{background:var(--surface-2);color:var(--text)}}.list-search-clear{border:none;background:transparent;width:18px;height:18px;padding:0;border-radius:50%;color:var(--text-faint);font-size:calc(14px * var(--font-scale, 1));line-height:1;display:grid;place-items:center;flex-shrink:0;cursor:pointer;position:relative}.list-search-clear:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2) -8px}@media(hover:hover){.list-search-clear:hover{background:var(--surface-3);color:var(--text)}}.plus-menu{position:absolute;right:12px;top:46px;z-index:70;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-md);padding:4px;min-width:120px;display:flex;flex-direction:column}.plus-menu .context-menu-item{border-radius:7px}.dm-dir-hint{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);margin:-6px 0 8px}.dm-dir-list{display:flex;flex-direction:column;gap:2px}.dm-dir-hit{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer}@media(hover:hover){.dm-dir-hit:hover{background:var(--surface-2)}}.dm-dir-main{display:flex;flex-direction:column;min-width:0}.dm-dir-name{font-size:calc(13px * var(--font-scale, 1));color:var(--text)}.dm-dir-id{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);word-break:break-all}.list-separator{width:5px;flex-shrink:0;background:transparent;cursor:col-resize}@media(hover:hover){.app-shell:not(.dragging) .list-separator:hover{background:var(--accent-tint)}}.main-shell.dragging,.app-shell.dragging{-webkit-user-select:none;user-select:none}.room-list-empty{padding:18px 12px;text-align:center;color:var(--text-faint);font-size:calc(12px * var(--font-scale, 1));line-height:1.6}.chat-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 var(--sp-4) var(--sp-3)}.chat-row{position:relative;display:flex;align-items:center;gap:10px;padding:var(--sp-4) 10px;min-height:var(--row-h, 58px);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-press)}@media(hover:hover){.chat-row:hover{background:var(--panel-hover)}}.chat-row.active{background:var(--panel-active)}.chat-row:active:not(.active){background:var(--panel-hover);transition-duration:0ms}.chat-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.chat-row-main{flex:1;min-width:0}.chat-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.chat-row-name{font-size:calc(14px * var(--font-scale, 1));color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.chat-row.has-highlight .chat-row-name{color:var(--danger-text);font-weight:600}.chat-row.has-unread .chat-row-name{font-weight:600}.chat-row-time{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);flex-shrink:0;min-width:2.9em;text-align:right}.chat-row-ttl{font-size:calc(10px * var(--font-scale, 1));color:var(--text-faint);flex-shrink:0}.chat-row-status{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);flex-shrink:1;min-width:0;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:3px}.chat-row-preview{font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row-preview.row-typing{color:var(--accent-deep)}body.dark .chat-row-preview.row-typing{color:var(--accent)}.chat-row-mute{color:var(--text-faint);flex-shrink:0;display:inline-flex}.archive-group{margin-top:6px}.archive-group-header{display:flex;align-items:center;gap:6px;width:100%;padding:8px 10px;border:none;border-radius:var(--radius-sm);background:none;cursor:pointer;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);-webkit-user-select:none;user-select:none;text-align:left;transition:background var(--dur-press),color var(--dur-press)}@media(hover:hover){.archive-group-header:hover{background:var(--panel-hover);color:var(--text)}}.archive-group-chevron{font-size:calc(10px * var(--font-scale, 1));color:var(--text-faint);line-height:1;transition:transform var(--dur-state) ease,color var(--dur-press)}.archive-group.expanded .archive-group-chevron{transform:rotate(90deg)}@media(hover:hover){.archive-group-header:hover .archive-group-chevron{color:var(--text-muted)}}.notif-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;border-radius:9px;background:var(--danger-strong);color:var(--on-danger);font-size:calc(11px * var(--font-scale, 1));font-weight:600;padding:0 5px;flex-shrink:0;animation:badge-pop var(--dur-enter) var(--ease-emphasized)}@keyframes badge-pop{0%{transform:scale(.4);opacity:0}}@media(prefers-reduced-motion:reduce){.notif-badge{animation:none}}.notif-badge.notif-badge-dot{min-width:10px;width:10px;height:10px;border-radius:50%;padding:0}.chat-row-more{border:none;background:transparent;width:28px;height:44px;padding:0;flex-shrink:0;display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--icon-subtle);font-size:calc(18px * var(--font-scale, 1));font-weight:700;line-height:1;position:relative}.chat-row-more:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.chat-row-mention{flex-shrink:0;font-size:calc(11px * var(--font-scale, 1));font-weight:600;color:var(--danger);background:var(--danger-tint);border-radius:4px;padding:1px 5px;white-space:nowrap}.mention-anchor{position:relative}.mention-panel{position:absolute;left:10px;right:10px;bottom:6px;z-index:30;background:var(--surface);border:1px solid var(--surface-3);border-radius:12px;box-shadow:var(--shadow-lg);max-height:240px;overflow-y:auto;padding:4px}.mention-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:6px 8px;border-radius:7px;font-size:calc(13px * var(--font-scale, 1));color:var(--text);background:transparent;border:none;cursor:pointer}.mention-item.active{background:var(--accent-tint)}.mention-avatar{width:24px;height:24px;border-radius:var(--avatar-radius);font-size:calc(11px * var(--font-scale, 1));flex-shrink:0}.mention-avatar.room{display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-weight:700}.mention-name{font-weight:500}.mention-id{margin-left:auto;font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint)}.msg-html a.mx-mention{display:inline-block;background:var(--accent-tint);color:var(--accent);border-radius:4px;padding:0 5px;font-weight:500;text-decoration:none}@media(hover:hover){.msg-html a.mx-mention:hover{text-decoration:none}}.link-preview-card{display:flex;flex-direction:column;align-self:stretch;min-width:min(320px,100%);border-radius:var(--radius-bubble);overflow:hidden;background:var(--surface);text-decoration:none}@media(hover:hover){.link-preview-card:hover{text-decoration:none}}.link-preview-image{width:100%;max-height:260px;object-fit:cover;display:block;border-bottom:1px solid var(--surface-2)}.link-preview-body{display:flex;flex-direction:column;gap:3px;padding:9px 13px 11px;min-width:0}.link-preview-site{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-preview-title{font-size:calc(15px * var(--font-scale, 1));font-weight:600;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.link-preview-desc{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-preview-card.is-loading{gap:8px;padding:11px 13px 13px;cursor:default}.link-preview-card.is-loading .sk-line{height:11px}.link-preview-card.is-loading .lpc-sk-short{width:62%}.translation-card{max-width:420px;margin-top:4px;border:1px solid var(--surface-2);border-radius:10px;background:var(--bubble-other);padding:8px 12px 10px;font-size:calc(13px * var(--font-scale, 1));color:var(--text)}.translation-card-loading{font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted)}.translation-card-text{white-space:pre-wrap;word-break:break-word;line-height:1.5}.translation-card-truncated{color:var(--text-faint);font-size:calc(11px * var(--font-scale, 1));margin-left:4px}.translation-card-meta{margin-top:4px;font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint)}.translation-card-actions{display:flex;gap:12px;margin-top:6px}.translation-card-action{display:inline-flex;align-items:center;gap:4px;border:none;background:transparent;padding:0;font-size:calc(12px * var(--font-scale, 1));font-weight:500;color:var(--accent);cursor:pointer}@media(hover:hover){.translation-card-action:hover{color:var(--accent-hover)}}.translation-card-error-text{font-size:calc(12.5px * var(--font-scale, 1));color:var(--danger)}.notice-bar{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border)}.notice-bar-toggle{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--accent);font-size:calc(12.5px * var(--font-scale, 1));font-weight:600;cursor:pointer;padding:0;flex-shrink:0}.notice-bar-text{flex:1;color:var(--text);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;line-height:1.4}.notice-bar.collapsed .notice-bar-text{display:none}.notice-bar-expand{border:none;background:transparent;color:var(--text-faint);font-size:calc(12px * var(--font-scale, 1));cursor:pointer;padding:0}@media(hover:hover){.notice-bar-expand:hover{color:var(--text)}}.nudge-event{color:var(--text-faint);font-size:calc(12.5px * var(--font-scale, 1))}.search-section-title{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);padding:10px 10px 4px;-webkit-user-select:none;user-select:none}.search-hit-icon{width:36px;height:36px;border-radius:8px;background:var(--surface-2);color:var(--text-muted);display:grid;place-items:center;flex-shrink:0}.contacts-list{flex:1;overflow-y:auto;padding:0 8px 10px}.contacts-letter{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);padding:10px 10px 4px;-webkit-user-select:none;user-select:none}.contact-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;transition:background var(--dur-press)}@media(hover:hover){.contact-row:hover{background:var(--panel-hover)}}.contact-row-icon{width:36px;height:36px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex-shrink:0}.contact-name{font-size:calc(14px * var(--font-scale, 1));color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-count{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint)}.favorites-head{display:flex;align-items:center;gap:8px;padding:12px 14px 10px;border-bottom:1px solid var(--border);color:var(--text)}.favorites-title{font-size:calc(15px * var(--font-scale, 1));font-weight:600}.favorites-count{margin-left:auto;font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);background:var(--surface-2);border-radius:9px;padding:1px 8px}.favorites-list{flex:1;overflow-y:auto;padding:6px 8px 10px}.favorite-item{display:flex;align-items:flex-start;gap:6px;padding:9px 10px;border-radius:var(--radius);cursor:pointer;transition:background var(--dur-press)}@media(hover:hover){.favorite-item:hover{background:var(--panel-hover)}}.favorite-item-main{flex:1;min-width:0}.favorite-snippet{font-size:calc(13px * var(--font-scale, 1));color:var(--text);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.favorite-snippet.redacted{color:var(--text-faint)}.favorite-meta{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);white-space:nowrap}.favorite-room,.favorite-sender{overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}.favorite-sep{color:var(--text-faint);flex-shrink:0}.favorite-time{margin-left:auto;color:var(--text-faint);flex-shrink:0}.favorite-remove{border:none;background:transparent;color:var(--text-faint);width:24px;height:24px;border-radius:6px;display:grid;place-items:center;cursor:pointer;flex-shrink:0;opacity:0;transition:opacity var(--dur-press),background var(--dur-press),color var(--dur-press);position:relative}.favorite-remove:after{content:"";position:absolute;top:-6px;bottom:-6px;left:calc((var(--tap-min, 28px) - 100%) / -2);right:calc((var(--tap-min, 28px) - 100%) / -2)}.favorite-remove:focus-visible{opacity:1}@media(hover:hover){.favorite-item:hover .favorite-remove{opacity:1}}@media(hover:hover){.favorite-remove:hover{background:var(--surface-3);color:var(--danger)}}@media(hover:none),(pointer:coarse){.favorite-remove{opacity:1}}.favorites-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:56px 24px;color:var(--text-faint);text-align:center}.favorites-empty-title{margin:6px 0 0;font-size:calc(14px * var(--font-scale, 1));color:var(--text-muted)}.favorites-empty-hint{margin:0;font-size:calc(12px * var(--font-scale, 1))}.rail-tab-badge{background:var(--surface-3);color:var(--text-muted)}.settings-rows{padding:12px 8px;display:flex;flex-direction:column;gap:2px}.settings-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border:none;border-radius:var(--radius);background:transparent;color:var(--text);font-size:calc(14px * var(--font-scale, 1));text-align:left}@media(hover:hover){.settings-row:hover{background:var(--panel-hover)}}.settings-row.active{background:var(--panel-active);color:var(--accent)}.settings-row.danger{color:var(--danger)}.settings-row-icon{display:grid;place-items:center;opacity:.85}.settings-row-arrow{margin-left:auto;color:var(--text-faint)}.settings-row .settings-row-sub{display:block;margin-top:2px;font-size:calc(11px * var(--font-scale, 1));font-weight:400;color:var(--text-muted)}.settings-row .switch{flex:none;margin-left:auto}.storage-line{font-size:calc(13px * var(--font-scale, 1));color:var(--text);margin:4px 0 10px}.storage-line.muted,.storage-details{color:var(--text-faint)}.storage-line b{font-weight:600}.storage-hint-ok{font-size:calc(12.5px * var(--font-scale, 1));color:var(--accent);margin:4px 0}.storage-details{font-size:calc(12.5px * var(--font-scale, 1));margin:0 0 10px;padding-left:18px}.storage-rows{display:flex;flex-direction:column;margin-bottom:10px}.storage-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:calc(13px * var(--font-scale, 1))}.storage-row:last-child{border-bottom:none}.storage-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-row-meta{color:var(--text-muted);font-size:calc(12px * var(--font-scale, 1));flex-shrink:0}.storage-crypto-tag,.storage-danger-btn{color:var(--danger)}.storage-clear-btn{margin-left:10px}.storage-clear-btn:disabled{opacity:.5;cursor:not-allowed}.storage-crypto-clear{margin-top:6px;width:100%}.settings-divider{height:1px;background:var(--border);margin:8px 12px}.main-area{flex:1;min-width:0;min-height:0;background:var(--chat-bg);position:relative;display:flex;flex-direction:column}.main-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-faint)}.main-placeholder svg{opacity:.45}.main-placeholder p{font-size:calc(13px * var(--font-scale, 1));margin:0}.chat-panel{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.chat-header{display:flex;align-items:center;gap:8px;padding:0 14px;height:52px;flex-shrink:0;background:var(--chat-bg);box-shadow:0 1px 0 var(--border);position:relative;z-index:2}.chat-header-spacer{width:32px;flex-shrink:0}.chat-title{margin:0;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:calc(15px * var(--font-scale, 1));font-weight:500}.chat-title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title-avatar{flex-shrink:0}.chat-title-count{color:var(--text-muted);font-weight:400;font-size:calc(13px * var(--font-scale, 1))}.chat-ttl-badge{border:none;background:transparent;font-size:calc(12px * var(--font-scale, 1));line-height:1;color:var(--text-muted);padding:2px 4px;margin-left:4px;border-radius:6px;cursor:pointer;vertical-align:middle}@media(hover:hover){.chat-ttl-badge:hover{background:var(--surface-2)}}.chat-back-btn{width:32px;height:32px;padding:0;border:none;background:transparent;border-radius:8px;color:var(--text-muted);display:grid;place-items:center;flex-shrink:0;position:relative}.chat-back-btn:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}@media(hover:hover){.chat-back-btn:hover{background:var(--surface-2);color:var(--text)}}.chat-info-btn{width:32px;height:32px;padding:0;border:none;background:transparent;border-radius:8px;color:var(--text-muted);display:grid;place-items:center;flex-shrink:0;position:relative}.chat-info-btn:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.chat-info-btn.active{background:var(--surface-2);color:var(--text)}@media(hover:hover){.chat-info-btn:hover{background:var(--surface-2);color:var(--text)}}.chat-jumpdate-btn{width:32px;height:32px;padding:0;border:none;background:transparent;border-radius:8px;color:var(--text-muted);display:grid;place-items:center;flex-shrink:0;position:relative}.chat-jumpdate-btn:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.chat-jumpdate-btn.active{background:var(--surface-2);color:var(--text)}@media(hover:hover){.chat-jumpdate-btn:hover{background:var(--surface-2);color:var(--text)}}.jumpdate-pop{position:absolute;top:56px;right:12px;z-index:var(--z-menu);width:280px;max-width:calc(100vw - 24px);background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px}.jumpdate-head{display:flex;align-items:center;gap:4px;margin-bottom:6px}.jumpdate-title{flex:1;text-align:center;font-size:calc(13px * var(--font-scale, 1));font-weight:600;color:var(--text)}.jumpdate-nav,.jumpdate-close{width:26px;height:26px;padding:0;border:none;background:transparent;border-radius:6px;color:var(--text-muted);font-size:calc(15px * var(--font-scale, 1));cursor:pointer;display:grid;place-items:center;flex-shrink:0;position:relative}.jumpdate-nav:after,.jumpdate-close:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}@media(hover:hover){.jumpdate-nav:hover:not(:disabled),.jumpdate-close:hover:not(:disabled){background:var(--surface-2);color:var(--text)}}.jumpdate-nav:disabled,.jumpdate-close:disabled{opacity:.35;cursor:default}.jumpdate-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.jumpdate-weekday{text-align:center;font-size:calc(10.5px * var(--font-scale, 1));color:var(--text-faint);padding:2px 0}.jumpdate-day{border:none;background:transparent;height:30px;padding:0;border-radius:8px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);cursor:pointer}@media(hover:hover){.jumpdate-day.active:hover{background:var(--surface-2);color:var(--text)}}.jumpdate-day:disabled{color:var(--text-faint);opacity:.45;cursor:default}.jumpdate-day.out:disabled{opacity:.25}.jumpdate-hint{margin-top:6px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);text-align:center}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:24px;color:var(--text-faint);font-size:calc(15px * var(--font-scale, 1))}.chat-empty-icon{color:var(--text-faint);opacity:.5;margin-bottom:6px}.chat-empty h3{margin:0;font-size:calc(16px * var(--font-scale, 1));font-weight:600;color:var(--text-muted)}.chat-empty p{margin:0;font-size:calc(13px * var(--font-scale, 1))}.chat-empty-action{margin-top:14px;padding:8px 26px}.message-list{flex:1;overflow-y:auto;padding:12px 0 8px;display:flex;flex-direction:column;overflow-anchor:none;max-width:var(--content-max, none);margin-inline:auto;width:100%}.message-list:before{content:"";margin-top:auto}.time-separator{font-variant-numeric:tabular-nums;align-self:center;width:fit-content;max-width:90%;font-size:calc(11.5px * var(--font-scale, 1));font-weight:500;color:var(--text-faint);background:var(--surface-2);border-radius:999px;padding:3px 10px;margin:10px 0 2px;-webkit-user-select:none;user-select:none}.message.sel-suppress,.message.sel-suppress *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none}.sel-handles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4001}.sel-handles.dragging,.sel-handles.dragging .sel-handle{pointer-events:none}.sel-handle{position:absolute;width:44px;height:44px;padding:0;border:none;background:transparent;pointer-events:auto;touch-action:none;cursor:text;transform-origin:50% 1px;filter:drop-shadow(0 1px 2px rgb(0 0 0 / .24))}.sel-handle .sel-drop{display:block;width:22px;height:26px;margin:0 auto}.sel-handle-start{transform:rotate(15deg)}.sel-handle-end{transform:rotate(-15deg)}.message{display:flex;gap:10px;align-items:flex-start;padding:3px 16px;margin-top:5px;position:relative;line-height:1.5;word-wrap:break-word}.message.own{flex-direction:row-reverse}.message.msg-enter{animation:msg-in .26s var(--ease)}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.message.msg-enter{animation:none}}.message.has-text-preview .message-content{max-width:72%}.msg-avatar{width:34px;height:34px;border-radius:var(--avatar-radius);flex-shrink:0;object-fit:cover;background:var(--surface-3)}.msg-avatar.no-img{display:flex;align-items:center;justify-content:center;font-size:calc(14px * var(--font-scale, 1));font-weight:600;color:var(--on-accent);background:var(--accent)}.message-content{display:flex;flex-direction:column;min-width:0;max-width:62%}.message.own .message-content{align-items:flex-end}.message-header{padding:0 2px}.message .sender{font-size:calc(12px * var(--font-scale, 1));font-weight:400;color:var(--text-muted)}.bubble{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;background:var(--bubble-other);border-radius:var(--radius-bubble);padding:8px 13px;max-width:100%;min-width:0;overflow-wrap:anywhere;box-shadow:var(--shadow-sm)}.bubble:before{content:"";position:absolute;top:11px;left:-5.5px;width:16px;height:16px;background:inherit;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.bubble img,.bubble video{position:relative}.message.own .bubble{background:var(--bubble-own);color:var(--bubble-own-fg);align-items:flex-end}.message.own .bubble:before{left:auto;right:-5.5px}.message.own .bubble .msg-html a{color:var(--bubble-own-fg)}.message.own .bubble .msg-code-inline,.message.own .bubble .msg-code-block,.message.own .bubble .msg-html pre,.message.own .bubble .msg-html code{background:var(--bubble-own-code-bg);border-color:transparent;color:var(--bubble-own-fg)}.message.own .bubble .reply-preview{background:var(--bubble-own-code-bg);border-left-color:var(--bubble-own-muted);color:var(--bubble-own-muted)}.message.own .bubble .reply-preview .reply-sender{color:var(--bubble-own-fg)}.message.own .bubble .reply-preview .reply-body{color:var(--bubble-own-muted)}.message.own .bubble .reply-preview .msg-code-inline{background:transparent}.message.own .bubble .msg-html a.mx-mention{background:var(--bubble-own-code-bg);color:var(--bubble-own-fg)}.message.own .bubble .chat-record-card{background:var(--bubble-own-code-bg);border-color:transparent}@media(hover:hover){.message.own .bubble .chat-record-head:hover{background:var(--bubble-own-code-bg)}}.message.own .bubble .text-preview{border-color:transparent;background:var(--bubble-own-code-bg)}.message.own .bubble .text-preview .text-preview-name,.message.own .bubble .text-pre{color:var(--bubble-own-fg)}.message.own .bubble .text-pre{background:transparent}.message.own .bubble .text-preview-filename{background:transparent;color:var(--bubble-own-muted)}.message.own .bubble .text-preview-download,.message.own .bubble .text-expand-btn,.message.own .bubble .text-toolbar a{color:var(--bubble-own-fg)}.message.own .bubble .text-expand-btn{background:transparent;border-color:transparent}.message.own .bubble .text-toolbar{background:transparent;border-color:transparent;color:var(--bubble-own-muted)}.message.own .bubble .poll-card{background:var(--bubble-own-code-bg);border-color:transparent}.message.own .bubble .poll-answer{background:transparent;border-color:var(--bubble-own-line)}.message.own .bubble .poll-answer-text,.message.own .bubble .poll-question,.message.own .bubble .poll-count,.message.own .bubble .poll-total{color:var(--bubble-own-fg)}.message.own .bubble .poll-kind,.message.own .bubble .poll-voters{color:var(--bubble-own-muted)}.message.own .bubble .poll-answer .poll-answer-bar{background:var(--bubble-own-line)}.message.own .bubble .voice-player .voice-waveform span{background:var(--bubble-own-fg)}.message.own .bubble .voice-play-btn,.message.own .bubble .voice-rate-btn,.message.own .bubble .voice-rec-cancel{background:transparent;border-color:var(--bubble-own-line);color:var(--bubble-own-fg)}.message.own .bubble .voice-countdown{color:var(--bubble-own-muted)}.message.own .bubble .location-card{background:var(--bubble-own-code-bg);border-color:transparent}.message.own .bubble .location-text{color:var(--bubble-own-fg)}.message.own .bubble .location-coords{color:var(--bubble-own-muted)}.message.own .bubble .location-link{color:var(--bubble-own-fg)}.message.own .bubble .media-caption{color:var(--bubble-own-muted)}.message.own .bubble .link-preview-card{border-color:transparent;background:var(--bubble-own-code-bg)}.message.own .bubble .link-preview-site,.message.own .bubble .link-preview-desc{color:var(--bubble-own-muted)}.message.own .bubble .link-preview-title{color:var(--bubble-own-fg)}.message.own .bubble .translation-card{background:var(--bubble-own-code-bg);border-color:transparent}.message.own .bubble .edited-marker{color:var(--bubble-own-muted)}.message.own .bubble .msg-html table th{background:var(--bubble-own-code-bg);color:var(--bubble-own-fg)}.message.own .bubble .msg-html table td{border-color:var(--bubble-own-line);color:var(--bubble-own-fg)}.message.own .bubble .msg-html blockquote{border-left-color:var(--bubble-own-muted);color:var(--bubble-own-muted)}.msg-undecryptable{color:var(--warn);font-size:calc(13px * var(--font-scale, 1))}.edited-marker{font-size:calc(10px * var(--font-scale, 1));color:var(--text-faint);margin-left:4px;cursor:help;-webkit-user-select:none;user-select:none}.msg-time{font-variant-numeric:tabular-nums;font-size:calc(10px * var(--font-scale, 1));color:var(--text-faint);margin-left:4px;white-space:nowrap;-webkit-user-select:none;user-select:none}.message.own .bubble .msg-time{color:var(--bubble-own-muted)}.msg-time.float-end{display:block;text-align:right;margin-left:0;margin-top:2px}.bubble.has-hero{padding:0}.bubble.has-hero .msg-time,.bubble.has-hero .edited-marker{margin-left:0;padding:3px 12px 7px}.bubble.has-hero .hero-fallback{padding:6px 12px 2px}.message.own .bubble .sk-line{background:var(--bubble-own-line)}.msg-send-badge{align-self:center;margin-right:auto;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;-webkit-user-select:none;user-select:none;font-size:calc(11px * var(--font-scale, 1));font-weight:800;line-height:1}.msg-send-badge.sending{color:var(--text-faint)}.msg-send-badge .badge-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1.5px solid currentColor;border-top-color:transparent;opacity:.55;animation:spin .9s linear infinite}.msg-send-badge .badge-dots{display:inline-flex;gap:1.5px}.msg-send-badge .badge-dots i{width:2.5px;height:2.5px;border-radius:50%;background:currentColor;animation:badge-dot-bounce 1s ease-in-out infinite}.msg-send-badge .badge-dots i:nth-child(2){animation-delay:.15s}.msg-send-badge .badge-dots i:nth-child(3){animation-delay:.3s}@keyframes badge-dot-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-3px);opacity:1}}.msg-send-badge.sent{color:#fff;background:var(--accent, #3b8bea);animation:badge-fade-out .35s ease 1s forwards}.msg-send-badge.failed{border:1.5px solid var(--danger, #d33);background:transparent;color:var(--danger, #d33);cursor:pointer;padding:0}@media(hover:hover){.msg-send-badge.failed:hover{background:var(--danger, #d33);color:#fff}}@keyframes badge-fade-out{to{opacity:0;visibility:hidden}}@media(prefers-reduced-motion:reduce){.msg-send-badge .badge-ring{animation:none;border-top-color:transparent}.msg-send-badge .badge-dots i{animation:none;opacity:.8}.msg-send-badge.sent{animation:badge-fade-out 0s linear 1s forwards}}.expiry-marker{display:inline-flex;align-items:center;color:var(--text-faint);opacity:.85;margin-left:4px;cursor:help;-webkit-user-select:none;user-select:none;line-height:0}.reply-preview{display:flex;gap:8px;padding:4px 8px;margin-bottom:6px;border-left:3px solid var(--text-faint);background:var(--surface-2);border-radius:6px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);cursor:pointer;align-items:flex-start;text-align:left}.reply-preview.own{border-left-color:var(--accent)}.reply-bar{width:3px;align-self:stretch;background:var(--text-faint);margin-top:2px}.reply-content{display:flex;flex-direction:column;gap:1px;overflow:hidden;min-width:0}.reply-sender{font-weight:600;color:var(--text);font-size:calc(12px * var(--font-scale, 1))}.reply-body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted)}.msg-html,.msg-text{display:inline;min-width:0;max-width:100%}.msg-code-inline{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;background:var(--surface-2);padding:1px 5px;border-radius:3px;font-size:.9em}.msg-code-block{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:8px 10px;margin:4px 0;max-width:100%;overflow-x:auto;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em;white-space:pre}.msg-html pre,.msg-html code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.msg-html pre{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:8px 10px;margin:4px 0;max-width:100%;overflow-x:auto;font-size:.9em}.msg-html table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:4px 0;font-size:calc(12px * var(--font-scale, 1))}.msg-html th,.msg-html td{border:1px solid var(--border);padding:3px 8px;text-align:left}.msg-html th{background:var(--surface-2);font-weight:600}.msg-html code{background:var(--surface-2);padding:1px 5px;border-radius:3px;font-size:.9em}.msg-html pre code,.message.own .bubble .msg-html pre code{font-size:1em;background:transparent;padding:0;border-radius:0}.msg-html a{color:var(--accent-hover);text-decoration:underline}.msg-html blockquote{border-left:3px solid var(--border);padding-left:8px;margin:4px 0;color:var(--text-muted)}.msg-html img{max-width:100%;border-radius:4px}.msg-html h1{font-size:1.25em;font-weight:700;margin:.5em 0 .25em}.msg-html h2{font-size:1.15em;font-weight:700;margin:.5em 0 .25em}.msg-html h3{font-size:1.05em;font-weight:600;margin:.4em 0 .2em}.msg-html h4,.msg-html h5,.msg-html h6{font-size:1em;font-weight:600;margin:.4em 0 .2em}.msg-html hr{border:none;border-top:1px solid var(--border);margin:6px 0}pre.msg-code-enhanced{display:grid;grid-template-columns:auto minmax(0,1fr);position:relative;overflow:hidden;tab-size:4;-moz-tab-size:4}.code-gutter{text-align:right;-webkit-user-select:none;user-select:none;color:var(--text-faint);padding-right:12px;border-right:1px solid var(--border)}.message.own .bubble .code-gutter{border-right-color:transparent}.code-gutter span{display:block;counter-increment:code-line}.code-gutter span:before{content:counter(code-line)}.code-body{white-space:normal;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:transparent transparent}.code-body .code-line{display:block;white-space:pre}.code-body .code-line:empty:after{content:"​"}.code-copy-btn{position:absolute;top:6px;right:8px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface-3);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity var(--dur-state) ease;z-index:2}.code-copy-btn:focus-visible{opacity:1;outline:2px solid var(--focus-ring)}.code-copy-btn[data-copied]{color:var(--accent);border-color:var(--accent)}.code-copy-btn[data-copied] svg{display:none}.code-copy-btn[data-copied]:after{content:"✓";font-weight:700}@media(hover:hover){pre.msg-code-enhanced:hover .code-copy-btn,pre.msg-code-enhanced:focus-within .code-copy-btn{opacity:1}}@media(hover:none){.code-copy-btn{opacity:1}}.message.own .bubble .code-copy-btn{background:var(--surface-3);background:color-mix(in srgb,var(--bubble-own-fg) 18%,transparent);border-color:transparent;color:var(--bubble-own-fg)}.code-lang{position:absolute;top:8px;right:40px;font-size:calc(10px * var(--font-scale, 1));color:var(--text-faint);text-transform:uppercase;-webkit-user-select:none;user-select:none;pointer-events:none}.message.own .bubble .code-lang{color:var(--bubble-own-muted)}.msg-code-enhanced .code-body::-webkit-scrollbar{width:8px;height:8px}.msg-code-enhanced .code-body::-webkit-scrollbar-track{background:transparent}.msg-code-enhanced .code-body::-webkit-scrollbar-thumb{background:transparent;border-radius:4px;transition:background-color var(--dur-state) ease}@media(hover:hover){.msg-code-enhanced:hover .code-body{scrollbar-color:var(--surface-3) transparent}.msg-code-enhanced:hover .code-body::-webkit-scrollbar-thumb{background:var(--surface-3)}.message.own .bubble .msg-code-enhanced:hover .code-body{scrollbar-color:var(--surface-3) transparent;scrollbar-color:color-mix(in srgb,var(--bubble-own-fg) 40%,transparent) transparent}.message.own .bubble .msg-code-enhanced:hover .code-body::-webkit-scrollbar-thumb{background:var(--surface-3);background:color-mix(in srgb,var(--bubble-own-fg) 40%,transparent)}}.msg-code-enhanced .code-body::-webkit-scrollbar-corner{background:transparent}.msg-more-btn{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:50%;color:var(--text-faint);font-size:calc(14px * var(--font-scale, 1));font-weight:700;line-height:1;align-self:center;flex-shrink:0;position:relative;opacity:.5;transition:opacity var(--dur-press) var(--ease-standard)}.msg-more-btn:active{opacity:1;background:var(--surface-2)}.msg-more-btn:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}@media(hover:hover){.msg-more-btn:hover{background:var(--surface-2);color:var(--text)}}.msg-read-receipts{display:flex;margin-top:2px;padding:0 4px;justify-content:flex-start}.message.own .msg-read-receipts{justify-content:flex-end}.rr-avatar{width:16px;height:16px;border-radius:var(--avatar-radius);border:2px solid var(--chat-bg);margin-left:-4px;object-fit:cover;background:var(--surface-3)}.rr-avatar.no-img{display:flex;align-items:center;justify-content:center;font-size:calc(8px * var(--font-scale, 1));font-weight:600;color:var(--on-accent);background:var(--accent)}.rr-avatar:first-child{margin-left:0}.typing-indicator{display:flex;align-items:center;gap:8px;padding:6px 18px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.typing-dots{display:inline-flex;gap:3px}.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typingDotBounce 1s infinite}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typingDotBounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.typing-text{font-size:calc(12px * var(--font-scale, 1))}@media(prefers-reduced-motion:reduce){.typing-dot{animation:none;opacity:.8}.typing-dot:nth-child(2){opacity:.55}.typing-dot:nth-child(3){opacity:.35}}.reaction-bar{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.message.own .reaction-bar{justify-content:flex-end}.reaction-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;position:relative;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);font-size:calc(13px * var(--font-scale, 1));line-height:1.4;cursor:pointer;transition:background var(--dur-state),border-color var(--dur-state);-webkit-user-select:none;user-select:none}@media(hover:hover){.reaction-pill:hover{background:var(--surface-3);border-color:var(--accent)}}.reaction-pill.mine{background:var(--accent-tint);border-color:var(--accent)}.reaction-pill:active{transform:scale(.94)}.reaction-emoji{font-size:calc(15px * var(--font-scale, 1));line-height:1}.reaction-count{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);min-width:8px;text-align:center}.reaction-pill:after,button.thread-badge:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.reaction-pill.mine .reaction-count{color:var(--accent-deep)}.reaction-pill.bump{animation:reaction-bump .3s var(--ease)}@keyframes reaction-bump{0%{transform:scale(1)}40%{transform:scale(1.22)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.reaction-pill.bump{animation:none}}.thread-badge{display:inline-flex;align-items:center;gap:5px;width:fit-content;margin-top:4px;padding:2px 9px;position:relative;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);line-height:1.5;-webkit-user-select:none;user-select:none;cursor:default}.thread-badge svg{flex:none}.thread-badge.participated{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-deep)}button.thread-badge{cursor:pointer;transition:background var(--dur-state),border-color var(--dur-state)}@media(hover:hover){button.thread-badge:hover{background:var(--surface-3);border-color:var(--accent)}}.thread-drawer{border-left:1px solid var(--border)}.thread-drawer header{gap:8px}.thread-drawer header h2{flex:1;text-align:left}.thread-back,.thread-close{display:inline-flex;align-items:center;justify-content:center}.thread-root{padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0;overflow-y:auto;max-height:40%}.thread-replies{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.thread-loading,.thread-empty{color:var(--text-muted);font-size:calc(13px * var(--font-scale, 1));text-align:center;padding:24px 0}.thread-drawer .composer{flex-shrink:0;box-shadow:none}.thread-drawer .thread-badge{display:none}.drawer-section-title{margin:14px 0 8px;font-size:calc(13px * var(--font-scale, 1));font-weight:600;color:var(--text-muted)}.thread-list{display:flex;flex-direction:column;gap:6px}.thread-row{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);text-align:left;cursor:pointer;transition:background var(--dur-state),border-color var(--dur-state)}@media(hover:hover){.thread-row:hover{background:var(--surface-3);border-color:var(--accent)}}.thread-row-root{flex:1;min-width:0;font-size:calc(13px * var(--font-scale, 1));color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-row-meta{font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);flex:none}.thread-row-unread{flex:none;min-width:18px;padding:1px 6px;border-radius:10px;background:var(--accent);color:var(--on-accent);font-size:calc(11px * var(--font-scale, 1));text-align:center}.message img{max-width:320px;max-height:320px;border-radius:var(--radius-sm);display:block;cursor:pointer;transition:opacity var(--dur-press);object-fit:cover}@media(hover:hover){.message img:hover{opacity:.9}}.message video,.message audio{max-width:100%;border-radius:var(--radius-sm);display:block}.message img.media-sized,.message video.media-sized{width:min(320px,100%);object-fit:cover}.message img.media-sized{background:var(--surface-2)}.media-bubble{padding:4px;display:flex;flex-direction:column;gap:4px}.media-caption{padding:4px 8px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.bubble.media-bubble.media-plain{padding:0;background:transparent;box-shadow:none;gap:0}.bubble.media-plain:before{display:none}.bubble.media-plain img,.bubble.media-plain video{border-radius:var(--radius-bubble)}.message.own .bubble.media-plain .edited-marker,.sticker-img{display:block;max-width:180px;max-height:180px;cursor:zoom-in}.bubble.media-bubble.media-captioned{padding:0;gap:0}.bubble.media-captioned img{border-radius:var(--radius-bubble) var(--radius-bubble) 0 0}.bubble.media-captioned .media-caption{padding:6px 12px 8px}.file-card{display:flex;align-items:center;gap:10px;min-width:200px;max-width:320px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);text-decoration:none}@media(hover:hover){.file-card:hover{border-color:var(--accent-weak)}}.file-card-icon{font-size:calc(22px * var(--font-scale, 1));flex-shrink:0}.file-card-meta{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.file-card-name{font-size:calc(13px * var(--font-scale, 1));font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-card-size{font-size:calc(11.5px * var(--font-scale, 1));color:var(--text-muted)}.file-card-action{flex-shrink:0;font-size:calc(12px * var(--font-scale, 1));font-weight:600;color:var(--accent)}.message.own .bubble .file-card{background:var(--bubble-own-code-bg);border-color:transparent;color:var(--bubble-own-fg)}.message.own .bubble .file-card-size{color:var(--bubble-own-muted)}.message.own .bubble .file-card-action,.message.own .bubble .msg-text a,.message.own .bubble .msg-html a{color:var(--bubble-own-fg)}.img-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#000000d9;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-zoom-close{position:absolute;top:16px;right:20px;width:40px;height:40px;padding:0;border:none;background:#2c2c2ead;color:#fff;font-size:calc(24px * var(--font-scale, 1));border-radius:50%;cursor:pointer;z-index:2001}@media(hover:hover){.img-zoom-close:hover{background:#2c2c2ed9}}.img-zoom-download{position:absolute;bottom:20px;left:50%;transform:translate(-50%);padding:8px 18px;background:#2c2c2ead;color:#fff;border:none;border-radius:999px;font-size:calc(13px * var(--font-scale, 1));cursor:pointer;text-decoration:none;z-index:2001}@media(hover:hover){.img-zoom-download:hover{background:#2c2c2ed9}}.img-zoom-img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius);cursor:default}.text-preview{width:100%;min-width:0;max-width:100%;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--bg);display:flex;flex-direction:column}.message.own .text-preview{align-self:stretch}.text-preview-filename{display:flex;align-items:center;gap:8px;padding:5px 12px;font-size:calc(12px * var(--font-scale, 1));border-bottom:1px solid var(--border);background:var(--surface-2);color:var(--text-muted)}.text-preview-name{font-weight:600;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-preview-meta{color:var(--text-faint);font-size:calc(11px * var(--font-scale, 1))}.text-preview-download{color:var(--accent-hover);font-size:calc(11px * var(--font-scale, 1));text-decoration:none}@media(hover:hover){.text-preview-download:hover{text-decoration:underline}}.text-pre{margin:0;padding:10px 12px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:calc(12px * var(--font-scale, 1));line-height:1.5;color:var(--text);background:var(--chat-bg);max-height:320px;min-height:40px;overflow:auto;white-space:pre;scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent;tab-size:4;-moz-tab-size:4}.text-preview:not(.expanded) .text-pre{max-height:210px}.text-pre::-webkit-scrollbar{width:8px;height:8px}.text-pre::-webkit-scrollbar-track{background:transparent}.text-pre::-webkit-scrollbar-thumb{background:transparent;border-radius:4px;transition:background-color var(--dur-state) ease}@media(hover:hover){.text-pre:hover::-webkit-scrollbar-thumb{background:var(--surface-3)}}@media(hover:hover){.text-pre:hover::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}}.text-pre::-webkit-scrollbar-corner{background:transparent}.text-expand-btn{display:block;width:100%;padding:6px 12px;font-size:calc(12px * var(--font-scale, 1));text-align:center;border:none;border-top:1px solid var(--border);background:var(--surface-2);color:var(--accent-hover);cursor:pointer;flex-shrink:0}@media(hover:hover){.text-expand-btn:hover{background:var(--surface-3)}}.text-toolbar{display:flex;align-items:center;justify-content:space-between;padding:5px 12px;font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);border-top:1px solid var(--border);background:var(--chat-bg);flex-shrink:0}.text-toolbar a{font-size:calc(11px * var(--font-scale, 1));color:var(--accent-hover)}.message.decrypt-error{align-self:stretch;max-width:none;background:var(--danger-tint);border:1px dashed var(--danger);border-radius:var(--radius);display:flex;align-items:center;gap:10px;padding:9px 14px;color:var(--danger);font-size:calc(13px * var(--font-scale, 1));margin:6px 16px 0}.message.decrypt-error button{margin-left:auto;padding:4px 10px;font-size:calc(12px * var(--font-scale, 1));border-color:var(--danger);color:var(--danger);background:transparent}@media(hover:hover){.message.decrypt-error button:hover{background:var(--danger);color:var(--on-accent)}}.timeline-event{align-self:center;width:fit-content;max-width:90%;font-size:calc(11.5px * var(--font-scale, 1));color:var(--text-faint);background:var(--surface-2);border-radius:var(--radius-lg);padding:4px 12px;margin-top:5px;text-align:center;line-height:1.4}.redacted-event{font-style:italic;opacity:.75}.composer{position:relative;background:var(--chat-bg);flex-shrink:0;padding:4px 12px 10px}.composer.drag-over{background:var(--accent-tint)}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--focus-ring);border:2px dashed var(--accent);display:flex;align-items:center;justify-content:center;z-index:50;pointer-events:none}.drop-hint{font-size:calc(15px * var(--font-scale, 1));color:var(--accent-deep);font-weight:600;background:var(--bg);padding:12px 24px;border-radius:var(--radius);box-shadow:var(--shadow-md)}.pending-attachments{display:flex;gap:8px;padding:8px 12px;overflow-x:auto}.pending-attachment{position:relative;display:flex;align-items:center;gap:6px;padding:5px 30px 5px 6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);max-width:220px}.pending-thumb{width:38px;height:38px;object-fit:cover;border-radius:calc(var(--radius) - 2px);flex-shrink:0}.pending-file-icon{font-size:calc(20px * var(--font-scale, 1));flex-shrink:0}.pending-name{font-size:calc(11.5px * var(--font-scale, 1));color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px}.pending-remove{position:absolute;top:2px;right:2px;width:18px;height:18px;padding:0;border:none;border-radius:50%;background:var(--surface-3);color:var(--text);font-size:calc(13px * var(--font-scale, 1));line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}@media(hover:hover){.pending-remove:hover{background:var(--danger);color:var(--on-accent)}}.pending-attachment.pending-error{border-color:var(--danger);background:var(--surface-2);background:color-mix(in srgb,var(--danger) 8%,var(--surface-2));padding-right:6px}.pending-error-msg{font-size:calc(11px * var(--font-scale, 1));color:var(--danger);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-retry{padding:2px 10px;font-size:calc(11.5px * var(--font-scale, 1));border:1px solid var(--danger);border-radius:calc(var(--radius) - 2px);background:var(--surface);color:var(--danger);cursor:pointer;flex-shrink:0}@media(hover:hover){.pending-retry:hover{background:var(--danger);color:var(--on-accent)}}.pending-retry:disabled{opacity:.55;cursor:default}.composer-pill{display:flex;align-items:flex-end;gap:2px;width:100%;max-width:var(--content-max, none);margin-inline:auto;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:4px 8px;position:relative}.composer-tool{width:40px;height:40px;padding:0;flex-shrink:0;border:none;background:transparent;border-radius:20px;color:var(--text-muted);display:grid;place-items:center;position:relative}.composer-tool:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.composer-input.composing{text-decoration:underline dashed var(--accent);text-underline-offset:4px}@media(hover:hover){.composer-tool:hover{background:var(--surface-2);color:var(--text)}}.composer-tool.active{background:var(--surface-2);color:var(--accent)}.emoji-panel{position:absolute;bottom:calc(100% + var(--panel-pop-gap));right:8px;z-index:var(--z-menu);width:max-content;max-height:none;display:block;padding:0;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.emoji-panel .epr-main{position:relative;display:block}.emoji-panel .epr-header{display:block;position:static!important}.emoji-panel .epr-header>div:first-child{display:none}.emoji-panel .epr-header .epr-category-nav,.emoji-panel .epr-category-nav{display:flex!important;align-items:center;justify-content:space-around;position:absolute!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;height:44px!important;border-top:1px solid var(--border);background:var(--bg);z-index:2}.emoji-panel .epr-header .epr-body,.emoji-panel .epr-body{position:absolute;left:0;right:0;top:0;bottom:44px;overflow-y:auto}.emoji-item{width:34px;height:34px;padding:0;display:grid;place-items:center;font-size:calc(20px * var(--font-scale, 1));border:none;background:transparent;border-radius:6px;cursor:pointer}@media(hover:hover){.emoji-item:hover{background:var(--surface-2)}}.plus-panel{position:absolute;bottom:calc(100% + var(--panel-pop-gap));right:8px;z-index:var(--z-menu);display:grid;grid-template-columns:repeat(2,84px);gap:10px;padding:14px;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.plus-action{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border:1px solid var(--border);background:var(--bg);border-radius:10px;color:var(--text);font-size:calc(12px * var(--font-scale, 1))}@media(hover:hover){.plus-action:hover{background:var(--surface-2);border-color:var(--accent)}}.plus-action-icon{color:var(--text-muted)}.quick-phrases-panel{position:absolute;bottom:calc(100% + var(--panel-pop-gap));right:8px;z-index:var(--z-menu);width:300px;max-height:320px;display:flex;flex-direction:column;padding:10px;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.qp-list{overflow-y:auto;min-height:36px;display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.qp-row{display:flex;align-items:center;gap:4px}.qp-item{flex:1;min-width:0;text-align:left;padding:7px 10px;border:none;background:transparent;border-radius:8px;color:var(--text);font-size:calc(13px * var(--font-scale, 1));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}@media(hover:hover){.qp-item:hover{background:var(--surface-2)}}.qp-delete{flex-shrink:0;width:26px;height:26px;padding:0;display:grid;place-items:center;border:none;background:transparent;border-radius:6px;color:var(--text-muted);cursor:pointer}@media(hover:hover){.qp-delete:hover{color:var(--danger);background:var(--surface-2)}}.qp-empty{padding:10px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);text-align:center}.qp-add{display:flex;gap:6px}.qp-add-input{flex:1;min-width:0;padding:7px 10px;font-size:calc(13px * var(--font-scale, 1));border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text)}.qp-add-btn{flex-shrink:0;padding:6px 14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-tint);color:var(--accent);font-size:calc(13px * var(--font-scale, 1));cursor:pointer}.qp-add-btn:disabled{opacity:.5;cursor:default}.qp-error{margin-top:6px;font-size:calc(12px * var(--font-scale, 1));color:var(--danger)}.gif-panel{position:absolute;bottom:calc(100% + var(--panel-pop-gap));right:8px;z-index:var(--z-menu);width:342px;height:380px;max-width:calc(100vw - 24px);display:flex;flex-direction:column;padding:10px;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.gif-panel-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}.gif-search{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text-muted)}.gif-search-input{flex:1;min-width:0;border:none;background:transparent;padding:7px 0;font-size:calc(13px * var(--font-scale, 1));color:var(--text)}.gif-search-clear,.gif-close{flex-shrink:0;width:24px;height:24px;padding:0;display:grid;place-items:center;border:none;background:transparent;color:var(--text-muted);font-size:calc(16px * var(--font-scale, 1));border-radius:50%;cursor:pointer;position:relative}.gif-search-clear:after,.gif-close:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.gif-close{border:1px solid var(--border)}@media(hover:hover){.gif-close:hover,.gif-search-clear:hover{color:var(--text)}}.gif-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;align-content:start}.gif-item{position:relative;padding:0;border:none;background:var(--surface-2);border-radius:8px;overflow:hidden;cursor:pointer}.gif-item img{width:100%;height:auto;display:block}@media(hover:hover){.gif-item:hover{outline:2px solid var(--accent)}}.gif-item:disabled{opacity:.7;cursor:wait}.gif-item-busy{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--glass-bg)}.gif-status{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 12px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);text-align:center}.gif-error{color:var(--danger)}.gif-retry{padding:5px 14px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--accent);font-size:calc(12.5px * var(--font-scale, 1));cursor:pointer}@media(hover:hover){.gif-retry:hover{border-color:var(--accent)}}.gif-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--text-muted)}.gif-empty-icon{opacity:.7}.gif-empty-text{margin:0;font-size:calc(13px * var(--font-scale, 1))}.gif-empty-action{padding:7px 18px;border:1px solid var(--accent);border-radius:999px;background:var(--accent-tint);color:var(--accent);font-size:calc(13px * var(--font-scale, 1));cursor:pointer}.gif-key-current{margin:4px 0 10px;font-size:calc(13px * var(--font-scale, 1))}.gif-key-current code{padding:2px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border)}.gif-key-none{color:var(--text-muted)}.gif-key-row{display:flex;gap:8px;flex-wrap:wrap}.gif-key-input{flex:1;min-width:180px;padding:8px 12px;font-size:calc(13px * var(--font-scale, 1));border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text)}.gif-key-save{padding:8px 16px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-tint);color:var(--accent);font-size:calc(13px * var(--font-scale, 1));cursor:pointer}.gif-key-save:disabled{opacity:.5;cursor:default}.gif-key-clear{padding:8px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--danger);font-size:calc(13px * var(--font-scale, 1));cursor:pointer}.gif-key-flash{margin:8px 0 0;font-size:calc(12px * var(--font-scale, 1));color:var(--accent)}.dictation-btn{width:32px;height:32px;margin-bottom:4px;position:relative}.dictation-btn:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.dictation-btn.recording{color:var(--danger);animation:sync-dot-pulse 1.2s ease-in-out infinite}.dictation-hint{display:flex;align-items:center;gap:8px;margin:0 12px 6px;padding:6px 12px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.dictation-hint .voice-rec-dot{flex-shrink:0}.dictation-hint.error{color:var(--danger)}.sticker-panel{position:absolute;bottom:calc(100% + var(--panel-pop-gap));left:6px;z-index:var(--z-menu);width:320px;max-width:calc(100vw - 24px);max-height:320px;overflow-y:auto;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.sticker-pack+.sticker-pack{margin-top:10px}.sticker-pack-name{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);margin:2px 2px 6px}.sticker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.sticker-item{aspect-ratio:1;padding:4px;display:grid;place-items:center;border:none;background:transparent;border-radius:8px;cursor:pointer}@media(hover:hover){.sticker-item:hover{background:var(--surface-2)}}.sticker-item:disabled{cursor:default;opacity:.5}.sticker-item img{max-width:100%;max-height:100%;object-fit:contain}.sticker-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;color:var(--text-muted);font-size:calc(13px * var(--font-scale, 1));text-align:center}.sticker-empty p{margin:0;line-height:1.5}.sticker-empty-icon{color:var(--text-faint)}.input-banner{display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.input-banner .banner-icon{font-size:calc(14px * var(--font-scale, 1));color:var(--accent)}.input-banner .banner-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-banner .banner-cancel{width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--text-muted);font-size:calc(18px * var(--font-scale, 1));cursor:pointer;border-radius:50%}@media(hover:hover){.input-banner .banner-cancel:hover{background:var(--surface-3);color:var(--text)}}.composer-form{display:flex;flex-direction:column;padding:0;position:relative}.composer-input-wrap{flex:1;min-width:0;position:relative;display:flex}.composer-input-wrap .mention-anchor{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.composer-input-wrap .mention-panel{pointer-events:auto;bottom:calc(100% + 8px)}.slash-anchor{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.slash-panel{position:absolute;left:10px;right:10px;bottom:calc(100% + 8px);pointer-events:auto;z-index:30;border:1px solid var(--surface-3);border-radius:12px;box-shadow:var(--shadow-lg);max-height:240px;overflow-y:auto;padding:4px}.slash-item{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;padding:6px 8px;border-radius:7px;font-size:calc(13px * var(--font-scale, 1));color:var(--text);background:transparent;border:none;cursor:pointer}.slash-item.active{background:var(--accent-tint)}.slash-cmd{font-weight:600;white-space:nowrap;color:var(--accent)}.slash-desc{flex:1;min-width:0;font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-input{flex:1;min-width:0;border:none;background:transparent;resize:none;padding:9px 4px;min-height:42px;max-height:50vh;overflow-y:auto;color:var(--text);line-height:1.5}.composer-input:focus{box-shadow:none;border:none}.composer-input:disabled{background:var(--surface-3);color:var(--text-faint);border-radius:8px;padding:6px 10px;cursor:not-allowed}.composer-form button.send-btn{flex-shrink:0;height:40px;padding:0 20px;font-size:calc(14px * var(--font-scale, 1));font-weight:600;background:var(--accent);border:none;color:var(--on-accent);border-radius:20px}@media(hover:hover){.composer-form button.send-btn:hover:not(:disabled){background:var(--accent-hover);color:var(--on-accent)}}.composer-form button.send-btn:disabled{opacity:.5;cursor:default}.context-menu{position:fixed;z-index:4000;min-width:148px;max-height:min(560px,calc(100vh - 24px));overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:5px;display:flex;flex-direction:column;user-select:none;-webkit-user-select:none}.context-menu-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border:none;background:transparent;border-radius:6px;font-size:calc(13px * var(--font-scale, 1));color:var(--text);text-align:left;white-space:nowrap;cursor:pointer}.context-menu-item:active{background:var(--surface-2)}@media(hover:hover){.context-menu-item:hover{background:var(--surface-2)}}.context-menu-item.danger{color:var(--danger)}.context-menu-item.remind-sub{padding-left:33px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);position:relative}.context-menu-item.remind-sub:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.context-menu-reactions{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:2px 2px 6px;border-bottom:1px solid var(--border);margin-bottom:4px}.msg-context-menu{width:min(280px,calc(100vw - 16px));padding:6px}.msg-context-menu .context-menu-reactions{display:flex;justify-content:space-between;padding:3px 4px 8px}.msg-context-menu .context-menu-reactions .msg-emoji-item{width:40px;height:38px;font-size:calc(20px * var(--font-scale, 1))}.context-menu-reactions .msg-emoji-item{position:relative}.context-menu-reactions .msg-emoji-item:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.context-menu-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:2px}.context-menu-tile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;padding:9px 2px 7px;border:none;background:transparent;border-radius:8px;font-size:calc(11px * var(--font-scale, 1));line-height:1.2;color:var(--text);text-align:center;cursor:pointer;min-width:0}.context-menu-tile svg{flex:none}.context-menu-tile span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(hover:hover){.context-menu-tile:hover{background:var(--surface-2)}}.context-menu-tile.danger{color:var(--danger)}.decrypt-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;background:var(--warn-tint);border-bottom:1px solid var(--warn-border);color:var(--warn);font-size:calc(13px * var(--font-scale, 1))}.decrypt-banner>span{flex:1;min-width:200px;font-weight:500}.decrypt-banner button{border-color:var(--warn);color:var(--warn);background:transparent;padding:5px 12px;font-size:calc(12px * var(--font-scale, 1))}@media(hover:hover){.decrypt-banner button:hover{background:var(--warn);color:var(--on-accent)}}.decrypt-banner form.inline{display:flex;gap:6px;align-items:center;flex-basis:100%}.decrypt-banner form.inline input{padding:6px 10px;font-size:calc(13px * var(--font-scale, 1))}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--overlay);display:grid;place-items:center;padding:24px;grid-template-columns:minmax(0,1fr);-webkit-backdrop-filter:var(--glass-thin);backdrop-filter:var(--glass-thin)}.modal{width:100%;max-width:480px;max-height:86vh;background:var(--bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.modal.verification-modal{max-width:420px}.modal header,.modal>header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal header h2,.modal h2,.modal h3{margin:0;font-size:calc(16px * var(--font-scale, 1));font-weight:600}.modal header button,.modal h2+button,.modal h3+button{width:30px;height:30px;padding:0;line-height:1;border-radius:50%;border:none;background:transparent;color:var(--text-muted);font-size:calc(20px * var(--font-scale, 1))}@media(hover:hover){.modal header button:hover,.modal h2+button:hover{background:var(--surface-2);color:var(--text)}}.modal section,.modal>section{padding:18px 20px;overflow-y:auto}.status-modal-label{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);margin:10px 0 6px}.status-modal-label:first-child{margin-top:0}.status-emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:6px}.status-emoji-cell{aspect-ratio:1;display:grid;place-items:center;font-size:calc(20px * var(--font-scale, 1));border-radius:var(--radius);border:1px solid var(--border);background:transparent;cursor:pointer;padding:0}@media(hover:hover){.status-emoji-cell:hover{background:var(--surface-2)}}.status-emoji-cell.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--surface-2)}.status-text-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text);font-size:calc(13px * var(--font-scale, 1))}.status-modal-preview{margin-top:12px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.status-modal-preview .status-text{color:var(--text)}.status-modal-note{margin-bottom:10px;padding:8px 10px;font-size:calc(12px * var(--font-scale, 1));color:var(--warn);background:var(--warn-tint);border-radius:var(--radius)}.modal h3{font-size:calc(13px * var(--font-scale, 1));text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:18px 0 10px}.modal h3:first-child,.modal h4:first-child{margin-top:0}.modal h4{font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted);margin:14px 0 8px;font-weight:600}.modal ul{list-style:none;margin:0;padding:0}.modal label{font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted);margin-bottom:6px}.modal footer{padding:12px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.verification-modal{max-width:440px}.verification-modal h2{display:flex;align-items:center;gap:8px}.verification-modal button{border-radius:var(--radius);padding:8px 18px;font-size:calc(14px * var(--font-scale, 1));font-weight:500;transition:all var(--dur-state)}.ver-btn-primary{background:var(--accent);color:var(--on-accent);border:none;cursor:pointer}@media(hover:hover){.ver-btn-primary:hover{background:var(--accent-hover)}}.ver-btn-primary:disabled{opacity:.5;cursor:default}.ver-btn-cancel{background:transparent;color:var(--text-muted);border:1px solid var(--border);cursor:pointer}@media(hover:hover){.ver-btn-cancel:hover{background:var(--surface-2);color:var(--text)}}.ver-btn-danger{background:var(--danger);color:var(--on-accent);border:none;cursor:pointer}@media(hover:hover){.ver-btn-danger:hover{filter:brightness(.9)}}.ver-request-body,.ver-waiting-body,.ver-sas-body,.ver-done-body,.ver-cancel-body,.ver-error-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:8px 0}.ver-device-icon{font-size:calc(40px * var(--font-scale, 1));margin-bottom:6px}.ver-request-desc{font-size:calc(15px * var(--font-scale, 1));color:var(--text);margin:0}.ver-request-device{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);background:var(--chat-bg);padding:4px 12px;border-radius:var(--radius-sm);margin:2px 0 4px}.ver-request-hint{font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted);margin:4px 0 0;line-height:1.5}.ver-waiting-spinner{margin:16px 0 8px}.ver-spinner{display:flex;gap:6px;align-items:center;justify-content:center}.ver-spinner-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:ver-bounce .6s infinite alternate}.ver-spinner-dot:nth-child(2){animation-delay:.2s}.ver-spinner-dot:nth-child(3){animation-delay:.4s}@keyframes ver-bounce{to{transform:translateY(-6px);opacity:.4}}.ver-waiting-text{font-size:calc(14px * var(--font-scale, 1));color:var(--text);font-weight:500;margin:0}.ver-sas-instruction{font-size:calc(14px * var(--font-scale, 1));color:var(--text);margin:4px 0 2px;font-weight:500}.sas-emoji-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0;width:100%}.sas-emoji{background:var(--accent-tint);border-radius:var(--radius);padding:10px 4px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid transparent;transition:border-color var(--dur-state)}@media(hover:hover){.sas-emoji:hover{border-color:var(--accent)}}.sas-emoji .emoji{font-size:calc(28px * var(--font-scale, 1));line-height:1.2}.sas-emoji .name{font-size:calc(11px * var(--font-scale, 1));color:var(--accent-deep);line-height:1.2}.sas-numbers{text-align:center;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:calc(22px * var(--font-scale, 1));letter-spacing:.16em;color:var(--text);margin:4px 0 12px;background:var(--chat-bg);padding:10px 20px;border-radius:var(--radius);width:100%}.ver-sas-hint{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);margin:0;line-height:1.5}.ver-verified-anim{display:flex;flex-direction:column;align-items:center;gap:12px;margin:12px 0}.ver-shield{width:72px;height:72px;border-radius:50%;background:var(--accent-tint);display:grid;place-items:center;color:var(--accent);animation:ver-pop .4s ease-out}@keyframes ver-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.ver-check-path{stroke-dasharray:24;stroke-dashoffset:24;animation:ver-draw .5s .25s ease-out forwards}@keyframes ver-draw{to{stroke-dashoffset:0}}.ver-verified-text{font-size:calc(18px * var(--font-scale, 1));font-weight:600;color:var(--accent);margin:0}.ver-done-desc{font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted);margin:0;text-align:center}.ver-icon{font-size:calc(32px * var(--font-scale, 1));width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin-bottom:4px}.ver-icon-timeout{background:var(--warn-tint);color:var(--warn)}.ver-icon-mismatch{background:var(--danger-tint);color:var(--danger)}.ver-icon-user,.ver-icon-cancel{background:var(--surface-2);color:var(--text-muted)}.ver-icon-error{background:var(--danger-tint);color:var(--danger)}.ver-cancel-reason,.ver-error-message{font-size:calc(14px * var(--font-scale, 1));color:var(--text);margin:0;font-weight:500}.ver-cancel-hint{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);margin:4px 0 0;line-height:1.5}.ver-timeout-bar{width:100%;height:4px;background:var(--surface-2);border-radius:2px;margin-top:10px;position:relative}.ver-timeout-fill{height:100%;background:var(--accent);border-radius:2px;transition:width 1s linear}.ver-timeout-fill[style*="width: 0%"]{background:var(--danger)}.ver-timeout-text{position:absolute;right:0;top:-18px;font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);font-family:ui-monospace,SF Mono,Menlo,monospace}.settings-detail-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column}.settings-body{width:100%;max-width:640px;margin:0 auto;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px}.settings-body h3{font-size:calc(13px * var(--font-scale, 1));text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:18px 0 10px}.settings-body h3:first-child{margin-top:0}.settings-body h4{font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted);margin:16px 0 8px;font-weight:600}.settings-body button.danger{border-color:var(--danger);color:var(--danger);background:transparent}@media(hover:hover){.settings-body button.danger:hover{background:var(--danger);color:var(--on-accent)}}.settings-hint{font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);margin:0 0 10px;line-height:1.6}.linklike{border:none;background:transparent;padding:0;color:var(--accent);font-size:calc(13px * var(--font-scale, 1));cursor:pointer}@media(hover:hover){.linklike:hover{background:transparent;text-decoration:underline}}.linklike:active:not(:disabled){transform:none}.warn{background:var(--warn-tint);border:1px solid var(--warn-border);border-radius:var(--radius);padding:12px 14px;color:var(--warn);font-size:calc(13px * var(--font-scale, 1));margin-bottom:14px}.warn form.inline{display:flex;gap:6px;margin-top:8px;align-items:center}.warn form.inline input{flex:1;padding:7px 10px;font-size:calc(13px * var(--font-scale, 1))}.warn .error{margin-top:6px}.device-list{display:flex;flex-direction:column;gap:8px;margin:6px 0 16px}.device-list input[type=checkbox]{width:18px;height:18px;padding:0;flex:none}.device-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);align-items:center}.device-actions{grid-column:2;grid-row:1 / span 2;display:flex;gap:4px;align-items:flex-start}.device-list li button{padding:5px 10px;font-size:calc(12px * var(--font-scale, 1))}.device-list li>div:first-child{grid-column:1;min-width:0;overflow-wrap:anywhere;font-weight:500;font-size:calc(13px * var(--font-scale, 1))}.device-current-badge{font-size:calc(11px * var(--font-scale, 1));color:var(--accent);font-weight:400;margin-left:4px}.device-id{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint)}.trust{font-size:calc(12px * var(--font-scale, 1))}.device-list li.unverified .trust{color:var(--danger)}.device-list li.verified .trust,.device-list li.cross-signed-verified .trust{color:var(--success)}.appearance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.appearance-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 8px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);position:relative}@media(hover:hover){.appearance-card:hover{border-color:var(--accent)}}.appearance-card.selected{border-color:var(--accent);background:var(--accent-tint)}.appearance-icon{color:var(--text-muted)}.appearance-card.selected .appearance-icon{color:var(--accent)}.appearance-label{font-size:calc(13px * var(--font-scale, 1))}.appearance-check{position:absolute;top:6px;right:8px;color:var(--accent);font-size:calc(12px * var(--font-scale, 1));font-weight:700}.about-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:18px 0 8px}.about-logo{width:72px;height:72px;border-radius:var(--radius-lg);background:var(--accent);color:var(--on-accent);display:grid;place-items:center;margin-bottom:8px}.about-name{font-size:calc(17px * var(--font-scale, 1));font-weight:600}.about-version{font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint)}.about-build{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);margin-top:2px;font-variant-numeric:tabular-nums}.about-desc{font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted);line-height:1.7;max-width:420px;margin:8px 0}.about-facts{display:flex;gap:20px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);border-top:1px solid var(--border);padding-top:14px;margin-top:6px}.pwa-install-btn{display:block;margin:14px auto 0;padding:9px 28px;border:none;border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-size:calc(14px * var(--font-scale, 1));font-weight:600;cursor:pointer}.pwa-install-btn:active{opacity:.85}.profile-page{display:flex;flex-direction:column;flex:1;min-height:0}.profile-header{display:flex;align-items:center;gap:8px;padding:0 14px;height:52px;flex-shrink:0;background:var(--bg);border-bottom:1px solid var(--border)}.profile-header h2{margin:0;font-size:calc(15px * var(--font-scale, 1));font-weight:500}.profile-card{margin:auto;width:min(360px,90%);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px 28px 26px;display:flex;flex-direction:column;align-items:center;gap:4px}.profile-avatar{border-radius:var(--avatar-radius)}.profile-name{font-size:calc(17px * var(--font-scale, 1));font-weight:600;margin-top:10px}.profile-id{font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);-webkit-user-select:all;user-select:all}.profile-status{font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);margin-top:4px;text-align:center}.profile-facts{width:100%;margin-top:14px;border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:8px}.profile-fact{display:flex;justify-content:space-between;font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted)}.profile-fact b{color:var(--text);font-weight:600}.profile-actions{display:flex;gap:10px;margin-top:18px}.profile-action{display:inline-flex;align-items:center;gap:6px;padding:9px 26px;border-radius:var(--radius)}.groups-grid{flex:1;overflow-y:auto;padding:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px;align-content:start}.group-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px 12px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text)}@media(hover:hover){.group-card:hover{border-color:var(--accent)}}.group-card-name{font-size:calc(13px * var(--font-scale, 1));max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-card-count{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint)}.slash-default-select{max-width:460px;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:8px 32px 8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface);color:var(--text);background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.preset-list{display:flex;flex-direction:column;gap:8px;margin:6px 0 16px}.preset-group{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px}.preset-group.current{border-color:var(--accent)}.preset-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.preset-group-title{display:flex;align-items:baseline;gap:8px;min-width:0}.preset-group-name{font-weight:600;color:var(--text)}.preset-group-meta{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint)}.preset-group-meta a{color:var(--accent)}.preset-command-list{display:flex;flex-direction:column;gap:4px;margin:8px 0 4px;padding:0;list-style:none}.preset-command-list li{display:flex;align-items:baseline;gap:4px;min-width:0;font-size:calc(12px * var(--font-scale, 1))}.preset-command-list .keyword-word{flex:none}.room-drawer{position:absolute;top:0;right:0;bottom:0;z-index:var(--z-sheet);width:360px;max-width:100%;background:var(--bg);border-left:1px solid var(--border);display:flex;flex-direction:column}.room-drawer header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;flex-shrink:0;border-bottom:1px solid var(--border)}.room-drawer header h2{margin:0;font-size:calc(15px * var(--font-scale, 1));font-weight:500}.room-drawer header button{width:28px;height:28px;padding:0;line-height:1;border-radius:50%;border:none;background:transparent;color:var(--text-muted);font-size:calc(18px * var(--font-scale, 1));position:relative}.room-drawer header button:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}@media(hover:hover){.room-drawer header button:hover{background:var(--surface-2);color:var(--text)}}.room-drawer section{padding:14px 16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:14px}.member-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px 6px}.member-tile{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.member-tile-avatar{position:relative}.member-tile-name{font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.member-tile-status{font-size:calc(10px * var(--font-scale, 1));color:var(--text-faint);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.member-trust{position:absolute;right:-5px;bottom:-2px;border:none;background:transparent;font-size:calc(12px * var(--font-scale, 1));padding:0;line-height:1}.member-trust.verified{cursor:default}.member-trust.unverified{cursor:pointer}@media(hover:hover){.member-trust.unverified:hover{transform:scale(1.15)}}.member-grid-invite{width:40px;height:40px;padding:0;border-radius:var(--avatar-radius);border:1px dashed var(--surface-3);background:var(--surface-2);color:var(--text-muted);display:grid;place-items:center}@media(hover:hover){.member-grid-invite:hover{color:var(--accent);border-color:var(--accent)}}.member-grid-more{width:40px;height:40px;border-radius:var(--avatar-radius);background:var(--surface-2);color:var(--text-muted);font-size:calc(11px * var(--font-scale, 1))}.invite-row{display:flex;gap:6px;align-items:center}.invite-row input{flex:1;padding:8px 10px;font-size:calc(13px * var(--font-scale, 1))}.invite-row button{padding:6px 12px;font-size:calc(12px * var(--font-scale, 1));white-space:nowrap}.drawer-profile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 0}.drawer-profile-name{font-size:calc(15px * var(--font-scale, 1));font-weight:600}.drawer-rows{display:flex;flex-direction:column}.drawer-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--border);font-size:calc(13.5px * var(--font-scale, 1))}.drawer-row:last-child{border-bottom:none}.drawer-row.perms{flex-direction:column;align-items:stretch;gap:8px}.drawer-row-label{color:var(--text);display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.drawer-row-value{color:var(--text-muted);display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.drawer-row-value.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:calc(11px * var(--font-scale, 1));word-break:break-all}.row-edit-btn{border:none;background:transparent;color:var(--accent);padding:2px 6px;font-size:calc(12px * var(--font-scale, 1));display:inline-flex;align-items:center;gap:4px}@media(hover:hover){.row-edit-btn:hover{background:var(--accent-tint);border-radius:4px}}.drawer-row-edit{display:flex;gap:6px;align-items:center;flex:1;max-width:62%}.drawer-row-edit input{flex:1;padding:6px 8px;font-size:calc(13px * var(--font-scale, 1))}.drawer-row-edit button{padding:6px 10px;font-size:calc(12px * var(--font-scale, 1));white-space:nowrap}.drawer-export{display:flex;flex-direction:column;gap:8px;padding:10px 12px;margin:0 0 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel-bg);font-size:calc(12.5px * var(--font-scale, 1))}.drawer-export-format{display:flex;gap:14px}.drawer-export-format label,.drawer-export-backfill{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted);cursor:pointer}.drawer-export-btn{align-self:flex-start;padding:5px 12px;font-size:calc(12.5px * var(--font-scale, 1))}.drawer-export-btn:disabled{opacity:.55}.drawer-export-status{color:var(--text-muted)}.drawer-select{width:auto;max-width:200px;padding:6px 8px;font-size:calc(12px * var(--font-scale, 1))}.trust-ok{color:var(--success)}.switch{width:44px;height:26px;border-radius:13px;background:var(--surface-3);border:none;position:relative;padding:0;flex-shrink:0;transition:background var(--dur-press) var(--ease),transform var(--dur-state) var(--ease)}.switch .switch-knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003,0 2px 6px #0000001f;transition:left var(--dur-press) var(--ease),transform var(--dur-press) var(--ease)}.switch:active:not(:disabled) .switch-knob{transform:scale(1.08)}.switch.on{background:var(--switch-on)}.switch.on .switch-knob{left:20px}.drawer-perms{list-style:none;margin:0;padding:0}.drawer-perms li{display:flex;justify-content:space-between;gap:8px;padding:4px 0;font-size:calc(13px * var(--font-scale, 1))}.perm-user{color:var(--text);flex:1;word-break:break-all}.perm-level{color:var(--text-muted);font-family:monospace}.drawer-leave{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border:1px solid var(--border);background:var(--bg);color:var(--danger);border-radius:var(--radius);font-size:calc(13px * var(--font-scale, 1))}@media(hover:hover){.drawer-leave:hover{background:var(--danger-tint);border-color:var(--danger)}}.drawer-hint{font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);margin:6px 0;line-height:1.5}.drawer-row-hint{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);margin:0 0 8px;line-height:1.5}.toast{padding:8px 12px;font-size:calc(13px * var(--font-scale, 1));border-radius:var(--radius-sm);background:var(--accent-tint);color:var(--accent-deep)}.toast.error{background:var(--danger-tint);color:var(--danger)}.wallpaper-chips{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.wallpaper-chip{width:24px;height:24px;padding:0;border-radius:50%;border:2px solid transparent;background-color:var(--surface-2);background-size:cover;position:relative;flex-shrink:0;transition:border-color var(--dur-state) var(--ease),transform var(--dur-press) var(--ease)}.wallpaper-chip.none{background:var(--surface-2)}.wallpaper-chip .wallpaper-chip-slash{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 45%,var(--danger) 45%,var(--danger) 55%,transparent 55%);border-radius:50%;opacity:.6}.wallpaper-chip.active{border-color:var(--accent)}.wallpaper-chip:active{transform:scale(.92)}@media(hover:hover){.wallpaper-chip:hover{transform:scale(1.1)}}.banner-stack{position:absolute;top:52px;left:0;right:0;z-index:var(--z-sticky);display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 12px 0;width:100%;pointer-events:none}.banner-stack>*{pointer-events:none}.banner-stack button,.banner-stack a,.banner-stack [role=button]{pointer-events:auto}@media(min-width:768px){.app-shell:has(.banner-stack .security-banner) .notice-bar{margin-top:46px}.app-shell:has(.banner-stack .security-banner):has(.banner-stack .sync-banner) .notice-bar{margin-top:78px}.app-shell:has(.banner-stack .security-banner) .settings-detail-body{padding-top:66px}.app-shell:has(.banner-stack .security-banner):has(.banner-stack .sync-banner) .settings-detail-body{padding-top:98px}}.security-banner{position:relative;display:flex;align-items:center;gap:8px;width:fit-content;max-width:min(680px,100%);padding:7px 8px 7px 12px;background:var(--glass-bg);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-md);color:var(--text);font-size:calc(13px * var(--font-scale, 1));animation:slideDown var(--dur-enter) var(--ease-standard)}@media(prefers-reduced-motion:reduce){.security-banner{animation:none}}@media(max-width:560px){.security-banner{flex-wrap:wrap;row-gap:6px}.security-banner-text{flex:1 1 100%;min-width:0;padding-right:20px}.security-banner-cta{margin-left:24px}.security-banner-close{position:absolute;top:4px;right:4px}}.security-banner-icon{display:inline-flex;flex-shrink:0;color:var(--accent)}.security-banner[data-tone=warn] .security-banner-icon{color:var(--warn)}.security-banner[data-tone=warn]{border-color:var(--warn-border)}.security-banner-text{flex:1;min-width:0}.security-banner-cta{border:none;color:var(--accent-ink);background:var(--accent-tint);padding:5px 12px;font-size:calc(12px * var(--font-scale, 1));font-weight:500;white-space:nowrap;border-radius:999px;cursor:pointer;transition:background var(--dur-press) var(--ease-standard),transform var(--dur-press) var(--ease-standard)}@media(hover:hover){.security-banner-cta:hover{background:var(--accent-wash)}}.security-banner-cta:active{transform:scale(.97)}.security-banner-close{border:none;background:transparent;color:var(--text-faint);font-size:calc(18px * var(--font-scale, 1));line-height:1;cursor:pointer;padding:2px 6px;transition:color var(--dur-press) var(--ease-standard)}@media(hover:hover){.security-banner-close:hover{color:var(--text)}}.sec-wizard-body{display:flex;flex-direction:column;gap:12px;text-align:center;padding:4px 0}.sec-wizard-body p{margin:0;font-size:calc(14px * var(--font-scale, 1));line-height:1.55}.sec-list{margin:0;padding-left:20px;text-align:left;font-size:calc(13.5px * var(--font-scale, 1));line-height:1.8;color:var(--text-muted)}.sec-field{display:flex;flex-direction:column;gap:6px;text-align:left;font-size:calc(13px * var(--font-scale, 1));font-weight:500}.sec-field input,.sec-recovery-input{padding:9px 12px;font-size:calc(14px * var(--font-scale, 1));border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text)}.sec-recovery-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(13px * var(--font-scale, 1));resize:vertical;word-break:break-all}.sec-method-list{display:flex;flex-direction:column;gap:8px;margin-top:4px}.sec-method{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);cursor:pointer;font-size:calc(14px * var(--font-scale, 1))}@media(hover:hover){.sec-method:hover:not(:disabled){border-color:var(--accent);background:var(--surface-2)}}.sec-method:disabled{opacity:.5;cursor:not-allowed}.sec-method-icon{font-size:calc(22px * var(--font-scale, 1))}.sec-method b{display:block;font-size:calc(13.5px * var(--font-scale, 1))}.sec-method small{display:block;color:var(--text-faint);font-size:calc(12px * var(--font-scale, 1));margin-top:2px}.sec-method-warn{color:var(--warn)!important}.rk-view{display:flex;flex-direction:column;gap:12px}.rk-warn{margin:0;font-size:calc(13px * var(--font-scale, 1));line-height:1.6;color:var(--warn);background:var(--warn-tint);border:1px solid var(--warn-border);border-radius:var(--radius-sm);padding:10px 12px;text-align:left}.rk-key-grid{display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:center;padding:14px 12px;background:var(--surface-2);border:1px dashed var(--surface-3);border-radius:var(--radius);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(15px * var(--font-scale, 1));font-weight:600;letter-spacing:.5px;-webkit-user-select:all;user-select:all;cursor:text}.rk-key-group{white-space:nowrap}.rk-actions{display:flex;gap:8px;justify-content:center}.rk-saved-confirm{display:flex;align-items:center;gap:8px;justify-content:center;font-size:calc(13.5px * var(--font-scale, 1));cursor:pointer}.sec-method input[type=radio]{accent-color:var(--accent)}.sec-method.selected{border-color:var(--accent);background:var(--surface-2)}.sec-link-button{border:none;background:transparent;color:var(--accent);padding:0 2px;font-size:inherit;cursor:pointer;text-decoration:underline}.appearance-swatch{width:22px;height:22px;border-radius:50%;display:inline-block;border:2px solid rgba(255,255,255,.5)}body[data-msg-size=small]{--msg-font: 13px;--font-scale: .93}body[data-msg-size=medium]{--msg-font: 14px;--font-scale: 1}body[data-msg-size=large]{--msg-font: 16px;--font-scale: 1.143}.message{font-size:var(--msg-font, 14px)}body[data-accent=indigo]{--accent: #5856D6;--accent-deep: #4a48c4;--on-accent: #ffffff}body[data-accent=teal]{--accent: #30B0C7;--accent-deep: #2795a8;--on-accent: #10302E}body[data-accent=green]{--accent: #34C759;--accent-deep: #2ba64b;--on-accent: #0E2E14}body[data-accent=orange]{--accent: #FF9500;--accent-deep: #d97e00;--on-accent: #2E1D00}body[data-accent=pink]{--accent: #FF2D55;--accent-deep: #d92448;--on-accent: #2B0A12}body[data-chat-bg=plain] .message-list-wrap{background:var(--bg)}body[data-chat-bg=paper] .message-list-wrap{background:repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(120,120,128,.07) 27px,rgba(120,120,128,.07) 28px),var(--bg)}body[data-chat-bg=dots] .message-list-wrap{background:var(--bg);background:radial-gradient(color-mix(in srgb,var(--text) 9%,transparent) 1.2px,transparent 1.3px) 0 0 / 22px 22px,var(--bg)}body[data-chat-bg=grid] .message-list-wrap{background:var(--bg);background:repeating-linear-gradient(0deg,transparent,transparent 23px,color-mix(in srgb,var(--text) 5.5%,transparent) 23px,color-mix(in srgb,var(--text) 5.5%,transparent) 24px),repeating-linear-gradient(90deg,transparent,transparent 23px,color-mix(in srgb,var(--text) 5.5%,transparent) 23px,color-mix(in srgb,var(--text) 5.5%,transparent) 24px),var(--bg)}body[data-chat-bg=diagonal] .message-list-wrap{background:var(--bg);background:repeating-linear-gradient(45deg,transparent,transparent 9px,color-mix(in srgb,var(--text) 4.5%,transparent) 9px,color-mix(in srgb,var(--text) 4.5%,transparent) 10px),var(--bg)}body[data-chat-bg=cross] .message-list-wrap{background:var(--bg);background:repeating-linear-gradient(45deg,transparent,transparent 13px,color-mix(in srgb,var(--text) 4%,transparent) 13px,color-mix(in srgb,var(--text) 4%,transparent) 14px),repeating-linear-gradient(-45deg,transparent,transparent 13px,color-mix(in srgb,var(--text) 4%,transparent) 13px,color-mix(in srgb,var(--text) 4%,transparent) 14px),var(--bg)}body[data-chat-bg=custom] .message-list-wrap{background-image:var(--custom-bg);background-size:cover;background-position:center bottom;background-repeat:no-repeat;background-color:var(--bg)}.avatar-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;overflow:hidden;padding:0;background:transparent;border-radius:var(--avatar-radius)}.avatar-grid-slot{width:100%;height:100%;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:calc(9px * var(--font-scale, 1));font-weight:600;color:var(--on-accent);background:var(--accent);overflow:hidden}.avatar-grid-slot.no-img{background:var(--surface-3);color:var(--text)}.pin-flag{color:var(--text-faint);flex-shrink:0;align-self:center}mark.search-hit{background:var(--accent-tint, rgba(59, 139, 234, .1));color:inherit;border-radius:3px;padding:0 1px}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:var(--overlay);display:grid;place-items:center;padding:24px;-webkit-backdrop-filter:var(--glass-thin);backdrop-filter:var(--glass-thin)}.dialog{width:100%;max-width:400px;background:var(--bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.dialog header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.dialog header h3{margin:0;font-size:calc(15px * var(--font-scale, 1));font-weight:600}.dialog header .close-btn{position:relative;width:28px;height:28px;padding:0;line-height:1;border-radius:50%;border:none;background:transparent;color:var(--text-muted);font-size:calc(18px * var(--font-scale, 1))}@media(hover:hover){.dialog header .close-btn:hover{background:var(--surface-2);color:var(--text)}}.dialog section{padding:16px 18px}.dialog section p{margin:0 0 12px;font-size:calc(14px * var(--font-scale, 1));color:var(--text);white-space:pre-line}.dialog footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.dialog footer button{padding:7px 16px;font-size:calc(13px * var(--font-scale, 1));position:relative}.dialog header .close-btn:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.dialog footer button:after{content:"";position:absolute;top:calc((var(--tap-min) - 100%) / -2);bottom:calc((var(--tap-min) - 100%) / -2);left:0;right:0}.dialog footer button.destructive{background:var(--danger);border-color:var(--danger);color:var(--on-danger);font-weight:600}@media(hover:hover){.dialog footer button.destructive:hover{background:var(--danger);filter:brightness(.92)}}.dialog-error{background:var(--danger-tint);border:1px solid var(--danger);border-radius:var(--radius);padding:8px 12px;color:var(--danger);font-size:calc(13px * var(--font-scale, 1));margin-bottom:10px}.dialog section input[type=password],.dialog section input.uid-input{width:100%;padding:10px 14px;font-size:calc(14px * var(--font-scale, 1));border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);box-sizing:border-box}.dialog section input[type=password]:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--focus-ring)}.device-meta{grid-column:1;min-width:0;overflow-wrap:anywhere;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.device-meta .dot{color:var(--text-faint)}.device-warn{grid-column:1 / -1;font-size:calc(12px * var(--font-scale, 1));color:var(--danger)}.device-toast{padding:8px 12px;margin:0 0 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-bg);font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted)}.new-login-toasts{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:1200;display:flex;flex-direction:column;gap:8px;width:100%;max-width:480px}.new-login-toast{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px 18px;animation:slideDown .25s var(--ease)}.new-login-toast .nl-title{font-weight:600;font-size:calc(14px * var(--font-scale, 1));margin-bottom:4px}.new-login-toast .nl-meta{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);margin-bottom:10px;display:flex;flex-wrap:wrap;gap:0 6px}.new-login-toast .nl-actions{display:flex;gap:8px;justify-content:flex-end}.new-login-toast .nl-actions button{padding:6px 14px;font-size:calc(12px * var(--font-scale, 1))}.reminder-banner{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:1210;width:calc(100% - 24px);max-width:480px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px 18px;animation:slideDown .25s var(--ease)}.reminder-banner .rb-title{font-weight:600;font-size:calc(14px * var(--font-scale, 1));margin-bottom:10px;word-break:break-word}.reminder-banner .rb-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.reminder-banner .rb-actions button{padding:6px 14px;font-size:calc(12px * var(--font-scale, 1))}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.appearance-bg-thumb{width:22px;height:22px;border-radius:6px;object-fit:cover;display:inline-block;border:1px solid var(--border)}.mobile-menu-btn{width:36px;height:36px;padding:0;border:none;background:transparent;color:var(--text-muted);font-size:calc(22px * var(--font-scale, 1));cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0}@media(hover:hover){.mobile-menu-btn:hover{background:var(--surface-2);color:var(--text)}}.app-shell.mobile{flex-direction:column}.app-shell.mobile .list-panel{width:100%!important;flex:1;min-height:0}.app-shell.mobile .main-area{flex:1;width:100%}.app-shell.mobile .list-separator{display:none}.app-shell.mobile .main-area{animation:pane-push-in var(--dur-sheet) var(--ease-standard)}.app-shell.mobile .list-panel{animation:pane-pop-in var(--dur-sheet) var(--ease-standard)}@keyframes pane-push-in{0%{transform:translate(32px);opacity:0}to{transform:none;opacity:1}}@keyframes pane-pop-in{0%{transform:translate(-32px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.app-shell.mobile .main-area,.app-shell.mobile .list-panel{animation:none}}.rail-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;visibility:hidden;pointer-events:none;transition:visibility 0s linear var(--dur-sheet)}.rail-drawer.open{visibility:visible;pointer-events:auto;transition-delay:0s}.rail-drawer-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;opacity:0;transition:opacity var(--dur-enter) var(--ease)}.rail-drawer.open .rail-drawer-mask{opacity:1}.rail-drawer-panel{position:absolute;top:0;bottom:0;left:0;width:76px;padding-top:env(safe-area-inset-top,0px);transform:translate(-100%);transition:transform var(--dur-sheet) var(--ease);will-change:transform}.rail-drawer.open .rail-drawer-panel{transform:none}.rail-drawer-panel .nav-rail{width:100%;height:100%}.list-rail-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;margin:-8px -4px -8px -8px;border:none;background:transparent;border-radius:10px;color:var(--text-muted);cursor:pointer}@media(hover:hover){.list-rail-btn:hover{background:var(--surface-2);color:var(--text)}}@media(min-width:768px){.list-rail-btn{display:none}}.tab-bar{display:flex;height:54px;background:var(--bg);box-shadow:0 -1px 0 var(--border);flex-shrink:0;z-index:400}.tab-bar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:transparent;color:var(--text-faint);font-size:calc(10.5px * var(--font-scale, 1));padding:0}.tab-bar button.active{color:var(--accent)}.tab-icon-wrap{position:relative;display:grid;place-items:center}.tab-badge{position:absolute;top:-4px;right:-10px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--surface-3);color:var(--text-muted);font-size:calc(9px * var(--font-scale, 1));font-weight:600;display:flex;align-items:center;justify-content:center}@media(max-width:720px){.message-content{max-width:76%}.message.has-text-preview .message-content{max-width:86%}.sas-emoji-grid{grid-template-columns:repeat(4,1fr)}.room-drawer{width:100%}.member-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:767px){.banner-stack{position:static;padding:0}.security-banner{width:auto;max-width:none;border-radius:0;border-left:none;border-right:none;border-top:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;padding:8px 12px;gap:10px}.security-banner[data-tone=warn]{background:var(--warn-tint)}.composer{padding:0;box-shadow:0 -1px 0 var(--border)}.composer-pill{border:none;border-radius:14px 14px 0 0;background:var(--chat-bg);padding:4px;gap:0}.composer-form{padding:0 0 env(safe-area-inset-bottom,0px)}.composer-input{min-height:40px;padding:8px 2px}.tab-bar{height:calc(54px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}.message{padding:3px 10px}.unread-divider{margin:10px}.new-login-toast,.reminder-banner,.scheduled-toast{left:10px;right:10px;transform:none;width:auto;max-width:none}.composer-tool{width:36px;height:44px;border-radius:18px}.composer-form button.send-btn{height:44px}.emoji-panel{left:50%;right:auto;transform:translate(-50%)}.emoji-panel .epr-main{width:min(336px,calc(100vw - 20px))!important}.plus-panel,.gif-panel,.quick-phrases-panel{right:4px}}[data-kb="1"] .chat-panel{padding-bottom:var(--kb-offset, 0px)}.message-list,.chat-list,.contacts-list,.room-drawer section,.settings-detail-body,.modal section,.groups-grid{scrollbar-width:thin;scrollbar-color:transparent transparent;transition:scrollbar-color .35s ease;overscroll-behavior-y:contain}.message-list.is-scrolling,.chat-list.is-scrolling,.contacts-list.is-scrolling,.room-drawer section.is-scrolling,.settings-detail-body.is-scrolling,.modal section.is-scrolling,.groups-grid.is-scrolling{scrollbar-color:var(--surface-3) transparent}.message-list::-webkit-scrollbar,.chat-list::-webkit-scrollbar,.contacts-list::-webkit-scrollbar,.room-drawer section::-webkit-scrollbar,.settings-detail-body::-webkit-scrollbar,.modal section::-webkit-scrollbar,.groups-grid::-webkit-scrollbar{width:6px;height:6px}.message-list::-webkit-scrollbar-thumb,.chat-list::-webkit-scrollbar-thumb,.contacts-list::-webkit-scrollbar-thumb,.room-drawer section::-webkit-scrollbar-thumb,.settings-detail-body::-webkit-scrollbar-thumb,.modal section::-webkit-scrollbar-thumb,.groups-grid::-webkit-scrollbar-thumb{background:transparent;border-radius:4px;transition:background-color .35s ease}.message-list.is-scrolling::-webkit-scrollbar-thumb,.chat-list.is-scrolling::-webkit-scrollbar-thumb,.contacts-list.is-scrolling::-webkit-scrollbar-thumb,.room-drawer section.is-scrolling::-webkit-scrollbar-thumb,.settings-detail-body.is-scrolling::-webkit-scrollbar-thumb,.modal section.is-scrolling::-webkit-scrollbar-thumb,.groups-grid.is-scrolling::-webkit-scrollbar-thumb{background:var(--surface-3)}.message-list-wrap{flex:1;display:flex;flex-direction:column;position:relative;min-height:0}.load-older{text-align:center;font-size:calc(11.5px * var(--font-scale, 1));color:var(--text-faint);padding:5px 0 3px;-webkit-user-select:none;user-select:none}.load-older.done{color:var(--text-faint);opacity:.75}.load-older:not(.done){display:flex;align-items:center;justify-content:center;gap:6px}.spin{width:13px;height:13px;border:2px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;display:inline-block;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin,.message.flash-highlight,.timeline-event.flash-highlight,.sync-banner-dot{animation:none}}.media-skeleton{max-width:260px;display:flex;flex-direction:column}.media-decrypt-failed{font-size:calc(12px * var(--font-scale, 1));color:var(--danger);padding:8px 12px;border:1px dashed var(--danger);border-radius:8px;background:var(--surface-2)}.sk-waveform{display:flex;align-items:center;gap:3px;padding:6px 0}.sk-wave{width:3px;border-radius:2px}.search-skeleton{display:flex;flex-direction:column;gap:12px;padding:10px 4px 2px}.sk-search-row{display:flex;align-items:center;gap:10px}.sk-search-row .sk-line{flex:1}.unread-divider{display:flex;align-items:center;gap:10px;margin:10px 14px;color:var(--danger);font-size:calc(11.5px * var(--font-scale, 1));font-weight:600;-webkit-user-select:none;user-select:none}.unread-divider:before,.unread-divider:after{content:"";flex:1;height:1px;background:var(--danger);opacity:.45}.jump-unread-btn,.jump-latest-btn{position:absolute;right:18px;border:1px solid var(--border);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);color:var(--accent);font-size:calc(12px * var(--font-scale, 1));font-weight:600;padding:6px 12px;border-radius:999px;box-shadow:var(--shadow-md);cursor:pointer;z-index:5}.jump-unread-btn{bottom:56px}.jump-latest-btn{bottom:12px}@media(hover:hover){.jump-unread-btn:hover,.jump-latest-btn:hover{background:var(--accent-tint)}}@keyframes flash-highlight-fade{0%{background:var(--accent-tint)}to{background:transparent}}.message.flash-highlight,.timeline-event.flash-highlight{animation:flash-highlight-fade 1.8s ease-out;border-radius:8px}.sync-banner{width:fit-content;max-width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:5px 12px;font-size:calc(12.5px * var(--font-scale, 1));font-weight:600;color:var(--warn);background:var(--warn-tint);border:1px solid var(--warn-border);border-radius:999px;box-shadow:var(--shadow-md)}.sync-banner-dot{width:8px;height:8px;border-radius:50%;background:var(--warn);animation:sync-dot-pulse 1.2s ease-in-out infinite}@keyframes sync-dot-pulse{0%,to{opacity:.25}50%{opacity:1}}.forward-modal{width:min(380px,92vw);height:min(520px,78vh);display:flex;flex-direction:column}.forward-modal section{flex:1;display:flex;flex-direction:column;min-height:0}.forward-preview{font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);background:var(--surface-2);border-radius:8px;padding:8px 10px;margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forward-search{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:7px 10px;color:var(--text-faint);margin-bottom:8px}.forward-search input{flex:1;border:none;background:transparent;font-size:calc(13px * var(--font-scale, 1));color:var(--text)}.forward-room-list{flex:1;overflow-y:auto;min-height:0}.forward-room-list .chat-row{cursor:pointer}.forward-room-list .chat-row.busy{opacity:.6;pointer-events:none}.forward-busy{font-size:calc(12px * var(--font-scale, 1));color:var(--accent)}.message.select-mode{cursor:pointer}@media(hover:hover){.message.select-mode:hover:not(.message-selected){background:var(--surface-2);border-radius:8px}}.message.select-mode .bubble,.message.select-mode .media-bubble,.message.select-mode .text-preview,.message.select-mode .msg-more-btn,.message.select-mode .thread-badge,.message.select-mode .reaction-bar,.message.select-mode .msg-read-receipts{pointer-events:none}.message.message-selected{background:var(--accent-tint);border-radius:8px}.select-badge{width:20px;height:20px;flex-shrink:0;align-self:flex-start;margin-top:4px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border);border-radius:50%;background:var(--bg);font-size:calc(11px * var(--font-scale, 1));font-weight:700;color:transparent;-webkit-user-select:none;user-select:none}.select-badge.on{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.select-bar{position:absolute;left:16px;right:16px;bottom:12px;display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);z-index:6}.select-count{font-size:calc(12.5px * var(--font-scale, 1));font-weight:600;color:var(--text);white-space:nowrap}.select-limit-tip{font-size:calc(12px * var(--font-scale, 1));color:var(--danger);white-space:nowrap}.select-actions{margin-left:auto;display:flex;gap:8px}.select-btn{border:1px solid var(--border);background:var(--bg);color:var(--accent);font-size:calc(12.5px * var(--font-scale, 1));font-weight:600;padding:6px 14px;border-radius:999px;cursor:pointer}@media(hover:hover){.select-btn:hover:not(:disabled){background:var(--accent-tint)}}.select-btn:disabled{opacity:.45;cursor:not-allowed}.select-cancel{color:var(--text-muted)}.chat-record-card{width:100%;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);overflow:hidden}.chat-record-head{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:none;cursor:pointer;font-size:calc(13px * var(--font-scale, 1));font-weight:600;color:var(--text);text-align:left}@media(hover:hover){.chat-record-head:hover{background:var(--surface-3)}}.chat-record-title{flex:1}.chat-record-toggle{font-size:calc(11.5px * var(--font-scale, 1));font-weight:400;color:var(--accent)}.chat-record-body{border-top:1px solid var(--border);max-height:320px;overflow-y:auto;padding:2px 0 4px}.chat-record-item{padding:6px 12px}.chat-record-item+.chat-record-item{border-top:1px dashed var(--border)}.chat-record-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.chat-record-sender{font-weight:600}.chat-record-time{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);white-space:nowrap}.chat-record-text{margin-top:2px;font-size:calc(13.5px * var(--font-scale, 1));color:var(--text);white-space:pre-wrap;word-break:break-word}.search-note{text-align:center;font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);padding:10px 8px}.emoji-panel-full{overflow:hidden}.msg-emoji-picker{position:absolute;top:6px;left:6px;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-lg);background:var(--bg);z-index:50}.context-menu-reactions .msg-emoji-item{width:34px;height:34px;padding:0;background:transparent;border-radius:8px;font-size:calc(17px * var(--font-scale, 1));line-height:1}@media(hover:hover){.context-menu-reactions .msg-emoji-item:hover{background:var(--surface-2)}}.msg-emoji-item.msg-emoji-more{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted)}.voice-message{display:flex;flex-direction:column;gap:6px;min-width:180px}.voice-waveform{display:flex;align-items:flex-end;gap:2px;height:28px;padding:2px 2px 0}.voice-waveform span{flex:1;min-width:2px;border-radius:2px;background:var(--accent);opacity:.35}.voice-waveform span.played{opacity:1}.bubble:not(.media-bubble) .voice-waveform span{background:var(--text)}.voice-player{display:flex;align-items:center;gap:8px;min-width:0;max-width:340px}.voice-play-btn{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--bg);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:calc(12px * var(--font-scale, 1));padding:0;cursor:pointer;transition:border-color var(--dur-state),color var(--dur-state)}@media(hover:hover){.voice-play-btn:hover{border-color:var(--accent)}}.voice-player .voice-waveform{flex:1;min-width:0;overflow:hidden;cursor:pointer;touch-action:none}.voice-rate-btn{flex:none;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;font-size:calc(11.5px * var(--font-scale, 1));line-height:1;padding:4px 8px;cursor:pointer;transition:border-color var(--dur-state),color var(--dur-state)}@media(hover:hover){.voice-rate-btn:hover{color:var(--accent);border-color:var(--accent)}}.voice-countdown{flex:none;min-width:56px;white-space:nowrap;text-align:right;font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);font-variant-numeric:tabular-nums}@media(max-width:480px){.voice-player{gap:6px;width:min(calc(100vw - 150px),320px)}.voice-player .voice-waveform{gap:1px}.voice-rate-btn{padding:4px 6px}.voice-countdown{min-width:44px}}.composer-tool.recording{color:var(--danger);animation:sync-dot-pulse 1.2s ease-in-out infinite}.voice-recording-indicator{position:absolute;bottom:calc(100% + 8px);right:16px;z-index:60;display:inline-flex;align-items:center;gap:8px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--danger);font-weight:600;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:6px 12px;box-shadow:var(--shadow-md)}.voice-rec-dot{width:9px;height:9px;border-radius:50%;background:var(--danger);animation:sync-dot-pulse 1.2s ease-in-out infinite}.voice-rec-time{font-variant-numeric:tabular-nums}.voice-rec-cancel,.voice-rec-send{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:calc(12px * var(--font-scale, 1));border-radius:999px;padding:2px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;position:relative}.voice-rec-cancel:after,.voice-rec-send:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2) 0}.voice-rec-send{border-color:transparent;background:var(--accent);color:var(--on-accent);font-weight:600;padding:2px 12px}@media(hover:hover){.voice-rec-cancel:hover{color:var(--danger);border-color:var(--danger)}}@media(hover:hover){.voice-rec-send:hover{background:var(--accent-hover)}}.pinned-banner{display:flex;flex-direction:column;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);background:var(--accent-tint);border-bottom:1px solid var(--border)}.pinned-banner-head{display:flex;align-items:center;gap:8px;padding:6px 14px}.pinned-banner-caret{flex:none;color:var(--text-faint);font-size:calc(10px * var(--font-scale, 1));transition:transform var(--dur-state) ease}.pinned-banner-caret.up{transform:rotate(180deg)}.pinned-banner-list{display:flex;flex-direction:column;border-top:1px solid var(--border);max-height:38vh;overflow-y:auto;padding:2px 0}.pinned-row{display:flex;align-items:center;gap:8px;padding:6px 14px;border:none;background:transparent;color:var(--text);font-size:calc(12.5px * var(--font-scale, 1));cursor:pointer;text-align:left;min-width:0}@media(hover:hover){.pinned-row:hover{background:var(--accent-tint)}}.pinned-row-wrap{display:flex;align-items:stretch;min-width:0}.pinned-row-wrap .pinned-row{flex:1;min-width:0}.pinned-row-unpin{flex:none;align-self:center;border:none;background:transparent;color:var(--text-faint);font-size:calc(11.5px * var(--font-scale, 1));cursor:pointer;padding:3px 8px;margin-right:8px;border-radius:6px;white-space:nowrap}@media(hover:hover){.pinned-row-unpin:hover:not(:disabled){color:var(--danger);background:var(--accent-tint)}}.pinned-row-unpin:disabled{opacity:.45;cursor:default}.pinned-row-sender{flex:none;max-width:32%;color:var(--accent);font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pinned-row-text{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pinned-row-time{flex:none;color:var(--text-faint);font-size:calc(11.5px * var(--font-scale, 1))}.pinned-banner-main{flex:1;display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--text);font-size:calc(12.5px * var(--font-scale, 1));cursor:pointer;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0}@media(hover:hover){.pinned-banner-main:hover{color:var(--accent)}}.pinned-banner-main b{color:var(--accent)}.pinned-banner-main span{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pinned-banner-close{border:none;background:transparent;color:var(--text-faint);font-size:calc(15px * var(--font-scale, 1));cursor:pointer;padding:0 4px}@media(hover:hover){.pinned-banner-close:hover{color:var(--text)}}.composer-tool.schedule-btn:disabled{opacity:.35;cursor:default}@media(hover:hover){.composer-tool.schedule-btn:disabled:hover{background:transparent;color:var(--text-muted)}}.schedule-wrap{position:relative;display:flex;flex-shrink:0}.schedule-menu{position:absolute;bottom:calc(100% + var(--panel-pop-gap));right:0;z-index:120;min-width:220px;padding:8px;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:4px}.schedule-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:none;background:transparent;border-radius:8px;color:var(--text);font-size:calc(13px * var(--font-scale, 1));cursor:pointer;text-align:left}@media(hover:hover){.schedule-option:hover{background:var(--accent-tint);color:var(--accent)}}.schedule-option-time{font-size:calc(11.5px * var(--font-scale, 1));color:var(--text-faint)}.schedule-custom{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--border);margin-top:4px;padding:10px 10px 2px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted)}.schedule-custom input{border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:calc(12px * var(--font-scale, 1));padding:4px 6px}.schedule-custom input:focus{border-color:var(--accent)}.schedule-confirm{margin-top:2px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--accent);font-size:calc(12.5px * var(--font-scale, 1));font-weight:500;cursor:pointer}@media(hover:hover){.schedule-confirm:hover:not(:disabled){border-color:var(--accent);background:var(--accent-tint)}}.schedule-confirm:disabled{opacity:.45;cursor:default}.schedule-flash{margin:0 12px 6px;padding:6px 12px;font-size:calc(12px * var(--font-scale, 1));color:var(--accent);background:var(--accent-tint);border:1px solid var(--border);border-radius:var(--radius-sm)}.scheduled-bar{display:flex;align-items:center;gap:6px;padding:6px 14px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);background:var(--accent-tint);border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%}.scheduled-bar.open{color:var(--accent)}@media(hover:hover){.scheduled-bar:hover{color:var(--accent)}}.scheduled-pop{border-bottom:1px solid var(--border);background:var(--bg);max-height:min(300px,40vh);overflow-y:auto}.scheduled-pop-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--border)}.scheduled-pop-close{border:none;background:transparent;color:var(--text-faint);font-size:calc(15px * var(--font-scale, 1));cursor:pointer;padding:0 4px}@media(hover:hover){.scheduled-pop-close:hover{color:var(--text)}}.scheduled-row{display:flex;align-items:center;gap:10px;padding:8px 14px;font-size:calc(12.5px * var(--font-scale, 1));border-bottom:1px solid var(--border)}.scheduled-row:last-child{border-bottom:none}.scheduled-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.scheduled-row-room{color:var(--text);font-weight:500}.scheduled-row-preview{color:var(--text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.scheduled-row-time{color:var(--text-faint);font-size:calc(11.5px * var(--font-scale, 1));white-space:nowrap}.scheduled-row-actions{display:flex;gap:6px}.scheduled-row-actions button{padding:4px 10px;font-size:calc(12px * var(--font-scale, 1));border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);cursor:pointer}@media(hover:hover){.scheduled-row-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}}.scheduled-row-actions button:disabled{opacity:.5;cursor:default}@media(hover:hover){.scheduled-row-actions button.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}}.scheduled-toast{position:fixed;top:116px;left:50%;transform:translate(-50%);z-index:1210;max-width:min(480px,calc(100% - 24px));padding:9px 16px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-lg);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;animation:scheduled-toast-in .25s var(--ease)}@keyframes scheduled-toast-in{0%{transform:translate(-50%,-8px);opacity:0}to{transform:translate(-50%);opacity:1}}@media(prefers-reduced-motion:reduce){.scheduled-toast{animation:none}}.member-tile.clickable{cursor:pointer;border-radius:10px}.member-tile.clickable:active{background:var(--panel-hover)}@media(hover:hover){.member-tile.clickable:hover{background:var(--panel-hover)}}.member-card{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:var(--z-sticky);display:flex;flex-direction:column;overflow-y:auto}.member-card header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.member-card header h3{margin:0;font-size:calc(14px * var(--font-scale, 1));font-weight:600}.member-card header button{border:none;background:transparent;font-size:calc(17px * var(--font-scale, 1));cursor:pointer;color:var(--text-muted)}.member-card-body{padding:16px;display:flex;flex-direction:column;gap:16px}.member-card-head{display:flex;gap:12px;align-items:center}.member-card-name{font-size:calc(15px * var(--font-scale, 1));font-weight:600;color:var(--text)}.member-card-id{font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);word-break:break-all}.member-card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:calc(12px * var(--font-scale, 1))}.member-card-role{color:var(--text-muted);background:var(--surface-2);padding:1px 8px;border-radius:999px}.member-card-trust{padding:1px 8px;border-radius:999px}.member-card-trust.ok{color:var(--success);background:var(--success-tint)}.member-card-trust.warn{color:var(--warn);background:var(--warn-tint)}.member-card-actions{display:flex;flex-direction:column;gap:8px}.member-card-actions button{padding:9px 14px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:calc(13px * var(--font-scale, 1));cursor:pointer;text-align:left}@media(hover:hover){.member-card-actions button:hover{background:var(--surface-2)}}.member-card-actions button.danger{color:var(--danger);border-color:var(--danger)}@media(hover:hover){.member-card-actions button.danger:hover{background:var(--danger-tint)}}.member-card-actions button:disabled{opacity:.5;cursor:default}.directory-row{cursor:pointer}.directory-row .chat-row-name{color:var(--accent)}@media(hover:hover){.directory-row:hover{background:var(--panel-hover)}}.settings-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.settings-line-title{font-size:calc(13.5px * var(--font-scale, 1));font-weight:600;color:var(--text)}.settings-line-desc{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);margin-top:2px}.keyword-input-row{display:flex;gap:8px;margin:10px 0}.keyword-input-row input{flex:1;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:calc(13px * var(--font-scale, 1));background:var(--bg);color:var(--text)}.keyword-input-row button{border:none;background:var(--accent);color:var(--on-accent);border-radius:8px;padding:8px 18px;font-size:calc(13px * var(--font-scale, 1));cursor:pointer}.keyword-input-row button:disabled{opacity:.5;cursor:default}.dnd-config{padding:12px 0;border-bottom:1px solid var(--border)}.dnd-time-row{display:flex;align-items:center;gap:10px}.dnd-time-row label{display:flex;align-items:center;gap:6px;font-size:calc(13px * var(--font-scale, 1));color:var(--text)}.dnd-time-row input[type=time]{border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:calc(13px * var(--font-scale, 1));background:var(--bg);color:var(--text)}.dnd-sep{font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted)}.dnd-override{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:calc(13px * var(--font-scale, 1));color:var(--text);cursor:pointer}.dnd-override input{accent-color:var(--accent)}.keyword-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.keyword-list li{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);border-radius:8px;padding:7px 12px;font-size:calc(13px * var(--font-scale, 1))}.keyword-word{color:var(--text);font-weight:600}.keyword-del{border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:2px}.keyword-del:active{color:var(--danger)}@media(hover:hover){.keyword-del:hover{color:var(--danger)}}.keyword-empty{color:var(--text-faint);justify-content:center}.poll-card{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);max-width:420px}.poll-broken{color:var(--text-muted);font-size:calc(13px * var(--font-scale, 1))}.poll-head{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.poll-icon{color:var(--accent);display:inline-flex}.poll-question{font-size:calc(14px * var(--font-scale, 1));font-weight:600;color:var(--text)}.poll-kind{font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted)}.poll-answers{display:flex;flex-direction:column;gap:6px}.poll-answer{position:relative;display:block;width:100%;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);text-align:left;cursor:pointer;overflow:hidden;transition:border-color var(--dur-state)}@media(hover:hover){.poll-answer:hover:not(.ended){border-color:var(--accent)}}.poll-answer.mine{border-color:var(--accent)}.poll-answer .poll-answer-bar{position:absolute;inset:0 auto 0 0;background:var(--accent-tint);border-radius:0;transition:width var(--dur-enter) ease;z-index:0}.poll-answer-row,.poll-voters{position:relative;z-index:1}.poll-answer-row{display:flex;align-items:center;gap:8px}.poll-check{width:14px;color:var(--accent);font-weight:700;flex:none}.poll-answer-text{flex:1;font-size:calc(13px * var(--font-scale, 1));color:var(--text)}.poll-count{font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);flex:none}.poll-voters{display:block;font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poll-answer.winner .poll-count{color:var(--accent-deep);font-weight:600}.poll-answer.ended{cursor:default;pointer-events:none}.poll-foot{display:flex;align-items:center;gap:10px}.poll-total{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.poll-submit,.poll-end{padding:4px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-3);color:var(--text);font-size:calc(12px * var(--font-scale, 1));cursor:pointer}.poll-submit:disabled,.poll-end:disabled{opacity:.5;cursor:default}.poll-end{color:var(--danger)}.poll-check-icon{color:var(--accent);display:inline-flex}.poll-composer{width:440px;max-width:92vw}.poll-composer-head,.poll-composer-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.poll-composer-head h2{margin:0;font-size:calc(15px * var(--font-scale, 1))}.poll-composer-head button{border:none;background:transparent;font-size:calc(16px * var(--font-scale, 1));color:var(--text-muted);cursor:pointer}.poll-composer-body{padding:4px 16px 12px;display:flex;flex-direction:column;gap:12px}.poll-field{display:flex;flex-direction:column;gap:6px;font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted)}.poll-field input{padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:calc(13px * var(--font-scale, 1))}.poll-answer-input{display:flex;gap:6px}.poll-answer-input input{flex:1}.poll-answer-remove{width:32px;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer}.poll-add-answer{align-self:flex-start;padding:4px 10px;border-radius:var(--radius-sm);border:1px dashed var(--border);background:transparent;color:var(--accent);cursor:pointer;font-size:calc(12px * var(--font-scale, 1))}.poll-options-row{display:flex;gap:16px;flex-wrap:wrap}.poll-toggle{display:flex;align-items:center;gap:6px;font-size:calc(13px * var(--font-scale, 1));color:var(--text);cursor:pointer}.poll-composer-foot .btn-secondary{padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer}.poll-composer-foot .primary{padding:6px 14px;border-radius:var(--radius-sm);border:none;background:var(--accent);color:var(--on-accent);cursor:pointer}.poll-composer-foot .primary:disabled{opacity:.5;cursor:default}.location-card{display:flex;flex-direction:column;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);background:var(--surface-2);max-width:340px}.location-card .map-canvas{position:relative;z-index:0;isolation:isolate;width:100%;background:var(--surface-3)}.location-meta{display:flex;flex-direction:column;gap:2px;padding:8px 10px}.location-text{font-size:calc(13px * var(--font-scale, 1));font-weight:600;color:var(--text)}.location-coords{font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted)}.location-link{font-size:calc(11px * var(--font-scale, 1));color:var(--accent);text-decoration:none}@media(hover:hover){.location-link:hover{text-decoration:underline}}.location-broken{padding:14px;color:var(--text-muted);font-size:calc(13px * var(--font-scale, 1))}.map-canvas.map-error{display:flex;align-items:center;justify-content:center;min-height:64px;padding:10px 12px;font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted);background:var(--surface-2);border-radius:var(--radius-md)}.location-head,.location-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.location-head h2{margin:0;font-size:calc(15px * var(--font-scale, 1))}.location-head button{border:none;background:transparent;font-size:calc(16px * var(--font-scale, 1));color:var(--text-muted);cursor:pointer}.location-body{padding:4px 16px 8px;display:flex;flex-direction:column;gap:8px}.location-status{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.location-status.warn{color:var(--warn)}.location-uri{font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);word-break:break-all}.modal .location-modal{width:480px;max-width:92vw}.poll-composer-foot .btn-secondary,.location-foot .btn-secondary,.location-foot-actions .btn-secondary{padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer}.poll-composer-foot .primary,.location-foot-actions .primary{padding:6px 14px;border-radius:var(--radius-sm);border:none;background:var(--accent);color:var(--on-accent);cursor:pointer}.poll-composer-foot .primary:disabled,.location-foot-actions .primary:disabled{opacity:.5;cursor:default}.location-foot-actions{display:flex;gap:8px}.rail-spaces{display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 0 10px;border-bottom:1px solid var(--border);margin-bottom:10px;width:100%;max-height:40vh;overflow-y:auto}.rail-space{position:relative;width:38px;height:38px;padding:0;border-radius:var(--avatar-radius);border:2px solid transparent;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color var(--dur-state),border-radius var(--dur-state)}@media(hover:hover){.rail-space:hover{border-color:var(--border)}}@media(prefers-reduced-motion:reduce){.rail-space{transition:none}}.rail-space.active{border-color:var(--accent);border-radius:var(--avatar-radius)}.rail-space .rail-space-avatar{border-radius:var(--avatar-radius)}.rail-space-all{width:34px;height:34px;border-radius:var(--avatar-radius);background:var(--accent-tint);color:var(--accent-deep);display:flex;align-items:center;justify-content:center;font-size:calc(11px * var(--font-scale, 1));font-weight:700}.rail-space-badge{position:absolute;top:-4px;right:-6px}.profile-avatar-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}.profile-avatar-preview{width:56px;height:56px;border-radius:var(--avatar-radius);background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--font-scale, 1));font-weight:700;overflow:hidden;object-fit:cover}.profile-avatar-btn{padding:5px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--accent);cursor:pointer;font-size:calc(12px * var(--font-scale, 1))}.ok-msg{color:var(--accent-deep);font-size:calc(13px * var(--font-scale, 1));margin-bottom:8px}.profile-userid{font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted)}.profile-pass-reset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:10px}.profile-pass-reset summary{font-size:calc(13px * var(--font-scale, 1));font-weight:600;cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none}@media(hover:hover){.profile-pass-reset summary:hover{color:var(--text)}}.profile-pass-reset label{display:flex;flex-direction:column;gap:5px;font-size:calc(12px * var(--font-scale, 1));font-weight:600;color:var(--text-muted)}.profile-pass-submit{align-self:flex-start;padding:7px 14px;font-size:calc(13px * var(--font-scale, 1))}.rail-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border);width:100%}.menu-user-info{max-width:100%;overflow:hidden}.menu-display-name,.menu-user-id{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.call-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2500;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:72px 24px 48px;background:var(--bg)}.call-stage{display:flex;flex-direction:column;align-items:center;gap:14px}.call-avatar{width:128px;height:128px;border-radius:var(--avatar-radius);display:flex;align-items:center;justify-content:center;font-size:calc(44px * var(--font-scale, 1));font-weight:600;color:var(--on-accent);background:var(--accent);-webkit-user-select:none;user-select:none}.call-avatar.ringing{animation:call-pulse 1.6s ease-in-out infinite}@keyframes call-pulse{0%,to{box-shadow:0 0 #3b8bea59;box-shadow:0 0 color-mix(in srgb,var(--accent) 35%,transparent)}50%{box-shadow:0 0 0 22px transparent}}@media(prefers-reduced-motion:reduce){.call-avatar.ringing{animation:none}}.call-peer-name{margin:0;font-size:calc(22px * var(--font-scale, 1));color:var(--text)}.call-status{margin:0;font-size:calc(14px * var(--font-scale, 1));color:var(--text-muted)}.call-controls{display:flex;gap:28px}.call-ctrl{width:68px;height:68px;border-radius:50%;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:var(--surface-2);color:var(--text);font-size:calc(11px * var(--font-scale, 1))}.call-ctrl.off{background:var(--surface-2);color:var(--danger)}.call-ctrl.off svg{opacity:.55}.call-ctrl.hangup{background:var(--danger);color:var(--on-accent)}.call-ctrl.hangup span{color:var(--on-accent)}.call-overlay.video{padding:0;justify-content:flex-start}.call-video.main{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;background:#000;cursor:pointer}.call-video.main.hidden{display:none}.call-video.pip{position:absolute;right:16px;top:76px;z-index:20;width:108px;height:160px;border-radius:14px;object-fit:cover;background:#000;border:1px solid var(--border);cursor:pointer;box-shadow:var(--shadow-lg)}.call-video-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg)}.call-info-bar{position:absolute;left:0;right:0;top:0;z-index:15;display:flex;flex-direction:column;align-items:center;gap:2px;padding:22px 16px 12px;background:linear-gradient(to bottom,rgba(0,0,0,.45),transparent);background:linear-gradient(to bottom,color-mix(in srgb,#000 45%,transparent),transparent);color:#fff;text-align:center}.call-info-bar .call-peer-name{color:#fff;font-size:calc(16px * var(--font-scale, 1))}.call-info-bar .call-status{color:#ffffffd9}.call-controls.floating{position:absolute;left:0;right:0;bottom:34px;z-index:20;bottom:calc(34px + env(safe-area-inset-bottom,0px));justify-content:center}.call-ctrl.accept{background:var(--success)}.call-ctrl.accept span{color:var(--on-accent)}.call-ctrl.reject{background:var(--danger)}.call-ctrl.reject svg{transform:rotate(135deg)}.call-ctrl.reject span{color:var(--on-accent)}.call-minibar{position:fixed;top:10px;left:50%;transform:translate(-50%);z-index:2400;display:flex;align-items:center;gap:12px;padding:8px 10px 8px 16px;border-radius:999px;border:1px solid var(--border);background:var(--glass-bg);color:var(--text);cursor:pointer;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow-lg);max-width:min(92vw,420px)}.minibar-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0;border:none;background:transparent;color:var(--text);cursor:pointer;padding:0}.minibar-status{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);white-space:nowrap}.minibar-name{font-size:calc(13px * var(--font-scale, 1));font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.minibar-hangup{width:30px;height:30px;border-radius:50%;background:var(--danger);color:var(--on-accent);display:inline-flex;align-items:center;justify-content:center}.minibar-hangup svg{transform:rotate(135deg)}.bubble.call-record-bubble{flex-direction:row;align-items:baseline;gap:7px;padding:7px 12px}.call-record-icon{display:inline-flex;color:var(--accent);align-self:center}.call-record-bubble.missed .call-record-icon,.call-record-bubble.missed .call-record-text{color:var(--danger)}.call-record-text{font-weight:500}.call-record-meta{font-size:calc(11px * var(--font-scale, 1));opacity:.65;white-space:nowrap}.detached-bar{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 12px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);background:var(--surface-2);border-bottom:1px solid var(--border)}.detached-bar-btn{border:none;background:none;color:var(--accent);cursor:pointer;font-size:calc(12px * var(--font-scale, 1));padding:2px 6px;border-radius:6px}@media(hover:hover){.detached-bar-btn:hover{background:var(--accent);color:var(--on-accent)}}.remind-custom{display:flex;gap:6px;align-items:center;padding:4px 8px}.remind-custom input[type=datetime-local]{flex:1;min-width:0;font-size:calc(12px * var(--font-scale, 1));padding:3px 4px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.remind-custom .context-menu-item{padding:3px 8px}.call-page.voice{justify-content:flex-start;padding-bottom:calc(48px + env(safe-area-inset-bottom,0px))}.call-page.voice .call-stage{margin-top:max(48px,10vh)}.call-page.video{background:#000}.call-stage.over-video{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;margin-top:max(48px,10vh)}.call-stage.over-video .call-peer-name{color:#fff}.call-stage.over-video .call-status{color:#fffc}.call-minimize{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:16px;z-index:30;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--glass-bg);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);transition:opacity var(--dur-enter) ease}.call-info-pill{position:absolute;left:50%;transform:translate(-50%);z-index:15;top:calc(14px + env(safe-area-inset-top,0px));display:flex;align-items:center;gap:10px;max-width:min(86vw,480px);padding:7px 14px;border-radius:999px;background:#00000073;background:color-mix(in srgb,#000 45%,transparent);color:#fff;transition:opacity var(--dur-enter) ease}.call-pill-name{font-size:calc(14px * var(--font-scale, 1));font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.call-pill-status{font-size:calc(12px * var(--font-scale, 1));color:#ffffffd9;white-space:nowrap}.call-info-pill .call-share-tag{font-size:calc(11px * var(--font-scale, 1));background:#ffffff29;border-radius:999px;padding:2px 8px;white-space:nowrap}.call-dock{position:absolute;left:0;right:0;z-index:30;bottom:calc(30px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;align-items:center;gap:20px;transition:opacity var(--dur-enter) ease}.call-dock-row{display:flex;align-items:center;justify-content:center;gap:30px}.call-btn{border:none;cursor:pointer;min-width:68px;padding:10px 8px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:var(--surface-2);color:var(--text);font-size:calc(12px * var(--font-scale, 1));transition:background var(--dur-state) ease,color var(--dur-state) ease,opacity var(--dur-enter) ease}.call-btn:disabled{opacity:.35;cursor:default}.call-btn-label{line-height:1;white-space:nowrap}.call-btn.round{width:68px;min-width:68px;height:68px;padding:0;border-radius:50%}.call-btn.big{width:80px;min-width:80px;height:80px;padding:0;border-radius:50%}.call-btn.end{background:var(--danger);color:var(--on-accent)}.call-btn.end svg{transform:rotate(135deg)}.call-btn.end .call-btn-label{color:var(--on-accent)}.call-btn.accept{background:var(--success);color:var(--on-accent)}.call-btn.accept .call-btn-label{color:var(--on-accent)}.call-btn.reject{background:var(--danger);color:var(--on-accent)}.call-btn.reject svg{transform:rotate(135deg)}.call-btn.reject .call-btn-label{color:var(--on-accent)}.call-btn.active{background:var(--accent);color:var(--on-accent)}.call-btn.active .call-btn-label{color:var(--on-accent)}.call-btn.off{color:var(--danger)}.call-btn.off svg{opacity:.55}.call-btn-spacer{width:68px;min-width:68px;visibility:hidden}.call-page.controls-idle .call-dock,.call-page.controls-idle .call-info-pill,.call-page.controls-idle .call-minimize,.call-page.controls-idle .call-share-banner,.call-page.controls-idle .call-share-error{opacity:0;pointer-events:none}.media-gallery{margin-top:10px}.media-gallery .mg-tabs{display:flex;gap:6px;margin:6px 0 10px}.mg-tab{padding:4px 12px;font-size:calc(12px * var(--font-scale, 1));border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text-muted);cursor:pointer;transition:background var(--dur-state),color var(--dur-state)}@media(hover:hover){.mg-tab:hover{background:var(--surface-2)}}.mg-tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.mg-day-group{margin-bottom:10px}.mg-day-label{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint);margin:2px 0 6px}.mg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.mg-cell{position:relative;aspect-ratio:1 / 1;padding:0;border:none;border-radius:6px;overflow:hidden;background:var(--surface-2);cursor:pointer;display:block}.mg-thumb{width:100%;height:100%;object-fit:cover;display:block}.mg-cell-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint)}.mg-cell-badge{position:absolute;right:4px;bottom:4px;padding:1px 5px;font-size:calc(10px * var(--font-scale, 1));line-height:1.4;border-radius:4px;background:#000000bf;color:#fff}.mg-rows{display:flex;flex-direction:column;gap:4px}.mg-file-row,.mg-link-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:calc(12px * var(--font-scale, 1));text-align:left;cursor:pointer;text-decoration:none}@media(hover:hover){.mg-file-row:hover,.mg-link-row:hover{background:var(--surface-2)}}.mg-file-row:disabled{opacity:.6;cursor:default}.mg-file-icon{flex:none}.mg-file-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mg-file-name,.mg-link-title{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mg-file-meta{font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint)}.mg-file-action{flex:none;font-size:calc(11px * var(--font-scale, 1));color:var(--accent-hover)}.mg-link-main{min-width:0}.mg-link-row{flex-direction:column;align-items:stretch;gap:2px}.mg-link-url{font-size:calc(11px * var(--font-scale, 1));color:var(--accent-hover);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mg-empty{font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);text-align:center;padding:12px 0}.mg-load-more{display:block;width:100%;margin-top:8px;padding:7px 0;font-size:calc(12px * var(--font-scale, 1));border:1px dashed var(--border);border-radius:8px;background:transparent;color:var(--accent-hover);cursor:pointer}@media(hover:hover){.mg-load-more:hover:not(:disabled){background:var(--surface-2)}}.mg-load-more:disabled{color:var(--text-faint);cursor:default}.mg-end{margin-top:8px;text-align:center;font-size:calc(11px * var(--font-scale, 1));color:var(--text-faint)}.mg-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#000000d9;display:flex;align-items:center;justify-content:center}.mg-lightbox-body{max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center;gap:8px}.mg-lightbox-media{max-width:90vw;max-height:80vh;object-fit:contain;border-radius:var(--radius, 8px)}.mg-lightbox-status{color:#fff;font-size:calc(13px * var(--font-scale, 1))}.mg-lightbox-caption{color:#ffffffd9;font-size:calc(12px * var(--font-scale, 1));max-width:80vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mg-lightbox-close{position:absolute;top:16px;right:20px;width:40px;height:40px;padding:0;border:none;background:#2c2c2ead;color:#fff;font-size:calc(24px * var(--font-scale, 1));border-radius:50%;cursor:pointer;z-index:2001}@media(hover:hover){.mg-lightbox-close:hover{background:#2c2c2ed9}}.mg-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;padding:0;border:none;background:#2c2c2ead;color:#fff;font-size:calc(28px * var(--font-scale, 1));line-height:1;border-radius:50%;cursor:pointer;z-index:2001}@media(hover:hover){.mg-lightbox-nav:hover{background:#2c2c2ed9}}.mg-lightbox-nav.prev{left:16px}.mg-lightbox-nav.next{right:16px}.mg-lightbox-footer{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;z-index:2001}.mg-lightbox-counter{color:#ffffffd9;font-size:calc(12px * var(--font-scale, 1))}.mg-lightbox-download{padding:8px 18px;background:#2c2c2ead;color:#fff;border:none;border-radius:999px;font-size:calc(13px * var(--font-scale, 1));cursor:pointer;text-decoration:none}@media(hover:hover){.mg-lightbox-download:hover{background:#2c2c2ed9}}.mg-lightbox-download.disabled{opacity:.6;cursor:default}@media(max-width:640px){.mg-lightbox-nav.prev{left:6px}.mg-lightbox-nav.next{right:6px}.mg-lightbox-media{max-width:96vw}}.folder-tabs{display:flex;align-items:center;gap:6px;padding:var(--sp-2) var(--sp-5) 0;flex-shrink:0}.folder-tabs-scroll{display:flex;align-items:center;gap:4px;overflow-x:auto;overflow-y:hidden;min-width:0;scrollbar-width:none}.folder-tabs-scroll::-webkit-scrollbar{display:none}.folder-tab{border:none;background:transparent;padding:5px 10px;border-radius:999px;font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);display:inline-flex;align-items:center;gap:5px;white-space:nowrap;flex-shrink:0;transition:background var(--dur-press),color var(--dur-press)}@media(hover:hover){.folder-tab:hover{background:var(--surface-2);color:var(--text)}}.folder-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.folder-tab.active{background:var(--accent-tint);color:var(--accent);font-weight:600}.folder-tab-badge{min-width:15px;height:15px;border-radius:8px;font-size:calc(10px * var(--font-scale, 1));padding:0 4px}.folder-submenu{min-width:150px}.folder-check{width:14px;flex-shrink:0;color:var(--accent);font-size:calc(12px * var(--font-scale, 1));line-height:1;text-align:center}.folder-sub-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.folder-menu-arrow{margin-left:auto;color:var(--text-faint);font-size:calc(11px * var(--font-scale, 1))}.call-video.hidden{display:none}.call-ctrl.active{background:var(--accent);color:var(--on-accent)}.call-ctrl.active span{color:var(--on-accent)}.call-share-tag{display:inline-flex;align-items:center;margin-top:4px;padding:2px 10px;border-radius:999px;font-size:calc(11px * var(--font-scale, 1));font-weight:600;color:var(--on-accent);background:var(--accent);background:color-mix(in srgb,var(--accent) 85%,transparent)}.minibar-share-tag{flex:none;padding:2px 8px;border-radius:999px;font-size:calc(11px * var(--font-scale, 1));font-weight:600;color:var(--on-accent);background:var(--accent)}.call-share-banner{position:absolute;top:76px;left:50%;transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:12px;padding:7px 8px 7px 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);background:color-mix(in srgb,var(--surface-2) 92%,transparent);box-shadow:0 6px 24px #00000040}.call-share-banner-text{font-size:calc(13px * var(--font-scale, 1));color:var(--text);white-space:nowrap}.call-share-banner-btn{border:none;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:calc(12px * var(--font-scale, 1));background:var(--accent);color:var(--on-accent)}.call-share-error{position:absolute;left:50%;transform:translate(-50%);bottom:130px;z-index:30;display:flex;align-items:center;gap:8px;max-width:min(90vw,480px);padding:8px 8px 8px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:calc(13px * var(--font-scale, 1));box-shadow:0 6px 24px #00000040}.call-share-error-close{border:none;background:transparent;color:var(--text-muted);font-size:calc(16px * var(--font-scale, 1));line-height:1;cursor:pointer;padding:2px 6px}.call-banner{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border)}.call-banner-icon{display:inline-flex;color:var(--accent)}.call-banner-text{font-weight:500;color:var(--text)}.call-banner-duration{font-variant-numeric:tabular-nums}.call-banner-join{margin-left:auto;border:none;border-radius:6px;padding:4px 14px;font-size:calc(12.5px * var(--font-scale, 1));cursor:pointer;color:var(--on-accent);background:var(--accent)}@media(hover:hover){.call-banner-join:hover{background:var(--accent-hover)}}.call-overlay.multi{padding:0;justify-content:flex-start}.call-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;gap:8px;padding:56px 12px 132px;background:var(--bg)}.call-grid-cols-1{grid-template-columns:1fr;grid-template-rows:1fr}.call-grid-cols-2{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.call-grid-cols-3{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.call-grid-tile{position:relative;overflow:hidden;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);min-height:0;min-width:0}.call-grid-video{width:100%;height:100%;object-fit:cover;background:#000;display:block}.call-grid-video.hidden{display:none}.call-grid-avatar{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--surface-2)}.call-grid-avatar .call-avatar{width:84px;height:84px;font-size:calc(30px * var(--font-scale, 1))}.call-grid-name{position:absolute;left:8px;bottom:6px;max-width:calc(100% - 16px);padding:2px 8px;border-radius:8px;font-size:calc(11px * var(--font-scale, 1));color:#fff;background:#00000073;background:color-mix(in srgb,#000 45%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.call-grid-more{display:flex;align-items:center;justify-content:center;font-size:calc(26px * var(--font-scale, 1));font-weight:600;color:var(--text-muted)}.call-share-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:8px;padding:56px 12px 132px;background:var(--bg)}.call-share-stage.hidden{display:none}.call-share-main{flex:2 1 0;min-height:0;width:100%;object-fit:contain;background:#000;border-radius:12px;border:1px solid var(--border)}.call-share-main.hidden{display:none}.call-thumb-bar{flex:1 1 0;min-height:0;display:flex;gap:8px;align-items:stretch}.call-thumb-bar .call-grid-tile{flex:0 0 clamp(120px,22%,200px);height:100%;cursor:pointer}.share-qr-modal{width:min(360px,calc(100vw - 32px))}.share-qr-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.share-qr-room{min-width:0}.share-qr-name{font-weight:600;font-size:calc(15px * var(--font-scale, 1));color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-qr-hint{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);margin-top:2px}.share-qr-canvas{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border-radius:var(--radius);background:var(--qr-bg);border:1px solid var(--border)}.share-qr-canvas canvas{border-radius:6px}.share-qr-scan{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);margin:0;text-align:center}.share-qr-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.share-qr-actions button{flex:1 1 auto;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:calc(13px * var(--font-scale, 1));cursor:pointer}@media(hover:hover){.share-qr-actions button:hover{background:var(--surface-2)}}.share-qr-alias{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.share-qr-alias h3{margin:0 0 8px;font-size:calc(12px * var(--font-scale, 1));text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.share-qr-alias-row{display:flex;gap:8px;align-items:center}.share-qr-alias-row input{flex:1 1 auto;min-width:0;padding:7px 9px;font-size:calc(13px * var(--font-scale, 1));border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text)}.share-qr-alias-row button{padding:7px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:calc(13px * var(--font-scale, 1));cursor:pointer;white-space:nowrap}@media(hover:hover){.share-qr-alias-row button:hover{background:var(--surface-2)}}.share-qr-alias-row button:disabled{opacity:.55;cursor:default}.share-qr-alias-current{flex:1 1 auto;min-width:0;font-size:calc(12.5px * var(--font-scale, 1));color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-qr-alias-hint{font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);margin:8px 0 0}.join-confirm-modal{width:min(380px,calc(100vw - 32px))}.join-confirm-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.join-confirm-room{min-width:0}.join-confirm-name{font-weight:600;font-size:calc(15px * var(--font-scale, 1));color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.join-confirm-badge{display:inline-block;margin-top:4px;padding:2px 8px;font-size:calc(11.5px * var(--font-scale, 1));border-radius:999px;background:var(--accent-tint);color:var(--accent-deep);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.join-confirm-badge.knock,.join-confirm-badge.knock_restricted{background:var(--warn-tint);color:var(--warn)}.join-confirm-badge.unknown{background:var(--surface-2);color:var(--text-muted)}.join-confirm-reason{display:flex;flex-direction:column;gap:6px;margin-top:4px}.join-confirm-reason label{font-size:calc(13px * var(--font-scale, 1));color:var(--text-muted)}.join-confirm-reason input{padding:8px 10px;font-size:calc(13px * var(--font-scale, 1));border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text)}.join-confirm-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.join-confirm-actions button{padding:8px 14px;border-radius:var(--radius-sm);font-size:calc(13px * var(--font-scale, 1));border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}@media(hover:hover){.join-confirm-actions button:hover{background:var(--surface-2)}}.join-confirm-actions button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}@media(hover:hover){.join-confirm-actions button.primary:hover{background:var(--accent-hover)}}.join-confirm-actions button:disabled{opacity:.55;cursor:default}.join-confirm-foot{font-size:calc(12px * var(--font-scale, 1));color:var(--text-faint);margin:10px 0 0}.knock-count{display:inline-block;min-width:18px;padding:0 6px;border-radius:999px;text-align:center;background:var(--warn-tint);color:var(--warn);font-size:calc(11.5px * var(--font-scale, 1));line-height:18px}.knock-approvals{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.knock-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);background:var(--bg);border:1px solid var(--border)}.knock-row-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.knock-row-name{font-size:calc(13px * var(--font-scale, 1));font-weight:600;color:var(--text)}.knock-row-reason{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.knock-row-actions{display:flex;gap:6px;flex-shrink:0}.knock-row-actions button{padding:6px 12px;border-radius:var(--radius-sm);font-size:calc(12.5px * var(--font-scale, 1));border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer}@media(hover:hover){.knock-row-actions button:hover{background:var(--surface-2)}}.knock-row-actions button.danger{color:var(--danger);border-color:var(--danger-tint)}@media(hover:hover){.knock-row-actions button.danger:hover{background:var(--danger-tint)}}.knock-row-actions button:disabled{opacity:.55;cursor:default}.collapsed-history-row{display:block;width:calc(100% - 32px);margin:8px auto;border:1px dashed var(--border);background:var(--surface-2);color:var(--text-muted);font-size:calc(12px * var(--font-scale, 1));padding:7px 12px;border-radius:10px;cursor:pointer}@media(hover:hover){.collapsed-history-row:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-tint)}}.pending-progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:#00000040;border-radius:0 0 8px 8px;overflow:hidden}.pending-progress-bar{display:block;height:100%;background:var(--accent);transition:width var(--dur-state) ease}.pending-progress-num{position:absolute;right:4px;bottom:6px;font-size:calc(10px * var(--font-scale, 1));color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}.menu-section-label{padding:6px 14px 2px;font-size:calc(11px * var(--font-scale, 1));color:var(--text-muted);letter-spacing:.04em}.account-switch-row{display:flex;align-items:center;gap:4px;padding-right:6px}.account-switch-btn{flex:1;display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text);font-size:calc(13px * var(--font-scale, 1));padding:7px 8px;border-radius:8px;cursor:pointer;text-align:left;min-width:0}@media(hover:hover){.account-switch-btn:hover{background:var(--accent-tint)}}.account-switch-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-remove{background:none;border:none;color:var(--text-muted);font-size:calc(16px * var(--font-scale, 1));line-height:1;padding:4px 6px;border-radius:6px;cursor:pointer}@media(hover:hover){.account-remove:hover{color:var(--danger);background:var(--danger-tint)}}.qv-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1600;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center}.qv-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;background:#000}.qv-status{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:14px;color:#fff;font-size:calc(15px * var(--font-scale, 1));background:#0000008c;padding:18px 22px;border-radius:14px;max-width:min(80vw,420px);text-align:center}.qv-status.qv-error{color:#ffd7d3}.qv-controls{position:absolute;bottom:24px;bottom:max(24px,env(safe-area-inset-bottom));left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:18px;padding:0 16px}.qv-shutter{position:relative;width:68px;height:68px;border-radius:50%;border:4px solid #fff;background:#ffffffeb;cursor:pointer;padding:0;flex:none}.qv-shutter:active{transform:scale(.94)}.qv-shutter-stop{background:#e5484df2;display:flex;align-items:center;justify-content:center}.qv-ring{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;width:calc(100% + 20px);height:calc(100% + 20px);transform:rotate(-90deg)}.qv-ring-track,.qv-ring-fill{fill:none;stroke-width:4}.qv-ring-track{stroke:#ffffff47}.qv-ring-fill{stroke:var(--danger);stroke-linecap:round;transition:stroke-dashoffset var(--dur-press) linear}.qv-rec-dot{width:12px;height:12px;border-radius:50%;background:var(--danger);animation:qv-pulse 1.2s ease-in-out infinite;flex:none}@keyframes qv-pulse{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.qv-rec-dot{animation:none}}.qv-hint{color:#ffffffd9;font-size:calc(13px * var(--font-scale, 1));font-variant-numeric:tabular-nums;min-width:72px;text-align:center}.qv-btn{border:none;border-radius:999px;padding:10px 18px;font-size:calc(14px * var(--font-scale, 1));cursor:pointer}.qv-btn-ghost{background:#ffffff29;color:#fff}@media(hover:hover){.qv-btn-ghost:hover{background:#ffffff42}}.qv-btn-send{background:var(--accent);color:var(--on-accent);font-weight:600}@media(hover:hover){.qv-btn-send:hover{background:var(--accent-hover)}}.location-live{display:flex;gap:6px;align-items:center}.location-live-note{font-size:calc(12px * var(--font-scale, 1));color:var(--text-muted)}.location-live-presets{display:flex;gap:6px;flex-wrap:wrap}.location-live-preset{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 12px;position:relative;font-size:calc(13px * var(--font-scale, 1));cursor:pointer}@media(hover:hover){.location-live-preset:hover{border-color:var(--accent);color:var(--accent)}}.location-live-preset:after{content:"";position:absolute;inset:calc((var(--tap-min) - 100%) / -2)}.location-live-preset.selected{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-deep);font-weight:600}.location-live-start{border:none;background:var(--accent);color:var(--on-accent);border-radius:999px;padding:8px 16px;font-size:calc(13.5px * var(--font-scale, 1));font-weight:600;cursor:pointer}@media(hover:hover){.location-live-start:hover:not(:disabled){background:var(--accent-hover)}}.location-live-start:disabled{opacity:.5;cursor:default}.beacon-card{width:300px;max-width:78vw}.beacon-card .map-canvas{border-radius:12px 12px 0 0}.beacon-meta{display:flex;flex-direction:column;gap:4px;padding:8px 10px;font-size:calc(12.5px * var(--font-scale, 1))}.beacon-title{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--text)}.beacon-live-dot{width:9px;height:9px;border-radius:50%;background:var(--presence-online);animation:qv-pulse 1.4s ease-in-out infinite;flex:none}.beacon-live-dot.stopped{background:var(--text-faint);animation:none}.beacon-sub{color:var(--text-muted)}.beacon-stop{align-self:flex-start;border:none;background:var(--danger-tint);color:var(--danger);border-radius:999px;padding:6px 12px;font-size:calc(12.5px * var(--font-scale, 1));font-weight:600;cursor:pointer;margin-top:2px}@media(hover:hover){.beacon-stop:hover:not(:disabled){background:var(--danger-tint)}}.beacon-stop:disabled{opacity:.5;cursor:default}
