/* ============================================================================
 * quant-nexus 主题皮肤 · 多套主题（★2026-11-12 新增，可扩展）
 * ----------------------------------------------------------------------------
 * 架构（关键）：
 *   ① 每套主题只定义一组 CSS 变量（见 §一），约 13 行；
 *   ② 骨架覆盖规则只写一份（见 §二），全部用 var(--qn-*) 取值；
 *   ③ 新增主题 = 加一组变量 + 在 qn-theme.js 的 THEMES 里加一项，**不需要碰 §二**。
 *
 * 默认主题 light **不设 data-theme 属性**，因此 §二 的 html[data-theme] 规则不匹配，
 * 浅色外观与改造前逐像素一致（用户口径：当前主题不变）。
 *
 * 语义色（涨跌红绿 / 阶段色 / 位置色）不在这里改，由 theme.js 管。
 * 图表骨架色（网格/坐标轴）在 theme.js 里按同一主题 id 取值。
 * ==========================================================================*/

/* ── 一、主题变量 ─────────────────────────────────────────────────────────
   命名：bg 页底 / surface 面板 / surface2 次级面 / line 边框 / line2 浅边框
        text 主字 / text2 次字 / dim 更淡 / accent 强调 / accentWeak 强调淡底
        shadow 阴影（深色系一律 none）
   ───────────────────────────────────────────────────────────────────── */
html[data-theme="dark"] {
  color-scheme: dark;
  --qn-bg: #070d18; --qn-surface: #0d1728; --qn-surface2: #12203a;
  --qn-line: #1d3457; --qn-line2: #16263f;
  --qn-text: #e6f0ff; --qn-text2: #8fa8c8; --qn-dim: #5d7595;
  --qn-accent: #38d6ff; --qn-accent-weak: rgba(56,214,255,.10);
  --qn-shadow: none;
}
html[data-theme="midnight"] {
  color-scheme: dark;
  --qn-bg: #14101f; --qn-surface: #1c1730; --qn-surface2: #241d3d;
  --qn-line: #332a52; --qn-line2: #2a2244;
  --qn-text: #eae6f7; --qn-text2: #a79ec4; --qn-dim: #7d739c;
  --qn-accent: #c084fc; --qn-accent-weak: rgba(192,132,252,.14);
  --qn-shadow: none;
}
html[data-theme="sepia"] {
  color-scheme: light;
  --qn-bg: #f2ead7; --qn-surface: #fbf6e9; --qn-surface2: #f5eeda;
  --qn-line: #ddd0b2; --qn-line2: #e9e0c8;
  --qn-text: #3b3223; --qn-text2: #6d5f47; --qn-dim: #9a8a6d;
  --qn-accent: #b45309; --qn-accent-weak: rgba(180,83,9,.10);
  --qn-shadow: 0 2px 8px rgba(120,100,60,.10);
}

/* ── 二、骨架覆盖（所有非默认主题共用） ───────────────────────────────── */
html[data-theme] { background: var(--qn-bg); }

html[data-theme] body { background: var(--qn-bg); color: var(--qn-text); }

/* stock.html（详情页）用 CSS 变量组织，覆盖同名变量即整体转主题 */
html[data-theme] {
  --bg: var(--qn-bg); --line: var(--qn-line); --line2: var(--qn-line2);
  --txt: var(--qn-text); --muted: var(--qn-text2); --dim: var(--qn-dim);
  --blue: var(--qn-accent);
}

/* —— 滚动条 —— */
html[data-theme] * { scrollbar-color: var(--qn-line) transparent; }
html[data-theme] ::-webkit-scrollbar-thumb { background-color: var(--qn-line); }
html[data-theme] ::-webkit-scrollbar-thumb:hover { background-color: var(--qn-line2); }

/* —— 顶栏 / 导航 —— */
html[data-theme] .topbar { background: var(--qn-surface); border-bottom-color: var(--qn-line); box-shadow: var(--qn-shadow); }
html[data-theme] .topbar h1 { color: var(--qn-accent); }
html[data-theme] .nav-tabs a { background: transparent; color: var(--qn-text2); }
html[data-theme] .nav-tabs a:hover { background: var(--qn-accent-weak); color: var(--qn-accent); }
html[data-theme] .nav-tabs a.active { background: var(--qn-accent-weak); color: var(--qn-accent); }
html[data-theme] .updated { color: var(--qn-dim); }
html[data-theme] .visit-badge { color: var(--qn-accent); background: var(--qn-accent-weak); border-color: var(--qn-line); }

