.auth0-spinner {
  margin: 0 auto 30px;
  width: 132px;
  height: 132px;
}

.auth0-spinner-circle {
  width: 100%;
  height: 100%;
  border: 4px solid rgba(255, 255, 255, 0.3);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: auth0-spin 1s linear infinite;
}

@keyframes auth0-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Inline spinner (for React component loading state) */
.auth0-spinner-inline {
  margin: 20px auto;
  width: 40px;
  height: 40px;
}

.auth0-spinner-inline .auth0-spinner-circle {
  width: 100%;
  height: 100%;
  border: 3px solid rgba(0, 0, 0, 0.1);
  border-top-color: #667eea;
  border-radius: 50%;
  animation: auth0-spin 0.8s linear infinite;
}

/* Inline spinner container placeholder (mobile) */
.auth0-spinner-container {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  padding: 16px;
  border-radius: 999px;
  background: rgb(26, 26, 26);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.auth0-spinner-container .auth0-spinner-inline {
  margin: 0;
  width: 24px;
  height: 24px;
}

.auth0-spinner-container .auth0-spinner-circle {
  border-width: 2px;
  border-color: rgba(255, 255, 255, 0.2);
  border-top-color: #ffffff;
}

/* Inline spinner container placeholder (desktop/tablet) */
@media (min-width: 768px) {
  .auth0-spinner-container {
    width: 108px;
    height: 56px;
  }

  .auth0-spinner-container .auth0-spinner-inline {
    width: 20px;
    height: 20px;
  }
}


/**
 * Ensure the OneTrust cookie consent banner is always interactive and
 * visible above the Pup flyout (which uses z-index up to 2147483647).
 *
 * OneTrust injects #onetrust-consent-sdk into the DOM; we raise its
 * stacking context so the banner close button remains clickable even
 * when the Pup flyout is open.
 */
#onetrust-consent-sdk {
  position: relative;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
}


