/* Óptica: las demás secciones con el mismo oficio de programa (cabecera, barra de comandos, buscador, tabla o mosaico, todo
   a lo ancho). El detalle de una fila (hoja de la orden, ficha de la montura) se abre en su ventana. Solo Atención (la orden de
   trabajo) y Clientes (la ficha del paciente) llevan columna a la derecha. */
.pagina-v { min-height: 100%; }
.contenido-v { min-width: 0; }

/* Vitrina: el mismo mosaico de Atención, con «Ver» */
.tarjetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.tarjeta-m { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--linea); border-radius: var(--r2); background: var(--capa); cursor: pointer; transition: border-color var(--t), box-shadow var(--t); }
.tarjeta-m:hover { border-color: var(--acento); box-shadow: var(--sombra-tarjeta); }
.tarjeta-m.elegida { border-color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); }
.tarjeta-m .foto { aspect-ratio: 4 / 3; overflow: hidden; }
.tarjeta-m .foto img { width: 100%; height: 100%; object-fit: contain; transform: scale(1.12); }
.tarjeta-m .codigo { padding: 10px 12px 0; color: var(--tinta-3); font-size: 12.5px; }
.tarjeta-m h3 { padding: 0 12px; font-size: 14px; font-weight: 700; line-height: 1.3; }
.pie-m { display: flex; align-items: end; justify-content: space-between; gap: 8px; margin-top: auto; padding: 8px 12px 12px; }
.pie-m > span { display: grid; color: var(--tinta-3); font-size: 12.5px; } .pie-m b { color: var(--tinta); font-size: 19px; font-weight: 700; }
.agregar { height: 32px; padding: 0 14px; border: 1px solid var(--linea); border-bottom-color: var(--linea-2); border-radius: var(--r); background: var(--capa); color: var(--tinta); font-weight: 600; }
.agregar:hover { background: var(--capa-2); }

/* Ventanas de detalle */
.modal-caja:has(.ficha-ventana) { width: min(460px, 100%); }
.ficha-ventana .ficha-m { display: grid; gap: 8px; }
.ficha-ventana img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; border: 1px solid var(--linea); border-radius: var(--r2); background: var(--blanco); }
.ficha-ventana h2 { font-size: 22px; } .ficha-ventana p { color: var(--tinta-2); font-size: 13px; }
.ficha-ventana .precio { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 6px 0 10px; border-bottom: 1px solid var(--linea); color: var(--tinta-3); font-size: 13px; }
.ficha-ventana .precio b { font-size: 26px; color: var(--tinta); }
.modal-caja:has(.hoja-v) { width: min(780px, 100%); max-height: calc(100vh - 48px); overflow: auto; }
.hoja-v .papel { display: grid; grid-template-columns: minmax(0, 1fr) 230px; column-gap: 28px; align-content: start; padding: 0; border: 0; overflow: visible; }
.hoja-v .papel > * { grid-column: 1; } .hoja-v .papel > header { grid-column: 1 / -1; }
.hoja-v .foto-orden { height: 190px; }
.hoja-v .recorrido { grid-column: 2; grid-row: 2 / span 6; margin: 0; padding: 10px 0 0 18px; border-top: 0; border-left: 1px dashed var(--linea-2); }

/* Caja del día: los cobros de hoy debajo del cierre */
.cobros-hoy { margin-top: 16px; padding: 4px 16px 0; }
.cobros-hoy .carrito { padding: 8px 0 0; overflow: visible; }
.cobros-hoy .carrito > header { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; }
.cobros-hoy .carrito h2 { font-size: 17px; }
.cobros-hoy .linea-v { grid-template-columns: 56px minmax(0, 1fr) auto; padding: 8px 0; border-bottom: 1px solid var(--linea); }
.cobros-hoy .hora-v { color: var(--tinta-3); font-size: 12.5px; }
.cobros-hoy .cobrar-v { padding: 12px 0 16px; border: 0; }
.cobros-hoy .total-v small { display: block; color: var(--tinta-3); font: 500 12.5px var(--letra); }

/* Clientes (directorio del núcleo): lista y ficha a la derecha */
.inv-cab h1 { letter-spacing: -.02em; }
.inv-lado .det-datos div { background: var(--capa-2); }
.cli-filtros button { height: 32px; border-radius: var(--r); }

/* Vitrina: agregar, editar e importar monturas (catálogo del núcleo) */
.cab-btns { display: flex; gap: 8px; }
.modal-caja:has(.ed-montura) { width: min(820px, 100%); }
.ed-montura { display: grid; gap: 14px; } .ed-montura h2 { font-size: 22px; }
.ed-m-cuerpo { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 20px; align-items: start; }
.ed-m-campos { display: grid; gap: 10px; } .ed-m-campos .fila { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 10px; }
.ed-m-campos select { height: 38px; padding: 0 8px; border: 1px solid var(--linea); border-bottom-color: var(--linea-2); border-radius: var(--r); background: var(--capa); }
.ed-m-campos .campo { min-width: 0; } .ed-m-campos input:not([type="checkbox"]), .ed-m-campos select { width: 100%; min-width: 0; }
.pest-pagina { display: inline-flex; gap: 2px; margin-bottom: 12px; }   /* pestañas de una página (Vitrina, Taller): el marco mide lo que sus botones */
.pest-pagina button { flex: none; min-width: 200px; display: flex; align-items: center; justify-content: center; gap: 8px; height: 38px; padding: 0 16px; }
.pest-pagina .ico { width: 18px; height: 18px; } .pest-pagina .cifra { font: 700 12px var(--letra); opacity: .75; }
.modal-caja:has([data-acc]) { width: min(720px, 100%); }
