/* Print — paper worksheets for handwritten algorithm practice. */
@page { size: A4 portrait; margin: 12mm 12mm 14mm; }
html, body { background: #fff !important; color: #111 !important; }
.chrome, .foot, .palette, .toast-rail, .skip, .rail, .pager, .wb-transport, .wb-ctl,
.stage > .view, .notes-side, .pad-bar, .pad-foot, .btn, .seg, .chip { display: none !important; }
#print-root { display: block !important; }
#print-root, #print-root * { -webkit-print-color-adjust: exact; print-color-adjust: exact; color: #111;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif; }
.sheet { page-break-after: always; break-after: page; height: 262mm; display: flex; flex-direction: column; }
.sheet:last-child { page-break-after: auto; break-after: auto; }
.sheet-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 10mm; border-bottom: 1.2pt solid #111; padding-bottom: 3mm; margin-bottom: 4mm; }
.sheet-head h1 { font-size: 15pt; font-weight: 650; letter-spacing: -0.02em; margin: 0; }
.sheet-head .sh-sub { font-size: 8.5pt; color: #555; margin-top: 1mm; }
.sheet-head .sh-right { font-size: 8pt; color: #666; text-align: right; line-height: 1.7; white-space: nowrap; }
.sheet-head .sh-right u { text-decoration: none; border-bottom: .6pt solid #bbb; display: inline-block; min-width: 26mm; }
.sheet-objectives { font-size: 8.5pt; color: #333; margin-bottom: 3mm; line-height: 1.5; }
.sheet-objectives b { font-size: 7.5pt; text-transform: uppercase; letter-spacing: .07em; color: #666; display: block; margin-bottom: 1mm; }
.cornell { flex: 1; display: grid; grid-template-columns: 48mm 1fr; grid-template-rows: 1fr 34mm; border: .8pt solid #999; }
.cornell-cues { border-right: .8pt solid #999; padding: 3mm; }
.cornell-main { padding: 3mm; }
.cornell-sum { grid-column: 1 / -1; border-top: .8pt solid #999; padding: 3mm; }
.cornell-cues .lbl, .cornell-main .lbl, .cornell-sum .lbl { font-size: 7pt; text-transform: uppercase; letter-spacing: .09em; color: #888; margin-bottom: 2mm; display: block; }
.cue-line { font-size: 8.5pt; color: #444; padding: 1.6mm 0; border-bottom: .4pt dotted #ccc; line-height: 1.35; }
.rule-area { height: 100%; background-image: repeating-linear-gradient(to bottom, transparent 0 7.4mm, #dcdcdc 7.4mm 7.45mm); }
.dot-area { height: 100%; background-image: radial-gradient(circle, #cfcfcf .35mm, transparent .35mm); background-size: 5mm 5mm; }
.frames { flex: 1; display: grid; gap: 4mm; grid-template-rows: repeat(2, 1fr); }
.frame { border: .8pt solid #999; padding: 3mm; display: flex; flex-direction: column; }
.frame .f-title { font-size: 9pt; font-weight: 600; margin-bottom: 1mm; }
.frame .f-hint { font-size: 7.5pt; color: #777; margin-bottom: 2mm; line-height: 1.4; }
.frame .f-space { flex: 1; }
/* dry-run table: trace an algorithm by hand, one row per iteration */
.dryrun { flex: 1; border: .8pt solid #999; display: flex; flex-direction: column; }
.dryrun .dr-head { display: grid; border-bottom: .8pt solid #999; background: #f4f4f4; }
.dryrun .dr-head span { font-size: 7.5pt; font-weight: 650; padding: 2mm 1.5mm; text-transform: uppercase; letter-spacing: .05em; border-right: .4pt solid #ccc; }
.dryrun .dr-row { display: grid; border-bottom: .4pt solid #ddd; min-height: 7mm; }
.dryrun .dr-row span { border-right: .4pt solid #eee; }
.recall-sheet { flex: 1; display: grid; grid-template-columns: 1fr 1fr; border: .8pt solid #999; }
.recall-sheet .rs-col { padding: 3mm; }
.recall-sheet .rs-col + .rs-col { border-left: .8pt solid #999; }
.rs-q { font-size: 8.5pt; line-height: 1.4; padding: 2.4mm 0; border-bottom: .4pt dotted #ccc; display: flex; gap: 2mm; }
.rs-q i { font-style: normal; color: #999; font-size: 7.5pt; min-width: 5mm; }
.sheet-foot { margin-top: 3mm; display: flex; justify-content: space-between; font-size: 7pt; color: #999; }
