/* 보고서 저장 — 미리보기(A4 쪽)와 PDF 출력. 색·글꼴은 퇴직연금 사이트 변수(--lx-*, Pretendard)만 쓴다. 인쇄 형식은 B안(보관) 인쇄 스타일의 쪽 구조를 참고. */
:root { --rp-ink: #12161f; --rp-mut: #5b6475; --rp-line: #d9dde7; --rp-acc: var(--lx-accent, #164ed8); --rp-soft: var(--lx-soft, #e6eefc); }
.rp-wrap { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 18px; align-items: start; }
.rp-ctl { border: 0.8px solid var(--rp-line); border-radius: 10px; background: #fff; padding: 12px 14px; position: sticky; top: 56px; } .rp-ctl h3 { font-size: 15px; margin: 0 0 8px; }
.rp-chk { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; padding: 3px 0; line-height: 1.4; cursor: pointer; } .rp-chk input { margin-top: 3px; accent-color: var(--rp-acc); }
.rp-pg { margin: 10px 0 8px; font-size: 13.5px; color: var(--rp-mut); } .rp-pg span { font-weight: 800; color: var(--rp-ink); font-size: 18px; }
.rp-save { width: 100%; border: 0; background: var(--rp-acc); color: #fff; border-radius: 8px; padding: 10px 12px; font: inherit; font-weight: 800; font-size: 15px; cursor: pointer; }
.rp-hint { font-size: 12px; color: var(--rp-mut); margin: 8px 0 0; line-height: 1.5; } .rp-sample { display: block; margin-top: 10px; font-size: 13.5px; font-weight: 700; color: var(--rp-acc); }
.rp-prev { min-width: 0; background: #eef1f6; border-radius: 10px; padding: 12px; overflow: hidden; }
.rp-pages { display: grid; gap: 14px; justify-items: center; }
.rp-page { width: 794px; height: 1123px; box-sizing: border-box; padding: 46px 50px 30px; background: #fff; color: var(--rp-ink); display: flex; flex-direction: column; box-shadow: 0 2px 10px rgba(18,22,31,.18); overflow: hidden; font-size: 12.5px; line-height: 1.55; font-family: Pretendard, "Noto Sans KR", sans-serif; }
.rp-page[hidden] { display: none; }
.rp-hd { display: flex; justify-content: space-between; font-size: 10.5px; color: var(--rp-mut); border-bottom: 1px solid var(--rp-line); padding-bottom: 6px; margin-bottom: 14px; }
.rp-body { flex: 1; min-height: 0; overflow: hidden; } .rp-body h2 { font-size: 21px; margin: 0 0 8px; letter-spacing: -.01em; } .rp-body h3 { font-size: 14px; margin: 14px 0 6px; } .rp-body p { margin: 0 0 8px; }
.rp-kick { font-size: 12px; color: var(--rp-mut); letter-spacing: .05em; margin: 36px 0 12px !important; } .rp-body h1 { font-size: 27px; line-height: 1.3; margin: 0 0 6px; }
.rp-huge { font-size: 62px; font-weight: 800; line-height: 1.1; color: var(--rp-acc); letter-spacing: -.03em; margin: 8px 0 4px !important; } .rp-huge span { font-weight: 400; color: var(--rp-mut); margin: 0 .1em; } .rp-huge small { font-size: 20px; font-weight: 600; color: var(--rp-mut); letter-spacing: 0; margin-left: 8px; }
.rp-sub { font-size: 13px; color: var(--rp-mut); }
.rp-meta { width: 100%; border-collapse: collapse; margin: 14px 0; border-top: 2px solid var(--rp-ink); } .rp-meta th { text-align: left; width: 150px; font-weight: 600; color: var(--rp-mut); padding: 6px 0; border-bottom: 1px solid var(--rp-line); font-size: 12px; } .rp-meta td { padding: 6px 0; border-bottom: 1px solid var(--rp-line); font-size: 12.5px; } .rp-meta code { font-size: 11px; overflow-wrap: anywhere; }
.rp-ok { display: inline-block; font-size: 11px; font-weight: 700; padding: 0 8px; border-radius: 999px; background: #e9f5ef; color: #1b6b45; border: 1px solid #b9dcc9; }
.rp-toc { margin: 4px 0 0; padding-left: 20px; columns: 2; font-size: 13px; line-height: 1.9; } .rp-toc li[hidden] { display: none; }
.rp-note { font-size: 11.5px; color: var(--rp-mut); } .rp-disc { font-size: 16px; }
table.rp-t { width: 100%; border-collapse: collapse; font-size: 11.5px; margin: 6px 0 10px; font-variant-numeric: tabular-nums; } .rp-t th { text-align: left; font-weight: 600; color: var(--rp-mut); border-bottom: 1.5px solid var(--rp-ink); padding: 4px 6px 4px 0; font-size: 10.5px; } .rp-t td { padding: 4px 6px 4px 0; border-bottom: 1px solid var(--rp-line); vertical-align: top; } .rp-t .r { text-align: right; }
.rp-t code, .rp-fn code { font-size: 10px; color: #3d4556; } .rp-dv code.rp-ex { font-size: 9.5px; background: #f6f8fb; padding: 1px 4px; border-radius: 3px; overflow-wrap: anywhere; } .rp-dv td { font-size: 10.5px; }
.rp-ul, .rp-ol { margin: 4px 0 8px; padding-left: 18px; font-size: 11.5px; } .rp-ol li { margin-bottom: 2px; }
.rp-chart { margin: 4px 0 6px; padding: 0 !important; border: 0 !important; } .rp-chart .vsvg { width: 100%; height: auto; max-height: 270px; } .rp-heat { margin: 4px 0 8px; } .rp-heat table.hm td { padding: 5px 2px; font-size: 11.5px; }
.rp-body .lgd { font-size: 10.5px; margin: 2px 0 6px; } .rp-body .bd { font-size: 10px; } .rp-body .bds { display: none; }
.rp-bars { display: flex; align-items: flex-end; gap: 6px; height: 170px; border-bottom: 1px solid var(--rp-line); margin: 6px 0 8px; } .rp-bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; font-size: 10.5px; } .rp-bar i { display: block; width: 60%; border-radius: 3px 3px 0 0; background: #9ec5f4; } .rp-bar i.e { background: #c9d6ee; } .rp-bar i.o { background: #164ed8; } .rp-bar b { margin-top: 3px; } .rp-bar small { color: var(--rp-mut); font-size: 9.5px; } .rp-bar.me span, .rp-bar.me b { color: #164ed8; font-weight: 800; }
.rp-fnh { font-size: 10px; font-weight: 700; color: var(--rp-mut); border-top: 1px solid var(--rp-ink); padding-top: 4px; margin-top: 8px; letter-spacing: .04em; }
.rp-fn { margin: 2px 0 6px; padding-left: 16px; font-size: 9.5px; line-height: 1.45; color: #3d4556; } .rp-fn li { margin-bottom: 1px; }
.rp-ft { display: flex; justify-content: space-between; font-size: 10px; color: var(--rp-mut); border-top: 1px solid var(--rp-line); padding-top: 5px; }
sup { font-size: .72em; color: var(--rp-acc); font-weight: 700; }
.rp-top { display: flex; gap: 14px; align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--rp-line); background: #fff; position: sticky; top: 0; z-index: 5; font-family: Pretendard, "Noto Sans KR", sans-serif; } .rp-top a { color: var(--rp-acc); text-decoration: none; font-weight: 700; }
body.rp-solo { margin: 0; background: #f5f8fb; font-family: Pretendard, "Noto Sans KR", sans-serif; } .rp-wrap.solo { max-width: 1180px; margin: 0 auto; padding: 14px; }
@media (max-width: 860px) { .rp-wrap { grid-template-columns: minmax(0, 1fr); } .rp-ctl { position: static; } .rp-prev { padding: 6px; } }
@media print {
  @page { size: A4; margin: 0; }
  html, body { background: #fff !important; margin: 0 !important; }
  body > *:not(.lab-app):not(.rp-wrap):not(.rp-solo):not(.rp-pages), .lx-top, .lx-side, .lx-hd, .fx-notice, .fx-tabs, .fx-tabhd, .pc-mock, .lx-legal, .bk-modal, .rp-top, .rp-ctl, .vtip, .lx-skip { display: none !important; }
  .lab-app, .lx-main, .fx-body, .rp-wrap, .rp-prev, .rp-pages, .rp-wrap.solo { display: block !important; margin: 0 !important; padding: 0 !important; max-width: none !important; background: none !important; border: 0 !important; }
  [data-pane]:not([data-pane="rep"]) { display: none !important; }
  .rp-page { zoom: 1 !important; box-shadow: none !important; break-after: page; page-break-after: always; margin: 0 !important; width: 210mm; height: 297mm; padding: 14mm 14mm 9mm; }
  .rp-page:last-of-type { break-after: auto; page-break-after: auto; }
  .rp-wrap > div:first-child { display: none !important; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.rp-chart { padding-right: 10px !important; box-sizing: border-box; } .rp-chart .vsvg { overflow: visible; }

/* 워터마크: 모든 쪽 대각선 한 줄 연한 회색 — 글자 위에 한 줄로 이어 얹되(막대·카드에 가려 끊기지 않게) 농도를 .075 로 낮춰 그림 축·라벨·표 글자 읽기를 해치지 않게 한다. 문구는 report_strings.py 한곳, 글자 크기는 report_view.wm_fs 가 길이에 맞춤 */
.rp-page { position: relative; }
.rp-wm { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; z-index: 5; transform: rotate(-30deg); text-align: center; color: rgba(40, 55, 90, .075); user-select: none; }
.rp-wm span { font-weight: 800; letter-spacing: -.01em; line-height: 1.3; white-space: nowrap; } .rp-wm small { font-size: 16px; font-weight: 700; margin-top: 6px; letter-spacing: .02em; white-space: nowrap; }
@media print { .rp-wm { color: rgba(40, 55, 90, .075) !important; } }

/* ---- PDF 읽기 모드(내장 뷰어) ---- */
.rpv { min-width: 0; border: 0.8px solid var(--rp-line); border-radius: 10px; background: #eef1f6; overflow: hidden; display: flex; flex-direction: column; }
.rpv-bar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; background: #fff; border-bottom: 0.8px solid var(--rp-line); padding: 6px 10px; position: sticky; top: 0; z-index: 3; }
.rpv-bar button { border: 0.8px solid var(--rp-line); background: #fff; border-radius: 8px; min-width: 36px; height: 36px; padding: 0 10px; font: inherit; font-size: 15px; cursor: pointer; color: var(--rp-ink); } .rpv-bar button:disabled { opacity: .4; cursor: default; }
.rpv-bar button:hover:not(:disabled) { border-color: var(--rp-acc); color: var(--rp-acc); } .rpv-sp { flex: 1 1 8px; }
.rpv-pg { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; } .rpv-pg input { width: 56px; height: 36px; border: 0.8px solid var(--rp-line); border-radius: 8px; padding: 0 6px; font: inherit; font-size: 15px; text-align: center; }
.rpv-z { font-size: 14px; min-width: 46px; text-align: center; color: var(--rp-mut); }
.rpv-seg { display: inline-flex; } .rpv-seg button { border-radius: 0; } .rpv-seg button:first-child { border-radius: 8px 0 0 8px; } .rpv-seg button:last-child { border-radius: 0 8px 8px 0; margin-left: -1px; }
.rpv-seg button[aria-pressed="true"], .rpv-bar [aria-pressed="true"] { background: var(--rp-soft); border-color: var(--rp-acc); color: var(--rp-acc); font-weight: 700; }
.rpv-msg { margin: 0; padding: 8px 14px; font-size: 14px; background: #fffaf0; border-bottom: 1px solid #e7cf8f; } .rpv-msg[hidden] { display: none; } .rpv-msg.err { background: #fdf1ef; color: #8a2417; }
.rpv-stage { display: flex; gap: 16px; justify-content: center; align-items: flex-start; padding: 12px; overflow: auto; max-height: 1000px; min-height: 480px; outline: none; }
.rpv-page { background: #fff; box-shadow: 0 2px 10px rgba(18, 22, 31, .22); flex: none; }
.rpv-note { margin: 0; padding: 6px 12px; font-size: 13.76px; color: var(--rp-mut); border-top: 0.8px solid var(--rp-line); background: #fff; }
@media (max-width: 860px) { .rpv-stage { padding: 6px; max-height: 80vh; } .rpv-bar { gap: 4px; padding: 6px; } .rpv-bar button { min-width: 40px; height: 40px; } .rpv-seg { display: none; } }
@media print { .rpv, .rpv-bar { display: none !important; } }

.rp-master .rp-pn { visibility: hidden; } .rp-master .rp-page { zoom: 1; margin: 0 auto 16px; }
@media print { body.rp-master > .rp-pages { display: block !important; } body.rp-master .rp-page { margin: 0 !important; } }

/* 10/16 점검: 범례 견본(.sw)이 .viz 밖에 있어 색 변수가 없어 PDF 에서 안 보였다 → 쪽 단위로 차트 토큰을 준다. 카드 배경은 투명(워터마크가 카드에 가려 끊기지 않게). */
.rp-page { --s1: #2a78d6; --s2: #eb6834; --s3: #1baf7a; --s-off: #898781; --v-ink: #0b0b0b; --v-ink2: #52514e; --v-muted: #6d6b66; --v-grid: #e1e0d9; --v-axis: #c3c2b7; --v-surface: transparent; }
.rp-page .viz, .rp-page .herobox { background: transparent; }
.rp-page .viz, .rp-page .herobox, .rp-page { --v-halo: #fff; }

/* 보고서 화면 머리의 로고 — 눌러 첫 화면(home)으로 */
.rp-brand { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; text-decoration: none; color: inherit; margin-right: 14px; } .rp-brand svg { width: 24px; height: 24px; }
