.spinner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  color: var(--text-muted);
}

.spinner-page {
  min-height: 50vh;
}

.spinner-card {
  min-height: 140px;
  padding: var(--space-4);
}

.spinner-ring {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 3px solid var(--accent-soft);
  border-top-color: var(--accent);
  animation: spinner-turn 0.8s linear infinite;
}

.spinner-label {
  font-size: 0.875rem;
}

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

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