/* C 端免费体验页 —— 与 B 端 A4 交付文稿刻意分开：
   那边是「给客户带走的纸」，这边是「手机上一眼看完的价值前置」。
   所以这里不用 A4 尺寸、不做打印样式、不出现任何占星师行话。 */

:root {
  --fr-bg: #f8f6f2;
  --fr-card: #FFFFFF;
  --fr-ink: #1f1c33;
  --fr-ink2: #565171;
  --fr-muted: #736c85;
  --fr-gold: #8a6a2f;
  --fr-gold-l: #faf4e8;
  --fr-line: #dfdad0;
  --fr-serif: "Songti SC", "SimSun", Georgia, "Noto Serif SC", serif;
  --fr-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--fr-bg);
  color: var(--fr-ink);
  font-family: var(--fr-sans);
  font-size: 15px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

/* ---------- 顶栏 ---------- */
.fr-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 15px 20px;
  max-width: 640px; margin: 0 auto;
}
.fr-brand {
  font-family: var(--fr-serif); font-size: 16px; letter-spacing: .08em;
  color: var(--fr-ink); text-decoration: none;
}
/* ⚠️ `.fr-biz`（「我是占星师」按钮）已不再使用（2026-10-06）。
   保留这几行是为兼容旧缓存的 HTML/JS —— 样式留着无害，
   但**任何新的入口都不要用它**。理由见 free.html 的注释：
   客户在要付费的那一刻看见「我是占星师」，等于在劝他别找人。 */
.fr-biz {
  font-size: 13px; color: var(--fr-muted); text-decoration: none;
  border: 1px solid var(--fr-line); border-radius: 20px; padding: 5px 13px;
}
.fr-biz:hover { color: var(--fr-gold); border-color: var(--fr-gold-l); }

/* 「选填 · 填了会更准」的标记 —— 不能跟必填的 * 同等分量，
   否则它就变成心理上的必填，转化照样掉。 */
.fr-opt {
  color: var(--fr-muted); font-style: normal; font-size: 12.5px;
  margin-left: 8px; opacity: .85;
}

.fr-wrap { max-width: 640px; margin: 0 auto; padding: 0 20px 40px; }

/* ---------- 主视觉 ---------- */
.fr-hero { padding: 18px 0 26px; }
.fr-kicker {
  display: inline-block; margin: 0 0 14px;
  font-size: 11.5px; letter-spacing: .04em; color: var(--fr-gold);
  background: var(--fr-gold-l); border-radius: 20px; padding: 4px 12px;
}
.fr-hero h1 {
  font-family: var(--fr-serif);
  font-size: 29px; font-weight: 500; line-height: 1.35;
  margin: 0 0 14px; letter-spacing: .01em;
}
.fr-sub { margin: 0; font-size: 14.5px; color: var(--fr-ink2); line-height: 1.85; }

/* ---------- 表单 ---------- */
.fr-card {
  background: var(--fr-card);
  border: 1px solid var(--fr-line);
  border-radius: 16px;
  padding: 22px 20px 20px;
}
.fr-f { display: block; margin-bottom: 17px; }
.fr-f > span {
  display: block; margin-bottom: 7px;
  font-size: 13.5px; color: var(--fr-ink2);
}
.fr-req { color: var(--fr-gold); font-style: normal; }
.fr-hint {
  display: block; margin-top: 5px;
  font-size: 11.5px; color: var(--fr-muted); font-style: normal;
}
.fr-f input {
  width: 100%; padding: 11px 13px;
  border: 1px solid var(--fr-line); border-radius: 10px;
  background: #f9f7f3; color: var(--fr-ink);
  font-family: var(--fr-sans); font-size: 15px;
}
.fr-f input:focus {
  outline: none; border-color: var(--fr-gold);
  background: #fff; box-shadow: 0 0 0 3px rgba(184, 137, 74, .1);
}

.fr-seg { display: flex; gap: 9px; }
.fr-seg button {
  flex: 1; padding: 10px 0;
  border: 1px solid var(--fr-line); border-radius: 10px;
  background: #f9f7f3; color: var(--fr-ink2);
  font-family: var(--fr-sans); font-size: 15px; cursor: pointer;
  transition: all .15s;
}
.fr-seg button.on {
  border-color: var(--fr-gold); background: var(--fr-gold-l);
  color: #8a6a2f; font-weight: 500;
}

