/* ──────────────────────────────────────────────────────────────
   Λ U R Ø — index.css
   Base global: variables, reset, body y keyframes globales.
   ────────────────────────────────────────────────────────────── */

:root {
  --bg:#0a0a0b;
  --bg-deep:#000000;          /* Negro puro: body (márgenes desktop) y splash.
                                 Aprovecha apagado de píxeles en OLED. */
  --surface:#161618;
  --surface2:#202024;
  --border:#2a2a2f;
  --border-hi:#3a3a42;
  --text:#ede8e3;             /* Texto principal: datos, valores, títulos,
                                 etiquetas de formulario y filtros, banners. */
  --text-muted:#6b6660;       /* Texto auxiliar e inactivo: subtítulos,
                                 metadatos, descripciones, controles
                                 deshabilitados, info de apoyo. Aplica a
                                 todo lo que no requiera prominencia. */
  --amber:#f59e0b;
  --action:#3c1c73;        --action-shadow:rgba(60,28,115,0.25);
  /* estados */
  --cobrado:#FFFF00;       --cobrado-dim:rgba(255,255,0,0.13);
  --facturada:#00FF00;     --facturada-dim:rgba(0,255,0,0.13);
  --enb:#2E2EFF;           --enb-dim:rgba(46,46,255,0.13);
  --espera:#00FFFF;        --espera-dim:rgba(0,255,255,0.13);
  --noremunerado:#FF00FF;  --noremunerado-dim:rgba(255,0,255,0.13);
  /* avisos */
  --warn:#dc2626;   /* avisos de cambios sin guardar, errores de fichero (ex --sinfactura, estado eliminado en v162) */
  --danger:#ef4444; /* borrar - distinto de --warn para evitar confusión */
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-tap-highlight-color:transparent}

body{
  background:var(--bg-deep);
  color:var(--text);
  font-family:'DM Sans',sans-serif;
  min-height:100dvh;
  overflow-x:hidden;
  /* fondo con textura sutil para escritorio */
  background-image:
    radial-gradient(ellipse 80% 50% at 50% -20%, rgba(245,158,11,0.04), transparent),
    radial-gradient(ellipse 60% 40% at 50% 120%, rgba(34,197,94,0.025), transparent);
  background-attachment:fixed;
}

/* ── Keyframes globales ──
   slideDown, slideUp y slideUpBulk tienen variantes específicas para
   pantallas >=600px definidas en responsive.css (sobreescriben las base
   porque el centrado en escritorio requiere translateX(-50%)). */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes splashIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes dotSave{
  0%{box-shadow:0 0 0 0 currentColor}
  50%{box-shadow:0 0 0 3px rgba(34,197,94,.3)}
  100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}
}
@keyframes slideDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUpBulk{from{transform:translateY(100%)}to{transform:translateY(0)}}
