/* ═══════════════════════════════════════════════════════════════
   유료 리포트 페이지 스타일
   네임스페이스: .rp-* (report page)
   시뮬레이션 HTML의 색 시스템·타이포 유지
   ═══════════════════════════════════════════════════════════════ */

/* ─── 리포트 페이지 컨테이너 ─── */
#report-page {
  display: none;
  max-width: 780px;
  margin: 0 auto;
  padding: 24px 16px;
  background: #fafafa;
  font-family: 'Pretendard','Apple SD Gothic Neo',sans-serif;
  color: #1a1a2e;
  line-height: 1.6;
}

/* 리포트 색 시스템 (시뮬레이션 HTML 기준) */
#report-page {
  --rp-ink: #1a1a2e;
  --rp-sub: #6b7280;
  --rp-card: #fff;
  --rp-accent: #7c3aed;
  --rp-accent-deep: #4c1d95;
  --rp-accent-bg: #f5f3ff;
  --rp-accent-border: #e9d5ff;
  --rp-safe: #059669;
  --rp-safe-bg: #ecfdf5;
  --rp-warn: #d97706;
  --rp-warn-bg: #fffbeb;
  --rp-danger: #dc2626;
  --rp-danger-bg: #fef2f2;
  --rp-border: #e5e7eb;
  --rp-border-light: #f3f4f6;
}

/* ─── 리포트 헤더 ─── */
#report-header {
  background: linear-gradient(135deg, #f59e0b 0%, #92400e 100%);
  border-radius: 20px;
  padding: 36px 32px;
  color: #fff;
  margin-bottom: 28px;
}
#report-header .rp-hdr-badge {
  font-size: 11px;
  font-weight: 800;
  background: rgba(255,255,255,.18);
  padding: 4px 14px;
  border-radius: 100px;
  display: inline-block;
  margin-bottom: 14px;
  letter-spacing: .08em;
}
#report-header h1 {
  font-size: 24px;
  font-weight: 800;
  margin-bottom: 8px;
  line-height: 1.4;
}
#report-header p {
  font-size: 13px;
  opacity: .85;
  line-height: 1.7;
  margin: 0;
}
#report-header .rp-hdr-acts {
  margin-top: 8px;
  font-size: 12px;
  opacity: 0.75;
}
#report-header .rp-hdr-coverage {
  margin-top: 10px;
  font-size: 12px;
}
#report-header .rp-hdr-coverage strong {
  font-size: 14px;
  color: #fde68a;
}

