/* ===== Bouton + spinner centré façon pro ===== */
:root {
  --sa-spinner-size: 1.2rem;
  /* taille du spinner */
  --sa-spinner-border: 2px;
  /* épaisseur des traits */
  --sa-btn-minh: 44px;
  /* hauteur mini bouton pour éviter les sauts */
}

.sa-actions {
  display: flex;
  justify-content: center;
}

.sa-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: var(--sa-btn-minh);
  padding: 0.8rem 1.1rem;
  line-height: 1;
}

/* Le libellé disparaît visuellement pendant le chargement (mais reste accessible) */
.sa-btn.is-loading .btn-text {
  opacity: 0;
}

/* Spinner = superposé et parfaitement centré */
.sa-btn .btn-spinner {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--sa-spinner-size);
  height: var(--sa-spinner-size);
  transform: translate(-50%, -50%);
  display: none;
  /* caché par défaut */
  border-radius: 50%;
  /* spinner “border” sans dépendance Bootstrap */
  border: var(--sa-spinner-border) solid currentColor;
  border-right-color: transparent;
  animation: sa-spin 0.8s linear infinite;
}

/* Afficher le spinner quand on a .is-loading */
.sa-btn.is-loading .btn-spinner {
  display: inline-block;
}

/* Désactivé = pas de clic, aspect “busy” */
.sa-btn[disabled] {
  cursor: not-allowed;
  opacity: 0.9;
}

/* Animation */
@keyframes sa-spin {
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

/* === Softadastra Auth: spinner 100% centré + rotation garantie === */

/* Contexte */
#custom-login-login {
  position: relative !important;
}

/* Base: reset complet + centrage sans transform */
#custom-login-login .btn-spinner {
  position: absolute !important;
  inset: 0 !important;
  /* top:0 right:0 bottom:0 left:0 */
  margin: auto !important;
  /* centre parfaitement sans translate */
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;

  width: 1.2rem !important;
  height: 1.2rem !important;
  border: 2px solid currentColor !important;
  border-right-color: transparent !important;
  border-radius: 50% !important;

  /* IMPORTANT : pas de transform ici, pour laisser l'animation le gérer */
  /* (ne met SURTOUT PAS transform: none !important; ) */

  animation: none !important;
  /* pas d'anim par défaut */
  transition: none !important;
  /* bloque effets de hover globaux */
  pointer-events: none !important;
  display: none !important;
  /* caché par défaut */
}

/* État chargement : affiche + anime */
#custom-login-login.is-loading .btn-spinner {
  display: inline-block !important;
  animation: sa_spin_auth 0.8s linear infinite !important;
}

/* Masquer le texte pendant le chargement (optionnel) */
#custom-login-login.is-loading .btn-text {
  opacity: 0 !important;
}

/* Rotation dédiée (pas de translate dedans) */
@keyframes sa_spin_auth {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}
