/* Loading Spinner — dzyn generated */

.dzyn-spinner {
  display: inline-block;
  width: 36px;
  height: 36px;
  position: relative;
}

.dzyn-spinner::before,
.dzyn-spinner::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 3px solid transparent;
}

.dzyn-spinner::before {
  border-top-color: var(--color-green-deep, #306E5E);
  animation: dzyn-spin 0.8s linear infinite;
}

.dzyn-spinner::after {
  border-bottom-color: var(--color-orange, #FF6719);
  animation: dzyn-spin 1.2s linear infinite reverse;
}

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

/* Full-page overlay variant */
.dzyn-spinner-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface, #FDFBF7);
  z-index: 10000;
  transition-property: opacity;
  transition-duration: var(--duration-slow, 400ms);
  transition-timing-function: var(--ease-out, cubic-bezier(0.22, 1, 0.36, 1));
}

.dzyn-spinner-overlay.is-hidden {
  opacity: 0;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .dzyn-spinner::before,
  .dzyn-spinner::after {
    animation-duration: 1.5s;
  }
}