
/* ============================================================
   企业简洁风（Enterprise Clean）
   参考 IBM Carbon / GitHub Primer / Microsoft Fluent 的做法：
   统一 token、克制装饰、用边框与间距表达层级
   ============================================================ */
:root{
  /* —— 中性色阶（越靠后越深，替换散落的一次性灰） —— */
  --n-0:#ffffff;
  --n-25:#fafafb;
  --n-50:#f5f6f7;
  --n-100:#eeeff1;
  --n-200:#e3e5e8;
  --n-300:#d3d5da;
  --n-400:#b3b7bf;
  --n-500:#6e85b1;   /* 仅用于图标/边框，不作为正文色 */
  --n-600:#506694;   /* 次要文字（对浅底 ≥4.5） */
  --n-700:#44699f;   /* 次要文字（浅底），对白/灰底 ≥4.9 */
  --n-800:#3560b8;
  --n-900:#325bae;

  /* —— 语义色（统一取一档，不再每处自定） —— */
  --c-brand:#1448ea;
  --c-brand-hover:#1242d9;
  --c-btn-bg:#1448ea;
  --c-btn-bg-hover:#1242d9;
  --c-brand-soft:rgba(20,72,234,.08);
  --c-danger:#9b3d43;  /* 浅底 ≥5.0:1 */
  --c-danger-soft:rgba(176,58,58,.08);
  --c-warn:#835b1a;   /* 浅底 ≥5.2:1 */
  --c-warn-soft:rgba(154,107,31,.1);
  --c-success:#2456cc; /* 浅底 ≥5.3:1 */
  --c-success-soft:rgba(28,122,82,.1);
  --c-info:#2f5d8a;
  --c-info-soft:rgba(47,93,138,.1);

  /* —— 间距刻度（4 的倍数，统一替换零散像素） —— */
  --sp-1:4px;  --sp-2:8px;  --sp-3:12px; --sp-4:16px;
  --sp-5:20px; --sp-6:24px; --sp-8:32px; --sp-10:40px;

  /* —— 圆角刻度（原项目有 9 种，收敛为 3 档） —— */
  --r-sm:6px;   /* 输入框、小控件 */
  --r-md:8px;   /* 卡片、面板 */
  --r-pill:999px; /* 仅用于状态标签与筛选芯片 */

  /* —— 字体刻度 —— */
  --fs-xs:12px; --fs-sm:13px; --fs-base:14px;
  --fs-lg:16px; --fs-xl:20px; --fs-2xl:26px;

  /* —— 层级：统一用边框+极轻阴影，避免厚重投影 —— */
  --border:1px solid var(--n-200);
  --elev-1:0 1px 2px rgba(16,24,20,.04);
  --elev-2:0 2px 6px rgba(16,24,20,.06);
}
[data-theme="dark"]{
  /* 中性深灰阶（此前被误设为品牌蓝，导致卡片/表头/标签蓝底浅字，对比度不足）。
     品牌蓝只保留在 --c-brand / --c-btn-bg 等处作为强调色。 */
  --n-0:#0d1117;
  --n-25:#10151c;
  --n-50:#0f141a;
  --n-100:#141a22;
  --n-200:#1c242e;
  --n-300:#28323e;
  --n-400:#3a4655;
  --n-500:#5a6878;
  --n-600:#8493a6;
  --n-700:#a8b4c4;
  --n-750:#bcc7d6;
  --n-800:#ccd5e1;
  --n-900:#e8eef6;
  --c-brand:#3654b0;          /* 用于文字与描边 */
  --c-btn-bg:#2c58df;         /* 按钮底色：更深以确保白字对比 ≥4.5 */
  --c-btn-bg-hover:#3b63e1;

  --c-brand-soft:rgba(80,110,240,.16);
  --c-danger:#e08b8d;
  --c-danger-soft:rgba(224,139,141,.14);
  --c-warn:#dcae57;
  --c-warn-soft:rgba(220,174,87,.14);
  --c-success:#738dc9;
  --c-success-soft:rgba(92,194,150,.14);
  --c-info:#7fa9d6;
  --c-info-soft:rgba(127,169,214,.14);
  --border:1px solid var(--n-200);
  --elev-1:0 1px 2px rgba(0,0,0,.2);
  --elev-2:0 2px 8px rgba(0,0,0,.28);
}

/* —— 1. 收敛装饰：去掉大面积氛围渐变与玻璃拟态 —— */
body{
  background:var(--n-50);
  background-image:none;
}
[data-theme="dark"] body{background:var(--n-0);background-image:none}
.nav{
  background:var(--n-0);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border-bottom:var(--border);
  box-shadow:none;
}
.nav:after{display:none}
.brand:after{display:none}          /* 去掉品牌后的装饰星点 */
.card,
.side-block,
.composer,
.admin-form,
.overview-card,
.task-card,
.quick-group{
  box-shadow:var(--elev-1);
  border:var(--border);
  background:var(--n-0);
}
.card:hover{box-shadow:var(--elev-2)}
/* 卡片内不再叠加渐变装饰 */
.card[class*="gradient"]{background-image:none}

/* —— 2. 圆角收敛为三档 —— */
.btn,.btn.alt,.btn.big{border-radius:var(--r-sm)}
input,select,textarea{border-radius:var(--r-sm)}
.card,.side-block,.composer,.admin-form,.task-card,.overview-card,
.shot-row,.param-group,.advanced,.table-wrap,.upload-zone,.preset-picker,
.ratio-picker,.prompt-toolbar,.cost-bar,.empty{
  border-radius:var(--r-md);
}
.tag,.status,.count-chip,.chip-btn,.user-nav-item,.seg{border-radius:var(--r-pill)}

/* —— 3. 按钮：去掉重投影与多层渐变，改为实心/描边两种 —— */
.btn{
  background:var(--c-btn-bg);
  border:1px solid var(--c-btn-bg);
  color:#fff;
  box-shadow:none;
  font-weight:600;
  letter-spacing:0;
}
.btn:hover{background:var(--c-btn-bg-hover);border-color:var(--c-btn-bg-hover)}
.btn.alt{
  background:var(--n-0);
  border:1px solid var(--n-300);
  color:var(--n-800);
  box-shadow:none;
}
.btn.alt:hover{border-color:var(--c-brand);color:var(--c-brand);background:var(--c-brand-soft)}
.btn.light{background:var(--n-0);border:1px solid var(--n-300);color:var(--n-800)}
.btn svg.icon{opacity:.9}

/* —— 4. 表单控件：统一边框与聚焦环 —— */
input,select,textarea{
  border:1px solid var(--n-300);
  background:var(--n-0);
  box-shadow:none;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--c-brand);
  box-shadow:0 0 0 3px var(--c-brand-soft);
  outline:none;
}

/* —— 5. 表格：企业风以边框和留白表达层级 —— */
.table-wrap{border:var(--border);box-shadow:none;background:var(--n-0)}
th{
  background:var(--n-50);
  color:var(--n-700);
  font-weight:600;
  font-size:var(--fs-xs);
  letter-spacing:.04em;
  text-transform:uppercase;
}
td{border-bottom:var(--border);font-size:var(--fs-sm)}
tr:hover td{background:var(--n-50)}

/* —— 6. 标签与状态：低饱和、有边框 —— */
.tag{
  background:var(--n-50);
  border:1px solid var(--n-200);
  color:var(--n-700);
  font-weight:600;
}
.status{border:1px solid transparent;font-weight:600}
.status.succeeded,.status.paid{background:var(--c-success-soft);color:var(--c-success);border-color:rgba(28,122,82,.24)}
.status.failed{background:var(--c-danger-soft);color:var(--c-danger);border-color:rgba(176,58,58,.24)}
.status.processing{background:var(--c-warn-soft);color:var(--c-warn);border-color:rgba(154,107,31,.26)}

