@font-face { font-family: 'Colon'; src: url(fuentes/colon-400.woff2) format('woff2'); font-weight: 400; unicode-range: U+20A1; font-display: swap; }
@font-face { font-family: 'Colon'; src: url(fuentes/colon-500.woff2) format('woff2'); font-weight: 500; unicode-range: U+20A1; font-display: swap; }
@font-face { font-family: 'Colon'; src: url(fuentes/colon-600.woff2) format('woff2'); font-weight: 600; unicode-range: U+20A1; font-display: swap; }
@font-face { font-family: 'Colon'; src: url(fuentes/colon-700.woff2) format('woff2'); font-weight: 700; unicode-range: U+20A1; font-display: swap; }
@font-face { font-family: 'Colon'; src: url(fuentes/colon-800.woff2) format('woff2'); font-weight: 800; unicode-range: U+20A1; font-display: swap; }
@font-face { font-family: 'Figtree'; src: url(fuentes/figtree-400.woff2) format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Figtree'; src: url(fuentes/figtree-700.woff2) format('woff2'); font-weight: 700; font-display: swap; }
/* El simbolo del colon (U+20A1) no existe en las fuentes de texto: se toma de Inter con el mismo grosor */
:root {
  --fondo: #f6f7f9; --superficie: #ffffff; --texto: #0f1722; --suave: #5b6675; --linea: #dfe3ea; --linea-fuerte: #c3cad5;
  --acento: #2563eb; --acento-texto: #ffffff; --acento-fondo: #e8efff;
  --ok: #0f7a4f; --ok-fondo: #e3f5ec; --mal: #c5282d; --mal-fondo: #fdebec;
  --radio: 14px; --sombra: 0 1px 0 rgba(15,23,34,.03);
  --tipo: "Colon", "Figtree", -apple-system, "Helvetica Neue", Helvetica, "Segoe UI", Roboto, Arial, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) {
    --fondo: #0b0e13; --superficie: #131820; --texto: #eef1f6; --suave: #9aa5b5; --linea: #252c38; --linea-fuerte: #364052;
    --acento: #5b8def; --acento-texto: #0b0e13; --acento-fondo: #172444;
    --ok: #3ccf93; --ok-fondo: #0f2a20; --mal: #ff7b7f; --mal-fondo: #331518; --sombra: none;
  }
}
:root[data-tema="oscuro"] {
  --fondo: #0b0e13; --superficie: #131820; --texto: #eef1f6; --suave: #9aa5b5; --linea: #252c38; --linea-fuerte: #364052;
  --acento: #5b8def; --acento-texto: #0b0e13; --acento-fondo: #172444;
  --ok: #3ccf93; --ok-fondo: #0f2a20; --mal: #ff7b7f; --mal-fondo: #331518; --sombra: none;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--fondo); color: var(--texto); font-family: var(--tipo); font-size: 17px; line-height: 1.4; -webkit-text-size-adjust: 100%; }
body { min-height: 100vh; min-height: 100dvh; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; -webkit-tap-highlight-color: transparent; }
.num { font-variant-numeric: tabular-nums; }
:focus-visible { outline: 2px solid var(--acento); outline-offset: 2px; }

/* Estructura */
.app { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.cabecera { background: var(--superficie); border-bottom: 1px solid var(--linea); padding: max(14px, env(safe-area-inset-top)) 16px 14px; }
.cabecera-in { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.marca { font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); }
.cabecera h1 { margin: 2px 0 0; font-size: 22px; font-weight: 600; letter-spacing: -.01em; }
.cabecera .fecha { color: var(--suave); font-size: 15px; margin-top: 2px; }
.etiqueta-prueba { border: 1px solid var(--linea-fuerte); border-radius: 999px; padding: 6px 12px; font-size: 14px; color: var(--suave); white-space: nowrap; }
main { flex: 1; width: 100%; max-width: 1100px; margin: 0 auto; padding: 18px 16px 120px; }
.cuadricula { display: grid; gap: 14px; }
@media (min-width: 720px) { .cuadricula.dos { grid-template-columns: 1fr 1fr; } main { padding-top: 24px; } }
.titulo-seccion { margin: 24px 0 10px; font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--suave); }
.titulo-seccion:first-child { margin-top: 0; }

/* Pestanas inferiores con palabras */
.pestanas { position: fixed; left: 0; right: 0; bottom: 0; background: var(--superficie); border-top: 1px solid var(--linea); padding-bottom: env(safe-area-inset-bottom); z-index: 5; }
.pestanas-in { max-width: 1100px; margin: 0 auto; display: flex; }
.pestana { flex: 1; min-height: 64px; background: none; border: 0; border-top: 3px solid transparent; color: var(--suave); font-size: 17px; font-weight: 500; }
.pestana[aria-current="page"] { color: var(--acento); border-top-color: var(--acento); font-weight: 700; }

/* Tarjetas */
.tarjeta { background: var(--superficie); border: 1px solid var(--linea); border-radius: var(--radio); padding: 18px; box-shadow: var(--sombra); }
.tarjeta h2 { margin: 0 0 10px; font-size: 17px; font-weight: 600; }
.etq { color: var(--suave); font-size: 15px; }
.grande { font-size: 46px; line-height: 1.1; font-weight: 600; letter-spacing: -.02em; margin: 6px 0 12px; }
@media (min-width: 720px) { .grande { font-size: 56px; } }
.estado { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--linea-fuerte); border-radius: 999px; padding: 6px 14px; font-size: 15px; font-weight: 500; }
.punto { width: 10px; height: 10px; border-radius: 50%; background: var(--suave); }
.estado.abierta { color: var(--ok); border-color: var(--ok); } .estado.abierta .punto { background: var(--ok); }
.fila { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 11px 0; border-top: 1px solid var(--linea); }
.fila:first-of-type { border-top: 0; }
.fila.total { font-weight: 600; }
.fila .etq { flex: 1; }
.insignia { display: inline-block; border-radius: 999px; padding: 4px 12px; font-size: 14px; font-weight: 600; border: 1px solid; white-space: nowrap; }
.insignia.cuadra, .insignia.sobra { color: var(--ok); background: var(--ok-fondo); border-color: var(--ok); }
.insignia.falta { color: var(--mal); background: var(--mal-fondo); border-color: var(--mal); }
.insignia.entrada { color: var(--acento); background: var(--acento-fondo); border-color: var(--acento); }
.insignia.salida { color: var(--texto); border-color: var(--linea-fuerte); }
.insignia.neutra { color: var(--suave); border-color: var(--linea-fuerte); }
.ok { color: var(--ok); } .mal { color: var(--mal); }

