/* ═══════════════════════════════════════════
   base.css — Reset, body y estilos globales
   ═══════════════════════════════════════════ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
}

body {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
}

body.modal-open {
  overflow: hidden;
}

body.sidebar-open {
  overflow: hidden;
}

@media (min-width: 769px) {
  body.sidebar-open {
    overflow: auto;
  }
}

a {
  text-decoration: none;
  color: inherit;
}

.sidebar-logout {
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid #e2e8f0;
}

/* Scrollbar personalizada */
::-webkit-scrollbar       { width: 5px; }
::-webkit-scrollbar-thumb { background: #c8d6e5; border-radius: 99px; }

/* ── Accesibilidad: prefers-reduced-motion ─────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .page { animation: none; }
  .fade-in { animation: none; }
  .items-grid > *, .kpi-card, .emp-card { animation: none; }
  .toast { animation: none; }
}