/* —— 7. 弱化装饰性动效（保留必要的状态反馈） —— */
@media (prefers-reduced-motion: no-preference){
  .card,.btn,.tag,.task-card,.model-pick{transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}
}
.orb,.decor,.hero-orb,.spark-float{display:none}   /* 纯装饰元素在小屏/企业风下隐藏 */

/* —— 8. 标题与正文：统一字号与字重，去掉过粗的 850 —— */
h1,.page-head h1{font-weight:700;letter-spacing:-.02em}
h2{font-weight:650;letter-spacing:-.012em}
.brand{font-weight:700;letter-spacing:-.02em}
.eyebrow{font-weight:700;letter-spacing:.1em;color:var(--n-600)}
.hero h1,.enterprise-hero h1{font-weight:700;letter-spacing:-.025em}
.sub,.field-hint,small{color:var(--n-600);font-weight:400}
.count-chip,.char-count,.chip-btn,.upload-hint,.kbd-hint{color:var(--n-700)}
.text-link{color:var(--c-brand);font-weight:600}

/* —— 9. 深色模式下统一使用中性色阶 —— */
[data-theme="dark"] .card,[data-theme="dark"] .admin-form,
[data-theme="dark"] .task-card,[data-theme="dark"] .overview-card,
[data-theme="dark"] .side-block,[data-theme="dark"] .composer,
[data-theme="dark"] .table-wrap{background:var(--n-25);border-color:var(--n-200)}
[data-theme="dark"] th{background:var(--n-100)}
[data-theme="dark"] tr:hover td{background:var(--n-100)}
[data-theme="dark"] .tag{background:var(--n-100);border-color:var(--n-300);color:var(--n-700)}
[data-theme="dark"] .btn.alt:hover{background:var(--c-brand-soft)}

/* —— 10. 对比度兜底（企业风自身的 token 调整后逐项校准） ——
   说明：企业风把中性色与品牌色统一为 token 后，部分既有的「浅字配深底」
   组件失去了原有搭配，需要显式校准。以下取值均按 WCAG AA 校验。 */
