:root {
  --primary: var(--shift-color-accent, #f26b32);
  --primary-dark: var(--shift-color-accent-strong, #d45924);
  --bg-light: var(--shift-color-background, #f5f6f8);
  --grey: var(--shift-color-border, #d1d6dc);
  --text-color: var(--shift-color-text, #1c232b);
}

/* Loading overlay shared styles */
.loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(2px);
  z-index: 999999;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  color: var(--text-color);
  text-align: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.loading-overlay.visible {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}
.loading-overlay .loading-spinner {
  width: 64px;
  height: 64px;
  border: 6px solid var(--primary);
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 1rem;
}
.loading-overlay .loading-text {
  font-size: 1.1rem;
  font-weight: 500;
}
.loading-overlay .loading-tip {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  max-width: 300px;
}

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