/* Horizontal 210 x 80 mm boarding pass; keep geometry aligned with the staff thermal template. */
.thermal-sheet { width: 210mm; height: 80mm; margin: 1rem auto; }
.thermal-pass { width: 210mm; height: 80mm; padding: 4mm; background: #fff; display: grid; grid-template-columns: minmax(0, 1fr) 52mm; gap: 4mm; color: #000; font-family: Arial, Helvetica, sans-serif; font-size: 9pt; line-height: 1.15; overflow-wrap: anywhere; }
.bp-main, .bp-stub { min-width: 0; }
.thermal-pass .bp-heading { height: 8mm; display: flex; align-items: center; gap: 2mm; border-bottom: .35mm solid #000; padding-bottom: 1mm; margin-bottom: .5mm; }
.thermal-pass .bp-logo { width: 27mm; height: 7mm; object-fit: contain; filter: grayscale(1); flex-shrink: 0; }
.thermal-pass .bp-airline { font-size: 13pt; font-weight: 800; line-height: 1; }
.thermal-pass .bp-title { margin-left: auto; font-size: 8pt; text-align: right; }
.thermal-pass .bp-notice { font-size: 6.5pt; font-weight: 800; margin: .8mm 0; }
.thermal-pass .bp-name { font-size: 12pt; line-height: 1.1; margin: .5mm 0 1mm; }
.thermal-pass .bp-name.bp-long-name { font-size: 10pt; }
.thermal-pass .label { font-size: 6.5pt; letter-spacing: .2pt; }
.thermal-pass .value { font-size: 10pt; }
.thermal-pass .bp-itinerary { display: flex; align-items: center; justify-content: space-between; gap: 3mm; border-block: .3mm solid #000; padding: .5mm 0; margin: 1mm 0 1mm; }
.thermal-pass .bp-route { font-size: 18pt; font-weight: 800; white-space: nowrap; }
.thermal-pass .bp-flight-date { font-size: 10pt; text-align: right; }
.thermal-pass .bp-lower { display: grid; grid-template-columns: minmax(0, 1fr) 72mm; gap: 3mm; align-items: start; }
.thermal-pass .bp-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5mm 2mm; }
.thermal-pass .bp-priority { grid-column: 1 / -1; display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 2mm; margin-bottom: .5mm; }
.thermal-pass .bp-priority .value { font-size: 15pt; margin-top: .5mm; }
.thermal-pass .bp-priority .bp-unassigned { font-size: 9pt; }
.thermal-pass .barcode { width: 72mm; max-width: 100%; height: auto; display: block; margin: 0; }
.thermal-pass .bp-barcode-label { text-align: center; font-size: 6.5pt; margin-top: .5mm; }
.thermal-pass .bp-stub { border-left: .3mm dashed #000; padding-left: 3mm; }
.thermal-pass .bp-stub .bp-heading { justify-content: flex-start; }
.thermal-pass .bp-stub .bp-logo { width: 17mm; height: 7mm; }
.thermal-pass .bp-stub .bp-airline { font-size: 10pt; }
.thermal-pass .bp-stub-heading { font-size: 6.5pt; text-align: center; margin: 1mm 0; }
.thermal-pass .bp-stub .bp-name { font-size: 9pt; margin: 1.5mm 0; }
.thermal-pass .bp-stub .bp-route { font-size: 14pt; margin: 1.5mm 0; }
.thermal-pass .bp-stub .bp-fields { margin: 2mm 0; }
.thermal-pass .bp-stub .value { font-size: 9pt; }
.thermal-pass .bp-stub .bp-notice { font-size: 6pt; }
.thermal-pass .bp-footer { font-size: 6.5pt; margin: 2mm 0 0; }
.thermal-pass .bp-name { font-weight: 800; text-transform: uppercase; }
.thermal-pass .label { text-transform: uppercase; }
.thermal-pass .value { font-weight: 800; }
#boarding-pass { padding: 16px; min-width: 0; }
.pass-preview { max-width: 100%; overflow-x: auto; }
.pass-print-options { margin: 12px 0; }
.pass-print-options select { padding: 8px; font: inherit; max-width: 100%; }
@media print {
  body { background: white; }
  body > header, body > footer, #intro, #lookup-panel, #status, #session-panel, .no-print { display: none !important; }
  #check-in-app { width: auto; margin: 0; padding: 0; }
  #boarding-pass { margin: 0; padding: 0; border: 0; border-radius: 0; break-inside: avoid; }
  .pass-preview { overflow: visible; }
  .thermal-sheet { margin: 0; break-inside: avoid; }
  body[data-pass-paper="thermal"] .thermal-sheet { position: relative; width: 80mm; height: 210mm; }
  body[data-pass-paper="thermal"] .thermal-pass { position: absolute; top: 0; left: 80mm; transform-origin: top left; transform: rotate(90deg); }
}
