:root{--bg:#eef4f3;--ink:#12302f;--mute:#5b7473;--call:#1b6b68;--ring:#7fc8be;--end:#b3413a}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Vazirmatn,Tahoma,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;text-align:center}main{width:min(100%,620px);display:flex;flex-direction:column;align-items:center;gap:18px}h1{font-size:1.5rem;font-weight:800;margin:0}p{margin:0;color:var(--mute)}.stage{position:relative;width:200px;height:200px;display:grid;place-items:center}.ring{position:absolute;inset:0;border-radius:50%;background:var(--ring);opacity:.35;transform:scale(var(--lv,1));transition:transform .08s linear}.on .ring{opacity:.5}.speaking .ring{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.25)}}button{font-family:inherit;position:relative;border:0;color:#fff;background:var(--call);cursor:pointer;padding:12px 20px;border-radius:12px}.stage button{width:128px;height:128px;border-radius:50%;display:grid;place-items:center;padding:0}.on button{background:var(--end)}.on button svg{transform:rotate(135deg)}svg{width:52px;height:52px;fill:#fff;transition:transform .25s}#status{min-height:1.6em;font-weight:600}#transcript{width:100%;max-height:220px;overflow:auto;text-align:right;background:#fff9;border-radius:16px;padding:12px}#transcript p{padding:7px 2px;color:var(--ink)}.composer{display:flex;width:100%;gap:8px}.composer input{flex:1;min-width:0;padding:12px;border:1px solid #c9d8d6;border-radius:12px;font:inherit}small{color:var(--mute)}@media(prefers-reduced-motion:reduce){.speaking .ring{animation:none}}
/* Voice conversation transcript and replay controls */
.message{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:8px 2px;border-bottom:1px solid #e5eeee;text-align:right}
.message p{width:100%;line-height:1.8}
.message.user{align-items:flex-end}
.replay{padding:7px 12px;border-radius:9px;font-size:.88rem}
#btn:disabled,#send:disabled{opacity:.65;cursor:wait}
#voice-hint{line-height:1.8}