/* —— 面板 / 卡片 —— */
html[data-theme] .card,
html[data-theme] .market-type-card,
html[data-theme] .an-card,
html[data-theme] .ld-card,
html[data-theme] .mini-card,
html[data-theme] .rs-header,
html[data-theme] .report-section,
html[data-theme] .pool-side,
html[data-theme] .pool-main,
html[data-theme] .ld-body,
html[data-theme] .bk-info,
html[data-theme] .bk-cell,
html[data-theme] .sys-item,
html[data-theme] .mv-card,
html[data-theme] .mv-cell,
html[data-theme] .blk-cell,
html[data-theme] .stk-chip,
html[data-theme] .act-sec,
html[data-theme] .hd {
  background: var(--qn-surface);
  border-color: var(--qn-line);
  box-shadow: var(--qn-shadow);
  color: var(--qn-text);
}
html[data-theme] .hd .back { background: var(--qn-surface2); border-color: var(--qn-line); color: var(--qn-text2); }

/* —— 补充容器：K 线格子 / 龙头块 / 详情页面板 / 报表表格（首轮遗漏，实测补齐） —— */
html[data-theme] .panel,
html[data-theme] .blk-kcell,
html[data-theme] .bk-kcell,
html[data-theme] .ld-block,
html[data-theme] .ld-title,
html[data-theme] .rs-table,
html[data-theme] .dye-seg button,
html[data-theme] .hd .wl-btn {
  background: var(--qn-surface); border-color: var(--qn-line);
  box-shadow: var(--qn-shadow); color: var(--qn-text);
}
html[data-theme] .bk-subtabs button {
  background: var(--qn-surface2); color: var(--qn-text2); border-color: var(--qn-line);
}
/* 浮层用内联 background，需 !important 才能压过内联样式 */
html[data-theme] #ldFloat,
html[data-theme] #actDetail {
  background: var(--qn-surface) !important;
  border-color: var(--qn-line) !important;
  color: var(--qn-text) !important;
}
html[data-theme] #ldFloat .ft { color: var(--qn-text); }

/* —— 左侧目录（投机情绪 / 行情模式共用 .pool-side）——
   浅色时按钮文字是 #334155，暗底上几乎不可见；这里统一改次亮字，
   选中态从「红底红字」换成主题强调色（暗色下即青色，更贴合科技风）。 */
html[data-theme] .pool-side button { color: var(--qn-text2); }
html[data-theme] .pool-side button:hover { background: var(--qn-surface2); color: var(--qn-text); }
html[data-theme] .pool-side button.active {
  background: var(--qn-accent-weak); color: var(--qn-accent); border-left-color: var(--qn-accent);
}
html[data-theme] .pool-side .side-title { color: var(--qn-accent); }
/* 天梯左侧「5板/4板」竖列 */
html[data-theme] .ld-side { background: var(--qn-surface2); border-right-color: var(--qn-line); }
html[data-theme] .ld-side .h { color: var(--qn-accent); }

/* —— 兜底：JS 内联生成的白色块（详情页右侧指标行、池页标签等） ——
   这些元素没有类名、背景写在 style 里，只能靠属性选择器 + !important 压过内联。
   只匹配「恰好 #fff / #ffffff」，不会误伤 #fff3e0 这类浅色语义底。 */
html[data-theme] [style*="background:#fff;"],
html[data-theme] [style*="background: #fff;"],
html[data-theme] [style*="background:#ffffff"],
html[data-theme] [style$="background:#fff"],
html[data-theme] [style$="background: #fff"] {
  background: var(--qn-surface) !important;
  color: var(--qn-text) !important;
}

/* —— 标题 —— */
html[data-theme] .card h2 { color: var(--qn-accent); border-left-color: var(--qn-accent); }
html[data-theme] .card h3 { color: var(--qn-accent); }
html[data-theme] .market-type-card h3,
html[data-theme] .ld-title,
html[data-theme] .bk-cell-title,
html[data-theme] .rs-subtitle,
html[data-theme] .subtitle { color: var(--qn-text); }

