/* ============================================================
   奢华暗色编辑 / Editorial Dark Luxury · Design Tokens
   暖黑 + 香槟金 + 深酒红，私人财富报告质感
   ============================================================ */
:root{
  /* —— 色彩 —— */
  --bg:#14110d;            /* 暖黑主背景 */
  --bg-2:#16130e;          /* 暖黑次背景（渐变用） */
  --panel:#1e1a14;         /* 面板略浅 */
  --panel-2:#221d16;       /* 面板更浅（表头/卡片） */
  --ink:#d6cdbd;           /* 正文暖灰 */
  --ink-dim:#968c79;       /* 次要文字 */
  --ink-faint:#6f6755;     /* 最弱文字 */
  --gold:#c9a96a;          /* 香槟金 主强调 */
  --gold-bright:#e0c489;   /* 亮金（hover/标题点缀） */
  --gold-deep:#9c7f4a;     /* 暗金 */
  --wine:#7a3b3b;          /* 深酒红 次强调 */
  --wine-bright:#a85656;
  --green:#5a6b4a;         /* 暗绿（估值熊段） */
  --line:#3a3328;          /* 细金线 */
  --line-soft:#2a2620;     /* 更淡的分隔线 */

  /* —— 排版 —— */
  --display:'Cormorant Garamond','Noto Serif SC',Georgia,'Times New Roman',serif;
  --serif:'Spectral','Noto Serif SC',Georgia,'Songti SC',serif;
  --meta:'Libre Franklin','Noto Serif SC',-apple-system,'Helvetica Neue',sans-serif;

  --measure:720px;         /* 正文版心 */
}

*{box-sizing:border-box;margin:0;padding:0}
html{ -webkit-text-size-adjust:100%; }

body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--serif);
  font-size:17px;
  line-height:1.85;
  font-weight:400;
  letter-spacing:.005em;
  overflow-x:hidden;             /* 双保险：杜绝横向滚动 */
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  position:relative;
}

/* —— 暖黑渐变 + 极淡金色光晕氛围（纯 CSS，固定不滚动） —— */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(1100px 720px at 82% -8%, rgba(201,169,106,.10), transparent 60%),
    radial-gradient(900px 640px at -8% 18%, rgba(122,59,59,.08), transparent 58%),
    radial-gradient(1200px 900px at 50% 120%, rgba(201,169,106,.05), transparent 60%),
    linear-gradient(170deg, var(--bg-2) 0%, var(--bg) 48%, #110e0a 100%);
}
/* 极淡纹理颗粒，避免纯色平铺的廉价感 */
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.40;
  background-image:radial-gradient(rgba(214,205,189,.020) 1px, transparent 1px);
  background-size:3px 3px;
}

/* ============================================================
   通用容器与分隔
   ============================================================ */
.wrap{ width:100%; max-width:var(--measure); margin:0 auto; padding:0 28px; }

.hairline{ height:1px; background:linear-gradient(90deg, transparent, var(--line) 12%, var(--line) 88%, transparent); border:0; }

/* 细金线小标签（kicker / 元数据通用样式） */
.eyebrow{
  font-family:var(--meta);
  font-weight:600;
  font-size:11px;
  letter-spacing:.30em;
  text-transform:uppercase;
  color:var(--gold);
}

/* ============================================================
   1. 顶部导航壳
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:50;
  backdrop-filter:saturate(140%) blur(10px);
  background:linear-gradient(180deg, rgba(20,17,13,.92), rgba(20,17,13,.66));
  border-bottom:1px solid var(--line-soft);
}
.nav-inner{
  max-width:1180px; margin:0 auto; padding:16px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.brand{ display:flex; align-items:baseline; gap:10px; text-decoration:none; }
.brand .mark{
  font-family:var(--display); font-weight:600; font-size:23px; color:var(--gold);
  letter-spacing:.04em; line-height:1;
}
.brand .sub{
  font-family:var(--meta); font-weight:500; font-size:10px; letter-spacing:.34em;
  text-transform:uppercase; color:var(--ink-dim);
}
.nav-actions{ display:flex; align-items:center; gap:6px; }
.icon-btn{
  width:38px; height:38px; display:grid; place-items:center;
  border:1px solid transparent; border-radius:50%;
  background:transparent; color:var(--ink-dim); cursor:pointer;
  transition:color .35s ease, border-color .35s ease, background .35s ease;
}
.icon-btn:hover{ color:var(--gold-bright); border-color:var(--line); background:rgba(201,169,106,.06); }
.icon-btn svg{ width:18px; height:18px; display:block; }
.icon-btn.saved{ color:var(--gold); }

/* ============================================================
   载入 staggered 渐显
   ============================================================ */
.reveal{ opacity:0; transform:translateY(16px); animation:rise .95s cubic-bezier(.22,.61,.36,1) forwards; }
@keyframes rise{ to{ opacity:1; transform:none; } }
/* 估值带：只位移入场、opacity 恒 1（关键数据默认可见，不随 .reveal 的 opacity:0 在动画延迟期空白；见 static-html-demo-pitfalls 坑2） */
@keyframes valRise{ from{ transform:translateY(12px); } to{ transform:none; } }
html[data-hydrated] .valbox{ animation:valRise .6s cubic-bezier(.22,.61,.36,1) .15s both; }
/* 错开延迟 */
.d1{animation-delay:.05s}.d2{animation-delay:.16s}.d3{animation-delay:.27s}
.d4{animation-delay:.38s}.d5{animation-delay:.49s}.d6{animation-delay:.60s}
.d7{animation-delay:.71s}.d8{animation-delay:.82s}.d9{animation-delay:.93s}

/* 标题中线条的优雅描绘 */
.rule-grow{ transform-origin:left center; animation:grow 1.1s cubic-bezier(.22,.61,.36,1) .30s both; }
@keyframes grow{ from{ transform:scaleX(0); opacity:0; } to{ transform:scaleX(1); opacity:1; } }

/* ============================================================
   2. 文章头
   ============================================================ */
header.article-head{ padding:74px 0 48px; }

.kicker-row{ display:flex; align-items:center; gap:14px; margin-bottom:30px; }
.kicker-row .dash{ width:34px; height:1px; background:var(--gold-deep); }

h1.title{
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(38px, 6.4vw, 58px);
  line-height:1.06;
  letter-spacing:-.012em;
  color:#efe7d6;
  margin:0 0 8px;
  text-wrap:balance;
}
h1.title em{ font-style:italic; color:var(--gold-bright); font-weight:500; }

.title-foot{
  font-family:var(--display); font-style:italic; font-weight:500;
  font-size:21px; color:var(--ink-dim); margin-bottom:34px; letter-spacing:.01em;
}

/* 标的行 */
.ticker-row{ display:flex; align-items:center; gap:16px; margin:30px 0 22px; flex-wrap:wrap; }
.logo-f{
  flex:0 0 auto;
  width:56px; height:56px; border-radius:50%;
  display:grid; place-items:center;
  font-family:var(--display); font-weight:600; font-size:28px; color:#1a160f;
  background:radial-gradient(circle at 32% 28%, var(--gold-bright), var(--gold) 55%, var(--gold-deep) 100%);
  box-shadow:0 0 0 1px rgba(201,169,106,.35), 0 8px 26px rgba(201,169,106,.16);
  letter-spacing:0;
}
.ticker-meta .co{ font-family:var(--serif); font-weight:600; font-size:19px; color:var(--ink); line-height:1.2; }
.ticker-meta .ex{
  font-family:var(--meta); font-weight:500; font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-dim); margin-top:3px;
}
.ticker-meta .ex b{ color:var(--gold); font-weight:600; }

/* 署名 + 评级行 */
.byline-row{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  flex-wrap:wrap; padding-top:22px; margin-top:6px;
  border-top:1px solid var(--line-soft);
}
.byline{
  font-family:var(--meta); font-weight:400; font-size:12.5px; letter-spacing:.06em;
  color:var(--ink-dim);
}
.byline .sep{ color:var(--ink-faint); margin:0 9px; }
.byline b{ color:var(--ink); font-weight:500; }

/* 评级徽章：金色描边 */
.rating-badge{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--meta); font-weight:500; font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold-bright);
  padding:8px 18px; border:1px solid var(--gold-deep); border-radius:2px;
  background:linear-gradient(180deg, rgba(201,169,106,.10), rgba(201,169,106,.03));
}
.rating-badge .dot{ width:6px; height:6px; border-radius:50%; background:var(--gold); box-shadow:0 0 9px var(--gold); }
.rating-badge .label{ font-family:var(--display); font-style:italic; font-size:17px; letter-spacing:.02em; text-transform:none; }

/* ============================================================
   3. 关键数据 + 估值可视化
   ============================================================ */
.metrics{ padding:8px 0 4px; }
.metric-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  border:1px solid var(--line-soft); border-radius:3px; overflow:hidden;
  background:linear-gradient(180deg, var(--panel), rgba(30,26,20,.55));
}
.metric{ padding:24px 26px; border-right:1px solid var(--line-soft); }
.metric:last-child{ border-right:0; }
.metric .k{
  font-family:var(--meta); font-weight:500; font-size:10.5px; letter-spacing:.20em;
  text-transform:uppercase; color:var(--ink-dim); margin-bottom:12px; display:block;
}
.metric .v{ font-family:var(--display); font-weight:500; font-size:38px; line-height:1; color:#efe7d6; letter-spacing:.005em; }
.metric .v .cur{ font-size:21px; color:var(--gold); vertical-align:top; margin-right:2px; }
.metric.accent .v{ color:var(--gold-bright); }
.metric .note{ font-family:var(--meta); font-size:11px; color:var(--ink-faint); margin-top:9px; letter-spacing:.04em; }

/* —— 估值带（纯 CSS） —— */
.valbox{ margin-top:18px; padding:30px 30px 26px; border:1px solid var(--line-soft); border-radius:3px; background:rgba(30,26,20,.42); }
.valbox-head{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:30px; flex-wrap:wrap; }
.valbox-head .t{ font-family:var(--display); font-style:italic; font-size:22px; color:var(--ink); }
.valbox-head .cur-now{ font-family:var(--meta); font-size:11.5px; letter-spacing:.10em; color:var(--ink-dim); }
.valbox-head .cur-now b{ font-family:var(--display); font-style:normal; font-size:18px; color:var(--gold-bright); letter-spacing:0; }

/* 轨道范围 6 → 27（含两端留白） */
.val-track{ position:relative; height:14px; margin:46px 0 8px; }
.val-seg{ position:absolute; top:0; height:14px; border-radius:2px; }
/* 区间百分比按 6..27 = 21 跨度换算：(x-6)/21*100 */
.seg-bear{ left:9.52%;  width:14.29%; background:linear-gradient(90deg, rgba(90,107,74,.30), rgba(90,107,74,.62)); }  /* 8-11 */
.seg-base{ left:33.33%; width:19.05%; background:linear-gradient(90deg, rgba(201,169,106,.42), rgba(201,169,106,.78)); } /* 13-17 */
.seg-bull{ left:71.43%; width:19.05%; background:linear-gradient(90deg, rgba(122,59,59,.38), rgba(168,86,86,.66)); }   /* 21-25 */
.val-track .gap{ position:absolute; top:6px; height:2px; background:var(--line-soft); }
.gap-1{ left:23.81%; width:9.52%; }   /* 11→13 */
.gap-2{ left:52.38%; width:19.05%; }  /* 17→21 */

/* 当前价游标 14.93 → (14.93-6)/21=42.52% */
.val-marker{ position:absolute; top:-30px; bottom:-30px; left:42.52%; width:1px; background:linear-gradient(180deg, transparent, var(--gold-bright) 18%, var(--gold-bright) 82%, transparent); transform:translateX(-.5px); }
.val-marker::before{ content:""; position:absolute; top:14px; left:50%; width:11px; height:11px; border-radius:50%; background:var(--gold-bright); transform:translateX(-50%) rotate(45deg); box-shadow:0 0 12px rgba(224,196,137,.7); }
.val-flag{
  position:absolute; top:-30px; left:42.52%; transform:translateX(-50%);
  font-family:var(--meta); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-bright); white-space:nowrap; text-align:center;
}
.val-flag b{ display:block; font-family:var(--display); font-style:italic; font-size:18px; letter-spacing:0; text-transform:none; color:var(--gold-bright); }

