:root{--pine-50: #eef7f2;--pine-100: #d4ecdf;--pine-200: #a8d9bd;--pine-300: #74bf98;--pine-400: #47a276;--pine-500: #2a8459;--pine-600: #1e6a47;--pine-700: #1a5439;--pine-800: #17422e;--pine-900: #0f2c20;--amber: #b7791f;--amber-soft: #fdf3e0;--red: #c0392b;--red-soft: #fdeceb;--blue: #2b6cb0;--violet: #6b46c1;--bg: #fbfbfa;--surface: #ffffff;--surface-2: #f4f5f3;--surface-3: #eceeeb;--surface-hover: #f0f2ef;--border: #e3e7e3;--border-strong: #d2d8d3;--text: #14181a;--text-dim: #5f6a67;--text-mute: #8d9793;--text-on-accent: #ffffff;--accent: var(--pine-600);--accent-hover: var(--pine-700);--accent-soft: var(--pine-50);--accent-border: var(--pine-200);--bubble-in: #ffffff;--bubble-in-text: var(--text);--bubble-out: var(--pine-600);--bubble-out-text: #ffffff;--danger: var(--red);--danger-soft: var(--red-soft);--warning: var(--amber);--online: #35b37e;--shadow-1: 0 1px 2px rgba(16, 24, 20, .06), 0 1px 3px rgba(16, 24, 20, .04);--shadow-2: 0 4px 12px rgba(16, 24, 20, .08), 0 1px 3px rgba(16, 24, 20, .06);--shadow-3: 0 16px 40px rgba(16, 24, 20, .16), 0 2px 8px rgba(16, 24, 20, .08);--font: -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", sans-serif;--font-mono: "SF Mono", "Cascadia Mono", "JetBrains Mono", Consolas, "Liberation Mono", monospace;--text-xs: 11.5px;--text-sm: 13px;--text-md: 14.5px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 26px;--text-3xl: 34px;--leading-tight: 1.25;--leading: 1.5;--r-xs: 6px;--r-sm: 9px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-full: 999px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--rail: 68px;--list-w: 336px;--panel-w: 340px;--header-h: 60px;--fast: .12s cubic-bezier(.2, .7, .3, 1);--base: .2s cubic-bezier(.2, .7, .3, 1);--slow: .32s cubic-bezier(.2, .7, .3, 1);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0c0f0e;--surface: #141817;--surface-2: #1a201e;--surface-3: #222a27;--surface-hover: #1e2523;--border: #252d2a;--border-strong: #333d39;--text: #e8edea;--text-dim: #97a29e;--text-mute: #6d7876;--text-on-accent: #08120d;--accent: #4fb98a;--accent-hover: #62c99a;--accent-soft: #142520;--accent-border: #24463a;--bubble-in: #1a201e;--bubble-in-text: var(--text);--bubble-out: #235c44;--bubble-out-text: #e6f5ed;--danger: #e5766a;--danger-soft: #2a1917;--warning: #d9a441;--amber-soft: #241d10;--online: #45c98d;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 4px 14px rgba(0, 0, 0, .45);--shadow-3: 0 18px 44px rgba(0, 0, 0, .6);color-scheme:dark}}:root[data-theme=dark]{--bg: #0c0f0e;--surface: #141817;--surface-2: #1a201e;--surface-3: #222a27;--surface-hover: #1e2523;--border: #252d2a;--border-strong: #333d39;--text: #e8edea;--text-dim: #97a29e;--text-mute: #6d7876;--text-on-accent: #08120d;--accent: #4fb98a;--accent-hover: #62c99a;--accent-soft: #142520;--accent-border: #24463a;--bubble-in: #1a201e;--bubble-in-text: var(--text);--bubble-out: #235c44;--bubble-out-text: #e6f5ed;--danger: #e5766a;--danger-soft: #2a1917;--warning: #d9a441;--amber-soft: #241d10;--online: #45c98d;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 4px 14px rgba(0, 0, 0, .45);--shadow-3: 0 18px 44px rgba(0, 0, 0, .6);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}:root{--inset-top: env(safe-area-inset-top, 0px);--inset-right: env(safe-area-inset-right, 0px);--inset-bottom: env(safe-area-inset-bottom, 0px);--inset-left: env(safe-area-inset-left, 0px)}#app{position:fixed;inset:0;margin:0;padding:var(--inset-top) var(--inset-right) var(--inset-bottom) var(--inset-left);overflow:hidden}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font);font-size:var(--text-md);line-height:var(--leading);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}body{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea,[contenteditable],.selectable{-webkit-user-select:text;user-select:text}h1,h2,h3,h4,p,figure{margin:0}ul,ol{margin:0;padding:0;list-style:none}button,input,textarea,select{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}svg{display:block}img,video{max-width:100%}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full);border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background-color:var(--text-mute);background-clip:content-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.grow{flex:1;min-width:0;min-height:0}.gap1{gap:var(--s1)}.gap2{gap:var(--s2)}.gap3{gap:var(--s3)}.gap4{gap:var(--s4)}.center{align-items:center;justify-content:center}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clamp2{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dim{color:var(--text-dim)}.mute{color:var(--text-mute)}.small{font-size:var(--text-sm)}.xs{font-size:var(--text-xs)}.strong{font-weight:600}.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.hidden{display:none!important}.narrow-only{display:none}@media(max-width:900px){.narrow-only{display:inline-flex}.wide-only{display:none!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:38px;padding:0 var(--s4);border-radius:var(--r-md);font-size:var(--text-md);font-weight:550;letter-spacing:-.005em;white-space:nowrap;transition:background var(--fast),color var(--fast),border-color var(--fast),transform var(--fast)}.btn:active{transform:scale(.98)}.btn[disabled]{opacity:.45;pointer-events:none}.btn-primary{background:var(--accent);color:var(--text-on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-soft{background:var(--surface-2);color:var(--text)}.btn-soft:hover{background:var(--surface-3)}.btn-ghost{background:transparent;color:var(--text-dim)}.btn-ghost:hover{background:var(--surface-hover);color:var(--text)}.btn-outline{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1px var(--border-strong)}.btn-outline:hover{background:var(--surface-hover)}.btn-danger{background:var(--danger-soft);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-block{width:100%}.btn-lg{height:46px;padding:0 var(--s5);font-size:var(--text-lg);border-radius:var(--r-lg)}.btn-sm{height:30px;padding:0 var(--s3);font-size:var(--text-sm);border-radius:var(--r-sm)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-md);color:var(--text-dim);transition:background var(--fast),color var(--fast);flex:none}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.icon-btn.active{color:var(--accent);background:var(--accent-soft)}.icon-btn[disabled]{opacity:.4;pointer-events:none}.icon-btn-lg{width:44px;height:44px;border-radius:var(--r-lg)}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:var(--text-sm);font-weight:550;color:var(--text-dim)}.field>.hint{font-size:var(--text-sm);color:var(--text-mute)}.field>.error{font-size:var(--text-sm);color:var(--danger)}.input,.textarea,.select{width:100%;padding:10px var(--s3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);transition:border-color var(--fast),box-shadow var(--fast)}.input::placeholder,.textarea::placeholder{color:var(--text-mute)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;min-height:84px;line-height:var(--leading)}.input-prefix{display:flex;align-items:center;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--fast),box-shadow var(--fast)}.input-prefix:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input-prefix>span{padding-left:var(--s3);color:var(--text-mute);font-weight:550}.input-prefix>input{flex:1;min-width:0;padding:10px var(--s3) 10px 2px;border:0;background:none;color:var(--text)}.search{display:flex;align-items:center;gap:var(--s2);height:38px;padding:0 var(--s3);background:var(--surface-2);border-radius:var(--r-md);color:var(--text-mute);transition:background var(--fast),box-shadow var(--fast)}.search:focus-within{background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent)}.search input{flex:1;min-width:0;border:0;background:none;color:var(--text)}.switch{position:relative;width:42px;height:25px;border-radius:var(--r-full);background:var(--border-strong);transition:background var(--base);flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:transform var(--base)}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(17px)}.avatar{position:relative;flex:none;width:42px;height:42px;border-radius:var(--r-full);display:grid;place-items:center;font-weight:600;font-size:var(--text-md);color:#fff;overflow:hidden;background:var(--pine-500);user-select:none}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:30px;height:30px;font-size:var(--text-xs)}.avatar-lg{width:64px;height:64px;font-size:var(--text-xl)}.avatar-xl{width:96px;height:96px;font-size:var(--text-3xl)}.avatar.square{border-radius:var(--r-lg)}.avatar .presence{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;background:var(--online);box-shadow:0 0 0 2.5px var(--surface)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-full);background:var(--accent);color:var(--text-on-accent);font-size:var(--text-xs);font-weight:650;font-variant-numeric:tabular-nums}.badge.muted{background:var(--text-mute)}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-dim);font-size:var(--text-sm);font-weight:550}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip.warn{background:var(--amber-soft);color:var(--warning)}.tag{font-size:var(--text-xs);font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-mute)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.divider{height:1px;background:var(--border)}.section-title{font-size:var(--text-xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-mute);padding:var(--s4) var(--s4) var(--s2)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s3);padding:var(--s7) var(--s5);text-align:center;color:var(--text-mute)}.empty .glyph{opacity:.5}.empty h3{font-size:var(--text-lg);font-weight:600;color:var(--text-dim)}.empty p{font-size:var(--text-md);max-width:34ch;line-height:var(--leading)}.popover{position:fixed;z-index:60;min-width:200px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-3);animation:pop var(--fast) both}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.menu-item{display:flex;align-items:center;gap:var(--s3);width:100%;padding:8px 10px;border-radius:var(--r-sm);font-size:var(--text-md);color:var(--text);text-align:left;transition:background var(--fast)}.menu-item:hover{background:var(--surface-hover)}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-soft)}.menu-item .shortcut{margin-left:auto;color:var(--text-mute);font-size:var(--text-xs)}.menu-sep{height:1px;margin:5px 6px;background:var(--border)}.scrim{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--s4);background:#080e0b73;backdrop-filter:blur(3px);animation:fade var(--base) both}@keyframes fade{0%{opacity:0}}.modal{width:min(460px,100%);max-height:min(86vh,720px);display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-3);overflow:hidden;animation:rise var(--base) both}.modal.wide{width:min(640px,100%)}@keyframes rise{0%{opacity:0;transform:translateY(10px) scale(.985)}}.modal-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--border)}.modal-head h2{font-size:var(--text-lg);font-weight:620;letter-spacing:-.01em}.modal-body{padding:var(--s5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--s4)}.modal-foot{display:flex;justify-content:flex-end;gap:var(--s2);padding:var(--s4) var(--s5);border-top:1px solid var(--border);background:var(--surface-2)}.toasts{position:fixed;left:50%;bottom:var(--s5);transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:var(--s2);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--s3);max-width:92vw;padding:10px var(--s4);border-radius:var(--r-full);background:var(--text);color:var(--bg);font-size:var(--text-md);font-weight:500;box-shadow:var(--shadow-3);animation:toast-in var(--base) both;pointer-events:auto}.toast.error{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite;flex:none}.spinner.lg{width:30px;height:30px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--text-mute);flex:none}.status-dot.online{background:var(--online)}.status-dot.connecting,.status-dot.reconnecting{background:var(--warning);animation:pulse 1.4s ease-in-out infinite}.status-dot.offline{background:var(--danger)}@keyframes pulse{50%{opacity:.3}}.shell{display:flex;height:100%;background:var(--bg);overflow:hidden}.rail{width:var(--rail);flex:none;display:flex;flex-direction:column;align-items:center;gap:var(--s2);padding:var(--s3) 0;background:var(--surface-2);border-right:1px solid var(--border)}.rail .brand{display:grid;place-items:center;width:40px;height:40px;margin-bottom:var(--s2);border-radius:var(--r-md);background:var(--accent);color:var(--text-on-accent)}.rail-btn{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);color:var(--text-mute);transition:background var(--fast),color var(--fast)}.rail-btn:hover{background:var(--surface-hover);color:var(--text)}.rail-btn.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-1)}.rail-btn .badge{position:absolute;top:3px;right:3px}.pane{width:var(--list-w);flex:none;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);min-height:0}.pane-head{display:flex;align-items:center;gap:var(--s2);height:var(--header-h);padding:0 var(--s3) 0 var(--s4);flex:none}.pane-head h1{font-size:var(--text-xl);font-weight:640;letter-spacing:-.02em}.pane-search{padding:0 var(--s3) var(--s3);flex:none}.pane-body{overflow-y:auto;overflow-x:hidden;flex:1;padding-bottom:var(--s4)}.filters{display:flex;gap:6px;padding:0 var(--s3) var(--s3);overflow-x:auto;overflow-y:hidden;flex:none;overscroll-behavior-x:contain;scrollbar-width:none}.filters::-webkit-scrollbar{height:0}@media(hover:hover)and (pointer:fine){.filters{padding-bottom:calc(var(--s3) - 4px)}.filters:hover{scrollbar-width:thin}.filters:hover::-webkit-scrollbar{height:4px}.filters::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full)}.filters:hover::-webkit-scrollbar-thumb:hover{background:var(--text-mute)}}.filter{height:28px;padding:0 12px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-dim);font-size:var(--text-sm);font-weight:550;white-space:nowrap;transition:background var(--fast),color var(--fast)}.filter:hover{background:var(--surface-3)}.filter.active{background:var(--accent);color:var(--text-on-accent)}.chat-item{display:flex;align-items:center;gap:var(--s3);width:100%;padding:9px var(--s3);margin:0 6px;width:calc(100% - 12px);border-radius:var(--r-md);text-align:left;transition:background var(--fast)}.chat-item:hover{background:var(--surface-hover)}.chat-item.active{background:var(--accent-soft)}.chat-item.active .chat-name{color:var(--accent)}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-top{display:flex;align-items:baseline;gap:var(--s2)}.chat-name{font-size:var(--text-md);font-weight:570;letter-spacing:-.01em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-time{font-size:var(--text-xs);color:var(--text-mute);flex:none}.chat-bottom{display:flex;align-items:center;gap:var(--s2)}.chat-preview{flex:1;min-width:0;font-size:var(--text-sm);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-preview .who{color:var(--text-mute)}.conv{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.conv-head{display:flex;align-items:center;gap:var(--s3);height:var(--header-h);padding:0 var(--s3) 0 var(--s4);flex:none;background:var(--surface);border-bottom:1px solid var(--border)}.conv-title{flex:1;min-width:0}.conv-title h2{font-size:var(--text-lg);font-weight:600;letter-spacing:-.015em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-sub{font-size:var(--text-sm);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conv-sub.typing{color:var(--accent)}.timeline{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--s4) 0 var(--s2);display:flex;flex-direction:column;gap:2px;scroll-behavior:smooth}.day-sep{display:flex;justify-content:center;margin:var(--s4) 0 var(--s3);position:sticky;top:0;z-index:2;pointer-events:none}.day-sep span{padding:4px 12px;border-radius:var(--r-full);background:var(--surface-3);color:var(--text-dim);font-size:var(--text-xs);font-weight:600}.sys-msg{display:flex;justify-content:center;padding:6px var(--s5)}.sys-msg span{max-width:70ch;padding:5px 12px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-dim);font-size:var(--text-sm);text-align:center}.msg{display:flex;gap:var(--s2);padding:1px var(--s5);position:relative}.msg.out{flex-direction:row-reverse}.msg .gutter{width:30px;flex:none}.bubble{position:relative;max-width:min(640px,74%);padding:7px 12px 6px;border-radius:var(--r-lg);background:var(--bubble-in);color:var(--bubble-in-text);box-shadow:var(--shadow-1);min-width:0}.msg.out .bubble{background:var(--bubble-out);color:var(--bubble-out-text)}.msg.head .bubble{border-top-left-radius:var(--r-lg)}.msg.in.tail .bubble{border-bottom-left-radius:var(--r-xs)}.msg.out.tail .bubble{border-bottom-right-radius:var(--r-xs)}.msg.in.mid .bubble{border-top-left-radius:var(--r-xs);border-bottom-left-radius:var(--r-xs)}.msg.out.mid .bubble{border-top-right-radius:var(--r-xs);border-bottom-right-radius:var(--r-xs)}.msg.in.foot .bubble{border-top-left-radius:var(--r-xs)}.msg.out.foot .bubble{border-top-right-radius:var(--r-xs)}.msg+.msg.head{margin-top:var(--s3)}.bubble .author{font-size:var(--text-sm);font-weight:620;margin-bottom:2px;letter-spacing:-.005em}.bubble .text{font-size:var(--text-md);line-height:1.42;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.bubble .text code{font-family:var(--font-mono);font-size:.92em;padding:1px 5px;border-radius:var(--r-xs);background:#7f7f7f29}.bubble .text pre{margin:6px 0;padding:10px 12px;border-radius:var(--r-sm);background:#7f7f7f24;overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-sm)}.bubble .text .spoiler{background:currentColor;border-radius:3px;transition:background var(--base);cursor:pointer}.bubble .text .spoiler.revealed{background:#7f7f7f2e}.bubble .text a{text-decoration:underline;color:inherit}.msg.in .bubble .text a{color:var(--accent)}.bubble .meta{display:flex;align-items:center;gap:5px;float:right;margin:4px 0 0 var(--s3);font-size:var(--text-xs);opacity:.72;white-space:nowrap;line-height:1}.bubble .meta .ticks{display:flex}.reply-quote{display:block;margin-bottom:5px;padding:4px 8px;border-left:2.5px solid currentColor;border-radius:var(--r-xs);background:#7f7f7f1a;font-size:var(--text-sm);text-align:left;width:100%;cursor:pointer}.reply-quote .who{font-weight:600;display:block}.reply-quote .snippet{opacity:.75;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forward-note{font-size:var(--text-sm);font-style:italic;opacity:.7;margin-bottom:3px}.att-image{display:block;margin:-3px -8px 4px;border-radius:var(--r-md);overflow:hidden;background:var(--surface-3);cursor:zoom-in;max-width:420px}.att-image img,.att-image video{display:block;width:100%;height:auto}.att-file{display:flex;align-items:center;gap:var(--s3);padding:var(--s2);margin:2px 0;border-radius:var(--r-sm);background:#7f7f7f1a;cursor:pointer;min-width:220px}.att-file .glyph{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-sm);background:#7f7f7f29;flex:none}.att-file .name{font-size:var(--text-sm);font-weight:560}.att-file .size{font-size:var(--text-xs);opacity:.7}.att-voice{display:flex;align-items:center;gap:var(--s3);min-width:210px;padding:2px 0}.waveform{display:flex;align-items:center;gap:2px;height:26px;flex:1;cursor:pointer}.waveform i{flex:1;min-width:2px;border-radius:1px;background:currentColor;opacity:.35;transition:opacity var(--fast)}.waveform i.played{opacity:.95}.reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.reaction{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:var(--r-full);background:#7f7f7f24;font-size:var(--text-sm);font-variant-numeric:tabular-nums;transition:background var(--fast),box-shadow var(--fast)}.reaction:hover{background:#7f7f7f38}.reaction.mine{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-border)}.msg.out .reaction.mine{background:#ffffff38;color:inherit;box-shadow:none}.msg-actions{display:flex;align-items:center;gap:2px;align-self:center;opacity:0;transition:opacity var(--fast);flex:none}.msg:hover .msg-actions,.msg-actions:focus-within{opacity:1}.msg-actions .icon-btn{width:30px;height:30px;border-radius:var(--r-sm)}.poll{min-width:260px}.poll .q{font-weight:600;margin-bottom:var(--s2)}.poll-option{position:relative;display:block;width:100%;padding:8px 10px;margin-bottom:5px;border-radius:var(--r-sm);background:#7f7f7f1a;text-align:left;overflow:hidden}.poll-option .fill{position:absolute;inset:0 auto 0 0;background:#7f7f7f29;transition:width var(--slow)}.poll-option .label{position:relative;display:flex;justify-content:space-between;gap:var(--s3);font-size:var(--text-sm)}.poll-option.chosen{box-shadow:inset 0 0 0 1.5px currentColor}.composer{flex:none;padding:var(--s2) var(--s4) var(--s3);background:var(--surface);border-top:1px solid var(--border)}.composer-context{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);margin-bottom:var(--s2);border-radius:var(--r-sm);background:var(--surface-2);border-left:2.5px solid var(--accent);font-size:var(--text-sm)}.composer-row{display:flex;align-items:flex-end;gap:var(--s2)}.composer-input{flex:1;min-width:0;max-height:180px;overflow-y:auto;padding:9px var(--s3);border-radius:var(--r-lg);background:var(--surface-2);font-size:var(--text-md);line-height:1.42;outline:none;transition:box-shadow var(--fast),background var(--fast);-webkit-user-select:text;user-select:text;overflow-wrap:anywhere}.composer-input:focus{background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent)}.composer-input:empty:before{content:attr(data-placeholder);color:var(--text-mute);pointer-events:none}.send-btn{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:var(--r-full);background:var(--accent);color:var(--text-on-accent);transition:transform var(--fast),background var(--fast),opacity var(--fast)}.send-btn:hover{background:var(--accent-hover)}.send-btn:active{transform:scale(.92)}.send-btn.recording{background:var(--danger)}.attach-preview{display:flex;gap:var(--s2);padding-bottom:var(--s2);overflow-x:auto}.attach-thumb{position:relative;width:72px;height:72px;flex:none;border-radius:var(--r-sm);background:var(--surface-3);overflow:hidden;display:grid;place-items:center}.attach-thumb img{width:100%;height:100%;object-fit:cover}.attach-thumb .remove{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:#0009;color:#fff;display:grid;place-items:center}.recording-bar{display:flex;align-items:center;gap:var(--s3);height:40px;padding:0 var(--s3);border-radius:var(--r-lg);background:var(--danger-soft);color:var(--danger);flex:1}.recording-bar .pip{width:9px;height:9px;border-radius:50%;background:var(--danger);animation:pulse 1.2s infinite}.emoji-panel{width:320px;height:320px;display:flex;flex-direction:column;padding:0}.emoji-tabs{display:flex;gap:2px;padding:6px;border-bottom:1px solid var(--border)}.emoji-tab{flex:1;height:30px;border-radius:var(--r-sm);font-size:17px}.emoji-tab.active{background:var(--accent-soft)}.emoji-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:6px}.emoji-grid button{height:34px;border-radius:var(--r-sm);font-size:21px;line-height:1;transition:background var(--fast)}.emoji-grid button:hover{background:var(--surface-hover)}.panel{width:var(--panel-w);flex:none;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);min-height:0}.panel-head{display:flex;align-items:center;gap:var(--s3);height:var(--header-h);padding:0 var(--s3) 0 var(--s4);border-bottom:1px solid var(--border);flex:none}.panel-body{flex:1;overflow-y:auto}.panel-hero{display:flex;flex-direction:column;align-items:center;gap:var(--s3);padding:var(--s5) var(--s4);text-align:center}.panel-hero h3{font-size:var(--text-xl);font-weight:620;letter-spacing:-.02em}.list-row{display:flex;align-items:center;gap:var(--s3);width:100%;padding:10px var(--s4);text-align:left;transition:background var(--fast)}.list-row:hover{background:var(--surface-hover)}.list-row .glyph{color:var(--text-dim);flex:none}.list-row .body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.list-row .title{font-size:var(--text-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .sub{font-size:var(--text-sm);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row.danger .title,.list-row.danger .glyph{color:var(--danger)}.list-row.selected{background:var(--accent-soft)}.list-row.selected .title{color:var(--accent)}.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px}.media-grid button{aspect-ratio:1;background:var(--surface-3);border-radius:var(--r-xs);overflow:hidden}.media-grid img{width:100%;height:100%;object-fit:cover}.tabs{display:flex;border-bottom:1px solid var(--border);flex:none}.tab{flex:1;height:42px;font-size:var(--text-sm);font-weight:570;color:var(--text-dim);border-bottom:2px solid transparent;transition:color var(--fast),border-color var(--fast)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.call-overlay{position:fixed;inset:0;padding:var(--inset-top) var(--inset-right) var(--inset-bottom) var(--inset-left);z-index:70;display:flex;flex-direction:column;background:#0a0d0c;color:#f2f5f3}.call-grid{flex:1;display:grid;gap:var(--s2);padding:var(--s3);min-height:0;grid-template-columns:1fr}.call-grid.n2{grid-template-columns:repeat(2,1fr)}.call-grid.n3,.call-grid.n4{grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr}.call-grid.n5,.call-grid.n6{grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr}.call-tile{position:relative;border-radius:var(--r-lg);background:#141917;overflow:hidden;display:grid;place-items:center;min-height:0}.call-tile video{width:100%;height:100%;object-fit:cover}.call-tile.speaking{box-shadow:inset 0 0 0 2.5px var(--online)}.call-tile .name{position:absolute;left:var(--s3);bottom:var(--s3);display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-full);background:#0000008c;font-size:var(--text-sm);backdrop-filter:blur(6px)}.call-self{position:absolute;right:var(--s4);bottom:104px;width:132px;aspect-ratio:3 / 4;border-radius:var(--r-md);overflow:hidden;background:#1b211f;box-shadow:var(--shadow-3);z-index:2}.call-self video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.call-bar{display:flex;align-items:center;justify-content:center;gap:var(--s3);padding:var(--s4) var(--s4) var(--s5);flex:none}.call-btn{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#ffffff1f;color:#fff;transition:background var(--fast),transform var(--fast)}.call-btn:hover{background:#fff3}.call-btn:active{transform:scale(.94)}.call-btn.off{background:#fff;color:#14181a}.call-btn.hangup{background:var(--red);width:62px;height:62px}.call-status{text-align:center;padding:var(--s5) var(--s4) 0}.call-status h2{font-size:var(--text-2xl);font-weight:600;letter-spacing:-.02em}.call-status p{color:#fff9;margin-top:4px}.incoming{position:fixed;top:calc(var(--inset-top) + var(--s4));right:var(--s4);z-index:75;width:320px;padding:var(--s4);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-3);animation:rise var(--base) both}.lightbox{position:fixed;inset:0;padding:var(--inset-top) var(--inset-right) var(--inset-bottom) var(--inset-left);z-index:90;display:flex;flex-direction:column;background:#060908f2}.lightbox .stage{flex:1;display:grid;place-items:center;padding:var(--s4);min-height:0}.lightbox img,.lightbox video{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r-sm)}.lightbox .bar{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);color:#e9edea}.lightbox .bar .icon-btn{color:#ffffffbf}.lightbox .bar .icon-btn:hover{background:#ffffff1f;color:#fff}.onboard{height:100%;display:grid;place-items:center;padding:var(--s5);background:radial-gradient(1100px 620px at 50% -10%,var(--accent-soft),transparent 65%),var(--bg)}.onboard-card{width:min(420px,100%);display:flex;flex-direction:column;gap:var(--s4);text-align:center}.onboard-mark{width:76px;height:76px;margin:0 auto;display:grid;place-items:center;border-radius:var(--r-xl);background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-2)}.onboard h1{font-size:var(--text-3xl);font-weight:640;letter-spacing:-.03em}.onboard .lede{color:var(--text-dim);font-size:var(--text-lg);line-height:1.45}.recovery-key{padding:var(--s4);border-radius:var(--r-md);background:var(--surface-2);border:1px dashed var(--border-strong);font-family:var(--font-mono);font-size:var(--text-md);line-height:1.8;letter-spacing:.04em;word-break:break-all;-webkit-user-select:text;user-select:text}@media(max-width:900px){.rail{order:3;flex:none;width:100%;height:56px;flex-direction:row;justify-content:space-around;align-items:center;padding:0 var(--s2);border-right:0;border-top:1px solid var(--border);background:var(--surface)}.rail .brand,.rail .spacer{display:none}.shell{flex-direction:column}.pane,.panel,.conv{flex:1 1 auto;width:100%;height:auto;min-height:0;min-width:0}.pane{border-right:0}.panel{border-left:0}.pane[style]{max-width:none!important}.shell[data-view=chat] .pane,.shell[data-view=chat] .rail,.shell[data-view=list] .conv,.shell[data-view=list] .panel,.shell[data-view=panel] .pane,.shell[data-view=panel] .conv,.shell[data-view=panel] .rail{display:none}.msg{padding-left:var(--s3);padding-right:var(--s3)}.bubble{max-width:84%}.composer{padding-bottom:var(--s4)}.call-self{bottom:96px;width:108px}.incoming{left:var(--s3);right:var(--s3);width:auto}}@media(min-width:1500px){:root{--list-w: 380px}}
