/* ============================================================
   Neumorphism（新拟物派 / Soft UI）全局样式表
   品牌：LIN · 运维智脑   标语：数治时代 · 运维智脑
   依据：Neumorphism-Style-Guide.md（第十六节 + 全站适配覆盖）
   说明：本文件作为覆盖层加载于 app.min.css 之后，
         一次覆盖全站 174 个模板，删除 base.html 中该 link 即可完整回滚。
   ============================================================ */

/* ==================== 字体（HarmonyOS Sans，2026-09-02） ====================
   ① 'HarmonyOS Sans SC'：简体中文全量 woff2（11.85MB，29508字形含GBK全字集+可变轴40-900）
      覆盖全部中文/人名/科室生僻字，零缺字；粗体走真粗体（可变轴）
   ② 'HarmonyOS Sans'：拉丁/数字小文件（342KB 可变 40-900），数字英文专用
   字体栈按字符自动 fallback：中文命中 SC，拉丁命中 Sans，均无混排 */
@font-face {
  font-family: 'HarmonyOS Sans SC';
  src: url('/fonts/HarmonyOS_Sans_SC_full.woff2') format('woff2');
  font-display: swap;
  font-weight: 100 900;  /* 可变字体 wght 轴 40~900：粗体走真粗体，避免 faux bold 发虚 */
  font-style: normal;
}
@font-face {
  font-family: 'HarmonyOS Sans';
  src: url('/fonts/HarmonyOS_Sans.ttf') format('truetype');
  font-display: swap;
  font-weight: 100 900;  /* 可变字体 wght 轴 40~900：粗体走真粗体，避免 faux bold 发虚 */
  font-style: normal;
}

/* ==================== 一、CSS 变量 ==================== */
:root {
  /* 字体（覆盖 app.min.css/custom.css 的 --font-ui，晚加载赢） */
  --font-ui: 'HarmonyOS Sans SC', 'HarmonyOS Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  /* 背景色系 */
  --neu-bg: #e0e5ec;
  --neu-bg-soft: #f0f0f3;
  --neu-bg-hover: #d1d6e0;
  /* 阴影色（双光源：左上亮 / 右下暗） */
  --neu-sd: #b8bcc2;
  --neu-sl: #f5f7fa;
  /* 文字色 */
  --neu-text: #333333;
  --neu-text-2: #6b7280;
  --neu-text-3: #9ca3af;
  /* 功能色 */
  --neu-accent: #6d5dfc;
  --neu-accent-soft: #8b7dff;
  --neu-success: #22c55e;
  --neu-success-bg: #dcfce7;
  --neu-warning: #f59e0b;
  --neu-warning-bg: #fef3c7;
  --neu-danger: #ef4444;
  --neu-danger-bg: #fee2e2;
  --neu-info: #0ea5e9;
  --neu-info-bg: #e0f2fe;
  /* 圆角 */
  --neu-radius: 12px;
  --neu-radius-lg: 16px;
  --neu-radius-xl: 24px;
  --neu-radius-full: 999px;
  /* 阴影 */
  --neu-shadow-raised: 8px 8px 16px var(--neu-sd), -8px -8px 16px var(--neu-sl);
  --neu-shadow-raised-sm: 4px 4px 8px var(--neu-sd), -4px -4px 8px var(--neu-sl);
  --neu-shadow-raised-xs: 2px 2px 4px var(--neu-sd), -2px -2px 4px var(--neu-sl);
  --neu-shadow-inset: inset 8px 8px 16px var(--neu-sd), inset -8px -8px 16px var(--neu-sl);
  --neu-shadow-inset-sm: inset 4px 4px 8px var(--neu-sd), inset -4px -4px 8px var(--neu-sl);
  --neu-shadow-inset-deep: inset 6px 6px 12px var(--neu-sd), inset -6px -6px 12px var(--neu-sl);
  --neu-shadow-inset-shallow: inset 2px 2px 4px var(--neu-sd), inset -2px -2px 4px var(--neu-sl);
  /* 过渡 */
  --neu-dur: 300ms;
  --neu-ease: ease-in-out;
  --neu-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  /* 侧边栏主题变量：白天=浅色新拟态(深字)，深色=深灰底白字 */
  --sb-bg: var(--neu-bg-soft);
  --sb-text: var(--neu-text);
  --sb-text-2: var(--neu-text-2);
  --sb-text-3: var(--neu-text-3);
  --sb-icon: var(--neu-text-2);
  --sb-hover-bg: var(--neu-bg-hover);
  --sb-active-bg: var(--neu-bg);
  --sb-border: var(--neu-bg-hover);
  --sb-shadow: 4px 0 16px rgba(0, 0, 0, 0.08);
  --sb-brand-bg: var(--neu-bg);
  --sb-icon-bg: var(--neu-bg);
  --sb-accent-bg: rgba(109, 93, 252, 0.12);
  --sb-inset-bg: var(--neu-bg);
  --sb-toggle-bg: var(--neu-bg);
  /* 导航项：白天每行凸起边界（轻投影，避免底部"长条"视觉, 2026-08-22） */
  --sb-nav-bg: var(--neu-bg);
  --sb-nav-shadow: 1px 1px 3px rgba(184, 188, 194, 0.45), -1px -1px 3px rgba(245, 247, 250, 0.85);
  --sb-nav-hover-shadow: 2px 2px 5px rgba(184, 188, 194, 0.55), -2px -2px 5px rgba(245, 247, 250, 0.9);
}

/* 深色模式：兼容现有 data-theme="dark"（html 属性）与规范 .dark 类 */
.dark,
[data-theme="dark"] {
  --neu-bg: #2a2d35;
  --neu-bg-soft: #353841;
  --neu-bg-hover: #3d4048;
  --neu-sd: #1a1c20;
  --neu-sl: #3a3d45;
  --neu-text: #e0e5ec;
  --neu-text-2: #9ca3af;
  --neu-text-3: #6b7280;
  --neu-accent-soft: #9d92ff;
  --neu-success-bg: rgba(34, 197, 94, 0.16);
  --neu-warning-bg: rgba(245, 158, 11, 0.16);
  --neu-danger-bg: rgba(239, 68, 68, 0.16);
  --neu-info-bg: rgba(14, 165, 233, 0.16);
  --neu-info: #38bdf8;
  /* 深色模式侧边栏：深灰底 + 白字 */
  --sb-bg: #1a1f2e;
  --sb-text: #ffffff;
  --sb-text-2: rgba(255, 255, 255, 0.72);
  --sb-text-3: rgba(255, 255, 255, 0.38);
  --sb-icon: rgba(255, 255, 255, 0.5);
  --sb-hover-bg: rgba(255, 255, 255, 0.08);
  --sb-active-bg: rgba(255, 255, 255, 0.12);
  --sb-border: rgba(255, 255, 255, 0.08);
  --sb-shadow: 4px 0 20px rgba(0, 0, 0, 0.25);
  --sb-brand-bg: rgba(255, 255, 255, 0.08);
  --sb-icon-bg: rgba(255, 255, 255, 0.1);
  --sb-accent-bg: rgba(109, 93, 252, 0.25);
  --sb-inset-bg: rgba(0, 0, 0, 0.15);
  --sb-toggle-bg: rgba(255, 255, 255, 0.04);
  --sb-nav-bg: transparent;
  --sb-nav-shadow: none;
  --sb-nav-hover-shadow: 2px 2px 6px rgba(0, 0, 0, 0.2), -2px -2px 6px rgba(255, 255, 255, 0.03);
}

/* ==================== 二、全局基础 ==================== */
* { box-sizing: border-box; }

body {
  font-family: 'HarmonyOS Sans SC', 'HarmonyOS Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
               "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  background: var(--neu-bg) !important;
  color: var(--neu-text);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  /* 移除渐变背景 */
  background-image: none !important;
}
/* app.min.css 有 [data-theme=dark] body{background:var(--bg-body)}（特异性更高），
   须以同特异性规则覆盖，深色模式才正确落到 #2a2d35 */
[data-theme="dark"] body,
.dark body {
  background: var(--neu-bg) !important;
  background-image: none !important;
  color: var(--neu-text);
}

/* 移除玻璃态残留 */
.glass,
.toast-notification,
#autoRefreshPill,
.btn-rainbow,
[class*="backdrop"] {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  background: var(--neu-bg) !important;
}

/* ===== 禁止项全局净化（规范第二章：移除全部玻璃态/渐变） ===== */
*,
*::before,
*::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
body,
.sidebar,
.sidebar::before,
.sidebar::after,
.card,
.card-header,
.stat-card,
.card-stat,
.card-section,
.card-trend,
.btn,
.btn-primary,
.btn-success,
.btn-danger,
.btn-warning,
.modal-header,
.modal-content,
#chat-header,
#chat-bubble,
#chat-input-area .send-btn,
.dashboard-title-icon,
.card-stat .stat-icon,
.sidebar .brand .brand-icon,
.sidebar .user-info .avatar {
  background-image: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: initial !important;
}
/* 顶部加载进度条：渐变 → 纯强调色 */
#loading-bar .bar {
  background: var(--neu-accent) !important;
  background-image: none !important;
  animation: none !important;
}
#loading-bar .peg { display: none !important; }

/* 仪表盘 KPI 装饰条 / 其他渐变残留统一清除 */
.stat-bar,
.stat-card .stat-bar,
.card-stat .stat-bar {
  display: none !important;
}
[style*="linear-gradient"] { background-image: none !important; }
[style*="radial-gradient"] { background-image: none !important; }

/* ==================== 三、布局（侧边栏 + 主内容） ==================== */
/* 侧边栏 fixed 固定，内容区让位（2026-08-22 修复：原 padding-left:0 导致内容被侧边栏遮挡） */
.app-layout { padding-left: var(--sidebar-width, 240px) !important; }
/* 折叠联动：侧边栏收起时内容区收回（修复展开遮挡/折叠留白） */
.sidebar-collapsed .app-layout { padding-left: 0 !important; }
/* 侧边栏：仅功能导航滚动，账号/主题切换固定底部（2026-08-22） */
.sidebar {
  overflow-y: hidden !important;
  overflow-x: hidden !important;
}
.sidebar .nav {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
}
.sidebar .user-info,
.sidebar .theme-toggle { flex-shrink: 0 !important; }
.sidebar-theme-toggle { flex-shrink: 0 !important; display: flex; justify-content: center; align-items: center; padding: 0; margin-left: auto; margin-right: 0; position: relative; }
theme-button, .sidebar-theme-toggle theme-button { display: inline-block; width: 90px; height: 35px; overflow: hidden; flex-shrink: 0; }
.sidebar-theme-toggle::before { display: none; }

/* 折叠态内容全隐藏（修复：width:0 但 overflow 未裁剪, 图标残留溢出到页面左侧） */
.sidebar-collapsed .sidebar .brand,
.sidebar-collapsed .sidebar .nav,
.sidebar-collapsed .sidebar .user-info,
.sidebar-collapsed .sidebar .theme-toggle,
.sidebar-collapsed .sidebar .sidebar-theme-toggle { visibility: hidden; }

/* 侧边栏：深灰实底 + 白字（用户偏好深色侧边栏；app.min.css 有 !important 白字规则，须同权覆盖） */
.sidebar {
  background: #1e293b !important;
  background-image: none !important;
  box-shadow: 4px 0 12px rgba(0, 0, 0, 0.18) !important;
  border-right: none;
}
/* app.min.css 深色侧边栏规则特异性更高，同特异性覆盖（用户硬偏好 #1a1f2e） */
[data-theme="dark"] .sidebar,
.dark .sidebar {
  background: #1a1f2e !important;
  background-image: none !important;
  color: rgba(255, 255, 255, 0.85);
}

