.thermal-logo{display:block;width:62mm;max-width:100%;height:auto;margin:0 auto 3mm;filter:grayscale(1) contrast(2) invert(1);background:#000}
.play-ticket{box-sizing:border-box;width:72mm;background:white;color:#000;text-align:center;padding:4mm 2mm;font:13px Tahoma,Arial,sans-serif;line-height:1.6;border:1px dashed #222;margin:12px auto;break-inside:avoid}
.ticket-label{font-size:17px;font-weight:bold;letter-spacing:2px}.ticket-right{font-size:23px;font-weight:bold;border-block:2px solid #000;padding:3mm 0;margin-top:3mm}.ticket-number{font:bold 19px monospace;border:2px solid #000;padding:3mm 1mm;overflow-wrap:anywhere}.ticket-rules{border-top:1px dashed #000;padding-top:3mm;margin-bottom:2mm}
@media print{.play-ticket{border:0;margin:0;break-after:page;page-break-after:always}.play-ticket:last-child{break-after:auto;page-break-after:auto}.receipt-sheet{break-after:page;page-break-after:always}.thermal-logo{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
/* Compact layout for the XP-80C printable area. */
.play-ticket{width:64mm;padding:2mm;font-size:12px;line-height:1.35}
.play-ticket .thermal-logo{width:48mm;height:25mm;object-fit:contain;margin:0 auto 1mm}
.play-ticket p{margin:2mm 0}
.play-ticket .ticket-label{font-size:15px;letter-spacing:0}
.play-ticket .ticket-right{font-size:20px;padding:2mm 0;margin-top:2mm}
.play-ticket .ticket-number{font-size:17px;padding:2mm 1mm}
.play-ticket .ticket-rules{padding-top:2mm;margin-bottom:1mm}
@page ticketPage{size:72.1mm 120mm;margin:3mm}
@page receiptPage{size:72.1mm 120mm;margin:3mm}
@media print{
 body>#printArea{width:64mm!important;margin:0 auto!important;padding:0!important}
 #printArea .play-ticket{page:ticketPage;width:64mm!important;max-width:100%;height:90mm;box-sizing:border-box;overflow:visible;margin:0!important;padding:2mm 0!important;border:0}
 #printArea .receipt{page:receiptPage;width:64mm!important;max-width:100%;box-sizing:border-box;padding:0!important}
 #printArea .receipt-sheet{page:receiptPage}
}

/* Crop only transparent padding, preserving all artwork pixels. */
.thermal-logo-crop{position:relative;overflow:hidden;width:54mm;max-width:100%;aspect-ratio:721/455;margin:0 auto 2mm}
.play-ticket .thermal-logo-crop{width:48mm;margin:0 auto 1mm}
.thermal-logo-crop .thermal-logo,.play-ticket .thermal-logo-crop .thermal-logo{position:absolute;display:block;width:124.27185%;max-width:none;height:auto;left:-13.86963%;top:-7.91209%;margin:0;object-fit:initial}

/* Ticket stock: 72.1 x 100 mm; receipt uses its own page size. */
@media print{
 #printArea .play-ticket{width:62mm!important;font-size:11px;line-height:1.25;padding:1mm 0!important}
 #printArea .play-ticket .thermal-logo-crop{width:40mm;margin-bottom:1mm}
 #printArea .play-ticket .ticket-label{font-size:14px}
 #printArea .play-ticket .ticket-right{font-size:18px;padding:1.5mm 0;margin-top:1mm}
 #printArea .play-ticket p{margin:1.5mm 0}
 #printArea .play-ticket .ticket-number{font-size:16px;padding:1.5mm 1mm}
 #printArea .play-ticket .ticket-rules{padding-top:1.5mm}
}

/* Common sheet size matches XP-80C 80(72.1) x 120 mm. */
@media print{
 #printArea .receipt{font:10px/1.3 Tahoma,Arial,sans-serif!important;break-inside:avoid;color:#000}
 #printArea .receipt .thermal-logo-crop{width:34mm;margin:0 auto 1mm}
 #printArea .receipt h3{font-size:12px;margin:1mm 0}
 #printArea .receipt .center{padding-bottom:1mm}
 #printArea .receipt p{margin:1.5mm 0}
 #printArea .receipt .row{margin:1mm 0;gap:1mm}
 #printArea .receipt .divider{margin:1.5mm 0}
 #printArea .receipt .receipt-map{margin-top:2mm!important;padding-bottom:0!important}
 #printArea .receipt .receipt-map img{width:25mm!important;height:25mm!important}
 #printArea .receipt .receipt-map span{font-size:9px!important}
}

/* Keep receipt content and floorplan QR on a single 120 mm sheet. */
@media print{
 #printArea .receipt{font-size:10px!important;line-height:1.18!important}
 #printArea .receipt .thermal-logo-crop{width:27mm;margin:0 auto .5mm!important}
 #printArea .receipt h3{font-size:11px;margin:.5mm 0!important}
 #printArea .receipt .center{padding-bottom:.5mm!important}
 #printArea .receipt p{margin:1mm 0!important}
 #printArea .receipt .row{margin:.7mm 0!important}
 #printArea .receipt .divider{margin:1mm 0!important}
 #printArea .receipt .receipt-map{display:grid!important;grid-template-columns:25mm 1fr;grid-template-rows:auto auto;align-items:center;column-gap:2mm;text-align:left!important;margin-top:1.5mm!important;padding:0!important;break-inside:avoid}
 #printArea .receipt .receipt-map img{grid-column:1;grid-row:1/3;width:25mm!important;height:25mm!important;margin:0!important}
 #printArea .receipt .receipt-map b{grid-column:2;align-self:end;font-size:10px}
 #printArea .receipt .receipt-map span{grid-column:2;align-self:start;font-size:9px!important}
}

.event-hours{text-align:center;font-size:11px;margin-top:1mm;color:#000}
@media print{#printArea .receipt .receipt-map .event-hours{grid-column:1;grid-row:3;font-size:9px;white-space:nowrap;margin-top:.5mm;line-height:1.2}#printArea .receipt .row>span{min-width:0}}

/* Isolate thermal printing from the dark POS screen theme. */
@media print{
 html:root,html,body{background:#fff!important;background-image:none!important;color:#000!important;min-height:0!important;height:auto!important;color-scheme:light!important}
 body>#printArea{background:#fff!important;background-image:none!important;min-height:0!important;height:auto!important;box-shadow:none!important}
 #printArea .play-ticket,#printArea .receipt-sheet,#printArea .receipt{background:#fff!important;background-image:none!important;box-shadow:none!important;border-radius:0!important}
 #printArea small{color:#000!important}
}
