/* ============================================================================
   Components - Spinner
   system/components/spinner.css

   Indeterminate loading indicator. Three sizes. Animation respects
   prefers-reduced-motion via the global rule in tokens/motion.css -
   in reduced-motion mode the spinner becomes a static ring.

   See sibling spinner.md.
   ============================================================================ */

.gm .gm-spinner {
  display: inline-block;
  width: 24px;
  height: 24px;
  border: 2px solid var(--gm-border-strong);
  border-top-color: var(--gm-accent);
  border-radius: 50%;
  animation: gm-spin 0.7s linear infinite;
  vertical-align: middle;
  flex-shrink: 0;
}

.gm .gm-spinner-sm {
  width: 16px;
  height: 16px;
  border-width: 2px;
}

.gm .gm-spinner-lg {
  width: 48px;
  height: 48px;
  border-width: 3px;
}

/* Use inside a filled-background element (e.g. .gm-btn-primary) where
   the default spinner border would blend with the fill. */
.gm .gm-spinner-on-fill {
  border-color: rgba(255, 255, 255, 0.18);
  border-top-color: #ffffff;
}

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