*{box-sizing:border-box}body{margin:0;background:var(--teach-bg);color:var(--teach-ink-900);font:16px var(--teach-font)}main{max-width:1080px;margin:auto;padding:28px}a{color:var(--teach-primary)}h1{font-size:32px;margin-bottom:8px}.setup{background:white;border:1px solid var(--teach-border);border-radius:var(--teach-radius-md);padding:24px}select,button{font:inherit;padding:10px 16px;border-radius:var(--teach-radius-sm);border:1px solid var(--teach-border)}select{margin:0 0 14px 12px;max-width:80%}button{background:var(--teach-primary);border-color:var(--teach-primary);color:#fff;cursor:pointer}button:disabled{opacity:.45;cursor:default}fieldset{border:0;padding:0;margin:12px 0 20px}legend{font-weight:bold;margin-bottom:10px}#topics{display:flex;flex-wrap:wrap;gap:10px}#topics label{padding:10px;background:#f0f5ee;border-radius:8px}.toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}input{accent-color:var(--teach-primary)}#status{font-size:14px;color:#4b6257}.welcome{text-align:center;padding:60px 12px;color:#4b6257}.sheet{background:white;max-width:794px;margin:28px auto;padding:36px;border:1px solid #d7dfd5;box-shadow:0 4px 18px #20352a0a}.sheet-header{border-bottom:2px solid #243631;padding-bottom:12px}.sheet-header h2{margin:4px 0 8px;font-size:24px}.eyebrow{font-size:12px;letter-spacing:1px;text-transform:uppercase}.student{display:flex;justify-content:space-between;font-size:13px;margin-top:18px}.activity{break-inside:avoid;margin-top:22px}.activity h3{margin:0;font-size:18px}.activity p{margin:6px 0 12px;font-size:13px}.activity-tools{float:right;display:flex;gap:6px}.activity-tools button{font-size:12px;padding:4px 8px;background:white;color:var(--teach-primary)}.bank{border:1px dashed #667b70;border-radius:8px;padding:9px;font-size:14px;margin:12px 0}.pictures{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.picture img{width:100%;height:95px;object-fit:contain}.picture .line{font-size:13px}.line{border-bottom:1px solid #84948b;min-height:28px}.match{font-size:14px}.match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;margin-bottom:10px;overflow-wrap:anywhere}.question{font-size:14px;margin-bottom:12px}.question .line{margin-top:4px}.answer-sheet li{margin:12px 0;overflow-wrap:anywhere}body:not(.show-answers) .answer-sheet{display:none}.empty{padding:30px;text-align:center}@page{size:A4;margin:12mm}
@media screen and (max-width:600px){main{padding:14px}.sheet{padding:20px}.pictures{gap:8px}.match{gap:10px}.activity-tools{float:none;margin-bottom:8px}.student{gap:14px}}/* Preview and measurement use the same physical page dimensions as printing. */
.paper{width:186mm;height:271mm;margin:24px auto;padding:0;background:white;display:flex;flex-direction:column;gap:12px;box-shadow:0 4px 18px #20352a18;outline:1px solid #d7dfd5;flex:none}.paper-header{flex:none;border-bottom:2px solid #243631;padding-bottom:8px;break-inside:avoid}.paper-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.paper-title h2{font-size:19px;margin:4px 0}.paper-title>span{font-size:12px}.paper .student{margin-top:8px}.page-content{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}.paper .activity{position:relative;flex:none;margin:0;break-inside:avoid;overflow-wrap:anywhere;display:flow-root}.activity-topic{font-size:11px;color:#4b6257;margin-bottom:4px}.paper .activity h3{font-size:16px;margin:0;padding-right:140px}.paper .activity p{margin:3px 0 5px;font-size:13px}.paper .bank{padding:6px;margin:6px 0}.paper .pictures{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.paper .picture img{height:70px}.paper .question{margin-bottom:6px}.paper .activity-tools{position:absolute;top:0;right:0;float:none;margin:0}.layout-workbench{position:absolute;left:-10000px;top:0;visibility:hidden;pointer-events:none;width:186mm}.layout-workbench .answer-sheet{display:flex!important}.layout-workbench .activity-tools{visibility:hidden}.paper-header,.paper .activity{padding-left:8px;padding-right:8px}
@media screen{#preview{overflow-x:auto}}
@media screen and (max-width:600px){.paper .activity-tools{left:8px;right:auto}.paper .activity h3{padding-left:140px;padding-right:0}}
@media screen{main{max-width:980px}}
@media print{body{background:white;color:black}main{padding:0;max-width:none}#preview{overflow:visible}.controls,.activity-tools,.welcome{display:none!important}.layout-workbench{display:none!important}.paper{margin:0;box-shadow:none;outline:none;break-inside:avoid;break-after:page}.paper:last-child{break-after:auto}.paper .activity{break-inside:avoid}.paper.answer-sheet{break-before:auto}
}/* Text wrapping and sizing must be identical in measurement,preview,and print. */
.paper-header,.paper .activity,.match-row>div{min-width:0}.paper h2,.paper h3,.paper p,.paper .bank{white-space:normal;overflow-wrap:anywhere}.paper .student{flex-wrap:wrap;gap:6px 16px;line-height:1.4}.activity-number{display:inline-block;min-width:2.5ch}.compact-activity .question{margin-bottom:5px}.compact-activity .match-row{margin-bottom:6px}.stacked-activity .pictures{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Freeze the verified geometry so print pagination cannot reflow flex children. */
@media print{
 #preview .paper{break-after:auto;break-before:page}
 #preview .paper:first-child{break-before:auto}
 .paper.print-fixed{position:relative;display:block;height:var(--print-page-height)}
 .print-fixed>.paper-header,.print-fixed>.page-content{
  position:absolute;left:var(--print-left);top:var(--print-top);
  width:var(--print-width);height:var(--print-height);margin:0;min-height:0;
 }.print-fixed>.page-content{display:block}.print-fixed>.page-content>.activity{
  position:absolute;left:var(--print-left);top:var(--print-top);
  width:var(--print-width);height:var(--print-height);margin:0;
 }
}/* Picture recognition and supported frame clues. */
.image-match-strip{display: flex;justify-content: space-around;gap: 10px;margin: 8px 0;}.image-match-strip > div{flex: 1;min-width: 0;text-align: center;}.image-match-strip img{display: block;width: 100%;height: 72px;object-fit: contain;margin-bottom: 3px;}.image-match-strip b{font-size: 13px;}.image-match-words{display: flex;flex-wrap: wrap;gap: 8px 22px;font-size: 14px;margin-top: 8px;}.image-match-word{white-space: nowrap;}.illustrated-question{position: relative;padding-right: 64px;min-height: 48px;}.question-image{position: absolute;right: 0;top: 0;width: 54px;height: 46px;object-fit: contain;}

/* Short-word recall uses both halves of the sheet without shrinking handwriting space. */
.recall-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:6px}
.recall-columns .question{min-width:0;margin-bottom:0}

.picture-recall{display:grid;grid-template-columns:repeat(var(--recall-columns),minmax(0,1fr));gap:12px 24px}
.picture-recall .question{min-width:0;margin-bottom:0}
.recall-image{display:block;width:100%;height:72px;object-fit:contain;margin-bottom:4px}

.recall-clue{display:block;font-size:13px;line-height:1.4}

/* Keep worksheet setup controls in the shared screen interface; printed sheets retain their own geometry. */
@media screen{
 .setup select{min-height:var(--teach-action-height);background:#fff;color:var(--teach-ink-900)}
 .page-count-setting #page-count{min-height:var(--teach-action-height)}
 .setup button{min-height:var(--teach-action-height);border-color:var(--teach-primary)}
 .setup.has-printable-sheet #generate{background:#fff;color:var(--teach-primary)}
 .setup.has-printable-sheet #print{background:var(--teach-primary);color:#fff}
 .setup-toggle{display:flex;align-items:center;gap:8px;min-height:var(--teach-action-height);cursor:pointer}
 .setup-toggle input{flex:0 0 auto;width:19px;height:19px;accent-color:var(--teach-primary)}
 #topics label{min-height:var(--teach-action-height);display:inline-flex;align-items:center;background:#f3f6f2}
}
.page-count-setting{margin:14px 0}.page-count-setting label{display:block;margin-bottom:6px}.page-count-setting .hint{max-width:42em}.page-count-setting #page-count{display:block;width:8em;padding:8px;margin:0 0 6px}.hint{font-size:13px;color:#4b6257;margin:6px 0 12px}

@media screen{
 .paper .activity-tools button{min-height:44px;padding:8px 10px}
}
.preview-hint{display:none;margin:14px 0 -8px;color:var(--teach-ink-500);font-size:.9rem;line-height:1.4}
@media screen and (max-width:759px){.preview-hint:not([hidden]){display:block}}
