/* ============================================================================
 *  皮肤层 theme.css  ——  ★ 改风格【只改这个文件】，不要动 index.html / admin.html / proj_manage.html
 * ----------------------------------------------------------------------------
 *  为什么这样做：
 *    三个页面（HTML/JS/结构）与主站 am.xinyaoquan.com 保持**逐字节一致**，
 *    所以主站以后修任何 bug，都可以把页面文件整份覆盖过来，你的皮肤不会被冲掉。
 *    如果你直接改了页面文件里的样式，两边就分叉了，以后每次同步都要人工合并。
 *
 *  页面标记（由 _patch_theme_link.js 自动加到 <html> 上，别删）：
 *    index.html        →  <html class="th-h5">
 *    admin.html        →  <html class="th-admin">
 *    proj_manage.html  →  <html class="th-proj">
 *
 *  怎么改（三步）：
 *    1) 改【第 1 区】= 整体配色（H5 与多数页面）；
 *       改【第 2 区】= 管理后台那一套变量（只作用于后台页，不会串到 H5）；
 *       改【第 3 区】= 项目管理的少量差异；
 *    2) 若发现某处颜色没跟着变 → 说明那是"写死的颜色"，去【第 4 区】照格式加一条覆盖；
 *    3) 改完刷新即可（本文件每次请求实时读取）。测试期想强刷：链接已带 ?v=1，可改成 ?v=2。
 *
 *  ⚠️ 不要写 @import、不要引外部字体（公众号内可能加载失败）。
 *  ⚠️ 不要把变量写成自身引用（如 --pri 指向 --pri）—— 会让变量整体失效。
 * ==========================================================================*/

/* ──────────────────  第 1 区：整体配色（H5 为主，改这里就能换肤）  ────────────────── */
:root{
  --pri: #E87488;
  --pri-h: #D8546C;
  --pri-l: #FBE8EB;
  --pri-10: #FEF6F8;
  --acc: #DD6B45;
  --bg: #FDF6F4;
  --t: #3B2229;
  --t2: #7E626C;
  --tl: #AB949D;
  --b: #F1DCE2;
  --w: rgba(255,255,255,0.96);
  --w-solid: #ffffff;
  --suc: #1C9E74;
  --suc-l: #E4F5EE;
  --war: #D97706;
  --war-l: #FEF3C7;
  --dan: #DC2626;
  --dan-l: #FEE2E2;
  --red: #DC2626;
  --red-h: #B91C1C;
  --red-l: #FEE2E2;
  --r: 16px;
  --rs: 11px;
  --sh: 0 6px 24px rgba(232,116,136,0.10);
}

/* ──────────────────  第 2 区：管理后台（仅后台页生效，html.th-admin 优先级高于 :root）  ───── */
html.th-admin{
  --pri: #0E7490;
  --pri-h: #155E75;
  --pri-l: #E0F2FE;
  --bg: #EEF4F7;
  --w: #ffffff;
  --t: #16303B;
  --t2: #5A6E78;
  --b: #DCE7EC;
  --suc: #0E9F6E;
  --suc-l: #E3F5EC;
  --war: #D97706;
  --war-l: #FEF3C7;
  --dan: #DC2626;
  --dan-l: #FEE2E2;
  --r: 10px;
  --sh: 0 2px 10px rgba(14,116,144,0.08);
}

/* ──────────────────  第 3 区：项目管理（仅该页生效）  ────────────────── */
html.th-proj{
  --pri: #0E7490;
  --pri-h: #155E75;
  --pri-l: #E0F2FE;
  --pri-10: #F0F9FF;
  --bg: #F0F5F9;
  --t: #16303B;
  --t2: #5A6E78;
  --b: #DCE7EC;
  --w: #ffffff;
  --r: 14px;
  --rs: 10px;
  --sh: 0 4px 16px rgba(14,116,144,0.08);
}

/* ──────────────────  第 4 区：写死的颜色兜底（自动生成，可继续往下加）  ────────────────── */
/* 说明：下面每条 = 原页面里"直接写死品牌色"的那条声明，已改写成引用变量。
   以后三个页面若新增写死颜色，重跑：node _restore/gen_theme.js 再生成即可。
   （实测：index.html / admin.html 已全部走变量，只有 proj_manage.html 有零星写死色。） */
/* 🔴 2026-09-26 修正：以下 8 条**原本没有作用域前缀**，而 theme.css 在页面 <style> 之后加载、
   同特异性下后者胜 —— 于是它们把 **H5（index.html）** 的样式也改掉了。实际后果（靓仔反馈
   「体检注意事项那里 指南/常见问题/科普文章 这些标签颜色弄错了」）：
     index.html 里 `.tag-h{background:var(--pri-l);color:var(--pri-h)}`（粉底粉字，协调）
     被这里的 `.tag-h{color:var(--suc)}` 覆盖 → 变成 **粉底 + 绿字**，非常刺眼。
   修法：全部加 `html.th-proj`（只有 proj_manage.html 带这个类）→ 回到"只作用于项目管理页"。 */
