/* 立刻生成 · 深色主题
 *
 * 策略说明（重要）：
 *   共享样式表（creative-image-tools.css / content-page.css）本身用的是 CSS 变量，
 *   所以这里只覆写变量表，一处改动即可带动全部相关页面，且不与页面自身的
 *   选择器打架（属性选择器 + 类名 = 0,2,0 特异性，高于单类名）。
 *
 *   内联样式的 .app 版式生成页没有变量可用，因此单独写了作用域明确的兜底规则。
 *
 * 刻意不做的事：**不反转预览区**。预览画布是导出图片的来源，界面变暗会让
 *   用户误以为导出结果也会变暗；实际导出的像素必须与浅色模式完全一致。
 *   所以 .stage（手机壳所在区域）保持浅色，形成"深色桌面上一台亮屏设备"的观感。
 *
 * 配色：不用纯黑。#0d1117 在 OLED 上不会因对比过高产生光晕，长时间使用更舒适。
 */

[data-theme="dark"] {
  color-scheme: dark;

  /* creative-image-tools.css 的变量表 */
  --ct-brand: #7c83ff;
  --ct-ink: #e6edf3;
  --ct-muted: #9198a1;
  --ct-line: rgba(255, 255, 255, .10);
  --ct-bg: #0d1117;
  --ct-soft: #161b22;

  /* content-page.css 的变量表 */
  --cp-brand: #8b91ff;
  --cp-brand-soft: #1c2033;
  --cp-ink: #e6edf3;
  --cp-body: #c2ccd6;
  --cp-muted: #9198a1;
  --cp-line: rgba(255, 255, 255, .10);
  --cp-bg: #0d1117;
  --cp-card: #161b22;
  --cp-warn-bg: #241d10;
  --cp-warn-line: #4a3c1c;
  --cp-warn-ink: #e0b768;
}

