/* Brief feedback belongs to the pressed control; it never moves the layout. */
html:root .login-page .btn,
body.p8-active .p8-root :is(.btn,.voice-button,.nav-item,.voice-channel,.mini-play,.mini-next,.mini-prev,.play,.chip,.obs-tab) {
  transition:scale 120ms cubic-bezier(.2,.8,.2,1),background-color 120ms ease,border-color 120ms ease,color 120ms ease;
}
html:root .login-page .btn:active:not(:disabled),
body.p8-active .p8-root :is(.btn,.voice-button,.nav-item,.voice-channel,.mini-play,.mini-next,.mini-prev,.play,.chip,.obs-tab):active:not(:disabled) { scale:.94; }
@media(hover:hover) {
  body.p8-active .p8-root :is(.voice-button,.nav-item,.voice-channel):hover:not(:disabled) { background-color:color-mix(in srgb,var(--text-primary) 9%,var(--bg-surface)); }
}
.voice-button { position:relative; }
.voice-control-icon { overflow:visible; }
.voice-icon-slash,.voice-icon-cut { stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset 140ms ease,opacity 100ms ease; }
.voice-icon-cut { stroke:var(--bg-elevated,#25262a);stroke-width:5; }
.voice-button[data-icon-off=true] .voice-icon-slash,.voice-button[data-icon-off=true] .voice-icon-cut { stroke-dashoffset:0;opacity:1; }
body .voice-button[data-icon-off=true] { color:var(--status-error,#f0aaa6);background:color-mix(in srgb,var(--status-error,#f0aaa6) 12%,var(--bg-surface,#17191d));border-color:color-mix(in srgb,var(--status-error,#f0aaa6) 32%,transparent); }
body .voice-button[data-icon-off=false] { color:var(--text-primary,#f1ebdf); }
/* Accessible action names remain on the button; the icon carries the visible state. */
body.p8-active .p8-root .voice-workspace :is(.voice-start-mic,.voice-chat-bubble,.voice-control-buttons>.voice-button:not(.voice-ptt))>span {
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;
}
body.p8-active .p8-root .voice-workspace :is(.voice-start-mic,.voice-chat-bubble,.voice-control-buttons>.voice-button) svg { width:24px;height:24px; }
body.p8-active .p8-root .voice-workspace .voice-control-buttons>.voice-button { border-radius:50%;flex:none;width:48px!important;height:48px!important;min-height:48px!important;padding:10px!important; }
body.p8-active .p8-root .voice-workspace.mobile-voice .voice-control-buttons:not([hidden]) { display:flex!important;justify-content:space-evenly;flex-wrap:wrap; }
body.p8-active .p8-root .voice-workspace .voice-control-buttons>.voice-ptt:not([hidden]) { border-radius:14px;flex-basis:100%;width:auto!important; }
.voice-button[aria-busy=true]::after { content:'';position:absolute;right:3px;top:3px;width:8px;height:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:voice-button-pending .7s linear infinite; }
@keyframes voice-button-pending { to { rotate:360deg; } }
@media(prefers-reduced-motion:reduce) {
 html:root .login-page .btn,body.p8-active .p8-root :is(button,.btn),.voice-icon-slash,.voice-icon-cut { transition:none!important;animation:none!important; }
 body.p8-active .p8-root :is(button,.btn):active { scale:1!important;transform:none!important; }
 .voice-button[aria-busy=true]::after { animation:none; }
}
