.voice-button.voice-live-control{display:inline-flex;flex-direction:column;gap:1rem;min-width:12rem;padding:1rem;background:transparent;border:0;border-radius:1rem;color:#a2f5dc;box-shadow:none}
.voice-button.voice-live-control.is-listening{background:transparent;color:#a2f5dc;animation:none}
.voice-button.voice-live-control:focus-visible{outline:3px solid #a2f5dc;outline-offset:5px}
.voice-button.voice-live-control>.live-mic{display:grid;place-items:center;position:relative;width:6rem;height:6rem;border-radius:50%;background:radial-gradient(circle at 35% 25%,#a6f8df,#60dcc0 65%,#2eaa92);color:#102d2b;font-size:1rem;box-shadow:0 .5rem 2rem #041b2266}
.live-mic>svg{width:2.35rem;height:2.35rem;margin-bottom:.5rem}
.live-mic::before,.live-mic::after{content:"";position:absolute;inset:-.5rem;border:1px solid #8de6d14d;border-radius:50%;pointer-events:none}
.live-mic::after{inset:-.8rem;border:2px solid transparent}
.voice-button.voice-live-control>.voice-control-label{display:block;width:auto;height:auto;border-radius:0;background:transparent;color:inherit;font-size:.95rem;font-weight:750}
.voice-rhythm{position:absolute;bottom:1rem;display:flex;align-items:center;gap:3px;height:10px}
.voice-rhythm i{display:block;width:3px;height:4px;border-radius:2px;background:#155e52}
.voice-button[data-voice-state="listening"] .live-mic{animation:ellie-mic-breathe 2.4s ease-in-out infinite}
.voice-button[data-voice-state="listening"] .live-mic::before{animation:ellie-mic-listen 2.4s ease-out infinite}
.voice-button[data-voice-state="speaking"] .voice-rhythm i,.voice-button[data-voice-state="listening"] .voice-rhythm i{animation:ellie-mic-wave .7s ease-in-out infinite alternate}
.voice-rhythm i:nth-child(2){animation-delay:.12s!important}.voice-rhythm i:nth-child(3){animation-delay:.25s!important}.voice-rhythm i:nth-child(4){animation-delay:.08s!important}.voice-rhythm i:nth-child(5){animation-delay:.2s!important}
.voice-button[data-voice-state="working"] .live-mic::after,.voice-button[data-voice-state="thinking"] .live-mic::after,.voice-button[data-voice-state="connecting"] .live-mic::after{border-top-color:#a2f5dc;border-right-color:#a2f5dc55;animation:ellie-mic-work 1.2s linear infinite}
.voice-button[data-voice-state="working"] .live-mic,.voice-button[data-voice-state="thinking"] .live-mic{animation:ellie-mic-breathe 2.4s ease-in-out infinite}
.voice-button[data-voice-state="error"] .live-mic::before{border-color:#ffb2b2}
.voice-status[data-state="working"],.voice-status[data-state="speaking"]{color:#a2f5dc}
.voice-button.voice-live-control.compact{min-width:8rem;padding:.7rem;gap:.7rem}
.voice-button.voice-live-control.compact>.live-mic{width:3.3rem;height:3.3rem}.compact .live-mic>svg{width:1.5rem;height:1.5rem;margin:0}.compact .voice-rhythm{display:none}
@keyframes ellie-mic-breathe{50%{transform:scale(1.04);box-shadow:0 .4rem 2rem #6ae3c633}}
@keyframes ellie-mic-listen{0%{transform:scale(.98);opacity:.8}100%{transform:scale(1.14);opacity:.15}}
@keyframes ellie-mic-wave{to{height:10px}}
@keyframes ellie-mic-work{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.voice-button .live-mic,.voice-button .live-mic::before,.voice-button .live-mic::after,.voice-button .voice-rhythm i{animation:none!important}}
@media(max-width:480px){.voice-console{padding:1.25rem}.voice-button.voice-live-control{min-width:10rem}.voice-button.voice-live-control.compact{min-width:7rem}}
