/* V2.5.0-dev.6.3 — consolidated print system */
.print-phone-ltr{direction:ltr!important;unicode-bidi:embed!important;text-align:left!important;display:inline-block!important}

@media print{
  html,body{margin:0!important;padding:0!important;background:#fff!important;color:#18363e!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .app-header,.global-footer,.modal-toolbar{display:none!important}

  /* Voucher — compact semantic tables from BookingDocumentRenderer. */
  body.voucher-print-document{background:#fff;overflow:visible;font-family:var(--ui-font-family);color:var(--ui-text)}
  body.voucher-print-document .print-voucher-clone.modern-voucher{position:relative;width:auto;min-height:0;height:auto;margin:0;padding:0 0 2.5mm;border:0;border-radius:0;box-shadow:none;background:#fff;color:var(--ui-text);overflow:visible;font-family:var(--ui-font-family);font-size:10.8px;line-height:1.42}
  body.voucher-print-document .print-voucher-clone.modern-voucher::before{content:"";display:block;height:2px;margin:0 0 3mm;background:var(--blue);border-radius:0}
  body.voucher-print-document .mv-header{display:flex;align-items:center;justify-content:space-between;gap:3mm;margin:0 0 3mm;padding:0 0 2.5mm;border-bottom:1px solid var(--ui-line);break-inside:avoid;page-break-inside:avoid}
  body.voucher-print-document .mv-brand{display:flex;align-items:center;gap:2.5mm;min-width:0}body.voucher-print-document .mv-brand img{width:26mm;height:13mm;object-fit:contain}body.voucher-print-document .mv-brand h1{font-size:13px;line-height:1.25;color:var(--ui-heading)}body.voucher-print-document .mv-brand p{font-size:8.5px;margin-top:.5mm;color:var(--ui-text-secondary)}body.voucher-print-document .mv-voucher-number-line,body.voucher-print-document .mv-issue-date{font-size:8.5px;color:var(--ui-text-secondary)}body.voucher-print-document .mv-voucher-number-line b,body.voucher-print-document .mv-issue-date b{font-size:10px;color:var(--ui-text);direction:ltr;unicode-bidi:isolate}body.voucher-print-document .mv-issue-date{min-width:24mm}
  body.voucher-print-document .mv-summary-table-wrap{margin:0 0 2.5mm;border:1px solid var(--ui-line);border-radius:0;overflow:visible}body.voucher-print-document .mv-summary-table{width:100%;border-collapse:collapse;table-layout:fixed}body.voucher-print-document .mv-summary-table th,body.voucher-print-document .mv-summary-table td{padding:1.3mm 1.7mm;border-bottom:1px solid var(--ui-line);font-size:9.4px;vertical-align:middle}body.voucher-print-document .mv-summary-table th{width:13%;background:var(--ui-surface-subtle);font-size:8.5px;color:var(--ui-text-secondary)}body.voucher-print-document .mv-summary-table td{width:37%}body.voucher-print-document .mv-summary-table td small{display:block;font-size:8.2px;margin-top:.3mm;color:var(--ui-text-secondary)}body.voucher-print-document .mv-summary-table tr:last-child th,body.voucher-print-document .mv-summary-table tr:last-child td{border-bottom:0}
  body.voucher-print-document .mv-section,body.voucher-print-document .mv-terms-block{margin:2.5mm 0 0;padding:0;border:0;border-radius:0;background:transparent;break-inside:auto;page-break-inside:auto}body.voucher-print-document .mv-section-head{display:flex;align-items:center;margin:0 0 1.2mm;padding-bottom:.8mm;border-bottom:1.5px solid var(--blue);break-after:avoid;page-break-after:avoid}body.voucher-print-document .mv-section-head>div>b{font-size:10.2px;color:var(--ui-heading)}body.voucher-print-document .mv-section-head small{display:inline;margin-inline-start:2mm;font-size:7.9px;color:var(--ui-muted)}body.voucher-print-document .mv-section-icon{display:none}
  body.voucher-print-document .mv-passenger-grid,body.voucher-print-document .mv-flight-list,body.voucher-print-document .mv-hotel-grid,body.voucher-print-document .mv-services-timeline{display:block}body.voucher-print-document .mv-table-wrap{overflow:visible;border:1px solid var(--ui-line);border-radius:0}body.voucher-print-document .mv-doc-table{width:100%;min-width:0;border-collapse:collapse;table-layout:auto}body.voucher-print-document .mv-doc-table thead{display:table-header-group}body.voucher-print-document .mv-doc-table tr{break-inside:avoid;page-break-inside:avoid}body.voucher-print-document .mv-doc-table th,body.voucher-print-document .mv-doc-table td{padding:1.1mm 1.25mm;border-inline-start:1px solid var(--ui-line);border-bottom:1px solid var(--ui-line);font-size:8.6px;line-height:1.38;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}body.voucher-print-document .mv-doc-table th{font-size:8.2px;background:var(--ui-surface-subtle);color:var(--ui-heading);font-weight:var(--ui-weight-strong)}body.voucher-print-document .mv-doc-table th:first-child,body.voucher-print-document .mv-doc-table td:first-child{border-inline-start:0}body.voucher-print-document .mv-doc-table tbody tr:last-child td{border-bottom:0}body.voucher-print-document .mv-inline-note{display:block;margin-top:.4mm;font-size:7.6px;color:var(--ui-text-secondary)}
  body.voucher-print-document .mv-note-box{font-size:8.7px;line-height:1.5;padding:1mm 1.5mm;border:1px solid var(--ui-line)}body.voucher-print-document .mv-terms-block .v-terms-title{padding:0 0 .8mm;border-bottom:1.5px solid var(--blue);font-size:10.2px;color:var(--ui-heading)}body.voucher-print-document .mv-terms-block .v-terms{padding:1.2mm 0 0;font-size:8.4px;line-height:1.5;color:var(--ui-text-secondary);white-space:pre-line}body.voucher-print-document .mv-terms-forward-note,body.voucher-print-document .mv-page-number,body.voucher-print-document .brand-line{display:none}
  body.voucher-print-document .mv-footer{position:static;min-height:0;margin:3mm 0 0;padding:1.5mm 0 0;border-top:1px solid var(--ui-line);background:#fff;display:grid;grid-template-columns:1fr;gap:.8mm;align-items:center;break-inside:avoid;page-break-inside:avoid}body.voucher-print-document .mv-footer-thanks{text-align:center;font-size:8.2px;font-weight:var(--ui-weight-strong)}body.voucher-print-document .mv-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:3mm;min-width:0}body.voucher-print-document .mv-footer .contact,body.voucher-print-document .mv-footer .social{font-size:7.6px;color:var(--ui-text-secondary);min-width:0}body.voucher-print-document .mv-footer a{color:var(--ui-text);direction:ltr;unicode-bidi:isolate}

  /* Reports */
  body.print-report .app-header,body.print-report .global-footer,body.print-report #dashboardPage,body.print-report #editorPage,body.print-report #systemSettingsPage,body.print-report #customersPage,body.print-report #previewModal{display:none!important}
  body.print-report #reportsPage{display:block!important}
  body.print-report .main{display:block!important;padding:0!important;max-width:none!important}
  body.print-report #reportsPage>.page-title .header-actions,body.print-report #reportsPage>.card:first-of-type{display:none!important}
  body.print-report #reportPrintArea{display:block!important;padding-bottom:18mm}
  body.print-report #reportPrintArea .card{box-shadow:none;border:0}
  body.print-report .report-brand-header{border:0;border-bottom:3px solid var(--blue);border-radius:0}
  body.print-report .report-brand-footer{position:fixed;left:5mm;right:5mm;bottom:5mm;background:#fff}
  body.print-report #reportPrintArea table{font-size:9px}

  /* Accounting report */
  .payments-print-report{display:block!important;width:100%!important}
  .payments-print-report .payments-kpi-grid{grid-template-columns:repeat(3,1fr)!important}
  .payments-print-report .payments-kpi{box-shadow:none!important;break-inside:avoid!important}
  .payments-print-report table{width:100%!important;border-collapse:collapse!important}
  .payments-print-report th,.payments-print-report td{border:1px solid #d6e3e8!important;padding:7px!important;font-size:9px!important}
  .payments-print-report th{background:color-mix(in srgb,var(--blue) 8%,#fff)!important;color:var(--blue-dark)!important}
  .payments-print-report .payments-table-card{box-shadow:none!important;border:0!important;overflow:visible!important}
}

@media print{
 body.voucher-print-document .modern-voucher.voucher-document-layout{display:flex;flex-direction:column;min-height:var(--voucher-doc-min-height,260mm)}
 body.voucher-print-document .mv-brand-copy #vTitle{font-size:13px;font-weight:700;color:#17212b}
 body.voucher-print-document .mv-traveler-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5mm}
 body.voucher-print-document .mv-passenger-summary{font-size:8.6px;margin-bottom:1.2mm}
 body.voucher-print-document .mv-traveler-item{border:1px solid var(--ui-line);padding:1.05mm 1.2mm;display:grid;gap:.2mm;direction:rtl;text-align:right;align-content:start;break-inside:avoid;page-break-inside:avoid}
 body.voucher-print-document .mv-traveler-item>b{font-size:9.2px}.modern-voucher .mv-traveler-item small,body.voucher-print-document .mv-traveler-item span{font-size:7.9px}
 body.voucher-print-document .modern-voucher.voucher-document-layout>.mv-footer{margin-top:auto}
}

@media print{body.voucher-print-document .mv-summary-table th{width:auto}body.voucher-print-document .mv-summary-table td{width:auto}body.voucher-print-document .mv-trip-dates-row th{width:10%}body.voucher-print-document .mv-trip-dates-row td{width:23.333%}body.voucher-print-document .flight-table td{font-size:8.9px}body.voucher-print-document .flight-table .mv-inline-note{font-size:7.7px}.mv-room-assignments{margin-top:1.6mm;break-inside:avoid}.mv-room-assignments-title{font-size:8px;font-weight:700;margin-bottom:.8mm}.mv-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2mm}.mv-room-hotel{border:1px solid var(--ui-line);padding:1mm;break-inside:avoid}.mv-room-hotel>b{font-size:7.8px}.mv-room-hotel>div{display:flex;gap:.7mm;flex-wrap:wrap;margin-top:.6mm}.mv-room-hotel span{display:grid;gap:.2mm;padding:.6mm .8mm;background:var(--ui-surface-subtle);border:1px solid var(--ui-line)}.mv-room-hotel strong{font-size:7.2px}.mv-room-hotel small{font-size:6.8px;color:var(--ui-text-secondary)}}

@media print{body.voucher-print-document .mv-traveler-item bdi{direction:ltr;unicode-bidi:isolate}body.voucher-print-document .flight-table td,body.voucher-print-document .hotel-table td{vertical-align:middle}body.voucher-print-document .mv-room-lines{display:grid;gap:.3mm;margin-top:.55mm;padding-top:.45mm;border-top:1px dotted var(--ui-line)}body.voucher-print-document .mv-room-lines small{display:block;font-size:7.6px;line-height:1.3;color:var(--ui-text-secondary)}body.voucher-print-document .mv-room-lines b{color:var(--ui-text);font-size:7.7px}}

/* V2.5.0-dev.6.8.12 — final voucher readability and shell cleanup */
@media print{
 .app-sidebar,.app-topbar,.backup-top-alert{display:none!important}
 body{padding:0!important}
 body.voucher-print-document .mv-brand-copy #vTitle{font-size:14.2px!important}
 body.voucher-print-document .mv-summary-table th{font-size:9px!important}
 body.voucher-print-document .mv-summary-table td{font-size:9.9px!important}
 body.voucher-print-document .mv-section-head>div>b{font-size:10.8px!important}
 body.voucher-print-document .mv-doc-table th{font-size:8.8px!important}
 body.voucher-print-document .mv-doc-table td{font-size:9.15px!important;line-height:1.42!important}
 body.voucher-print-document .mv-traveler-item>b{font-size:9.7px!important}
 body.voucher-print-document .mv-traveler-item small,body.voucher-print-document .mv-traveler-item span{font-size:8.3px!important}
 body.voucher-print-document .flight-table td,body.voucher-print-document .hotel-table td{font-size:9.2px!important}
 body.voucher-print-document .mv-inline-note{font-size:8px!important}
 body.voucher-print-document .mv-terms-block .v-terms{font-size:8.65px!important}
 body.print-report .app-sidebar,body.print-report .app-topbar{display:none!important}
}

/* V2.5.0-dev.6.8.13 — voucher print hierarchy / brand accents */
@media print{
 body.voucher-print-document .print-voucher-clone.modern-voucher{font-size:11.15px;line-height:1.44}
 body.voucher-print-document .modern-voucher.voucher-document-layout{min-height:var(--voucher-doc-min-height,260mm)}
 body.voucher-print-document .mv-brand-copy #vTitle{font-size:14.8px!important;color:var(--ui-heading)!important}
 body.voucher-print-document .mv-summary-table th{font-size:9.25px!important;color:var(--blue-dark)!important;background:color-mix(in srgb,var(--blue) 7%,#fff)!important}
 body.voucher-print-document .mv-summary-table td{font-size:10.15px!important;vertical-align:middle!important;text-align:right!important}
 body.voucher-print-document .mv-section-head{border-bottom-color:var(--blue)!important}
 body.voucher-print-document .mv-section-head>div>b{font-size:11.1px!important;color:var(--blue-dark)!important}
 body.voucher-print-document .mv-doc-table th{font-size:9.05px!important;color:var(--blue-dark)!important;background:color-mix(in srgb,var(--blue) 6%,#fff)!important}
 body.voucher-print-document .mv-doc-table td{font-size:9.45px!important;line-height:1.44!important}
 body.voucher-print-document .mv-traveler-item{padding:1mm 1.15mm!important;border-color:color-mix(in srgb,var(--blue) 18%,var(--ui-line))!important}
 body.voucher-print-document .mv-traveler-item>b{font-size:10px!important;color:var(--ui-heading)!important}
 body.voucher-print-document .mv-traveler-item small,body.voucher-print-document .mv-traveler-item span{font-size:8.45px!important}
 body.voucher-print-document .flight-table td,body.voucher-print-document .hotel-table td{font-size:9.5px!important}
 body.voucher-print-document .mv-inline-note{font-size:8.2px!important}
 body.voucher-print-document .mv-terms-block .v-terms{font-size:8.8px!important;line-height:1.48!important}
 body.voucher-print-document .modern-voucher.voucher-document-layout>.mv-footer{margin-top:auto!important;padding-top:1.2mm!important}
}


/* V2.5.0-dev.6.8.14 — voucher central-footer/readability closure */
@media print{
 body.voucher-print-document .print-voucher-clone.modern-voucher{font-size:11.45px!important}
 body.voucher-print-document .mv-summary-table td{font-size:10.45px!important}
 body.voucher-print-document .mv-traveler-item>b{font-size:10.25px!important}
 body.voucher-print-document .mv-traveler-item small,body.voucher-print-document .mv-traveler-item span{font-size:8.7px!important}
 body.voucher-print-document .flight-table td,body.voucher-print-document .hotel-table td,body.voucher-print-document .services-table td{font-size:9.75px!important}
 body.voucher-print-document .mv-inline-note{font-size:8.35px!important}
 body.voucher-print-document .mv-terms-block .v-terms{font-size:8.75px!important}
 body.voucher-print-document .mv-footer{border-top-color:color-mix(in srgb,var(--blue) 28%,var(--ui-line))!important}
 body.voucher-print-document .mv-footer .mv-social-links.hidden{display:none!important}
}


/* V2.5.0-dev.6.8.14.1 — voucher readability + shared footer variant */
body.voucher-print-document .v-customer-name,body.voucher-print-document .v-summary-value{font-size:10.9px!important}
body.voucher-print-document .v-traveler-name{font-size:10.7px!important}
body.voucher-print-document .v-traveler-meta,body.voucher-print-document .mv-flight-table td,body.voucher-print-document .mv-hotel-table td,body.voucher-print-document .mv-service-table td{font-size:9.8px!important;line-height:1.38!important}
body.voucher-print-document .v-terms{font-size:8.7px!important;line-height:1.4!important}
body.voucher-print-document .mv-footer{font-family:var(--brand-font)!important}
/* UI / PRINT closure hotfix — central voucher footer branding */
.mv-footer-company{font-weight:800;font-size:9.4px;line-height:1.3;color:var(--blue-dark);text-align:center;margin:0 0 1mm}
@media print{
 /* ADAPTIVE DOCUMENT GRID — identical structure/spans to the screen preview so the printed page groups
  * flights and hotels exactly as the preview showed them (no Preview/Print flow divergence). */
 /* Shared verbatim with the preview rule in system-ui.css so Preview and Print group identically:
  * paired cards stretch to the row height, and the card is a column so a short segment beside a
  * transit one no longer leaves a void. No transit detail is dropped to achieve it. */
 body.voucher-print-document .mv-flight-cards,body.voucher-print-document .mv-hotel-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1mm;align-items:stretch}
 body.voucher-print-document .mv-flight-cards>.mv-flight-card,body.voucher-print-document .mv-hotel-cards>.mv-hotel-card{display:flex;flex-direction:column}
 body.voucher-print-document .mv-service-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(max(38mm,calc((100% - 2.7mm)/4)),1fr));gap:.9mm;align-items:stretch}
 body.voucher-print-document .mv-flight-card.is-wide,body.voucher-print-document .mv-hotel-card.is-wide{grid-column:1/-1}
 body.voucher-print-document .mv-flight-cards>.mv-flight-card:last-child:nth-child(odd),body.voucher-print-document .mv-hotel-cards>.mv-hotel-card:last-child:nth-child(odd){grid-column:1/-1}
 /* Shared verbatim with the preview rules in system-ui.css — see the contract described there.
  * One card: spans, capped, centred. Two: untouched. Three or more: a lone trailing card keeps its
  * column width instead of becoming a full-width slab. */
 /* The same single cap as the preview — see system-ui.css. It was 150mm for flights against 620px
  * for hotels, two different UNITS for the same contract, so the printed pair could not be reasoned
  * about together: whether a lone flight came out narrower or wider than a lone hotel depended on
  * how the print context resolved a millimetre. One value, one unit, both cards. */
 body.voucher-print-document .mv-flight-cards>.mv-flight-card:only-child,
 body.voucher-print-document .mv-hotel-cards>.mv-hotel-card:only-child{max-width:620px;margin-inline:auto;width:100%}
 body.voucher-print-document .mv-flight-cards>.mv-flight-card:last-child:nth-child(odd):not(:only-child){grid-column:auto}
 body.voucher-print-document .mv-flight-card,body.voucher-print-document .mv-hotel-card,body.voucher-print-document .mv-service-rows>div{border:1px solid var(--ui-line);border-radius:0;background:#fff;break-inside:avoid;page-break-inside:avoid}
 body.voucher-print-document .mv-flight-card{padding:1.2mm 1.5mm}
 body.voucher-print-document .mv-flight-card-head{display:grid;gap:.2mm;padding-bottom:.8mm;border-bottom:1px solid var(--ui-line)}
 body.voucher-print-document .mv-flight-card-head>b{display:flex;align-items:center;gap:1.4mm;font-size:9.4px;font-weight:800;color:var(--ui-heading)}
 body.voucher-print-document .mv-flight-card-head strong{flex:0 0 auto;padding:.2mm 1mm;border:1px solid var(--ui-line);border-radius:2mm;font-size:8.4px;color:var(--blue-dark)}
 body.voucher-print-document .mv-flight-card-head>span{display:flex;flex-wrap:wrap;gap:.8mm;align-items:center}
 body.voucher-print-document .mv-tag{font-style:normal;font-size:7.8px;font-weight:700;padding:.1mm 1mm;border:1px solid var(--ui-line);border-radius:2mm;background:var(--ui-surface-subtle);color:var(--ui-text-secondary)}
 body.voucher-print-document .mv-tag.is-outbound,body.voucher-print-document .mv-tag.is-return,body.voucher-print-document .mv-tag.is-domestic{border-color:var(--ui-line);background:#fff;color:var(--blue-dark)}
 body.voucher-print-document .mv-tag.is-transit{border-color:var(--ui-warning);background:var(--ui-warning-bg);color:var(--ui-warning-text)}
 body.voucher-print-document .mv-tag.is-cabin{color:var(--ui-text)}
 /* owner (UI addendum): the number of tickets is the badge an operator must not miss - soft warm gold, dark text, a hair bolder; same pill,
  * printed as-is (print-color-adjust) and still the darkest text in the row in grayscale */
 body.voucher-print-document .mv-tag.is-tickets{border-color:#d9b65c;background:#fbf0cf;color:#3d2e05;font-weight:800;letter-spacing:.01em;-webkit-print-color-adjust:exact;print-color-adjust:exact;white-space:nowrap}
 body.voucher-print-document .mv-flight-no{font-size:9.4px!important}
 /* direction must match the screen rule (system-ui.css .mv-flight-route) — this was 'ltr' here while
  * screen used 'rtl', so print showed origin/destination on opposite sides from Preview (a real
  * Preview=Print composition break Micro 3 requires not to exist, not just a cosmetic difference). */
 body.voucher-print-document .mv-flight-route{display:grid;grid-template-columns:minmax(14mm,1fr) minmax(20mm,1.05fr) minmax(14mm,1fr);align-items:start;gap:1.4mm;padding:1.2mm 0 .6mm;direction:rtl}
 body.voucher-print-document .mv-flight-airport{display:grid;gap:.2mm;text-align:center;min-width:0}
 body.voucher-print-document .mv-flight-airport>bdi{font-size:12.6px;font-weight:800;line-height:1.15}
 body.voucher-print-document .mv-flight-airport small{font-size:8.2px;font-weight:600;color:var(--ui-text-secondary)}
 body.voucher-print-document .mv-flight-airport>b{font-size:9.6px;font-weight:800;direction:ltr;unicode-bidi:isolate}
 body.voucher-print-document .mv-nextday{margin-inline-start:.6mm;padding:0 .6mm;font-style:normal;font-weight:700;background:var(--ui-warning-bg);color:var(--ui-warning-text)}
 body.voucher-print-document .mv-route-line{position:relative;min-height:8mm;display:grid;justify-items:center;align-content:start;gap:.3mm;direction:ltr}
 body.voucher-print-document .mv-route-line>bdi{font-size:8.6px;font-weight:800;position:relative;z-index:1;background:#fff;padding:0 .6mm}
 body.voucher-print-document .mv-route-line i{position:absolute;right:14%;left:14%;top:4.6mm;height:.2mm;background:var(--ui-line)}
 body.voucher-print-document .mv-route-line:before,body.voucher-print-document .mv-route-line:after{content:'';position:absolute;top:4.2mm;width:.9mm;height:.9mm;border-radius:50%;background:var(--ui-line)}
 body.voucher-print-document .mv-route-line:before{right:12%}body.voucher-print-document .mv-route-line:after{left:12%}
 body.voucher-print-document .mv-route-line svg{width:3.6mm;height:3.6mm;position:relative;z-index:1;padding:.5mm;background:#fff;color:var(--blue);transform:scaleX(-1)}
 body.voucher-print-document .mv-transit-row,body.voucher-print-document .mv-flight-facts{display:flex;gap:.7mm 2.2mm;align-items:center;flex-wrap:wrap;padding-top:.7mm;border-top:1px dashed var(--ui-line)}
 /* Restrained accent, matching the screen treatment (system-ui.css) — this used to be a full-strength
  * var(--ui-warning-bg) fill (#fff8e6), a much stronger yellow than the 7% wash used on screen; the two
  * were never brought in line with each other. Centered under the route, between the two airports. */
 body.voucher-print-document .mv-transit-row{display:flex;justify-content:center;width:fit-content;max-width:100%;margin:.7mm auto 0;padding:.6mm 1.6mm;border-radius:2mm;border:1px solid color-mix(in srgb,var(--ui-warning) 30%,var(--ui-line));border-top:1px solid color-mix(in srgb,var(--ui-warning) 30%,var(--ui-line));background:color-mix(in srgb,var(--ui-warning) 7%,#fff)}
 body.voucher-print-document .mv-transit-row>b{font-size:8.2px;font-weight:800;color:var(--ui-warning-text)}
 body.voucher-print-document .mv-transit-row span{font-size:8.2px;font-weight:700;padding:.2mm .8mm;background:#fff;border:1px solid var(--ui-line)}
 body.voucher-print-document .mv-flight-facts>span{display:inline-flex;align-items:baseline;gap:.8mm;font-size:8.4px;white-space:nowrap}
 body.voucher-print-document .mv-flight-facts>span>svg{align-self:center}
 body.voucher-print-document .mv-flight-facts svg{width:2.9mm;height:2.9mm;flex:0 0 2.9mm;color:var(--blue-dark)}
 body.voucher-print-document .mv-flight-facts bdi{font-weight:800}
 body.voucher-print-document .mv-flight-facts small{font-size:7.8px;font-weight:600;color:var(--ui-text-secondary)}
 body.voucher-print-document .mv-flight-facts small:after{content:':'}
 body.voucher-print-document .mv-flight-note{font-size:8.2px;margin:.7mm 0 0;padding-top:.6mm;border-top:1px dotted var(--ui-line)}
 body.voucher-print-document .mv-hotel-card{display:grid;gap:.3mm;padding:1.1mm 1.4mm;align-content:start}
 body.voucher-print-document .mv-hotel-id{display:flex;align-items:baseline;flex-wrap:wrap;gap:.3mm 1.6mm}
 body.voucher-print-document .mv-hotel-id>b{font-size:9.4px;font-weight:800;color:var(--ui-heading)}
 body.voucher-print-document .mv-hotel-id>small{font-size:8.2px;font-weight:600;color:var(--ui-text-secondary)}
 body.voucher-print-document .mv-hotel-stay{display:flex;align-items:baseline;flex-wrap:wrap;gap:.3mm 2mm;font-size:8.6px}
 body.voucher-print-document .mv-hotel-stay .mv-hotel-dates{display:inline-flex;align-items:baseline;gap:.8mm;font-weight:800}
 body.voucher-print-document .mv-hotel-stay .mv-hotel-dates em{font-style:normal;font-size:7.8px;font-weight:700;color:var(--ui-text-secondary)}
 body.voucher-print-document .mv-hotel-rooms{display:flex;flex-wrap:wrap;gap:.5mm 1.2mm;margin-top:.3mm;padding-top:.5mm;border-top:1px dotted var(--ui-line)}
 body.voucher-print-document .mv-hotel-rooms span{padding:.2mm 1mm;background:var(--ui-surface-subtle);font-size:8.2px;color:var(--ui-text)}
 body.voucher-print-document .mv-service-rows>div{display:flex;flex-direction:column;align-items:stretch;gap:.4mm;padding:.9mm 1.4mm;font-size:8.6px}
 body.voucher-print-document .mv-service-rows>div b{font-weight:800;color:var(--ui-heading)}
 body.voucher-print-document .mv-service-rows>div span{color:var(--ui-text);font-weight:600;display:grid;gap:.25mm}
 /* one service: one compact line, natural height (see system-ui.css) */
 body.voucher-print-document .mv-service-rows>div:only-child{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.4mm 3.2mm}
 body.voucher-print-document .mv-service-rows>div:only-child span{display:flex;flex-wrap:wrap;gap:.4mm 3.2mm}
 /* Arabic section headings need vertical room in print too, or ت/ج descenders clip against the rule. */
 body.voucher-print-document .mv-section-head{padding-bottom:1.1mm}body.voucher-print-document .mv-section-head>div>b{line-height:1.65}
}


/* V2.5.0-prestable.4 — voucher-only paged-media footer and numbering. */
@page voucher{
 size:A4;
 margin:6.5mm 10mm 12.25mm;
 @bottom-right{content:var(--voucher-footer-contact,'');white-space:pre-line;font-family:Cairo,Arial,sans-serif;font-size:9.1px;font-weight:675;color:#354c55;direction:rtl;text-align:right;vertical-align:middle;border-top:1px solid #c8d7dc;padding-top:1.35mm}
 @bottom-center{content:var(--voucher-footer-thanks,'') var(--voucher-footer-social-content,'');white-space:pre-line;font-family:Cairo,Arial,sans-serif;font-size:9.1px;font-weight:675;line-height:1.36;color:#354c55;direction:rtl;text-align:center;vertical-align:middle;border-top:1px solid #c8d7dc;padding-top:1.35mm}
 @bottom-left{content:'صفحة ' counter(page) ' من ' counter(pages);font-family:Cairo,Arial,sans-serif;font-size:9px;font-weight:675;color:#354c55;direction:rtl;text-align:left;vertical-align:middle;border-top:1px solid #c8d7dc;padding-top:1.35mm}
}
@media print{
 body.voucher-print-document{page:voucher}
 body.voucher-print-document .print-voucher-clone.voucher-paged-print.modern-voucher{min-height:0!important;padding-bottom:0!important;overflow:visible!important}
 body.voucher-print-document .print-voucher-clone.voucher-paged-print>.mv-footer{display:none!important}
}


/* V2.5.0-prestable.6 — paged voucher density follows the real A4 clone, not screen preview pixels. */
@media print{
 body.voucher-print-document .print-voucher-clone.voucher-paged-print .mv-doc-table th,
 body.voucher-print-document .print-voucher-clone.voucher-paged-print .mv-doc-table td{padding-block:.9mm!important}
 body.voucher-print-document .print-voucher-clone.voucher-paged-print .mv-terms-block .v-terms{line-height:1.34!important}
 /* Terms is the last block and the most likely to straddle a page break. orphans/widows were 1, which
  * is the CSS no-op value — it explicitly permits a single stranded line, so the heading could sit
  * alone at a page foot with one line of text. 3 keeps a readable fragment together on either side,
  * and break-after:avoid on the title keeps the heading attached to the first lines that follow it. */
 body.voucher-print-document .print-voucher-clone.voucher-paged-print .mv-terms-block{margin-top:3.4mm!important;break-inside:auto}
 body.voucher-print-document .print-voucher-clone.voucher-paged-print .mv-terms-block .v-terms-title{padding-bottom:.7mm!important;break-after:avoid!important;page-break-after:avoid!important}
 body.voucher-print-document .print-voucher-clone.voucher-paged-print .mv-terms-block .v-terms{padding-top:.8mm!important;orphans:3!important;widows:3!important}
}


/* V2.5.0-prestable.10 — preserve voucher row integrity while reclaiming first-page decorative space at the A4 fragmentation boundary. */
@media print{body.voucher-print-document .print-voucher-clone.voucher-paged-print.modern-voucher::before{margin-bottom:1mm!important}}

/* V2.5.0-prestable.12 — voucher branding-only polish; pagination rules remain frozen */
@media print{
 body.voucher-print-document .print-voucher-clone.modern-voucher::before{display:none!important;content:none!important;margin:0!important;height:0!important}
 body.voucher-print-document .mv-brand img{width:27.5mm!important;height:13.8mm!important;object-fit:contain!important}
 body.voucher-print-document .mv-brand-copy h1,body.voucher-print-document .mv-brand-copy #vCompany{font-size:14.1px!important;font-weight:800!important}
}
/* V1.1 statement semantic balance refinement: keep descriptions RTL-natural. */
.party-statement-table th:nth-child(1),.party-statement-table td:nth-child(1),
.party-statement-table th:nth-child(2),.party-statement-table td:nth-child(2),
.party-statement-table th:nth-child(3),.party-statement-table td:nth-child(3),
.party-statement-table th:nth-child(5),.party-statement-table td:nth-child(5),
.party-statement-table th:nth-child(6),.party-statement-table td:nth-child(6),
.party-statement-table th:nth-child(7),.party-statement-table td:nth-child(7){text-align:center;vertical-align:middle}
.party-statement-table th:nth-child(4),.party-statement-table td:nth-child(4){text-align:right;vertical-align:middle}

/* ===== Voucher print readability (Items 1 · 5 · 6 · 75) =====
 * Judged on the printed A4 page, not on the preview. The secondary lines of the voucher — passenger
 * facts, flight facts, the hotel stay line, the transit pill — printed at 7.8–8.6px (about 6pt),
 * which is below what a traveller reads comfortably at arm's length. They move up by roughly half
 * a point and their labels go from the light secondary grey to the body text colour; headings and
 * the page box are untouched, so the document keeps its density instead of growing a page. */
body.voucher-print-document .mv-passenger-summary{font-size:9.2px!important}
body.voucher-print-document .mv-traveler-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:1.3mm 1.6mm!important}
body.voucher-print-document .mv-traveler-item{display:grid!important;gap:.25mm!important;align-content:start;padding:1.2mm 1.7mm!important;break-inside:avoid;page-break-inside:avoid}
body.voucher-print-document .mv-traveler-item>b{font-size:10.4px!important;line-height:1.4;overflow-wrap:anywhere}
body.voucher-print-document .mv-traveler-facts{margin:0;display:grid;gap:.15mm;font-size:9.2px!important;line-height:1.45;color:var(--ui-text);min-width:0}
body.voucher-print-document .mv-traveler-facts>span{display:block;min-width:0;overflow-wrap:anywhere;font-size:9.2px!important;color:var(--ui-text)}
body.voucher-print-document .mv-traveler-facts em{font-style:normal;color:var(--ui-text-secondary)}
body.voucher-print-document .mv-traveler-facts bdi{font-weight:700;direction:ltr;unicode-bidi:isolate}
body.voucher-print-document .mv-traveler-facts .mv-traveler-type{font-weight:800;color:var(--ui-heading)}
body.voucher-print-document .mv-tag{font-size:8.4px}
body.voucher-print-document .mv-transit-row>b,body.voucher-print-document .mv-transit-row span{font-size:8.9px}
body.voucher-print-document .mv-flight-facts>span{font-size:9.1px}
body.voucher-print-document .mv-flight-facts small{font-size:8.5px;color:var(--ui-text)}
body.voucher-print-document .mv-hotel-id>b{font-size:10.4px}
body.voucher-print-document .mv-hotel-id>small{font-size:9px;color:var(--ui-text)}
body.voucher-print-document .mv-hotel-stay{font-size:9.3px;gap:.5mm 3mm}
body.voucher-print-document .mv-hotel-stay .mv-hotel-dates em,body.voucher-print-document .mv-hotel-stay .mv-hotel-fact em{font-style:normal;font-size:8.5px;font-weight:700;color:var(--ui-text-secondary)}
body.voucher-print-document .mv-hotel-stay .mv-hotel-fact{display:inline-flex;align-items:baseline;gap:.8mm;white-space:nowrap}
body.voucher-print-document .mv-hotel-stay .mv-hotel-fact b{font-weight:800}
body.voucher-print-document .mv-hotel-rooms span{font-size:8.8px}
/* voucher: «تمت الطباعة بواسطة نظام Toura System» beside the issue date (Online, Phase 4 / Round 5) — small, muted, once */
.mv-printed-by{display:block;margin:0 0 3px;font-size:8.5px;font-weight:400;color:#6b777e;white-space:nowrap}
.mv-printed-by[hidden]{display:none}
/* voucher flight card (final owner corrections): labelled 12-hour time, quieter extras row */
body.voucher-print-document .mv-flight-airport>b.mv-clock{direction:rtl;display:grid;gap:0;justify-items:center}
body.voucher-print-document .mv-clock>em{font-style:normal;font-size:7.4px;font-weight:600;color:var(--ui-text-secondary);line-height:1.2}
body.voucher-print-document .mv-flight-extras{border-top-style:dotted}
body.voucher-print-document .mv-flight-extras>span{font-size:8px}

/* A10 adaptive passenger cards (Online voucher): four to a row when every name is short, three otherwise; two compact lines */
body.voucher-print-document .mv-traveler-grid[data-density="4"]{grid-template-columns:repeat(4,minmax(0,1fr))!important}
body.voucher-print-document .mv-traveler-grid[data-density="3"]{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body.voucher-print-document .mv-traveler-grid[data-density] .mv-traveler-item>b{overflow-wrap:normal;word-break:normal;line-height:1.35}
body.voucher-print-document .mv-traveler-compact{display:grid;gap:.2em;margin:0}
body.voucher-print-document .mv-traveler-compact>span{display:block;line-height:1.45}
/* A11 the office logo a little larger and crisp: its own uploaded image, contained, never upscaled past its box */
body.voucher-print-document .mv-brand img{width:34mm!important;height:17mm!important;object-fit:contain!important;image-rendering:auto}
/* A16 the hotel timing note in print: small, under the stay (or once under all stays) */
body.voucher-print-document .mv-hotel-note{margin:.6mm 0 0;font-size:7.8px;color:#4a5b62;line-height:1.45}
body.voucher-print-document .mv-hotel-note-shared{margin-top:1.2mm;padding:.6mm 1.6mm;border-inline-start:.6mm solid #c9d3d8}
/* POST-ASSISTANT MICRO CORRECTIONS (Online voucher print, body.online-print) - readable on economy / grayscale printers and
   paginated by logical block. Offline keeps its approved rules. */
@page voucherOnline{
 size:A4;
 margin:9mm 10mm 12.25mm;
 @bottom-right{content:var(--voucher-footer-contact,'');white-space:pre-line;font-family:Cairo,Arial,sans-serif;font-size:9.1px;font-weight:675;color:#354c55;direction:rtl;text-align:right;vertical-align:middle;border-top:1px solid #b9cbd1;padding-top:1.35mm}
 @bottom-center{content:var(--voucher-footer-thanks,'') var(--voucher-footer-social-content,'');white-space:pre-line;font-family:Cairo,Arial,sans-serif;font-size:9.1px;font-weight:675;line-height:1.36;color:#354c55;direction:rtl;text-align:center;vertical-align:middle;border-top:1px solid #b9cbd1;padding-top:1.35mm}
 @bottom-left{content:'صفحة ' counter(page) ' من ' counter(pages);font-family:Cairo,Arial,sans-serif;font-size:9px;font-weight:675;color:#354c55;direction:rtl;text-align:left;vertical-align:middle;border-top:1px solid #b9cbd1;padding-top:1.35mm}
}
/* one safe top margin on every page (9mm, clear of printers' unprintable edge): a continued page never starts at the edge, and
   the on-screen paged preview - which reads this same @page - shows exactly the paper */
@media print{
 body.voucher-print-document.online-print{page:voucherOnline}
 /* type a step larger where the trip is read: flights, hotels, services, notes */
 body.voucher-print-document.online-print .mv-flight-card-head>b{font-size:10.2px}
 body.voucher-print-document.online-print .mv-flight-facts>span{font-size:9.8px}
 body.voucher-print-document.online-print .mv-flight-facts small,body.voucher-print-document.online-print .mv-flight-airport small{font-size:9px}
 body.voucher-print-document.online-print .mv-flight-note,body.voucher-print-document.online-print .mv-flight-extras>span{font-size:9px}
 body.voucher-print-document.online-print .mv-hotel-id>b{font-size:11px}
 body.voucher-print-document.online-print .mv-hotel-id>small{font-size:9.5px}
 body.voucher-print-document.online-print .mv-hotel-stay{font-size:9.9px}
 body.voucher-print-document.online-print .mv-hotel-stay .mv-hotel-dates em,body.voucher-print-document.online-print .mv-hotel-stay .mv-hotel-fact em{font-size:9px}
 body.voucher-print-document.online-print .mv-hotel-rooms span{font-size:9.4px}
 body.voucher-print-document.online-print .mv-hotel-note{font-size:9px}
 body.voucher-print-document.online-print .mv-service-rows>div{font-size:9.6px}
 body.voucher-print-document.online-print .mv-service-card>b{font-size:10px}
 /* structure that survives low ink: a mid-grey line, never black */
 body.voucher-print-document.online-print .mv-flight-card,body.voucher-print-document.online-print .mv-hotel-card,body.voucher-print-document.online-print .mv-service-rows>div,body.voucher-print-document.online-print .mv-traveler-item{border-color:#9fb3bb!important}
 body.voucher-print-document.online-print .mv-section-head,body.voucher-print-document.online-print .mv-flight-card-head,body.voucher-print-document.online-print .mv-header{border-bottom-color:#9fb3bb!important}
 body.voucher-print-document.online-print .mv-doc-table th,body.voucher-print-document.online-print .mv-doc-table td{border-color:#a9bcc3!important}
 /* one logical block is never split: a flight, a hotel, a service (tour / transfer / other), a passenger card, a note */
 body.voucher-print-document.online-print :is(.mv-flight-card,.mv-hotel-card,.mv-service-card,.mv-service-rows>div,.mv-traveler-item,.mv-hotel-note,.mv-flight-note){break-inside:avoid;page-break-inside:avoid}
 /* a section heading never stays alone at the foot of a page; the sections themselves may continue on the next page */
 body.voucher-print-document.online-print .mv-section-head{break-after:avoid;page-break-after:avoid}
 body.voucher-print-document.online-print .mv-section{break-inside:auto;page-break-inside:auto}
 body.voucher-print-document.online-print .mv-traveler-kind{font-weight:800}
 /* FINAL ACCEPTANCE §10.7: the notes and the terms a step darker on paper */
 body.voucher-print-document.online-print .mv-note-box{color:#26363d}
 body.voucher-print-document.online-print .v-terms{color:#33454c}
}
/* FINAL ACCEPTANCE §10.5 - the office's English name under its Arabic name on the voucher (the element exists Online only) */
.mv-company-en{margin:1px 0 2px;font-size:11.5px;font-weight:700;color:#3f5158;line-height:1.3;text-align:right;unicode-bidi:isolate;letter-spacing:.01em}
.mv-company-en[hidden]{display:none}
/* PRE-MERGE (owner) - print text contrast: the notes (general, flight, hotel, service), the terms, «تمت الطباعة بواسطة نظام Toura System»
   and «تاريخ الإصدار» with its date one step darker on paper and in the preview (the print document) - colour only: sizes, weights,
   positions and text unchanged */
body.voucher-print-document.online-print .mv-note-box,body.voucher-print-document.online-print .v-terms.mv-note-box{color:#1f2d33}
body.voucher-print-document.online-print .v-terms,body.voucher-print-document.online-print .mv-terms-block .v-terms{color:#2a3b42}
body.voucher-print-document.online-print .mv-flight-note{color:#22323a}
body.voucher-print-document.online-print .mv-hotel-note{color:#34454c}
body.voucher-print-document.online-print .mv-service-card span,body.voucher-print-document.online-print .mv-service-card bdi{color:#2a3b42}
body.voucher-print-document.online-print .mv-printed-by{color:#4c5a61}
body.voucher-print-document.online-print .mv-issue-date,body.voucher-print-document.online-print .mv-issue-date span{color:#4c5a61}
body.voucher-print-document.online-print .mv-issue-date b{color:#1f2d33}
/* operational UX round: the voucher's office logo by its own proportions (never upscaled), a wide logo up to 44 mm */
body.voucher-print-document.online-print .mv-brand img{width:auto!important;height:auto!important;max-width:44mm!important;max-height:18mm!important;object-fit:contain!important}
/* VOUCHER ADDENDUM (owner, Online): the terms as a numbered list - readable size and spacing, natural page breaks, RTL numbers at the
   start; a text already numbered by the office keeps its own numbers. The time-zone note: small and muted under the duration. */
body.voucher-print-document.online-print .v-terms{white-space:normal!important;font-size:9.4px!important;line-height:1.55!important}
body.voucher-print-document.online-print .mv-terms-list{margin:0;padding:0 5.2mm 0 0;display:grid;gap:.9mm}
body.voucher-print-document.online-print .mv-terms-list>li{padding-inline-start:.6mm;break-inside:avoid;page-break-inside:avoid}
body.voucher-print-document.online-print .mv-terms-list>li::marker{font-weight:700;color:#1f2d33}
body.voucher-print-document.online-print .mv-terms-list.is-manual{list-style:none;padding:0}
body.voucher-print-document.online-print .mv-terms-list ul{margin:.4mm 0 0;padding:0 4mm 0 0;list-style:disc;display:grid;gap:.4mm}
body.voucher-print-document .mv-tz-note{flex-basis:100%;font-size:7.4px;line-height:1.35;color:#5b6b72;font-weight:400}
