/* ═══════════════════════════════════════════════════════════════════════════
   方舟量化投研 · 深度报告统一版面样式表（ARK REPORT v2）
   ═══════════════════════════════════════════════════════════════════════════
   定位：所有深度报告共用一张样式表，**换样式表即换全站报告版式**。
   兼容：内含历史类名兼容层（.wrap/.card/.box/.kpi/.item/.tldr/.note/.tag/.src/
   .disc/.cap/.lb/.vl/.inner/.chart/.warn 等），存量报告无需改 HTML 即自动归一。
   铁律：
     ① 本文件只管「框架与视觉」，不管内容结构；
     ② 历史类名一律用「兼容映射」写法，禁止为迁就个别报告改配色；
     ③ 新增报告直接引本表，不得再自带私有 :root。
   ═══════════════════════════════════════════════════════════════════════════ */

:root{
  --bg:#0a0e14; --bg2:#0d1219; --panel:#121821; --panel2:#161d28;
  --border:#222c3a; --border2:#2c3846; --text:#e6edf3; --muted:#8b97a7; --muted2:#5f6b7a;
  --gold:#d4af37; --gold2:#f0c75e; --cyan:#38bdf8; --cyan2:#7dd3fc;
  --up:#f6465d; --down:#2ebd85; --warn:#f59e0b; --purple:#a78bfa;
  --r:16px; --shadow:0 10px 40px rgba(0,0,0,.5);
  /* ── 历史变量别名（存量报告正文引用旧名仍生效）── */
  --red:var(--up); --green:var(--down); --blue:var(--cyan); --sub:var(--muted); --dim:var(--muted2);
  --txt:var(--text); --txt2:var(--muted); --txt3:var(--muted2); --line:var(--border);
  --card:var(--panel); --card2:var(--panel2); --accent:var(--cyan);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:radial-gradient(1400px 720px at 82% -12%,#13202e 0%,var(--bg) 58%);
  color:var(--text);font-size:16px;line-height:1.85;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;padding-bottom:40px;
}
a{color:inherit;text-decoration:none}

/* ══ 页眉（统一） ══ */
.rp-head{max-width:1000px;margin:0 auto;padding:38px 28px 0}
.rp-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;
  color:var(--gold2);background:rgba(212,175,55,.1);border:1px solid rgba(212,175,55,.34);
  border-radius:999px;padding:4px 14px;margin-bottom:16px}
.rp-head h1{font-size:31px;font-weight:800;line-height:1.35;letter-spacing:.3px}
.rp-meta{margin-top:12px;font-size:13.5px;color:var(--muted);line-height:1.9}
.rp-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--muted2)}

/* ══ 正文容器：历史 .wrap 与新骨架统一 ══ */
.wrap,.rp-body{max-width:1000px;margin:0 auto;padding:26px 28px 0}

/* ══ 章节：统一字号/金色左竖条/自动编号 ══ */
.rp-sec{counter-increment:rpsec;margin:46px 0 0}
h2{
  font-size:20px;font-weight:800;line-height:1.55;letter-spacing:.3px;
  padding-left:14px;border-left:4px solid var(--gold);margin:44px 0 18px;
}
.rp-sec>h2{margin-top:0}
.rp-sec>h2::before{
  content:counter(rpsec, cjk-ideographic);font-size:12.5px;font-weight:800;color:var(--gold2);
  background:rgba(212,175,55,.1);border:1px solid rgba(212,175,55,.3);border-radius:6px;
  padding:2px 9px;margin-right:11px;vertical-align:2px;display:inline-block;
}
h3{font-size:16.5px;font-weight:700;margin:26px 0 11px;color:var(--text)}
h4{font-size:15px;font-weight:700;margin:18px 0 9px;color:var(--muted)}
p{margin:12px 0;font-size:15.5px;line-height:1.9}
ul,ol{margin:12px 0 12px 4px;padding-left:22px}
li{margin:8px 0;font-size:15.5px;line-height:1.85}
li::marker{color:var(--gold2)}
strong,b{color:var(--gold2);font-weight:700}
em{color:var(--cyan2);font-style:normal;font-weight:600}
p a{color:var(--cyan2);border-bottom:1px solid rgba(56,189,248,.3)}
code{font-family:"Cascadia Code",Consolas,"Courier New",monospace;font-size:.9em;
  background:var(--panel2);border:1px solid var(--border);border-radius:4px;padding:1px 6px;color:var(--cyan2)}
hr{border:none;border-top:1px solid var(--border);margin:32px 0}

/* ══ 卡片：.card/.box/.panel 三种历史写法归一 ══ */
.card,.box,.panel,.rp-card{
  background:var(--panel);border:1px solid var(--border);border-radius:14px;
  padding:20px 22px;margin:18px 0;
}
.card>.l,.box>.l,.card>.t,.box>.t{color:var(--muted);font-size:14px;margin-bottom:8px}
.card>.v,.box>.v,.card .v,.box .v{font-size:19px;font-weight:800;color:var(--text)}
.card.tl,.card>.l.big{color:var(--gold2)}

