/* Botón mic fijo (sin depender del textarea) */
#phsbot-voice-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; margin-left:6px; margin-right:8px;
  border:0; border-radius:8px; cursor:pointer; line-height:1;
  background:#444; color:#fff;
}
#phsbot-voice-btn .phs-icon{ width:92%; height:92%; display:block; fill:currentColor; }

/* Modo grabando: rojo, como “REC” */
#phsbot-voice-btn.is-recording{ background:#d32f2f; color:#fff; }

/* Overlay de ondas (flotante, no altera layout) */
#phsbot-voice-vu-float{ position:fixed; z-index:2147483000; display:none; pointer-events:none; color:#ff1744; }
#phsbot-voice-vu{ display:block; width:160px; height:24px; border-radius:6px; background:transparent; }

/* Fallback animado si no hay getUserMedia o el RMS es ~0 (iOS) */
#phsbot-voice-fallback{ display:none; align-items:flex-end; gap:2px; height:24px; color:inherit; }
#phsbot-voice-fallback span{
  width:2px; height:6px; background: currentColor; opacity:.95; border-radius:1px;
  animation:phsProbe 900ms ease-in-out infinite;
}
#phsbot-voice-fallback span:nth-child(2){ animation-delay:.06s }
#phsbot-voice-fallback span:nth-child(3){ animation-delay:.12s }
#phsbot-voice-fallback span:nth-child(4){ animation-delay:.18s }
#phsbot-voice-fallback span:nth-child(5){ animation-delay:.24s }

@keyframes phsProbe{ 0%,100%{height:6px;opacity:.7} 50%{height:24px;opacity:1} }
