.entry-summary-page { display: flex; flex-direction: column; width: min(720px, 100%); min-height: 900px; margin: 0 auto; padding: 28px 34px 40px; background: white; color: #111; font-family: Georgia, "Times New Roman", serif; }
.entry-summary-page header { text-align: center; margin-bottom: 8px; }
.entry-summary-page h1 { margin: 0 0 4px; font-size: 1.55rem; }
.entry-summary-page h2 { margin: 0; font-size: 1.35rem; }
.entry-summary-page table { font-size: 1rem; }
.entry-summary-page th, .entry-summary-page td { padding: 5px 10px; border: 0; font-weight: 700; }
.entry-summary-page tbody tr:nth-child(even) { background: #eee; }
.entry-summary-page td { width: 130px; text-align: right; }
.entry-summary-page tfoot th { text-align: right; }
.entry-summary-page tfoot th, .entry-summary-page tfoot td { padding-top: 8px; }
.entry-summary-page > footer { margin-top: auto; padding-top: 8px; border-top: 1px solid #bbb; font-size: .78rem; font-weight: normal; }
.report-section { margin-top: 28px; }
.report-section > h2 { margin-bottom: 12px; }
.report-grid { margin-top: 0; }
.category-report { min-height: 700px; margin: 0 auto 24px; padding: 24px 28px; background: white; color: #111; font-family: Georgia, "Times New Roman", serif; }
.category-report header h1 { margin: 0 0 12px; text-align: center; font-size: 1.55rem; }
.category-report header h2 { margin: 0 0 10px; font-size: 1.25rem; }
.category-report table { font-size: .86rem; }
.category-report th, .category-report td { padding: 5px 7px; border: 0; }
.category-report tbody tr:not(.category-count):nth-child(odd) { background: #eee; }
.category-report th:nth-child(1), .category-report td:nth-child(1), .category-report th:nth-child(5), .category-report td:nth-child(5), .category-report th:nth-child(7), .category-report td:nth-child(7) { text-align: right; }
.category-report footer { margin-top: auto; padding-top: 20px; font-size: .75rem; }
.detailed-total { text-align: right; font-weight: 700; }
.timing-program-page { min-width: 1050px; padding: 24px 28px; background: white; color: #111; font-family: Georgia, "Times New Roman", serif; }
.timing-program-report { display: grid; gap: 18px; }
.timing-program-page header h1 { margin: 0 0 10px; text-align: center; font-size: 1.8rem; }
.timing-program-page header h2 { margin: 0 0 14px; padding: 8px 12px; border-top: 3px solid #263f59; border-bottom: 3px solid #263f59; color: #162b40; font-size: 1.45rem; text-align: center; }
.timing-program-page table { font-size: .78rem; }
.timing-program-page th, .timing-program-page td { padding: 5px 7px; border: 0; white-space: normal; }
.timing-program-page thead th { color: #263f59; font-size: .85rem; text-transform: uppercase; }
.timing-program-page tbody tr:not(.subclass-total):nth-child(even) { background: #eee; }
.timing-program-page .subclass-total { background: #e4e9ee; font-size: .9rem; font-weight: 800; }
.timing-program-page .subclass-total th { font-weight: 800; }
.timing-program-page td:first-child, .timing-program-page th:first-child, .timing-program-page td:nth-child(5), .timing-program-page th:nth-child(5), .timing-program-page td:nth-child(7), .timing-program-page th:nth-child(7), .timing-program-page td:nth-child(9), .timing-program-page th:nth-child(9) { text-align: right; }
.timing-program-page > footer { margin-top: 22px; font-size: .75rem; }
.ticket-report { display: grid; gap: 18px; }
.ticket-sheet { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(4, 1fr); gap: 2mm; width: 210mm; min-height: 297mm; margin: 0 auto; padding: 6mm; background: white; box-shadow: 0 4px 24px rgba(23,33,43,.12); }
.driver-ticket { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 69mm; padding: 3.2mm; overflow: hidden; border: .35mm solid #333; background: white; color: #111; font-family: Arial, Helvetica, sans-serif; }
.driver-ticket header { display: grid; grid-template-columns: minmax(0,1fr) 24mm; gap: 2mm; min-height: 13mm; }
.driver-ticket header h1 { margin: 0; overflow: hidden; font-size: 11pt; line-height: 1.12; text-overflow: clip; white-space: nowrap; }
.driver-ticket header p { margin: 1mm 0 0; overflow: hidden; font-size: 7.5pt; text-overflow: clip; white-space: nowrap; }
.driver-ticket header img { width: 24mm; height: 14mm; object-fit: contain; object-position: right top; }
.ticket-driver { margin: 1.3mm 0 1mm; overflow: hidden; font-size: 11pt; font-weight: 800; text-overflow: clip; white-space: nowrap; }
.ticket-detail { display: grid; grid-template-columns: 21mm minmax(0,1fr); gap: 2mm; margin-top: .7mm; overflow: hidden; font-size: 7.7pt; line-height: 1.2; white-space: nowrap; }
.ticket-detail strong, .ticket-detail span { overflow: hidden; text-overflow: clip; white-space: nowrap; }
.ticket-lower { display: grid; grid-template-columns: 24mm minmax(0,1fr) 9mm; align-items: end; gap: 3mm; min-height: 28mm; margin-top: auto; }
.ticket-licence { display: grid; justify-items: center; font-size: 7pt; }
.ticket-licence img { width: 24mm; height: 24mm; }
.ticket-licence strong { max-width: 24mm; overflow: hidden; text-overflow: clip; white-space: nowrap; }
.ticket-no-licence { align-self: end; padding-bottom: 4mm; font-size: 7.5pt; font-weight: 700; }
.ticket-message { align-self: stretch; max-height: 29mm; overflow: hidden; font-size: 7.2pt; line-height: 1.2; }
.ticket-punches { display: grid; gap: 1.4mm; }
.ticket-punches span { display: grid; width: 9mm; height: 9mm; place-items: center; border: .3mm solid #222; font-size: 7.5pt; font-weight: 800; }
.envelope-label-report { display: grid; gap: 18px; }
.envelope-label-sheet { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(4, 1fr); gap: 2mm; width: 210mm; min-height: 297mm; margin: 0 auto; padding: 6mm; background: white; box-shadow: 0 4px 24px rgba(23,33,43,.12); }
.envelope-label { position: relative; min-width: 0; min-height: 69mm; padding: 3.2mm; overflow: hidden; border: .35mm solid #333; background: white; color: #111; font-family: Arial, Helvetica, sans-serif; }
.envelope-label header { display: grid; grid-template-columns: 27mm minmax(0,1fr); align-items: start; gap: 3mm; min-height: 16mm; }
.envelope-label header img { width: 27mm; height: 16mm; object-fit: contain; object-position: left top; }
.envelope-label header h1 { margin: 1mm 0 0; overflow: hidden; font-size: 11pt; line-height: 1.1; text-overflow: clip; white-space: nowrap; }
.envelope-label header p { margin: 1mm 0 0; overflow: hidden; font-size: 7.5pt; text-overflow: clip; white-space: nowrap; }
.envelope-driver { margin: 1.5mm 0 1mm; overflow: hidden; font-size: 11pt; font-weight: 800; text-overflow: clip; white-space: nowrap; }
.envelope-value { overflow: hidden; font-size: 8pt; text-overflow: clip; white-space: nowrap; }
.envelope-row { display: grid; grid-template-columns: 27mm minmax(0,1fr); gap: 2mm; margin-top: 1.5mm; overflow: hidden; font-size: 8pt; line-height: 1.15; white-space: nowrap; }
.envelope-row strong, .envelope-row span { overflow: hidden; text-overflow: clip; white-space: nowrap; }
.envelope-licence { position: absolute; right: 3.2mm; bottom: 2.4mm; display: grid; justify-items: center; font-size: 7pt; }
.envelope-licence img { width: 24mm; height: 24mm; }
.envelope-licence strong { max-width: 28mm; overflow: hidden; text-overflow: clip; white-space: nowrap; }
.envelope-no-licence { position: absolute; right: 3.2mm; bottom: 5mm; font-size: 7pt; font-weight: 700; }
.tender-pass-report { display: grid; gap: 18px; }
.tender-pass-sheet { display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(4, 1fr); gap: 2mm; width: 210mm; min-height: 297mm; margin: 0 auto; padding: 6mm; background: white; box-shadow: 0 4px 24px rgba(23,33,43,.12); }
.tender-pass { min-width: 0; min-height: 69mm; padding: 2mm; overflow: hidden; border: .35mm solid #138a3e; background: #1daf4b; color: #111; font-family: Arial, Helvetica, sans-serif; }
.tender-pass header { display: grid; grid-template-columns: 27mm minmax(0,1fr); align-items: center; gap: 2mm; height: 16mm; }
.tender-logo { display: grid; width: 27mm; height: 14mm; place-items: center; background: white; }
.tender-logo img { max-width: 25mm; max-height: 13mm; object-fit: contain; }
.tender-pass header h1 { margin: 0; overflow: hidden; color: #fff200; font-family: Georgia, "Times New Roman", serif; font-size: 10.5pt; line-height: 1.05; text-align: center; text-overflow: clip; white-space: nowrap; }
.tender-pass header p { margin: .8mm 0 0; overflow: hidden; color: #fff200; font-family: Georgia, "Times New Roman", serif; font-size: 7.5pt; font-weight: 700; text-align: center; text-overflow: clip; white-space: nowrap; }
.tender-pass-title { height: 7mm; margin: 1mm 5mm; padding-top: 1mm; overflow: hidden; background: #3b3b3b; color: white; font-size: 10pt; font-weight: 800; text-align: center; white-space: nowrap; }
.tender-pass-body { position: relative; min-height: 39mm; margin: 0 4mm; padding: 2mm; overflow: hidden; background: #fff200; }
.tender-pass-details { display: grid; gap: 1.8mm; padding-right: 24mm; }
.tender-pass-details > div { display: grid; grid-template-columns: 17mm minmax(0,1fr); gap: 2mm; overflow: hidden; font-family: Georgia, "Times New Roman", serif; font-size: 8.5pt; white-space: nowrap; }
.tender-pass-details strong, .tender-pass-details span { overflow: hidden; text-overflow: clip; white-space: nowrap; }
.tender-pass-qr { position: absolute; right: 2mm; bottom: 1mm; display: grid; justify-items: center; font-size: 6.5pt; }
.tender-pass-qr img { width: 21mm; height: 21mm; }
.tender-pass-no-licence { position: absolute; right: 2mm; bottom: 2mm; max-width: 22mm; font-size: 6.5pt; font-weight: 700; text-align: right; }
@media print {
  .entry-summary-page { width: 100%; padding: 0; }
  .entry-summary-page tbody tr:nth-child(even) { background: #eee !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .category-report { display: flex; flex-direction: column; min-height: 180mm; margin: 0; padding: 0; break-before: page; page-break-before: always; }
  .category-report:first-child { break-before: auto; page-break-before: auto; }
  .category-report tbody tr:not(.category-count):nth-child(odd) { background: #eee !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .category-report thead { display: table-header-group; }
  .timing-program-page { min-width: 0; padding: 0; }
  .timing-program-class { break-before: page; page-break-before: always; page: timing-program; }
  .timing-program-class:first-child { break-before: auto; page-break-before: auto; }
  .timing-program-page thead { display: table-header-group; }
  .timing-program-page tbody tr:not(.subclass-total):nth-child(even), .timing-program-page .subclass-total, .timing-program-page header h2 { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .timing-program-page tr { break-inside: avoid; page-break-inside: avoid; }
  @page timing-program { size: A4 landscape; margin: 12mm; }
  @page { size: A4 portrait; margin: 0; }
  .ticket-report { display: block; }
  .ticket-sheet { width: 210mm; height: 297mm; min-height: 297mm; margin: 0; padding: 6mm; box-shadow: none; break-after: page; page-break-after: always; }
  .ticket-sheet:last-child { break-after: auto; page-break-after: auto; }
  .envelope-label-report { display: block; }
  .envelope-label-sheet { width: 210mm; height: 297mm; min-height: 297mm; margin: 0; padding: 6mm; box-shadow: none; break-after: page; page-break-after: always; }
  .envelope-label-sheet:last-child { break-after: auto; page-break-after: auto; }
  .tender-pass-report { display: block; }
  .tender-pass-sheet { width: 210mm; height: 297mm; min-height: 297mm; margin: 0; padding: 6mm; box-shadow: none; break-after: page; page-break-after: always; }
  .tender-pass-sheet:last-child { break-after: auto; page-break-after: auto; }
  .tender-pass, .tender-pass-title, .tender-pass-body { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
