/* 리포트 A4 쪽 — 기획 보고서 + 만화 먹선. 화면에선 미리 보기, 인쇄(PDF)에선 한 쪽씩 */
.pages { width: 210mm; margin: 0 auto; }
.page {
  position: relative; width: 210mm; height: 297mm; overflow: hidden; padding: 14mm 16mm 12mm;
  background: var(--sheet); margin-bottom: 26px; border: var(--line-thick); box-shadow: 6px 6px 0 var(--ink);
  display: flex; flex-direction: column;
}
.pg-head { display: flex; align-items: flex-end; justify-content: space-between; padding-bottom: 3mm; border-bottom: var(--line-thick); margin-bottom: 7mm; }
.pg-shop { font-size: 12px; font-weight: 800; }
.pg-sec { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; }
.pg-sec b { background: var(--ink); color: var(--yellow); font-size: 11px; padding: 3px 7px; border-radius: 3px; font-weight: 700; }
.pg-body { flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: flex-start; gap: 7mm; padding: 4mm 1mm 2mm; }
.pg-foot { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--sub); padding-top: 3mm; border-top: 1.5px solid var(--ink); margin-top: 5mm; }

.page h2.big { font-size: 38px; line-height: 1.22; margin: 0; }
.page .desc { font-size: 14px; line-height: 1.75; color: var(--sub); margin: 0; }
.page .desc b { color: var(--ink); }
.kicker { display: block; font-size: 12px; font-weight: 800; color: var(--sub); }
.faint { color: var(--faint); font-size: 12px; }
.htile { width: 40px; height: 42px; font-size: 22px; padding-top: 4px; }
.htile.lg { width: 58px; height: 62px; font-size: 32px; }
.htile.xl { width: 80px; height: 86px; font-size: 46px; flex: none; }
.tile.empty { color: var(--faint); border-style: dashed; box-shadow: none; }
.tile.empty::before { display: none; }
.box { display: inline-block; width: 18px; height: 18px; border: var(--line); border-radius: 3px; flex: none; background: #fff; }

/* 1 표지 — 기획서 */
.cover-page { padding-top: 16mm; }
.cover-page .pg-body { justify-content: flex-start; }
.cv { flex: 1; display: flex; flex-direction: column; gap: 9mm; }
.cv-top { display: flex; justify-content: space-between; align-items: flex-start; }
.doc-no { margin: 0 0 4px; font-size: 12px; letter-spacing: .04em; }
.cv-shop { margin: 0; font-size: 15px; font-weight: 800; }
.sign { border-collapse: collapse; font-size: 11px; text-align: center; }
.sign th { border: var(--line); padding: 3px 10px; font-weight: 700; background: var(--yellow-soft); }
.sign td { border: var(--line); width: 54px; height: 50px; padding: 0; }
.stamp { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 2.5px solid var(--crimson); border-radius: 50%; color: var(--crimson); font: 700 12px 'Noto Serif KR', serif; transform: rotate(-12deg); letter-spacing: -.05em; }
.stamp.big { width: 110px; height: 110px; font-size: 20px; border-width: 4px; font-family: 'Black Han Sans', sans-serif; padding: 10px; text-align: center; line-height: 1.15; word-break: keep-all; }
.cv-title { padding: 12mm 0 10mm; border-top: 6px solid var(--ink); border-bottom: var(--line); }
.cv-who { margin: 0 0 4mm; font-size: 20px; font-weight: 800; }
.cv-title h1 { margin: 0; font-size: 62px; line-height: 1.1; }
.cv-sub { margin: 5mm 0 0; font-size: 15px; color: var(--sub); }
.cv-meta { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border: var(--line-thick); }
.cv-meta div { display: flex; border-bottom: var(--line); }
.cv-meta div:nth-child(odd) { border-right: var(--line); }
.cv-meta div:nth-last-child(-n+2) { border-bottom: 0; }
.cv-meta dt { width: 30mm; flex: none; padding: 3.5mm 4mm; font-size: 12px; font-weight: 800; background: var(--ink); color: #fff; }
.cv-meta dd { margin: 0; padding: 3.5mm 4mm; font-size: 14px; font-weight: 700; }
.cv-chars { display: flex; gap: 7mm; justify-content: center; padding: 6mm 0 2mm; }
.cv-chars .pair { display: flex; gap: 4px; }
.toc { margin-top: auto; }
.toc-h { margin: 0 0 3mm; font-size: 12px; font-weight: 800; }
.toc ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 10mm; }
.toc li { display: flex; align-items: baseline; gap: 8px; padding: 2.4mm 0; border-bottom: 1px solid #ccc; font-size: 13.5px; font-weight: 700; }
.toc li .mono { font-size: 11px; color: var(--sub); font-weight: 400; }
.toc li i { flex: 1; }

/* 2 여덟 글자 표 */
.pt { width: 100%; border-collapse: collapse; text-align: center; border: var(--line-thick); }
.pt th, .pt td { border: var(--line); padding: 3.2mm 2mm; }
.pt thead th { font-size: 12.5px; font-weight: 800; background: #f3f1ea; position: relative; }
.pt thead th.me { background: var(--yellow); }
.pt td.me { background: var(--yellow-soft); }
.pt .rh { width: 22mm; font-size: 12px; font-weight: 800; background: #f3f1ea; text-align: left; padding-left: 4mm; }
.pt td { font-size: 13px; }
.pt td b { font-size: 16px; }
.me-badge { display: inline-block; margin-right: 6px; background: var(--crimson); color: #fff; font-size: 11px; padding: 1px 7px; border-radius: 3px; }
.key { display: flex; gap: 7mm; align-items: center; padding: 7mm 8mm; background: var(--ink); color: #fff; border-radius: var(--r); }
.key .kicker { color: var(--yellow); }
.key .tile { box-shadow: 4px 4px 0 var(--yellow); }
.key h3 { margin: 4px 0 6px; font-size: 30px; }
.key h3 small { font-family: Pretendard, sans-serif; font-size: 13px; color: #ddd; font-weight: 600; margin-left: 4px; }
.key p { margin: 0; font-size: 14.5px; line-height: 1.7; }
.gans h3 { margin: 0 0 3mm; font-size: 13px; font-weight: 800; }
.gans-row { display: grid; grid-template-columns: repeat(10, 1fr); border: var(--line); }
.gans-row div { display: flex; flex-direction: column; align-items: center; padding: 2.4mm 0; border-right: 1.5px solid var(--ink); color: var(--faint); }
.gans-row div:last-child { border-right: 0; }
.gans-row .han { font-size: 20px; }
.gans-row small { font-size: 11px; }
.gans-row .on { background: var(--yellow); color: var(--ink); font-weight: 800; }
.gans p { margin: 3mm 0 0; font-size: 13px; color: var(--sub); line-height: 1.65; }
.note { margin: 0; font-size: 12.5px; color: var(--sub); padding-left: 3mm; border-left: 4px solid var(--yellow); }
.note b { color: var(--ink); }

/* 3 다섯 기운 — 칸 막대 */
.chart { border: var(--line-thick); padding: 6mm 7mm; box-shadow: var(--hard); }
.chart-h { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5mm; }
.chart-h h3 { margin: 0; font-size: 22px; }
.chart-h .mono { font-size: 11px; color: var(--sub); }
.bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 3.2mm; }
.bars li { display: grid; grid-template-columns: 26mm 1fr 10mm; align-items: center; gap: 4mm; font-size: 15px; font-weight: 800; }
.bars li small { color: var(--faint); font-weight: 600; font-size: 12px; }
.bars .cells { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; }
.bars .cells i { height: 18px; border: var(--line); border-radius: 2px; background: repeating-linear-gradient(45deg, transparent 0 3px, #e5e5e5 3px 4px); }
.bars li b { text-align: right; font-size: 18px; }
.bars li.zero { color: var(--faint); }
.alert { position: relative; padding: 8mm 7mm 6mm; border: var(--line-thick); border-left: 10px solid var(--crimson); }
.alert-tag { position: absolute; top: -12px; left: 6mm; background: var(--crimson); color: #fff; font-size: 12px; font-weight: 800; padding: 3px 10px; border-radius: 3px; }
.alert h3 { margin: 0 0 4mm; font-size: 28px; display: flex; align-items: center; gap: 10px; }
.alert h3 small { font-family: Pretendard, sans-serif; font-size: 13px; color: var(--sub); font-weight: 600; }
.el-sq { width: 16px; height: 16px; border: var(--line); }
.alert p { margin: 0; font-size: 15px; line-height: 1.8; }
.spec { width: 100%; border-collapse: collapse; border: var(--line-thick); }
.spec caption { text-align: left; font-size: 13px; font-weight: 800; margin-bottom: 3mm; }
.spec th, .spec td { border: var(--line); padding: 2.8mm 4mm; text-align: left; }
.spec th { vertical-align: middle; width: 42mm; font-size: 13px; font-weight: 800; background: #f3f1ea; white-space: nowrap; }
.spec td { font-size: 14px; font-weight: 600; }
.lk-ic { display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 8px; vertical-align: middle; background: var(--ink); color: var(--yellow); border-radius: 3px; }
.lk-ic svg { width: 14px; height: 14px; }

/* 실행 항목 메모 */
.memo { position: relative; padding: 6mm 5mm 4.5mm; background: var(--yellow-soft); border: var(--line); }
.memo-tag { position: absolute; top: -11px; left: 4mm; background: var(--yellow); border: var(--line); font-size: 11.5px; font-weight: 800; padding: 1px 9px; }
.memo p { margin: 0; display: flex; gap: 10px; align-items: center; font-size: 15px; font-weight: 700; }

/* 4·5 섹션 */
.sec { display: flex; flex-direction: column; gap: 4.5mm; padding-bottom: 7mm; border-bottom: var(--line); }
.sec:last-child { border-bottom: 0; padding-bottom: 0; }
.sec-top { display: flex; align-items: center; gap: 12px; }
.sec-no { font-size: 15px; font-weight: 700; background: var(--ink); color: var(--yellow); padding: 4px 9px; border-radius: 3px; }
.sec-top h2 { margin: 0; font-size: 34px; flex: 1; }
.sec-ic { width: 40px; height: 40px; display: grid; place-items: center; border: var(--line); border-radius: 50%; box-shadow: var(--hard-sm); }
.sec-ic svg { width: 20px; height: 20px; }
.sec-ic.목 { color: var(--목); } .sec-ic.화 { color: var(--화); } .sec-ic.토 { color: var(--토); } .sec-ic.금 { color: var(--금); } .sec-ic.수 { color: var(--수); }
.sec .lead { margin: 0; font-size: 21px; line-height: 1.6; font-weight: 800; letter-spacing: -.01em; }
.sec .body { margin: 0; font-size: 16px; line-height: 1.9; color: var(--ink-soft); }

/* 6 2027년 */
.yr { display: flex; justify-content: space-between; align-items: flex-end; padding: 7mm 8mm; background: var(--yellow); border: var(--line-thick); box-shadow: var(--hard); }
.yr .kicker { color: var(--ink); }
.yr-num { margin: 2mm 0 0; font-size: 96px; line-height: .9; font-weight: 700; letter-spacing: -.04em; }
.yr-chars { display: flex; gap: 10px; }
.yr-lead { margin: 0; font-size: 19px; line-height: 1.65; font-weight: 800; }
.year-body { margin: 0; font-size: 16px; line-height: 1.9; color: var(--ink-soft); }
.plan { width: 100%; border-collapse: collapse; border: var(--line-thick); }
.plan caption { text-align: left; font-size: 13px; font-weight: 800; margin-bottom: 3mm; }
.plan th, .plan td { border: var(--line); padding: 3.4mm 4mm; }
.plan th { width: 12mm; background: var(--ink); color: var(--yellow); font-size: 14px; }
.plan td { font-size: 14.5px; font-weight: 700; }
.plan .ck { width: 14mm; text-align: center; }

/* 7 질문 · 8 맺음말 */
.q { display: flex; gap: 12px; align-items: flex-start; padding: 5mm 6mm; border: var(--line-thick); }
.q-tag, .a-tag { font-size: 22px; font-weight: 700; line-height: 1; }
.q-tag { color: var(--crimson); }
.q b { font-size: 12px; color: var(--sub); }
.q p { margin: 4px 0 0; font-size: 18px; font-weight: 800; line-height: 1.5; }
.a { padding: 7mm 8mm; border: var(--line-thick); box-shadow: var(--hard); background: #fff; display: flex; flex-direction: column; gap: 3mm; }
.a-tag { color: var(--ink); background: var(--yellow); align-self: flex-start; padding: 3px 6px; }
.a b { font-size: 12px; color: var(--sub); }
.a p { margin: 0; font-size: 15.5px; line-height: 1.9; }
.qa-page.tight .a p { font-size: 13.5px; line-height: 1.7; }
.qa-page.tight .a { padding: 5mm 6mm; }
.pre { white-space: pre-wrap; }
.closing { margin-top: 2mm; display: flex; align-items: center; gap: 8mm; padding-top: 6mm; border-top: var(--line); }
.closing p { margin: 0; flex: 1; font-size: 14.5px; line-height: 1.8; color: var(--ink-soft); }
.seal { flex: none; }
.closing-page .closing { border-top: 0; flex-direction: column; text-align: center; }

@media print {
  @page { size: A4; margin: 0; }
  body { background: #fff !important; }
  .no-print { display: none !important; }
  .pages { width: 210mm; zoom: 1 !important; margin: 0; }
  .page { margin: 0; border: 0; box-shadow: none; break-after: page; }
  .page:last-child { break-after: auto; }
}
