/**
 * Relationships report view — 渲染 /report endpoint 返的 schema。
 *
 * 视觉参考设计稿 E1/E2/E3/E-friend/E-colleague：米色 + 金棕的暖色调，
 * 与 onboarding 的深蓝紫主题分离。所有规则 scoped 到 `.rel-report`，
 * 不外泄影响其他 view。
 */

.rel-report {
  --rep-bg:        #faf3e3;
  --rep-bg-card:  #ffffff;
  --rep-bg-soft:  #f4ead4;
  --rep-border:   #e3d4ae;
  --rep-text:     #3a2e1f;
  --rep-text-2:   #6b5b40;
  --rep-text-3:   #8a7860;
  --rep-accent:   #a07a32;       /* 标题/分数 金棕 */
  --rep-accent-2: #c1995a;       /* 副标签 */
  --rep-cta:      #b08842;
  --rep-cta-text: #ffffff;
  /* 头像兜底渐变（JS inline style 由 avatarFallbackStyle() 接管；
     这里只作为旧 class fallback / 未传 style 的兜底） */
  --rep-female:   linear-gradient(135deg, #331461 0%, #6B3FB8 100%);
  --rep-male:     linear-gradient(135deg, #143461 0%, #3F7AC8 100%);
  --rep-neutral:  linear-gradient(135deg, #23244F 0%, #5B4FB3 100%);

  /* 容器：与列表 .rel-page 同 480px 居中 */
  max-width: 480px;
  margin: 0 auto;
  padding: 16px;
  background: var(--rep-bg);
  color: var(--rep-text);
  font-family: var(--onboard-font-sans, -apple-system, "PingFang SC", sans-serif);
  border-radius: 16px;
  box-shadow: 0 6px 24px rgba(106, 78, 26, 0.08);
}

/* fake 阶段角标（is_fake=true 时挂上） */
.rel-report--fake { position: relative; }
.rel-report--fake::before {
  content: "占位 / 内测";
  position: absolute;
  top: 12px;
  left: 12px;
  font-size: 10px;
  letter-spacing: 0.5px;
  color: var(--rep-text-3);
  background: rgba(255, 255, 255, 0.6);
  padding: 2px 6px;
  border-radius: 4px;
  z-index: 1;
}

/* ============ Header ============ */
.rel-report__header {
  text-align: center;
  padding: 8px 8px 16px;
}
.rel-report__page-title {
  font-size: 16px;
  color: var(--rep-text-2);
  margin-bottom: 16px;
  letter-spacing: 0.5px;
}
.rel-report__avatars {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 36px;
  margin-bottom: 12px;
}
.rel-report__person {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.rel-report__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--rep-neutral);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(106, 78, 26, 0.2);
}
.rel-report__avatar--female { background: var(--rep-female); }
.rel-report__avatar--lg { width: 72px; height: 72px; font-size: 32px; }
.rel-report__archive-tag {
  font-size: 11px;
  color: var(--rep-text-3);
  background: rgba(160, 122, 50, 0.12);
  padding: 1px 6px;
  border-radius: 6px;
  margin-top: 4px;
}
.rel-report__name {
  font-size: 18px;
  font-weight: 600;
  color: var(--rep-text);
  margin-top: 4px;
}
.rel-report__gender {
  font-size: 14px;
  font-weight: 500;
  margin-left: 4px;
  vertical-align: middle;
}
.rel-report__gender--male {
  color: #4A90E2;
}
.rel-report__gender--female {
  color: #E08FA9;
}
.rel-report__subtitle {
  font-size: 12px;
  color: var(--rep-text-3);
  margin-top: 2px;
}

/* 个人解读 header 下方的 pill 数组（主星 + 化星等）。
   schema 字段 header.labels: string[]，前端遍历渲染 */
.rel-report__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin-top: 8px;
}
.rel-report__label-pill {
  font-size: 11px;
  padding: 2px 10px;
  border-radius: 999px;
  background: rgba(160, 122, 50, 0.14);
  color: var(--rep-accent);
  letter-spacing: 0.3px;
}
.rel-report__score-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 16px 0 8px;
}
.rel-report__score {
  font-size: 56px;
  font-weight: 700;
  color: var(--rep-accent);
  line-height: 1;
  letter-spacing: 1px;
}
.rel-report__score-label {
  font-size: 13px;
  color: var(--rep-text-3);
  margin-top: 6px;
  letter-spacing: 2px;
}
.rel-report__headline {
  background: var(--rep-bg-soft);
  color: var(--rep-text-2);
  font-size: 13px;
  padding: 10px 14px;
  border-radius: 8px;
  margin: 8px 0 4px;
  line-height: 1.6;
}

