/* ===== Printable A4 pages (worksheet + essay report) ===== */
.doc{--pm:13mm;--tf:'Fraunces',Georgia,serif;--bf:'Noto Sans KR',sans-serif;--main:#003C70;--soft:#E6F1FA;
  --words:#0F8B7E;--read:#2F6DB5;--think:#6B4FBB;--check:#E0573A;--essay:#D98A0B;--key:#3D4A5C;
  font-family:var(--bf);color:#1E2533;font-size:10.5pt;line-height:1.5}
.page{-webkit-print-color-adjust:exact;print-color-adjust:exact;width:210mm;height:297mm;background:#fff;margin:0 auto 18px;box-shadow:0 4px 18px #0000001f;padding:var(--pm) calc(var(--pm) + 2mm);display:flex;flex-direction:column;position:relative;overflow:hidden;--cc:var(--main)}
.page *{box-sizing:border-box}
.pbody{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:3.2mm}
.pbody>*{flex-shrink:0}
.pf{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #E3E7EE;padding-top:2mm;margin-top:2mm;font-size:7.5pt;color:#9AA3B2}
.pf .pn{background:var(--soft);color:var(--main);font-weight:800;border-radius:99px;padding:0 7px}
.pf .acad{display:flex;align-items:center;gap:5px;font-weight:700;color:#6B7486}
.pf .acad img{height:13px}
.c-words{--cc:var(--words)}.c-read{--cc:var(--read)}.c-think{--cc:var(--think)}.c-check{--cc:var(--check)}.c-essay{--cc:var(--essay)}.c-key{--cc:var(--key)}

/* section header */
.sh{display:flex;align-items:center;gap:3mm;border-bottom:2px solid var(--cc);padding-bottom:2mm;margin-bottom:3mm}
.sh .tag{background:var(--cc);color:#fff;font-weight:800;font-size:7.5pt;letter-spacing:1px;border-radius:99px;padding:1mm 3mm;text-transform:uppercase}
.sh h2{margin:0;font-family:var(--tf);font-size:15pt;font-weight:800;color:#1E2533;letter-spacing:-.2px}
.sh .src{margin-left:auto;font-size:7.5pt;color:var(--cc);font-weight:700;max-width:45%;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-line .sh .tag{background:#fff;color:var(--cc);border:1.3px solid var(--cc)}
.hs-soft .sh{background:color-mix(in srgb,var(--cc) 10%,#fff);border:0;border-radius:3mm;padding:2.4mm 3mm}
.instr{display:flex;align-items:center;gap:3mm;margin-bottom:1mm}
.instr .mas{width:10mm;height:10mm;border-radius:50%;border:1.3px solid var(--cc);display:grid;place-items:center;font-size:14pt;flex-shrink:0;background:#fff}
.instr .bub{flex:1;background:color-mix(in srgb,var(--cc) 10%,#fff);border-radius:3mm;padding:2mm 3.5mm;font-size:9pt}
.instr .bub small{color:#6B7486}
.no-mascot .instr .mas{display:none}

/* generic */
.box{border:1px solid #E1E6EE;border-radius:3mm;padding:3mm 3.5mm}
.box-t{font-weight:800;color:var(--cc);font-size:9.5pt;margin-bottom:1.5mm;display:flex;align-items:center;gap:1.5mm}
.wl{border-bottom:1px solid #C9D3E0;height:8.5mm}
.wl.sm{height:7mm}
.lines{display:flex;flex-direction:column}
.mini{font-size:8pt;color:#6B7486}
.hl{background:color-mix(in srgb,var(--cc) 18%,#fff);border-radius:1mm;padding:0 .6mm;font-weight:700}
.ans{color:#D9443A;font-weight:700}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:3mm}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:2.4mm}

/* cover */
.cover-banner{background:linear-gradient(120deg,var(--main),color-mix(in srgb,var(--main) 55%,#3FCFF6));color:#fff;border-radius:5mm;padding:7mm 8mm;display:flex;align-items:center;gap:5mm;min-height:42mm}
.cover-banner .eb{font-size:7.5pt;letter-spacing:1.6px;font-weight:800;opacity:.85}
.cover-banner h1{font-family:var(--tf);font-size:24pt;line-height:1.12;margin:2mm 0 2.5mm;font-weight:800}
.cover-banner .cv-sub{font-size:9pt;opacity:.9}
.cover-banner .em{font-size:44pt;margin-left:auto;filter:drop-shadow(0 2mm 2mm #0003)}
.who{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6mm;margin:5mm 0 3mm}
.who div{border-bottom:1px solid #9AA3B2;font-size:8pt;color:#6B7486;padding-bottom:5mm}
.contents h3{font-family:var(--tf);font-size:14pt;margin:3mm 0 2mm}
.ct-cat{font-size:7.5pt;font-weight:800;letter-spacing:1.5px;color:var(--cc);border-bottom:1.6px solid var(--cc);padding:2.5mm 0 1mm;margin-bottom:1mm;text-transform:uppercase}
.ct-row{display:flex;align-items:baseline;gap:2mm;font-size:9.5pt;padding:.9mm 0}
.ct-row i{font-style:normal;color:var(--cc);font-weight:800;width:6mm}
.ct-row b{font-weight:700}
.ct-row .dots{flex:1;border-bottom:1px dotted #B7BFCC;transform:translateY(-1mm)}
.ct-row .pg{font-weight:700;color:#4A5468}
.cover-foot{margin-top:auto;display:flex;align-items:center;gap:3mm;border-top:1px solid #E3E7EE;padding-top:3mm}
.cover-foot img{height:12mm;width:12mm;object-fit:contain}
.cover-foot b{display:block;font-size:11pt}
.cover-foot span{font-size:8.5pt;color:#6B7486}

/* passage */
.passage{font-size:11pt;line-height:1.85;font-family:'Merriweather',Georgia,serif;font-weight:400}
.passage p{margin:0 0 3mm;position:relative;padding-left:8mm;text-align:justify}
.passage p .pnum{position:absolute;left:0;top:.5mm;width:5.5mm;height:5.5mm;border-radius:50%;background:var(--cc);color:#fff;font:800 7.5pt var(--bf);display:grid;place-items:center}
.passage .ptitle{font-family:var(--tf);font-size:16pt;font-weight:800;text-align:center;margin:1mm 0 4mm}

/* vocab */
.vt{width:100%;border-collapse:separate;border-spacing:0 .8mm;font-size:9pt;table-layout:fixed}
.pbody>table.vt+table.vt{margin-top:-3.2mm}
.vt th{background:var(--cc);color:#fff;font-size:7.5pt;text-align:left;padding:2.2mm 2mm}
.vt th:first-child{border-radius:2mm 0 0 2mm}.vt th:last-child{border-radius:0 2mm 2mm 0;text-align:center}
.vt td{background:#F6F8FB;padding:1.7mm 2mm;vertical-align:middle}
.vt td.n{color:#9AA3B2;width:7mm;text-align:center}
.vt td.w{font-weight:800;width:30mm}
.vt td.p{color:var(--cc);font-weight:700;width:9mm}
.vt td.k{width:30mm}
.vt td.c{width:7mm;text-align:center}
.vt td.c span{display:inline-block;width:3.2mm;height:3.2mm;border:1px solid #9AA3B2;border-radius:.6mm}
.vt .ex{display:block;color:#6B7486;font-size:8pt;font-style:italic;margin-top:.6mm}

/* word check */
.partlab{font-weight:800;color:var(--cc);font-size:9.5pt;margin:1mm 0 2mm}
.match{display:grid;grid-template-columns:42mm 1fr;gap:1.6mm 5mm;font-size:9.5pt;align-items:center}
.match .mw{display:flex;align-items:center;gap:2mm;font-weight:700}
.match .mw .bx{width:7mm;height:6.5mm;border:1.2px solid var(--cc);border-radius:1.5mm;flex-shrink:0}
.match .md{display:flex;gap:2mm}
.match .md b{color:var(--cc)}
.bank{display:flex;flex-wrap:wrap;gap:2mm;border:1.3px dashed var(--cc);border-radius:3mm;padding:2.5mm;margin-bottom:2mm}
.bank span{background:color-mix(in srgb,var(--cc) 12%,#fff);border-radius:99px;padding:.6mm 3mm;font-weight:700;font-size:9pt}
.fill{font-size:9.8pt;line-height:2;margin:0;padding-left:5mm}
.fill li{margin-bottom:1mm}
.fill .blank{display:inline-block;min-width:26mm;border-bottom:1.2px solid #4A5468}

/* infographic */
.bigidea{display:flex;gap:3mm;align-items:center;background:color-mix(in srgb,var(--cc) 10%,#fff);border-radius:3mm;padding:3mm 4mm;font-size:9.8pt}
.bigidea .em{font-size:20pt}
.nums .nc{border:1px solid #E1E6EE;border-radius:2.5mm;padding:2.5mm 2mm;text-align:center}
.nums .nc .e{font-size:13pt}
.nums .nc b{display:block;color:var(--cc);font-size:11.5pt;line-height:1.2;margin:.6mm 0}
.nums .nc span{font-size:7.5pt;color:#6B7486;line-height:1.3;display:block}
.flow{display:flex;align-items:stretch;gap:1.2mm}
.flow .st{flex:1;border:1px solid #E1E6EE;border-radius:2.5mm;padding:2.2mm 1.8mm;text-align:center;font-size:8pt;line-height:1.35}
.flow .st .e{font-size:13pt}
.flow .st b{display:block;color:var(--cc);font-size:8.5pt;margin:.6mm 0}
.flow .ar{align-self:center;color:var(--cc);font-weight:800}
.pts{list-style:none;padding:0;margin:0;font-size:8.8pt}
.pts li{display:flex;gap:2mm;padding:1.2mm 0;border-bottom:1px dashed #E8ECF2}
.pts li:last-child{border:0}

/* story map */
.sm-grid{display:grid;grid-template-columns:1fr 1fr;gap:3mm}
.sm-grid .wide{grid-column:1 / -1}

/* chunk */
.chunk{border:1px solid #E1E6EE;border-radius:3mm;padding:3mm 3.5mm}
.chunk .sent{display:flex;gap:2mm;font-size:9.8pt}
.chunk .sent .no{width:5.5mm;height:5.5mm;border-radius:50%;background:var(--cc);color:#fff;font-weight:800;font-size:8pt;display:grid;place-items:center;flex-shrink:0;margin-top:.4mm}
.chunk .sent .sl{color:var(--cc);font-weight:800;margin:0 1mm}
.chunk .hint{font-size:8pt;color:#6B7486;margin:1.2mm 0 1.5mm 7.5mm}
.chunk .rows{display:grid;grid-template-columns:5mm 1fr 1fr;gap:0 3mm;font-size:9pt;margin-left:2mm}
.chunk .rows i{font-style:normal;color:var(--cc);font-weight:800}
.chunk .rows b{font-weight:700;padding:1.3mm 0}
.chunk .rows span{border-bottom:1px dashed #B7BFCC}
.chunk .rows span.ans{border:0;color:#D9443A;font-size:8.6pt;padding:1.3mm 0}
.chunk .put{color:var(--cc);font-weight:800;font-size:8.5pt;margin:2mm 0 0}

/* thinking cards */
.tcard{border:1px solid #E1E6EE;border-radius:3mm;padding:2.5mm 3mm;display:flex;flex-direction:column;gap:1.5mm}
.tcard .tt{align-self:flex-start;background:var(--cc);color:#fff;font-weight:800;font-size:8pt;border-radius:99px;padding:.6mm 3mm}
.tcard .tf{background:color-mix(in srgb,var(--cc) 7%,#fff);border-radius:2mm;padding:2mm 2.5mm;font-size:8.6pt}
.tcard .lab{font-size:6.8pt;font-weight:800;letter-spacing:1px;color:#6B7486}
.tcard .opts{display:flex;gap:4mm;margin-top:1mm;font-weight:700;font-size:8.5pt}
.tcard .opts span::before{content:'';display:inline-block;width:3.4mm;height:3.4mm;border:1px solid #6B7486;border-radius:50%;margin-right:1.2mm;vertical-align:-.6mm}
.tcard .q{font-size:8.6pt}

/* order */
.ord-it{display:flex;gap:3mm;align-items:center;border:1px solid #E1E6EE;border-radius:2.5mm;padding:2.4mm 3mm;font-size:9.6pt}
.ord-it .bx{width:9mm;height:8mm;border:1.3px solid var(--cc);border-radius:2mm;flex-shrink:0;display:grid;place-items:center;font-weight:800;color:#D9443A}

/* discussion & essay */
.dq{border:1px solid #E1E6EE;border-radius:3mm;padding:3mm 3.5mm}
.dq .qq{display:flex;gap:2mm;font-weight:700;font-size:9.8pt}
.dq .qq i{font-style:normal;color:var(--cc)}
.dq .hh{font-size:8pt;color:#6B7486;margin:1mm 0 1mm 5mm}

/* comprehension */
.mcq{border:1px solid #E1E6EE;border-radius:3mm;padding:2.8mm 3.5mm}
.mcq .qh{display:flex;gap:2mm;align-items:flex-start;font-weight:700;font-size:9.6pt;margin-bottom:1.5mm}
.mcq .qh .no{background:var(--cc);color:#fff;border-radius:1.5mm;min-width:5.5mm;height:5.5mm;display:grid;place-items:center;font-size:8pt;flex-shrink:0}
.qtype{border-radius:1.5mm;padding:.2mm 2mm;font-size:7pt;font-weight:800;white-space:nowrap;flex-shrink:0;margin-top:.4mm}
.qt-main{background:#FDECEC;color:#C0262D}.qt-detail{background:#FFF1DE;color:#B4610B}.qt-inference{background:#E6EFFC;color:#2559A8}
.qt-vocab{background:#F0E9FC;color:#6B3FC2}.qt-reference{background:#E2F6F0;color:#0F7A5C}.qt-nottrue{background:#FDE7F0;color:#B0236A}
.qt-purpose{background:#E8F4FB;color:#0E6F98}.qt-sequence{background:#EEF2E1;color:#5A6B12}.qt-character{background:#FFF0F6;color:#A51D64}
.mcq ol{list-style:none;margin:0;padding:0 0 0 7.5mm;font-size:9pt}
.mcq li{padding:.7mm 1.5mm;border-radius:1.5mm;cursor:pointer;display:flex;gap:2.5mm}
.mcq li b{color:var(--cc);width:3mm}
.mcq li:hover{background:#F4F6FA}
.mcq li.right{background:#E2F6EA;color:#0F7A3C}
.mcq li.wrong{background:#FDECEC;color:#B42318;text-decoration:line-through}

/* brainstorm */
.bs{position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4mm;flex:1;min-height:200mm}
.bs .q4{border:1.6px dashed var(--cc);border-radius:4mm;padding:3mm;display:flex;flex-direction:column}
.bs .q4 b{color:var(--cc);font-size:9.5pt}
.bs .q4 span{font-size:8pt;color:#6B7486}
.bs .q4.r{text-align:right}
.bs .q4 .lines{margin-top:2mm;flex:1;justify-content:space-around}
.bs .q4 .wl{height:auto;flex:1}
.bs .ctr{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38mm;height:38mm;border-radius:50%;background:var(--cc);border:2.5mm solid #fff;box-shadow:0 0 0 1px var(--cc);color:#fff;display:grid;place-items:center;text-align:center;font-weight:800;font-size:10pt;padding:4mm;line-height:1.25}

/* answer key tables */
.kt{width:100%;border-collapse:collapse;font-size:8.8pt}
.kt th{background:#F1F4F8;text-align:left;padding:1.8mm 2mm;font-size:8pt;color:#4A5468;white-space:nowrap}
.kt td{padding:1.8mm 2mm;border-bottom:1px solid #E8ECF2;vertical-align:top}
.kt td.a{color:#D9443A;font-weight:800;width:9mm}
.kbar{background:var(--cc);color:#fff;font-weight:800;border-radius:2mm;padding:1.8mm 3mm;font-size:9.5pt}

/* ===== Essay report ===== */
.rep{--rm:#1F3B66;--ra:#3A6DB0;--rt:#EEF3FA;--fs:10pt;--lh:1.75;--pg:7px;--pad:8px}
.rep .page{--cc:var(--rm)}
.rep .rhead{display:flex;align-items:center;gap:2mm;font-size:8pt;font-weight:800;color:var(--rm);border-bottom:1.5px solid var(--ra);padding-bottom:1.5mm;margin-bottom:3mm}
.rep .rhead .dot{width:3mm;height:3mm;border-radius:50%;background:var(--ra)}
.rep .rhead .pp{margin-left:auto;color:var(--ra)}
.rep .banner{background:linear-gradient(110deg,var(--rm),var(--ra));color:#fff;border-radius:3mm;padding:4mm 5mm}
.rep .banner small{font-size:7pt;letter-spacing:1.5px;font-weight:800;opacity:.85}
.rep .banner h1{margin:1mm 0 0;font-family:var(--tf);font-size:16pt;font-weight:800;line-height:1.25}
.rep .who-row{display:flex;justify-content:center;gap:2mm;margin:-1mm 0 0}
.rep .badge{background:#FFF1DE;color:#B4610B;border-radius:99px;padding:.6mm 3.5mm;font-weight:800;font-size:8pt}
.rep .badge.b{background:var(--rt);color:var(--rm)}
.rep .orig{border:1px solid #E1E6EE;border-left:1.2mm solid var(--ra);border-radius:3mm;padding:3mm 4mm;font-size:var(--fs);line-height:1.8;background:#FCFDFE}
.rep .orig p{margin:0 0 2mm}
.rep .orig-img{display:flex;flex-direction:column;gap:2mm;align-items:center}
.rep .orig-img img{max-width:100%;max-height:150mm;border-radius:2mm;border:1px solid #E1E6EE}
.rep .sec-t{display:flex;align-items:center;gap:2mm;font-family:var(--tf);font-weight:800;font-size:13pt;color:#1E2533;margin:1mm 0 0}
.rep .sec-t .n{color:var(--ra)}
.rep .legend{display:flex;flex-wrap:wrap;gap:1mm 4mm;font-size:7.8pt;font-weight:700}
.rep .legend .r{color:#C0262D}.rep .legend .bl{color:#1F4E9A}.rep .legend .g{color:#1E7F4E}.rep .legend .y{color:#9A6A00}
.rep .mk{border:1px solid #E1E6EE;border-radius:3mm;padding:var(--pad) 4mm;font-size:var(--fs);line-height:var(--lh)}
.rep .cap-row{text-align:center;font-weight:800;font-size:8.5pt;color:var(--rm);background:var(--rt);border-radius:2mm;padding:1.5mm}
.rep .pbody>.mk+.mk{margin-top:calc(var(--pg) - 3.2mm)}
.rep .mk p{margin:0}
.mk-fix .w{text-decoration:line-through;color:#D9443A;text-decoration-thickness:1.2px}
.mk-fix .r{color:#B42318;font-weight:800;background:#FDECEC;border-radius:1mm;padding:0 .6mm;margin-left:.8mm}
.mk-cut{text-decoration:line-through;color:#1E7F4E;background:#E3F5EA;border-radius:1mm;text-decoration-thickness:1.2px}
.mk-exp{background:#EAF2FD;color:#1F4E9A;font-weight:600;border-radius:1.2mm;padding:.2mm 1mm;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.mk-exp::before{content:'➕∧ ';font-weight:900}
.mk-rw{background:#FFF4C2;border-bottom:1.5px solid #E2B100}
.mk-rwn{color:#8A5A00;font-weight:600;background:#FFF9DF;border-radius:1.2mm;padding:.2mm 1mm;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.mk-rwn::before{content:'✏️ '}
.rep .keypt{background:var(--rt);border-left:1.2mm solid var(--ra);border-radius:2mm;padding:3mm 4mm;font-size:9pt}
.rep .fc{border:1px solid #E1E6EE;border-radius:3mm;padding:3mm 4mm;font-size:9pt;display:flex;flex-direction:column;gap:2mm}
.rep .fc .t{font-weight:800;font-size:10pt}
.rep .fc .row{display:flex;gap:3mm}
.rep .fc .lb{flex-shrink:0;border-radius:1.5mm;padding:.3mm 2mm;font-weight:800;font-size:7.5pt;height:fit-content;margin-top:.5mm}
.rep .fc .lb.g{background:#E2F6EA;color:#0F7A3C}.rep .fc .lb.r{background:#FDECEC;color:#B42318}.rep .fc .lb.b{background:var(--rt);color:var(--rm)}
.rep .parent{background:#FFF8E6;border:1px solid #F5DFA6;border-radius:3mm;padding:3mm 4mm;font-size:9pt}
.rep .rub{width:100%;border-collapse:collapse;font-size:8.6pt}
.rep .rub td{padding:1.6mm 2mm;border-bottom:1px solid #E8ECF2;vertical-align:middle}
.rep .rub td.n{font-weight:800;width:32mm}
.rep .rub td.s{width:30mm;white-space:nowrap}
.rep .rub .dot{display:inline-block;width:3.6mm;height:3.6mm;border-radius:50%;background:#E1E6EE;margin-right:.8mm}
.rep .rub .dot.on{background:var(--ra)}
.rep.fs-sm{--fs:9pt}.rep.fs-lg{--fs:11.2pt}
[contenteditable=true]{outline:2px dashed #0FC3F4;outline-offset:2px}