/* 侧边栏文字：白字清晰（覆盖 app.min.css 同 !important 规则） */
.sidebar .nav-link {
  color: rgba(255, 255, 255, 0.72) !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: var(--neu-radius);
  margin-bottom: 4px;
  transition: all var(--neu-dur) var(--neu-ease);
}
.sidebar .nav-link:hover {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}
.sidebar .nav-link:hover i { transform: none; }
.sidebar .nav-link.active {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.12) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.06) !important;
}
.sidebar .nav-link.active i {
  color: var(--neu-accent, #6d5dfc) !important;
  display: inline-block;
}
.sidebar .nav-link.active::before,
.sidebar .nav-link.active::after { display: none !important; }
.sidebar .nav-section-label {
  color: rgba(255, 255, 255, 0.35) !important;
  font-size: 11px;
  letter-spacing: 1px;
}
.sidebar .divider { border-top: 1px solid rgba(255, 255, 255, 0.08); }

/* 品牌区（app.min.css 有 rgba(255,255,255,.92)!important 白字规则，须同权覆盖） */
.sidebar .brand { color: var(--sb-text) !important; }
.sidebar .brand .brand-icon {
  background: rgba(255, 255, 255, 0.1) !important;
  background-image: none !important;
  box-shadow: none;
  border-radius: var(--neu-radius);
}
.sidebar .brand .brand-icon svg path,
.sidebar .brand .brand-icon svg rect { fill: currentColor; }
.sidebar .brand .brand-text {
  background: none !important;
  -webkit-text-fill-color: #ffffff;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
}

/* 用户信息区：白字 */
.sidebar .user-info {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6) !important;
  background: none !important;
  background-image: none !important;
  padding-right: 5px !important; /* 日/夜按钮靠右5px, 2026-08-23 */
}
.sidebar .user-info .avatar {
  background: rgba(255, 255, 255, 0.12) !important;
  background-image: none !important;
  color: #fff;
  box-shadow: none;
  width: 32px; height: 32px;
}
.sidebar .user-info .user-name { color: rgba(255, 255, 255, 0.85) !important; }
.sidebar .user-info .user-role { color: rgba(255, 255, 255, 0.4) !important; }
/* 账号行 + 日/夜按钮同一行（2026-08-23）：名字列可压缩省略，按钮不挤压 */
.sidebar .user-info .user-meta { flex: 1 1 auto; min-width: 0; }
.sidebar .user-info .user-meta .user-name,
.sidebar .user-info .user-meta .user-role { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 白天模式：账号文字深色（主题light补丁生效后, 2026-08-23） */
[data-theme="light"] .sidebar .user-info .user-name { color: var(--sb-text) !important; }
[data-theme="light"] .sidebar .user-info .user-role { color: var(--sb-text-2) !important; }

/* 主题切换（深色侧边栏内） */
.theme-toggle {
  color: rgba(255, 255, 255, 0.6) !important;
  border-radius: var(--neu-radius);
  margin: 0 10px 8px;
}
.theme-toggle:hover {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
  border-color: transparent !important;
}
.theme-toggle .toggle-track {
  background: rgba(255, 255, 255, 0.12) !important;
  box-shadow: none !important;
}
.theme-toggle .toggle-track::after {
  background: var(--neu-warning);
  box-shadow: none;
}
[data-theme="dark"] .theme-toggle .toggle-track { background: rgba(255, 255, 255, 0.12) !important; }
[data-theme="dark"] .theme-toggle .toggle-track::after {
  left: calc(100% - 14px);
  background: var(--neu-accent);
}

/* 收起按钮（跟随侧边栏主题） */
.sidebar-toggle {
  background: var(--sb-bg) !important;
  background-image: none !important;
  color: var(--sb-text-2) !important;
  box-shadow: 3px 0 12px rgba(0, 0, 0, 0.12) !important;
  border-radius: 0 12px 12px 0;
}
.sidebar-toggle:hover { color: var(--sb-text) !important; background: var(--sb-hover-bg) !important; }

/* 主内容区 */
.main-content { background: var(--neu-bg); }
.content { max-width: 1440px; }
#dashboard-content { background-image: none !important; }

/* ==================== 四、卡片 ==================== */
.card {
  background: var(--neu-bg);
  border: none !important;
  border-radius: var(--neu-radius-lg);
  box-shadow: var(--neu-shadow-raised);
  transition: all var(--neu-dur) var(--neu-ease);
  /* 圆角裁剪子内容（修复：表格/表头/行hover/滚动条在卡片底部露出直角） */
  overflow: hidden;
  /* 清除 app.min.css 玻璃态规则（.card,.glass-card,.stat-card 带 !important backdrop-filter） */
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
/* 筛选卡：放行常用筛选下拉 + 提升整体层级（card-body z-index:1 创建低层
   stacking context 导致下拉被下方工单卡盖住, 2026-08-22） */
.neu-search-panel,
.neu-search-panel.card {
  overflow: visible !important;
  position: relative !important;
  z-index: 1050 !important;
}
.card:hover {
  box-shadow: var(--neu-shadow-raised-sm);
  transform: none !important;
  border-color: transparent !important;
}
.card-header {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border-bottom: 1px solid var(--neu-bg-soft);
  font-weight: 600;
  color: var(--neu-text);
}
.card-header i { color: var(--neu-accent); }

/* 统计卡片（KPI） */
.stat-card,
.card-stat,
.card-section,
.card-trend {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border: none !important;
  border-radius: var(--neu-radius-lg) !important;
  box-shadow: var(--neu-shadow-raised) !important;
  transition: all var(--neu-dur) var(--neu-ease) !important;
}
.stat-card:hover,
.card-stat:hover,
.card-section:hover,
.card-trend:hover {
  box-shadow: var(--neu-shadow-raised-sm) !important;
  transform: none !important;
}
.stat-card .stat-value,
.card-stat .stat-value { color: var(--neu-text); }
.stat-card .stat-label,
.card-stat .stat-label { color: var(--neu-text-3); }
.stat-card .stat-pattern { display: none; }
.card-section::before,
.card-trend::before,
.card-section .card-body .d-flex.text-center[style*="border-top"]::before { display: none !important; }
.card-section .card-body .d-flex.text-center[style*="border-top"] { background: none !important; }
.card-section .card-header,
.card-trend .card-header {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border-bottom: 1px solid var(--neu-bg-soft);
  color: var(--neu-text);
}
.card-stat .stat-icon {
  background: var(--neu-bg) !important;
  background-image: none !important;
  color: var(--neu-accent);
  box-shadow: var(--neu-shadow-raised-sm);
}
.card-stat .stat-icon::before { display: none; }
.card-stat:hover .stat-icon { transform: none; }
.card-stat .stat-bar { display: none; }
.dashboard-title-icon {
  background: var(--neu-bg) !important;
  background-image: none !important;
  color: var(--neu-accent);
  box-shadow: var(--neu-shadow-raised-sm);
  border-radius: var(--neu-radius);
}

/* 通用占位卡 */
.card-body { padding: 20px; }

/* ==================== 五、按钮 ==================== */
.btn {
  background: var(--neu-bg);
  color: var(--neu-accent);
  border: none !important;
  border-radius: var(--neu-radius);
  padding: 10px 24px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: var(--neu-shadow-raised-sm);
  transition: all var(--neu-dur) var(--neu-ease);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}
.btn:hover {
  box-shadow: var(--neu-shadow-raised-xs);
  transform: none !important;
  background-image: none !important;
}
.btn:active {
  box-shadow: var(--neu-shadow-inset-sm);
  transform: none !important;
  background-image: none !important;
}
.btn:disabled { opacity: 0.5; box-shadow: none; cursor: not-allowed; }
.btn-sm { padding: 6px 16px; font-size: 12px; }

.btn-primary { color: var(--neu-accent); }
.btn-success { color: var(--neu-success); }
.btn-danger  { color: var(--neu-danger); }
.btn-warning { color: var(--neu-warning); }
.btn-outline-primary {
  border: none !important;
  color: var(--neu-accent);
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-raised-sm);
}
.btn-outline-primary:hover { background: var(--neu-bg); color: var(--neu-accent); box-shadow: var(--neu-shadow-raised-xs); }
.btn-outline-secondary,
.btn-outline-info { color: var(--neu-text-2); }

/* 按钮交互特效归零（规范禁止 translate/scale 位移与 hover 增大阴影） */
.btn:active,
.btn-press.active-click,
.btn-press:active,
button.btn-press:active,
.btn-jelly.active-click,
.btn-jelly:active,
button.btn-jelly:active {
  transform: none !important;
  animation: none !important;
}
.btn-shine::after,
.btn-borderflow::before,
.btn-rainbow::before,
.ripple-ink { display: none !important; }
.btn-neon:hover,
button.btn-neon:hover,
[data-theme="dark"] .btn-neon:hover,
[data-theme="dark"] button.btn-neon:hover {
  box-shadow: var(--neu-shadow-raised-xs) !important;
}
.btn-borderflow { border: none !important; }
.btn-magnetic { transform: none !important; }

/* ==================== 六、输入框 / 下拉 ==================== */
.form-control,
.form-select,
.input,
select,
textarea {
  width: 100%;
  background: var(--neu-bg) !important;
  border: none !important;
  border-radius: var(--neu-radius);
  padding: 10px 16px;
  font-size: 14px;
  color: var(--neu-text);
  box-shadow: var(--neu-shadow-inset-deep);
  transition: box-shadow var(--neu-dur) var(--neu-ease);
  box-sizing: border-box;
  outline: none;
}
.form-control:focus,
.form-select:focus,
.input:focus,
select:focus,
textarea:focus {
  box-shadow: var(--neu-shadow-inset-shallow) !important;
  border-color: transparent !important;
}
.form-control::placeholder,
.input::placeholder { color: var(--neu-text-3); }
.form-label { color: var(--neu-text); font-weight: 500; }
.form-select { cursor: pointer; }

/* 搜索框 */
.search-input,
.input-group-text {
  background: var(--neu-bg) !important;
  border: none !important;
  color: var(--neu-text-2);
  box-shadow: var(--neu-shadow-inset-deep);
  border-radius: var(--neu-radius) !important;
}
.input-group { box-shadow: var(--neu-shadow-inset-deep); border-radius: var(--neu-radius); }
.input-group .form-control,
.input-group .form-select { box-shadow: none; }

/* ==================== 七、表格 ==================== */
.table { background: transparent; --bs-table-bg: transparent !important; }
/* 表格凹陷容器（规范 6.4） */
.table-responsive,
.table-responsive-scroll,
div[class*="table-responsive"] {
  background: var(--neu-bg);
  border-radius: var(--neu-radius-lg);
  padding: 8px 16px;
  box-shadow: var(--neu-shadow-inset-sm);
  overflow-x: auto;
}
.table th {
  border-top: none;
  font-weight: 600;
  color: var(--neu-text-3);
  font-size: 13px;
  padding: 12px 16px;
  background: transparent;
  border-bottom: 1px solid var(--neu-bg-soft);
}
.table td {
  padding: 14px 16px;
  vertical-align: middle;
  color: var(--neu-text);
  border-bottom: 1px solid var(--neu-bg-soft);
}
.table-hover tbody tr { transition: all var(--neu-dur) var(--neu-ease); }
.table-hover tbody tr:hover { background: var(--neu-bg-soft) !important; }
.table-striped tbody tr:nth-of-type(odd) { background: var(--neu-bg-soft); }
/* 星标行（Bootstrap table-warning）→ 警告浅底 + 深色文字 */
.table-warning,
.table-warning > td,
.table-warning > th {
  --bs-table-bg: var(--neu-warning-bg) !important;
  background: var(--neu-warning-bg) !important;
  color: var(--neu-text) !important;
  border-color: var(--neu-bg-hover) !important;
}
.table-warning:hover > td { background: var(--neu-warning-bg) !important; }
.table-responsive-scroll { overflow: auto; }

/* ==================== 八、徽章 / 状态标签 ==================== */
.badge,
.status-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--neu-radius-full);
  font-size: 12px;
  font-weight: 600;
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-inset-sm);
  border: none;
}
/* Bootstrap 彩色 badge（bg-success/danger/info 等）：实色 → 凹陷胶囊 + 功能色文字 */
.badge.bg-primary,
.badge.bg-secondary,
.badge.bg-success,
.badge.bg-danger,
.badge.bg-warning,
.badge.bg-info,
.badge.bg-light,
.badge.bg-dark,
.badge.text-bg-success,
.badge.text-bg-danger,
.badge.text-bg-warning,
.badge.text-bg-info,
.badge.text-bg-primary,
.badge.text-bg-secondary {
  background: var(--neu-bg) !important;
  background-image: none !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  border: none !important;
  border-radius: var(--neu-radius-full) !important;
}
.badge.bg-success, .badge.text-bg-success { color: var(--neu-success) !important; }
.badge.bg-danger,  .badge.text-bg-danger  { color: var(--neu-danger) !important; }
.badge.bg-warning, .badge.text-bg-warning { color: var(--neu-warning) !important; }
.badge.bg-info,    .badge.text-bg-info    { color: var(--neu-accent) !important; }
.badge.bg-primary, .badge.text-bg-primary, .badge.bg-secondary, .badge.text-bg-secondary { color: var(--neu-text-2) !important; }
.badge.bg-light { color: var(--neu-text-2) !important; }
.badge.bg-dark  { color: var(--neu-text) !important; }
/* badge 内图标与文字颜色统一 */
.badge i { color: inherit !important; }
.badge-warning  { color: var(--neu-warning); }
.badge-accent,
.badge-info     { color: var(--neu-accent); }
.badge-success  { color: var(--neu-success); }
.badge-danger   { color: var(--neu-danger); }
.status-pending { background: var(--neu-bg); color: var(--neu-danger); }
.status-pending .dot { background: var(--neu-danger); }
.status-in_progress { background: var(--neu-bg); color: var(--neu-warning); }
.status-in_progress .dot { background: var(--neu-warning); }
.status-completed { background: var(--neu-bg); color: var(--neu-success); }
.status-completed .dot { background: var(--neu-success); }

