:root{
  --cfdi-red:#b20818;--cfdi-ink:#18202a;--cfdi-muted:#68727e;
  --cfdi-line:#dfe3e8;--cfdi-soft:#f5f6f8;--cfdi-paper:#fff;
  --page-w:215.9mm;--page-h:279.4mm;
}
.cfdi-render-root *{box-sizing:border-box}
.cfdi-preview-shell{background:#e8eaed;border:1px solid #d9e1ea;border-radius:8px;padding:14px 0 28px;overflow:auto;max-height:70vh}
.cfdi-render-root{color:var(--cfdi-ink);font-family:Inter,"Segoe UI",Arial,sans-serif}
.cfdi-render-root #cfdi-document{padding:14px 0 28px}
.cfdi-page{width:var(--page-w);height:var(--page-h);margin:0 auto 14px;background:var(--cfdi-paper);position:relative;overflow:hidden;padding:10.5mm 12mm 10mm;box-shadow:0 10px 30px #20273326;break-after:page;page-break-after:always}
.cfdi-page:last-child{break-after:auto;page-break-after:auto}
.cfdi-topline{position:absolute;left:0;top:0;width:100%;height:2.4mm;background:var(--cfdi-red)}
.cfdi-header{display:grid;grid-template-columns:minmax(0,1fr) 78mm;gap:8mm;align-items:start;padding-bottom:4.5mm;border-bottom:.25mm solid var(--cfdi-line)}
.cfdi-kicker,.cfdi-section-title{font-size:7.5pt;font-weight:800;letter-spacing:1.15pt;text-transform:uppercase;color:var(--cfdi-red)}
.cfdi-emisor-caption{font-size:6.6pt;letter-spacing:1.15pt;text-transform:uppercase;color:var(--cfdi-muted);font-weight:800;margin:1mm 0 2mm}
.cfdi-emisor-name{font-size:15pt;line-height:1.08;font-weight:800;letter-spacing:.15pt;margin:0 0 2mm;overflow-wrap:anywhere;max-width:112mm}
.cfdi-emisor-meta{font-size:7.3pt;line-height:1.5;color:var(--cfdi-muted)}
.cfdi-heading{text-align:right;min-width:0}
.cfdi-heading h1{font-size:21pt;line-height:1;margin:1.5mm 0 3mm;white-space:nowrap;letter-spacing:.2pt}
.cfdi-title-meta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.1mm 3mm;text-align:left;padding:2.4mm 3mm;background:var(--cfdi-soft);border-radius:2mm;font-size:7.2pt;color:var(--cfdi-muted)}
.cfdi-title-meta b{color:var(--cfdi-ink);text-align:right;overflow-wrap:anywhere;font-weight:750}
.cfdi-title-meta .uuid{font-size:6.1pt;letter-spacing:.05pt}
.cfdi-continuation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8mm;align-items:center;padding:1mm 0 4mm;border-bottom:.25mm solid var(--cfdi-line)}
.cfdi-continuation .name{font-size:11pt;font-weight:800;overflow-wrap:anywhere}
.cfdi-continuation .reference{text-align:right;font-size:7pt;line-height:1.45;color:var(--cfdi-muted)}
.cfdi-continuation .reference b{color:var(--cfdi-ink)}
.cfdi-section-head{display:flex;align-items:center;gap:3mm;margin:4.5mm 0 2.4mm}
.cfdi-section-head:after{content:"";height:.25mm;background:var(--cfdi-line);flex:1}
.cfdi-parties{display:grid;grid-template-columns:1fr 1fr;gap:3mm}
.cfdi-party{border:.25mm solid var(--cfdi-line);border-radius:2mm;padding:2.8mm 3.2mm;background:#fff;min-width:0}
.cfdi-party.receptor{border-left:1.1mm solid var(--cfdi-red)}
.cfdi-party-label{font-size:6.2pt;letter-spacing:1pt;text-transform:uppercase;color:var(--cfdi-muted);font-weight:800;margin-bottom:1.5mm}
.cfdi-party-name{font-size:8.6pt;font-weight:800;margin-bottom:1.6mm;overflow-wrap:anywhere}
.cfdi-party-grid{display:grid;grid-template-columns:17mm minmax(0,1fr);gap:.8mm 2mm;font-size:6.45pt;line-height:1.28}
.cfdi-party-grid span:nth-child(odd){color:var(--cfdi-muted)}
.cfdi-party-grid span:nth-child(even){font-weight:650;overflow-wrap:anywhere;word-break:normal}
.cfdi-facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:.25mm solid var(--cfdi-line);border-radius:2mm;overflow:hidden;margin-top:3mm}
.cfdi-fact{padding:2mm 1.6mm 2.2mm;border-right:.25mm solid #e5e8ec;min-width:0}
.cfdi-fact:last-child{border:0}
.cfdi-fact small{display:block;color:var(--cfdi-muted);font-size:5.5pt;text-transform:uppercase;letter-spacing:.3pt;margin-bottom:1mm;white-space:nowrap}
.cfdi-fact strong{display:block;font-size:6.25pt;line-height:1.22;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:normal}
.cfdi-items{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;border:.25mm solid var(--cfdi-line);border-radius:2mm;overflow:hidden}
.cfdi-items th{background:#1b2128;color:#fff;font-size:5.8pt;text-transform:uppercase;letter-spacing:.25pt;text-align:left;padding:1.9mm 1.35mm;font-weight:750}
.cfdi-items td{font-size:6.2pt;line-height:1.28;padding:1.8mm 1.35mm;border-bottom:.25mm solid #eaedf0;vertical-align:top;color:#36404b}
.cfdi-items tbody tr:nth-child(4n+3),.cfdi-items tbody tr:nth-child(4n+4){background:#fafbfc}
.cfdi-items tbody tr:last-child td{border-bottom:0}
.cfdi-items .num{text-align:right;font-variant-numeric:tabular-nums}
.cfdi-items .center{text-align:center}
.cfdi-concept-main td{padding-bottom:1mm;border-bottom:0}
.cfdi-concept-detail td{padding-top:0;color:var(--cfdi-muted)}
.cfdi-description{font-weight:750;color:var(--cfdi-ink);font-size:6.6pt;overflow-wrap:anywhere}
.cfdi-detail-line{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8mm 2mm;font-size:5.65pt}
.cfdi-detail-line b{color:#4f5965}
.cfdi-tax-line{margin-top:.7mm;font-size:5.5pt;color:#77818c}
.cfdi-concept{break-inside:avoid;page-break-inside:avoid}
.cfdi-last-layout{display:grid;grid-template-columns:1.14fr .86fr;gap:6mm;margin-top:3mm;align-items:start}
.cfdi-payment-note{padding:2.8mm 3.2mm;background:#f6f7f9;border-radius:2mm;font-size:6.5pt;color:#56606c;line-height:1.48}
.cfdi-payment-note b{color:var(--cfdi-ink)}
.cfdi-amount-words{margin-top:2mm;padding-top:2mm;border-top:.25mm solid #e0e4e8;text-transform:uppercase;font-weight:750;color:#343d48}
.cfdi-totals{width:100%;border-collapse:collapse;font-size:7.3pt}
.cfdi-totals td{padding:1.2mm .5mm}
.cfdi-totals td:first-child{text-align:right;color:var(--cfdi-muted)}
.cfdi-totals td:last-child{text-align:right;font-weight:750;width:31mm}
.cfdi-totals .grand td{border-top:.6mm solid var(--cfdi-red);padding-top:2mm;font-size:11pt;color:var(--cfdi-red);font-weight:850}
.cfdi-related{margin-top:3mm;padding:2.3mm 3mm;border:.25mm solid var(--cfdi-line);border-radius:2mm;font-size:6pt;color:var(--cfdi-muted)}
.cfdi-related b{color:var(--cfdi-ink)}
.cfdi-fiscal{display:grid;grid-template-columns:31mm minmax(0,1fr);gap:4mm;margin-top:4mm;padding-top:3.5mm;border-top:.25mm dashed #c9ced4;break-inside:avoid;page-break-inside:avoid}
.cfdi-qr{width:28mm;height:28mm;border:1.2mm solid #fff;box-shadow:0 0 0 .25mm #d3d7dc;object-fit:contain;background:#fff}
.cfdi-qr-placeholder{width:28mm;height:28mm;border:.25mm solid #bfc5cc;display:grid;place-items:center;text-align:center;font-size:6pt;color:var(--cfdi-muted);background:#fff}
.cfdi-qr-placeholder span{padding:1mm;background:#fff;font-weight:800}
.cfdi-verify{text-align:center;font-size:5.3pt;color:var(--cfdi-muted);margin-top:1.5mm}
.cfdi-stamp h3{font-size:6.2pt;letter-spacing:.65pt;text-transform:uppercase;margin:0 0 1mm;color:var(--cfdi-ink)}
.cfdi-stamp p{font-family:"Courier New",monospace;font-size:4.7pt;line-height:1.35;color:#67717d;margin:0 0 1.8mm;overflow-wrap:anywhere;word-break:break-all}
.cfdi-certs{display:grid;grid-template-columns:1fr 1fr;gap:1mm 4mm;font-size:5.3pt;color:#66707c}
.cfdi-certs b{color:#28323d}
.cfdi-footer{position:absolute;left:12mm;right:12mm;bottom:6.5mm;border-top:.25mm solid var(--cfdi-line);padding-top:2mm;display:grid;grid-template-columns:1fr auto auto;gap:5mm;align-items:center;font-size:5.7pt;color:#7d8691}
.cfdi-footer strong{color:var(--cfdi-red)}
.cfdi-page-number{font-weight:800;color:#3a444f}
@page{size:Letter portrait;margin:0}
@media print{
  .cfdi-preview-shell{background:#fff;border:0;padding:0;max-height:none}
  .cfdi-render-root #cfdi-document{padding:0}
  .cfdi-page{margin:0;box-shadow:none}
}