/* ============ Tab bar ============ */
.rel-report__tab-bar {
  display: flex;
  border-bottom: 1px solid var(--rep-border);
  margin: 16px 0 12px;
}
.rel-report__tab-btn {
  flex: 1;
  padding: 10px 0;
  background: none;
  border: none;
  color: var(--rep-text-3);
  font-size: 14px;
  cursor: pointer;
  position: relative;
}
.rel-report__tab-btn.is-active {
  color: var(--rep-accent);
  font-weight: 600;
}
.rel-report__tab-btn.is-active::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 50%;
  transform: translateX(-50%);
  width: 32px;
  height: 2px;
  background: var(--rep-accent);
  border-radius: 1px;
}

.rel-report__tab { display: none; }
.rel-report__tab.is-active { display: block; }

/* ============ Card 通用 ============ */
.rel-report__card {
  background: var(--rep-bg-card);
  border: 1px solid var(--rep-border);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 12px;
}
.rel-report__card-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--rep-text);
  margin-bottom: 8px;
}
.rel-report__card-icon { font-size: 16px; }
.rel-report__card-body {
  font-size: 13px;
  line-height: 1.7;
  color: var(--rep-text-2);
  /* 后端 LLM 阶段可能返带 \n 的多行正文（trait_card / core_logic / single section /
     summary_card 都会用），这里统一保留换行避免塌成一行。chip-para / tip 已是
     段落数组结构，不依赖 pre-line */
  white-space: pre-line;
}
.rel-report__card-body--empty {
  color: var(--rep-text-3);
  font-style: italic;
  text-align: center;
  padding: 8px 0;
}

/* ============ Trait card（金钱观/事业观/...）============ */
.rel-report__trait-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
}
.rel-report__trait-label {
  flex: 1;
  font-size: 15px;
  font-weight: 600;
  color: var(--rep-text);
}
.rel-report__trait-score {
  font-size: 22px;
  font-weight: 700;
  color: var(--rep-accent);
  letter-spacing: 0.5px;
}
.rel-report__trait-score-max {
  font-size: 11px;
  color: var(--rep-text-3);
  margin-left: 1px;
  font-weight: 400;
}
.rel-report__trait-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.rel-report__trait-side {
  background: var(--rep-bg-soft);
  border-radius: 10px;
  padding: 10px 12px;
}
.rel-report__trait-side-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--rep-accent);
  margin-bottom: 4px;
}
.rel-report__trait-side-desc {
  font-size: 12px;
  line-height: 1.5;
  color: var(--rep-text-2);
  white-space: pre-line; /* LLM 阶段可能返带 \n 的描述，与 card-body 一致处理 */
}
.rel-report__trait-summary {
  margin-top: 12px;
  font-size: 12px;
  display: flex;
  gap: 8px;
  align-items: baseline;
}
.rel-report__trait-summary-label {
  background: rgba(160, 122, 50, 0.12);
  color: var(--rep-accent);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 11px;
}
.rel-report__trait-summary-text {
  color: var(--rep-text-2);
  line-height: 1.5;
  white-space: pre-line; /* 与 card-body 一致 */
}

