:root { color-scheme: light; --app-max-width: 448px; --report-accent: #a08a5f; --report-accent-strong: #7a6642; --report-accent-soft: #f2ead9; --report-ink: #2d302d; --paper: #fffcf7; --ink: #2d302d; --muted: #73746c; --accent: #826340; --line: #dfd8cb; --soft: #f5f0e5; --card: #fffdf9; --sans: 'Noto Sans KR', sans-serif; --serif: 'Noto Serif KR', serif; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--site-header-height, 64px) + 12px); }
body { margin: 0; color: var(--ink); background: var(--paper); font: 400 16px/1.85 var(--sans); word-break: keep-all; overflow-wrap: anywhere; }
button, a { -webkit-tap-highlight-color: transparent; }
#simple-retry, .simple-status button { padding: 10px 15px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); font: 500 13px var(--sans); cursor: pointer; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
main { width: min(100%, var(--app-max-width)); max-width: none; margin: 0 auto; }
#simple-status { --report-muted: var(--muted); --report-meta: var(--muted); --report-line: var(--line); }
.simple-confirmed-ten-gods { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.simple-confirmed-ten-gods h4 { margin: 0 0 10px; font: 600 14px/1.6 var(--sans); }
.simple-confirmed-ten-gods-list { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; margin: 0; font-size: 14px; }
.simple-confirmed-ten-gods-list dt { color: var(--muted); }
.simple-confirmed-ten-gods-list dd { margin: 0; font-weight: 600; }
.simple-confirmed-ten-gods .small-note { margin: 10px 0 0; }
.simple-page { padding: 48px 54px 52px; margin-bottom: 20px; background: var(--paper); border: 1px solid var(--line); }
/* 표지 — 정통사주 도감 표지(premium.css)의 비례와 색을 따른다. */
.simple-cover { text-align: center; }
.simple-cover-block { position: relative; isolation: isolate; display: grid; justify-items: center; align-content: center; min-height: clamp(520px, 80svh, 760px); padding: 54px 28px 34px; border: 1px solid #c8bca5; background: radial-gradient(ellipse at 50% 0%, #e8ddc44d, transparent 58%), #faf6ec; }
.simple-cover-block::before { content: ''; position: absolute; inset: 8px; z-index: -1; border: 1px solid #d8cdb8; pointer-events: none; }
.simple-cover-kicker { margin: 0 0 10px; color: #55432c; font: 600 15px/1.5 var(--serif); letter-spacing: .2em; }
.simple-cover-edition { margin: 0 0 42px; color: #655c4f; font: 12px/1.6 var(--sans); letter-spacing: .06em; }
.simple-cover h1 { margin: 0; color: #242522; font: 700 clamp(36px, 9vw, 56px)/1.3 var(--serif); letter-spacing: -.04em; }
.simple-cover-owner { display: block; margin: 0 auto 20px; font: 500 20px/1.6 var(--serif); letter-spacing: -.02em; overflow-wrap: anywhere; }
.simple-cover-line { display: block; font-size: clamp(24px, 6.7vw, 42px); white-space: nowrap; }
.simple-cover-seal { margin: 26px 0 24px; padding: 6px 7px; border: 2px solid #8b3d32; color: #8b3d32; font: 700 15px/1.15 var(--serif); letter-spacing: .08em; transform: rotate(-3deg); }
.simple-cover-subtitle { margin: 0; color: #4e504b; font: 400 15px/1.85 var(--serif); letter-spacing: -.015em; }
.simple-cover-imprint { margin: 40px 0 0; padding-top: 18px; border-top: 1px solid #d4c8b2; color: #655c4f; font: 11px/1.7 var(--sans); letter-spacing: .025em; }
.simple-cover-copy { max-width: 32em; margin: 28px auto 0; color: var(--ink); font-size: 15px; text-align: left; }
/* 목차 */
.toc-lead { margin: 0 0 26px; color: var(--muted); font-size: 14px; }
.toc-list { margin: 0; padding: 0; list-style: none; }
.toc-part { margin: 22px 0 6px; color: var(--accent); font: 600 12px/1.6 var(--sans); letter-spacing: .04em; }
.toc-part:first-child { margin-top: 0; }
.toc-row a { display: flex; align-items: baseline; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--line); color: var(--ink); text-decoration: none; }
.toc-row a:hover .toc-title { color: var(--accent); }
.toc-title { flex: 1; font: 500 15px/1.6 var(--serif); }
.toc-number { color: var(--muted); font: 500 12px var(--sans); font-variant-numeric: tabular-nums; }
/* 질문 한 쪽 — 그림은 결론 바로 아래에 붙는다. */
.chart-anchor { display: none; }
.chapter-page .premium-visual { margin: 0 0 28px; padding: 20px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); }
.chapter-page .premium-visual .ov-title { margin: 0 0 14px; color: var(--accent); font: 600 12px/1.6 var(--sans); text-align: left; }
.chapter-body { display: grid; gap: 14px; }
.chapter-body p { margin: 0; font-size: 15px; line-height: 1.95; }
.year-card { padding-top: 14px; border-top: 1px solid var(--line); }
.year-card:first-child { padding-top: 0; border-top: 0; }
.year-card .period-label { margin-bottom: 6px !important; }
/* 이럴 땐 이렇게 — 풀이 70 · 처방 30. 박스만 훑어 읽어도 되게 모양을 통일한다. */
.tip-card { margin-top: 26px; padding: 18px 18px 16px; border: 1px solid #e3d6b8; border-radius: 10px; background: #fbf6ea; break-inside: avoid; }
.tip-label { margin: 0 0 6px; color: var(--accent); font: 700 12px/1.4 var(--sans); letter-spacing: .04em; }
.tip-card .tip-title { margin: 0 0 6px; font: 700 17px/1.5 var(--serif); letter-spacing: -.03em; }
.tip-why { margin: 0 0 12px; color: var(--muted); font-size: 14px; line-height: 1.75; }
.tip-steps { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.tip-steps li { display: grid; grid-template-columns: auto 1fr; gap: 10px; font-size: 14.5px; line-height: 1.8; }
.tip-steps strong { color: var(--accent); font: 700 13px/1.9 var(--sans); white-space: nowrap; }
.tip-talent { padding-left: 0; border: 0; border-radius: 0; background: transparent; }
.life-chapter { padding: 14px 0; border-bottom: 1px solid #e3d6b8; break-inside: avoid; }
.life-chapter h3 { margin: 5px 0 8px; font: 700 18px/1.5 var(--serif); }
.life-chapter p { margin-bottom: 0; }
.concern-part { padding: 14px 0; border-bottom: 1px solid #e3d6b8; break-inside: avoid; }
.concern-part h3 { margin: 5px 0 8px; font: 700 18px/1.5 var(--serif); }
.concern-part p { margin: 0 0 10px; }
.concern-part p:last-child { margin-bottom: 0; }
/* 곁에 두면 좋은 기운 — 계산값 카드. 이럴 땐 이렇게와 구분되게 점선 테두리를 쓴다. */
.gaewoon-card { margin-top: 20px; padding: 18px 18px 16px; border: 1px dashed #c9b894; border-radius: 10px; background: var(--card); break-inside: avoid; }
.gaewoon-label { margin: 0 0 6px; color: var(--accent); font: 700 12px/1.4 var(--sans); letter-spacing: .04em; }
.gaewoon-card .gaewoon-title { margin: 0 0 6px; font: 700 17px/1.5 var(--serif); letter-spacing: -.03em; }
.gaewoon-why, .gaewoon-presence { margin: 0 0 8px; color: var(--muted); font-size: 14px; line-height: 1.75; }
.gaewoon-items { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 12px 0; font-size: 14px; }
.gaewoon-items dt { color: var(--accent); font-weight: 600; }
.gaewoon-items dd { margin: 0; }
.gaewoon-tip { margin: 0; font-size: 14px; line-height: 1.8; }
.gaewoon-support { margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.75; }
.gaewoon-line { display: grid; gap: 2px; margin: 20px 0 0; padding: 12px 16px; border: 1px dashed #c9b894; border-radius: 8px; font-size: 14px; line-height: 1.75; }
.gaewoon-line strong { color: var(--accent); font: 700 12px/1.6 var(--sans); }
.manual-actions { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; counter-reset: action; }
.manual-actions li { position: relative; padding: 14px 16px 14px 50px; background: var(--soft); border-radius: 6px; font-size: 15px; font-weight: 500; line-height: 1.8; counter-increment: action; }
.manual-actions li::before { content: counter(action); position: absolute; left: 16px; top: 14px; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: #fff; font: 600 12px/22px var(--sans); text-align: center; }
.simple-toast { position: fixed; left: 50%; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); z-index: 80; max-width: calc(100% - 32px); margin: 0; padding: 10px 16px; transform: translateX(-50%); border-radius: 999px; background: rgba(45,48,45,.92); color: #fff; font-size: 13px; line-height: 1.5; text-align: center; box-shadow: 0 6px 22px rgba(0,0,0,.18); }
.page-heading { margin-bottom: 30px; }
.eyebrow { margin: 0 0 12px; color: var(--accent); font-size: 11px; font-weight: 600; letter-spacing: .08em; }
.page-heading h1, .page-heading h2 { margin: 0; font: 700 clamp(25px, 4.5vw, 34px)/1.55 var(--serif); letter-spacing: -.045em; }
.hero-line { margin: 0 0 32px; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--accent); font: 600 clamp(19px, 3vw, 24px)/1.8 var(--serif); }
.summary-grid, .glance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 28px; }
.summary-item, .glance-card, .chapter-card, .tip-card { min-width: 0; break-inside: avoid; }
.item-label { margin: 0 0 7px; color: var(--accent); font: 500 11px/1.5 var(--sans); }
h3 { margin: 0 0 12px; font: 700 18px/1.65 var(--serif); letter-spacing: -.035em; }
.summary-item ul { margin: 0; padding-left: 17px; font-size: 13px; line-height: 1.9; }
.summary-item li + li { margin-top: 5px; }
.advice { color: var(--accent); font-weight: 600; }
.glance-card { padding: 20px; border: 1px solid var(--line); border-radius: 6px; }
.glance-card h3 { color: var(--accent); font: 600 12px var(--sans); }
.glance-value { margin: 12px 0; font: 600 19px/1.65 var(--serif); }
.glance-day .glance-value { font-size: 42px; letter-spacing: .12em; }
.glance-description { margin: 0; font-size: 13px; white-space: pre-line; }
.glance-skeleton, .glance-boundary, .glance-facts { grid-column: 1 / -1; }
.glance-skeleton { border: 1px solid var(--line); background: var(--soft); }
.glance-skeleton .glance-value { font-size: 25px; }
.glance-pillar .glance-value { font-size: 17px; }
.glance-boundary { background: var(--soft); border-color: var(--accent); }
/* 4쪽 — 격국으로 읽는 운명 한 편. 격국 제목 → 한 줄 제목 → 줄글. */
.glance-grid.glance-fate { grid-template-columns: minmax(0, 1fr); gap: 14px; }
.fate-essay { border: 1px solid var(--line); min-width: 0; padding: 24px 22px; background: var(--soft); }
.fate-structure { margin: 0 0 6px; color: var(--accent); font: 600 12px/1.5 var(--sans); letter-spacing: .04em; }
.fate-title { margin: 0 0 18px; font: 700 23px/1.5 var(--serif); letter-spacing: -.03em; word-break: keep-all; }
.fate-paragraph { margin: 0 0 14px; font-size: 15.5px; line-height: 1.95; word-break: keep-all; overflow-wrap: anywhere; }
.fate-paragraph:last-child { margin-bottom: 0; }
.fate-luck { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.fate-luck-label { margin: 0 0 10px; color: var(--accent); font: 600 12px/1.5 var(--sans); letter-spacing: .04em; }
.fate-mark { color: var(--ink); font-weight: 700; background: linear-gradient(transparent 62%, #eadcbc 62%); }
.glance-boundary .glance-value { margin-bottom: 0; font-size: 18px; }
.glance-facts { margin: 0; color: var(--muted); font-size: 12px; }
.manual-synthesis { margin: 0 0 26px; font-size: 16px; line-height: 1.9; }
.manual-principles { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.manual-principle { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 6px; break-inside: avoid; }
.manual-principle h3 { font-size: 17px; }
.manual-principle > p:last-child { margin: 0; font-size: 14px; line-height: 1.85; }
@media print {
  #glance .glance-grid { gap: 3mm; }
  #glance .glance-card { padding: 3mm; }
  #glance .glance-skeleton .glance-value { font-size: 14pt; }
  #glance .glance-pillar .glance-value, #glance .glance-boundary .glance-value { font-size: 10.5pt; margin: 2mm 0; }
  #glance .glance-description { font-size: 8.5pt; line-height: 1.55; }
  #glance .fate-essay { padding: 4mm 5mm; }
  #glance .fate-title { font-size: 13pt; margin-bottom: 3mm; }
  #glance .fate-paragraph { font-size: 9pt; line-height: 1.7; margin-bottom: 2mm; }
  #glance .fate-mark { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .manual-page .hero-line { margin-bottom: 3mm; }
  .manual-synthesis { font-size: 9.5pt; line-height: 1.65; margin-bottom: 3mm; }
  .manual-principles { grid-template-columns: minmax(0, 1fr); gap: 3mm; }
  .manual-principle { padding: 3mm; }
  .manual-principle h3 { font-size: 10pt; margin-bottom: 2mm; }
  .manual-principle > p:last-child { font-size: 8.5pt; line-height: 1.65; }
}
.glance-timing { margin: 0; font-size: 12px; }
.glance-timing dt { margin-top: 9px; color: var(--muted); font-size: 10px; }
.glance-timing dd { margin: 2px 0 0; font-weight: 500; }
.small-note { margin: 24px 0 0; color: var(--muted); font-size: 10px; text-align: center; }
.chapter-lead { margin: 0 0 28px; color: var(--accent); font: 600 20px/1.8 var(--serif); }
.chapter-stack { display: grid; gap: 24px; }
.chapter-card { border-top: 1px solid var(--line); padding-top: 22px; }
.chapter-card p { margin: 0; font-size: 15px; white-space: pre-line; }
.chapter-card .advice { margin-top: 16px; padding: 14px 18px; background: var(--soft); border-radius: 4px; font-size: 14px; }
.period-label { color: var(--accent); font-weight: 600; font-size: 13px !important; margin-bottom: 12px !important; }
.upgrade-note { margin: 32px 0 0; padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.upgrade-note p { margin: 0; }
.upgrade-note p:first-child { color: inherit; font-weight: 600; }
/* 20쪽 끝 — 정통사주 안내(실제 차례에 있는 차이만)와 차액 안내 */
.upgrade-offer { margin: 28px 0 0; padding: 24px 20px; border: 1px solid var(--accent); border-radius: 12px; background: var(--card); }
.upgrade-kicker { margin: 0 0 6px; color: var(--accent); font: 700 12px/1.5 var(--sans); letter-spacing: .06em; }
.upgrade-title { margin: 0 0 10px; font: 700 21px/1.5 var(--serif); letter-spacing: -.03em; word-break: keep-all; }
.upgrade-lead { margin: 0 0 18px; font-size: 14.5px; line-height: 1.85; word-break: keep-all; }
.upgrade-compare-scroll { overflow-x: auto; margin: 0 0 18px; }
.upgrade-compare { width: 100%; min-width: 340px; border-collapse: collapse; font-size: 13px; line-height: 1.6; }
.upgrade-compare th, .upgrade-compare td { padding: 9px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; word-break: keep-all; }
.upgrade-compare thead th { color: var(--muted); font: 600 12px/1.4 var(--sans); }
.upgrade-compare tbody th { width: 5.5em; color: var(--accent); font: 700 12.5px/1.6 var(--sans); }
.upgrade-compare td:not(.upgrade-premium-col) { color: var(--muted); }
.upgrade-compare .upgrade-premium-col { color: var(--ink); font-weight: 600; background: var(--soft); }
.upgrade-price { display: grid; gap: 6px; justify-items: center; text-align: center; }
.upgrade-price p { margin: 0; }
.upgrade-price-regular { color: var(--muted); font-size: 13px; text-decoration: line-through; }
.upgrade-price-diff { font: 700 17px/1.55 var(--serif); word-break: keep-all; }
.upgrade-price-note { color: var(--muted); font-size: 12px; line-height: 1.6; }
.upgrade-cta { display: inline-block; margin-top: 8px; padding: 13px 22px; border-radius: 999px; color: #fff; background: var(--accent); font: 700 15px/1.3 var(--sans); text-decoration: none; }
/* 후기와 별점 */
.review-box { margin: 36px 0 0; padding: 22px 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.review-title { margin: 0 0 6px; font: 700 18px/1.5 var(--serif); }
.review-privacy { margin: 0 0 14px; color: var(--muted); font-size: 12.5px; line-height: 1.7; }
.review-form { display: grid; gap: 12px; }
.review-stars { display: flex; gap: 4px; }
.review-star { padding: 0 2px; border: 0; background: none; color: #d8cfbd; font-size: 30px; line-height: 1; cursor: pointer; }
.review-star.is-on { color: #d9a441; }
.review-star:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.review-text { width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); color: var(--ink); font: 14px/1.7 var(--sans); resize: vertical; }
.review-submit { justify-self: start; padding: 11px 20px; border: 0; border-radius: 999px; color: #fff; background: var(--ink); font: 700 14px/1.3 var(--sans); cursor: pointer; }
.review-submit:disabled { opacity: .5; cursor: default; }
.review-status { margin: 0; min-height: 1.4em; color: var(--muted); font-size: 12.5px; }
.report-ending { margin: 36px 0 0; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; text-align: center; }
/* 사이트 전체가 448px 앱 폭이라 화면에서는 폭과 상관없이 모바일 배치를 쓴다. */
@media screen {
  main { margin-bottom: 0; }
  .simple-page { padding: 34px 24px 40px; margin: 0; border: 0; border-bottom: 8px solid #f0ece4; }
  .summary-grid, .glance-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .simple-cover { padding: 12px; }
  .simple-cover-block { padding-inline: 18px; }
  .simple-cover h1 { font-size: clamp(32px, 10vw, 40px); }
  .simple-cover-owner { font-size: 18px; }
  .simple-cover-imprint { font-size: 10px; letter-spacing: 0; }
  .summary-item + .summary-item { border-top: 1px solid var(--line); padding-top: 20px; }
  .summary-item ul { font-size: 14px; }
  .glance-card { padding: 22px; }
  .glance-description { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* 3쪽 타고난 그릇 */
.verdict-card { margin: 18px 0 22px; padding: 18px 20px; border: 1px solid #c9b894; border-radius: 10px; background: #fbf6ea; }
.verdict-label, .verdict-sub { margin: 0 0 6px; color: var(--accent); font: 700 12px/1.5 var(--sans); letter-spacing: .04em; }
.verdict-sentence { margin: 0 0 14px; font: 600 17px/1.65 var(--serif); color: var(--ink); }
.verdict-fortunes { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: fortune; }
.verdict-body { margin: -6px 0 14px; font-size: 14px; line-height: 1.75; }
.verdict-fortunes li { display: grid; gap: 2px; min-width: 0; font-size: 14px; line-height: 1.65; }
.verdict-closing { margin: 14px 0 0; padding: 10px 14px; border-left: 3px solid var(--accent); background: #f5ecd6; font: 600 14.5px/1.65 var(--serif); }
.verdict-fortunes strong { color: var(--accent-strong, #7a6642); font: 700 14px/1.65 var(--sans); word-break: keep-all; overflow-wrap: anywhere; }
.verdict-classic { display: grid; gap: 2px; margin: 14px 0 0; padding-top: 10px; border-top: 1px dashed #d8caa8; color: var(--muted); font: 400 13px/1.6 var(--serif); }
.verdict-classic small { font-size: 11px; }

/* 14·15쪽 카드 — 좌우로 나누지 않고 한 줄씩 가로로 쌓는다. */
.ally-columns { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 6px 0 0; }
.ally-column { padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); }
.ally-column ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.7; }
.ally-label { margin: 0 0 8px; font: 700 13px/1.5 var(--sans); }
.ally-grow .ally-label { color: #4f7a62; }
.ally-drain .ally-label { color: #a44740; }

/* 17쪽 전후 비교표(예전) · 18쪽 확인 목록 */
.shift-table { width: 100%; margin: 6px 0 0; border-collapse: collapse; font-size: 14px; line-height: 1.65; }
.shift-table th, .shift-table td { padding: 10px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.shift-table thead th { color: var(--muted); font: 600 12px/1.4 var(--sans); }
.shift-table tbody th { width: 3.5em; color: var(--accent); font: 700 13px/1.65 var(--sans); white-space: nowrap; }
.check-list { display: grid; gap: 12px; margin: 6px 0 0; padding: 0; list-style: none; }
.check-list li { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); }
.check-list strong, .check-avoid strong { color: var(--accent); font: 700 12px/1.6 var(--sans); }
.check-avoid { display: grid; gap: 2px; margin: 14px 0 0; padding: 12px 14px; border-left: 3px solid var(--accent); background: var(--soft); }
/* 19쪽 고민풀이 — 독자가 남긴 고민을 먼저 인용하고 그 아래에 답을 둔다. */
.concern-quote { margin: 0 0 18px; padding: 12px 14px; border-left: 3px solid var(--accent); background: var(--soft); break-inside: avoid; }
.concern-quote .item-label { margin: 0 0 4px; }
.concern-quote p:last-child { margin: 0; font-size: 14.5px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.concern-empty { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.75; }

@media print {
  @page { size: A4; margin: 16mm 17mm; }
  html { scroll-padding: 0; }
  body { background: #fff; font-size: 10pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .site-header, .site-footer, .site-menu-panel, .site-menu-backdrop, [class^="notice-"], .simple-status, .simple-toast, .part-nav, .part-sheet, .part-sheet-backdrop { display: none !important; }
  body.has-part-nav { padding-bottom: 0; }
  body.has-site-header { padding-top: 0; }
  body::before { display: none; }
  main { width: auto; max-width: none; margin: 0; }
  .simple-page { margin: 0; padding: 0; border: 0; background: #fff; }
  .simple-page + .simple-page, #chapters > .simple-page { break-before: page; }
  .page-heading { margin-bottom: 6mm; }
  .page-heading h1, .page-heading h2 { font-size: 22pt; line-height: 1.4; }
  .eyebrow { font-size: 8pt; margin-bottom: 3mm; }
  .hero-line { padding: 4mm 0; margin-bottom: 5mm; font-size: 14pt; line-height: 1.7; }
  .summary-grid, .glance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5mm; }
  .summary-item h3 { font-size: 10.5pt; margin-bottom: 2mm; }
  .summary-item ul { font-size: 9pt; line-height: 1.65; }
  .summary-item li + li { margin-top: 1mm; }
  .item-label { font-size: 8pt; }
  .glance-card { padding: 4mm; }
  .glance-card h3 { font-size: 9pt; }
  .glance-value { font-size: 13pt; margin: 3mm 0; }
  .glance-day .glance-value { font-size: 29pt; }
  .glance-description { font-size: 9pt; line-height: 1.75; }
  .glance-timing { font-size: 8.5pt; }
  .glance-timing dt { margin-top: 2mm; }
  .chapter-lead { margin-bottom: 6mm; font-size: 14pt; }
  .chapter-stack { gap: 6mm; }
  .chapter-card { padding-top: 5mm; }
  .chapter-card h3 { font-size: 13pt; }
  .chapter-card p { font-size: 11pt; line-height: 1.9; }
  .chapter-card .advice { font-size: 10pt; margin-top: 4mm; padding: 3mm 4mm; }
  .small-note, .report-ending { font-size: 8pt; }
  .simple-cover-block { min-height: 240mm; padding: 16mm 12mm; }
  .simple-cover h1, .simple-cover-line { font-size: 40pt; }
  .chapter-page .premium-visual { margin-bottom: 4mm; padding: 3mm 4mm; break-inside: avoid; }
  .chapter-page .premium-visual .ov-lead { margin: 1mm 0; font-size: 9pt; }
  .chapter-page .premium-visual .ov-bar-row { min-height: 0; margin: 0; }
  .chapter-page .premium-visual .ov-bars { gap: 1mm; }
  .chapter-page .premium-visual .ov-foot { margin-top: 2mm; font-size: 8pt; }
  .chapter-body p, .manual-actions li { font-size: 10pt; line-height: 1.8; }
  .chapter-page .page-heading { margin-bottom: 4mm; }
  .chapter-page .page-heading h2 { font-size: 19pt; }
  .chapter-page .chapter-lead { margin-bottom: 4mm; font-size: 12.5pt; line-height: 1.65; }
  .chapter-body { gap: 2.5mm; }
  .tip-card { margin-top: 4mm; padding: 3mm 4mm; }
  .tip-card .tip-title { font-size: 11.5pt; }
  .tip-why, .tip-steps li { font-size: 9.5pt; line-height: 1.7; }
  .tip-steps { gap: 1.5mm; }
  .tip-why { margin-bottom: 2mm; }
  .chapter-page .premium-visual svg { max-height: 52mm; }
  /* 18쪽: 세 해 카드와 세 문단을 한 장에 담는다. */
  .chapter-page .ov-year-cards { gap: 2mm; }
  .chapter-page .ov-year-card { padding: 2mm 2.5mm; font-size: 8.5pt; line-height: 1.45; }
  .chapter-page .ov-year-card strong { font-size: 10pt; }
  .chapter-page .year-card { padding-top: 2mm; }
  .chapter-page .year-card p { font-size: 9.5pt; line-height: 1.65; }
  /* 16쪽: 10년 그래프를 A4 한 장 안에 담는다. */
  .chapter-page .premium-decade { margin: 2mm 0; }
  .chapter-page .premium-decade-stat { padding: 2mm; gap: 1mm; }
  .chapter-page .premium-decade-stat strong { font-size: 10pt; }
  .chapter-page .premium-decade-heading { margin: 3mm 0 2mm; }
  .chapter-page .premium-decade-track { height: 30mm; }
  .chapter-page .premium-decade-marker { height: 4mm; }
  .chapter-page .premium-decade-year { margin-top: 1mm; }
  .chapter-page .premium-decade-note { margin: 2mm 0 0; font-size: 7.5pt; }
  .chapter-page .premium-visual .ov-bar-row { font-size: 8.5pt; line-height: 1.5; }
  .toc-row a { padding: 1.6mm 0; }
  .toc-title { font-size: 10.5pt; }
  .toc-part { margin: 4mm 0 1mm; }
  /* 6쪽: 겉/속 오행 막대를 좌우로 나란히 놓아 아래 개운 카드 자리를 만든다. */
  #page-6 .premium-visual { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 6mm; align-items: start; }
  #page-6 .premium-visual > * { grid-column: 1 / -1; }
  #page-6 .premium-visual > p.ov-lead:nth-of-type(1) { grid-column: 1; grid-row: 2; }
  #page-6 .premium-visual > p.ov-lead:nth-of-type(2) { grid-column: 2; grid-row: 2; }
  #page-6 .premium-visual > .ov-bars:nth-of-type(1) { grid-column: 1; grid-row: 3; }
  #page-6 .premium-visual > .ov-bars:nth-of-type(2) { grid-column: 2; grid-row: 3; }
  #page-6 .premium-visual > .ov-bars { width: 100%; max-width: none; margin: 1mm 0 0; }
  /* 6쪽: 그래프·본문·처방 아래에 들어가도록 카드를 요약형으로 줄인다. 생활 팁과 보조 기운은 화면에서만 보인다. */
  .gaewoon-card { margin-top: 3mm; padding: 2.5mm 4mm; }
  .gaewoon-label { margin-bottom: 1mm; font-size: 8pt; }
  .gaewoon-card .gaewoon-title { margin-bottom: 1mm; font-size: 11pt; }
  .gaewoon-why, .gaewoon-presence { margin: 0; font-size: 8.5pt; line-height: 1.55; }
  .gaewoon-items { display: flex; flex-wrap: wrap; gap: .5mm 2mm; margin: 1.5mm 0 0; font-size: 8.5pt; line-height: 1.5; }
  .gaewoon-items dd { margin-right: 3mm; }
  .gaewoon-tip, .gaewoon-support { display: none; }
  .gaewoon-line { margin-top: 5mm; padding: 2.5mm 4mm; font-size: 9.5pt; line-height: 1.6; }
  /* 3쪽에 총평 카드가 들어가도 여섯 발견과 함께 A4 한 장에 들어가게 줄인다. */
  .verdict-card { margin: 2mm 0 3mm; padding: 2.5mm 4mm; }
  .verdict-label, .verdict-sub { margin-bottom: 1mm; font-size: 8pt; }
  .verdict-sentence { font-size: 10.5pt; line-height: 1.5; margin-bottom: 1.5mm; }
  .verdict-fortunes { gap: 1mm; }
  .verdict-fortunes li { font-size: 8.5pt; line-height: 1.45; }
  .verdict-classic { margin-top: 1.5mm; padding-top: 1.5mm; font-size: 8pt; line-height: 1.4; }
  .verdict-body { margin: -0.5mm 0 1.5mm; font-size: 8.5pt; line-height: 1.5; }
  .verdict-closing { margin-top: 1.5mm; padding: 1.5mm 3mm; font-size: 9pt; line-height: 1.45; }
  #summary .summary-item h3 { font-size: 9pt; margin-bottom: 0.8mm; }
  #summary .summary-item ul { font-size: 8pt; line-height: 1.42; }
  #summary .summary-item li + li { margin-top: 0.5mm; }
  #summary .page-heading { margin-bottom: 2mm; }
  #summary-headline { font-size: 11.5pt; margin: 1mm 0 2mm; }
  .verdict-body { font-size: 8pt; line-height: 1.45; }
  .verdict-fortunes li { font-size: 8pt; line-height: 1.4; }
  .ally-columns { grid-template-columns: minmax(0, 1fr); gap: 3mm; }
  .ally-column { padding: 3mm 3.5mm; }
  .ally-column ul { font-size: 9.5pt; line-height: 1.6; gap: 2mm; }
  .shift-table { font-size: 9.5pt; line-height: 1.55; }
  .shift-table th, .shift-table td { padding: 2mm 2mm; }
  .check-list { gap: 2.5mm; }
  .check-list li, .check-avoid { padding: 2.5mm 3.5mm; font-size: 9.5pt; line-height: 1.6; }
  .concern-quote { margin-bottom: 4mm; padding: 2.5mm 3.5mm; }
  .concern-quote p:last-child { font-size: 9.5pt; line-height: 1.6; }
  .upgrade-note { margin-top: 8mm; padding: 3mm 4mm; font-size: 8pt; }
  /* PDF 소장본에는 판매 안내와 입력 폼을 싣지 않는다. */
  .upgrade-offer, .review-box { display: none !important; }
  h1, h2, h3 { break-after: avoid; }
  p { orphans: 2; widows: 2; }
}

/* 성향 분포 — 평생사주 A4 한 쪽에서는 그림이 300px 안쪽으로 줄어 축 이름이 6px 남짓으로 찍힌다.
   '배움'이 '배달'로 읽힐 만큼 작아서 글자를 키운다. */
.simple-page .ov-radar { max-width: 340px; }
.simple-page .ov-radar-label { font-size: 15px; fill: #4f5866; }
.simple-page .ov-radar-score { font-size: 15px; }

/* 앞으로 3년 카드 — 평생사주 한 쪽은 폭이 넉넉하니 칸을 넓혀 한 해 문구가 두 줄 안에 들어가게 한다. */
.simple-page .ov-year-cards { max-width: 520px; }

/* 16쪽 막대 위 등급 이름(두 글자) — 막대 폭보다 넓어도 한 줄로 */
.simple-page .premium-decade-bar strong { white-space: nowrap; font-size: 11px; }
@media print { .simple-page .premium-decade-bar strong { font-size: 8pt; } }

/* PDF 가독성은 정통사주의 본문 19px, 보조 17px, 메모 14px 기준을 따른다.
   내용이 한 장을 넘으면 이어 인쇄하되, 차례의 다음 항목은 항상 새 장에서 연다. */
@media print {
  @page { size: A4 portrait; margin: 13mm 8mm; }
  body { font-size: 19px; line-height: 1.7; }
  main, #chapters { display: block; }
  .simple-page { break-inside: auto; page-break-inside: auto; }
  main > .simple-page:not(:first-child), #chapters > .simple-page {
    break-before: page;
    page-break-before: always;
  }
  .chapter-body p, .chapter-card p, .year-card p, .life-chapter p,
  .manual-synthesis, .manual-principle > p:last-child, .manual-actions li {
    font-size: 19px !important;
    line-height: 1.7;
  }
  .chapter-lead, .chapter-page .chapter-lead, .hero-line { font-size: 19px !important; line-height: 1.7; }
  .tip-why, .tip-steps li, .chapter-card .advice, .gaewoon-why,
  .gaewoon-presence, .gaewoon-items, .gaewoon-line, .ally-column ul,
  .shift-table, .check-list li, .check-avoid, .concern-quote p:last-child, .glance-description,
  .summary-item ul, .verdict-body, .verdict-fortunes li { font-size: 17px !important; line-height: 1.65; }
  .eyebrow, .item-label, .tip-label, .gaewoon-label, .period-label,
  .small-note, .report-ending, .glance-facts, .verdict-label,
  .verdict-sub, .verdict-classic, .upgrade-note { font-size: 14px; }
  .toc-title { font-size: 17px; }
  .toc-number, .toc-part { font-size: 14px; }
  .chapter-page .premium-visual .ov-lead, .chapter-page .premium-visual .ov-foot,
  .chapter-page .premium-visual .ov-bar-row, .chapter-page .ov-year-card,
  .chapter-page .premium-decade-note { font-size: 14px; }
}
/* 간단 풀이 명식의 천간·지지 이름은 카드 왼쪽에 한 번씩 둔다. */
#simple-report .ov-pillars.has-part-labels { grid-template-columns: 30px repeat(4, minmax(0, 1fr)); max-width: 390px; }
#simple-report .ov-pillar-side { padding: 11px 0 12px; }
#simple-report .ov-pillar-side .ov-pillar-label { height: 13px; }
#simple-report .ov-pillars.has-part-labels .ov-char { min-height: 62px; box-sizing: border-box; }
#simple-report .ov-pillar-side .ov-char-part { justify-content: center; font-size: 10px; font-weight: 700; color: #667a96; white-space: nowrap; }
#simple-report .ov-pillar-side .ov-char + .ov-char { border-top-color: transparent; }

/* 인쇄 본문은 카드와 시각화 안에서도 같은 크기로 읽힌다.
   #glance 등 앞선 인쇄 규칙의 ID 선택자보다 구체적으로 지정한다. */
@media print {
  #simple-report #summary .summary-item h3,
  #simple-report #glance .glance-card:not(.glance-day) .glance-value,
  #simple-report #glance .fate-paragraph,
  #simple-report .simple-cover-copy,
  #simple-report .verdict-sentence,
  #simple-report .verdict-closing,
  #simple-report .gaewoon-tip,
  #simple-report .concern-empty,
  #simple-report .ov-para p,
  #simple-report .ov-quote p {
    font-size: 19px;
    line-height: 1.7;
  }
  #simple-report #glance .glance-description,
  #simple-report #glance .glance-pillar .glance-value,
  #simple-report #glance .glance-boundary .glance-value,
  #simple-report .glance-timing dd,
  #simple-report .toc-lead,
  #simple-report .simple-cover-subtitle,
  #simple-report .gaewoon-support,
  #simple-report .verdict-fortunes strong,
  #simple-report .verdict-classic,
  #simple-report .verdict-classic small,
  #simple-report .tip-steps strong,
  #simple-report .ally-label,
  #simple-report .shift-table tbody th,
  #simple-report .check-list strong,
  #simple-report .check-avoid strong,
  #simple-report .upgrade-lead,
  #simple-report .upgrade-compare,
  #simple-report .upgrade-compare tbody th,
  #simple-report .upgrade-price-regular,
  #simple-report .upgrade-price-diff,
  #simple-report .upgrade-price-note,
  #simple-report .upgrade-note,
  #simple-report .simple-confirmed-ten-gods-list,
  #simple-report .chapter-page .premium-visual .ov-lead,
  #simple-report .chapter-page .premium-visual .ov-foot,
  #simple-report .chapter-page .premium-decade-note,
  #simple-report .premium-decade-description strong,
  #simple-report .premium-decade-description span,
  #simple-report .premium-decade-date strong,
  #simple-report .premium-decade-date span,
  #simple-report .ov-chips span,
  #simple-report .ov-people-value,
  #simple-report .ov-line-current-score,
  #simple-report .ov-line-current-detail,
  #simple-report .ov-line-detail strong,
  #simple-report .ov-line-detail span,
  #simple-report .ov-line-detail small,
  #simple-report .ov-year-card span,
  #simple-report .ov-year-card small,
  #simple-report .ov-quote small {
    font-size: 17px;
    line-height: 1.65;
  }
  #simple-report .chapter-page .premium-visual .ov-title,
  #simple-report .glance-card h3,
  #simple-report .glance-timing dt,
  #simple-report .fate-structure,
  #simple-report .fate-luck-label,
  #simple-report .simple-cover-edition,
  #simple-report .simple-cover-imprint,
  #simple-report .period-label,
  #simple-report .gaewoon-line strong,
  #simple-report .shift-table thead th,
  #simple-report .upgrade-compare thead th,
  #simple-report .upgrade-kicker,
  #simple-report .simple-confirmed-ten-gods h4,
  #simple-report .premium-decade-stat span,
  #simple-report .premium-decade-stat small,
  #simple-report .premium-decade-heading span,
  #simple-report .premium-decade-marker,
  #simple-report .premium-decade-year,
  #simple-report .premium-decade-bar strong,
  #simple-report .ov-bar-label,
  #simple-report .ov-bar-row > strong,
  #simple-report .ov-slider-side,
  #simple-report .ov-scale-legend,
  #simple-report .ov-line-note,
  #simple-report .ov-line-current-title,
  #simple-report .ov-people-label {
    font-size: 14px !important;
    line-height: 1.5;
  }
  #simple-report .chapter-page .premium-decade-stat strong,
  #simple-report .chapter-page .ov-year-card strong,
  #simple-report .ov-line-current-title strong { font-size: 19px; line-height: 1.5; }
}

/* 지금 삶의 흐름: 「타고난 그릇」 카드 위에 놓이는 지금의 이야기. 왼쪽 강조선과 "지금" 점으로 아래 카드와 구분한다. */
.current-flow { margin: 20px 0 22px; padding: 18px 20px 16px 22px; border: 1px solid #e6dcc6; border-radius: 4px 12px 12px 4px; background: linear-gradient(180deg, #fffdf7, #fbf7ec); }
.current-flow p { margin: 0; }
.current-flow-label { display: flex; align-items: center; gap: 7px; margin-bottom: 10px !important; color: var(--accent); font: 700 12px/1.5 var(--sans); letter-spacing: .06em; }
.current-flow-label::before { content: ''; flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px rgba(122, 102, 66, .16); }
.current-flow-lead { margin-bottom: 14px !important; padding-bottom: 14px; border-bottom: 1px dashed #dccfb2; color: var(--ink); font: 600 17px/1.7 var(--serif); letter-spacing: -.01em; word-break: keep-all; overflow-wrap: anywhere; }
.current-flow-body { color: #4b463e; font: 400 14.5px/1.85 var(--sans); word-break: keep-all; overflow-wrap: anywhere; }
.current-flow-body + .current-flow-body { margin-top: 10px !important; }
/* PDF는 본문 19px·보조 17px·메모 14px 기준(위 인쇄 규칙)을 따른다. 쪽수는 늘어도 파트마다 새 쪽에서 시작한다. */
@media print {
  .current-flow { margin: 16px 0 20px; padding: 16px 20px 14px 22px; break-inside: avoid; }
  .current-flow p { orphans: 2; widows: 2; }
  #simple-report .current-flow-label { margin-bottom: 8px !important; font-size: 14px; }
  #simple-report .current-flow-lead { margin-bottom: 12px !important; padding-bottom: 12px; font-size: 19px; line-height: 1.7; }
  #simple-report .current-flow-body { font-size: 17px; line-height: 1.7; }
  #simple-report .current-flow-body + .current-flow-body { margin-top: 8px !important; }
}

/* 지난 시간 쪽(2026-10-02) */
.past-page .past-headline { margin-bottom: 22px; }
.past-page p { margin: 0 0 16px; line-height: 1.9; }
.past-mark { background: linear-gradient(transparent 38%, #f3dd9c 38%); color: inherit; padding: 0 1px; font-weight: 600; }
.past-bands { list-style: none; margin: 26px 0 30px; padding: 0; border-left: 2px solid var(--line); }
.past-band { position: relative; margin: 0 0 14px; padding: 2px 0 2px 24px; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: baseline; break-inside: avoid; }
.past-dot { position: absolute; left: -7px; top: 9px; width: 12px; height: 12px; border-radius: 50%; background: #b9ad94; border: 2px solid var(--paper); }
.past-caution .past-dot { background: #d9776a; }
.past-good .past-dot { background: #4f9a7c; }
.past-age { font: 700 14px/1.8 var(--sans); }
.past-tone { justify-self: start; font: 600 11px/1.8 var(--sans); color: var(--muted); }
.past-caution .past-tone { color: #b4574a; }
.past-good .past-tone { color: #3d7d63; }
.past-line { grid-column: 1 / -1; margin: 2px 0 0 !important; font-size: 15px; }
.past-why-title { margin: 34px 0 14px; font: 700 20px/1.6 var(--serif); letter-spacing: -.03em; }
.past-patterns { display: grid; gap: 12px; margin: 0 0 24px; }
.past-pattern { padding: 16px 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); break-inside: avoid; }
.past-pattern h4 { margin: 0 0 6px; color: var(--accent); font: 700 14px/1.6 var(--sans); }
.past-pattern p { margin: 0; font-size: 14.5px; line-height: 1.8; }
.past-settle { padding-top: 16px; border-top: 1px solid var(--line); font-weight: 600; }
@media print { .past-mark { background: linear-gradient(transparent 38%, #f3dd9c 38%); -webkit-print-color-adjust: exact; print-color-adjust: exact; } .past-page p { line-height: 1.8; } }

.past-claim { margin: 0 0 16px; padding: 2px 4px; background: linear-gradient(transparent 38%, #f3dd9c 38%); font-weight: 700; line-height: 1.9; }
@media print { .past-claim { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

.past-chart { margin: 22px 0 18px; padding: 18px 16px 12px; border: 1px solid var(--line); border-radius: 12px; break-inside: avoid; }
.past-chart-bars { display: flex; align-items: flex-end; justify-content: space-around; gap: 10px; height: 150px; border-bottom: 2px solid #cfc6b2; padding: 0 6px; }
.past-bar-col { flex: 1 1 0; max-width: 84px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; }
.past-bar { width: 100%; border-radius: 6px 6px 0 0; background: #b9ad94; }
.past-caution .past-bar { background: #d9776a; }
.past-good .past-bar { background: #4f9a7c; }
.past-bar-stage { position: absolute; bottom: -28px; font: 600 12px/1.4 var(--sans); white-space: nowrap; color: #4b4a45; }
.past-legend { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 38px 0 0 !important; font: 500 12px/1.5 var(--sans); }
.past-legend-item::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; background: #b9ad94; vertical-align: -1px; }
.past-legend-item.past-caution::before { background: #d9776a; }
.past-legend-item.past-good::before { background: #4f9a7c; }
.past-captions { list-style: none; margin: 0 0 26px; padding: 0; }
.past-caption { display: grid; grid-template-columns: 104px 1fr; gap: 10px; margin: 0 0 8px; font-size: 14.5px; line-height: 1.75; break-inside: avoid; }
.past-caption strong { font: 700 13px/1.75 var(--sans); }
.past-caption.past-caution strong { color: #b4574a; }
.past-caption.past-good strong { color: #3d7d63; }
@media print { .past-bar { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

.past-punch { margin: 8px 0 24px !important; padding-left: 14px; border-left: 3px solid #d9776a; font: 700 19px/1.7 var(--serif); letter-spacing: -.03em; color: #5a3a34; }
.past-captions { break-inside: avoid; page-break-inside: avoid; }

/* 선 그래프로 교체(2026-10-02): 위 막대 차트 규칙은 쓰지 않는다. */
.past-chart { padding: 14px 12px 10px; }
.past-svg { display: block; width: 100%; height: auto; overflow: visible; }
.past-zone { fill: #efece4; }
.past-zone.past-caution { fill: #f7dcd6; }
.past-zone.past-good { fill: #dcefe6; }
.past-mean { stroke: #9b9484; stroke-width: 1.2; stroke-dasharray: 5 5; }
.past-area { fill: rgba(80, 64, 40, .07); }
.past-line { fill: none; stroke: #4b4338; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
.past-dot { stroke: #fff; stroke-width: 2.5; fill: #b9ad94; }
.past-dot.past-caution { fill: #d9776a; }
.past-dot.past-good { fill: #4f9a7c; }
.past-axis { position: relative; height: 24px; margin-top: 4px; }
.past-axis-label { position: absolute; transform: translateX(-50%); font: 600 12px/1.4 var(--sans); white-space: nowrap; color: #4b4a45; }
.past-axis-label.past-caution { color: #b4574a; }
.past-axis-label.past-good { color: #3d7d63; }
.past-legend { margin-top: 8px !important; }
.past-legend-mean::before { content: ''; display: inline-block; width: 18px; border-top: 2px dashed #9b9484; margin-right: 6px; vertical-align: 3px; }
@media print { .past-zone, .past-dot, .past-area { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

.past-chart { margin: 14px 0 12px; }
.past-why-title { margin-top: 22px; }

@media screen {
  .simple-body .review-box { padding: 24px 20px; border-radius: var(--ui-radius); background: var(--ui-surface); border-color: var(--ui-line); }
  .simple-body .review-form { gap: 16px; }
  .simple-body .review-stars { gap: 4px; }
  .simple-body .review-star { width: 44px; min-height: 44px; border-radius: 8px; font-size: 30px; }
  .simple-body .review-star:hover { background: var(--ui-soft); }
  .simple-body .review-text { min-height: 132px; padding: 14px; border-radius: var(--ui-control-radius); border-color: var(--ui-line); background: var(--ui-surface); font-size: 16px; }
  .simple-body .review-text:focus-visible { outline: 2px solid var(--ui-action); outline-offset: 3px; }
  .simple-body :is(.review-privacy,.review-status) { color: var(--ui-muted); font-size: 13px; }
  .simple-body .report-ending { margin-top: 32px; padding: 24px 0 8px; font: 12px/1.8 var(--sans); color: var(--ui-muted); }
  .simple-body :is(#simple-retry,.simple-status button) { min-height: 48px; padding: 12px 18px; border-radius: var(--ui-control-radius); border-color: var(--ui-line); font: 600 14px/1.5 var(--sans); }
}

/* 12개월 쪽: 열두 칸 지도와 달 카드 */
.month-map { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; }
.month-cell { display: grid; gap: 2px; justify-items: center; padding: 10px 4px; border: 1px solid #e3d6b8; border-radius: 10px; background: #fffdf8; text-align: center; break-inside: avoid; }
.month-cell-label { font: 700 13px/1.3 var(--serif); }
.month-cell-icon { font-size: 18px; line-height: 1.2; }
.month-cell-keyword { font-size: 12px; color: #5c4b3a; }
.month-cell-kind { font-size: 11px; color: #8a7b66; }
.month-push { border-color: #a3392b; background: #fbeee9; }
.month-check { border-color: #9a7b3c; background: #f8f1de; }
.month-card { padding: 14px 0; border-bottom: 1px solid #e3d6b8; break-inside: avoid; }
.month-card h3 { margin: 4px 0 6px; font: 700 17px/1.5 var(--serif); }
.month-card p { margin-bottom: 4px; }
.month-turning { color: #8a7b66; font-size: 14px !important; }
.month-juwol { color: #5c4b3a; font-style: italic; }
.month-note { margin-top: 18px; color: #8a7b66; font-size: 13px !important; }
@media (max-width: 420px) { .month-map { grid-template-columns: repeat(3, 1fr); } }
@media print { .month-map { gap: 2mm; } .month-cell { padding: 2mm; } .month-card p { font-size: 9.5pt; line-height: 1.6; } }

/* 상황별 대화 처방전 */
.script-card { display: grid; gap: 8px; margin: 0 0 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); }
.script-card h3 { margin: 0; font-size: 15px; line-height: 1.5; }
.script-say, .script-avoid { display: grid; gap: 3px; margin: 0; font-size: 14px; line-height: 1.7; }
.script-say strong { color: var(--report-accent-strong, #7a6642); font-size: 12px; letter-spacing: .02em; }
.script-avoid strong { color: #a3392b; font-size: 12px; letter-spacing: .02em; }
@media print { .script-card { break-inside: avoid; padding: 3mm 3.5mm; } }

/* 나의 인연 체크리스트(영역별 대비) */
.partner-rows { display: grid; gap: 10px; }
.partner-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); }
.partner-row-head { display: none; }
.partner-axis { font-size: 13px; color: var(--report-accent-strong, #7a6642); letter-spacing: .02em; }
.partner-fit, .partner-sign { position: relative; margin: 0; padding-left: 62px; font-size: 14px; line-height: 1.7; }
.partner-fit::before, .partner-sign::before { position: absolute; left: 0; top: .2em; width: 54px; font-size: 11px; font-weight: 800; line-height: 1.5; }
.partner-fit::before { content: '편안한'; color: #4f7d5b; }
.partner-sign::before { content: '조심할'; color: #a3392b; }
@media print { .partner-row { break-inside: avoid; padding: 3mm 3.5mm; } .partner-fit, .partner-sign { font-size: 9pt; } }

/* 무료 결과가 가렸던 달을 여는 칸들(engine/reportTimeline.js): 12개월 표시·놓치지 말아야 할 달·인연이 닿는 때·인연의 몽타주 */
.month-cell-marks { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px; margin-top: 2px; }
.month-mark { padding: 1px 5px; border-radius: 999px; font: 700 10.5px/1.4 var(--sans, sans-serif); }
.month-mark-love { background: #fde8ea; color: #b23a52; }
.month-mark-shake { background: #efe9e1; color: #6b5a45; }
.month-mark-open { background: #8a2a24; color: #fff; }
.timeline-card, .lovewhen-card, .montage-card { display: grid; gap: 10px; margin: 18px 0 0; padding: 16px; border: 1px solid #e3cfa6; border-radius: 12px; background: #fbf4e6; break-inside: avoid; }
.timeline-title, .lovewhen-title, .montage-title { margin: 0; color: #8a2a24; font: 800 16px/1.5 var(--serif, serif); }
.timeline-row, .montage-row { padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid #eadfc8; }
.timeline-row strong, .montage-row strong { display: block; margin-bottom: 2px; font-size: 14px; }
.timeline-row p, .montage-row p { margin: 0; font-size: 14.5px; line-height: 1.65; }
.timeline-when { font-weight: 700; color: #2f2822; }
.timeline-shake strong { color: #6b5a45; }
.timeline-open strong { color: #8a2a24; }
.timeline-love strong { color: #b23a52; }
.lovewhen-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.lovewhen-list li { padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid #eadfc8; }
.lovewhen-list li.is-first { border-color: #b23a52; }
.lovewhen-list p { margin: 0; font-size: 14.5px; line-height: 1.65; }
.lovewhen-when { display: flex; align-items: center; gap: 6px; }
.lovewhen-badge { padding: 1px 8px; border-radius: 999px; background: #b23a52; color: #fff; font: 700 11.5px/1.5 var(--sans, sans-serif); }
.lovewhen-span, .lovewhen-next { color: #7b6f5f; font-size: 13.5px !important; }
.lovewhen-prep strong { display: block; margin-bottom: 4px; font-size: 14px; }
.lovewhen-prep ul { margin: 0; padding-left: 18px; font-size: 14.5px; line-height: 1.7; }
.lovewhen-caution, .lovewhen-note { margin: 0; font-size: 13.5px; line-height: 1.6; color: #6b5a45; }
@media print { .timeline-card, .lovewhen-card, .montage-card { padding: 3mm; } .lovewhen-list p, .timeline-row p, .montage-row p { font-size: 9.5pt; } }
