/* Get Fit Eating, sistema de pedidos y cocina.
   Tipografía del sistema para que funcione sin internet: Bahnschrift (la DIN de Windows) en títulos y cifras,
   como una etiqueta de alimentos; Segoe UI en el texto. */
:root {
  --tinta: #17231f;
  --tinta-suave: #54635d;
  --papel: #f2f4ef;
  --superficie: #ffffff;
  --linea: #d5dbd2;
  --linea-fuerte: #aab5ad;
  --salvia: #3f6f61;
  --salvia-suave: #e2ece7;
  --oro: #a87a14;
  --oro-suave: #f7edd3;
  --alerta: #ae2a20;
  --alerta-suave: #fbe8e5;
  --prot: #8c3a2d;
  --carb: #d1a038;
  --veg: #4f8a45;
  --ens: #a6c66f;
  --grasa: #3b6688;
  --titulos: Bahnschrift, 'DIN Alternate', 'Franklin Gothic Medium', 'Arial Narrow', sans-serif;
  --texto: 'Segoe UI Variable Text', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --lateral: 15.5rem;
}
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--papel); color: var(--tinta); font: 0.9375rem/1.5 var(--texto); }
h1, h2, h3, .grande, .grande-linea, .cifras strong, .macros strong { font-family: var(--titulos); font-stretch: 87.5%; font-weight: 600; letter-spacing: 0; }
h1 { font-size: 2rem; line-height: 1.1; margin: 0; }
h2 { font-size: 1.25rem; line-height: 1.2; margin: 0 0 0.75rem; }
h3 { font-size: 1.0625rem; line-height: 1.25; margin: 1.25rem 0 0.5rem; }
p { margin: 0 0 0.75rem; max-width: 72ch; }
a { color: var(--salvia); text-underline-offset: 0.15em; }
small { font-size: 0.8125rem; color: var(--tinta-suave); font-weight: 400; }
small.bloque { display: block; }
:focus-visible { outline: 3px solid var(--oro); outline-offset: 2px; }
.saltar { position: absolute; left: -999px; }
.saltar:focus { left: 0.5rem; top: 0.5rem; z-index: 20; background: var(--superficie); padding: 0.5rem 0.75rem; }

