/* ══ 20261028e · Pedido (Agregar / Editar) compacto + Lista de precios ══
   Archivo aparte para que la mezcla con 28b/28c/28d sea fácil: nada de aquí
   pisa estilos de otras hojas; todo va bajo .modal-pedido, .plc o .lp-*. */

/* ── El modal del pedido: ancho, con el cuerpo que se desplaza y el pie
      (total + Guardar) SIEMPRE a la vista ─────────────────────────────── */
.modal-caja.modal-pedido {
  max-width: 980px; padding: 0; display: flex; flex-direction: column;
  max-height: 94vh; max-height: 94dvh; overflow: hidden;
}
.modal-pedido > #modalTitulo { margin: 0; padding: 1rem 1.25rem .6rem; flex: 0 0 auto; }
.modal-pedido > #modalCuerpo { flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; padding: .2rem 1.25rem .8rem; min-height: 0; }
.modal-pedido > .modal-pie {
  flex: 0 0 auto; margin: 0; padding: .65rem 1.25rem; align-items: center; flex-wrap: wrap;
  border-top: 1px solid var(--linea); background: var(--superficie);
  box-shadow: 0 -6px 16px rgba(11,26,21,.06); border-radius: 0 0 14px 14px;
}
.pf-pie-total { margin-right: auto; display: flex; align-items: baseline; gap: .9rem; flex-wrap: wrap; min-width: 0; }
.pf-pie-cuenta { font-size: .85rem; color: var(--ink-2); }
.pf-pie-tot { font-size: 1rem; white-space: nowrap; }
.pf-pie-tot b { font-size: 1.3rem; font-variant-numeric: tabular-nums; }

.modal-pedido .pf { min-width: 0; }
.modal-pedido .pf-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.modal-pedido .pf-dos > * { min-width: 0; }
.modal-pedido input, .modal-pedido select { max-width: 100%; min-width: 0; }
.modal-pedido .pf-ayuda { text-transform: none; letter-spacing: 0; font-style: normal; }
.modal-pedido .pf-checks { display: flex; flex-direction: column; gap: .35rem; padding-top: 1.1rem; }
.modal-pedido .pf-checks label.campo { margin-bottom: .2rem; }