/* ==================== 九、Tab 切换组 ==================== */
.tab-group,
.tab-btn-group {
  display: flex;
  background: var(--neu-bg);
  border-radius: var(--neu-radius);
  padding: 6px;
  box-shadow: var(--neu-shadow-inset-sm);
}
.tab-item,
.tab-btn {
  flex: 1;
  padding: 10px 16px;
  border-radius: 10px;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  color: var(--neu-text-2);
  background: transparent;
  border: none !important;
  transition: all var(--neu-dur) var(--neu-ease);
  cursor: pointer;
}
.tab-item:hover,
.tab-btn:hover { color: var(--neu-text); }
.tab-item.active,
.tab-btn.active,
.tab-btn[aria-selected="true"],
.nav-pills .nav-link.active {
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-raised-sm);
  color: var(--neu-accent);
}
.nav-pills .nav-link {
  border-radius: 10px;
  color: var(--neu-text-2);
}
.nav-pills .nav-link:hover { color: var(--neu-text); }

/* ===== 状态 Tab（btn-group 三池子）→ 凹陷轨道 + 凸起选中 ===== */
/* 工单列表搜索筛选区：凹陷容器（规范 7.2） */
.neu-search-panel {
  box-shadow: var(--neu-shadow-inset-sm) !important;
  background: var(--neu-bg) !important;
}
.neu-search-panel .card-body {
  background: transparent !important;
}
.btn-group.w-100[role="group"] {
  display: flex;
  background: var(--neu-bg);
  border-radius: var(--neu-radius);
  padding: 6px;
  box-shadow: var(--neu-shadow-inset-sm);
}
.btn-group.w-100[role="group"] > .btn {
  flex: 1;
  padding: 10px 16px;
  border-radius: 10px !important;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  color: var(--neu-text-2);
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  transition: all var(--neu-dur) var(--neu-ease);
}
.btn-group.w-100[role="group"] > .btn:hover {
  color: var(--neu-text);
  box-shadow: var(--neu-shadow-raised-xs) !important;
}
.btn-group.w-100[role="group"] > .btn.btn-primary,
.btn-group.w-100[role="group"] > .btn.active {
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  color: var(--neu-accent) !important; /* app.min.css 有 color:#fff!important，须同权覆盖 */
}
/* 状态 Tab 内计数徽章：凹陷胶囊 */
.btn-group.w-100[role="group"] .badge {
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-inset-sm);
  color: var(--neu-text-2);
}
.btn-group.w-100[role="group"] .badge.text-primary,
.btn-group.w-100[role="group"] .badge.bg-light.text-primary {
  color: var(--neu-accent) !important;
}

/* === 4.10.3 工单列表常用筛选下拉 === */
.filter-save-wrap { position: relative; }
.saved-filter-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 1100;
  min-width: 230px;
  background: var(--neu-bg-soft);
  border-radius: var(--neu-radius);
  box-shadow: var(--neu-shadow-raised);
  padding: 6px;
  display: none;
}
.filter-save-wrap.open .saved-filter-dropdown { display: block; }
.saved-filter-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  font-size: 12px;
  color: var(--neu-text);
  border-radius: var(--neu-radius);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s;
}
.saved-filter-item:hover { background: var(--neu-bg-hover); color: var(--neu-accent); }
.saved-filter-item .sf-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.saved-filter-item .sf-del {
  opacity: 0;
  color: var(--neu-text-3);
  font-size: 13px;
  padding: 0 6px;
  border-radius: 6px;
  transition: all 0.15s;
}
.saved-filter-item:hover .sf-del { opacity: 1; }
.saved-filter-item .sf-del:hover { color: var(--neu-danger); background: var(--neu-danger-bg); }
.saved-filter-empty {
  padding: 12px;
  font-size: 12px;
  color: var(--neu-text-3);
  text-align: center;
  line-height: 1.6;
}
.saved-filter-divider {
  height: 1px;
  background: var(--neu-bg-hover);
  margin: 4px 8px;
}

/* ==================== 十、模态框 / 下拉 / 弹层 ==================== */
.modal-content {
  background: var(--neu-bg);
  border: none;
  border-radius: var(--neu-radius-xl);
  box-shadow: var(--neu-shadow-raised);
  color: var(--neu-text);
}
.modal-header {
  border-bottom: 1px solid var(--neu-bg-soft);
  background: var(--neu-bg);
}
.modal-footer { border-top: 1px solid var(--neu-bg-soft); }
.modal-backdrop.show { opacity: 0.4; }
.modal-backdrop-blur { backdrop-filter: none !important; background: rgba(0,0,0,0.15) !important; }

.dropdown-menu {
  background: var(--neu-bg);
  border: 1px solid var(--neu-bg-soft);
  border-radius: var(--neu-radius);
  box-shadow: var(--neu-shadow-raised);
}
.dropdown-item { color: var(--neu-text-2); font-size: 14px; }
.dropdown-item:hover { background: var(--neu-bg-soft); color: var(--neu-accent); }

/* ==================== 十一、提示 / 警告 ==================== */
.alert { border: none; border-radius: var(--neu-radius); font-size: 14px; box-shadow: var(--neu-shadow-inset-sm); }
.alert-info    { background: var(--neu-bg); color: var(--neu-accent); }
.alert-success { background: var(--neu-bg); color: var(--neu-success); }
.alert-danger  { background: var(--neu-bg); color: var(--neu-danger); }
.alert-warning { background: var(--neu-bg); color: var(--neu-warning); }

/* Toast */
.toast-notification {
  background: var(--neu-bg) !important;
  border: none !important;
  box-shadow: var(--neu-shadow-raised);
  border-radius: var(--neu-radius);
}
.toast-notification .toast-close { color: var(--neu-text-3); }
.toast-success { border-left: none !important; }
.toast-success .toast-icon { color: var(--neu-success); }
.toast-error { border-left: none !important; }
.toast-error .toast-icon { color: var(--neu-danger); }
.toast-warning { border-left: none !important; }
.toast-warning .toast-icon { color: var(--neu-warning); }
.toast-info { border-left: none !important; }
.toast-info .toast-icon { color: var(--neu-accent); }

/* ==================== 十二、进度条 ==================== */
.progress {
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-inset-sm);
  border-radius: var(--neu-radius-full);
  height: 8px;
}
.progress-bar {
  background: var(--neu-accent);
  background-image: none !important;
  border-radius: var(--neu-radius-full);
}
.progress-bar::after { display: none; }

/* ==================== 十三、分页 ==================== */
.page-link {
  border-radius: var(--neu-radius) !important;
  margin: 0 4px;
  border: none;
  color: var(--neu-text-2);
  font-size: 14px;
  padding: 8px 14px;
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-raised-xs);
}
.page-link:hover { background: var(--neu-bg); color: var(--neu-accent); box-shadow: var(--neu-shadow-raised-xs); }
.page-item.active .page-link {
  background: var(--neu-bg);
  color: var(--neu-accent);
  box-shadow: var(--neu-shadow-raised-sm);
}
.page-item.disabled .page-link { opacity: 0.5; box-shadow: none; }

/* ==================== 十四、列表 / 其他组件 ==================== */
.list-group-item {
  background: var(--neu-bg);
  border-color: var(--neu-bg-soft);
  color: var(--neu-text);
}
.list-group-item.active {
  background: var(--neu-bg);
  border-color: var(--neu-bg-soft);
  color: var(--neu-accent);
  box-shadow: var(--neu-shadow-inset-sm);
}

.item-box,
.fault-item {
  background: var(--neu-bg) !important;
  border: none !important;
  border-radius: var(--neu-radius);
  box-shadow: var(--neu-shadow-inset-sm);
  transition: all var(--neu-dur) var(--neu-ease);
}
.item-box:hover,
.fault-item:hover {
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-inset-shallow);
  transform: none !important;
  border-color: transparent !important;
}
.item-box[style*="cursor:pointer"]:hover::after { display: none; }

.overview-card {
  background: var(--neu-bg);
  border: none;
  border-radius: var(--neu-radius);
  box-shadow: var(--neu-shadow-inset-sm);
}
.overview-card .num { color: var(--neu-text); }

/* 滚动指示点 */
.scroll-dot,
.chart-dot { background: var(--neu-text-3); }
.scroll-dot.active,
.chart-dot.active {
  background: var(--neu-accent);
  box-shadow: none;
  background-image: none;
}

/* 返回顶部（FAB 样式） */
#back-to-top {
  background: var(--neu-bg);
  background-image: none !important;
  color: var(--neu-accent);
  border: none;
  box-shadow: var(--neu-shadow-raised);
  border-radius: 50%;
}
#back-to-top:hover {
  box-shadow: var(--neu-shadow-raised-sm);
  transform: none;
}