/* Botones */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 12px 20px; border-radius: 12px; border: 1px solid var(--linea-fuerte); background: var(--superficie); font-weight: 600; text-align: center; }
.btn.primario { background: var(--acento); color: var(--acento-texto); border-color: var(--acento); }
.btn.bloque { display: flex; width: 100%; }
.btn[aria-pressed="true"], .btn.activo { border-color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); color: var(--acento); }
.btn.peligro { color: var(--mal); border-color: var(--mal); }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.dos-botones { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.btn.enorme { min-height: 96px; font-size: 19px; flex-direction: column; gap: 4px; }
.btn.enorme small { font-weight: 400; color: var(--suave); font-size: 14px; }

/* Formularios */
.campo { display: block; margin: 0 0 16px; }
.campo > span { display: block; margin-bottom: 6px; font-weight: 600; font-size: 15px; }
.campo small { color: var(--suave); font-weight: 400; font-size: 14px; }
input[type=text], input[type=password], input[inputmode], select, textarea { width: 100%; min-height: 52px; padding: 10px 14px; background: var(--superficie); border: 1px solid var(--linea-fuerte); border-radius: 12px; }
.monto-wrap { position: relative; } .monto-wrap b { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--suave); }
.monto-wrap input { padding-left: 34px; font-size: 24px; font-weight: 600; }
.fichas { display: flex; flex-wrap: wrap; gap: 8px; }
.ficha { min-height: 48px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--linea-fuerte); background: var(--superficie); font-weight: 500; }
.ficha[aria-pressed="true"] { border-color: var(--acento); background: var(--acento-fondo); color: var(--acento); font-weight: 700; }
.error { color: var(--mal); background: var(--mal-fondo); border: 1px solid var(--mal); border-radius: 12px; padding: 10px 14px; margin: 0 0 14px; }
.aviso { color: var(--ok); background: var(--ok-fondo); border: 1px solid var(--ok); border-radius: 12px; padding: 10px 14px; margin: 0 0 14px; font-weight: 500; }
.acciones { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Listas */
.lista { list-style: none; margin: 0; padding: 0; }
.mov { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 12px 0; border-top: 1px solid var(--linea); }
.mov:first-child { border-top: 0; }
.mov .monto { font-weight: 600; text-align: right; }
.mov .sub { color: var(--suave); font-size: 14px; grid-column: 1 / -1; }
.vacio { color: var(--suave); padding: 6px 0; }
.cierre-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.cierre-cab h3 { margin: 0; font-size: 18px; font-weight: 600; }
.pie { color: var(--suave); font-size: 14px; margin-top: 10px; }
.tabla { width: 100%; border-collapse: collapse; }
.tabla th { text-align: right; font-weight: 600; font-size: 14px; color: var(--suave); padding: 8px 0; border-bottom: 1px solid var(--linea-fuerte); }
.tabla th:first-child, .tabla td:first-child { text-align: left; }
.tabla td { text-align: right; padding: 11px 0; border-bottom: 1px solid var(--linea); }
.tabla tfoot td { font-weight: 700; border-bottom: 0; }
.proximo { border-style: dashed; border-color: var(--linea-fuerte); background: transparent; }

/* Acceso con PIN */
.acceso { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: 20px 16px; }
.acceso-caja { width: 100%; max-width: 380px; text-align: center; }
.acceso h1 { margin: 6px 0 4px; font-size: 30px; letter-spacing: -.02em; }
.puntos { display: flex; justify-content: center; gap: 14px; margin: 22px 0 8px; min-height: 18px; }
.puntos i { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--linea-fuerte); }
.puntos i.lleno { background: var(--acento); border-color: var(--acento); }
.teclado { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 18px 0 14px; }
.tecla { min-height: 64px; font-size: 26px; font-weight: 500; border-radius: 14px; border: 1px solid var(--linea-fuerte); background: var(--superficie); }
.tecla.texto { font-size: 17px; font-weight: 600; }
.nota-prueba { margin-top: 18px; padding: 12px 14px; border: 1px dashed var(--linea-fuerte); border-radius: 12px; color: var(--suave); font-size: 14px; text-align: left; }

