.template-document {
  padding: 24px;
  background: var(--soft);
  font-size: 13px;
}

.page,
.receipt-document {
  max-width: 210mm;
  margin: 0 auto;
  background: var(--surface-raised);
  border-top: 7px solid var(--official-blue);
  box-shadow: var(--shadow);
}

.receipt-section {
  background: var(--soft);
}

.receipt-print-section {
  padding: 0;
}

.print-container {
  width: 210mm;
  max-width: 100%;
  margin-inline: auto;
}

.template-document .receipt-document {
  width: 210mm;
  max-width: 100%;
  min-height: 297mm;
}

.template-document .receipt-header {
  grid-template-columns: auto minmax(0, 1fr) auto;
}

.template-document .receipt-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.template-document .receipt-summary div + div {
  border-top: 0;
  border-left: 1px solid var(--line);
}

.page {
  min-height: 297mm;
  padding: 8mm 18mm 18mm;
}

.receipt-document {
  padding: 34px;
  border-inline: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.header {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.continuation-header {
  display: none;
}

.header-inner,
.receipt-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: start;
}

.receipt-header {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line);
}

.model-brand-mark,
.receipt-brand-mark {
  display: block;
  width: 56px;
  height: 56px;
  object-fit: cover;
  border: 2px solid var(--official-gold);
  border-radius: 8px;
}

.header h1,
.receipt-header h2 {
  min-height: 54px;
  margin: 0;
  color: var(--heading-ink);
  font-size: 25px;
  line-height: 1.08;
}

.meta,
.receipt-meta {
  margin: 6px 0 0;
  color: var(--muted-ink);
  font-weight: 800;
  text-transform: uppercase;
}

.subkicker,
.receipt-subkicker {
  margin: -2px 0 4px;
  color: var(--muted-ink);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.badge,
.receipt-badge {
  min-width: 33mm;
  padding: 10px;
  color: var(--heading-ink);
  text-align: center;
  border: 1px solid var(--line);
}

.badge span,
.receipt-badge span,
.badge strong,
.receipt-badge strong {
  display: block;
}

.badge strong,
.receipt-badge strong {
  margin-top: 4px;
  font-size: 19px;
}

.summary,
.receipt-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 18px 0;
}

.receipt-summary {
  margin-block: 24px;
}

.summary div,
.receipt-summary div {
  padding: 9px;
  background: var(--surface-raised);
}

.summary div {
  min-height: 23mm;
}

.summary div + div,
.receipt-summary div + div {
  border-left: 1px solid var(--line);
}

.summary dt,
.receipt-summary dt {
  color: var(--official-blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.summary dd,
.receipt-summary dd {
  margin: 4px 0 0;
  color: var(--heading-ink);
  font-weight: 800;
}

.notice {
  margin: 0 0 16px;
  padding: 10px 12px;
  background: var(--soft);
  border: 1px solid var(--line);
}

.field label,
.observations h2,
.declarations h2,
.signature span {
  color: var(--official-blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.fields {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.field {
  min-height: 25mm;
  padding: 10px;
  border: 1px solid var(--line);
  break-inside: avoid;
}

.administrative-field {
  background: color-mix(in srgb, var(--soft-blue) 55%, var(--surface-raised));
}

.field ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5px 10px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.field li::before,
.box::before {
  content: "";
  display: inline-block;
  width: 11px;
  height: 11px;
  margin-right: 7px;
  border: 1px solid var(--muted-ink);
  vertical-align: -1px;
}

.field li.is-selected::before,
.box.is-selected::before {
  content: "X";
  color: var(--heading-ink);
  font-family: "Courier New", monospace;
  font-size: 10px;
  font-weight: 800;
  line-height: 10px;
  text-align: center;
}

.filled-value,
.filled-text,
.filled-signature {
  color: var(--heading-ink);
  font-family: "Courier New", monospace;
  font-weight: 700;
}

.filled-value {
  min-height: 20px;
  margin-top: 13px;
  border-bottom: 1px solid var(--muted-ink);
}

.line {
  height: 20px;
  margin-top: 13px;
  border-bottom: 1px solid var(--muted-ink);
}

.observations,
.declarations {
  margin-top: 12px;
  padding: 10px;
  border: 1px solid var(--line);
  break-inside: avoid;
}

.observations h2,
.declarations h2 {
  margin: 0 0 10px;
}

.filled-observations .filled-text {
  min-height: 30mm;
  margin: 0;
  padding-top: 4px;
  border-top: 1px solid var(--line);
  white-space: pre-wrap;
}

.blank-lines {
  min-height: 42mm;
  background: repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 25px,
    var(--line) 26px
  );
}

.filled-observations .blank-lines {
  min-height: 22mm;
  margin-top: 8px;
}

.declarations p {
  margin: 7px 0;
}

.signature {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  margin-top: 18px;
  break-inside: avoid;
}

.signature > div {
  display: grid;
  grid-template-rows: 30px 1fr;
  min-height: 42mm;
}

.signature span {
  display: block;
}

.signature-line {
  min-height: 30mm;
  border-bottom: 1px solid var(--muted-ink);
}

.filled-signature {
  align-self: end;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--muted-ink);
}

.stamp {
  display: grid;
  min-height: 30mm;
  padding: 10px;
  border: 1px dashed var(--muted-ink);
  place-items: center;
}

.stamp img {
  display: block;
  max-width: 100%;
  max-height: 28mm;
  object-fit: contain;
}

.note,
.receipt-note {
  margin-top: 16px;
  color: var(--muted-ink);
  font-size: 11px;
}

@media print {
  /* Los PDFs de pega se imprimen siempre como documento oficial en papel claro.
     El modo oscuro de la web no debe teñir justificantes ni modelos imprimibles. */
  :root,
  html[data-theme="dark"] {
    --ink: #17212b;
    --muted-ink: #5c6875;
    --line: #d6e4f0;
    --paper: #ffffff;
    --soft: #f4f8fb;
    --surface: #ffffff;
    --surface-raised: #ffffff;
    --field-bg: #ffffff;
    --official-gold: #ffb400;
    --official-blue: #0077c8;
    --heading-ink: #1b3a6b;
    --shadow: none;
    color-scheme: light;
  }

  @page {
    margin: 14mm 14mm 18mm;

    @bottom-right {
      content: "Página " counter(page) " de " counter(pages);
      color: var(--muted-ink);
      font-size: 9px;
      font-weight: 700;
    }
  }

  body {
    padding: 0;
    color: var(--ink);
    background: #fff;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  .template-document {
    padding: 0;
    background: #fff;
  }

  .page,
  .receipt-document {
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
  }

  .receipt-section {
    background: #fff;
  }

  .header-inner,
  .receipt-header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    padding-top: 6mm;
    padding-bottom: 8mm;
    background: #fff;
    border-top: 5px solid var(--official-blue);
    border-bottom: 1px solid var(--line);
  }

  .receipt-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    break-inside: avoid;
  }

  .receipt-summary div + div {
    border-top: 0;
    border-left: 1px solid var(--line);
  }

  .fields,
  .observations,
  .declarations,
  .signature {
    break-inside: avoid;
  }

  .continuation-header {
    display: block;
    margin-bottom: 18px;
    padding-bottom: 0;
    border-bottom: 0;
    break-before: page;
  }

  .continuation-header .header-inner {
    border-bottom: 1px solid var(--line);
  }

  .continuation-header + .observations {
    margin-top: 0;
  }
}

@media screen and (max-width: 720px) {
  .receipt-header {
    grid-template-columns: 1fr;
  }

  .receipt-summary {
    grid-template-columns: 1fr;
  }

  .receipt-summary div + div {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
}