/* ─── 인트로 박스 ─── */
.rp-intro-box, .rp-intro-warn {
  background: var(--rp-card);
  border-radius: 14px;
  padding: 18px 22px;
  margin-bottom: 14px;
  font-size: 13px;
  line-height: 1.8;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.rp-intro-box {
  background: var(--rp-accent-bg);
  color: var(--rp-accent-deep);
}
.rp-intro-warn {
  background: var(--rp-warn-bg);
  color: #92400e;
}
.rp-blank-sample {
  background: #fef3c7;
  padding: 1px 6px;
  border-radius: 4px;
  color: #92400e;
  font-weight: 600;
}

/* ─── 목차 ─── */
#report-toc {
  background: var(--rp-card);
  border-radius: 14px;
  padding: 20px 24px;
  margin-bottom: 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.rp-toc-title {
  font-size: 13px;
  font-weight: 800;
  color: var(--rp-accent);
  margin-bottom: 10px;
}
.rp-toc-items {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.rp-toc-item {
  font-size: 13px;
  color: var(--rp-ink);
  text-decoration: none;
  padding: 4px 12px;
  border: 1px solid var(--rp-border);
  border-radius: 100px;
  transition: all 0.15s;
}
.rp-toc-item:hover {
  background: var(--rp-accent-bg);
  border-color: var(--rp-accent);
  color: var(--rp-accent);
}

/* ─── 섹션 공통 ─── */
.rp-section-header, .rp-sub-section {
  background: var(--rp-card);
  border-radius: 18px;
  padding: 32px;
  margin-bottom: 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.rp-section-label, .rp-sub-label {
  font-size: 12px;
  font-weight: 800;
  color: var(--rp-accent);
  letter-spacing: .06em;
  margin-bottom: 6px;
}
.rp-section-title, .rp-sub-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--rp-ink);
  margin-bottom: 16px;
  line-height: 1.4;
}
.rp-section-desc {
  font-size: 14px;
  color: var(--rp-sub);
  margin-bottom: 0;
  line-height: 1.7;
}

/* ─── PART 1: 매트릭스 ─── */
.rp-matrix-box {
  background: var(--rp-card);
  border-radius: 18px;
  padding: 28px;
  margin-bottom: 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.rp-matrix-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--rp-ink);
  margin-bottom: 6px;
}
.rp-matrix-desc {
  font-size: 13px;
  color: var(--rp-sub);
  margin-bottom: 16px;
  line-height: 1.6;
}
.rp-mx-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 600px) {
  .rp-mx-grid { grid-template-columns: 1fr; }
}
.rp-mx-cell {
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 13px;
  line-height: 1.6;
}
.rp-mx-star {
  background: linear-gradient(135deg, var(--rp-accent-bg), #ede9fe);
  border: 2px solid var(--rp-accent);
}
.rp-mx-good {
  background: var(--rp-accent-bg);
  border: 1px solid var(--rp-accent-border);
}
.rp-mx-warn {
  background: var(--rp-warn-bg);
  border: 1px solid #fde68a;
}
.rp-mx-cell-title {
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 4px;
}
.rp-mx-star .rp-mx-cell-title { color: var(--rp-accent); }
.rp-mx-good .rp-mx-cell-title { color: var(--rp-accent-deep); }
.rp-mx-warn .rp-mx-cell-title { color: #92400e; }
.rp-mx-cell-fit {
  font-size: 12px;
  color: var(--rp-sub);
  margin-bottom: 4px;
}
.rp-mx-cell-hint {
  font-size: 12px;
  color: var(--rp-ink);
  line-height: 1.6;
}

/* ─── PART 1: 활동 카드 ─── */
.rp-qc {
  background: var(--rp-card);
  border: 1px solid var(--rp-accent-border);
  border-radius: 14px;
  margin-bottom: 16px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.rp-qc-key {
  border: 2px solid var(--rp-accent);
}
.rp-qc-head {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--rp-accent-bg);
  border-bottom: 1px solid var(--rp-accent-border);
  flex-wrap: wrap;
}
.rp-qc-num {
  font-size: 12px;
  font-weight: 800;
  color: #fff;
  background: var(--rp-accent);
  padding: 3px 10px;
  border-radius: 100px;
}
.rp-qc-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--rp-accent-deep);
  flex: 1;
  min-width: 160px;
}
.rp-qc-warn-badge {
  font-size: 11px;
  font-weight: 700;
  color: #92400e;
  background: var(--rp-warn-bg);
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 4px;
}
.rp-qc-grade {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 100px;
}
.rp-grade-a { background: var(--rp-safe-bg); color: var(--rp-safe); }
.rp-grade-b { background: var(--rp-warn-bg); color: var(--rp-warn); }
.rp-grade-c { background: var(--rp-danger-bg); color: var(--rp-danger); }

.rp-qc-body {
  padding: 20px;
}
.rp-qhel-row {
  display: flex;
  gap: 10px;
  margin-bottom: 10px;
}
.rp-qhel-dot {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--rp-accent);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rp-qhel-txt {
  font-size: 14px;
  color: #374151;
  line-height: 1.7;
  flex: 1;
}
.rp-blank {
  background: #fef3c7;
  padding: 1px 6px;
  border-radius: 4px;
  color: #92400e;
  font-weight: 600;
  font-size: 13px;
}
.rp-qc-tip {
  font-size: 12px;
  color: #6d28d9;
  margin-top: 12px;
  padding: 10px 14px;
  background: var(--rp-accent-bg);
  border-radius: 8px;
  line-height: 1.6;
}
.rp-qc-warning {
  font-size: 12px;
  color: #92400e;
  margin-top: 10px;
  padding: 10px 14px;
  background: var(--rp-warn-bg);
  border-radius: 8px;
  line-height: 1.6;
  border-left: 3px solid var(--rp-warn);
}

/* ─── PART 2: 안전도 + 검수 ─── */
.rp-safety-box {
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 20px;
  text-align: center;
}
.rp-safety-safe {
  background: var(--rp-safe-bg);
  color: #065f46;
}
.rp-safety-warn {
  background: var(--rp-warn-bg);
  color: #92400e;
}
.rp-safety-danger {
  background: var(--rp-danger-bg);
  color: #991b1b;
}
.rp-safety-label {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
}
.rp-safety-percent {
  font-size: 42px;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 10px;
}
.rp-safety-comment {
  font-size: 13px;
  line-height: 1.6;
}

