/* OPENWEBUI_VOICE_ORB_V1: visual replacement for the voice-mode dots. */
#controls-container .flex-1 > button:not([aria-label]) {
  position: relative !important;
  display: grid !important;
  width: 11rem !important;
  height: 11rem !important;
  place-items: center !important;
  overflow: visible !important;
  border-radius: 9999px !important;
  background:
    radial-gradient(circle at 34% 28%, rgba(255, 255, 255, 0.92) 0 3%, rgba(192, 132, 252, 0.72) 13%, transparent 35%),
    radial-gradient(circle at 71% 69%, #22d3ee 0, #2563eb 37%, #4f46e5 68%, #140b3f 100%) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.2),
    0 0 40px rgba(59, 130, 246, 0.65),
    0 0 82px rgba(139, 92, 246, 0.42) !important;
  isolation: isolate !important;
  animation: owui-voice-orb-breathe 2.4s ease-in-out infinite !important;
}

#controls-container .flex-1 > button:not([aria-label]) > svg {
  display: none !important;
}

#controls-container .flex-1 > button:not([aria-label])::before {
  position: absolute;
  inset: 7%;
  z-index: -1;
  content: '';
  border-radius: inherit;
  background: conic-gradient(from 210deg, transparent 0 10%, rgba(255, 255, 255, 0.75) 21%, transparent 35% 54%, rgba(45, 212, 191, 0.62) 68%, transparent 80%);
  filter: blur(7px);
  opacity: 0.92;
  mix-blend-mode: screen;
  animation: owui-voice-orb-spin 5s linear infinite;
}

#controls-container .flex-1 > button:not([aria-label])::after {
  position: absolute;
  inset: -19%;
  z-index: -2;
  content: '';
  border: 1px solid rgba(103, 232, 249, 0.38);
  border-radius: inherit;
  box-shadow: 0 0 26px rgba(56, 189, 248, 0.45);
  animation: owui-voice-orb-ripple 2.4s ease-out infinite;
}

@keyframes owui-voice-orb-breathe {
  0%, 100% { transform: scale(0.96); filter: saturate(1); }
  50% { transform: scale(1.04); filter: saturate(1.28); }
}

@keyframes owui-voice-orb-spin {
  to { transform: rotate(360deg); }
}

@keyframes owui-voice-orb-ripple {
  0% { transform: scale(0.75); opacity: 0.78; }
  70%, 100% { transform: scale(1.25); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  #controls-container .flex-1 > button:not([aria-label]),
  #controls-container .flex-1 > button:not([aria-label])::before,
  #controls-container .flex-1 > button:not([aria-label])::after {
    animation: none !important;
  }
}
/* OPENWEBUI_VOICE_ORB_V2: hide the model avatar or spinner inside the orb. */
#controls-container .flex-1 > button:not([aria-label]) > * {
  display: none !mportant;
}/* OPENWEBUI_VOICE_ORB_V3: fallback for clients that ignore display overrides. */
#controls-container .flex-1 > button:not([aria-label]) > * {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}