/* ============================================================================
   theme-dark.css —— 暗色主题覆盖层（2026-08-04 实现版；设计真相源与交付说明见
   docs/前端参考/2026-08-03-暗色模式/，颜色定稿值勿改）
   ----------------------------------------------------------------------------
   实现期用法：<html data-theme="dark"> 即整站暗色；两档 浅色/深色（2026-08-03 评审
   反馈③定稿，无跟随系统），localStorage 持久化、默认浅色；防白闪须外部小 JS
   （CSP 禁 inline script）在样式表前同步写 data-theme。
   本文件只含暗色差异 + §0.0 两主题通用新增令牌（新组件基础样式在 v11.css）；
   亮色零改动。分区按「来源文件」组织，注释给出 亮色原值 → 暗色值 便于逐条核对。
   设计规则：暗色里「越浮越亮」承担层级（页面 < 卡片 < 悬浮层），阴影只作辅助；
   品牌绿拆双轨——文字/图标绿提亮保对比度、实心填充绿近原值保白字可读（见 §0.2）。
   ========================================================================== */

/* ========== §0.0 新增令牌（两主题通用；亮色默认值=现状等价，零视觉变化） ========== */
:root {
  --page: var(--bg);            /* 页面基底（workspace 背后） */
  --rail: var(--soft-2);        /* 左栏基底 */
  --pop: var(--bg);             /* 悬浮层（菜单/弹窗/浮出面板） */
  --inset: var(--ink);          /* 深陷层（pre 代码块/tooltip 底） */
  --line-hover: #E2E6EA;        /* 悬停描边（现状散写 #E2E6EA/#d8dde3，收敛一名） */
  --green-solid: var(--green);      /* 实心绿填充（白字组件底） */
  --green-solid-h: var(--green-d);  /* 实心绿填充 hover */
  --red-solid: var(--red);          /* 实心红填充（toast.err / A股彩标） */
}

/* ========== §0.1 根令牌重映射（tokens.css 15 色 + 阴影 + 焦点环） ========== */
[data-theme="dark"] {
  color-scheme: dark;                    /* 原生滚动条/表单控件随暗 */

  /* 中性色梯（蓝灰 216°，越浮越亮）：#FFFFFF→ */
  --bg: #1A1E24;                         /* 卡片/表面（原 #FFFFFF） */
  --page: #121417;                       /* 页面基底 */
  --rail: #16191E;                       /* 左栏基底（原 soft-2 #FBFCFD 角色） */
  --pop: #232931;                        /* 悬浮层（菜单/弹窗） */
  --inset: #0F1216;                      /* 深陷层（pre/tooltip） */
  --soft: #242A32;                       /* 次级表面/chip 底（原 #F6F8FA） */
  --soft-2: #1F242B;                     /* 介于卡与 soft 之间（原 #FBFCFD） */
  --line: #2A303A;                       /* 边框（原 #EDEFF2） */
  --line-2: #262C34;                     /* 浅分隔（原 #EEF1F4） */
  --line-hover: #3A434F;                 /* 悬停描边（原 #E2E6EA/#d8dde3） */

  /* 文字梯：对比度实测见交付说明 §对比度 */
  --ink: #E8EBEE;                        /* 主墨（原 #15171B） */
  --ink-2: #A8B0BA;                      /* 次级（原 #5C636B） */
  --ink-3: #828D99;                      /* 占位/弱化（原 #9AA2AA）：卡面 4.95/嵌套面 4.75/chip 底 4.54，全表面 ≥4.5 */

  /* 品牌绿双轨 */
  --green: #2FC46A;                      /* 文字/图标/描边绿（原 #0BA84A 提亮） */
  --green-d: #3BCB74;                    /* 强调文字绿/hover 文字（原 #0A9A45） */
  --green-soft: rgba(47, 196, 106, .15); /* 绿膜（原 #E9F8EF 实底 → 低透明绿膜） */
  --green-solid: #0FA24E;                /* 实心绿填充：白字组件底（≈品牌原值微提，白字 3.33 ≥ 亮色现状 3.13） */
  --green-solid-h: #13AB53;              /* 实心绿 hover（暗色 hover 更亮；白字 3.05 守住 ≥3.0） */

  /* 语义色 */
  --red: #F26560;                        /* 错误文字（原 #E0322F） */
  --red-solid: #D8423E;                  /* 实心红填充 */
  --red-soft: rgba(242, 101, 96, .14);   /* （原 #FDECEC） */
  --amber: #F09751;                      /* （原 #E8833A） */
  --amber-soft: rgba(240, 151, 81, .13); /* （原 #FDF1E6） */

  /* 阴影：暗色下退居辅助（层级主要靠 bg 分层+边框）；绿 CTA 光晕保留但收敛 */
  --sh-card: 0 2px 14px rgba(0, 0, 0, .28);
  --sh-card-lg: 0 8px 20px rgba(0, 0, 0, .38);
  --sh-pop: 0 18px 44px rgba(0, 0, 0, .5);
  --sh-cta: 0 6px 18px rgba(15, 162, 78, .22);
  --sh-rail: 8px 0 40px rgba(0, 0, 0, .3);
  --focus-ring: 0 0 0 3px rgba(47, 196, 106, .3);
}

