/* ============================================================
   灯塔志愿 · 设计系统
   配色：学院墨绿（沉稳/可信/书卷气） + 香槟金（金榜题名/灯塔光）
   ============================================================ */

:root {
  /* 品牌色：学院墨绿 */
  --navy-950: #071a12;
  --navy-900: #0b2419;
  --navy-800: #113323;
  --navy-700: #17452f;
  --navy-600: #1d5c3e;
  --navy-500: #247350;
  /* 强调色：香槟金 */
  --gold-500: #d4af6a;
  --gold-400: #e3c78d;
  --gold-300: #f0e0b6;
  --orange-500: #c9a45c;
  /* 中性色（微暖） */
  --ink: #1a211d;
  --ink-2: #2b342e;
  --muted: #63716a;
  --muted-2: #97a39c;
  --line: #e3eae3;
  --bg: #f6f8f5;
  --bg-soft: #edf2ec;
  --white: #ffffff;
  /* 手札纸色（AI 对话页） */
  --paper: #faf5e9;
  --paper-card: #fdfaf2;
  --paper-deep: #f3ead7;
  --paper-line: #e6dcc3;
  --ink-paper: #36403a;
  --font-serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;
  /* 语义色（冲稳保） */
  --rush: #e11d48;
  --steady: #2563eb;
  --safe: #059669;
  /* 阴影 */
  --shadow-sm: 0 2px 8px rgba(11, 36, 25, 0.06);
  --shadow-md: 0 8px 24px rgba(11, 36, 25, 0.1);
  --shadow-lg: 0 20px 48px rgba(11, 36, 25, 0.15);
  --shadow-gold: 0 10px 30px rgba(201, 164, 92, 0.38);
  --radius: 18px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }

.container { width: min(1180px, 92%); margin: 0 auto; }

/* ---------- 通用按钮 ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 28px; border-radius: 999px; font-size: 15px; font-weight: 600;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space: nowrap;
}
.btn:active { transform: scale(.97); }

.btn-gold {
  background: linear-gradient(135deg, #f0dfb0 0%, #ddbd7e 55%, #c9a45c 100%);
  color: #3d2e10;
  box-shadow: var(--shadow-gold);
}
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(201, 164, 92, .5); }

.btn-dark {
  background: linear-gradient(135deg, var(--navy-800), var(--navy-950));
  color: #fff;
  box-shadow: 0 10px 26px rgba(11, 36, 25, .32);
}
.btn-dark:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(11, 36, 25, .42); }

.btn-outline {
  border: 1.5px solid rgba(255,255,255,.45); color: #fff;
  background: rgba(255,255,255,.08); backdrop-filter: blur(6px);
}
.btn-outline:hover { background: rgba(255,255,255,.18); }

.btn-ghost { border: 1.5px solid var(--line); color: var(--navy-800); background: #fff; }
.btn-ghost:hover { border-color: var(--navy-500); color: var(--navy-600); transform: translateY(-2px); }

.btn-sm { padding: 9px 20px; font-size: 14px; }
.btn-block { width: 100%; }

/* ---------- 徽章 / 标签 ---------- */
.badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 999px;
  font-size: 13px; font-weight: 600;
}
.badge-gold { background: rgba(212, 175, 106, .16); color: #8f6f2c; border: 1px solid rgba(201, 164, 92, .4); }
.badge-blue { background: rgba(29, 92, 62, .1); color: var(--navy-600); border: 1px solid rgba(29, 92, 62, .24); }
.badge-light { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.25); }