/* ============ Summary card（关系核心总结）============ */
.rel-report__summary {
  background: var(--rep-bg-soft);
}
.rel-report__summary-diff {
  margin-bottom: 16px;
}
.rel-report__summary-diff-head {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--rep-text-2);
  margin-bottom: 6px;
}
.rel-report__summary-diff-score {
  color: var(--rep-accent);
  font-weight: 700;
  font-size: 18px;
}
.rel-report__summary-diff-text {
  font-size: 13px;
  line-height: 1.7;
  color: var(--rep-text-2);
  white-space: pre-line;
}
.rel-report__summary-tips-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--rep-text-2);
  margin-bottom: 8px;
  font-weight: 600;
}
.rel-report__tips {
  list-style: none;
  padding: 0;
  margin: 0;
}
.rel-report__tip {
  display: flex;
  gap: 10px;
  padding: 6px 0;
  align-items: baseline;
}
.rel-report__tip-no {
  color: var(--rep-accent);
  font-weight: 700;
  font-size: 12px;
  flex: 0 0 auto;
}
.rel-report__tip-body {
  display: flex;
  gap: 8px;
  font-size: 13px;
  line-height: 1.5;
}
.rel-report__tip-title {
  color: var(--rep-text);
  font-weight: 600;
}
.rel-report__tip-desc {
  color: var(--rep-text-2);
}
.rel-report__summary-closing {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--rep-border);
  font-size: 13px;
  line-height: 1.7;
  color: var(--rep-text-2);
  white-space: pre-line;
}

/* ============ Core logic（理解这段关系...）============ */
.rel-report__core-logic {
  background: var(--rep-bg-soft);
  border-color: var(--rep-accent-2);
}

/* ============ 关系核心总结大卡（2026-06 卡片重构）============ */
/* 对齐 hepan-v3.html .core-card：一张卡内分段（性格差异点/连接深度 + 沟通建议 +
   [孩子天赋] + 底部核心逻辑），左侧金棕 accent 条 + 细分隔线分段。配色走 --rep-*
   米色主题（hepan-v3 用紫调，这里跟随关系报告整体米色调）。 */
.rel-report__core-card {
  border-left: 3px solid var(--rep-accent);
}
.rel-report__core-sec {
  padding: 2px 2px;
}
.rel-report__core-sec + .rel-report__core-sec {
  border-top: 1px solid var(--rep-border);
}
.rel-report__core-sec-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 8px;
}
.rel-report__core-sec-icon {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--rep-bg-soft);
  color: var(--rep-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  flex-shrink: 0;
}
.rel-report__core-sec-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--rep-text);
}
/* 段内 LLM 槽（性格差异点 + 底部核心逻辑）：复用 .compare-core 三态，但左对齐正文段落 */
.rel-report__core-llm .rel-report__compare-core,
.rel-report__core-bottom .rel-report__compare-core {
  text-align: left;
  margin-top: 0;
}
.rel-report__core-llm .rel-report__compare-core--loading,
.rel-report__core-bottom .rel-report__compare-core--loading {
  justify-content: flex-start;
}
/* 底部核心逻辑：与上方段落用细线分隔 */
.rel-report__core-bottom {
  border-top: 1px solid var(--rep-border);
  padding-top: 12px;
  margin-top: 4px;
}
/* 沟通建议 01-04 编号列表（decimal-leading-zero 补零，金棕加粗）*/
.rel-report__core-comm-list {
  list-style: none;
  margin: 0;
  padding: 4px 2px 6px;
  counter-reset: rel-commidx;
}
.rel-report__core-comm-list li {
  counter-increment: rel-commidx;
  position: relative;
  padding: 9px 8px 9px 40px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--rep-text-2);
  border-bottom: 1px solid var(--rep-border);
}
.rel-report__core-comm-list li:last-child {
  border-bottom: 0;
}
.rel-report__core-comm-list li::before {
  content: counter(rel-commidx, decimal-leading-zero);
  position: absolute;
  left: 10px;
  top: 9px;
  font-size: 14px;
  font-weight: 700;
  color: var(--rep-accent);
  font-variant-numeric: tabular-nums;
}