/* Selector de negocio y navegacion de fecha */
.selector-negocio { margin: 0 0 16px; }
.selector-negocio .ficha { flex: 1; min-height: 52px; font-size: 17px; }
.nav-fecha { display: grid; grid-template-columns: 64px 1fr 64px; gap: 12px; align-items: center; margin-bottom: 16px; }
.nav-fecha .btn { min-height: 56px; font-size: 26px; padding: 0; }
.nav-fecha-t { text-align: center; font-size: 19px; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.enlace, .enlace-btn { background: none; border: 0; padding: 6px 0; color: var(--acento); font-weight: 600; font-size: 15px; text-decoration: underline; }
.confirmar-corr { grid-column: 1 / -1; margin-top: 8px; padding: 12px; border: 1px dashed var(--linea-fuerte); border-radius: 12px; }
.confirmar-corr .acciones { margin-top: 10px; }
.mov .sub + .sub { margin-top: -2px; }

/* Compras */
.cuadricula.tres { grid-template-columns: 1fr; }
@media (min-width: 700px) { .cuadricula.tres { grid-template-columns: repeat(3, 1fr); } }
.barra-filtros { display: grid; gap: 12px; margin-bottom: 16px; }
.barra-filtros .fichas { gap: 10px; } .barra-filtros .ficha { flex: 1; min-height: 52px; font-size: 17px; }
@media (min-width: 700px) { .barra-filtros { grid-template-columns: 1fr 1fr; align-items: center; } }
.resumen .grande { font-size: 34px; margin: 4px 0 2px; }
@media (min-width: 700px) { .resumen .grande { font-size: 40px; } }
.columnas { display: grid; gap: 14px; margin-top: 14px; align-items: start; }
@media (min-width: 900px) { .columnas { grid-template-columns: 1fr 1fr; } }
.vivo { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--suave); }
.vivo.on { color: var(--ok); } .vivo.on .punto { background: var(--ok); }
.facturas { margin-top: 6px; }
.separador-dia { margin: 14px 0 4px; font-size: 14px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--suave); }
.separador-dia:first-child { margin-top: 0; }
.factura { width: 100%; text-align: left; background: none; border: 0; border-top: 1px solid var(--linea); padding: 14px 0; display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; }
.facturas li:first-of-type .factura, .separador-dia + li .factura { border-top: 0; }
.f-prov { font-weight: 600; font-size: 18px; } .f-monto { font-weight: 700; font-size: 20px; text-align: right; }
.f-sub { color: var(--suave); font-size: 15px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; } .f-iva { justify-content: flex-end; }
.detalle { padding: 0 0 12px; margin: 0 0 4px; background: var(--fondo); border-radius: 12px; padding: 4px 14px; }
.detalle .fila:first-child { border-top: 0; }
.segmento { margin: 10px 0 8px; } .segmento .ficha { flex: 1; min-height: 52px; font-size: 17px; }
.grafico { width: 100%; height: auto; display: block; }
.g-tx { fill: var(--suave); font-size: 14px; } .g-eje { fill: var(--suave); font-size: 14px; font-weight: 600; }
.leyenda { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; font-size: 14px; margin-top: 4px; }
.cuad { display: inline-block; width: 14px; height: 14px; border-radius: 3px; margin-right: 6px; vertical-align: -2px; border: 1px solid var(--acento); }
.cuad.solido { background: var(--acento); } .cuad.claro { background: var(--acento-fondo); }
.d-fila { padding: 10px 0; border-top: 1px solid var(--linea); } .d-fila:first-child { border-top: 0; }
.d-cab { display: flex; justify-content: space-between; gap: 10px; font-size: 17px; }
.d-barra { height: 10px; background: var(--fondo); border-radius: 6px; margin: 6px 0 4px; overflow: hidden; border: 1px solid var(--linea); }
.d-barra i { display: block; height: 100%; background: var(--acento); }
.d-sub { font-size: 14px; }
/* Tableta: texto mas grande para leer a distancia */
@media (min-width: 560px) and (max-width: 1100px) { html, body { font-size: 19px; } .f-prov { font-size: 20px; } .f-monto { font-size: 22px; } }

/* Bodega */
.secciones-bodega { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-bottom: 14px; }
.seccion { position: relative; min-height: 60px; padding: 8px 4px; border-radius: 12px; border: 1px solid var(--linea-fuerte); background: var(--superficie); font-weight: 600; font-size: 16px; }
.seccion[aria-pressed="true"] { background: var(--acento-fondo); border-color: var(--acento); color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); }
.cuenta { position: absolute; top: -8px; right: -4px; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px; background: var(--mal); color: var(--acento-texto); font-size: 14px; font-weight: 700; display: grid; place-items: center; }
@media (max-width: 700px) { .secciones-bodega { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 460px) { .secciones-bodega { gap: 6px; } .seccion { font-size: 15px; } }
.buscar, .barra-busqueda input { width: 100%; min-height: 56px; padding: 10px 16px; font-size: 18px; border: 1px solid var(--linea-fuerte); border-radius: 12px; background: var(--superficie); }
.barra-busqueda { display: grid; gap: 10px; margin-bottom: 12px; } @media (min-width: 700px) { .barra-busqueda { grid-template-columns: 1fr auto; } }
.barra-busqueda .ficha { min-height: 56px; font-size: 17px; }
.lista-art, .lista-paso { padding: 0; } .lista-art li, .lista-paso li { list-style: none; } [hidden] { display: none !important; }
.fila-art { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; min-height: 68px; padding: 10px 0; text-align: left; background: none; border: 0; border-top: 1px solid var(--linea); }
.separador-dia + li .fila-art { border-top: 0; }
.a-nom { font-size: 18px; font-weight: 600; display: flex; flex-direction: column; gap: 2px; } .a-sub { font-size: 14px; font-weight: 400; color: var(--suave); }
.a-cant { font-size: 26px; font-weight: 700; text-align: right; } .a-cant small { font-size: 15px; font-weight: 400; color: var(--suave); }
.fila-art.bajo .a-cant { color: var(--mal); }
.ajuste { margin: 4px 0 12px; padding: 12px 14px; background: var(--fondo); border-radius: 12px; }
.tipos-salida { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 14px; } @media (min-width: 700px) { .tipos-salida { grid-template-columns: repeat(4, 1fr); } }
.tipos-salida .btn.enorme { min-height: 84px; }
.paso { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--linea); }
.separador-dia + .paso { border-top: 0; }
.p-nom { font-size: 18px; font-weight: 600; display: flex; flex-direction: column; }
.stepper { display: flex; gap: 8px; align-items: center; }
.stepper .btn { min-width: 60px; min-height: 60px; font-size: 28px; padding: 0; }
.stepper input { width: 96px; min-height: 60px; text-align: center; font-size: 24px; font-weight: 700; padding: 8px; border: 1px solid var(--linea-fuerte); border-radius: 12px; background: var(--superficie); }
.barra-accion { position: sticky; bottom: 78px; padding: 12px 0 0; background: linear-gradient(transparent, var(--fondo) 30%); display: grid; gap: 10px; }
.barra-accion.dos { grid-template-columns: 1fr 1fr; }
.enorme-bar { min-height: 64px; font-size: 20px; width: 100%; }