.tag {
  display: inline-block; padding: 4px 12px; border-radius: 8px;
  font-size: 12.5px; font-weight: 500;
}
.tag-rush { background: #ffe4e9; color: var(--rush); }
.tag-steady { background: #dbeafe; color: var(--steady); }
.tag-safe { background: #d1fae5; color: var(--safe); }

/* ---------- 区块标题 ---------- */
.section { padding: 96px 0; }
.section-head { text-align: center; max-width: 680px; margin: 0 auto 56px; }
.section-head .badge { margin-bottom: 18px; }
.section-head h2 {
  font-size: clamp(28px, 3.4vw, 40px); font-weight: 800;
  color: var(--navy-900); line-height: 1.25; letter-spacing: -.5px;
}
.section-head p { margin-top: 14px; color: var(--muted); font-size: 16.5px; }

.text-gradient-gold {
  background: linear-gradient(120deg, #e0c078, #b8913f);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.text-gradient-blue {
  background: linear-gradient(120deg, #247350, #113323);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ---------- 卡片 ---------- */
.card {
  background: #fff; border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-sm);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.card-hover:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: rgba(29,92,62,.28); }

.icon-box {
  width: 52px; height: 52px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; flex-shrink: 0;
}

/* ---------- 顶部导航 ---------- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  padding: 18px 0;
  background: rgba(255, 255, 255, .78);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: padding .3s ease, background .3s ease, box-shadow .3s ease;
  border-bottom: 1px solid rgba(11,36,25,.06);
}
.nav.scrolled {
  padding: 10px 0;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(14px);
  box-shadow: 0 4px 20px rgba(11, 36, 25, .08);
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.logo { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 20px; }
.logo-mark {
  width: 38px; height: 38px; border-radius: 11px;
  background: linear-gradient(135deg, #ecd7a2, #c9a45c);
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-gold);
}
.nav-links { display: flex; gap: 30px; }
.nav-links a {
  font-size: 15px; font-weight: 500; color: var(--ink-2);
  position: relative; padding: 4px 0; transition: color .2s;
}
.nav.scrolled .nav-links a { color: var(--ink-2); }
.nav-links a:hover { color: var(--navy-600); }
.nav.scrolled .nav-links a:hover { color: var(--navy-600); }
/* 人格测试入口：金色胶囊 */
.nav-links a.nav-test {
  padding: 5px 13px; border-radius: 999px; font-weight: 600;
  color: var(--navy-700);
  border: 1px solid rgba(19,89,60,.35);
  background: rgba(19,89,60,.06);
  transition: background .2s, border-color .2s, color .2s;
}
.nav-links a.nav-test:hover {
  color: #1a3a28; background: var(--gold-400); border-color: var(--gold-400);
}
.nav.scrolled .nav-links a.nav-test { color: var(--navy-700); border-color: rgba(19,89,60,.35); background: rgba(19,89,60,.06); }
.nav.scrolled .nav-links a.nav-test:hover { color: #1a3a28; }
.nav-actions { display: flex; align-items: center; gap: 14px; }
.nav-login { font-size: 15px; font-weight: 600; color: var(--navy-800); }
.nav.scrolled .nav-login { color: var(--navy-800); }
.nav-toggle { display: none; font-size: 26px; color: var(--navy-900); }
.nav.scrolled .nav-toggle { color: var(--navy-900); }

/* 深色页（ai.html）导航 */
.nav.on-light .nav-links a { color: var(--ink-2); }
.nav.on-light .nav-login { color: var(--navy-800); }
.nav.on-light .nav-toggle { color: var(--navy-900); }

/* ---------- Hero ---------- */
.hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(1100px 520px at 82% -10%, rgba(36, 115, 80, .55), transparent 60%),
    radial-gradient(900px 480px at 8% 110%, rgba(212, 175, 106, .24), transparent 55%),
    linear-gradient(160deg, var(--navy-950) 0%, var(--navy-800) 58%, var(--navy-700) 100%);
  color: #fff;
  padding: 168px 0 110px;
}
.hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.9), transparent 75%);
}
.hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 56px; align-items: center; position: relative; z-index: 1; }
.hero h1 {
  font-size: clamp(32px, 4.6vw, 54px); line-height: 1.18; font-weight: 800;
  letter-spacing: -1px; margin: 22px 0 20px;
}
.hero .lead { font-size: 17.5px; color: rgba(255,255,255,.78); max-width: 560px; }
.hero-cta { display: flex; gap: 16px; margin: 34px 0 30px; flex-wrap: wrap; }
.hero-stats { display: flex; gap: 40px; flex-wrap: wrap; }
.hero-stats .num { font-size: 28px; font-weight: 800; color: var(--gold-300); }
.hero-stats .label { font-size: 13.5px; color: rgba(255,255,255,.65); }

.hero-visual { position: relative; }
.hero-img-wrap {
  border-radius: 26px; overflow: hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,.45);
  border: 1px solid rgba(255,255,255,.18);
  transform: rotate(1.5deg);
}
.hero-float {
  position: absolute; background: rgba(255,255,255,.97); color: var(--ink);
  border-radius: 16px; padding: 14px 18px; box-shadow: var(--shadow-lg);
  display: flex; align-items: center; gap: 12px; font-size: 13.5px;
  animation: floaty 5s ease-in-out infinite;
}
.hero-float .fi { width: 38px; height: 38px; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; }
.hero-float strong { display: block; font-size: 15px; color: var(--navy-900); }
.hero-float span { color: var(--muted); font-size: 12.5px; }
.float-1 { top: -22px; left: -34px; }
.float-2 { bottom: -24px; right: -20px; animation-delay: 1.6s; }

@keyframes floaty { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

/* ---------- 信任条 ---------- */
.trust-bar { background: #fff; border-bottom: 1px solid var(--line); padding: 26px 0; }
.trust-inner { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.trust-item { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 14.5px; font-weight: 500; }
.trust-item .ti { font-size: 20px; }

/* ---------- 功能网格 ---------- */
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.feature-card { padding: 30px 28px; }
.feature-card .icon-box { margin-bottom: 18px; }
.feature-card h3 { font-size: 18.5px; font-weight: 700; color: var(--navy-900); margin-bottom: 10px; }
.feature-card p { color: var(--muted); font-size: 14.5px; }
.feature-card .more { display: inline-flex; align-items: center; gap: 6px; margin-top: 16px; font-size: 14px; font-weight: 600; color: var(--navy-600); }
.feature-card:hover .more { gap: 10px; }
.feature-card .more { transition: gap .25s; }

/* ---------- 功能矩阵（分组工具箱） ---------- */
.tools-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  margin-top: 8px;
}
.tool-card {
  background: var(--bg); border: 1px solid var(--line);
  border-radius: 20px; padding: 24px 24px 18px;
  transition: box-shadow .25s, transform .25s;
}
.tool-card:hover { box-shadow: 0 18px 40px rgba(11,36,25,.08); transform: translateY(-2px); }
/* 核心组：墨绿深色卡 */
.tool-card-hot {
  background: linear-gradient(160deg, #164a33 0%, #0e3525 100%);
  border-color: transparent;
  box-shadow: 0 18px 44px rgba(14,53,37,.28);
}
.tool-card-hot:hover { box-shadow: 0 22px 50px rgba(14,53,37,.38); }
.tc-head { display: flex; align-items: center; gap: 13px; margin-bottom: 14px; }
.tc-ico {
  width: 44px; height: 44px; border-radius: 13px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 21px; background: #dcefe4;
}
.tool-card-hot .tc-ico { background: rgba(212,175,106,.18); }
.tc-head h3 { font-size: 17px; font-weight: 700; color: var(--navy-900); }
.tc-head p { font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.tool-card-hot .tc-head h3 { color: #f6efdd; }
.tool-card-hot .tc-head p { color: rgba(231,238,233,.66); }
.tc-rows { display: flex; flex-direction: column; }
.tc-row {
  position: relative; display: block;
  padding: 11px 30px 11px 13px; margin: 0 -9px;
  border-radius: 13px;
  transition: background .2s;
}
.tc-row:hover { background: var(--bg-soft); }
.tool-card-hot .tc-row:hover { background: rgba(255,255,255,.07); }
.tc-row b {
  display: flex; align-items: center; gap: 8px;
  font-size: 14.5px; font-weight: 600; color: var(--navy-800);
}
.tool-card-hot .tc-row b { color: #f2ead6; }
.tc-row > span {
  display: block; margin-top: 3px; padding-right: 8px;
  font-size: 12.5px; line-height: 1.6; color: var(--muted);
}
.tool-card-hot .tc-row > span { color: rgba(216,228,220,.72); }
.tc-row > i {
  position: absolute; right: 13px; top: 11px;
  font-style: normal; font-size: 18px; line-height: 1.2;
  color: var(--muted-2); transition: transform .2s, color .2s;
}
.tc-row:hover > i { transform: translateX(3px); color: var(--gold-500); }
.tool-card-hot .tc-row > i { color: rgba(212,175,106,.75); }
.tool-card-hot .tc-row:hover > i { color: var(--gold-400); }
.tc-tag {
  font-style: normal; font-size: 10.5px; font-weight: 700;
  color: #8f6f2c; background: rgba(212,175,106,.16);
  border: 1px solid rgba(201,164,92,.4);
  padding: 1px 7px; border-radius: 99px; line-height: 1.5;
}
.tc-tag-tool {
  color: var(--navy-600); background: rgba(29,92,62,.1);
  border-color: rgba(29,92,62,.28);
}
.tool-card-hot .tc-tag { color: var(--gold-300); background: rgba(212,175,106,.15); border-color: rgba(212,175,106,.4); }
/* 卡片底部 CTA */
.tools-foot {
  margin-top: 28px; text-align: center;
  padding: 26px 24px; border-radius: 20px;
  background: linear-gradient(150deg, #faf5e8, #f3e8cd);
  border: 1px solid rgba(201,164,92,.3);
}
.tools-foot p { font-size: 14px; color: #6b5320; margin-bottom: 14px; }
.tools-foot-btns { display: flex; align-items: center; justify-content: center; gap: 22px; }
.tf-link { font-size: 14px; font-weight: 600; color: var(--navy-700); }
.tf-link:hover { color: var(--gold-600, #8f6f2c); }

/* ---------- 流程 ---------- */
.steps-wrap { background: linear-gradient(180deg, var(--bg-soft), var(--bg)); }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; counter-reset: step; }
.step-card { position: relative; padding: 34px 26px 28px; text-align: left; }
.step-num {
  width: 44px; height: 44px; border-radius: 13px;
  background: linear-gradient(135deg, var(--navy-700), var(--navy-900));
  color: var(--gold-300); font-weight: 800; font-size: 19px;
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;
}
.step-card h3 { font-size: 17px; font-weight: 700; color: var(--navy-900); margin-bottom: 8px; }
.step-card p { font-size: 14px; color: var(--muted); }
/* AI 动作清单 */
.ai-do-list {
  list-style: none; padding: 0; margin: 10px 0 4px;
  display: flex; flex-direction: column; gap: 8px;
}
.ai-do-list li {
  font-size: 13.5px; color: var(--muted); line-height: 1.5;
  padding-left: 14px; position: relative;
}
.ai-do-list li::before {
  content: ''; position: absolute; left: 0; top: 8px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--gold-400);
}
.ai-do-list b {
  color: var(--navy-700); font-weight: 600;
}
.step-arrow { position: absolute; top: 52px; right: -16px; font-size: 22px; color: var(--muted-2); z-index: 2; }

/* ---------- 方案演示（冲稳保） ---------- */
.plan-demo {
  background: linear-gradient(160deg, var(--navy-950), var(--navy-800));
  color: #fff; border-radius: 28px; padding: 56px;
  position: relative; overflow: hidden;
}
.plan-demo::before {
  content: ""; position: absolute; width: 420px; height: 420px; border-radius: 50%;
  background: radial-gradient(circle, rgba(212,175,106,.28), transparent 70%);
  top: -160px; right: -120px;
}
.plan-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; position: relative; z-index: 1; }
.plan-col { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 18px; padding: 24px; backdrop-filter: blur(6px); }
.plan-col .pc-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.plan-col .pc-title { font-size: 19px; font-weight: 800; }
.plan-col .pc-desc { font-size: 12.5px; color: rgba(255,255,255,.6); margin: -10px 0 16px; }
.school-row {
  background: rgba(255,255,255,.94); color: var(--ink);
  border-radius: 12px; padding: 13px 15px; margin-bottom: 10px;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.school-row .sn { font-size: 14px; font-weight: 700; color: var(--navy-900); }
.school-row .sm { font-size: 12px; color: var(--muted); margin-top: 2px; }
.prob { font-size: 13px; font-weight: 700; white-space: nowrap; }
.prob.rush { color: var(--rush); } .prob.steady { color: var(--steady); } .prob.safe { color: var(--safe); }
.prob-bar { width: 56px; height: 5px; border-radius: 99px; background: #e6ece6; margin-top: 5px; overflow: hidden; }
.prob-bar i { display: block; height: 100%; border-radius: 99px; }

/* ---------- 定价 ---------- */
.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; align-items: stretch; }
.price-card { padding: 38px 32px; display: flex; flex-direction: column; position: relative; }
.price-card.featured {
  border: 2px solid var(--gold-500);
  box-shadow: var(--shadow-gold);
  transform: scale(1.03);
  background: linear-gradient(180deg, #fdfaf2, #fff 42%);
}
.price-flag {
  position: absolute; top: -15px; left: 50%; transform: translateX(-50%);
  background: linear-gradient(135deg, #e3c78d, #c9a45c); color: #3d2e10;
  padding: 6px 20px; border-radius: 999px; font-size: 13px; font-weight: 700;
  box-shadow: var(--shadow-gold); white-space: nowrap;
}
.price-name { font-size: 19px; font-weight: 800; color: var(--navy-900); }
.price-for { font-size: 13.5px; color: var(--muted); margin-top: 4px; }
.price-amount { margin: 22px 0 4px; display: flex; align-items: baseline; gap: 6px; }
.price-amount .cur { font-size: 20px; font-weight: 700; color: var(--navy-900); }
.price-amount .val { font-size: 46px; font-weight: 800; color: var(--navy-900); line-height: 1; }
.price-amount .old { font-size: 15px; color: var(--muted-2); text-decoration: line-through; margin-left: 6px; }
.price-period { font-size: 13px; color: var(--muted); }
.price-list { margin: 24px 0 28px; display: flex; flex-direction: column; gap: 13px; flex: 1; }
.price-list li { display: flex; gap: 10px; font-size: 14.5px; color: var(--ink-2); align-items: flex-start; }
.price-list li .ck { color: var(--safe); font-weight: 800; flex-shrink: 0; }
.price-list li.off { color: var(--muted-2); }
.price-list li.off .ck { color: #c4cec6; }

/* ---------- 评价 ---------- */
.reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.review-card { padding: 30px 28px; }
.stars { color: var(--gold-500); letter-spacing: 3px; font-size: 15px; margin-bottom: 14px; }
.review-text { font-size: 15px; color: var(--ink-2); margin-bottom: 22px; }
.reviewer { display: flex; align-items: center; gap: 13px; }
.avatar {
  width: 44px; height: 44px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 700; font-size: 16px; flex-shrink: 0;
}
.reviewer .rn { font-size: 14.5px; font-weight: 700; color: var(--navy-900); }
.reviewer .rm { font-size: 12.5px; color: var(--muted); }

/* ---------- FAQ ---------- */
.faq-list { max-width: 780px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
.faq-item { background: #fff; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; transition: box-shadow .25s; }
.faq-item.open { box-shadow: var(--shadow-md); border-color: rgba(29,92,62,.24); }
.faq-q { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px; text-align: left; font-size: 16px; font-weight: 600; color: var(--navy-900); }
.faq-q .fq-icon { width: 28px; height: 28px; border-radius: 50%; background: var(--bg-soft); color: var(--navy-700); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; transition: transform .3s, background .3s; }
.faq-item.open .fq-icon { transform: rotate(45deg); background: #b8923f; color: #fff; }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-a p { padding: 0 24px 22px; color: var(--muted); font-size: 14.5px; }

/* ---------- 底部 CTA ---------- */
.cta-band {
  background:
    radial-gradient(700px 320px at 15% 0%, rgba(36,115,80,.45), transparent 60%),
    linear-gradient(135deg, var(--navy-900), var(--navy-950));
  border-radius: 28px; padding: 64px 48px; text-align: center; color: #fff;
  position: relative; overflow: hidden;
}
.cta-band h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 800; margin-bottom: 14px; }
.cta-band p { color: rgba(255,255,255,.72); margin-bottom: 30px; font-size: 16px; }

/* ---------- 页脚 ---------- */
.footer { background: var(--navy-950); color: rgba(255,255,255,.7); padding: 64px 0 30px; margin-top: 96px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 44px; }
.footer .logo { color: #fff; margin-bottom: 16px; }
.footer-desc { font-size: 14px; line-height: 1.8; max-width: 300px; }
.footer h4 { color: #fff; font-size: 15px; margin-bottom: 18px; font-weight: 700; }
.footer li { margin-bottom: 11px; }
.footer li a { font-size: 14px; transition: color .2s; }
.footer li a:hover { color: var(--gold-400); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 24px; display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; font-size: 13px; color: rgba(255,255,255,.45); text-align: center; line-height: 1.8; }
.footer-bottom .footer-icp { flex-basis: 100%; margin-top: 8px; font-size: 12px; color: rgba(255,255,255,.5); }
.footer-bottom .footer-icp a { color: rgba(255,255,255,.5); text-decoration: none; margin: 0 6px; }
.footer-bottom .footer-icp a:hover { color: var(--gold-400); }

/* ---------- 滚动渐入 ---------- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: .1s; } .reveal-d2 { transition-delay: .2s; } .reveal-d3 { transition-delay: .3s; }

/* ============================================================
   AI 咨询页
   ============================================================ */
.chat-page { background: var(--bg); height: 100vh; display: flex; flex-direction: column; overflow: hidden; }

.chat-nav {
  background: #fff; border-bottom: 1px solid var(--line);
  padding: 12px 0; position: relative; z-index: 20;
  box-shadow: var(--shadow-sm);
}
.chat-nav .nav-inner { gap: 20px; }
.credits-pill {
  display: inline-flex; align-items: center; gap: 8px;
  background: linear-gradient(135deg, #faf5e8, #f3e8cd);
  border: 1px solid rgba(201,164,92,.4);
  color: #8f6f2c; padding: 8px 16px; border-radius: 999px;
  font-size: 13.5px; font-weight: 700;
}

.chat-body { flex: 1; display: flex; min-height: 0; }

/* 左侧栏 */
.chat-sidebar {
  width: 272px; background: #fff; border-right: 1px solid var(--line);
  display: flex; flex-direction: column; padding: 18px 14px; flex-shrink: 0;
}
.side-new {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 12px; border-radius: 12px;
  background: linear-gradient(135deg, var(--navy-800), var(--navy-950));
  color: #fff; font-weight: 600; font-size: 14.5px;
  box-shadow: 0 8px 20px rgba(11,36,25,.28); transition: transform .2s;
}
.side-new:hover { transform: translateY(-2px); }
.side-label { font-size: 12px; color: var(--muted-2); font-weight: 600; margin: 22px 8px 8px; }
.session-item {
  display: flex; align-items: center; gap: 10px; padding: 11px 12px;
  border-radius: 11px; font-size: 13.5px; color: var(--ink-2);
  cursor: pointer; transition: background .2s; white-space: nowrap; overflow: hidden;
}
.session-item:hover { background: var(--bg-soft); }
.session-item.active { background: var(--bg-soft); color: var(--navy-700); font-weight: 600; }
.session-item .si-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold-500); flex-shrink: 0; }
.session-item .si-title { overflow: hidden; text-overflow: ellipsis; }
.side-spacer { flex: 1; }
.side-upgrade {
  border-radius: 16px; padding: 18px 16px;
  background: linear-gradient(150deg, var(--navy-900), var(--navy-700));
  color: #fff; position: relative; overflow: hidden;
}
.side-upgrade::before {
  content: ""; position: absolute; width: 130px; height: 130px; border-radius: 50%;
  background: radial-gradient(circle, rgba(212,175,106,.42), transparent 70%);
  bottom: -60px; right: -50px;
}
.side-upgrade h5 { font-size: 15px; margin-bottom: 6px; position: relative; }
.side-upgrade p { font-size: 12.5px; color: rgba(255,255,255,.7); margin-bottom: 14px; position: relative; }
.side-upgrade .btn { position: relative; width: 100%; padding: 10px; font-size: 13.5px; }

/* 左栏会员生效卡（支付成功后替换 ¥99 开通卡） */
.mc-rows { position: relative; display: flex; flex-direction: column; gap: 7px; margin: 10px 0; }
.mc-row {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12.5px; color: rgba(255,255,255,.72);
}
.mc-row b { color: var(--gold-300); font-weight: 600; font-variant-numeric: tabular-nums; }
.mc-rights {
  font-size: 12px !important; color: rgba(255,255,255,.62) !important;
  line-height: 1.7 !important; margin-bottom: 12px !important;
}
.mc-divider { position: relative; height: 1px; background: rgba(240,224,182,.22); margin-bottom: 10px; }
.mc-upsell { position: relative; font-size: 12px; color: rgba(255,255,255,.78); margin-bottom: 8px; }
.mc-expert {
  position: relative; width: 100%; padding: 9px; font-size: 13px;
  color: var(--gold-300); background: rgba(255,255,255,.07);
  border: 1px solid rgba(240,224,182,.45); border-radius: 999px;
  transition: background .2s;
}
.mc-expert:hover { background: rgba(255,255,255,.15); }

/* 右栏会员服务卡（.aside-promo.member） */
.apm-row {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 13px; color: #8f6f2c; margin-bottom: 8px;
}
.apm-row b { color: #6b5320; font-weight: 600; font-variant-numeric: tabular-nums; }
html[data-theme="dark"] .apm-row { color: var(--gold-400); }
html[data-theme="dark"] .apm-row b { color: var(--gold-300); }

/* 顶部按钮：已开通 → 生效中（静态，不再唤起付费墙） */
.btn-gold.nav-member {
  pointer-events: none;
  background: rgba(212,175,106,.16); color: #8f6f2c;
  box-shadow: none; border: 1px solid rgba(201,164,92,.45);
}
html[data-theme="dark"] .btn-gold.nav-member {
  color: var(--gold-300); background: rgba(212,175,106,.12);
  border-color: rgba(201,164,92,.4);
}

/* 聊天主区 */
.chat-main { flex: 1; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; }
/* 聊天主区：夜海上方一束灯塔暖光 */
.chat-scroll {
  flex: 1; overflow-y: auto; padding: 34px 0 20px; min-height: 0;
  background:
    radial-gradient(920px 360px at 50% -140px, rgba(212,175,106,.16), transparent 72%),
    linear-gradient(180deg, #fcf8f0 0%, var(--bg) 420px);
  background-attachment: local;
}
.chat-inner { width: min(820px, 92%); margin: 0 auto; }

.msg { display: flex; gap: 13px; margin-bottom: 28px; animation: msgIn .45s ease; }
@keyframes msgIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* 头像：AI=灯塔金徽，用户=朱金印章 */
.msg-avatar {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.msg.ai .msg-avatar {
  background: radial-gradient(circle at 34% 28%, #1d5238, var(--navy-950) 78%);
  border: 1px solid rgba(212,175,106,.6);
  box-shadow: 0 4px 12px rgba(11,36,25,.25), inset 0 1px 0 rgba(240,224,182,.18);
}
.msg.ai .msg-avatar .av-lamp { display: block; filter: drop-shadow(0 0 5px rgba(227,199,141,.45)); }
.msg.me { flex-direction: row-reverse; }
.msg.me .msg-avatar {
  background: linear-gradient(140deg, #f8ecd2, #ecd9b2);
  border: 1px solid rgba(150,118,52,.45);
  box-shadow: 0 4px 10px rgba(111,84,33,.18);
}
.msg-avatar .av-seal {
  font-family: var(--font-serif); font-weight: 700; font-size: 17px;
  color: var(--navy-800); line-height: 1;
}

/* AI 气泡：灯塔手札（宣纸卡 + 金色书脊） */
.msg-bubble {
  max-width: 76%; padding: 15px 20px 16px; border-radius: 16px; font-size: 15px;
  line-height: 1.8;
}
.msg.ai .msg-bubble {
  background: linear-gradient(180deg, var(--paper-card), var(--paper) 150%);
  border: 1px solid var(--paper-line);
  border-left: 3px solid var(--gold-500);
  border-radius: 3px 16px 16px 16px;
  color: var(--ink-paper);
  box-shadow: 0 8px 24px rgba(84,64,22,.09);
}
.msg.me .msg-bubble {
  background: linear-gradient(180deg, #15402c, #0e2d1f);
  color: #f4efe2;
  border: 1px solid rgba(212,175,106,.3);
  border-right: 3px solid var(--gold-400);
  border-radius: 16px 3px 16px 16px;
  box-shadow: 0 8px 20px rgba(7,26,18,.24);
}
.msg-bubble strong { color: var(--navy-700); font-weight: 700; }
.msg.me .msg-bubble strong { color: var(--gold-300); }
.msg.ai .msg-bubble a {
  color: #96752f; text-decoration: underline;
  text-underline-offset: 3px; text-decoration-thickness: 1px;
}
/* 手札内小标题：衬线排印 */
.msg.ai .msg-bubble h4 { font-family: var(--font-serif); letter-spacing: .5px; }
.msg-bubble .mini-table { width: 100%; border-collapse: collapse; margin: 10px 0 4px; font-size: 13.5px; }
.msg-bubble .mini-table th { background: var(--paper-deep); color: var(--navy-800); padding: 8px 10px; text-align: left; font-weight: 600; }
.msg-bubble .mini-table td { padding: 8px 10px; border-bottom: 1px solid var(--paper-line); }
.msg-bubble .mini-table tr:last-child td { border-bottom: none; }

/* 打字指示：灯塔点灯 */
.typing { display: inline-flex; gap: 5px; padding: 4px 2px; }
.typing i { width: 8px; height: 8px; border-radius: 50%; background: var(--gold-500); animation: blink 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .2s; } .typing i:nth-child(3) { animation-delay: .4s; }
@keyframes blink { 0%,60%,100% { transform: none; opacity: .35; } 30% { transform: translateY(-5px); opacity: 1; } }

/* 欢迎屏：灯塔徽章与灯光涟漪 */
.welcome { text-align: center; padding: 26px 0 10px; }
.welcome .w-logo {
  position: relative;
  width: 86px; height: 86px; border-radius: 50%; margin: 6px auto 22px;
  background: radial-gradient(circle at 34% 30%, #1d5238, var(--navy-950) 78%);
  border: 1.5px solid rgba(212,175,106,.65);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 18px 42px rgba(11,36,25,.3), inset 0 1px 0 rgba(240,224,182,.22);
}
.welcome .w-logo svg { filter: drop-shadow(0 0 7px rgba(227,199,141,.5)); }
.welcome .w-logo::before, .welcome .w-logo::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  border: 1px solid rgba(212,175,106,.42); pointer-events: none;
  animation: lampHalo 3.8s ease-out infinite;
}
.welcome .w-logo::after { animation-delay: 1.9s; border-color: rgba(212,175,106,.22); }
@keyframes lampHalo {
  0% { transform: scale(1); opacity: .9; }
  70%, 100% { transform: scale(1.5); opacity: 0; }
}
.welcome h2 {
  font-family: var(--font-serif); font-weight: 700;
  font-size: 27px; letter-spacing: 1.5px; color: var(--navy-900); margin-bottom: 12px;
}
.welcome p { color: var(--muted); font-size: 15px; line-height: 1.9; margin-bottom: 30px; }

.profile-card {
  background: linear-gradient(180deg, var(--paper-card), var(--paper));
  border: 1px solid var(--paper-line); border-radius: 16px;
  padding: 22px 22px 20px; max-width: 560px; margin: 0 auto 30px;
  box-shadow: 0 10px 30px rgba(84,64,22,.08);
  text-align: left; position: relative; overflow: hidden;
}
.profile-card::before {
  content: ""; position: absolute; top: 0; left: 12%; right: 12%; height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold-500), transparent);
}
.profile-card h4 { font-family: var(--font-serif); font-size: 14.5px; letter-spacing: 1px; color: var(--navy-800); margin-bottom: 14px; font-weight: 600; }

/* 软需求 chip 组 */
.pf-soft {
  border-top: 1px dashed rgba(11,36,25,.15);
  margin-top: 14px; padding-top: 14px;
  display: flex; flex-direction: column; gap: 10px;
}
.pf-soft-row label {
  display: inline-block; font-size: 12px; font-weight: 500;
  color: var(--muted); margin-bottom: 6px;
}
.pf-chips {
  display: flex; flex-wrap: wrap; gap: 7px;
}
.pf-chip {
  border: 1px solid var(--line); background: var(--bg-soft);
  color: var(--ink-2); font-size: 12px; font-weight: 500;
  padding: 5px 12px; border-radius: 999px; cursor: pointer;
  transition: all .15s; line-height: 1.2;
}
.pf-chip:hover:not(.on) {
  border-color: var(--navy-500); color: var(--navy-700);
}
.pf-chip.on {
  background: var(--navy-700); border-color: var(--navy-700);
  color: #fff;
}

/* 暗色模式 chip */
html[data-theme="dark"] .pf-soft { border-top-color: rgba(240,224,182,.15); }
html[data-theme="dark"] .pf-soft-row label { color: #8ea397; }
html[data-theme="dark"] .pf-chip {
  border-color: #22382c; background: #16261d; color: #c4d2c9;
}
html[data-theme="dark"] .pf-chip:hover:not(.on) {
  border-color: #d4af6a; color: #ecd9a8;
}
html[data-theme="dark"] .pf-chip.on {
  background: var(--gold-400); border-color: var(--gold-400); color: #071a12;
}

/* ---------- AI 追问交互卡片 ---------- */
.aq-card {
  position: relative;
  margin-top: 14px; padding: 0;
  border: 1px solid rgba(11,36,25,.1);
  border-radius: 16px;
  background: linear-gradient(180deg, #fff 0%, #fbfaf5 100%);
  box-shadow: 0 6px 22px rgba(11,36,25,.07), 0 1px 3px rgba(11,36,25,.05);
  overflow: hidden;
  animation: aq-card-in .35s cubic-bezier(.21,.9,.35,1) both;
}
@keyframes aq-card-in {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: none; }
}
/* 顶部金色装饰条 */
.aq-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--gold-500), var(--gold-400) 55%, rgba(212,175,106,.25));
}
/* 卡片正文内边距 */
.aq-q {
  font-size: 14.5px; font-weight: 700; color: var(--navy-900); line-height: 1.55;
  padding: 16px 18px 0; display: flex; align-items: center; gap: 9px;
}
/* 问题前的小问号徽章 */
.aq-q::before {
  content: '问'; flex-shrink: 0;
  width: 22px; height: 22px; border-radius: 50%;
  background: linear-gradient(135deg, var(--navy-700), var(--navy-600));
  color: #fff; font-size: 11.5px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(11,42,29,.25);
}
.aq-hint { font-size: 11.5px; color: #a98c4e; font-weight: 600; margin-left: auto; background: rgba(212,175,106,.14); padding: 2px 9px; border-radius: 10px; }

.aq-options {
  display: flex; flex-direction: column; gap: 8px;
  padding: 13px 16px 4px;
}
.aq-opt {
  position: relative; width: 100%;
  display: flex; align-items: center;
  border: 1.5px solid rgba(11,36,25,.09); background: #fff;
  color: var(--ink-2); font-size: 13.5px; font-weight: 500;
  padding: 11px 16px 11px 44px; border-radius: 12px; cursor: pointer;
  transition: transform .16s cubic-bezier(.21,.9,.35,1), box-shadow .16s, border-color .16s, background .16s;
  text-align: left; line-height: 1.5;
  animation: aq-opt-in .32s cubic-bezier(.21,.9,.35,1) both;
}
/* 逐项入场延迟 */
.aq-opt:nth-child(1) { animation-delay: .03s; }
.aq-opt:nth-child(2) { animation-delay: .07s; }
.aq-opt:nth-child(3) { animation-delay: .11s; }
.aq-opt:nth-child(4) { animation-delay: .15s; }
.aq-opt:nth-child(5) { animation-delay: .19s; }
.aq-opt:nth-child(6) { animation-delay: .23s; }
.aq-opt:nth-child(7) { animation-delay: .27s; }
.aq-opt:nth-child(8) { animation-delay: .31s; }
@keyframes aq-opt-in {
  from { opacity: 0; transform: translateX(-8px); }
  to { opacity: 1; transform: none; }
}
/* 左侧单选圆圈 */
.aq-opt::before {
  content: ''; position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  width: 18px; height: 18px; border-radius: 50%;
  border: 1.8px solid #c2cbc5; background: #fff;
  transition: all .18s; box-sizing: border-box;
}
/* 多选：方框 */
.aq-multi .aq-opt::before { border-radius: 6px; }
.aq-opt:hover {
  border-color: var(--navy-500); background: #f5f8f5;
  transform: translateY(-1px); box-shadow: 0 4px 12px rgba(11,42,29,.08);
}
.aq-opt:hover::before { border-color: var(--navy-600); }
.aq-opt:active { transform: translateY(0); }

/* 选中态：整行金色左边线 + 墨绿淡底 */
.aq-opt.on {
  border-color: var(--navy-600);
  background: linear-gradient(90deg, rgba(19,89,60,.08), rgba(19,89,60,.025));
  color: var(--navy-900); font-weight: 600;
  box-shadow: 0 3px 10px rgba(19,89,60,.12);
}
.aq-opt.on::before {
  background: var(--navy-700); border-color: var(--navy-700);
}
/* 单选选中：内白点（带缩放动画） */
.aq-opt.on::after {
  content: ''; position: absolute; left: 15px; top: 50%;
  width: 18px; height: 18px;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, #fff 0 4.2px, transparent 4.6px),
    var(--navy-700);
  opacity: 0; transform: translateY(-50%) scale(.4);
  transition: transform .2s cubic-bezier(.34,1.56,.64,1), opacity .15s;
}
.aq-opt.on::after {
  opacity: 1; transform: translateY(-50%) scale(1);
}
/* 多选选中：方框内对勾（描边动画） */
.aq-multi .aq-opt.on::after {
  content: ''; left: 15px;
  width: 18px; height: 18px; border-radius: 6px;
  background:
    linear-gradient(45deg, transparent 0 42%, #fff 42% 52%, transparent 52%) center 58%/8px 4px no-repeat,
    linear-gradient(-45deg, transparent 0 58%, #fff 58% 66%, transparent 66%) 32% 46%/7px 11px no-repeat,
    var(--navy-700);
}

/* 已回答卡片：未选项弱化 */
.aq-card.aq-answered .aq-options .aq-opt:not(.on) { opacity: .4; cursor: default; transform: none; box-shadow: none; }
.aq-card.aq-answered .aq-opt:not(.on):hover { background: #fff; border-color: rgba(11,36,25,.09); }
/* 已回答徽章 */
.aq-card.aq-answered .aq-q { padding-right: 82px; }
.aq-card.aq-answered::after {
  content: '✓ 已选择'; position: absolute; top: 12px; right: 14px;
  font-size: 11px; font-weight: 600; color: #fff;
  background: linear-gradient(135deg, var(--navy-600), var(--navy-700));
  padding: 3px 10px; border-radius: 10px; z-index: 1;
  box-shadow: 0 2px 8px rgba(11,42,29,.2);
}

/* 多选确认按钮 */
.aq-confirm {
  align-self: flex-end; margin: 10px 16px 16px;
  border: none; border-radius: 22px; cursor: pointer;
  background: linear-gradient(135deg, var(--gold-400), var(--gold-500));
  color: #3d2e10; font-size: 13px; font-weight: 700;
  padding: 9px 22px;
  box-shadow: 0 4px 14px rgba(176,138,66,.32);
  transition: transform .16s, box-shadow .16s;
  animation: aq-card-in .3s .1s both;
}
.aq-confirm:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(176,138,66,.42);
}
.aq-confirm:active { transform: translateY(0); }

/* 自由输入区 */
.aq-free {
  display: flex; gap: 8px; margin: 6px 16px 16px;
  border-top: 1px dashed rgba(11,36,25,.12); padding-top: 12px;
}
.aq-free-input {
  flex: 1; min-width: 0; border: 1.5px solid rgba(11,36,25,.13);
  border-radius: 10px; padding: 9px 13px; font-size: 13px;
  background: #fff; color: var(--ink-2); outline: none;
  font-family: inherit; transition: border-color .15s, box-shadow .15s;
}
.aq-free-input:focus {
  border-color: var(--navy-500);
  box-shadow: 0 0 0 3px rgba(19,89,60,.1);
}
.aq-free-send {
  flex-shrink: 0; border: none; background: var(--navy-700); color: #fff;
  font-size: 13px; font-weight: 600; padding: 9px 18px; border-radius: 10px;
  cursor: pointer; transition: background .15s, transform .15s;
}
.aq-free-send:hover { background: var(--navy-800); transform: translateY(-1px); }

/* ---------- 暗色模式 ---------- */
html[data-theme="dark"] .aq-card {
  border-color: rgba(240,224,182,.14);
  background: linear-gradient(180deg, #14241b 0%, #101e17 100%);
  box-shadow: 0 8px 26px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.3);
}
html[data-theme="dark"] .aq-q { color: #f2ead6; }
html[data-theme="dark"] .aq-q::before {
  background: linear-gradient(135deg, var(--gold-400), var(--gold-500));
  color: #1c2a18; box-shadow: 0 2px 8px rgba(212,175,106,.35);
}
html[data-theme="dark"] .aq-hint { color: #e0c486; background: rgba(212,175,106,.13); }
html[data-theme="dark"] .aq-opt {
  border-color: #2a3d31; background: #16261d; color: #c4d2c9;
}
html[data-theme="dark"] .aq-opt::before {
  border-color: #4a5c52; background: #0e1a13;
}
html[data-theme="dark"] .aq-opt:hover:not(.on) {
  border-color: var(--gold-400); background: rgba(212,175,106,.07);
  color: #ecd9a8;
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
}
html[data-theme="dark"] .aq-opt:hover:not(.on)::before { border-color: var(--gold-400); }
html[data-theme="dark"] .aq-opt.on {
  background: linear-gradient(90deg, rgba(212,175,106,.14), rgba(212,175,106,.04));
  border-color: var(--gold-400); color: #f6eccf;
  box-shadow: 0 3px 12px rgba(212,175,106,.15);
}
html[data-theme="dark"] .aq-opt.on::before {
  background: var(--gold-400); border-color: var(--gold-400);
}
html[data-theme="dark"] .aq-opt.on::after {
  background:
    radial-gradient(circle at center, #101e17 0 4.2px, transparent 4.6px),
    var(--gold-400);
}
html[data-theme="dark"] .aq-multi .aq-opt.on::after {
  background:
    linear-gradient(45deg, transparent 0 42%, #101e17 42% 52%, transparent 52%) center 58%/8px 4px no-repeat,
    linear-gradient(-45deg, transparent 0 58%, #101e17 58% 66%, transparent 66%) 32% 46%/7px 11px no-repeat,
    var(--gold-400);
}
html[data-theme="dark"] .aq-card.aq-answered .aq-opt:not(.on):hover {
  background: #16261d; border-color: #2a3d31;
}
html[data-theme="dark"] .aq-card.aq-answered::after {
  background: linear-gradient(135deg, var(--gold-400), var(--gold-500));
  color: #1c2a18; box-shadow: 0 2px 10px rgba(212,175,106,.3);
}
html[data-theme="dark"] .aq-free-input {
  border-color: #2a3d31; background: #0e1a13; color: #c4d2c9;
}
html[data-theme="dark"] .aq-free-input:focus {
  border-color: var(--gold-400);
  box-shadow: 0 0 0 3px rgba(212,175,106,.12);
}
html[data-theme="dark"] .aq-free { border-top-color: rgba(240,224,182,.12); }

/* ---------- AI 追问卡片结束 ---------- */

/* ---------- AI 流式输出（思考过程 + 回复） ---------- */
.ai-streaming { display: flex; flex-direction: column; gap: 8px; }
.ai-thinking {
  border: 1px solid rgba(11,36,25,.1); border-radius: 10px;
  background: rgba(212,175,106,.06); overflow: hidden;
}
.ai-thinking-head {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; cursor: pointer; user-select: none;
  font-size: 12px; color: var(--muted); font-weight: 500;
  background: rgba(11,36,25,.03);
}
.ai-thinking-dot {
  width: 7px; height: 7px; border-radius: 50%; background: #d4af6a;
  animation: ai-think-pulse 1.2s ease-in-out infinite;
}
@keyframes ai-think-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .35; }
}
.ai-thinking-toggle {
  margin-left: auto; font-size: 11px; color: var(--muted-2);
  transition: transform .2s;
}
.ai-thinking-body.collapsed { max-height: 0; padding: 0 12px; overflow: hidden; }
.ai-thinking-body {
  max-height: 260px; overflow-y: auto; padding: 10px 12px;
  font-size: 12.5px; line-height: 1.6; color: #7a8a7f;
  white-space: pre-wrap; word-break: break-word;
  transition: max-height .25s ease;
}
/* 思考过程折叠时，toggle 旋转 */
.ai-thinking-body.collapsed ~ .ai-thinking-head .ai-thinking-toggle,
.ai-thinking-head:has(+ .ai-thinking-body.collapsed) .ai-thinking-toggle {
  transform: rotate(-90deg);
}

.ai-content {
  font-size: 14px; line-height: 1.7; color: var(--ink-1);
  white-space: pre-wrap; word-break: break-word;
}
/* 打字机光标 */
.ai-content:not(:empty)::after {
  content: '▋'; color: var(--navy-600);
  animation: ai-cursor-blink .8s step-end infinite;
  margin-left: 1px;
}
@keyframes ai-cursor-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

/* 暗色模式 */
html[data-theme="dark"] .ai-thinking {
  border-color: rgba(240,224,182,.12);
  background: rgba(212,175,106,.06);
}
html[data-theme="dark"] .ai-thinking-head {
  background: rgba(212,175,106,.08); color: #ecd9a8;
}
html[data-theme="dark"] .ai-thinking-body { color: #8ea397; }
html[data-theme="dark"] .ai-content { color: #e7eee9; }
html[data-theme="dark"] .ai-content:not(:empty)::after { color: var(--gold-400); }

/* ---------- AI 流式输出结束 ---------- */

.pc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.pc-field { background: #fff; border: 1px solid #efe6d3; border-radius: 11px; padding: 12px 14px; }
.pc-field label { font-size: 12px; color: var(--muted); display: block; margin-bottom: 4px; }
.pc-field select, .pc-field input {
  width: 100%; border: none; background: transparent; font-size: 14.5px;
  font-weight: 700; color: var(--navy-900); outline: none; font-family: inherit;
}
.quick-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; max-width: 620px; margin: 0 auto; }
.quick-q {
  background: rgba(255,253,248,.92); border: 1px solid var(--paper-line); border-radius: 13px;
  padding: 16px 18px; text-align: left; font-size: 14px; color: var(--ink-2);
  display: flex; gap: 12px; align-items: center; transition: all .25s;
}
.quick-q:hover {
  border-color: var(--gold-500); background: #fff;
  box-shadow: 0 12px 26px rgba(84,64,22,.12); transform: translateY(-2px);
}
.quick-q .qq-icon { font-size: 20px; flex-shrink: 0; transition: transform .25s; }
.quick-q:hover .qq-icon { transform: scale(1.1) rotate(-5deg); }

/* 输入区：纸笺落笔 */
.chat-input-wrap {
  border-top: 1px solid var(--paper-line);
  background: linear-gradient(180deg, rgba(252,248,240,0), #fcf8f0 36%);
  padding: 16px 0 20px;
}
.chat-input-inner { width: min(820px, 92%); margin: 0 auto; }
.chat-input {
  display: flex; align-items: flex-end; gap: 12px;
  background: var(--paper-card); border: 1.5px solid var(--paper-line); border-radius: 15px;
  padding: 10px 12px; box-shadow: 0 4px 16px rgba(84,64,22,.07);
  transition: border-color .2s, box-shadow .2s;
}
.chat-input:focus-within { border-color: var(--gold-500); box-shadow: 0 0 0 4px rgba(212,175,106,.18); }
.chat-input textarea {
  flex: 1; border: none; outline: none; resize: none; font-family: inherit;
  font-size: 15px; line-height: 1.6; padding: 8px 6px; max-height: 140px;
  background: transparent; color: var(--ink);
}
.chat-send {
  width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0;
  background: linear-gradient(160deg, var(--navy-600), var(--navy-900));
  border: 1px solid rgba(212,175,106,.45);
  color: var(--gold-300); font-size: 18px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 5px 14px rgba(11,36,25,.28);
  transition: transform .2s, opacity .2s, box-shadow .2s;
}
.chat-send:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(11,36,25,.36); }
.chat-send:disabled { opacity: .4; cursor: not-allowed; transform: none; box-shadow: none; }
.chat-hint { text-align: center; font-size: 12px; color: var(--muted-2); margin-top: 10px; }

/* 右栏：档案 */
.chat-aside {
  width: 288px; border-left: 1px solid var(--line); background: #fff;
  padding: 22px 18px; overflow-y: auto; flex-shrink: 0;
}
.aside-card { background: var(--bg); border-radius: 16px; padding: 18px; margin-bottom: 16px; }
.aside-card h5 { font-size: 13.5px; color: var(--navy-900); margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.aside-row { display: flex; justify-content: space-between; font-size: 13.5px; padding: 7px 0; }
.aside-row span { color: var(--muted); } .aside-row b { color: var(--navy-900); font-weight: 600; }
.prog-ring { display: flex; align-items: center; gap: 14px; }
.prog-ring svg { flex-shrink: 0; }
.prog-ring #progCircle { transition: stroke-dashoffset .7s cubic-bezier(.22,.9,.32,1); }
.prog-ring .pr-txt b { font-size: 20px; color: var(--navy-900); }
.prog-ring .pr-txt span { font-size: 12px; color: var(--muted); display: block; }

/* 方案完成度 · 分步清单 */
.prog-steps { margin-top: 16px; display: flex; flex-direction: column; }
.pstep {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 9px; border-radius: 11px;
  cursor: pointer; transition: background .2s;
}
.pstep:hover { background: var(--bg-soft); }
.ps-ico {
  position: relative; flex-shrink: 0;
  width: 22px; height: 22px; border-radius: 50%;
  border: 1.8px solid var(--muted-2);
  background: transparent;
  display: flex; align-items: center; justify-content: center;
}
.ps-ico i {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--muted-2);
}
/* 已完成 */
.pstep.done .ps-ico {
  border-color: transparent;
  background: linear-gradient(135deg, #7ab393, #1d5c3e);
}
.pstep.done .ps-ico i {
  width: 10px; height: 6px; border-radius: 0; background: none;
  border-left: 2px solid #fff; border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translateY(-1px);
}
.pstep.done .ps-body b { color: var(--navy-800); }
.pstep.done .ps-body span { color: var(--muted); }
.pstep.done .ps-state::after { content: "已完成"; font-size: 11px; color: #1d5c3e; font-weight: 600; }
/* 当前待办 */
.pstep.active .ps-ico { border-color: var(--gold-500); }
.pstep.active .ps-ico i { background: var(--gold-500); animation: psPulse 1.6s ease-in-out infinite; }
.pstep.active .ps-body b { color: #8f6f2c; }
.pstep.active .ps-state::after { content: "待完成"; font-size: 11px; color: #8f6f2c; font-weight: 600; }
.pstep[data-action="plan"].active .ps-state::after { content: "待解锁"; }
/* 未解锁 */
.pstep.todo .ps-body b { color: var(--muted); font-weight: 600; }
.pstep.todo .ps-body span { color: var(--muted-2); }
.pstep.locked .ps-body b { color: var(--muted-2); }
.pstep.locked .ps-state::after { content: "待解锁"; font-size: 11px; color: var(--muted-2); }
.ps-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ps-body b { font-size: 13px; color: var(--ink-2); font-weight: 600; display: flex; align-items: center; gap: 6px; }
.ps-body span { font-size: 11.5px; color: var(--muted-2); line-height: 1.5; }
.ps-tag {
  font-style: normal; font-size: 10px; font-weight: 600;
  color: #8f6f2c; background: rgba(212,175,106,.16);
  border: 1px solid rgba(201,164,92,.35);
  padding: 1px 6px; border-radius: 99px;
}
@keyframes psPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212,175,106,.45); }
  50% { box-shadow: 0 0 0 5px rgba(212,175,106,0); }
}

/* 付费墙弹窗 */
.modal-mask {
  position: fixed; inset: 0; background: rgba(7, 26, 18, .64);
  backdrop-filter: blur(6px); z-index: 200;
  display: none; align-items: center; justify-content: center; padding: 20px;
}
.modal-mask.show { display: flex; animation: fadeIn .3s; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.modal {
  background: #fff; border-radius: 24px; width: min(440px, 100%);
  padding: 38px 34px 30px; text-align: center; position: relative;
  animation: popIn .35s cubic-bezier(.2, 1.2, .4, 1);
}
@keyframes popIn { from { transform: scale(.9) translateY(20px); opacity: 0; } to { transform: none; opacity: 1; } }
.modal-close { position: absolute; top: 16px; right: 18px; font-size: 22px; color: var(--muted-2); }
.modal .m-icon {
  width: 72px; height: 72px; border-radius: 22px; margin: 0 auto 18px;
  background: linear-gradient(135deg, #ecd7a2, #c9a45c);
  display: flex; align-items: center; justify-content: center; font-size: 34px;
  box-shadow: var(--shadow-gold);
}
.modal h3 { font-size: 22px; color: var(--navy-900); margin-bottom: 10px; }
.modal p { color: var(--muted); font-size: 14.5px; margin-bottom: 22px; }
.m-plan { background: var(--bg); border: 1.5px solid var(--line); border-radius: 16px; padding: 18px; text-align: left; margin-bottom: 20px; }
.m-plan .mp-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.m-plan .mp-name { font-weight: 700; color: var(--navy-900); font-size: 15.5px; }
.m-plan .mp-price { font-size: 22px; font-weight: 800; color: #8f6f2c; }
.m-plan .mp-price small { font-size: 13px; color: var(--muted); font-weight: 400; }
.m-plan ul { display: flex; flex-direction: column; gap: 7px; }
.m-plan li { font-size: 13.5px; color: var(--ink-2); display: flex; gap: 8px; }
.m-plan li .ck { color: var(--safe); font-weight: 800; }
.modal .m-note { font-size: 12.5px; color: var(--muted-2); margin-top: 14px; }

/* 消息内升级提示条 */
.unlock-banner {
  max-width: 76%; margin: 4px 0 28px 55px;
  background: linear-gradient(135deg, #faf5e8, #f3e8cd);
  border: 1px dashed rgba(201,164,92,.65); border-radius: 13px;
  padding: 16px 18px; display: flex; align-items: center; gap: 14px;
  animation: msgIn .4s ease;
}
.unlock-banner .ub-icon { font-size: 26px; }
.unlock-banner h5 { font-size: 14.5px; color: #6b5320; margin-bottom: 3px; }
.unlock-banner p { font-size: 13px; color: #8f6f2c; }
.unlock-banner .btn { margin-left: auto; flex-shrink: 0; }

/* ---------- 响应式 ---------- */
@media (max-width: 1024px) {
  .features-grid, .pricing-grid, .reviews-grid { grid-template-columns: repeat(2, 1fr); }
  .tools-grid { grid-template-columns: 1fr; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .step-arrow { display: none; }
  .plan-cols { grid-template-columns: 1fr; }
  .hero-grid { grid-template-columns: 1fr; gap: 60px; }
  .hero-visual { max-width: 480px; margin: 0 auto; }
  .chat-aside { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .section { padding: 64px 0; }
  .nav-links { display: none; position: absolute; top: 100%; left: 4%; right: 4%;
    flex-direction: column; gap: 0; background: #fff; border-radius: 16px;
    box-shadow: var(--shadow-lg); padding: 10px; overflow: hidden; }
  .nav-links.open { display: flex; }
  .nav-links a { color: var(--ink-2) !important; padding: 13px 16px; border-radius: 10px; }
  .nav-links a:hover { background: var(--bg-soft); }
  .nav-toggle { display: block; }
  .nav-login { display: none; }
  .features-grid, .pricing-grid, .reviews-grid, .steps { grid-template-columns: 1fr; }
  .tool-card { padding: 20px 18px 14px; }
  .tools-foot-btns { flex-direction: column; gap: 12px; }
  .price-card.featured { transform: none; }
  .plan-demo { padding: 32px 22px; }
  .cta-band { padding: 44px 24px; }
  .footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .chat-sidebar { display: none; }
  .quick-grid, .pc-grid { grid-template-columns: 1fr; }
  .msg-bubble, .unlock-banner { max-width: 88%; }
  .unlock-banner { margin-left: 0; flex-wrap: wrap; }
  .hero { padding: 130px 0 80px; }
  .float-1 { left: -8px; } .float-2 { right: -8px; }
}

/* ============================================================
   扩展：方案展示 / 院校卡片 / 专业卡片 / 测评 / 政策
   ============================================================ */

/* ---------- 冲稳保方案展示 ---------- */
.plan-result { margin-top: 4px; }
.plan-result p { font-size: 14.5px; line-height: 1.75; }
.plan-tier { display: flex; gap: 12px; margin: 14px 0; flex-wrap: wrap; }
.plan-tier-col {
  flex: 1; min-width: 200px;
  background: #fffdf7; border: 1px solid var(--paper-line);
  border-radius: 13px; padding: 14px;
}
.pt-head {
  font-family: var(--font-serif); font-size: 14px; font-weight: 700; letter-spacing: .5px;
  margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--paper-line);
}
.pt-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 0; border-bottom: 1px solid var(--paper-line); gap: 8px;
}
.pt-row:last-child { border-bottom: none; }
.pt-info { flex: 1; min-width: 0; }
.pt-name { font-size: 14px; font-weight: 700; color: var(--navy-900); }
.pt-meta { font-size: 12px; color: var(--muted); margin-top: 2px; }
.pt-prob { text-align: right; flex-shrink: 0; }
.pt-prob span { font-size: 16px; }
.pt-prob .prob-bar { width: 60px; height: 5px; background: var(--line); border-radius: 3px; margin-top: 4px; overflow: hidden; }
.pt-prob .prob-bar i { display: block; height: 100%; border-radius: 3px; transition: width .5s; }

/* ---------- 院校信息卡片 ---------- */
.uni-card { }
.uc-head { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.uc-head h4 { font-size: 18px; color: var(--navy-900); }
.uc-tag { font-size: 12px; padding: 3px 10px; border-radius: 999px; background: var(--bg-soft); color: var(--navy-700); font-weight: 600; }
.uc-note { font-size: 13.5px; color: var(--muted); margin: 10px 0; padding: 10px 14px; background: var(--paper-deep); border-radius: 8px; border-left: 3px solid var(--gold-500); }
.uc-majors { font-size: 13.5px; color: var(--ink-2); margin-top: 8px; }

/* ---------- 专业信息卡片 ---------- */
.major-card { }
.mc-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.mc-head h4 { font-size: 18px; color: var(--navy-900); }
.mc-cat { font-size: 12px; padding: 3px 10px; border-radius: 999px; background: #dcefe4; color: var(--navy-600); font-weight: 600; }
.mc-intro { font-size: 14px; color: var(--ink-2); line-height: 1.75; margin-bottom: 10px; }
.mc-trap {
  font-size: 13.5px; color: #8f6f2c; line-height: 1.7;
  background: #faf5e8; border: 1px solid rgba(201,164,92,.3);
  border-radius: 10px; padding: 10px 14px; margin: 10px 0;
}
.mc-unis { font-size: 13.5px; color: var(--ink-2); margin-top: 8px; }

/* ---------- 政策卡片 ---------- */
.policy-card { }
.policy-card h4 { font-size: 16px; color: var(--navy-800); margin-bottom: 8px; }
.policy-card p { font-size: 14px; color: var(--ink-2); line-height: 1.75; }

/* ---------- 测评问卷 ---------- */
.quiz-card { }
.quiz-progress { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.quiz-q { font-size: 16px; color: var(--navy-900); margin-bottom: 14px; font-weight: 600; }
.quiz-opts { display: flex; flex-direction: column; gap: 8px; }
.quiz-opt {
  background: var(--bg); border: 1.5px solid var(--line);
  border-radius: 12px; padding: 12px 16px; text-align: left;
  font-size: 14.5px; color: var(--ink-2); cursor: pointer;
  transition: all .2s; font-family: inherit;
}
.quiz-opt:hover { border-color: var(--navy-500); background: #fff; box-shadow: var(--shadow-sm); transform: translateX(2px); }

/* 测评结果 */
.quiz-result { }
.quiz-result h4 { font-size: 16px; color: var(--navy-900); margin-bottom: 8px; }
.quiz-majors { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.quiz-major-item {
  display: flex; justify-content: space-between; align-items: center;
  background: var(--bg); border: 1px solid var(--line);
  border-radius: 12px; padding: 12px 16px; cursor: pointer;
  transition: all .2s;
}
.quiz-major-item:hover { border-color: var(--gold-500); box-shadow: var(--shadow-sm); }
.qm-name { font-size: 14.5px; font-weight: 600; color: var(--navy-800); }
.qm-cat { font-size: 12px; color: var(--muted); background: #dcefe4; padding: 2px 10px; border-radius: 999px; }

/* 聊天内：打开独立人格测试的金色按钮 */
.quiz-open-btn {
  display: block; width: 100%; margin: 4px 0 12px;
  background: linear-gradient(135deg,#f0dfb0,#ddbd7e,#c9a45c);
  color: #3d2e10; border: none; border-radius: 12px;
  padding: 14px 18px; font-size: 15px; font-weight: 700;
  cursor: pointer; font-family: inherit; transition: all .2s;
}
.quiz-open-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(201,164,92,.3); }

/* ---------- 人格测试结果卡 ---------- */
.personality-result .pr-type {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  background: linear-gradient(135deg,#0b2419,#1d5c3e);
  border-radius: 14px; padding: 16px 20px; margin: 10px 0 14px;
}
.pr-code {
  font-size: 28px; font-weight: 800; letter-spacing: 3px;
  color: var(--gold-300); line-height: 1;
}
.pr-nick { font-size: 15px; font-weight: 600; color: #fff; }
.pr-bars { display: flex; flex-direction: column; gap: 10px; margin: 14px 0 6px; }
.pr-bar-row { display: flex; align-items: center; gap: 10px; }
.pr-tag {
  font-size: 12px; color: var(--muted); width: 64px; flex-shrink: 0;
  text-align: center; padding: 3px 0; border-radius: 8px; white-space: nowrap;
}
.pr-tag.on { color: var(--navy-800); font-weight: 700; background: #dcefe4; }
.pr-track {
  flex: 1; height: 10px; border-radius: 999px; background: var(--bg-soft);
  overflow: hidden; position: relative;
}
.pr-fill {
  height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--navy-600), var(--gold-500));
  transition: width .5s ease;
}
.pr-mtitle { font-size: 14.5px; color: var(--navy-900); margin: 16px 0 0; }
.pr-note {
  margin-top: 12px; padding: 10px 14px; border-radius: 10px;
  background: #faf5e8; border-left: 3px solid var(--gold-500);
  font-size: 12.5px; line-height: 1.8; color: #8f6f2c;
}

/* ---------- 聊天气泡内表格：纸笺表头（定义已前移至消息区，此处保留收尾兼容） ---------- */
.msg-bubble .mini-table th { background: var(--paper-deep); }
.msg-bubble .mini-table td { border-bottom-color: var(--paper-line); }

/* ---------- 快捷问题 3 列 ---------- */
.quick-grid { grid-template-columns: repeat(2, 1fr); }
@media(max-width:720px) { .quick-grid { grid-template-columns: 1fr; } }

/* ============================================================
   协议同意弹窗（首次进入 AI 页）
   ============================================================ */
.consent-mask { z-index: 300; } /* 高于付费墙，确保最先展示 */
.consent-modal { width: min(460px, 100%); text-align: left; padding: 36px 32px 26px; }
.consent-modal .m-icon { margin-top: 0; }
.consent-modal h3 { text-align: center; }
.consent-modal > p { text-align: center; }

.consent-points { list-style: none; margin: 0 0 18px; padding: 0; }
.consent-points li {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13.5px; line-height: 1.7; color: var(--ink-2);
  background: var(--bg); border-radius: 12px; padding: 10px 14px; margin-bottom: 8px;
}
.consent-points .cp-ck {
  flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%;
  background: var(--navy-700); color: var(--gold-300);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; margin-top: 1px;
}

/* 自定义勾选框 */
.consent-check {
  display: flex; align-items: flex-start; gap: 10px;
  cursor: pointer; user-select: none; margin-bottom: 16px;
  font-size: 14px; line-height: 1.6; color: var(--ink-2);
}
.consent-check input[type="checkbox"] { position: absolute; opacity: 0; width: 0; height: 0; }
.consent-check .cc-box {
  flex-shrink: 0; width: 20px; height: 20px; margin-top: 1px;
  border: 2px solid var(--line); border-radius: 6px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; color: transparent; transition: all .2s; background: #fff;
}
.consent-check input:checked + .cc-box {
  background: var(--navy-700); border-color: var(--navy-700); color: var(--gold-300);
}
.consent-check input:checked + .cc-box::after { content: '✓'; font-weight: 700; }
.consent-check input:focus-visible + .cc-box { box-shadow: 0 0 0 3px rgba(36,115,80,.25); }
.consent-check a { color: var(--navy-600); font-weight: 600; text-decoration: none; }
.consent-check a:hover { color: var(--gold-500); }

/* 禁用态按钮 */
.btn:disabled,
.btn[disabled] {
  background: #cdd5cf; color: #fff; cursor: not-allowed;
  box-shadow: none; transform: none !important; opacity: .85;
}
.btn-gold:disabled {
  background: #cdd5cf; color: #fff; cursor: not-allowed;
  box-shadow: none; transform: none !important;
}

.consent-decline {
  display: block; text-align: center; margin-top: 12px;
  font-size: 13.5px; color: var(--muted); text-decoration: none;
}
.consent-decline:hover { color: var(--navy-600); }

/* ============================================================
   暗色模式：夜海手札（仅 AI 咨询页 · html[data-theme="dark"]）
   ============================================================ */
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0c1712;
  --bg-soft: #112019;
  --white: #101c15;
  --paper: #121f18;
  --paper-card: #16261d;
  --paper-deep: #1d3126;
  --paper-line: #2b4436;
  --ink: #e7eee9;
  --ink-2: #c4d2c9;
  --muted: #8ea397;
  --muted-2: #6d8276;
  --line: #22382c;
  --ink-paper: #dde7df;
  --shadow-sm: 0 2px 8px rgba(0,0,0,.35);
  --shadow-md: 0 8px 24px rgba(0,0,0,.45);
  --shadow-lg: 0 20px 48px rgba(0,0,0,.55);
}

/* 主题切换按钮 —— 灯塔动画（亮塔=亮色，暗塔=暗色） */
.theme-toggle {
  width: 38px; height: 38px; border-radius: 999px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--line); background-color: var(--bg); color: var(--ink-2);
  transition: border-color .2s, transform .2s, background-color .2s, box-shadow .4s;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.2 21h5.6l-.9-9.5h-3.8L9.2 21z' fill='%238f7a4d'/%3E%3Cpath d='M10.4 11.5h3.2l-.35-3h-2.5l-.35 3z' fill='%237d6b40'/%3E%3Crect x='10.6' y='6.6' width='2.8' height='2.2' rx='.5' fill='%233a3320'/%3E%3Cpath d='M12 2.2l1.3 3.6h-2.6L12 2.2z' fill='%23a89058'/%3E%3C/svg%3E");
  background-size: 22px 22px;
  background-repeat: no-repeat;
  background-position: center;
}
.theme-toggle:hover { border-color: var(--gold-500); transform: translateY(-1px); }
.theme-toggle .tt-moon,
.theme-toggle .tt-sun { display: none; }

/* 亮色模式：灯塔点亮 —— 暖光呼吸 */
html[data-theme="light"] .theme-toggle {
  border-color: var(--gold-400);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.2 21h5.6l-.9-9.5h-3.8L9.2 21z' fill='%23d4af6a'/%3E%3Cpath d='M10.4 11.5h3.2l-.35-3h-2.5l-.35 3z' fill='%23c9a45c'/%3E%3Crect x='10.6' y='6.6' width='2.8' height='2.2' rx='.5' fill='%23fff3c4'/%3E%3Cpath d='M12 2.2l1.3 3.6h-2.6L12 2.2z' fill='%23f0e0b6'/%3E%3Cpath d='M12.6 4.6h3.4M11.4 4.6H8' stroke='%23f0e0b6' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
  animation: lampGlow 4s ease-in-out infinite;
}
html[data-theme="light"] .theme-toggle:hover { border-color: var(--gold-500); }

@keyframes lampGlow {
  0%, 100% { box-shadow: 0 0 0 1px rgba(212,175,106,.24), 0 0 10px rgba(212,175,106,.32); }
  45%      { box-shadow: 0 0 0 1px rgba(212,175,106,.42), 0 0 18px rgba(212,175,106,.60); }
}

/* 导航栏 */
.chat-nav .logo { color: var(--navy-900); }
html[data-theme="dark"] .chat-nav { background: #0e1a13; }
html[data-theme="dark"] .chat-nav .logo { color: var(--gold-300); }
html[data-theme="dark"] .credits-pill {
  background: linear-gradient(135deg, #1d3126, #24382c);
  color: var(--gold-300);
}

/* 左侧栏 */
html[data-theme="dark"] .chat-sidebar { background: #0e1a13; }
html[data-theme="dark"] .session-item.active { color: var(--gold-300); }

/* 聊天区：夜海上方一束灯塔暖光 */
html[data-theme="dark"] .chat-scroll {
  background:
    radial-gradient(920px 360px at 50% -140px, rgba(212,175,106,.12), transparent 72%),
    linear-gradient(180deg, #101c15 0%, var(--bg) 420px);
}
html[data-theme="dark"] .msg.ai .msg-bubble { box-shadow: 0 8px 24px rgba(0,0,0,.4); }
html[data-theme="dark"] .msg-bubble strong { color: var(--gold-300); }
html[data-theme="dark"] .msg.ai .msg-bubble a { color: #d9bc7f; }
html[data-theme="dark"] .msg-bubble .mini-table th { color: var(--gold-300); }

/* 欢迎屏 */
html[data-theme="dark"] .welcome h2 { color: #f2ead6; }
html[data-theme="dark"] .profile-card { box-shadow: 0 10px 30px rgba(0,0,0,.4); }
html[data-theme="dark"] .profile-card h4 { color: #ecd9a8; }
html[data-theme="dark"] .pc-field { background: #101c15; border-color: #24382c; }
html[data-theme="dark"] .pc-field select,
html[data-theme="dark"] .pc-field input { color: #e7eee9; }
html[data-theme="dark"] .quick-q { background: rgba(22,38,29,.92); }
html[data-theme="dark"] .quick-q:hover { background: #1d3126; box-shadow: 0 12px 26px rgba(0,0,0,.45); }

/* 输入区 */
html[data-theme="dark"] .chat-input-wrap {
  background: linear-gradient(180deg, rgba(12,23,18,0), #0c1712 36%);
}
html[data-theme="dark"] .chat-hint b { color: var(--gold-400) !important; }

/* 右栏 */
html[data-theme="dark"] .chat-aside { background: #0e1a13; }
html[data-theme="dark"] .aside-card h5 { color: #f2ead6; }
html[data-theme="dark"] .aside-row b { color: #e7eee9; }
html[data-theme="dark"] .prog-ring .pr-txt b { color: #e7eee9; }
html[data-theme="dark"] .prog-ring svg circle:first-of-type { stroke: #22382c; }
html[data-theme="dark"] .pstep:hover { background: rgba(255,255,255,.045); }
html[data-theme="dark"] .pstep.done .ps-body b { color: #e7eee9; }
html[data-theme="dark"] .pstep.done .ps-state::after { color: #7ab393; }
html[data-theme="dark"] .pstep.active .ps-body b { color: var(--gold-300); }
html[data-theme="dark"] .pstep.active .ps-state::after { color: var(--gold-300); }
html[data-theme="dark"] .pstep.todo .ps-body b { color: #c4d2c9; }
html[data-theme="dark"] .pstep.locked .ps-body b { color: #8ea397; }
html[data-theme="dark"] .ps-body b { color: #e7eee9; }
html[data-theme="dark"] .ps-tag { color: var(--gold-300); background: rgba(212,175,106,.12); border-color: rgba(201,164,92,.3); }
html[data-theme="dark"] #aPersonality { color: var(--gold-400) !important; }
html[data-theme="dark"] .aside-card p b { color: var(--gold-400) !important; }
.aside-promo { background: linear-gradient(150deg, #faf5e8, #f3e8cd); }
.aside-promo h5 { color: #6b5320; }
.aside-promo p { font-size: 13px; color: #8f6f2c; line-height: 1.8; margin-bottom: 12px; }
html[data-theme="dark"] .aside-promo { background: linear-gradient(150deg, #1d3126, #24382c); }
html[data-theme="dark"] .aside-promo h5 { color: var(--gold-300); }
html[data-theme="dark"] .aside-promo p { color: var(--gold-400); }

/* 弹窗（付费墙 / 协议） */
html[data-theme="dark"] .modal { background: #101c15; }
html[data-theme="dark"] .modal h3 { color: #f2ead6; }
html[data-theme="dark"] .m-plan .mp-name { color: #f2ead6; }
html[data-theme="dark"] .m-plan .mp-price { color: var(--gold-400); }
html[data-theme="dark"] .btn-ghost { background: transparent; color: var(--gold-300); border-color: #2b4436; }
html[data-theme="dark"] .consent-check .cc-box { background: #101c15; }
html[data-theme="dark"] .consent-check a { color: var(--gold-400); }
html[data-theme="dark"] .consent-decline:hover { color: var(--gold-400); }

/* 消息内升级提示条 */
html[data-theme="dark"] .unlock-banner { background: linear-gradient(135deg, #1d3126, #24382c); }
html[data-theme="dark"] .unlock-banner h5 { color: var(--gold-300); }
html[data-theme="dark"] .unlock-banner p { color: var(--gold-400); }

/* 气泡内卡片（方案/院校/专业/政策/测评） */
html[data-theme="dark"] .plan-tier-col { background: #14231b; }
html[data-theme="dark"] .pt-name { color: #e7eee9; }
html[data-theme="dark"] .uc-head h4,
html[data-theme="dark"] .mc-head h4 { color: #e7eee9; }
html[data-theme="dark"] .uc-tag { color: var(--gold-300); }
html[data-theme="dark"] .uc-note { color: #c4d2c9; }
html[data-theme="dark"] .mc-cat,
html[data-theme="dark"] .qm-cat { background: rgba(212,175,106,.16); color: var(--gold-300); }
html[data-theme="dark"] .mc-trap {
  background: rgba(212,175,106,.08); color: var(--gold-400);
  border-color: rgba(201,164,92,.3);
}
html[data-theme="dark"] .policy-card h4 { color: #ecd9a8; }
html[data-theme="dark"] .quiz-result h4 { color: #f2ead6; }
html[data-theme="dark"] .qm-name { color: #e7eee9; }
html[data-theme="dark"] .quiz-opt:hover { background: #1d3126; }

/* ============================================================
   全站暗色补充：首页 + 合规页（夜海手札）
   ============================================================ */

/* 无导航页面的浮动主题按钮 */
.theme-fab {
  position: fixed; right: 22px; bottom: 22px; z-index: 90;
  width: 46px; height: 46px;
  box-shadow: 0 8px 24px rgba(11,36,25,.22);
}
html[data-theme="dark"] .theme-fab { box-shadow: 0 8px 24px rgba(0,0,0,.5); }

/* 首页透明导航（压在深色 hero 上）：玻璃钮 */
.nav:not(.scrolled) .theme-toggle {
  background-color: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.28);
}
.nav:not(.scrolled) .theme-toggle:hover { border-color: var(--gold-400); }

/* 首页导航 · 滚动后深色毛玻璃 */
html[data-theme="dark"] .nav.scrolled {
  background: rgba(14,26,19,.92);
  box-shadow: 0 4px 20px rgba(0,0,0,.4);
}
/* 暗色模式初始态导航（未滚动） */
html[data-theme="dark"] .nav {
  background: rgba(14,26,19,.82);
  border-bottom-color: rgba(34,56,44,.4);
}
html[data-theme="dark"] .nav .logo { color: var(--gold-300); }
html[data-theme="dark"] .nav .nav-links a { color: #e7eee9; }
html[data-theme="dark"] .nav .nav-links a:hover { color: var(--gold-400); }
html[data-theme="dark"] .nav .nav-login { color: #e7eee9; }
html[data-theme="dark"] .nav .nav-toggle { color: #e7eee9; }
html[data-theme="dark"] .nav.scrolled .nav-links a { color: #e7eee9; }
html[data-theme="dark"] .nav.scrolled .nav-links a:hover { color: var(--gold-400); }
html[data-theme="dark"] .nav.scrolled .nav-links a.nav-test { color: var(--gold-300); }
html[data-theme="dark"] .nav.scrolled .nav-login { color: #e7eee9; }
html[data-theme="dark"] .nav.scrolled .nav-toggle { color: #e7eee9; }

/* 首页初始态：与深绿 hero 融合（深底白字） */
body.home .nav {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
}
body.home .nav .nav-links a { color: rgba(255,255,255,.88); }
body.home .nav .nav-links a:hover { color: var(--gold-400); }
body.home .nav .nav-login { color: rgba(255,255,255,.92); }
body.home .nav.scrolled .nav-links a { color: var(--ink-2); }
body.home .nav.scrolled .nav-login { color: var(--navy-800); }
body.home .nav-links a.nav-test {
  color: var(--gold-300);
  border-color: rgba(240,224,182,.45);
  background: rgba(240,224,182,.08);
}
body.home .nav.scrolled .nav-links a.nav-test {
  color: var(--navy-700);
  border-color: rgba(19,89,60,.35);
  background: rgba(19,89,60,.06);
}
/* 首页暗色模式初始态 */
html[data-theme="dark"] body.home .nav { background: transparent; border-bottom-color: transparent; box-shadow: none; }
html[data-theme="dark"] body.home .nav .nav-links a { color: rgba(255,255,255,.88); }
html[data-theme="dark"] body.home .nav .nav-login { color: rgba(255,255,255,.92); }
html[data-theme="dark"] body.home .nav .logo { color: #fff; }

/* 移动端下拉菜单 */
@media (max-width: 720px) {
  html[data-theme="dark"] .nav-links { background: #101c15; }
}

/* 信任条 / 通用卡片 */
html[data-theme="dark"] .trust-bar { background: #0e1a13; }
html[data-theme="dark"] .card { background: #101c15; border-color: #22382c; }
html[data-theme="dark"] .card-hover:hover { border-color: rgba(212,175,106,.4); }
html[data-theme="dark"] .btn-ghost { background: transparent; border-color: rgba(212,175,106,.5); color: var(--gold-300); }
html[data-theme="dark"] .btn-ghost:hover { background: #1d3126; color: var(--gold-300); }
html[data-theme="dark"] .section-head h2,
html[data-theme="dark"] .feature-card h3,
html[data-theme="dark"] .step-card h3,
html[data-theme="dark"] .price-name,
html[data-theme="dark"] .price-amount .cur,
html[data-theme="dark"] .price-amount .val,
html[data-theme="dark"] .reviewer .rn,
html[data-theme="dark"] .faq-q { color: #f2ead6; }
html[data-theme="dark"] .feature-card .more { color: var(--gold-400); }
html[data-theme="dark"] .tool-card { background: #101c15; border-color: #22382c; }
html[data-theme="dark"] .tool-card.tool-card-hot {
  background: linear-gradient(160deg, #1c5a3e 0%, #11402e 100%);
  border-color: rgba(212,175,106,.28);
}
html[data-theme="dark"] .tool-card:hover { box-shadow: 0 18px 40px rgba(0,0,0,.35); }
html[data-theme="dark"] .tc-head h3 { color: #f2ead6; }
html[data-theme="dark"] .tc-head p { color: #8ea397; }
html[data-theme="dark"] .tc-row:hover { background: rgba(255,255,255,.045); }
html[data-theme="dark"] .tc-row b { color: #e7eee9; }
html[data-theme="dark"] .tc-row > span { color: #8ea397; }
html[data-theme="dark"] .tc-row > i { color: #5f7669; }
html[data-theme="dark"] .tc-tag { color: var(--gold-300); background: rgba(212,175,106,.12); border-color: rgba(201,164,92,.3); }
html[data-theme="dark"] .tools-foot {
  background: linear-gradient(150deg, #1d2c20, #18231b);
  border-color: #2b4436;
}
html[data-theme="dark"] .tools-foot p { color: #ecd9a8; }
html[data-theme="dark"] .tf-link { color: var(--gold-300); }

/* hero 浮动数据卡 */
html[data-theme="dark"] .hero-float { background: #16261d; border: 1px solid #2b4436; }
html[data-theme="dark"] .hero-float strong { color: #f2ead6; }
html[data-theme="dark"] .hero-float .fi,
html[data-theme="dark"] .feature-card .icon-box { background: #1d3126 !important; }

/* 方案演示里的院校行（深色展板上的白卡 → 深纸卡） */
html[data-theme="dark"] .school-row { background: #14231b; color: #e7eee9; }
html[data-theme="dark"] .school-row .sn { color: #f2ead6; }
html[data-theme="dark"] .prob-bar { background: #22382c; }

/* 定价卡 */
html[data-theme="dark"] .price-card.featured {
  background: linear-gradient(180deg, #16261d, #101c15 45%);
  border-color: var(--gold-500);
}

/* 彩色标签暗色化 */
html[data-theme="dark"] .tag-rush { background: rgba(225,29,72,.16); }
html[data-theme="dark"] .tag-steady { background: rgba(37,99,235,.18); }
html[data-theme="dark"] .tag-safe { background: rgba(5,150,105,.18); }
html[data-theme="dark"] .badge-blue { background: rgba(212,175,106,.12); color: var(--gold-300); border-color: rgba(201,164,92,.3); }
html[data-theme="dark"] .faq-item { background: #101c15; border-color: #22382c; }
html[data-theme="dark"] .faq-item.open { border-color: rgba(212,175,106,.4); }
html[data-theme="dark"] .faq-q .fq-icon { background: #1d3126; color: var(--gold-300); }

/* 合规页（terms / privacy / refund） */
html[data-theme="dark"] .legal-head { border-bottom-color: #22382c; }
html[data-theme="dark"] .legal-head h1 { color: #f2ead6; }
html[data-theme="dark"] .legal-meta b { color: var(--gold-400); }
html[data-theme="dark"] .legal-toc h3 { color: #ecd9a8; }
html[data-theme="dark"] .legal-toc a,
html[data-theme="dark"] .legal-back { color: var(--gold-400); }
html[data-theme="dark"] .legal-toc a:hover,
html[data-theme="dark"] .legal-back:hover { color: var(--gold-300); }
html[data-theme="dark"] .legal-body h2 { color: #f2ead6; }
html[data-theme="dark"] .legal-body h3 { color: #ecd9a8; }
html[data-theme="dark"] .legal-callout {
  background: rgba(212,175,106,.08);
  border-color: rgba(201,164,92,.3);
}
html[data-theme="dark"] .legal-callout p { color: var(--gold-300); }
html[data-theme="dark"] .legal-callout strong { color: var(--gold-400); }
html[data-theme="dark"] .legal-callout.green { background: rgba(36,115,80,.14); border-color: rgba(36,115,80,.4); }
html[data-theme="dark"] .legal-callout.green p { color: #9fd3b8; }
html[data-theme="dark"] .legal-callout.green strong { color: #bfe6cf; }
html[data-theme="dark"] .legal-body th { background: #1d3126; color: var(--gold-300); }
html[data-theme="dark"] .placeholder { background: rgba(212,175,106,.16); color: var(--gold-300); }

/* 全站滚动条（暗色） */
html[data-theme="dark"] { scrollbar-color: #2b4436 #0c1712; }
html[data-theme="dark"] ::-webkit-scrollbar { width: 10px; height: 10px; -webkit-appearance: none; appearance: none; }
html[data-theme="dark"] ::-webkit-scrollbar-track { background: #0c1712; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #2b4436; border-radius: 99px; border: 2px solid #0c1712; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: #3a5a48; }
html[data-theme="dark"] ::-webkit-scrollbar-button { display: none !important; width: 0 !important; height: 0 !important; }

/* ============================================================
   登录 / 注册页（login.html）
   ============================================================ */
.auth-wrap { min-height: 100vh; display: grid; grid-template-columns: 46% 54%; }

/* 左侧品牌面板（恒为墨绿，不受明暗主题影响） */
.auth-aside {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 52px 56px 44px;
  color: #f2ead6;
  background:
    radial-gradient(1100px 520px at 88% -12%, rgba(212, 175, 106, .20), transparent 62%),
    linear-gradient(158deg, #14402c 0%, #0d2a1d 48%, #071a12 100%);
}
.aa-glow {
  position: absolute; width: 520px; height: 520px; right: -190px; bottom: -210px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212, 175, 106, .22), transparent 66%);
  pointer-events: none;
}
.aa-logo { position: relative; z-index: 1; color: var(--gold-300); }
.aa-body { position: relative; z-index: 1; margin: auto 0; }
.aa-body h2 {
  font-family: var(--font-serif);
  font-size: clamp(28px, 2.6vw, 38px); font-weight: 700; line-height: 1.35;
  color: #f7efd9; margin-bottom: 16px;
}
.aa-body h2 span { color: var(--gold-400); }
.aa-body > p { color: rgba(242, 234, 214, .78); font-size: 15.5px; max-width: 400px; margin-bottom: 26px; }
.aa-points { display: flex; flex-direction: column; gap: 13px; margin-bottom: 34px; }
.aa-points li { display: flex; align-items: center; gap: 11px; font-size: 14.5px; color: rgba(242, 234, 214, .86); }
.aa-points li span {
  width: 34px; height: 34px; border-radius: 10px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center; font-size: 17px;
  background: rgba(255, 255, 255, .08); border: 1px solid rgba(240, 224, 182, .22);
}
.aa-img {
  max-width: 380px; border-radius: 16px; overflow: hidden;
  border: 1px solid rgba(240, 224, 182, .26);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .42);
  transform: rotate(-1.2deg);
}
.aa-quote {
  position: relative; z-index: 1;
  font-family: var(--font-serif); font-size: 14.5px;
  color: rgba(240, 224, 182, .72); letter-spacing: .5px;
}

/* 右侧表单面板 */
.auth-main {
  display: flex; flex-direction: column;
  padding: 28px 40px 32px;
  background: var(--bg);
}
.am-topbar { display: flex; align-items: center; justify-content: space-between; }
.am-back { font-size: 14px; color: var(--muted); font-weight: 500; transition: color .2s; }
.am-back:hover { color: var(--navy-600); }

.am-card {
  width: min(420px, 100%); margin: auto;
  padding: 18px 0;
}
.am-title {
  font-size: 27px; font-weight: 800; color: var(--navy-900);
  letter-spacing: -.3px; margin-bottom: 8px;
}
.am-sub { font-size: 14.5px; color: var(--muted); line-height: 1.75; }

/* 方式切换 */
.af-tabs {
  display: flex; gap: 28px; margin: 30px 0 22px;
  border-bottom: 1px solid var(--line);
}
.af-tab {
  position: relative; padding: 0 2px 12px;
  font-size: 15.5px; font-weight: 600; color: var(--muted);
  transition: color .2s;
}
.af-tab.active { color: var(--navy-800); }
.af-tab.active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
  height: 2.5px; border-radius: 2px;
  background: linear-gradient(90deg, #e3c78d, #c9a45c);
}

/* 表单字段 */
.af-field { margin-bottom: 18px; }
.af-label { display: block; font-size: 13.5px; font-weight: 600; color: var(--ink-2); margin-bottom: 8px; }
.af-input-wrap { position: relative; }
.af-input {
  width: 100%; height: 50px; padding: 0 16px;
  font-size: 15px; color: var(--ink);
  background: var(--white); border: 1.5px solid var(--line); border-radius: 12px;
  outline: none; transition: border-color .2s, box-shadow .2s;
}
.af-input::placeholder { color: var(--muted-2); }
.af-input:focus {
  border-color: var(--gold-500);
  box-shadow: 0 0 0 4px rgba(212, 175, 106, .16);
}
.af-field.has-error .af-input { border-color: var(--rush); }
.af-field.has-error .af-input:focus { box-shadow: 0 0 0 4px rgba(225, 29, 72, .12); }
.af-prefix {
  position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  font-size: 14.5px; font-weight: 600; color: var(--muted);
  border-right: 1px solid var(--line); padding-right: 11px; pointer-events: none;
}
.af-input-wrap .af-input { padding-left: 62px; }
.af-input.has-toggle { padding-right: 48px; }
.af-eye {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  width: 34px; height: 34px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  color: var(--muted-2); transition: color .2s;
}
.af-eye:hover { color: var(--navy-600); }
.af-eye .eye-close { display: none; }
.af-eye.on .eye-open { display: none; }
.af-eye.on .eye-close { display: block; }

/* 验证码行 */
.af-code-row { display: flex; gap: 10px; }
.af-code-row .af-input { flex: 1; min-width: 0; }
.af-code-btn {
  flex-shrink: 0; height: 50px; padding: 0 16px; border-radius: 12px;
  font-size: 14px; font-weight: 600; white-space: nowrap;
  color: var(--navy-700); background: var(--bg-soft);
  border: 1.5px solid var(--line);
  transition: color .2s, border-color .2s, background .2s;
}
.af-code-btn:hover:not(:disabled) { border-color: var(--gold-500); color: #8f6f2c; }
.af-code-btn:disabled { color: var(--muted-2); cursor: not-allowed; }

/* ============================================================
   AI 咨询页 · v2 重设计（2026-09）
   设计方向：灯塔工作台 · 对话即主场
   - 去模板化三栏（假会话历史下线），对话主场 + 可收起「志愿台」
   - 欢迎屏编辑式版面 + 五步法领航轨 + 行动列表
   - 学院墨绿 + 香槟金不变；去宣纸米黄、静态界面去 emoji
   作用域全部限定 body.chat-page，不影响其他页面
   ============================================================ */

/* ---------- 顶部导航 ---------- */
body.chat-page { height: 100vh; }

body.chat-page .chat-nav {
  height: 60px; padding: 0;
  display: flex; align-items: center;
  background: rgba(255,255,255,.88);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
  box-shadow: none;
}
body.chat-page .chat-nav .container { width: 100%; max-width: none; padding: 0 20px; }
body.chat-page .chat-nav .nav-inner { display: flex; align-items: center; gap: 12px; }
body.chat-page .chat-nav .logo { font-size: 18px; letter-spacing: .5px; }

.nav-module {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; font-weight: 600; letter-spacing: .6px;
  color: var(--navy-700); background: rgba(29,92,62,.08);
  border: 1px solid rgba(29,92,62,.18);
  padding: 5px 12px; border-radius: 999px;
  white-space: nowrap;
}
.nav-module .nm-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gold-500);
  box-shadow: 0 0 0 3px rgba(212,175,106,.22);
}
.nav-spacer { flex: 1; }
body.chat-page .chat-nav .nav-actions { display: flex; align-items: center; gap: 10px; }

.nav-back {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13.5px; font-weight: 500; color: var(--muted);
  padding: 7px 12px; border-radius: 999px;
  transition: color .2s, background .2s;
}
.nav-back:hover { color: var(--navy-700); background: var(--bg-soft); }

.icon-btn {
  width: 38px; height: 38px; border-radius: 999px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--line); background: var(--white); color: var(--ink-2);
  transition: border-color .2s, color .2s, background .2s, transform .2s;
}
.icon-btn:hover { border-color: var(--gold-500); color: var(--navy-700); transform: translateY(-1px); }
.icon-btn.is-on {
  background: linear-gradient(150deg, var(--navy-700), var(--navy-900));
  border-color: rgba(212,175,106,.5); color: var(--gold-300);
}
body.chat-page .chat-nav .theme-toggle { width: 38px; height: 38px; background-color: var(--white); }

body.chat-page .credits-pill {
  padding: 7px 14px; font-size: 12.5px; font-weight: 600;
  background: var(--bg-soft); border: 1px solid var(--line);
  color: var(--muted); border-radius: 999px;
}
body.chat-page .credits-pill b { color: #8f6f2c; font-weight: 800; }

/* ---------- 主体结构 ---------- */
body.chat-page .chat-body { position: relative; }

body.chat-page .chat-scroll {
  padding: 44px 0 22px;
  background:
    radial-gradient(760px 320px at 50% -130px, rgba(212,175,106,.10), transparent 72%),
    linear-gradient(180deg, #fbfdfb 0%, var(--bg) 400px);
  background-attachment: local;
}
body.chat-page .chat-inner { width: min(780px, 92%); }

/* ---------- 消息气泡 ---------- */
body.chat-page .msg { gap: 12px; margin-bottom: 24px; }
body.chat-page .msg-avatar { width: 36px; height: 36px; }
body.chat-page .msg.ai .msg-avatar {
  background: radial-gradient(circle at 34% 28%, #1d5238, var(--navy-950) 78%);
  border: 1px solid rgba(212,175,106,.55);
  box-shadow: 0 3px 10px rgba(11,36,25,.22), inset 0 1px 0 rgba(240,224,182,.16);
}
body.chat-page .msg.ai .msg-avatar .av-lamp { width: 20px; height: 20px; }
body.chat-page .msg.me .msg-avatar {
  background: linear-gradient(140deg, #f8ecd2, #ecd9b2);
  border: 1px solid rgba(150,118,52,.4);
  box-shadow: 0 3px 8px rgba(111,84,33,.16);
}
body.chat-page .msg-bubble {
  max-width: 78%; padding: 13px 18px 14px;
  font-size: 15px; line-height: 1.8;
}
body.chat-page .msg.ai .msg-bubble {
  background: var(--white);
  border: 1px solid var(--line);
  border-left: none;
  border-radius: 4px 18px 18px 18px;
  color: var(--ink);
  box-shadow: 0 3px 14px rgba(11,36,25,.06);
}
body.chat-page .msg.ai .msg-bubble strong { color: var(--navy-700); }
body.chat-page .msg.me .msg-bubble {
  background: linear-gradient(155deg, #17452f, #0e2d1f);
  color: #f4efe2;
  border: 1px solid rgba(212,175,106,.28);
  border-right: none;
  border-radius: 18px 4px 18px 18px;
  box-shadow: 0 6px 16px rgba(7,26,18,.2);
}
body.chat-page .msg.me .msg-bubble strong { color: var(--gold-300); }

/* 解锁提示条 */
body.chat-page .unlock-banner {
  max-width: 78%; margin: 2px 0 24px 48px;
  background: linear-gradient(135deg, #fdfaf2, #f6ecd6);
  border: 1px solid rgba(201,164,92,.42);
  border-radius: 14px;
  padding: 14px 16px; gap: 12px;
}
body.chat-page .unlock-banner h5 { font-size: 14px; }
body.chat-page .unlock-banner p { font-size: 12.5px; line-height: 1.7; }

/* ---------- 欢迎屏（编辑式版面） ---------- */
body.chat-page .welcome {
  text-align: left;
  padding: 8px 0 16px;
  animation: welcomeIn .55s cubic-bezier(.22,.9,.32,1) both;
}
@keyframes welcomeIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.w-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; font-weight: 600; letter-spacing: .8px;
  color: #8f6f2c; background: rgba(212,175,106,.13);
  border: 1px solid rgba(201,164,92,.35);
  padding: 6px 13px; border-radius: 999px;
  margin-bottom: 20px;
}
.w-eyebrow svg { color: var(--gold-500); }

body.chat-page .welcome h2 {
  font-family: var(--font-serif); font-weight: 700;
  font-size: 33px; line-height: 1.38; letter-spacing: .5px;
  color: var(--navy-950); margin: 0 0 12px;
}
body.chat-page .welcome .w-lead {
  color: var(--muted); font-size: 15px; line-height: 1.95;
  margin: 0 0 26px;
}

/* 分数档案卡 */
body.chat-page .profile-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 19px 22px 18px;
  max-width: none; margin: 0 0 30px;
  box-shadow: 0 6px 22px rgba(11,36,25,.05);
  transition: border-color .2s, box-shadow .2s;
}
body.chat-page .profile-card::before { content: none; }
body.chat-page .profile-card:focus-within {
  border-color: rgba(201,164,92,.65);
  box-shadow: 0 0 0 4px rgba(212,175,106,.14), 0 6px 22px rgba(11,36,25,.05);
}
.pf-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
body.chat-page .profile-card h4 {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--font-serif); font-size: 15px; font-weight: 600;
  letter-spacing: .8px; color: var(--navy-800); margin: 0;
}
body.chat-page .profile-card h4 svg { color: var(--gold-500); }
.pf-note {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; color: var(--muted-2); white-space: nowrap;
}
.pf-note svg { color: var(--muted-2); }

.pf-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.pf-field { padding: 2px 18px; border-left: 1px solid var(--line); }
.pf-field:first-child { padding-left: 0; border-left: none; }
.pf-field:last-child { padding-right: 0; }
.pf-field label {
  display: block; font-size: 12px; color: var(--muted);
  margin-bottom: 5px; font-weight: 500;
}
.pf-field select,
.pf-field input {
  width: 100%; border: none; outline: none; background: transparent;
  font-family: inherit; font-size: 15.5px; font-weight: 700;
  color: var(--navy-900); padding: 0 18px 2px 0;
}
.pf-field input::placeholder { color: var(--muted-2); font-weight: 500; }
.pf-field select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2397a39c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 0 center;
  background-size: 15px 15px; cursor: pointer;
}
.pf-field input[type="number"]::-webkit-outer-spin-button,
.pf-field input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pf-field input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
.pf-field small {
  display: block; margin-top: 5px;
  font-size: 11.5px; line-height: 1.45; color: var(--muted-2);
  min-height: 16px;
}

/* 五步法领航轨 */
.fs-head {
  display: flex; align-items: center; gap: 7px;
  font-size: 12.5px; font-weight: 600; letter-spacing: .6px;
  color: var(--muted); margin: 0 0 13px;
}
.fs-head svg { color: var(--gold-500); }
.fs-rail {
  list-style: none; margin: 0 0 30px; padding: 0;
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px;
  position: relative;
}
.fs-rail::before {
  content: ""; position: absolute;
  left: 11%; right: 11%; top: 19px; height: 2px;
  background: linear-gradient(90deg, rgba(212,175,106,.15), rgba(212,175,106,.65), rgba(29,92,62,.35));
}
.fs-node { position: relative; padding: 0 6px; }
.fs-dot {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%;
  background: radial-gradient(circle at 34% 28%, #1d5238, var(--navy-950) 80%);
  border: 1.5px solid rgba(212,175,106,.6);
  color: var(--gold-300);
  font-family: var(--font-serif); font-size: 15px; font-weight: 700;
  box-shadow: 0 4px 12px rgba(11,36,25,.22), inset 0 1px 0 rgba(240,224,182,.2);
  margin-bottom: 10px;
}
.fs-t { display: block; font-size: 13.5px; font-weight: 700; color: var(--navy-800); margin-bottom: 3px; }
.fs-d { display: block; font-size: 12px; line-height: 1.55; color: var(--muted); }

/* 领航问题行动列表 */
body.chat-page .quick-grid {
  display: flex; flex-direction: column; gap: 10px;
  max-width: none; margin: 0;
}
body.chat-page .quick-q {
  display: flex; align-items: center; gap: 13px;
  width: 100%; text-align: left;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 13px 16px;
  color: var(--ink-2);
  transition: border-color .2s, box-shadow .2s, transform .2s, background .2s;
}
body.chat-page .quick-q:hover {
  border-color: rgba(201,164,92,.7);
  background: var(--white);
  box-shadow: 0 10px 26px rgba(11,36,25,.08);
  transform: translateY(-1px);
}
.qq-ico {
  width: 38px; height: 38px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(29,92,62,.08); color: var(--navy-600);
  transition: transform .2s;
}
.qq-ico-gold { background: rgba(212,175,106,.15); color: #8f6f2c; }
body.chat-page .quick-q:hover .qq-ico { transform: scale(1.06); }
.qq-text {
  flex: 1; min-width: 0;
  display: flex; flex-direction: column; gap: 2px;
}
.qq-text b { font-size: 14.5px; font-weight: 600; color: var(--ink-2); display: flex; align-items: center; flex-wrap: wrap; }
.qq-text > span { font-size: 12.5px; color: var(--muted); }
.qq-free {
  font-style: normal; font-size: 10.5px; font-weight: 600;
  color: #8f6f2c; background: rgba(212,175,106,.16);
  border: 1px solid rgba(201,164,92,.35);
  padding: 1px 7px; border-radius: 99px; margin-left: 6px;
}
.qq-arrow { color: var(--muted-2); flex-shrink: 0; transition: transform .2s, color .2s; }
body.chat-page .quick-q:hover .qq-arrow { color: var(--gold-500); transform: translateX(3px); }

body.chat-page .welcome .w-foot {
  text-align: center; font-size: 12.5px; color: var(--muted-2);
  margin: 20px 0 2px;
}

/* ---------- 输入区 ---------- */
body.chat-page .chat-input-wrap {
  border-top: 1px solid var(--line);
  background: rgba(250,251,250,.86);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  padding: 13px 0 15px;
}
body.chat-page .chat-input-inner { width: min(780px, 92%); }
body.chat-page .chat-input {
  display: flex; align-items: flex-end; gap: 10px;
  background: var(--white);
  border: 1.5px solid var(--line);
  border-radius: 22px;
  padding: 6px 6px 6px 19px;
  box-shadow: 0 2px 12px rgba(11,36,25,.05);
  transition: border-color .2s, box-shadow .2s;
}
body.chat-page .chat-input:focus-within {
  border-color: var(--gold-500);
  box-shadow: 0 0 0 4px rgba(212,175,106,.16);
}
body.chat-page .chat-input textarea {
  flex: 1; border: none; outline: none; resize: none;
  font-family: inherit; font-size: 15px; line-height: 1.6;
  padding: 8px 4px; max-height: 140px;
  background: transparent; color: var(--ink);
  overflow-y: hidden; -ms-overflow-style: none; scrollbar-width: none;
}
body.chat-page .chat-input textarea::-webkit-scrollbar { display: none; }

/* 滚动条隐藏：部分 Windows Chromium 无法去除经典 ▲▼ 按钮，
   聊天区 / 志愿台抽屉 / 五步法横滑轨均为应用内滚动区（滚轮、触摸可滚，新消息自动滚底），采用无条设计 */
body.chat-page .chat-scroll,
body.chat-page .ca-body,
body.chat-page .fs-rail {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
body.chat-page .chat-scroll::-webkit-scrollbar,
body.chat-page .ca-body::-webkit-scrollbar,
body.chat-page .fs-rail::-webkit-scrollbar { display: none; }
body.chat-page .chat-send {
  width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(150deg, var(--navy-600), var(--navy-900));
  border: none; color: var(--gold-300);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(11,36,25,.26);
  transition: transform .2s, box-shadow .2s, opacity .2s;
}
body.chat-page .chat-send:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(11,36,25,.34); }
body.chat-page .chat-send:disabled { opacity: .4; cursor: not-allowed; transform: none; box-shadow: none; }
body.chat-page .chat-hint { font-size: 12px; margin-top: 9px; }

/* ---------- 志愿台抽屉 ---------- */
body.chat-page .chat-aside {
  width: 308px; flex-shrink: 0;
  display: flex; flex-direction: column;
  background: #fafcf9;
  border-left: 1px solid var(--line);
  padding: 0; overflow: visible;
}
.ca-head {
  display: flex; align-items: center; justify-content: space-between;
  height: 60px; padding: 0 14px 0 20px; flex-shrink: 0;
  border-bottom: 1px solid var(--line);
  background: inherit;
}
.ca-head h5 {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 700; letter-spacing: .5px;
  color: var(--navy-900); margin: 0;
}
.ca-head h5 svg { color: var(--gold-500); }
.ca-close { width: 30px; height: 30px; background: transparent; }
.ca-body { flex: 1; overflow-y: auto; padding: 18px 16px; min-height: 0; }

body.chat-page .aside-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 15px;
  padding: 15px 16px; margin-bottom: 13px;
}
body.chat-page .aside-card:last-child { margin-bottom: 0; }
body.chat-page .aside-card h5 {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; letter-spacing: .3px;
  color: var(--navy-900); margin: 0 0 10px;
}
body.chat-page .aside-card h5 svg { color: var(--gold-500); }
body.chat-page .aside-row { font-size: 13px; padding: 6.5px 0; }
.aside-tip { font-size: 12.5px; color: var(--muted); line-height: 1.85; margin: 0; }
.aside-tip b { color: var(--navy-700); }

body.chat-page .aside-promo {
  background: linear-gradient(145deg, #fdf8ec, #f5e9cf);
  border: 1px solid rgba(201,164,92,.38);
}
body.chat-page .aside-promo h5 { color: #6b5320; }
body.chat-page .aside-promo h5 svg { color: #8f6f2c; }
body.chat-page .aside-promo p { font-size: 12.5px; color: #8f6f2c; line-height: 1.8; margin: 0 0 12px; }

.aside-overlay {
  display: none; position: fixed; inset: 0; z-index: 80;
  background: rgba(7,26,18,.45);
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}

/* ---------- 弹窗（付费墙 / 协议） ---------- */
body.chat-page .modal-mask { background: rgba(7,26,18,.58); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
body.chat-page .modal {
  width: min(440px, 94vw);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 34px 30px 26px;
  box-shadow: 0 30px 80px rgba(7,26,18,.3);
}
body.chat-page .modal .m-icon {
  width: 64px; height: 64px; border-radius: 18px;
  margin: 0 auto 17px; font-size: 0;
  background: linear-gradient(135deg, #ecd7a2, #c9a45c);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 26px rgba(201,164,92,.34);
}
body.chat-page .modal .m-icon-lamp {
  background: linear-gradient(135deg, #dcefe4, #bcd9c9);
  box-shadow: 0 10px 26px rgba(29,92,62,.22);
  color: var(--navy-700);
}
body.chat-page .modal-close {
  top: 14px; right: 16px; font-size: 0;
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--muted-2); transition: background .2s, color .2s;
}
body.chat-page .modal-close:hover { background: var(--bg-soft); color: var(--ink-2); }
body.chat-page .modal h3 { font-size: 21px; line-height: 1.45; margin-bottom: 9px; }
body.chat-page .modal > p { font-size: 14px; line-height: 1.8; margin-bottom: 20px; }
body.chat-page .m-plan {
  background: var(--bg); border: 1px solid var(--line);
  border-radius: 14px; padding: 17px;
}
body.chat-page .m-plan .mp-name { font-size: 14.5px; }
body.chat-page .m-plan li { font-size: 13px; line-height: 1.6; }

/* ---------- 暗色主题 ---------- */
html[data-theme="dark"] body.chat-page .chat-nav { background: rgba(13,24,18,.88); border-bottom-color: #22382c; }
html[data-theme="dark"] body.chat-page .nav-module { color: var(--gold-300); background: rgba(212,175,106,.1); border-color: rgba(201,164,92,.28); }
html[data-theme="dark"] body.chat-page .nav-back:hover { background: #1d3126; color: var(--gold-300); }
html[data-theme="dark"] body.chat-page .icon-btn { background: #16261d; border-color: #2b4436; color: #c4d2c9; }
html[data-theme="dark"] body.chat-page .chat-nav .theme-toggle { background-color: #16261d; }
html[data-theme="dark"] body.chat-page .credits-pill { background: #1d3126; border-color: #2b4436; color: var(--gold-400); }
html[data-theme="dark"] body.chat-page .credits-pill b { color: var(--gold-300); }

html[data-theme="dark"] body.chat-page .chat-scroll {
  background:
    radial-gradient(760px 320px at 50% -130px, rgba(212,175,106,.12), transparent 72%),
    linear-gradient(180deg, #101c15 0%, #0c1712 400px);
}
html[data-theme="dark"] body.chat-page .msg.ai .msg-bubble {
  background: #16261d; border-color: #263d30;
  box-shadow: 0 6px 18px rgba(0,0,0,.35);
}
html[data-theme="dark"] body.chat-page .msg.ai .msg-bubble strong { color: var(--gold-300); }
html[data-theme="dark"] body.chat-page .msg.ai .msg-bubble a { color: #d9bc7f; }
html[data-theme="dark"] body.chat-page .unlock-banner {
  background: linear-gradient(135deg, #1d3126, #172a20);
  border-color: rgba(212,175,106,.32);
}
html[data-theme="dark"] body.chat-page .unlock-banner h5 { color: var(--gold-300); }
html[data-theme="dark"] body.chat-page .unlock-banner p { color: var(--gold-400); }

html[data-theme="dark"] body.chat-page .welcome h2 { color: #f2ead6; }
html[data-theme="dark"] body.chat-page .w-eyebrow { color: var(--gold-300); background: rgba(212,175,106,.11); border-color: rgba(201,164,92,.3); }
html[data-theme="dark"] body.chat-page .profile-card {
  background: #101c15; border-color: #24382c;
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
}
html[data-theme="dark"] body.chat-page .profile-card h4 { color: #ecd9a8; }
html[data-theme="dark"] body.chat-page .pf-field { border-left-color: #22382c; }
html[data-theme="dark"] body.chat-page .pf-field select,
html[data-theme="dark"] body.chat-page .pf-field input { color: #e7eee9; }
html[data-theme="dark"] body.chat-page .fs-t { color: #ecd9a8; }
html[data-theme="dark"] body.chat-page .quick-q { background: #101c15; border-color: #24382c; }
html[data-theme="dark"] body.chat-page .quick-q:hover { background: #16261d; border-color: rgba(201,164,92,.6); box-shadow: 0 12px 28px rgba(0,0,0,.4); }
html[data-theme="dark"] body.chat-page .qq-ico { background: rgba(212,175,106,.1); color: var(--gold-300); }
html[data-theme="dark"] body.chat-page .qq-text b { color: #e7eee9; }
html[data-theme="dark"] body.chat-page .qq-free { color: var(--gold-300); background: rgba(212,175,106,.12); border-color: rgba(201,164,92,.3); }

html[data-theme="dark"] body.chat-page .chat-input-wrap { background: rgba(12,23,18,.86); border-top-color: #22382c; }
html[data-theme="dark"] body.chat-page .chat-input { background: #101c15; border-color: #2b4436; }
html[data-theme="dark"] body.chat-page .chat-input textarea { color: #e7eee9; }

html[data-theme="dark"] body.chat-page .chat-aside { background: #0d1913; border-left-color: #22382c; }
html[data-theme="dark"] body.chat-page .ca-head { border-bottom-color: #22382c; }
html[data-theme="dark"] body.chat-page .ca-head h5 { color: #f2ead6; }
html[data-theme="dark"] body.chat-page .aside-card { background: #101c15; border-color: #22382c; }
html[data-theme="dark"] body.chat-page .aside-card h5 { color: #f2ead6; }
html[data-theme="dark"] body.chat-page .aside-row b { color: #e7eee9; }
html[data-theme="dark"] body.chat-page .aside-tip b { color: var(--gold-400); }
html[data-theme="dark"] body.chat-page .aside-promo { background: linear-gradient(145deg, #1d3126, #172a20); border-color: rgba(201,164,92,.3); }
html[data-theme="dark"] body.chat-page .aside-promo h5 { color: var(--gold-300); }
html[data-theme="dark"] body.chat-page .aside-promo h5 svg { color: var(--gold-400); }
html[data-theme="dark"] body.chat-page .aside-promo p { color: var(--gold-400); }

html[data-theme="dark"] body.chat-page .modal { background: #101c15; border-color: #24382c; }
html[data-theme="dark"] body.chat-page .modal h3 { color: #f2ead6; }
html[data-theme="dark"] body.chat-page .modal-close:hover { background: #1d3126; color: #e7eee9; }
html[data-theme="dark"] body.chat-page .m-plan { background: #16261d; border-color: #263d30; }
html[data-theme="dark"] body.chat-page .m-icon-lamp { color: var(--gold-300); }

/* ---------- 响应式 ---------- */
/* 桌面：志愿台常驻，可收起 */
@media (min-width: 1100px) {
  body.chat-page .chat-aside { position: static; transform: none; }
  html.aside-off body.chat-page .chat-aside { display: none; }
  .aside-overlay { display: none !important; }
}
/* 窄屏：志愿台变遮罩抽屉 */
@media (max-width: 1099px) {
  body.chat-page .chat-aside {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: min(320px, 88vw); z-index: 90;
    transform: translateX(102%);
    transition: transform .32s cubic-bezier(.22,.9,.32,1);
    box-shadow: -20px 0 60px rgba(0,0,0,.2);
  }
  html.aside-on body.chat-page .chat-aside { transform: none; }
  html.aside-on .aside-overlay { display: block; }
}
@media (max-width: 980px) {
  body.chat-page .nav-module,
  body.chat-page .credits-pill { display: none; }
}
@media (max-width: 860px) {
  body.chat-page .chat-scroll { padding: 30px 0 18px; }
  body.chat-page .welcome h2 { font-size: 28px; }
  /* 五步法轨：横向滑动 */
  .fs-rail {
    display: flex; gap: 10px; overflow-x: auto; padding-bottom: 8px;
    scrollbar-width: thin; scrollbar-color: rgba(151,163,156,.5) transparent;
  }
  .fs-rail::before { display: none; }
  .fs-node {
    flex: 0 0 150px;
    background: var(--bg-soft); border: 1px solid var(--line);
    border-radius: 13px; padding: 12px 13px;
  }
  .fs-dot { width: 32px; height: 32px; font-size: 13px; margin-bottom: 8px; }
}
@media (max-width: 720px) {
  body.chat-page .chat-nav .container { padding: 0 14px; }
  body.chat-page .chat-nav .nav-actions { gap: 8px; }
  body.chat-page .chat-nav .logo { font-size: 16px; }
  body.chat-page .nav-back { padding: 7px 9px; }
  body.chat-page .nav-back span { display: none; }
  body.chat-page .btn-gold.btn-sm { padding: 9px 15px; font-size: 13.5px; }
  body.chat-page .msg-bubble,
  body.chat-page .unlock-banner { max-width: 88%; }
  body.chat-page .unlock-banner { margin-left: 0; flex-wrap: wrap; }
  .pf-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .pf-field {
    padding: 9px 12px; border-left: none;
    background: var(--bg-soft); border-radius: 11px;
  }
  .pf-field:first-child, .pf-field:last-child { padding: 9px 12px; }
  /* 占位提示在窄屏会折成两行，输入框默认留足两行高度 */
  body.chat-page .chat-input textarea { height: 50px; }
}
@media (max-width: 460px) {
  .pf-grid { grid-template-columns: 1fr; }
  body.chat-page .welcome h2 { font-size: 25px; }
  .new-chat-text { display: none; }
  /* 极窄屏只留灯塔标，避免品牌字被挤成竖排 */
  body.chat-page .logo-word { display: none; }
}

/* 键盘焦点可见性 */
body.chat-page .quick-q:focus-visible,
body.chat-page .pstep:focus-visible,
body.chat-page .icon-btn:focus-visible,
body.chat-page .nav-back:focus-visible,
body.chat-page .chat-send:focus-visible {
  outline: 3px solid rgba(212,175,106,.55); outline-offset: 2px;
}

/* 降低动效偏好 */
@media (prefers-reduced-motion: reduce) {
  body.chat-page *,
  body.chat-page *::before,
  body.chat-page *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

.af-err { font-size: 12.5px; color: var(--rush); margin-top: 7px; min-height: 0; line-height: 1.5; }
.af-hint { font-size: 12.5px; color: var(--muted-2); margin-top: 7px; line-height: 1.6; }
.af-forgot { margin-top: 8px; text-align: right; }
.af-forgot a { font-size: 13px; color: var(--navy-600); font-weight: 500; }
.af-forgot a:hover { color: #8f6f2c; }

/* 协议勾选 */
.af-agree {
  display: flex; align-items: flex-start; gap: 9px;
  margin: 4px 0 6px; cursor: pointer; user-select: none;
  font-size: 13px; color: var(--muted); line-height: 1.7;
}
.af-agree input { position: absolute; opacity: 0; width: 0; height: 0; }
.af-check {
  flex-shrink: 0; width: 17px; height: 17px; margin-top: 2.5px;
  border-radius: 5px; border: 1.5px solid var(--muted-2);
  background: var(--white);
  display: inline-flex; align-items: center; justify-content: center;
  transition: all .2s;
}
.af-check::after {
  content: ""; width: 9px; height: 5px;
  border-left: 2px solid #3d2e10; border-bottom: 2px solid #3d2e10;
  transform: rotate(-45deg) scale(0); margin-top: -2px;
  transition: transform .18s ease;
}
.af-agree input:checked + .af-check {
  background: linear-gradient(135deg, #f0dfb0, #c9a45c);
  border-color: var(--gold-500);
}
.af-agree input:checked + .af-check::after { transform: rotate(-45deg) scale(1); }
.af-agree a { color: var(--navy-600); font-weight: 500; }
.af-agree a:hover { color: #8f6f2c; }
.af-agree.has-error .af-check { border-color: var(--rush); }
.af-err-agree { margin-top: 0; margin-bottom: 4px; }

.af-submit { height: 50px; font-size: 16px; margin-top: 6px; }
.af-submit:disabled { opacity: .65; cursor: not-allowed; transform: none; }

/* 分割线 + 第三方 */
.af-divider {
  display: flex; align-items: center; gap: 14px;
  margin: 26px 0 18px; color: var(--muted-2); font-size: 12.5px;
}
.af-divider::before, .af-divider::after {
  content: ""; flex: 1; height: 1px; background: var(--line);
}
.af-wechat {
  width: 100%; height: 48px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center; gap: 9px;
  font-size: 15px; font-weight: 600;
  color: #078d56; background: rgba(7, 141, 86, .07);
  border: 1.5px solid rgba(7, 141, 86, .3);
  transition: background .2s, transform .2s, box-shadow .2s;
}
.af-wechat:hover { background: rgba(7, 141, 86, .13); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(7, 141, 86, .14); }

/* 结果态（成功 / 已登录） */
.am-result { text-align: center; padding: 26px 0; }
.am-ok-icon {
  width: 66px; height: 66px; margin: 8px auto 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 30px; color: #3d2e10;
  background: linear-gradient(135deg, #f0dfb0, #c9a45c);
  box-shadow: var(--shadow-gold);
}
.am-ok-icon-lit { font-size: 30px; }
.am-result .am-title { margin-bottom: 10px; }
.am-result .am-sub b { color: var(--navy-800); }
.am-result .btn { height: 50px; margin-top: 24px; font-size: 16px; }
.am-logout {
  display: block; margin: 16px auto 0;
  font-size: 14px; color: var(--muted);
}
.am-logout:hover { color: var(--rush); }

.am-footer {
  text-align: center; font-size: 12.5px; color: var(--muted-2);
  padding-top: 14px;
}

.hidden { display: none !important; }

/* 登录页暗色适配（左侧面板恒定墨绿，仅右侧随主题） */
html[data-theme="dark"] .am-back:hover { color: var(--gold-400); }
html[data-theme="dark"] .am-title { color: #f2ead6; }
html[data-theme="dark"] .af-tab { color: var(--muted); }
html[data-theme="dark"] .af-tab.active { color: var(--gold-300); }
html[data-theme="dark"] .af-label { color: #c4d2c9; }
html[data-theme="dark"] .af-input { background: #101c15; border-color: #2b4436; color: #e7eee9; }
html[data-theme="dark"] .af-input:focus { border-color: var(--gold-500); box-shadow: 0 0 0 4px rgba(212, 175, 106, .14); }
html[data-theme="dark"] .af-prefix { color: var(--muted); border-right-color: #2b4436; }
html[data-theme="dark"] .af-eye:hover { color: var(--gold-400); }
html[data-theme="dark"] .af-code-btn { background: #1d3126; border-color: #2b4436; color: var(--gold-300); }
html[data-theme="dark"] .af-code-btn:hover:not(:disabled) { border-color: var(--gold-500); color: var(--gold-300); }
html[data-theme="dark"] .af-code-btn:disabled { color: #6d8276; }
html[data-theme="dark"] .af-forgot a,
html[data-theme="dark"] .af-agree a { color: var(--gold-400); }
html[data-theme="dark"] .af-check { background: #101c15; border-color: #3a5a48; }
html[data-theme="dark"] .am-result .am-sub b { color: var(--gold-300); }

/* 响应式：窄屏隐藏品牌面板 */
@media (max-width: 920px) {
  .auth-wrap { grid-template-columns: 1fr; }
  .auth-aside { display: none; }
  .auth-main { min-height: 100vh; padding: 22px 24px 28px; }
}
@media (max-width: 420px) {
  .auth-main { padding: 18px 18px 24px; }
  .af-code-btn { padding: 0 12px; font-size: 13px; }
}

/* ============================================================
   视觉增强 v2（首页动效）
   ============================================================ */

/* ---------- 自定义滚动条 ---------- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-soft); }
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--navy-500), var(--navy-700)); border-radius: 99px; border: 2px solid var(--bg-soft); }
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, var(--gold-500), var(--orange-500)); }
html[data-theme="dark"] ::-webkit-scrollbar-track { background: #0e1a13; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb { background: linear-gradient(180deg, #2b4436, #1d3126); border-color: #0e1a13; }

/* ---------- Hero 极光动态背景 ---------- */
.hero::before {
  content: ""; position: absolute; inset: -50% -20%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(600px 400px at 20% 30%, rgba(36,115,80,.35), transparent 60%),
    radial-gradient(500px 360px at 70% 60%, rgba(212,175,106,.22), transparent 55%),
    radial-gradient(450px 320px at 90% 20%, rgba(29,92,62,.3), transparent 50%);
  animation: auroraShift 18s ease-in-out infinite alternate;
}
@keyframes auroraShift {
  0%   { transform: translate(0,0) rotate(0deg) scale(1); opacity: .7; }
  50%  { transform: translate(3%,2%) rotate(2deg) scale(1.08); opacity: 1; }
  100% { transform: translate(-2%,-1%) rotate(-1deg) scale(1.05); opacity: .8; }
}

/* ---------- 灯塔光束 ---------- */
.hero-beam {
  position: absolute; top: -10%; left: 50%; width: 280px; height: 130%;
  transform-origin: top center; transform: translateX(-50%) rotate(15deg);
  background: linear-gradient(180deg, rgba(240,224,182,.18) 0%, rgba(212,175,106,.06) 40%, transparent 80%);
  filter: blur(40px); pointer-events: none; z-index: 0;
  animation: beamSweep 12s ease-in-out infinite;
}
@keyframes beamSweep {
  0%, 100% { transform: translateX(-50%) rotate(15deg); opacity: .5; }
  50%      { transform: translateX(-50%) rotate(-15deg); opacity: .9; }
}

/* ---------- 浮动光粒子 ---------- */
.hero-particles { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.hero-particles .particle {
  position: absolute; bottom: -10px; width: 4px; height: 4px; border-radius: 50%;
  background: rgba(240,224,182,.6); box-shadow: 0 0 6px rgba(212,175,106,.5);
  animation: particleRise linear infinite;
}
@keyframes particleRise {
  0%   { transform: translateY(0) translateX(0); opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: .8; }
  100% { transform: translateY(-100vh) translateX(40px); opacity: 0; }
}

/* ---------- 标题金色微光扫过 ---------- */
.text-gradient-gold {
  background: linear-gradient(120deg, #e0c078 0%, #f0e0b6 50%, #b8913f 100%);
  background-size: 200% auto;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shimmerSweep 4s linear infinite;
}
@keyframes shimmerSweep {
  0%   { background-position: 0% center; }
  100% { background-position: 200% center; }
}

/* ---------- 徽章脉冲 ---------- */
.badge-gold {
  animation: badgePulse 3s ease-in-out infinite;
}
@keyframes badgePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(212,175,106,.35); }
  50%      { box-shadow: 0 0 0 6px rgba(212,175,106,0); }
}

/* ---------- Hero 浮动卡增强（玻璃态） ---------- */
.hero-float {
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(14px) saturate(1.4);
  border: 1px solid rgba(255,255,255,.5);
}
.hero-float .fi {
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

/* ---------- 按钮光泽扫过 ---------- */
.btn-gold { position: relative; overflow: hidden; }
.btn-gold::after {
  content: ""; position: absolute; top: 0; left: -100%; width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  transform: skewX(-20deg); transition: none;
}
.btn-gold:hover::after { animation: btnShine .8s ease forwards; }
@keyframes btnShine { to { left: 120%; } }

/* ---------- 信任条图标弹入 + 渐变下划线 ---------- */
.trust-bar { position: relative; }
.trust-bar::after {
  content: ""; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold-500), var(--navy-500), var(--gold-500), transparent);
  transform: translateX(-50%); transition: width 1.5s ease .3s;
}
.trust-bar.in::after { width: 80%; }
.trust-item .ti {
  display: inline-flex; transition: transform .3s;
}
.trust-bar.in .trust-item .ti { animation: iconBounce .6s ease backwards; }
.trust-bar.in .trust-item:nth-child(1) .ti { animation-delay: .1s; }
.trust-bar.in .trust-item:nth-child(2) .ti { animation-delay: .2s; }
.trust-bar.in .trust-item:nth-child(3) .ti { animation-delay: .3s; }
.trust-bar.in .trust-item:nth-child(4) .ti { animation-delay: .4s; }
.trust-bar.in .trust-item:nth-child(5) .ti { animation-delay: .5s; }
@keyframes iconBounce {
  0%   { transform: scale(0) rotate(-30deg); opacity: 0; }
  60%  { transform: scale(1.2) rotate(5deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); }
}

/* ---------- 工具卡光泽扫过 ---------- */
.tool-card { position: relative; overflow: hidden; }
.tool-card::before {
  content: ""; position: absolute; top: 0; left: -100%; width: 50%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent);
  transform: skewX(-15deg); pointer-events: none; z-index: 1;
  transition: left .6s ease;
}
.tool-card:hover::before { left: 120%; }
.tool-card-hot::before {
  background: linear-gradient(90deg, transparent, rgba(240,224,182,.12), transparent);
}

/* ---------- 工具卡行错峰入场 ---------- */
.tool-card .tc-row { opacity: 0; transform: translateX(20px); transition: opacity .5s ease, transform .5s ease; }
.tool-card.in .tc-row { opacity: 1; transform: none; }
.tool-card.in .tc-row:nth-child(1) { transition-delay: .1s; }
.tool-card.in .tc-row:nth-child(2) { transition-delay: .2s; }
.tool-card.in .tc-row:nth-child(3) { transition-delay: .3s; }
.tool-card.in .tc-row:nth-child(4) { transition-delay: .4s; }
.tool-card.in .tc-row:nth-child(5) { transition-delay: .5s; }
.tool-card.in .tc-row:nth-child(6) { transition-delay: .6s; }

/* ---------- 多方向滚动渐入 ---------- */
.reveal.reveal-left { transform: translateX(-40px); }
.reveal.reveal-right { transform: translateX(40px); }
.reveal.reveal-scale { transform: scale(.92); }
.reveal.in.reveal-left, .reveal.in.reveal-right, .reveal.in.reveal-scale { transform: none; }

/* ---------- 方案演示：概率条滚动填充 ---------- */
.plan-demo .prob-bar i { width: 0 !important; transition: width 1.2s cubic-bezier(.22,.9,.32,1) .3s; }
.plan-demo.in .prob-bar i { width: var(--w) !important; }

/* ---------- 方案演示光晕脉动 ---------- */
.plan-demo::before { animation: glowPulse 6s ease-in-out infinite; }
@keyframes glowPulse {
  0%, 100% { opacity: .6; transform: scale(1); }
  50%      { opacity: 1; transform: scale(1.1); }
}

/* ---------- CTA 区动态渐变 ---------- */
.cta-band::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(600px 300px at var(--mx,50%) var(--my,0%), rgba(212,175,106,.15), transparent 60%);
  transition: background-position .3s;
}
.cta-band { position: relative; overflow: hidden; }
.cta-band::after {
  content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--gold-500), var(--navy-500), var(--gold-500), transparent);
  background-size: 200% auto; animation: ctaLineFlow 4s linear infinite;
}
@keyframes ctaLineFlow {
  0% { background-position: 0% center; }
  100% { background-position: 200% center; }
}

/* ---------- 分区渐变分隔线 ---------- */
.section { position: relative; }
.section::before {
  content: ""; position: absolute; top: 0; left: 50%; width: 0; height: 3px;
  background: linear-gradient(90deg, transparent, var(--gold-400), var(--navy-500), var(--gold-400), transparent);
  transform: translateX(-50%); border-radius: 99px;
  transition: width 1s ease .2s;
}
.section.in::before { width: 60%; }

/* ---------- 暗色模式适配 ---------- */
html[data-theme="dark"] .hero-float {
  background: rgba(22,38,29,.85);
  border-color: rgba(240,224,182,.15);
}
html[data-theme="dark"] .hero-particles .particle {
  background: rgba(240,224,182,.5);
  box-shadow: 0 0 6px rgba(212,175,106,.4);
}
html[data-theme="dark"] .tool-card::before {
  background: linear-gradient(90deg, transparent, rgba(240,224,182,.08), transparent);
}

/* ---------- reduced-motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .hero::before, .hero-beam, .hero-particles .particle, .text-gradient-gold,
  .badge-gold, .btn-gold::after, .trust-bar.in .trust-item .ti,
  .tool-card::before, .plan-demo::before, .cta-band::after, .section::before {
    animation: none !important; transition: none !important;
  }
  .hero-particles { display: none; }
}