/* —— 文字层级 —— */
html[data-theme] .muted,
html[data-theme] .dim,
html[data-theme] .sub,
html[data-theme] .mv-dim,
html[data-theme] .pool-cond,
html[data-theme] .doc-sub-count,
html[data-theme] .rs-date { color: var(--qn-text2); }
html[data-theme] .concl { background: var(--qn-surface2); border-left-color: var(--qn-accent); color: var(--qn-text2); }
html[data-theme] .kv { color: var(--qn-text2); }

/* —— 表格 —— */
html[data-theme] table,
html[data-theme] .pool-table,
html[data-theme] .bk-table,
html[data-theme] .rs-table,
html[data-theme] .act-tb { background: var(--qn-surface); color: var(--qn-text); border-color: var(--qn-line); }
html[data-theme] table th,
html[data-theme] .pool-table th,
html[data-theme] .bk-table th,
html[data-theme] .rs-table th,
html[data-theme] .act-tb th {
  background: var(--qn-surface2); color: var(--qn-text2); border-bottom-color: var(--qn-line);
}
html[data-theme] table td,
html[data-theme] .pool-table td,
html[data-theme] .bk-table td,
html[data-theme] .rs-table td,
html[data-theme] .act-tb td { border-color: var(--qn-line2); color: var(--qn-text); }
html[data-theme] table tbody tr:nth-child(even) td { background: var(--qn-surface2); }
html[data-theme] table tbody tr:hover td,
html[data-theme] .pool-table tbody tr:hover td,
html[data-theme] .bk-table tbody tr:hover td { background: var(--qn-accent-weak); }

