:root{
  --navy:#0F2240; --navy-2:#142A4C; --navy-3:#1B3661; --steel:#3E5C82;
  --gold:#E8B65A; --gold-dim:#C99A48; --paper:#F6F4EE; --ink:#16202E;
  --ink-soft:#5A6677; --line:#DCD8CC; --ok:#3F8F5F; --warn:#D99A2B;
  --crit:#C24B3F; --none:#8C8C8C; --radius:14px; --mono:'SF Mono','Menlo',monospace;
  /* Alias que ya se usaban en el proyecto pero nunca estaban declarados.
     Se alinean con la paleta existente: NO son colores nuevos. */
  --border:var(--line);      /* bordes finos de filas, chips y botones */
  --accent:var(--navy);      /* color de acento para texto/bordes destacados */
  --bg-card:#FFFFFF;         /* fondo de tarjetas/paneles sobre --paper */
  --bg-hover:#FBFAF6;        /* fondo sutil de fila abierta/activa (= .card:active) */
  --bg-body:var(--paper);    /* fondo de página (usado en el limpiador visual) */
  /* Tinta de los badges de stock: versiones oscurecidas SOLO para texto pequeño,
     para cumplir contraste WCAG AA (>=4.5:1) sobre sus fondos pastel.
     No sustituyen a --ok/--warn/--crit/--none, que siguen igual. */
  --badge-ok-ink:#2C6B44;    /* 5.55:1 sobre #E4F3E8 */
  --badge-bajo-ink:#8A5B00;  /* 5.20:1 sobre #FBF0DC */
  --badge-crit-ink:#7A2E24;  /* 7.54:1 sobre #F8E2DE */
  --badge-sin-ink:#595959;   /* 5.93:1 sobre #ECECEC */
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:-apple-system,'Helvetica Neue',Arial,sans-serif;height:100%;overflow:hidden;}
body{display:flex;flex-direction:column;}
input,button{font-family:inherit;}
::-webkit-scrollbar{display:none;}

/* ── Accesibilidad ───────────────────────────────────────────────────────── */
/* Foco visible solo para navegación con teclado (:focus-visible), nunca en
   móvil al tocar: así no aparece un contorno feo al hacer tap. */
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
/* Utilidad para lectores de pantalla (texto invisible pero anunciado) */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;}
/* Respetar la preferencia del sistema de reducir movimiento */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}
/* Objetivos táctiles (WCAG 2.2): se amplía SOLO el alto mínimo, nunca la letra.
   Se dejan fuera a propósito los controles con geometría fija calculada
   (.loc-item de los pickers y los botones circulares de 28px de los carritos)
   porque forzarles 44px rompería el scroll-snap y las filas apretadas. */
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
.menu-item,.load-more,.sm-tab{min-height:44px;}
/* Los chips viven en la barra superior densa: se suben a 36px (supera el
   mínimo AA de 24px de WCAG 2.2) en vez de 44px para no empujar el layout. */
.chip{min-height:36px;display:inline-flex;align-items:center;justify-content:center;}

/* ── Toast (el CSS base está en utilities.css) ───────────────────────────── */
.toast.error{background:var(--crit);}
.toast.ok{background:var(--ok);}
