/* page.css — 全站共用页面骨架（2026-09-12 视觉统一 P1）
 *
 * 渐进式统一：先定义 .page-hero / .page-body / .page-card / .btn-brand 基类，
 * 同时用选择器组把已存在的 Hero 与内容区（ch- / quiz- / result- / pass- / mb-）
 * 纳入同一基底；P2/P3 新页面直接复用 .page-hero / .page-body 即可。
 *
 * 引入顺序：必须在各业务 CSS（challenge/quiz/profile…）之后，保证统一基底胜出。
 * 蒙层用 background-image 叠加实现（各业务 Hero 的 ::before/::after 已被光斑占用）。
 */
.page-hero,
.ch-hero, .quiz-hero, .result-hero, .pass-hero, .mb-hero {
  background-image: var(--hero-overlay, none), var(--hero-grad);
  background-color: transparent;
  position: relative;
  overflow: hidden;
  color: var(--hero-fg, #fff);
}

.page-hero > *,
.ch-hero > *, .quiz-hero > *, .result-hero > *, .pass-hero > *, .mb-hero > * {
  position: relative;
  z-index: 2;
}

/* 内容区：浅底 + 上圆角压在 Hero 之上形成融合（无波浪） */
.page-body,
.ch-body, .quiz-body, .result-body, .mb-body, .pass-body {
  position: relative;
  z-index: 3;
  background: var(--body-soft);
  margin-top: -10px;
  border-radius: var(--body-radius, 20px) var(--body-radius, 20px) 0 0;
  padding-left: var(--page-pad-x, 16px);
  padding-right: var(--page-pad-x, 16px);
}

/* 统一卡片 */
.page-card {
  background: var(--color-surface);
  border-radius: var(--card-radius, 16px);
  box-shadow: var(--card-shadow);
}

/* 统一主按钮 */
.btn-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  box-sizing: border-box;
  padding: 0 18px;
  border: none;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--color-primary), var(--accent-purple, #8B5CF6));
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(94, 106, 210, 0.35);
}
.btn-brand:disabled { opacity: 0.5; cursor: not-allowed; }

/* ===== 暗色局部修正：组件级浅色块（三处新 CSS 自身没有 dark 块） ===== */
[data-theme="dark"] .step-dot {
  background: rgba(255, 255, 255, 0.08);
  border-color: transparent;
  color: var(--color-text-tertiary);
}
[data-theme="dark"] .step-line { background: rgba(255, 255, 255, 0.10); }
[data-theme="dark"] .ch-tab.active {
  background: rgba(94, 106, 210, 0.15);
  color: var(--color-primary);
  border-color: var(--color-primary);
  box-shadow: none;
}
[data-theme="dark"] .ch-map-circle.locked {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.15);
  color: #6B7280;
}
[data-theme="dark"] .ch-map-circle.open {
  background: rgba(124, 134, 224, 0.16);
  border-color: rgba(124, 134, 224, 0.7);
  color: #C7CCF5;
}
[data-theme="dark"] .ch-progress-bar,
[data-theme="dark"] .cat-card .progress-bar { background: rgba(255, 255, 255, 0.08); }
[data-theme="dark"] .cat-count,
[data-theme="dark"] .cm-count { background: rgba(255, 255, 255, 0.08); }
[data-theme="dark"] .result-answer-cell.right { background: rgba(16, 185, 129, 0.16); }
[data-theme="dark"] .result-answer-cell.wrong { background: rgba(248, 113, 113, 0.16); }
/* 封面卡：暗色版封面已加深，统一用白字 */
[data-theme="dark"] .mb-module-item { --cover-fg: #FFFFFF; }
/* 暗色下 --status-red 变亮（#F87171），白字仅 2.8:1 → 改深色字 */
[data-theme="dark"] .mb-book-badge { color: #1A1A1A; }