/* —— 表单 / 按钮 —— */
html[data-theme] input,
html[data-theme] select,
html[data-theme] textarea {
  background: var(--qn-bg); color: var(--qn-text);
  border: 1px solid var(--qn-line); border-radius: 6px;
}
html[data-theme] input::placeholder,
html[data-theme] textarea::placeholder { color: var(--qn-dim); }
html[data-theme] .btn { background: var(--qn-accent); color: #08111c; }
html[data-theme] .btn:hover { filter: brightness(1.08); }
html[data-theme] .pager-btn,
html[data-theme] .fl-btn,
html[data-theme] .bk-subtabs a,
html[data-theme] .doc-tab { background: var(--qn-surface2); color: var(--qn-text2); border-color: var(--qn-line); }
html[data-theme] .pager-btn:hover,
html[data-theme] .bk-subtabs a:hover,
html[data-theme] .doc-tab:hover { background: var(--qn-accent-weak); color: var(--qn-accent); }
html[data-theme] .bk-subtabs a.active,
html[data-theme] .doc-tab.active { background: var(--qn-accent-weak); color: var(--qn-accent); }

/* —— 胶囊 / 徽标 —— */
html[data-theme] .phase-tag { background: var(--qn-accent-weak); color: var(--qn-accent); }
html[data-theme] .node { background: var(--qn-accent-weak); color: var(--qn-accent); }
html[data-theme] .badge,
html[data-theme] .date-badge,
html[data-theme] .pool-date { background: var(--qn-surface2); color: var(--qn-text2); border-color: var(--qn-line); }

/* —— 分隔 / 进度条底 —— */
html[data-theme] .bar { background: var(--qn-surface2); }
html[data-theme] .idx-sep { background: var(--qn-line2); }

/* ── 三、主题下拉框（由 qn-theme.js 按 THEMES 生成 option） ───────────── */
.theme-sel {
  font-size: 12px; padding: 3px 8px; border-radius: 6px; cursor: pointer;
  border: 1px solid #d6dde6; background: #fff; color: #475569; line-height: 1.4;
  max-width: 112px;
}
html[data-theme] .theme-sel {
  border-color: var(--qn-line); background: var(--qn-surface2); color: var(--qn-text2);
}

/* ★2026-11-14 顶栏「日期+批次」胶囊在非浅色主题下的配色（浅色由 nav.css 定死，这里不覆盖，
   保证「浅色·默认」与改动前完全一致）。暗色走直角风：胶囊圆角收掉，只留细边。 */
html[data-theme="dark"] .qn-asof {
  border-radius: 0;
  background: rgba(56,214,255,.06);
  border-color: rgba(56,214,255,.20);
  color: rgba(150,190,220,.85);
}
/* 访问量徽标（2026-11-14 从运维页顶栏下移到页脚）：原样式是浅底蓝字，暗色下成一块白斑 */
html[data-theme="dark"] .visit-badge {
  background: rgba(56,189,248,.10);
  border-color: rgba(56,189,248,.24);
  color: #7dd3fc;
}

/* ★2026-11-14 运维页「访问统计」卡片：KPI / 表格 / 分页按钮都是浅色硬编码，暗色下需整套改写 */
html[data-theme] .vt-kpi {
  background: var(--qn-surface2); border-color: var(--qn-line);
}
html[data-theme] .vt-kpi .k { color: var(--qn-text2); }
html[data-theme] .vt-kpi .v { color: var(--qn-text); }
html[data-theme] .vt th {
  background: rgba(18,32,56,.55); color: var(--qn-text2);
  border-bottom-color: var(--qn-line);
}
html[data-theme] .vt td { color: var(--qn-text); border-bottom-color: rgba(29,52,87,.55); }
html[data-theme] .vt tbody tr:hover { background: rgba(56,214,255,.05); }
html[data-theme] .vt .empty { color: var(--qn-dim); }
html[data-theme] .vt-pager { color: var(--qn-text2); }
html[data-theme] .vt-pager button {
  background: var(--qn-surface2); border-color: var(--qn-line); color: var(--qn-text2);
}
html[data-theme] .vt-pager button:not(:disabled):hover {
  border-color: rgba(56,214,255,.40); color: var(--qn-text);
}
html[data-theme="midnight"] .qn-asof,
html[data-theme="sepia"] .qn-asof {
  border-color: var(--qn-line); background: var(--qn-surface2); color: var(--qn-text2);
}

/* ══════════════════════════════════════════════════════════════════════════
 * 四、暗黑主题 · 科技质感增强（★2026-11-12 用户要求「看着丝滑、科技质感」）
 * ----------------------------------------------------------------------------
 * 只作用于 dark，其他主题完全不受影响。手法：深空底 + 冷光晕、玻璃面板
 * （半透明 + 模糊 + 内高光）、青色细描边、状态切换过渡。
 * 不加呼吸动画/闪烁 —— 数据站长时间盯盘，动效只做 hover/focus 的轻量过渡。
 * ══════════════════════════════════════════════════════════════════════════ */

html[data-theme="dark"] body {
  background-color: #070d18;
  background-image:
    radial-gradient(1100px 520px at 50% -8%, rgba(30,86,150,.34), transparent 62%),
    radial-gradient(900px 480px at 100% 108%, rgba(12,110,140,.16), transparent 58%),
    linear-gradient(rgba(56,189,248,.030) 1px, transparent 1px),
    linear-gradient(90deg, rgba(56,189,248,.030) 1px, transparent 1px);
  background-size: auto, auto, 52px 52px, 52px 52px;
  background-attachment: fixed;
}

/* 顶栏：玻璃拟态 + 底部冷光细线 */
html[data-theme="dark"] .topbar {
  background: rgba(8,15,27,.88);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  backdrop-filter: blur(12px) saturate(150%);
  border-bottom: 1px solid rgba(56,189,248,.22);
  box-shadow: 0 1px 20px rgba(0,0,0,.60), inset 0 1px 0 rgba(56,189,248,.10);
}
html[data-theme="dark"] .topbar h1 { color: #7fe3ff; text-shadow: 0 0 16px rgba(56,189,248,.45); }
html[data-theme="dark"] .nav-tabs a { border: 1px solid transparent; transition: all .22s ease; }
html[data-theme="dark"] .nav-tabs a:hover { border-color: rgba(56,189,248,.30); }
html[data-theme="dark"] .nav-tabs a.active {
  background: rgba(56,189,248,.14);
  border-color: rgba(56,189,248,.42);
  color: #8fe8ff;
  box-shadow: 0 0 14px rgba(56,189,248,.25), inset 0 0 12px rgba(56,189,248,.12);
}

/* 面板：微渐变 + 内高光 + 悬浮提亮 */
html[data-theme="dark"] :is(
  .card, .market-type-card, .an-card, .ld-card, .mini-card, .rs-header, .report-section,
  .pool-side, .pool-main, .ld-body, .bk-info, .bk-cell, .sys-item, .mv-card, .mv-cell,
  .blk-cell, .stk-chip, .act-sec, .hd, .panel, .blk-kcell, .bk-kcell, .ld-block, .ld-title, .rs-table
) {
  background: linear-gradient(180deg, rgba(19,33,58,.94), rgba(10,19,33,.94));
  border: 1px solid rgba(56,189,248,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 8px 24px rgba(0,0,0,.38);
  transition: border-color .25s ease, box-shadow .25s ease;
}
html[data-theme="dark"] :is(.card, .market-type-card, .an-card, .ld-card, .mini-card, .hd, .panel):hover {
  border-color: rgba(56,189,248,.34);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 10px 28px rgba(0,0,0,.46), 0 0 0 1px rgba(56,189,248,.10);
}

/* 卡片标题：细发光，避免大片文字发虚只给标题 */
html[data-theme="dark"] .card h2 { text-shadow: 0 0 14px rgba(56,189,248,.35); }
html[data-theme="dark"] .card h2 { border-left: 3px solid #38d6ff; box-shadow: -8px 0 18px -8px rgba(56,189,248,.75); }

/* 表头：底部冷光线 */
html[data-theme="dark"] table th,
html[data-theme="dark"] .pool-table th,
html[data-theme="dark"] .bk-table th,
html[data-theme="dark"] .rs-table th,
html[data-theme="dark"] .act-tb th {
  background: rgba(18,32,56,.92);
  border-bottom: 1px solid rgba(56,189,248,.28);
  box-shadow: 0 6px 14px -10px rgba(56,189,248,.60);
}

/* 行悬停：青色微光扫过 */
html[data-theme="dark"] table tbody tr { transition: background .18s ease; }
html[data-theme="dark"] table tbody tr:hover td,
html[data-theme="dark"] .pool-table tbody tr:hover td,
html[data-theme="dark"] .bk-table tbody tr:hover td {
  background: rgba(56,189,248,.07);
}

/* 滚动条：青色微光 */
html[data-theme="dark"] ::-webkit-scrollbar-thumb { background-color: #1d3457; }
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background-color: #2f6fa8; }

/* 输入/下拉：聚焦时青色描边 */
html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus {
  outline: none; border-color: rgba(56,189,248,.55);
  box-shadow: 0 0 0 3px rgba(56,189,248,.14);
}

/* 语义胶囊：暗底 + 亮字（保留多/空/分歧的色相区分，去掉刺眼浅底） */
html[data-theme="dark"] .phase-tag.t-mp,
html[data-theme="dark"] .market-type-card h3 .phase-tag.t-mp { background: rgba(251,191,36,.14); color: #fbbf24; }
html[data-theme="dark"] .phase-tag.t-bk,
html[data-theme="dark"] .market-type-card h3 .phase-tag.t-bk { background: rgba(196,181,253,.14); color: #c4b5fd; }
html[data-theme="dark"] .phase-tag.t-zd,
html[data-theme="dark"] .phase-tag.t-long,
html[data-theme="dark"] .market-type-card h3 .phase-tag.t-zd,
html[data-theme="dark"] .market-type-card h3 .phase-tag.t-long { background: rgba(248,113,113,.15); color: #fca5a5; }
html[data-theme="dark"] .phase-tag.t-short,
html[data-theme="dark"] .market-type-card h3 .phase-tag.t-short { background: rgba(74,222,128,.14); color: #86efac; }
html[data-theme="dark"] .phase-tag.t-none,
html[data-theme="dark"] .market-type-card h3 .phase-tag.t-none { background: rgba(148,163,184,.12); color: #94a3b8; }
html[data-theme="dark"] .core-type { background: rgba(56,189,248,.10); color: #7dd3fc; }

/* ══════════════════════════════════════════════════════════════════════════
 * 五、暗黑 · 直角化 + HUD 细节（★2026-11-12 用户：「不要圆角，要科技感」）
 * ----------------------------------------------------------------------------
 * 参考图为工业 HUD：全部直角矩形、细描边、编号、状态点。
 * 圆角只保留真正需要是圆的元素（自选股「+」圆形按钮、状态圆点）。
 * ══════════════════════════════════════════════════════════════════════════ */

/* 直角化：覆盖各页自己的 border-radius（都在页面 <style> 里，特异性不一，故用 !important） */
html[data-theme="dark"] :is(
  .topbar, .card, .market-type-card, .an-card, .ld-card, .mini-card, .rs-header, .report-section,
  .pool-side, .pool-main, .ld-body, .bk-info, .bk-cell, .sys-item, .mv-card, .mv-cell,
  .blk-cell, .stk-chip, .act-sec, .hd, .panel, .blk-kcell, .bk-kcell, .ld-block, .ld-title,
  .rs-table, .btn, .pager-btn, .fl-btn, .doc-tab, .badge, .date-badge, .pool-date,
  .phase-tag, .node, .pos-tag, .core-type, .core-board, .nav-tabs a, .bk-subtabs a,
  input, select, textarea, table, .ld-side, #ldFloat, #actDetail
) { border-radius: 0 !important; }

/* 例外：自选股「+」是圆形按钮，直角会变形 */
html[data-theme="dark"] .hd .wl-btn { border-radius: 50% !important; }

/* —— 顶栏导航：直角 + 底部状态光条 —— */
html[data-theme="dark"] .nav-tabs a { border: 1px solid transparent; }
html[data-theme="dark"] .nav-tabs a:hover { border-color: rgba(56,214,255,.28); }
html[data-theme="dark"] .nav-tabs a.active {
  background: rgba(56,214,255,.10);
  border-color: rgba(56,214,255,.42);
  box-shadow: inset 0 -2px 0 #38d6ff, 0 0 16px rgba(56,214,255,.18);
}

/* —— 卡片 HUD 角标：左上 / 右下 两个 L 形描边 —— */
html[data-theme="dark"] :is(.card, .market-type-card, .an-card, .pool-side, .pool-main, .hd, .panel) { position: relative; }
html[data-theme="dark"] :is(.card, .market-type-card, .an-card, .pool-side, .pool-main, .hd, .panel)::before,
html[data-theme="dark"] :is(.card, .market-type-card, .an-card, .pool-side, .pool-main, .hd, .panel)::after {
  content: ''; position: absolute; width: 10px; height: 10px; pointer-events: none;
  border: 0 solid rgba(56,214,255,.55);
}
html[data-theme="dark"] :is(.card, .market-type-card, .an-card, .pool-side, .pool-main, .hd, .panel)::before {
  top: -1px; left: -1px; border-top-width: 1px; border-left-width: 1px;
}
html[data-theme="dark"] :is(.card, .market-type-card, .an-card, .pool-side, .pool-main, .hd, .panel)::after {
  bottom: -1px; right: -1px; border-bottom-width: 1px; border-right-width: 1px;
}

/* —— 左侧目录：独立直角块 + 前置小图标（★2026-11-12 用户：编号去掉，换小图标）——
   原先用 CSS counter 生成 01–17，用户认为不如图标；现改为图标占位，
   图标由 qn-icons.js 注入（pool 页读 data-llm/data-model/data-pool）。 */
html[data-theme="dark"] .pool-side { width: 170px; padding: 6px 5px; }
html[data-theme="dark"] .pool-side button {
  position: relative; padding: 7px 10px;
  background: rgba(18,32,56,.55);
  border: 1px solid rgba(29,52,87,.95);
  border-left: 2px solid transparent;
  margin-bottom: 4px;
  letter-spacing: .2px;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
html[data-theme="dark"] .pool-side button:last-child { margin-bottom: 0; }
html[data-theme="dark"] .pool-side button:hover {
  background: rgba(26,44,72,.85); border-color: rgba(56,214,255,.28); color: var(--qn-text);
}
html[data-theme="dark"] .pool-side button.active {
  background: rgba(56,214,255,.10);
  border-color: rgba(56,214,255,.40);
  border-left-color: #38d6ff;
  box-shadow: 0 0 14px rgba(56,214,255,.14);
}

/* —— 表头/表体：直角线的分隔感 —— */
html[data-theme="dark"] table th { letter-spacing: .3px; }
html[data-theme="dark"] table td { border-bottom: 1px solid rgba(29,52,87,.55); }

/* —— 侧栏与主区无缝拼接（★2026-11-12 用户：有空隙显得轻浮）——
   去掉 12px 间距，两者共边、等高，只留 1px 分隔线，视觉上是一整块控制台。 */
html[data-theme="dark"] .pool-wrap { gap: 0; align-items: stretch; }
html[data-theme="dark"] .pool-side {
  border-right: 1px solid rgba(56,214,255,.22);
}
html[data-theme="dark"] .pool-main { border-left: 0; }
/* 顶栏与首屏内容之间也不留白缝 */
html[data-theme="dark"] .pool-wrap { margin-top: 10px; }

/* 分类列（池页「产业龙头/主线/…」标签格）：原规则是「类+元素」组合，
   特异性高于通用的 table td，必须同结构覆盖才不会留白底。 */
html[data-theme] .stk-cat td.cat { background: var(--qn-surface2); color: var(--qn-text2); }
