:root{font-family:Inter,system-ui,sans-serif;color:#173c3a;background:#f3f7f2;line-height:1.6}*{box-sizing:border-box}body{margin:0}header{max-width:1120px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:22px;gap:16px}a{color:#086b61}header a:first-child{font-size:24px;font-weight:850;text-decoration:none;color:#173c3a}header span{color:#008a79}main{max-width:1000px;margin:24px auto;padding:0 22px}.intro{max-width:760px}.eyebrow{font-size:12px;letter-spacing:1.3px;font-weight:700;color:#087569}h1{font-size:clamp(36px,6vw,58px);line-height:1.15;letter-spacing:-1.5px}h1 span{color:#078171}.session,#voice-summary{margin:28px 0;padding:28px;background:white;border:1px solid #d7e6de;border-radius:24px;box-shadow:0 12px 45px #164c3c08}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}select{max-width:100%;min-height:44px;border:1px solid #b8d2c7;border-radius:10px;padding:8px;background:white}.toolbar span,.privacy{font-size:12px;color:#54716c}.orb{margin:30px auto 15px;width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:#dcf2e6;color:#08796b;font-size:44px}#voice-state,#voice-help{text-align:center}#voice-state{font-size:25px}.controls{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0}button{min-height:46px;border-radius:10px;padding:10px 17px;background:white;border:1px solid #88b4a6;color:#075c53;font:600 14px system-ui;cursor:pointer}button.primary{background:#087f71;color:white;border-color:#087f71}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:3px solid #d9a244;outline-offset:3px}#voice-transcript{max-height:380px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;margin:22px 0;overflow-wrap:anywhere}.turn{background:#eef5ef;padding:14px 17px;border-radius:14px;max-width:94%;white-space:pre-wrap}.turn.user{background:#0d6d60;color:white;align-self:flex-end}#live-transcript{min-height:25px;color:#527971;font-style:italic}form{display:grid;gap:9px}textarea{width:100%;min-height:100px;border:1px solid #b9d3c8;border-radius:12px;padding:13px;font:16px system-ui;resize:vertical}form button{justify-self:end}.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;margin-top:24px}.consent input{min-width:20px;min-height:20px}.summary-card{padding:16px 0;border-top:1px solid #d7e6de;overflow-wrap:anywhere}footer{max-width:1000px;padding:25px;margin:auto;font-size:12px;color:#51756e}@media(max-width:540px){main{padding:0 14px}.session,#voice-summary{padding:19px;border-radius:18px}.controls{display:grid;grid-template-columns:1fr 1fr}.controls button:first-child{grid-column:1/-1}header{font-size:13px;padding:18px}.turn{max-width:100%}h1{letter-spacing:-.8px}}@media(prefers-reduced-motion:no-preference){body[data-state=listening] .orb{animation:breathe 1.6s ease-in-out infinite}@keyframes breathe{50%{box-shadow:0 0 0 14px #dcf2e660}}}
/* Tap interruption is explicit; no acoustic/full-duplex barge-in is claimed. */
#voice-interruption:not(:empty){padding:10px 13px;border-left:3px solid #a86920;background:#fff5df;color:#5a451f;border-radius:7px;font-size:13px}
#voice-interrupt{border-color:#a86920;color:#754810;background:#fff9ed}
body[data-state=speaking] .orb{background:#d8ede9;color:#086b61}
body[data-state=thinking] .orb{background:#fff0d8;color:#8a5a1a}
body[data-state=completed] .orb{background:#deefdf;color:#286437}
/* Call states: idle, listening, transcribing, thinking, speaking, reconnecting, ended. */
.level{width:140px;height:6px;margin:0 auto 6px;border-radius:3px;background:#e4efe8;overflow:hidden}.level span{display:block;height:100%;width:0;background:#08796b;transition:width .08s linear}
.option{display:flex;gap:10px;align-items:flex-start;font-size:13px;margin:4px 0 8px}.option input{min-width:20px;min-height:20px}
#voice-network{padding:10px 13px;border-left:3px solid #a86920;background:#fff5df;color:#5a451f;border-radius:7px;font-size:13px}
body[data-state=transcribing] .orb{background:#e8eefc;color:#2f4f8a}
body[data-state=reconnecting] .orb{background:#fff0d8;color:#8a5a1a}
body[data-state=ended] .orb{background:#deefdf;color:#286437}
#voice-replay.attention{border-color:#a86920;background:#fff9ed}