/* ============ Chips（tab2）============ */
.rel-report__chips-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.rel-report__chip {
  padding: 6px 14px;
  border-radius: 999px;
  background: var(--rep-bg-card);
  border: 1px solid var(--rep-border);
  color: var(--rep-text-3);
  font-size: 13px;
  cursor: pointer;
}
.rel-report__chip.is-active {
  background: var(--rep-accent);
  color: var(--rep-cta-text);
  border-color: var(--rep-accent);
}
.rel-report__chip-content { display: none; }
.rel-report__chip-content.is-active { display: block; }
.rel-report__chip-para {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--rep-text-2);
}
.rel-report__chip-para:last-child { margin-bottom: 0; }

/* ============ 个人解读 sections ============ */
.rel-report__sections {
  margin-top: 8px;
}

/* ============ CTA ============ */
.rel-report__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: 16px;
  padding: 12px 0;
  border: none;
  border-radius: 999px;
  background: var(--rep-cta);
  color: var(--rep-cta-text);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(176, 136, 66, 0.3);
}
.rel-report__cta:active { transform: scale(0.98); }

/* ============ Schema 1.1: dimensions / summary 卡片样式 ============ */
.rel-report__score-badge {
  font-size: 13px;
  font-weight: 700;
  color: var(--rep-cta);
  background: rgba(176, 136, 66, 0.12);
  padding: 2px 8px;
  border-radius: 999px;
}
.rel-report__compare-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 0;
  border-bottom: 1px dashed var(--rep-border);
}
.rel-report__compare-row:last-of-type { border-bottom: none; }
.rel-report__compare-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--rep-text-1);
}
.rel-report__compare-desc {
  font-size: 13px;
  color: var(--rep-text-2);
  line-height: 1.6;
}
.rel-report__compare-core {
  margin-top: 8px;
  padding: 8px 12px;
  background: rgba(176, 136, 66, 0.08);
  border-radius: 8px;
  font-size: 13px;
  color: var(--rep-text-1);
  line-height: 1.6;
  font-style: italic;
}
/* 渐进加载占位（defer_core=true）：核心结论 LLM 生成中 / 失败 / 完成 三态 */
.rel-report__compare-core--loading {
  color: var(--rep-text-3);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.rel-report__compare-core-spinner {
  width: 14px;
  height: 14px;
  border: 2px solid var(--rep-border);
  border-top-color: var(--rep-accent);
  border-radius: 50%;
  animation: rel-report-spin 0.8s linear infinite;
  display: inline-block;
}
@keyframes rel-report-spin { to { transform: rotate(360deg); } }
.rel-report__compare-core--error {
  color: #c0392b;
  font-style: normal;
}
.rel-report__compare-core--filled {
  /* 完成态：直接复用基础 .compare-core 灰底斜体样式，不加 marker */
}
/* 子女天赋分点列表 — 同 hepan-v3.html .pc-list 风格：圆点 marker + 灰色辅助色，
   13px / 行距 1.7 / 左缩进 16px 给 marker 留位 */
.rel-report__pc-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
}
.rel-report__pc-list li {
  font-size: 13px;
  color: var(--rep-text-2);
  line-height: 1.7;
  padding: 5px 0 5px 16px;
  position: relative;
}
.rel-report__pc-list li::before {
  content: '•';
  position: absolute;
  left: 4px;
  top: 5px;
  color: #D4AA60;
  font-size: 14px;
}