/* ==================== 十五、聊天组件 ==================== */
#chat-bubble {
  background: var(--neu-bg) !important;
  background-image: none !important;
  color: var(--neu-accent);
  box-shadow: var(--neu-shadow-raised);
  border: none;
}
#chat-bubble:hover { box-shadow: var(--neu-shadow-raised-sm); transform: none; }
#chat-window {
  background: var(--neu-bg);
  border: none;
  box-shadow: var(--neu-shadow-raised);
  border-radius: var(--neu-radius-lg);
}
#chat-header {
  background: var(--neu-bg) !important;
  background-image: none !important;
  color: var(--neu-text);
  border-bottom: 1px solid var(--neu-bg-soft);
}
#chat-header .chat-back,
#chat-header .chat-close { color: var(--neu-text-2); }
.chat-conv-item:hover { background: var(--neu-bg-soft); }
.chat-conv-item .avatar {
  background: var(--neu-bg) !important;
  background-image: none !important;
  color: var(--neu-accent);
  box-shadow: var(--neu-shadow-raised-xs);
}
.chat-conv-item .info .name { color: var(--neu-text); }
.chat-conv-item .time { color: var(--neu-text-3); }
.chat-msg.self { background: var(--neu-bg); color: var(--neu-accent); box-shadow: var(--neu-shadow-inset-sm); }
.chat-msg.other { background: var(--neu-bg); color: var(--neu-text); box-shadow: var(--neu-shadow-inset-sm); }
.chat-msg .sender { color: var(--neu-accent); }
#chat-input-area input {
  background: var(--neu-bg);
  border: none;
  box-shadow: var(--neu-shadow-inset-deep);
  color: var(--neu-text);
}
#chat-input-area input:focus { border-color: transparent; box-shadow: var(--neu-shadow-inset-shallow); }
#chat-input-area .send-btn {
  background: var(--neu-bg);
  background-image: none !important;
  color: var(--neu-accent);
  box-shadow: var(--neu-shadow-raised-xs);
}
.chat-action-btn { color: var(--neu-text-2); }
.typing-indicator span { background: var(--neu-text-3); }

/* ==================== 十六、状态与优先级 ==================== */
.priority-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: var(--neu-shadow-raised-xs);
}
.priority-dot.emergency { background: var(--neu-danger); }
.priority-dot.urgent    { background: var(--neu-warning); }
.priority-dot.normal    { background: var(--neu-success); }

.live-clock { color: var(--neu-text-2); }
.live-clock .clock-dot { display: none; }

/* 开关（新拟物） */
.toggle {
  width: 48px;
  height: 26px;
  border-radius: var(--neu-radius-full);
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-inset-sm);
  position: relative;
  cursor: pointer;
  transition: all var(--neu-dur) var(--neu-ease);
}
.toggle-knob {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-raised-xs);
  transition: all var(--neu-dur) var(--neu-ease);
}
.toggle.active .toggle-knob { left: 25px; background: var(--neu-accent); }

/* 工具类 */
.text-accent  { color: var(--neu-accent); }
.text-success { color: var(--neu-success); }
.text-warning { color: var(--neu-warning); }
.text-danger  { color: var(--neu-danger); }
.text-primary { color: var(--neu-accent) !important; }  /* Bootstrap 蓝 → 强调紫 */
.text-muted   { color: var(--neu-text-3) !important; }
.text-secondary { color: var(--neu-text-2) !important; }

/* ==================== 十七、日历 / 排班 ==================== */
.calendar-grid {
  background: var(--neu-bg);
  border-radius: var(--neu-radius-lg);
  padding: 12px;
  box-shadow: var(--neu-shadow-inset-sm);
}
.calendar-cell {
  background: var(--neu-bg);
  border-radius: var(--neu-radius);
  padding: 8px;
  min-height: 60px;
  box-shadow: var(--neu-shadow-raised-xs);
  transition: all var(--neu-dur) var(--neu-ease);
  cursor: pointer;
}
.calendar-cell:hover { box-shadow: var(--neu-shadow-inset-sm); }
.calendar-cell.today { box-shadow: var(--neu-shadow-inset-sm); color: var(--neu-accent); }

/* 图表容器 */
.chart-container {
  background: var(--neu-bg);
  border-radius: var(--neu-radius-lg);
  padding: 20px;
  box-shadow: var(--neu-shadow-inset-sm);
}

/* ==================== 十八、仪表盘深化（规范 7.1） ==================== */
/* 顶部实时状态条：半透明白 → 凹陷轨道 */
#dashboard-content div[style*="display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px"] {
  background: var(--neu-bg) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-radius: var(--neu-radius) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  color: var(--neu-text-2);
  padding: 8px 14px !important;
}
/* 状态条内数字：深色文字 → 主题文字 */
#dashboard-content div[style*="display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px"] strong {
  color: var(--neu-text) !important;
}
/* 历史查看模式提示条：黄底 → 凹陷胶囊 */
#dashboard-content div[style*="margin-bottom:12px;padding:8px 14px;background:#fef3c7"] {
  background: var(--neu-bg) !important;
  border: none !important;
  border-radius: var(--neu-radius) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  color: var(--neu-warning);
}
/* SLA 环形图卡片：凹陷容器（外层 card） */
.card:has(.sla-ring) {
  box-shadow: var(--neu-shadow-inset-sm) !important;
}
/* SLA 分布条背景：凹陷 */
.sla-bar-bg,
div[class*="sla-bar"] {
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-inset-shallow);
  border-radius: var(--neu-radius-full);
}

/* ==================== 十八-B、发布工单深化（规范 7.3） ==================== */
/* 步骤指示器圆标：凹陷轨道内凸起 */
.publish-page .section-step,
.form-section .section-step {
  background: var(--neu-bg) !important;
  background-image: none !important;
  color: var(--neu-accent) !important;
  box-shadow: var(--neu-shadow-raised-xs);
  border-radius: 50%;
}
/* 步骤卡片：凹陷容器 */
.publish-page .form-section,
.form-section {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border: none !important;
  border-radius: var(--neu-radius-lg) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  color: var(--neu-text);
}
/* 步骤标题 */
.form-section .section-title { color: var(--neu-text) !important; }
.form-section .section-desc { color: var(--neu-text-3) !important; }
.form-section .section-header { border-bottom-color: var(--neu-bg-soft) !important; }
/* 工单类型选择：凸起，选中凹陷+强调色（覆盖内联渐变 active） */
.order-type-switch .type-btn {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border: none !important;
  border-radius: var(--neu-radius) !important;
  color: var(--neu-text-2) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  transition: all var(--neu-dur) var(--neu-ease) !important;
}
.order-type-switch .type-btn:hover {
  color: var(--neu-text) !important;
  box-shadow: var(--neu-shadow-raised-xs) !important;
}
.order-type-switch .type-btn.active,
.order-type-switch .type-btn[data-type="replace"].active {
  background: var(--neu-bg) !important;
  background-image: none !important;
  color: var(--neu-accent) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  border: none !important;
}
/* 交接班统计小卡：凹陷 */
.sh-stat {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border-radius: var(--neu-radius) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
}
.sh-stat .stat-label { color: var(--neu-text-3) !important; }

/* ==================== 十八-C、值班排班深化（规范 7.4） ==================== */
/* 班次图例：凹陷胶囊 */
.legend {
  background: var(--neu-bg) !important;
  border-radius: var(--neu-radius) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  padding: 8px 12px !important;
}
.legend-item {
  color: var(--neu-text-2) !important;
  font-size: 11px !important;
}
/* 日历网格：凹陷大容器 */
.duty-grid-wrap,
div[style*="overflow-x:auto"]:has(.duty-grid) {
  background: var(--neu-bg) !important;
  border-radius: var(--neu-radius-lg) !important;
  padding: 8px !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
}
/* 表头：弱化色 */
.duty-grid th {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border-color: var(--neu-bg-soft) !important;
  color: var(--neu-text-3) !important;
}
/* 单元格：无硬边框，用细分隔线 */
.duty-grid td {
  border-color: var(--neu-bg-soft) !important;
}
.duty-grid .name-cell {
  background: var(--neu-bg) !important;
  border-color: var(--neu-bg-soft) !important;
  color: var(--neu-text) !important;
}
.duty-grid td:hover { transform: none !important; }
.duty-grid .today { outline-color: var(--neu-accent) !important; }

/* ==================== 十八-E、资产台账深化（规范 7.6） ==================== */
/* 视图切换按钮组：凹陷轨道 + 凸起选中 */
.neu-view-switch {
  background: var(--neu-bg);
  border-radius: var(--neu-radius);
  padding: 6px;
  box-shadow: var(--neu-shadow-inset-sm);
}
.neu-view-switch .btn {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--neu-text-2) !important;
  border-radius: 10px !important;
}
.neu-view-switch .btn:hover {
  color: var(--neu-text) !important;
  box-shadow: var(--neu-shadow-raised-xs) !important;
}
.neu-view-switch .btn.btn-primary {
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  color: var(--neu-accent) !important;
}
/* 全局兜底：所有 btn-primary 文字色强制强调色（覆盖 app.min.css color:#fff!important） */
.btn.btn-primary {
  color: var(--neu-accent) !important;
  background: var(--neu-bg) !important;
  background-image: none !important;
  border: none !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
}
.btn.btn-primary:hover {
  box-shadow: var(--neu-shadow-raised-xs) !important;
  color: var(--neu-accent) !important;
}
.btn.btn-primary:active {
  box-shadow: var(--neu-shadow-inset-sm) !important;
  color: var(--neu-accent) !important;
}
/* 资产表格行 hover：浅色 */
.asset-table tbody tr:hover,
.table-clickable tbody tr:hover { background: var(--neu-bg-soft) !important; }

/* ==================== 十八-G、工单详情页深化（规范 23.1） ==================== */
/* 面包屑 */
.neu-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--neu-text-3);
  padding: 6px 12px;
  border-radius: var(--neu-radius);
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-inset-shallow);
}
.neu-breadcrumb-item a {
  color: var(--neu-text-2);
  text-decoration: none;
  transition: color var(--neu-dur) var(--neu-ease);
}
.neu-breadcrumb-item a:hover { color: var(--neu-accent); }
.neu-breadcrumb-item.active { color: var(--neu-accent); font-weight: 600; }
.neu-breadcrumb-sep { color: var(--neu-text-3); }

/* 审批时间线（竖线 + 双光源圆点，禁单侧边框） */
.neu-timeline-rail {
  position: relative;
  padding-left: 20px;
}
.neu-timeline-rail::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 4px;
  bottom: 4px;
  width: 2px;
  background: var(--neu-bg-soft);
  border-radius: 1px;
}
.neu-timeline-item {
  position: relative;
  margin-bottom: 16px;
}
.neu-timeline-dot {
  position: absolute;
  left: -20px;
  top: 4px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-raised-xs);
}
.neu-timeline-dot-approved { background: var(--neu-success); }
.neu-timeline-dot-rejected { background: var(--neu-danger); }
.neu-timeline-dot-resubmit { background: var(--neu-warning); }
.neu-timeline-dot-submitted { background: var(--neu-accent); }
.neu-timeline-title { font-size: 13px; }
.neu-timeline-title-approved { color: var(--neu-success); }
.neu-timeline-title-rejected { color: var(--neu-danger); }
.neu-timeline-title-resubmit { color: var(--neu-warning); }
.neu-timeline-title-submitted { color: var(--neu-accent); }
.neu-timeline-title i { margin-right: 4px; }
.neu-timeline-meta { font-size: 12px; }
.neu-timeline-remark {
  font-size: 11.5px;
  margin-left: 20px;
  margin-top: 2px;
  padding: 4px 10px;
  border-radius: var(--neu-radius-xs, 8px);
  background: var(--neu-bg-soft);
  display: inline-block;
}
/* 详情页编号卡 bg-light → 新拟物 */
.detail-card + .col-md-4 .card.bg-light,
.detail-card ~ .col-md-4 .card.bg-light {
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
}
.col-md-4 .card.bg-light {
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
}
/* 知识库弹窗头 bg-info → 新拟物 */
.modal-header.bg-info {
  background: var(--neu-bg) !important;
  color: var(--neu-text) !important;
  border-bottom: 1px solid var(--neu-bg-soft);
}
.modal-header.bg-info .modal-title { color: var(--neu-text); }
.modal-header.bg-info .btn-close { filter: none !important; }

