/* Cosmos Pareja: Lista del mercado (despues de estilos.css y finanzas.css). Pensada para una mano en el supermercado. */
.titulo-pantalla { font-size: 1.15rem; }
.oculto-visual { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
main.compras { padding-bottom: calc(110px + env(safe-area-inset-bottom)); }

/* La calculadora queda pegada arriba mientras bajan por la lista */
.calculadora { position: sticky; top: 0; z-index: 3; background: var(--tarjeta); border: 1px solid var(--linea); border-radius: 18px; padding: 14px 16px; margin: 4px 0 12px; box-shadow: var(--sombra); }
.total-calc { font-size: 2rem; font-weight: 800; margin: 0; font-variant-numeric: tabular-nums; }
.linea-calc { margin: 4px 0 0; font-size: 0.9rem; }
.barra-calc { height: 10px; border-radius: 999px; background: var(--linea); overflow: hidden; margin: 8px 0 4px; }
.barra-calc span { display: block; height: 100%; background: var(--verde); border-radius: 999px; transition: width 0.3s ease; }
.barra-calc span.cerca { background: var(--amarillo); }
.barra-calc span.pasado { background: var(--rojo); }
.pasado-txt { color: var(--rojo); }

/* Agregar */
.agregar { display: grid; grid-template-columns: 1fr 56px 52px; gap: 8px; margin-bottom: 8px; }
.agregar .boton { margin: 0; min-height: 48px; padding: 0; font-size: 1.4rem; }
.agregar #nuevo-cant { text-align: center; padding: 12px 6px; }
.suave-chip { border-color: var(--linea); color: var(--texto); font-weight: 500; }

/* Productos */
.lista-items { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.item { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; grid-template-areas: "check nombre precio" "check cant precio"; gap: 4px 10px; align-items: center; background: var(--tarjeta); border: 1px solid var(--linea); border-radius: 14px; padding: 10px 12px; }
.item .check { grid-area: check; }
.item.en-carrito { background: var(--verde-claro); border-color: transparent; }
.nombre-item { grid-area: nombre; border: 0; background: none; color: inherit; font: inherit; text-align: left; padding: 0; cursor: pointer; min-width: 0; }
.nombre-item b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nombre-item small { display: block; color: var(--suave); font-size: 0.8rem; }
.cant-item { grid-area: cant; display: flex; align-items: center; gap: 4px; }
.cant-item button { width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--linea); background: var(--tarjeta); color: var(--texto); font-size: 1.1rem; line-height: 1; cursor: pointer; touch-action: manipulation; }
.cant-item span { min-width: 26px; text-align: center; font-weight: 600; font-variant-numeric: tabular-nums; }
.precio-item { grid-area: precio; position: relative; display: block; margin: 0; width: 110px; }
.precio-item .signo { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--suave); font-weight: 400; }
.precio-item input { padding: 10px 8px 10px 22px; text-align: right; font-variant-numeric: tabular-nums; }

/* Boton de terminar, pegado abajo */
.pie-compra { position: fixed; left: 0; right: 0; bottom: 0; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--tarjeta); border-top: 1px solid var(--linea); z-index: 5; }
.pie-compra .boton { max-width: 448px; margin: 0 auto; display: flex; }
.check { flex: none; width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--rosa); background: none; cursor: pointer; color: #fff; font-weight: 800; touch-action: manipulation; }
.check.lleno { background: var(--verde); border-color: var(--verde); }
.check.lleno::after { content: "✓"; }