/* 刻度标签 */
.val-scale{ position:relative; height:42px; margin-top:14px; font-family:var(--meta); }
.vs{ position:absolute; transform:translateX(-50%); text-align:center; }
.vs .num{ font-family:var(--display); font-size:17px; color:var(--ink); line-height:1; }
.vs .cap{ font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; margin-top:6px; }
.vs.bear .cap{ color:var(--green); }
.vs.base .cap{ color:var(--gold); }
.vs.bull .cap{ color:var(--wine-bright); }
/* 锚点中心：bear 中点 9.5→16.67% / base 15→42.86% / bull 23→80.95% */
.vs.bear{ left:16.67%; } .vs.base{ left:42.86%; } .vs.bull{ left:80.95%; }
.val-legend{ font-family:var(--meta); font-size:11px; color:var(--ink-faint); letter-spacing:.04em; margin-top:6px; line-height:1.7; }
.val-legend b{ color:var(--gold); font-weight:600; }

/* ============================================================
   4. 摘要 pull-quote
   ============================================================ */
.summary{ margin:54px 0 8px; padding:6px 0 6px 30px; border-left:2px solid var(--gold); position:relative; }
.summary .lead-lab{ font-family:var(--meta); font-weight:600; font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:16px; }
.summary p{ font-family:var(--display); font-style:italic; font-weight:500; font-size:clamp(22px,3.2vw,28px); line-height:1.5; color:#e7decd; letter-spacing:.005em; text-wrap:pretty; }
.summary p b{ font-style:italic; color:var(--gold-bright); font-weight:600; }

/* ============================================================
   5. 正文
   ============================================================ */
article{ padding:30px 0 10px; }

/* H2 章节标题：金色编号 + 上方细金线 + 优雅衬线 */
.sec{ margin-top:64px; }
.sec:first-child{ margin-top:34px; }
.sec > .toprule{ height:1px; background:var(--line); margin-bottom:26px; }
.sec h2{ display:flex; align-items:baseline; gap:18px; font-family:var(--display); font-weight:500; font-size:clamp(28px,3.6vw,36px); line-height:1.12; color:#ece3d1; letter-spacing:-.005em; }
.sec h2 .no{ font-family:var(--display); font-style:italic; font-size:20px; color:var(--gold); flex:0 0 auto; line-height:1.5; }

article p{ margin:20px 0; color:var(--ink); }
article p strong, article li strong{ color:var(--gold-bright); font-weight:600; }

/* 首段 drop cap 首字下沉（仅第一章首段） */
.sec.first-sec .lead-para::first-letter{
  float:left; font-family:var(--display); font-weight:600; font-style:italic;
  font-size:84px; line-height:.78; padding:8px 14px 0 0; color:var(--gold);
}

/* 列表 */
article ul{ margin:18px 0; padding-left:0; list-style:none; }
article li{ position:relative; padding-left:24px; margin:11px 0; color:var(--ink); }
article li::before{ content:""; position:absolute; left:4px; top:.85em; width:6px; height:1px; background:var(--gold); }

/* —— 表格：优雅细金线、深底、金色表头小字 —— */
.table-wrap{ margin:30px 0; overflow-x:auto; border:1px solid var(--line-soft); border-radius:3px; background:rgba(30,26,20,.40); -webkit-overflow-scrolling:touch; }
table{ width:100%; border-collapse:collapse; min-width:440px; font-size:15px; }
caption{ caption-side:top; text-align:left; font-family:var(--meta); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); padding:14px 18px 0; }
thead th{
  font-family:var(--meta); font-weight:600; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold); text-align:left; padding:15px 18px; background:var(--panel-2);
  border-bottom:1px solid var(--line); white-space:nowrap;
}
tbody td{ padding:13px 18px; border-bottom:1px solid var(--line-soft); color:var(--ink); font-family:var(--serif); vertical-align:top; }
tbody tr:last-child td{ border-bottom:0; }
tbody tr:hover td{ background:rgba(201,169,106,.045); }
td strong, th strong{ color:var(--gold-bright); font-weight:600; }
/* 右对齐数字列 */
td.num, th.num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
/* 结论标记色 */
.pass{ color:var(--gold-bright); font-weight:600; }
.fail{ color:var(--wine-bright); font-weight:600; }

/* ============================================================
   6. 提及标的
   ============================================================ */
.section-label{ font-family:var(--meta); font-weight:600; font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:22px; display:flex; align-items:center; gap:14px; }
.section-label::after{ content:""; flex:1; height:1px; background:var(--line-soft); }

.mention-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.mention{ display:flex; align-items:center; gap:14px; padding:18px 20px; border:1px solid var(--line-soft); border-radius:3px; background:rgba(30,26,20,.42); text-decoration:none; transition:border-color .4s ease, transform .4s ease, background .4s ease; }
.mention:hover{ border-color:var(--gold-deep); transform:translateY(-3px); background:rgba(201,169,106,.05); }
.mention .m-logo{ flex:0 0 auto; width:42px; height:42px; border-radius:50%; display:grid; place-items:center; font-family:var(--display); font-weight:600; font-size:16px; color:var(--gold-bright); border:1px solid var(--gold-deep); background:linear-gradient(180deg, rgba(201,169,106,.10), transparent); }
.mention .m-name{ font-family:var(--serif); font-weight:600; font-size:15px; color:var(--ink); line-height:1.25; }
.mention .m-tk{ font-family:var(--meta); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-dim); margin-top:3px; }

/* ============================================================
   7. 标签行
   ============================================================ */
.tag-wrap{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.tag{ font-family:var(--meta); font-weight:500; font-size:11.5px; letter-spacing:.10em; color:var(--ink-dim); padding:7px 15px; border:1px solid var(--line); border-radius:999px; background:transparent; transition:color .35s ease, border-color .35s ease; }
.tag::before{ content:"# "; color:var(--gold-deep); }
.tag:hover{ color:var(--gold-bright); border-color:var(--gold-deep); }

/* ============================================================
   8. 页脚
   ============================================================ */
footer{ margin-top:78px; border-top:1px solid var(--line); }
.footer-inner{ max-width:var(--measure); margin:0 auto; padding:46px 28px 64px; }
.related{ margin-bottom:40px; }
.related-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:20px; }
.rel-card{ display:block; padding:22px; border:1px solid var(--line-soft); border-radius:3px; text-decoration:none; background:rgba(30,26,20,.40); transition:border-color .4s ease, background .4s ease; }
.rel-card:hover{ border-color:var(--gold-deep); background:rgba(201,169,106,.045); }
.rel-card .rk{ font-family:var(--meta); font-size:10px; letter-spacing:.20em; text-transform:uppercase; color:var(--gold); }
.rel-card .rt{ font-family:var(--display); font-size:21px; color:var(--ink); margin-top:9px; line-height:1.22; }
.rel-card .rt em{ font-style:italic; color:var(--gold-bright); }

.foot-brand{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:30px; border-top:1px solid var(--line-soft); }
.foot-brand .fb-mark{ font-family:var(--display); font-weight:600; font-size:22px; color:var(--gold); letter-spacing:.04em; }
.foot-brand .fb-mark span{ font-family:var(--meta); font-weight:500; font-size:10px; letter-spacing:.28em; text-transform:uppercase; color:var(--ink-dim); margin-left:10px; }
.foot-note{ font-family:var(--meta); font-size:11px; letter-spacing:.06em; color:var(--ink-faint); line-height:1.7; }

/* ============================================================
   评级 7 档配色（[data-tone]）：适配暖黑底 → 亮色文字 + 描边 + 极淡填充
   hydrate 按中文评级 → core.ratingTone() 给 .rating-badge .label 设 data-tone；
   样张评级"观察"=watch（静态已写死 data-tone="watch"，故无 ?r= 时仍是原香槟金外观，视觉一致）。
   ============================================================ */