/* Productos: título, renglón para AGREGAR (arriba), lista compacta, notas. */
.modal-pedido .pf-prods { display: flex; flex-direction: column; gap: .45rem; margin-bottom: .9rem; }
.modal-pedido .pf-prods > .campo-titulo { order: -3; margin: 0; }
.modal-pedido .pf-nueva { order: -2; }
.modal-pedido .pf-lineas { order: -1; border: 1px solid var(--linea); border-radius: 10px; overflow: hidden; }
.modal-pedido .pf-lineas:empty { display: none; }
.modal-pedido .pf-cuenta { text-transform: none; letter-spacing: 0; font-weight: 700; color: var(--azul, #2a78d6); }
.modal-pedido .p-total { margin-top: 0; }
.modal-pedido .pf-nota-precio { margin-top: .2rem; }

/* Cada renglón (la base vieja era flex-wrap): ahora bloque. */
.modal-pedido .p-linea { display: block; margin: 0; }
.modal-pedido .p-editor { display: flex; flex-wrap: wrap; gap: .45rem .6rem; align-items: flex-end; }
.modal-pedido .p-campo { display: flex; flex-direction: column; gap: .15rem; flex: 0 1 auto; min-width: 0; }
.modal-pedido .p-campo > span:first-child { font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-mudo, var(--ink-2)); }
.modal-pedido .p-campo-prod { flex: 1 1 100%; }
.modal-pedido .p-linea .p-prod { flex: none; width: 100%; }
.modal-pedido .p-linea .p-pres { width: 12.5rem; flex: none; }
.modal-pedido .p-cant-caja { display: flex; gap: .35rem; }
.modal-pedido .p-linea .p-ton, .modal-pedido .p-linea .p-cost { width: 7rem; flex: none; }
.modal-pedido .p-linea .p-tipo { width: auto; flex: none; }
.modal-pedido .p-linea .p-precio { width: 8.5rem; }
.modal-pedido .p-precio-nota { font-style: normal; text-transform: none; letter-spacing: 0; }
.modal-pedido .p-hoja-nota { align-self: center; }
.modal-pedido [hidden] { display: none !important; }

/* El renglón para agregar: grande y a la vista. */
.modal-pedido .p-nueva {
  background: color-mix(in srgb, var(--azul, #2a78d6) 6%, var(--superficie));
  border: 2px solid color-mix(in srgb, var(--azul, #2a78d6) 35%, transparent);
  border-radius: 12px; padding: .6rem .7rem;
}
.modal-pedido .p-nueva .p-prod { font-size: 1.08rem; padding: .62rem .75rem; font-weight: 600; }
.modal-pedido .p-nueva .p-campo-imp { flex: 1 1 7rem; align-items: flex-end; }
.modal-pedido .p-nueva .p-importe { font-size: .95rem; text-align: right; min-height: 2.3rem; display: flex; align-items: center; justify-content: flex-end; gap: .3rem; flex-wrap: wrap; padding: 0; }
.modal-pedido .p-nueva .p-agregar { min-height: 2.6rem; padding: .5rem 1.1rem; font-weight: 700; }
.modal-pedido .p-nueva .p-limpiar { min-height: 2.6rem; }

/* Lista: un renglón compacto por producto (✎ abre ahí mismo los campos). */
.modal-pedido .pf-lineas .p-linea + .p-linea { border-top: 1px solid var(--linea); }
.modal-pedido .pf-lineas .p-linea:nth-child(even) .p-resumen { background: color-mix(in srgb, var(--ink) 2.5%, transparent); }
.modal-pedido .p-resumen {
  display: grid; grid-template-columns: minmax(0, 1fr) 8.2rem auto auto; align-items: center;
  gap: .4rem; padding: .22rem .45rem .22rem .2rem; min-height: 2.25rem;
}
.modal-pedido .p-r-abrir {
  all: unset; box-sizing: border-box; cursor: pointer; min-width: 0; padding: .15rem .35rem; border-radius: 6px;
  display: grid; grid-template-columns: minmax(0, 1fr) auto 7.2rem 8.6rem; align-items: center; gap: .5rem;
}
.modal-pedido .p-r-abrir:hover, .modal-pedido .p-r-abrir:focus-visible { background: color-mix(in srgb, var(--azul, #2a78d6) 9%, transparent); }
.modal-pedido .p-r-nom { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.modal-pedido .p-r-pres { justify-self: start; white-space: nowrap; }
.modal-pedido .p-r-cant { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.modal-pedido .p-r-precio { color: var(--ink-2); white-space: nowrap; font-size: .88rem; font-variant-numeric: tabular-nums; }
.modal-pedido .p-resumen .p-importe { grid-column: auto; text-align: right; font-size: .95rem; padding: 0; min-height: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.modal-pedido .p-resumen .btn.chico { padding: .2rem .5rem; min-height: 1.9rem; min-width: 2rem; }
.modal-pedido .p-linea.cerrada > .p-editor { display: none; }
.modal-pedido .pf-lineas .p-linea:not(.cerrada) { box-shadow: inset 3px 0 0 var(--azul, #2a78d6); }
.modal-pedido .pf-lineas .p-linea:not(.cerrada) > .p-editor {
  padding: .5rem .7rem .7rem; background: color-mix(in srgb, var(--azul, #2a78d6) 5%, var(--superficie));
  border-top: 1px dashed var(--linea);
}
.modal-pedido .pf-lineas .p-editor .p-campo-prod { flex: 1 1 100%; }
.modal-pedido .p-listo { min-height: 2.4rem; }

.modal-pedido .pf-entrega { align-items: start; }

/* 20261028f (Danny: «que el pedido abra en pantalla completa también en la
   compu»): Agregar / Editar pedido usa TODA la ventana en cualquier tamaño.
   Arriba título + «✕ Cerrar», en medio el formulario (cliente, entrega,
   productos) que se desplaza, abajo el pie fijo con total y Guardar. En
   pantallas muy anchas el contenido se queda en una columna de 1280 px
   centrada para que no se estire de más. */
.modal:has(.modal-pedido) { padding: 0; place-items: stretch; }
.modal-caja.modal-pedido {
  position: relative; max-width: none; width: 100%;
  height: 100vh; height: 100dvh; max-height: none; border-radius: 0; border: 0;
}
.modal-pedido > #modalTitulo,
.modal-pedido > #modalCuerpo,
.modal-pedido > .modal-pie { padding-left: max(1.25rem, calc((100% - 1280px) / 2)); padding-right: max(1.25rem, calc((100% - 1280px) / 2)); }
.modal-pedido > #modalTitulo { border-bottom: 1px solid var(--linea); padding-top: .8rem; padding-bottom: .7rem; padding-right: max(8rem, calc((100% - 1280px) / 2 + 7rem)); }
.modal-pedido > #modalCuerpo { padding-top: .8rem; }
.modal-pedido > .modal-pie { border-radius: 0; }
.pf-cerrar { display: none; }
.modal-pedido > .pf-cerrar {
  display: inline-flex; align-items: center; gap: .35rem; position: absolute; z-index: 2;
  top: .55rem; right: max(1rem, calc((100% - 1280px) / 2));
  font-weight: 700; min-height: 2.4rem; padding: .35rem .9rem;
}

/* Teléfono: pantalla completa, renglón de 2 líneas, nada de scroll de lado. */
@media (max-width: 640px) {
  .modal-pedido > #modalTitulo { padding-right: 6.5rem; }
  .modal-pedido > .pf-cerrar { top: .4rem; right: .6rem; min-height: 2.2rem; padding: .25rem .7rem; }
  .modal:has(.modal-pedido) { padding: 0; place-items: stretch; }
  .modal-caja.modal-pedido { max-width: none; height: 100vh; height: 100dvh; max-height: none; border-radius: 0; border: 0; }
  .modal-pedido > #modalTitulo { padding: .7rem .85rem .4rem; font-size: 1.15rem; }
  .modal-pedido > #modalCuerpo { padding: .1rem .85rem .7rem; }
  .modal-pedido > .modal-pie { padding: .5rem .7rem calc(.5rem + env(safe-area-inset-bottom)); gap: .4rem; border-radius: 0; }
  .modal-pedido .pf-pie-total { flex: 1 1 100%; justify-content: space-between; margin: 0 0 .1rem; }
  .modal-pedido > .modal-pie .btn { flex: 1 1 auto; padding-left: .5rem; padding-right: .5rem; min-height: 2.7rem; white-space: nowrap; font-size: .92rem; }
  .modal-pedido > .modal-pie .btn:not(.primario):first-of-type { flex: 0 0 auto; }
  .modal-pedido .pf-dos { grid-template-columns: 1fr; }
  .modal-pedido .pf-dos label.campo { margin-bottom: .6rem; }
  .modal-pedido .p-campo { flex: 1 1 auto; }
  .modal-pedido .p-linea .p-pres { width: 100%; }
  .modal-pedido .p-editor > .p-campo:nth-child(2) { flex: 1 1 calc(50% - .3rem); }
  .modal-pedido .p-campo-cant { flex: 1 1 calc(50% - .3rem); }
  .modal-pedido .p-campo-hoja { flex: 1 1 calc(50% - .3rem); }
  .modal-pedido .p-cant-caja { width: 100%; }
  .modal-pedido .p-linea .p-ton, .modal-pedido .p-linea .p-cost { flex: 1 1 0; width: auto; }
  .modal-pedido .p-linea .p-tipo { flex: 1 1 0; }
  .modal-pedido .p-campo-precio { flex: 1 1 40%; }
  .modal-pedido .p-linea .p-precio { width: 100%; }
  .modal-pedido .p-nueva .p-campo-imp { flex: 1 1 40%; }
  .modal-pedido .p-nueva .p-agregar { flex: 1 1 auto; }
  /* Renglón de dos líneas: [nombre ............ importe]
                            [chip · cant × precio   ✎ ✕] */
  .modal-pedido .p-resumen { grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "a i i" "a e q"; gap: 0 .3rem; padding: .18rem .3rem .18rem .1rem; }
  .modal-pedido .p-r-abrir { grid-area: a; grid-template-columns: auto auto minmax(0, 1fr); grid-template-areas: "n n n" "p c r"; gap: .05rem .4rem; padding: .1rem .3rem; }
  .modal-pedido .p-r-nom { grid-area: n; font-size: .9rem; }
  .modal-pedido .p-r-pres { grid-area: p; font-size: .66rem; }
  .modal-pedido .p-r-cant { grid-area: c; text-align: left; font-size: .84rem; }
  .modal-pedido .p-r-precio { grid-area: r; font-size: .8rem; overflow: hidden; text-overflow: ellipsis; }
  .modal-pedido .p-resumen .p-importe { grid-area: i; font-size: .92rem; font-weight: 700; }
  .modal-pedido .p-resumen .p-editar { grid-area: e; }
  .modal-pedido .p-resumen .p-quitar { grid-area: q; }
  .modal-pedido .p-resumen .btn.chico { min-height: 1.45rem; height: 1.45rem; padding: 0 .45rem; font-size: .75rem; line-height: 1; }
  .modal-pedido .p-r-abrir > span { line-height: 1.2; }
  .modal-pedido .p-resumen { min-height: 0; }
  .modal-pedido .pf-checks { padding-top: 0; }
}

/* ── Productos de un pedido / cotización en renglones compactos
      (lista de Pedidos, «Ver pedido» y Cotizaciones) ───────────────────── */
.plc { min-width: 0; }
.plc .plc-r { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .5rem; padding: .14rem 0; }
.plc .plc-r + .plc-r { border-top: 1px dashed var(--linea); }
.plc .plc-nom { flex: 1 1 11rem; min-width: 0; font-weight: 600; }
.plc .chip-pres { flex: none; }
.plc .plc-cant, .plc .plc-pre, .plc .plc-imp { white-space: nowrap; font-variant-numeric: tabular-nums; }
.plc .plc-pre { color: var(--ink-2); font-size: .86em; }
.plc .plc-pre small { font-size: .85em; }
.plc .plc-imp { margin-left: auto; font-weight: 700; }
.plc .plc-tot { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0 .1rem; border-top: 1px solid var(--eje); margin-top: .15rem; }
.plc .plc-tot b { font-size: 1.05rem; }
/* Teléfono: dos líneas por producto [nombre … importe] / [chip · cantidad · precio], sin empujar la tabla. */
@media (max-width: 719px) {
  .plc .plc-r { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "n n i" "c q p"; gap: .05rem .35rem; align-items: baseline; }
  .plc .plc-nom { grid-area: n; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .plc .plc-nom > * { font-size: .8em; }
  .plc .chip-pres { grid-area: c; justify-self: start; font-size: .58rem; padding: .05rem .3rem; }
  .plc .plc-cant { grid-area: q; white-space: normal; min-width: 0; font-size: .86em; line-height: 1.2; }
  .plc .plc-cant .mudo { display: none; }
  .plc .plc-pre { grid-area: p; justify-self: end; }
  .plc .plc-imp { grid-area: i; justify-self: end; }
  .plc.plc-sin-precio .plc-r { grid-template-areas: "n n n" "c q q"; }
}
/* «Ver pedido»: los productos a todo lo ancho, en columnas alineadas. */
.ped-det-prods { margin-top: .5rem; max-width: 980px; }
/* En el teléfono la tabla de pedidos se desplaza de lado: los productos se quedan fijos a la izquierda y del ancho de la pantalla. */
@media (max-width: 719px) { .ped-det-prods { position: sticky; left: .3rem; max-width: calc(100vw - 7.8rem); } }
@media (min-width: 720px) {
  .ped-det-prods .plc-r { display: grid; grid-template-columns: minmax(0, 1fr) 6.8rem 12.5rem 8rem 8rem; align-items: center; gap: .6rem; }
  .ped-det-prods .plc-r .chip-pres { justify-self: start; }
  .ped-det-prods .plc-cant { text-align: right; }
  .ped-det-prods .plc-imp { text-align: right; }
  .ped-det-prods .plc-nom { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* ── LISTA DE PRECIOS (igual que la hoja de Google) ──────────────────── */
.lp-envoltura { min-width: 0; }
.lp-controles .fila-controles { align-items: flex-end; }
.lp-busca { max-width: 360px; }
.lp-zonas-btn button i { display: inline-block; width: .7rem; height: .7rem; border-radius: 2px; margin-right: .35rem; vertical-align: -1px; border: 1px solid rgba(0,0,0,.25); }
.lp-aviso .btn { margin-left: .5rem; }
.lp-ok { margin: 0 0 .6rem; }
.lp-hoja {
  background: #fff; color: #000; border: 1px solid #b7b7b7; border-radius: 6px; padding: .6rem;
  font-family: "Twentieth Century", "Tw Cen MT", "Century Gothic", Futura, "Segoe UI", Arial, sans-serif;
}
.lp-cab { display: grid; grid-template-columns: minmax(12rem, 1fr) auto minmax(9rem, 1fr); gap: .8rem; align-items: center; margin-bottom: .5rem; }
.lp-leyenda { display: flex; flex-direction: column; gap: 2px; font-size: .68rem; font-weight: 700; }
.lp-leyenda div { padding: .1rem .4rem; border: 1px solid rgba(0,0,0,.2); }
.lp-marca { display: flex; align-items: center; gap: .8rem; }
.lp-marca img { height: 64px; width: auto; }
.lp-titulos { text-align: center; line-height: 1.2; }
.lp-t0 { font-size: 1.05rem; font-weight: 700; }
.lp-t1 { font-size: .95rem; }
.lp-t2 { font-size: .85rem; }
.lp-act { text-align: right; font-size: .8rem; font-weight: 700; }
.lp-act span { font-weight: 400; color: #555; font-size: .72rem; }
.lp-scroll { overflow: auto; max-height: calc(100vh - 230px); -webkit-overflow-scrolling: touch; border: 1px solid #999; }
.lp-tabla { border-collapse: separate; border-spacing: 0; font-size: .74rem; width: max-content; min-width: 100%; }
.lp-tabla th, .lp-tabla td { border-right: 1px solid #c8c8c8; border-bottom: 1px solid #c8c8c8; padding: .12rem .3rem; white-space: nowrap; }
.lp-tabla thead { position: sticky; top: 0; z-index: 3; }
.lp-tabla th { text-transform: none; letter-spacing: 0; color: #000; font-size: 1em; border-radius: 0 !important; }
.lp-tabla thead th { background: #fff; font-weight: 700; text-align: center; vertical-align: bottom; white-space: normal; line-height: 1.15; }
.lp-tabla thead th.lp-num { max-width: 6.5rem; }
.lp-tabla thead .lp-enc th { border-bottom: 2px solid #555; }
.lp-tabla thead .lp-enc th small { display: block; font-weight: 400; font-size: .9em; color: #333; }
.lp-tabla .lp-zonas th.lp-zona { font-weight: 800; letter-spacing: .03em; }
.lp-tabla .lp-extra th { font-weight: 400; font-size: .92em; color: #333; }
.lp-tabla .lp-num { text-align: right; font-variant-numeric: tabular-nums; }
.lp-tabla .lp-cod { position: sticky; left: 0; z-index: 2; background: #fff; min-width: 3.4rem; width: 3.4rem; text-align: left; }
.lp-tabla .lp-nom { position: sticky; left: 3.4rem; z-index: 2; background: #fff; min-width: 15rem; text-align: left; border-right: 2px solid #888; }
.lp-tabla thead .lp-cod, .lp-tabla thead .lp-nom { z-index: 4; }
.lp-tabla tbody tr.lp-prod:hover td { filter: brightness(.94); }
.lp-tabla .lp-sec td { font-weight: 800; text-align: center; letter-spacing: .04em; padding: .2rem .3rem; }
.lp-tabla td.lp-cod, .lp-tabla td.lp-nom { font-size: 1.12em; }
.lp-tabla thead .lp-enc th.lp-cod, .lp-tabla thead .lp-enc th.lp-nom { font-size: 1.1em; font-weight: 400; text-align: left; }
.lp-sec-antes { font-size: .78em; font-weight: 600; margin-right: .6rem; opacity: .75; }
.lp-pie { font-weight: 700; text-align: center; margin: .5rem 0 0; font-size: .85rem; }
/* Teléfono: nombre + 2 columnas escogidas, sin scroll de lado. */
.lp-tabla.lp-movil { width: 100%; table-layout: fixed; font-size: .8rem; }
.lp-tabla.lp-movil th, .lp-tabla.lp-movil td { white-space: normal; padding: .16rem .28rem; line-height: 1.22; }
.lp-tabla.lp-movil td.lp-nom { font-size: 1em; }
.lp-tabla.lp-movil .lp-nom { position: static; min-width: 0; width: auto; border-right: 1px solid #c8c8c8; }
.lp-tabla.lp-movil .lp-nom small { display: block; color: #666; font-size: .78em; }
.lp-tabla.lp-movil .lp-num { width: 4.9rem; }
.lp-tabla.lp-movil thead th.lp-num { max-width: none; font-size: .9em; }
@media (max-width: 760px) {
  .lp-envoltura .encabezado-vista { flex-wrap: wrap; gap: .4rem; }
  .lp-envoltura .encabezado-vista p { font-size: .82rem; margin: .2rem 0 0; }
  .lp-envoltura .encabezado-vista .btn { flex: 1 1 40%; padding: .5rem .4rem; font-size: .9rem; }
  .lp-controles { padding: .6rem .7rem; }
  .lp-controles .fila-controles { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem .5rem; }
  .lp-controles .fila-controles .lp-busca { grid-column: 1 / -1; }
  .lp-controles label.campo { margin: 0; min-width: 0; }
  .lp-leyenda { font-size: .6rem; }
  .lp-hoja { padding: .35rem; }
  .lp-cab { grid-template-columns: 1fr; text-align: center; gap: .35rem; }
  .lp-marca { justify-content: center; }
  .lp-marca img { height: 46px; }
  .lp-act { text-align: center; }
  .lp-leyenda { order: 3; }
  .lp-scroll { max-height: none; overflow-x: hidden; }
  .lp-busca { max-width: none; }
}
/* 20261028k: impresión de la Lista de precios = solo la copia #lpImpresion, a TODA la hoja (ver imprimir()). */
.lp-impresion { background: #fff; padding: 0; border: 0; border-radius: 0; box-shadow: none; max-width: none; }
.lp-impresion .lp-scroll { overflow: visible !important; max-height: none !important; border: 0; }
.lp-impresion .lp-tabla { min-width: 0; }
.lp-impresion .lp-hoja { background: #fff; padding: 0; border: 0; border-radius: 0; box-shadow: none; max-width: none; margin: 0; }
.lp-impresion .lp-tabla th, .lp-impresion .lp-tabla td { padding: 0 2px; line-height: 1.12; }   /* celdas apretadas: más letra en el mismo ancho */
.lp-impresion .lp-tabla thead th { white-space: normal; max-width: 5.2em; }
.lp-impresion .lp-tabla thead th.lp-cod, .lp-impresion .lp-tabla thead th.lp-nom, .lp-impresion .lp-tabla thead th.lp-zona { max-width: none; }
.lp-impresion .lp-tabla .lp-nom { min-width: 0; white-space: normal; }
.lp-impresion .lp-tabla td.lp-cod, .lp-impresion .lp-tabla td.lp-nom { font-size: 1.05em; }
.lp-impresion .lp-cab { font-size: 13px; }
.lp-imp-parte { font: 700 12px system-ui, sans-serif; margin: 0 0 3px; }
.lp-impresion .lp-tabla thead, .lp-impresion .lp-tabla thead th, .lp-impresion .lp-tabla .lp-cod, .lp-impresion .lp-tabla .lp-nom { position: static !important; }
@media screen { body.imprimiendo-lp #lpImpresion { position: absolute; left: -99999px; top: 0; } }
@media print {
  body.imprimiendo-lp > *:not(#lpImpresion) { display: none !important; }
  body.imprimiendo-lp { margin: 0 !important; padding: 0 !important; background: #fff !important; min-width: 0 !important; }
  body.imprimiendo-lp #lpImpresion { position: static; display: block; margin: 0; }
  body.imprimiendo-lp #lpImpresion .lp-imp-sigue { break-before: page; }
  body.imprimiendo-lp #lpImpresion .lp-scroll { overflow: visible; max-height: none; border: 0; }
  body.imprimiendo-lp #lpImpresion .lp-tabla { width: 100%; min-width: 0; border-collapse: collapse; border-top: 1px solid #888; border-left: 1px solid #888; }
  body.imprimiendo-lp #lpImpresion .lp-tabla thead { position: static; display: table-header-group; }   /* encabezado en cada página */
  body.imprimiendo-lp #lpImpresion .lp-tabla thead th { position: static; }
  body.imprimiendo-lp #lpImpresion .lp-tabla .lp-cod, body.imprimiendo-lp #lpImpresion .lp-tabla .lp-nom { position: static; }
  body.imprimiendo-lp #lpImpresion .lp-tabla th, body.imprimiendo-lp #lpImpresion .lp-tabla td { border-color: #888; }
  body.imprimiendo-lp #lpImpresion .lp-tabla tr { break-inside: avoid; }
  body.imprimiendo-lp #lpImpresion * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ── 20261028m · LISTA DE PRECIOS A PANTALLA COMPLETA (Danny: «la lista ahí no aparece en pantalla completa») ──
   Como el pedido a pantalla completa: sin el tope de 1180 px ni márgenes anchos; barra compacta arriba; la
   tabla llena el resto de la ventana (alto lo pone lista-precios.js) con su propio scroll, encabezado fijo
   arriba y código + nombre fijos a la izquierda. En el teléfono igual (se barre de lado DENTRO de la tabla).
   Solo en pantalla (la impresión usa su propia copia, #lpImpresion). */
@media screen {
  body.hoja-lista main#vista { max-width: none; width: 100%; margin: 0; padding: .35rem .5rem 0; }
  body.hoja-lista .lp-envoltura { display: flex; flex-direction: column; gap: .25rem; }
  body.hoja-lista .lp-barra { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin: 0; padding: 0; }
  body.hoja-lista .lp-barra h1 { font-size: 1.15rem; margin: 0; line-height: 1.2; }
  body.hoja-lista .lp-barra h1::after { display: none; }
  body.hoja-lista .lp-barra .lp-desc { display: none; }
  body.hoja-lista .lp-barra .btn { padding: .3rem .6rem; font-size: .82rem; min-height: 0; }
  body.hoja-lista .lp-ok, body.hoja-lista .lp-cod-resumen { margin: 0; font-size: .72rem; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  body.hoja-lista .lp-aviso { margin: 0; padding: .3rem .5rem; font-size: .8rem; }
  body.hoja-lista .lp-aviso summary { cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  body.hoja-lista .lp-aviso[open] summary { white-space: normal; }
  body.hoja-lista .lp-zonas-btn button { white-space: nowrap; }
  body.hoja-lista .lp-controles { margin: 0; padding: .25rem .5rem; }
  body.hoja-lista .lp-controles .fila-controles { gap: .5rem; flex-wrap: wrap; align-items: center; }
  body.hoja-lista .lp-controles label.campo, body.hoja-lista .lp-controles .campo { margin: 0; display: flex; align-items: center; gap: .4rem; }
  body.hoja-lista .lp-controles .campo > span { font-size: .75rem; white-space: nowrap; margin: 0; }
  body.hoja-lista .lp-controles input { padding: .25rem .45rem; min-height: 0; }
  body.hoja-lista .lp-zonas-btn button { padding: .2rem .5rem; font-size: .78rem; min-height: 0; }
  body.hoja-lista .lp-hoja { padding: 0; border: 0; border-radius: 0; margin: 0; }
  body.hoja-lista .lp-cab { gap: .5rem; margin: 0 0 .2rem; grid-template-columns: auto 1fr auto; }
  body.hoja-lista .lp-leyenda { flex-direction: row; flex-wrap: wrap; font-size: .58rem; }
  body.hoja-lista .lp-marca { justify-content: center; gap: .5rem; }
  body.hoja-lista .lp-marca img { height: 34px; }
  body.hoja-lista .lp-titulos { display: flex; gap: .7rem; align-items: baseline; flex-wrap: wrap; justify-content: center; }
  body.hoja-lista .lp-t0, body.hoja-lista .lp-t1, body.hoja-lista .lp-t2 { font-size: .8rem; }
  body.hoja-lista .lp-act { font-size: .7rem; }
  body.hoja-lista .lp-act span { font-size: .66rem; }
  body.hoja-lista .lp-scroll { max-height: none; overflow: auto; border: 1px solid #999; overscroll-behavior: contain; }
  body.hoja-lista .lp-pie { margin: .15rem 0 0; font-size: .75rem; }
  body.hoja-lista .lp-tabla { font-size: .78rem; }
}
@media screen and (max-width: 760px) {
  body.hoja-lista main#vista { padding: .25rem .25rem 0; }
  body.hoja-lista .lp-barra .btn { flex: 0 1 auto; font-size: .76rem; padding: .3rem .45rem; }
  body.hoja-lista .lp-barra .spacer { display: none; }
  body.hoja-lista .lp-cab { display: none; }                 /* en el teléfono: más renglones a la vista */
  body.hoja-lista .lp-ok, body.hoja-lista .lp-cod-resumen { display: none; }
  body.hoja-lista .lp-controles .fila-controles { display: flex; }
  body.hoja-lista .lp-controles .campo > span { display: none; }
  body.hoja-lista .lp-controles .lp-busca { flex: 1 1 100%; }
  body.hoja-lista .lp-controles .lp-busca input { width: 100%; }
  body.hoja-lista .lp-zonas-btn { flex-wrap: nowrap; overflow-x: auto; max-width: calc(100vw - 1.6rem); }
  body.hoja-lista .lp-controles .campo:has(.lp-zonas-btn) { min-width: 0; max-width: 100%; }
  body.hoja-lista .lp-barra h1 { font-size: 1rem; letter-spacing: .08em; }
  body.hoja-lista .lp-scroll { overflow: auto; -webkit-overflow-scrolling: touch; }
  body.hoja-lista .lp-tabla { font-size: .74rem; }
  body.hoja-lista .lp-tabla .lp-cod { min-width: 2.9rem; width: 2.9rem; }
  body.hoja-lista .lp-tabla .lp-nom { left: 2.9rem; min-width: 7.6rem; max-width: 7.6rem; width: 7.6rem; white-space: normal; line-height: 1.15; }
  body.hoja-lista .lp-tabla thead th.lp-num { max-width: 4.6rem; }
}

/* ── 20261029a · PRODUCTO NO REGISTRADO EN EL PEDIDO (Danny: «no se deja si no está registrado») ──
   El aviso va en el mismo renglón (debajo del resumen compacto, o arriba del campo en el renglón
   para agregar); Guardar se ve apagado mientras haya uno, y el pie dice cuántos faltan. */
.p-noreg { display: flex; align-items: center; gap: .3rem .55rem; flex-wrap: wrap; margin: .15rem 0 .2rem;
  padding: .22rem .5rem; border-radius: 6px; font-size: .84rem; line-height: 1.25;
  color: var(--critico, #d03b3b); background: color-mix(in srgb, var(--critico, #d03b3b) 9%, transparent); }
.p-noreg[hidden] { display: none; }
.p-noreg-txt { min-width: 0; overflow-wrap: anywhere; }
.p-noreg .btn.chico { padding: .1rem .55rem; min-height: 1.65rem; font-size: .8rem; color: var(--ink); }
.p-prod.p-prod-mal { border-color: var(--critico, #d03b3b); box-shadow: 0 0 0 2px color-mix(in srgb, var(--critico, #d03b3b) 22%, transparent); }
.modal-pedido .p-linea.p-noreg-on .p-r-nom { color: var(--critico, #d03b3b); }
#modalPie .btn.pf-bloqueado { opacity: .45; cursor: not-allowed; filter: grayscale(.4); }
.pf-pie-noreg { color: var(--critico, #d03b3b); font-weight: 700; font-size: .85rem; white-space: nowrap; }
.nota-noreg { margin: .4rem 0; padding: .45rem .6rem; border-radius: 6px; font-size: .9rem;
  color: var(--critico, #d03b3b); background: color-mix(in srgb, var(--critico, #d03b3b) 9%, transparent); }
@media (max-width: 600px) {
  .modal-pedido .p-noreg { font-size: .8rem; padding: .18rem .4rem; margin: .1rem 0 .15rem; }
  .pf-pie-noreg { font-size: .8rem; }
}

/* ── 20261029a · CLIENTE NO REGISTRADO EN EL PEDIDO (Danny: «igual clientes») ──
   El aviso va debajo del campo Cliente, igual que el del producto. */
.pf-cli-noreg { margin: .3rem 0 0; }
#pCli.p-prod-mal { border-color: var(--critico, #d03b3b); box-shadow: 0 0 0 2px color-mix(in srgb, var(--critico, #d03b3b) 22%, transparent); }


/* 20261106d (33v): cotización — dos modos de cliente */
.modal-pedido .pf-cot-cli { margin-bottom: .6rem; }
.modal-pedido .pf-cot-modos { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: .35rem 0 .55rem; }
.modal-pedido .pf-cot-modo { margin: 0; padding: .55rem .7rem; border: 1px solid var(--linea, #d0d7de); border-radius: 10px; background: #fafbfc; cursor: pointer; }
.modal-pedido .pf-cot-modo:has(input:checked) { border-color: #3E4493; background: #f5f6fb; box-shadow: 0 0 0 1px #3E4493 inset; }
.modal-pedido .pf-cot-modo input { margin-right: .45rem; }
@media (max-width: 640px) {
  .modal-pedido .pf-cot-modos { grid-template-columns: 1fr; }
}


/* 20261106e (33w · Manual v5): miniatura del costal en cotizaciones */
.plc .plc-thumb {
  width: 28px; height: 28px; object-fit: contain;
  border: 1px solid #e2e5ef; border-radius: 4px;
  background: #fff; flex: 0 0 28px; margin-right: .15rem;
  vertical-align: middle;
}
.plc .plc-thumb-vacio {
  display: inline-block; width: 28px; height: 28px;
  border: 1px dashed #c5c9d6; border-radius: 4px;
  background: #f8f9fc; flex: 0 0 28px; margin-right: .15rem;
}
.plc .plc-r { align-items: center; }

/* ══ 20261109k (cr) · COTIZACIONES: «Incluye encostalado» ═════════════════
   Casilla + costo por costal / rollo / tonelada en el renglón del producto.
   Se suma al importe del renglón y se ve desglosado («Encostalado»). */
.modal-pedido .p-campo-enc { display: flex; flex-direction: column; gap: .2rem; min-width: 11rem; }
.modal-pedido .p-campo-enc[hidden] { display: none; }
.modal-pedido .p-enc-chk { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; cursor: pointer; white-space: nowrap; min-height: 2.3rem; }
.modal-pedido .p-enc-chk input { width: 1.15rem; height: 1.15rem; margin: 0; }
.modal-pedido .p-enc-caja { display: inline-flex; align-items: center; gap: .35rem; }
.modal-pedido .p-enc-caja[hidden] { display: none; }
.modal-pedido .p-enc-costo { width: 7rem; }
.modal-pedido .p-enc-nota:empty { display: none; }
.p-enc-desg { display: block; width: 100%; font-size: .78rem; color: var(--ink-2, #555); font-weight: 400; text-align: right; }
.chip-enc { display: inline-block; font-size: .7rem; font-weight: 700; padding: 0 .4rem; border-radius: 1rem; background: #e8f3e6; color: #1e6b2e; border: 1px solid #9cc79a; white-space: nowrap; }
.plc .plc-enc { flex: 1 1 100%; font-size: .78rem; color: #1e6b2e; padding-left: .3rem; }
@media (max-width: 719px) {
  .plc .plc-r .plc-enc { grid-column: 1 / -1; }
  .modal-pedido .p-campo-enc { flex: 1 1 100%; }
}
