/* A thumb-friendly dictation control floats above the task list. */
#voiceTask{position:fixed;right:calc(20px + env(safe-area-inset-right));bottom:calc(70px + env(safe-area-inset-bottom));z-index:12;width:68px;height:68px;min-width:68px;min-height:68px;padding:19px;border-radius:50%;border:1px solid #cdbbe4;background:#eee4fa;box-shadow:0 5px 20px #59436a22;color:#674988;transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease;isolation:isolate}
#voiceTask .ui-icon{width:28px;height:28px;transition:filter .2s ease}
#voiceTask:hover{background:#e5d5f6;transform:translateY(-2px)}
#voiceTask.is-listening{background:#ee806c;border-color:#ee806c;animation:mic-breathe 1.5s ease-in-out infinite;box-shadow:0 5px 22px #df746d40}
#voiceTask.is-listening .ui-icon{filter:brightness(0) invert(1)}
#voiceTask.is-listening::before{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid #ee806c70;pointer-events:none;animation:mic-ripple 1.5s ease-out infinite}
#voiceTask.is-stopping{background:#ffe5b5;border-color:#eac78d;opacity:1;cursor:wait;animation:none}
#voiceTask:active{transform:scale(.96)}
#tasks::after{content:'';display:block;height:92px;pointer-events:none}
@keyframes mic-breathe{0%,100%{box-shadow:0 5px 22px #df746d40;transform:scale(1)}50%{box-shadow:0 5px 28px #df746d65;transform:scale(1.045)}}
@keyframes mic-ripple{0%{transform:scale(.95);opacity:.9}100%{transform:scale(1.3);opacity:0}}
@media(prefers-reduced-motion:reduce){#voiceTask,#voiceTask.is-listening,#voiceTask.is-listening::before{animation:none;transition:none}#voiceTask:hover,#voiceTask:active{transform:none}}

/* Keep the iPhone control hidden when the shared composer changes pages. */
#voiceTask[hidden]{display:none!important}
