/* Monochrome thermal-receipt presentation, built to print as PDF.
   No brand color — black on white, as a real point-of-sale slip. */

/* PDF geometry: 80mm roll, capture with --pdf-prefer-css-page-size.
   Chrome ignores an `auto` page dimension, so both lengths are explicit. */
@page {
  size: 80mm 200mm;
  margin: 6mm 5mm;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: #e9e9e9;            /* screen backdrop behind the paper */
  color: #000;
  font: 12px/1.45 "Courier New", "DejaVu Sans Mono", ui-monospace, monospace;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.receipt {
  width: 72mm;
  margin: 12px auto;
  padding: 8mm 6mm;
  background: #fff;
  border: 1px solid #ccc;
}

hr {
  border: 0;
  border-top: 1px dashed #000;
  margin: 8px 0;
}

/* Header */
.head { text-align: center; }
.name {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 2px;
}
.tagline { margin: 2px 0 6px; font-style: italic; }
.addr { font-style: normal; line-height: 1.5; }

/* Meta */
.meta { margin: 0; }
.meta > div { display: flex; justify-content: space-between; gap: 12px; }
.meta dt { margin: 0; text-transform: uppercase; letter-spacing: 1px; }
.meta dd { margin: 0; text-align: right; }

/* Items */
.items { width: 100%; border-collapse: collapse; }
.items th, .items td { padding: 1px 0; vertical-align: top; text-align: left; }
.items thead th {
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-bottom: 1px dashed #000;
  padding-bottom: 3px;
}
.items .qty { width: 2.5em; }
.items .amt { text-align: right; width: 5em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.items .mod .desc { padding-left: 1.5em; }

tfoot .sum th, tfoot .sum td { padding-top: 3px; font-weight: 400; }
tfoot .sum th { text-align: left; }
tfoot .total th, tfoot .total td {
  padding-top: 6px;
  font-weight: 700;
  font-size: 14px;
  border-top: 1px dashed #000;
}

/* Payment */
.pay .row { display: flex; justify-content: space-between; margin: 2px 0; }
.copy { text-align: center; letter-spacing: 2px; margin: 8px 0 0; }

/* Footer */
.foot { text-align: center; }
.scan { margin: 0 0 6px; text-transform: uppercase; letter-spacing: 1px; }
.qr { width: 132px; height: 132px; image-rendering: pixelated; }
.url { margin: 4px 0 8px; font-weight: 700; }
.bye { margin: 0; }

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

@media print {
  body { background: #fff; }
  .receipt { width: auto; margin: 0; padding: 0; border: 0; }
}
