@page schedule-portrait { size: A4 portrait; margin: 0; }
@page schedule-landscape { size: A4 landscape; margin: 0; }

.schedule-print-section {
    box-sizing: border-box;
    background: #fff;
    color: #111;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}
.schedule-print-section--embedded { break-before: page; page-break-before: always; }
.schedule-print-source,
.schedule-paper-page { box-sizing: border-box; background: #fff; }
.schedule-print-section--portrait .schedule-print-source,
.schedule-paper-page--portrait { width: 210mm; min-height: 297mm; }
.schedule-print-section--landscape .schedule-print-source,
.schedule-paper-page--landscape { width: 297mm; min-height: 210mm; }
.schedule-print-source,
.schedule-paper-page { padding: 11mm 13mm 13mm; }
.schedule-paper-page--portrait { height: 297mm; page: schedule-portrait; }
.schedule-paper-page--landscape { height: 210mm; page: schedule-landscape; }
.schedule-paper-page__inner { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.schedule-paper-page__body { flex: 1 1 auto; min-height: 0; overflow: hidden; }
.schedule-print-pages { display: none; }
.schedule-is-paginated .schedule-print-source { display: none; }
.schedule-is-paginated .schedule-print-pages { display: grid; gap: 1rem; }

.schedule-page-header { flex: 0 0 auto; }
.schedule-letterhead { margin-bottom: 3mm; }
.schedule-print-header { margin: 4mm 0 5mm; text-align: center; }
.schedule-print-header__meta { position: relative; min-height: 1.1em; text-align: center; }
.schedule-print-header__eyebrow { font-size: 8.5pt; text-transform: uppercase; letter-spacing: .12em; }
.schedule-print-header__page { position: absolute; top: 0; right: 0; font-size: 8.5pt; letter-spacing: normal; text-transform: none; }
.schedule-print-header h1 { margin: 1.2mm 0; font-size: 16pt; line-height: 1.15; }
.schedule-print-header p,
.schedule-print-location { margin: 1mm 0; font-size: 10pt; }

.schedule-day { margin: 0 0 5mm; break-inside: auto; }
.schedule-day--fragment { margin-bottom: 2mm; }
.schedule-day h2,
.schedule-day--fragment h2 { margin: 0 0 1.5mm; font-size: 11.5pt; line-height: 1.2; }
.schedule-row-group + .schedule-row-group { margin-top: 2mm; }
.schedule-day__continued { margin: 0 0 1.5mm; font-size: 10pt; line-height: 1.2; }
.schedule-grid { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 8.6pt; line-height: 1.2; }
.schedule-grid th,
.schedule-grid td { border: .25mm solid #666; padding: 1.7mm 1.5mm; text-align: center; vertical-align: middle; overflow-wrap: anywhere; }
.schedule-grid thead th { background: #e9e9e9 !important; font-weight: 700; }
.schedule-grid tbody th { width: 13%; white-space: nowrap; font-weight: 600; }
.schedule-print-section--landscape .schedule-grid tbody th,
.schedule-paper-page--landscape .schedule-grid tbody th { width: 9%; }
.schedule-grid__title { font-weight: 600; }
.schedule-grid__speakers { margin-top: 1mm; font-size: .9em; font-style: italic; }
.schedule-grid__pause-row th,
.schedule-grid__pause-row td,
.schedule-grid__cell--pause { background: #e9e9e9 !important; font-weight: 600; }
.schedule-grid__cell--empty { background: #fafafa; font-weight: 500; }
.schedule-grid__cell--blank { background: #fff; }
.schedule-density--dense .schedule-grid { font-size: 7.8pt; }
.schedule-density--compact .schedule-grid { font-size: 7.1pt; }
.schedule-density--compact .schedule-grid th,
.schedule-density--compact .schedule-grid td { padding: 1.2mm 1mm; }
.schedule-footnotes { margin-top: 1.5mm; font-size: 7.5pt; }
.schedule-page-footnotes { flex: 0 0 auto; margin-top: 2mm; }
.schedule-footnote { display: flex; gap: 1.5mm; }
.schedule-footnote__marker { min-width: 5mm; font-weight: 700; }
.schedule-changes-reserved { margin: 3mm 0 0; font-size: 8pt; }
.schedule-print-empty { padding: 3mm; border: .25mm solid #aaa; font-size: 9pt; }
.schedule-preview-badge { display: inline-block; margin-left: 1rem; font-weight: 700; }
.schedule-page-break-before { break-before: page; page-break-before: always; }

.schedule-grid thead th,
.schedule-grid__pause-row th,
.schedule-grid__pause-row td,
.schedule-grid__cell--pause {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

@media screen {
    .schedule-print-source,
    .schedule-paper-page { margin: 0 auto; }
}

@media print {
    html,
    body { margin: 0; background: #fff; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .print-toolbar { display: none !important; }
    .schedule-print-section { width: auto; margin: 0; box-shadow: none; }
    .schedule-is-paginated .schedule-print-pages { display: block; }
    .schedule-paper-page { margin: 0; break-after: page; page-break-after: always; overflow: hidden; }
    .schedule-paper-page--last { break-after: auto; page-break-after: auto; }
    .schedule-grid thead { display: table-header-group; }
    .schedule-grid tr,
    .schedule-grid td,
    .schedule-grid th { break-inside: avoid; page-break-inside: avoid; }
}
