@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@400;500;600;700&display=swap');
/* One reading surface for current and previously issued reports. */
:root {
    color-scheme: light !important;
    --bg: #F6F1E7; --surface: #F6F1E7; --surface-2: #EFE8DA;
    --text: #292720; --body: #48443C; --muted: #655C50; --line: #D9CDBB;
    --primary: #A34035; --secondary: #A34035; --accent: #886932; --danger: #A12C29;
    --serif: 'Noto Serif KR', 'AppleMyungjo', 'Batang', serif;
}
html { background: #E9E4DA !important; }
body { width: 100%; max-width: 430px; margin: 0 auto !important; padding: 28px 20px 90px !important; background: var(--bg) !important; color: var(--body) !important; font: 16px/1.85 'Pretendard', 'Apple SD Gothic Neo', sans-serif; overflow-wrap: break-word; }
*, *::before, *::after { box-sizing: border-box; }
.container { width: 100% !important; max-width: none !important; padding: 0 !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; }
h1, h2, h3, .ms-title { font-family: var(--serif) !important; color: var(--text) !important; }
h1 { font-size: 30px !important; text-align: left !important; margin: 22px 0 24px !important; padding: 0 0 22px !important; border-bottom: 1px solid var(--line) !important; line-height: 1.5 !important; }
h2 { display: block !important; font-size: 24px !important; line-height: 1.6 !important; margin: 34px 0 16px !important; }
h2::before { display: none !important; }
h3 { font-size: 20px !important; }
p, li { line-height: 1.85; word-break: keep-all; overflow-wrap: anywhere; }
a { color: #87352C; }
img, svg, canvas { max-width: 100%; height: auto; }
.grid-2, .grid-3 { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 16px !important; }
.card { background: #F1EADD !important; color: var(--body); box-shadow: none !important; padding: 18px !important; border: 1px solid var(--line) !important; border-radius: 8px !important; min-width: 0; }
.card:hover { transform: none; }
.card h4, .card-title { color: var(--text) !important; text-align: left !important; }
.premium-badge { background: none !important; color: #87352C !important; margin: 0 !important; padding: 0 !important; font-size: 11px !important; }
/* Reading hierarchy: identical contrast for past, present and future content. */
.container :is(p, li, blockquote) { color: var(--body); font-size: 16px; line-height: 1.85; }
.container :is(strong, b) { color: var(--text) !important; font-weight: 700; }
.container :is(em, i) { color: inherit; }
.container :is(.row-past, .row-present, .row-future) { color: var(--body) !important; font-weight: 400; opacity: 1 !important; }
.container :is(.row-past, .row-present, .row-future) td { color: var(--body) !important; }
.container .badge { color: #87352C !important; background: #EBDED0 !important; border: 1px solid #D9CDBB; }
.container .time-badge { font-size: 12px !important; line-height: 1.6; padding: 3px 9px; }
.container :is(.badge-past, .badge-future) { color: #48443C !important; background: #E8E0D3 !important; }
.container .badge-present { color: #fff !important; background: #A34035 !important; }
.container .badge-present :is(strong, b) { color: inherit !important; }
.container .card-title { text-align: left !important; line-height: 1.6; }
.container :is(.callout-box, blockquote) { padding: 16px; border-radius: 8px; }
.container a:focus-visible, summary:focus-visible { outline: 2px solid #A34035; outline-offset: 3px; }
table { width: 100% !important; table-layout: fixed; border-collapse: collapse; }
th, td { font-size: 14px; padding: 8px 6px; border-color: var(--line) !important; }
th { background: #EFE8DA !important; color: var(--text) !important; white-space: normal !important; }
.myeongsik-card { background: transparent !important; padding: 16px 0 !important; border: none !important; border-radius: 0 !important; }
.ms-sub { color: var(--muted) !important; font-size: 12px !important; }
.ms-title { text-align: left !important; font-size: 21px !important; }
.ms-title span { color: var(--accent) !important; }
table.myeongsik { border-spacing: 0 !important; border-collapse: collapse !important; text-align: center; margin: 20px 0 !important; }
.myeongsik th, .myeongsik td { border: 1px solid var(--line) !important; padding: 10px 2px !important; width: 25% !important; text-align: center !important; border-radius: 0 !important; }
.myeongsik td { background: transparent !important; color: var(--text) !important; }
.myeongsik td > div { font-family: var(--serif); }
.myeongsik tr > :nth-child(2) { color: #A34035 !important; background: #A340350A !important; border-left-color: #A3403580 !important; border-right-color: #A3403580 !important; }
.ms-balance { padding-top: 22px !important; margin-top: 24px !important; border-color: var(--line) !important; }
.ms-bar-row { height: 28px !important; margin: 9px 0 !important; }
.ms-balance-summary { text-align: left !important; font-size: 14px !important; line-height: 1.8; }
.progress-track { background: #E1D8CA !important; }
.progress-text { color: var(--text) !important; }
.callout-box { background: #EFE8DA !important; color: var(--body) !important; border-color: #BBA17C !important; }
.report-contents { margin: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 12px 0; }
.report-contents summary { cursor: pointer; font-weight: 600; min-height: 32px; }
.report-contents > div, .report-contents > nav { background: transparent !important; border: 0 !important; padding: 8px 0 !important; }
.report-contents li { margin: 8px 0; }
.report-contents a { color: #87352C !important; font-size: 14px; }
#chapter-nav { width: min(100%, 430px); margin: 0 auto; background: #F6F1E7F5 !important; border-color: var(--line) !important; }
#chapter-nav a { color: var(--body) !important; background: #F0E9DB !important; border-color: var(--line) !important; }
#chapter-nav a.active { color: #fff !important; background: #A34035 !important; }
#report-dock { right: max(16px, calc((100vw - 430px) / 2 + 16px)) !important; }
#dock-toggle, #share-cta, #pdf-save-btn, #share-link-btn, #regen-btn { background: #A34035 !important; color: #fff !important; box-shadow: none !important; border-color: #A34035 !important; }
#share-cta { max-width: calc(min(100vw, 430px) - 40px); }
#review-box, #review-done { max-width: 100% !important; background: #EFE8DA !important; color: var(--body) !important; }
#review-box input, #review-box textarea { max-width: 100%; background: #FBF8F2 !important; color: var(--text) !important; }
@media screen {
    table[data-stack] tr { background: #F6F1E7 !important; border-color: var(--line) !important; }
    table[data-stack] tr.row-present { background: #A3403509 !important; border-color: #A34035 !important; }
    table[data-stack] tr > td:first-child, table[data-stack] tr > th:first-child { color: var(--text) !important; border-color: var(--line) !important; }
    table[data-stack] td[data-th]::before { color: #655C50 !important; font-size: 12px !important; line-height: 1.6; margin-bottom: 8px; }
}
@media print {
    html, body { max-width: none !important; padding: 0 !important; background: #fff !important; color: #292720 !important; }
    .container { background: #fff !important; }
    #chapter-nav, #report-dock, #share-cta, #review-box { display: none !important; }
}

.report-contents > nav > div:first-child { display: none; }
.ms-bar-row > span:nth-child(2) { background: #E1D8CA !important; }

#review-box .rv-sub, #review-box .rv-consent { color: var(--body); }
.rv-stars button { color: #887E70; min-width: 44px; min-height: 44px; }
.rv-stars button.on { color: #A34035; }
#review-box .rv-submit { background: #A34035; color: #fff; }
#review-box .rv-submit:disabled { background: #DED5C6; color: #70675A; }

/* Generated artwork is cropped by CSS; the original atlas stays unmodified. */
.report-icon {
    display: inline-block; width: 32px; height: 32px;
    margin-right: 4px; vertical-align: middle; flex-shrink: 0;
    background: url('/static/images/report-icons.png') no-repeat;
    background-size: 300% 300%; mix-blend-mode: multiply;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
h2 .report-icon, h3 .report-icon, .card-title .report-icon { width: 40px; height: 40px; }
#chapter-nav .report-icon, .report-contents .report-icon { width: 24px; height: 24px; }

.legacy-chart { filter: invert(1) hue-rotate(180deg) brightness(1.1); mix-blend-mode: multiply; }
@media screen {
    table[data-stack]:not(.myeongsik) tr > td:first-child {
        width: auto !important; text-align: left !important;
    }
}
#report-dock .report-icon, #share-cta .report-icon {
    width: 24px; height: 24px; filter: invert(1) grayscale(1); mix-blend-mode: screen;
}

.chart-enlarge { display: block; width: 100%; padding: 0; margin: 16px 0; border: 0; background: transparent; color: #87352C; cursor: zoom-in; font: inherit; text-align: center; }
.chart-enlarge > img { display: block; width: 100%; margin-bottom: 0 !important; }
.chart-enlarge > span { display: block; padding: 8px; font-size: 13px; text-decoration: underline; }
.chart-enlarge:focus-visible { outline: 2px solid #A34035; outline-offset: 4px; }
@media print { .chart-enlarge > span { display: none; } }

/* Score + commentary tables: compact heading row, full-width prose below. */
@media screen {
    table[data-score] tr:not([data-stack-head]) {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(110px, 1fr);
        align-items: center; column-gap: 12px;
    }
    table[data-score]:not(.myeongsik) tr > td:first-child {
        border-bottom: 0 !important; padding-bottom: 11px !important;
    }
    table[data-score] tr > td:nth-child(2) { border-bottom: 0 !important; }
    table[data-score] tr > td:nth-child(2)::before { display: none; }
    table[data-score] tr > td:last-child {
        grid-column: 1 / -1; border-top: 1px solid var(--line) !important;
        font-size: 16px !important; line-height: 1.85 !important;
    }
    table[data-score] .progress-wrapper { margin: 0 !important; }
    table[data-score] .progress-text { font-size: 14px !important; white-space: nowrap; }
}

.container .report-rating { color: var(--text) !important; font-weight: 700; font-variant-numeric: tabular-nums; }

/* A4 document layout is independent of the mobile reading surface. */
@page { size: A4 portrait; margin: 15mm 14mm; }
@media print {
    html, body { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
    body { font-size: 11pt; line-height: 1.65; }
    .container :is(p, li, blockquote) { font-size: 11pt; line-height: 1.65; }
    h1 { font-size: 24pt !important; }
    h2 { font-size: 18pt !important; break-after: avoid; }
    h3 { font-size: 14pt !important; break-after: avoid; }
    h2 + p, h3 + p { break-after: avoid; }
    .callout-box { break-inside: avoid; }
    p, li { orphans: 3; widows: 3; }
    table { break-inside: auto !important; }
    thead { display: table-header-group; }
    tr { break-inside: avoid; }
    table[data-stack] { table-layout: fixed !important; }
    table[data-stack] th:last-child { width: 50%; }
    table[data-stack]:not(.myeongsik) tr > td:first-child { width: auto !important; white-space: normal !important; }
    th, td { font-size: 10pt !important; line-height: 1.6; padding: 8px !important; }
    .grid-2, .grid-3 { display: block !important; }
    .card { margin: 12px 0; break-inside: avoid; }
    .chart-enlarge { break-inside: avoid; margin: 12px 0; }
    .chart-enlarge img { max-height: 125mm; width: auto; max-width: 100%; margin: 0 auto !important; object-fit: contain; }
    .report-contents summary { display: none; }
    .report-contents { break-inside: avoid; }
    .report-icon { width: 22px; height: 22px; }
    .progress-text { width: auto; min-width: 32px; }
    dialog { display: none !important; }
}

/* Never paint a dark embedded chart before its display palette is classified. */
.container img[src^="data:image/png;base64,"]:not(.chart-ready) { visibility: hidden; }