/* ==================== 十八-F、其余页面精修 ==================== */
/* 状态圆点（规范 6.14 优先级/状态色映射） */
.neu-status-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-right: 5px;
  box-shadow: var(--neu-shadow-raised-xs);
  vertical-align: middle;
}
.neu-dot-pending  { background: var(--neu-warning); }
.neu-dot-progress { background: var(--neu-accent); }
.neu-dot-wait     { background: var(--neu-warning); }
.neu-dot-done     { background: var(--neu-success); }
.neu-dot-reject   { background: var(--neu-danger); }
/* 流程管理状态卡片（ro-tab/status-badge）新拟物化 */
.ro-tabs {
  display: flex;
  background: var(--neu-bg);
  border-radius: var(--neu-radius);
  padding: 6px;
  box-shadow: var(--neu-shadow-inset-sm);
  gap: 4px;
  flex-wrap: wrap;
}
.ro-tab {
  padding: 8px 14px;
  border-radius: 10px !important;
  font-size: 13px;
  font-weight: 600;
  color: var(--neu-text-2) !important;
  background: transparent !important;
  border: none !important;
  transition: all var(--neu-dur) var(--neu-ease);
  text-decoration: none;
}
.ro-tab:hover { color: var(--neu-text) !important; box-shadow: var(--neu-shadow-raised-xs) !important; }
.ro-tab.active {
  background: var(--neu-bg) !important;
  background-image: none !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  color: var(--neu-accent) !important;
  border-color: transparent !important;
}
.ro-tab.active .tc { background: rgba(0,0,0,0.06) !important; color: inherit !important; }
.ro-tab .tc { font-size: 11px; opacity: .7; background: rgba(0,0,0,0.06) !important; }
.status-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--neu-radius-full);
  font-size: 12px;
  font-weight: 600;
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-inset-sm);
}
/* 流程类型 Tab */
.flow-type-tabs { display: flex; gap: 12px; margin-bottom: 12px; }
.flow-type-tab {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: var(--neu-radius-lg) !important;
  background: var(--neu-bg) !important;
  background-image: none !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  border: none !important;
  text-decoration: none;
  transition: all var(--neu-dur) var(--neu-ease);
}
.flow-type-tab::before { display: none !important; }
.flow-type-tab:hover { box-shadow: var(--neu-shadow-raised-xs) !important; }
.flow-type-tab.active { box-shadow: var(--neu-shadow-inset-sm) !important; }
.flow-type-tab .ft-name { color: var(--neu-text) !important; font-weight: 600; font-size: 14px; }
.flow-type-tab .ft-count { color: var(--neu-text-3) !important; font-size: 12px; }
.flow-type-tab .ft-count b { color: var(--neu-accent) !important; }
.flow-type-tab .ft-icon {
  width: 36px; height: 36px; border-radius: var(--neu-radius);
  display: flex; align-items: center; justify-content: center;
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-raised-xs) !important;
  color: var(--neu-accent) !important;
}
/* 空状态：120px 凹陷圆圈 + CSS 图标（规范第 29 节） */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
}
.empty-circle {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: var(--neu-bg);
  box-shadow: var(--neu-shadow-inset);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  position: relative;
}
.empty-text {
  font-size: 15px;
  color: var(--neu-text-3);
  margin-bottom: 20px;
}
/* 待接单 — 时钟（10:10 造型） */
.empty-icon-clock {
  position: relative;
  width: 48px;
  height: 48px;
  border: 3px solid var(--neu-warning);
  border-radius: 50%;
}
.empty-icon-clock::before {
  content: '';
  position: absolute;
  width: 3px;
  height: 14px;
  background: var(--neu-warning);
  bottom: 50%;
  left: 50%;
  transform-origin: bottom center;
  transform: translateX(-50%) rotate(-35deg);
  border-radius: 2px;
}
.empty-icon-clock::after {
  content: '';
  position: absolute;
  width: 3px;
  height: 20px;
  background: var(--neu-warning);
  bottom: 50%;
  left: 50%;
  transform-origin: bottom center;
  transform: translateX(-50%) rotate(20deg);
  border-radius: 2px;
}
.clock-dot {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--neu-warning);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
/* 已接单 — 开口扳手（-45°） */
.empty-icon-wrench {
  position: relative;
  width: 44px;
  height: 44px;
  transform: rotate(-45deg);
}
.empty-icon-wrench::before {
  content: '';
  position: absolute;
  width: 6px;
  height: 28px;
  background: var(--neu-accent);
  border-radius: 3px;
  top: 8px;
  left: 50%;
  margin-left: -3px;
}
.empty-icon-wrench::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  border: 6px solid var(--neu-accent);
  border-radius: 50%;
  top: 0;
  left: 50%;
  margin-left: -10px;
  box-shadow: 0 8px 0 0 var(--neu-bg) inset, 0 -8px 0 0 var(--neu-bg) inset;
  clip-path: polygon(0 0, 100% 0, 100% 35%, 65% 35%, 65% 65%, 100% 65%, 100% 100%, 0 100%);
}
/* 已完成 — 对勾 */
.empty-icon-check {
  position: relative;
  width: 40px;
  height: 40px;
}
.empty-icon-check::before {
  content: '';
  position: absolute;
  width: 6px;
  height: 24px;
  border-right: 4px solid var(--neu-success);
  border-bottom: 4px solid var(--neu-success);
  transform: rotate(45deg) translate(-2px, -4px);
  top: 4px;
  left: 50%;
  margin-left: -12px;
  border-radius: 0 0 3px 0;
}
/* 流程管理统计按钮：白底 → 新拟物凸起 */
.btn-stats {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border: none !important;
  color: var(--neu-text-2) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  border-radius: var(--neu-radius) !important;
  transition: all var(--neu-dur) var(--neu-ease) !important;
}
.btn-stats:hover {
  box-shadow: var(--neu-shadow-raised-xs) !important;
  color: var(--neu-accent) !important;
}
.btn-stats.active,
.btn-stats[aria-selected="true"] {
  box-shadow: var(--neu-shadow-inset-sm) !important;
  color: var(--neu-accent) !important;
}

/* ==================== 十八-D、考试系统深化（规范 7.5） ==================== */
/* 考试卡片：凸起新拟物（覆盖 exam.css 白底+边框+hover上浮） */
.exam-card-new {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border: none !important;
  border-radius: var(--neu-radius-lg) !important;
  box-shadow: var(--neu-shadow-raised) !important;
  transition: all var(--neu-dur) var(--neu-ease) !important;
}
.exam-card-new:hover {
  transform: none !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  border-color: transparent !important;
}
/* 顶部渐变条：渐变 → 实色（规范禁止渐变） */
.card-accent { background: var(--neu-bg) !important; background-image: none !important; animation: none !important; height: 4px !important; }
.card-accent.published { background: var(--neu-success) !important; }
.card-accent.closed { background: var(--neu-danger) !important; }
.card-accent.draft { background: var(--neu-text-3) !important; }
.card-accent .accent-glow { display: none !important; }
/* 状态标签：凹陷胶囊 */
.status-badge-new {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border-radius: var(--neu-radius-full) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  border: none !important;
}
/* 统计卡片：凸起 */
.exam-stat-card,
div[class*="stat-card"] { box-shadow: var(--neu-shadow-raised) !important; }
.login-page,
.auth-page,
.main-content-centered {
  background: var(--neu-bg) !important;
  background-image: none !important;
}

/* ==================== 十九、响应式适配（审查 D1-D5，2026-08-21 补充） ==================== */
@media (min-width: 768px) {
  .card { box-shadow: var(--neu-shadow-raised); }
}
@media (max-width: 767px) {
  .card, .btn, .stat-card, .card-stat { box-shadow: var(--neu-shadow-raised-sm); }
}

/* D1: 窄屏侧边栏自动折叠（<992px 默认收起，抽屉式展开按钮仍可用） */
@media (max-width: 991.98px) {
  .app-layout { padding-left: 0 !important; }
  .sidebar { width: 220px !important; }
  /* 折叠态宽度清零 */
  .sidebar-collapsed .sidebar { width: 0 !important; }
  /* 收起按钮固定在左缘 */
  .sidebar-toggle { left: 0 !important; }
  /* 主内容区全宽，不被侧边栏挤压 */
  .main-content { margin-left: 0 !important; padding-left: 0 !important; }
}