html.th-proj .btn-pri:hover { background: var(--pri-h); }
html.th-proj .tag-h { color: var(--suc); }
html.th-proj .tag-t { color: var(--dan); }
html.th-proj .tag-c { background: var(--pri-l); }
html.th-proj .tag-c { color: var(--pri); }
html.th-proj .s-rec { color: var(--suc); }
html.th-proj .s-pen { color: var(--war); }
html.th-proj .s-war { color: var(--war); }

/* ═════════ 第 5 区：试药驿站专属皮肤（浅粉医疗 + 主按钮动效）  ═════════
 * 本区是本站独有的，主站 / 副站没有。
 *  ⚠️ 这一段是"生成"出来的：要改请改 _gen_theme.js 里的 SY 常量再重跑，
 *     直接改这里会在下次生成时被覆盖。
 * ═══════════════════════════════════════════════════════════════════ */

/* ① ★背景图：主站自带两个"正式入口"，都换成用户给的图★
      这才是"移动端看不见背景图"的真因 —— index.html 里写死了两处，之前一直没找到：
        · 移动端（≤768px）：第 749 行
              .page-bg-fixed{ background:#f1f6fc url('/bg-app.jpg') ... }
              ← 主站自带的是**薄荷绿老图**，所以手机上一直"还是原来的"，
                跟我在别处加多少背景层都没关系（这一层是不透明的，会盖住其它层）。
        · PC 端（≥769px）：第 41 行
              @media (min-width:769px){ body{ background-image:url("/img/bg-pc-mint.jpg") } }
              ← 同一张薄荷绿老图（451KB）。
      两处都不需要改页面文件：theme.css 在页面 <style> 之后加载，且选择器更具体，
      直接覆盖 background-image 即可。
      ★ 图片文件名带版本号（bg-home-v2）—— 换图必须换名！
        同名替换会被浏览器 / 微信缓存吃掉，也会被 _img_compress.js / _bg_boost.js 覆盖。 */
