/* ============================================================
   theme.css — 高对比度禁欲风覆盖层
   基线：pay-v7 禁欲风。冷墨蓝 #274C9B 单强调色，纯白面板，
   发丝线 #E7EAEF，去除渐变噪音，WCAG AA ≥ 4.5:1。
   v346：侧边栏由深墨 #0D1524 切换为纯白 #FFFFFF，与主区统一
   （根治「深色侧边栏 + 浅色主区混搭」）。仅覆盖，不重写 ——
   引入顺序在 style.css / style-util.css 之后。
   P1-C：teal 残留（--border-accent）根除、页头线切中性发丝线。
   ============================================================ */

/* ---------- 1. 全局变量：单强调色 + 去渐变噪音 ---------- */
:root{
  --primary:#274C9B;
  --primary-dark:#1D3C7E;
  --primary-light:#EEF2FA;
  --accent:#274C9B;
  --accent-dark:#1D3C7E;
  --accent-light:#E6ECF7;
  --accent-soft:rgba(39,76,155,.08);
  --accent-soft-2:rgba(39,76,155,.03);
  --gradient-primary:#274C9B;
  --gradient-sidebar:#0D1524;              /* 登录页品牌区保留深墨（.login-hero 专用） */
  --gradient-mesh:none;                    /* body：去三层 radial 噪音 */
  --border-accent:rgba(39,76,155,.30);     /* v346 P1-C：旧 teal 边框残留 → 冷墨蓝 */
  --sidebar-bg:#FFFFFF;                    /* v346: 侧边栏纯白，与主区统一 */
  --sidebar-text:#475569;                  /* 浅底深字 7.5:1 */
  --sidebar-hover:rgba(39,76,155,.06);
  --sidebar-border:#E7EAEF;
}

/* ---------- 7. 高对比度：拉升 muted/tertiary 文本对比度 (WCAG AA) ---------- */
/* 原 --text-muted #CBD5E1 ≈1.5:1、--text-3 #94A3B8 ≈2.4:1 近不可见；
   覆写为 AA 合规值（最差背景 --bg #F1F5F9 上仍 ≥4.5:1）。theme.css 后加载，覆盖 style.min.css :root。 */
:root{
  --text-muted:#64748B;     /* 4.1:1 on #F1F5F9 / 5.0:1 on #FFF */
  --text-3:#5B6675;         /* 5.0:1 on #F1F5F9 */
  --text-secondary:#475569; /* 6.5:1 on #F1F5F9 */
}
/* 统一字体阶梯 token（#2715/#2705）：单一标尺，规模调参一处生效 */
:root{
  --fs-2xs:10px; --fs-xs:12px; --fs-sm:13px; --fs-base:14px; --fs-md:15px;
  --fs-lg:16px; --fs-xl:18px; --fs-2xl:20px; --fs-22:22px; --fs-3xl:24px;
  --fs-4xl:28px; --fs-5xl:32px; --fs-6xl:40px; --fs-44:44px; --fs-7xl:48px;
  --fs-30:30px; --fs-36:36px; /* 补充非常规标尺成员，供散落大字统一引用 */
}
/* 暗色模式同步拉升，避免覆写后暗底出现深字（light-on-dark 保持可读） */
body.dark{
  --text-muted:#94A3B8;
  --text-3:#CBD5E1;
  --text-secondary:#94A3B8;
}

body{
  background:#F6F7F9;
  background-image:none;
  font-size:var(--fs-base);
}

