@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-normal.woff2)format("woff2")}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic.woff2)format("woff2")}:root{--canvas:#f4efe6;--surface:#fbf8f2;--surface-card:#fff;--surface-input:#fcfaf5;--chat-canvas:#ede7da;--line:#e6dfd2;--line-card:#ece5d8;--line-soft:#efe9dd;--line-thick:#f1ebdf;--bubble-in:#fff;--bubble-in-line:#ece5d8;--bubble-out:#c2683e;--bubble-out-text:#fff;--text:#1e1a14;--text-2:#8a8172;--text-3:#a79e8d;--text-4:#beb4a2;--chevron:#c6bdac;--text-dialog:#7a7264;--text-soft:#5a5346;--accent:#c2683e;--accent-link:#b06a44;--accent-deep:#a8512b;--accent-weak:#f0d9c9;--accent-loading:#d9a488;--accent-grad:linear-gradient(135deg, #c2683e, #a8512b);--ok:#5e9b6b;--ok-weak:#eaf1e9;--burn:#b33a2a;--burn-weak:#fbeae6;--burn-line:#efc9c0;--burn-banner:#7a3326;--burn-input-bg:#fbefe9;--burn-input-line:#e7c4b8;--burn-trace-line:#c9bba6;--danger:#b33a2a;--danger-weak:#fbeae6;--hangup:#c0392b;--warn:#e8b04b;--warn-bg:#faf3e8;--warn-line:#ebd9be;--warn-text:#7a5a1e;--warn-text-2:#9a7b3e;--disabled-bg:#e4d8c6;--disabled-text:#a79a82;--dark-bg:#221d16;--dark-card:#2c261e;--dark-card-line:#3b342a;--dark-text:#f7f2e8;--dark-text-2:#a79d8b;--dark-text-3:#c7bba8;--dark-note:#8c8272;--dark-hl:#d9c9ae;--dark-warn-hl:#b99a6e;--call-timer:#9cc0a4;--call-grad:linear-gradient(165deg, #33291f, #171310);--call-grad-in:linear-gradient(165deg, #1f2a22, #131714);--call-btn-bg:#ffffff1a;--call-btn-line:#ffffff24;--viewer-bg:#0e0c09;--scrim:#14110c80;--scrim-menu:#14110c6b;--chip-bg:#14110c0f;--trace-bg:#14110c0a;--font-body:-apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--font-display:"Instrument Serif", Georgia, "Songti SC", serif;--font-mono:ui-monospace, Menlo, monospace;--fs-hero:56px;--fs-page:36px;--fs-title:30px;--fs-name:16.5px;--fs-list:16px;--fs-body:15.5px;--fs-input:15px;--fs-sub:13px;--fs-cap:12.5px;--fs-meta:11px;--fs-tab:11px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-input:15px;--r-btn:14px;--r-card:16px;--r-card-lg:22px;--r-sheet:28px;--r-bubble:18px;--r-bubble-tip:5px;--r-tile:12px;--r-pill:999px;--r-lg:16px;--r-sm:5px;--shadow-primary:0 12px 24px -10px #c2683eb3;--shadow-invite:0 16px 30px -16px #a8512bcc;--shadow-card:0 12px 30px -18px #14110c4d;--shadow-menu:0 18px 40px -12px #00000080;--shadow-dialog:0 24px 50px -16px #00000080;--shadow-sheet:0 -20px 40px -20px #0006;--shadow-hangup:0 12px 30px -8px #c0392b99;--shadow-accept:0 12px 30px -8px #5e9b6b99;--shadow-logo:0 10px 24px -8px #c2683ea6;--t-fast:.15s ease-out;--t-page:.25s ease;--z-banner:10;--z-overlay:100;--z-toast:200;--avatar-0:#c9a26b;--avatar-1:#6e8fa8;--avatar-2:#a87e9b;--avatar-3:#7fa07a;--avatar-4:#b98e5e;--avatar-5:#9a9488}@keyframes liaoSpin{to{transform:rotate(360deg)}}@keyframes liaoPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}@keyframes liaoRing{0%,to{transform:rotate(-8deg)}25%{transform:rotate(8deg)}50%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@keyframes liaoDot{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@keyframes liaoWave{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}@keyframes liaoBreathe{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.15;transform:scale(1.15)}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);font-size:var(--fs-body);color:var(--text);background:var(--canvas);margin:0;line-height:1.5}button,input,textarea{font:inherit;color:inherit}a{color:var(--accent)}.proto-page{background:var(--canvas);max-width:480px;min-height:100dvh;margin:0 auto}.proto-kicker{margin:0 0 var(--sp-1);color:var(--accent-link);font-size:var(--fs-cap)}.proto-lead{color:var(--text-2);font-size:var(--fs-sub);margin:0}.login-page{padding:calc(var(--sp-8) + env(safe-area-inset-top)) var(--sp-6) calc(var(--sp-8) + env(safe-area-inset-bottom));background:var(--canvas);align-items:center;display:grid}.login-shell{width:100%;padding:var(--sp-4);text-align:left;background:0 0;border:none}.login-logo{width:60px;height:60px;margin:0 0 var(--sp-5);box-shadow:var(--shadow-logo);border-radius:19px;display:block}.login-shell h1{font-family:var(--font-display);font-weight:400;font-size:var(--fs-hero);letter-spacing:-.01em;color:var(--text);margin:0;line-height:.9}.login-slogan{margin:var(--sp-2) 0 var(--sp-8);color:var(--text-2);font-size:var(--fs-input)}.empty-state h2,.list-appbar h1{font-family:var(--font-display);font-weight:400;font-size:var(--fs-page);color:var(--text);margin:0;line-height:1.1}.seg-control{gap:var(--sp-1);margin:var(--sp-6) 0 var(--sp-4);padding:var(--sp-1);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-input);grid-template-columns:1fr 1fr;display:grid}.seg-control button{border-radius:var(--r-pill);min-height:44px;color:var(--text-2);font-size:var(--fs-sub);cursor:pointer;background:0 0;border:none;font-weight:600}.seg-control button.active{background:var(--accent);color:var(--surface)}.proto-form{gap:var(--sp-4);display:grid}.field{gap:var(--sp-2);display:grid}.field span{font-size:var(--fs-cap);color:var(--text-2);font-weight:600}.field input{border:1px solid var(--line);border-radius:var(--r-input);background:var(--surface-input);width:100%;height:54px;color:var(--text);transition:border-color var(--t-fast);outline:none;padding:0 17px;font-size:16px}.field input:focus{border:1.5px solid var(--accent)}.field input[aria-invalid=true]{border:1.5px solid var(--danger);background:var(--danger-weak)}.field input::placeholder{color:var(--text-4)}.field small{color:var(--danger);font-size:var(--fs-sub);font-weight:500}.field small.field-hint{color:var(--text-3);font-weight:400}.form-banner,.offline-banner{border:1px solid var(--line);border-radius:var(--r-btn);width:100%;padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sub)}.form-banner{margin-bottom:var(--sp-4)}.form-banner.danger{background:var(--danger-weak);color:var(--danger);border-color:var(--burn-line);font-weight:500}.form-banner.warn{background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-line);font-weight:500}.form-banner button{min-height:44px;margin-left:var(--sp-2);color:var(--accent-link);font-size:var(--fs-sub);cursor:pointer;background:0 0;border:none;font-weight:600}.primary-btn,.secondary-btn,.danger-btn{border-radius:var(--r-btn);min-height:52px;padding:0 var(--sp-5);font-size:var(--fs-input);cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-2);transition:background var(--t-fast);font-weight:600;display:inline-flex}.primary-btn{background:var(--accent);color:var(--surface);box-shadow:var(--shadow-primary);border:none}.primary-btn:active{background:var(--accent-deep)}.primary-btn:disabled,.secondary-btn:disabled{border-color:var(--disabled-bg);background:var(--disabled-bg);color:var(--disabled-text);box-shadow:none;cursor:default}.primary-btn[aria-busy=true]{background:var(--accent-loading);box-shadow:none}.secondary-btn{border:1px solid var(--line);background:var(--surface);color:var(--text);box-shadow:none;text-decoration:none}.secondary-btn.compact{min-width:72px;min-height:44px;padding:0 var(--sp-4);font-size:var(--fs-sub)}.danger-btn{background:var(--danger);color:var(--surface-card);border:none}.demo-links{gap:var(--sp-2);margin-top:var(--sp-5);flex-wrap:wrap;display:flex}.demo-links button{border:1px solid var(--line);border-radius:var(--r-pill);min-height:44px;color:var(--text-2);padding:0 var(--sp-4);font-size:var(--fs-cap);cursor:pointer;background:0 0}.list-page{flex-direction:column;display:flex}.list-appbar{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);min-height:calc(60px + env(safe-area-inset-top));padding:calc(var(--sp-2) + env(safe-area-inset-top)) var(--sp-6) var(--sp-3);background:var(--canvas);z-index:calc(var(--z-banner) - 1);border-bottom:none;display:flex;position:sticky;top:0}.list-appbar-actions,.contact-picker-head{align-items:center;gap:var(--sp-2);display:flex}.new-chat-btn{align-items:center;gap:var(--sp-1);white-space:nowrap;min-width:44px;height:44px;padding:0 var(--sp-3);border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:var(--fs-sub);cursor:pointer;border-radius:13px;font-weight:600;display:inline-flex}.contact-picker{background:var(--surface);min-height:100%}.contact-picker-head{padding:var(--sp-4);border-bottom:1px solid var(--line);justify-content:space-between}.contact-picker-head h2{margin:var(--sp-1) 0 0;font-size:var(--fs-list)}.contact-empty{padding:var(--sp-8) var(--sp-4);color:var(--text-2);text-align:center;margin:0}.offline-banner{min-height:44px;margin:0 var(--sp-4) var(--sp-2);border-radius:var(--r-btn);background:var(--burn-banner);width:auto;color:var(--surface-card);cursor:pointer;align-items:center;gap:var(--sp-3);top:calc(60px + env(safe-area-inset-top));z-index:calc(var(--z-banner) - 1);border:none;font-weight:600;display:flex;position:sticky}.conversation-panel{background:var(--surface);flex:1;min-height:0}.conversation-list{margin:0;padding:0;list-style:none}.conversation-list li{border-bottom:1px solid var(--line-soft)}.conversation-row{width:100%;min-height:80px;padding:0 var(--sp-5);text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:13px;display:grid}.conversation-row:active{background:var(--canvas)}.avatar{border-radius:var(--r-pill);width:52px;height:52px;color:var(--surface-card);font-family:var(--font-body);place-items:center;font-size:20px;font-weight:600;display:grid;position:relative}.avatar.a0{background:var(--avatar-0)}.avatar.a1{background:var(--avatar-1)}.avatar.a2{background:var(--avatar-2)}.avatar.a3{background:var(--avatar-3)}.avatar.a4{background:var(--avatar-4)}.avatar.a5{background:var(--avatar-5)}.avatar i{border:2.5px solid var(--surface);border-radius:var(--r-pill);background:var(--ok);width:14px;height:14px;position:absolute;bottom:1px;right:0}.conv-main{gap:3px;min-width:0;display:grid}.conv-name{font-family:var(--font-body);font-size:var(--fs-name);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.conv-summary{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.conv-summary.burned{color:var(--text-4);font-style:italic}.conv-summary.burn{color:var(--burn)}.conv-side{justify-items:end;gap:var(--sp-2);min-width:44px;display:grid}.conv-side time{color:var(--text-3);font-size:12px}.unread{background:var(--accent);min-width:20px;height:20px;color:var(--surface-card);border-radius:11px;place-items:center;padding:0 6px;font-size:12px;font-weight:600;display:inline-grid}.unread.heavy{background:var(--burn);font-weight:700}.empty-state{padding:var(--sp-8) 44px;text-align:center;justify-items:center;display:grid}.empty-state:before{content:"";background:var(--accent-weak);width:96px;height:96px;margin-bottom:var(--sp-6);border-radius:30px}.empty-state h2{font-size:26px}.empty-state p{margin:var(--sp-2) 0 var(--sp-6);color:var(--text-2);font-size:var(--fs-input);line-height:1.6}.list-skeleton{padding:0}.skeleton-row{height:80px;padding:0 var(--sp-5);border-bottom:1px solid var(--line-soft);grid-template-columns:52px 1fr;align-items:center;gap:13px;display:grid}.skeleton-row span,.skeleton-row b,.skeleton-row i{background:var(--line-thick);border-radius:var(--r-pill);display:block}.skeleton-row span{width:52px;height:52px}.skeleton-row div{gap:var(--sp-2);display:grid}.skeleton-row b{width:42%;height:16px}.skeleton-row i{width:74%;height:12px}.list-demo{padding:var(--sp-3) var(--sp-4) var(--sp-5);border-top:1px solid var(--line);background:var(--surface);margin-top:0}.settings-page,.setup-page{min-height:100dvh;padding-bottom:var(--sp-8)}.settings-title{flex:1;min-width:0}.settings-title h1{font-family:var(--font-display);font-weight:400;font-size:var(--fs-page);color:var(--text);margin:0}.settings-section{margin:var(--sp-3) var(--sp-4) 0;padding:var(--sp-4);border:1px solid var(--line-card);border-radius:var(--r-card);background:var(--surface-card)}.settings-section h2{margin:0 0 var(--sp-3);font-family:var(--font-body);font-size:var(--fs-cap);letter-spacing:.06em;color:var(--text-3);font-weight:600}.settings-actions{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.settings-actions.wrap{flex-wrap:wrap}.settings-actions .secondary-btn{gap:var(--sp-2)}.enabled-chip{align-items:center;gap:var(--sp-2);min-height:44px;color:var(--ok);font-size:var(--fs-sub);font-weight:600;display:inline-flex}.about-section{gap:var(--sp-4);display:grid}.about-section p{color:var(--text-2);font-size:var(--fs-sub);margin:0}.me-profile{align-items:center;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);background:0 0;border-bottom:none;display:flex}.avatar-lg{border-radius:22px;flex-shrink:0;width:70px;height:70px;font-size:30px;background:var(--accent)!important}.me-profile-text{gap:3px;min-width:0;display:grid}.me-name{font-family:var(--font-body);color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:22px;font-weight:600;overflow:hidden}.me-sub{color:var(--text-2);font-size:var(--fs-sub);margin:0}.friend-code-card{margin:0 var(--sp-4) var(--sp-4);padding:var(--sp-5) 22px;background:var(--accent-grad);box-shadow:var(--shadow-invite);color:var(--surface-card);border:none;border-radius:20px}.friend-code-card h2{color:var(--accent-weak);letter-spacing:.1em}.friend-code-row{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.friend-code-value{font-family:var(--font-mono);letter-spacing:5px;color:inherit;font-size:32px;font-weight:700}.friend-code-hint{margin:0 0 var(--sp-4);color:var(--accent-weak);font-size:var(--fs-cap);line-height:1.4}.friend-code-card .secondary-btn{color:var(--surface-card);background:#ffffff2e;border:none}.friend-code-card .enabled-chip{color:var(--surface-card)}.add-friend-panel form{gap:var(--sp-4);display:grid}.add-friend-success p{margin:0 0 var(--sp-5);color:var(--text);font-size:var(--fs-sub)}.proto-toast,.call-toast{z-index:var(--z-toast);justify-content:center;align-items:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-5);border-radius:var(--r-pill);background:var(--text);color:var(--canvas);font-size:var(--fs-cap);display:inline-flex;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.call-toast button{width:44px;height:44px;color:var(--canvas);cursor:pointer;background:0 0;border:none;place-items:center;display:grid}.confirm-mask{z-index:var(--z-overlay);background:var(--scrim);place-items:center;padding:0 30px;display:grid;position:fixed;inset:0}.confirm-panel{border-radius:var(--r-card-lg);background:var(--canvas);width:min(340px,100%);padding:26px var(--sp-6) var(--sp-5);box-shadow:var(--shadow-dialog);border:none}.confirm-panel h2{margin:0 0 var(--sp-2);font-family:var(--font-body);color:var(--text);font-size:19px;font-weight:600}.confirm-panel p{color:var(--text-dialog);margin:0 0 22px;font-size:14.5px;line-height:1.6}.confirm-actions{justify-content:stretch;gap:11px;display:flex}.confirm-actions button{min-height:50px;font-size:var(--fs-input);border-radius:13px;flex:1}.confirm-actions .secondary-btn{background:var(--chat-canvas);color:var(--text-soft);border:none}.setup-page,.setup-page .list-appbar{background:var(--dark-bg)}.setup-page .list-appbar h1,.setup-intro h2{color:var(--dark-text)}.setup-intro{padding:var(--sp-6) var(--sp-6) var(--sp-4)}.setup-intro h2{margin:0 0 var(--sp-2);font-family:var(--font-display);font-size:34px;font-weight:400;line-height:1.15}.setup-intro p{color:var(--dark-text-2);font-size:var(--fs-sub);margin:0}.setup-list{gap:var(--sp-3);padding:0 var(--sp-6) var(--sp-5);display:grid}.setup-card{gap:var(--sp-3);border:1px solid var(--dark-card-line);background:var(--dark-card);padding:var(--sp-5) 18px;border-radius:20px;grid-template-columns:30px 1fr;display:grid}.setup-card.done{border-color:var(--dark-card-line)}.setup-card.active{border:1.5px solid var(--accent)}.step-index{background:var(--accent);width:30px;height:30px;color:var(--surface-card);font-family:var(--font-body);font-size:var(--fs-input);border:none;border-radius:10px;place-items:center;font-weight:700;display:grid}.setup-card.done .step-index{background:var(--ok)}.setup-card h2{margin:0 0 var(--sp-1);font-family:var(--font-body);color:var(--dark-text);font-size:16px;font-weight:600}.setup-card p{margin:0 0 var(--sp-4);color:var(--dark-text-2);font-size:var(--fs-sub);line-height:1.55}.setup-card p b{color:var(--dark-hl)}.setup-card .primary-btn{min-height:48px;box-shadow:none;border-radius:13px}.setup-card .secondary-btn{border-color:var(--dark-card-line);color:var(--dark-text-3);background:0 0}.setup-note{padding:0 var(--sp-6) calc(26px + env(safe-area-inset-bottom));color:var(--dark-note);align-items:flex-start;gap:11px;font-size:12px;line-height:1.55;display:flex}.setup-note b{color:var(--dark-warn-hl)}.call-overlay{z-index:var(--z-overlay);background:var(--call-grad);color:var(--dark-text);padding:calc(var(--sp-5) + env(safe-area-inset-top)) var(--sp-5) calc(46px + env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto auto;place-items:center;display:grid;position:fixed;inset:0}.call-overlay.incoming{background:var(--call-grad-in)}.call-close{border-radius:var(--r-pill);width:44px;height:44px;color:var(--dark-text-2);cursor:pointer;background:0 0;border:none;justify-self:end;place-items:center;display:grid}.call-person{text-align:center;padding-top:var(--sp-6);align-self:start}.call-avatar{width:118px;height:118px;margin:0 auto var(--sp-6);border-radius:var(--r-pill);background:var(--avatar-0);color:var(--surface-card);font-family:var(--font-body);place-items:center;font-size:46px;font-weight:600;display:grid;position:relative}.call-overlay.outgoing .call-avatar:before,.call-overlay.incoming .call-avatar:before{content:"";border-radius:var(--r-pill);border:2px solid #5e9b6b66;animation:1.8s ease-in-out infinite liaoBreathe;position:absolute;inset:-12px}.call-overlay.outgoing .call-avatar:before{border-color:var(--accent)}.call-person h2{margin:0 0 var(--sp-3);font-family:var(--font-body);color:var(--dark-text);font-size:28px;font-weight:600}.call-person p{color:var(--dark-text-3);font-size:var(--fs-input);margin:0}.call-person .call-timer{font-family:var(--font-mono);color:var(--call-timer);font-size:17px;font-weight:500}.call-person small{margin-top:var(--sp-3);color:var(--dark-text-2);font-size:var(--fs-sub);line-height:1.65;display:block}.call-relay{border-radius:var(--r-pill);margin-bottom:var(--sp-4);color:var(--dark-text-3);background:#ffffff14;align-items:center;gap:6px;padding:6px 13px;font-size:12px;display:inline-flex}.call-relay:before{content:"";border-radius:var(--r-pill);background:var(--warn);width:6px;height:6px}.call-actions{justify-content:center;align-items:flex-end;gap:34px;display:flex}.call-round{border-radius:var(--r-pill);width:64px;min-height:64px;color:var(--surface-card);cursor:pointer;border:none;place-items:center;display:grid;position:relative}.call-round span{white-space:nowrap;color:var(--dark-text-2);font-size:12px;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}.call-round.accept{background:var(--ok);width:74px;min-height:74px;box-shadow:var(--shadow-accept);animation:1.6s ease-in-out infinite liaoPulse}.call-round.hangup{background:var(--hangup);width:74px;min-height:74px;box-shadow:var(--shadow-hangup)}.call-round.mute{border:1px solid var(--call-btn-line);background:var(--call-btn-bg);width:64px;min-height:64px;color:var(--dark-text)}.call-round.mute.active{border-color:var(--accent);background:var(--accent-weak);color:var(--accent)}.call-demo-row{justify-content:center;gap:var(--sp-2);width:min(420px,100%);margin-top:var(--sp-6);flex-wrap:wrap;display:flex}.call-demo-row button{border:1px solid var(--call-btn-line);border-radius:var(--r-pill);background:var(--call-btn-bg);min-height:44px;color:var(--dark-text-2);padding:0 var(--sp-4);font-size:var(--fs-cap);cursor:pointer}.has-tabbar{padding-bottom:calc(50px + env(safe-area-inset-bottom) + var(--sp-4))}@media (width<=380px){.login-shell{padding:var(--sp-4)}.conversation-row{gap:var(--sp-2)}}.call-waves{width:100%;padding:0 var(--sp-2);flex-direction:column;align-items:stretch;gap:14px;margin-top:30px;display:flex}.call-wave{align-items:center;gap:var(--sp-3);display:flex}.call-wave.muted,.call-wave-mute-wrap{opacity:.4}.call-wave-canvas{height:26px;color:var(--ok);flex:1}.call-wave.local .call-wave-canvas{color:var(--accent)}.call-wave-label{color:var(--dark-text-2);flex:none;order:-1;width:34px;font-size:12px;font-weight:500}.chat-page{background:var(--chat-canvas);flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex}.chat-appbar{min-height:calc(56px + env(safe-area-inset-top));padding:calc(var(--sp-2) + env(safe-area-inset-top)) var(--sp-4) var(--sp-3);background:var(--surface);border-bottom:1px solid var(--line);z-index:calc(var(--z-banner) - 1);align-items:center;gap:11px;display:flex;position:sticky;top:0}.chat-appbar-title{text-align:left;flex:1;min-width:0}.chat-appbar-title h1{font-family:var(--font-body);font-size:var(--fs-name);color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:600;overflow:hidden}.chat-appbar-title p{font-size:var(--fs-cap);color:var(--text-2);margin:0}.chat-appbar-title p.typing{color:var(--ok)}.chat-dot{border-radius:var(--r-pill);background:var(--ok);width:6px;height:6px;margin-right:var(--sp-1);vertical-align:middle;display:inline-block}.chat-icon-btn{border-radius:var(--r-tile);width:44px;height:44px;color:var(--accent-link);cursor:pointer;transition:background var(--t-fast);background:0 0;border:none;flex:none;place-items:center;display:grid}.chat-icon-btn:active{background:var(--accent-weak)}.chat-icon-btn.call{background:var(--accent-weak);width:40px;height:40px;color:var(--accent)}.chat-icon-btn.burn-on{color:var(--burn);background:var(--burn-weak)}.chat-icon-btn.recording{color:var(--surface-card);background:var(--accent)}.chat-banner{min-height:44px;margin:var(--sp-2) var(--sp-4) 0;border-radius:var(--r-btn);background:var(--burn-banner);color:var(--surface-card);font-size:var(--fs-sub);cursor:pointer;transition:opacity var(--t-page);top:calc(56px + env(safe-area-inset-top));z-index:calc(var(--z-banner) - 1);border:none;font-weight:600;position:sticky}.chat-scroll{overscroll-behavior:contain;padding:var(--sp-4) 14px var(--sp-2);flex:1;overflow-y:auto}.chat-day{text-align:center;margin:var(--sp-4) 0 var(--sp-2)}.chat-day span{background:var(--chip-bg);color:var(--text-2);border-radius:var(--r-pill);padding:4px 12px;font-size:11.5px;font-weight:500;display:inline-block}.chat-history-end{text-align:center;font-size:var(--fs-meta);color:var(--text-3);margin:var(--sp-2) 0 var(--sp-4)}.chat-loading{justify-content:center;align-items:center;gap:var(--sp-2);color:var(--text-2);font-size:var(--fs-sub);padding:var(--sp-6) 0;display:flex}.chat-loading.small{padding:var(--sp-2) 0}.chat-spin{animation:.8s linear infinite liaoSpin}.chat-empty{text-align:center;padding:var(--sp-8) var(--sp-6)}.chat-empty h2{font-family:var(--font-display);color:var(--text);margin:0 0 var(--sp-2);font-size:26px;font-weight:400}.chat-empty p{font-size:var(--fs-sub);color:var(--text-2);margin:0}.chat-row{align-items:flex-start;gap:var(--sp-2);margin-bottom:9px;display:flex}.chat-row.self{justify-content:flex-end}.chat-avatar{display:none}.chat-col{flex-direction:column;align-items:flex-start;max-width:78%;display:flex}.chat-row.self .chat-col{align-items:flex-end}.chat-bubble{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;font-size:var(--fs-body);border-radius:var(--r-bubble);white-space:pre-wrap;word-break:break-word;text-align:left;padding:10px 14px;line-height:1.5;position:relative;overflow:hidden}.chat-bubble.in{background:var(--bubble-in);border:1px solid var(--bubble-in-line);color:var(--text);border-top-left-radius:var(--r-bubble-tip)}.chat-bubble.self{background:var(--bubble-out);color:var(--bubble-out-text);border-top-right-radius:var(--r-bubble-tip);border:none}.chat-bubble.self.failed{opacity:.7}.chat-meta{align-items:center;gap:var(--sp-1);font-size:var(--fs-meta);color:var(--text-3);margin-top:3px;padding:0 2px;display:flex}.chat-read{color:var(--text-3)}.chat-meta-burn{color:var(--burn);align-items:center;gap:2px;display:inline-flex}.chat-meta-fail{font-size:var(--fs-meta);color:var(--danger);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-weight:500;display:inline-flex}.chat-sys{text-align:center;color:var(--text-3);margin:var(--sp-2) 0;font-size:12px}.chat-tomb{justify-content:center;align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0;display:flex}.chat-tomb span{align-items:center;gap:var(--sp-2);background:var(--trace-bg);border:1px dashed var(--burn-trace-line);border-radius:var(--r-bubble);color:var(--text-3);padding:11px 15px;font-size:13.5px;font-style:italic;display:inline-flex}.chat-img{aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--chat-canvas);cursor:zoom-in;place-items:center;width:216px;padding:0;display:grid;overflow:hidden}.chat-img.tall{aspect-ratio:9/16;width:162px}.chat-img img{object-fit:cover;border-radius:calc(var(--r-lg) - 1px);width:100%;height:100%}.chat-img-hint{font-size:var(--fs-meta);color:var(--text-3);padding:0 var(--sp-2);word-break:break-all}.chat-file{align-items:center;gap:11px;min-width:200px;display:flex}.chat-file .chat-plus-icon,.chat-file-badge{background:var(--ok-weak);width:40px;height:44px;color:var(--ok);border-radius:8px;flex:none;place-items:center;display:grid}.chat-bubble.self .chat-file-badge{color:var(--surface-card);background:#fff3}.chat-file-info{min-width:0;color:inherit;flex-direction:column;text-decoration:none;display:flex}.chat-file-name{white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:14.5px;font-weight:500;overflow:hidden}.chat-file-size{color:var(--text-3);margin-top:2px;font-size:12px}.chat-bubble.self .chat-file-size{color:var(--accent-weak)}.chat-voice{align-items:center;gap:11px;display:inline-flex}.chat-voice-play{border-radius:var(--r-pill);background:var(--accent-weak);width:34px;height:34px;color:var(--accent);cursor:pointer;border:none;flex:none;place-items:center;padding:0;display:grid}.chat-bubble.self .chat-voice-play{color:var(--surface-card);background:#ffffff40}.chat-wave{align-items:center;gap:2.5px;height:22px;display:inline-flex}.chat-wave i{background:var(--burn-trace-line);border-radius:2px;width:3px}.chat-bubble.self .chat-wave i{background:#ffffff80}.chat-wave i.lit{background:var(--accent)}.chat-bubble.self .chat-wave i.lit{background:var(--surface-card)}.chat-voice-dur{font-size:var(--fs-cap);color:var(--text-2);font-weight:500}.chat-bubble.self .chat-voice-dur{color:var(--accent-weak)}.chat-burn-unopened{background:var(--surface-card);border:1.5px dashed var(--burn);color:var(--burn);cursor:pointer;align-items:center;gap:9px;font-size:14.5px;font-weight:600;display:inline-flex}.chat-bubble.self .chat-burn-unopened,.chat-burn-unopened.self{background:var(--bubble-out);color:var(--bubble-out-text);border:none}.chat-bubble.burn-open{border:1.5px solid var(--burn)}.chat-burnbar{background:var(--burn);width:100%;height:2px;animation:30s linear forwards chat-burnbar;position:absolute;top:0;left:0}@keyframes chat-burnbar{0%{width:100%}to{width:0}}.chat-mask{background:var(--scrim-menu);z-index:var(--z-overlay);place-items:center;display:grid;position:fixed;inset:0}.chat-mask.transparent{background:0 0}.chat-menu{background:var(--surface);border-radius:var(--r-card);min-width:180px;box-shadow:var(--shadow-menu);border:none;position:fixed;overflow:hidden}.chat-menu-item{width:100%;min-height:48px;padding:0 var(--sp-4);border:none;border-bottom:1px solid var(--chat-canvas);font-size:var(--fs-input);color:var(--text);text-align:left;cursor:pointer;transition:background var(--t-fast);background:0 0;font-weight:500;display:block}.chat-menu-item:last-child{border-bottom:none}.chat-menu-item:active{background:var(--canvas)}.chat-menu-item.danger{color:var(--danger);font-weight:600}.chat-dialog{background:var(--canvas);border-radius:var(--r-card-lg);width:min(340px,100vw - 60px);padding:26px var(--sp-6) var(--sp-5);box-shadow:var(--shadow-dialog);border:none}.chat-dialog-title{margin:0 0 var(--sp-2);font-family:var(--font-body);color:var(--text);font-size:19px;font-weight:600}.chat-dialog-body{color:var(--text-dialog);margin:0 0 22px;font-size:14.5px;line-height:1.6}.chat-dialog-actions{justify-content:stretch;gap:11px;display:flex}.chat-btn{min-height:50px;padding:0 var(--sp-5);font-size:var(--fs-input);cursor:pointer;transition:background var(--t-fast);border-radius:13px;flex:1;font-weight:600}.chat-btn.ghost{background:var(--chat-canvas);color:var(--text-soft);border:none}.chat-btn.ghost:active{background:var(--line)}.chat-btn.danger{background:var(--danger);color:var(--surface-card);border:none}.chat-btn.danger:active{background:var(--burn-banner)}.chat-viewer{z-index:var(--z-overlay);background:var(--viewer-bg);place-items:center;display:grid;position:fixed;inset:0}.chat-viewer-close{top:calc(var(--sp-4) + env(safe-area-inset-top));right:var(--sp-4);width:44px;height:44px;color:var(--canvas);cursor:pointer;background:0 0;border:none;place-items:center;display:grid;position:absolute}.chat-viewer-ph{aspect-ratio:4/3;background:var(--dark-card);border-radius:var(--r-tile);width:min(84vw,400px);color:var(--dark-note);font-size:var(--fs-sub);place-items:center;display:grid}.chat-viewer-ph.tall{aspect-ratio:9/16;width:min(60vw,280px)}.chat-composer-wrap{background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.chat-composer-wrap.burn-on{background:var(--burn-input-bg);border-top-color:var(--burn-input-line)}.chat-burn-banner{background:var(--burn-banner);color:var(--surface-card);font-size:var(--fs-cap);align-items:center;gap:9px;padding:9px 18px;font-weight:600;display:flex}.chat-burn-banner button{color:var(--accent-weak);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:12px;font-weight:500}.chat-plus-sheet{gap:var(--sp-4);padding:var(--sp-5) 22px calc(var(--sp-6) + env(safe-area-inset-bottom));background:var(--canvas);border-top:1px solid var(--line);border-bottom:none;grid-template-columns:repeat(3,1fr);display:grid}.chat-plus-item{font-size:var(--fs-sub);color:var(--text-soft);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:9px;padding:0;font-weight:500;display:flex}.chat-plus-item:active .chat-plus-icon{background:var(--canvas)}.chat-plus-icon{aspect-ratio:1;background:var(--surface-card);border:1px solid var(--line-card);width:100%;color:var(--text);border-radius:20px;place-items:center;display:grid}.chat-composer{align-items:flex-end;gap:9px;min-height:60px;padding:10px 14px;display:flex}.chat-composer .chat-icon-btn{border-radius:var(--r-pill);background:var(--line-thick);width:38px;height:38px;color:var(--text-2);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.chat-composer .chat-icon-btn.burn-on{background:var(--burn);color:var(--surface-card)}.chat-composer .chat-icon-btn.recording{background:var(--accent);color:var(--surface-card)}.chat-input{resize:none;background:var(--surface-card);border:1px solid var(--line);min-height:40px;max-height:96px;color:var(--text);border-radius:20px;flex:1;padding:8px 15px;font-size:16px;line-height:1.5}.chat-input.multi{border-radius:var(--r-lg)}.chat-input:focus{border-color:var(--accent);outline:none}.chat-input.burn-on{border:1.5px solid var(--accent)}.chat-input.burn-on::placeholder{color:var(--burn)}.chat-input::placeholder{color:var(--text-4)}.chat-send-btn{background:var(--accent);width:44px;height:40px;color:var(--surface-card);cursor:pointer;transition:background var(--t-fast);border:none;border-radius:20px;flex:none;place-items:center;display:grid}.chat-send-btn:active{background:var(--accent-deep)}.chat-composer-wrap.burn-on .chat-send-btn{background:var(--burn)}.chat-recording{justify-content:center;align-items:center;gap:var(--sp-2);background:var(--accent);min-height:44px;font-size:var(--fs-input);color:var(--surface-card);border:none;border-radius:22px;flex:1;font-weight:600;display:flex}.chat-recording.cancelling{background:var(--danger)}.chat-rec-dot{border-radius:var(--r-pill);background:currentColor;width:8px;height:8px;animation:1s infinite liaoPulse}.tab-bar{z-index:var(--z-banner);height:calc(58px + env(safe-area-inset-bottom));padding:9px 0 env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar-item{color:var(--text-3);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:5px;display:flex}.tab-bar-item.active{color:var(--accent)}.tab-bar-item.active .tab-bar-icon svg{fill:var(--accent-weak)}.tab-bar-icon{place-items:center;display:grid;position:relative}.tab-bar-label{font-size:var(--fs-tab);font-weight:500}.tab-bar-item.active .tab-bar-label{font-weight:600}.tab-bar-badge{border:2px solid var(--surface);border-radius:var(--r-pill);background:var(--burn);min-width:18px;height:18px;color:var(--surface-card);place-items:center;padding:0 5px;font-size:10px;font-weight:700;line-height:1;display:inline-grid;position:absolute;top:-6px;right:-12px}.onboard-gate{z-index:var(--z-overlay);background:var(--dark-bg);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.onboard-gate-body{padding:var(--sp-8) var(--sp-6) var(--sp-6);flex:1}.onboard-gate-kicker{margin:0 0 var(--sp-2);color:var(--dark-note);font-size:var(--fs-cap);letter-spacing:.08em}.onboard-gate-title{margin:0 0 var(--sp-3);font-family:var(--font-display);color:var(--dark-text);font-size:30px;font-weight:400;line-height:1.2}.onboard-gate-lead{margin:0 0 var(--sp-6);color:var(--dark-text-2);font-size:var(--fs-sub);line-height:1.55}.onboard-gate .setup-card{margin-bottom:var(--sp-4)}.onboard-platform-steps{gap:var(--sp-2);margin:0 0 var(--sp-4);counter-reset:onboard-step;padding:0;list-style:none;display:grid}.onboard-platform-steps li{counter-increment:onboard-step;gap:var(--sp-3);color:var(--dark-text-3);font-size:var(--fs-sub);line-height:1.5;display:flex}.onboard-platform-steps li:before{content:counter(onboard-step);background:var(--dark-card-line);width:22px;height:22px;color:var(--dark-hl);font-size:var(--fs-meta);border-radius:999px;flex-shrink:0;place-items:center;font-weight:700;display:grid}.onboard-gate .setup-card .primary-btn{width:100%;min-height:54px}.onboard-notify-status{align-items:center;gap:var(--sp-2);color:var(--ok);font-size:var(--fs-input);font-weight:600;display:flex}.onboard-notify-status.denied{color:var(--warn-text)}.onboard-notify-hint{color:var(--dark-note);font-size:var(--fs-cap);text-align:center;margin:0;line-height:1.55}.onboard-gate-skip{width:100%;padding:var(--sp-5) var(--sp-6) calc(var(--sp-6) + env(safe-area-inset-bottom));color:var(--dark-note);font-size:var(--fs-cap);text-align:center;cursor:pointer;background:0 0;border:none;display:block}
