/* P120: isolated floating presentation; all three sizes share the same call. */
#voice-overlay.voice-floating-enabled{right:auto;bottom:auto;width:536px;transition:none}
#voice-overlay .voice-safe-measure{position:absolute;visibility:hidden;pointer-events:none;width:0;height:0;padding-top:var(--safe-top,env(safe-area-inset-top,0px));padding-bottom:var(--safe-bottom,env(safe-area-inset-bottom,0px));padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
#voice-overlay.voice-floating-enabled .voice-float{touch-action:none;user-select:none;cursor:grab}
#voice-overlay .voice-float.is-dragging{cursor:grabbing}
#voice-overlay .voice-avatar-button{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border:0;padding:0;border-radius:50%;background:transparent;color:var(--voice-accent);cursor:grab}
#voice-overlay .voice-avatar-button .botface{display:block;width:36px;height:30px;flex-shrink:0;transform:rotate(calc(-12deg + var(--voice-energy,0)*8deg)) scale(calc(1 + var(--voice-energy,0)*.12));transition:transform 90ms linear}
#voice-overlay .voice-avatar-button .botface svg{width:100%;height:100%}
#voice-overlay .voice-orb-badge{display:none;position:absolute;bottom:1px;right:0;width:18px;height:18px;align-items:center;justify-content:center;border-radius:50%;background:var(--card,#fff);color:var(--muted,#777);box-shadow:0 1px 4px #0002}
#voice-overlay .voice-orb-badge .ico{width:13px;height:13px}
#voice-overlay[data-connection="input-muted"] .voice-orb-badge,#voice-overlay[data-connection="disconnected"] .voice-orb-badge{display:flex}
#voice-overlay .voice-collapse{font-size:calc(24px * var(--ui-font-scale, 1));font-weight:400}
#voice-overlay[data-size="mini"]{width:230px}
#voice-overlay[data-size="mini"] .voice-float{height:60px;padding:7px;gap:6px}
#voice-overlay[data-size="mini"] .voice-actions{margin:0;gap:4px}
#voice-overlay[data-size="mini"] .voice-actions>:not(.voice-collapse):not(#vo-mic){display:none!important}
#voice-overlay[data-size="mini"] .voice-actions .ui-round{width:36px;height:36px}
#voice-overlay[data-size="mini"] .voice-caption{display:none!important}
#voice-overlay[data-size="orb"]{width:52px}
#voice-overlay[data-size="orb"] .voice-float{height:52px;width:52px;padding:0;gap:0;justify-content:center;border-radius:50%;box-shadow:0 3px 16px #0002}
#voice-overlay[data-size="orb"] .voice-avatar-button{width:50px;height:50px;flex-basis:50px}
#voice-overlay[data-size="orb"] .voice-avatar-button:before{content:"";position:absolute;inset:1px;border-radius:50%;background:var(--voice-accent);opacity:calc(var(--voice-energy,0)*.18);transform:scale(calc(1 + var(--voice-energy,0)*.14));pointer-events:none}
#voice-overlay[data-size="orb"] .voice-progress,#voice-overlay[data-size="orb"] .voice-actions,#voice-overlay[data-size="orb"] .voice-caption{display:none!important}
#voice-overlay[data-size="orb"].voice-error .voice-float{border:2px solid #df4258}
#voice-overlay .voice-avatar-button:focus-visible,#voice-overlay .voice-collapse:focus-visible{outline:2px solid var(--voice-accent);outline-offset:2px}
@media(max-width:767.98px){
 #voice-overlay.voice-floating-enabled[data-size="full"]{width:calc(var(--ui-vw,100vw) - 20px)}
 #voice-overlay.voice-floating-enabled[data-size="full"] .voice-float{gap:5px;padding:7px}
 #voice-overlay.voice-floating-enabled[data-size="full"] .voice-actions{gap:3px;margin-left:0}
 #voice-overlay.voice-floating-enabled[data-size="full"] .voice-actions .ui-round{width:36px;height:40px}
 #voice-overlay.voice-floating-enabled[data-size="full"] .voice-avatar-button{width:36px;flex-basis:36px}
 #voice-overlay.voice-floating-enabled[data-size="full"] .voice-progress{min-width:36px}
 #voice-overlay.voice-floating-enabled[data-size="full"] .voice-avatar-button .botface{width:29px;height:26px}
}
@media(prefers-reduced-motion:reduce){#voice-overlay.voice-floating-enabled{transition:none}#voice-overlay .voice-avatar-button .botface,#voice-overlay .voice-avatar-button:before{transform:none;transition:none}}

/* P121: compositor movement; no layout animation while dragging. */
#voice-overlay.voice-floating-enabled.voice-dragging{will-change:transform}
#voice-overlay.voice-dragging .voice-float,#voice-overlay.voice-dragging button{cursor:grabbing!important}

/* P122: voice controls must receive pointer input, including in desktop title areas. */
#voice-overlay.voice-floating-enabled,#voice-overlay.voice-floating-enabled *{-webkit-app-region:no-drag}
#voice-overlay.voice-floating-enabled .voice-float,#voice-overlay.voice-floating-enabled .voice-float *{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