.rel-report__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.rel-report__list-item {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--rep-border);
}
.rel-report__list-item:last-child { border-bottom: none; }
.rel-report__list-no {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 700;
  color: var(--rep-cta);
  letter-spacing: 0.5px;
}
.rel-report__list-text { flex: 1; }
.rel-report__list-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--rep-text-1);
  margin-bottom: 2px;
}
.rel-report__list-desc {
  font-size: 13px;
  color: var(--rep-text-2);
  line-height: 1.6;
}
.rel-report__talent-card {
  margin-top: 12px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 10px;
}
.rel-report__talent-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--rep-text-1);
  margin-bottom: 6px;
}
.rel-report__talent-labels {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

/* ============================================================
 * PR-C: hepan_v2 真实算法维度的扩展样式
 * 通用 items 列表 / family 专属 / social 专属 / 降级提示
 * 米色调主题（与上方 --rep-* 变量配套）
 * ============================================================ */

/* compare-row 区分 you / ta（默认上下堆叠；ai-master 这边走米色背景，不像 hepan-v3
   走紫色渐变 — 颜色保留米色，仅用 border-left 色条强调侧别） */
.rel-report__compare-row--you {
  border-left: 3px solid var(--rep-accent);
  padding-left: 10px;
}
.rel-report__compare-row--ta {
  border-left: 3px solid var(--rep-accent-2);
  padding-left: 10px;
}
.rel-report__compare-row + .rel-report__compare-row {
  margin-top: 10px;
}

/* 通用 items（money / career 字典命中条目）— 双栏小列表 */
.rel-report__items-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}
/* family 卡专属：tagline 三行 + appended 妈宝/怕老婆标记 */
.rel-report__card--family .rel-report__compare-label {
  display: flex;
  align-items: center;
  gap: 6px;
}
.rel-report__family-appended {
  font-size: 11px;
  color: #be185d;
  font-weight: 600;
  margin-left: auto;
}

/* social（交友观）：双栏，每栏两段 likes + traits */
.rel-report__card--social .rel-report__card-body { padding: 0; }
.rel-report__friends-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 14px;
}
.rel-report__friends-col {
  background: rgba(255, 255, 255, 0.5);
  border-radius: 12px;
  padding: 12px;
  border: 1px solid var(--rep-border);
}
.rel-report__friends-col--you { border-left: 3px solid var(--rep-accent); }
.rel-report__friends-col--ta  { border-left: 3px solid var(--rep-accent-2); }
.rel-report__friends-type {
  font-size: 14px;
  font-weight: 600;
  color: var(--rep-accent);
  margin-bottom: 6px;
}
.rel-report__friends-col--ta .rel-report__friends-type {
  color: var(--rep-accent-2);
}
.rel-report__friends-desc {
  font-size: 12.5px;
  color: var(--rep-text-2);
  line-height: 1.65;
  margin-bottom: 10px;
}
.rel-report__friends-sec {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed var(--rep-border);
}
.rel-report__friends-sec:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.rel-report__friends-sec-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--rep-accent);
  margin-bottom: 4px;
}
.rel-report__friends-col--ta .rel-report__friends-sec-label {
  color: var(--rep-accent-2);
}

/* ============================================================
 * summary.sections type='compare' — 双栏 you/ta + 核心结论卡
 * (PR-E 2026-05-28，与 hepan-v3.html buildPersonalityCard /
 *  buildCommunicationCard 视觉对齐)
 *
 * 配色按 section.key：
 *   - personality → you=紫色 / ta=橙色（与 dim pair 同套配色）
 *   - communication_tips → ziji=蓝色 / taren=粉色（hepan-v3 沟通建议独有）
 * ============================================================ */
.rel-report__compare-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 4px;
}
/* compare-stack：双栏堆叠（替代 grid 双列）— 性格差异点 / 沟通建议改上下排
   让用户聚焦阅读完一段再看另一段，不被并排压缩 */
.rel-report__compare-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 4px;
}
/* "你 · " / "他 · " / "TA · " 前缀 — 在 dim 卡 label 之前点出"我"还是"对方"，
   避免用户对算法生成的类型名（如"多变浪漫"/"平和随缘"）分不清归属 */