/* ========== §0.2 v2.css :root 局部令牌（报告类型色/市场彩标/分段控件） ========== */
[data-theme="dark"] {
  --tp: #E09656;           --tp-soft: rgba(224, 150, 86, .15);   /* 买卖点（原 #C9772A/#FFF6E9） */
  --fib: #6E96F2;          --fib-soft: rgba(110, 150, 242, .15); /* 斐波那契（原 #2E62E0/#EEF1FE） */
  --vp: #A480EC;           --vp-soft: rgba(164, 128, 236, .16);  /* 成交量分布（原 #7B49D6/#F2ECFB） */
  --pattern: #35BCCA;      --pattern-soft: rgba(53, 188, 202, .15); /* 趋势形态（原 #0E9AA8/#E6F7F5） */
  --smc: #E276AC;          --smc-soft: rgba(226, 118, 172, .15);  /* 聪明钱（原 #C93E7E/#FBEAF2） */
  --mk-us: #3E70E4;        /* 市场彩标实底（白字）：美股（原 #2E62E0 微提） */
  --mk-hk: #E4823D;        /* 港股（原 #E07A36）；A股 → --red-solid（§6） */
  --glass: rgba(22, 25, 30, .66);        /* （原 rgba(255,255,255,.62)） */
  --seg-bg: #20262D;                     /* 分段控件轨（原 #F0F2F4） */
}

/* ========== §0.3 v9.css :root 局部令牌（邀请码/客服） ========== */
[data-theme="dark"] {
  --inv-well-bg: rgba(47, 196, 106, .10);    /* 码井底（原 #F0FAF4） */
  --inv-well-line: #338052;                  /* 码井虚线（原 #7ACB9C 降明度） */
  --inv-qr-bg: #1F242B;                      /* 二维码占位底（原 #F7F9FA） */
  --inv-qr-line: #3A434F;                    /* （原 #D6DBE0） */
  --inv-mask: rgba(0, 0, 0, .58);            /* 弹窗遮罩（原 rgba(14,14,28,.42)） */
  --inv-copied-bg: rgba(47, 196, 106, .16);  /* 已复制底（原 #E7F5EC） */
  --inv-copied-ink: #2FC46A;                 /* 已复制字（原 #0A9A45） */
}

/* ========== §1 layout.css：页面骨架 ========== */
[data-theme="dark"] .workspace { background: var(--page); }
[data-theme="dark"] .sidebar { background: var(--rail); }
/* 输入区托底渐变：白→page 色（原 rgba(255,255,255,0) → var(--bg) 42%） */
[data-theme="dark"] .composer { background: linear-gradient(180deg, rgba(18, 20, 23, 0) 0%, var(--page) 42%); }
[data-theme="dark"] .scrim { background: rgba(0, 0, 0, .5); }                 /* 原 rgba(20,23,27,.28) */
[data-theme="dark"] .drawer { box-shadow: -8px 0 40px rgba(0, 0, 0, .4); }    /* 原 …(20,23,27,.06) */