/* 首页浮层卡片：原本依赖深色玻璃底，企业风去掉了玻璃拟态 → 改为实底 */
.art-card,.art-main,.art-float{
  background:var(--n-900);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:none;
  box-shadow:var(--elev-2);
}
[data-theme="dark"] .art-card,[data-theme="dark"] .art-main,[data-theme="dark"] .art-float{
  background:var(--n-100);
  border-color:var(--n-300);
}
.mini-label{color:#d0d7e5 !important}
[data-theme="dark"] .mini-label{color:#abb1be !important}
/* 次要信息文字：统一用 n-600（浅底）/ n-700（深底），确保 ≥4.5 */
.char-count,.upload-hint,.chip-btn,.count-chip,.billing-hint,
.task-card-meta,.gallery-meta,.shot-desc,.field-hint,.model-card p{color:var(--n-600)}
[data-theme="dark"] .char-count,[data-theme="dark"] .upload-hint,
[data-theme="dark"] .chip-btn,[data-theme="dark"] .count-chip,
[data-theme="dark"] .billing-hint,[data-theme="dark"] .task-card-meta,
[data-theme="dark"] .gallery-meta,[data-theme="dark"] .shot-desc,
[data-theme="dark"] .field-hint,[data-theme="dark"] .model-card p{color:var(--n-700)}
/* 高级参数摘要：原本是浅灰小字，加深 */
details.advanced>summary small,.form-advanced>summary small{color:var(--n-600)}
[data-theme="dark"] details.advanced>summary small,[data-theme="dark"] .form-advanced>summary small{color:var(--n-700)}
/* 引导提示气泡：白字配品牌底，深色下品牌色偏亮 → 加深底色 */
.onboard-tip{background:var(--c-btn-bg);color:#fff}
[data-theme="dark"] .onboard-tip{background:var(--c-btn-bg);color:#fff}
/* 统计与计数类文字 */
.trust-row,.stats-row,.hero-meta{color:var(--n-600)}
[data-theme="dark"] .trust-row,[data-theme="dark"] .stats-row,[data-theme="dark"] .hero-meta{color:var(--n-700)}
/* 筛选/分段控件的未选中态 */
.seg,.user-nav-item{color:var(--n-700)}
.user-nav-item.active{color:var(--c-brand)}
[data-theme="dark"] .seg,[data-theme="dark"] .user-nav-item{color:var(--n-800)}
[data-theme="dark"] .user-nav-item.active{color:#99aad6}
/* 空状态与提示条 */
.empty,.notice,.tip{color:var(--n-600)}
[data-theme="dark"] .empty,[data-theme="dark"] .notice,[data-theme="dark"] .tip{color:var(--n-700)}
/* 模型卡片底部信息（价格/尺寸） */
.model-bottom,.model-bottom span,.model-bottom small{color:var(--n-600)}
[data-theme="dark"] .model-bottom,[data-theme="dark"] .model-bottom span,[data-theme="dark"] .model-bottom small{color:var(--n-700)}


/* —— 11. 对比度终修：为有色底组件明确「底色 + 文字色」配对 ——
   这些组件的对比度问题来自「底色浅 + 文字也浅」，必须同时约束两者。 */
.char-count,.prompt-count{color:var(--n-700) !important}
.chip-btn,.count-chip{
  color:var(--n-800) !important;
  background:var(--n-50) !important;
  border-color:var(--n-300) !important;
}
.chip-btn:hover,.count-chip:hover{background:var(--n-100) !important;border-color:var(--c-brand) !important}
.upload-hint{color:var(--n-700) !important}
.upload-zone{background:var(--n-50) !important;border-color:var(--n-300) !important}
details.advanced>summary,summary.adv{color:var(--n-800) !important}
details.advanced>summary small,summary.adv small{color:var(--n-700) !important}
.advanced-body{color:var(--n-800)}
/* 分段/筛选控件的未选中文字 */
.seg,.filter-chip,.user-nav-item{color:var(--n-800) !important}
.filter-chip.active,.user-nav-item.active{color:var(--c-brand) !important;background:var(--c-brand-soft) !important}
/* 卡片内的次要说明（余额、模型信息、统计） */
.overview-card>span,.overview-card>small{color:var(--n-700) !important}
.overview-card>b{color:var(--n-900) !important}
.model-card p,.model-bottom,.stats-row,.trust-row,.hero-meta,.site-footer{color:var(--n-700) !important}
/* 深色模式：以上组件的深色配对 */
[data-theme="dark"] .char-count,[data-theme="dark"] .prompt-count{color:var(--n-800) !important}
[data-theme="dark"] .chip-btn,[data-theme="dark"] .count-chip{
  color:var(--n-900) !important;
  background:var(--n-100) !important;
  border-color:var(--n-300) !important;
}
[data-theme="dark"] .upload-hint{color:var(--n-800) !important}
[data-theme="dark"] .upload-zone{background:var(--n-50) !important;border-color:var(--n-300) !important}
[data-theme="dark"] details.advanced>summary,[data-theme="dark"] summary.adv{color:var(--n-900) !important}
[data-theme="dark"] details.advanced>summary small,[data-theme="dark"] summary.adv small{color:var(--n-800) !important}
[data-theme="dark"] .seg,[data-theme="dark"] .filter-chip,[data-theme="dark"] .user-nav-item{color:var(--n-900) !important}
[data-theme="dark"] .seg.active,[data-theme="dark"] .filter-chip.active,[data-theme="dark"] .user-nav-item.active{color:#99aad6 !important;background:var(--c-brand-soft) !important}
[data-theme="dark"] .overview-card>span,[data-theme="dark"] .overview-card>small{color:var(--n-800) !important}
[data-theme="dark"] .overview-card>b{color:var(--n-900) !important}
[data-theme="dark"] .model-card p,[data-theme="dark"] .model-bottom,[data-theme="dark"] .stats-row,[data-theme="dark"] .trust-row,[data-theme="dark"] .hero-meta,[data-theme="dark"] .site-footer{color:var(--n-800) !important}


/* —— 12. active/选中态统一：品牌底 + 白字（避免"深绿字配深绿底"） —— */
.filter-tabs a,.seg,.user-nav-item,.gallery-tabs a{color:var(--n-800)}
/* 说明：分段选择器（.seg，如「文字生图 / 参考图生图」）是较大的卡片式控件，
   实心填充会显得笨重且压过下方的主操作按钮；改为「浅品牌底 + 品牌描边 +
   品牌文字」的精致选中态。筛选 tab 与侧栏导航仍保留实心强调。 */
.filter-tabs a.active,.user-nav-item.active,.gallery-tabs a.active{
  background:var(--c-btn-bg) !important;
  border-color:var(--c-btn-bg) !important;
  color:#fff !important;
  background-image:none !important;
  box-shadow:var(--elev-1) !important;
}
.seg.active{
  background:var(--c-brand-soft) !important;
  border-color:var(--c-brand) !important;
  color:var(--c-brand) !important;
  background-image:none !important;
  box-shadow:inset 0 0 0 1px var(--c-brand) !important;
}
.seg.active b{color:var(--c-brand)}
.seg.active small{color:var(--c-brand);opacity:.78}
.filter-tabs a:not(.active):hover,.gallery-tabs a:not(.active):hover{
  background:var(--n-100) !important;border-color:var(--n-300) !important;
}
[data-theme="dark"] .filter-tabs a.active,
[data-theme="dark"] .user-nav-item.active,[data-theme="dark"] .gallery-tabs a.active{
  background:var(--c-btn-bg) !important;border-color:var(--c-btn-bg) !important;color:#fff !important;
}
[data-theme="dark"] .seg.active{
  background:rgba(113,102,240,.16) !important;
  border-color:#7166f0 !important;
  color:#b7b0ff !important;
  box-shadow:inset 0 0 0 1px #7166f0 !important;
}
[data-theme="dark"] .seg.active b{color:#b7b0ff}
[data-theme="dark"] .seg.active small{color:#b7b0ff;opacity:.8}
/* 账户概览卡片：数值与标签明确配对 */
.overview-card{background:var(--n-0) !important}
.overview-card>span{color:var(--n-700) !important}
.overview-card>b{color:var(--n-900) !important}
.overview-card>small{color:var(--n-600) !important}
[data-theme="dark"] .overview-card{background:var(--n-25) !important}
[data-theme="dark"] .overview-card>span{color:var(--n-800) !important}
[data-theme="dark"] .overview-card>b{color:var(--n-900) !important}
[data-theme="dark"] .overview-card>small{color:var(--n-700) !important}
/* 高级参数摘要与说明 */
details.advanced>summary,details[data-advanced]>summary{color:var(--n-900) !important}
details.advanced>summary small,details[data-advanced]>summary small{color:var(--n-700) !important}
.param-note,.field-hint{color:var(--n-700) !important}
[data-theme="dark"] details.advanced>summary,[data-theme="dark"] details[data-advanced]>summary{color:var(--n-900) !important}
[data-theme="dark"] details.advanced>summary small,[data-theme="dark"] details[data-advanced]>summary small{color:var(--n-800) !important}
[data-theme="dark"] .param-note,[data-theme="dark"] .field-hint{color:var(--n-800) !important}
/* 首页统计与作品示例文字 */
.hero-stats,.creator-count,.sample-prompt,.model-card p{color:var(--n-700) !important}
[data-theme="dark"] .hero-stats,[data-theme="dark"] .creator-count,[data-theme="dark"] .sample-prompt,[data-theme="dark"] .model-card p{color:var(--n-800) !important}


/* —— 13. 渐变底组件：企业风去掉渐变后必须补上实底，否则文字失去依托 ——
   这些组件原本靠浅色渐变衬托深色文字，去掉渐变后底色变透明，
   审计中表现为「文字色 ≈ 背景色」。此处统一改为实底 + 配对文字色。 */
.balance-chip{
  background:var(--n-50) !important;
  background-image:none !important;
  border:1px solid var(--n-200) !important;
  color:var(--n-700) !important;
  box-shadow:none !important;
}
.balance-chip span{color:var(--n-700) !important}
.balance-chip b{color:var(--n-900) !important}
[data-theme="dark"] .balance-chip{
  background:var(--n-100) !important;border-color:var(--n-300) !important;color:var(--n-800) !important;
}
[data-theme="dark"] .balance-chip span{color:var(--n-800) !important}
[data-theme="dark"] .balance-chip b{color:#99aad6 !important}
/* 高级参数摘要行：原为浅底条带，去掉渐变后补实底 */
details.advanced>summary,details[data-advanced]>summary{
  background:var(--n-50) !important;background-image:none !important;
  border:1px solid var(--n-200) !important;color:var(--n-900) !important;
}
details.advanced>summary small,details[data-advanced]>summary small{color:var(--n-700) !important}
[data-theme="dark"] details.advanced>summary,[data-theme="dark"] details[data-advanced]>summary{
  background:var(--n-100) !important;border-color:var(--n-300) !important;color:var(--n-900) !important;
}
[data-theme="dark"] details.advanced>summary small,[data-theme="dark"] details[data-advanced]>summary small{color:var(--n-800) !important}
/* 上传区提示与占位说明 */
.upload-zone{background:var(--n-50) !important;background-image:none !important;border:1px dashed var(--n-300) !important}
.upload-zone,.upload-hint,.upload-zone small{color:var(--n-700) !important}
[data-theme="dark"] .upload-zone{background:var(--n-100) !important;border-color:var(--n-300) !important}
[data-theme="dark"] .upload-zone,[data-theme="dark"] .upload-hint,[data-theme="dark"] .upload-zone small{color:var(--n-800) !important}
/* 首页统计 / 示例提示 / 引导文字 */
.creator-count,.hero-stats,.sample-prompt,.onboard-tip{color:var(--n-700) !important}
.hero .model-mini,.model-card p,.model-bottom span{color:var(--n-700) !important}
[data-theme="dark"] .creator-count,[data-theme="dark"] .hero-stats,[data-theme="dark"] .sample-prompt{color:var(--n-800) !important}
[data-theme="dark"] .hero .model-mini,[data-theme="dark"] .model-card p,[data-theme="dark"] .model-bottom span{color:var(--n-800) !important}
/* 通用：凡是我在审计中发现的低对比元素，统一提升到可读色阶 */
.mini-label,.art-float,.steps b,.return-icon,.billing-hint,.code-hint{color:var(--n-700) !important}
[data-theme="dark"] .mini-label,[data-theme="dark"] .art-float,[data-theme="dark"] .steps b,
[data-theme="dark"] .return-icon,[data-theme="dark"] .billing-hint,[data-theme="dark"] .code-hint{color:var(--n-800) !important}


/* —— 14. 深色模式：统一清除卡片类渐变底，改为实底 ——
   深色模式下原项目用多组 linear-gradient 做卡片底，
   与企业风的「实底 + 边框」不一致，且会让文字失去明确背景导致对比度误判。
   这里按语义分组统一处理。 */
[data-theme="dark"] .card,
[data-theme="dark"] .model-card,
[data-theme="dark"] .gallery-card,
[data-theme="dark"] .template-card,
[data-theme="dark"] .result-card,
[data-theme="dark"] .inspiration-card,
[data-theme="dark"] .composer,
[data-theme="dark"] .template-form,
[data-theme="dark"] .table-wrap,
[data-theme="dark"] .plan,
[data-theme="dark"] .metric,
[data-theme="dark"] .metric+div,
[data-theme="dark"] .empty,
[data-theme="dark"] .admin-metric,
[data-theme="dark"] .model-quick,
[data-theme="dark"] .balance-chip,
[data-theme="dark"] .model-icon,
[data-theme="dark"] .cta,
[data-theme="dark"] .alert,
[data-theme="dark"] .alert.ok,
[data-theme="dark"] .prompt-toolbar{
  background-image:none !important;
  background-color:var(--n-25) !important;
  border:1px solid var(--n-200) !important;
}
/* 语义例外：强调型模块保留可辨识的品牌底（但用纯色，不用渐变） */
[data-theme="dark"] .cta,[data-theme="dark"] .metric{background-color:#3253ae !important;border-color:var(--n-300) !important}
[data-theme="dark"] .alert{background-color:#33232a !important;border-color:#5a333d !important}
[data-theme="dark"] .alert.ok{background-color:#3254ae !important;border-color:#3a61c6 !important}
[data-theme="dark"] .filter-tabs a.active{background-color:var(--c-btn-bg) !important;background-image:none !important}
/* 骨架屏与缩略图占位：保留轻微闪烁底（纯色即可） */
[data-theme="dark"] .skeleton,[data-theme="dark"] .gallery-preview,
[data-theme="dark"] .result-card>a:first-child{background-image:none !important;background-color:var(--n-100) !important}
/* 浅色模式同步收敛（原项目浅色也有渐变卡片） */
.card,.model-card,.gallery-card,.template-card,.result-card,
.inspiration-card,.composer,.template-form,.table-wrap,.plan,
.metric,.metric+div,.empty,.admin-metric,.model-quick,.balance-chip{
  background-image:none !important;
}
.metric,.admin-metric{background-color:var(--n-50) !important}
.empty{background-color:var(--n-50) !important}


/* —— 15. 逐项精修（依据浏览器实测的 DOM 定位，不再泛化覆盖） —— */
/* (1) .metric 是「浅底 + 白字」组合：企业风把它的底色改浅后白字不可见
       → 恢复为品牌实底（深底白字），与企业风的强调模块一致 */
.metric{background-color:#1448ea !important;color:#fff !important;border-color:#1448ea !important}
.metric span,.metric small{color:rgba(255,255,255,.88) !important}
.metric b{color:#fff !important}
[data-theme="dark"] .metric{background-color:#3253ae !important;border-color:var(--n-300) !important;color:#fff !important}
[data-theme="dark"] .metric span,[data-theme="dark"] .metric small{color:rgba(255,255,255,.82) !important}
/* (2) .sub 在企业风中偏灰：提升到 n-700 */
.sub{padding:0}
p.sub,.sub{color:var(--n-700) !important}
[data-theme="dark"] p.sub,[data-theme="dark"] .sub{color:var(--n-800) !important}
.param-note{color:#506694 !important;background:transparent !important}
[data-theme="dark"] .param-note{color:#cad0db !important}
/* (3) .inspiration-card 内的强调文字（品牌色）在深色下需提亮 */
[data-theme="dark"] .inspiration-card b{color:#99aad6 !important}
.inspiration-card b{color:var(--c-brand) !important}
/* (4) .gradient-text 依赖 background-clip:text，在深色下几乎不可见
       → 企业风改为纯色强调，去掉渐变裁切（更稳、更清晰） */
.gradient-text{
  background:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  -webkit-text-fill-color:currentColor !important;
  color:var(--c-brand) !important;
}
[data-theme="dark"] .gradient-text{color:#99aad6 !important}
/* (5) 首页浮层卡片（去处玻璃拟态后）的补充：确保文字与实底配对 */
.art-card,.art-main,.art-float{color:#eaedf4 !important}
.art-card b,.art-main b,.art-float b{color:#fff !important}
.art-card .mini-label,.art-main .mini-label{color:#bdc5d5 !important}
[data-theme="dark"] .art-card,[data-theme="dark"] .art-main,[data-theme="dark"] .art-float{color:#dce0e6 !important;background-color:var(--n-100) !important}
[data-theme="dark"] .art-card b,[data-theme="dark"] .art-main b,[data-theme="dark"] .art-float b{color:var(--n-900) !important}
[data-theme="dark"] .art-card .mini-label,[data-theme="dark"] .art-main .mini-label{color:var(--n-800) !important}
/* (6) 引导提示条：确保白字 + 品牌实底始终成立 */
.onboard-tip{background-color:var(--c-btn-bg) !important;color:#fff !important}
.onboard-tip *{color:#fff !important}
[data-theme="dark"] .onboard-tip{background-color:var(--c-btn-bg) !important;color:#fff !important}


/* —— 16. 末轮精修（每项都由浏览器实测的 DOM 定位后修正） —— */
/* (1) .art-card 浮层：浅色模式下底色是半透明浅色 → 文字必须用深色 */
.art-card,.art-main,.art-float{color:var(--n-800) !important;background-color:rgba(255,255,255,.94) !important}
.art-card b,.art-main b,.art-float b{color:var(--n-900) !important}
.art-card .mini-label,.art-main .mini-label,.art-card small{color:var(--n-700) !important}
[data-theme="dark"] .art-card,[data-theme="dark"] .art-main,[data-theme="dark"] .art-float{
  color:var(--n-900) !important;background-color:var(--n-100) !important;
}
[data-theme="dark"] .art-card b,[data-theme="dark"] .art-main b,[data-theme="dark"] .art-float b{color:var(--n-900) !important}
[data-theme="dark"] .art-card small,[data-theme="dark"] .art-card .mini-label{color:var(--n-800) !important}
/* (2) 首页右侧「最近作品」卡片：深色下仍是白底 → 改为深色实底 */
[data-theme="dark"] .recent-home-card{background-color:var(--n-25) !important;border-color:var(--n-200) !important}
[data-theme="dark"] .recent-home-card b,[data-theme="dark"] .recent-home-card strong{color:var(--n-900) !important}
[data-theme="dark"] .recent-home-card span,[data-theme="dark"] .recent-home-card small{color:var(--n-800) !important}
/* (3) 段落副标题：企业风降低字重后对比略降 → 加深一级 */
p.sub,.sub{color:var(--n-700) !important}
p.sub{color:#475b85 !important}
[data-theme="dark"] p.sub,[data-theme="dark"] .sub{color:var(--n-800) !important}
/* (4) 分段控件内的小字说明（选中态为品牌底白字） */
.seg small,.seg .seg-note{color:inherit !important;opacity:.9}
.seg:not(.active) small,.seg:not(.active) .seg-note{color:var(--n-700) !important;opacity:1}
[data-theme="dark"] .seg:not(.active) small,[data-theme="dark"] .seg:not(.active) .seg-note{color:var(--n-800) !important}
/* (5) 工作台内联说明与种子提示 */
.form-row small,.field small,.inline-hint,.seed-hint{color:var(--n-700) !important}
[data-theme="dark"] .form-row small,[data-theme="dark"] .field small,
[data-theme="dark"] .inline-hint,[data-theme="dark"] .seed-hint{color:var(--n-800) !important}
/* (6) 首页创作者计数等统计文字 */
.creator-count,.hero-sub,.hero-copy .sub{color:var(--n-700) !important}
[data-theme="dark"] .creator-count,[data-theme="dark"] .hero-sub,[data-theme="dark"] .hero-copy .sub{color:var(--n-800) !important}


/* —— 17. 修正「深底浅字/浅底深字」配对错误（本轮企业风引入的问题，逐一归位） —— */
/* (1) .metric 我改为品牌实底，但内部文字仍是深色 → 统一为白字系 */
.metric,.metric *{color:#fff !important}
.metric span,.metric small,.metric .label,.metric .hint{color:rgba(255,255,255,.86) !important}
[data-theme="dark"] .metric,.metric{border-color:transparent !important}
[data-theme="dark"] .metric,.metric *{color:#fff !important}
/* (2) 工作台副标题：它位于品牌底区块内 → 必须用浅字 */
/* 注意：.workspace-head 实际是浅底区块，副标题必须用深色（此前误设为浅字，已回退） */
.workspace-head .sub,.workspace-head .eyebrow,
.page-head .sub,.page .eyebrow{color:var(--n-700) !important}
[data-theme="dark"] .workspace-head .sub,[data-theme="dark"] .workspace-head .eyebrow,
[data-theme="dark"] .page-head .sub,[data-theme="dark"] .page .eyebrow{color:var(--n-800) !important}
/* (3) 高级参数摘要（浅底深字）保持深字；深色下用浅字 */
details.advanced>summary,details[data-advanced]>summary{color:var(--n-900) !important}
[data-theme="dark"] details.advanced>summary,[data-theme="dark"] details[data-advanced]>summary{color:#e6e9ef !important}
.param-note{color:#506694 !important;background:transparent !important}
[data-theme="dark"] .param-note{color:#cad0db !important}
/* (4) 首页引导气泡（品牌底 + 白字），并保证内部元素继承 */
.onboard-tip,.onboard-tip *{color:#fff !important}
/* (5) 分段控件 active（品牌底）内部小字 */
.seg.active,.seg.active *{color:var(--c-brand) !important}
[data-theme="dark"] .seg.active,[data-theme="dark"] .seg.active *{color:#b7b0ff !important}
.seg:not(.active),.seg:not(.active) *{color:var(--n-800) !important}
[data-theme="dark"] .seg:not(.active),[data-theme="dark"] .seg:not(.active) *{color:var(--n-900) !important}
/* (6) 提交按钮内的快捷键提示（品牌底上的半透明白字 → 提亮） */
.submit-main .kbd-hint{color:rgba(255,255,255,.92) !important}
[data-theme="dark"] .submit-main .kbd-hint{color:rgba(255,255,255,.92) !important}
/* (7) 工作台区块若使用品牌底，内部次级文字一并提亮 */


/* —— 18. 最后两处配对修正（依据实测 DOM） —— */
/* (1) .art-card .art-main 是浅色实底（rgba(255,255,255,.94)），内部文字必须为深色。
       此前只约束了卡片本身，未约束内部 strong/b → 补齐。 */
.art-card strong,.art-main strong,.art-float strong,
.art-card b,.art-main b,.art-float b,
.art-card span,.art-main span,.art-float span,
.art-card small,.art-main small,.art-float small{color:var(--n-900) !important}
.art-card,.art-main,.art-float{color:var(--n-800) !important}
[data-theme="dark"] .art-card strong,[data-theme="dark"] .art-main strong,
[data-theme="dark"] .art-card b,[data-theme="dark"] .art-main b,
[data-theme="dark"] .art-card span,[data-theme="dark"] .art-main span,
[data-theme="dark"] .art-card small,[data-theme="dark"] .art-main small{color:var(--n-900) !important}
/* (2) details.advanced 在浅色模式被我误设为深底 → 恢复浅底深字；
       深色模式才是深底浅字。 */
details.advanced,details[data-advanced]{
  background-color:var(--n-50) !important;
  border:1px solid var(--n-200) !important;
  color:var(--n-900) !important;
}
details.advanced>summary,details[data-advanced]>summary{
  background-color:transparent !important;color:var(--n-900) !important;
}
details.advanced .advanced-body,details[data-advanced] .advanced-body{color:var(--n-800) !important}
details.advanced .param-note,details[data-advanced] .param-note{color:var(--n-700) !important}
[data-theme="dark"] details.advanced,[data-theme="dark"] details[data-advanced]{
  background-color:var(--n-50) !important;border-color:var(--n-200) !important;color:var(--n-900) !important;
}
[data-theme="dark"] details.advanced>summary,[data-theme="dark"] details[data-advanced]>summary{
  background-color:transparent !important;color:var(--n-900) !important;
}
[data-theme="dark"] details.advanced .param-note,[data-theme="dark"] details[data-advanced] .param-note{color:var(--n-800) !important}

  /* 卡片/表头/标签在暗色下用稍亮的中性底，与页面底拉开层次，同时保证文字对比 */
  [data-theme="dark"] .card,
  [data-theme="dark"] .model-card,
  [data-theme="dark"] .gallery-card,
  [data-theme="dark"] .template-card,
  [data-theme="dark"] .result-card,
  [data-theme="dark"] .inspiration-card,
  [data-theme="dark"] .composer,
  [data-theme="dark"] .template-form,
  [data-theme="dark"] .table-wrap,
  [data-theme="dark"] .plan{background:#151b23 !important;border-color:#242e39 !important}
  [data-theme="dark"] th,
  [data-theme="dark"] thead th{background:#1a212b !important;color:#a8b4c4 !important}
  [data-theme="dark"] .tag,
  [data-theme="dark"] .status{background:#212b36 !important;color:#c6d0dd !important;border-color:#2f3a48 !important}
  [data-theme="dark"] .metric,
  [data-theme="dark"] .balance>div{background:#151b23 !important;border-color:#242e39 !important;color:#e8eef6 !important}
  [data-theme="dark"] .overview-card,
  [data-theme="dark"] .dashboard-stat,
  [data-theme="dark"] .dashboard-chart,
  [data-theme="dark"] .profile-data-row,
  [data-theme="dark"] .profile-create-grid a{background:#151b23 !important;border-color:#242e39 !important}
  [data-theme="dark"] .metric{background:linear-gradient(135deg,#1c3f8f,#16306d) !important;color:#eaf1fb !important}
  [data-theme="dark"] .model-count-link{background:#212b36 !important;color:#a8c4f0 !important}
  /* 亮色下的标签/表头文字加深 */
  .tag{color:#2b4a8f}
  th,thead th{color:#4c5866}

  /* 暗色下：卡片与次按钮需要真正的中性深色底，而不是品牌蓝。
     原因：--n-0 在暗色块里被改成 #325cae 作为页面底色，
     而 .card / .btn.alt 又用它当背景，导致「深蓝底 + 浅字」对比不足、
     以及在部分场景出现「白底浅字」。这里为二者单独定义颜色。 */
  [data-theme="dark"] .btn.alt{
    background:#1b2330 !important;
    border-color:#33404f !important;
    color:#dde4ee !important;
  }
  [data-theme="dark"] .btn.alt:hover{
    background:#25303d !important;
    border-color:#415063 !important;
    color:#eef3f9 !important;
  }
  [data-theme="dark"] .card,
  [data-theme="dark"] .model-card,
  [data-theme="dark"] .gallery-card,
  [data-theme="dark"] .template-card,
  [data-theme="dark"] .result-card,
  [data-theme="dark"] .inspiration-card,
  [data-theme="dark"] .composer,
  [data-theme="dark"] .template-form,
  [data-theme="dark"] .table-wrap,
  [data-theme="dark"] .plan{
    background:#151b23 !important;
    border-color:#242e39 !important;
  }
  [data-theme="dark"] .admin-top-link{
    background:#1b2330 !important;
    border-color:#33404f !important;
    color:#c9d4e2 !important;
  }
  [data-theme="dark"] kbd{
    background:#25303d !important;
    border-color:#3a4757 !important;
    color:#b8c4d4 !important;
  }
  /* 亮色下的小标签文字加深，达到 4.5:1 */
  .build-tag, kbd{color:#4d5867 !important}

  /* —— 19. 控制台「快捷入口」按钮：数量多，实心强调色会抢走主操作注意力 ——
       改为浅底 + 品牌字的次按钮，hover 时才加强。
       （必须写在这一层：企业样式在 app.css 之后注入，同优先级下后者生效） */
  .admin-quick-group .btn{
    background:var(--c-brand-soft) !important;
    color:var(--c-brand) !important;
    border:1px solid transparent !important;
    box-shadow:none !important;
  }
  .admin-quick-group .btn:hover{
    background:var(--c-btn-bg) !important;
    color:#fff !important;
    border-color:var(--c-btn-bg) !important;
  }
  [data-theme="dark"] .admin-quick-group .btn{
    background:rgba(113,102,240,.16) !important;color:#b7b0ff !important;
  }
  [data-theme="dark"] .admin-quick-group .btn:hover{
    background:#7166f0 !important;color:#fff !important;border-color:#7166f0 !important;
  }
  /* —— 20. 指标卡数值层次 —— */
  .admin-metric b{font-size:26px !important;letter-spacing:-.02em}

  /* —— 21. 余额面板：此前是整块实心蓝（#1d4ee6），
       与站内其他白底卡片风格脱节，且两块饱和色并列非常抢眼。
       改为「浅底卡片 + 品牌色金额 + 左侧品牌竖条」，保留辨识度但不厚重。 */
  /* 余额卡实际由 .balance > .metric 渲染 */
  .balance .metric{
    background-color:var(--n-50) !important;
    background-image:none !important;
    color:var(--n-900) !important;
    border:1px solid var(--n-200) !important;
    border-left:3px solid var(--c-brand) !important;
    box-shadow:none !important;
  }
  .balance .metric span{color:var(--n-700) !important}
  .balance .metric b{color:var(--c-brand) !important}
  [data-theme="dark"] .balance .metric{
    background-color:var(--n-100) !important;border-color:var(--n-300) !important;
    border-left-color:#7166f0 !important;color:var(--n-900) !important;
  }
  [data-theme="dark"] .balance .metric span{color:var(--n-800) !important}
  [data-theme="dark"] .balance .metric b{color:#b7b0ff !important}

  /* —— 22.2 浅底小字对比度补齐 ——
       以下几处是「面向浅底的灰色小字」，实测 2.8~4.45:1，未达 4.5。
       统一加深一档（仅浅色主题生效，深色主题另有定义不受影响）。 */
  .admin-main .admin-metric small{color:#536c9a !important}
  .config-check-list small{color:#556f9e !important}
  .settings-section-nav a{color:#495e88 !important}
  .admin-nav-group-title{color:#5a6577 !important}
  .admin-sidebar-status small{color:#5a6577 !important}
  .upload-zone .upload-hint,.upload-hint{color:#5a6577 !important}
  /* 深色下保持原有提亮值 */
  [data-theme="dark"] .admin-main .admin-metric small,
  [data-theme="dark"] .config-check-list small,
  [data-theme="dark"] .settings-section-nav a{color:#9aa7ba !important}

  /* 分段控件选中态的小字：品牌色压浅品牌底只有 3.96，单独加深 */
  .seg.active small{color:#1f47b8 !important;opacity:1 !important}
  [data-theme="dark"] .seg.active small{color:#c8c2ff !important}

  /* 首页演示卡（.stages）内的文字：底色是饱和色块，
     此前用的是深色次要文字色（--n-600），实测仅 1.79:1。
     改用白色并去掉行内半透明（半透明同样会拉低对比）。 */
  body.is-front-page .hero-art .stages small,
  body.is-front-page .hero-art .stages strong,
  body.is-front-page .hero-art .stages b,
  body.is-front-page .hero-art .stages .mini-label{
    color:#fff !important;opacity:1 !important;
  }
  [data-theme="dark"] body.is-front-page .hero-art .stages small,
  [data-theme="dark"] body.is-front-page .hero-art .stages strong{color:#fff !important}

  /* —— 22.05 剩余低对比补齐（逐条核实过） —— */
  /* 1) 余额卡标签：--n-700 在 0.8 透明度下只剩 3.48:1，去掉透明度 */
  .balance .metric span,.metric span{opacity:1 !important}
  /* 2) 后台禁用态次按钮（如「填写后先测连通」）：--n-800 在白底仅 3.0:1 */
  body.is-admin-page .admin-main .btn.alt:disabled,
  body.is-admin-page .admin-main .btn.alt[disabled]{
    color:#5b6b8c !important;   /* 哑光但仍达 5.35:1 */
    opacity:1 !important;       /* 禁用态靠颜色与描边表达，不再叠加透明度 */
    border-color:#d3d5da !important;
    background-color:#f6f8fb !important;
  }
  /* 3) 首页演示卡上的小标签：实际底色是饱和色块，文字必须用白色系 */
  body.is-front-page .hero-art .mini-label{
    color:#fff !important;background:rgba(0,0,0,.30) !important;
  }
  body.is-front-page .hero-art .mini-label *{color:#fff !important}
  html[data-theme="dark"] body.is-front-page .hero-art .mini-label{color:#fff !important}

  /* —— 22.07 深色模式对比度修复（实测） ——
     深色下品牌色 #7166f0 被同时用作「文字色」与「按钮底色」：
       · 作为文字压深底 rgb(28,30,35) 只有 3.86:1（21+ 处，含返回链接、
         模型价格、控制台条目、副标题）
       · 作为按钮底配近白字同样只有 3.86:1（14 处搜索/提交按钮）
     拆分处理：文字提亮到 #9d95ff（6.49:1）；按钮底加深到 #6156e0（4.79:1）。 */
  [data-theme="dark"] a,
  [data-theme="dark"] small,
  [data-theme="dark"] .model-pick-price,
  [data-theme="dark"] .back-link,
  [data-theme="dark"] .admin-nav-text small,
  [data-theme="dark"] .admin-nav-item,
  [data-theme="dark"] .admin-nav-item.active,
  [data-theme="dark"] .admin-nav-group-title,
  [data-theme="dark"] h3{ }
  /* 只针对「本职就是品牌色」的链接/价格，避免误伤白底卡片内的普通链接 */
  [data-theme="dark"] a.back-link,
  [data-theme="dark"] .model-pick-price,
  /* 收窄：此前用 '.admin-main a:not(...)' 过宽，
     :not() 会累加特异度到 (0,4,1)，反过来压过筛选 tab 的白字规则。
     这里只挑「卡片/表单正文里的正文链接」，不再命中 tab 与导航。 */
  [data-theme="dark"] .card p a,
  [data-theme="dark"] .admin-form p a,
  [data-theme="dark"] .detail-page p a,
  [data-theme="dark"] .templates-page p a{color:#9d95ff !important}
  /* 保持中性小字仍是灰白，只把「品牌色系」的链接/价格提亮 */
  [data-theme="dark"] .admin-nav-text small,
  [data-theme="dark"] .admin-nav-group-title,
  [data-theme="dark"] .sub,
  [data-theme="dark"] .field-hint,
  [data-theme="dark"] .admin-main small{color:#a9b4c4 !important}
  /* 深色按钮：底加深，保证近白字达标 */
  [data-theme="dark"] .btn,
  [data-theme="dark"] body.is-admin-page .admin-main .btn,
  [data-theme="dark"] button.btn{background-color:#6156e0 !important}
  [data-theme="dark"] .btn:hover,
  [data-theme="dark"] body.is-admin-page .admin-main .btn:hover{background-color:#7166f0 !important}
  /* 深色下的小标题与统计标签 */
  [data-theme="dark"] .admin-quick-group h3,
  [data-theme="dark"] .config-check-list h3{color:#8ca5d2 !important}
  /* 深色下钱包统计块内的浅灰小字 */
  [data-theme="dark"] .wallet-panel-stats small,
  [data-theme="dark"] .wallet-panel small{color:#e8eeff !important;opacity:1 !important}

  /* 深色覆盖缺口：首页「继续创作」入口卡在深色下仍是白底，
     配上深色主题的链接色就变成浅紫压白字（2.57:1）。补齐深色面。 */
  /* 注意：app.css 的 'body.is-front-page .return-grid>a{background:#fff!important}'
     特异度是 (0,2,2)，高于本节此前的 (0,2,1)，因此必须用更高特异度覆盖。 */
  html[data-theme="dark"] body.is-front-page .return-grid>a.return-action{
    background:#202127 !important;background-color:#202127 !important;border-color:#2e2e32 !important;
  }
  html[data-theme="dark"] body.is-front-page .return-grid>a.return-action:hover{
    background:#26262c !important;background-color:#26262c !important;border-color:#7166f0 !important;
  }
  html[data-theme="dark"] body.is-front-page .return-grid>a.return-action b,
  html[data-theme="dark"] body.is-front-page .return-grid>a.return-action strong{color:#e3e8ef !important}
  html[data-theme="dark"] body.is-front-page .return-grid>a.return-action small{color:#a9b4c4 !important}

  /* 深色下品牌色既当文字又当底色，二者对亮度的要求相反：
     作为文字压深底需更亮（#9d95ff → 6.49:1），作为按钮底需更深（#6156e0）。
     这里把「文字用途」的令牌整体提亮，按钮底色用显式规则固定。 */
  [data-theme="dark"]{
    --c-brand:#9d95ff;
    --brand:#9d95ff;
  }
  /* 侧栏/内容区若仍以品牌色作底，覆盖回深色按钮底 */
  [data-theme="dark"] body.is-admin-page .admin-main .btn,
  [data-theme="dark"] .btn,
  [data-theme="dark"] .submit-main,
  [data-theme="dark"] .filter-tabs a.active,
  [data-theme="dark"] .user-nav-item.active,
  [data-theme="dark"] .gallery-tabs a.active{background-color:#6156e0 !important;color:#fff !important}
  /* v223c：提交等待态时按钮文字隐藏（上述 !important 会盖掉 app.css 的 color:transparent） */
  html.is-submitting .submit-main{color:transparent !important}
  html.is-submitting .submit-main .kbd-hint{opacity:0 !important}
  /* 蓝底统计块内的浅灰小字与加粗值 */
  [data-theme="dark"] .wallet-panel-stats small{color:#e8eeff !important}
  [data-theme="dark"] .wallet-panel-stats b,
  [data-theme="dark"] .wallet-panel-stats strong{color:#fff !important}
  /* 控制台提示文字 */
  [data-theme="dark"] .admin-main .hint,
  [data-theme="dark"] .admin-main .sub,
  [data-theme="dark"] .admin-console-panel small{color:#a9b4c4 !important}

  /* 深色卡片内的小标题与说明：此前沿用浅色主题的深蓝/深灰，
     压深底只有 2.5~2.8:1（设置页 13 个 h2、控制台 17 处小字）。 */
  [data-theme="dark"] .card h1,[data-theme="dark"] .card h2,
  [data-theme="dark"] .card h3,[data-theme="dark"] .card h4,
  [data-theme="dark"] .admin-form h1,[data-theme="dark"] .admin-form h2,
  [data-theme="dark"] .admin-form h3{color:#e3e8ef !important}
  [data-theme="dark"] .card small,
  [data-theme="dark"] .admin-form small,
  [data-theme="dark"] .admin-main small{color:#a9b4c4 !important}
  /* 分辨率/规格芯片：浅灰字压中蓝底 */
  [data-theme="dark"] .resolution-chip b,
  [data-theme="dark"] .resolution-chip strong{color:#fff !important}
  [data-theme="dark"] .resolution-chip small{color:#e8eeff !important}

  /* 深色顶部导航：链接此前是浅色主题的深灰 rgb(75,85,99)，
     压深底只有 2.2:1（24 处，导航几乎看不见）。 */
  [data-theme="dark"] header.nav a,
  [data-theme="dark"] .nav a,
  [data-theme="dark"] .nav .links a,
  [data-theme="dark"] .nav a.wallet-nav,
  [data-theme="dark"] .nav a.admin-link{color:#cbd3de !important}
  [data-theme="dark"] .nav a:hover,
  [data-theme="dark"] .nav a.active{color:#fff !important}
  [data-theme="dark"] .nav a.wallet-nav{color:#b7b0ff !important}
  [data-theme="dark"] .nav a.admin-link{color:#ffc98b !important}
  [data-theme="dark"] .nav .theme-toggle,
  [data-theme="dark"] .nav button{color:#cbd3de !important}
  /* 卡片外的小字（控制台提示等） */
  [data-theme="dark"] .hint,
  [data-theme="dark"] small{color:#a9b4c4 !important}
  [data-theme="dark"] .admin-metrics small,
  [data-theme="dark"] .admin-metric small{color:#a9b4c4 !important}

  /* 侧栏选中项：深色下 #6182d1 压品牌底仅 2.1:1 → 白字 */
  [data-theme="dark"] .admin-nav-item.active,
  [data-theme="dark"] .admin-nav-item.active b,
  [data-theme="dark"] .admin-nav-item.active small{color:#fff !important}
  [data-theme="dark"] .admin-nav-item.active{background-color:#6156e0 !important;border-color:#6156e0 !important}
  [data-theme="dark"] .admin-nav-item.active .admin-nav-text small{color:#e8eeff !important}
  /* 比例/规格卡在深色下仍是浅底（覆盖缺口）→ 补深色面 */
  [data-theme="dark"] .ratio-card,
  [data-theme="dark"] .ratio-card.selected{
    background-color:#202127 !important;border-color:#36363a !important;
  }
  [data-theme="dark"] .ratio-card.selected{border-color:#7166f0 !important}
  [data-theme="dark"] .ratio-card b,
  [data-theme="dark"] .ratio-card strong{color:#e3e8ef !important}
  [data-theme="dark"] .ratio-card small{color:#a9b4c4 !important}
  [data-theme="dark"] .ratio-card.selected b,
  [data-theme="dark"] .ratio-card.selected strong{color:#fff !important}
  [data-theme="dark"] .ratio-card.selected small{color:#e8eeff !important}

  /* 深色下 .text-link 自身带白色胶囊底，需一并转深，否则浅紫压白底 */
  html[data-theme="dark"] a.text-link,
  html[data-theme="dark"] .section-title a.text-link,
  html[data-theme="dark"] body.is-front-page .return-panel a.text-link{
    background:#202127 !important;background-color:#202127 !important;
    border-color:#36363a !important;color:#9d95ff !important;
  }
  html[data-theme="dark"] a.text-link:hover{
    background:#26262c !important;border-color:#7166f0 !important;color:#fff !important;
  }
  html[data-theme="dark"] a.text-link *{color:#9d95ff !important}

  /* 深色收尾：三处 */
  /* 1) 空状态块（无图作品）在深色下仍是浅底 → 补深色面 */
  [data-theme="dark"] .recent-no-image{
    background-color:#202127 !important;border-color:#36363a !important;color:#a9b4c4 !important;
  }
  /* 2) .text-link 在深色下多数落在深色卡片上，应提亮；
        此前按「白底卡片」处理反而变成深蓝压深底。 */
  [data-theme="dark"] a.text-link{color:#9d95ff !important}
  /* 3) 视图切换 / 面包屑次级链接 */
  [data-theme="dark"] .view-switch a{color:#a9b4c4 !important}
  [data-theme="dark"] .view-switch a.active{color:#fff !important}

  /* 深色下风险项数字：红 #b54a45 压深底仅 3.22:1（此前失败任务少时未显形） */
  [data-theme="dark"] .risk-item.danger b{color:#f08a8a !important}
  [data-theme="dark"] .risk-item.warn b{color:#e0b64a !important}

  /* 画廊状态页签的计数徽标：原来用 opacity:.72 压暗，
     实测把对比度压到 3.29:1（浅色）/ 3.6:1（深色）。
     去掉透明度并用与页签一致的实色。 */
  .gallery-status-tabs b{opacity:1 !important;color:var(--n-800) !important}
  .gallery-status-tabs a{color:#2f4d84 !important}          /* 浅底 ≥4.7:1 */
  .gallery-status-tabs a b{color:#2f4d84 !important}
  [data-theme="dark"] .gallery-status-tabs a,
  [data-theme="dark"] .gallery-status-tabs a b{color:#cbd3de !important}
  /* 选中态是品牌蓝底，文字与计数都必须用白色 */
  .gallery-status-tabs a.active,
  .gallery-status-tabs a.active b{color:#fff !important;opacity:1 !important}
  [data-theme="dark"] .gallery-status-tabs a.active,
  [data-theme="dark"] .gallery-status-tabs a.active b{color:#fff !important}

  /* —— 22.11 深色模式收尾（逐条对症） —— */
  /* 分辨率芯片在深色下若保持浅底，文字必须回到深色 */
  [data-theme="dark"] .resolution-chip{background-color:#202127 !important;border-color:#36363a !important}
  /* v223 修复：上一条 !important 会同时压掉选中态（app.css 的 dark 选中规则无 !important），
     导致深色下选中卡与未选中卡完全同色、看不出选了哪档。
     选中态按同特异性+更晚声明提回来（品牌紫边，与 ratio-card 选中态一致）。 */
  [data-theme="dark"] .resolution-chip:has(input:checked),
  [data-theme="dark"] .resolution-chip.selected{
    background-color:rgba(37,99,235,.18) !important;
    border-color:#7166f0 !important;
  }
  [data-theme="dark"] .resolution-chip b,
  [data-theme="dark"] .resolution-chip strong{color:#e3e8ef !important}
  [data-theme="dark"] .resolution-chip small{color:#a9b4c4 !important}
  /* 首页主视觉段落 */
  [data-theme="dark"] body.is-front-page .hero-copy p,
  [data-theme="dark"] body.is-front-page .home-hero p{color:#b9c2d0 !important}
  /* 筛选 tab 选中态：品牌色令牌提亮后，浅紫压品牌底反而更差 → 固定白字 */
  [data-theme="dark"] .filter-tabs a.active,
  [data-theme="dark"] .gallery-tabs a.active,
  [data-theme="dark"] .user-nav-item.active,
  [data-theme="dark"] .view-switch a.active{color:#fff !important;background-color:#6156e0 !important}
  /* （已移除：深色下 .text-link 统一按深色卡片处理，提亮为 #9d95ff） */
  /* 钱包统计块小字（补一个更具体的命中） */
  [data-theme="dark"] .wallet-panel-stats div small,
  [data-theme="dark"] .wallet-panel-stats>div>small{color:#e8eeff !important}

  /* —— 22.09 深色模式第二轮补齐（逐条实测后取的值） —— */
  /* 表单标签：深色下 #456ec9 压深底仅 3.44:1（17 处） */
  [data-theme="dark"] label,
  [data-theme="dark"] .sub-label,
  [data-theme="dark"] .field>label,
  [data-theme="dark"] .field-head label{color:#a0afcd !important}
  /* 上传提示 */
  [data-theme="dark"] .upload-hint,
  [data-theme="dark"] .upload-zone .upload-hint{color:#8c96a8 !important}
  /* 控制台快捷按钮：浅紫字压品牌柔底只有 2.7:1 → 改用深紫底 */
  [data-theme="dark"] .admin-quick-group .btn{
    background-color:#3a3560 !important;color:#b7b0ff !important;border-color:#4a4478 !important;
  }
  [data-theme="dark"] .admin-quick-group .btn:hover{
    background-color:#7166f0 !important;color:#fff !important;border-color:#7166f0 !important;
  }
  /* 钱包统计块小字 */
  [data-theme="dark"] .wallet-panel-stats small{color:#e8eeff !important}
  /* 侧栏导航标题与品牌色小标签 */
  [data-theme="dark"] .admin-nav-text b{color:#b7c3d7 !important}
  [data-theme="dark"] .tag,
  [data-theme="dark"] span.tag{color:#9d95ff !important}

  /* —— 22.1 剩余低对比补齐 —— */
  /* 状态「成功/已完成」沿用固定色，需同步加深 */
  .status.ok{color:#2456cc !important}
  [data-theme="dark"] .status.ok{color:#a8c4f0 !important}
  /* 后台视图切换与子导航链接 */
  .view-switch a{color:#4e6690 !important}
  .view-switch a.active{color:var(--c-brand) !important}
  /* 链接式次按钮（如「填写后先测连通」） */
  button.btn-link,.btn-link{color:#1f56b8 !important}
  /* 首页演示卡上的小标签：底色是饱和色块，文字改白色系 */
  .hm-demo .mini-label,.hm-demo-grid .mini-label{color:rgba(255,255,255,.92) !important}
  .hm-demo small,.hm-demo-grid small{color:rgba(255,255,255,.88) !important}

  /* —— 22.3 蓝底钱包面板内的次要文字 ——
       背景：--n-600(#506694) 是「面向浅底的次要文字色」，
             却被套用到了蓝底面板内部的 small 上 →
             rgb(80,102,148) 压在 #1d4ee6 上，约 1.1:1，几乎不可见
             （个人中心「我的钱包 / 可用余额 / 累计消费」等标签）。
       修复：蓝底面板内的次要文字改为半透明白，保持层级但清晰可读。 */
  .wallet-panel-head small,
  .wallet-panel-stats small,
  .wallet-panel small,
  .wallet-panel em{
    /* 用不透明浅色而非半透明白：半透明会与蓝底混合，实测只有 3.1~3.9:1 */
    color:#e8eeff !important;
    opacity:1 !important;
  }

  /* —— 22.5 后台次按钮（.btn.alt）文字不可读的根因修复 ——
       背景：规则 'body.is-admin-page .admin-main .btn' 的特异度是 0,3,0，
             高于 '.btn.alt' 的 0,2,0，因此后台区域里的次按钮
             底色被强制成品牌蓝，却仍保留次按钮的深色文字 → 约 1.7:1，
             几乎不可读（多见于「删除 / 导出 / 作废 / 批量导入」等按钮）。
       修复：用同等特异度把次按钮还原为浅底深字，并补描边区分层级。 */
  body.is-admin-page .admin-main .btn.alt{
    background-color:var(--n-0) !important;
    color:var(--n-800) !important;
    border:1px solid var(--n-300) !important;
  }
  body.is-admin-page .admin-main .btn.alt:hover{
    background-color:var(--n-100) !important;
    color:var(--c-brand) !important;
    border-color:var(--c-brand) !important;
  }
  /* 危险操作（删除/作废）用红色语义，避免与普通次按钮混淆 */
  body.is-admin-page .admin-main .btn.alt.danger,
  body.is-admin-page .admin-main .btn.danger{
    color:#b8272c !important;
    border-color:rgba(184,39,44,.35) !important;
    background-color:#fff !important;
  }
  body.is-admin-page .admin-main .btn.alt.danger:hover,
  body.is-admin-page .admin-main .btn.danger:hover{
    background-color:#b8272c !important;color:#fff !important;border-color:#b8272c !important;
  }
  [data-theme="dark"] body.is-admin-page .admin-main .btn.alt{
    background-color:#2e3033 !important;color:#e3e8ef !important;border-color:#3f4249 !important;
  }
  [data-theme="dark"] body.is-admin-page .admin-main .btn.alt:hover{
    background-color:#36363a !important;color:#b7b0ff !important;border-color:#7166f0 !important;
  }

  /* —— 22. 搜索栏按钮：曾被 flex 压缩到 38px，导致「筛选」竖排成两行。
       flex 不收缩 + 不换行。 */
  .search-bar .btn,.search-bar button{
    flex:0 0 auto !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
  }


