/* ===============================
   GSMTHEME – SAFE MICRO ANIMATION
   Visible / Non destructif
   =============================== */

/* Container */
.ui-animation {
  position: relative;
}

/* Cercle – animation douce continue */
.ui-animation .circle {
  animation: subtlePulse 2.2s ease-in-out infinite;
}

/* SUCCESS */
.success-animation .circle {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 rgba(70,128,255,0.0);
  animation:
    subtlePulse 2.2s ease-in-out infinite,
    glowPrimary 2.2s ease-in-out infinite;
}

/* ERROR */
.error-animation .circle {
  border-color: var(--bs-danger);
  box-shadow: 0 0 0 rgba(220,38,38,0.0);
  animation:
    subtlePulse 2.2s ease-in-out infinite,
    glowDanger 2.2s ease-in-out infinite;
}

/* Icone (check / cross) – juste opacity */
.ui-animation svg {
  opacity: 1;
}

/* ===============================
   KEYFRAMES SAFE
   =============================== */

@keyframes subtlePulse {
  0%   { box-shadow: 0 0 0 rgba(0,0,0,0); }
  50%  { box-shadow: 0 0 14px rgba(0,0,0,0.12); }
  100% { box-shadow: 0 0 0 rgba(0,0,0,0); }
}

@keyframes glowPrimary {
  0%   { box-shadow: 0 0 0 rgba(70,128,255,0.0); }
  50%  { box-shadow: 0 0 18px rgba(70,128,255,0.35); }
  100% { box-shadow: 0 0 0 rgba(70,128,255,0.0); }
}

@keyframes glowDanger {
  0%   { box-shadow: 0 0 0 rgba(220,38,38,0.0); }
  50%  { box-shadow: 0 0 18px rgba(220,38,38,0.35); }
  100% { box-shadow: 0 0 0 rgba(220,38,38,0.0); }
}

/* Accessibilité */
@media (prefers-reduced-motion: reduce) {
  .ui-animation .circle {
    animation: none !important;
  }
}
