/* shukut 主题风格 · 11 款（默认 + 10 款）· v2026-09-27
   用法：<html data-theme="id">，非默认时再加 class="themed"。
   默认（default）不改任何东西：沿用 tokens.css / site.css + 启动台「背景」皮肤。
   所有主题统一 A股 红涨绿跌（--up 红 / --down 绿）。
   保存键：localStorage["shukut-theme"]；切换逻辑见 assets/theme.js。 */

/* ========== 1. 各主题变量 ========== */
/* 选择器写成 html[..] 与 html[..] body 两处：body[data-bg] 会在 body 上重设变量，这里特意压过它 */

/* 01 极简现代 Minimal Light */
html[data-theme="minimal"], html[data-theme="minimal"] body {
  --page:#ffffff; --bg:#ffffff; --page-bg:#ffffff;
  --card:#f7f8fa; --card-solid:#ffffff; --track:#eceef2; --border:#e8eaee;
  --text:#1a1d21; --muted:#6b7280;
  --accent:#2563eb; --accent-soft:rgba(37,99,235,.10); --on-accent:#ffffff;
  --up:#e02424; --down:#16a34a; --warn:#f59e0b;
  --shadow:none; --shadow-lg:0 8px 30px rgba(17,24,39,.08);
  --frost:rgba(255,255,255,.9); --btn-bg:#ffffff; --input-bg:#ffffff; --zebra:#eff1f4;
  --radius:14px; --font:"PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,sans-serif;
}
/* 02 暗色终端 Dark Terminal */
html[data-theme="terminal"], html[data-theme="terminal"] body {
  --page:#0b0e14; --bg:#0b0e14; --page-bg:#0b0e14;
  --card:#11151f; --card-solid:#11151f; --track:#171c28; --border:#1e2532;
  --text:#e6eaf0; --muted:#8a92a0;
  --accent:#00e0a4; --accent-soft:rgba(0,224,164,.12); --on-accent:#03140e;
  --up:#ff4d4f; --down:#00c853; --warn:#ffb020;
  --shadow:none; --shadow-lg:0 10px 40px rgba(0,0,0,.5);
  --frost:rgba(11,14,20,.9); --btn-bg:#151a26; --input-bg:#0e121b; --zebra:#141925;
  --radius:10px; --font:"SF Mono","JetBrains Mono",Menlo,Consolas,"PingFang SC","Microsoft YaHei",monospace;
}
/* 03 玻璃拟态 Glassmorphism */
html[data-theme="glass"], html[data-theme="glass"] body {
  --page:#8a63ff; --bg:rgba(255,255,255,.35);
  --page-bg:linear-gradient(150deg,#5b6cff,#9b5bff 55%,#ff6ba8);
  --card:rgba(255,255,255,.6); --card-solid:#f4f0ff; --track:rgba(255,255,255,.4); --border:rgba(255,255,255,.7);
  --text:#1a1530; --muted:#3f3a5c;
  --accent:#6d5ef7; --accent-soft:rgba(109,94,247,.16); --on-accent:#ffffff;
  --up:#c8102e; --down:#13793f; --warn:#b97a06;
  --shadow:0 8px 32px rgba(40,20,90,.18); --shadow-lg:0 16px 48px rgba(40,20,90,.28);
  --frost:rgba(255,255,255,.3); --btn-bg:rgba(255,255,255,.55); --input-bg:rgba(255,255,255,.7); --zebra:rgba(255,255,255,.3);
  --radius:18px; --font:"PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,sans-serif;
}
/* 04 国潮红金 Guochao Red-Gold */
html[data-theme="guochao"], html[data-theme="guochao"] body {
  --page:#1a0e0e; --bg:#1a0e0e;
  --page-bg:radial-gradient(1100px 520px at 85% -8%,rgba(201,162,39,.10),transparent 60%),radial-gradient(900px 480px at 0% 100%,rgba(224,49,49,.08),transparent 60%),#1a0e0e;
  --card:#241414; --card-solid:#241414; --track:#2e1a1a; --border:#3a2424;
  --text:#f3e9d8; --muted:#b89b7e;
  --accent:#c9a227; --accent-soft:rgba(201,162,39,.14); --on-accent:#1a0e0e;
  --up:#f04a4a; --down:#2e9e54; --warn:#d9a441;
  --shadow:none; --shadow-lg:0 10px 40px rgba(0,0,0,.5);
  --frost:rgba(26,14,14,.92); --btn-bg:#2c1818; --input-bg:#1f1111; --zebra:#2a1717;
  --radius:14px; --font:-apple-system,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  --font-title:"Songti SC","Noto Serif SC","Source Han Serif SC",STSong,serif;
}
/* 05 Fintech 蓝绿 Fintech Gradient */
html[data-theme="fintech"], html[data-theme="fintech"] body {
  --page:#0a1a2f; --bg:#0a1a2f; --page-bg:linear-gradient(180deg,#0b1d35,#08162a);
  --card:#0f2540; --card-solid:#0f2540; --track:#13304f; --border:#16365c;
  --text:#e8f1fb; --muted:#8aa6c4;
  --accent:#0ea5e9; --accent-soft:rgba(14,165,233,.14); --on-accent:#03121f;
  --up:#ff5a5f; --down:#22c55e; --warn:#fbbf24;
  --shadow:0 6px 20px rgba(0,0,0,.25); --shadow-lg:0 12px 40px rgba(0,0,0,.45);
  --frost:rgba(10,26,47,.9); --btn-bg:#122c4c; --input-bg:#0c2038; --zebra:#11294a;
  --radius:14px; --font:"PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,sans-serif;
}
/* 06 新拟态 Neumorphism */
html[data-theme="neumorph"], html[data-theme="neumorph"] body {
  --page:#e0e5ec; --bg:#e0e5ec; --page-bg:#e0e5ec;
  --card:#e0e5ec; --card-solid:#e0e5ec; --track:#d5dbe4; --border:transparent;
  --text:#3f4a5c; --muted:#66728a;
  --accent:#5b7cfa; --accent-soft:rgba(91,124,250,.12); --on-accent:#ffffff;
  --up:#d12a44; --down:#197d4c; --warn:#b9821f;
  --shadow:6px 6px 13px #c3c8d2,-6px -6px 13px #fdfeff; --shadow-lg:10px 10px 24px #c3c8d2,-10px -10px 24px #fdfeff;
  --neu-sm:3px 3px 7px #c3c8d2,-3px -3px 7px #fdfeff; --neu-in:inset 3px 3px 7px #c3c8d2,inset -3px -3px 7px #fdfeff;
  --frost:#e0e5ec; --btn-bg:#e0e5ec; --input-bg:#e0e5ec; --zebra:#dbe0e8;
  --radius:20px; --font:"PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,sans-serif;
}
/* 07 高密专业 High-Density Pro */
html[data-theme="dense"], html[data-theme="dense"] body {
  --page:#f3f5f8; --bg:#f3f5f8; --page-bg:#f3f5f8;
  --card:#fcfcfd; --card-solid:#ffffff; --track:#eef1f5; --border:#dce1e8;
  --text:#11161d; --muted:#5b6573;
  --accent:#1f6feb; --accent-soft:rgba(31,111,235,.10); --on-accent:#ffffff;
  --up:#d61f2b; --down:#0f9d58; --warn:#e0922a;
  --shadow:none; --shadow-lg:0 6px 24px rgba(17,22,29,.12);
  --frost:#ffffff; --btn-bg:#ffffff; --input-bg:#ffffff; --zebra:#f5f7fa;
  --radius:6px; --radius-sm:4px; --radius-pill:6px; --font:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
/* 08 杂志编辑 Editorial */
html[data-theme="editorial"], html[data-theme="editorial"] body {
  --page:#faf7f2; --bg:#faf7f2; --page-bg:#faf7f2;
  --card:#ffffff; --card-solid:#ffffff; --track:#f3eee6; --border:#e3ddd2;
  --text:#1c1a17; --muted:#6f695f;
  --accent:#b91c1c; --accent-soft:rgba(185,28,28,.08); --on-accent:#ffffff;
  --up:#c0392b; --down:#1e7d4f; --warn:#b8860b;
  --shadow:none; --shadow-lg:0 8px 30px rgba(28,26,23,.10);
  --frost:#faf7f2; --btn-bg:#ffffff; --input-bg:#ffffff; --zebra:#fbf9f5;
  --radius:4px; --radius-pill:3px;
  --font:"Songti SC","Noto Serif SC","Source Han Serif SC",STSong,Georgia,serif;
  --font-title:"Songti SC","Noto Serif SC","Source Han Serif SC",STSong,Georgia,serif;
}
/* 09 柔和粉彩 Soft Pastel */
html[data-theme="pastel"], html[data-theme="pastel"] body {
  --page:#fdf6f9; --bg:#fdf6f9;
  --page-bg:radial-gradient(900px 500px at 100% 0%,#f3eaff 0%,transparent 55%),radial-gradient(900px 500px at 0% 100%,#e9f3ff 0%,transparent 55%),#fdf6f9;
  --card:#ffffff; --card-solid:#ffffff; --track:#f7eef3; --border:#f0e6ee;
  --text:#4a4458; --muted:#827b92;
  --accent:#6d8fdc; --accent-soft:rgba(124,156,224,.16); --on-accent:#ffffff;
  --up:#d9534f; --down:#2f8f5f; --warn:#c98a2a;
  --shadow:0 6px 20px rgba(200,150,185,.16); --shadow-lg:0 14px 40px rgba(200,150,185,.24);
  --frost:rgba(255,255,255,.8); --btn-bg:#ffffff; --input-bg:#ffffff; --zebra:#fdf8fb;
  --radius:24px; --font:"PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,sans-serif;
}
/* 10 赛博霓虹 Cyber Neon */
html[data-theme="neon"], html[data-theme="neon"] body {
  --page:#05060a; --bg:#05060a;
  --page-bg:radial-gradient(900px 500px at 92% -8%,rgba(255,43,214,.12),transparent 60%),radial-gradient(900px 520px at 0% 0%,rgba(0,240,255,.08),transparent 60%),#05060a;
  --card:#0b0f1a; --card-solid:#0b0f1a; --track:#0f1624; --border:#11303a;
  --text:#d7f7ff; --muted:#7896a4;
  --accent:#00f0ff; --accent-2:#ff2bd6; --accent-soft:rgba(0,240,255,.12); --on-accent:#00161a;
  --up:#ff3860; --down:#39ff14; --warn:#ffb800;
  --shadow:0 0 16px rgba(0,240,255,.12); --shadow-lg:0 0 40px rgba(0,240,255,.2);
  --frost:rgba(5,6,10,.9); --btn-bg:#0e1422; --input-bg:#070a12; --zebra:#0e1320;
  --radius:12px; --font:"SF Mono","JetBrains Mono",Menlo,Consolas,"PingFang SC","Microsoft YaHei",monospace;
}

/* 暗色主题：滚动条 / 下拉框 / 表单控件用暗色 */
html[data-theme="terminal"], html[data-theme="guochao"], html[data-theme="fintech"], html[data-theme="neon"] { color-scheme: dark; }
html[data-theme="minimal"], html[data-theme="glass"], html[data-theme="neumorph"], html[data-theme="dense"],
html[data-theme="editorial"], html[data-theme="pastel"] { color-scheme: light; }

/* ========== 2. 所有非默认主题共用：变量别名 ========== */
html.themed, html.themed body {
  --raised: var(--card);
  --light: var(--card);
  --dark: rgba(0,0,0,.08);
  --border-strong: var(--border);
  --info: var(--accent);
  --dash-bg: var(--page);
  --dash-card: var(--card);
  --dash-line: var(--border);
  --dash-text: var(--text);
  --dash-muted: var(--muted);
  --dash-up: var(--up);
  --dash-down: var(--down);
  --dash-gold: var(--accent);
  --dash-info: var(--accent);
  --dash-track: var(--track);
  --dash-radius: var(--radius);
  --chart-up: var(--up);
  --chart-down: var(--down);
}

/* ========== 3. 所有非默认主题共用：把写死的白色/蓝色换成变量 ========== */
html.themed body {
  background: var(--page-bg, var(--page)) !important;
  background-attachment: fixed !important;
  color: var(--text) !important;
  font-family: var(--font) !important;
}
html.themed aside.rail {
  background: var(--frost) !important;
  border-right: 1px solid var(--border) !important;
}
html.themed .brand { color: var(--text) !important; }
html.themed nav button { color: var(--text) !important; }
html.themed nav button:hover { background: color-mix(in srgb, var(--text) 7%, transparent) !important; }
html.themed nav button.on { background: var(--accent-soft) !important; color: var(--accent) !important; }

/* 胶囊 / 按钮 */
html.themed .mods button, html.themed .wtabs button, html.themed .icon-add, html.themed .menu button,
html.themed .dlg button, html.themed .rpanel .kpi, html.themed .kpis .kpi, html.themed button.kpi,
html.themed .pill, html.themed .tick .pill, html.themed .rtabs button, html.themed .seg button,
html.themed .subnav button, html.themed .ai-seg button, html.themed .ocx-row button,
html.themed #corner-btn, html.themed #corner-branch .branch, html.themed .branch button,
html.themed .start-acts button {
  background: var(--btn-bg) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
html.themed .rtabs button, html.themed .mods button { color: var(--text) !important; }
html.themed .mods button.on, html.themed .wtabs button.on, html.themed .kpis .kpi.on, html.themed button.kpi.on,
html.themed .pill.on, html.themed .tick .pill.on, html.themed .rtabs button.on, html.themed .seg button.on,
html.themed .subnav button.on, html.themed .ai-seg button.on {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: var(--on-accent) !important;
}
html.themed .kpis .kpi b, html.themed button.kpi b { color: var(--text) !important; }
html.themed .kpis .kpi.on b, html.themed button.kpi.on b { color: var(--on-accent) !important; }
html.themed .kpis .kpi.on span, html.themed button.kpi.on span { color: color-mix(in srgb, var(--on-accent) 85%, transparent) !important; }

/* 看板 KPI 卡 */
html.themed #night .night-stats .kpi, html.themed #night .kpi-rule-block .kpi,
html.themed .desk-dash .kpi, html.themed .kpi-grid .kpi {
  background: var(--card) !important;
  border-color: var(--border) !important;
}

/* 启动台图标 */
html.themed .icon-btn, html.themed .icon-add { background: var(--card) !important; color: var(--text) !important; }
html.themed .icon-btn .mark, html.themed .icon-add .plus { background: var(--track) !important; }

/* 输入框 / 搜索 */
html.themed input, html.themed select, html.themed textarea {
  background: var(--input-bg) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
html.themed input::placeholder, html.themed textarea::placeholder { color: var(--muted) !important; opacity: 1; }
html.themed .websearch, html.themed .searchbox, html.themed .search-bar, html.themed #search-form, html.themed .qbox {
  background: var(--input-bg) !important;
  border-color: var(--border) !important;
}
html.themed .websearch input, html.themed .websearch .engine { background: transparent !important; color: var(--text) !important; }
html.themed .websearch .go-search, html.themed .websearch .go-search:hover {
  background: var(--accent) !important; color: var(--on-accent) !important;
}
html.themed select option { background: var(--card-solid); color: var(--text); }

/* 表格 */
html.themed th { background: var(--card) !important; color: var(--muted) !important; }
html.themed td { color: var(--text); border-bottom-color: color-mix(in srgb, var(--border) 80%, transparent) !important; }
html.themed tbody tr:nth-child(even) td, html.themed table tr:nth-child(even) td,
html.themed .tablewrap tr:nth-child(even) td, html.themed .dash-card tr:nth-child(even) td {
  background: var(--zebra) !important;
}
html.themed #hold-table .col-grip::after { background: color-mix(in srgb, var(--muted) 45%, transparent); }
html.themed #hold-table .col-grip:hover::after { background: var(--accent); }
html.themed [style*="color:#a59e96"] { color: var(--muted) !important; }
html.themed .dash-card .cnt, html.themed #night .night-stats .dash-card .cnt { background: var(--track) !important; color: var(--accent) !important; }

/* 主按钮 */
html.themed .cta, html.themed .start-btn, html.themed .go-btn, html.themed #night-start, html.themed #lazy-start,
html.themed #eight-start, html.themed #auction-start, html.themed button.go, html.themed #start-btn,
html.themed #brief-refresh, html.themed .refresh, html.themed a.ai-link {
  background: var(--accent) !important;
  color: var(--on-accent) !important;
}
html.themed .hbar .fill, html.themed .hbar-fill, html.themed .bar > i { background: var(--accent) !important; }
html.themed .hbar .fill.up, html.themed .hbar-fill.up { background: var(--up) !important; }
html.themed .hbar .fill.down, html.themed .hbar-fill.down { background: var(--down) !important; }

/* 其它写死的颜色 */
html.themed .ocx-row { border-top-color: var(--border); }
html.themed #quant-brief { background: var(--card) !important; box-shadow: var(--shadow) !important; border: 1px solid var(--border); }
html.themed .dlg-back { background: rgba(0,0,0,.35); }
html.themed .night-m-card { background: var(--card) !important; border-color: var(--border) !important; }
html.themed .night-m-divider { background: var(--accent-soft) !important; color: var(--accent) !important; }
html.themed #night .night-stats tr.night-stats-divider td { background: var(--accent-soft) !important; color: var(--accent) !important; border-bottom-color: var(--border) !important; }
html.themed #night .night-stats tr.night-stats-row:hover td { background: var(--accent-soft) !important; }
html.themed .tag, html.themed .tag.info { background: var(--accent-soft) !important; color: var(--accent) !important; }
html.themed .tag.up, html.themed #night .night-stats .tag.hit { background: color-mix(in srgb, var(--up) 14%, transparent) !important; color: var(--up) !important; }
html.themed .tag.down, html.themed #night .night-stats .tag.miss { background: color-mix(in srgb, var(--down) 14%, transparent) !important; color: var(--down) !important; }
html.themed .sealbar i { background: var(--up); }
html.themed footer { color: var(--muted); }
html.themed .lad, html.themed .tick-card, html.themed #tick-detail { background: var(--track) !important; color: var(--text); }
html.themed .stat { background: var(--track); }

/* iframe 外框（框内的子页面自身配色不变） */
html.themed .frame-well { background: var(--card) !important; }
html.themed iframe.tall { background: #ffffff; }

/* SVG 图表：页面里写死的涨跌色 → 主题红/绿（仍是红涨绿跌） */
html.themed svg [stroke="#b36b5e"], html.themed svg [stroke="#ff4d4f"], html.themed svg [stroke="#ff3b30"], html.themed svg [stroke="#ff6961"] { stroke: var(--chart-up); }
html.themed svg [fill="#b36b5e"], html.themed svg [fill="#ff4d4f"], html.themed svg [fill="#ff3b30"], html.themed svg [fill="#ff6961"] { fill: var(--chart-up); }
html.themed svg [stroke="#6d8a72"], html.themed svg [stroke="#3dd68c"], html.themed svg [stroke="#248a3d"], html.themed svg [stroke="#30d158"] { stroke: var(--chart-down); }
html.themed svg [fill="#6d8a72"], html.themed svg [fill="#3dd68c"], html.themed svg [fill="#248a3d"], html.themed svg [fill="#30d158"] { fill: var(--chart-down); }
html.themed svg [stroke="#d2d2d7"], html.themed svg [stroke="#2a3340"] { stroke: var(--border); }
html.themed svg [fill="#6e6e73"], html.themed svg [fill="#9aa6b2"] { fill: var(--muted); }
html.themed svg [stroke="#0071e3"] { stroke: var(--accent); }
html.themed svg [fill="#0071e3"] { fill: var(--accent); }

/* ========== 4. 各主题专属质感 ========== */

/* 02 终端：数字荧光、品牌主色 */
html[data-theme="terminal"] .brand { color: var(--accent) !important; }
html[data-theme="terminal"] .card h3, html[data-theme="terminal"] .kpis .kpi b,
html[data-theme="terminal"] .kpi .k-value, html[data-theme="terminal"] #idx-clock { text-shadow: 0 0 12px rgba(0,224,164,.25); }
html[data-theme="terminal"] .hero h1, html[data-theme="terminal"] h1.sec, html[data-theme="terminal"] .recap h2 { color: var(--accent) !important; }

/* 03 玻璃：毛玻璃卡片 */
html[data-theme="glass"] aside.rail { border-right-color: rgba(255,255,255,.35) !important; }
html[data-theme="glass"] .hero, html[data-theme="glass"] .card, html[data-theme="glass"] .ai-card,
html[data-theme="glass"] .recap, html[data-theme="glass"] .tablewrap, html[data-theme="glass"] .frame-well,
html[data-theme="glass"] .dash-card, html[data-theme="glass"] .icon-btn, html[data-theme="glass"] .websearch,
html[data-theme="glass"] .kpi-rule-block, html[data-theme="glass"] .mod-idle, html[data-theme="glass"] .night-hist,
html[data-theme="glass"] .group, html[data-theme="glass"] .tick {
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
}
html[data-theme="glass"] #idx-timebar {
  background: rgba(255,255,255,.5); border: 1px solid rgba(255,255,255,.65); border-radius: 14px;
  padding: 8px 12px; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
html[data-theme="glass"] .dlg, html[data-theme="glass"] .menu { background: var(--card-solid) !important; }
html[data-theme="glass"] .lad, html[data-theme="glass"] .tick-card, html[data-theme="glass"] #tick-detail { background: rgba(255,255,255,.45) !important; }
html[data-theme="glass"] th { background: rgba(255,255,255,.35) !important; }

/* 04 国潮：宋体标题、描金左线 */
html[data-theme="guochao"] .brand, html[data-theme="guochao"] .hero h1, html[data-theme="guochao"] h1.sec,
html[data-theme="guochao"] .recap h2, html[data-theme="guochao"] .tick h2, html[data-theme="guochao"] .ai-card h2,
html[data-theme="guochao"] .card h3, html[data-theme="guochao"] .dash-card > .hd b {
  font-family: var(--font-title) !important;
}
html[data-theme="guochao"] .brand { color: var(--accent) !important; }
html[data-theme="guochao"] .recap h2, html[data-theme="guochao"] .hero h1 .accent { color: var(--accent) !important; }
html[data-theme="guochao"] .card, html[data-theme="guochao"] .recap, html[data-theme="guochao"] .hero,
html[data-theme="guochao"] .dash-card, html[data-theme="guochao"] .ai-card {
  border-left: 3px solid var(--accent) !important;
}
html[data-theme="guochao"] aside.rail { border-right: 1px solid rgba(201,162,39,.35) !important; }

/* 05 Fintech：青蓝渐变顶边 */
html[data-theme="fintech"] .card, html[data-theme="fintech"] .recap, html[data-theme="fintech"] .hero,
html[data-theme="fintech"] .tablewrap, html[data-theme="fintech"] .dash-card, html[data-theme="fintech"] .ai-card,
html[data-theme="fintech"] .frame-well, html[data-theme="fintech"] .kpi-rule-block {
  background: linear-gradient(90deg,#0ea5e9,#22d3ee) top / 100% 2px no-repeat, var(--card) !important;
}
html[data-theme="fintech"] .brand { color: #22d3ee !important; }

/* 06 新拟态：无边框、双向柔影，按下凹陷 */
html[data-theme="neumorph"] .hero, html[data-theme="neumorph"] .card, html[data-theme="neumorph"] .ai-card,
html[data-theme="neumorph"] .recap, html[data-theme="neumorph"] .tablewrap, html[data-theme="neumorph"] .dlg,
html[data-theme="neumorph"] .menu, html[data-theme="neumorph"] .frame-well, html[data-theme="neumorph"] .dash-card,
html[data-theme="neumorph"] .kpi-rule-block, html[data-theme="neumorph"] .icon-btn, html[data-theme="neumorph"] .icon-add,
html[data-theme="neumorph"] .websearch, html[data-theme="neumorph"] .mod-idle, html[data-theme="neumorph"] .night-hist,
html[data-theme="neumorph"] .kpi-grid .kpi, html[data-theme="neumorph"] .tick, html[data-theme="neumorph"] .group {
  border: 0 !important;
}
html[data-theme="neumorph"] aside.rail { border-right: 0 !important; box-shadow: 6px 0 16px #c3c8d2 !important; }
html[data-theme="neumorph"] .mods button, html[data-theme="neumorph"] .wtabs button, html[data-theme="neumorph"] button.kpi,
html[data-theme="neumorph"] .kpis .kpi, html[data-theme="neumorph"] .pill, html[data-theme="neumorph"] .rtabs button,
html[data-theme="neumorph"] #corner-btn, html[data-theme="neumorph"] .branch button, html[data-theme="neumorph"] .dlg button,
html[data-theme="neumorph"] .ai-seg button, html[data-theme="neumorph"] .ocx-row button {
  border: 0 !important; box-shadow: var(--neu-sm) !important;
}
html[data-theme="neumorph"] .mods button.on, html[data-theme="neumorph"] button.kpi.on, html[data-theme="neumorph"] .kpis .kpi.on,
html[data-theme="neumorph"] .pill.on, html[data-theme="neumorph"] .rtabs button.on, html[data-theme="neumorph"] .wtabs button.on {
  box-shadow: inset 3px 3px 7px rgba(40,60,160,.35), inset -3px -3px 7px rgba(255,255,255,.25) !important;
}
html[data-theme="neumorph"] input, html[data-theme="neumorph"] select, html[data-theme="neumorph"] textarea { border: 0 !important; box-shadow: var(--neu-in) !important; }
html[data-theme="neumorph"] .websearch input, html[data-theme="neumorph"] .websearch .engine { box-shadow: none !important; }
html[data-theme="neumorph"] .price { box-shadow: var(--neu-in) !important; }
html[data-theme="neumorph"] .lad, html[data-theme="neumorph"] .tick-card, html[data-theme="neumorph"] #tick-detail { background: var(--card) !important; box-shadow: var(--neu-in) !important; }
html[data-theme="neumorph"] .tablewrap table td { border-bottom-color: rgba(163,177,198,.35) !important; }

/* 07 高密：紧凑间距、小字号、贴顶表头 */
html[data-theme="dense"] main { padding: 16px 16px 32px !important; }
html[data-theme="dense"] body { font-size: 13px; }
html[data-theme="dense"] .grid { gap: 8px !important; margin-bottom: 10px !important; }
html[data-theme="dense"] .card { padding: 8px 8px 4px !important; }
html[data-theme="dense"] .card h3 { font-size: 16px; }
html[data-theme="dense"] .chart { height: 36px; }
html[data-theme="dense"] .recap, html[data-theme="dense"] .tick { padding: 12px 12px !important; margin: 6px 0 14px !important; }
html[data-theme="dense"] .recap h2, html[data-theme="dense"] .tick h2 { font-size: 17px !important; }
html[data-theme="dense"] .mods { gap: 6px !important; margin-bottom: 10px !important; }
html[data-theme="dense"] .mods button, html[data-theme="dense"] .rtabs button, html[data-theme="dense"] .wtabs button {
  padding: 6px 10px !important; font-size: 12.5px !important;
}
html[data-theme="dense"] .kpis { gap: 6px !important; }
html[data-theme="dense"] .kpis .kpi, html[data-theme="dense"] button.kpi { padding: 8px !important; }
html[data-theme="dense"] .kpis .kpi b, html[data-theme="dense"] button.kpi b { font-size: 18px !important; }
html[data-theme="dense"] table { font-size: 12.5px !important; }
html[data-theme="dense"] th, html[data-theme="dense"] td { padding: 5px 8px !important; }
html[data-theme="dense"] th { font-size: 11px !important; letter-spacing: .04em !important; text-transform: uppercase; }
html[data-theme="dense"] .tablewrap table:not(#hold-table) thead th { position: sticky; top: 0; z-index: 1; box-shadow: inset 0 -1px 0 var(--border); }
html[data-theme="dense"] #hold-table tr { padding: 6px 6px !important; gap: 4px 6px !important; }
html[data-theme="dense"] #hold-table th, html[data-theme="dense"] #hold-table td { padding: 2px 3px !important; }
html[data-theme="dense"] nav button { padding: 8px 12px !important; font-size: 13px !important; }
html[data-theme="dense"] .icons { gap: 8px !important; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)) !important; }
html[data-theme="dense"] .icon-btn, html[data-theme="dense"] .icon-add { min-height: 84px !important; padding: 8px 6px !important; font-size: 12px !important; }

/* 08 杂志：衬线大标题、朱红左线、分割线 */
html[data-theme="editorial"] .brand, html[data-theme="editorial"] .hero h1, html[data-theme="editorial"] h1.sec,
html[data-theme="editorial"] .recap h2, html[data-theme="editorial"] .card h3 { font-family: var(--font-title) !important; letter-spacing: .02em !important; }
html[data-theme="editorial"] .brand { color: var(--accent) !important; }
html[data-theme="editorial"] .recap, html[data-theme="editorial"] .hero, html[data-theme="editorial"] .dash-card,
html[data-theme="editorial"] .ai-card, html[data-theme="editorial"] .tick { border-left: 3px solid var(--accent) !important; }
html[data-theme="editorial"] .recap h2, html[data-theme="editorial"] .tick h2 { color: var(--text) !important; }
html[data-theme="editorial"] .recap > .sub:first-child { border-bottom: 1px solid var(--border); padding-bottom: 10px; }
html[data-theme="editorial"] th { text-transform: uppercase; letter-spacing: .12em !important; border-bottom: 1px solid var(--text) !important; }
html[data-theme="editorial"] .card .num { letter-spacing: .2em; text-transform: uppercase; }
html[data-theme="editorial"] aside.rail { border-right: 1px solid var(--text) !important; }

/* 09 粉彩：大圆角、柔影 */
html[data-theme="pastel"] .brand { color: var(--accent) !important; }
html[data-theme="pastel"] .card .price { border-radius: 999px !important; }

/* 10 霓虹：辉光边框、数字发光 */
html[data-theme="neon"] .brand { color: var(--accent) !important; text-shadow: 0 0 12px rgba(0,240,255,.5); }
html[data-theme="neon"] .card h3, html[data-theme="neon"] .kpis .kpi b, html[data-theme="neon"] .kpi .k-value,
html[data-theme="neon"] #idx-clock { text-shadow: 0 0 14px rgba(0,240,255,.35); }
html[data-theme="neon"] .recap h2, html[data-theme="neon"] h1.sec, html[data-theme="neon"] .hero h1 { color: var(--accent) !important; text-shadow: 0 0 12px rgba(0,240,255,.4); }
html[data-theme="neon"] nav button.on { color: var(--accent) !important; box-shadow: inset 2px 0 0 var(--accent-2) !important; }
html[data-theme="neon"] .mods button.on, html[data-theme="neon"] button.kpi.on, html[data-theme="neon"] .kpis .kpi.on,
html[data-theme="neon"] .rtabs button.on, html[data-theme="neon"] .pill.on { box-shadow: 0 0 14px rgba(0,240,255,.45) !important; }
html[data-theme="neon"] .up { text-shadow: 0 0 8px rgba(255,56,96,.35); }
html[data-theme="neon"] .down { text-shadow: 0 0 8px rgba(57,255,20,.3); }

/* ========== 5. 设置 · 主题风格 面板（默认主题下也用这里的样式） ========== */
.theme-gear { display: inline-flex; align-items: center; gap: 6px; }
.theme-top-acts { display: flex; gap: 8px; align-items: center; }
.theme-back {
  position: fixed; inset: 0; z-index: 60; display: none;
  align-items: flex-start; justify-content: center; padding: 56px 12px 24px;
  background: rgba(0,0,0,.28);
}
.theme-back.on { display: flex; }
.theme-dlg {
  width: min(760px, 100%); max-height: calc(100vh - 80px); overflow: auto;
  background: var(--card-solid, var(--card, #fff)); color: var(--text, #1d1d1f);
  border: 1px solid var(--border, #d2d2d7); border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0,0,0,.25); padding: 18px 18px 16px;
  font-family: var(--font);
}
.theme-hd { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.theme-hd b { font-size: 17px; font-weight: 800; letter-spacing: -.01em; }
.theme-x {
  width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--border, #d2d2d7);
  background: transparent; color: var(--text, #1d1d1f); font-size: 18px; line-height: 1; cursor: pointer;
}
.theme-tip { font-size: 12.5px; color: var(--muted, #6e6e73); margin: 0 0 12px; line-height: 1.55; }
.theme-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.theme-opt {
  display: flex; flex-direction: column; gap: 6px; text-align: left; cursor: pointer;
  padding: 8px; border-radius: 14px; font-family: inherit; color: var(--text, #1d1d1f);
  background: transparent; border: 1px solid var(--border, #d2d2d7); position: relative;
  transition: transform .15s, box-shadow .15s;
}
.theme-opt:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.theme-opt.on { outline: 2px solid var(--accent, #0071e3); outline-offset: 1px; }
.theme-opt.on::after {
  content: "✓ 使用中"; position: absolute; top: 12px; right: 12px; font-size: 10.5px; font-weight: 800;
  padding: 2px 7px; border-radius: 999px; background: var(--accent, #0071e3); color: var(--on-accent, #fff);
}
.theme-prev {
  display: block; height: 62px; border-radius: 10px; position: relative; overflow: hidden;
  border: 1px solid rgba(0,0,0,.08);
}
.theme-prev .pc {
  position: absolute; left: 10px; right: 10px; top: 12px; bottom: 10px; border-radius: 7px;
  padding: 6px 8px; display: flex; flex-direction: column; justify-content: space-between;
}
.theme-prev .pc i { display: block; height: 5px; border-radius: 3px; }
.theme-prev .pc .l1 { width: 55%; }
.theme-prev .pc .row { display: flex; gap: 6px; }
.theme-prev .pc .row i { flex: 1; height: 7px; }
.theme-name { font-size: 13.5px; font-weight: 800; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.theme-name small { font-size: 10.5px; font-weight: 600; color: var(--muted, #6e6e73); letter-spacing: .02em; }
.theme-sw { display: flex; height: 12px; border-radius: 6px; overflow: hidden; border: 1px solid rgba(0,0,0,.08); }
.theme-sw i { flex: 1; }

/* ========== 6. 补丁 ========== */
html.themed .rtabs button {
  box-shadow: var(--shadow) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-pill, 980px) !important;
}
html[data-theme="neumorph"] .rtabs button { border: 0 !important; box-shadow: var(--neu-sm) !important; }
html[data-theme="neumorph"] .rtabs button.on { box-shadow: inset 3px 3px 7px rgba(40,60,160,.35), inset -3px -3px 7px rgba(255,255,255,.25) !important; }
html[data-theme="glass"] nav button.on { background: rgba(255,255,255,.72) !important; color: #3d2fc4 !important; }
html[data-theme="glass"] nav button:hover { background: rgba(255,255,255,.35) !important; }
html[data-theme="glass"] .mods button.on, html[data-theme="glass"] .wtabs button.on, html[data-theme="glass"] .rtabs button.on,
html[data-theme="glass"] button.kpi.on, html[data-theme="glass"] .kpis .kpi.on, html[data-theme="glass"] .pill.on {
  box-shadow: 0 4px 14px rgba(60,40,200,.35) !important; border-color: rgba(255,255,255,.8) !important;
}