.rp-checks {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 20px;
}
.rp-chk {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 14px;
}
.rp-chk-safe { background: var(--rp-safe-bg); color: #15803d; }
.rp-chk-warn { background: var(--rp-warn-bg); color: #92400e; }
.rp-chk-danger { background: var(--rp-danger-bg); color: #991b1b; }
.rp-chk-icon { font-size: 16px; }
.rp-chk-label { flex: 1; font-weight: 600; }
.rp-chk-status { font-size: 12px; font-weight: 700; }

.rp-fixes-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--rp-danger);
  margin-bottom: 12px;
  margin-top: 8px;
}
.rp-fix-box {
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
}
.rp-fix-danger {
  background: var(--rp-danger-bg);
  border: 1px solid #fca5a5;
}
.rp-fix-warn {
  background: var(--rp-warn-bg);
  border: 1px solid #fde68a;
}
.rp-fix-header {
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 6px;
}
.rp-fix-danger .rp-fix-header { color: var(--rp-danger); }
.rp-fix-warn .rp-fix-header { color: #92400e; }
.rp-fix-detail {
  font-size: 13px;
  color: #374151;
  margin-bottom: 12px;
  line-height: 1.6;
}
.rp-fix-ba {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 8px;
  align-items: start;
  margin-bottom: 10px;
}
@media (max-width: 600px) {
  .rp-fix-ba { grid-template-columns: 1fr; }
  .rp-fix-arrow { transform: rotate(90deg); margin: 4px auto; }
}
.rp-fix-before, .rp-fix-after {
  background: #fff;
  border-radius: 8px;
  padding: 10px 12px;
}
.rp-fix-ba-label {
  font-size: 11px;
  font-weight: 800;
  margin-bottom: 4px;
}
.rp-fix-before .rp-fix-ba-label { color: var(--rp-danger); }
.rp-fix-after .rp-fix-ba-label { color: var(--rp-safe); }
.rp-fix-ba-text {
  font-size: 13px;
  line-height: 1.6;
  color: #374151;
}
.rp-fix-before .rp-fix-ba-text {
  text-decoration: line-through;
  text-decoration-color: rgba(220, 38, 38, 0.4);
}
.rp-fix-arrow {
  font-size: 20px;
  color: var(--rp-sub);
  align-self: center;
}
.rp-fix-explain {
  font-size: 12px;
  color: #6b7280;
  line-height: 1.6;
  margin-top: 6px;
}
.rp-fixes-safe {
  background: var(--rp-safe-bg);
  color: #065f46;
  padding: 16px 20px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
}

/* ─── PART 3 Section A: 스토리 아크 ─── */
.rp-arc-step {
  display: flex;
  gap: 14px;
  padding: 14px 0;
}
.rp-arc-step:not(:last-child) {
  border-bottom: 1px dashed var(--rp-border);
}
.rp-arc-num {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--rp-accent);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rp-arc-num-key {
  background: var(--rp-accent-deep);
  box-shadow: 0 0 0 3px var(--rp-accent-border);
}
.rp-arc-body b {
  font-size: 14px;
  color: var(--rp-ink);
  display: block;
  margin-bottom: 4px;
}
.rp-arc-body span {
  font-size: 13px;
  color: var(--rp-sub);
  line-height: 1.7;
}
.rp-arc-conn {
  font-size: 12px;
  color: var(--rp-accent);
  font-weight: 700;
  margin: 4px 0 4px 50px;
}
.rp-arc-overall {
  margin-top: 14px;
  padding: 12px 16px;
  background: var(--rp-accent-bg);
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--rp-accent-deep);
}

/* ─── PART 3 Section B: 글자수 배분 ─── */
.rp-bar-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--rp-border-light);
}
.rp-bar-row:last-of-type { border-bottom: none; }
.rp-bar-lbl {
  width: 190px;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  line-height: 1.4;
}
.rp-bar-lbl-key { color: var(--rp-accent); font-weight: 800; }
.rp-bar-trk {
  flex: 1;
  height: 10px;
  background: var(--rp-border-light);
  border-radius: 5px;
  overflow: hidden;
  min-width: 80px;
}
.rp-bar-fill, .rp-bar-fill-key {
  height: 100%;
  border-radius: 5px;
}
.rp-bar-fill { background: var(--rp-accent); }
.rp-bar-fill-key { background: var(--rp-accent-deep); }
.rp-bar-cnt {
  width: 90px;
  text-align: right;
  font-size: 12px;
  font-weight: 700;
  color: #374151;
}
.rp-bar-total {
  text-align: right;
  margin-top: 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--rp-sub);
}
@media (max-width: 600px) {
  .rp-bar-row { flex-wrap: wrap; }
  .rp-bar-lbl { width: 100%; }
}