/* D2: 统计卡片自适应网格（4列→2列→1列） */
@media (max-width: 1199.98px) {
  .row .col-md-3, .row > div[class*="col-md-3"] { flex: 0 0 50% !important; max-width: 50% !important; }
}
@media (max-width: 767.98px) {
  .row .col-md-3, .row > div[class*="col-md-3"],
  .row .col-md-4, .row > div[class*="col-md-4"],
  .row .col-md-6, .row > div[class*="col-md-6"] { flex: 0 0 100% !important; max-width: 100% !important; }
  /* 图表容器限高防溢出 */
  .chart-container, .trend-chart-wrap { min-height: 180px; max-height: 260px; }
  canvas[data-chart] { max-height: 240px !important; }
  /* 表格横向滚动 */
  .table-responsive { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
}

/* D4: 超宽屏内容区限宽（已有 .content max-width:1440px，补充居中） */
@media (min-width: 1920px) {
  .content { max-width: var(--neu-content-max-w, 1600px) !important; margin: 0 auto; }
  /* 统计卡每行4卡占满（超宽屏 grid，2026-08-23：8卡分两row各4张 → 4列grid占满居中） */
  .neu-stats-grid { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 8px !important; margin-left: 0 !important; margin-right: 0 !important; }
  .neu-stats-grid > .col-md-3 { flex: none !important; max-width: none !important; width: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
}

/* D5: 标题字号自适应（clamp） */
@media (max-width: 767.98px) {
  h1, .h1 { font-size: clamp(20px, 5vw, 32px) !important; }
  h2, .h2 { font-size: clamp(18px, 4.5vw, 28px) !important; }
  h3, .h3, .card-title { font-size: clamp(16px, 4vw, 22px) !important; }
  body { font-size: 14px; }
  /* 触控目标 ≥44px（D6） */
  .btn, .nav-link, .dropdown-item, .icon-btn { min-height: 44px; }
  .btn { padding: 10px 18px; }
}

/* 减弱动画 */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  /* 动画禁用时，入场元素不能被初始 opacity:0 卡在透明态，强制可见 */
  .animate-in > * { opacity: 1 !important; }
}

/* ==================== 二十、深色模式补充覆盖 ==================== */
[data-theme="dark"] body,
[data-theme="dark"] .sidebar,
[data-theme="dark"] .main-content,
[data-theme="dark"] .content,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] #chat-window { background: var(--neu-bg); }
[data-theme="dark"] .card-header,
[data-theme="dark"] .chat-conv-item,
[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer { background: var(--neu-bg); }
[data-theme="dark"] .table-hover tbody tr:hover { background: var(--neu-bg-hover) !important; }

/* ==================== 二十一、深色模式内联色映射（审查 G2，2026-08-21） ====================
   模板中存在大量内联硬编码色值（#1e293b 文字、#f1f5f9 背景、#fff 等），
   逐处改 HTML 风险高，用属性选择器在深色模式下统一映射为变量，保证可读性。 */
[data-theme="dark"] [style*="color:#1e293b"],
[data-theme="dark"] [style*="color: #1e293b"] { color: var(--neu-text) !important; }
[data-theme="dark"] [style*="color:#333"],
[data-theme="dark"] [style*="color: #333"] { color: var(--neu-text) !important; }
[data-theme="dark"] [style*="color:#111827"],
[data-theme="dark"] [style*="color: #111827"] { color: var(--neu-text) !important; }
[data-theme="dark"] [style*="color:#fff"],
[data-theme="dark"] [style*="color: #fff"] { color: var(--neu-text-inverse) !important; }
[data-theme="dark"] [style*="color:#94a3b8"],
[data-theme="dark"] [style*="color: #94a3b8"] { color: var(--neu-text-3) !important; }
[data-theme="dark"] [style*="color:#64748b"],
[data-theme="dark"] [style*="color: #64748b"] { color: var(--neu-text-2) !important; }

/* 深色模式背景映射 */
[data-theme="dark"] [style*="background:#f1f5f9"],
[data-theme="dark"] [style*="background: #f1f5f9"] { background: var(--neu-bg-soft) !important; }
[data-theme="dark"] [style*="background:#f8fafc"],
[data-theme="dark"] [style*="background: #f8fafc"] { background: var(--neu-bg-soft) !important; }
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: #ffffff"] { background: var(--neu-bg) !important; }
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #fff"] { background: var(--neu-bg) !important; }
[data-theme="dark"] [style*="background:#e2e8f0"],
[data-theme="dark"] [style*="background: #e2ee8f0"],
[data-theme="dark"] [style*="background: #e2e8f0"] { background: var(--neu-bg-darker) !important; }

/* 深色模式边框映射（内联 border 1px solid #e2e8f0 等） */
[data-theme="dark"] [style*="border-color:#e2e8f0"],
[data-theme="dark"] [style*="border-color: #e2e8f0"] { border-color: var(--neu-bg-darker) !important; }
[data-theme="dark"] [style*="border:1px solid #e2e8f0"],
[data-theme="dark"] [style*="border: 1px solid #e2e8f0"] { border-color: var(--neu-bg-darker) !important; }

/* 语义色（成功/警告/危险）保持原色，但提升深色下对比 */
[data-theme="dark"] [style*="color:#10b981"],
[data-theme="dark"] [style*="color: #10b981"] { color: var(--neu-success) !important; }
[data-theme="dark"] [style*="color:#f59e0b"],
[data-theme="dark"] [style*="color: #f59e0b"] { color: var(--neu-warning) !important; }
[data-theme="dark"] [style*="color:#ef4444"],
[data-theme="dark"] [style*="color: #ef4444"] { color: var(--neu-danger) !important; }
[data-theme="dark"] [style*="color:#0ea5e9"],
[data-theme="dark"] [style*="color: #0ea5e9"] { color: var(--neu-info) !important; }
[data-theme="dark"] [style*="color:#f97316"],
[data-theme="dark"] [style*="color: #f97316"] { color: var(--neu-warning) !important; }
[data-theme="dark"] [style*="background:#10b981"],
[data-theme="dark"] [style*="background: #10b981"] { background: var(--neu-success) !important; }
[data-theme="dark"] [style*="background:#ef4444"],
[data-theme="dark"] [style*="background: #ef4444"] { background: var(--neu-danger) !important; }
[data-theme="dark"] [style*="background:#f59e0b"],
[data-theme="dark"] [style*="background: #f59e0b"] { background: var(--neu-warning) !important; }
[data-theme="dark"] [style*="background:#0ea5e9"],
[data-theme="dark"] [style*="background: #0ea5e9"] { background: var(--neu-info) !important; }

/* ==================== 二十二、完整版整改补充（2026-08-22） ====================
   对照完整版提示词新增项：9.1排版/10.16滚动条/10.17焦点/11.3安全区域/11.6 4K/11.11打印/骨架屏 */

/* 9.1 字号层级（禁止非标准值） */
.neu-text-xs { font-size: 11px; }
.neu-text-sm { font-size: 13px; }
.neu-text-base { font-size: 15px; }
.neu-text-md { font-size: 17px; }
.neu-text-lg { font-size: 20px; }
.neu-text-xl { font-size: 24px; }
.neu-text-2xl { font-size: 32px; }
/* 非标准字号兜底：最小 11px */
[style*="font-size:9px"], [style*="font-size: 9px"],
[style*="font-size:10px"], [style*="font-size: 10px"] { font-size: 11px !important; }

/* 9.2 间距变量工具类 */
.neu-space-xs { margin: 4px !important; }
.neu-space-sm { margin: 8px !important; }
.neu-space-md { margin: 16px !important; }
.neu-space-lg { margin: 24px !important; }
.neu-space-xl { margin: 32px !important; }
.neu-pad-md { padding: 16px !important; }
.neu-pad-lg { padding: 24px !important; }

/* 10.13 骨架屏 */
.neu-skeleton {
  background: var(--neu-bg) !important;
  border-radius: var(--neu-radius) !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  position: relative; overflow: hidden;
}
.neu-skeleton::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 0%, var(--neu-bg-soft) 50%, transparent 100%);
  animation: neu-shimmer 1.5s infinite;
}
@keyframes neu-shimmer { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
.neu-skeleton-text { height: 14px; margin-bottom: 8px; border-radius: var(--neu-radius-pill); }
.neu-skeleton-card { height: 120px; border-radius: var(--neu-radius-lg); }

/* 10.16 滚动条新拟物化 */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--neu-bg); box-shadow: var(--neu-shadow-inset-sm); border-radius: var(--neu-radius-pill); }
::-webkit-scrollbar-thumb { background: var(--neu-bg-soft); box-shadow: var(--neu-shadow-raised-sm); border-radius: var(--neu-radius-pill); }
* { scrollbar-width: thin; scrollbar-color: var(--neu-bg-soft) var(--neu-bg); }

/* 10.17 选中与焦点 */
::selection { background: rgba(109,93,252,0.2); color: var(--neu-text); }
[data-theme="dark"] ::selection { background: rgba(124,111,255,0.3); }
:focus-visible { outline: 2px solid var(--neu-accent); outline-offset: 2px; border-radius: var(--neu-radius); }
:focus:not(:focus-visible) { outline: none; }

/* 11.3 安全区域（H3） */
:root {
  --neu-safe-top: env(safe-area-inset-top, 0px);
  --neu-safe-bottom: env(safe-area-inset-bottom, 0px);
}
.app-topbar { padding-top: var(--neu-safe-top); }

/* 11.6 高DPI/4K（H8） */
@media (min-width: 2560px) {
  :root {
    --neu-radius: 16px; --neu-radius-lg: 24px; --neu-radius-xl: 32px;
    --neu-fs-base: 17px; --neu-fs-md: 19px; --neu-fs-lg: 24px;
  }
  .content { max-width: 1920px !important; }
}

/* 11.7 触控 vs 鼠标（H7） */
@media (hover: none) and (pointer: coarse) {
  .btn, .neu-btn, .nav-link, .dropdown-item { min-height: 44px; }
  .btn, .neu-btn { padding: 12px 28px; }
  .btn, .neu-btn, .nav-link { -webkit-touch-callout: none; user-select: none; }
}

/* 11.8 网格自适应（D2 补充 auto-fill/minmax） */
.dashboard-charts { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); }
@media (max-width: 767px) { .dashboard-charts { grid-template-columns: 1fr; } }
.filter-row { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-group { flex: 1 1 200px; min-width: 150px; }

/* 11.11 打印样式 */
@media print {
  .sidebar, .sidebar-toggle, .app-topbar, .neu-btn, .btn,
  .pagination-container, #toast-container, .theme-toggle, .user-info,
  #back-to-top, .ai-fab, #ai-fab { display: none !important; }
  .card, .stat-card, .card-stat, .neu-card, .neu-inset {
    box-shadow: none !important; border: 1px solid #ccc !important; border-radius: 4px !important;
  }
  body { background: white !important; font-size: 12pt; }
  .card { page-break-inside: avoid; }
}

/* ==================== 二十三、折叠屏/平板适配（2026-08-22 完整版 H2/H4） ==================== */
/* H2 折叠屏：展开态竖屏 840-884px 侧边栏收窄 */
@media (min-width: 840px) and (max-width: 884px) and (orientation: portrait) {
  .sidebar { width: var(--neu-sidebar-w-collapsed, 72px) !important; }
  .sidebar .brand span, .sidebar .nav-link span,
  .sidebar .nav-section-label, .sidebar .user-info > div:last-child { opacity: 0; width: 0; overflow: hidden; }
}
/* H2 折叠屏横屏 1768-1772px 铰链避让 */
@media (min-width: 1768px) and (max-width: 1772px) and (orientation: landscape) {
  .content { padding-left: env(fold-left, 0); padding-right: env(fold-right, 0); }
}
/* H4 平板横屏 1024-1366px 列表+详情双列（若页面用 split-layout 类） */
@media (min-width: 1024px) and (max-width: 1366px) and (orientation: landscape) {
  .split-layout { display: grid; grid-template-columns: 380px 1fr; height: calc(100vh - 60px); }
  .split-list { overflow-y: auto; }
  .split-detail { overflow-y: auto; padding: var(--neu-space-lg); }
}

/* ==================== 二十四、仪表盘根因修复组件（2026-08-22 dashboard-revamp-plan） ==================== */

/* === 统计卡片（2026-08-22 二次调扁：更扁更低矮） === */
.neu-stat-card {
  background: var(--neu-bg-soft) !important;
  background-image: none !important;
  border-radius: 16px !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  border: none !important;
  padding: 9px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  position: relative;
  transition: all var(--neu-dur) var(--neu-ease);
}
/* 4.10.1 统计卡 hover 快捷箭头（一次性动效） */
.neu-stat-card::after {
  content: '→';
  position: absolute;
  right: 12px;
  top: 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--neu-text-3);
  opacity: 0;
  transform: translateX(-4px);
  transition: all var(--neu-dur) var(--neu-ease);
  pointer-events: none;
}
.neu-stat-card:hover::after {
  opacity: 1;
  transform: translateX(0);
  color: var(--neu-accent);
}
.neu-stat-card:hover { box-shadow: var(--neu-shadow-raised) !important; }
.neu-stat-card:active { box-shadow: var(--neu-shadow-inset-sm) !important; }
.neu-stat-icon {
  width: 36px; height: 36px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px;
  box-shadow: var(--neu-shadow-inset-sm);
  background: var(--neu-bg);
  flex-shrink: 0;
}
.neu-success-icon { color: var(--neu-success); }
.neu-warning-icon { color: var(--neu-warning); }
.neu-danger-icon  { color: var(--neu-danger); }
.neu-accent-icon  { color: var(--neu-accent); }
.neu-info-icon    { color: var(--neu-info); }
.neu-stat-info { flex: 1; min-width: 0; }
/* 模板实际类名是 .stat-label（app.min.css 旧定义），此处统一覆盖 */
.neu-stat-label,
.neu-stat-card .stat-label {
  font-size: 10.5px !important;
  font-weight: 500 !important;
  color: var(--neu-text-2) !important;
  margin-bottom: 2px !important;
  letter-spacing: 0.3px;
}
.neu-text-success { color: var(--neu-success) !important; }
.neu-text-warning { color: var(--neu-warning) !important; }
.neu-text-danger  { color: var(--neu-danger) !important; }
.neu-text-accent  { color: var(--neu-accent) !important; }
.neu-text-info    { color: var(--neu-info) !important; }
.neu-stat-value { font-size: 22px; font-weight: 800; color: var(--neu-text) !important; line-height: 1.1; }

