/* Shared loading state for submit buttons (OTP, publish, saves, etc.) */
.is-submit-loading,
.is-otp-sending {
  pointer-events: none;
  cursor: wait !important;
  opacity: 0.88;
}

.is-submit-loading .submit-loading-spinner,
.is-submit-loading .otp-send-spinner,
.is-otp-sending .submit-loading-spinner,
.is-otp-sending .otp-send-spinner {
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 0.45em;
  vertical-align: -0.12em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: submit-loading-spin 0.7s linear infinite;
}

.is-submit-loading .submit-loading-label,
.is-submit-loading .otp-send-label,
.is-otp-sending .submit-loading-label,
.is-otp-sending .otp-send-label {
  display: inline;
}

@keyframes submit-loading-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .is-submit-loading .submit-loading-spinner,
  .is-submit-loading .otp-send-spinner,
  .is-otp-sending .submit-loading-spinner,
  .is-otp-sending .otp-send-spinner {
    animation-duration: 1.4s;
  }
}
