:root{--canvas: #ffffff;--panel: #f0f2f5;--panel-2: #ffffff;--wallpaper: #eef2f5;--bubble-out: #d7eefa;--bubble-in: #ffffff;--text-1: #111b21;--text-2: #667781;--brand: #2f8dbd;--accent: #1e7cad;--accent-press: #19688f;--accent-fill: #1e7cad;--accent-fill-press: #19688f;--on-accent-fill: #ffffff;--badge: #1e7cad;--tick-read: #53bdeb;--link: #027eb5;--divider: #e9edef;--pill-bg: rgba(255, 255, 255, .95);--pill-text: #54656f;--tls-pill-bg: #fff3c2;--tls-pill-text: #54656f;--danger: #ea0038;--scrim: rgba(11, 20, 26, .4);--media-scrim: linear-gradient(transparent, rgba(11, 20, 26, .55));--doodle-ink: #000000;--bubble-shadow: 0 1px .5px rgba(11, 20, 26, .13);--sheet-shadow: 0 2px 12px rgba(11, 20, 26, .26);--quote-bg: rgba(0, 0, 0, .06);--hover: rgba(11, 20, 26, .05);--active-row: #f0f2f5;--flash: rgba(47, 141, 189, .25);--font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:light}:root[data-theme=dark]{--canvas: #111b21;--panel: #202c33;--panel-2: #2a3942;--wallpaper: #0b141a;--bubble-out: #16445c;--bubble-in: #2a3942;--text-1: #e9edef;--text-2: #8696a0;--brand: #2f8dbd;--accent: #2f8dbd;--accent-press: #26779f;--accent-fill: #2f8dbd;--accent-fill-press: #26779f;--on-accent-fill: #0b141a;--badge: #2f8dbd;--tick-read: #34b7f1;--link: #53bdeb;--divider: #222d34;--pill-bg: #202c33;--pill-text: #8696a0;--tls-pill-bg: #222e35;--tls-pill-text: #ffd279;--danger: #f15c6d;--scrim: rgba(11, 20, 26, .6);--media-scrim: linear-gradient(transparent, rgba(11, 20, 26, .55));--doodle-ink: #ffffff;--bubble-shadow: 0 1px .5px rgba(11, 20, 26, .13);--sheet-shadow: 0 2px 12px rgba(0, 0, 0, .55);--quote-bg: rgba(255, 255, 255, .06);--hover: rgba(233, 237, 239, .06);--active-row: #2a3942;--flash: rgba(47, 141, 189, .3);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;overflow:hidden}#root{position:fixed;top:var(--app-top, 0px);left:0;right:0;height:100%;height:100dvh;height:var(--app-height, 100dvh);overflow:hidden}body{margin:0;font-family:var(--font-stack);font-size:14.5px;line-height:19px;color:var(--text-1);background:var(--canvas);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;color:inherit;background:none;border:none;padding:0;margin:0;cursor:pointer}input,textarea{font:inherit;color:inherit}a{color:var(--link);text-decoration:none}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,p{margin:0}img{max-width:100%;display:block}*{scrollbar-width:thin;scrollbar-color:var(--text-2) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-2) 45%,transparent);border-radius:3px}*::-webkit-scrollbar-track{background:transparent}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--text-2);flex:none;transition:background .15s ease-out}.icon-btn:active,.icon-btn:hover{background:var(--hover)}.icon-btn svg{width:24px;height:24px;fill:currentColor}.icon-btn:disabled{opacity:.4;cursor:default}.btn-primary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 28px;border-radius:24px;background:var(--accent-fill);color:var(--on-accent-fill);font-size:15px;font-weight:500;transition:background .15s ease-out,opacity .15s ease-out}.btn-primary:active{background:var(--accent-fill-press)}.btn-primary:disabled{opacity:.35;cursor:default}.btn-text{min-height:44px;padding:0 16px;border-radius:22px;color:var(--accent);font-weight:500}.btn-text:hover{background:var(--hover)}.pill{display:inline-block;max-width:86%;margin:0 auto;padding:5px 12px;border-radius:8px;background:var(--pill-bg);color:var(--pill-text);font-size:12.5px;text-align:center;box-shadow:var(--bubble-shadow)}.tls-pill{display:block;max-width:86%;margin:8px auto;padding:6px 14px;border-radius:8px;background:var(--tls-pill-bg);color:var(--tls-pill-text);font-size:12.5px;text-align:center;box-shadow:var(--bubble-shadow)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--badge);color:var(--on-accent-fill);font-size:12px;font-weight:500;line-height:1}.badge.muted{background:#8696a0;color:#111b21}.top-bar{display:flex;align-items:center;gap:4px;height:56px;padding:0 8px 0 12px;padding-top:var(--safe-top);box-sizing:content-box;background:var(--panel);flex:none;position:relative;z-index:4}.screen{position:relative;display:flex;flex-direction:column;height:100%;background:var(--canvas);overflow:hidden}.scrim{position:fixed;inset:0;background:var(--scrim);z-index:5;animation:fade-in .15s ease-out}.menu{position:fixed;z-index:5;min-width:190px;padding:6px 0;border-radius:10px;background:var(--panel-2);box-shadow:var(--sheet-shadow);animation:menu-in .15s ease-out;transform-origin:top}.menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 18px;font-size:14.5px;text-align:left;color:var(--text-1);white-space:nowrap}.menu-item:hover{background:var(--hover)}.menu-item.danger{color:var(--danger)}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--panel-2);border-radius:16px 16px 0 0;padding-bottom:var(--safe-bottom);box-shadow:var(--sheet-shadow);animation:sheet-up .2s ease-out;max-height:70vh;overflow-y:auto}.field{width:100%;min-height:44px;padding:10px 12px;border:none;border-bottom:2px solid var(--divider);background:transparent;outline:none;font-size:16px;transition:border-color .15s ease-out}.field:focus{border-bottom-color:var(--accent)}.field::placeholder{color:var(--text-2)}@keyframes flash-highlight{0%,to{background-color:transparent}25%,75%{background-color:var(--flash)}}.flash{animation:flash-highlight .4s ease-out 2;border-radius:8px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes menu-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pop-in{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite;flex:none}@keyframes shimmer{0%{opacity:.55}50%{opacity:1}to{opacity:.55}}.skeleton{background:var(--divider);border-radius:6px;animation:shimmer 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.system-pill{line-height:17px;animation:fade-in .15s ease-out}.avatar{position:relative;border-radius:50%;overflow:hidden;background:#d9dee2;flex:none}:root[data-theme=dark] .avatar{background:#3b4a54}.avatar img{width:100%;height:100%;object-fit:cover}.avatar svg{position:absolute;inset:8%;width:84%;height:84%;fill:#fff}:root[data-theme=dark] .avatar svg{fill:#8696a0}.ticks{display:inline-block;vertical-align:middle;color:var(--text-2);flex:none;transition:color .2s ease-out}.ticks-read{color:var(--tick-read)}.chat-row{display:flex;align-items:center;gap:15px;height:72px;padding:0 16px;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .12s ease-out}.chat-row:hover{background:var(--hover)}.chat-row:active{background:var(--active-row)}.chat-row-main{flex:1;min-width:0;border-bottom:1px solid var(--divider);height:100%;display:flex;flex-direction:column;justify-content:center;gap:3px}.chat-row:last-child .chat-row-main{border-bottom:none}.chat-row-top{display:flex;align-items:baseline;gap:8px}.chat-row-name{flex:1;min-width:0;font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row.unread .chat-row-name{font-weight:700}.chat-row-time{flex:none;font-size:12px;color:var(--text-2)}.chat-row-time.green{color:var(--badge);font-weight:500}.chat-row-bottom{display:flex;align-items:center;gap:6px}.chat-row-preview{flex:1;min-width:0;display:flex;align-items:center;gap:3px;font-size:14px;color:var(--text-2);overflow:hidden;white-space:nowrap}.chat-row-preview>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row.unread .chat-row-preview{color:var(--text-1)}.row-ticks{flex:none;margin-right:2px}.row-mic{width:16px;height:16px;flex:none}.chat-row-badges{flex:none;display:flex;align-items:center;gap:5px}.row-glyph{width:18px;height:18px;color:var(--text-2)}.marked-dot{width:10px;height:10px;border-radius:50%;background:var(--badge);display:inline-block}.marked-dot.muted{background:#8696a0}.chat-row-menu-scrim{background:transparent;animation:none}.mute-submenu{border-top:1px solid var(--divider);border-bottom:1px solid var(--divider);background:var(--hover)}.mute-option{padding-left:34px}.conn-banner{display:flex;align-items:center;gap:10px;padding:7px 16px;background:var(--panel-2);color:var(--text-2);font-size:13px;border-bottom:1px solid var(--divider);flex:none;animation:fade-in .15s ease-out}.conn-banner .spinner{width:14px;height:14px}.notif-banner{display:flex;align-items:center;gap:12px;padding:11px 16px;background:var(--panel-2);border-bottom:1px solid var(--divider);flex:none;animation:fade-in .15s ease-out}.notif-banner-bell{color:var(--accent);flex:none}.notif-banner-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.notif-banner-copy strong{font-size:14px;font-weight:600;color:var(--text-1)}.notif-banner-copy span{font-size:12.5px;line-height:1.35;color:var(--text-2)}.notif-banner-inline-icon{display:inline-block;vertical-align:-2px;margin:0 1px;color:var(--accent)}.notif-banner-actions{display:flex;align-items:center;gap:4px;flex:none}.notif-banner-enable{flex:none;height:34px;padding:0 16px;border-radius:17px;background:var(--accent);color:#fff;font-size:13.5px;font-weight:600;border:none;cursor:pointer;transition:background .12s ease-out,transform 60ms ease-out}.notif-banner-enable:hover{background:var(--accent-press)}.notif-banner-enable:active{transform:scale(.97)}.notif-banner-enable:disabled{opacity:.7;cursor:default}.notif-banner-x{flex:none;width:34px;height:34px;display:grid;place-items:center;border:none;background:transparent;color:var(--text-2);font-size:15px;line-height:1;border-radius:50%;cursor:pointer;transition:background .12s ease-out}.notif-banner-x:hover{background:var(--divider)}.confirm-scrim{display:flex;align-items:center;justify-content:center;padding:24px;z-index:6}.confirm-dialog{width:min(400px,100%);background:var(--panel-2);border-radius:14px;padding:22px 24px 12px;box-shadow:var(--sheet-shadow);animation:pop-in .2s ease-out}.confirm-title{font-size:16px;font-weight:500;color:var(--text-1)}.confirm-body{margin-top:12px;font-size:14.5px;color:var(--text-2);line-height:20px;word-break:break-word}.confirm-actions{display:flex;justify-content:flex-end;gap:4px;margin-top:16px}.confirm-ok{font-weight:600}.confirm-ok.danger{color:var(--danger)}.chat-list-screen{background:var(--canvas)}.list-top-bar{justify-content:space-between;padding-left:16px}.app-wordmark{font-size:22px;font-weight:700;color:var(--accent);letter-spacing:-.3px}.list-top-actions{display:flex;align-items:center}.list-menu{right:8px;top:calc(52px + var(--safe-top))}.list-menu-scrim{background:transparent;animation:none}.filter-bar{display:flex;gap:8px;padding:8px 16px;background:var(--canvas);flex:none}.filter-chip{height:32px;padding:0 14px;border-radius:16px;background:var(--panel);color:var(--text-2);font-size:13.5px;transition:background .15s ease-out,color .15s ease-out}:root[data-theme=dark] .filter-chip{background:var(--panel-2)}.filter-chip.active{background:var(--accent);color:#fff;font-weight:500}.chat-list-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:88px}.archived-band{display:flex;align-items:center;gap:15px;width:100%;height:58px;padding:0 16px;text-align:left;font-size:15.5px;font-weight:500}.archived-band:hover{background:var(--hover)}.archived-icon{width:49px;display:flex;justify-content:center;color:var(--accent)}.archived-icon svg{width:24px;height:24px}.archived-label{flex:1;border-bottom:none}.archived-count{color:var(--accent);font-size:12.5px;font-weight:600}.row-skeleton{display:flex;align-items:center;gap:15px;height:72px;padding:0 16px}.sk-avatar{width:49px;height:49px;border-radius:50%;flex:none}.sk-lines{flex:1;display:flex;flex-direction:column;gap:8px}.sk-line{height:12px}.sk-line.thin{height:10px;opacity:.7}.list-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:48px 32px;text-align:center}.list-empty-art{width:120px;height:120px;margin-bottom:10px;opacity:.9}.list-empty-title{font-size:17px;font-weight:500}.list-empty-hint{font-size:13.5px;color:var(--text-2);max-width:260px;line-height:19px}.fab{position:absolute;right:16px;bottom:calc(16px + var(--safe-bottom));width:56px;height:56px;border-radius:18px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0b141a47;z-index:3;transition:transform .15s ease-out,background .15s ease-out}.fab:active{transform:scale(.94);background:var(--accent-press)}.fab svg{width:24px;height:24px}.archived-title{font-size:16px;font-weight:500}.archived-note{padding:10px 16px;font-size:12.5px;color:var(--text-2);text-align:center;border-bottom:1px solid var(--divider)}.archived-list{flex:1;min-height:0;overflow-y:auto}.archived-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 24px;color:var(--text-2);font-size:14px}.vp{display:flex;align-items:center;gap:6px;width:248px;max-width:100%;padding:4px 0 2px;user-select:none;-webkit-user-select:none}.vp-play{flex:none;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-2);border-radius:50%}.vp-play:disabled{cursor:default}.vp-spinner{width:18px;height:18px}.vp-wave{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:2px;height:26px;cursor:pointer;touch-action:none}.vp-bar{flex:1;min-width:2px;border-radius:2px;background:color-mix(in srgb,var(--text-2) 55%,transparent);transition:background .12s linear}.vp-bar.played{background:var(--accent)}.vp-dot{position:absolute;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--accent);box-shadow:var(--bubble-shadow);pointer-events:none;transition:left 60ms linear}.vp-time{flex:none;min-width:34px;text-align:right;font-size:12px;color:var(--text-2);font-variant-numeric:tabular-nums}.vp-mic{flex:none;color:var(--text-2)}.vp-mic.unplayed{color:var(--badge)}.vp-mic.played{color:var(--tick-read)}.vp-speed{flex:none;min-width:34px;height:22px;padding:0 7px;border-radius:11px;background:color-mix(in srgb,var(--text-2) 22%,transparent);color:var(--text-1);font-size:11.5px;font-weight:500;animation:pop-in .15s ease-out}.bubble-row{display:flex;padding:0 8px;position:relative;margin-top:10px}.bubble-row.out{justify-content:flex-end}.bubble-row.in{justify-content:flex-start}.bubble{position:relative;max-width:80%;border-radius:7.5px;padding:6px 7px 8px 9px;box-shadow:var(--bubble-shadow);font-size:14.5px;line-height:19px;word-break:break-word;animation:bubble-in .15s ease-out}@media(min-width:900px){.bubble{max-width:65%}}@media(prefers-reduced-motion:reduce){.bubble{animation:none}}@keyframes bubble-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.bubble.out{background:var(--bubble-out)}.bubble.in{background:var(--bubble-in)}.bubble.out.tailed{border-top-right-radius:0}.bubble.in.tailed{border-top-left-radius:0}.bubble-tail{position:absolute;top:0;width:8px;height:13px}.bubble-tail.out{right:-8px;fill:var(--bubble-out)}.bubble-tail.in{left:-8px;transform:scaleX(-1);fill:var(--bubble-in)}.bubble-meta{display:inline-flex;align-items:center;gap:3px;font-size:11px;line-height:15px;color:var(--text-2);white-space:nowrap}.bubble-meta.block{display:flex;justify-content:flex-end;margin-top:2px}.bubble-ticks{margin-bottom:-1px}.bubble-voice{min-width:170px}.scroll-pill{position:absolute;right:12px;bottom:12px;width:42px;height:42px;border-radius:50%;background:var(--panel-2);color:var(--text-2);box-shadow:var(--sheet-shadow);display:flex;align-items:center;justify-content:center;z-index:3;animation:pop-in .2s ease-out}.scroll-pill svg{width:24px;height:24px}.scroll-pill-badge{position:absolute;top:-8px;right:-4px;animation:pop-in .2s ease-out}.message-list-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;z-index:1}.message-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.ml-inner{display:flex;flex-direction:column;min-height:100%;justify-content:flex-end;padding:8px 0 12px}.ml-top-pills{text-align:center;padding:4px 12px 0}.ml-loading{display:flex;justify-content:center;padding:12px;color:var(--text-2)}.day-group{display:flex;flex-direction:column}.date-pill-row{position:sticky;top:6px;z-index:2;text-align:center;margin:10px 0 2px;pointer-events:none}.unread-divider{text-align:center;margin:12px 0 4px}.unread-pill{display:inline-block;width:min(86%,420px);text-transform:uppercase;letter-spacing:.4px;font-size:12px}.system-row{text-align:center;margin:6px 12px}.ml-empty{display:flex;justify-content:center;padding:40px 24px}.ml-empty-card{text-align:center;color:var(--pill-text);background:var(--pill-bg);border-radius:14px;padding:22px 28px;box-shadow:var(--bubble-shadow);display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13.5px}.ml-empty-hint{font-size:12.5px;opacity:.8}.vr-record{position:relative;touch-action:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:128px;height:128px;border-radius:50%;background:var(--accent-fill);color:var(--on-accent-fill);box-shadow:0 6px 18px #0000002e;transition:background .15s ease-out,transform .12s ease-out;-webkit-tap-highlight-color:transparent}.vr-record:active{transform:scale(.96)}.vr-record.recording{background:var(--danger)}.vr-record-label{font-size:12.5px;font-weight:600;letter-spacing:.2px}.vr-record-ring{position:absolute;inset:-6px;border-radius:50%;border:3px solid var(--danger);opacity:0}.vr-record.recording .vr-record-ring{animation:vr-halo 1.6s ease-out infinite}@keyframes vr-halo{0%{transform:scale(1);opacity:.65}to{transform:scale(1.22);opacity:0}}@media(prefers-reduced-motion:reduce){.vr-record.recording .vr-record-ring{animation:none;opacity:.5}}.vr-strip{position:fixed;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 74px 8px 16px;padding-bottom:calc(8px + var(--safe-bottom));background:var(--panel);box-shadow:0 -1px 0 var(--divider);animation:vr-strip-in .15s ease-out}@keyframes vr-strip-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@media(min-width:900px){.vr-strip{left:auto;width:calc(min(1600px,100vw) - clamp(340px,35vw,480px));right:max(0px,calc((100vw - 1600px)/2))}}.vr-dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--danger);animation:vr-pulse 1s ease-in-out infinite}@keyframes vr-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.vr-timer{flex:none;min-width:44px;font-size:16px;color:var(--text-1);font-variant-numeric:tabular-nums}.vr-slide-hint{flex:1;text-align:center;color:var(--text-2);font-size:14px;white-space:nowrap;overflow:hidden;animation:vr-hint-nudge 1.6s ease-in-out infinite}@keyframes vr-hint-nudge{0%,to{letter-spacing:0}50%{letter-spacing:.4px}}.vr-desktop-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.vr-cancel-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:20px;color:var(--danger);font-size:14px;font-weight:500}.vr-cancel-btn:hover{background:var(--hover)}.vr-send-btn{width:42px;height:42px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--bubble-shadow)}.vr-send-btn:active{background:var(--accent-press)}.vr-denied{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 24px calc(24px + var(--safe-bottom));text-align:center}.vr-denied svg{color:var(--accent)}.vr-denied h2{font-size:17px;font-weight:500}.vr-denied p{color:var(--text-2);font-size:14px;max-width:320px}.vr-denied .btn-primary{margin-top:8px;min-width:120px}.composer-area{position:relative;z-index:3;flex:none;padding-bottom:var(--safe-bottom)}.composer-strip{display:flex;align-items:center;justify-content:center;padding:10px 16px 14px}.composer-note{margin:0;padding:12px 16px;color:var(--text-2);font-size:13.5px;text-align:center}.call-overlay{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(48px + var(--safe-top)) 24px calc(56px + var(--safe-bottom));background:var(--canvas);color:var(--text-1);animation:fade-in .15s ease-out}.call-overlay.incoming{background:var(--panel)}.call-body{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-width:0;width:100%}.call-avatar{position:relative;border-radius:50%;padding:6px;transition:box-shadow .15s ease-out}.call-avatar.speaking{box-shadow:0 0 0 4px var(--accent)}.call-avatar.ringing:before,.call-avatar.ringing:after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0;animation:call-ring 2.4s ease-out infinite}.call-avatar.ringing:after{animation-delay:.6s}@keyframes call-ring{0%{transform:scale(1);opacity:.7}to{transform:scale(1.7);opacity:0}}.call-title{margin:12px 0 0;font-size:24px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call-status{margin:0;font-size:16px;color:var(--text-2);font-variant-numeric:tabular-nums}.call-chip{margin-top:8px;padding:8px 14px;border-radius:999px;background:var(--panel-2);color:var(--text-1);font-size:13.5px;border:1px solid var(--divider)}.call-chip.static{color:var(--text-2)}.call-actions{display:flex;align-items:flex-start;justify-content:center;gap:48px}.call-action{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:13px;color:var(--text-2)}.call-btn{width:68px;height:68px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--panel-2);color:var(--text-1);border:1px solid var(--divider);transition:transform .12s ease-out,background .12s ease-out}.call-btn svg{width:30px;height:30px;fill:currentColor}.call-btn:active{transform:scale(.94)}.call-btn:disabled{opacity:.5}.call-btn.on{background:var(--text-1);color:var(--canvas)}.call-btn.hangup{background:var(--danger);color:#fff;border-color:transparent}.call-btn.accept{background:var(--accent-fill);color:var(--on-accent-fill);border-color:transparent;animation:call-bounce 1.2s ease-in-out infinite}@keyframes call-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.call-overlay.ended .call-body{opacity:.7}.call-banner{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 16px;background:var(--accent-fill);color:var(--on-accent-fill);font-size:13.5px;flex:none;animation:fade-in .15s ease-out}.call-banner span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call-banner button{padding:6px 14px;border-radius:999px;background:var(--on-accent-fill);color:var(--accent-fill);font-weight:600;font-size:13px}@media(prefers-reduced-motion:reduce){.call-overlay,.call-banner{animation:none}.call-avatar.ringing:before,.call-avatar.ringing:after,.call-btn.accept{animation:none}}.chat-screen{background:var(--wallpaper)}.chat-top-bar{gap:2px}.chat-back{margin-right:-4px}.chat-title-tap{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:4px;border-radius:8px;text-align:left}.chat-title-tap.static{cursor:default}.chat-title-stack{min-width:0;display:flex;flex-direction:column}.chat-title{font-size:16px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-subtitle{font-size:12.5px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-menu{right:8px;top:calc(52px + var(--safe-top))}.chat-menu-scrim{background:transparent;animation:none}.chat-wallpaper{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--wallpaper)}.chat-wallpaper:before{content:"";position:absolute;inset:0;z-index:0;background-color:var(--doodle-ink);opacity:.06;-webkit-mask-image:url(/wallpaper-doodle.svg);mask-image:url(/wallpaper-doodle.svg);-webkit-mask-size:366px;mask-size:366px;-webkit-mask-repeat:repeat;mask-repeat:repeat;pointer-events:none}.chat-missing{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-2);background:var(--canvas)}.toast-host{position:fixed;left:0;right:0;bottom:calc(24px + var(--safe-bottom));display:flex;justify-content:center;z-index:7;pointer-events:none}.toast{max-width:min(86vw,420px);padding:11px 20px;border-radius:24px;background:#111b21;color:#e9edef;font-size:14px;box-shadow:var(--sheet-shadow);animation:toast-in .2s ease-out}:root[data-theme=dark] .toast{background:#e9edef;color:#111b21}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:var(--canvas)}.splash-logo{width:72px;height:72px}.splash-spinner{color:var(--text-2)}.splash-note{position:fixed;bottom:calc(24px + var(--safe-bottom));font-size:12.5px;color:var(--text-2)}.app-shell-wide{display:flex;height:100%;max-width:1600px;margin:0 auto;background:var(--canvas);box-shadow:0 0 24px #0b141a1f}.left-pane{width:clamp(340px,35vw,480px);flex:none;border-right:1px solid var(--divider);min-width:0;display:flex;flex-direction:column}.left-pane>.screen{height:100%}.right-pane{flex:1;min-width:0;display:flex;flex-direction:column}.right-pane>.screen{height:100%}@media(min-width:900px){.chat-back{display:none}body{background:var(--panel)}}.empty-pane{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--panel);border-bottom:5px solid var(--accent);position:relative}.empty-pane-inner{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;max-width:420px;padding:0 32px}.empty-pane-inner h2{font-size:30px;font-weight:300;color:var(--text-1);margin-top:8px}.empty-pane-inner p{font-size:14px;color:var(--text-2);line-height:20px}.empty-pane-footer{position:absolute;bottom:28px;font-size:12.5px;color:var(--text-2);padding:0 24px;text-align:center}