.rel-report__compare-who {
  color: var(--rep-text-3);
  font-weight: 500;
  font-size: 0.92em;
}
.rel-report__compare-col {
  background: var(--rep-bg-soft);
  border: 1px solid var(--rep-border);
  border-radius: 12px;
  padding: 12px 14px;
}
.rel-report__compare-col-who {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
  letter-spacing: 0.3px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.rel-report__compare-col-who::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  flex: 0 0 auto;
}
/* family-appended 妈宝/怕老婆 marker — right-align 跟 col-who flex 布局对齐 */
.rel-report__compare-col-who .rel-report__family-appended {
  margin-left: auto;
}
.rel-report__compare-col-desc {
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--rep-text-2);
  white-space: pre-line;
}

/* personality 配色：紫色（you）+ 橙色（ta），与 dim pair 同色系 */
.rel-report__compare-col--you {
  background: linear-gradient(180deg, #F0EFFB 0%, #FAF9FE 100%);
  border-color: #DAD4F2;
}
.rel-report__compare-col--you .rel-report__compare-col-who {
  color: #5535A8;
}
.rel-report__compare-col--ta {
  background: linear-gradient(180deg, #FFF7EE 0%, #FFFCF6 100%);
  border-color: #ECDCC0;
}
.rel-report__compare-col--ta .rel-report__compare-col-who {
  color: #B08842;
}

/* communication_tips 配色：蓝色（自我提醒）+ 粉色（怎么跟 TA 沟通）— hepan-v3 风格 */
.rel-report__compare-col--ziji {
  background: linear-gradient(180deg, #E6F2FE 0%, #F5FAFE 100%);
  border-color: #BFDDF5;
}
.rel-report__compare-col--ziji .rel-report__compare-col-who {
  color: #0369A1;
}
.rel-report__compare-col--taren {
  background: linear-gradient(180deg, #FAEAFD 0%, #FDF6FE 100%);
  border-color: #E7C2EF;
}
.rel-report__compare-col--taren .rel-report__compare-col-who {
  color: #A21CAF;
}

/* 降级卡片：算法挂时显示 */
.rel-report__card--degraded {
  opacity: 0.7;
}
.rel-report__degraded-note {
  font-size: 12.5px;
  color: var(--rep-text-3);
  font-style: italic;
  padding: 14px 0;
  text-align: center;
}

/* ============================================================
 * 单人解读 — 5 张单人观卡 / QA / 财运板块（hepan-v3.html 个人报告迁移）
 * 视觉与双人卡保持米色调一致（不复刻 hepan-v3 紫色风格）
 * ============================================================ */

/* 单人观卡：type label 副标 + 紧凑文本（不双栏对比） */
.rel-report__single .rel-report__card-title { margin-bottom: 4px; }
.rel-report__single-type {
  font-size: 13px;
  font-weight: 600;
  color: var(--rep-accent);
  margin: 4px 0 8px;
  letter-spacing: 0.2px;
}
.rel-report__single-desc {
  font-size: 13px;
  line-height: 1.75;
  color: var(--rep-text-2);
}

/* QA：内嵌在人格卡底部，与卡片正文同 padding，靠分隔线区隔 */
.rel-report__qa {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px dashed var(--rep-border);
}
.rel-report__qa-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--rep-text);
  margin-bottom: 10px;
}
.rel-report__qa-item + .rel-report__qa-item {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--rep-border);
}
.rel-report__qa-q {
  font-size: 13px;
  font-weight: 600;
  color: var(--rep-text);
  margin-bottom: 4px;
}
.rel-report__qa-a {
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--rep-text-2);
}

/* 财运板块（外层 wrapper）：与上方 5 张观卡之间留个章节间距 */
.rel-report__caiyun { margin-top: 8px; }

/* 财运板块章节标题条 */
.rel-report__caiyun-banner {
  text-align: center;
  margin: 16px 0 12px;
}
.rel-report__caiyun-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--rep-accent);
  letter-spacing: 0.5px;
}
.rel-report__caiyun-sub {
  font-size: 12px;
  color: var(--rep-text-3);
  margin-top: 4px;
}

/* 财运 3 张卡共用：右上角序号（01/02/03） */
.rel-report__caiyun-card .rel-report__card-title { position: relative; }
.rel-report__caiyun-index {
  position: absolute;
  right: 0;
  top: 0;
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--rep-text-3);
  font-weight: 400;
}