/* Bodega: hoy, tablas con scroll interno, asignar articulo, minimos, lotes */
.hoy { margin: 0 0 12px; padding: 10px 14px; border: 1px solid var(--linea); border-left: 3px solid var(--acento); border-radius: 10px; background: var(--superficie); font-size: 16px; }
.tabla-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.tabla-lugares th, .tabla-min th { white-space: nowrap; padding-left: 10px; }
.tabla-lugares td, .tabla-min td { padding: 10px 0 10px 10px; vertical-align: middle; }
.tabla-lugares td:first-child, .tabla-min td:first-child, .tabla-lugares th:first-child, .tabla-min th:first-child { min-width: 170px; padding-left: 0; }
.tabla-lugares td .a-sub, .tabla td .a-sub { display: block; }
.tabla-lugares .cat td { padding: 14px 0 4px; font-size: 14px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--suave); text-align: left; border-bottom: 0; }
.tabla-min input { min-width: 84px; width: 100%; min-height: 52px; text-align: right; font-size: 18px; padding: 8px 10px; border: 1px solid var(--linea-fuerte); border-radius: 10px; background: var(--superficie); }
.btn.chico { min-height: 48px; padding: 8px 16px; font-size: 16px; }
.insignia.ok { color: var(--ok); background: var(--ok-fondo); border-color: var(--ok); }
.insignia.amarillo { color: #8a5a00; background: #fff4d6; border-color: #d9a21b; } .insignia.mal { color: var(--mal); background: var(--mal-fondo); border-color: var(--mal); }
.amarillo { color: #8a5a00; }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .insignia.amarillo { color: #f0c15a; background: #2d2410; border-color: #8a6a1c; } :root:not([data-tema="claro"]) .amarillo { color: #f0c15a; } }
:root[data-tema="oscuro"] .insignia.amarillo { color: #f0c15a; background: #2d2410; border-color: #8a6a1c; } :root[data-tema="oscuro"] .amarillo { color: #f0c15a; }
.propuesta { margin-top: 6px; padding: 12px 14px; border: 1px dashed var(--linea-fuerte); border-radius: 12px; display: grid; gap: 8px; color: var(--texto); font-size: 16px; }
.propuesta .acciones { margin-top: 4px; }
.asignada input { width: 84px; min-height: 48px; text-align: center; font-size: 18px; font-weight: 700; border: 1px solid var(--linea-fuerte); border-radius: 10px; background: var(--superficie); margin: 0 4px; }
.mov .sub .acciones { margin-top: 6px; }
.segmento { display: grid; grid-template-columns: repeat(3, 1fr); } .segmento .ficha { min-height: 56px; }
input[type=date] { width: 100%; min-height: 52px; padding: 10px 14px; background: var(--superficie); border: 1px solid var(--linea-fuerte); border-radius: 12px; }
.selector-art { width: 100%; grid-column: 1 / -1; display: grid; gap: 10px; padding: 10px 0; }
.selector-art .lista { max-height: 320px; overflow-y: auto; border: 1px solid var(--linea); border-radius: 12px; padding: 0 12px; }
.selector-art .fila-art { min-height: 60px; }
.lotes { margin-top: 14px; } .lotes .mov { padding: 8px 0; }
.enlace { min-height: 44px; }

@font-face { font-family: 'Figtree'; src: url(fuentes/figtree-600.woff2) format('woff2'); font-weight: 600; font-display: swap; }
.nombre-app { position: absolute; left: 16px; top: max(16px, env(safe-area-inset-top)); z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.nombre-texto { padding: 6px 14px 8px; border-radius: 10px; background: rgba(244,224,176,.92); border: .5px solid rgba(255,255,255,.8); box-shadow: 0 10px 30px rgba(0,0,0,.18); color: #111; font: 600 36px/1 'Figtree', system-ui, sans-serif; letter-spacing: -.01em; }
.lema { position: relative; margin-left: -6px; padding: 4px 10px; font: 600 21px/1.2 'Figtree', system-ui, sans-serif; color: #111; }
.lema::before { content: ""; position: absolute; inset: -6px -18px; z-index: -1; background: radial-gradient(closest-side, rgba(244,224,176,.88) 55%, rgba(244,224,176,0) 100%); filter: blur(4px); }
.nombre-texto em { font-style: normal; color: #b04f0a; }
/* Entrada personal de Dixia: foto completa y panel de vidrio */
.entrada:not(.insignia) { position: relative; min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; justify-content: flex-end; padding: max(20px, env(safe-area-inset-top)) clamp(16px, 7vw, 120px) max(20px, env(safe-area-inset-bottom)); background: #7a3b12 url(fotos/entrada.jpg) 30% 46% / cover no-repeat; }
.entrada-panel { width: 100%; max-width: 300px; padding: 22px 22px 20px; border-radius: 22px; background: rgba(70,30,8,.30); border: .5px solid rgba(255,255,255,.6); box-shadow: 0 18px 50px rgba(60,25,5,.25); -webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2); color: #fff; text-shadow: 0 1px 8px rgba(40,15,0,.45); }
.entrada-panel .marca { color: rgba(255,255,255,.9); }
.entrada-panel h1 { margin: 8px 0 16px; font-size: 25px; line-height: 1.1; letter-spacing: -.01em; font-weight: 400; text-wrap: balance; }
.entrada-sub { margin: 0 0 18px; font-size: 21px; line-height: 1.25; color: rgba(255,255,255,.95); }
.entrada-campo { display: block; }
.entrada-campo span { display: block; margin-bottom: 6px; font-size: 14px; color: rgba(255,255,255,.95); }
.entrada-campo input { width: 100%; box-sizing: border-box; min-height: 48px; margin-bottom: 2px; border-radius: 14px; border: 1px solid rgba(255,255,255,.75); background: rgba(255,255,255,.82); color: #2a1608; font-size: 24px; font-weight: 300; letter-spacing: .5em; text-align: center; text-shadow: none; }
.entrada-campo input:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.entrada-error { margin: 14px 0 0; padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,.9); color: #9b1c20; font-size: 16px; text-shadow: none; }
.entrada-boton { width: 100%; min-height: 48px; margin-top: 18px; border: 0; border-radius: 14px; background: #fff; color: #7a2e0b; font-size: 17px; font-weight: 500; letter-spacing: .02em; text-shadow: none; }
.entrada-boton:disabled { background: rgba(255,255,255,.45); color: rgba(60,25,5,.6); }
@media (max-width: 700px) { .entrada:not(.insignia) { align-items: flex-end; justify-content: center; background-position: 6% 30%; padding: 16px; } .entrada-panel { max-width: 340px; padding: 18px 20px 18px; } .entrada-panel h1 { font-size: 23px; } .entrada-sub { margin-bottom: 14px; font-size: 19px; } }

/* ---------- Inicio ---------- */
.ini-h { font-size: 38px; font-weight: 600; letter-spacing: -.02em; line-height: 1.05; margin: 6px 0 6px; }
.ini-msg { font-size: 19px; color: var(--suave); margin: 0 0 18px; }
.ini-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.ini-k { position: relative; overflow: hidden; border-radius: 22px; padding: 18px 20px; color: #fff; min-height: 128px; border: 1px solid rgba(255,255,255,.55);
  box-shadow: inset 0 2px 0 rgba(255,255,255,.8), inset 0 -16px 30px rgba(0,0,0,.14), 0 18px 34px -10px rgba(60,30,10,.32); }
.ini-k::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(165deg, rgba(255,255,255,.5), rgba(255,255,255,.1) 38%, rgba(255,255,255,0) 60%); pointer-events: none; }
.ini-k::after { content: ""; position: absolute; right: -34px; top: -40px; width: 140px; height: 140px; border-radius: 50%; background: radial-gradient(circle at 32% 28%, rgba(255,255,255,.8), rgba(255,255,255,.28) 40%, rgba(255,255,255,.05) 70%); }
.ini-k small { display: block; font-size: 14px; font-weight: 600; opacity: .95; position: relative; z-index: 1; }
.ini-n { font-size: 32px; font-weight: 700; margin: 8px 0 2px; position: relative; z-index: 1; }
.ini-d { font-size: 14px; position: relative; z-index: 1; }
.k1 { background: linear-gradient(135deg, #d6233a, #ff6a4d); } .k2 { background: linear-gradient(135deg, #e89a10, #ffd24a); color: #2b1c05; } .k3 { background: linear-gradient(135deg, #17986a, #5fd39a); }
.ini-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 14px; align-items: start; }
.ini-c, .ini-ia { background: var(--superficie); border-radius: 22px; padding: 18px 20px; border: 1px solid var(--linea); }
.ini-c h3 { font-size: 19px; font-weight: 600; margin: 0 0 10px; display: flex; justify-content: space-between; align-items: center; }
.ini-c h3 span { font-size: 14px; color: var(--suave); font-weight: 400; }
.ini-ia { margin-bottom: 14px; background: linear-gradient(110deg, #e8f0ff, #efe6ff); color: #1a1a2e; display: grid; gap: 4px; border: 0; }
.ini-ia b { font-weight: 600; }
.ini-dec { display: flex; flex-wrap: wrap; row-gap: 10px; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--linea); }
.ini-dec:first-of-type { border-top: 0; }
.ini-ic { width: 42px; height: 42px; border-radius: 13px; flex: none; display: grid; place-items: center; font-weight: 700; color: #fff; }
.ini-t { flex: 1; min-width: 0; } .ini-t b { display: block; font-weight: 600; } .ini-t small, .ini-ft small { color: var(--suave); display: block; }
.ini-btn { background: var(--texto); color: var(--superficie); border: 0; border-radius: 999px; padding: 0 20px; min-height: 44px; font: inherit; font-weight: 600; cursor: pointer; }
.ini-link { background: none; border: 0; color: var(--acento); font: inherit; font-weight: 600; min-height: 44px; padding: 0 8px; cursor: pointer; }
.ini-f { display: flex; gap: 12px; align-items: center; padding: 9px 0; }
.ini-dt { width: 52px; text-align: center; background: var(--fondo); border-radius: 14px; padding: 6px 0; flex: none; }
.ini-dt b { display: block; font-size: 22px; line-height: 1; } .ini-dt i { font-style: normal; font-size: 11px; font-weight: 600; color: var(--suave); text-transform: uppercase; }
.ini-dt.viaje { background: linear-gradient(135deg, #dff1ff, #e6e3ff); color: #1a1a2e; }
.ini-ft { flex: 1; min-width: 0; } .ini-ft b { font-weight: 600; }
.ini-viaje { display: grid; gap: 10px; padding-top: 8px; } .ini-viaje label { display: grid; gap: 4px; font-weight: 600; font-size: 14px; }
.ini-viaje input { font: inherit; min-height: 48px; border: 1px solid var(--linea-fuerte); border-radius: 12px; padding: 0 12px; background: var(--superficie); color: var(--texto); }
.ini-fila-b { display: flex; justify-content: space-between; align-items: center; } .ini-err { color: var(--mal); margin: 0; } .ini-vacio { color: var(--suave); margin: 4px 0; }
@media (max-width: 760px) { .ini-kpis, .ini-grid { grid-template-columns: 1fr; } .ini-h { font-size: 30px; } .ini-k { min-height: 0; }
  .ini-dec { flex-wrap: wrap; row-gap: 10px; } .ini-t { flex: 1 1 calc(100% - 56px); } .ini-dec .ini-btn { margin-left: auto; min-height: 48px; } }
.ini-aviso { display: flex; gap: 12px; align-items: center; justify-content: space-between; background: #fff4d6; color: #3b2a05; border-radius: 16px; padding: 10px 16px; margin: 0 0 14px; border: 1px solid #f2d27a; }
.ini-mov { width: 34px; height: 34px; border-radius: 50%; flex: none; display: grid; place-items: center; font-weight: 700; color: #fff; }
.ini-mov.mov-e { background: var(--ok); } .ini-mov.mov-s { background: var(--mal); }
.ini-resolver { flex: 1 1 100%; display: grid; gap: 10px; background: var(--fondo); border-radius: 14px; padding: 12px; }
.ini-resolver label { display: grid; gap: 4px; font-weight: 600; font-size: 14px; }
.ini-resolver input { font: inherit; min-height: 48px; border: 1px solid var(--linea-fuerte); border-radius: 12px; padding: 0 12px; background: var(--superficie); color: var(--texto); }

/* ---------- Paleta y vidrio de todo el app (misma que el inicio): fondo con vida, tarjetas de vidrio, pestañas en pastilla ---------- */
:root {
  --fondo: #f6f3ec; --superficie: #ffffff; --texto: #14110d; --suave: #6c6256; --linea: #e9e2d4; --linea-fuerte: #d6cbb6;
  --acento: #c2480a; --acento-texto: #ffffff; --acento-fondo: #ffe9d6;
  --ok: #12804f; --ok-fondo: #dff6ea; --mal: #b81622; --mal-fondo: #fde8e9;
  --radio: 22px; --sombra: inset 0 1.5px 0 #fff, 0 16px 30px -12px rgba(60,30,10,.20);
  --vidrio: rgba(255,255,255,.78); --halo1: rgba(240,120,42,.22); --halo2: rgba(31,169,113,.18); --halo3: rgba(242,178,26,.24);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) {
    --fondo: #15110d; --superficie: #211b15; --texto: #f6efe3; --suave: #b3a78f; --linea: #342b21; --linea-fuerte: #4a3e30;
    --acento: #ff9a4d; --acento-texto: #15110d; --acento-fondo: #3a2615;
    --ok: #4cd09a; --ok-fondo: #12281f; --mal: #ff7b83; --mal-fondo: #331518; --sombra: 0 14px 28px -12px rgba(0,0,0,.6);
    --vidrio: rgba(33,27,21,.8); --halo1: rgba(240,120,42,.16); --halo2: rgba(31,169,113,.12); --halo3: rgba(242,178,26,.12);
  }
}
:root[data-tema="oscuro"] {
  --fondo: #15110d; --superficie: #211b15; --texto: #f6efe3; --suave: #b3a78f; --linea: #342b21; --linea-fuerte: #4a3e30;
  --acento: #ff9a4d; --acento-texto: #15110d; --acento-fondo: #3a2615;
  --ok: #4cd09a; --ok-fondo: #12281f; --mal: #ff7b83; --mal-fondo: #331518; --sombra: 0 14px 28px -12px rgba(0,0,0,.6);
  --vidrio: rgba(33,27,21,.8); --halo1: rgba(240,120,42,.16); --halo2: rgba(31,169,113,.12); --halo3: rgba(242,178,26,.12);
}
body { background:
  radial-gradient(560px 420px at 6% 12%, var(--halo1), transparent 70%),
  radial-gradient(580px 440px at 96% 30%, var(--halo2), transparent 70%),
  radial-gradient(620px 460px at 50% 98%, var(--halo3), transparent 70%), var(--fondo); }
.cabecera { background: var(--vidrio); }
.tarjeta { background: var(--vidrio); border-color: rgba(255,255,255,.7); }
:root[data-tema="oscuro"] .tarjeta { border-color: var(--linea); }
@media (prefers-color-scheme: dark) { :root:not([data-tema="claro"]) .tarjeta { border-color: var(--linea); } }
.tarjeta h2 { font-size: 19px; }
.btn { border-radius: 999px; }
.btn.primario { background: var(--texto); color: var(--fondo); border-color: var(--texto); }
.btn[aria-pressed="true"], .btn.activo { border-color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); color: var(--acento); }
.ficha[aria-pressed="true"] { border-color: var(--acento); background: var(--acento-fondo); color: var(--acento); }
.pestanas { left: 50%; right: auto; transform: translateX(-50%); width: min(720px, calc(100% - 24px)); bottom: max(12px, env(safe-area-inset-bottom)); padding: 6px; border: 0; border-radius: 999px;
  background: var(--vidrio); box-shadow: 0 10px 34px rgba(60,30,10,.18), inset 0 0 0 1px var(--linea); }
.pestanas-in { gap: 2px; }
.pestana { min-height: 52px; border: 0; border-radius: 999px; font-weight: 600; }
.pestana[aria-current="page"] { background: var(--texto); color: var(--fondo); border: 0; }
@media (max-width: 420px) { .pestana { font-size: 15px; padding: 0 2px; } }
.lineas-fac { padding: 6px 0 10px; }
.lineas-fac > b { display: block; margin-bottom: 4px; }
.lin-f { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 8px 0; border-top: 1px solid var(--linea); }
.lin-d { grid-column: 1 / -1; font-weight: 600; }
.lin-c { color: var(--suave); font-size: 14px; }
.lin-t { text-align: right; }
.busca-prov { margin: 0 0 12px; }
.busca-prov input { width: 100%; box-sizing: border-box; min-height: 48px; padding: 0 16px; border-radius: 14px; border: 1px solid var(--linea-fuerte); background: var(--superficie); color: var(--texto); font: inherit; font-size: 16px; }
.busca-res { margin-top: 8px; background: var(--superficie); border: 1px solid var(--linea); border-radius: 14px; padding: 4px 12px; }

/* Ventas en vivo */
.tabla-desliza { overflow-x: auto; }
.tabla tr.total th, .tabla tr.total td { font-weight: 700; border-bottom: 0; }
.tabla tbody th { text-align: left; font-weight: 500; color: var(--tinta, inherit); font-size: 16px; padding: 11px 8px 11px 0; border-bottom: 1px solid var(--linea); }
.turno .fila b { text-align: right; }
.tabla-ancha { min-width: 420px; } .tabla-ancha th, .tabla-ancha td { padding-left: 14px; } .tabla-ancha th:first-child, .tabla-ancha td:first-child { padding-left: 0; }
.part { margin-top: 12px; border-top: 1px solid var(--linea); padding-top: 10px; } .part .d-fila { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; padding: 8px 0; border-bottom: 1px solid var(--linea); } .part .d-fila .num { text-align: right; }
/* Compras por proveedor: nombre legal pequeno y periodo en cuatro fichas */
.legal { display: block; font-weight: 400; font-size: 13px; color: var(--tinta-suave, #6b6560); margin-top: 2px; }
.fila-art .a-der { text-align: right; white-space: nowrap; margin-left: 12px; }
.segmento.cuatro { grid-template-columns: repeat(4, 1fr); }
/* Ventas: lo mas y lo menos vendido, y horas fuertes del dia */
.g-grande { font-size: 22px; } .cuad.gris { background: var(--linea-fuerte); border-color: var(--suave); }
.top-dos { display: grid; gap: 18px; margin-top: 6px; } @media (min-width: 640px) { .top-dos { grid-template-columns: 1fr 1fr; gap: 24px; } }
.top-sub { margin: 4px 0 6px; font-size: 16px; font-weight: 600; } .top-sub .etq { display: block; font-weight: 400; }
.top-lista { list-style: none; margin: 0; padding: 0; } .top-lista li { display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--linea); min-height: 52px; }
.top-n { color: var(--suave); font-weight: 600; text-align: center; } .top-nombre { min-width: 0; overflow-wrap: anywhere; }
.top-cifras { display: grid; text-align: right; justify-items: end; } .top-cifras .etq { font-size: 14px; }
.top-vacio { margin: 10px 0; color: var(--suave); } .top-sin { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--linea); }
.columnas > * { min-width: 0; }

/* Pantalla de bienvenida de 4 segundos sobre toda la app */
#splash { position: fixed; inset: 0; z-index: 9999; opacity: 1; transition: opacity .35s ease; }
#splash.sale { opacity: 0; pointer-events: none; }

/* Cierres de caja del facturador: lista compacta por dia, detalle al tocar un turno */
.tn-lista { margin-top: 10px; }
.tn { border-top: 1px solid var(--linea); }
.tn:first-child { border-top: 0; }
.tn-fila { width: 100%; text-align: left; background: none; border: 0; padding: 12px 0 8px; display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: start; }
.tn-izq { display: flex; flex-wrap: wrap; gap: 0 6px; align-items: baseline; min-width: 0; }
.tn-quien { flex: 1 1 100%; font-size: 14px; }
.tn-der { display: grid; justify-items: end; gap: 4px; text-align: right; }
.tn-ver { grid-column: 1 / -1; color: var(--acento); font-weight: 600; font-size: 15px; min-height: 28px; }
.tn-detalle { background: var(--fondo); border-radius: 12px; padding: 4px 14px 10px; margin: 0 0 10px; }
.tn-detalle .fila:first-child { border-top: 0; }
.tn-sub { margin: 14px 0 0; font-size: 14px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--suave); }
.tn-movs { margin-top: 12px; border-top: 1px solid var(--linea-fuerte); padding-top: 8px; }
.tn-dia .cierre-cab h3 { text-transform: capitalize; }
.tn-movs .fila b.num, .tn-detalle .fila b.num { white-space: nowrap; }
.tn-detalle .fila b, .tn-movs .fila b { min-width: 0; overflow-wrap: anywhere; text-align: right; }
.tn-detalle .fila .etq { flex: 0 1 auto; min-width: 0; }
.tn .tn-detalle, .tn-lista > li { min-width: 0; max-width: 100%; }

.tn-detalle .fila.texto b.num { white-space: normal; font-variant-numeric: normal; }

/* Revision de cortes (3 nov 2026): nada se corta ni obliga a deslizar en celular */
@media (max-width: 600px) {
  .tabla-ancha { min-width: 0; font-size: 14px; }
  .tabla-ancha th, .tabla-ancha td { padding-left: 8px; font-size: 14px; }
  .tabla-ancha th:first-child, .tabla-ancha td:first-child { padding-left: 0; }
  .pestana { font-size: 15px; padding: 0 2px; min-width: 0; }
}
@media (max-width: 340px) {
  .pestana { font-size: 13px; }
  .tabla-ancha, .tabla-ancha th, .tabla-ancha td { font-size: 12.5px; }
  .tabla-ancha th, .tabla-ancha td { padding-left: 5px; }
  .stepper { gap: 6px; flex-wrap: wrap; }
  .stepper .btn { min-width: 52px; }
  .stepper input { width: 80px; }
}
@media (max-width: 900px) { .ini-kpis { grid-template-columns: 1fr; } .ini-k { min-height: 0; } }
@media (max-width: 420px) {
  .barra-filtros .fichas { gap: 6px; flex-wrap: nowrap; }
  .barra-filtros .ficha, .selector-negocio .ficha { min-width: 0; padding: 8px 6px; font-size: 15px; }
  .stepper { gap: 6px; } .stepper .btn { min-width: 54px; } .stepper input { width: 84px; }
}
.segmento { grid-template-columns: repeat(3, minmax(0, 1fr)); } .segmento.cuatro { grid-template-columns: repeat(4, minmax(0, 1fr)); } .segmento .ficha { min-width: 0; }
@media (max-width: 420px) { .segmento .ficha { padding: 8px 4px; font-size: 15px; } }
@media (max-width: 420px) { .pestana { font-size: 13.5px; padding: 0 1px; letter-spacing: -.1px; white-space: nowrap; } }
@media (max-width: 340px) { .pestana { font-size: 12px; } }
@media (max-width: 340px) { .pestanas { width: calc(100% - 8px); padding: 4px; } .pestanas-in { gap: 0; } .pestana { font-size: 11px; padding: 0; letter-spacing: -.2px; } }
.pestana { flex: 1 1 auto; }
#sin-conexion{position:fixed;left:0;right:0;top:0;z-index:60;padding:calc(6px + env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right)) 6px max(12px,env(safe-area-inset-left));background:#171212;color:#fff;font-size:14px;text-align:center}
#sin-conexion:not([hidden]) ~ #app{padding-top:34px}

/* Bienvenida a pantalla completa (3 nov 2026): la foto cubre también la hora y la batería; en el resto de la app una banda sólida bajo la barra de estado mantiene legible la hora (texto blanco) */
:root{--banda-estado:#7a3b12}
@media (prefers-color-scheme: dark){:root:not([data-tema="claro"]){--banda-estado:#0e1116}}
:root[data-tema="oscuro"]{--banda-estado:#0e1116}
body::before{content:"";position:fixed;left:0;right:0;top:0;height:env(safe-area-inset-top,0px);background:var(--banda-estado);z-index:50;pointer-events:none}
#splash{top:0;left:0;right:0;bottom:0;height:100vh;height:100dvh}

/* Espera y actualizacion: la pantalla responde al toque aunque los datos tarden */
.esqueleto { display: grid; gap: 14px; }
.esq-texto { margin: 0; color: var(--suave); font-size: 16px; }
.esq-bloque { height: 96px; border: 1px solid var(--linea); border-radius: var(--radio); background: var(--superficie); animation: esq-pulso 1.3s ease-in-out infinite; }
.esq-bloque.alto { height: 132px; } .esq-bloque.bajo { height: 64px; }
@keyframes esq-pulso { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
#refresca { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 30; overflow: hidden; pointer-events: none; }
#refresca::before { content: ""; position: absolute; top: 0; bottom: 0; width: 38%; background: var(--acento); border-radius: 0 3px 3px 0; animation: refresca-barrido 1.1s ease-in-out infinite; }
@keyframes refresca-barrido { 0% { left: -38%; } 100% { left: 100%; } }
#app[aria-busy="true"] main { opacity: .55; transition: opacity .15s; }
.solo-voz { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .esq-bloque { animation: none; } #refresca::before { animation: none; left: 0; } }