[data-theme="dark"] body {
  background: var(--cp-bg, #0d1117);
  color: var(--cp-body, #c2ccd6);
}

/* ── 共享样式表里写死的颜色（第 1 组：容器底色）──
   上面那段"只覆写变量表"的说法对 creative-image-tools.css **不成立**：
   它虽然定义了变量，但大量前景/背景仍是写死的十六进制。只覆写变量会出现
   最糟的一种情况 —— 容器被压暗、文字颜色却没跟着变，结果是深底深字（写死
   #354254 的卡片标题压在 #161b22 上只有 1.7:1，几乎看不见），而且不报错、
   截图粗看像"没加载样式"。所以下面按"谁被压暗就必须重设谁的文字色"逐类补齐。 */
[data-theme="dark"] .creative-upload-card,
[data-theme="dark"] .creative-canvas-card,
[data-theme="dark"] .creative-card,
[data-theme="dark"] .creative-preview {
  background: var(--ct-soft, #161b22);
  border-color: var(--ct-line, rgba(255, 255, 255, .1));
}

[data-theme="dark"] .creative-segment {
  background: #1f2530;
}

[data-theme="dark"] .creative-segment button {
  color: var(--ct-muted, #9198a1);
}

[data-theme="dark"] .creative-segment button.active {
  color: #0d1117;
  background: #7c83ff;
}

[data-theme="dark"] .creative-segment button.active:hover {
  color: #0d1117;
}

[data-theme="dark"] .creative-note,
[data-theme="dark"] .board-hint,
[data-theme="dark"] .mini-status {
  color: var(--ct-muted, #9198a1);
  background: #1a1f27;
}

[data-theme="dark"] .creative-range output {
  color: #9aa0ff;
}

/* ── 第 2 组：工作台与编辑器外壳 ──
   左栏 .creative-stage 是工作台，深色下同样压暗；但真正承载图片的
   .preview-board 保留浅色棋盘格 —— 它代表导出像素的底衬，和 .stage
   手机壳是同一条原则：预览区不反色，用户才不会误判导出结果。 */
[data-theme="dark"] .creative-stage {
  background:
    radial-gradient(circle at 17% 3%, #191d31 0, rgba(25, 29, 49, 0) 30%),
    radial-gradient(circle at 97% 94%, #12241f 0, rgba(18, 36, 31, 0) 35%),
    #0d1117;
}

[data-theme="dark"] .creative-stage-head h2 {
  color: #e6edf3;
}

[data-theme="dark"] .local-pill {
  color: #7fd6c1;
  border-color: rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .05);
}

[data-theme="dark"] .creative-editor {
  border-color: rgba(255, 255, 255, .1);
  background: #0d1117;
  box-shadow: none;
}

[data-theme="dark"] .creative-editor-head,
[data-theme="dark"] .creative-editor-dock,
[data-theme="dark"] .creative-preview-head,
[data-theme="dark"] .creative-metrics,
[data-theme="dark"] .creative-metrics div {
  border-color: rgba(255, 255, 255, .1);
}

[data-theme="dark"] .creative-editor-head h1 {
  color: #e6edf3;
}

[data-theme="dark"] .creative-editor-head p {
  color: #9198a1;
}

[data-theme="dark"] .creative-editor-dock {
  background: rgba(13, 17, 23, .96);
  box-shadow: none;
}

/* ── 第 3 组：写死的前景色 ── */
[data-theme="dark"] .creative-upload h3,
[data-theme="dark"] .preview-title strong,
[data-theme="dark"] .creative-metrics strong {
  color: #e6edf3;
}

[data-theme="dark"] .creative-card-head h2 {
  color: #b6c0cb;
}

[data-theme="dark"] .upload-help,
[data-theme="dark"] .upload-help i,
[data-theme="dark"] .preview-title span,
[data-theme="dark"] .creative-metrics span,
[data-theme="dark"] .creative-card-head small,
[data-theme="dark"] .creative-field span,
[data-theme="dark"] .creative-switch,
[data-theme="dark"] .creative-thumb span {
  color: #9198a1;
}

[data-theme="dark"] .creative-thumb {
  border-color: rgba(255, 255, 255, .1);
  background: #161b22;
}

/* 编辑器里的输入控件：.creative-field 内层选择器特异性 (0,3,1) 压过
   [data-theme="dark"] input 的 (0,1,1)，必须用同级选择器才覆盖得住。 */
[data-theme="dark"] .creative-field input:not([type="range"]):not([type="color"]),
[data-theme="dark"] .creative-field select,
[data-theme="dark"] .creative-field textarea {
  border-color: rgba(255, 255, 255, .1);
  color: #e6edf3;
  background: #1a1f27;
}

/* ── 第 4 组：SEO 说明区，与上面的 .seo 用同一套深色 ── */
[data-theme="dark"] .creative-seo {
  color: #b6c0cb;
  background: #0d1117;
}

[data-theme="dark"] .creative-seo h2,
[data-theme="dark"] .creative-seo h3,
[data-theme="dark"] .creative-seo strong {
  color: #e6edf3;
}

[data-theme="dark"] .creative-seo article,
[data-theme="dark"] .creative-seo details {
  border-color: rgba(255, 255, 255, .1);
  background: #161b22;
}

[data-theme="dark"] .creative-seo summary,
[data-theme="dark"] .creative-related a,
[data-theme="dark"] .swatch span {
  color: #b6c0cb;
}

[data-theme="dark"] .creative-related a,
[data-theme="dark"] .swatch {
  border-color: rgba(255, 255, 255, .1);
  background: #161b22;
}

[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea,
[data-theme="dark"] button {
  color: var(--ct-ink, #e6edf3);
}

[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea {
  background: #1a1f27;
  border-color: var(--ct-line, rgba(255, 255, 255, .1));
  color: var(--ct-ink, #e6edf3);
}

[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
  color: #6b7684;
}

[data-theme="dark"] .primary,
[data-theme="dark"] button.primary {
  color: #fff;
}

[data-theme="dark"] .small,
[data-theme="dark"] .secondary,
[data-theme="dark"] button.secondary,
[data-theme="dark"] .creative-editor-dock button:not(.primary) {
  background: #1a1f27;
  border-color: var(--ct-line, rgba(255, 255, 255, .1));
  color: var(--ct-ink, #e6edf3);
}

[data-theme="dark"] .cp-dl > div,
[data-theme="dark"] .matrix th,
[data-theme="dark"] .matrix td {
  border-color: rgba(255, 255, 255, .08);
}

[data-theme="dark"] .cp-tag {
  background: #1a1f27;
  border-color: var(--cp-line, rgba(255, 255, 255, .1));
}

/* ── .app 版式生成页（内联样式，无变量可用）──
   只压暗页面底色与编辑区，手机预览所在的 .stage 保持浅色。 */
[data-theme="dark"] .app,
[data-theme="dark"] .app-shell,
[data-theme="dark"] .wx-app {
  background: #0d1117;
}

[data-theme="dark"] .editor,
[data-theme="dark"] .wx-editor {
  background: #161b22;
  border-color: rgba(255, 255, 255, .1);
}

[data-theme="dark"] .editor-head,
[data-theme="dark"] .wx-editor-head {
  border-color: rgba(255, 255, 255, .1);
}

[data-theme="dark"] .editor-head h1,
[data-theme="dark"] .editor-head p,
[data-theme="dark"] .field > span,
[data-theme="dark"] .stage-bar,
[data-theme="dark"] .hint {
  color: #b6c0cb;
}

/* 手机壳所在区域：保留浅色，模拟"深色桌面上的一台设备" */
[data-theme="dark"] .stage,
[data-theme="dark"] .wx-stage {
  background: #0a0d12;
}

/* ── 聊天页套件（chat-page-kit.js 注入的内联样式，靠特异性覆盖）── */
[data-theme="dark"] .kit,
[data-theme="dark"] .kit-body {
  background: #0d1117;
}

[data-theme="dark"] .editor:has(.kit) {
  background: #0d1117;
}

[data-theme="dark"] .kit-head {
  background: #161b22;
  border-color: rgba(255, 255, 255, .1);
}

[data-theme="dark"] .kit-head h1 {
  color: #e6edf3;
}

[data-theme="dark"] .kit-head p,
[data-theme="dark"] .kit-field > span {
  color: #9198a1;
}

[data-theme="dark"] .kit-card,
[data-theme="dark"] .kit-msg,
[data-theme="dark"] .his-card {
  background: #161b22;
  border-color: rgba(255, 255, 255, .1);
}

[data-theme="dark"] .kit-card > h2 {
  color: #e6edf3;
}

[data-theme="dark"] .kit-seg button,
[data-theme="dark"] .kit-add button,
[data-theme="dark"] .kit-mini,
[data-theme="dark"] .kit-msg-ops button {
  background: #1a1f27;
  border-color: rgba(255, 255, 255, .1);
  color: #b6c0cb;
}

[data-theme="dark"] .kit-seg button[aria-pressed="true"] {
  background: #7c83ff;
  border-color: #7c83ff;
  color: #0d1117;
}

[data-theme="dark"] .kit-msg textarea,
[data-theme="dark"] .kit-bulk {
  background: #1a1f27;
  border-color: rgba(255, 255, 255, .1);
  color: #e6edf3;
}

[data-theme="dark"] .kit-msg .kit-msg-side {
  color: #7b8695;
}

[data-theme="dark"] .kit-note {
  color: #e0b768;
  background: #241d10;
}

[data-theme="dark"] .kit-stat {
  background: #1a1f27;
  color: #9198a1;
}

[data-theme="dark"] .kit-stat b {
  color: #e6edf3;
}

/* chat-export.html 的平台切换按钮：.seg 是该页内联样式里的类，
 * 特异性与上面的 `[data-theme="dark"] button` 同为 (0,1,1)，靠"后注入的 theme.css"
 * 才勉强压住 color —— 背景却没被压住，于是浅色按钮底 + #e6edf3 浅色字 = 1.13:1。
 * 这里升一级特异性，一次性把底和字都换掉。 */
[data-theme="dark"] .seg button {
  border-color: rgba(255, 255, 255, .1);
  color: #b6c0cb;
  background: #1a1f27;
}

[data-theme="dark"] .seg button[aria-pressed="true"] {
  border-color: #7c83ff;
  color: #0d1117;
  background: #7c83ff;
}

[data-theme="dark"] .seo h2,
[data-theme="dark"] .seo h3 {
  color: #e6edf3;
}

[data-theme="dark"] .seo p,
[data-theme="dark"] .seo li {
  color: #b6c0cb;
}

[data-theme="dark"] .related a {
  background: #161b22;
  border-color: rgba(255, 255, 255, .1);
  color: #b6c0cb;
}

/* index.html 的页脚：该页样式全部内联，页脚在深色下没有自己的底色，
   于是继承了页面底色 #0d1117 —— 而 .footer-brand 写死 #536071，
   变成深字压深底（2.96:1）。由 theme-dark-runtime 测试在真实浏览器里发现。 */
[data-theme="dark"] .footer-brand {
  color: #b6c0cb;
}

/* 同一个页脚里还有两处说明文字（版权行与年份）。它们原本写死 #8490a0，
   压在深色底上勉强能看，所以一直没进测试的失败名单；浅色模式下改成
   var(--muted) 修对比度后，同一个变量在深色底上只剩 3.8:1 —— 浅色修好了、
   深色反而坏了。原因是首页的 --muted 只在 inline :root 里定义一次，没有深色分支
   （theme.css 只覆写 --cp-* / --ct-* 两套前缀变量）。
   这里按同页其他深色文字的量级给一个更亮的灰。 */
[data-theme="dark"] .home-footer {
  color: #9198a1;
}

/* 页脚里的站内链接（关于、隐私、免责、我的作品）是后来补的入口，
   颜色起初写死 #536071 跟着 .footer-brand 走 —— 但 .footer-brand 有深色分支、
   这里没有，于是深灰字压在深色底上只剩 2.96:1，四个链接一起"看不见"。
   跟 .footer-brand 用同一个量级。 */
[data-theme="dark"] .footer-links a {
  color: #b6c0cb;
}

/* 主题切换控件
 *
 * 它挂在 #generatorNav 的 .generator-nav-inner 里。这里按**浅色导航底**配色；
 * 深色导航底下的配色见文件末尾「注入式外壳」一节 —— 导航本身也是跟着主题走的，
 * 忘了写那一半就会出现白字白底（对比度 1:1，控件直接"消失"，本仓库踩过一次）。
 */
.lksc-theme-switch {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 1px;
  padding: 2px;
  border: 1px solid rgba(29, 43, 55, .14);
  border-radius: 9px;
  background: rgba(29, 43, 55, .04);
}

.lksc-theme-switch button {
  width: 26px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  /* #4a5560 而不是 #64707b：深色模式下导航是 96% 白叠在深底上，略偏灰（约 #ededee），
     用 #64707b 只有 4.34:1，差一点点不达标。 */
  color: #4a5560;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}

.lksc-theme-switch button:hover {
  background: rgba(29, 43, 55, .07);
  color: #24313b;
}

.lksc-theme-switch button[aria-pressed="true"] {
  background: rgba(22, 141, 255, .13);
  color: #0f5dbd;
}

.lksc-theme-switch button:focus-visible {
  outline: 2px solid #168dff;
  outline-offset: 1px;
}

/* 尊重系统的减少动效设置 */
@media (prefers-reduced-motion: reduce) {
  .lksc-theme-switch button {
    transition: none;
  }
}

/* ── 注入式外壳：顶部导航栏与底部悬浮导出栏 ──
 *
 * 这两块不是页面自己写的，而是 generator-nav.js 运行时用一段内联 <style> 注入的。
 * 那段样式里的颜色全部写死，且以 #generatorNav / .generator-export-dock 作前缀。
 * theme.css 的"只覆写变量表"策略对它们完全无效 —— 于是深色模式下，整页都暗了，
 * 唯独顶部这条导航和底部这条导出栏还是刺眼的白，看起来就是"主题没接到这里"。
 * （用户报障原话：「这里功能也没有接上」，指的就是导航栏右侧那组切换按钮所在的白条。）
 *
 * 两个必须注意的点：
 *   1. theme.css 是 <link>，注入的内联 <style> 由 generator-nav.js 后 append 到 head，
 *      同特异性下**后者胜**。所以下面每条都必须带上 [data-theme="dark"] 把特异性提上去，
 *      不能指望文档顺序。
 *   2. 被压暗的每一块都要同时重设其中的文字色。导航里有链接、下拉面板、巨型面板、
 *      图标底色四层，漏一层就是深底深字（不报错、只是看不见）。
 */

[data-theme="dark"] #generatorNav {
  border-bottom-color: rgba(255, 255, 255, .10);
  color: #e6edf3;
  background: rgba(13, 17, 23, .96);
  box-shadow: 0 5px 18px rgba(0, 0, 0, .45);
}

[data-theme="dark"] #generatorNav .generator-nav-brand,
[data-theme="dark"] #generatorNav a.generator-nav-brand:hover { color: #e6edf3; }

[data-theme="dark"] #generatorNav .generator-nav-brand-copy small { color: #9198a1; }

[data-theme="dark"] #generatorNav a { color: #a8b3bf; }
[data-theme="dark"] #generatorNav a:hover { color: #e6edf3; background: #1b232c; }
[data-theme="dark"] #generatorNav a[aria-current="page"] {
  color: #dbe7f3;
  border-color: rgba(124, 131, 255, .38);
  background: rgba(124, 131, 255, .16);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}

[data-theme="dark"] #generatorNav .generator-nav-home,
[data-theme="dark"] #generatorNav .generator-nav-trigger { color: #a8b3bf; }
[data-theme="dark"] #generatorNav .nav-glyph { color: #8b98a5; }
[data-theme="dark"] #generatorNav .generator-nav-home:hover,
[data-theme="dark"] #generatorNav .generator-nav-trigger:hover {
  color: #e6edf3;
  border-color: rgba(255, 255, 255, .14);
  background: #1b232c;
}
[data-theme="dark"] #generatorNav .generator-nav-home:hover .nav-glyph,
[data-theme="dark"] #generatorNav .generator-nav-trigger:hover .nav-glyph { color: #6cb6ff; }
[data-theme="dark"] #generatorNav .generator-nav-group.has-current .generator-nav-trigger {
  color: #dbe7f3;
  border-color: rgba(124, 131, 255, .38);
  background: rgba(124, 131, 255, .16);
}
[data-theme="dark"] #generatorNav .generator-nav-group.has-current .nav-glyph { color: #8b91ff; }
[data-theme="dark"] #generatorNav .generator-nav-group[data-open="true"] .generator-nav-trigger {
  color: #e6edf3;
  border-color: rgba(124, 131, 255, .46);
  background: rgba(124, 131, 255, .22);
}
[data-theme="dark"] #generatorNav .generator-nav-group[data-open="true"] .nav-glyph { color: #8b91ff; }

[data-theme="dark"] #generatorNav .generator-nav-dropdown {
  border-color: rgba(255, 255, 255, .12);
  color: #c2ccd6;
  background: rgba(22, 27, 34, .98);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .5);
}
[data-theme="dark"] #generatorNav .generator-nav-dropdown-note { color: #9198a1; }
[data-theme="dark"] #generatorNav .generator-nav-dropdown a { color: #a8b3bf; }
[data-theme="dark"] #generatorNav .generator-nav-dropdown a:hover {
  color: #e6edf3;
  border-color: rgba(255, 255, 255, .14);
  background: #1b232c;
}

[data-theme="dark"] #generatorNav .generator-nav-mega {
  border-color: rgba(255, 255, 255, .12);
  color: #c2ccd6;
  background: rgba(16, 20, 26, .985);
  box-shadow: 0 20px 48px rgba(0, 0, 0, .6);
}
[data-theme="dark"] #generatorNav .mega-head { border-bottom-color: rgba(255, 255, 255, .10); }
/* 组内子标题：分隔线与计数气泡都要压暗，否则深色下是一道亮线加一个亮块 */
[data-theme="dark"] #generatorNav .mega-section-title { color: #9aa4b0; border-bottom-color: rgba(255, 255, 255, .09); }
[data-theme="dark"] #generatorNav .mega-section-title span { color: #8b95a2; background: rgba(255, 255, 255, .09); }
[data-theme="dark"] #generatorNav .mega-head-glyph { color: #a5aaff; background: rgba(124, 131, 255, .18); }
[data-theme="dark"] #generatorNav .mega-head strong { color: #e6edf3; }
[data-theme="dark"] #generatorNav .mega-head p,
[data-theme="dark"] #generatorNav .mega-head-count { color: #9198a1; }
[data-theme="dark"] #generatorNav .mega-card {
  border-color: rgba(255, 255, 255, .10);
  color: #c2ccd6;
  background: #151a21;
}
[data-theme="dark"] #generatorNav .mega-card:hover {
  border-color: rgba(124, 131, 255, .34);
  background: #1b222b;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .45);
}
/* 巨型面板里每张卡片左上的方形图标。浅色版是"淡底 + 同色系深字"，
   深色版必须整体反过来，只改底色会在深底上留下深色图标。 */
[data-theme="dark"] #generatorNav .mega-icon { color: #8ab4e8; background: rgba(110, 160, 230, .16); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="wechat"] .mega-icon { color: #6ecf99; background: rgba(32, 184, 90, .18); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="alipay"] .mega-icon,
[data-theme="dark"] #generatorNav .mega-card[data-tone="qq"] .mega-icon,
[data-theme="dark"] #generatorNav .mega-card[data-tone="telegram"] .mega-icon { color: #7fb2f5; background: rgba(31, 102, 198, .20); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="stamp"] .mega-icon { color: #f09191; background: rgba(196, 56, 56, .20); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="tool"] .mega-icon { color: #ab99ff; background: rgba(123, 97, 255, .20); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="ai"] .mega-icon { color: #c4a6ff; background: rgba(139, 92, 246, .22); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="page"] .mega-icon { color: #a7b0c6; background: rgba(138, 144, 168, .20); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="weibo"] .mega-icon { color: #ff8b98; background: rgba(230, 22, 45, .20); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="xhs"] .mega-icon { color: #ff8b9e; background: rgba(255, 36, 66, .20); }
[data-theme="dark"] #generatorNav .mega-card[data-tone="doc"] .mega-icon { color: #74cbe0; background: rgba(37, 99, 235, .20); }
[data-theme="dark"] #generatorNav .mega-card[aria-current="page"] {
  border-color: rgba(124, 131, 255, .42);
  background: rgba(124, 131, 255, .13);
}
[data-theme="dark"] #generatorNav .mega-card[aria-current="page"] .mega-copy b { color: #cfe0ff; }
[data-theme="dark"] #generatorNav .mega-copy b { color: #e6edf3; }
[data-theme="dark"] #generatorNav .mega-copy small { color: #9198a1; }
[data-theme="dark"] #generatorNav .mega-footer { border-top-color: rgba(255, 255, 255, .10); color: #9198a1; }
[data-theme="dark"] #generatorNav .mega-footer a { color: #79b8f0; }