/* 阶段卡 */
.rel-report__caiyun-stage-name {
  font-size: 22px;
  font-weight: 700;
  color: var(--rep-accent);
  margin-top: 4px;
}
.rel-report__caiyun-stage-pos {
  font-size: 13px;
  color: var(--rep-text-2);
  margin-top: 4px;
}
.rel-report__caiyun-stage-desc {
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--rep-text-2);
  margin-top: 8px;
}
.rel-report__caiyun-progress {
  position: relative;
  height: 4px;
  border-radius: 999px;
  background: var(--rep-border);
  margin: 18px 6px 6px;
}
.rel-report__caiyun-progress-bar {
  position: absolute; inset: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--rep-accent-2) 0%, var(--rep-accent) 100%);
}
.rel-report__caiyun-progress-dot {
  position: absolute;
  top: 50%;
  width: 12px;
  height: 12px;
  background: var(--rep-cta);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 3px rgba(176, 136, 66, 0.18);
}
.rel-report__caiyun-stage-labels {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  text-align: center;
  font-size: 11px;
  color: var(--rep-text-3);
  margin-top: 8px;
}
.rel-report__caiyun-stage-labels .is-active {
  color: var(--rep-accent);
  font-weight: 600;
}
.rel-report__caiyun-stage-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.rel-report__caiyun-stage-tag {
  font-size: 11px;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--rep-bg-soft);
  color: var(--rep-accent);
}