/* 标题带图标的卡片（如 .card h3） */
.card h3,.box h3{margin-top:0}

/* ══ KPI 指标卡：.kpi/.item/.stat 归一 ══ */
.kpis,.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0}
.kpi,.item,.stat{
  background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:15px 16px;
}
.kpi .l,.item .l,.stat .l,.kpi .k-l,.item .k-l{font-size:11.5px;color:var(--muted2);margin-bottom:6px}
.kpi .v,.item .v,.stat .v,.kpi .k-v,.item .k-v{font-size:20px;font-weight:800;color:var(--text)}
.kpi .s,.item .s,.stat .s{font-size:11.5px;color:var(--muted2);margin-top:3px}

/* ══ 提示块：.note/.warn/.tip 归一（四档语义色） ══
   ★2026-10-18 修复：.src 不再全局映射为提示块——原报告用 <span class="src"> 做
     表格内的行内来源标注，若套上 padding/border 会撑开单元格、遮挡正文。
     现仅 div.src 作为提示块，span.src 等行内用法归为小字灰色。 */
.note,.warn,.tip,.rp-note,div.src{
  background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--cyan);
  border-radius:12px;padding:14px 18px;margin:18px 0;font-size:13.5px;color:var(--muted);line-height:1.85;
}
.note.gold,.note-gold{border-left-color:var(--gold)}
.note.warn,.warn{border-left-color:var(--warn)}
.note.up,.note-up{border-left-color:var(--up)}
.note.down,.note-down{border-left-color:var(--down)}
.note b,.warn b,.src b,.tip b{color:var(--text)}
div.src{border-left-color:var(--gold2)}

/* 行内来源标注（.src 在 span / td / p 内）——纯小字，无边框无背景，不占布局 */
span.src,td .src,p .src,li .src,.cap .src,.src-inline{
  display:inline;background:none;border:none;border-radius:0;padding:0;margin:0;
  font-size:11.5px;color:var(--muted2);line-height:1.6;white-space:normal;
}

/* ══ TLDR 卡 ══ */
.tldr,.rp-tldr{
  background:linear-gradient(160deg,rgba(212,175,55,.07),rgba(18,24,33,.92));
  border:1px solid rgba(212,175,55,.3);border-radius:var(--r);padding:24px 26px;margin:0 0 8px;
}
.tldr h2,.tldr>.h,.rp-tldr h2{
  border:none!important;padding:0!important;margin:0 0 15px!important;font-size:19px!important;
  color:var(--gold2)!important;
}
.tldr h2::before,.rp-tldr h2::before{content:none!important}
.tldr ol,.tldr ul{margin:0;padding-left:22px}
.tldr li{margin:11px 0;font-size:15.5px;line-height:1.85}

/* ══ 表格：全站统一 ══ */
.tw{overflow-x:auto;margin:18px 0}
table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.75}
th{text-align:left;color:var(--muted2);font-weight:600;padding:10px 12px;
  border-bottom:1px solid var(--border);white-space:nowrap;font-size:12.5px;
  background:rgba(212,175,55,.05)}
td{padding:10px 12px;border-bottom:1px dashed var(--border);vertical-align:top}
tbody tr:hover{background:rgba(212,175,55,.04)}
/* 表格内状态徽标（chip）——语义与涨跌无关：
   chip 青=数据来源/取数状态，good 绿=校验通过，bad 红=未取到/降级，warn 橙=辅助源/跳过 */
