/* Receipt layouts — shared by the live preview and printing. Sizes are real millimetres. */
@font-face { font-family: "Noto Sans"; font-weight: 400; font-display: swap; src: url(../fonts/noto-sans-latin-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Noto Sans"; font-weight: 700; font-display: swap; src: url(../fonts/noto-sans-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: "Noto Sans Tamil"; font-weight: 400; font-display: swap; src: url(../fonts/noto-sans-tamil-tamil-400-normal.woff2) format("woff2"); }
@font-face { font-family: "Noto Sans Tamil"; font-weight: 700; font-display: swap; src: url(../fonts/noto-sans-tamil-tamil-700-normal.woff2) format("woff2"); }

.rcpt { background: #fff; color: #111; font-family: "Noto Sans", "Noto Sans Tamil", sans-serif; position: relative; overflow: hidden; line-height: 1.4; box-sizing: border-box; }
.rcpt *, .rcpt *::before, .rcpt *::after { box-sizing: border-box; }
.rcpt.p58 { width: 58mm; padding: 3mm 4mm 5mm; font-size: 10.5px; }
.rcpt.p80 { width: 80mm; padding: 4mm 4mm 6mm; font-size: 11.5px; }
.rcpt.pa4 { width: 210mm; min-height: 148mm; padding: 14mm 15mm; font-size: 12px; }
.rcpt .c { text-align: center; }
.rcpt .logo { display: block; margin: 0 auto 2mm; width: 18mm; height: 18mm; object-fit: contain; }
.rcpt.pa4 .logo { width: 26mm; height: 26mm; margin: 0; }
.rcpt .nta { font-weight: 700; font-size: 1.32em; line-height: 1.3; }
.rcpt .nen { font-weight: 700; font-size: 1.02em; line-height: 1.25; margin-top: .5mm; }
.rcpt .addr { font-size: .88em; line-height: 1.35; margin-top: 1mm; }
.rcpt hr { border: 0; border-top: 1px dashed #555; margin: 2.2mm 0; }
.rcpt.pa4 hr { border-top: 1px solid #999; }
.rcpt .title { font-weight: 700; text-align: center; font-size: 1.08em; }
.rcpt .title-en { font-weight: 600; font-size: .9em; }
.rcpt .kv { display: grid; grid-template-columns: max-content 1fr; gap: .9mm 3mm; font-size: .95em; align-items: start; margin: 0; }
.rcpt .kv dt { color: #333; }
.rcpt .kv dd { margin: 0; text-align: right; font-weight: 600; overflow-wrap: anywhere; }
.rcpt .sub-en { display: block; font-size: .78em; color: #555; font-weight: 400; line-height: 1.2; }
.rcpt table { width: 100%; border-collapse: collapse; font-size: .95em; }
.rcpt th { text-align: left; font-weight: 700; border-bottom: 1px solid #333; padding: .8mm 0; vertical-align: bottom; }
.rcpt td { padding: .9mm 0; vertical-align: top; }
.rcpt th + th, .rcpt td + td { padding-left: 2mm; }
.rcpt .num { text-align: right; white-space: nowrap; }
.rcpt .item58 { margin: 1mm 0; }
.rcpt .item58 .nm { font-weight: 600; }
.rcpt .item58 .calc { display: flex; justify-content: space-between; }
.rcpt .total { display: flex; justify-content: space-between; align-items: baseline; font-weight: 800; font-size: 1.25em; border-top: 1.5px solid #111; border-bottom: 1.5px solid #111; padding: 1.4mm 0; margin-top: 1.5mm; }
.rcpt .words { font-size: .85em; font-style: italic; margin-top: 1mm; }
.rcpt .status { font-size: .8em; border: 1px solid #111; border-radius: 1mm; padding: 0 1.5mm; display: inline-block; text-align: center; }
.rcpt .qr { display: flex; flex-direction: column; align-items: center; gap: 1mm; margin-top: 2.5mm; text-align: center; }
.rcpt .qr svg { width: 22mm; height: 22mm; }
.rcpt .qrs { display: flex; justify-content: center; gap: 5mm; align-items: flex-start; }
.rcpt .qr.pay svg { width: 26mm; height: 26mm; }
.rcpt.p58 .qr.pay svg { width: 30mm; height: 30mm; }
.rcpt.pa4 .qr svg { width: 28mm; height: 28mm; }
.rcpt .qr .amt { font-weight: 800; font-size: 1.05em; }
.rcpt .upi { font-size: .8em; font-weight: 600; }
.rcpt .small { font-size: .8em; color: #333; }
.rcpt .foot { text-align: center; font-size: .92em; }
.rcpt .thanks { text-align: center; font-weight: 700; margin-top: 1mm; }
.rcpt .reg { font-size: .8em; text-align: center; margin-top: .8mm; }
.rcpt .powered { text-align: center; font-size: .72em; color: #777; margin-top: 1.5mm; }
.rcpt .sig { margin-top: 9mm; text-align: right; font-size: .85em; }
.rcpt .sig span { display: inline-block; border-top: 1px solid #333; padding-top: .8mm; min-width: 32mm; text-align: center; }
.rcpt .sign2 { display: flex; justify-content: space-between; gap: 4mm; margin-top: 10mm; font-size: .85em; }
.rcpt .sign2 span { flex: 1; border-top: 1px solid #333; text-align: center; padding-top: .8mm; }
.rcpt .tok { text-align: center; margin: 1.5mm 0; }
.rcpt .tok b { display: inline-block; font-size: 2.1em; border: 2px solid #111; border-radius: 2mm; padding: 0 4mm; line-height: 1.3; }
.rcpt .stamp { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.rcpt .stamp b { transform: rotate(-28deg); font-size: 2.2em; color: rgba(160,0,0,.18); border: 3px solid rgba(160,0,0,.18); padding: 1mm 4mm; white-space: nowrap; }
.rcpt .stamp.cancel b { color: rgba(160,0,0,.4); border-color: rgba(160,0,0,.4); }
.rcpt.pa4 .hdr { display: grid; grid-template-columns: 28mm 1fr 58mm; gap: 6mm; align-items: center; }
.rcpt.pa4 .hdr dd { white-space: nowrap; }
.rcpt.pa4 .nta { font-size: 1.75em; }
.rcpt.pa4 .nen { font-size: 1.25em; }
.rcpt.pa4 .twocol { display: grid; grid-template-columns: 1fr 1fr; gap: 4mm 12mm; margin-bottom: 3mm; }
.rcpt.pa4 table th, .rcpt.pa4 table td { padding: 1.6mm 1.5mm; border-bottom: 1px solid #ddd; }
.rcpt.pa4 table th { background: #f3efe7; border-bottom: 1px solid #999; }
.rcpt.pa4 .bottom { display: grid; grid-template-columns: 1fr auto; gap: 8mm; align-items: end; margin-top: 4mm; }

@media print {
  html, body { margin: 0; padding: 0; background: #fff; }
  .rcpt { box-shadow: none !important; zoom: 1 !important; transform: none !important; }
}