/* === 仪表盘工具栏（三行合并为一行） === */
.neu-dashboard-toolbar {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 8px; margin-bottom: 8px;
}
.neu-toolbar-left { flex-shrink: 0; }
.neu-toolbar-right { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.neu-page-title {
  margin: 0; font-size: 18px; font-weight: 700; color: var(--neu-text);
  display: flex; align-items: center; gap: 6px;
}
.neu-page-title i { color: var(--neu-accent); }
.neu-page-subtitle { font-size: 13px; font-weight: 400; color: var(--neu-text-2); margin-left: 4px; }
.neu-chip-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; font-size: 13px; font-weight: 500;
  color: var(--neu-text); background: var(--neu-bg-soft); border: none;
  border-radius: var(--neu-radius); box-shadow: var(--neu-shadow-raised-xs);
  cursor: pointer; white-space: nowrap;
  transition: all var(--neu-dur) var(--neu-ease); text-decoration: none;
}
.neu-chip-btn:hover { color: var(--neu-accent); box-shadow: var(--neu-shadow-raised-sm); }
.neu-chip-btn:active { box-shadow: var(--neu-shadow-inset-sm); }
.neu-chip-accent { color: var(--neu-accent); font-weight: 600; }
.neu-chip-select, .neu-chip-input {
  padding: 6px 10px; font-size: 13px; color: var(--neu-text);
  background: var(--neu-bg-soft); border: none; border-radius: var(--neu-radius);
  box-shadow: var(--neu-shadow-inset-shallow); outline: none; cursor: pointer;
}
/* app.min.css 全局 select{width:100%} 会把 chip select 撑满，重置为内容宽 */
select.neu-chip-select {
  width: auto !important;
  max-width: 320px;
  display: inline-block;
}
/* 筛选行内控件统一定高，消除 select/input 基线 1px 错位 */
.neu-filter-bar select.neu-chip-select,
.neu-filter-bar .neu-chip-input,
.neu-filter-bar .neu-chip-btn {
  height: 34px;
  box-sizing: border-box;
}
.neu-chip-input { color-scheme: light; }
[data-theme="dark"] .neu-chip-input { color-scheme: dark; }
.neu-toolbar-divider { width: 1px; height: 24px; background: var(--neu-bg-hover); margin: 0 4px; }
/* 仪表盘筛选行（第二行）：院区 + 分组 + 日期 + 查询 同一行 */
.neu-filter-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
  padding: 10px 14px;
  background: var(--neu-bg-soft);
  border-radius: var(--neu-radius);
  box-shadow: var(--neu-shadow-inset-shallow);
}
.neu-filter-bar .neu-chip-select,
.neu-filter-bar .neu-chip-input { min-width: 0; }
.neu-chip-link { font-size: 12px; color: var(--neu-text-2); text-decoration: none; padding: 4px 8px; border-radius: var(--neu-radius); transition: color var(--neu-dur); }
.neu-chip-link:hover { color: var(--neu-accent); }

/* === 下拉菜单（医院切换等） === */
.neu-dropdown-wrapper { position: relative; display: inline-flex; }
.neu-dropdown-arrow { font-size: 10px; color: var(--neu-text-3); }
.neu-dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 100;
  margin-top: 4px;
  min-width: 160px;
  background: var(--neu-bg-soft);
  border: none;
  border-radius: var(--neu-radius);
  box-shadow: var(--neu-shadow-raised);
  padding: 4px;
  overflow: hidden;
}
.neu-dropdown-item {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; font-size: 13px; color: var(--neu-text);
  text-decoration: none; border-radius: var(--neu-radius);
  transition: all 0.15s;
}
.neu-dropdown-item:hover { background: var(--neu-bg-hover); color: var(--neu-accent); }
.neu-dropdown-item.active { color: var(--neu-accent); font-weight: 600; box-shadow: var(--neu-shadow-inset-shallow); }

/* === 状态条（替代 backdrop-filter 内联） === */
.neu-status-bar {
  margin-bottom: 12px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  font-size: 12px; color: var(--neu-text-2);
  padding: 8px 14px; background: var(--neu-bg-soft) !important;
  background-image: none !important;
  border-radius: var(--neu-radius); box-shadow: var(--neu-shadow-inset-shallow);
  border: none !important;
}
.neu-status-item { display: flex; align-items: center; gap: 4px; }
.neu-status-item strong { color: var(--neu-text); }
.neu-status-clock { margin-left: auto; }
.neu-pulse-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--neu-success);
  box-shadow: 0 0 6px var(--neu-success);
}
@keyframes pulse-soft { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
.neu-pulse-dot { animation: pulse-soft 2s infinite; }

/* === KPI 小卡片 === */
.neu-kpi-card {
  flex: 1; min-width: 80px; text-align: center;
  padding: 12px 6px; background: var(--neu-bg-soft);
  border-radius: var(--neu-radius); box-shadow: var(--neu-shadow-inset-shallow);
  transition: all var(--neu-dur) var(--neu-ease);
}
.neu-kpi-card:hover { box-shadow: var(--neu-shadow-raised-xs); }
.neu-kpi-icon { font-size: 18px; margin-bottom: 4px; }
.neu-kpi-value { font-size: 22px; font-weight: 800; color: var(--neu-text); line-height: 1.2; }
.neu-kpi-label { font-size: 10px; color: var(--neu-text-3); font-weight: 500; }

/* === 图表卡片 === */
.neu-chart-card {
  background: var(--neu-bg-soft) !important;
  border-radius: var(--neu-radius-lg) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  border: none !important; overflow: hidden; margin-bottom: 12px;
}
.neu-chart-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 18px; border-bottom: 1px solid var(--neu-bg-hover);
}
.neu-chart-title { font-size: 14px; font-weight: 600; color: var(--neu-text); display: flex; align-items: center; gap: 8px; }
.neu-chart-icon { color: var(--neu-accent); font-size: 14px; }
.neu-chart-meta { font-size: 11px; color: var(--neu-text-3); display: flex; align-items: center; gap: 6px; }
.neu-chart-link { color: var(--neu-accent); text-decoration: none; font-size: 11px; font-weight: 600; margin-left: 4px; }
.neu-chart-body { min-height: 230px; position: relative; padding: 12px; }

/* === 主操作按钮 === */
.neu-btn-accent {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 18px; font-size: 13px; font-weight: 600;
  color: var(--neu-accent); background: var(--neu-bg-soft); border: none;
  border-radius: var(--neu-radius); box-shadow: var(--neu-shadow-raised-xs);
  cursor: pointer; transition: all var(--neu-dur) var(--neu-ease); white-space: nowrap;
}
.neu-btn-accent:hover { color: var(--neu-accent-soft); }
.neu-btn-accent:active { color: var(--neu-bg-soft); background: var(--neu-accent); box-shadow: var(--neu-shadow-inset-sm); }

/* === 进度条新拟态 === */
.neu-progress { height: 6px; background: var(--neu-bg-hover); border-radius: 3px; box-shadow: var(--neu-shadow-inset-shallow); overflow: hidden; }
.neu-progress-bar { height: 100%; border-radius: 3px; transition: width 1.2s var(--neu-bounce); }

/* === 空状态新拟态 === */
.neu-empty-state { text-align: center; padding: 32px 16px; color: var(--neu-text-3); }
.neu-empty-state-icon {
  width: 80px; height: 80px; margin: 0 auto 12px; border-radius: var(--neu-radius-full);
  display: flex; align-items: center; justify-content: center; font-size: 28px;
  color: var(--neu-text-3); background: var(--neu-bg-soft); box-shadow: var(--neu-shadow-inset);
}
.neu-empty-state-text { font-size: 13px; font-weight: 500; color: var(--neu-text-2); }

/* ==================== 二十五、深色模式硬编码颜色守卫（2026-08-22 revamp-plan 7.1） ==================== */
[data-theme="dark"] [style*="color:#1e293b"],
[data-theme="dark"] [style*="color:#1e293b;"],
[data-theme="dark"] [style*="color:#0f172a"],
[data-theme="dark"] [style*="color:#334155"],
[data-theme="dark"] [style*="color:#475569"],
[data-theme="dark"] [style*="color:#64748b"] {
  color: var(--neu-text-2) !important;
}
[data-theme="dark"] [style*="color:#1e293b"] strong,
[data-theme="dark"] [style*="color:#1e293b"] .fw-bold,
[data-theme="dark"] [style*="color:#1e293b"] .stat-value,
[data-theme="dark"] [style*="color:#1e293b"] .neu-stat-value {
  color: var(--neu-text) !important;
}
/* 浅色模式白字修复（排除侧边栏/实色按钮内） */
:root [style*="color:#fff"]:not(.sidebar *):not(.btn-primary *):not(.btn-success *):not(.btn-danger *):not(.btn-warning *):not(.neu-chip-accent *) {
  color: var(--neu-text) !important;
}
/* 深色模式黑字修复 */
[data-theme="dark"] [style*="color:#000"],
[data-theme="dark"] [style*="color:#000000"] {
  color: var(--neu-text) !important;
}
/* 统计卡 icon 语义色在深色模式提升对比 */
[data-theme="dark"] .neu-stat-icon[style*="color:#10b981"] { color: var(--neu-success) !important; }
[data-theme="dark"] .neu-stat-icon[style*="color:#f59e0b"] { color: var(--neu-warning) !important; }
[data-theme="dark"] .neu-stat-icon[style*="color:#ef4444"] { color: var(--neu-danger) !important; }
[data-theme="dark"] .neu-stat-icon[style*="color:#0284c7"] { color: var(--neu-info) !important; }
[data-theme="dark"] .neu-stat-icon[style*="color:#4338ca"] { color: var(--neu-accent) !important; }
[data-theme="dark"] .neu-stat-icon[style*="color:#7c3aed"] { color: var(--neu-accent) !important; }
[data-theme="dark"] .neu-stat-icon[style*="color:#ea580c"] { color: var(--neu-warning) !important; }
[data-theme="dark"] .neu-stat-icon[style*="color:#0d9488"] { color: var(--neu-success) !important; }

/* ==================== 二十六、全站UI整改（2026-08-22 sitewide-revamp-plan） ==================== */
/* 4.3 内容区合理内边距（原 padding:0 内容贴边） */
.main-content,
.page-content,
#dashboard-content,
.content {
  padding: 20px 24px !important;
}
@media (max-width: 768px) {
  .main-content,
  .page-content,
  #dashboard-content,
  .content {
    padding: 12px 14px !important;
  }
}

/* 4.4 统一卡片样式（凸起 + 浅色，深色自动跟随） */
.card,
.card-stat,
.card-trend,
.card-section,
.stat-card {
  background: var(--neu-bg-soft) !important;
  border: none !important;
  border-radius: var(--neu-radius-lg) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  transition: box-shadow var(--neu-dur) var(--neu-ease), transform var(--neu-dur) var(--neu-ease);
}
.card:hover {
  box-shadow: var(--neu-shadow-raised) !important;
}
.card-header {
  background: transparent !important;
  border-bottom: 1px solid var(--neu-bg-hover) !important;
  padding: 14px 20px !important;
  font-size: 14px;
  font-weight: 600;
  color: var(--neu-text);
}
.card-header:first-child {
  border-radius: var(--neu-radius-lg) var(--neu-radius-lg) 0 0 !important;
}
.card-body {
  padding: 16px 20px !important;
  color: var(--neu-text);
}
[data-theme="dark"] .card,
[data-theme="dark"] .card-stat,
[data-theme="dark"] .card-trend,
[data-theme="dark"] .card-section {
  background: var(--neu-bg-soft) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
}

