:root{--bg:#eef2f0;--ink:#17211f;--muted:#66736f;--surface:#fbfcf9;--panel:#f4f7f3;--line:#d6ded8;--green:#0f7a5f;--green-dark:#075342;--blue:#2364aa;--red:#b23a3a;--amber:#a96f18;--violet:#6d4fb3}*{box-sizing:border-box}html,body{min-height:100%}body{background:linear-gradient(135deg,#0f7a5f21,transparent 35%),linear-gradient(220deg,#2364aa21,transparent 34%),var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif}button,input{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.45}.phone-shell{place-items:center;min-height:100vh;padding:18px;display:grid}.call-screen{background:#fbfcf9eb;border:1px solid #07534229;border-radius:28px;grid-template-rows:auto auto minmax(180px,1fr) auto auto auto auto;gap:14px;width:min(100%,430px);min-height:min(860px,100vh - 36px);padding:18px;display:grid;position:relative;box-shadow:0 24px 80px #17211f2e}.update-ribbon{color:#fff;background:var(--red);text-align:center;border-radius:16px;margin:-6px -6px 2px;padding:10px 12px;font-size:14px;font-weight:900}.top-bar{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.eyebrow,.bubble-meta,.settings-row,.empty-log span{color:var(--muted);font-size:12px}.eyebrow{text-transform:uppercase;margin:0 0 4px;font-weight:800}h1{letter-spacing:0;margin:0;font-size:26px}.version-badge{color:var(--muted);margin-top:5px;font-size:11px;font-weight:800;display:inline-block}.status-pill{text-align:center;color:#fff;background:var(--muted);border-radius:999px;min-width:76px;padding:8px 10px;font-size:13px;font-weight:800}.status-pill.connecting,.status-pill.connected,.status-pill.listening{background:var(--green)}.status-pill.thinking{background:var(--amber)}.status-pill.speaking{background:var(--violet)}.status-pill.error{background:var(--red)}.avatar-zone{justify-items:center;gap:12px;padding:10px 4px 4px;display:grid}.voice-orb{aspect-ratio:1;background:radial-gradient(circle at 35% 30%,#fefefe,#0000 20%),linear-gradient(145deg,#c7efe3,#0f7a5f);border-radius:50%;place-items:center;width:136px;display:grid;box-shadow:inset 0 -18px 34px #07534238,0 18px 38px #0f7a5f38}.voice-orb span{aspect-ratio:1;background:#ffffffd1;border:1px solid #ffffff9e;border-radius:50%;width:66px}.voice-orb.listening{animation:1.4s ease-in-out infinite pulse}.voice-orb.connected{background:radial-gradient(circle at 35% 30%,#fefefe,#0000 20%),linear-gradient(145deg,#d4f0ea,#2364aa)}.voice-orb.thinking{background:radial-gradient(circle at 35% 30%,#fff8ea,#0000 20%),linear-gradient(145deg,#f6d68d,#a96f18)}.voice-orb.speaking{background:radial-gradient(circle at 35% 30%,#fbf8ff,#0000 20%),linear-gradient(145deg,#d6c6ff,#6d4fb3);animation:.9s ease-in-out infinite speak}.voice-orb.error{background:radial-gradient(circle at 35% 30%,#fff2f2,#0000 20%),linear-gradient(145deg,#efb2b2,#b23a3a)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes speak{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.call-caption{width:100%;min-height:48px;color:var(--green-dark);text-align:center;margin:0;font-weight:700;line-height:1.45}.connection-label{min-height:24px;color:var(--muted);text-align:center;font-size:12px;font-weight:800}.transcript-panel{border:1px solid var(--line);background:var(--panel);border-radius:18px;flex-direction:column;gap:9px;min-height:0;padding:10px;display:flex;overflow-y:auto}.empty-log{text-align:center;place-content:center;gap:6px;min-height:150px;display:grid}.bubble{border:1px solid var(--line);background:#fff;border-radius:16px;width:86%;padding:10px 12px}.bubble.user{background:#eaf2fb;border-color:#2364aa40;align-self:flex-end}.bubble.assistant{background:#edf8f3;border-color:#0f7a5f38;align-self:flex-start}.bubble.system{background:#fafbf8;border-style:dashed;align-self:center;width:100%}.bubble-meta{justify-content:space-between;gap:8px;margin-bottom:5px;display:flex}.bubble p{overflow-wrap:anywhere;margin:0;line-height:1.5}.primary-call,.round-action,.typed-row button,.sample-row button{border-radius:999px;min-height:44px;font-weight:900}.primary-call{color:#fff;background:var(--green);width:100%;min-height:58px;font-size:18px}.call-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.round-action{color:#fff;background:var(--green)}.round-action.primary{background:var(--green)}.round-action.secondary{background:var(--blue)}.round-action.danger{background:var(--red)}.handoff-actions{grid-template-columns:minmax(0,1fr);display:grid}.handoff-button{color:#fff;background:var(--ink);border-radius:12px;min-height:48px;font-size:16px;font-weight:900}.handoff-button.bridge{background:var(--green-dark)}.handoff-panel{background:#f3f8fd;border:1px solid #2364aa40;border-radius:14px;gap:8px;padding:10px;display:grid}.handoff-panel p{color:var(--blue);margin:0;font-size:12px;font-weight:800;line-height:1.35}.handoff-panel textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:116px;color:var(--ink);background:#fff;border-radius:10px;outline:none;padding:9px;font-size:12px;line-height:1.45}.typed-row{bottom:calc(8px + env(safe-area-inset-bottom));z-index:5;background:#fbfcf9f7;border:1px solid #0f7a5f29;border-radius:18px;grid-template-columns:minmax(0,1fr) 58px 64px;align-items:center;gap:8px;padding:8px;display:grid;position:sticky;box-shadow:0 10px 34px #17211f24}.typed-label{color:var(--green-dark);grid-column:1/-1;font-size:12px;font-weight:900}.typed-row input,.focus-row textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;outline:none}.typed-row input{border-radius:999px;min-height:46px;padding:0 15px}.typed-row input:focus,.focus-row textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #0f7a5f21}.typed-row button{color:#fff;background:var(--green-dark)}.typed-row .voice-command-button{background:var(--blue)}.typed-row .voice-command-button[aria-pressed=true]{background:var(--red)}.sample-row{gap:7px;padding-bottom:2px;display:flex;overflow-x:auto}.sample-row button{max-width:220px;color:var(--green-dark);white-space:nowrap;background:#e3f2ec;flex:none;padding:0 12px}.mode-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mode-row button{border:1px solid var(--line);min-height:40px;color:var(--muted);background:#fff;border-radius:999px;font-weight:900}.mode-row button.active{color:#fff;background:var(--green-dark);border-color:#0f7a5f59}.settings-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.settings-row label{color:var(--ink);align-items:center;gap:7px;font-weight:700;display:inline-flex}.settings-row input{accent-color:var(--green)}.focus-row,.pin-row{color:var(--muted);grid-template-columns:70px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;display:grid}.focus-row textarea{resize:vertical;border-radius:16px;min-height:52px;padding:9px 12px;line-height:1.35}.pin-row input{border:1px solid var(--line);min-height:38px;color:var(--ink);background:#fff;border-radius:999px;outline:none;padding:0 12px}.pin-row input:focus{border-color:var(--green);box-shadow:0 0 0 3px #0f7a5f21}@media (max-width:520px){.phone-shell{padding:0;display:block}.call-screen{width:100%;min-height:100vh;padding:12px 10px calc(10px + env(safe-area-inset-bottom));box-shadow:none;border:0;border-radius:0;grid-template-rows:auto auto minmax(170px,1fr) auto auto auto auto}h1{font-size:23px}.voice-orb{width:82px}.avatar-zone{gap:7px;padding-top:2px}.call-caption{min-height:0;font-size:13px}.connection-label{min-height:18px}.typed-row{bottom:calc(6px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) 56px 60px;gap:6px}.sample-row,.mode-row,.focus-row,.pin-row{display:none}.round-action{padding-inline:4px}}.desktop-chat-shell{background:#f7f8f5;grid-template-rows:auto minmax(0,1fr);min-height:100vh;display:grid}.desktop-chat-header{border-bottom:1px solid var(--line);background:#fbfcf9f5;justify-content:space-between;align-items:center;gap:18px;padding:18px 22px;display:flex}.desktop-chat-header h1{font-size:22px}.desktop-chat-health{color:var(--muted);white-space:nowrap;align-items:center;gap:8px;font-size:13px;font-weight:800;display:inline-flex}.mirror-dot{background:var(--green);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #0f7a5f1f}.mirror-dot.error{background:var(--red);box-shadow:0 0 0 4px #b23a3a1f}.desktop-chat-log{min-height:0;padding:22px;overflow:auto}.desktop-chat-empty{height:calc(100vh - 90px);color:var(--muted);place-items:center;font-weight:800;display:grid}.desktop-chat-turn{gap:8px;max-width:980px;margin:0 auto 18px;display:grid}.desktop-chat-meta{color:var(--muted);justify-content:center;gap:12px;font-size:12px;font-weight:800;display:flex}.desktop-chat-bubble{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(78%,760px);padding:12px 14px;box-shadow:0 8px 24px #17211f12}.desktop-chat-bubble strong{color:var(--muted);margin-bottom:5px;font-size:12px;display:block}.desktop-chat-bubble p{white-space:pre-wrap;margin:0;line-height:1.55}.desktop-chat-bubble.user{background:#ecf8f3;border-color:#0f7a5f3d;justify-self:end}.desktop-chat-bubble.assistant{justify-self:start}.desktop-chat-bubble.assistant.running{color:var(--muted)}.desktop-chat-bubble.assistant.failed{background:#fff4f4;border-color:#b23a3a38}@media (max-width:720px){.desktop-chat-header{flex-direction:column;align-items:flex-start}.desktop-chat-log{padding:14px}.desktop-chat-bubble{width:92%}}
