@page { size: A4; margin: 16mm; }
html, body.classroom { background: #fff; font-size: 11pt; min-height: 0; }
body.course-ready { padding-bottom: 0; }
.course-header, .lesson-nav, .skip-link, .media-toggle { display: none !important; }
.lesson { width: 100%; margin: 0; }
.reading-content > section, .course-ready .reading-content > section, .reading-content > section[hidden] { display: block !important; min-height: 0; padding: 0; }
.course-ready .lesson-image img { max-height: none; }
.reading-content > section + section { break-before: page; }
.section-copy { margin-bottom: 10mm; }
.section-copy h2 { font-size: 27pt; }
.lead { font-size: 12pt; }
.detection-example { max-width: 165mm; }
.detection-example figcaption { font-size: 11pt; }
.lesson-image--wide { max-width: 165mm; }
.lesson-image--medium { max-width: 130mm; }
.lesson-image figcaption { font-size: 10pt; }
.question-layout { grid-template-columns: 1fr; gap: 8mm; margin: 0; }
.question-layout .figure-media { max-width: 65mm; margin: 0 auto; }
.quiz-box legend { font-size: 13pt; }
.quiz-option { font-size: 11pt; padding: 4mm 2mm; }
.quiz-status { min-height: 0; margin: 0; }
.iou-lab { grid-template-columns: 1.2fr 1fr; gap: 8mm; }
.iou-controls { display: block; }
.iou-stage { padding: 3mm; }
.iou-score strong { font-size: 52pt; }
.iou-message { margin: 3mm 0; font-size: 11pt; text-align: left; }
.iou-controls input, .iou-controls label, .range-ends { display: none; }
.practice-path { margin: 14mm auto 10mm; }
.practice-path li { font-size: 13pt; }
.outcome-flow { max-width: 100%; }
.outcome-flow div { min-height: 0; padding: 6mm; }
.evaluation-list { max-width: 100%; }
.evolution-line { max-width: 100%; }
.print-detail { display: block; margin-top: 12mm; color: var(--color-text-muted); font-size: 11pt; line-height: 1.6; }
.print-detail p { margin: 0; }

/* Laboratorios en papel: se conserva el ejemplo y su lectura; desaparecen los controles. */
.lab-layout { grid-template-columns: 1.15fr 1fr; gap: 8mm; margin: 6mm 0 0; }
.lab-layout--wide { grid-template-columns: 1.3fr 1fr; }
.lab-stage { padding: 3mm; background: #f7fbfd; }
.lab-stage svg { max-height: none; }
.lab-note { margin-top: 3mm; font-size: 9pt; }
.lab-readout label, .lab-readout input[type="range"], .prompt-modes { display: none; }
.prompt-dot.is-empty { display: none; }
.lab-message { min-height: 0; margin: 4mm 0 0; font-size: 11pt; }
.metric-pair { gap: 6mm; }
.metric strong { font-size: 30pt; }
.metric span { font-size: 10pt; }
.metric-counts { margin-top: 4mm; font-size: 10pt; }
.candidate-list { gap: 4mm; margin-bottom: 0; }
.candidate { font-size: 10pt; }
.candidate-track { height: 4px; }

/* Diapositivas fieles al PDF: cada sección debe caber en su A4 sin recortar contenido. */
.slide-lead { margin-bottom: 6mm; font-size: 10.5pt; line-height: 1.5; }
.slide-prose p, .slide-prose li { font-size: 10.5pt; line-height: 1.5; }
.slide-prose > * { margin-bottom: 3mm; }
.slide-prose li { margin-bottom: 1.5mm; }
.slide-subtitle { margin: 6mm auto 3mm; font-size: 13pt; }
.slide-split { grid-template-columns: 1.05fr .95fr; gap: 8mm; align-items: start; }
.note-grid { gap: 5mm 7mm; }
.note-grid h3 { font-size: 11pt; }
.note-grid p, .note-grid ul { font-size: 10pt; line-height: 1.45; }
.stage-list { gap: 3mm; }
.stage-list--columns { gap: 5mm 7mm; }
.stage-list h3 { font-size: 10.5pt; }
.stage-list p { margin-top: 1.5mm; font-size: 10pt; line-height: 1.4; }
.formula { margin: 3mm 0; font-size: 11pt; }
.slide-split .figure-media img { max-height: 78mm; object-fit: contain; }
.note-grid figure img { max-height: 46mm; object-fit: contain; }
.iou-score strong { font-size: 34pt; }
.iou-stage svg { max-height: 50mm; }
.iou-message { margin: 2mm 0; }
.slide-callout { margin-top: 5mm; padding: 4mm 5mm; font-size: 10pt; line-height: 1.5; }
.lab-layout--even { grid-template-columns: 1fr 1fr; gap: 8mm; }
.field select { min-height: 0; padding: 2mm 3mm; font-size: 10pt; }
.field label { font-size: 9.5pt; }
.verdict { margin-bottom: 3mm; font-size: 16pt; }
.lab-disclaimer { margin-top: 4mm; font-size: 9pt; }
.compare-media { max-width: 150mm; }
.compare-stage { --compare-x: 50% !important; cursor: default; }
.compare-stage img { max-height: 90mm; object-fit: cover; object-position: left top; }
.compare-controls { display: none; }
.compare-tag { bottom: 3mm; padding: 1mm 3mm; font-size: 8pt; }
.compare-media figcaption { margin-top: 4mm; font-size: 9.5pt; }
.candidate-box.is-suppressed rect { opacity: .7; }
.copy-button, .model-filters, .chooser-status { display: none !important; }
.code-sample[data-copy] { padding-top: 6mm; }
.checklist li { padding: 3mm 0; }
.checklist strong { font-size: 11pt; }
.checklist span { font-size: 10pt; }
.calc-layout { grid-template-columns: 1fr 1fr; gap: 8mm; }
.calc-figure strong { font-size: 20pt; }
.chooser-result { padding: 4mm 5mm; }
.chooser-result[hidden] { display: block !important; }
.chooser-questions label { padding: 1mm 0; }
.model-rows > div { padding: 2.5mm 0; font-size: 10pt; }

/* La animacion de entrada arranca en opacity .35 y el PDF la congela ahi:
   en papel no hay entrada, asi que se desactiva y las paginas salen a plena opacidad. */
.course-ready .reading-content > section, .reading-content > section { animation: none !important; opacity: 1 !important; transform: none !important; }

/* Nitidez en papel: ninguna imagen se estira por encima de la resolucion que tiene.
   A 96 px por pulgada de CSS, 1 mm son 3,78 px; a 140 dpi hacen falta 5,5 px por mm. */
.compare-media { max-width: 130mm; }
.compare-stage { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; border: 0; box-shadow: none; overflow: visible; }
.compare-stage img { max-height: 70mm; object-fit: contain; border: 1px solid var(--color-line); border-radius: var(--radius-media); }
.compare-overlay { position: static; order: -1; clip-path: none; }
.compare-line { display: none; }
.compare-tag { bottom: -1mm; }
.scene-picker { display: none; }
.scene-note { margin-top: 4mm; font-size: 9.5pt; }
.media-container img { max-width: 112mm; }
.detection-example img { max-width: 88mm; }
.slide-split .media-container img { max-width: 88mm; }
.lesson-image--wide { max-width: 130mm; }
.lesson-image--medium { max-width: 105mm; }
.ocr-stage { max-width: 76mm; margin: 0 auto; }
.anomaly-stage { max-width: 104mm; margin: 0 auto; }
.mode-lab .mask-prompts { display: none; }
.mode-lab .code-sample[hidden] { display: none; }