/* ─── PART 3 Section C: 문항별 서술 ─── */
.rp-qd {
  background: var(--rp-card);
  border: 1px solid var(--rp-border);
  border-radius: 16px;
  margin-bottom: 20px;
  overflow: hidden;
}
.rp-qd-key {
  border: 2px solid var(--rp-accent);
}
.rp-qd-head {
  padding: 20px 24px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  border-bottom: 1px solid var(--rp-border-light);
}
.rp-qd-badge {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--rp-accent-bg);
  color: var(--rp-accent);
  font-size: 15px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rp-qd-key .rp-qd-badge {
  background: var(--rp-accent);
  color: #fff;
}
.rp-qd-head-text { flex: 1; }
.rp-qd-head-text h3 {
  font-size: 15px;
  font-weight: 800;
  color: var(--rp-ink);
  margin: 0 0 4px;
  line-height: 1.4;
}
.rp-qd-head-text p {
  font-size: 13px;
  color: var(--rp-sub);
  margin: 0;
  line-height: 1.5;
}
.rp-qd-key-badge {
  font-size: 11px;
  font-weight: 800;
  color: #fff;
  background: var(--rp-accent);
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 6px;
  vertical-align: middle;
}
.rp-qd-body {
  padding: 20px 24px;
}

.rp-draft-box {
  background: var(--rp-accent-bg);
  border: 1px dashed var(--rp-accent-border);
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 14px;
}
.rp-draft-label {
  font-size: 12px;
  font-weight: 800;
  color: var(--rp-accent);
  margin-bottom: 10px;
}
.rp-draft-text {
  font-size: 14px;
  line-height: 1.9;
  color: #374151;
  margin-bottom: 10px;
}
.rp-draft-meta {
  font-size: 11px;
  color: var(--rp-sub);
  text-align: right;
}

.rp-ev-box {
  background: #eff6ff;
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 12px;
}
.rp-ev-label {
  font-size: 12px;
  font-weight: 800;
  color: #1d4ed8;
  margin-bottom: 6px;
}
.rp-ev-text {
  font-size: 13px;
  line-height: 1.7;
  color: #1e40af;
}

.rp-mis-box {
  background: var(--rp-danger-bg);
  border-radius: 10px;
  padding: 12px 16px;
}
.rp-mis-label {
  font-size: 12px;
  font-weight: 800;
  color: var(--rp-danger);
  margin-bottom: 6px;
}
.rp-mis-list {
  font-size: 13px;
  color: #991b1b;
  line-height: 1.7;
  padding-left: 18px;
  margin: 0;
}

/* ─── PART 3 Section D: 추천서 ─── */
.rp-triangle {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  margin-bottom: 16px;
}
.rp-tri-cell {
  background: var(--rp-accent-bg);
  border-radius: 12px;
  padding: 14px 8px;
  text-align: center;
}
.rp-tri-icon {
  font-size: 24px;
  margin-bottom: 4px;
}
.rp-tri-label {
  font-size: 13px;
  font-weight: 800;
  color: var(--rp-accent-deep);
  margin-bottom: 2px;
}
.rp-tri-sub {
  font-size: 11px;
  color: var(--rp-sub);
}
.rp-rec-intro {
  font-size: 13px;
  color: var(--rp-sub);
  line-height: 1.7;
  margin-bottom: 14px;
  padding: 0 4px;
}
.rp-rec-letter {
  background: #fff;
  border: 1px solid var(--rp-border);
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 10px;
}
.rp-rec-letter b {
  font-size: 13px;
  color: var(--rp-accent-deep);
  display: block;
  margin-bottom: 6px;
}
.rp-rec-letter ul {
  font-size: 13px;
  color: #374151;
  line-height: 1.7;
  padding-left: 20px;
  margin: 0;
}
.rp-rec-timing {
  font-size: 13px;
  color: #6d28d9;
  background: var(--rp-accent-bg);
  padding: 10px 14px;
  border-radius: 8px;
  margin-top: 8px;
  line-height: 1.6;
}

/* ─── PART 3 Section E: 빈칸 가이드 ─── */
.rp-blank-intro {
  font-size: 13px;
  color: var(--rp-sub);
  margin-bottom: 16px;
  line-height: 1.7;
}
.rp-blank-table-title {
  font-size: 13px;
  font-weight: 800;
  color: var(--rp-accent);
  margin-bottom: 8px;
}
.rp-blank-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  margin-bottom: 20px;
}
.rp-blank-table th {
  background: var(--rp-accent-bg);
  color: var(--rp-accent-deep);
  font-weight: 800;
  padding: 10px;
  text-align: left;
  border-bottom: 1px solid var(--rp-accent-border);
}
.rp-blank-table td {
  padding: 10px;
  border-bottom: 1px solid var(--rp-border-light);
  color: #374151;
  line-height: 1.5;
}
@media (max-width: 600px) {
  .rp-blank-table { font-size: 11px; }
  .rp-blank-table th, .rp-blank-table td { padding: 6px; }
}