/* 今年预测卡：5 行（dim / stars / score / desc 跨行） */
.rel-report__caiyun-forecast-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--rep-border);
}
.rel-report__caiyun-forecast-row:last-child { border-bottom: none; }
.rel-report__caiyun-forecast-dim {
  font-size: 14px;
  font-weight: 600;
  color: var(--rep-text);
}
.rel-report__caiyun-forecast-sub {
  font-size: 11px;
  font-weight: 400;
  color: var(--rep-text-3);
  margin-top: 2px;
}
.rel-report__caiyun-forecast-stars { letter-spacing: 1px; }
.rel-report__caiyun-star {
  color: var(--rep-border);
  font-size: 14px;
}
.rel-report__caiyun-star.is-full,
.rel-report__caiyun-star.is-half { color: var(--rep-accent); }
.rel-report__caiyun-star.is-half {
  background: linear-gradient(90deg, var(--rep-accent) 50%, var(--rep-border) 50%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.rel-report__caiyun-forecast-score {
  font-size: 15px;
  font-weight: 700;
  color: var(--rep-accent);
}
.rel-report__caiyun-forecast-score sub {
  font-size: 10px;
  color: var(--rep-text-3);
  font-weight: 400;
  margin-left: 2px;
}
.rel-report__caiyun-forecast-desc {
  grid-column: 1 / -1;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--rep-text-2);
  margin-top: 4px;
}

/* 5 年曲线 SVG 卡 */
.rel-report__caiyun-legend {
  display: flex;
  gap: 14px;
  align-items: center;
  font-size: 12px;
  color: var(--rep-text-2);
  margin: 6px 0 8px;
}
.rel-report__caiyun-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 4px;
  vertical-align: middle;
}
.rel-report__caiyun-dot.is-wealth { background: var(--rep-accent); }
.rel-report__caiyun-dot.is-career { background: #4a7bcf; }

.rel-report__caiyun-svg-wrap { width: 100%; }
.rel-report__caiyun-svg { width: 100%; height: auto; display: block; }

.rel-report__caiyun-grid {
  stroke: var(--rep-border);
  stroke-dasharray: 3 3;
  stroke-width: 1;
}
.rel-report__caiyun-grid-label {
  font-size: 10px;
  fill: var(--rep-text-3);
}
.rel-report__caiyun-line {
  fill: none;
  stroke-width: 2.5;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.rel-report__caiyun-line.is-wealth { stroke: var(--rep-accent); }
.rel-report__caiyun-line.is-career { stroke: #4a7bcf; }
.rel-report__caiyun-node {
  cursor: pointer;
  stroke: #fff;
  stroke-width: 1.5;
}
.rel-report__caiyun-node.is-wealth { fill: var(--rep-accent); }
.rel-report__caiyun-node.is-career { fill: #4a7bcf; }
.rel-report__caiyun-halo {
  fill: var(--rep-cta);
  opacity: 0;
  pointer-events: none;
}
.rel-report__caiyun-halo.is-show { opacity: 0.18; }
.rel-report__caiyun-year-label {
  font-size: 11px;
  fill: var(--rep-text-3);
  text-anchor: middle;
}
.rel-report__caiyun-year-label.is-active {
  fill: var(--rep-accent);
  font-weight: 600;
}

.rel-report__caiyun-chips {
  display: flex;
  gap: 6px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.rel-report__caiyun-chip {
  flex: 1 1 0;
  min-width: 56px;
  padding: 6px 8px;
  border-radius: 10px;
  border: 1px solid var(--rep-border);
  background: var(--rep-bg-card);
  color: var(--rep-text-2);
  font-size: 12px;
  cursor: pointer;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  line-height: 1.2;
}
.rel-report__caiyun-chip.is-active {
  background: var(--rep-accent);
  color: var(--rep-cta-text);
  border-color: var(--rep-accent);
}
.rel-report__caiyun-chip-age {
  font-size: 10px;
  opacity: 0.7;
}

.rel-report__caiyun-detail {
  margin-top: 12px;
  padding: 12px;
  border-radius: 10px;
  background: var(--rep-bg-soft);
}
.rel-report__caiyun-detail-head {
  font-size: 13px;
  font-weight: 600;
  color: var(--rep-accent);
  margin-bottom: 8px;
}
.rel-report__caiyun-detail-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 4px;
  font-size: 12.5px;
  color: var(--rep-text-2);
}
.rel-report__caiyun-detail-lbl { color: var(--rep-text-3); }
.rel-report__caiyun-detail-idx {
  font-size: 16px;
  font-weight: 700;
}
.rel-report__caiyun-detail-idx.is-wealth { color: var(--rep-accent); }
.rel-report__caiyun-detail-idx.is-career { color: #4a7bcf; }
.rel-report__caiyun-detail-tier { color: var(--rep-text-3); }
.rel-report__caiyun-detail-body {
  margin-top: 6px;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--rep-text-2);
}
.rel-report__caiyun-detail-body p { margin: 4px 0; }
.rel-report__caiyun-detail-tag {
  font-size: 11px;
  padding: 1px 6px;
  border-radius: 4px;
  margin-right: 4px;
  background: rgba(255, 255, 255, 0.6);
}
.rel-report__caiyun-detail-tag.is-wealth { color: var(--rep-accent); }
.rel-report__caiyun-detail-tag.is-career { color: #4a7bcf; }

.rel-report__caiyun-empty {
  font-size: 12.5px;
  color: var(--rep-text-3);
  padding: 16px 0;
  text-align: center;
  font-style: italic;
}

/* ============================================================
 * 亲子专属：role_label（父亲/母亲/儿子/女儿）+ 出生时间 + 子女连接深度
 * （配套 hepan-v3.html buildYuanfenCard / parentChildLabel）
 * ============================================================ */
.rel-report__role-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--rep-accent);
  background: rgba(160, 122, 50, 0.14);
  padding: 2px 8px;
  border-radius: 999px;
  margin-top: 4px;
  letter-spacing: 0.4px;
}
.rel-report__birth-subtitle {
  font-size: 11.5px;
  color: var(--rep-text-3);
  margin-top: 4px;
  line-height: 1.4;
  text-align: center;
}

/* 注：原 .rel-report__connection-depth / .rel-report__yuanfen-tag* 规则已随
   renderConnectionDepth 渲染流移除（2026-06 卡片重构，子女连接深度并入关系核心总结大卡）。 */