/* 4.5 侧边栏新拟态化（变量驱动，白天浅色/深色深灰） */
:root { --sidebar-width: 240px !important; }  /* 覆盖 app.min.css 打包的旧值 220px */
.sidebar {
  background: var(--sb-bg) !important;
  background-image: none !important;
  box-shadow: var(--sb-shadow) !important;
  border-right: none;
  width: var(--sidebar-width, 240px) !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
}
.sidebar .brand {
  padding: 20px 20px 18px !important;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--sb-border);
  margin-bottom: 8px;
  cursor: pointer;
  transition: all 0.2s;
}
.sidebar .brand:hover { opacity: 0.9; }
.sidebar .brand-icon {
  width: 40px !important;
  height: 40px !important;
  border-radius: 12px !important;
  background: var(--sb-brand-bg) !important;
  background-image: none !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0;
}
.sidebar .brand-icon svg { width: 22px !important; height: 22px !important; }
.sidebar .brand-icon svg path,
.sidebar .brand-icon svg rect { fill: currentColor; }
.sidebar .brand-text {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--sb-text) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
  letter-spacing: 0.5px;
}
/* 导航分区标签 */
.sidebar .nav-section-label {
  padding: 12px 20px 6px !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  color: var(--sb-text-3) !important;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
/* 导航链接 - 白天每行凸起边界 / 深色透明（4.5 重设计，2026-08-22） */
.sidebar .nav-link {
  margin: 3px 12px !important;
  padding: 10px 14px !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  color: var(--sb-text-2) !important;
  background: var(--sb-nav-bg) !important;
  border-radius: 10px !important;
  box-shadow: var(--sb-nav-shadow) !important;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: all 0.2s ease;
  position: relative;
}
.sidebar .nav-link i {
  width: 18px;
  text-align: center;
  font-size: 14px;
  color: var(--sb-icon);
  transition: color 0.2s;
}
.sidebar .nav-link:hover {
  color: var(--sb-text) !important;
  background: var(--sb-hover-bg) !important;
  box-shadow: var(--sb-nav-hover-shadow) !important;
}
.sidebar .nav-link:hover i { color: var(--neu-accent); transform: none !important; }
.sidebar .nav-link.active {
  color: var(--sb-text) !important;
  background: var(--sb-active-bg) !important;
  box-shadow:
    inset 2px 2px 5px rgba(184, 188, 194, 0.5),
    inset -2px -2px 5px rgba(245, 247, 250, 0.85) !important;
  font-weight: 600 !important;
}
.sidebar .nav-link.active i {
  color: var(--neu-accent) !important;
  /* app.min.css 残留蓝色光晕 text-shadow，须清除（2026-08-22 图标溢出根因） */
  text-shadow: none !important;
}
.sidebar .divider {
  margin: 8px 20px !important;
  border-top: 1px solid var(--sb-border) !important;
}
.sidebar .user-info {
  margin-top: auto !important;
  padding: 14px 13px 14px 16px !important; /* 右侧13px: 日/夜按钮靠右, 2026-08-23 */
  border-top: 1px solid var(--sb-border) !important;
  background: var(--sb-inset-bg) !important;
  color: var(--sb-text-2) !important;
}
.sidebar .user-info .avatar {
  width: 36px !important;
  height: 36px !important;
  border-radius: 10px !important;
  background: var(--sb-accent-bg) !important;
  background-image: none !important;
  box-shadow:
    inset 2px 2px 4px rgba(0, 0, 0, 0.15),
    inset -2px -2px 4px rgba(255, 255, 255, 0.08) !important;
  color: var(--sb-text) !important;
  font-weight: 600;
}
.sidebar .user-info .user-name {
  color: var(--sb-text) !important;
  font-weight: 600 !important;
  font-size: 13.5px !important;
}
.sidebar .user-info .user-role {
  color: var(--sb-text-3) !important;
  font-size: 11px !important;
}
.theme-toggle {
  margin: 8px 16px 12px !important;
  padding: 8px 12px !important;
  border-radius: 10px !important;
  background: var(--sb-toggle-bg) !important;
  color: var(--sb-text-2) !important;
  border: none !important;
  transition: all 0.2s;
}
.theme-toggle:hover {
  background: var(--sb-hover-bg) !important;
  color: var(--sb-text) !important;
  box-shadow:
    2px 2px 6px var(--neu-sd),
    -2px -2px 6px var(--neu-sl) !important;
}

/* ==================== 二十六、遗留页内旧样式覆盖（2026-08-22 全站新拟态走查） ==================== */

/* === 数据管理入口卡片（页内旧式白底蓝字 → 新拟态凸起卡） === */
.data-card {
  background: var(--neu-bg-soft) !important;
  border: none !important;
  border-radius: var(--neu-radius-lg) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
  color: var(--neu-text) !important;
  transition: all var(--neu-dur) var(--neu-ease) !important;
}
.data-card:hover {
  box-shadow: var(--neu-shadow-raised) !important;
  transform: translateY(-2px);
}
.data-card:active {
  box-shadow: var(--neu-shadow-inset-sm) !important;
  transform: none;
}
.data-card .data-card-title { color: var(--neu-text) !important; }
.data-card .data-card-desc { color: var(--neu-text-2) !important; }
.data-card .data-card-count {
  background: var(--neu-bg) !important;
  color: var(--neu-accent) !important;
  box-shadow: var(--neu-shadow-inset-shallow) !important;
}
.data-card .data-card-icon {
  background: var(--neu-bg) !important;
  background-image: none !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
  color: var(--neu-accent) !important;
}
/* 左侧分类色条：旧变量/hex → 强调紫（透明度区分分类） */
.data-card::before { background: var(--neu-accent) !important; opacity: 0.65; }
[data-theme="dark"] .data-card { background: var(--neu-bg-soft) !important; }
[data-theme="dark"] .data-card .data-card-icon { background: var(--neu-bg) !important; color: var(--neu-accent-soft) !important; }

/* === 知识库页内渐变类（覆盖层管不到页内 style 块，此处显式清零） === */
.kh-cat.active {
  background: var(--neu-bg) !important;
  background-image: none !important;
  border-color: var(--neu-accent) !important;
  color: var(--neu-accent) !important;
}
.kh-card.pinned {
  background: var(--neu-bg-soft) !important;
  background-image: none !important;
  border-color: var(--neu-bg-hover) !important;
}
.kh-card[data-cat] .kh-card-bar,
.kh-card .kh-card-bar {
  background: var(--neu-accent) !important;
  background-image: none !important;
  height: 3px !important;
}
.kh-topbar h4 i {
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: var(--neu-accent) !important;
  color: var(--neu-accent) !important;
}
.kh-empty-icon {
  background: var(--neu-bg-soft) !important;
  background-image: none !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
}
.kh-fab {
  background: var(--neu-accent) !important;
  background-image: none !important;
  color: #fff !important;
  box-shadow: 0 6px 20px rgba(109, 93, 252, 0.35) !important;
}
.kh-tabs .sub-nav-tab.active {
  background: var(--neu-accent) !important;
  background-image: none !important;
  color: #fff !important;
  border: none !important;
  box-shadow: var(--neu-shadow-inset-sm) !important;
}
.kh-card-actions button {
  background: var(--neu-bg) !important;
  box-shadow: var(--neu-shadow-inset-shallow) !important;
}

/* === 医院管理按钮渐变 → 强调紫实底 === */
.hm-topbar .hm-actions .btn-primary-custom {
  background: var(--neu-accent) !important;
  background-image: none !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--neu-radius) !important;
  box-shadow: var(--neu-shadow-raised-sm) !important;
}
.hm-topbar .hm-actions .btn-primary-custom:hover {
  background: var(--neu-accent-soft) !important;
  color: #fff !important;
}

/* === 巡检时间线圆点：语义色（模板 set 值动态） === */
.ip-tl-dot {
  border: 2px solid var(--neu-info) !important;
  background: var(--neu-bg-soft) !important;
}

/* 主内容区链接：统一强调紫，替代 Bootstrap 默认蓝（2026-08-22 走查修复） */
.main-content a:not([class*="btn"]):not([class*="nav-link"]):not([class*="chip"]):not([class*="page-link"]):not([class*="dropdown"]):not([class*="card"]):not([class*="badge"]):not([class*="tab"]):not([class*="brand"]):not([class*="avatar"]) {
  color: var(--neu-accent);
  text-decoration: none;
  transition: color var(--neu-dur) var(--neu-ease);
}
.main-content a:not([class*="btn"]):not([class*="nav-link"]):not([class*="chip"]):not([class*="page-link"]):not([class*="dropdown"]):not([class*="card"]):not([class*="badge"]):not([class*="tab"]):not([class*="brand"]):not([class*="avatar"]):hover {
  color: var(--neu-accent-soft);
  text-decoration: underline;
}

/* 4.9 按钮统一（sitewide-revamp-plan，2026-08-22） */
.btn, .btn-primary {
background: var(--neu-bg-soft) !important;
color: var(--neu-text) !important;
border: none !important;
border-radius: var(--neu-radius) !important;
box-shadow: var(--neu-shadow-raised-sm) !important;
padding: 8px 18px !important;
font-size: 13px !important;
font-weight: 500 !important;
transition: all var(--neu-dur) var(--neu-ease) !important;
cursor: pointer;
}
.btn:hover, .btn-primary:hover {
color: var(--neu-accent) !important;
box-shadow: var(--neu-shadow-raised) !important;
transform: translateY(-1px);
}
.btn:active, .btn-primary:active {
box-shadow: var(--neu-shadow-inset-sm) !important;
transform: translateY(0);
color: var(--neu-accent) !important;
}
.btn-accent { color: var(--neu-accent) !important; font-weight: 600 !important; }
.btn-accent:active { background: var(--neu-accent) !important; color: var(--neu-bg-soft) !important; }
.btn-success { color: var(--neu-success) !important; }
.btn-danger { color: var(--neu-danger) !important; }
.btn-warning { color: var(--neu-warning) !important; }

/* ==================== 二十七、常驻动画清零（2026-08-22 用户偏好：拒绝常驻动画） ==================== */
.badge-urgent i.fa-exclamation-triangle,
.item-box i.fa-exclamation-triangle,
.live-clock .clock-dot,
.pulse-soft,
#autoRefreshPill:not(.paused) { animation: none !important; }
/* 知识库卡片：禁用入场动画与弹性 hover（打开/滚动不再缩放跳动） */
.kh-card { animation: none !important; }
.kh-card,
.kh-card:hover,
.kh-card:active { transition: box-shadow var(--neu-dur) var(--neu-ease), transform var(--neu-dur) var(--neu-ease); }
.kh-card:hover { transform: translateY(-2px); }
.kh-card:active { transform: none; }
/* 仪表盘内容入场动画缩放 → 仅淡入 */
#dashboard-content { animation: dash-enter 0.4s ease; }

/* 仪表盘入场：覆盖 app.min.css 的 dash-enter（含 scale），改为纯淡入 */
@keyframes dash-enter { from { opacity: 0; } to { opacity: 1; } }

/* 工单列表日期筛选「从/至」标签 */
.neu-field-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--neu-text-2);
  white-space: nowrap;
  flex-shrink: 0;
}

/* 工单列表分页容器：新拟态凹陷（与卡片衔接消除直角感，2026-08-22） */
.neu-pagination-wrap {
  background: var(--neu-bg-soft);
  border-radius: var(--neu-radius-lg);
  box-shadow: var(--neu-shadow-inset-sm);
  padding: 8px 12px;
}
.neu-pagination-wrap .pagination { margin: 0; }

/* ==================== 二十八、内容入场动画禁用（2026-08-22 修复：页面加载位移"缩放"感） ==================== */
.content { animation: none !important; }