/* 标签文字色 */
.rating-badge .label[data-tone="strong-pos"]{ color:#d9ecbb; }   /* 强烈看多·最亮鎏金绿 */
.rating-badge .label[data-tone="pos"]       { color:#bcd49a; }   /* 看多·沉静橄榄金绿 */
.rating-badge .label[data-tone="neu"]       { color:#cabfa8; }   /* 中性·暖羊皮灰 */
.rating-badge .label[data-tone="watch"]     { color:var(--gold-bright); } /* 观察·香槟金（=默认外观） */
.rating-badge .label[data-tone="neg"]       { color:#dca291; }   /* 看空·浅玫瑰木红 */
.rating-badge .label[data-tone="strong-neg"]{ color:#cd8079; }   /* 强烈看空·深酒红玫 */
.rating-badge .label[data-tone="avoid"]     { color:#e8786c; }   /* 回避·警示绯红 */
/* 徽章描边 + 填充 + 圆点（随标签 tone 联动；watch 复刻默认 gold 外观以保样张一致） */
.rating-badge:has(.label[data-tone="strong-pos"]){ border-color:#8fa86a; background:linear-gradient(180deg, rgba(143,168,106,.14), rgba(143,168,106,.04)); }
.rating-badge:has(.label[data-tone="strong-pos"]) .dot{ background:#b6cf86; box-shadow:0 0 9px rgba(182,207,134,.85); }
.rating-badge:has(.label[data-tone="pos"]){ border-color:#73885a; background:linear-gradient(180deg, rgba(115,136,90,.12), rgba(115,136,90,.03)); }
.rating-badge:has(.label[data-tone="pos"]) .dot{ background:#9bb574; box-shadow:0 0 9px rgba(155,181,116,.7); }
.rating-badge:has(.label[data-tone="neu"]){ border-color:var(--line); background:linear-gradient(180deg, rgba(150,140,121,.10), rgba(150,140,121,.03)); }
.rating-badge:has(.label[data-tone="neu"]) .dot{ background:var(--ink-dim); box-shadow:none; }
.rating-badge:has(.label[data-tone="watch"]){ border-color:var(--gold-deep); background:linear-gradient(180deg, rgba(201,169,106,.10), rgba(201,169,106,.03)); }
.rating-badge:has(.label[data-tone="watch"]) .dot{ background:var(--gold); box-shadow:0 0 9px var(--gold); }
.rating-badge:has(.label[data-tone="neg"]){ border-color:#8a4a44; background:linear-gradient(180deg, rgba(168,86,86,.12), rgba(168,86,86,.03)); }
.rating-badge:has(.label[data-tone="neg"]) .dot{ background:#c98a82; box-shadow:0 0 9px rgba(201,138,130,.65); }
.rating-badge:has(.label[data-tone="strong-neg"]){ border-color:var(--wine); background:linear-gradient(180deg, rgba(122,59,59,.18), rgba(122,59,59,.05)); }
.rating-badge:has(.label[data-tone="strong-neg"]) .dot{ background:var(--wine-bright); box-shadow:0 0 9px rgba(168,86,86,.75); }
.rating-badge:has(.label[data-tone="avoid"]){ border-color:#a83b3b; background:linear-gradient(180deg, rgba(168,59,59,.26), rgba(168,59,59,.10)); }
.rating-badge:has(.label[data-tone="avoid"]) .dot{ background:#e8786c; box-shadow:0 0 11px rgba(232,120,108,.9); }

/* ============================================================
   正文 data 模式裸标签（content_html 整块替换后为裸 h2/h3/p/ul/table…）
   复刻 .sec 的奢华编辑风：金色 H2、上方细金线、衬线 H3、金色正文强调、金色链接。
   表格在 hydrate 里被包进 .table-wrap，直接复用上方表格 CSS。
   ============================================================ */
.report-body > :first-child{ margin-top:34px; }
.report-body h2{
  margin-top:64px; padding-top:26px; border-top:1px solid var(--line);
  font-family:var(--display); font-weight:500; font-size:clamp(28px,3.6vw,36px);
  line-height:1.12; color:#ece3d1; letter-spacing:-.005em;
}
.report-body > h2:first-child{ margin-top:34px; }
.report-body h3{
  margin-top:40px; font-family:var(--display); font-style:italic; font-weight:500;
  font-size:clamp(21px,2.6vw,25px); line-height:1.2; color:var(--gold-bright); letter-spacing:.005em;
}
.report-body p{ margin:20px 0; color:var(--ink); }
.report-body p strong, .report-body li strong{ color:var(--gold-bright); font-weight:600; }
.report-body a, .prose-digest a{ color:var(--gold-bright); text-decoration:none; border-bottom:1px solid var(--gold-deep); transition:color .35s ease, border-color .35s ease; }
.report-body a:hover, .prose-digest a:hover{ color:#f0dcae; border-color:var(--gold); }
/* 浅色主题 hover：暗色写死的 #f0dcae 浅金在象牙底上近乎隐形 → 改用变量金 */
html[data-theme="light"] .report-body a:hover, html[data-theme="light"] .prose-digest a:hover{ color:var(--gold); border-color:var(--gold-bright); }
.report-body hr{ border:0; height:1px; background:linear-gradient(90deg, transparent, var(--line) 12%, var(--line) 88%, transparent); margin:46px 0; }
.report-body blockquote{
  margin:30px 0; padding:4px 0 4px 26px; border-left:2px solid var(--gold);
  font-family:var(--serif); font-style:italic; color:var(--ink-dim);
}
.report-body blockquote p{ font-style:italic; color:var(--ink-dim); }

/* ============================================================
   响应式
   ============================================================ */
@media (max-width:760px){
  body{ font-size:16px; }
  .wrap{ padding:0 20px; }
  header.article-head{ padding:50px 0 38px; }
  .metric-grid{ grid-template-columns:1fr; }
  .metric{ border-right:0; border-bottom:1px solid var(--line-soft); }
  .metric:last-child{ border-bottom:0; }
  .metric .v{ font-size:34px; }
  .mention-row{ grid-template-columns:1fr; }
  .related-grid{ grid-template-columns:1fr; }
  .valbox{ padding:24px 18px 22px; }
  .summary{ padding-left:22px; }
  .sec.first-sec .lead-para::first-letter{ font-size:66px; }
}
@media (max-width:380px){
  .wrap{ padding:0 16px; }
  .vs .num{ font-size:14px; }
  .vs .cap{ font-size:8.5px; letter-spacing:.10em; }
  .logo-f{ width:48px; height:48px; font-size:24px; }
}

/* 尊重 reduced-motion */
@media (prefers-reduced-motion:reduce){
  .reveal,.rule-grow{ animation:none !important; opacity:1 !important; transform:none !important; }
  *{ transition:none !important; }
}

/* ============================================================
   亮色主题（日间 · 象牙羊皮纸奢华）· html[data-theme="light"] 覆盖
   暖象牙底 + 古铜金 + 深墨棕，保留私人财富报告质感；暗色为默认、保持不变。
   浅底上反转金的明度：强调金加深为古铜（--gold-bright 最深），边框用浅金米；辉光收敛防脏。
   ============================================================ */
html[data-theme="light"]{
  --bg:#f0e9da; --bg-2:#f5efe2; --panel:#faf6ec; --panel-2:#efe7d6;
  --ink:#3c3527; --ink-dim:#7a6f5a; --ink-faint:#a99c83;
  --gold:#9c7d3e; --gold-bright:#7d5f27; --gold-deep:#c4aa68;
  --wine:#8a3838; --wine-bright:#9d4040; --green:#5c6e42;
  --line:#dccfb6; --line-soft:#e8dfcc;
}
html[data-theme="light"] body::before{
  background:
    radial-gradient(1100px 720px at 82% -8%, rgba(156,125,62,.10), transparent 60%),
    radial-gradient(900px 640px at -8% 18%, rgba(138,56,56,.05), transparent 58%),
    radial-gradient(1200px 900px at 50% 120%, rgba(156,125,62,.05), transparent 60%),
    linear-gradient(170deg, var(--bg-2) 0%, var(--bg) 48%, #ece2cf 100%);
}
html[data-theme="light"] body::after{ opacity:.5; background-image:radial-gradient(rgba(60,50,30,.025) 1px, transparent 1px); }
html[data-theme="light"] .nav{ background:linear-gradient(180deg, rgba(250,246,236,.92), rgba(250,246,236,.64)); }
/* 卡片底色：暗色写死的 rgba(30,26,20,X) panel 填充 → 浅象牙（之前只改了 --panel 变量、漏了这些写死值，是浅底卡片发脏的根因） */
html[data-theme="light"] .metric-grid{ background:linear-gradient(180deg, var(--panel), var(--panel-2)); }
html[data-theme="light"] .valbox{ background:rgba(250,246,236,.5); }
html[data-theme="light"] .table-wrap{ background:rgba(250,246,236,.55); }
html[data-theme="light"] .mention{ background:rgba(250,246,236,.5); }
html[data-theme="light"] .rel-card{ background:rgba(250,246,236,.5); }
/* 变量未覆盖的写死浅色标题/数字 → 深墨 */
html[data-theme="light"] h1.title,
html[data-theme="light"] .metric .v,
html[data-theme="light"] .sec h2,
html[data-theme="light"] .report-body h2{ color:#2c2516; }
html[data-theme="light"] .summary p{ color:#332c1d; }
/* 估值带三段：浅底加深 */
html[data-theme="light"] .seg-bear{ background:linear-gradient(90deg, rgba(92,110,66,.42), rgba(92,110,66,.74)); }
html[data-theme="light"] .seg-base{ background:linear-gradient(90deg, rgba(156,125,62,.50), rgba(156,125,62,.84)); }
html[data-theme="light"] .seg-bull{ background:linear-gradient(90deg, rgba(138,56,56,.42), rgba(157,64,64,.72)); }
/* 金色辉光在浅底显脏 → 收敛 */
html[data-theme="light"] .val-marker::before{ box-shadow:0 0 4px rgba(125,95,39,.35); }
html[data-theme="light"] .rating-badge .dot{ box-shadow:none; }
html[data-theme="light"] .logo-f{ box-shadow:0 0 0 1px rgba(156,125,62,.32), 0 6px 18px rgba(156,125,62,.18); }
html[data-theme="light"] .tag::before{ color:var(--gold); }
/* 评级 7 档 tone → 深色文字 + 深描边 + 极淡填充（每条 .dot 显式 box-shadow:none 压过暗色 :has glow） */
html[data-theme="light"] .rating-badge .label[data-tone="strong-pos"]{ color:#2f7a2f; }
html[data-theme="light"] .rating-badge .label[data-tone="pos"]{ color:#3f7a3a; }
html[data-theme="light"] .rating-badge .label[data-tone="neu"]{ color:#6b6253; }
html[data-theme="light"] .rating-badge .label[data-tone="watch"]{ color:var(--gold-bright); }
html[data-theme="light"] .rating-badge .label[data-tone="neg"]{ color:#a85436; }
html[data-theme="light"] .rating-badge .label[data-tone="strong-neg"]{ color:#9d4040; }
html[data-theme="light"] .rating-badge .label[data-tone="avoid"]{ color:#b3322a; }
html[data-theme="light"] .rating-badge:has(.label[data-tone="strong-pos"]){ border-color:#9cc77f; background:linear-gradient(180deg, rgba(47,122,47,.10), rgba(47,122,47,.03)); }
html[data-theme="light"] .rating-badge:has(.label[data-tone="strong-pos"]) .dot{ background:#3f9a3f; box-shadow:none; }
html[data-theme="light"] .rating-badge:has(.label[data-tone="pos"]){ border-color:#a6c890; background:linear-gradient(180deg, rgba(63,122,58,.09), rgba(63,122,58,.03)); }
html[data-theme="light"] .rating-badge:has(.label[data-tone="pos"]) .dot{ background:#4f9a48; box-shadow:none; }
html[data-theme="light"] .rating-badge:has(.label[data-tone="neu"]){ border-color:var(--line); background:linear-gradient(180deg, rgba(122,111,90,.08), rgba(122,111,90,.02)); }
html[data-theme="light"] .rating-badge:has(.label[data-tone="neu"]) .dot{ background:var(--ink-dim); box-shadow:none; }
html[data-theme="light"] .rating-badge:has(.label[data-tone="watch"]){ border-color:var(--gold-deep); background:linear-gradient(180deg, rgba(156,125,62,.12), rgba(156,125,62,.03)); }
html[data-theme="light"] .rating-badge:has(.label[data-tone="watch"]) .dot{ background:var(--gold); box-shadow:none; }
html[data-theme="light"] .rating-badge:has(.label[data-tone="neg"]){ border-color:#cf9a7a; background:linear-gradient(180deg, rgba(168,84,54,.10), rgba(168,84,54,.03)); }
html[data-theme="light"] .rating-badge:has(.label[data-tone="neg"]) .dot{ background:#a85436; box-shadow:none; }
html[data-theme="light"] .rating-badge:has(.label[data-tone="strong-neg"]){ border-color:var(--wine-bright); background:linear-gradient(180deg, rgba(138,56,56,.12), rgba(138,56,56,.04)); }
html[data-theme="light"] .rating-badge:has(.label[data-tone="strong-neg"]) .dot{ background:#9d4040; box-shadow:none; }
html[data-theme="light"] .rating-badge:has(.label[data-tone="avoid"]){ border-color:#cf6a5a; background:linear-gradient(180deg, rgba(179,50,42,.12), rgba(179,50,42,.05)); }
html[data-theme="light"] .rating-badge:has(.label[data-tone="avoid"]) .dot{ background:#b3322a; box-shadow:none; }
/* 主题按钮图标显隐（暗色显示太阳=切白天 / 亮色显示月亮=切黑夜） */
.theme-toggle .ico-sun{ display:block; }
.theme-toggle .ico-moon{ display:none; }
html[data-theme="light"] .theme-toggle .ico-sun{ display:none; }
html[data-theme="light"] .theme-toggle .ico-moon{ display:block; }

/* ============================================================
   站点级布局 + 多页组件（SSR lite 服务新增；上方为 09 单篇详情样式）
   ============================================================ */

/* —— 容器 —— */
.site-main{ padding:0 0 24px; }
.container{ width:100%; max-width:1180px; margin:0 auto; padding:0 28px; }
.container-narrow{ width:100%; max-width:var(--measure); margin:0 auto; padding:0 28px; }

/* —— 导航文字链接（与 09 的 .icon-btn 共存于 .nav-actions） —— */
.nav-link{
  font-family:var(--meta); font-weight:500; font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-dim); text-decoration:none;
  padding:8px 11px; border-radius:2px; transition:color .35s ease;
  white-space:nowrap; /* CJK 链接被 flex 压缩时会逐字竖排折行，必须禁断行 */
}
.nav-link:hover{ color:var(--gold-bright); }
.nav-link.is-active{ color:var(--gold); }

/* —— 账户入口（登录 / 注册）：描边 pill，与内容链接区分 —— */
.nav-auth{
  margin-left:10px; padding:7px 16px;
  border:1px solid rgba(198,164,92,.42); border-radius:999px;
  color:var(--gold); transition:color .35s ease, border-color .35s ease, background .35s ease;
}
.nav-auth:hover{ color:var(--gold-bright); border-color:rgba(198,164,92,.75); background:rgba(198,164,92,.08); }
.nav-auth.is-active{ color:var(--gold-bright); border-color:var(--gold); }
.nav-auth .na-short{ display:none; }
html[data-theme="light"] .nav-auth{ border-color:rgba(140,108,46,.45); color:#8c6c2e; }
html[data-theme="light"] .nav-auth:hover{ color:#6f5523; border-color:rgba(140,108,46,.8); background:rgba(140,108,46,.07); }
html[data-theme="light"] .nav-auth.is-active{ color:#6f5523; border-color:#8c6c2e; }

/* —— 移动端导航：7 项（5 内容链 + pill + 主题钮）挤进 375px —— */
@media (max-width:760px){
  .nav-inner{ padding:12px 14px; gap:8px; }
  .brand .sub{ display:none; }   /* 品牌副标省位 */
  .nav-actions{ gap:0; }
  .nav-link{ padding:6px 6px; font-size:11px; letter-spacing:.05em; }
  .nav-auth{ margin-left:4px; padding:5px 11px; }
  .nav-auth .na-full{ display:none; }
  .nav-auth .na-short{ display:inline; }  /* pill 缩为「登录」 */
  .icon-btn{ width:32px; height:32px; }
}

/* —— 通用页头（首页/列表/专题/搜索标题区） —— */
.page-head{ padding:60px 0 34px; }
.page-head .kicker{ display:flex; align-items:center; gap:14px; margin-bottom:22px; }
.page-head .kicker .dash{ width:34px; height:1px; background:var(--gold-deep); }
.page-title{
  font-family:var(--display); font-weight:500; font-size:clamp(34px,5.2vw,52px);
  line-height:1.08; letter-spacing:-.012em; color:#efe7d6; margin:0 0 14px; text-wrap:balance;
}
.page-title em{ font-style:italic; color:var(--gold-bright); }
.page-sub{ font-family:var(--serif); font-size:17px; line-height:1.7; color:var(--ink-dim); max-width:680px; }
html[data-theme="light"] .page-title{ color:#2c2516; }

/* —— 研报卡网格 —— */
.report-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(420px,1fr)); gap:32px; }
.report-card{
  display:flex; flex-direction:column; gap:16px; padding:32px;
  border:1px solid var(--line-soft); border-radius:4px;
  background:linear-gradient(180deg, var(--panel), var(--panel-2));
  text-decoration:none; transition:border-color .4s ease, transform .4s ease;
}
.report-card:hover{ border-color:var(--gold-deep); transform:translateY(-3px); }
.rc-top{ display:flex; align-items:center; gap:13px; min-width:0; }
.rc-logo{
  flex:0 0 auto; width:44px; height:44px; border-radius:50%; overflow:hidden;
  display:grid; place-items:center; font-family:var(--display); font-weight:600; font-size:18px;
  color:var(--gold-bright); border:1px solid var(--gold-deep);
  background:linear-gradient(180deg, rgba(201,169,106,.10), transparent);
}
.rc-logo img{ width:100%; height:100%; object-fit:cover; }
.rc-id{ flex:1 1 auto; min-width:0; }
.rc-co{ font-family:var(--serif); font-weight:600; font-size:15px; color:var(--ink); line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rc-tk{ font-family:var(--meta); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-dim); margin-top:3px; }
.rc-tk b{ color:var(--gold); font-weight:600; }
.rc-rating{
  flex:0 0 auto; align-self:flex-start; font-family:var(--meta); font-size:10px; font-weight:600;
  letter-spacing:.10em; padding:5px 11px; border-radius:999px; border:1px solid var(--line);
  color:var(--ink-dim); white-space:nowrap;
}
.rc-title{ font-family:var(--display); font-weight:500; font-size:24px; line-height:1.25; color:#ece3d1; letter-spacing:-.005em; }
.rc-summary{
  font-family:var(--serif); font-size:15px; line-height:1.75; color:var(--ink-dim); margin:0;
  display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden;
}
.rc-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:4px; font-family:var(--meta); font-size:10px; letter-spacing:.08em; color:var(--ink-faint); }
.rc-industry{ color:var(--gold-deep); text-transform:uppercase; letter-spacing:.12em; }
/* 卡片柏基分徽章（研报卡 rc-foot / 专题标的卡 co-foot 左簇共用）：band 变量配色与 /scores 同源、两主题自适配 */
.rc-foot-l, .co-foot-l{ display:inline-flex; align-items:center; gap:11px; min-width:0; }
.rc-score{ display:inline-flex; align-items:baseline; gap:5px; font-family:var(--meta); font-weight:600; font-size:10px; letter-spacing:.08em; color:var(--band, var(--gold)); white-space:nowrap; }
.rc-score::before{ content:''; align-self:center; width:5px; height:5px; border-radius:50%; background:var(--band, var(--gold)); box-shadow:0 0 6px var(--band); }
.rc-score b{ font-family:var(--display); font-size:13.5px; font-weight:600; line-height:1; }
html[data-theme="light"] .rc-title{ color:#2c2516; }
/* 评级 tone（卡片紧凑徽章；复用 09 七档语义色） */
.rc-rating[data-tone="strong-pos"]{ color:#bcd49a; border-color:#73885a; }
.rc-rating[data-tone="pos"]{ color:#bcd49a; border-color:#73885a; }
.rc-rating[data-tone="neu"]{ color:var(--ink-dim); border-color:var(--line); }
.rc-rating[data-tone="watch"]{ color:var(--gold-bright); border-color:var(--gold-deep); }
.rc-rating[data-tone="neg"]{ color:#dca291; border-color:#8a4a44; }
.rc-rating[data-tone="strong-neg"]{ color:#cd8079; border-color:var(--wine); }
.rc-rating[data-tone="avoid"]{ color:#e8786c; border-color:#a83b3b; }
html[data-theme="light"] .rc-rating[data-tone="strong-pos"]{ color:#3f7a3a; border-color:#a6c890; }
html[data-theme="light"] .rc-rating[data-tone="pos"]{ color:#3f7a3a; border-color:#a6c890; }
html[data-theme="light"] .rc-rating[data-tone="neu"]{ color:var(--ink-dim); border-color:var(--line); }
html[data-theme="light"] .rc-rating[data-tone="watch"]{ color:var(--gold-bright); border-color:var(--gold-deep); }
html[data-theme="light"] .rc-rating[data-tone="neg"]{ color:#a85436; border-color:#cf9a7a; }
html[data-theme="light"] .rc-rating[data-tone="strong-neg"]{ color:#9d4040; border-color:var(--wine-bright); }
html[data-theme="light"] .rc-rating[data-tone="avoid"]{ color:#b3322a; border-color:#cf6a5a; }

/* —— 首页研报卡：横向整行（一行一个；标识左栏 + 标题/摘要/页脚右栏；复用 reportCard 扁平 DOM，纯 CSS grid-template-areas）—— */
.report-grid.report-list{ grid-template-columns:1fr; gap:22px; }
.report-list .report-card{
  display:grid; grid-template-columns:212px minmax(0,1fr);
  grid-template-areas:"side title" "side summary" "side foot";
  column-gap:40px; row-gap:14px; align-items:start; padding:34px 40px;
}
.report-list .rc-top{ grid-area:side; flex-direction:column; align-items:flex-start; gap:15px; }
.report-list .rc-id{ flex:0 0 auto; align-self:stretch; min-width:0; }
.report-list .rc-title{ grid-area:title; }
.report-list .rc-summary{ grid-area:summary; -webkit-line-clamp:3; }
.report-list .rc-foot{ grid-area:foot; margin-top:6px; }
@media (max-width:760px){
  .report-list .report-card{ display:flex; flex-direction:column; align-items:stretch; gap:16px; padding:26px; }
  .report-list .rc-top{ flex-direction:row; align-items:center; gap:13px; }
  .report-list .rc-id{ flex:1 1 auto; align-self:auto; }
  .report-list .rc-summary{ -webkit-line-clamp:5; }
}
/* 搜索结果：摘要整段显示（解除 -webkit-box 行数截断；特异性 0,3,0 盖过上面 media 内规则） */
.report-list.search-results .rc-summary{ display:block; -webkit-line-clamp:unset; overflow:visible; }

/* —— 全站页脚（复用 09 的 footer/.foot-brand/.fb-mark/.foot-note，补宽容器 + 链接） —— */
.site-footer .footer-inner{ max-width:1180px; }
.fb-mark{ text-decoration:none; }
.foot-links{ display:flex; gap:18px; align-items:center; }
.foot-links a{ font-family:var(--meta); font-size:11px; letter-spacing:.10em; text-transform:uppercase; color:var(--ink-dim); text-decoration:none; transition:color .35s ease; }
.foot-links a:hover{ color:var(--gold-bright); }
.site-footer .foot-note{ margin-top:18px; }

/* ============ 研报正文页：面包屑 + 目录（P-B 新增） ============ */
.breadcrumb{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:30px; font-family:var(--meta); font-size:11px; letter-spacing:.08em; color:var(--ink-faint); }
.breadcrumb a{ color:var(--ink-dim); text-decoration:none; transition:color .3s ease; }
.breadcrumb a:hover{ color:var(--gold-bright); }
.breadcrumb > span:last-child{ color:var(--ink-dim); }
.bc-sep{ color:var(--line); }

.report-toc{ margin:44px 0 8px; padding:22px 26px; border:1px solid var(--line-soft); border-radius:3px; background:rgba(30,26,20,.42); }
.report-toc .toc-label{ font-family:var(--meta); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.report-toc .toc-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:4px 30px; counter-reset:toc; }
.report-toc .toc-list li{ counter-increment:toc; }
.report-toc .toc-list a{ display:block; font-family:var(--serif); font-size:14px; line-height:1.5; color:var(--ink-dim); text-decoration:none; padding:5px 0; border-bottom:1px solid transparent; transition:color .3s ease, border-color .3s ease; }
.report-toc .toc-list a::before{ content:counter(toc,decimal-leading-zero) "  "; font-family:var(--meta); font-size:11px; color:var(--gold-deep); }
.report-toc .toc-list a:hover{ color:var(--gold-bright); }
.report-toc .toc-list a.is-active{ color:var(--gold-bright); border-bottom-color:var(--gold-deep); }
html[data-theme="light"] .report-toc{ background:rgba(250,246,236,.55); }

/* ============ 研报正文页：目录侧栏化（右侧 sticky 页内导航；窄屏回正文顶部）============ */
/* 默认（窄屏 <1280）：单栏；目录用 order:-1 回到正文顶部，吃上方旧 .report-toc 横向盒子样式 */
.page-report .report-shell{ display:flex; flex-direction:column; width:100%; max-width:var(--measure); margin:0 auto; padding:0 28px; box-sizing:border-box; }
.page-report .report-aside{ order:-1; }

@media (min-width:1280px){
  .page-report{ --toc-w:212px; --toc-gap:48px; }
  /* 两栏 grid：正文列锁版心 720、左缘对齐上方 .wrap；侧栏外延到右 gutter */
  .page-report .report-shell{ display:grid; grid-template-columns:var(--measure) var(--toc-w); column-gap:var(--toc-gap); width:calc(var(--measure) + var(--toc-gap) + var(--toc-w)); max-width:none; padding:0; margin-left:max(28px, calc((100vw - var(--measure))/2)); margin-right:0; }  /* width 收缩到两栏内容(980)覆盖默认 width:100%，否则撑满父宽+margin-left 平移会溢出；不设 align-items:start —— 让 aside stretch 撑满行高，内部 .report-toc sticky 才有粘性余量 */
  .page-report .report-main{ grid-column:1; order:0; box-sizing:border-box; padding:0 28px; min-width:0; }  /* padding 28 使正文文字左缘 == 上方 .wrap */
  .page-report .report-aside{ grid-column:2; order:0; min-width:0; }
  /* 侧栏 sticky 形态：去盒子、竖排、当前章左缘金条、过长内部滚动 */
  .page-report .report-aside .report-toc{ position:sticky; top:92px; margin:0; padding:0 0 0 18px; border:0; border-left:1px solid var(--line-soft); background:transparent; max-height:calc(100vh - 124px); overflow:auto; }
  .page-report .report-aside .toc-list{ display:block; }
  .page-report .report-aside .toc-list a{ padding:7px 0 7px 12px; font-size:13.5px; border-bottom:0; border-left:2px solid transparent; }
  .page-report .report-aside .toc-list a.is-active{ color:var(--gold-bright); border-left-color:var(--gold); border-bottom-color:transparent; }
  /* 空目录（章节<2，reportToc 返回 ''）兜底：退单栏居中，不留空列 */
  .page-report .report-shell:not(:has(.report-toc)){ display:block; max-width:var(--measure); margin:0 auto; padding:0 28px; }
}

/* 正文富文本防溢出：长 inline code / 链接换行；pre 代码块横滚；img 自适应。
   正式站内容须稳健可见 —— 不靠 body overflow-x:hidden 裁切丢内容。 */
.report-body code{ font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace; font-size:.92em; overflow-wrap:anywhere; word-break:break-word; background:rgba(201,169,106,.10); padding:.1em .35em; border-radius:3px; }
.report-body pre{ max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; background:rgba(30,26,20,.5); border:1px solid var(--line-soft); border-radius:3px; padding:16px 18px; margin:24px 0; }
.report-body pre code{ overflow-wrap:normal; word-break:normal; white-space:pre; background:none; padding:0; }
.report-body a, .prose-digest a{ overflow-wrap:anywhere; }
.report-body img{ max-width:100%; height:auto; }
html[data-theme="light"] .report-body pre{ background:rgba(240,233,218,.7); }

/* ============ 研报速览区块（plain/digest 置顶，全文在下） ============ */
.digest-block{ margin:0 0 8px; padding:28px 32px; border:1px solid var(--gold-deep); border-radius:6px; background:linear-gradient(180deg, rgba(201,169,106,.07), rgba(201,169,106,.02)); }
.digest-head{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.digest-head .dash{ width:28px; height:1px; background:var(--gold-deep); }
.digest-head .eyebrow{ font-family:var(--meta); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-bright); font-weight:600; }
.digest-note{ font-family:var(--meta); font-size:11px; letter-spacing:.06em; color:var(--ink-faint); }
.prose-digest{ font-family:var(--serif); font-size:17px; line-height:1.85; color:var(--ink); }
.prose-digest p{ margin:0 0 14px; }
.prose-digest p:last-child{ margin-bottom:0; }
.prose-digest strong{ color:var(--gold-bright); font-weight:600; }
.prose-digest ul, .prose-digest ol{ margin:0 0 14px; padding-left:1.35em; }
.prose-digest li{ margin:5px 0; }
.prose-digest :is(h2,h3,h4){ font-family:var(--display); font-weight:500; font-size:19px; margin:18px 0 8px; color:var(--ink); }
.full-divider{ display:flex; align-items:center; gap:18px; margin:38px 0 26px; }
.full-divider::before, .full-divider::after{ content:''; flex:1 1 auto; height:1px; background:var(--line-soft); }
.full-divider span{ font-family:var(--meta); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-dim); white-space:nowrap; }
html[data-theme="light"] .prose-digest{ color:#2c2516; }
html[data-theme="light"] .prose-digest :is(h2,h3,h4){ color:#2c2516; }
html[data-theme="light"] .digest-block{ background:linear-gradient(180deg, rgba(201,169,106,.12), rgba(201,169,106,.04)); }

/* ============ 读者问答（只读展示，研报底部） ============ */
.qa-section{ margin-top:8px; padding:26px 0 8px; }
.qa-headline{ display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.qa-headline .dash{ width:28px; height:1px; background:var(--gold-deep); }
.qa-headline .eyebrow{ font-family:var(--meta); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-bright); font-weight:600; }
.qa-count{ font-family:var(--meta); font-size:11px; letter-spacing:.06em; color:var(--ink-faint); }
.qa-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:20px; }
.qa-item{ padding:24px 26px; border:1px solid var(--line-soft); border-radius:6px; background:rgba(30,26,20,.34); }
.qa-q{ display:flex; gap:13px; align-items:flex-start; margin-bottom:14px; }
.qa-a{ display:flex; gap:13px; align-items:flex-start; }
.qa-badge{ flex:0 0 auto; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-family:var(--meta); font-size:12px; font-weight:600; border:1px solid var(--gold-deep); color:var(--gold-bright); margin-top:3px; }
.qa-badge-a{ border-color:var(--line); color:var(--ink-dim); }
.qa-qt{ font-family:var(--display); font-weight:500; font-size:19px; line-height:1.4; color:var(--ink); }
/* 每题评分（隐性）：问题行右端淡小字 N/10，卡片悬停转金；有理由时 title 悬停可见 */
.qa-score{ flex:0 0 auto; margin-left:auto; align-self:flex-start; margin-top:5px; font-family:var(--meta); font-size:10.5px; letter-spacing:.06em; color:var(--ink-faint); white-space:nowrap; transition:color .3s ease; }
.qa-score b{ font-family:var(--display); font-weight:600; font-size:14px; }
.qa-score .den{ opacity:.75; }
.qa-item:hover .qa-score{ color:var(--gold); }
.qa-at{ font-size:15px; flex:1 1 auto; min-width:0; }
.qa-date{ margin-top:12px; font-family:var(--meta); font-size:10px; letter-spacing:.08em; color:var(--ink-faint); text-align:right; }
html[data-theme="light"] .qa-item{ background:rgba(250,246,236,.5); }
html[data-theme="light"] .qa-qt{ color:#2c2516; }
/* 问答按投资框架分组（柏基/巴菲特/Serenity + 读者提问），框架色点经 inline --qa-accent 注入 */
.qa-group{ margin-bottom:30px; }
.qa-group:last-child{ margin-bottom:0; }
.qa-group-head{ display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.qa-dot{ flex:0 0 auto; width:9px; height:9px; border-radius:50%; background:var(--qa-accent, var(--gold)); }
.qa-group-title{ font-family:var(--display); font-weight:500; font-size:18px; color:var(--ink); letter-spacing:.01em; }
.qa-group-n{ font-family:var(--meta); font-size:10.5px; letter-spacing:.06em; color:var(--ink-faint); }
.qa-group-blurb{ margin:0 0 16px; padding-left:19px; font-family:var(--serif); font-size:13.5px; line-height:1.6; color:var(--ink-dim); }
html[data-theme="light"] .qa-group-title{ color:#2c2516; }

/* ============ 首页：Hero + 精选专题 + 区块头（P-C 新增） ============ */
.home-hero{ padding:84px 0 56px; border-bottom:1px solid var(--line-soft); }
.home-hero .kicker{ display:flex; align-items:center; gap:14px; margin-bottom:24px; }
.home-hero .kicker .dash{ width:34px; height:1px; background:var(--gold-deep); }
.hero-title{ font-family:var(--display); font-weight:500; font-size:clamp(38px,6vw,68px); line-height:1.06; letter-spacing:-.01em; color:#ece3d1; max-width:15ch; }
.hero-title em{ font-style:italic; color:var(--gold-bright); }
.hero-lead{ margin-top:24px; font-family:var(--serif); font-size:clamp(16px,2vw,19px); line-height:1.7; color:var(--ink-dim); max-width:54ch; }
.hero-stats{ display:flex; flex-wrap:wrap; gap:32px; margin-top:40px; font-family:var(--meta); font-size:13px; letter-spacing:.04em; color:var(--ink-faint); align-items:baseline; }
.hero-stats b{ font-family:var(--display); font-style:italic; font-size:26px; color:var(--gold); margin-right:7px; }
.home-hero .search-box{ margin:32px 0 4px; max-width:560px; }
html[data-theme="light"] .hero-title{ color:#2c2516; }

.home-section{ padding:72px 0 8px; }
.section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.section-more{ font-family:var(--meta); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-dim); text-decoration:none; transition:color .3s ease; white-space:nowrap; }
.section-more:hover{ color:var(--gold-bright); }

.topic-grid{ display:grid; grid-template-columns:1fr; gap:20px; margin-top:30px; }
.topic-card{ display:flex; flex-direction:column; gap:14px; padding:34px 36px; border:1px solid var(--line-soft); border-radius:4px; background:rgba(30,26,20,.42); text-decoration:none; transition:border-color .4s ease, transform .4s ease, background .4s ease; }
.topic-card:hover{ border-color:var(--gold-deep); transform:translateY(-2px); }
.tc-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.tc-title{ font-family:var(--display); font-weight:500; font-size:25px; line-height:1.18; color:var(--ink); letter-spacing:-.005em; }
.topic-card:hover .tc-title{ color:var(--gold-bright); }
.tc-count{ flex:0 0 auto; font-family:var(--meta); font-size:10.5px; letter-spacing:.08em; color:var(--gold); white-space:nowrap; }
.tc-sub{ font-family:var(--serif); font-size:15px; line-height:1.7; color:var(--ink-dim); }
html[data-theme="light"] .topic-card{ background:rgba(250,246,236,.5); }
html[data-theme="light"] .tc-title{ color:#2c2516; }

@media (max-width:760px){
  .container, .container-narrow{ padding:0 20px; }
  .page-head{ padding:44px 0 28px; }
  .report-grid{ grid-template-columns:1fr; }
  .report-card{ padding:26px; }
  .topic-card{ padding:26px 22px; }
  .home-section{ padding:48px 0 8px; }
  .report-toc{ padding:18px; }
  .report-toc .toc-list{ grid-template-columns:1fr; }
  .home-hero{ padding:56px 0 40px; }
  .topic-grid{ grid-template-columns:1fr; }
  .hero-stats{ gap:22px; }
}

/* grid item 防内容撑破轨道：grid 的 1fr/minmax 的 min 默认为 auto(=item min-content)，
   会被卡片内容撑大导致整行溢出。min-width:0 让卡片收缩到轨道，长标题 overflow-wrap 换行。 */
.report-card, .topic-card, .rel-card{ min-width:0; }
.rc-title, .tc-title, .rel-card .rt{ overflow-wrap:anywhere; }

/* ============ 列表页：分页导航（P-D 新增） ============ */
.pagination{ display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; margin:56px 0 24px; font-family:var(--meta); }
.pg-edge{ font-size:12px; letter-spacing:.06em; color:var(--ink-dim); text-decoration:none; padding:8px 16px; border:1px solid var(--line-soft); border-radius:3px; transition:color .3s ease, border-color .3s ease; }
.pg-edge:hover{ color:var(--gold-bright); border-color:var(--gold-deep); }
.pg-edge.is-disabled{ opacity:.32; pointer-events:none; }
.pg-nums{ display:flex; align-items:center; gap:4px; }
.pg-num{ min-width:32px; text-align:center; font-size:12px; color:var(--ink-dim); text-decoration:none; padding:7px 9px; border-radius:3px; transition:color .3s ease, background .3s ease; }
.pg-num:hover{ color:var(--gold-bright); }
.pg-num.is-current{ color:var(--bg); background:var(--gold); font-weight:600; }
.pg-gap{ color:var(--ink-faint); padding:0 2px; }

/* logo 兜底：外部 logo_url 失效时 img 自删，露出首字母（避免 broken image）。 */
.logo-mark{ position:relative; }
.logo-mark .lm-fallback{ position:absolute; inset:0; display:grid; place-items:center; }
.logo-mark > img{ position:relative; z-index:1; }

/* ============ 专题正文页：hero + 产业层级 + 标的卡（P-E 新增） ============ */
.topic-page{ padding-top:30px; }

/* logo 集群（专题卡底部 + hero）：平铺小圆标 + 「+N」 */
.logo-cluster{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:6px; }
.lc-chip{
  flex:0 0 auto; width:30px; height:30px; border-radius:50%; overflow:hidden;
  display:grid; place-items:center; font-family:var(--display); font-weight:600; font-size:12px;
  color:var(--gold-bright); border:1px solid var(--gold-deep); background:var(--panel-2);
}
.lc-chip img{ width:100%; height:100%; object-fit:cover; }
.lc-more{ font-family:var(--meta); font-size:11px; letter-spacing:.08em; color:var(--ink-dim); margin-left:4px; }

/* 专题 hero */
.topic-hero{ padding:40px 0 38px; border-bottom:1px solid var(--line-soft); margin-bottom:8px; }
.th-eyebrow{ display:flex; align-items:center; gap:14px; margin-bottom:24px; }
.th-eyebrow .dash{ width:34px; height:1px; background:var(--gold-deep); }
.th-title{ font-family:var(--display); font-weight:500; font-size:clamp(34px,5.4vw,56px); line-height:1.06; letter-spacing:-.012em; color:#ece3d1; text-wrap:balance; }
.th-sub{ margin-top:16px; font-family:var(--display); font-style:italic; font-size:clamp(18px,2.6vw,24px); line-height:1.4; color:var(--ink-dim); }
.th-summary{ margin-top:22px; font-family:var(--serif); font-size:clamp(15px,1.8vw,18px); line-height:1.8; color:var(--ink-dim); }
.th-stats{ display:flex; flex-wrap:wrap; gap:30px; margin-top:32px; align-items:baseline; }
.th-stat{ display:flex; flex-direction:column; gap:3px; }
.th-stat b{ font-family:var(--display); font-style:italic; font-size:30px; line-height:1; color:var(--gold); }
.th-stat span{ font-family:var(--meta); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
.topic-hero .logo-cluster{ margin-top:30px; }
.topic-hero .lc-chip{ width:34px; height:34px; font-size:13px; }

/* position 分带头（上游 / 中游 / 下游） */
.layer-band{ display:flex; align-items:center; gap:20px; margin:58px 0 8px; }
.layer-band .lb-line{ flex:1; height:1px; background:var(--line-soft); }
.layer-band .lb-pos{ font-family:var(--meta); font-weight:600; font-size:12px; letter-spacing:.30em; color:var(--gold); white-space:nowrap; }

/* 产业层级 section */
.layer{ margin:32px 0; }
.layer-head{ display:flex; align-items:baseline; gap:16px; margin-bottom:8px; }
.layer-no{ flex:0 0 auto; font-family:var(--display); font-style:italic; font-size:18px; color:var(--gold-deep); }
.layer-name{ font-family:var(--display); font-weight:500; font-size:clamp(22px,3vw,28px); line-height:1.18; letter-spacing:-.005em; color:#ece3d1; overflow-wrap:anywhere; }
.layer-desc{ font-family:var(--serif); font-size:15px; line-height:1.8; color:var(--ink-dim); margin:0 0 22px; }

/* 标的卡网格 */
.co-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.co-card{
  display:flex; flex-direction:column; gap:10px; padding:20px 22px; min-width:0;
  border:1px solid var(--line-soft); border-left-width:2px; border-radius:4px;
  background:rgba(30,26,20,.42); text-decoration:none;
  transition:border-color .4s ease, transform .4s ease, background .4s ease;
}
a.co-card:hover{ border-color:var(--gold-deep); transform:translateY(-3px); background:rgba(201,169,106,.045); }
.co-card.is-static{ opacity:.9; }
.co-card[data-weight="core"]{ border-left-color:var(--gold); }
.co-card[data-weight="key"]{ border-left-color:var(--gold-deep); }
.co-card[data-weight="related"]{ border-left-color:var(--line); }
.co-top{ display:flex; align-items:center; gap:12px; }
.co-top .rc-rating{ align-self:center; }
.co-logo{
  flex:0 0 auto; width:40px; height:40px; border-radius:50%; overflow:hidden;
  display:grid; place-items:center; font-family:var(--display); font-weight:600; font-size:16px;
  color:var(--gold-bright); border:1px solid var(--gold-deep);
  background:linear-gradient(180deg, rgba(201,169,106,.10), transparent);
}
.co-logo img{ width:100%; height:100%; object-fit:cover; }
.co-id{ flex:1 1 auto; min-width:0; }
.co-name{ font-family:var(--serif); font-weight:600; font-size:15.5px; line-height:1.25; color:var(--ink); overflow-wrap:anywhere; }
.co-en{ font-family:var(--meta); font-size:10.5px; letter-spacing:.03em; color:var(--ink-faint); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.co-listing{ font-family:var(--meta); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); }
.co-role{ font-family:var(--serif); font-size:13.5px; line-height:1.65; color:var(--ink-dim); margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.co-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:4px; font-family:var(--meta); font-size:10.5px; letter-spacing:.06em; }
.co-rdate{ color:var(--ink-faint); }
.co-link{ color:var(--gold); letter-spacing:.08em; white-space:nowrap; }
a.co-card:hover .co-link{ color:var(--gold-bright); }
.co-none{ color:var(--ink-faint); font-style:italic; }

/* 专题页 light 覆盖（写死暗色 → 浅底深墨） */
html[data-theme="light"] .co-card{ background:rgba(250,246,236,.5); }
html[data-theme="light"] .th-title,
html[data-theme="light"] .layer-name{ color:#2c2516; }

@media (max-width:760px){
  .co-grid{ grid-template-columns:1fr; }
  .topic-hero{ padding:32px 0 28px; }
  .th-stats{ gap:22px; }
  .layer-band{ margin:42px 0 6px; }
  .layer{ margin:26px 0; }
}

/* ============ 搜索页（P-F 新增） ============ */
.search-box{ display:flex; gap:10px; margin:8px 0 44px; max-width:680px; }
.search-input{
  flex:1 1 auto; min-width:0; font-family:var(--serif); font-size:16px; color:var(--ink);
  background:rgba(30,26,20,.5); border:1px solid var(--line); border-radius:4px;
  padding:14px 18px; transition:border-color .3s ease, background .3s ease;
}
.search-input::placeholder{ color:var(--ink-faint); }
.search-input:focus{ outline:none; border-color:var(--gold-deep); background:rgba(30,26,20,.7); }
.search-submit{
  flex:0 0 auto; font-family:var(--meta); font-weight:600; font-size:12px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--bg); background:var(--gold); border:0; border-radius:4px;
  padding:0 26px; cursor:pointer; transition:background .3s ease;
}
.search-submit:hover{ background:var(--gold-bright); }
.search-empty{ font-family:var(--serif); font-size:16px; line-height:1.8; color:var(--ink-dim); padding:30px 0; }
.search-empty a{ color:var(--gold-bright); text-decoration:none; border-bottom:1px solid var(--gold-deep); }

/* 搜索高亮 mark（标题/摘要 + FTS snippet 命中） */
mark{ background:rgba(201,169,106,.24); color:var(--gold-bright); padding:0 2px; border-radius:2px; }

html[data-theme="light"] .search-input{ background:rgba(250,246,236,.7); }
html[data-theme="light"] .search-input:focus{ background:#fff; }
html[data-theme="light"] .search-submit{ color:#faf6ec; }
html[data-theme="light"] mark{ background:rgba(156,125,62,.20); }

/* ============ 柏基成长分（顶部 KPI 卡 + /scores 排行榜，P-G 新增） ============ */
/* 评级带配色：只作用于本特性的 [data-band] 元素（评分卡 / 榜单行 / band-pill）。暖黑奢华调，
   卓越→弱＝金绿→香槟金→暖铜→沙玫→酒玫（质量自高到低）。其余元素用 data-tone，互不干扰。 */
[data-band="elite"]{  --band:#b9cf86; }
[data-band="strong"]{ --band:#e0c489; }
[data-band="medium"]{ --band:#c79a5e; }
[data-band="weak"]{   --band:#cf9b8e; }
[data-band="poor"]{   --band:#c27a72; }

/* —— 顶部 KPI 卡：柏基成长分一格（复用 .metric 骨架，仅数字/评级带按 band 上色） —— */
.metric.metric-score .v b{ font-family:var(--display); font-weight:600; color:var(--band, var(--gold-bright)); }
.metric.metric-score .v .den{ font-family:var(--display); font-size:18px; color:var(--ink-faint); margin-left:3px; }
.metric.metric-score .note{ display:inline-flex; align-items:center; gap:6px; color:var(--band, var(--gold)); }
.metric.metric-score .note::after{ content:''; width:6px; height:6px; border-radius:50%; background:var(--band, var(--gold)); box-shadow:0 0 8px var(--band); }

/* —— /scores 排行榜表格 —— */
.rank-wrap{ margin-top:6px; }
.rank-table{ width:100%; border-collapse:collapse; }
.rank-table thead th{
  text-align:left; font-family:var(--meta); font-weight:600; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold-bright); padding:15px 18px; white-space:nowrap;
  border-bottom:1px solid var(--line);
}
.rank-table td{ padding:18px; border-bottom:1px solid var(--line-soft); vertical-align:top; }
.rank-table tbody tr:last-child td{ border-bottom:0; }
.rank-row{ transition:background .25s ease; }
.rank-row:hover{ background:rgba(201,169,106,.05); }

.rk-pos{ width:52px; text-align:center; }
/* 行内全列顶对齐（td vertical-align:top）：排名数字收紧行框、标的 logo 顶平，首行内容同一水平线 */
.rk-no{ font-family:var(--display); font-weight:600; font-size:21px; color:var(--ink-dim); line-height:1; display:inline-block; }
.rank-table tbody tr:nth-child(-n+3) .rk-no{ color:var(--gold-bright); font-size:25px; }

/* flex 放内层 div 而非 td：td 设 display:flex 会脱离 table-cell 布局，高度不随行、底部分隔线浮起断线 */
.rk-co{ min-width:172px; }
.rk-co-cell{ display:flex; align-items:flex-start; gap:12px; }
.rk-logo{
  flex:0 0 auto; width:36px; height:36px; border-radius:50%; overflow:hidden;
  display:grid; place-items:center; font-family:var(--display); font-weight:600; font-size:15px;
  color:var(--gold-bright); border:1px solid var(--gold-deep);
  background:linear-gradient(180deg, rgba(201,169,106,.10), transparent);
}
.rk-logo img{ width:100%; height:100%; object-fit:cover; }
.rk-co-id{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.rk-co-name{ font-family:var(--display); font-size:16px; line-height:1.2; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:200px; }
.rk-co-tk{ font-family:var(--meta); font-size:11px; letter-spacing:.04em; color:var(--ink-dim); }
.rk-co-tk b{ color:var(--gold); font-weight:600; }

.rk-title{ max-width:380px; }
/* 标题 1 行 + 下方发布日恒 1 行 = 列内容高恒定 ≤ 标的列基线 → 全表行高统一不被撑高（hover title 看全题） */
.rk-title a{
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:1; overflow:hidden;
  font-family:var(--display); font-size:17px; line-height:1.35; color:var(--ink);
  text-decoration:none; transition:color .25s ease;
}
.rk-title a:hover{ color:var(--gold-bright); }
.rk-pubdate{ display:block; margin-top:4px; font-family:var(--meta); font-size:10.5px; letter-spacing:.06em; color:var(--ink-faint); }
.rk-rating{ white-space:nowrap; }
.rk-dash{ color:var(--ink-faint); }

.rk-score{ min-width:178px; }
.rk-score-head{ display:flex; align-items:baseline; gap:5px; margin-bottom:9px; }
.rk-score-num{ font-family:var(--display); font-weight:600; font-size:25px; line-height:1; color:var(--band, var(--gold-bright)); }
.rk-score-den{ font-family:var(--display); font-size:13px; color:var(--ink-faint); }
.band-pill{
  margin-left:6px; font-family:var(--meta); font-weight:600; font-size:10px; letter-spacing:.08em;
  padding:2px 9px; border-radius:11px; color:var(--band, var(--gold)); border:1px solid var(--band, var(--gold));
}
.score-bar{ height:4px; max-width:160px; background:var(--line-soft); border-radius:2px; overflow:hidden; }
.score-bar-fill{ height:100%; background:var(--band, var(--gold)); border-radius:2px; }

.rk-date{ font-family:var(--meta); font-size:12px; color:var(--ink-dim); white-space:nowrap; }
.rank-empty{ font-family:var(--serif); font-size:16px; line-height:1.85; color:var(--ink-dim); padding:36px 0; }

/* 窄屏：缩列距 + 标题列收窄（外层 .table-wrap 已可横滑兜底） */
@media (max-width:720px){
  .rank-table thead th, .rank-table td{ padding:13px 12px; }
  .rk-title{ max-width:220px; }
  .rk-title a{ font-size:15px; }
  .rk-co-name{ max-width:130px; }
}

/* —— 浅色主题覆盖：band 取深变体保证象牙底可读；表头/分隔/链接转深墨（卡片底色由 .table-wrap 浅底规则统一） —— */
html[data-theme="light"] [data-band="elite"]{  --band:#4f7a2e; }
html[data-theme="light"] [data-band="strong"]{ --band:#8a6f2e; }
html[data-theme="light"] [data-band="medium"]{ --band:#a8702a; }
html[data-theme="light"] [data-band="weak"]{   --band:#b5564a; }
html[data-theme="light"] [data-band="poor"]{   --band:#9c3f3f; }
html[data-theme="light"] .rank-table thead th{ color:#8a6f2e; border-bottom-color:rgba(44,37,22,.16); }
html[data-theme="light"] .rank-table td{ border-bottom-color:rgba(44,37,22,.08); }
html[data-theme="light"] .rank-row:hover{ background:rgba(156,125,62,.07); }
html[data-theme="light"] .rk-co-name{ color:#2c2516; }
html[data-theme="light"] .rk-title a{ color:#2c2516; }
html[data-theme="light"] .score-bar{ background:rgba(44,37,22,.10); }

/* ============ 账户 / 表单 / 定制申请 / 会员价格页（2026-06-10 新增） ============ */

/* —— 通用按钮 —— */
.btn-gold{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--meta); font-weight:600; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--bg); background:var(--gold); border:0; border-radius:4px;
  padding:14px 26px; cursor:pointer; text-decoration:none; transition:background .3s ease;
}
.btn-gold:hover{ background:var(--gold-bright); }
.btn-gold.is-disabled{ background:var(--panel-2); color:var(--ink-faint); border:1px solid var(--line); cursor:default; }
.btn-gold.is-disabled:hover{ background:var(--panel-2); }
.btn-block{ display:flex; width:100%; }
.btn-line{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--meta); font-weight:600; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-bright); background:transparent; border:1px solid var(--gold-deep); border-radius:4px;
  padding:13px 24px; cursor:pointer; text-decoration:none; transition:border-color .3s ease, color .3s ease;
}
.btn-line:hover{ border-color:var(--gold); color:var(--gold); }
.btn-quiet{ color:var(--ink-dim); border-color:var(--line); }
.btn-quiet:hover{ color:var(--wine-bright); border-color:var(--wine); }

/* —— 表单卡 —— */
.form-card{
  background:rgba(30,26,20,.5); border:1px solid var(--line); border-radius:6px;
  padding:34px 36px 30px; margin:4px 0 80px; max-width:520px;
}
.form-field{ margin-bottom:22px; }
.field-label{
  display:block; font-family:var(--meta); font-weight:600; font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold); margin-bottom:10px;
}
.field-hint{ color:var(--ink-faint); font-weight:400; letter-spacing:.12em; margin-left:6px; }
.field-input{
  width:100%; font-family:var(--serif); font-size:16px; color:var(--ink);
  background:rgba(20,17,13,.55); border:1px solid var(--line); border-radius:4px;
  padding:13px 16px; transition:border-color .3s ease, background .3s ease;
}
.field-input::placeholder{ color:var(--ink-faint); }
.field-input:focus{ outline:none; border-color:var(--gold-deep); background:rgba(20,17,13,.8); }
.field-textarea{ resize:vertical; min-height:110px; line-height:1.7; }
.form-card .btn-gold{ margin-top:6px; }
.form-foot{ font-family:var(--serif); font-size:14px; color:var(--ink-dim); margin:22px 0 0; line-height:1.7; }
.form-foot a{ color:var(--gold-bright); text-decoration:none; border-bottom:1px solid var(--gold-deep); }
.form-foot a:hover{ color:var(--gold); }

/* honeypot：移出视口（不可用 display:none，部分机器人会跳过） */
.hp-field{ position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden; }

/* —— 提示条 —— */
.notice{
  font-family:var(--serif); font-size:14.5px; line-height:1.7; border-radius:4px;
  padding:13px 16px; margin:0 0 22px; border:1px solid var(--line); color:var(--ink);
}
.notice a{ color:var(--gold-bright); text-decoration:none; border-bottom:1px solid var(--gold-deep); }
.notice-error{ border-color:rgba(168,86,86,.55); background:rgba(122,59,59,.16); color:#d8a8a8; }
.notice-ok{ border-color:rgba(201,169,106,.5); background:rgba(201,169,106,.10); color:var(--gold-bright); }
.notice-info{ background:rgba(30,26,20,.6); color:var(--ink-dim); }

/* —— Google 按钮 + 分隔线 —— */
.btn-google{
  display:flex; align-items:center; justify-content:center; gap:10px; width:100%;
  font-family:var(--meta); font-weight:500; font-size:13.5px; letter-spacing:.04em;
  color:var(--ink); background:rgba(20,17,13,.55); border:1px solid var(--line); border-radius:4px;
  padding:13px 16px; text-decoration:none; transition:border-color .3s ease, background .3s ease;
}
.btn-google:hover{ border-color:var(--gold-deep); background:rgba(20,17,13,.8); }
.btn-google .g-mark{ width:18px; height:18px; flex:0 0 auto; }
.auth-divider{
  display:flex; align-items:center; gap:14px; margin:24px 0;
  font-family:var(--meta); font-size:11px; letter-spacing:.2em; color:var(--ink-faint); text-transform:uppercase;
}
.auth-divider::before, .auth-divider::after{ content:""; flex:1; height:1px; background:var(--line-soft); }

/* —— 账户页 —— */
.account-section{ margin:0 0 56px; }
.account-actions{ margin-bottom:90px; }
.account-card{
  background:rgba(30,26,20,.5); border:1px solid var(--line); border-radius:6px; padding:28px 30px;
}
.member-card .mc-head{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.member-badge{
  display:inline-block; font-family:var(--meta); font-weight:600; font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--bg); background:var(--gold); border-radius:3px; padding:5px 10px;
}
.member-badge.is-free{ color:var(--ink-dim); background:transparent; border:1px solid var(--line); }
.member-card.is-member{ border-color:var(--gold-deep); background:linear-gradient(180deg, rgba(201,169,106,.08), rgba(30,26,20,.5)); }
.mc-title{ font-family:var(--display); font-size:19px; color:var(--gold-bright); }
.mc-desc{ font-family:var(--serif); font-size:15px; line-height:1.75; color:var(--ink-dim); margin:0 0 16px; }
.mc-meta{ font-family:var(--meta); font-size:12.5px; letter-spacing:.06em; color:var(--ink-faint); margin:0; }

.req-list{ list-style:none; margin:0 0 24px; padding:0; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.req-item{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:16px 20px; background:rgba(30,26,20,.4); border-bottom:1px solid var(--line-soft);
}
.req-item:last-child{ border-bottom:0; }
.req-main{ min-width:0; display:flex; flex-direction:column; gap:4px; }
.req-asset{ font-family:var(--display); font-size:17px; font-weight:600; color:var(--ink); }
.req-note{ font-family:var(--serif); font-size:13.5px; color:var(--ink-faint); line-height:1.6;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.req-side{ flex:0 0 auto; display:flex; align-items:center; gap:14px; }
.req-status{
  font-family:var(--meta); font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  border-radius:3px; padding:5px 10px; text-decoration:none; white-space:nowrap;
}
.req-status[data-status="pending"]{ color:var(--gold-bright); border:1px solid var(--gold-deep); background:rgba(201,169,106,.08); }
.req-status[data-status="done"]{ color:var(--bg); background:var(--gold); }
a.req-status[data-status="done"]:hover{ background:var(--gold-bright); }
.req-status[data-status="spam"]{ color:var(--ink-faint); border:1px solid var(--line); }
.req-date{ font-family:var(--meta); font-size:12px; color:var(--ink-faint); white-space:nowrap; }
.account-empty{ font-family:var(--serif); font-size:15px; line-height:1.8; color:var(--ink-dim); margin:0 0 22px; }

/* —— 定制申请 CTA banner（三入口共用） —— */
.cta-banner{
  display:flex; align-items:center; justify-content:space-between; gap:28px;
  border:1px solid var(--gold-deep); border-radius:6px; padding:30px 34px; margin:48px 0;
  background:linear-gradient(135deg, rgba(201,169,106,.10), rgba(30,26,20,.4) 55%);
}
.cta-banner.is-compact{ padding:22px 26px; margin:40px 0 8px; }
.cta-text{ min-width:0; }
.cta-title{ font-family:var(--display); font-size:22px; font-weight:600; color:var(--gold-bright); line-height:1.4; }
.cta-banner.is-compact .cta-title{ font-size:19px; }
.cta-sub{ font-family:var(--serif); font-size:14.5px; line-height:1.7; color:var(--ink-dim); margin:8px 0 0; }
.cta-banner .btn-gold{ flex:0 0 auto; }

/* —— 价格页 —— */
.pricing-head .page-sub{ max-width:760px; }
.pricing-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:32px;
  max-width:920px; margin:10px 0 36px;
}
.plan-card{
  position:relative; display:flex; flex-direction:column;
  background:rgba(30,26,20,.5); border:1px solid var(--line); border-radius:8px; padding:38px 36px 34px;
}
.plan-card-member{
  border-color:var(--gold-deep);
  background:linear-gradient(180deg, rgba(201,169,106,.10), rgba(30,26,20,.5) 45%);
  box-shadow:0 18px 50px rgba(0,0,0,.28);
}
.plan-flag{
  position:absolute; top:-12px; right:28px;
  font-family:var(--meta); font-weight:600; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--bg); background:var(--gold); border-radius:3px; padding:5px 12px;
}
.plan-name{
  font-family:var(--meta); font-weight:600; font-size:12px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); margin-bottom:18px;
}
.plan-price{ margin-bottom:14px; }
.plan-price b{ font-family:var(--display); font-size:44px; font-weight:600; color:var(--ink); line-height:1; }
.plan-card-member .plan-price b{ color:var(--gold-bright); }
.pp-unit{ font-family:var(--meta); font-size:13px; color:var(--ink-faint); margin-left:8px; }
.pp-alt{ display:block; font-family:var(--meta); font-size:12.5px; color:var(--ink-dim); margin-top:10px; letter-spacing:.04em; }
.plan-desc{ font-family:var(--serif); font-size:15px; line-height:1.7; color:var(--ink-dim); margin:0 0 18px; }
.benefit-list{ list-style:none; margin:0 0 30px; padding:0; flex:1 1 auto; }
.benefit-list li{
  font-family:var(--serif); font-size:15px; line-height:1.7; color:var(--ink);
  padding:9px 0 9px 28px; position:relative; border-bottom:1px solid var(--line-soft);
}
.benefit-list li:last-child{ border-bottom:0; }
.benefit-list .bl-tick{ position:absolute; left:2px; top:10px; color:var(--gold); font-size:13px; }
.benefit-list li.is-pending{ color:var(--ink-dim); }
.benefit-list li.is-pending::after{
  content:"筹备中"; font-family:var(--meta); font-size:10px; letter-spacing:.14em; color:var(--ink-faint);
  border:1px solid var(--line); border-radius:3px; padding:2px 6px; margin-left:8px; vertical-align:1px;
}
.plan-cta form + form{ margin-top:12px; }
.plan-cta-note{ font-family:var(--serif); font-size:13px; line-height:1.7; color:var(--ink-faint); margin:14px 0 0; }
.plan-cta-note a{ color:var(--gold-bright); text-decoration:none; border-bottom:1px solid var(--gold-deep); }
.pricing-foot{
  font-family:var(--serif); font-size:13.5px; line-height:1.9; color:var(--ink-faint);
  margin:0 0 90px; max-width:760px;
}
.pricing-foot a{ color:var(--gold-bright); text-decoration:none; border-bottom:1px solid var(--gold-deep); }

/* —— 移动端 —— */
@media (max-width:760px){
  .form-card{ padding:26px 22px 24px; margin-bottom:60px; }
  .cta-banner{ flex-direction:column; align-items:flex-start; gap:18px; padding:24px 22px; }
  .req-item{ flex-direction:column; align-items:flex-start; gap:10px; }
  .req-side{ width:100%; justify-content:space-between; }
  .pricing-grid{ grid-template-columns:1fr; gap:26px; }
  .plan-card{ padding:30px 24px 28px; }
  .plan-price b{ font-size:38px; }
  .account-card{ padding:22px 20px; }
}

/* —— 浅色主题覆盖（卡片底 rgba 全部翻面） —— */
html[data-theme="light"] .form-card{ background:rgba(250,246,236,.6); }
html[data-theme="light"] .field-input{ background:rgba(250,246,236,.7); }
html[data-theme="light"] .field-input:focus{ background:#fff; }
html[data-theme="light"] .btn-gold{ color:#faf6ec; }
html[data-theme="light"] .btn-gold.is-disabled{ background:rgba(44,37,22,.06); color:var(--ink-faint); }
html[data-theme="light"] .btn-google{ background:rgba(250,246,236,.8); }
html[data-theme="light"] .btn-google:hover{ background:#fff; }
html[data-theme="light"] .notice-error{ border-color:rgba(157,64,64,.45); background:rgba(157,64,64,.08); color:#8d3a3a; }
html[data-theme="light"] .notice-ok{ background:rgba(156,125,62,.10); color:#7d5f27; }
html[data-theme="light"] .notice-info{ background:rgba(250,246,236,.8); }
html[data-theme="light"] .account-card{ background:rgba(250,246,236,.6); }
html[data-theme="light"] .member-card.is-member{ background:linear-gradient(180deg, rgba(156,125,62,.10), rgba(250,246,236,.6)); }
html[data-theme="light"] .member-badge{ color:#faf6ec; }
html[data-theme="light"] .req-item{ background:rgba(250,246,236,.55); }
html[data-theme="light"] .req-status[data-status="done"]{ color:#faf6ec; }
html[data-theme="light"] .cta-banner{ background:linear-gradient(135deg, rgba(156,125,62,.10), rgba(250,246,236,.5) 55%); }
html[data-theme="light"] .plan-card{ background:rgba(250,246,236,.6); }
html[data-theme="light"] .plan-card-member{ background:linear-gradient(180deg, rgba(156,125,62,.10), rgba(250,246,236,.6) 45%); box-shadow:0 18px 40px rgba(60,50,30,.10); }
html[data-theme="light"] .plan-flag{ color:#faf6ec; }
html[data-theme="light"] .plan-price b{ color:#2c2516; }
html[data-theme="light"] .plan-card-member .plan-price b{ color:#7d5f27; }
