/* Sent vocals: shared with all four composers; local bubble colors stay intact. */
html body .g420-voice-player{--voice-accent:#d1a8f5;display:flex;align-items:center;gap:11px;width:270px;max-width:100%;min-width:0;padding:5px 0;margin:0;position:relative;color:inherit;font:400 12px/1.3 Roboto,system-ui,sans-serif;letter-spacing:0;text-shadow:none}
html body .g420-voice-player .g420-voice-play{display:grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;border-radius:50%;box-shadow:none;background:var(--voice-accent);color:#251832;cursor:pointer}
html body .g420-voice-play svg{width:24px;height:24px;fill:currentColor;display:block;pointer-events:none}
html body .g420-voice-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:0}
html body .g420-voice-track{height:34px;position:relative;min-width:0;isolation:isolate}
html body .g420-voice-wave{display:flex;gap:2px;align-items:center;height:34px;overflow:hidden;pointer-events:none}
html body .g420-voice-wave i{flex:1;min-width:1px;max-width:4px;height:var(--bar,3px);background:var(--voice-accent);opacity:.38;border-radius:2px;transition:opacity .12s}
html body .g420-voice-wave i.is-played{opacity:1}
html body .g420-voice-player input.g420-voice-seek{position:absolute;inset:0;width:100%;height:34px;min-height:0;margin:0;padding:0;opacity:.01;border:0;cursor:pointer;touch-action:pan-y;z-index:1}
html body .g420-voice-track:focus-within{outline:2px solid var(--voice-accent);outline-offset:2px;border-radius:4px}
html body .g420-voice-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;height:21px;font:400 11px/1.3 Roboto,system-ui,sans-serif;color:inherit;opacity:.85}
html body .g420-voice-player .g420-voice-speed{border:0;background:transparent;box-shadow:none;border-radius:8px;padding:3px 5px;min-width:32px;min-height:28px;height:28px;color:inherit;font:600 11px/1 Roboto,system-ui,sans-serif;cursor:pointer;letter-spacing:0}
html body .g420-voice-player .g420-voice-speed:hover{background:#ffffff12}
html body .g420-voice-player .g420-voice-status{font:400 11px/1.3 Roboto,system-ui,sans-serif;color:#ffd2dc;position:absolute;top:100%;left:0;right:0}
html body .g420-voice-player:has(.g420-voice-status:not(:empty)){margin-bottom:22px}
html body .g420-voice-player audio[hidden]{display:none!important}
html body .g420-voice-player button:focus-visible{outline:2px solid #e8d6fa;outline-offset:3px}
html body .g420-voice-player button:disabled{opacity:.45;cursor:default}
/* The entry screen also styles all buttons: keep those rules outside the player. */
html body .g420-voice-player button.g420-voice-play{display:grid!important;place-items:center!important;flex:0 0 44px!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;box-shadow:none!important;background:var(--voice-accent)!important;color:#251832!important;transform:none!important;filter:none!important;text-shadow:none!important}
html body .g420-voice-player button.g420-voice-speed{display:block!important;width:auto!important;min-width:32px!important;min-height:28px!important;height:28px!important;padding:3px 5px!important;margin:0!important;border:0!important;border-radius:8px!important;background:transparent!important;color:inherit!important;box-shadow:none!important;font:600 11px/1 Roboto,system-ui,sans-serif!important;letter-spacing:0!important;text-shadow:none!important}
@media(max-width:420px){html body .g420-voice-player{width:245px;gap:9px}}
@media(prefers-reduced-motion:reduce){html body .g420-voice-wave i{transition:none}}
