.prekure-spinner {
  display: inline-block;
  width: var(--prekure-spinner-size, 1rem);
  height: var(--prekure-spinner-size, 1rem);
  color: var(--prekure-spinner-color, var(--pk-action-primary, #332C87));
  animation: prekure-spinner-rotate 0.8s linear infinite;
  flex: 0 0 auto;
  vertical-align: middle;
}

.prekure-spinner--xs {
  --prekure-spinner-size: 0.875rem;
}

.prekure-spinner--sm {
  --prekure-spinner-size: 1rem;
}

.prekure-spinner--md {
  --prekure-spinner-size: 1.25rem;
}

.prekure-spinner--lg {
  --prekure-spinner-size: 1.5rem;
}

.prekure-spinner--xl {
  --prekure-spinner-size: 2rem;
}

.prekure-spinner--blue {
  --prekure-spinner-color: var(--pk-action-primary, #332C87);
}

.prekure-spinner--muted {
  --prekure-spinner-color: var(--pk-text-muted, #6B7280);
}

.prekure-spinner--subtle {
  --prekure-spinner-color: var(--pk-text-subtle, #9CA3AF);
}

.prekure-spinner--white {
  --prekure-spinner-color: #FFFFFF;
}

.prekure-spinner__track {
  opacity: 0.25;
}

.prekure-spinner__arc {
  opacity: 0.85;
}

@keyframes prekure-spinner-rotate {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .prekure-spinner {
    animation-duration: 1.6s;
  }
}
