/* PDF로 저장하는 문서(레슨 안내서·학부모 리포트) 전용 스타일. 앱 화면 스타일과 분리해 pt·mm 단위로 정하고, 화면 미리보기와 인쇄 결과가 같게 나오도록 한다. */
@font-face{font-family:PretendardDoc;font-weight:400;src:url('../../assets/fonts/Pretendard-Regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:PretendardDoc;font-weight:600;src:url('../../assets/fonts/Pretendard-SemiBold.woff2') format('woff2');font-display:swap}
@font-face{font-family:PretendardDoc;font-weight:700;src:url('../../assets/fonts/Pretendard-Bold.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Gowun Dodum';font-weight:400;src:url('../../assets/fonts/GowunDodum-Regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Gowun Batang';font-weight:400;src:url('../../assets/fonts/GowunBatang-Regular.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Gowun Batang';font-weight:700;src:url('../../assets/fonts/GowunBatang-Bold.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Jua';font-weight:400;src:url('../../assets/fonts/Jua-Regular.woff2') format('woff2');font-display:swap}
:root{--doc-ink:#4a3832;--doc-cream:#fbf1ea;--doc-cream-line:#dcc6bb;--doc-card:#fff7f2;--doc-card-line:#f0d6c9;--doc-rule:#ead9d2;--doc-timeline:#f0c9bd;--doc-badge-bg:#fbe3da;--doc-desk:#e4dcd6;--doc-font-title:'PretendardDoc';--doc-font-body:'PretendardDoc';--doc-title-weight:700;--doc-font-fallback:Pretendard,'Apple SD Gothic Neo',sans-serif;--doc-studio:"";--doc-title:""}

/* 화면: 회색 책상 위의 A4 한 장 */
.doc-stage{display:flex;justify-content:center;padding:24px;border-radius:20px;background:var(--doc-desk);overflow:hidden}
.doc-stage[data-zoom="large"]{justify-content:flex-start;overflow-x:auto}
.doc{flex:0 0 auto;box-sizing:border-box;width:210mm;min-height:297mm;background:var(--white);color:var(--doc-ink);font-family:var(--doc-font-body),var(--doc-font-fallback);font-size:10pt;line-height:1.7;box-shadow:0 6px 24px #4a38322e;position:relative;overflow:hidden;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.doc h1,.doc h2,.doc h3{font-family:var(--doc-font-title),var(--doc-font-fallback);font-weight:var(--doc-title-weight);color:var(--doc-ink)}
.doc-studio{font-family:var(--doc-font-title),var(--doc-font-fallback);font-weight:700;font-size:13pt;color:var(--doc-ink);letter-spacing:-.01em}
.doc-wordmark{display:block;align-self:flex-start;flex:0 0 auto;height:11mm;width:auto}
.doc-art{position:absolute;pointer-events:none}
.doc-staff{display:grid;gap:1.7mm}
.doc-staff i{display:block;height:0;border-top:.24mm solid var(--doc-cream-line)}
.doc-chip{display:inline-block;padding:.4mm 3.4mm;border:.26mm solid var(--doc-card-line);border-radius:999px;background:var(--white);color:var(--coral-ink);font-size:9.5pt;line-height:1.6}

/* 설정 패널(화면 전용): 글꼴·한마디·저장을 한곳에 모으고 문서 옆(PC)이나 문서 위(태블릿·모바일)에 둔다 */
.doc-workspace{display:block}
.doc-main{min-width:0}
.doc-settings{display:grid;gap:18px;padding:18px;margin-bottom:16px}
.doc-settings-title{margin:0;font-size:var(--text-xl)}
.doc-settings-toggle{display:none;align-items:center;gap:10px;width:100%;padding:0;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.doc-settings-toggle span{font-size:var(--text-lg);font-weight:700}
.doc-settings-toggle small{margin-left:auto;font-size:var(--text-sm);color:var(--muted)}
.doc-settings-toggle:after{content:"";flex:0 0 auto;width:9px;height:9px;margin:-4px 3px 0 4px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .16s ease}
.doc-settings-toggle[aria-expanded="true"]:after{margin-top:4px;transform:rotate(-135deg)}
.doc-settings-body{display:grid;gap:18px}
.doc-settings .button{width:100%}
.doc-save-top{display:inline-flex}
.page-heading.doc-toolbar,.page-heading.guide-pdf-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
.doc-save-panel{display:none}
.doc-setting{display:grid;gap:8px}
.doc-setting h3,.doc-message-field label{margin:0;font-size:var(--text-sm);font-weight:700;color:var(--muted)}
.doc-font-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.doc-font-option{--sample-font:'PretendardDoc';position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--surface-input);color:var(--ink);cursor:pointer;font:inherit;text-align:left}
.doc-font-sample{flex:0 0 5.4em;font-family:var(--sample-font),var(--doc-font-fallback);font-size:var(--text-lg);line-height:1.2;white-space:nowrap}
.doc-font-meta{display:grid;min-width:0}
.doc-font-meta strong{overflow:hidden;font-size:var(--text-sm);font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.doc-font-meta small{overflow:hidden;font-size:var(--text-xs);color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.doc-font-option:last-child:nth-child(odd){grid-column:1/-1}
.doc-font-option:hover{background:var(--row-hover-bg)}
.doc-font-option[aria-pressed="true"]{border-color:var(--primary);background:var(--row-selected-bg);box-shadow:inset 0 0 0 1px var(--primary)}
.doc-font-option:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.doc-message-field textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--border-input);border-radius:var(--radius-md);background:var(--surface-input);color:var(--ink);font:inherit;font-size:var(--text-md);line-height:1.6;resize:vertical}
.doc-message-field textarea:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.doc-message-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.doc-message-count{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}
.doc-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}
.doc-main-head h2{margin:0;font-size:var(--text-xl)}
.doc-main-meta{font-size:var(--text-sm);color:var(--muted)}
.doc-zoom{display:none;gap:2px;padding:3px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--white)}
.doc-zoom button{flex:1 1 0;padding:6px 14px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--ink);font:inherit;font-size:var(--text-sm);white-space:nowrap;cursor:pointer}
.doc-zoom button[aria-pressed="true"]{background:var(--primary);color:var(--paper)}
@media(max-width:760px){
  .doc-zoom{display:flex}
  .doc-main-meta{display:none}
  .doc-settings{gap:0}
  .doc-settings-title{display:none}
  .doc-settings-toggle{display:flex}
  .doc-settings-body{padding-top:16px}
  .doc-settings.is-collapsed .doc-settings-body{display:none}
}
@media(min-width:761px) and (max-width:1023px){
  .doc-font-picker{grid-template-columns:repeat(5,minmax(0,1fr))}
  .doc-font-option,.doc-font-option:last-child:nth-child(odd){grid-column:auto;flex-direction:column;align-items:flex-start;gap:4px}
  .doc-font-sample{flex:0 0 auto}
}
@media(min-width:1024px){
  .doc-workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
  .doc-settings{position:sticky;top:16px;margin-bottom:0}
  .doc-font-picker{grid-template-columns:1fr}
  .doc-font-option:last-child:nth-child(odd){grid-column:auto}
  .doc-save-top{display:none}
  .doc-save-panel{display:inline-flex}
}

/* 레슨 안내서 */
.guide-doc{display:grid;gap:8mm;min-height:0;background:transparent;box-shadow:none;overflow:visible}
.guide-doc>.doc-cover,.guide-doc>.guide-doc-body{box-sizing:border-box;width:210mm;background:var(--white);box-shadow:0 6px 24px #4a38322e}
.doc-cover{page:cover;height:297mm;display:flex;flex-direction:column;break-after:page}
.doc-cover-top{position:relative;flex:0 0 58%;display:flex;flex-direction:column;padding:14mm 20mm 0;background:var(--doc-cream)}
.doc-cover-title{margin-top:auto;padding-bottom:12mm}
.doc-kicker{margin:0;font-size:9pt;letter-spacing:.08em;color:var(--muted)}
.doc-cover h1{margin:2mm 0 0;font-size:36pt;line-height:1.2}
.doc-cover-rule{display:block;width:13mm;margin:5mm 0;border-top:1mm solid var(--accent)}
.doc-cover-studio{margin:0;font-size:12pt;line-height:1.7;color:var(--muted-2)}
.doc-cover .doc-studio{font-size:15pt}
.doc-cover .doc-staff{margin:0 -20mm 7mm}
.doc-art-cover{right:16mm;bottom:9mm;width:66mm}
.doc-cover-info{padding:12mm 20mm;font-size:10.5pt;line-height:1.9;color:var(--muted)}
.doc-cover-info p{margin:0}
.guide-doc-body{min-height:297mm;padding:16mm 14mm 20mm}
.guide-doc-section{margin-top:9mm}
.guide-doc-section:first-child{margin-top:0}
.guide-doc-section h2{display:flex;align-items:center;gap:3.2mm;margin:0 0 4mm;padding-bottom:2.6mm;border-bottom:.26mm solid var(--doc-rule);font-size:15pt;line-height:1.3;break-after:avoid}
.guide-doc-section-number{display:inline-flex;align-items:center;justify-content:center;flex:0 0 8.5mm;width:8.5mm;height:8.5mm;border-radius:50%;background:var(--doc-badge-bg);color:var(--coral-ink);font-size:10pt;font-weight:700}
.guide-doc-row{display:grid;grid-template-columns:minmax(0,1fr);gap:5mm;align-items:start;margin-top:4mm;break-inside:avoid;page-break-inside:avoid}
.guide-doc-row.is-paired{grid-template-columns:repeat(2,minmax(0,1fr))}
.guide-doc-title{margin:0;font-size:12.5pt;line-height:1.45}
.guide-doc-text{margin:0;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere}
.guide-doc-row.is-paired .guide-doc-text{padding:3.7mm;border:.26mm solid var(--doc-card-line);border-radius:3.7mm;background:var(--doc-card)}
.guide-doc-image{margin:0}
.guide-doc-image img{display:block;max-width:100%;max-height:110mm;margin:0 auto;border-radius:3.7mm;object-fit:contain}
.guide-doc-row.is-paired .guide-doc-image img{max-height:80mm}
.guide-doc-empty{max-width:520px;margin:0 auto;padding:36px 28px;text-align:center}
.guide-doc-empty h2{margin:0 0 8px;font-size:var(--text-2xl)}

/* 학부모 리포트 */
.report-doc{page:report;min-height:297mm;display:flex;flex-direction:column}
.doc-band{position:relative;padding:12mm 16mm 0;background:var(--doc-cream)}
.doc-band-top{display:flex;align-items:center;justify-content:space-between}
.doc-chips{display:flex;align-items:center;gap:2.6mm;margin-top:5mm;font-size:9.5pt;color:var(--muted)}
.doc-band h1{max-width:128mm;margin:2mm 0 0;font-size:22pt;line-height:1.3}
.doc-meta{margin:2mm 0 0;font-size:10pt;color:var(--muted)}
.doc-band .doc-staff{margin:7mm -16mm 0}
.doc-art-band{right:14mm;bottom:0;width:47mm}
.doc-pad{padding:7mm 16mm 0}
.doc-summary{display:grid;grid-template-columns:1.3fr 1fr;gap:3mm}
.doc-card{padding:3.2mm 3.8mm;border:.26mm solid var(--doc-card-line);border-radius:3.7mm;background:var(--doc-card)}
.doc-card small{display:block;font-size:9pt;color:var(--muted)}
.doc-progress-value{display:flex;align-items:baseline;gap:2mm;margin-top:1mm}
.doc-progress-value strong{font-family:var(--doc-font-title),var(--doc-font-fallback);font-weight:var(--doc-title-weight);font-size:21pt;line-height:1.2;color:var(--coral-ink)}
.doc-progress-value span{font-size:9.5pt;color:var(--muted)}
.doc-progress-bar{height:2.6mm;margin-top:2.6mm;border-radius:1.6mm;background:var(--doc-card-line);overflow:hidden}
.doc-progress-bar i{display:block;height:100%;border-radius:1.6mm;background:var(--accent)}
.doc-progress-meta{display:flex;justify-content:space-between;margin-top:1.4mm;font-size:9pt;color:var(--muted)}
.doc-progress-meta span:first-child{font-weight:700;color:var(--coral-ink)}
.doc-next-body{display:flex;align-items:center;gap:3.2mm;margin-top:2mm}
.doc-date-tile{flex:0 0 15mm;overflow:hidden;border:.26mm solid var(--doc-card-line);border-radius:2.6mm;background:var(--white);text-align:center}
.doc-date-tile b{display:block;padding:.7mm 0;background:var(--accent);color:var(--white);font-size:9pt;font-weight:600;line-height:1.5}
.doc-date-tile em{display:block;padding:.4mm 0 .8mm;font-style:normal;font-size:19pt;line-height:1.25;font-weight:700;color:var(--coral-ink)}
.doc-next-text strong{display:block;font-family:var(--doc-font-title),var(--doc-font-fallback);font-weight:var(--doc-title-weight);font-size:13pt;line-height:1.3}
.doc-next-text span{display:block;margin-top:.6mm;font-size:9pt;color:var(--muted)}
.doc-next-empty{margin:3mm 0 0;font-size:10pt;color:var(--muted)}
.doc-quote{margin:5mm 0 0;padding:.6mm 0 .6mm 3.8mm;border-left:1mm solid var(--accent)}
.doc-quote small{font-size:9pt;color:var(--muted)}
.doc-quote p{margin:.6mm 0 0;font-size:11pt;line-height:1.75;white-space:pre-line;overflow-wrap:anywhere}
.doc-quote[hidden]{display:none}
.doc-heading{margin:7mm 0 3mm;font-size:13pt;line-height:1.3;break-after:avoid}
.doc-timeline{display:grid;gap:3.4mm;margin-left:1.6mm;padding-left:5.4mm;border-left:.5mm solid var(--doc-timeline)}
.doc-timeline-item{position:relative;break-inside:avoid}
.doc-timeline-item:before{content:"";position:absolute;left:-7.3mm;top:1.6mm;width:2.9mm;height:2.9mm;border-radius:50%;background:var(--accent)}
.doc-timeline-date{margin-right:2.4mm;color:var(--muted)}
.doc-todo{display:grid;gap:2mm}
.doc-todo-item{display:flex;align-items:center;gap:2.6mm;break-inside:avoid}
.doc-todo-item i{flex:0 0 3.8mm;width:3.8mm;height:3.8mm;border:.4mm solid var(--doc-ink);border-radius:1mm}
.doc-foot{margin:auto 16mm 0;padding:0 0 8mm}
.doc-art-foot{position:static;display:block;width:27mm;margin:6mm 0 0 auto}
.doc-signature{display:block;padding-top:2.4mm;border-top:.26mm solid var(--doc-rule);font-size:9.5pt;color:var(--muted)}

@media(max-width:760px){
  .doc-stage{padding:12px}
}

/* 인쇄·PDF: 표지와 리포트 첫 쪽은 종이 끝까지 색이 번지고, 나머지 쪽은 머리글·꼬리말과 쪽 번호가 붙는다 */
@page doc{size:A4;margin:16mm 0 20mm;
  @top-left{content:var(--doc-studio);padding-left:14mm;font:700 9pt var(--doc-font-fallback);color:#8d7c75;vertical-align:middle}
  @top-right{content:var(--doc-title);padding-right:14mm;font:9pt var(--doc-font-fallback);color:#8d7c75;vertical-align:middle}
  @bottom-right{content:counter(page) " / " counter(pages);padding-right:14mm;font:9pt var(--doc-font-fallback);color:#8d7c75;vertical-align:middle}}
@page cover{size:A4;margin:0 0 20mm}
@page report{size:A4;margin:16mm 0 20mm;
  @bottom-right{content:counter(page) " / " counter(pages);padding-right:16mm;font:9pt var(--doc-font-fallback);color:#8d7c75;vertical-align:middle}}
@page report:first{margin:0 0 20mm}
.guide-doc-body{page:doc}
@media print{
  #app-header,.mobile-gnb,.doc-toolbar,.doc-settings,.doc-main-head,.doc-zoom,.guide-pdf-toolbar,.guide-pdf-toolbar-link,.toast,.toast-stack,.app-toast{display:none!important}
  html,body{background:var(--white)!important}
  .doc-workspace,.doc-main{display:block}
  .app-shell,.guidance-pdf-view,.guidance-saved-view,.report-preview-view,.doc-stage{display:block;max-width:none;margin:0!important;padding:0!important;background:none!important;border-radius:0}
  .doc{width:auto;min-height:0;zoom:1!important;box-shadow:none;overflow:visible}
  .doc-cover{height:277mm;overflow:hidden}
  .guide-doc{display:block}
  .guide-doc>.doc-cover,.guide-doc>.guide-doc-body{width:auto;box-shadow:none}
  .report-doc{min-height:277mm}
  .guide-doc-body,.guide-doc>.guide-doc-body{min-height:0;padding:0 14mm}
  .guide-doc-row.is-paired{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* 정책 B: PDF 문서는 화면 모드와 관계없이 항상 라이트. 문서가 쓰는 앱 토큰을 라이트 값으로 되돌린다(설정 패널은 화면 모드를 따른다). */
html[data-theme="dark"] .doc{color-scheme:light;--white:#FFFFFF;--ink:#5a4742;--muted:#7f6e67;--muted-2:#85726B;--paper:#FFF7F0;--primary:#756B7A;--coral-ink:#A84732;--accent:#e87961;--surface-input:#FFFDFB;--border-input:#D8C8BF;--border-strong:#CDBBB1;--row-selected-bg:#F1E4DC;--row-hover-bg:#F7EEE9}
