/* ══════════════════════════════════════════════════════════════
   print.css · Guía A4 (210×297 mm) y Ticket térmico (55 mm)
   Estos estilos se comparten entre la vista previa y la impresión.
   ══════════════════════════════════════════════════════════════ */

/* ── Papel / vista previa ── */
.pv-shadow{background:#fff;box-shadow:0 12px 34px rgba(15,45,55,.18),0 2px 6px rgba(15,45,55,.1);border-radius:2px;overflow:hidden;display:inline-block}

/* Vista previa de guías de varias hojas: se apilan completas */
.pv-stack{display:flex;flex-direction:column;gap:6mm;padding:0;background:transparent}
.pv-stack .doc-a4{box-shadow:0 10px 26px rgba(15,45,55,.16);border-radius:2px}

#printLayer{display:none}

/* ══════════════ GUÍA A4 ══════════════ */
.doc-a4{
  /* Paleta de la guía — se sobreescribe con la clase .doc-t-* */
  --gc-main:#0F766E;      /* cabeceras y tabla */
  --gc-ink:#0B3D3A;       /* nombre de la empresa */
  --gc-head:#0B4F4A;      /* encabezado de bloques */
  --gc-head-bg:#EDF5F3;   /* fondo de bloques */
  --gc-soft:#E8F2F0;      /* subtítulo */
  --gc-line:#CFE1DD;      /* bordes */
  --gc-tint:#F1F6F5;      /* totales */
  width:210mm;min-height:293mm;max-height:293mm;overflow:hidden;box-sizing:border-box;background:#fff;color:#111827;
  padding:10mm 12mm 8mm;font-family:"Segoe UI",Arial,Helvetica,sans-serif;font-size:9pt;line-height:1.36;
  position:relative;display:flex;flex-direction:column;gap:0;
}
.doc-a4 *{box-sizing:border-box}
/* Ningún bloque se comprime ni se colapsa: la paginación decide qué va en cada hoja.
   Sin esto, al llenarse la hoja el flexbox aplastaba la barra Origen/Destino/Salida. */
.doc-a4 > *{flex:0 0 auto}
.doc-a4.cont{min-height:0;max-height:none}   /* hojas de continuación: alto natural */
.doc-a4 .r{text-align:right}.doc-a4 .c{text-align:center}
.doc-a4 svg:not(.qr):not(.bc39){stroke:currentColor;fill:none;stroke-width:1.8}

/* Marca de agua para anulados */
.a4-watermark{
  position:absolute;inset:0;display:grid;place-items:center;z-index:5;pointer-events:none;
  font-size:90pt;font-weight:900;color:rgba(180,35,24,.11);letter-spacing:12px;transform:rotate(-22deg);
  font-family:Arial Black,Arial,sans-serif;
}

/* Cabecera */
.a4-head{display:flex;gap:5mm;align-items:center;border-bottom:.6mm solid var(--gc-main);padding-bottom:2.4mm}
.a4-brand{display:flex;gap:4mm;align-items:center;flex:1;min-width:0}
/* Logo más grande */
.a4-logo{width:28mm;height:28mm;flex:none;border:1px solid #E2E8EC;border-radius:2.5mm;display:grid;place-items:center;overflow:hidden;background:#fff;padding:1.4mm}
.a4-logo img{max-width:100%;max-height:100%;object-fit:contain}
.a4-logo-fb{font-size:24pt;font-weight:800;color:var(--gc-main);letter-spacing:-.5px}
/* Datos de la empresa más grandes y ocupando todo el ancho disponible */
.a4-brand-txt{min-width:0;flex:1}
.a4-co{font-size:17.5pt;font-weight:800;letter-spacing:-.5px;color:var(--gc-ink);line-height:1.08;white-space:nowrap}
.a4-slogan{font-size:8.8pt;color:#5B7280;margin-top:1mm;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a4-co-meta{font-size:8.6pt;color:#5B7280;margin-top:.7mm;line-height:1.3}
.a4-docbox{
  width:80mm;flex:none;border:.45mm solid var(--gc-main);border-radius:2.5mm;overflow:hidden;
  background:#F8FBFA;align-self:flex-start;
}
.a4-doc-type{background:var(--gc-main);color:#fff;font-size:9.4pt;font-weight:800;text-align:center;padding:1.8mm 2mm;letter-spacing:.2px;text-transform:uppercase}
.a4-doc-sub{font-size:6.6pt;color:#4B6470;text-align:center;padding:.9mm 2mm;background:var(--gc-soft);border-bottom:.3mm solid var(--gc-line)}
.a4-code-row{display:flex;justify-content:space-between;align-items:flex-end;padding:1.8mm 2.5mm .6mm;gap:2mm}
.a4-code-lbl{display:block;font-size:6px;letter-spacing:.7px;color:#7A8C95;font-weight:800;text-transform:uppercase}
.a4-code{font-family:"Courier New",monospace;font-size:14pt;font-weight:800;color:#B42318;letter-spacing:.6px;line-height:1.1}
.a4-date{text-align:right}
.a4-date b{font-size:7.4pt;font-weight:700;color:#233}
.a4-barcode{padding:1.2mm 2.5mm 1.8mm}
/* El código se dibuja a tamaño real en mm: nunca se estira ni se deforma */
.a4-barcode svg.bc39{display:block;width:84mm!important;height:11mm!important;max-width:100%!important;margin:0 auto}
.a4-barcode svg.bc39 rect{fill:#000;stroke:none;shape-rendering:crispEdges}

/* Franja de datos */
.a4-strip{display:grid;grid-template-columns:repeat(6,1fr);border:.4mm solid #DDE7EA;border-radius:2mm;overflow:hidden;margin-top:2.2mm}
.a4-strip-item{padding:1.7mm 2mm;border-right:.3mm solid #E7EEF0;background:#FBFDFD}
.a4-strip-item:last-child{border-right:0}
.a4-strip-item span{display:block;font-size:6pt;letter-spacing:.5px;text-transform:uppercase;color:#8397A1;font-weight:800}
.a4-strip-item b{display:block;font-size:7.6pt;font-weight:700;color:#1B2A33;margin-top:.5mm;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.a4-st{color:#1D4ED8 !important}
.a4-st.st-entregado{color:#12805C !important}
.a4-st.st-anulado{color:#B42318 !important}
.a4-st.st-en_transito{color:#B45309 !important}

/* Partes */
.a4-parties{display:grid;grid-template-columns:1fr 1fr;gap:3mm;margin-top:2.2mm}
.a4-party{border:.4mm solid #DDE7EA;border-radius:2mm;overflow:hidden}
.a4-party-head{display:flex;align-items:center;gap:1.5mm;background:var(--gc-head-bg);color:var(--gc-head);font-size:6.6pt;font-weight:800;letter-spacing:.6px;padding:1.3mm 2.2mm;text-transform:uppercase;border-bottom:.3mm solid #D5E7E3}
.a4-party-head svg{width:3.2mm;height:3.2mm;stroke-width:2.2}
.a4-party-body{padding:1.8mm 2.2mm 2mm}
.a4-pl{display:flex;flex-direction:column;gap:.2mm;margin-bottom:1.3mm}
.a4-pl:last-child{margin-bottom:0}
.a4-pl span{font-size:5.9pt;text-transform:uppercase;letter-spacing:.45px;color:#8397A1;font-weight:800}
.a4-pl b{font-size:7.8pt;font-weight:700;color:#16242D;line-height:1.25;word-break:break-word}
.a4-pgrid{display:grid;grid-template-columns:1fr 1fr;gap:2mm}

/* Tabla de items */
.a4-items{width:100%;border-collapse:collapse;margin-top:2.2mm;border:.4mm solid #DDE7EA;border-radius:2mm;overflow:hidden;table-layout:fixed}
.a4-items th{background:var(--gc-main);color:#fff;font-size:6.4pt;text-transform:uppercase;letter-spacing:.5px;padding:1.4mm 2mm;text-align:left;font-weight:800}
.a4-items th.r{text-align:right}
.a4-items td{padding:calc(.95mm + var(--rowpad,0mm)) 2mm;border-bottom:.25mm solid #EDF2F4;font-size:7.5pt;line-height:1.3;vertical-align:top}
.a4-items tbody tr:nth-child(even){background:#FAFCFC}
.a4-items tr{page-break-inside:avoid;break-inside:avoid}
.a4-items thead{display:table-header-group}
.a4-items tfoot{display:table-row-group}
.a4-items tfoot td{background:var(--gc-tint);border-top:.4mm solid var(--gc-line);border-bottom:0;font-size:7.6pt;padding:calc(1.4mm + var(--rowpad,0mm)) 2mm}
.a4-empty{text-align:center;color:#8A9AA1;font-style:italic;padding:4mm !important}


/* ── Hojas de continuación y numeración de artículos ── */
.doc-a4 .a4-head-cont{align-items:center;padding-bottom:1.8mm}
.doc-a4 .a4-head-cont .a4-brand-txt{display:flex;flex-direction:column;gap:.3mm}
.doc-a4 .a4-head-cont .a4-co{font-size:15pt}
.doc-a4 .a4-head-cont .a4-docbox{width:78mm;padding:0}
.doc-a4 .a4-strip-cont{margin-top:1.6mm}

/* Resumen */
.a4-summary{display:grid;grid-template-columns:1fr 64mm;gap:3mm;margin-top:2.2mm}
.a4-notes{display:flex;flex-direction:column;gap:2mm;min-width:0}
.a4-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 3mm}
.a4-obs{border:.4mm dashed #D7E2E6;border-radius:1.6mm;padding:1.6mm 2mm;background:#FCFDFD;flex:1;min-height:10mm}
.a4-obs span{font-size:5.9pt;text-transform:uppercase;letter-spacing:.45px;color:#8397A1;font-weight:800}
.a4-obs p{font-size:7.4pt;color:#2A3B44;margin:.4mm 0 0;line-height:1.35}
.a4-money{border:.4mm solid #DDE7EA;border-radius:2mm;overflow:hidden;align-self:start}
.a4-mrow{display:flex;justify-content:space-between;gap:2mm;padding:1.15mm 2.4mm;font-size:7.5pt;border-bottom:.25mm solid #EEF3F5}
.a4-mrow span{color:#5B7280}
.a4-mrow b{font-weight:700;font-variant-numeric:tabular-nums;color:#16242D}
.a4-total{display:flex;justify-content:space-between;align-items:center;padding:2mm 2.4mm;background:var(--gc-main);color:#fff}
.a4-total span{font-size:8.4pt;font-weight:800;letter-spacing:.8px}
.a4-total b{font-size:13pt;font-weight:800;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.a4-articles-total{font-size:6.6pt;color:#5B7280;text-align:center;padding:1.2mm;background:#F7FAF9}

/* Términos */
.a4-terms{display:grid;grid-template-columns:1fr 1fr;gap:3mm;margin-top:2.2mm}
.a4-legend,.a4-cond{border:.4mm solid #DDE7EA;border-radius:2mm;padding:1.8mm 2.4mm;background:#FCFDFD;min-height:16mm}
.a4-sec-t{font-size:6.2pt;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--gc-head);margin-bottom:1mm;border-bottom:.25mm solid var(--gc-line);padding-bottom:.7mm}
.a4-legend p{font-size:6.5pt;line-height:1.4;color:#445A65;margin:0;text-align:justify}
.a4-cond ol{margin:0;padding-left:3.4mm;font-size:6.1pt;line-height:1.35;color:#445A65}
.a4-cond li{margin-bottom:.5mm}

/* Constancia de entrega */
.a4-delivery{margin-top:2.2mm;border:.4mm solid #DDE7EA;border-radius:2mm;padding:1.6mm 2.4mm 1.8mm;background:#FBFDFD}
.a4-del-title{font-size:6.2pt;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--gc-head);margin-bottom:1.2mm}
.a4-del-grid{display:grid;grid-template-columns:1.4fr 1fr 1.4fr;gap:2mm}
.a4-del-cell.d2{grid-column:span 2}
.a4-del-cell.d1{grid-column:span 1}
.a4-del-cell{height:9.5mm;border:.3mm solid #DCE6E9;border-radius:1.4mm;background:#fff;position:relative}
.a4-del-cell span{position:absolute;left:1.6mm;bottom:1mm;font-size:5.4pt;color:#93A5AC;text-transform:uppercase;letter-spacing:.4px;font-weight:700}
.a4-del-cell.stamp{background:repeating-linear-gradient(45deg,#FCFDFD,#FCFDFD 2mm,#F4F8F8 2mm,#F4F8F8 4mm)}

/* Pie */
.a4-foot{margin-top:auto;padding-top:2.6mm;display:flex;gap:4mm;align-items:flex-end;justify-content:space-between}
.a4-signs{display:flex;gap:8mm;flex:1}
.a4-sign{flex:1;text-align:center}
.a4-sign-line{border-top:.35mm solid #7E939D;margin-bottom:1.2mm;height:0}
.a4-sign span{font-size:6.2pt;color:#5B7280;font-weight:600}
.a4-qrbox{display:flex;gap:3mm;align-items:center;max-width:110mm}
.a4-qr{text-align:center;flex:none}
.a4-qr svg{width:16mm;height:16mm;display:block;overflow:visible}
.a4-qr small{display:block;font-size:5.2pt;color:#8397A1;margin-top:.4mm}
.a4-foot-txt b{display:block;font-size:6.9pt;color:var(--gc-ink);font-weight:700;margin-bottom:.6mm}
.a4-foot-txt span{display:block;font-size:6pt;color:#7A8C95;line-height:1.35}
.a4-copies{display:flex;justify-content:center;gap:4mm;margin-top:1.4mm;padding-top:1.1mm;border-top:.25mm dashed #D7E2E6}
.a4-copies span{font-size:5.6pt;color:#98A8AF;text-transform:uppercase;letter-spacing:.5px;font-weight:700}
.doc-a4.is-cancelled{opacity:.94}

/* La hoja final ya trae la constancia de entrega: ahí no se repiten las firmas */
.doc-a4 .a4-foot.no-sign .a4-signs{display:none}
.doc-a4 .a4-foot.no-sign{justify-content:flex-end;gap:4mm}


/* ── Documento de varias hojas: bloques finales compactos ── */
.doc-a4.multi .a4-summary{margin-top:1.6mm}
.doc-a4.multi .a4-money .a4-mrow{padding:.85mm 2.4mm}
.doc-a4.multi .a4-total{padding:1.4mm 2.4mm}
.doc-a4.multi .a4-total b{font-size:11.5pt}
.doc-a4.multi .a4-terms{margin-top:1.6mm}
.doc-a4.multi .a4-legend,.doc-a4.multi .a4-cond{padding:1.3mm 2mm;min-height:0}
.doc-a4.multi .a4-cond ol{font-size:5.7pt;line-height:1.28}
.doc-a4.multi .a4-legend p{font-size:6.1pt;line-height:1.32}
.doc-a4.multi .a4-delivery{margin-top:1.6mm;padding:1.2mm 2mm}
.doc-a4.multi .a4-del-cell{height:7.5mm}
.doc-a4.multi .a4-foot{padding-top:1.8mm}


/* ══════════════ TICKET 55 mm ══════════════ */
.doc-ticket{
  width:55mm;box-sizing:border-box;background:#fff;color:#000;padding:2.4mm 2.2mm 3mm;
  font-family:"Segoe UI",Arial,Helvetica,sans-serif;font-size:7.3pt;line-height:1.3;
}
.doc-ticket *{box-sizing:border-box}
.doc-ticket svg{stroke:currentColor;fill:none}
.tk-center{text-align:center}
.tk-head{padding-bottom:1mm}
.tk-logo{width:17mm;height:17mm;margin:0 auto 1.4mm;border:.3mm solid #D8D8D8;border-radius:1.4mm;display:grid;place-items:center;overflow:hidden;padding:.8mm}
.tk-logo img{max-width:100%;max-height:100%;object-fit:contain}
.tk-logo-fb{font-size:12pt;font-weight:800;letter-spacing:-.5px}
.tk-co{font-size:10pt;font-weight:800;letter-spacing:-.2px;line-height:1.15;text-transform:uppercase}
.tk-small{font-size:6.3pt;color:#222;line-height:1.3}
.tk-rule{border-top:.35mm dashed #000;margin:1.3mm 0}
.tk-title{font-size:7.4pt;font-weight:800;letter-spacing:1.1px}
.tk-code{font-family:"Courier New",monospace;font-size:12pt;font-weight:800;letter-spacing:.4px;margin:.6mm 0}
.tk-barcode{margin:1.2mm 0 .6mm;padding:0}
.tk-barcode svg.bc39{display:block;width:46mm!important;height:10mm!important;max-width:none!important;margin:0 auto}
.tk-barcode svg.bc39 rect{fill:#000;stroke:none;shape-rendering:crispEdges}
.tk-row{display:flex;justify-content:space-between;gap:1.6mm;font-size:6.9pt;padding:.35mm 0}
.tk-row span{color:#333;flex:none}
.tk-row b{font-weight:700;text-align:right;word-break:break-word}
.tk-sec{font-size:6.3pt;font-weight:800;letter-spacing:.5px;margin:.8mm 0 .3mm;text-transform:uppercase;background:#000;color:#fff;padding:.5mm 1mm}
.tk-txt{font-size:7.4pt;font-weight:700;line-height:1.25;word-break:break-word}
.tk-items{width:100%;border-collapse:collapse;font-size:6.7pt;margin-top:.6mm}
.tk-items td{padding:.5mm 0;vertical-align:top;border-bottom:.2mm dotted #999}
.tk-items td.q{width:9mm;font-weight:800}
.tk-total{display:flex;justify-content:space-between;align-items:center;border-top:.5mm solid #000;border-bottom:.5mm solid #000;padding:1mm .6mm;margin:.8mm 0;font-size:9.4pt;font-weight:800}
.tk-total b{font-size:11pt;letter-spacing:-.2px}
.tk-obs{font-size:6.3pt;margin-top:.7mm;line-height:1.3}
.tk-qr{margin:.9mm 0}
.tk-qr svg{width:17mm;height:17mm}
.tk-legend{font-size:6.2pt;line-height:1.35;margin-top:.8mm;color:#111;text-align:justify}
.tk-footer{margin-top:.8mm;font-weight:700}
.tk-thanks{font-size:6.8pt;font-weight:800;margin-top:1.4mm;text-transform:uppercase;letter-spacing:.4px}
.tk-end{height:2mm;text-align:center;font-size:5pt;color:#fff}
.tk-cancel{border:.6mm solid #000;text-align:center;font-weight:900;font-size:8pt;padding:.8mm;margin-bottom:1.4mm;letter-spacing:1px}
.doc-ticket.is-cancelled{opacity:.95}

/* Vista previa de ticket sobre fondo */
.pv-ticket-paper{display:inline-block;background:#fff;box-shadow:0 10px 30px rgba(15,45,55,.2),0 2px 6px rgba(15,45,55,.12);border-radius:1mm}

/* ══════════════ IMPRESIÓN ══════════════ */
@media print{
  /* overflow:visible es imprescindible: con hidden el PDF solo imprimía la 1.ª hoja
     de una guía de varias páginas y se perdían los artículos restantes. */
  html,body{background:#fff !important;margin:0 !important;padding:0 !important;overflow:visible !important;height:auto !important}
  body.is-printing > *:not(#printLayer){display:none !important}
  #printLayer{display:block !important;margin:0 !important;padding:0 !important;background:#fff;overflow:visible !important;height:auto !important}
  /* Ajuste milimétrico para evitar desbordes de 1px al paginar el A4 */
  .doc-a4{width:209.4mm !important;min-height:296.4mm !important;max-height:296.4mm !important;overflow:hidden}
  .doc-a4.cont{min-height:0 !important;max-height:none !important}
  #printLayer *{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}
  .doc-a4{margin:0;box-shadow:none;min-height:auto;page-break-after:always;break-after:page}
  .doc-a4:last-child{page-break-after:auto;break-after:auto}
  .doc-ticket{margin:0;box-shadow:none;page-break-after:always;break-after:page}
  .doc-ticket:last-child{page-break-after:auto;break-after:auto}
  .a4-watermark{color:rgba(180,35,24,.12) !important}
}


/* QR de rastreo: relleno sólido, sin trazo heredado */
.doc-a4 svg.qr, .doc-ticket svg.qr, .doc-tk svg.qr, .tk-qr svg, .a4-qr svg{
  fill:#0b0b0b !important;stroke:none !important;
}


/* ══════════════ COLORES DE LA GUÍA ══════════════ */
.doc-a4.doc-t-azul   {--gc-main:#1D4ED8;--gc-ink:#0F2A6B;--gc-head:#16398F;
                      --gc-head-bg:#E8EFFC;--gc-soft:#E3ECFB;--gc-line:#C7D8F5;--gc-tint:#EEF3FD}
.doc-a4.doc-t-verde  {--gc-main:#0F766E;--gc-ink:#0B3D3A;--gc-head:#0B4F4A;
                      --gc-head-bg:#EDF5F3;--gc-soft:#E8F2F0;--gc-line:#CFE1DD;--gc-tint:#F1F6F5}
.doc-a4.doc-t-rojo   {--gc-main:#C81E1E;--gc-ink:#6B1010;--gc-head:#8F1616;
                      --gc-head-bg:#FCEBEB;--gc-soft:#FBE4E4;--gc-line:#F3C7C7;--gc-tint:#FDF0F0}
.doc-a4.doc-t-gris   {--gc-main:#667085;--gc-ink:#333B4A;--gc-head:#4A5468;
                      --gc-head-bg:#F0F2F5;--gc-soft:#EBEEF2;--gc-line:#D6DBE2;--gc-tint:#F5F6F8}
.doc-a4.doc-t-negro  {--gc-main:#1B1B1B;--gc-ink:#0B0B0B;--gc-head:#2A2A2A;
                      --gc-head-bg:#EEEEEE;--gc-soft:#E9E9E9;--gc-line:#CFCFCF;--gc-tint:#F2F2F2}


/* ══════════════ DENSIDAD ADAPTATIVA ══════════════
   La guía se compacta por niveles para que todos los artículos entren en la
   misma hoja en vez de dejar una zona muerta en blanco. */
.doc-a4.dens1 .a4-items{margin-top:1.8mm}
.doc-a4.dens1 .a4-items td{padding:calc(.75mm + var(--rowpad,0mm)) 2mm;font-size:7.2pt}
.doc-a4.dens1 .a4-items th{padding:1.1mm 2mm}
.doc-a4.dens1 .a4-summary{margin-top:1.7mm}
.doc-a4.dens1 .a4-mrow{padding:.9mm 2.4mm;font-size:7.2pt}
.doc-a4.dens1 .a4-total{padding:1.5mm 2.4mm}
.doc-a4.dens1 .a4-total b{font-size:12pt}
.doc-a4.dens1 .a4-terms{margin-top:1.8mm}
.doc-a4.dens1 .a4-legend,.doc-a4.dens1 .a4-cond{padding:1.4mm 2.1mm;min-height:0}
.doc-a4.dens1 .a4-cond ol{font-size:5.8pt;line-height:1.3}
.doc-a4.dens1 .a4-delivery{margin-top:1.7mm;padding:1.3mm 2.2mm}
.doc-a4.dens1 .a4-del-cell{height:8mm}
.doc-a4.dens1 .a4-foot{padding-top:2mm}
.doc-a4.dens1 .a4-parties{margin-top:1.8mm}
.doc-a4.dens1 .a4-party-body{padding:1.5mm 2mm 1.7mm}
.doc-a4.dens1 .a4-pl{margin-bottom:1mm}
.doc-a4.dens1 .a4-strip{margin-top:1.8mm}
.doc-a4.dens1 .a4-strip-item{padding:1.4mm 2mm}

.doc-a4.dens2 .a4-items{margin-top:1.5mm}
.doc-a4.dens2 .a4-items td{padding:calc(.6mm + var(--rowpad,0mm)) 2mm;font-size:6.9pt;line-height:1.25}
.doc-a4.dens2 .a4-items th{padding:.95mm 2mm;font-size:6pt}
.doc-a4.dens2 .a4-items tfoot td{padding:1.1mm 2mm;font-size:7pt}
.doc-a4.dens2 .a4-summary{margin-top:1.4mm}
.doc-a4.dens2 .a4-mrow{padding:.7mm 2.4mm;font-size:6.9pt}
.doc-a4.dens2 .a4-total{padding:1.2mm 2.4mm}
.doc-a4.dens2 .a4-total b{font-size:11pt}
.doc-a4.dens2 .a4-articles-total{padding:.9mm;font-size:6.2pt}
.doc-a4.dens2 .a4-terms{margin-top:1.4mm;gap:2.4mm}
.doc-a4.dens2 .a4-legend,.doc-a4.dens2 .a4-cond{padding:1.1mm 1.9mm;min-height:0}
.doc-a4.dens2 .a4-cond ol{font-size:5.4pt;line-height:1.26}
.doc-a4.dens2 .a4-legend p{font-size:5.9pt;line-height:1.3}
.doc-a4.dens2 .a4-sec-t{font-size:5.8pt;margin-bottom:.7mm;padding-bottom:.5mm}
.doc-a4.dens2 .a4-delivery{margin-top:1.4mm;padding:1.1mm 2mm}
.doc-a4.dens2 .a4-del-cell{height:7mm}
.doc-a4.dens2 .a4-del-title{font-size:5.8pt;margin-bottom:.8mm}
.doc-a4.dens2 .a4-foot{padding-top:1.6mm}
.doc-a4.dens2 .a4-parties{margin-top:1.5mm}
.doc-a4.dens2 .a4-party-body{padding:1.2mm 1.8mm 1.4mm}
.doc-a4.dens2 .a4-pl{margin-bottom:.8mm}
.doc-a4.dens2 .a4-pl b{font-size:7.4pt}
.doc-a4.dens2 .a4-strip{margin-top:1.5mm}
.doc-a4.dens2 .a4-strip-item{padding:1.2mm 1.8mm}
.doc-a4.dens2 .a4-strip-item b{font-size:7.2pt}

.doc-a4.dens3 .a4-head{padding-bottom:1.8mm}
.doc-a4.dens3 .a4-logo{width:17mm;height:17mm}
.doc-a4.dens3 .a4-items{margin-top:1.3mm}
.doc-a4.dens3 .a4-items td{padding:calc(.5mm + var(--rowpad,0mm)) 1.8mm;font-size:6.6pt;line-height:1.22}
.doc-a4.dens3 .a4-items th{padding:.85mm 1.8mm;font-size:5.7pt}
.doc-a4.dens3 .a4-items tfoot td{padding:1mm 1.8mm;font-size:6.6pt}
.doc-a4.dens3 .a4-summary{margin-top:1.2mm;gap:2.4mm}
.doc-a4.dens3 .a4-mrow{padding:.6mm 2.2mm;font-size:6.6pt}
.doc-a4.dens3 .a4-total{padding:1mm 2.2mm}
.doc-a4.dens3 .a4-total b{font-size:10pt}
.doc-a4.dens3 .a4-articles-total{padding:.8mm;font-size:5.9pt}
.doc-a4.dens3 .a4-terms{margin-top:1.2mm;gap:2.2mm}
.doc-a4.dens3 .a4-legend,.doc-a4.dens3 .a4-cond{padding:1mm 1.7mm;min-height:0}
.doc-a4.dens3 .a4-cond ol{font-size:5.1pt;line-height:1.24}
.doc-a4.dens3 .a4-legend p{font-size:5.6pt;line-height:1.28}
.doc-a4.dens3 .a4-sec-t{font-size:5.5pt;margin-bottom:.6mm;padding-bottom:.4mm}
.doc-a4.dens3 .a4-delivery{margin-top:1.2mm;padding:1mm 1.8mm}
.doc-a4.dens3 .a4-del-cell{height:6.2mm}
.doc-a4.dens3 .a4-del-title{font-size:5.5pt;margin-bottom:.7mm}
.doc-a4.dens3 .a4-del-cell span{font-size:5pt}
.doc-a4.dens3 .a4-foot{padding-top:1.3mm}
.doc-a4.dens3 .a4-qr svg{width:14mm;height:14mm}
.doc-a4.dens3 .a4-parties{margin-top:1.3mm}
.doc-a4.dens3 .a4-party-body{padding:1mm 1.7mm 1.2mm}
.doc-a4.dens3 .a4-pl{margin-bottom:.6mm}
.doc-a4.dens3 .a4-pl b{font-size:7.1pt}
.doc-a4.dens3 .a4-pl span{font-size:5.5pt}
.doc-a4.dens3 .a4-strip{margin-top:1.3mm}
.doc-a4.dens3 .a4-strip-item{padding:1mm 1.6mm}
.doc-a4.dens3 .a4-strip-item b{font-size:6.9pt}
.doc-a4.dens3 .a4-copies{margin-top:1mm;padding-top:.8mm}


/* ══════════════ REPARTO DEL ESPACIO RESIDUAL ══════════════
   Si sobra alto después de la constancia, se reparte entre la tabla de artículos
   y los bloques de texto para que la hoja quede llena y equilibrada. */
/* El documento nunca queda con una zona muerta al pie: el alto sobrante se
   reparte dentro de los bloques (filas de artículos, observaciones, casillas de
   la constancia y cajas de texto) en lugar de abrir huecos entre ellos. */
.doc-a4.fill{justify-content:space-between;gap:0}
.doc-a4.fill > .a4-foot{margin-top:0}            /* el pie no se traga el espacio libre */
.doc-a4.fill > .a4-items{flex:0 0 auto}
/* el sobrante se absorbe primero dentro de las cajas, con topes para que no se deformen */
.doc-a4.fill > .a4-summary .a4-notes{display:flex;flex-direction:column}
.doc-a4.fill > .a4-summary .a4-obs{flex:1;max-height:24mm}
.doc-a4.fill > .a4-terms .a4-legend,
.doc-a4.fill > .a4-terms .a4-cond{display:flex;flex-direction:column}
.doc-a4.fill > .a4-terms .a4-legend p,
.doc-a4.fill > .a4-terms .a4-cond ol{flex:1}
.doc-a4.fill > .a4-terms .a4-legend,
.doc-a4.fill > .a4-terms .a4-cond{max-height:38mm}
.doc-a4.fill > .a4-delivery .a4-del-cell{height:auto;min-height:8.5mm;max-height:13mm}
/* Las filas nunca se estiran: el aire va a las casillas de observaciones y constancia */
.doc-a4.fill > .a4-summary .a4-obs{flex:1}
@media print{
  .doc-a4.fill > .a4-items tr{break-inside:avoid}
}
