/* Spinner (componente global reutilizable) */
.spinner-overlay {
  position: fixed;
  inset: 0;
  background: #0d1117dd;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
  backdrop-filter: blur(2px);
}
.spinner-overlay[hidden] { display: none !important; }
.spinner-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 2rem 2.5rem;
  background: #161b22;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  box-shadow: 0 4px 18px #00000088;
}
.spinner-box .spinner-text { font-size: .8rem; color: var(--color-muted); }
.loader { width: 48px; height: 48px; border: 4px solid #30363d; border-top-color: #58a6ff; border-radius: 50%; animation: spin 0.9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