.rp-dialog-box {
  background: #fffbeb;
  border-radius: 12px;
  padding: 18px 20px;
}
.rp-dialog-step {
  display: flex;
  gap: 12px;
  margin-bottom: 14px;
}
.rp-dialog-step:last-child { margin-bottom: 0; }
.rp-dialog-step-num {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--rp-warn);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rp-dialog-step-body {
  flex: 1;
  font-size: 13px;
  line-height: 1.7;
  color: #374151;
}
.rp-dialog-step-body b {
  display: block;
  margin-bottom: 4px;
  color: #92400e;
}
.rp-dialog-hint {
  font-size: 12px;
  color: var(--rp-sub);
  margin-bottom: 8px;
}
.rp-dialog-q-title {
  font-size: 12px;
  font-weight: 700;
  color: #92400e;
  margin-top: 10px;
  margin-bottom: 4px;
}
.rp-dialog-q-list {
  font-size: 13px;
  padding-left: 20px;
  margin: 0 0 6px 0;
  line-height: 1.7;
  color: #374151;
}

/* ─── 리포트 생성 진행 상태 UI ─── */
#report-progress {
  background: var(--rp-card);
  border-radius: 18px;
  padding: 40px 32px;
  margin: 40px auto;
  max-width: 600px;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.rp-progress-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--rp-ink);
  margin-bottom: 6px;
  text-align: center;
}
.rp-progress-desc {
  font-size: 13px;
  color: var(--rp-sub);
  text-align: center;
  margin-bottom: 28px;
  line-height: 1.6;
}
.rp-step {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 12px;
  margin-bottom: 10px;
  border: 1px solid var(--rp-border);
  transition: all 0.25s;
}
.rp-step.step-pending {
  background: #fafafa;
  opacity: 0.5;
}
.rp-step.step-running {
  background: var(--rp-accent-bg);
  border-color: var(--rp-accent);
  animation: rp-step-pulse 1.6s ease-in-out infinite;
}
@keyframes rp-step-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.01); }
}
.rp-step.step-done {
  background: var(--rp-safe-bg);
  border-color: var(--rp-safe);
}
.rp-step.step-error {
  background: var(--rp-danger-bg);
  border-color: var(--rp-danger);
}
.rp-step-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
}
.rp-step.step-pending .rp-step-icon { background: var(--rp-border); color: var(--rp-sub); }
.rp-step.step-running .rp-step-icon { background: var(--rp-accent); color: #fff; }
.rp-step.step-done .rp-step-icon { background: var(--rp-safe); color: #fff; }
.rp-step.step-error .rp-step-icon { background: var(--rp-danger); color: #fff; }
.rp-step-body { flex: 1; }
.rp-step-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--rp-ink);
  margin-bottom: 2px;
}
.rp-step-msg {
  font-size: 12px;
  color: var(--rp-sub);
  line-height: 1.5;
}

/* ─── 리포트 에러 ─── */
#report-error {
  display: none;
  background: var(--rp-danger-bg);
  color: var(--rp-danger);
  padding: 16px 20px;
  border-radius: 10px;
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.6;
}

/* ─── 리포트 푸터 ─── */
#report-footer {
  background: var(--rp-card);
  border-radius: 18px;
  padding: 28px 32px;
  margin-bottom: 20px;
  box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.rp-footer-cta {
  background: linear-gradient(135deg, var(--rp-accent-bg), #ede9fe);
  border-radius: 14px;
  padding: 22px 24px;
  margin-bottom: 20px;
  text-align: center;
}
.rp-footer-cta-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--rp-accent-deep);
  margin-bottom: 8px;
}
.rp-footer-cta-desc {
  font-size: 13px;
  color: #6d28d9;
  line-height: 1.7;
  margin-bottom: 14px;
}
.rp-footer-cta-btn {
  background: var(--rp-accent);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s;
}
.rp-footer-cta-btn:hover { background: var(--rp-accent-deep); }
.rp-footer-disclaimer {
  font-size: 12px;
  color: var(--rp-sub);
  line-height: 1.7;
  padding: 12px 16px;
  background: #fafafa;
  border-radius: 8px;
  margin-bottom: 16px;
}
.rp-footer-actions {
  text-align: center;
}
.rp-footer-back-btn {
  background: transparent;
  color: var(--rp-accent);
  border: 1px solid var(--rp-accent-border);
  border-radius: 8px;
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}
.rp-footer-back-btn:hover {
  background: var(--rp-accent-bg);
}
