/* ============================================================
   寻梦阁 · 全站基座样式  site.base.css
   ------------------------------------------------------------
   定位：全站**最小必要**的共享地基。所有页面（57 个 index.html）都必须
   在自身内联 <style> **之前** 加载本文件，保证页面自有规则仍可覆盖。

   为什么不是直接链入 site.v5.css（原方案）：
     实测（无侵入 A/B，改写响应把 <link> 插到 <head> 之后）把 site.v5.css
     链入这 43 个"无外链 CSS"页面会产生**真实回归**：
       - 静态分析：32/43 页存在真实 class 冲突（hero / container / page /
         progress-bar / opt-text / btn / back / logo / meta-item / active …）
       - site.v5.css 含 `input,textarea,select{… !important}` →
         hobbies-list 搜索框 padding 从 `12px 16px 12px 40px` 被压成 `13px 15px`，
         左侧 40px 是为搜索图标预留的，图标会被文字压住（实测 docH 1841→2012）
       - 4/6 抽样页 docH 漂移 +42 / +55 / +80 / +171px（非预期布局变化）
     结论：site.v5.css 是"组件样式表"，不是"基座"。基座只应做**不会碰撞**的事：
     元素选择器 + CSS 变量 + 显式命名的受控覆盖。

   本文件刻意不含：任何组件类（.btn/.card/.hero…）、任何表单外观覆盖。
   ============================================================ */

/* ---------- 1. 设计 Token（单一事实源） ---------- */
:root{
  /* 色板（与 site.v5.css 对齐） */
  --xmg-accent:#4A6352;
  --xmg-accent2:#6B8A6F;
  --xmg-bg:#FAF8F5;
  --xmg-card:#FFFFFF;
  --xmg-card-border:#E8E2DC;
  --xmg-text:#1F1815;
  --xmg-text2:#4A3F38;
  --xmg-text3:#6B5E55;

  /* 【B-M1 对比度修复】原 #8A7A7A / #8A7A72 在 #F5F2EA 上仅 ≈3.3:1，不达 WCAG AA(4.5:1)。
     这些-浅灰正是用在 10–11px 的小字上（"看得见但读不出"，户外直接消失）。
     #6B5F58 实测对比度 ≈5.5:1，达标。 */
  --xmg-text-muted:#6B5F58;

  /* 【B-H1 字号阶梯】经强制实验验证：全站 ≤11.5px 统一提到 12px，
     在 320/360/390 三种视口 × 7 路由下**无新增横向溢出** → 12px 是安全下限。 */
  --xf-body:15px;    /* L1 正文 */
  --xf-sub:13px;     /* L2 次要说明 */
  --xf-note:12px;    /* L3 注释/时间戳/标签 */
  --xf-badge:11px;   /* L4 徽标（需加粗） */

  /* 圆角 / 阴影（B-L1 收敛为三档 + 单一阴影） */
  --xr-sm:8px;
  --xr-md:12px;
  --xr-lg:16px;
  /* 与 site.v5.css 对齐的别名（跨 CSS 文件统一命名） */
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-xl:20px;
  --radius-full:9999px;
  --xs-card:0 1px 4px rgba(0,0,0,.04);
  --xs-hover:0 4px 16px rgba(0,0,0,.08);
  /* 与 site.v5.css 对齐的别名 */
  --shadow-sm:0 1px 3px rgba(0,0,0,.05);
  --shadow-md:0 4px 12px rgba(0,0,0,.08);
  --shadow-lg:0 8px 24px rgba(0,0,0,.12);
  --card-shadow:0 1px 4px rgba(0,0,0,.04);
  --card-hover-shadow:0 4px 16px rgba(0,0,0,.08);
}