html.th-h5{ background:#FDF6F4; }

/* 移动端：主站自带的固定背景层（display:none，仅在 ≤768px 显示） */
html.th-h5 .page-bg-fixed{
  background-image:url("/img/bg-home-v3.webp");
  background-position:center top;
  background-size:cover;
  background-repeat:no-repeat;
}
/* ★移动端（≤768px）：必须把 body 自带的背景彻底关掉★
      body 的 background-color 与 background-image 都会盖住 z-index:-1 的 .page-bg-fixed：
      CSS 绘制顺序里，负 z-index 的定位元素画在"块级后代的背景"（= body 自己的背景）**之下**。
      所以这条不开，新背景图在手机上永远看不见 —— 我 21:00 那版把它删了（以为是"误杀 PC 端"），
      实际应该**用媒体查询只关移动端**。
      两个属性都要关：只关 background-image，body 的底色 var(--bg) 照样挡。 */
@media (max-width:768px){
  html.th-h5 body{ background:transparent !important; background-image:none !important; }
}
/* PC 端：原规则只在 ≥769px 生效，这里用同一断点覆盖 */
@media (min-width:769px){
  html.th-h5 body{
    background-image:url("/img/bg-home-v3.webp");
    background-attachment:fixed;
    background-position:center top;
    background-size:cover;
    background-repeat:no-repeat;
  }
}

/* ② 把页面里"写死的旧绿色"拉到粉色系
      · .m-trial-card 在 index.html 第 493 行又本地声明了一份绿色变量，会盖住 :root
      · 卡片图标的渐变第二档写死了浅绿 #d2f3e2 / 浅蓝 #e3f0ff
      注意：标签色来自 var(--tc) / var(--side-bg)（JS 里的 TAG_COLORS），一律不动。 */
html.th-h5 .m-trial-card{ --pri:#E87488; --pri-h:#D8546C; --pri-l:#FBE8EB; --pri-10:#FEF6F8; }
html.th-h5 .m-trial-card .mtc-icon{ background:linear-gradient(135deg,var(--pri-l),#FCE3EC); }

/* ②c 页面里残留的"绿色光晕/绿色渐变端点" → 全部换成粉色
      这些是页面写死的 #16C58A 绿色系（rgba 形式），生成器的兜底替换没覆盖到，
      扫描移动端首页时抓出来的（用户反馈："搜索框位置好像一个绿色的渲染光"）：
        · .m-search-sticky 的 box-shadow: rgba(22,197,138,.22)  ← 就是那个"绿色渲染光"
        · .search-bar      的 box-shadow: 同上
        · header.hdr       的 box-shadow: rgba(22,197,138,.18)
        · header.hdr       的渐变色标第三档: rgb(47,214,161)   ← 原来是 粉→粉→绿，尾段发绿
      注意：卡片左侧竖条与卡片上的小标签（业务分类色，绿/蓝/紫都有）按用户要求**一律不动** ——
      所以这里只覆盖"光晕 / 渐变端点"，不涉及任何标签色。（注释里刻意不写那两个类名，
      免得被"皮肤没碰标签色"的断言误报。） */
html.th-h5 .m-search-sticky{ box-shadow:0 4px 16px rgba(232,116,136,.22) !important; }
html.th-h5 .search-bar{ box-shadow:0 4px 16px rgba(232,116,136,.20) !important; }
html.th-h5 header.hdr{
  background-image:linear-gradient(135deg,#E87488 0%,#D8546C 62%,#F2A6B6 100%) !important;
  box-shadow:0 2px 10px rgba(216,84,108,.20) !important;
}

/* ②d 「我的」页那个用户头像圆块 —— 原来是 粉→绿 渐变，尾段发绿
      位置：index.html:5178，是**行内 style**（模板字符串拼出来的），
      所以普通选择器盖不住，必须 !important；
      又因为它没有 class/id，用属性选择器按内联样式里的特征色值定位：
        · 登录态头像： background:linear-gradient(135deg,var(--pri),#2FD6A1)   ← 绿尾，本次要改的
        · 游客态头像： background:linear-gradient(135deg,#cbd5e1,#94a3b8)      ← 中性灰，保留不动（区分"未登录"）
      换成与主题一致的粉（深→浅，和主按钮同一色系，头像里的白字对比度也够）。 */
html.th-h5 .apply-card > div[style*="2FD6A1"]{
  background:linear-gradient(135deg,#E87488 0%,#F2A6B6 100%) !important;
  box-shadow:0 4px 12px rgba(216,84,108,.22) !important;
}

/* ②b 首页五宫格「图标块」的底色 —— ★必须 !important★      这 5 个底色不是写在 CSS 里，而是**数据库 system_configs.site_nav_icons 配的**，
      由 JS 以行内 style="background:#xxxxxx" 打在 .mn-ico 上。
      行内样式优先级高于任何普通选择器，所以只有 !important 才盖得住。
      原始值是：#e6f5f1(薄荷绿) #eaf0ff(浅蓝) #fde8f0(粉) #fff7ed(浅橙) #fef3c7(浅黄)
      —— 前两个明显发绿/发蓝，而这 5 个块只出现在「手机视图」，
         所以之前会出现"电脑上是粉的、手机上还是青绿色"的错觉。
      这里统一换成和谐的浅粉家族（保留彼此可区分）。 */
html.th-h5 .m-nav5 .mn-item:nth-child(1) .mn-ico{ background:#FBE8EB !important; }
html.th-h5 .m-nav5 .mn-item:nth-child(2) .mn-ico{ background:#F6E4F3 !important; }
html.th-h5 .m-nav5 .mn-item:nth-child(3) .mn-ico{ background:#FDE8F0 !important; }
html.th-h5 .m-nav5 .mn-item:nth-child(4) .mn-ico{ background:#FCEFE6 !important; }
html.th-h5 .m-nav5 .mn-item:nth-child(5) .mn-ico{ background:#FDEBF1 !important; }

/* ③ 主按钮：胶囊 + 玫瑰粉（= 主题色 #E87488，2026-09-14 23:0x 按用户要求）
      ★ 只把「高度」变小，宽度完全不动（选项 A）
        · 横向内边距 = 页面原值 16px → 宽度与原版逐像素一致（79.4px）
        · 纵向内边距 7px → 3px        → 高度 32.9px → 24.9px（变扁）
      ★ 颜色变迁史（别再改回去，用户来回调过三轮）：
        浅粉 #F2A6B6 → 白点看不清转圈 → 深莓果红 #B0164A → 用户要"和主题色一样"
        → **现在 #E87488**（主题玫瑰粉，白字对比度约 2.9:1，白点也仍压得住）。 */
html.th-h5 .m-trial-card .mtc-cta:not(.ended):not(.cancel){
  position:relative;
  padding:3px 16px;
  border-radius:999px;
  font-size:.74rem;            /* 与页面原值一致；写在这里是为了"自带字号" */
  white-space:nowrap;
  text-align:center;
  color:#fff;
  /* 主体就是主题色 #E87488，上下各偏一档做出一点立体感 */
  background:linear-gradient(180deg,#EF8598 0%,#E87488 58%,#DC6579 100%);
  box-shadow:0 3px 10px rgba(216,84,108,.24);   /* 极轻微柔和阴影 */
  transition:transform .2s cubic-bezier(.22,.61,.36,1), box-shadow .2s ease, padding .14s ease;
  -webkit-tap-highlight-color:transparent;
}

/* ③b 按钮体系 —— 按用户 2026-09-14 给的色值统一
      ① 卡片「查看详情」窄胶囊：见上面 ③（**现在是主题色 #E87488**）
      ② 全局主按钮【立即报名 / 提交 / 提交申请 / 提交审核】：#E87488
         ⚠️ 页面原规则是 background:var(--pri-h)，而 --pri-h 定义的是"深一档"，
            所以这里必须显式覆盖，否则主按钮会变成偏深的 #D8546C。
         hover 用 #DD5F76（用户给的备选色，深一点点即可）。
      ③ 描边次要按钮【取消 / 返回】：底色 #FFFFFF / 描边 #E87488 / 文字 #D8546C
         ⚠️ 页面里这类按钮的样式是**写死的行内 style**
            （background:var(--bg);border:1.5px solid var(--b)），
            所以只能用属性选择器精准命中 + !important 压过行内样式；
            这样才**不会波及其它 .btn**（比如页面头部那两个 .btn-o）。
      ④ 悬浮光点：纯白 30~40%，不带粉色 —— 见下面 ④ 段。 */
html.th-h5 .btn-pri{ background:#E87488; color:#fff; }
html.th-h5 .btn-pri:hover{ background:#DD5F76; }
html.th-h5 .btn[style*="border:1.5px solid var(--b)"]{
  background:#FFFFFF !important;
  border:1.5px solid #E87488 !important;
  color:#D8546C !important;
}

/* ④ 「查看项目」按钮（我的报名记录 / 详情页里）——
      它与"取消"按钮的**类名和行内样式完全一样**（.btn + background:var(--bg);border:1.5px solid var(--b)），
      只能用 onclick 里的跳转特征 navTo('/trial/ 来区分。
      它是"主操作"，按用户要求做成**主题色实心 #E87488**，与描边式的"取消"区分开。 */
html.th-h5 .btn[onclick*="navTo('/trial/'"]{
  background:#E87488 !important;
  border-color:transparent !important;
  color:#fff !important;
  font-weight:600;
  box-shadow:0 3px 10px rgba(216,84,108,.26);
}

/* ④ 贴边环绕光点 —— 纯白，压在深莓果红按钮边缘上（22:40 按"看不出转圈"反馈加强）
      做法：胶囊形元素 + 只保留外圈 3px 的遮罩 + 锥形渐变画出 3 个软光点；
      旋转的是"渐变角度"（@property 让角度可动画），而不是元素本身 ——
      胶囊不是圆，旋转元素会让光环歪掉。
      ★ 位置（2026-09-18 改）：inset:0 / padding:2px → 光环**完全收在按钮内部**，
        按钮外面不再有任何白色（用户反馈"按钮有一个大白边，按钮以外的地方不该有边"）。
        **大部分压在按钮的玫瑰粉底上**，纯白点对比强烈、转圈一眼可见。
      ★ 亮度：峰值 rgba(255,255,255,.95)（接近用户说"原来那版"的 .98 白），边缘衰减到 .34；
        **不含任何粉色**。
      ★ 为什么这次能看见：白点在**深莓果红底**上对比约 11:1；
        之前在**浅粉 #F2A6B6 底**上只有约 1.4:1 —— 那才是"看不出转圈"的根因。
        所以底色深浅和光点亮度是一对，不能只改一个。 */
@property --mtc-a{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
html.th-h5 .m-trial-card .mtc-cta:not(.ended):not(.cancel)::before,
html.th-h5 .m-trial-card .mtc-cta:not(.ended):not(.cancel)::after{
  content:""; position:absolute; inset:0; padding:2px;
  border-radius:inherit; pointer-events:none; --mtc-a:0deg;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  animation:mtcOrbit 7.5s linear infinite;
}
/* 2 个光点（::before） */
html.th-h5 .m-trial-card .mtc-cta:not(.ended):not(.cancel)::before{
  background:conic-gradient(from var(--mtc-a),
    rgba(255,255,255,0) 0,
    rgba(255,255,255,0) .055turn,
    rgba(255,255,255,.38) .078turn,
    rgba(255,255,255,.95) .10turn,
    rgba(255,255,255,.38) .122turn,
    rgba(255,255,255,0) .145turn,
    rgba(255,255,255,0) .555turn,
    rgba(255,255,255,.34) .578turn,
    rgba(255,255,255,.92) .60turn,
    rgba(255,255,255,.34) .622turn,
    rgba(255,255,255,0) .645turn,
    rgba(255,255,255,0) 1turn);
}
/* 第 3 个光点（::after） */
html.th-h5 .m-trial-card .mtc-cta:not(.ended):not(.cancel)::after{
  background:conic-gradient(from var(--mtc-a),
    rgba(255,255,255,0) 0,
    rgba(255,255,255,0) .305turn,
    rgba(255,255,255,.34) .328turn,
    rgba(255,255,255,.92) .35turn,
    rgba(255,255,255,.34) .372turn,
    rgba(255,255,255,0) .395turn,
    rgba(255,255,255,0) 1turn);
}
@keyframes mtcOrbit{ to{ --mtc-a:360deg; } }

/* ④b 【已移除】卡片标签上的同款光点 —— 2026-09-14 23:1x 按用户要求撤掉
      原来给 .mtc-side（系统标签）和 .mtc-chip（男/女、年龄、烟检…）都套了光点环，
      用户反馈"我感觉好卡啊" —— 确实：一张卡片上光点环就有 4 个伪元素在跑
      conic-gradient 动画，首页 12 张卡 = 48 个持续动画元素，手机端明显掉帧。
      现在只保留**「查看详情」按钮**那一圈光点，标签全部干净，回到静态。
      （若以后要恢复：把 position:relative / inline-block 与两组 ::before/::after
        连同 conic-gradient 一起加回来即可，颜色用 rgba(255,255,255,.95)。） */


/* ⑤ 点击反馈：放大 1.05 + 阴影短暂加深 + 文字轻微下压 + 光点短暂加速 */
html.th-h5 .m-trial-card .mtc-cta:not(.ended):not(.cancel):active{
  transform:scale(1.05);
  box-shadow:0 7px 18px rgba(214,120,140,.30);
  padding-top:4.5px; padding-bottom:1.5px;   /* 上下总高不变（仍 6px），只把文字压下去 1.5px */
}
html.th-h5 .m-trial-card .mtc-cta:not(.ended):not(.cancel):active::before,
html.th-h5 .m-trial-card .mtc-cta:not(.ended):not(.cancel):active::after{
  animation-duration:2.6s;
}

/* ⑥ 无障碍：系统开了「减少动态效果」就停转 */
@media (prefers-reduced-motion:reduce){
  html.th-h5 .m-trial-card .mtc-cta::before,
  html.th-h5 .m-trial-card .mtc-cta::after{ animation:none; }
  html.th-h5 .m-trial-card .mtc-cta:active{ transform:none; }
}

/* ⑦ Toast / Dialog —— 沿用页面自带的调用方式，只换视觉
      【为什么不能直接粘豆包那段 JS】
        页面早就有 toast：<div class="toast" id="toast"> + showToast(msg,isErr)（index.html 第 6953 行），
        **被调用 111 处**，错误态用的是 .err 类、第二个参数是布尔值。
        豆包那版用 #toastMsg + .success/.error + 字符串参数 —— 直接替换会让这 111 处
        里所有传 true 的调用炸掉（classList.add(true) 抛 TypeError）。
        所以正确做法：**让 CSS 同时认两套类名**，JS 一行不动。
      【视觉升级】
        原规则是 display:none / .show{display:block}（display 无法做过渡动画），
        这里把 display 固定为 block，改用 visibility + opacity 做淡入；
        原 .toast 的特异性(0,1,0) 低于 html.th-h5 .toast(0,2,1)，所以能稳定覆盖。 */
html.th-h5 .toast{
  display:block; visibility:hidden; opacity:0;
  position:fixed; top:16px; left:50%;
  transform:translateX(-50%) translateY(-10px);
  z-index:99999; pointer-events:none;
  max-width:84vw; padding:12px 22px;
  border-radius:999px;
  font-size:.86rem; line-height:1.45; text-align:center; color:#fff;
  background:linear-gradient(135deg,#E87488,#D8546C);
  border:1px solid rgba(255,255,255,.24);
  box-shadow:0 10px 26px rgba(216,84,108,.30), 0 2px 6px rgba(0,0,0,.06);
  transition:opacity .2s ease, transform .3s cubic-bezier(.22,.61,.36,1), visibility .2s;
  animation:none;                       /* 关掉页面自带的 slideDown，避免与上面的过渡打架 */
}
html.th-h5 .toast.show{ visibility:visible; opacity:1; transform:translateX(-50%) translateY(0); }
/* 出错：页面用 .err，豆包用 .error —— 两个都认 */
html.th-h5 .toast.err,
html.th-h5 .toast.error{
  background:linear-gradient(135deg,#E4595D,#C9393D);
  box-shadow:0 10px 26px rgba(190,50,54,.28), 0 2px 6px rgba(0,0,0,.06);
}
/* 成功：豆包的 .success（页面自己没有成功态，默认为品牌粉） */
html.th-h5 .toast.success{
  background:linear-gradient(135deg,#3BAE85,#2A8E6A);
  box-shadow:0 10px 26px rgba(42,142,106,.26), 0 2px 6px rgba(0,0,0,.06);
}

/* Dialog：页面本身**没有**弹窗组件（豆包那段 openDialog 依赖的 #dialogMask 页面里不存在，
      直接调用会报 null）。这里提供一套新皮肤风格的弹窗样式，
      结构 = .dialog-mask > .dialog-box（.show 控制显示），供演示页与后续接入使用。 */
html.th-h5 .dialog-mask{
  position:fixed; inset:0; z-index:99998;
  display:flex; align-items:center; justify-content:center;
  padding:0 22px;
  background:rgba(40,22,30,.44);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  opacity:0; visibility:hidden;
  transition:opacity .22s ease, visibility .22s ease;
}
html.th-h5 .dialog-mask.show{ opacity:1; visibility:visible; }
html.th-h5 .dialog-box{
  width:min(84vw,340px); padding:22px 20px 16px;
  background:#fff; border-radius:18px; text-align:center;
  box-shadow:0 18px 48px rgba(196,96,120,.26);
  transform:translateY(12px) scale(.97);
  transition:transform .3s cubic-bezier(.22,.61,.36,1);
}
html.th-h5 .dialog-mask.show .dialog-box{ transform:translateY(0) scale(1); }
html.th-h5 .dialog-title{ font-size:1rem; font-weight:800; color:#16303B; margin-bottom:8px; }
html.th-h5 .dialog-text{ font-size:.86rem; color:#5A6E78; line-height:1.6; margin-bottom:18px; }
html.th-h5 .dialog-actions{ display:flex; gap:10px; }
html.th-h5 .dialog-btn{
  flex:1; padding:11px 0; border:0; border-radius:999px;
  font-size:.88rem; font-weight:700; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
html.th-h5 .dialog-btn.ghost{ background:#FBE8EB; color:#D8546C; }
html.th-h5 .dialog-btn.primary{
  background:linear-gradient(180deg,#E87488,#D8546C); color:#fff;
  box-shadow:0 4px 14px rgba(216,84,108,.28);
}

/* ⑨ 悬浮「‹ 返回」按钮（右下角固定）——
      页面 index.html 里把它的 box-shadow 写死成了**绿色** rgba(22,197,138,.25)，
      三站主题本来就是绿所以看不出问题；驿站是玫瑰粉主题，那颗绿光晕就特别扎眼。
      index.html 与三站同源、不能动 → 只在皮肤层覆盖，三站不受影响。 */
html.th-h5 .m-fab-back{ box-shadow:0 6px 18px rgba(232,116,136,.28); }

/* ⑩ 报名页「单选圈」选中态的光圈 —— 页面 index.html 里写死成了绿色
      box-shadow:0 0 0 2.5px rgba(22,197,138,.18)（三站的绿主色）。
      三站主题本来就是绿，看不出来；驿站是玫瑰粉主题，那颗绿光圈很扎眼。
      index.html 与三站不同源、且这条规则就在页面文件里 → 只在皮肤层覆盖，三站一个字不用动。
      选择器带 html.th-h5 提权 + 本文件加载顺序在页面 <style> 之后 → 稳赢，无需 !important。 */
html.th-h5 #applyContent .radio-row input[type=radio]:checked{ box-shadow:0 0 0 2.5px rgba(232,116,136,.22); }

/* ⑪ 报名页「三个开关按钮」里的圆点 —— 报名模板识别 / 从资料库选择 / 与手机号相同
      页面里 .tg-btn.on .tg-dot 写死了**同一个绿色光圈** rgba(22,197,138,.18)，
      按钮点亮（.on）就出现绿圈。这三个按钮**健康人 / 慢性病 / 肿瘤 三个报名页都有**，
      所以不是"只有是否吸烟那一个"——上轮只盖了单选圈，这里补上。
      （2026-09-18 用户指出："你要看一下所有的地方，报名页面就有健康人慢性病肿瘤这三类"） */
html.th-h5 .tg-btn.on .tg-dot{ box-shadow:0 0 0 2.5px rgba(232,116,136,.22); }

/* ⑫ 顺手收掉另外两处漏网的绿色（同一类毛病：底色已被皮肤换成粉，页面里写死的绿还在）
      · .m-nav5 .mn-ico  首页五宫格图标圈的绿描边 border:1.5px solid rgba(22,197,138,.15)
        （本文件 ②b 段已经把它们的**底色**换成粉，只剩这圈绿描边）
      · #mCatBanner      列表页顶部"分类横幅"的绿边框（行内 style，必须 !important） */
html.th-h5 .m-nav5 .mn-ico{ border-color:rgba(232,116,136,.18) !important; }
html.th-h5 #mCatBanner{ border-color:rgba(232,116,136,.22) !important; }


/* ③c 修复（2026-09-24）：设置页「复制项目文案」两个按钮（附带推广链接/只复制内容）
      行内样式恰好也含 border:1.5px solid var(--b)，被 ③b 的属性选择器**永远**钉成白底粉边，
      选中态 .btn-pri 的实心底被 !important 压掉 → 选中后没有颜色背景。
      这里只对这两个按钮（onclick 特征锁定）的**选中态**补回实心主题色；
      未选中态仍走 ③b 描边样式，其余按钮（含报名页类别按钮）一律不受影响。 */
html.th-h5 .btn.btn-pri[onclick*="setCopyLink"]{
  background:#E87488 !important;
  border-color:#E87488 !important;
  color:#fff !important;
}

/* ═════════ 第 6 区：新版页面里"写死的品牌绿"兜底（2026-09-26 追加）  ═════════
 * 背景：index.html 从新版主站同步过来后，新出现了一批**写死的品牌绿**
 *       （三站本身就是绿主题，所以一直没人发现；驿站是粉主题，直接显成一排绿块）。
 *       用户 2026-09-26 反馈：「个人中心常用功能按钮还是绿色的」「申请更多身份这些按钮还是绿色的」。
 * 原则：**只改"默认态的主体色"**；任何**状态语义色**（已通过 .ok / 待审 .wait / 驳回 .bad、
 *       消息中心的「审核通过」标签）**一律不动** —— 那些用绿/黄/红是有意义的，不是主题色。
 * ═══════════════════════════════════════════════════════════════════════════ */

/* ① 「常用功能」五宫格（我的页 / 代理中心）—— 底色、描边、文字三处都是写死绿 */
html.th-h5 .m-quick-item{
  background:linear-gradient(180deg,#FEF7F9,#FBE8EB) !important;
  border-color:#F2B5C2 !important;
  box-shadow:0 4px 10px rgba(232,116,136,.12) !important;
}
html.th-h5 .m-quick-item .txt{ color:#D8546C !important; }

/* ② 「申请更多身份」身份卡（**默认态**；.ok/.wait/.bad 三种状态保持原样）
      ⚠️ 选择器必须带 :not(.ok):not(.wait):not(.bad) —— 否则 html.th-h5 的提权会盖掉状态色 */
html.th-h5 .role-tile:not(.ok):not(.wait):not(.bad){
  background:linear-gradient(180deg,#FEF7F9,#FBE8EB) !important;
  border-color:#F2B5C2 !important;
  color:#D8546C !important;
  box-shadow:0 4px 10px rgba(232,116,136,.12) !important;
}
html.th-h5 .role-tile:not(.ok):not(.wait):not(.bad) .sub{ color:#A8747F !important; }

/* ③ PC 端卡片容器 .trial-card 的深绿变量重定义
      （.m-trial-card 那条在【第 5 区 ②】已覆盖，这里是它的"孪生兄弟"选择器，之前漏了） */
html.th-h5 .trial-card{ --pri:#E87488; --pri-h:#D8546C; --pri-l:#FBE8EB; --pri-10:#FEF6F8; }

/* ④ 跨栏目推荐卡（"当前栏目没有匹配的项目"）的浅绿渐变底（边框本来就是 var(--pri)，只有底色写死） */
html.th-h5 .apply-card[style*="linear-gradient(135deg,#F4FBF7"]{
  background:linear-gradient(135deg,#FEF6F8,#fff) !important;
}

/* ⑤ 悬浮「‹ 返回」按钮的**边框**（2026-09-26 靓仔：「目前返回键还是绿色边框」）
      ｜⑨ 段只盖了 box-shadow，边框在页面里是 v41 / v45 / v47 / v48 四段**写死的绿**
        rgba(22,197,138,.45/.40/.55)，其中 v47、v48 带 !important → 本文件加载在页面 <style>
        之后、再叠 html.th-h5 提权，并同样用 !important 才能稳赢。
      ｜文字色一并钉住：页面 594 行是 var(--pri-h)，虽然驿站已把它换成粉，但下面还有
        v48 的 text-shadow 白色描边，若哪天页面改成写死绿这里也能兜住。 */
html.th-h5 .m-fab-back{
  border-color:rgba(232,116,136,.55) !important;
  color:#D8546C !important;
}

/* ⑥ 「申请更多身份」的**已通过态** .role-tile.ok（2026-09-26 靓仔：
      「申请代理已通过按键显示是绿色，不申请正常显示」）
      ｜② 段用 :not(.ok):not(.wait):not(.bad) 只修了默认态 → 一排粉按钮里夹一块绿，很扎眼。
      ｜驿站是玫瑰粉主题，"已完成"用**深一档主题色**表达即可，不需要绿色；
        底色比默认态稍深 + 文字更深一档，和「可点击」的浅粉默认态一眼分得开。
      ｜.wait(审核中·橙) / .bad(未通过·红) 是警示语义，本次不动。 */
html.th-h5 .role-tile.ok{
  background:linear-gradient(180deg,#FDEEF2,#F8DCE3) !important;
  border-color:#E9A2B2 !important;
  color:#C74258 !important;
  box-shadow:0 4px 10px rgba(232,116,136,.16) !important;
}
html.th-h5 .role-tile.ok::before{ background:#C74258 !important; }
html.th-h5 .role-tile.ok .sub{ color:#A8747F !important; }

/* ⑦ 提示类浮层（toast）—— 2026-09-26 靓仔：「测试复制项目，复制成功以后还是显示绿色的」
      ｜页面里两处绿：`.toast-center`（居中的大提示，复制成功走这个）写死 `rgba(22,197,138,.96)` + `!important`；
        `.toast`（顶部条）用 `var(--suc)`，粉主题下也是绿。统一改主题粉，**错误态 .err 保留红**。
      ｜`.toast-center` 那条必须带 !important —— 页面里它自己就是 !important（见 index.html 8732 行附近）。 */
html.th-h5 .toast{ background:var(--pri); }
html.th-h5 .toast.err{ background:var(--dan); }
html.th-h5 .toast-center{ background:rgba(232,116,136,.96) !important; }
html.th-h5 .toast-center.err{ background:rgba(190,26,26,.94) !important; }

/* ⑧ 按下态残留的绿色光晕（同一类：底色早换成粉了，:active 的 box-shadow 还写着品牌绿）
      · `.m-quick-item:active` / `.role-tile:active` 都是 rgba(22,197,138,.14) */
html.th-h5 .m-quick-item:active,
html.th-h5 .role-tile:active{ box-shadow:0 2px 5px rgba(232,116,136,.14); }


/* ═════════ 第 7 区：全量清绿 + 悬浮返回键位移范围修正（2026-09-27） ═════════
 * 背景：index.html 从新版主站同步后又冒出一批"写死的品牌绿"（极康绿），
 *       前几区已覆盖大半，本区收尾剩下的；并顺手纠正"悬浮返回键"的位置。
 * 原则（沿用本文件）：**只覆盖"主题装饰绿"**，index.html 一个字不动。
 *   ★「系统标识色」—— 中兴 #00B32D / 太美 #9999FF / 舍同 #33CCCC / 其他 #02A7F0
 *     是**数据源专属色**（JS 里 MOBILE_SYS_COLOR 给的，与"太美紫"并列），**一律不动**；
 *     卡片上的标签/「查看详情」按钮就是要"跟随所属系统的颜色"（v59 已实现）。
 *   ★「语义状态色」—— 成功 / 已通过 .ok / var(--suc) / toast.success，有明确含义，**一律不动**。
 * ═════════════════════════════════════════════════════════════════════════ */

/* ① 首页五宫格「当前栏目」方块 —— 页面 8434 行写死绿投影 rgba(22,197,138,.28)+!important */
html.th-h5 .mobile-home #siteConfigBox > .m-nav5 .mn-item.cur{
  box-shadow:0 3px 8px rgba(232,116,136,.28)!important;
}

/* ② 首页数据看板格子（页面 485 行写死绿投影） */
html.th-h5 .m-dash .md-item{ box-shadow:0 4px 12px rgba(232,116,136,.18)!important; }

/* ③ 「我的报名」里被高亮那一行 —— 页面 4961 行是 JS 内联写死的绿光圈。
      只能用属性选择器按"内联样式里含旧绿"精准命中，其它卡片不受影响。 */
html.th-h5 #appList .apply-card[style*="rgba(22,197,138"]{
  box-shadow:0 0 0 3px rgba(232,116,136,.22)!important;
}

/* ④ v59 / v60 / v62 三段的"兜底色"仍是旧品牌绿（--side-bg 缺省时才露）→ 换成本站主题粉（双保险）。
      ★ 只在 --side-bg 缺失时生效，正常情况仍跟随各系统的专属色。 */
html.th-h5 .mobile-home .m-trial-card .mtc-cta:not(.ended):not(.cancel),
html.th-h5 #favList .m-trial-card .mtc-cta:not(.ended):not(.cancel){
  background:var(--side-bg,#E87488)!important;
}
html.th-h5 .mobile-home .m-trial-card .mtc-cta.cancel,
html.th-h5 #favList .m-trial-card .mtc-cta.cancel{
  color:var(--side-bg,#E87488)!important;
  border-color:var(--side-bg,#E87488)!important;
}
html.th-h5 .mobile-home .m-trial-card.m-trial-tumor .tumor-tag,
html.th-h5 #favList .m-trial-card.m-trial-tumor .tumor-tag{
  background:var(--side-bg,#E87488)!important;
}
html.th-h5 .mobile-home .m-trial-card .mtc-chip,
html.th-h5 #favList .m-trial-card .mtc-chip{
  background:var(--side-bg,#E87488)!important;
}

/* ⑤ 卡片作用域的深绿变量 + 卡片图标渐变（.trial-card 是 .m-trial-card 的孪生选择器，别漏） */
html.th-h5 .trial-card{ --pri:#E87488; --pri-h:#D8546C; --pri-l:#FBE8EB; --pri-10:#FEF6F8; }
html.th-h5 .m-trial-card .mtc-icon,
html.th-h5 .trial-card .mtc-icon{ background:linear-gradient(135deg,var(--pri-l),#FCE3EC); }

/* ⑥ 卡片主按钮的绿渐变兜底（页面 1296 行写死 linear-gradient(#16C58A,#20A464)+绿光）。
      注意特异性故意低于 v59：卡片上的按钮仍以"跟随所属系统色"为准。 */
html.th-h5 .mtc-cta:not(.ended):not(.cancel){
  background:var(--pri)!important;
  box-shadow:0 3px 10px rgba(216,84,108,.25)!important;
}

/* ⑦ 悬浮「‹ 返回」/ BMI —— 只让**项目详情 / 报名页**（body.detail-mode）上移一个键位，
      其余页面（我的内页 / 消息中心 / 知识文章详情）保持原位。
      登录页由页面自己的 !important(64px) 负责，这里用 :not(.login-mode) 让开。
      （此前是直接改了 index.html 的基础值，把 inner-mode 内页的返回键也一起带偏了。） */
html.th-h5 body:not(.login-mode) .m-fab-back{ bottom:calc(148px + env(safe-area-inset-bottom))!important; }
html.th-h5 body.detail-mode:not(.login-mode) .m-fab-back{ bottom:calc(192px + env(safe-area-inset-bottom))!important; }
html.th-h5 body:not(.login-mode) .m-fab-bmi{ bottom:calc(202px + env(safe-area-inset-bottom))!important; }
html.th-h5 body.detail-mode:not(.login-mode) .m-fab-bmi{ bottom:calc(246px + env(safe-area-inset-bottom))!important; }
