/* © 2026 KoreStock Ledger — un proyecto de Kitsótaro · Código disponible, todos los derechos reservados (ver LICENSE).
 * REGISTRO — pantallas Venta (verde) y Entrada (azul), §12.2 y §13. */
.registro { display: grid; gap: var(--e-3); }
.registro .buscador .control { min-height: var(--alto-control); border-radius: var(--r-sm); }
.registro-venta .tarjeta-producto { border-left: 4px solid var(--venta); }
.registro-entrada .tarjeta-producto { border-left: 4px solid var(--entrada); }
.total-cobrado input { color: var(--venta); }
.registro-entrada .total-pagado input { color: var(--entrada); }
details.desplegable-simple > summary { display: flex; align-items: center; gap: var(--e-2); }
details.desplegable-simple:not([open]) { padding-top: var(--e-3); padding-bottom: var(--e-3); }
.fila-presentacion { grid-template-columns: 2fr 1fr 1.3fr; }
.calculo { font-size: var(--t-sm); color: var(--texto-2); display: grid; gap: 2px; }
.calculo strong { color: var(--texto); font-family: var(--fuente-mono); }
.nivel-extra { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-2); }
.encabezado-registro { display: flex; align-items: center; gap: var(--e-2); font-weight: var(--peso-fuerte); }
.encabezado-registro.venta { color: var(--venta); } .encabezado-registro.entrada { color: var(--entrada); }
/* Entrada (fase UI): unidad de compra y resumen de solo lectura antes de «Guardar» */
.segmentado-compra { display: inline-grid; grid-auto-flow: column; padding: 3px; gap: 3px; border-radius: var(--r-pildora); background: var(--superficie-3); align-self: flex-start; }
.segmentado-compra button { border: 0; border-radius: var(--r-pildora); min-height: 2.25rem; padding: 0 var(--e-3); background: transparent; color: var(--texto-2); font-weight: var(--peso-fuerte); font-size: var(--t-sm); cursor: pointer; }
.segmentado-compra button::first-letter { text-transform: uppercase; }
.segmentado-compra button[aria-checked="true"] { background: var(--activo-fondo); color: var(--activo-texto); }
.resumen-compra { display: grid; gap: var(--e-1); }
.fila-resumen { display: flex; align-items: center; gap: var(--e-2); font-size: var(--t-sm); color: var(--texto-2); padding: var(--e-1) 0; }
.fila-resumen + .fila-resumen { border-top: 1px dashed var(--borde); }
.fila-resumen strong { color: var(--texto); font-variant-numeric: tabular-nums; }
.fila-resumen strong.t-exito { color: var(--exito); } .fila-resumen strong.t-peligro { color: var(--peligro); } .fila-resumen strong.t-aviso { color: var(--aviso); }
.registro .dato { display: flex; justify-content: space-between; align-items: center; gap: var(--e-3); color: var(--texto-2); font-size: var(--t-sm); }
.registro .dato strong { color: var(--texto); }
.registro .dato strong.t-exito { color: var(--exito); } .registro .dato strong.t-peligro { color: var(--peligro); }
/* Mismo espacio entre todas las tarjetas del registro (también Cliente, resumen y botones) */
#venta-producto, #venta-carrito, #entrada-producto, #entrada-carrito { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-3); }
#venta-producto:empty, #venta-carrito:empty, #entrada-carrito:empty, #entrada-resumen:empty { display: none; }
.registro .tarjeta + .tarjeta { margin-top: 0; }
#venta-cliente { margin: 0; }
/* Modo Pro: todo lo que se sabe del producto en su tarjeta */
.detalle-pro { display: grid; gap: var(--e-1); padding-top: var(--e-2); margin-top: var(--e-1); border-top: 1px dashed var(--borde); }
.detalle-pro .dato strong { text-align: right; }
/* Total cobrado: solo lectura salvo «¿Cobro extraordinario?» */
.control.solo-lectura { background: transparent; border-color: transparent; box-shadow: none; padding-left: 0; }
.control.solo-lectura input { cursor: default; }
.interruptor-cobro { align-items: flex-start; margin-top: var(--e-1); }
/* Modo editor dentro de la tarjeta del producto */
.editor-producto { padding-top: var(--e-2); border-top: 1px dashed var(--borde); gap: var(--e-3); }
/* Vista compacta (2026-10-24): menos aire, mismas funciones. */
.registro .fila-folio { flex-wrap: nowrap; gap: var(--e-2); font-size: var(--t-xs); }
.registro .fila-folio .control { padding: 0 var(--e-2); }
.registro .fila-folio input[type="date"] { font-size: var(--t-sm); }
#venta-folio, #entrada-folio { margin-left: auto; white-space: nowrap; }
.registro .fila-folio > label > .icono, .registro .fila-folio > .fila > .icono { display: none; }
.registro .fila-folio .control { min-width: 0; }
.campo-total { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: var(--e-3); row-gap: var(--e-1); }
.campo-total > .fila-ganancia, .campo-total > .interruptor { grid-column: 1 / -1; }
.interruptor-cobro { min-height: 2rem; margin-top: 0; }
.registro .tarjeta-producto .dato .cifra { text-align: right; }
.casilla-compacta { min-height: 2rem; gap: var(--e-2); }
.registro-entrada .boton-texto.boton-sm { min-height: 1.75rem; }
.registro details.desplegable > summary { min-height: 2rem; }
.registro .fila-folio input[type="date"] { width: 6.1rem; }
.registro .fila-folio .boton-icono { min-width: 2rem; width: 2rem; min-height: 2rem; padding: 0; margin-left: 0; }
.etiqueta-dato { display: inline-flex; align-items: center; gap: var(--e-2); flex: none; }
.etiqueta-dato .icono { color: var(--texto-3); flex: none; }
.etiqueta-dato .boton { min-height: 1.75rem; padding: 0 var(--e-2); }
/* Jerarquía: el total cobrado manda; la cantidad y las frases de Entrada son más discretas. */
.registro-venta .control.grande:has(#venta-cantidad) { min-height: 3.25rem; }
.registro-venta #venta-cantidad { font-size: var(--t-2xl); }
/* Botón principal flotante (solo teléfono): ver anclarBotonPrincipal en componentes.js */
.boton-flotante { position: fixed; right: var(--e-4); bottom: calc(var(--alto-barra-inferior) + var(--e-3) + var(--e-5) + env(safe-area-inset-bottom)); z-index: var(--z-barra); min-height: 2.75rem; padding: 0 var(--e-4); gap: var(--e-2); box-shadow: var(--sombra-2); }
.boton-flotante:disabled { opacity: 1; background: var(--superficie-3); color: var(--texto-2); border-color: var(--borde-fuerte); box-shadow: var(--sombra-1); }
.boton-flotante[hidden] { display: none; }
@media (min-width: 720px) { .boton-flotante { display: none; } }
.vacio .boton { margin-top: var(--e-2); }
.vacio .boton .icono { width: 1.25rem; height: 1.25rem; color: currentColor; }
.registro .campo > .fila-separada + .control { margin-top: var(--e-2); }
.titulo-ingreso { display: flex; align-items: center; gap: var(--e-2); font-size: var(--t-md); font-weight: var(--peso-fuerte); color: var(--texto-2); }
.rejilla-compra { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--e-3); }
.fila-cantidad { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-3); }
.fila-cantidad > .control { flex: none; width: 7.5rem; min-width: 0; }
.fila-cantidad > .control input { width: 100%; }
.fila-cantidad > .control input { text-align: center; font-weight: var(--peso-fuerte); font-size: var(--t-lg); }
/* Con el menú Venta / Entrada abierto, el botón flotante queda solo con su ícono y siempre por debajo del menú */
body:has(.fab-registro.abierto) .boton-flotante { padding: 0; width: 2.75rem; }
body:has(.fab-registro.abierto) .boton-flotante > span { display: none; }
/* Modos (2026-10-24): mayoreo grande con la unidad chica debajo; pie con «Agregar» y «Guardar/Cobrar»; empaques en varias filas */
.registro .tarjeta-producto .dato .mayor { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.2; }
.registro .tarjeta-producto .dato .mayor strong { font-size: var(--t-lg); }
.registro .tarjeta-producto .dato .mayor small { font-size: var(--t-xs); color: var(--texto-3); }
.pie-registro { display: grid; gap: var(--e-3); }
.pie-registro:empty { display: none; }
.chips-empaque { flex-wrap: wrap; overflow: visible; }