td .chip,td .badge,.chip{
  display:inline-block;padding:1px 8px;border-radius:6px;font-size:11.5px;font-weight:600;
  background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.35);color:var(--cyan2);
}
.chip.good,.chip.up{background:rgba(46,189,133,.12);border-color:rgba(46,189,133,.4);color:#5fe0a8}
.chip.bad,.chip.down{background:rgba(246,70,93,.12);border-color:rgba(246,70,93,.4);color:#ff8a99}
.chip.warn{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.4);color:#fbbf5c}
th .chip{background:transparent;border:none;color:var(--muted)}

/* ══ 涨跌语义色（红涨绿跌，中国习惯）——只用于真实涨跌数字 ══ */
.up,.red,.r{color:var(--up);font-weight:700}
.down,.green,.g{color:var(--down);font-weight:700}
.flat,.neu{color:var(--muted);font-weight:600}

/* ══ 研判语义色（sig）——用于「看多/受益/承压」等研判词，刻意区别于涨跌数字 ══ */
.sig{font-weight:700;color:var(--muted)}
.sig.pos{color:#ff8a99}   /* 偏多研判：柔红（非纯涨跌红），避免与数字涨跌混淆 */
.sig.neg{color:#5fe0a8}   /* 偏空研判：柔绿 */
.sig.neu{color:var(--muted)}

/* ══ 页眉内的标签/元信息 ══ */
.tag,.rp-tag{font-size:12px;padding:3px 11px;border-radius:8px;background:var(--panel);
  border:1px solid var(--border2);color:var(--muted);display:inline-block;margin:3px 4px 3px 0}
.tag.hot,.rp-tag.hot{color:var(--up);border-color:rgba(246,70,93,.4);background:rgba(246,70,93,.08)}
.tag.gold,.rp-tag.gold{color:var(--gold2);border-color:rgba(212,175,55,.4);background:rgba(212,175,55,.08)}
.sub,.meta,.lb{color:var(--muted);font-size:13.5px}

/* ══ 图示容器 ══ */
.chart,.figure{margin:18px 0;padding:16px;background:var(--panel);border:1px solid var(--border);border-radius:14px}
.chart .cap,.cap,.figure .cap{font-size:12px;color:var(--muted2);margin-top:10px;text-align:center}

/* ══ 目录（脚本生成） ══ */
.rp-toc{background:var(--panel);border:1px solid var(--border);border-radius:14px;margin:24px 0 8px;padding:20px 24px}
.rp-toc .toc-h{font-size:14px;font-weight:800;color:var(--gold2);margin-bottom:12px;letter-spacing:.5px}
.rp-toc ol{margin:0;padding-left:20px;columns:2;column-gap:28px;font-size:14px;line-height:2}
.rp-toc a{color:var(--muted)}
.rp-toc a:hover{color:var(--gold2)}

/* ══ 口径栏目唯一化（2026-10-18 v5）══
   页首的「数据纪律说明」类 note 与页末「数据来源与口径说明」内容重复，
   故页首这条默认折叠为一行摘要（点击展开），完整口径以页末 rp-data 为唯一权威。 */
.cal-dupe{position:relative;cursor:pointer}
.cal-dupe>*:not(.cal-dupe-hint){display:none}
.cal-dupe-hint{
  display:block;font-size:12.5px;color:var(--muted);line-height:1.8;
  padding-left:20px;position:relative;
}
.cal-dupe-hint::before{
  content:"§";position:absolute;left:0;top:1px;font-size:11px;font-weight:800;
  color:var(--bg);background:var(--gold2);border-radius:3px;padding:0 5px;
}
.cal-dupe-hint::after{
  content:"　数据来源与口径已统一列于文末 →（点击展开本页原始说明）";
  color:var(--muted2);font-size:11.5px;
}
.cal-dupe.open{background:rgba(212,175,55,.04)}
.cal-dupe.open>*:not(.cal-dupe-hint){display:revert}
.cal-dupe.open .cal-dupe-hint::after{content:"　收起 ↑"}

/* ══ 数据来源与口径（统一，永远置于末尾） ══ */
.rp-data{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--gold2);
  border-radius:12px;padding:20px 22px;margin:44px 0 0;font-size:12.5px;color:var(--muted2);line-height:1.9}
.rp-data h3{font-size:14px;color:var(--gold2);margin:0 0 12px;font-weight:700;display:flex;align-items:center;gap:8px}
.rp-data h3::before{content:"§";color:#0a0e14;background:var(--gold2);border-radius:4px;padding:0 6px;font-size:12px;font-weight:800}
.rp-data h3+p,.rp-data p{margin:8px 0;font-size:12.5px;line-height:1.9}
.rp-data b{color:var(--muted)}
.rp-data table{font-size:12.5px;margin:12px 0}
.rp-data table th{font-size:11.5px}
.rp-data table td{padding:8px 10px}

/* ══ 免责声明 ══ */
.disc,.rp-disc,.foot,.footnote,.endnote,.declare{
  margin:28px 0 0;padding:18px 22px;border-radius:12px;background:var(--bg2);
  border:1px solid var(--border);font-size:12.5px;color:var(--muted2);line-height:1.9;
}
footer{max-width:1000px;margin:44px auto 0;padding:22px 28px 0;border-top:1px solid var(--border);
  font-size:12.5px;color:var(--muted2);line-height:1.9;text-align:center}

/* ══ 响应式 ══ */
@media(max-width:820px){
  .wrap,.rp-body,.rp-head{padding-left:18px;padding-right:18px}
  .rp-head h1{font-size:24px}body{font-size:15px}
  h2{font-size:18px}p,li,.tldr li{font-size:15px}
  .rp-toc ol{columns:1}
}
@media print{
  body{background:#fff;color:#000;padding:0}
  .rp-data,.disc,.note,.card,.box{border-color:#ccc;background:#fff}
  *{color:#000!important}
}