/* 切换控件本身也住在导航里，导航一暗它就得跟着换一套配色，
   否则就是浅色控件压在深色条上（选中态 1:1，等于看不见）。 */
[data-theme="dark"] .lksc-theme-switch {
  border-color: rgba(255, 255, 255, .14);
  background: rgba(255, 255, 255, .05);
}
[data-theme="dark"] .lksc-theme-switch button { color: #9aa5b1; }
[data-theme="dark"] .lksc-theme-switch button:hover {
  background: rgba(255, 255, 255, .09);
  color: #e6edf3;
}
[data-theme="dark"] .lksc-theme-switch button[aria-pressed="true"] {
  background: rgba(124, 131, 255, .24);
  color: #c9cfff;
}
[data-theme="dark"] .lksc-theme-switch button:focus-visible { outline-color: #7c83ff; }

/* 底部悬浮导出栏：与导航同源（都由 generator-nav.js 注入），同理补齐。 */
[data-theme="dark"] .generator-export-dock {
  border-top-color: rgba(255, 255, 255, .10);
  background: rgba(13, 17, 23, .96);
  box-shadow: 0 -8px 28px rgba(0, 0, 0, .5);
}
[data-theme="dark"] .generator-export-dock label span { color: #9198a1; }
[data-theme="dark"] .generator-export-dock select {
  border-color: rgba(255, 255, 255, .14);
  color: #c2ccd6;
  background: #161b22;
}