/* ---------- 2. 最小重置（与三套既有 CSS 的全局重置保持一致） ---------- */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden}
body{
  margin:0;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

/* ---------- 3. 移动端：触屏隐藏键鼠提示（A-L5） ----------
   测评页正文写着"键盘 1-5 选择 · ← → 切换"，手机上既无键盘也无方向键，
   属误导性文案。桌面端保留。 */
@media (hover:none),(pointer:coarse){
  .kbd-hint,
  .keyboard-hint{display:none !important}
}

/* ---------- 4. 移动端触摸目标兜底（A-M3 的 8 处漏网） ----------
   上一轮的 44px 兜底只写在 site.v5.css 与 bottom-nav.js 注入里，
   而 A-M3 那 8 处集中在"页面自包含内联样式、不引主 CSS"的页面。
   这里补上剩余选择器。用 !important 是因为要覆盖各页内联 <style>（其后加载）。
   注意：flex 行内的拉伸子项（.cat-tab）必须给 height，只写 min-height 不生效。 */
@media (max-width:768px){
  /* 分类标签：实测 60x40，差 4px，最易误触 */
  .cat-tab{
    height:44px !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    box-sizing:border-box
  }
  /* 搜索框：实测 366x42 */
  .search-input{min-height:44px !important}
  /* 站点 Logo 链接：实测 70x20，链接本身即点击区 */
  .logo{
    display:inline-flex !important;
    align-items:center;
    min-height:44px
  }
  /* 页脚三链接：实测 48x16 */
  .site-footer a,
  .footer a,
  .footer-links a,
  .sub-footer a{display:inline-flex !important;align-items:center;min-height:44px !important}
  /* 空状态主 CTA：实测 113x21 */
  .empty-state-cta{min-height:44px !important;display:inline-flex !important;align-items:center;justify-content:center}
  /* 正文里的裸「← 返回首页」链接（privacy/terms/api 原为无 class 的 <a>） */
  .back-link,
  .back{display:inline-flex !important;align-items:center;min-height:44px !important}
  /* api/feedback 页内嵌 <p> 中的 <a> 链接（父 <p> 无 class） */
  p > a{display:inline-flex;align-items:center;min-height:44px}
}

/* ---------- 5. 小字号地板（B-H1，只提升确属语义文本者） ----------
   实测命中的真实类名（非猜测）：
     general-* 每页 87 个 <12px 元素 = .q-cat@10px x28 + .q-num@11px x28 + .kbd-hint@11px x28
     register：.stat-label@11px x3 / .optional-tag@10px x2 / .progress-label@11px x2 / .privacy@11px
   装饰性文字（hero 副标题、序号 A1/A2 等）**有意不动**，放大反而挤压留白。 */
@media (max-width:768px){
  .q-cat,
  .dim-label,
  .q-dim-label{font-size:var(--xf-sub) !important;line-height:1.5}

  .q-num,
  .q-progress,
  .quiz-progress-text,
  .progress-label,
  .progress-text,
  .stat-label,
  .privacy,
  .privacy-note,
  .meta-item .lbl,
  .card-tag,
  .zone-badge,
  .intro .eyebrow,
  .idx-num,
  .idx-feat-desc,
  .idx-hero-desc,
  .idx-hero-stat-label,
  .tag-name,
  .status-badge{font-size:var(--xf-note) !important}
  /* 18+ 徽标 L4：11px 加粗（仍 <12 是有意的，徽标辨识靠"小+强对比"） */
  .idx-adult-inline-badge{font-size:var(--xf-badge) !important;font-weight:700}

  .optional-tag{font-size:var(--xf-note) !important;font-weight:600}

  /* 注释层（L3）：页脚版权、SW 更新提示等。small 元素在语义上就是"更小的字"，
     在这里统一抬到 12px 下限。 */
  small,
  .site-footer p,
  .footer p{font-size:var(--xf-note) !important}

  /* 小字号需要更高对比度补偿（WCAG AA 与小字号的反比关系） */
  .q-cat,
  .q-num,
  .progress-label,
  .stat-label,
  .optional-tag,
  .privacy,
  .privacy-note,
  .meta-item .lbl,
  .card-tag,
  .zone-badge,
  .tag-name,
  .status-badge{color:var(--xmg-text3)}
}

/* ---------- 5. 【P2-1 补遗 2026-09-13】回归走查剩余 <12px 语义类 → 12px ----------
   全站走查（49 路由）第二轮仍以 <12px 呈现的语义类，统一提到 12px 底线。
   只动 font-size；徽标类多为加粗大写设计语汇，字号提升不破布局。 */
.tag,
.qnum,
.card-meta,
.meta-item,
.idx-adult-inline-badge,
.char-count,
.age-badge,
.lbl,
.intro-note,
.footer{
  font-size:12px !important;
}