/* ---------- estructura */
.lateral { position: fixed; inset: 0 auto 0 0; width: var(--lateral); background: var(--tinta); color: #dfe7e2; display: flex; flex-direction: column; padding: 1.25rem 1rem 1rem; overflow-y: auto; }
#principal { margin-left: var(--lateral); padding: 1.75rem 2rem 4rem; min-width: 0; }
.marca-gfe { display: inline-grid; justify-items: start; color: #fff; text-decoration: none; font-family: var(--titulos); font-weight: 700; line-height: 0.92; border: 1.5px solid #dfe7e2; border-radius: 12px; padding: 0.6rem 0.9rem 0.5rem; margin-bottom: 1.5rem; }
.marca-get, .marca-eating { font-size: 1.6rem; }
.marca-get i { font: italic 400 1.25rem/1 'Segoe Script', 'Brush Script MT', cursive; color: #9fc7b8; margin-left: 0.15rem; }
.marca-gfe small { color: #b9c6bf; font: 600 0.6875rem/1.6 var(--texto); }
.nav-grupo { margin-bottom: 1.1rem; }
.nav-grupo p { margin: 0 0 0.3rem; font-size: 0.8125rem; color: #93a59c; }
.nav-grupo a { display: block; padding: 0.4rem 0.6rem; margin: 0 -0.25rem; border-radius: 4px; color: #dfe7e2; text-decoration: none; border-left: 3px solid transparent; }
.nav-grupo a:hover { background: #22332d; }
.nav-grupo a[aria-current] { background: #263a33; border-left-color: #9fc7b8; color: #fff; font-weight: 600; }
.lateral-pie { margin-top: auto; padding-top: 1rem; border-top: 1px solid #2c3f38; font-size: 0.8125rem; color: #93a59c; }
.lateral-pie p { margin-bottom: 0.4rem; }

.cabecera { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: flex-end; justify-content: space-between; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 2px solid var(--tinta); }
.cabecera p { margin: 0.35rem 0 0; color: var(--tinta-suave); }
.cabecera-acciones { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.semana-nav { display: inline-flex; align-items: center; border: 1px solid var(--linea-fuerte); border-radius: 4px; background: var(--superficie); }
.semana-nav span { padding: 0 0.75rem; font-weight: 600; white-space: nowrap; }
.semana-nav button { border: 0; background: none; font-size: 1.4rem; line-height: 1; padding: 0.3rem 0.7rem 0.45rem; cursor: pointer; color: var(--tinta); }
.semana-nav button:hover { background: var(--salvia-suave); }

.panel { background: var(--superficie); border: 1px solid var(--linea); border-radius: 4px; padding: 1.1rem 1.25rem 1.25rem; margin-bottom: 1.25rem; }
.fila-titulo { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; justify-content: space-between; align-items: baseline; margin-bottom: 0.5rem; }
.fila-titulo h2 { margin: 0; }
.nota { color: var(--tinta-suave); font-size: 0.875rem; }
.aviso { background: var(--alerta-suave); border-left: 4px solid var(--alerta); padding: 0.55rem 0.8rem; color: #6d170f; max-width: none; }
.bien-texto { color: var(--salvia); font-weight: 600; }
.vacio { background: var(--superficie); border: 1px dashed var(--linea-fuerte); border-radius: 4px; padding: 2rem; }
.vacio.listo { border: 1px solid var(--salvia); border-left-width: 6px; }
.acciones { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1rem 0 0; }
.dos-col { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(17rem, 1fr); gap: 1.25rem; align-items: start; }
.tres-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.25rem; align-items: start; }
.desliza { overflow-x: auto; }

/* ---------- controles */
.boton, button.boton { display: inline-block; font: 600 0.9375rem/1.2 var(--texto); padding: 0.55rem 1rem; border-radius: 4px; border: 1px solid var(--linea-fuerte); background: var(--superficie); color: var(--tinta); cursor: pointer; text-decoration: none; }
.boton:hover { border-color: var(--tinta); }
.boton.primario { background: var(--salvia); border-color: var(--salvia); color: #fff; }
.boton.primario:hover { background: #335b4f; }
.boton[disabled] { background: #c9d1cb; border-color: #c9d1cb; color: #5d6a64; cursor: not-allowed; }
.boton.ancho { width: 100%; padding-block: 0.75rem; }
.enlace { background: none; border: 0; padding: 0; font: inherit; color: var(--salvia); text-decoration: underline; text-underline-offset: 0.15em; cursor: pointer; }
.enlace.peligro { color: var(--alerta); }
.enlace.claro { color: #c5d6ce; }
.campo { border: 0; padding: 0; margin: 0 0 0.9rem; min-width: 0; }
.campo > label, .campo > legend { display: block; font-weight: 600; margin-bottom: 0.3rem; padding: 0; }
.campo > label > input, .campo > label > textarea, .campo > label > select { margin-top: 0.3rem; font-weight: 400; }
input[type='text'], input[type='search'], input[type='number'], input[type='tel'], input[type='email'], input[type='date'], select, textarea { font: inherit; color: var(--tinta); background: var(--superficie); border: 1px solid var(--linea-fuerte); border-radius: 4px; padding: 0.45rem 0.6rem; width: 100%; }
textarea { resize: vertical; }
input.num { width: 5.5rem; text-align: right; padding: 0.3rem 0.4rem; font-variant-numeric: tabular-nums; }
input.ancho-num { width: 7rem; }
.campo.corto { max-width: 11rem; }
.campo.corto input.num { width: 100%; }
.en-linea { display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 600; white-space: nowrap; }
.en-linea select, .en-linea input { width: auto; min-width: 12rem; font-weight: 400; }
.rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0 1.25rem; }
.ancho-total { grid-column: 1 / -1; }
.opciones { display: flex; gap: 1.25rem; padding-top: 0.3rem; }
.opciones label { font-weight: 400; margin: 0; }
.fijo { margin: 0; padding: 0.45rem 0; font-weight: 600; }
.fijo small { display: block; }
.chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.chip { display: inline-flex; align-items: center; border: 1px solid var(--linea-fuerte); border-radius: 999px; padding: 0.25rem 0.75rem; cursor: pointer; background: var(--superficie); font-weight: 400; margin: 0; }
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip:has(input:focus-visible) { outline: 3px solid var(--oro); outline-offset: 2px; }
.chip.activo { background: var(--salvia); border-color: var(--salvia); color: #fff; }
.chip:has(input:disabled) { color: #84918a; border-style: dashed; cursor: not-allowed; }
.chip.restringido:not(.activo) { text-decoration: line-through; }
.chip.restringido.activo { background: var(--alerta); border-color: var(--alerta); }
.cuenta { font-weight: 400; color: var(--alerta); font-size: 0.875rem; margin-left: 0.4rem; }
.cuenta.bien { color: var(--tinta-suave); }
.sello { display: inline-block; font-size: 0.75rem; font-weight: 600; padding: 0.05rem 0.45rem; border-radius: 3px; background: var(--oro-suave); color: #6b4c05; vertical-align: 0.1em; }
.aviso-sello { background: var(--alerta-suave); color: #6d170f; }

/* ---------- tablas */
.tabla { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.tabla th, .tabla td { text-align: left; padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--linea); vertical-align: top; }
.tabla thead th { font-weight: 600; color: var(--tinta-suave); border-bottom: 1.5px solid var(--tinta); vertical-align: bottom; white-space: nowrap; }
.tabla thead th small { display: block; }
.tabla tbody th { font-weight: 600; white-space: nowrap; }
.tabla tfoot td, .tabla tfoot th { font-weight: 700; border-top: 1.5px solid var(--tinta); border-bottom: 0; }
.tabla .n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabla .fuerte { font-weight: 700; }
.tabla .acc { white-space: nowrap; }
.tabla .acc .enlace + .enlace { margin-left: 0.75rem; }
.tabla tr.estimado, .desglose tr.estimado, li.estimado { color: #7b8881; font-style: italic; }
.tabla .mejor input { border-color: var(--salvia); background: var(--salvia-suave); font-weight: 700; }
.cuadricula th, .cuadricula td { border: 1px solid var(--linea); }
.cuadricula thead th { text-align: center; border-bottom: 1.5px solid var(--tinta); }
.cuadricula thead th:first-child, .cuadricula tbody th, .cuadricula tfoot th { text-align: left; }
.marca { text-align: center !important; font-weight: 700; font-variant-numeric: tabular-nums; min-width: 1.9rem; }
.marca.cena { background: #f7f8f5; }
.total { background: var(--salvia-suave); font-weight: 700; }
.firma { min-width: 5rem; }
.control th, .control td { padding: 0.4rem 0.3rem; }
.control td.marca { min-width: 1.35rem; padding-inline: 0.15rem; }
.control thead tr:last-child th { font-weight: 400; }
.leyenda { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; align-items: center; color: var(--tinta-suave); }
.leyenda b { color: var(--tinta); margin-right: 0.1rem; }
.titulo-impreso { display: none; }
.estado { display: inline-block; padding: 0.1rem 0.5rem; border-radius: 3px; font-weight: 600; font-size: 0.8125rem; }
.estado-aprobado { background: var(--salvia-suave); color: #23463c; }
.estado-enviado { background: var(--oro-suave); color: #6b4c05; }

/* ---------- la barra del plato */
.barra { display: flex; height: 1.1rem; border-radius: 3px; overflow: hidden; gap: 2px; background: var(--superficie); }
.seg { min-width: 6px; }
.seg-prot { background: var(--prot); }
.seg-carb { background: var(--carb); }
.seg-veg { background: var(--veg); }
.seg-ens { background: var(--ens); }
.seg-grasa { background: var(--grasa); }
.seg-estimado { opacity: 0.45; background-image: repeating-linear-gradient(135deg, transparent 0 4px, rgba(255, 255, 255, 0.55) 4px 7px); }
.punto { display: inline-block; width: 0.6rem; height: 0.6rem; border-radius: 2px; margin-right: 0.4rem; }
.macros { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 1rem; margin: 0.5rem 0 0.6rem; max-width: none; }
.macros strong { font-size: 1.9rem; line-height: 1; margin-right: -0.6rem; }
.macros span { white-space: nowrap; color: var(--tinta-suave); font-size: 0.875rem; }
.desglose { margin-top: 0.75rem; }
.desglose td, .desglose th { padding: 0.3rem 0.45rem; }
.rango { margin-top: 0.75rem; }
.rango-pista { position: relative; height: 0.5rem; background: #e7ebe5; border-radius: 3px; margin: 0.6rem 0 0.5rem; }
.rango-banda { position: absolute; top: 0; bottom: 0; background: #b9d3c8; border-radius: 3px; }
.rango-marca { position: absolute; top: -0.3rem; width: 3px; height: 1.1rem; background: var(--tinta); margin-left: -1px; }
.rango p { font-size: 0.8125rem; color: var(--tinta-suave); margin: 0; }
.rango-bajo .rango-marca, .rango-alto .rango-marca { background: var(--oro); }

/* ---------- pedido del cliente */
.pedido { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 1.25rem; align-items: start; }
.pedido-resumen { position: sticky; top: 1rem; }
.campo-cliente { max-width: 34rem; }
.ficha-det summary, details > summary { cursor: pointer; font-weight: 600; color: var(--salvia); }
.ficha-corta { margin: 0.75rem 0 0; display: grid; gap: 0.5rem; }
.ficha-corta div { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 0.75rem; }
.ficha-corta dt { color: var(--tinta-suave); }
.ficha-corta dd { margin: 0; }
aside .ficha-corta div { grid-template-columns: 1fr; gap: 0; }
.dias { display: grid; grid-template-columns: repeat(7, minmax(5.5rem, 1fr)); gap: 0.5rem; margin-bottom: 0.9rem; }
.dia p { margin: 0 0 0.35rem; font-weight: 600; }
.dia p small { display: block; }
.tiempo { display: block; width: 100%; margin-bottom: 0.35rem; padding: 0.4rem 0.25rem; font: inherit; border: 1px solid var(--linea-fuerte); border-radius: 4px; background: var(--superficie); color: var(--tinta-suave); cursor: pointer; }
.tiempo:hover { border-color: var(--tinta); }
.tiempo[aria-pressed='true'] { background: var(--tinta); border-color: var(--tinta); color: #fff; font-weight: 600; }
.plato { background: var(--superficie); border: 1px solid var(--linea); border-top: 3px solid var(--tinta); border-radius: 4px; margin-bottom: 1.25rem; }
.plato > header { display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; justify-content: space-between; align-items: baseline; padding: 0.8rem 1.25rem; border-bottom: 1px solid var(--linea); }
.plato > header h3 { margin: 0; font-size: 1.1875rem; }
.plato > header div { display: flex; gap: 1.25rem; }
.plato-cuerpo { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(15rem, 1fr); gap: 0 1.5rem; padding: 1rem 1.25rem 0.5rem; }
.plato-nutricion { border-left: 1px solid var(--linea); padding-left: 1.5rem; }
.grande { font-size: 2.6rem; line-height: 1; margin-bottom: 0.9rem; }
.grande small, .grande-linea small { font: 400 0.875rem/1.35 var(--texto); display: block; margin-top: 0.3rem; }
.grande-linea { font-size: 1.5rem; margin: 0; max-width: none; text-align: right; }
.resumen-dl { margin: 0 0 0.6rem; }
.resumen-dl div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.35rem 0; border-top: 1px solid var(--linea); }
.resumen-dl dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.pendientes { background: var(--oro-suave); border-left: 4px solid var(--oro); padding: 0.6rem 0.8rem; margin-bottom: 0.9rem; font-size: 0.875rem; }
.pendientes h3 { margin: 0 0 0.3rem; font: 600 0.9375rem/1.3 var(--texto); }
.pendientes ul { margin: 0; padding-left: 1.1rem; }

/* ---------- cocina */
.cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); border: 1px solid var(--linea); border-radius: 4px; background: var(--superficie); margin-bottom: 1rem; }
.cifras div { padding: 0.9rem 1.25rem; border-right: 1px solid var(--linea); }
.cifras div:last-child { border-right: 0; }
.cifras strong { display: block; font-size: 2.1rem; line-height: 1.05; font-variant-numeric: tabular-nums; }
.cifras span { color: var(--tinta-suave); }
.alertas { margin: 0 0 0.75rem; padding: 0; list-style: none; }
.alertas li { padding: 0.55rem 0.8rem; border-left: 4px solid var(--alerta); background: var(--alerta-suave); margin-bottom: 0.4rem; }
.alertas .enlace { margin-left: 0.5rem; }
.menu { margin-bottom: 1.5rem; background: var(--superficie); border: 1px solid var(--linea); }
.menu th:first-child { min-width: 8rem; }
.menu-completo thead th:nth-child(2), .menu-completo thead th:nth-child(3) { width: 1%; }
.menu-completo td:nth-child(2), .menu-completo td:nth-child(3) { min-width: 0; padding: 0.45rem 0.6rem; }
.menu td { padding: 0; min-width: 6.6rem; border-left: 1px solid var(--linea); }
.menu td:not(:has(.celda)):not(.hueco) { padding: 0.45rem 0.6rem; }
.corte .menu td { padding: 0.45rem 0.6rem; }
.celda { display: block; width: 100%; height: 100%; text-align: left; font: inherit; color: inherit; background: none; border: 0; padding: 0.45rem 0.6rem; cursor: pointer; }
.celda:hover { background: var(--salvia-suave); }
.celda b { font-weight: 600; }
.celda span, .celda small { display: block; }
.celda span { color: var(--salvia); }
.choca { background: var(--alerta-suave); box-shadow: inset 3px 0 0 var(--alerta); }
.hueco { text-align: center; }
.mas { border: 0; background: none; color: #a9b4ad; font-size: 1.1rem; cursor: pointer; width: 100%; padding: 0.6rem; }
.mas:hover { color: var(--salvia); background: var(--salvia-suave); }
.corte-col { background: #f7f8f5; }

.etiquetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr)); gap: 0.75rem; }
.etiqueta { background: var(--superficie); border: 1.5px solid var(--tinta); border-radius: 6px; padding: 0.7rem 0.8rem 0.6rem; break-inside: avoid; }
.etiqueta header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 0.5rem; font-size: 0.75rem; border-bottom: 1.5px solid var(--tinta); padding-bottom: 0.3rem; }
.etiqueta header b, .etiqueta header span { white-space: nowrap; }
.etiqueta header b { font-family: var(--titulos); font-size: 0.875rem; }
.etiqueta h3 { margin: 0.4rem 0 0.3rem; font-size: 1.25rem; }
.etiqueta ul { list-style: none; margin: 0 0 0.5rem; padding: 0; font-size: 0.8125rem; }
.etiqueta li { display: flex; justify-content: space-between; gap: 0.5rem; border-bottom: 1px dotted var(--linea-fuerte); padding: 0.1rem 0; }
.etiqueta li span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.etiqueta .barra { height: 0.5rem; }
.eti-macros { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.6rem; font-size: 0.8125rem; margin: 0.4rem 0 0.2rem; }
.eti-macros b { font-family: var(--titulos); font-size: 1.125rem; }
.eti-macros span { white-space: nowrap; }
.eti-nota { font-size: 0.75rem; margin: 0.15rem 0; color: #6d170f; font-weight: 600; }
.etiqueta footer { font-size: 0.75rem; color: var(--tinta-suave); margin-top: 0.3rem; }

/* ---------- administración */
.pago-celda, .pago-punto { font: 600 0.8125rem/1.2 var(--texto); border: 0; border-radius: 3px; cursor: pointer; }
.pago-celda { display: inline-block; padding: 0.25rem 0.6rem; }
.pago-punto { display: block; position: relative; overflow: hidden; width: 1.35rem; height: 1.2rem; padding: 0; margin: auto; }
.pago-punto span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.pago { background: var(--salvia); color: #fff; }
.pendiente { background: var(--alerta); color: #fff; }
.no-aplica { background: #dfe4de; color: var(--tinta-suave); }
.pago-celda.vacio, .pago-punto.vacio { background: var(--superficie); box-shadow: inset 0 0 0 1px var(--linea-fuerte); color: var(--tinta-suave); }
.registro th, .registro td { padding: 0.25rem 0.2rem; text-align: center; }
.registro tbody th, .registro thead th:first-child { text-align: left; padding-right: 0.75rem; }
.registro tbody td:nth-child(2) { text-align: left; white-space: nowrap; padding-right: 0.75rem; }
.registro thead tr:last-child th { font-size: 0.6875rem; font-weight: 400; line-height: 1.15; white-space: normal; }
.registro thead tr:first-child th { border-left: 1px solid var(--linea); }
.registro .hoy { background: var(--oro-suave); }
tr.detalle > td { background: #f7f8f5; padding: 0.9rem 1.25rem; }
.calculadora { max-width: 46rem; }
.precios-ref { margin-top: 1rem; }
.precios-ref table { margin: 0.75rem 0; max-width: 46rem; }
.reparto { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 1.5rem; margin-top: 1rem; }
.indice { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; }
.receta ul { margin: 0 0 0.75rem; padding-left: 1.1rem; }
.codigos { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; color: var(--tinta-suave); max-width: none; }
.codigos b { color: var(--tinta); font-family: var(--titulos); }
tr[hidden] { display: none; }

/* ---------- ventana del plato */
dialog { border: 0; border-radius: 6px; padding: 0; width: min(46rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); color: var(--tinta); }
dialog::backdrop { background: rgba(23, 35, 31, 0.55); }
.dialogo { padding: 1.25rem 1.5rem 0; }
.dialogo > header { border-bottom: 2px solid var(--tinta); margin-bottom: 1rem; }
.dialogo > header h2 { font-size: 1.5rem; margin: 0; }
.dialogo > header p { color: var(--tinta-suave); margin: 0.2rem 0 0.75rem; }
.dialogo > footer { position: sticky; bottom: 0; background: var(--superficie); display: flex; justify-content: space-between; align-items: center; padding: 0.9rem 0; margin-top: 1rem; border-top: 1px solid var(--linea); }
.dialogo details { margin-top: 0.9rem; }

/* ---------- pantallas angostas */
@media (max-width: 62rem) {
  .lateral { position: static; width: auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; padding: 0.75rem 1rem; }
  .marca-gfe { margin: 0; padding: 0.35rem 0.6rem; }
  .marca-get, .marca-eating { font-size: 1.05rem; }
  .marca-gfe small { display: none; }
  #nav { display: flex; gap: 0.25rem 1rem; overflow-x: auto; flex: 1 1 100%; padding-bottom: 0.25rem; }
  .nav-grupo { display: flex; align-items: center; gap: 0.15rem; margin: 0; white-space: nowrap; }
  .nav-grupo p { margin: 0 0.35rem 0 0; }
  .nav-grupo a { margin: 0; border-left: 0; border-bottom: 3px solid transparent; }
  .nav-grupo a[aria-current] { border-bottom-color: #9fc7b8; }
  .lateral-pie { display: none; }
  #principal { margin-left: 0; padding: 1.25rem 1rem 3rem; }
  .pedido, .dos-col, .plato-cuerpo { grid-template-columns: minmax(0, 1fr); }
  .pedido-resumen { position: static; }
  .plato-nutricion { border-left: 0; border-top: 1px solid var(--linea); padding: 1rem 0 0; }
  .dias { grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); }
  .ficha-corta div { grid-template-columns: 1fr; gap: 0; }
  .grande-linea { text-align: left; }
  h1 { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }

/* ---------- impresión de las hojas de control */
@page { size: landscape; margin: 10mm; }
@media print {
  body { background: #fff; font-size: 9.5pt; }
  .lateral, .solo-pantalla, .saltar, dialog { display: none !important; }
  #principal { margin: 0; padding: 0; }
  .cabecera { display: none; }
  .titulo-impreso { display: block; font: 600 14pt var(--titulos); margin-bottom: 6pt; max-width: none; }
  .panel { border: 0; padding: 0; }
  .desliza { overflow: visible; }
  .tabla { font-size: 8.5pt; }
  .tabla th, .tabla td { padding: 2.5pt 4pt; }
  .control tbody td, .control tbody th { height: 17pt; }
  .celda small { display: none; }
  .celda { padding: 2pt 4pt; }
  .menu td { min-width: 0; }
  .menu th:first-child { min-width: 0; }
  .corte { break-before: page; }
  .etiquetas { grid-template-columns: repeat(4, 1fr); gap: 4mm; }
  tr, .etiqueta { break-inside: avoid; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ---------- piezas agregadas en la versión 2 */
.nav-grupo a.externo::after { content: ''; display: inline-block; width: 0.45rem; height: 0.45rem; margin-left: 0.4rem; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: rotate(45deg) translateY(-1px); opacity: 0.7; }
.describe { margin: 0; padding: 0.7rem 1.25rem 0; color: var(--tinta-suave); max-width: none; }
.rejilla.prep { grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: 0 0.9rem; background: #f7f8f5; border-radius: 4px; padding: 0.7rem 0.8rem 0; margin-bottom: 0.9rem; }
.rejilla.prep .campo { margin-bottom: 0.7rem; }
.rejilla.prep label { font-size: 0.8125rem; }
.rejilla.prep select { padding: 0.3rem 0.45rem; font-size: 0.875rem; }
.color-veg { display: inline-block; width: 0.7rem; height: 0.7rem; border-radius: 50%; margin-right: 0.35rem; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.15); }
.chip.activo .color-veg { box-shadow: 0 0 0 1.5px #fff; }
.precio-costo { margin: 0.75rem 0; border-top: 1px solid var(--linea); padding-top: 0.6rem; }
.precio-costo .resumen-dl div { font-size: 0.875rem; }
.dialogo-dos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 1rem; align-items: center; margin-bottom: 1rem; }
.ilus-plato svg { width: 100%; height: auto; display: block; }
.alerta-texto { color: var(--alerta); font-weight: 600; }
.aviso-panel { border-left: 4px solid var(--oro); }
.celda em { display: block; font-style: italic; color: #6b4c05; font-size: 0.8125rem; }
.dos-graficos { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 1.5rem; }
.figura { margin: 0; }
.figura figcaption { display: grid; margin-bottom: 0.4rem; }
.figura figcaption span { color: var(--tinta-suave); font-size: 0.8125rem; }
.grafico { width: 100%; height: auto; display: block; overflow: visible; }
.grafico .rejilla-g { stroke: #e3e7e1; stroke-width: 1; }
.grafico .base-g { stroke: #b9c2bb; stroke-width: 1; }
.grafico .eje { font: 400 11px var(--texto); fill: var(--tinta-suave); }
.grafico .valor-g { font: 600 12px var(--titulos); fill: var(--tinta); }
.grafico .marca-g { fill: #2a9064; }
.grafico .golpe { fill: transparent; }
.grafico .barra-g:hover .golpe, .grafico .barra-g:focus .golpe { fill: rgba(42, 144, 100, 0.08); }
.grafico .barra-g:focus { outline: none; }
.grafico .barra-g:focus-visible .golpe { stroke: var(--oro); stroke-width: 2; }
.estaciones { display: grid; grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr)); gap: 1.25rem; align-items: start; }
.estacion { margin: 0; border-top: 4px solid var(--tinta); }
.estacion td.quienes { color: var(--tinta-suave); font-size: 0.8125rem; }
.estado-cli { display: inline-block; padding: 0.05rem 0.5rem; border-radius: 3px; font-size: 0.8125rem; font-weight: 600; }
.estado-cli.activo { background: var(--salvia-suave); color: #23463c; }
.estado-cli.pausa { background: #ecefe9; color: var(--tinta-suave); }
.estado-cli.baja { background: var(--alerta-suave); color: #6d170f; }
.chip.alergia-on { background: var(--alerta); border-color: var(--alerta); color: #fff; }
.por-dia input.num { width: 3.5rem; }
.limites { margin: 0 0 0.6rem; padding-left: 1.1rem; }
.limites li { margin-bottom: 0.4rem; }
.limites input.num { width: 3.6rem; }
.historial { list-style: none; margin: 0; padding: 0; font-size: 0.8125rem; }
.historial li { padding: 0.35rem 0; border-bottom: 1px solid var(--linea); }
.historial s { color: var(--tinta-suave); }
.revision-pendiente { border-left: 4px solid var(--oro); }
.revision-revisada { border-left: 4px solid var(--salvia); }
.eti-desc { font-size: 0.75rem; color: var(--tinta-suave); margin: 0 0 0.35rem; line-height: 1.35; }
@media (max-width: 62rem) { .dialogo-dos { grid-template-columns: 1fr; } .estaciones { grid-template-columns: 1fr; } }
@media print { .estaciones { grid-template-columns: 1fr 1fr; } .estacion { break-inside: avoid; } .figura details, .dos-graficos { display: none; } }
