:root{--ink: #211f1c;--ink-2: #6c6a64;--ink-3: #9b988f;--bg: #ffffff;--shell: #f4f3f1;--line: #ececea;--surface: #faf9f7;--ai: #f3f2ef;--danger: #e2554f;--danger-bg: #fbe9e8;--mic: #f1f0ec;--g0: #e8517a;--g1: #ff8a5b;--font: "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);font-family:var(--font);font-size:16px;line-height:1.5;color:var(--ink);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}svg{display:block}.app{position:relative;display:flex;flex-direction:column;width:100%;height:100dvh;background:var(--bg);overflow:hidden}.mockbar{flex:none;background:#fff4d6e6;color:#8a6d1a;font-size:11px;letter-spacing:.02em;text-align:center;padding:4px}.screen{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg);animation:screen-in .26s ease}.engine-badge{position:fixed;top:6px;right:8px;z-index:40;font-size:11px;line-height:1;padding:3px 7px;border-radius:999px;color:var(--ink, #333);background:#0000000f;opacity:.5;letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.center{align-items:center;justify-content:center;color:var(--ink-2)}.avatar{border-radius:50%;background:linear-gradient(140deg,var(--g0),var(--g1));display:grid;place-items:center;color:#fff;font-weight:600;flex:none;overflow:hidden;background-size:cover;background-position:center}.avatar img{width:100%;height:100%;object-fit:cover}.ring{padding:8px;border-radius:50%;border:1px solid var(--line)}.iconbtn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--ink-2);transition:background .15s,color .15s}.iconbtn:hover{background:var(--surface);color:var(--ink)}.iconbtn svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none}.iconbtn.filled svg{stroke:none;fill:currentColor}.topbar{height:60px;flex:none;display:flex;align-items:center;gap:10px;padding:0 10px}.topbar .grow{flex:1}.topbar .title{font-size:17px;font-weight:600}.list-head{padding:22px 22px 12px}.list-head h1{margin:0;font-size:26px;font-weight:600;letter-spacing:-.01em}.list-head p{margin:4px 0 0;font-size:14px;color:var(--ink-3)}.clist{flex:1;overflow-y:auto;padding:6px 12px 24px}.clist::-webkit-scrollbar{width:0}.ccard{display:flex;align-items:center;gap:13px;padding:12px;border-radius:16px;cursor:pointer;transition:background .15s,transform .07s}.ccard:hover{background:var(--surface)}.ccard:active{transform:scale(.99)}.ccard .avatar{width:54px;height:54px;font-size:22px}.ccard .meta{min-width:0;flex:1}.ccard .cname{font-size:16.5px;font-weight:600;letter-spacing:-.01em}.ccard .cdesc{margin-top:2px;font-size:13px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ccard .chev{color:#d3d0c9;flex:none}.ccard .chev svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none}.landing-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 24px 12px}.landing-body .ring{margin-bottom:22px}.landing-av{width:168px;height:168px;font-size:58px}.landing-name{margin:0 0 8px;font-size:32px;font-weight:500;letter-spacing:-.015em;text-align:center}.landing-tag{margin:0 0 30px;font-size:14px;color:var(--ink-3);text-align:center;max-width:280px;line-height:1.5}.actions{display:flex;flex-direction:column;gap:12px;width:248px}.btn{height:52px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:16px;font-weight:500;transition:transform .07s,opacity .15s,background .15s}.btn:active{transform:scale(.98)}.btn svg{width:20px;height:20px}.btn-primary{background:var(--ink);color:#fdfdfb}.btn-primary svg{fill:#fdfdfb}.btn-secondary{background:#fff;color:var(--ink);border:1px solid #e3e1db}.btn-secondary:hover{background:var(--surface)}.btn-secondary svg{fill:none;stroke:var(--ink);stroke-width:1.8}.landing-foot{padding:0 0 26px;font-size:12px;color:var(--ink-3);text-align:center}.clear-convo{background:none;border:none;padding:0;font:inherit;color:var(--ink-3);cursor:pointer;text-decoration:underline;text-underline-offset:2px;opacity:.7}.clear-convo:hover{opacity:1}.chat-wrap{flex:1;min-height:0;width:100%;max-width:760px;align-self:center;display:flex;flex-direction:column}.chat-head{height:62px;flex:none;display:flex;align-items:center;gap:11px;padding:0 8px 0 4px;border-bottom:1px solid var(--line)}.chat-head .avatar{width:38px;height:38px;font-size:16px}.chat-head .meta{line-height:1.15}.chat-head .nm{font-size:16px;font-weight:600}.chat-head .st{font-size:12px;color:var(--ink-3)}.chat-head .st.on{color:var(--g0)}.msgs{flex:1;overflow-y:auto;padding:18px 14px 10px;display:flex;flex-direction:column;gap:13px;scroll-behavior:smooth}.msgs::-webkit-scrollbar{width:0}.msg{display:flex;gap:9px;max-width:84%}.msg.me{align-self:flex-end;flex-direction:row-reverse}.msg.ai{align-self:flex-start}.msg .avatar{width:32px;height:32px;font-size:14px;align-self:flex-start}.bubble{padding:11px 15px;border-radius:20px;font-size:15.5px;line-height:1.5;word-break:break-word;white-space:pre-wrap}.me .bubble{background:linear-gradient(135deg,var(--g0),var(--g1));color:#fff;border-bottom-right-radius:7px}.ai .bubble{background:var(--ai);color:var(--ink);border-bottom-left-radius:7px}.vbubble{white-space:normal;padding:9px 13px;width:fit-content}.voice{display:flex;align-items:center;gap:11px;min-width:120px;cursor:pointer;-webkit-user-select:none;user-select:none}.wave{display:flex;align-items:center;gap:2.5px;height:22px;flex:1}.wave i{width:2.5px;border-radius:2px;background:var(--ink-3)}.voice.playing .wave i{background:var(--ink);animation:eq .7s ease-in-out infinite}.wave i:nth-child(3n){animation-delay:.1s}.wave i:nth-child(3n+1){animation-delay:.25s}.wave i:nth-child(4n){animation-delay:.4s}@keyframes eq{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1.5)}}.voice .dur{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;min-width:28px}.voice.synth{animation:synthPulse 1.1s ease-in-out infinite}.voice.synth .dur{letter-spacing:1px}@keyframes synthPulse{0%,to{opacity:.55}50%{opacity:.9}}.voice.error .dur{color:#d9534f;font-size:15px;font-weight:600}.typing{display:inline-flex;gap:5px;padding:4px 2px}.typing i{width:7px;height:7px;border-radius:50%;background:#c2c0b8;animation:bnc 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes bnc{0%,60%,to{transform:translateY(0);opacity:.55}30%{transform:translateY(-4px);opacity:1}}.composer{flex:none;display:flex;align-items:center;gap:9px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}.composer .field{flex:1;display:flex;align-items:center;background:#f4f3f0;border-radius:999px;padding:0 6px 0 18px;height:48px}.composer input{flex:1;border:none;background:none;outline:none;font-size:16px;color:var(--ink);height:100%}.composer input::placeholder{color:var(--ink-3)}.send{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--g0),var(--g1));display:grid;place-items:center;flex:none;transition:opacity .15s,transform .07s}.send:active{transform:scale(.92)}.send:disabled{opacity:.4}.send svg{width:18px;height:18px;stroke:#fff;stroke-width:2.2;fill:none}.call-body{flex:1;display:flex;flex-direction:column;align-items:center;padding:18px 24px 0}.call-pill{margin-top:14px;height:36px;display:inline-flex;align-items:center;gap:8px;padding:0 15px;border:1px solid var(--line);border-radius:999px;font-size:14px;color:var(--ink-2);font-variant-numeric:tabular-nums;visibility:hidden}.call-pill.show{visibility:visible}.call-pill svg{width:14px;height:14px;fill:var(--ink-2)}.call-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.call-center .ring{margin-bottom:22px}.call-av{width:158px;height:158px;font-size:54px}.call-name{margin:0 0 12px;font-size:32px;font-weight:500;letter-spacing:-.015em}.call-state{font-size:16px;color:var(--ink-2);height:24px;display:flex;align-items:center;gap:7px}.dots{display:inline-flex;gap:4px}.dots i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.3;animation:blink 1.2s infinite}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.call-ring.speaking{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #211f1c00}50%{box-shadow:0 0 0 12px #211f1c0d}}.call-hint{font-size:12px;color:var(--ink-3);margin-top:10px;height:16px}.call-ctrls{display:flex;gap:26px;padding:22px 0 46px}.cbtn{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;transition:transform .07s,background .15s}.cbtn:active{transform:scale(.95)}.cbtn svg{width:30px;height:30px}.cbtn-mic{background:var(--mic);color:var(--ink)}.cbtn-mic svg{stroke:var(--ink);stroke-width:1.9;fill:none}.cbtn-mic.muted{background:#eceae4}.cbtn-mic.muted svg{stroke:var(--ink-3)}.cbtn-mic.recording{background:var(--danger-bg);animation:micpulse 1.2s ease-in-out infinite}.cbtn-mic.recording svg{stroke:var(--danger)}@keyframes micpulse{0%,to{box-shadow:0 0 #d6454500}50%{box-shadow:0 0 0 10px #d645451f}}.cbtn:disabled{opacity:.5;cursor:default}.cbtn:disabled:active{transform:none}.cbtn-end{background:var(--danger-bg)}.cbtn-end svg{fill:var(--danger)}.recwave{display:flex;align-items:center;justify-content:center;gap:3px;width:100%;height:100%}.recwave span{display:inline-block;width:3px;border-radius:999px;background:var(--ink-3);transform-origin:center;animation:voice-bar-pulse .8s ease-in-out infinite alternate}@keyframes voice-bar-pulse{0%{transform:scaleY(.45)}to{transform:scaleY(1)}}.spin{width:14px;height:14px;border:2px solid #d8d6cf;border-top-color:var(--ink-2);border-radius:50%;animation:spin-rot .8s linear infinite}@keyframes spin-rot{to{transform:rotate(360deg)}}.voice-hint{text-align:center;font-size:12px;color:var(--ink-3);padding:2px 0}.talkbar{flex:1;height:48px;border-radius:999px;background:#f4f3f0;font-size:15.5px;font-weight:500;color:var(--ink-2);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;transition:background .12s,color .12s,transform .08s}.talkbar.pressing{background:#e7e5df;color:var(--ink);transform:scale(.99)}.rec-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:26px;background:#ffffffe6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);-webkit-user-select:none;user-select:none;padding-bottom:calc(env(safe-area-inset-bottom) + 4.5rem);animation:overlay-in .16s ease-out}.rec-overlay-wave{transform:scale(1.6);transform-origin:center;height:36px;display:flex;align-items:center}.rec-overlay p{margin:0;font-size:15px;color:var(--ink-3);transition:color .12s}.rec-overlay p.cancel{color:var(--ink);font-weight:500}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}
