/* Printed vouchers: A4, A5 and TICKET (80 mm). The sheet lives in #print-root, hidden on screen; when printing only it is shown and the paper size comes from the named @page rules. */
#print-root { display: none; }
@page a4 { size: A4; margin: 12mm; }
@page a5 { size: A5; margin: 8mm; }
@page ticket { size: 80mm auto; margin: 3mm; }
@media print {
  body > *:not(#print-root) { display: none !important; }
  html, body { background: #fff !important; }
  #print-root { display: block; color: #000; background: #fff; font-family: Arial, Helvetica, sans-serif; }
  .print-a4 { page: a4; font-size: 11pt; }
  .print-a5 { page: a5; font-size: 9pt; }
  .print-ticket { page: ticket; font-size: 8.5pt; width: 72mm; }
  .print-sheet * { box-sizing: border-box; }
  .print-head { display: flex; justify-content: space-between; gap: 8mm; margin-bottom: 4mm; }
  .print-company { flex: 1; }
  .print-box { border: 1.5px solid #000; padding: 3mm 6mm; text-align: center; min-width: 60mm; display: grid; gap: 1mm; align-content: center; }
  .print-customer { border-top: 1px solid #000; border-bottom: 1px solid #000; padding: 2mm 0; margin-bottom: 3mm; display: grid; grid-template-columns: 1fr 1fr; gap: 1mm 6mm; }
  .print-table { width: 100%; border-collapse: collapse; }
  .print-table th { border-bottom: 1px solid #000; text-align: left; padding: 1mm; }
  .print-table td { padding: 1mm; vertical-align: top; }
  .print-table .is-num { text-align: right; white-space: nowrap; }
  .print-totals { margin: 3mm 0 3mm auto; width: 55%; display: grid; gap: 1mm; }
  .print-totals div { display: flex; justify-content: space-between; }
  .print-grand { font-weight: bold; border-top: 1px solid #000; padding-top: 1mm; }
  .print-foot { display: flex; gap: 4mm; align-items: flex-start; border-top: 1px solid #000; padding-top: 3mm; break-inside: avoid; }
  .print-qr { width: 28mm; height: 28mm; }
  .print-logo { display: block; max-width: 45mm; max-height: 22mm; object-fit: contain; margin-bottom: 2mm; }
  .print-ticket .print-logo { max-width: 40mm; max-height: 18mm; margin: 0 auto 2mm; }
  .print-small { font-size: 0.8em; margin: 1mm 0 0; }
  .print-sim { font-weight: bold; }
  .print-ticket .print-head { display: block; text-align: center; }
  .print-ticket .print-title { font-weight: bold; margin-top: 2mm; }
  .print-ticket .print-customer { display: block; }
  .print-ticket .print-line { border-bottom: 1px dotted #000; padding: 1mm 0; }
  .print-ticket .print-line-amounts { display: flex; justify-content: space-between; }
  .print-ticket .print-totals { width: 100%; }
  .print-ticket .print-foot { flex-direction: column; align-items: center; text-align: center; }
  .print-ticket .print-qr { width: 30mm; height: 30mm; }
}

/* Printed reports: A4 landscape, small type, the header repeats on every page */
@page report { size: A4 landscape; margin: 10mm; }
@media print {
  .print-report { page: report; font-size: 9pt; }
  .print-report h1 { font-size: 15pt; margin: 0 0 2mm; }
  .print-report .print-table thead { display: table-header-group; }
  .print-report .print-table tr { break-inside: avoid; }
  .print-report .print-table tfoot th { border-top: 1px solid #000; text-align: left; }
  .print-report .print-table tfoot .is-num { text-align: right; }
}

/* Internal sale tickets (nota de venta / ticket de despacho): the same 80 mm sheet, rows and a signature line. */
@media print {
  .print-ticket .print-row { display: flex; justify-content: space-between; gap: 2mm; }
  .print-ticket .print-methods { border-top: 1px dashed #000; margin-top: 2mm; padding-top: 1mm; display: grid; gap: 0.5mm; }
  .print-ticket .print-dispatch-line { display: flex; align-items: baseline; gap: 2mm; }
  .print-ticket .print-dispatch-name { flex: 1; }
  .print-ticket .print-check { font-size: 12pt; }
  .print-ticket .print-sign { margin-top: 10mm; text-align: center; }
  .print-ticket .print-signline { border-top: 1px solid #000; margin: 0 6mm 1mm; }
  .print-ticket .print-foot { display: block; text-align: center; margin-top: 3mm; }
}

/* Production report (informe de producción): one block per product produced, inputs below. */
@media print {
  .print-ticket .print-prod { border-top: 1px dashed #000; margin-top: 2mm; padding-top: 1mm; display: grid; gap: 0.5mm; }
  .print-ticket .print-prod-name { font-size: 9.5pt; }
  .print-ticket .print-sub { margin-top: 1mm; font-weight: bold; }
}
