/* 리포트 본문 스타일 (화면 + 인쇄) */
.report {
  --r-ink: #2a2522;
  --r-muted: #7a6f66;
  --r-line: #e6ddd2;
  --r-paper: #fffdf9;
  --r-accent: #8c3b2b;
  --r-accent-soft: #f6ebe4;
  --r-gold: #b08a3e;
  --wood: #3f8f5a; --fire: #c8473a; --earth: #b9862f; --metal: #8a8f98; --water: #2f5f9e;
  font-family: 'Noto Serif KR', 'Nanum Myeongjo', serif;
  color: var(--r-ink);
  line-height: 1.85;
  font-size: 15.5px;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.report .chapter {
  background: var(--r-paper);
  border: 1px solid var(--r-line);
  border-radius: 14px;
  padding: 44px 48px;
  margin: 0 auto 28px;
  max-width: 820px;
  box-sizing: border-box;
}
.report h2 { font-size: 26px; margin: 4px 0 22px; padding-bottom: 12px; border-bottom: 2px solid var(--r-accent); color: var(--r-accent); }
.report h3 { font-size: 19px; margin: 30px 0 10px; color: var(--r-ink); }
.report h3::before { content: ''; display: inline-block; width: 6px; height: 18px; background: var(--r-gold); margin-right: 10px; vertical-align: -2px; border-radius: 2px; }
.report h4 { font-size: 16.5px; margin: 22px 0 6px; }
.report p { margin: 0 0 12px; text-align: justify; }
.report ul { margin: 6px 0 14px; padding-left: 22px; }
.report li { margin-bottom: 6px; }
.report .ch-num { font-family: 'Noto Sans KR', sans-serif; color: var(--r-gold); font-weight: 700; letter-spacing: 2px; font-size: 13px; }
.report .muted { color: var(--r-muted); }
.report .small { font-size: 13px; }
.report table.compact { font-size: 13px; }
.report table.compact td, .report table.compact th { padding: 5px 8px; }
.report table { width: 100%; border-collapse: collapse; margin: 10px 0 18px; font-size: 14.5px; }
.report th, .report td { border: 1px solid var(--r-line); padding: 8px 10px; text-align: left; vertical-align: top; }
.report th { background: var(--r-accent-soft); font-weight: 700; }
.report .pillar-table td, .report .pillar-table th { text-align: center; vertical-align: middle; }
.report .pillar-table td:first-child { background: #faf5ef; font-weight: 700; width: 70px; }
.report .pillar-table .gz { font-size: 38px; line-height: 1.2; font-weight: 700; }
.report .pillar-table .sub { font-size: 12px; color: var(--r-muted); }
.report .el-wood { color: var(--wood); } .report .el-fire { color: var(--fire); } .report .el-earth { color: var(--earth); }
.report .el-metal { color: var(--metal); } .report .el-water { color: var(--water); }
.report .box { border-radius: 10px; padding: 16px 20px; margin: 16px 0; border: 1px solid var(--r-line); background: #faf6f0; }
.report .box-accent { background: var(--r-accent-soft); border-color: #e9cfc2; }
.report .box-warn { background: #fff4e0; border-color: #f0d49c; }
.report .box-quote { background: transparent; border: none; text-align: center; }
.report .box-title { font-weight: 700; margin-bottom: 6px; color: var(--r-accent); }
.report .big-quote { font-size: 22px; color: var(--r-accent); font-weight: 700; }
.report .chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 16px; }
.report .chip { background: var(--r-accent-soft); color: var(--r-accent); border-radius: 999px; padding: 4px 14px; font-size: 14px; font-family: 'Noto Sans KR', sans-serif; }
.report .summary-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 10px; }
.report .sum-card { border: 1px solid var(--r-line); border-radius: 12px; padding: 14px 16px; background: #fff; }
.report .sum-label { font-size: 12.5px; color: var(--r-muted); font-family: 'Noto Sans KR', sans-serif; }
.report .sum-big { font-size: 24px; font-weight: 700; margin: 4px 0; color: var(--r-accent); }
.report .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: center; }
.report .element-chart { width: 100%; max-width: 340px; }
.report .element-chart .gen { stroke: #d8cbbb; stroke-width: 2; stroke-dasharray: 4 4; }
.report .element-chart circle { opacity: .9; }
.report .c-wood { fill: #dcefe2; stroke: var(--wood); stroke-width: 2; } .report .c-fire { fill: #f8dcd8; stroke: var(--fire); stroke-width: 2; }
.report .c-earth { fill: #f4e7cc; stroke: var(--earth); stroke-width: 2; } .report .c-metal { fill: #e8e9ec; stroke: var(--metal); stroke-width: 2; }
.report .c-water { fill: #d9e4f3; stroke: var(--water); stroke-width: 2; }
.report .el-name { font-size: 18px; font-weight: 700; fill: var(--r-ink); }
.report .el-pct { font-size: 11px; fill: var(--r-muted); }
.report .bars { display: flex; flex-direction: column; gap: 10px; }
.report .bar-row.wide { grid-template-columns: 120px 1fr 40px; }
.report .bar-row { display: grid; grid-template-columns: 64px 1fr 52px; align-items: center; gap: 8px; font-size: 14px; }
.report .bar { height: 14px; background: #f0e9e0; border-radius: 7px; overflow: hidden; }
.report .bar-fill { display: block; height: 100%; border-radius: 7px; }
.report .fill-wood { background: var(--wood); } .report .fill-fire { background: var(--fire); } .report .fill-earth { background: var(--earth); }
.report .fill-metal { background: var(--metal); } .report .fill-water { background: var(--water); }
.report .meter { position: relative; height: 16px; background: linear-gradient(90deg, #d9e4f3, #f3efe7 50%, #f8dcd8); border-radius: 8px; margin: 8px 0 4px; }
.report .meter-fill { height: 100%; border-right: 4px solid var(--r-accent); box-sizing: border-box; }
.report .meter-mid { position: absolute; left: 50%; top: -3px; bottom: -3px; border-left: 1px dashed var(--r-muted); }
.report .meter-labels { display: flex; justify-content: space-between; font-size: 12px; color: var(--r-muted); margin-bottom: 12px; }
.report .luck-chart { width: 100%; margin: 6px 0 14px; }
.report .luck-chart .grid { stroke: #e6ddd2; stroke-dasharray: 4 4; }
.report .luck-chart .line { stroke: var(--r-accent); stroke-width: 2.5; }
.report .luck-chart .dot { fill: var(--r-paper); stroke: var(--r-accent); stroke-width: 2; }
.report .luck-chart .axis { font-size: 11px; fill: var(--r-muted); }
.report .luck-chart .val { font-size: 10px; fill: var(--r-accent); }
.report .luck-block { border-top: 1px solid var(--r-line); padding-top: 14px; margin-top: 18px; }
.report .luck-head { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: baseline; margin-bottom: 8px; font-family: 'Noto Sans KR', sans-serif; }
.report .luck-gz { font-family: 'Noto Serif KR', serif; font-size: 26px; font-weight: 700; color: var(--r-accent); }
.report .luck-head.small .luck-gz { font-size: 20px; }
.report .luck-score { margin-left: auto; color: var(--r-gold); font-weight: 700; white-space: nowrap; }
.report .month-grid { display: grid; grid-template-columns: 1fr; gap: 6px; }
.report .month-card { border-bottom: 1px dashed var(--r-line); padding: 6px 0; }
.report .toc ol { columns: 2; column-gap: 32px; font-size: 16px; padding-left: 26px; }
.report .toc li { break-inside: avoid; margin-bottom: 8px; }
.report .toc a { color: inherit; text-decoration: none; border-bottom: 1px dotted var(--r-muted); }
.report .cover { text-align: center; padding: 70px 0 40px; }
.report .cover h1 { font-size: 36px; line-height: 1.45; margin: 26px 0 30px; color: var(--r-ink); }
.report .cover-badge { display: inline-block; border: 1px solid var(--r-gold); color: var(--r-gold); border-radius: 999px; padding: 6px 18px; font-family: 'Noto Sans KR', sans-serif; letter-spacing: 1px; }
.report .cover-pillars { display: flex; justify-content: center; gap: 18px; margin: 30px 0; }
.report .cp { border: 1px solid var(--r-line); border-radius: 10px; padding: 10px 16px; font-size: 40px; line-height: 1.3; font-weight: 700; background: #fff; }
.report .cover-info { color: var(--r-muted); line-height: 2; }
.report .cover-foot { margin-top: 60px; font-size: 13px; color: var(--r-muted); }

@media (max-width: 640px) {
  .report { font-size: 15px; }
  .report .chapter { padding: 26px 18px; border-radius: 10px; }
  .report .two-col, .report .summary-grid { grid-template-columns: 1fr; }
  .report .pillar-table .gz { font-size: 28px; }
  .report .pillar-table td, .report .pillar-table th { padding: 6px 4px; }
  .report .toc ol { columns: 1; }
  .report .cover h1 { font-size: 28px; }
  .report .cp { font-size: 30px; padding: 8px 10px; }
}

@media print {
  @page { size: A4; margin: 18mm 17mm 20mm; }
  .report { font-size: 11.5pt; line-height: 1.9; }
  .report .chapter { border: none; border-radius: 0; padding: 0; margin: 0; max-width: none; background: none; break-before: page; }
  .report .chapter:first-child { break-before: auto; }
  .report .luck-block, .report .box, .report table, .report .sum-card, .report .month-card { break-inside: avoid; }
  .report h2, .report h3, .report h4 { break-after: avoid; }
  .report a { color: inherit; }
  .report .cover { padding-top: 120px; }
}
.report .stars { color: var(--r-gold); letter-spacing: 1px; white-space: nowrap; }
.report .stars-off { color: #e3d9cc; }

/* 해외판 리포트 글꼴과 줄바꿈 */
#report-root:lang(en) .report, #report-root:lang(es) .report, .report:lang(en), .report:lang(es) { font-family: Georgia, 'Noto Serif KR', 'Times New Roman', serif; word-break: normal; hyphens: auto; }
#report-root:lang(zh) .report, .report:lang(zh) { font-family: 'Songti SC', 'STSong', 'SimSun', 'Noto Serif SC', 'Noto Serif KR', serif; word-break: normal; }
#report-root:lang(ja) .report, .report:lang(ja) { font-family: 'Hiragino Mincho ProN', 'Yu Mincho', 'Noto Serif JP', 'Noto Serif KR', serif; word-break: normal; line-break: strict; }
