:root{color:#243039;background:#f7f4ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;--bg: #f7f4ed;--card: #fffdf8;--primary: #3e7c78;--primary-deep: #1f5960;--secondary: #e3ece8;--accent: #f4a261;--accent-soft: #fff0e5;--text: #243039;--muted: #6d7a84;--line: rgba(62, 124, 120, .18);--shadow: 0 22px 54px rgba(83, 68, 46, .09)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 14% 8%,rgba(246,193,119,.2),transparent 27%),radial-gradient(circle at 86% 5%,rgba(227,236,232,.95),transparent 31%),linear-gradient(180deg,#fffaf0,#f7f4ed 52%,#eef4ed);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}button,input,select{font:inherit}button{border:0;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed}input{width:100%;border:0;outline:0;color:var(--text);background:transparent}select{border:0;outline:0;color:var(--text);background:transparent}h1,p{margin:0}.app-shell{position:relative;display:flex;width:min(100%,460px);min-height:100dvh;margin:0 auto;padding:max(30px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));flex-direction:column;overflow:hidden}.app-shell:before,.app-shell:after{position:absolute;z-index:-1;content:"";pointer-events:none}.app-shell:before{right:-78px;bottom:-112px;width:244px;height:244px;border-radius:50%;background:#e3ece8c2}.app-shell:after{left:-60px;top:44%;width:140px;height:140px;border-radius:50%;background:#fff0e59e;filter:blur(4px)}.brand{display:flex;align-items:center;justify-content:center;gap:14px}.brand.compact{justify-content:flex-start}.brand.compact .logo-mark{width:42px;height:42px}.brand strong{display:block;color:var(--primary-deep);font-size:31px;font-weight:760;line-height:1;letter-spacing:0}.brand p{margin:9px 0 0;color:var(--muted);font-size:15px}.logo-mark{width:58px;height:58px;flex:0 0 auto;color:var(--primary);filter:drop-shadow(0 10px 16px rgba(62,124,120,.1))}.logo-mark path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:4.2}.identity-screen{justify-content:center}.identity-copy,.home-copy,.feedback-copy{margin-top:70px;text-align:center}.identity-copy h1,.home-copy h1,.feedback-copy h1{color:var(--primary-deep);font-size:40px;font-weight:780;line-height:1.15;letter-spacing:0}.identity-copy p,.home-copy span,.feedback-copy p{display:block;margin-top:16px;color:var(--muted);font-size:17px;line-height:1.55}.identity-form{display:flex;margin-top:42px;flex-direction:column;gap:14px}.identity-form input{height:68px;padding:0 22px;border:1px solid rgba(62,124,120,.2);border-radius:20px;background:#fffdf8e6;box-shadow:inset 0 1px #ffffffb8;font-size:17px}.identity-form input::placeholder{color:#9aa3a8}.primary-button,.secondary-button{display:inline-flex;min-height:64px;width:100%;align-items:center;justify-content:center;gap:10px;border-radius:20px;font-size:18px;font-weight:720;transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease}.primary-button{color:#fff;background:linear-gradient(135deg,#3e7c78,#216267);box-shadow:0 18px 34px #3e7c783d}.secondary-button{border:1px solid rgba(62,124,120,.28);color:var(--primary-deep);background:#fffdf8b8}.primary-button:disabled,.secondary-button:disabled{opacity:.58}.primary-button:not(:disabled):active,.secondary-button:not(:disabled):active,.call-orb-button:active,.rescue-chip:active{transform:scale(.985)}.form-error{margin:0;color:#c46438;font-size:14px;line-height:1.45}.center-error{margin-top:18px;text-align:center}.call-error{display:flex;margin-top:16px;padding:13px 15px;flex-direction:column;gap:5px;border:1px solid rgba(196,100,56,.16);border-radius:18px;color:#b9532f;background:#fff0e5b3;text-align:center}.call-error strong{font-size:15px;line-height:1.35}.call-error span{color:#8a6656;font-size:13px;line-height:1.45}.home-copy{margin-top:66px}.settings-button{position:absolute;top:max(22px,env(safe-area-inset-top));right:22px;display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(62,124,120,.14);border-radius:999px;color:var(--primary-deep);background:#fffdf8c7}.home-copy p{margin:0 0 16px;color:#c76539;font-size:17px;font-weight:760}.home-copy h1{font-size:48px}.call-orb-button{display:flex;width:min(80vw,330px);margin:34px auto 0;padding:0;flex-direction:column;align-items:center;border-radius:32px;background:transparent}.call-orb-visual{position:relative;display:grid;width:min(64vw,275px);aspect-ratio:1;place-items:center}.call-orb-visual .voice-loop{width:100%;margin:0}.phone-badge{position:absolute;inset:50% auto auto 50%;display:grid;width:92px;height:92px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,#3e7c78,#216267);box-shadow:0 18px 34px #3e7c783d;transform:translate(-50%,-50%)}.call-button-label{display:inline-flex;width:min(100%,260px);min-height:52px;margin-top:10px;padding:12px 22px;align-items:center;justify-content:center;border:1px solid rgba(62,124,120,.16);border-radius:999px;color:var(--primary-deep);background:#fffdf8c7;box-shadow:0 14px 30px #53442e14;font-size:17px;font-weight:760;line-height:1.25}.recent-practice{display:flex;margin-top:22px;flex-direction:column;gap:6px;text-align:center}.recent-practice span{color:#c76539;font-size:14px;font-weight:760}.recent-practice strong{color:var(--primary-deep);font-size:16px;font-weight:720;line-height:1.35}.continue-button{align-self:center;padding:8px 16px;border-radius:999px;color:#fff;background:var(--primary);font-size:14px;font-weight:760}.scenario-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:20px}.scenario-chip{min-width:0;min-height:48px;padding:8px;border:1px solid rgba(62,124,120,.16);border-radius:16px;color:var(--primary-deep);background:#fffdf8c2;font-size:14px;font-weight:760;line-height:1.2}.history-list{display:flex;margin-top:18px;flex-direction:column;gap:8px}.history-list div{display:flex;min-width:0;padding:12px 14px;flex-direction:column;gap:4px;border:1px solid rgba(62,124,120,.12);border-radius:16px;background:#fffdf8ad}.history-list span{color:#c76539;font-size:12px;font-weight:760}.history-list strong{color:var(--primary-deep);font-size:14px;line-height:1.35}.starter-card{display:flex;margin-top:28px;padding:22px;flex-direction:column;gap:10px;border:1px solid rgba(244,162,97,.2);border-radius:24px;background:#fffdf8e0;box-shadow:var(--shadow);text-align:center}.starter-card strong{color:var(--primary-deep);font-size:20px;line-height:1.4}.starter-card span{color:var(--muted);font-size:15px}.warmup-card{gap:8px}.warmup-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:12px}.compact-button{min-height:46px;padding:0 14px;gap:8px;border-radius:999px;font-size:15px}.promise-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:auto;padding-top:42px}.promise-row span{min-width:0;color:var(--muted);font-size:15px;line-height:1.35;text-align:center}.promise-row span+span{border-left:1px solid rgba(62,124,120,.12)}.voice-loop{position:relative;display:grid;width:min(68vw,285px);aspect-ratio:1;margin:0 auto;place-items:center;color:var(--primary)}.voice-loop.compact{width:92px;margin:0}.voice-ring{position:absolute;inset:9%;border:3px solid transparent;border-top-color:var(--accent);border-right-color:#3e7c7859;border-bottom-color:#3e7c7899;border-left-color:#f4a26133;border-radius:50%;filter:drop-shadow(0 18px 28px rgba(83,68,46,.08))}.voice-loop.active .voice-ring{animation:voice-breathe 2.6s ease-in-out infinite}.voice-loop.speaking .voice-ring{animation-duration:1.35s}.voice-tail{position:absolute;right:4%;bottom:22%;width:42%;height:30%;border-right:2px solid rgba(62,124,120,.5);border-bottom:2px solid rgba(62,124,120,.42);border-radius:0 0 70%;transform:rotate(-23deg)}.voice-bars{display:inline-flex;align-items:center;gap:8px}.voice-loop.compact .voice-bars{gap:4px}.voice-bars i{display:block;width:7px;height:25px;border-radius:999px;background:linear-gradient(180deg,var(--accent),var(--primary))}.voice-loop.compact .voice-bars i{width:4px;height:15px}.voice-bars i:nth-child(1),.voice-bars i:nth-child(5){height:13px;opacity:.7}.voice-bars i:nth-child(2),.voice-bars i:nth-child(4){height:24px;opacity:.78}.voice-bars i:nth-child(3){height:50px}.voice-loop.compact .voice-bars i:nth-child(3){height:28px}.call-screen{padding-inline:20px}.call-header{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:16px;color:var(--muted)}.call-header strong{display:inline-flex;align-items:center;gap:9px;color:var(--primary-deep);font-size:22px}.call-header strong:before{display:block;width:10px;height:10px;content:"";border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px #f4a26124}.call-header span{color:var(--muted);font-size:20px;font-variant-numeric:tabular-nums}.call-screen .voice-loop{margin-top:34px}.call-status{margin-top:26px;text-align:center}.call-status h1{color:var(--primary-deep);font-size:32px;font-weight:760;line-height:1.2}.call-status p{margin-top:10px;color:var(--muted);font-size:16px;line-height:1.55}.call-sentence-card{margin-top:24px;padding:24px 20px;border:1px solid rgba(244,162,97,.22);border-radius:26px;background:#fffdf8e6;box-shadow:var(--shadow);text-align:center}.call-sentence-card span{display:inline-flex;padding:6px 13px;border-radius:999px;color:#c76539;background:var(--accent-soft);font-size:14px;font-weight:700}.call-sentence-card strong{display:block;margin-top:18px;color:var(--primary-deep);font-size:30px;line-height:1.32;letter-spacing:0}.call-sentence-card p{margin:18px 0 0;padding-top:18px;border-top:1px dashed rgba(62,124,120,.18);color:var(--muted);font-size:16px}.mode-pill{align-self:center;margin-top:14px;padding:7px 14px;border-radius:999px;color:#c76539;background:var(--accent-soft);font-size:14px;font-weight:760}.turn-tools{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:14px}.turn-pill{align-self:center;margin-top:0;padding:7px 14px;border-radius:999px;font-size:14px;font-weight:760;line-height:1.3}.turn-pill.listening{color:#c76539;background:var(--accent-soft)}.turn-pill.speaking{color:var(--primary-deep);background:#e3ece8c7}.done-nudge-button{min-height:34px;padding:7px 13px;border:1px solid rgba(62,124,120,.2);border-radius:999px;color:#fff;background:var(--primary);font-size:13px;font-weight:760;box-shadow:0 10px 18px #3e7c7829}.rescue-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:24px}.rescue-chip{display:flex;min-height:72px;align-items:center;justify-content:center;flex-direction:column;gap:8px;border:1px solid rgba(62,124,120,.13);border-radius:18px;color:var(--primary-deep);background:#fffdf8bd;font-size:14px;font-weight:700}.rescue-chip svg{color:var(--primary)}.rescue-chip small{color:#8fa09f;font-size:11px;font-weight:680;line-height:1}.rescue-chip:disabled{opacity:1;color:#8aa09d;background:#f2f6f1ad;box-shadow:none}.rescue-chip[data-active=true]{border-color:#f4a2617a;color:#c76539;background:#fff0e5c7;box-shadow:0 12px 24px #f4a2611f}.rescue-chip[data-active=true] svg{color:#c76539}.rescue-chip:disabled svg{color:#8aa09d}.quick-action-notice{align-self:center;margin-top:12px;padding:9px 14px;border:1px solid rgba(244,162,97,.18);border-radius:999px;color:#c76539;background:#fff0e5a3;font-size:13px;font-weight:760;line-height:1.3;text-align:center}.call-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-top:auto;padding-top:30px;justify-items:center}.round-button{display:grid;width:78px;height:78px;place-items:center;border-radius:999px}.round-button.secondary,.round-button.mic{border:1px solid rgba(62,124,120,.16);color:var(--primary-deep);background:#f4f7f0;box-shadow:0 12px 24px #53442e14}.round-button.hangup{width:88px;height:88px;color:#fff;background:linear-gradient(135deg,#ff9b68,#f26d4a);box-shadow:0 16px 32px #f4784c47}.round-button.live-mic{cursor:default}.audio-tip{margin:-4px 0 0;color:var(--muted);font-size:.86rem;text-align:center}.feedback-screen{justify-content:center}.feedback-copy{margin-top:76px}.feedback-card{display:grid;grid-template-columns:1fr;gap:1px;margin-top:34px;padding:18px;border:1px solid rgba(244,162,97,.18);border-radius:26px;background:#fffdf8e6;box-shadow:var(--shadow)}.feedback-card div{display:grid;grid-template-columns:40px 1fr;gap:6px 14px;align-items:center;padding:14px 6px}.feedback-card div+div{border-top:1px solid rgba(62,124,120,.12)}.feedback-card svg{grid-row:span 2;color:var(--primary)}.feedback-card span{color:var(--muted);font-size:14px}.feedback-card strong{color:var(--primary-deep);font-size:19px;line-height:1.28}.bottom-actions{display:flex;margin-top:34px;flex-direction:column;gap:12px}.settings-screen{justify-content:center}.settings-copy{margin-top:54px;text-align:center}.settings-copy h1{color:var(--primary-deep);font-size:40px;font-weight:780;line-height:1.15}.settings-copy p{margin-top:12px;color:var(--muted);font-size:16px}.settings-list{display:flex;margin-top:32px;flex-direction:column;gap:10px}.settings-list div,.settings-list button{display:grid;grid-template-columns:34px 1fr;gap:4px 12px;align-items:center;width:100%;padding:16px;border:1px solid rgba(62,124,120,.14);border-radius:18px;color:var(--primary-deep);background:#fffdf8b8;text-align:left}.settings-list svg{grid-row:span 2;color:var(--primary)}.settings-list span{font-size:15px;font-weight:760}.settings-list strong{color:var(--muted);font-size:13px;font-weight:520;line-height:1.35}.admin-shell{width:min(100%,1120px);min-height:100dvh;margin:0 auto;padding:28px;color:var(--text)}.admin-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.admin-header span{display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-size:14px;font-weight:760}.admin-header h1{margin-top:8px;color:var(--primary-deep);font-size:32px;line-height:1.1}.admin-icon-button,.admin-token-form button,.admin-actions button,.admin-tabs button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(62,124,120,.16);border-radius:12px;color:var(--primary-deep);background:#fffdf8cc;font-size:14px;font-weight:760}.admin-token-form{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;margin-top:22px}.admin-token-form input{min-height:48px;padding:0 14px;border:1px solid rgba(62,124,120,.16);border-radius:12px;background:#fffdf8db}.admin-error{margin:14px 0 0;padding:12px 14px;border:1px solid rgba(196,100,56,.18);border-radius:12px;color:#b9532f;background:#fff0e5b8;font-size:14px}.admin-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:22px}.admin-metrics div{display:flex;min-width:0;min-height:112px;padding:14px;flex-direction:column;justify-content:space-between;border:1px solid rgba(62,124,120,.12);border-radius:12px;background:#fffdf8b8}.admin-metrics svg{color:var(--primary)}.admin-metrics span{color:var(--muted);font-size:13px}.admin-metrics strong{color:var(--primary-deep);font-size:24px;line-height:1.1}.admin-funnel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.admin-funnel div{display:flex;min-height:74px;padding:14px;flex-direction:column;justify-content:space-between;border:1px solid rgba(244,162,97,.18);border-radius:12px;background:#fff0e575}.admin-funnel span{color:#8a6656;font-size:13px;font-weight:700}.admin-funnel strong{color:#c76539;font-size:22px;line-height:1.1}.admin-filters{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,180px) minmax(150px,180px);gap:10px;margin-top:18px}.admin-filters label{display:grid;min-height:46px;grid-template-columns:22px 1fr;gap:8px;align-items:center;padding:0 12px;border:1px solid rgba(62,124,120,.14);border-radius:12px;color:var(--primary);background:#fffdf8b8}.admin-filters input,.admin-filters select{min-width:0;font-size:14px}.admin-tabs{display:inline-grid;grid-template-columns:repeat(4,minmax(86px,1fr));gap:6px;margin-top:22px;padding:5px;border:1px solid rgba(62,124,120,.12);border-radius:14px;background:#fffdf894}.admin-tabs button{min-height:38px;border-color:transparent;background:transparent}.admin-tabs button.active{color:#fff;background:var(--primary)}.admin-list{display:flex;margin-top:14px;flex-direction:column;gap:10px}.admin-row{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(280px,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid rgba(62,124,120,.12);border-radius:12px;background:#fffdf8bd}.admin-row.compact{grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr)}.admin-row-main{min-width:0}.admin-row-main span,.admin-row-meta span{color:var(--muted);font-size:12px;font-weight:700}.admin-row-main strong{display:block;margin-top:4px;overflow-wrap:anywhere;color:var(--primary-deep);font-size:16px}.admin-row-main p,.admin-row-error{margin-top:5px;overflow-wrap:anywhere;color:var(--muted);font-size:13px;line-height:1.35}.admin-row-error{grid-column:1 / -1;color:#b9532f}.admin-row-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.admin-actions{display:flex;gap:6px;justify-content:flex-end}.admin-actions button{min-height:36px;padding:0 10px}.admin-actions button.danger{color:#b9532f}.admin-row code{display:block;min-width:0;padding:10px 12px;overflow:hidden;border-radius:10px;color:#40515b;background:#e3ece885;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.admin-diagnostics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.admin-diagnostic-card{min-width:0;padding:16px;border:1px solid rgba(62,124,120,.12);border-radius:12px;background:#fffdf8bd}.admin-diagnostic-card.wide{grid-column:span 2}.admin-diagnostic-card h2{display:inline-flex;margin:0 0 12px;align-items:center;gap:8px;color:var(--primary-deep);font-size:17px;line-height:1.2}.admin-diagnostic-card p{color:var(--muted);font-size:14px;line-height:1.45}.admin-ranking-list,.admin-scenario-list{display:flex;flex-direction:column;gap:8px}.admin-ranking-list div,.admin-scenario-list div{display:grid;min-height:38px;align-items:center;gap:8px;border-radius:10px;background:#e3ece86b}.admin-ranking-list div{grid-template-columns:1fr auto;padding:0 10px}.admin-scenario-list div{grid-template-columns:1.2fr repeat(4,minmax(0,1fr));padding:10px}.admin-ranking-list span,.admin-scenario-list span{min-width:0;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.admin-ranking-list strong,.admin-scenario-list strong{min-width:0;overflow:hidden;color:var(--primary-deep);font-size:14px;text-overflow:ellipsis;white-space:nowrap}@keyframes voice-breathe{0%,to{transform:scale(.98) rotate(0);opacity:.86}50%{transform:scale(1.04) rotate(3deg);opacity:1}}@media(max-height:780px){.app-shell{padding-inline:20px}.identity-copy,.home-copy,.feedback-copy{margin-top:42px}.home-copy h1{font-size:42px}.call-orb-button{width:min(76vw,292px);margin-top:24px}.call-orb-visual{width:min(56vw,230px)}.phone-badge{width:84px;height:84px}.call-button-label{min-height:48px;margin-top:6px;padding:10px 18px;font-size:15px}.voice-loop{width:min(56vw,230px)}.call-screen .voice-loop{margin-top:20px}.call-status{margin-top:18px}.call-sentence-card{margin-top:16px;padding:20px 18px}.call-sentence-card strong{font-size:25px}.rescue-grid{margin-top:16px}.rescue-chip{min-height:66px;gap:6px}.round-button{width:68px;height:68px}.round-button.hangup{width:78px;height:78px}}@media(max-width:860px){.admin-shell{padding:20px}.admin-header{align-items:flex-start;flex-direction:column}.admin-token-form{grid-template-columns:1fr}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-funnel,.admin-filters,.admin-diagnostics{grid-template-columns:1fr}.admin-diagnostic-card.wide{grid-column:auto}.admin-scenario-list div{grid-template-columns:1fr 1fr}.admin-row,.admin-row.compact{grid-template-columns:1fr}.admin-actions{justify-content:flex-start;flex-wrap:wrap}}@media(max-width:374px){.app-shell{padding-inline:18px}.brand strong{font-size:27px}.identity-copy h1,.feedback-copy h1{font-size:34px}.home-copy h1{font-size:40px}.call-orb-button{width:min(82vw,300px)}.call-button-label{width:100%}.rescue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scenario-row{grid-template-columns:1fr}.promise-row span{font-size:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