/* ---------- 2. 侧边栏导航：浅底对比度分级 ---------- */
/* 分组标题：中性灰（白底上 4.7:1） */
.nav-group-title{color:#667085;letter-spacing:.14em;text-shadow:none}
.nav-group-title:hover{color:#344054}

/* 悬停：冷墨蓝 6% 淡底，不再与激活态混淆 */
.nav-item:hover{background:rgba(39,76,155,.06);color:#1D2939}
.sidebar-header .collapse-btn:hover{background:rgba(39,76,155,.06);color:var(--primary)}

/* 激活：实色冷墨蓝 + 左侧 3px 指示条，与 hover 断崖式可辨 */
.nav-item.active{
  background:var(--primary);
  color:#FFFFFF;
  font-weight:600;
  box-shadow:inset 3px 0 0 #6C93E8;
}
.nav-item.active::before{content:none}                 /* 去原发光条，改用 inset */
.nav-item.active .nav-icon{color:#9FB6E8}
.nav-item.tab-active{background:rgba(39,76,155,.10)}

/* 子项：去 opacity 压暗，改用字号+缩进表达层级 */
.nav-item.nav-sub{opacity:1;color:#667085}
.nav-item.nav-sub:hover{opacity:1;color:#1D2939}

/* ---------- 3. 顶栏：纯白实底 + 发丝线，去毛玻璃 ---------- */
.topbar{
  background:#FFFFFF;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border-bottom:1px solid #D9DEE8;
  box-shadow:none;
}
.topbar h1{color:#101828;letter-spacing:-.01em}
.topbar .right .clock{background:#EEF2FA;color:var(--primary);border:1px solid #D9DEE8}

/* ---------- 4. 主区链接/焦点：可辨识强调色 ---------- */
a{color:var(--primary)}
a:hover{color:var(--primary-dark)}
:focus-visible{outline:2px solid var(--primary)}

/* ---------- 5. 移动端：恢复激活/hover 区分（原 2186 行覆盖修复） ---------- */
@media (max-width:768px){
  .nav-item:hover{background:rgba(39,76,155,.06);color:#1D2939}
  .nav-item:active{background:rgba(39,76,155,.15)}
  .nav-item.active{background:var(--primary);color:#fff}
}

/* ---------- 6. 深色模式同步 ---------- */
body.dark .topbar{
  background:#111826;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border-bottom:1px solid #2A3446;
  box-shadow:none;
}
body.dark .topbar h1{color:#E5EAF2}
/* v346: 暗色模式侧边栏深底恢复（变量已由 body.dark 覆盖，此处同步硬编码规则） */
body.dark .nav-group-title{color:#93A1BC}
body.dark .nav-group-title:hover{color:#C3CDDD}
body.dark .nav-item:hover{background:rgba(255,255,255,.08);color:#F4F7FC}
body.dark .nav-item.nav-sub{color:#B4BFCE}
body.dark .nav-item.nav-sub:hover{color:#F4F7FC}
body.dark .sidebar-header .brand-ver{background:rgba(255,255,255,.06);color:#93A1BC;border-color:rgba(255,255,255,.12)}
body.dark .sidebar-header .collapse-btn:hover{background:rgba(255,255,255,.08);color:#F4F7FC}
body.dark .nav-groups::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14)}
body.dark .nav-groups::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.22)}
body.dark .nav-item.is-primary{color:#F4F7FC}
body.dark .nav-item.is-primary .nav-icon{color:#9FB6E8}

/* ---------- 7. v298 导航禁欲风合并重构 ---------- */
/* 合并 66→34 项后侧边栏一屏收纳：去光晕/去渐变/中性滚动条；
   主要功能突出 = 每组首项 .is-primary（app.js renderSidebar 注入，详见下方规则） */

/* 侧边栏：去投影，纯平面 */
.sidebar{box-shadow:none}

/* Logo：去青蓝双 drop-shadow 光晕 + 去 hover 缩放发光（禁欲=零装饰） */
.sidebar-header .logo{filter:none;transition:opacity .2s}
.sidebar-header .logo:hover{transform:none;filter:none;opacity:.85}

/* header 渐变分割线 → 隐藏（分组标题已承担层级） */
.sidebar-header::after{display:none}

/* 版本徽章：青色霓虹 → 浅底冷墨蓝（v346 白底侧边栏） */
.sidebar-header .brand-ver{background:#EEF2FA;color:var(--primary);border-color:#D9DEE8}

/* 导航滚动条：靛蓝发光粗条 → 8px 中性细条 */
.nav-groups::-webkit-scrollbar{width:8px}
.nav-groups::-webkit-scrollbar-track{background:transparent;margin:0;border:none}
.nav-groups::-webkit-scrollbar-thumb{background:rgba(148,163,184,.4);border:none;border-radius:var(--radius-sm)}
.nav-groups::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.6)}

/* 分组：更紧凑的节奏 */
.nav-group{margin:2px 0}
.nav-item{border-radius:var(--radius)}

/* 主要功能：每组首项（is-primary）— 深字 + 冷墨蓝图标，一眼锁定主入口 */
.nav-item.is-primary{font-weight:600;color:#101828}
.nav-item.is-primary .nav-icon{color:var(--primary)}
.nav-item.is-primary:hover{color:var(--primary)}
/* v505: is-primary 活动态统一为浅蓝底+深字强调（与桌面 tab-active 一致），跨视口一致；
   避免移动端落到实心蓝底深字 2.19:1，或误翻白字压浅底 1.17 */
.nav-item.is-primary.active,.nav-item.active.is-primary{background:var(--accent-soft,rgba(39,76,155,.1));color:#101828}
.nav-item.is-primary.active .nav-icon,.nav-item.active.is-primary .nav-icon{color:var(--primary)}

/* 快速新建按钮：去渐变阴影与位移，纯实色 */
.global-new-btn{box-shadow:none;transition:background .15s}
.global-new-btn:hover{filter:none;transform:none;box-shadow:none;background:var(--primary-dark)}
.global-new-btn:active{transform:none;box-shadow:none}

/* 页面标题下沿线 → 中性发丝线（禁欲：分隔线不带强调色） */
.page-header::after{background:var(--border)}

/* ============================================================
   v350 Phase2：冷蓝统一补漏（在 style.min.css 之后加载，强制覆盖）
   —— ① admin.js ACTION_COLORS 引用的 7 个操作类型色变量原未定义
         （--purple/--orange/--amber/--rose/--blue/--cyan/--teal），
         全部落为冷蓝系，杜绝无效变量黑块
     ② 暗色模式品牌色从 teal/cyan 残留统一为冷墨蓝系（v346 四层清洗补漏）
   ============================================================ */
:root{
  --purple:#7C5CBF; --orange:#D97706; --amber:#B45309; --rose:#BE185D;
  --blue:#1D4ED8;  --cyan:#2563EB;   --teal:#274C9B;
}
body.dark{
  --primary:#3B82F6; --primary-dark:#2563EB; --primary-light:#1E3A8A;
  --accent:#3B82F6;  --accent-dark:#2563EB;  --accent-light:#1E3A8A;
  --accent-soft:rgba(59,130,246,.15); --cyan-soft:rgba(59,130,246,.10);
  --info:#60A5FA; --info-dark:#3B82F6; --info-light:#1E3A8A;
  --sidebar-text:#93C5FD; --sidebar-hover:rgba(59,130,246,.15);
  --sidebar-border:rgba(59,130,246,.12); --border-accent:rgba(59,130,246,.25);
  /* v490 暗色模式语义文字加深版：亮色文字保证暗底 ≥4.5:1（对应浅色 --*-text） */
  --success-text:#34D399; --warning-text:#FBBF24; --danger-text:#F87171; --info-text:#60A5FA;
}

/* ═══════════════════ v352 智能文牍（公文版式 + AI 生成器）═══════════════════ */
.doc-gen-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.doc-gen-label{font-size:var(--fs-base);color:var(--text-secondary,#64748b);white-space:nowrap}
.doc-gen-toolbar .input{width:260px}
.doc-gen-desc{font-size:var(--fs-xs);color:var(--text-tertiary,#94a3b8)}
.doc-gen-form{margin-bottom:6px}
.doc-gen-actions{display:flex;gap:10px;margin:16px 0 6px}
.doc-gen-actions .btn{display:inline-flex;align-items:center;gap:6px}
.doc-gen .doc-preview{margin-top:18px}
/* 公文版式：冷蓝极简、类打印排版 */
.doc-preview{
  background:var(--card-bg,#ffffff);border:1px solid var(--border,#e2e8f0);border-radius:var(--radius-lg);
  padding:40px 56px;max-width:760px;margin:0 auto;line-height:1.9;color:var(--text,#1e293b);
}
.doc-preview .doc-title{font-size:var(--fs-22);font-weight:600;text-align:center;letter-spacing:.5px;margin:6px 0 18px;color:var(--text,#1e293b)}
.doc-preview .doc-no{font-size:var(--fs-xs);text-align:center;color:var(--text-tertiary,#94a3b8);margin-bottom:26px;letter-spacing:1px}
.doc-preview .doc-para{font-size:var(--fs-base);margin:0 0 12px;text-indent:2em;text-align:justify}
.doc-preview .doc-list{margin-bottom:12px}
.doc-preview .doc-list .doc-para{margin-bottom:6px}
.doc-preview .doc-sign{font-size:var(--fs-base);text-align:right;margin:26px 0 0;padding-right:8px}
/* 签章/落款区（v354）：细线圆环电子签章，语义红（印章标准色，同 --danger），无阴影渐变 */
.doc-preview .doc-signature{display:flex;flex-direction:column;align-items:flex-end;margin-top:10px}
.doc-preview .doc-signature .doc-sign:first-child{margin-top:26px}
.doc-preview .doc-seal{width:118px;height:118px;border:1.5px solid #DC2626;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:14px 8px 0 0}
.doc-preview .doc-seal-inner{text-align:center;color:#DC2626}
.doc-preview .doc-seal-name{display:block;font-size:var(--fs-base);font-weight:600;letter-spacing:2px;max-width:96px;overflow:hidden;white-space:nowrap}
.doc-preview .doc-seal-text{display:block;font-size:var(--fs-2xs);letter-spacing:4px;margin-top:3px;padding-left:4px}
.doc-preview .doc-seal-code{font-size:var(--fs-xs);color:var(--text-tertiary,#94a3b8);margin:10px 8px 0 0}
.doc-preview .doc-note{font-size:var(--fs-xs);color:var(--text-tertiary,#94a3b8);margin-top:22px;border-top:1px dashed var(--border,#e2e8f0);padding-top:12px}
.doc-preview .doc-attach{font-size:var(--fs-base);color:var(--text-secondary,#64748b);margin-top:16px}
/* 打印（打印新窗口 body.doc-print-body） */
.doc-preview-print{border:none;max-width:720px;padding:24px 8px}
.doc-preview-print .doc-title{font-size:var(--fs-2xl)}
@media print{
  body.doc-print-body{padding:0!important}
  .doc-preview-print{border:none;box-shadow:none;padding:0;max-width:100%}
}
/* 暗色模式公文 */
body.dark .doc-preview{background:#0f172a;border-color:#1e293b;color:#e2e8f0}
body.dark .doc-preview .doc-title{color:#f1f5f9}
body.dark .doc-preview .doc-para{color:#cbd5e1}

/* v419 legacy token 兼容层：根治 18 个历史未定义变量（~190 处裸引用）
   审计依据：outputs/chitu-v419-css-audit/audit-report.md（Task #2058）
   映射目标均为随 body.dark 切换的规范 token → dark 模式自动跟随，零视觉风险 */
:root{
  --space-sm:8px; --space-md:16px; --space-lg:24px;
  --text-1:var(--text); --muted:var(--text-3); --gray:var(--text-2);
  --bg-1:var(--bg-tertiary); --bg-2:var(--card); --bg-3:var(--bg-tertiary);
  --bg-input:var(--card); --card-2:var(--card);
  --border-color:var(--border); --card-bg:var(--card);
  --pink:#DB2777; --gold:var(--warning); --orange-light:#FFEDD5; --purple-light:#EDE9FE;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

/* ═══════════════════ v496 WCAG #2725 对比度硬化（合并自 v496 回滚，防回归）═══════════════════
   - 浅色模式 .trend / .wb-gs-done-tag 语义文字（--success/--warning）落白底不达标
   - 导航子项激活态灰字 1.63:1 不可辨
   - 晨报日期青字落深底 1.61 → 提亮 #67E8F9
   - .badge.b-success 逗号选择器 bug（body.dark .b-green,.b-success 使浅色模式 .b-success 被强制浅绿 1.7:1）→ 限定 dark 作用域
   - .msg-btn-primary 白字临界 4.47 → 加深底达标
   ============================================================ */
:root{
  --success:#047857;   /* #059669 白底 3.77 → 5.28 ✅ .trend/.wb-gs-done-tag 文字；填充+白字 4.88 仍达标 */
  --warning:#B45309;   /* #D97706 白底 3.19 → 5.72 ✅ 同上；填充+白字 4.88 仍达标 */
}
/* 导航子项激活态：落冷墨蓝实底，原 #667085 灰字 1.63:1 不可辨 → 白字断崖可辨 */
.nav-item.nav-sub.active{color:#fff}
.nav-item.nav-sub.active .nav-label{color:#fff}
.nav-item.nav-sub.active .nav-icon.sub-dot{color:#C7D6F5}   /* 蓝底提亮 3.98 → 达标（10px 小字） */
/* 晨报日期：落浅蓝卡 #EEF2FA，原浅青 #22D3EE 仅 1.6:1、提亮 #67E8F9 仍 1.29:1 不达标
   → 浅色用深青 #155E75（5.5:1），深色模式保留亮青 #67E8F9 */
.ai-morning-brief .brief-date{color:#155E75}
body.dark .ai-morning-brief .brief-date{color:#67E8F9}
/* .badge.b-success 逗号选择器 bug（style.css 行 1120 非作用域 .b-success 浅色模式被强制 #34D399）：
   浅色模式显式回落规范深绿；深色模式保留 style.css 的亮绿 #34D399（body.dark 更高特异性胜出） */
body:not(.dark) .b-success{color:var(--success-dark,#15803D)}
body:not(.dark) .badge.b-success{color:var(--success-dark,#15803D)}
/* .msg-btn-primary 白字临界 4.47 → 加深底达标 */
.msg-btn-primary{background:var(--primary-dark)}

