/* ==========================================================================
   Q 版主题 · 系统桥接层 · SFMS / SWMS —— 深色基调版（2026-09-25）
   深色化试点：仅作用于 SWMS 已登录应用（布局含 .shell 的页面）。
   登录页保持浅色（由全局 00-wb-uialign.conf 控制），互不干扰。
   ★关键：真实 login.php 的 <body> **无 class**（不是 .login），故不能用 body:not(.login)
     判据（会把登录页也当应用页）。改用 body:has(.shell) —— 应用页恒有 .shell，登录页恒无，
     精准且稳。浏览器支持 :has（全局 wb-uialign.conf 已在用）。
   原则：复用原设计令牌，仅把浅色令牌翻为深色；不改任何结构/类名。
   ========================================================================== */
:root {
  --q-primary: #1e3a8a;
  --q-primary-d: #2f5fd0;
  --q-primary-l: #e8eefc;
  --q-primary-grad: linear-gradient(135deg, #1e3a8a 0%, #6f93e0 100%);
}

/* —— 深色令牌（仅应用内生效；登录页仍用浅色默认值）—— */
.shell, body:has(.shell) {
  --brand-50:  #15233d;  --brand-100: #1f335a;  --brand-200: #2c4f86;
  --brand-500: #5b9bff;  --brand-600: #4a8af0;  --brand-700: #8ab4ff;  --brand-900: #cfe0ff;
  --n-0:   #161d2b;  --n-50:  #1c2536;  --n-100: #0f1420;  --n-200: #2a3447;
  --n-300: #33405a;  --n-400: #8b97ad;  --n-500: #9aa7bf;  --n-600: #b6c0d2;
  --n-700: #c4cde0;  --n-800: #e3e8f2;  --n-900: #e8edf7;
  --ok-text:#4cc38a;  --ok-bg:#0f261c;   --ok-border:#1d3f2e;
  --wa-text:#e6c34d;  --wa-bg:#272010;   --wa-border:#3d3414;
  --dn-text:#ff7a8a;  --dn-bg:#2a1417;   --dn-border:#3d1f23;
  --in-text:#6fb1ff;  --in-bg:#11233f;   --in-border:#22406e;
  --pu-text:#9bb4ff;  --pu-bg:#15203a;   --pu-border:#243560;
  --te-text:#4fd1c0;  --te-bg:#0f2a27;   --te-border:#1c4a44;
  --or-text:#f0ad57;  --or-bg:#2a1e08;   --or-border:#3d2c12;
}

/* —— 关键手法：把共享 q-theme 的**变量**在深色作用域内重定义 ——
   q-theme 大量规则形如 input{background:var(--q-field)!important} /
   .side{background:var(--q-card)!important} / color:var(--q-text)!important，
   其中 input 规则的 :not() 链特异性高达 (0,5,1)，逐个硬覆盖既脆弱又易漏。
   直接改这些变量的取值，q-theme 相关规则会**自动**翻深，一次覆盖全部引用点。 */
.shell, body:has(.shell) {
  --q-bg:  #0f1420;   --q-bg2: #131a29;
  --q-card: #161d2b;
  --q-line: #2a3447;  --q-line2: #33405a;
  --q-text: #e8edf7;  --q-muted: #9aa7bf;
  --q-field: #161d2b;
  --q-primary-l: #15233d;
}

/* —— 页面底色 + 文字色（仅含 .shell 的应用页）；覆盖共享 q-theme 的浅底与深字色 ——
   注意：q-theme 用 `body{background:…var(--q-bg)!important}`（浅色+浅色径向渐变）强制浅底，
   须用 !important 才能翻成深色；同时清掉浅色渐变（硬编码色，变量法覆盖不到）。 */
body:has(.shell) {
  background-color: var(--n-100) !important;
  background-image: none !important;
  color: var(--n-900) !important;
}
.shell, body:has(.shell) { color: var(--n-900) !important; }
.shell h1, .shell h2, .shell h3, .shell h4, .shell h5, .shell legend, .shell th { color: var(--n-900) !important; }
.shell a { color: var(--brand-500) !important; }
.shell label { color: var(--n-600) !important; }
.shell .nv { color: var(--n-700) !important; }
.shell .nv:hover { color: var(--brand-700) !important; }
.shell .lang-switch2 a, .shell .lang-switch a { color: #cdd8ef !important; }
.shell .who .lnk { color: #cfe0f5 !important; }
.shell .side .nv-child { color: var(--n-600) !important; }

/* —— 顶栏：恢复深色调（桥接层原本误改为白底，导致语言切换器白字压白底）—— */
.topbar { background: linear-gradient(90deg, #16233a, #1f3557) !important; color: #fff !important; }
.topbar .brand em { background: rgba(255,255,255,.12) !important; color: #fff !important; }
.who .tag { background: #0d4595 !important; color: #fff !important; }

/* —— 语言切换器：固定深色胶囊，白字压深底，登录浅底/应用深底都可读 —— */
.lang-switch2, .lang-switch {
  background: #1c2740 !important; border: 1px solid #34425e !important;
}
.lang-switch2 a, .lang-switch a { color: #cdd8ef !important; }
.lang-switch2 a.on, .lang-switch a.on,
.lang-switch2 a:hover, .lang-switch a:hover { color: #fff !important; }
.lang-switch2 .sep, .lang-switch .sep { color: #9aa7bf !important; }

/* —— 主要表面：卡片/侧栏/统计/表格/输入/按钮 翻深色 —— */
.shell .card, .shell .side, .shell .stat, .shell .sub-mod-card,
.shell .tbl-wrap, .shell table.grid, .shell .empty,
.shell .pager .pg, .shell .tabs a.on,
.shell input, .shell select, .shell textarea,
.shell .modal-box, .shell .panel, .shell .box, .shell .popover, .shell .toast {
  background-color: var(--n-0) !important; border-color: var(--n-200) !important;
}
.shell .side { border-right: 1px solid var(--n-200) !important; }
.shell .card, .shell .stat, .shell .sub-mod-card, .shell .tbl-wrap,
.shell table.grid, .shell .empty { box-shadow: 0 1px 3px rgba(0,0,0,.35) !important; }
.shell .sub-mod-card { color: var(--n-900) !important; }
.shell .sub-mod-card .name { color: var(--n-900) !important; }
.shell .sub-mod-card .meta { color: var(--brand-600) !important; }
.shell .sub-mod-card:hover { border-color: var(--brand-500) !important; box-shadow: 0 6px 18px rgba(0,0,0,.4) !important; }
.shell .stat .v { color: #e8edf7 !important; }
.shell .stat.gray .v { color: var(--n-700) !important; }
.shell table.grid th, .shell table.grid td { border-bottom-color: var(--n-200) !important; }
.shell table.grid thead th { background: var(--n-50) !important; color: var(--n-700) !important; border-bottom-color: var(--n-300) !important; }
/* 行悬停：排除评级行（lv-* 自带底色）；并覆盖 q-theme 的
   `table tbody tr:hover td{background:#f6f9ff!important}`（浅底 → 深色页上文字瞬盲）。 */
.shell table.grid tbody tr:not(.lv-red):not(.lv-orange):not(.lv-yellow):not(.lv-gone):hover,
.shell table.grid tbody tr:not(.lv-red):not(.lv-orange):not(.lv-yellow):not(.lv-gone):hover td { background: var(--brand-50) !important; }
.shell table.grid tfoot td { background: var(--n-50) !important; }
.shell tr.lv-red td { background: #2a1517 !important; }    .shell tr.lv-red:hover td { background: #331a1c !important; }
.shell tr.lv-orange td { background: #2a2110 !important; }
.shell tr.lv-yellow td { background: #262417 !important; }
.shell tr.lv-gone td { background: #1a2030 !important; color: var(--n-500) !important; }
.shell .input, .shell input, .shell select, .shell textarea { color: var(--n-900) !important; }
/* 焦点态：q-theme 用 input:not(…):focus{background:#fff!important}（特异性 0,6,1），
   须用同链 + .shell 前缀（达到 0,7,1）才能覆盖，避免深色页里输入框一点击就变白。 */
.shell input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="color"]):not([type="range"]):focus,
.shell select:focus, .shell textarea:focus {
  background-color: var(--n-0) !important;
  color: var(--n-900) !important;
  border-color: var(--brand-500) !important;
  box-shadow: 0 0 0 3px rgba(91,155,255,.22) !important;
}

/* —— 按钮 —— */
.shell .btn { background: var(--n-0) !important; color: var(--n-800) !important; border-color: var(--n-300) !important; }
.shell .btn:hover { background: var(--n-50) !important; color: var(--n-900) !important; border-color: var(--n-400) !important; }
.shell .btn.pri { background: #1d4ed8 !important; border-color: #1d4ed8 !important; color: #fff !important; }
.shell .btn.pri:hover { background: #1740b8 !important; color: #fff !important; }
.shell .btn.dan { background: #c62828 !important; border-color: #c62828 !important; color: #fff !important; }
.shell .btn.dan:hover { background: #ad2222 !important; color: #fff !important; }
.shell .btn.ok  { background: #0f7a48 !important; border-color: #0f7a48 !important; color: #fff !important; }
.shell .btn.ok:hover { background: #0d6a3e !important; color: #fff !important; }
.shell .btn.sub { background: var(--n-100) !important; border-color: var(--n-200) !important; color: var(--n-700) !important; }
.shell .btn.sub:hover { background: var(--n-50) !important; }

/* —— 分页 / 标签页 / 时间线 等细节 —— */
.shell .pager .pg { color: var(--n-700) !important; }
.shell .pager .pg:hover { background: var(--n-50) !important; border-color: var(--n-400) !important; }
.shell .pager .pg.on { background: #1d4ed8 !important; border-color: #1d4ed8 !important; color: #fff !important; }
.shell .tabs a { color: var(--n-600) !important; }
.shell .tabs a:hover { color: var(--brand-700) !important; background: var(--n-50) !important; }
.shell .tabs a.on { background: var(--n-0) !important; border-color: var(--n-200) !important; color: var(--brand-700) !important; border-bottom-color: var(--n-0) !important; }
.shell .tabs { border-bottom-color: var(--n-200) !important; }
.shell .timeline li { border-left-color: var(--n-200) !important; }
.shell .timeline li::before { box-shadow: 0 0 0 3px var(--n-0) !important; }
.shell .steps .lv-h .no { background: #1d4ed8 !important; color: #fff !important; }
.shell .nav-badge { background: #c62828 !important; color: #fff !important; }
.shell .kv dt { color: var(--n-500) !important; }
.shell .files li { border-bottom-color: var(--n-200) !important; }
.shell .files li .meta { color: var(--n-500) !important; }

/* —— 徽章：q-theme 有 `.badge{background:var(--q-primary-grad)!important}` 把**所有** .b-*
   一律刷成蓝色渐变（语义色丢失、且与文字色对比不足）。逐类用深色令牌重刷，
   顺序须在本条 `.badge` 之后、且特效度(0,2,0) > q-theme 的(0,1,0)。 —— */
.shell .badge, .shell .chip, .shell .pill, .shell .u-pill {
  background: var(--n-100) !important; color: var(--n-700) !important; border-color: var(--n-300) !important;
}
.shell .b-green  { background: var(--ok-bg) !important; color: var(--ok-text) !important; border-color: var(--ok-border) !important; }
.shell .b-blue   { background: var(--in-bg) !important; color: var(--in-text) !important; border-color: var(--in-border) !important; }
.shell .b-yellow { background: var(--wa-bg) !important; color: var(--wa-text) !important; border-color: var(--wa-border) !important; }
.shell .b-orange { background: var(--or-bg) !important; color: var(--or-text) !important; border-color: var(--or-border) !important; }
.shell .b-red    { background: var(--dn-bg) !important; color: var(--dn-text) !important; border-color: var(--dn-border) !important; }
.shell .b-gray   { background: var(--n-100) !important; color: var(--n-600) !important; border-color: var(--n-200) !important; }
.shell .b-dark   { background: var(--n-200) !important; color: var(--n-800) !important; border-color: var(--n-300) !important; }
.shell .b-purple { background: var(--pu-bg) !important; color: var(--pu-text) !important; border-color: var(--pu-border) !important; }
.shell .b-teal   { background: var(--te-bg) !important; color: var(--te-text) !important; border-color: var(--te-border) !important; }

/* —— 登录页：保持浅色，仅确保语言切换器可读（深胶囊） + 副标题/页脚在白底上达标 —— */
.login-foot { color: #4a5568 !important; }   /* 白底深灰，≥7:1，原为浅灰 3.07:1 */
.login .sub { color: #4a5568 !important; }     /* 同上，登录页副标题 */