/* ========== §2 components.css ========== */
[data-theme="dark"] .input:hover { border-color: var(--line-hover); }         /* 原 #E2E6EA */
/* 头像：亮色=墨底白字；暗色 --ink 变浅会翻车（白字白底），改中性深底浅字 */
[data-theme="dark"] .avatar, [data-theme="dark"] .userbar .avatar { background: #39424E; color: #E8EBEE; }
[data-theme="dark"] .menu { background: var(--pop); }
[data-theme="dark"] .conn.off { color: #E8A96B; }                             /* 原 #9A5A1E */
/* 状态徽章（生成中琥珀/缓存蓝/重试蓝：原实底浅彩 → 低透明彩膜+亮彩字） */
[data-theme="dark"] .badge-running { background: rgba(227, 154, 85, .15); color: #E39B5C; }  /* 原 #FFF6E9/#C9772A */
[data-theme="dark"] .badge-cached { background: rgba(125, 160, 240, .15); color: #7DA0F0; }  /* 原 #EFF3FF/#3257C9 */
[data-theme="dark"] .badge-retry { background: rgba(108, 155, 240, .15); color: #6C9BF0; }   /* 原 #EAF1FF/#2F6BD8 */
[data-theme="dark"] .rcard.clickable:hover { border-color: var(--line-hover); }
[data-theme="dark"] .li-item:hover { border-color: var(--line-hover); }
/* 实心绿组件（白字底一律走 --green-solid 双轨；hover 暗色更亮） */
[data-theme="dark"] .btn-primary { background: var(--green-solid); }
[data-theme="dark"] .btn-primary:hover { background: var(--green-solid-h); }
[data-theme="dark"] .send-btn { background: var(--green-solid); }
[data-theme="dark"] .send-btn:hover { background: var(--green-solid-h); }
[data-theme="dark"] .market-pills button[aria-pressed="true"] { background: var(--green-solid); }
[data-theme="dark"] .li-item.is-active { background: var(--green-solid); border-color: var(--green-solid); }
[data-theme="dark"] .switch input:checked + .track { background: var(--green-solid); }
[data-theme="dark"] .switch .track::after { background: #E8EBEE; }
/* 生成中卡：shimmer 高光 & 白底件 */
[data-theme="dark"] .rcard-genimg .shimmer { background: linear-gradient(90deg, var(--soft) 25%, #2C333D 37%, var(--soft) 63%); background-size: 480px 100%; }  /* 原高光 #EFF2F5 */
[data-theme="dark"] .rcard-genimg .orbit .core { background: var(--bg); }
[data-theme="dark"] .rcard-genimg .gen-label { background: rgba(18, 20, 23, .72); }
/* 禁用态（原 #C9CDD2 灰底白字） */
[data-theme="dark"] .btn-primary:disabled, [data-theme="dark"] .btn-primary.is-disabled,
[data-theme="dark"] .send-btn:disabled, [data-theme="dark"] .send-btn.is-disabled { background: #333B45; color: #7A8490; }
[data-theme="dark"] .modal-backdrop { background: rgba(0, 0, 0, .58); }        /* 原 …(20,23,27,.34) */
/* toast：亮色=墨底白字；暗色反转为浅底深字（高对比、与深页面分离） */
[data-theme="dark"] .toast { background: #EAEEF3; color: #15171B; }
[data-theme="dark"] .toast.err { background: var(--red-solid); color: #fff; }

/* ========== §3 states.css ========== */
[data-theme="dark"] .feed-empty .hero { background: linear-gradient(120deg, var(--ink), #AEB7C2); -webkit-background-clip: text; background-clip: text; }  /* 原第二停靠 #3a4048 */
[data-theme="dark"] .feed-empty .pick:hover { border-color: #2E5B41; }         /* 原 #CFEAD9 */
[data-theme="dark"] .partial-note { border-color: rgba(240, 151, 81, .35); color: #E8A96B; }  /* 原 #F4D9BF/#9A5A1E */
[data-theme="dark"] .skeleton { background: linear-gradient(90deg, var(--soft) 25%, #2C333D 37%, var(--soft) 63%); background-size: 480px 100%; }

/* ========== §4 report.css（报告正文 + 白色画框策略） ========== */
[data-theme="dark"] .report-body { color: #C9D0D8; }                           /* 原 #23262B（正文超长阅读用次亮档，标题仍 --ink） */
/* pre：亮色 bg 用 var(--ink)（墨底），暗色 --ink 变浅会翻车 → 深陷层 */
[data-theme="dark"] .report-body pre { background: var(--inset); }
/* 描边画框（2026-08-04 生产实证修订：形态图/levels 图为深色底，白衬包黑图成刺眼白圈——
   原拍板②「白色画框」的全白底前提不成立）：一律去白衬、图缘 1px 描边 + 圆角；
   白底图（价位/SAR/Fib/VP/财报）本体即亮块无需衬边，深色图融入页面靠描边勾界 */
[data-theme="dark"] .report-body img { border-radius: 12px; border: 1px solid var(--line); }
/* .report-chart figure / .rcard-thumb 底色回归令牌（--bg/--soft 暗值），不再强制白底 */

/* ========== §5 v2.css ========== */
[data-theme="dark"] .mk-badge.mk-cn { background: var(--red-solid); }          /* A股彩标（原 var(--red)，暗色 red 转亮字色不作底） */
[data-theme="dark"] .seg-thumb { background: #39424E; box-shadow: 0 1px 3px rgba(0, 0, 0, .4); }  /* 原 #fff */
[data-theme="dark"] .daily-btn { background: var(--bg); box-shadow: 0 4px 14px rgba(0, 0, 0, .3); }
[data-theme="dark"] .daily-btn:hover { box-shadow: 0 8px 20px rgba(0, 0, 0, .4); border-color: var(--line-hover); }
[data-theme="dark"] .tp-panel { background: var(--soft); border-color: var(--line); box-shadow: 0 2px 8px rgba(0, 0, 0, .3); }  /* 原 #EAEDF1/#E1E5EA */
[data-theme="dark"] .tp-pill { background: var(--soft-2); }                    /* 原 #fff（轨内胶囊） */
[data-theme="dark"] .tp-pill.is-active { background: var(--green-solid); color: #fff; }
[data-theme="dark"] .tp-clear:hover { background: #333B45; }                   /* 原 #EAEDF1 */
[data-theme="dark"] .search-box { background: var(--soft-2); }                 /* 原 #fff */
[data-theme="dark"] .sort-trigger { background: var(--soft-2); }
[data-theme="dark"] .tp-chip:hover { background: var(--soft-2); border-color: var(--line-hover); }  /* 原 #fff/#E2E6EA */
/* 检索流光：底灰+高光墨 → 底中灰+高光近白（保持「文字里一道光扫过」的观感） */
[data-theme="dark"] .search-status.searching {
  background: linear-gradient(100deg, #6B7684 0%, #6B7684 38%, #F2F5F8 50%, #6B7684 62%, #6B7684 100%);
  background-size: 200% 100%; -webkit-background-clip: text; background-clip: text;
}
[data-theme="dark"] .lightbox { background: rgba(0, 0, 0, .88); }              /* 原 rgba(20,23,27,.82) */
[data-theme="dark"] .more-btn { background: var(--bg); }
[data-theme="dark"] .conn-banner { color: #E8A96B; }                           /* 原 #9A5B1E */
/* 06 广场遗留三卡（pz-*）：渐变浅绿卡 → 绿膜渐变；白卡 → 卡面层 */
[data-theme="dark"] .pz-tech { border-color: rgba(47, 196, 106, .25); background: linear-gradient(180deg, rgba(47, 196, 106, .10), rgba(47, 196, 106, .03)); }
[data-theme="dark"] .pz-tech:hover { background: linear-gradient(180deg, rgba(47, 196, 106, .16), rgba(47, 196, 106, .16)); }
[data-theme="dark"] .pz-tech-tag { color: var(--green-d); background: rgba(47, 196, 106, .16); }   /* 原 #0A9A45/#E4F5EC */
[data-theme="dark"] .pz-fin { background: var(--bg); }
[data-theme="dark"] .pz-fin:hover { border-color: var(--line-hover); background: var(--soft-2); }
[data-theme="dark"] .pz-fin--soon:hover { background: var(--bg); }
[data-theme="dark"] .pz-fin-t { color: var(--fib); }                           /* 原 #2E62E0 */
[data-theme="dark"] .pz-draw:hover { background: var(--soft-2); border-color: var(--line-hover); }
[data-theme="dark"] .pz-tech.is-sel { background: linear-gradient(180deg, var(--green-solid), var(--green-solid)); border-color: var(--green-solid); }
[data-theme="dark"] .pz-tech.is-sel:hover { background: linear-gradient(180deg, var(--green-solid-h), var(--green-solid-h)); }
[data-theme="dark"] .pz-draw.is-sel, [data-theme="dark"] .pz-fin.is-sel { background: var(--green-solid); border-color: var(--green-solid); }
[data-theme="dark"] .pz-draw.is-sel:hover, [data-theme="dark"] .pz-fin.is-sel:hover { background: var(--green-solid-h); border-color: var(--green-solid-h); }
[data-theme="dark"] .badge-fin, [data-theme="dark"] .type-tag--fin { background: var(--fib-soft); color: var(--fib); }  /* 原 #EEF1FE/#2E62E0 */
[data-theme="dark"] .daily-btn-ico--blue { background: var(--fib-soft); color: var(--fib); }
[data-theme="dark"] .tp-combo-main:hover, [data-theme="dark"] .tp-combo-sub:hover { background: var(--soft-2); }
[data-theme="dark"] .tp-popup { background: var(--pop); box-shadow: 0 10px 30px rgba(0, 0, 0, .45); }
[data-theme="dark"] .guide-sheet { background: var(--pop); box-shadow: 0 -12px 36px rgba(0, 0, 0, .5); }   /* 解读 sheet：弹层亮一档与正文暗底拉开（2026-08-15 生产反馈①） */
[data-theme="dark"] .tp-chip--soon:hover { background: var(--soft); }
[data-theme="dark"] .userbar--top .userbar-credits.is-zero { background: rgba(242, 101, 96, .15); }  /* 原 #FCE9E9 */
/* 流光边框/双提示卡的品牌彩渐变（tp-flow / tip--green / tip--blue）暗底成立，保持原值 */

/* ========== §6 v3.css（07 层：三板块/浮窗/个股卡/输入区/游客） ========== */
/* 头部「我的」标签 */
[data-theme="dark"] .my-toggle { border-color: var(--line); background: var(--bg); color: var(--ink-2); }
[data-theme="dark"] .my-toggle:hover { border-color: var(--line-hover); color: var(--ink); }
[data-theme="dark"] .my-toggle.is-active { background: var(--green-soft); border-color: rgba(47, 196, 106, .5); color: var(--green-d); }
[data-theme="dark"] .user-menu-sub { color: var(--ink-3); }
[data-theme="dark"] .user-menu-head { border-bottom-color: var(--line); }
/* 左栏三板块 */
[data-theme="dark"] .h3-section + .h3-section { border-top-color: var(--line-2); }
[data-theme="dark"] .h3-bar { background: var(--green); }
[data-theme="dark"] .h3-title { color: var(--ink); }
[data-theme="dark"] .h3-dot { background: #F26560; box-shadow: 0 0 0 3px rgba(242, 101, 96, .16); }
[data-theme="dark"] .h3-time { color: var(--ink-3); }
[data-theme="dark"] .h3-t2-text { color: #B7BFC9; }                            /* 原 #4A525B */
[data-theme="dark"] .h3-t2:hover .h3-t2-text { color: var(--ink); }
[data-theme="dark"] .h3-t2-arrow { color: var(--ink-3); background: linear-gradient(90deg, rgba(22, 25, 30, 0), var(--rail) 55%); }  /* 渐隐必须对齐左栏底色 */
[data-theme="dark"] .h3-err { color: var(--ink-3); }
/* 复盘轮播：图为白底 PNG——白色画框策略，容器保白底 */
[data-theme="dark"] .hj-carousel { border-color: var(--line); background: var(--soft-2); }   /* 生产 levels 图为深色底（08-04 实证），加载期露暗井不露白 */
[data-theme="dark"] .hj-placeholder { border-color: #3A434F; background: var(--soft-2); color: var(--ink-3); }
[data-theme="dark"] .hj-dot { background: rgba(160, 170, 180, .5); }
[data-theme="dark"] .hj-dot.is-cur { background: var(--green); }
/* 推特X日报 TOP5 表 */
[data-theme="dark"] .tt-table { border-color: var(--line); background: var(--bg); }
[data-theme="dark"] .tt-row + .tt-row { border-top-color: var(--line-2); }
[data-theme="dark"] .tt-head { background: var(--soft-2); }
[data-theme="dark"] .tt-head span { color: var(--ink-3); }
[data-theme="dark"] .tt-tick, [data-theme="dark"] .tt-mention { color: var(--ink); }
[data-theme="dark"] .tt-delta.up { color: var(--green-d); }                    /* 原 #0A9A45 */
[data-theme="dark"] .tt-delta.down { color: #F26560; }                         /* 原 #E0322F */
[data-theme="dark"] .tt-delta.flat { color: var(--ink-3); }
[data-theme="dark"] .tt-new { color: #E39B5C; background: rgba(227, 154, 85, .15); }  /* 原 #C9772A/#FBF2E4 */
[data-theme="dark"] .tt-authors { color: var(--ink-2); }
[data-theme="dark"] .tt-fallback { border-color: #3A434F; color: var(--ink-3); background: var(--soft-2); }
/* 大盘信号卡 */
[data-theme="dark"] .sg-card, [data-theme="dark"] .sg-dev { background: var(--soft-2); border-color: var(--line); }
[data-theme="dark"] .sg-card:hover { border-color: var(--line-hover); }
[data-theme="dark"] .sg-card-head { color: var(--ink-2); }
[data-theme="dark"] .sg-card-head .arr { color: var(--ink-3); }
[data-theme="dark"] .sg-dev-t { color: var(--ink-2); }
[data-theme="dark"] .sg-dev-s { color: var(--ink-3); }
[data-theme="dark"] .sg-dev-s::before { background: #454F5B; }                 /* 原 #C9CFD6 */
/* 「我的」 */
[data-theme="dark"] .mine-title { color: var(--ink); }
[data-theme="dark"] .mine-back { border-top-color: var(--line); background: var(--rail); }
[data-theme="dark"] .mine-back-btn { border-color: var(--line); background: var(--soft-2); box-shadow: 0 2px 10px rgba(0, 0, 0, .3); color: var(--ink); }
[data-theme="dark"] .mine-back-btn:hover { border-color: var(--line-hover); }
/* 情绪/广度浮窗 */
[data-theme="dark"] .sig-badge { background: #8A5FE0; }                        /* 原 #7B49D6 微提 */
[data-theme="dark"] .sig-latest { color: var(--ink); }
[data-theme="dark"] .sig-tab { color: var(--ink-2); background: var(--soft); border-color: var(--line); }
[data-theme="dark"] .sig-tab.is-active { color: var(--green-d); background: var(--green-soft); border-color: rgba(47, 196, 106, .4); }
[data-theme="dark"] .sig-chart-card { border-color: var(--line); background: var(--bg); }
[data-theme="dark"] .sig-chart-title { color: var(--ink); }
[data-theme="dark"] .sig-ranges { background: var(--soft); border-color: var(--line); }
[data-theme="dark"] .sig-range { color: var(--ink-3); }
[data-theme="dark"] .sig-range.is-active { color: var(--green-d); background: #39424E; box-shadow: 0 1px 4px rgba(0, 0, 0, .4); }  /* 原白 thumb */
[data-theme="dark"] .sig-tooltip { background: var(--inset); border: 1px solid #333B45; }
[data-theme="dark"] .sig-chart-note { color: #E39B5C; background: rgba(227, 154, 85, .13); }
[data-theme="dark"] .sig-chart-state, [data-theme="dark"] .sig-loading { color: var(--ink-3); }
/* 对话流宽版个股卡 */
[data-theme="dark"] .stock-card { background: var(--bg); border-color: var(--line); box-shadow: 0 2px 14px rgba(0, 0, 0, .28); }
[data-theme="dark"] .stock-card.is-hl { box-shadow: 0 0 0 2px rgba(47, 196, 106, .7), 0 2px 14px rgba(0, 0, 0, .28); }
[data-theme="dark"] .sc-name { color: var(--ink); }
[data-theme="dark"] .sc-sym, [data-theme="dark"] .sc-time, [data-theme="dark"] .sc-cat-date { color: var(--ink-3); }
[data-theme="dark"] .sc-cat { background: var(--soft-2); border-color: var(--line); }
[data-theme="dark"] .sc-cat--tech { border-color: rgba(47, 196, 106, .25); background: linear-gradient(180deg, rgba(47, 196, 106, .10), rgba(47, 196, 106, .03)); }
[data-theme="dark"] .sc-cat-tag { color: var(--green-d); background: rgba(47, 196, 106, .16); }
[data-theme="dark"] .sc-cat-tag--fin { color: var(--fib); background: var(--fib-soft); }
[data-theme="dark"] .sc-cat-arr, [data-theme="dark"] .sc-draw-b .arr { color: #4E5763; }  /* 原 #C9CFD6 */
[data-theme="dark"] .sc-cat-title { color: var(--ink); }
[data-theme="dark"] .sc-cat--empty .sc-cat-title { color: var(--ink-3); }
[data-theme="dark"] .sc-draw { background: var(--bg); border-color: var(--line); }
/* 画图缩略图为白底 PNG：画框策略，占位底用暗井 */
[data-theme="dark"] .sc-draw-img { background: var(--soft-2); }   /* 描边画框修订：缩略图加载期暗井，不露白 */
[data-theme="dark"] .sc-draw-imgfallback { background: var(--soft-2); color: var(--ink-3); }
[data-theme="dark"] .sc-draw-t { color: var(--ink-2); }
[data-theme="dark"] .sc-draw--empty .sc-draw-t { color: #5A6470; }             /* 原 #B6BDC4 */
/* 底部个股 pills */
[data-theme="dark"] .stock-pill { border-color: var(--line); background: var(--soft-2); box-shadow: 0 4px 14px rgba(0, 0, 0, .3); color: var(--green); }
[data-theme="dark"] .stock-pill:hover { border-color: rgba(47, 196, 106, .45); }
/* 输入区常驻单选（v3 版 chip；padding 重置随亮色规则继承） */
[data-theme="dark"] .tp-chip { color: var(--ink-2); background: var(--soft); border-color: var(--line); }
[data-theme="dark"] .tp-chip.is-active { color: #fff; background: var(--green-solid); border-color: var(--green-solid); box-shadow: 0 3px 10px rgba(15, 162, 78, .3); }
[data-theme="dark"] .tp-drawbox { background: var(--soft); border-color: var(--line); }
[data-theme="dark"] .tp-draw-ico { color: var(--ink-3); }
[data-theme="dark"] .tp-drawbox.is-active { border-color: rgba(47, 196, 106, .4); background: rgba(47, 196, 106, .08); }
[data-theme="dark"] .tp-drawbox.is-active .tp-draw-ico { color: var(--green-d); }
[data-theme="dark"] .tp-sub { color: var(--ink-2); }
[data-theme="dark"] .tp-sub.is-active { color: #fff; background: var(--green-solid); box-shadow: 0 2px 8px rgba(15, 162, 78, .3); }
[data-theme="dark"] .cost-num { color: var(--green-d); }
[data-theme="dark"] .cost-hint.is-zero::after { color: var(--red); }
/* 轮播 lightbox dots 白系，暗底成立，保持 */
/* 后台台账徽章（后台不做暗色，仅防主页面引用出现） */
[data-theme="dark"] .lg-status--success { color: var(--green-d); background: var(--green-soft); }
[data-theme="dark"] .lg-status--failed { color: #F26560; background: rgba(242, 101, 96, .14); }
[data-theme="dark"] .lg-status--missing { color: #E39B5C; background: rgba(227, 154, 85, .15); }
[data-theme="dark"] .lg-status--running { color: var(--fib); background: var(--fib-soft); }
[data-theme="dark"] .lg-status--pending { color: var(--ink-3); background: var(--soft); }
/* 游客态 */
[data-theme="dark"] .guest-login-btn { background: var(--green-solid); box-shadow: 0 3px 10px rgba(15, 162, 78, .3); }
[data-theme="dark"] .guest-login-btn:hover { background: var(--green-solid-h); }
[data-theme="dark"] .default-hero .gh-sub { color: var(--ink-3); }
[data-theme="dark"] .login-guide { background: rgba(0, 0, 0, .58); }
[data-theme="dark"] .login-guide .lg-card { background: var(--pop); box-shadow: 0 18px 50px rgba(0, 0, 0, .55); }
[data-theme="dark"] .login-guide .lg-title { color: var(--ink); }
[data-theme="dark"] .login-guide .lg-go { background: var(--green-solid); box-shadow: 0 4px 12px rgba(15, 162, 78, .3); }
[data-theme="dark"] .login-guide .lg-go:hover { background: var(--green-solid-h); }
[data-theme="dark"] .login-guide .lg-later { color: var(--ink-3); }
[data-theme="dark"] .login-guide .lg-later:hover { color: var(--ink-2); }

/* ========== §7 v9.css（客服浮标/面板；邀请码弹窗随 §0.3 令牌） ========== */
[data-theme="dark"] .support-fab { color: var(--green); }
/* 展开态：亮色=墨底白字；暗色反转为浅底深字（同 toast 策略） */
[data-theme="dark"] .support-fab.is-open { background: #EDF0F4; border-color: #EDF0F4; color: #15171B; }

/* ========== §8 v10.css（市场广度迷你卡/图例开关/图表说明） ========== */
[data-theme="dark"] .sg-mini { background: var(--soft-2); border-color: var(--line); }
[data-theme="dark"] .sg-mini:hover { border-color: var(--line-hover); }
[data-theme="dark"] .sg-mini-val { color: var(--ink); }
[data-theme="dark"] .sg-mini-arr.is-up { color: var(--green-d); }              /* 原 #0A9A45 */
[data-theme="dark"] .sg-mini-arr.is-down { color: #E06663; }                   /* 原 #C23B3B */
[data-theme="dark"] .sg-mini-arr.is-flat, [data-theme="dark"] .sg-mini-ma, [data-theme="dark"] .sg-mini-na { color: var(--ink-3); }
[data-theme="dark"] .sig-legend .lg:hover { background: var(--soft); }         /* 原 #F3F5F7 */
[data-theme="dark"] .sig-desc { border-top-color: var(--line); }
[data-theme="dark"] .sig-desc p { color: var(--ink-2); }

/* ========== §9 report-market.css（市场级报告呈现） ========== */
[data-theme="dark"] .drawer-meta .mrx-badge-x { background: #5B85EC; }         /* 原 #3D6FE8 */
[data-theme="dark"] .morning-body.mrx p.mrx-lead { color: #C4CBD4; }           /* 原 #3A3F46 */
[data-theme="dark"] .morning-body.mrx .mrx-chg-new { color: #E8A96B; background: rgba(227, 154, 85, .15); }  /* 原 #B4690E/#FDF1E6 */

/* ========== §10 mobile.css（≤720 叠加层） ========== */
[data-theme="dark"] .m-topbar { background: var(--rail); border-bottom-color: var(--line); }  /* 原 #fff */
[data-theme="dark"] .m-scrim { background: rgba(0, 0, 0, .6); }                /* 原 …(20,23,27,.42) */
[data-theme="dark"] .sidebar.is-m-open { box-shadow: 0 0 44px rgba(0, 0, 0, .5); }
[data-theme="dark"] .m-login { background: var(--green-solid); }
[data-theme="dark"] .m-admin-note { color: #E8A96B; background: rgba(227, 154, 85, .12); border-bottom-color: rgba(227, 154, 85, .3); }
/* .m-burger-dot #E5484D 暗底成立，保持 */

/* ========== §11 SVG 图表引擎（signal-chart.js 属性直写 → CSS 属性选择器接管） ==========
   静态样例即用此节生效；实现期建议引擎改读 CSS 变量或 registry 暗色档（见实现要点），
   本节亦可整段沿用（属性选择器对既有引擎零改动）。 */
/* 结构件：网格/轴字/零线/游标/光晕 */
[data-theme="dark"] .sig-chart-svg line[stroke="#EDEFF2"] { stroke: #262C34; }
[data-theme="dark"] .sig-chart-svg text[fill="#9AA2AA"] { fill: #828D99; }
[data-theme="dark"] .sig-chart-svg line[stroke="#C9CFD6"] { stroke: #454F5B; }
[data-theme="dark"] .sig-chart-svg line[stroke="#5C636B"] { stroke: #99A3AE; }
[data-theme="dark"] .sig-chart-svg circle[stroke="#fff"] { stroke: var(--bg); }
/* 罗盘（leftpanel gaugeSvg）：针/轴心墨 → 亮 */
[data-theme="dark"] .sig-gauge line[stroke="#15171B"] { stroke: #E8EBEE; }
[data-theme="dark"] .sig-gauge circle[fill="#15171B"] { fill: #E8EBEE; }
[data-theme="dark"] .sig-gauge text[fill="#9AA2AA"] { fill: #828D99; }
/* 序列线色（stroke）与渐变面积（stop-color）：IDX 黄 #E8B33A 暗底 8.7 保持不动；其余提亮 */
[data-theme="dark"] .sig-chart-svg [stroke="#5B9BD5"] { stroke: #6FABE3; }
[data-theme="dark"] .sig-chart-svg [stroke="#8E6BC8"] { stroke: #A98BE0; }
[data-theme="dark"] .sig-chart-svg stop[stop-color="#5B9BD5"] { stop-color: #6FABE3; }
[data-theme="dark"] .sig-chart-svg stop[stop-color="#8E6BC8"] { stop-color: #A98BE0; }
[data-theme="dark"] .sig-chart-svg [stroke="#0BA84A"] { stroke: #2FC46A; }
[data-theme="dark"] .sig-chart-svg [stroke="#0A9A45"] { stroke: #2FBF6C; }
[data-theme="dark"] .sig-chart-svg [stroke="#067A38"] { stroke: #1BD57D; }
[data-theme="dark"] .sig-chart-svg [stroke="#C23B3B"] { stroke: #E06663; }
[data-theme="dark"] .sig-chart-svg [stroke="#D64B4B"] { stroke: #E97676; }
[data-theme="dark"] .sig-chart-svg [stroke="#5C636B"]:not(line) { stroke: #98A2AD; }
[data-theme="dark"] .sig-chart-svg stop[stop-color="#0BA84A"] { stop-color: #2FC46A; }
[data-theme="dark"] .sig-chart-svg stop[stop-color="#0A9A45"] { stop-color: #2FBF6C; }
[data-theme="dark"] .sig-chart-svg stop[stop-color="#C23B3B"] { stop-color: #E06663; }
/* CNN 五档罗盘弧段/折线落带（band rgba 属性精确匹配） */
[data-theme="dark"] [stroke="#C23B3B"].gz-arc, [data-theme="dark"] .sig-gauge path[stroke="#C23B3B"] { stroke: #E05B5B; }
[data-theme="dark"] .sig-gauge path[stroke="#D64B4B"] { stroke: #E97676; }
[data-theme="dark"] .sig-gauge path[stroke="#5C636B"] { stroke: #98A2AD; }
[data-theme="dark"] .sig-gauge path[stroke="#0A9A45"] { stroke: #2FBF6C; }
[data-theme="dark"] .sig-gauge path[stroke="#067A38"] { stroke: #1BD57D; }
[data-theme="dark"] .sig-chart-svg rect[fill="rgba(214,75,75,0.16)"] { fill: rgba(226, 91, 91, .18); }
[data-theme="dark"] .sig-chart-svg rect[fill="rgba(214,75,75,0.08)"] { fill: rgba(226, 91, 91, .10); }
[data-theme="dark"] .sig-chart-svg rect[fill="rgba(11,168,74,0.10)"] { fill: rgba(47, 191, 108, .12); }
[data-theme="dark"] .sig-chart-svg rect[fill="rgba(11,168,74,0.18)"] { fill: rgba(47, 191, 108, .20); }

/* ========== §12 JS 注入色兜底（applyDataColors/style 属性；样例静态兜底，
   实现期由 registry 暗色档 + applyDataColors 主题感知接管） ========== */
[data-theme="dark"] .sg-level[data-c="#C23B3B"] { color: #E05B5B !important; }
[data-theme="dark"] .sg-level[data-c="#D64B4B"] { color: #E97676 !important; }
[data-theme="dark"] .sg-level[data-c="#5C636B"] { color: #98A2AD !important; }
[data-theme="dark"] .sg-level[data-c="#0A9A45"] { color: #2FBF6C !important; }
[data-theme="dark"] .sg-level[data-c="#067A38"] { color: #1BD57D !important; }

/* ========== §13 新组件暗色差异（基础样式在 v11.css：外观两档 + 客服二维码 dock/弹窗） ========== */
[data-theme="dark"] .theme-opt.is-active { background: #39424E; box-shadow: 0 1px 3px rgba(0, 0, 0, .4); }
[data-theme="dark"] .spx-dlg { background: rgba(0, 0, 0, .58); }
