:root{--navy:#071f38;--navy-2:#123d61;--ink:#17293c;--muted:#5e7489;--line:#c6d3df;--paper:#fff;--soft:#f3f7fa;--mint:#e9f7f1;--green:#137558;--yellow:#f2c94c;--code:#071d2f}
*{box-sizing:border-box}
html,body{margin:0;background:#dfe7ed;color:var(--ink);font-family:"Pretendard",Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
button,a{font:inherit}
.print-toolbar{position:sticky;z-index:40;top:0;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:68px;padding:10px 22px;border-bottom:1px solid #b5c4d0;background:rgba(255,255,255,.96);backdrop-filter:blur(14px)}
.print-brand{display:flex;align-items:center;gap:10px;color:var(--navy);text-decoration:none;white-space:nowrap}.print-brand img{width:42px;height:42px;border:1px solid #b8c6d2;border-radius:12px}.print-brand span{display:grid;gap:2px}.print-brand small{color:#6d8296;font:800 8px/1 "Lexend",sans-serif;letter-spacing:.12em;text-transform:uppercase}.print-brand strong{font-size:15px;line-height:1.1}
.toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;overflow-x:auto;padding:2px 0}.toolbar-actions a,.toolbar-actions button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:40px;padding:0 14px;border:1px solid #a7b8c7;border-radius:999px;background:#fff;color:var(--navy);font-size:11px;font-weight:850;text-decoration:none;white-space:nowrap;cursor:pointer}.toolbar-actions .primary{border-color:var(--navy);background:var(--navy);color:#fff}.toolbar-actions .image-save{border-color:#7890a4;background:#edf3f7}.toolbar-actions button:disabled{opacity:.55;cursor:wait}
.print-notice{display:grid;grid-template-columns:1fr 1fr;gap:18px;width:min(420mm + 18px,calc(100% - 32px));margin:16px auto 0;padding:13px 16px;border:1px solid #b8c7d3;border-radius:13px;background:#f8fafb;color:#506a80;font-size:12px;line-height:1.55}.print-notice p{margin:0}.print-notice b{color:var(--navy)}
.download-panel{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:10px 14px;width:min(1180px,calc(100% - 32px));margin:14px auto 0;padding:14px;border:1px solid #91c5b0;border-radius:14px;background:#f0faf5;box-shadow:0 18px 40px -34px #075438}.download-panel[hidden]{display:none}.download-panel>div:first-child{display:grid;gap:2px;color:#245d4a;font-size:12px}.download-panel>div:first-child span{color:#5e7b70;font-size:10px}.download-all,.download-links a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 15px;border:1px solid #14805b;border-radius:999px;background:#14805b;color:#fff;font-size:11px;font-weight:850;text-decoration:none;white-space:nowrap;cursor:pointer}.download-links{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:6px;max-width:100%;overflow-x:auto;padding:2px 0 4px}.download-links a{min-height:34px;padding:0 11px;background:#fff;color:#126848;font-size:10px}
.paper-stack{display:grid;gap:24px;width:max-content;margin:0 auto;padding:18px 0 48px}.pair-row{display:grid;grid-template-columns:210mm 210mm;gap:18px;align-items:start}.pair-column{display:grid;gap:7px}.pair-label{display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:0 14px;border:1px solid #b7c6d2;border-radius:10px;background:#fff;color:#687e91;font-size:10px}.pair-label b{color:var(--navy);font-size:12px}.print-loading{display:grid;place-items:center;gap:7px;width:min(900px,calc(100vw - 32px));min-height:220px;border:1px solid #bdcbd6;border-radius:18px;background:#fff;color:#60758a}.print-loading b{color:var(--navy);font-size:18px}
.sheet{position:relative;width:210mm;height:297mm;overflow:hidden;background:var(--paper);box-shadow:0 20px 54px -34px rgba(7,31,56,.65)}
.sheet-top{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;height:10mm;padding:0 14mm;background:var(--navy);color:#c3d0db;font:800 6.5pt/1 "Lexend",sans-serif;letter-spacing:.05em}.sheet-top b{color:#fff}.teacher-sheet .sheet-top{background:var(--navy-2);color:#fff}.teacher-sheet .sheet-top::after{content:"";position:absolute;z-index:-1;right:0;left:0;top:50%;height:1.1mm;transform:translateY(-50%);background:var(--yellow)}.teacher-sheet .sheet-top>*{padding:1.2mm 2.2mm;background:var(--navy-2)}
.sheet-heading{display:grid;grid-template-columns:1fr 26mm;height:11mm;margin:0 14mm;border:1px solid var(--line);border-top:0}.sheet-heading span{display:flex;align-items:center;padding:0 8px;color:#60778c;font-size:7.2pt;font-weight:800}.sheet-heading b{display:grid;place-items:center;background:#e9eff4;color:var(--navy);font:800 7pt/1 "Lexend",sans-serif}
.sheet-main{padding:7mm 14mm 18mm}.page-kicker{color:#668096;font:800 6.2pt/1 "Lexend",sans-serif;letter-spacing:.13em;text-transform:uppercase}.page-title{margin:3mm 0 1.8mm;color:var(--navy);font-size:20pt;line-height:1.08;letter-spacing:-.9px}.page-title small{color:#60798e;font-size:11pt}.page-lead{margin:0 0 3.5mm;color:#536c82;font-size:8.2pt;line-height:1.48}
.student-info{display:grid;grid-template-columns:14mm 1fr 14mm 1fr 18mm 1fr;height:9mm;margin-bottom:4mm;border:1px solid var(--line)}.student-info span{display:flex;align-items:center;padding:0 2.3mm;border-right:1px solid var(--line);color:#566d82;font-size:7pt}.student-info .label{justify-content:center;background:#edf2f6;color:#71879a;font-size:6.6pt;font-weight:800}
.sheet-footer{position:absolute;right:14mm;bottom:8mm;left:14mm;display:flex;align-items:center;justify-content:space-between;padding-top:2.4mm;border-top:1px solid var(--line);color:#70869a;font-size:6.4pt}.footer-brand{display:flex;align-items:center;gap:2.2mm}.footer-brand img{width:7mm;height:7mm}.sheet-footer b{color:var(--navy)}
.fact-row{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:4mm;border:1px solid var(--line)}.fact-row article{min-height:18mm;padding:2.8mm;border-right:1px solid var(--line);background:var(--soft)}.fact-row article:last-child{border-right:0}.fact-row small{color:#7890a4;font-size:6pt;font-weight:800}.fact-row b{display:block;margin-top:1mm;color:var(--navy);font-size:10pt}.course-rule{display:grid;grid-template-columns:34mm 1fr;margin-bottom:4mm;border:1px solid var(--line)}.course-rule b{display:grid;place-items:center;background:var(--navy);color:#fff;font-size:8pt}.course-rule p{margin:0;padding:3mm 4mm;background:#f5f8fa;color:#405b72;font-size:7.6pt;line-height:1.45}.route-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line)}.route-grid article{display:grid;grid-template-columns:9mm 1fr;min-height:11mm;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.route-grid article:nth-child(2n){border-right:0}.route-grid article:nth-last-child(-n+2){border-bottom:0}.route-grid i{display:grid;place-items:center;background:#eaf0f4;color:var(--navy);font:800 7pt/1 "Lexend",sans-serif;font-style:normal}.route-grid div{display:flex;align-items:center;padding:2mm 2.5mm}.route-grid b{display:block;color:var(--navy);font-size:8.3pt;line-height:1.3}.student-promise{display:grid;grid-template-columns:repeat(3,1fr);margin-top:3mm;border:1px solid var(--line)}.student-promise span{display:flex;align-items:center;min-height:10mm;padding:2mm 3mm;border-right:1px solid var(--line);background:var(--mint);color:#2d6552;font-size:7pt;font-weight:750}.student-promise span:last-child{border-right:0}
.teacher-say{display:grid;grid-template-columns:32mm 1fr;margin-bottom:3mm;border:1px solid var(--line)}.teacher-say b{display:grid;place-items:center;padding:3mm;background:var(--navy-2);color:#fff;font-size:7.5pt;text-align:center}.teacher-say p{margin:0;padding:3mm 4mm;background:#f2f6f9;color:#334f66;font-size:7.8pt;line-height:1.5}.teacher-plan{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:4mm;border:1px solid var(--line)}.teacher-plan article{min-height:24mm;padding:2.6mm;border-right:1px solid var(--line)}.teacher-plan article:last-child{border-right:0}.teacher-plan b{color:var(--navy-2);font-size:7.2pt}.teacher-plan p{margin:1mm 0 0;color:#536c81;font-size:7pt;line-height:1.4}.teacher-cover-check{border:1px solid var(--line)}.teacher-cover-check article{display:grid;grid-template-columns:10mm 1fr;min-height:16mm;border-bottom:1px solid var(--line)}.teacher-cover-check article:last-child{border-bottom:0}.teacher-cover-check i{display:grid;place-items:center;background:#eaf0f4;color:var(--navy);font:800 7pt "Lexend",sans-serif;font-style:normal}.teacher-cover-check div{padding:2.2mm 3mm}.teacher-cover-check b{display:block;color:var(--navy);font-size:7.3pt}.teacher-cover-check p{margin:.7mm 0 0;color:#5b7185;font-size:7pt;line-height:1.4}
.path-row{display:flex;align-items:center;gap:1.2mm;min-height:10mm;margin-bottom:3mm;padding:2mm 2.5mm;border:1px solid var(--line);background:#f4f7f9;overflow:hidden}.path-row span{display:inline-flex;align-items:center;min-height:5mm;padding:0 2mm;border:1px solid #bac8d4;border-radius:999px;background:#fff;color:#345169;font-size:6.3pt;font-weight:800;white-space:nowrap}.path-row i{color:#8396a7;font-style:normal}
.action-layout{display:grid;grid-template-columns:1fr 59mm;gap:4mm;align-items:start}.action-layout.no-media{grid-template-columns:1fr}.task-list{border:1px solid var(--line)}.task-item{display:grid;grid-template-columns:9mm 1fr 14mm;min-height:10mm;border-bottom:1px solid var(--line)}.task-item:last-child{border-bottom:0}.task-item>i{display:grid;place-items:center;background:#eaf0f4;color:var(--navy);font:800 7pt/1 "Lexend",sans-serif;font-style:normal}.task-item p{display:flex;align-items:center;margin:0;padding:1.8mm 2.4mm;color:#2f4960;font-size:7.2pt;line-height:1.38}.task-item em{display:flex;align-items:center;justify-content:center;border-left:1px dashed var(--line);color:#73889a;font-size:6pt;font-style:normal}.student-action.is-dense .task-item{min-height:8.2mm}.student-action.is-dense .task-item p{padding:1.2mm 2.2mm;font-size:6.5pt;line-height:1.27}
.media-card{overflow:hidden;border:1px solid var(--line);background:#eef3f6}.media-card img{display:block;width:100%;height:52mm;object-fit:cover;object-position:center}.media-card p{margin:0;padding:2mm 2.5mm;color:#536b80;font-size:7pt;line-height:1.4}.route-card{padding:3mm;border:1px solid var(--line);background:#eef4f7}.route-card b{display:block;margin-bottom:2mm;color:var(--navy);font-size:7.5pt}.route-card ol{display:grid;gap:1.6mm;margin:0;padding:0;list-style:none;counter-reset:route}.route-card li{display:grid;grid-template-columns:7mm 1fr;align-items:center;min-height:8mm;padding:1.3mm;background:#fff;color:#3e586e;font-size:7.2pt;line-height:1.35;counter-increment:route}.route-card li::before{content:counter(route);display:grid;place-items:center;width:5mm;height:5mm;border-radius:50%;background:var(--green);color:#fff;font:800 6pt "Lexend",sans-serif}
.support-grid{display:grid;grid-template-columns:1fr 1fr;gap:3mm;margin-top:3mm}.support-box{min-height:22mm;padding:2.8mm 3mm;border:1px solid var(--line)}.support-box b{display:block;margin-bottom:1mm;color:var(--navy);font-size:7.3pt}.support-box p{margin:0;color:#536c81;font-size:7.2pt;line-height:1.42}.support-box.check{background:var(--mint);border-color:#9bcbb9}.support-box.trouble{background:#fff9e9;border-color:#dbc47c}.term-strip{display:flex;flex-wrap:wrap;gap:1.5mm;margin-top:2mm}.term-strip span{display:inline-flex;gap:1mm;padding:1.2mm 1.8mm;border-radius:4px;background:#edf3f6;color:#4b6479;font-size:6.3pt}.term-strip b{color:var(--navy);font-size:6.3pt}
.teacher-task-list{border:1px solid var(--line)}.teacher-task{display:grid;grid-template-columns:9mm 57mm 1fr;min-height:14mm;border-bottom:1px solid var(--line)}.teacher-task:last-child{border-bottom:0}.teacher-task>i{display:grid;place-items:center;background:var(--navy-2);color:#fff;font:800 7pt "Lexend",sans-serif;font-style:normal}.teacher-task>div{padding:2mm 2.3mm;border-right:1px solid var(--line)}.teacher-task>div:last-child{border-right:0;background:#f5f8fa}.teacher-task small{display:block;color:#7790a4;font-size:6pt;font-weight:800}.teacher-task p{margin:.8mm 0 0;color:#3d576e;font-size:7.2pt;line-height:1.36}.teacher-side-grid{display:grid;grid-template-columns:1fr 1fr;gap:3mm;margin-top:3mm}.teacher-mini{min-height:23mm;padding:2.7mm;border:1px solid var(--line)}.teacher-mini b{display:block;color:var(--navy-2);font-size:7.2pt}.teacher-mini p{margin:1mm 0 0;color:#536b80;font-size:7pt;line-height:1.4}.teacher-mini.warning{border-color:#d7bd6e;background:#fff9e9}
.code-notice{display:flex;align-items:center;gap:3mm;margin-bottom:3mm;padding:2.5mm 3mm;border:1px solid #8ac6ad;background:var(--mint);color:#2d6752;font-size:6.8pt;line-height:1.4}.code-notice b{flex:0 0 auto;color:#0f7354}.code-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:2mm;color:#647b8e;font-size:6.3pt}.code-meta b{color:var(--navy)}
.code-block{overflow:hidden;border:1px solid #264c69;border-radius:3mm;background:var(--code);color:#eef7ff}.code-line{display:grid;grid-template-columns:11mm 1fr;min-height:6.1mm}.code-line:nth-child(odd){background:rgba(255,255,255,.025)}.code-no{display:flex;align-items:center;justify-content:flex-end;padding-right:2.5mm;border-right:1px solid #23445e;color:#7691a6;font:500 6.5pt/1.2 "JetBrains Mono",monospace}.code-text{display:flex;align-items:center;min-width:0;padding:0 2.5mm;white-space:pre;color:#f3f8fc;font:600 8.5pt/1.3 "JetBrains Mono",monospace}.code-text.is-comment{color:#6ee7ab;font-style:italic}
.code-save{display:grid;grid-template-columns:repeat(3,1fr);margin-top:3mm;border:1px solid var(--line)}.code-save span{display:flex;align-items:center;min-height:10mm;padding:2mm 2.5mm;border-right:1px solid var(--line);background:#f3f7f9;color:#456076;font-size:6.5pt}.code-save span:last-child{border-right:0}.code-save b{color:var(--navy)}
.teacher-code-map{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:3mm;border:1px solid var(--line)}.teacher-code-map article{min-height:28mm;padding:3mm;border-right:1px solid var(--line)}.teacher-code-map article:last-child{border-right:0}.teacher-code-map b{color:var(--navy-2);font-size:7.2pt}.teacher-code-map p{margin:1mm 0 0;color:#536c81;font-size:7pt;line-height:1.42}.teacher-code-comments{border:1px solid var(--line)}.teacher-code-comments article{display:grid;grid-template-columns:34mm 1fr;min-height:15mm;border-bottom:1px solid var(--line)}.teacher-code-comments article:last-child{border-bottom:0}.teacher-code-comments b{display:flex;align-items:center;padding:2.5mm 3mm;background:#eaf0f4;color:var(--navy);font-size:7pt}.teacher-code-comments p{margin:0;padding:2.5mm 3mm;color:#486177;font-size:7pt;line-height:1.42}.teacher-code-check{display:grid;grid-template-columns:30mm 1fr;margin-top:3mm;border:1px solid #d7bc68;background:#fff9e8}.teacher-code-check b{display:grid;place-items:center;background:#f1ce55;color:#493a05;font-size:7pt}.teacher-code-check p{margin:0;padding:3mm;color:#5c512b;font-size:7pt;line-height:1.42}
@page{size:A4 portrait;margin:0}
@media print{
  html,body{background:#fff}
  body>*:not(#printApp){display:none!important}
  #printApp{display:block!important;width:auto;margin:0;padding:0}
  .pair-row,.pair-column{display:contents}
  .pair-label{display:none!important}
  .sheet{margin:0;box-shadow:none;break-after:page;page-break-after:always}
  .print-teacher .student-column,.print-student .teacher-column{display:none!important}
  .print-teacher .pair-row:last-child .teacher-sheet,.print-student .pair-row:last-child .student-sheet,.print-both .pair-row:last-child .student-sheet,body:not(.print-teacher):not(.print-student):not(.print-both) .pair-row:last-child .student-sheet{break-after:auto;page-break-after:auto}
}
@media screen and (max-width:1100px){.print-toolbar{align-items:flex-start}.print-brand span{display:none}.print-notice{grid-template-columns:1fr}.paper-stack{width:100%;overflow-x:auto;padding-right:12px;padding-left:12px}.pair-row{grid-template-columns:210mm}.pair-column{justify-content:start}.pair-label{width:210mm}.download-panel{grid-template-columns:1fr}.download-links{grid-column:1}.download-all{width:100%}}
body.image-exporting .paper-stack{width:max-content;overflow:visible}body.image-exporting .pair-row{grid-template-columns:210mm 210mm;width:auto;padding:0}body.image-exporting .sheet{width:210mm;height:297mm;overflow:hidden}