.fr-btn {
  display: block; width: 100%; margin-top: 22px;
  padding: 14px 0;
  border: none; border-radius: 11px;
  background: var(--fr-gold); color: #fff;
  font-family: var(--fr-sans); font-size: 16px; font-weight: 500;
  cursor: pointer; transition: opacity .15s;
}
.fr-btn:hover { opacity: .9; }
.fr-btn:disabled { opacity: .55; cursor: default; }

.fr-msg { margin: 11px 0 0; font-size: 13px; color: #a83a3a; min-height: 0; }
.fr-msg:empty { display: none; }
.fr-note { margin: 12px 0 0; font-size: 11.5px; color: var(--fr-muted); text-align: center; }

/* ---------- 结果 ---------- */
.fr-load {
  text-align: center; padding: 46px 0;
  color: var(--fr-muted); font-size: 14px;
}
.fr-load b { display: block; font-size: 15px; color: var(--fr-ink2); font-weight: 400; margin-bottom: 7px; }

.fr-sheet {
  background: var(--fr-card);
  border: 1px solid var(--fr-line);
  border-radius: 16px;
  padding: 26px 22px;
  margin-bottom: 15px;
}
.fr-sheet-k {
  font-size: 11px; letter-spacing: .12em; color: var(--fr-gold);
  text-transform: uppercase; margin: 0 0 9px;
}
.fr-sheet h2 {
  font-family: var(--fr-serif); font-size: 22px; font-weight: 500;
  margin: 0 0 4px; line-height: 1.4;
}
.fr-sheet .fr-stamp { margin: 0 0 18px; font-size: 12.5px; color: var(--fr-muted); font-weight: 400; }

.fr-body { font-size: 15px; line-height: 1.95; color: var(--fr-ink2); }
.fr-body p { margin: 0 0 14px; }
.fr-body b, .fr-body strong { color: var(--fr-ink); font-weight: 500; }
.fr-body ul { margin: 0 0 14px; padding-left: 19px; }
.fr-body li { margin-bottom: 6px; }
.fr-body h3 { font-size: 15px; font-weight: 500; color: var(--fr-ink); margin: 20px 0 9px; }

/* 依据条：把「敢给可核对的东西」显式说出来 */
.fr-proof {
  background: #FBF8F2; border-left: 2px solid var(--fr-gold);
  border-radius: 0 10px 10px 0;
  padding: 13px 15px; margin: 18px 0 0;
  font-size: 13px; line-height: 1.85; color: var(--fr-ink2);
}
.fr-proof b { color: #8a6a2f; font-weight: 500; }

/* 升级钩子 */
.fr-upsell {
  background: linear-gradient(180deg, #f7f4ee 0%, #FFFFFF 100%);
  border: 1px solid #e6d5b4;
  border-radius: 16px;
  padding: 22px 20px;
  margin-bottom: 15px;
}
.fr-upsell h3 {
  font-family: var(--fr-serif); font-size: 18px; font-weight: 500;
  margin: 0 0 11px; line-height: 1.5;
}
.fr-upsell p { margin: 0 0 13px; font-size: 13.5px; color: var(--fr-ink2); line-height: 1.85; }
.fr-upsell .fr-chapters {
  margin: 0 0 15px; padding: 0; list-style: none;
  font-size: 13px; color: var(--fr-ink2);
}
.fr-upsell .fr-chapters li {
  padding: 4px 0 4px 17px; position: relative;
}
.fr-upsell .fr-chapters li::before {
  content: ''; position: absolute; left: 3px; top: 13px;
  width: 5px; height: 5px; border-radius: 50%; background: var(--fr-gold);
}
.fr-upsell .fr-f input, .fr-upsell .fr-f textarea {
  width: 100%; padding: 11px 13px;
  border: 1px solid var(--fr-line); border-radius: 10px;
  background: #fff; color: var(--fr-ink);
  font-family: var(--fr-sans); font-size: 15px;
}
.fr-upsell .fr-f textarea { min-height: 68px; resize: vertical; }
.fr-upsell .fr-f input:focus, .fr-upsell .fr-f textarea:focus {
  outline: none; border-color: var(--fr-gold);
  box-shadow: 0 0 0 3px rgba(184, 137, 74, .1);
}

.fr-done { text-align: center; padding: 12px 0 4px; }
.fr-done b {
  display: block; font-size: 16px; font-weight: 500;
  color: #3a7350; margin-bottom: 9px;
}
.fr-done p { margin: 0; font-size: 13.5px; color: var(--fr-ink2); line-height: 1.85; }

/* 操作条 */
.fr-acts { display: flex; gap: 9px; margin-bottom: 15px; }
.fr-acts button {
  flex: 1; padding: 11px 0;
  border: 1px solid var(--fr-line); border-radius: 10px;
  background: #fff; color: var(--fr-ink2);
  font-family: var(--fr-sans); font-size: 13.5px; cursor: pointer;
}
.fr-acts button:hover { border-color: var(--fr-gold-l); color: var(--fr-gold); }

/* 档位卡：两档并列，帮她做选择、不逼她选贵的（模式框 9.3 口径） */
.fr-tier {
  border: 1px solid var(--fr-line); border-radius: 12px;
  background: #fff; padding: 13px 15px; margin: 0 0 11px;
}
.fr-tier.hot { border-color: var(--fr-gold-l); background: #FBF8F2; }
.fr-tier-h {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
}
.fr-tier-h b {
  font-family: var(--fr-serif); font-size: 21px; font-weight: 500;
  color: var(--fr-gold); margin-right: 4px;
}
.fr-tier-h span {
  flex: none; font-size: 11.5px; color: var(--fr-muted); text-align: right;
}
.fr-tier-d { font-size: 13px; color: var(--fr-ink2); line-height: 1.7; margin-top: 3px; }
.fr-tier .fr-chapters { margin: 7px 0 0; }

/* 弹层 */
.fr-mask {
  position: fixed; left: 0; top: 0; right: 0; bottom: 0;
  background: rgba(30, 26, 34, .42);
  display: flex; align-items: flex-end; justify-content: center; z-index: 50;
}
.fr-modal {
  background: #fff; border-radius: 18px 18px 0 0;
  width: 100%; max-width: 640px; padding: 24px 20px 28px;
  max-height: 88vh; overflow-y: auto;
  /* 🔴 iPhone Home Indicator 遮底部：底部弹层贴底时最后的按钮正好压在
     指示条上，手指点下去命中的是系统手势区。
     env() 在不支持的环境里整条声明失效，退回原 padding，不会出错。 */
  padding-bottom: calc(28px + env(safe-area-inset-bottom));
}
.fr-modal h4 {
  font-family: var(--fr-serif); font-size: 18px; font-weight: 500;
  margin: 0 0 10px; line-height: 1.5;
}
.fr-modal p { margin: 0 0 15px; font-size: 13.5px; color: var(--fr-ink2); line-height: 1.85; }
.fr-modal .fr-close {
  display: block; width: 100%; margin-top: 11px; padding: 11px 0;
  border: 1px solid var(--fr-line); border-radius: 10px;
  background: #fff; color: var(--fr-ink2);
  font-family: var(--fr-sans); font-size: 14px; cursor: pointer;
}

.fr-foot {
  max-width: 640px; margin: 0 auto; padding: 24px 20px 44px;
}
.fr-foot p {
  margin: 0 0 9px; font-size: 11.5px; color: var(--fr-muted);
  line-height: 1.85; text-align: center;
}
.fr-foot a { color: var(--fr-gold); text-decoration: none; }

@media (min-width: 700px) {
  .fr-hero h1 { font-size: 34px; }
  .fr-sheet, .fr-upsell, .fr-card { padding: 30px 28px; }
}

/* ══════════════════════════════════════════════════════════
   追问区（2026-10-06 加）
   ══════════════════════════════════════════════════════════
   🔴 这是整个产品最重要的一段 UI。
   一次把解读全给出去 → 客户拿到的就是「一份关于自己的文档」，
   那东西免费工具也给得出七成 → 付完费不来了。
   所以首稿之后必须有一个**强暗示**的继续入口。
   视觉上要跟正文拉开：它是「另一件事」，不是正文的延续。 */

.fr-f-wide { display: block; }

.fr-followup {
  margin: 34px 0 8px;
  padding: 24px 22px 20px;
  border-radius: 14px;
  background: linear-gradient(180deg, #f9f7f3 0%, #eeeae2 100%);
  border: 1px solid rgba(184, 137, 74, .34);
}

.fr-fu-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.fr-fu-head b {
  font-size: 16.5px;
  color: #26213a;
  letter-spacing: .3px;
}
.fr-fu-badge {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--fr-gold);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .6px;
}

.fr-fu-lead {
  margin: 0 0 14px;
  font-size: 14.5px;
  line-height: 1.85;
  color: #3e3850;
}
.fr-fu-lead b { color: var(--fr-ink); }

.fr-fu-list {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
}
.fr-fu-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 11px 13px;
  margin-bottom: 9px;
  border-radius: 10px;
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(184, 137, 74, .18);
}
.fr-fu-tag {
  flex: 0 0 auto;
  width: 20px; height: 20px;
  margin-top: 1px;
  border-radius: 50%;
  background: rgba(184, 137, 74, .16);
  color: #8a6a2f;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  text-align: center;
}
.fr-fu-tx {
  font-size: 14px;
  line-height: 1.75;
  color: #3e3850;
}
.fr-fu-tx b { color: #1f1c33; }

.fr-fu-esc {
  margin: 0 0 16px;
  font-size: 13.5px;
  line-height: 1.8;
  color: #5c5672;
}
.fr-fu-esc b { color: var(--fr-ink); }

.fr-fu-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.fr-fu-b {
  flex: 1 1 auto;
  min-width: 140px;
  padding: 13px 16px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
}
.fr-fu-b1 {
  border: none;
  background: var(--fr-gold);
  color: #fff;
  box-shadow: 0 3px 12px rgba(184, 137, 74, .28);
}
.fr-fu-b2 {
  border: 1px solid rgba(184, 137, 74, .5);
  background: rgba(255, 255, 255, .8);
  color: #8a6a2f;
}
.fr-fu-b:hover { transform: translateY(-1px); }
.fr-fu-b1:hover { box-shadow: 0 5px 16px rgba(184, 137, 74, .36); }
.fr-fu-b2:hover { background: #fff; }

.fr-fu-fine {
  margin: 12px 0 0;
  font-size: 12.5px;
  line-height: 1.7;
  color: #736c85;
}

/* 就地展开的联系条 */
.fr-askbar {
  margin: 16px 0 4px;
  padding: 18px 16px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .8);
  border: 1px solid rgba(184, 137, 74, .26);
}
.fr-askbar-t {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.8;
  color: #3e3850;
}
.fr-askbar-t b { color: var(--fr-ink); }
.fr-askbar-r { display: flex; gap: 8px; flex-wrap: wrap; }
.fr-askbar-r input {
  flex: 1 1 150px;
  min-width: 0;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid rgba(184, 137, 74, .32);
  background: #fff;
  font-size: 14px;
  font-family: inherit;
  color: var(--fr-ink);
}
.fr-askbar-r input:focus {
  outline: none;
  border-color: var(--fr-gold);
}
.fr-askbar-r button {
  flex: 0 0 auto;
  padding: 11px 18px;
  border-radius: 8px;
  border: none;
  background: var(--fr-gold);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
}
.fr-askbar-r button:disabled { opacity: .6; cursor: default; }
.fr-askbar-f {
  margin: 10px 0 0;
  font-size: 12.5px;
  color: #a83a3a;
  min-height: 1em;
}

@media (max-width: 560px) {
  .fr-fu-btns { flex-direction: column; }
  .fr-askbar-r { flex-direction: column; }
}

/* ============================================================
   隐藏码上架平台注入的「由码上架发布」角标（2026-10-16 用户要求：全站去掉）
   与 app.css 同款规则——free/save 两页引的是本文件，不引 app.css，
   所以两边都要写。平台服务端注入 runtime.js（data-watermark="1"）后
   往 body 追加 <a id="mashangjia-watermark">，行内样式非 important，
   样式表 !important 稳赢。平台改实现方式时此规则可能失效，需回来改。
   ============================================================ */
#mashangjia-watermark { display: none !important; }


/* ==========================================================================
   ▼▼▼ 定稿 v3 设计层（2026-10-18 从设计框 astro-platform 合并而来） ▼▼▼
   来路：设计框做完整套 v2 暖意层 + v2 视觉重写层 + v2 排面层 + 定稿 v3 七项。
   本节为**纯追加覆盖层**，不改上面任何一条功能样式：
     · 不动任何 ID / data-* / 钩子类名（.tab .view .qn-* .menu-i .mask）
     · 不删码上架独有样式（码库存 / 平台发码 / 购买套餐 / 水印隐藏 / 安全区）
   ⚠️ 设计框的底本停在 2026-10-12，所以只能这样「取设计层」，
      永远不要拿 astro-platform 的整份 CSS/JS 覆盖本目录。
   ========================================================================== */

/* ---------- C 端暖意层 ---------- */

/* ══════════════════════════════════════════════════════════════════════
   v2 暖意层（2026-10-18）—— C 端免费体验页
   这一页是**客户**第一眼看到的东西，按设计规范「移动用得浓」执行：
   暖意比 B 端重，但仍守三条：文字安全色才上字、金色只标记关键时刻、
   动效仅 transform/opacity。全部为追加覆盖，不动上面任何功能样式。
   ══════════════════════════════════════════════════════════════════════ */
:root {
  /* 文字安全暖色（free.css 自带 :root，这里补两个墨色） */
  --fr-rose-ink: #a8467a;
  --fr-rose-deep: #d77fa3;
  --fr-lav: #b6a4e0;
  --fr-lav-deep: #9a86d4;
  --fr-rose-soft: #fdeef4;
  --fr-rose-line: #f2cfe0;
  --fr-lav-soft: #f4f0fb;
}

/* 整页柔光晕：右上玫粉、左下薰衣草，客户在手机上第一眼就是「暖的」 */
body { position: relative; overflow-x: hidden; }
body::before {
  content: ""; position: fixed; top: -130px; right: -110px; width: 380px; height: 380px;
  border-radius: 50%; pointer-events: none; z-index: 0;
  background: radial-gradient(circle, rgba(231,155,182,.20) 0%, rgba(231,155,182,0) 70%);
}
body::after {
  content: ""; position: fixed; bottom: -150px; left: -110px; width: 340px; height: 340px;
  border-radius: 50%; pointer-events: none; z-index: 0;
  background: radial-gradient(circle, rgba(182,164,224,.20) 0%, rgba(182,164,224,0) 70%);
}
.fr-top, .fr-wrap, .fr-foot { position: relative; z-index: 1; }

/* 顶栏品牌字染一道玫粉（客户认的是「这家是什么色调」） */
.fr-brand { color: var(--fr-rose-ink); }

/* 主视觉：kicker 从金箔改腮红胶囊；h1 保持墨色（衬线体是这页的骨架） */
.fr-kicker {
  color: var(--fr-rose-ink); background: var(--fr-rose-soft);
  border: 1px solid var(--fr-rose-line);
}

/* 表单卡：白卡 + 一道玫粉顶线，跟落地页能力卡同语言 */
.fr-card {
  border-radius: 18px; position: relative; overflow: hidden;
  box-shadow: 0 6px 22px rgba(122,96,168,.08);
}
.fr-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--fr-rose-deep) 0%, var(--fr-lav) 100%);
}
.fr-req { color: var(--fr-rose-ink); }

/* 输入框聚焦：金光圈 → 玫粉光圈（.28 透明度，圈还在但不刺眼） */
.fr-f input:focus {
  border-color: var(--fr-rose-deep);
  box-shadow: 0 0 0 3px rgba(215, 127, 163, .18);
}
.fr-upsell .fr-f input:focus, .fr-upsell .fr-f textarea:focus {
  border-color: var(--fr-rose-deep);
  box-shadow: 0 0 0 3px rgba(215, 127, 163, .18);
}

/* textarea 对齐 input 框（2026-10-18 用户要求「跟出生城市一样的框框」）
   🔴 病因：#fNow（表单内「最困扰你的一件事」）和 #uMsg（追问区里动态
      生成的那个）此前**一条基础样式都没有**，走浏览器默认——白底、直角
      细灰边、右下角还带 resize 手柄，跟旁边米白圆角的 input 完全两个世界。
   ✅ 治法：把 .fr-f input 的框原样搬过来（同底 #f9f7f3、同边、同 10px
      圆角、同 15px 字号），只改两处textarea 该有的：
      line-height 1.6（多行要呼吸）、resize 只留纵向（横向拉伸会破版）。 */
.fr-f textarea {
  display: block; width: 100%; padding: 11px 13px;
  border: 1px solid var(--fr-line); border-radius: 10px;
  background: #f9f7f3; color: var(--fr-ink);
  font-family: var(--fr-sans); font-size: 15px; line-height: 1.6;
  resize: vertical;
}
/* 聚焦态与 input 完全一致：白底 + 玫粉边 + 玫粉光圈 */
.fr-f textarea:focus {
  outline: none; border-color: var(--fr-rose-deep); background: #fff;
  box-shadow: 0 0 0 3px rgba(215, 127, 163, .18);
}

/* 性别分段：选中态金 → 玫粉 */
.fr-seg button.on {
  border-color: var(--fr-rose-line); background: var(--fr-rose-soft); color: var(--fr-rose-ink);
}

/* 主按钮：这是客户唯一必须点的东西，玫渐变 + 白字（5.0:1） */
.fr-btn {
  background: linear-gradient(135deg, var(--fr-rose-deep) 0%, var(--fr-rose-ink) 100%);
  box-shadow: 0 4px 14px rgba(215,127,163,.32);
  transition: transform .14s, box-shadow .14s, filter .14s;
}
.fr-btn:hover { opacity: 1; filter: brightness(1.06); transform: translateY(-1px); }
.fr-btn:active { transform: translateY(1px); }

/* 结果稿：章节序号与依据条染暖 */
.fr-sheet-k { color: var(--fr-rose-ink); }
.fr-proof { background: #fdf5f9; border-left-color: var(--fr-rose-deep); }
.fr-proof b { color: var(--fr-rose-ink); }

/* 升级钩子卡：从「米金渐变」改成「玫→薰衣草」渐变，转化入口必须最亮眼 */
.fr-upsell {
  background: linear-gradient(160deg, #fdf2f7 0%, #f6f1fb 55%, #FFFFFF 100%);
  border-color: var(--fr-rose-line);
}
.fr-upsell .fr-chapters li::before { background: var(--fr-rose-deep); }

/* 追问区（全页最重要的一段 UI）：从「金边框米底」升级成
   「玫粉渐变 + 薰衣草描边」，视觉上明确是「另一件事」 */
.fr-followup {
  background: linear-gradient(165deg, #fdeef4 0%, #f6f1fb 60%, #ffffff 100%);
  border: 1px solid rgba(215,127,163,.42);
  box-shadow: 0 8px 26px rgba(154,134,212,.16);
}
.fr-fu-badge {
  background: linear-gradient(135deg, var(--fr-rose-deep) 0%, var(--fr-rose-ink) 100%);
}
.fr-fu-item { background: rgba(255,255,255,.78); border-color: rgba(215,127,163,.26); }
.fr-fu-tag { background: rgba(215,127,163,.18); color: var(--fr-rose-ink); }
/* 主按钮（继续追问）：玫渐变；次按钮：玫描边 */
.fr-fu-b1 {
  background: linear-gradient(135deg, var(--fr-rose-deep) 0%, var(--fr-rose-ink) 100%);
  box-shadow: 0 3px 12px rgba(215,127,163,.30);
}
.fr-fu-b2 { border-color: rgba(215,127,163,.55); color: var(--fr-rose-ink); }
.fr-fu-b2:hover { background: #fff; border-color: var(--fr-rose-ink); }

/* 就地联系条：同步染暖，跟追问区是一对 */
.fr-askbar {
  background: rgba(255,255,255,.86);
  border-color: rgba(215,127,163,.30);
}
.fr-askbar-r input { border-color: rgba(215,127,163,.34); }
.fr-askbar-r input:focus { border-color: var(--fr-rose-deep); }
.fr-askbar-r button {
  background: linear-gradient(135deg, var(--fr-rose-deep) 0%, var(--fr-rose-ink) 100%);
}

/* 操作条 / 档位卡 / 弹层：统一暖 hover */
.fr-acts button:hover { border-color: var(--fr-rose-line); color: var(--fr-rose-ink); }
.fr-tier.hot { border-color: var(--fr-rose-line); background: #fdf5f9; }
.fr-modal { border-radius: 20px 20px 0 0; }
