/* ============================================================
   Impresión — rollo térmico de 80mm
   Área imprimible real de una térmica de 80mm: 72mm.
   ============================================================ */

@page {
  size: 80mm auto;
  margin: 0;
}

@media print {

  /* Ocultar toda la aplicación; solo se imprime #area-impresion */
  body > *:not(#area-impresion) { display: none !important; }

  html, body {
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 80mm;
  }

  #area-impresion {
    display: block !important;
    width: 72mm;
    margin: 0 auto;
    padding: 3mm 0 6mm;
    color: #000;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 10.5pt;
    line-height: 1.32;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* ── Encabezado ───────────────────────────────────────── */

  .r-emp {
    text-align: center;
    font-size: 12pt;
    font-weight: 800;
    line-height: 1.18;
    text-transform: uppercase;
    margin-bottom: 1mm;
  }

  .r-emp-dato {
    text-align: center;
    font-size: 9pt;
    line-height: 1.3;
  }

  .r-titulo {
    text-align: center;
    font-weight: 800;
    font-size: 11pt;
    letter-spacing: .08em;
    margin-top: 2mm;
  }

  .r-numero {
    text-align: center;
    font-size: 15pt;
    font-weight: 800;
    letter-spacing: .02em;
    margin-bottom: 1mm;
  }

  /* ── Separadores ──────────────────────────────────────── */

  .r-linea {
    border-top: 1px dashed #000;
    margin: 2mm 0;
  }
  .r-linea-solida {
    border-top: 1.5px solid #000;
    margin: 2mm 0;
  }

  /* ── Pares etiqueta / valor ───────────────────────────── */

  .r-par {
    display: flex;
    justify-content: space-between;
    gap: 2mm;
    font-size: 9.5pt;
  }
  .r-par span { flex: 0 0 auto; }
  .r-par b { flex: 1 1 auto; text-align: right; font-weight: 700; word-break: break-word; }

  .r-bloque { margin-bottom: 1.5mm; }

  .r-etiqueta {
    font-size: 8pt;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .r-valor {
    font-size: 10.5pt;
    font-weight: 700;
    word-break: break-word;
    line-height: 1.25;
  }

  .r-texto {
    font-size: 9.5pt;
    word-break: break-word;
    line-height: 1.3;
  }

  /* ── Monto ────────────────────────────────────────────── */

  .r-monto {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 15pt;
    font-weight: 800;
    margin: 1mm 0;
  }

  .r-letras {
    font-size: 9pt;
    font-style: italic;
    line-height: 1.3;
    word-break: break-word;
  }

  /* ── Firmas ───────────────────────────────────────────── */

  .r-firmas {
    display: flex;
    gap: 4mm;
    margin-top: 9mm;
  }
  .r-firma { flex: 1 1 0; text-align: center; }
  .r-firma i {
    display: block;
    border-top: 1px solid #000;
    padding-top: 1mm;
    font-style: normal;
    font-size: 7.5pt;
    font-weight: 600;
    letter-spacing: .03em;
  }

  .r-pie {
    text-align: center;
    font-size: 8.5pt;
    margin-top: 3mm;
    line-height: 1.3;
  }

  .r-anulado {
    text-align: center;
    border: 2px solid #000;
    padding: 1.5mm;
    font-size: 13pt;
    font-weight: 800;
    letter-spacing: .12em;
    margin: 2mm 0;
  }

  /* ── Cierre de caja ───────────────────────────────────── */

  .r-tabla { width: 100%; border-collapse: collapse; font-size: 9pt; }
  .r-tabla td { padding: .6mm 0; vertical-align: top; }
  .r-tabla td.der { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .r-tabla tr.total td { border-top: 1px solid #000; font-weight: 800; padding-top: 1mm; }

  .r-seccion {
    font-size: 8.5pt;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 2.5mm 0 1mm;
  }

  .corte { page-break-after: always; }
}
