/* A single compact recording control directly below the microphone. */
#meal-dialog .voice-panel,.sport-entry-dialog .voice-panel{padding:0;margin:8px 0 12px;border:0;border-radius:0;background:none;font-size:13px;scroll-margin-block:12px}
#meal-dialog .voice-panel .voice-action,.sport-entry-dialog .voice-panel .voice-action{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;min-height:36px;max-width:100%;padding:8px 12px;border:1px solid #dce1d7;border-radius:9px;background:#f5f7ef;color:#354531;font:inherit;font-size:13px;line-height:1.4;cursor:pointer}
.voice-action [role=status]{overflow-wrap:anywhere}.voice-action time{font-variant-numeric:tabular-nums}
.voice-recording-dot,.voice-stop-label{display:none}
#meal-dialog .voice-panel[data-voice-state=recording] .voice-action,.sport-entry-dialog .voice-panel[data-voice-state=recording] .voice-action{border-color:#d88880;background:#fff0ed;color:#9e2b22}
.voice-panel[data-voice-state=recording] .voice-recording-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:#c73c31;animation:voice-recording-pulse 1.2s ease-in-out infinite}
.voice-panel[data-voice-state=recording] .voice-stop-label{display:inline}
button[data-voice-state=recording],#meal-dialog #voice-open[data-voice-state=recording]{background:#c73c31;color:#fff;border-color:#c73c31}
#meal-dialog .voice-panel[data-voice-state=ready] .voice-action,.sport-entry-dialog .voice-panel[data-voice-state=ready] .voice-action{background:#eef6e8;color:#28451e}
#meal-dialog .voice-panel[data-voice-state=error] .voice-action,.sport-entry-dialog .voice-panel[data-voice-state=error] .voice-action{color:#9e2b22;border-color:#d88880}
.voice-action:disabled{cursor:wait}
.voice-panel[data-voice-state=ready] .voice-action:disabled{opacity:1;cursor:default}
@keyframes voice-recording-pulse{50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.voice-panel[data-voice-state=recording] .voice-recording-dot{animation:none}}
