/* ============================================================
   靖羽 ERP · UI v3 「静默精准 / Quiet Precision」
   加载顺序：bootstrap → custom → theme-light → theme-dark → theme-v2 → 本文件
   作用域：html[data-ui="v3"]，默认不生效；?ui=v3 或 localStorage['ui:v3']=1 开启
   回退：删除 base.html 中本文件 <link>，或访问 ?ui=classic
   ============================================================ */

/* ---------- 字体（自托管，latin 子集；中文走系统栈） ---------- */
@font-face {
  font-family: 'Inter';
  src: url('../vendor/fonts/Inter-var.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'JetBrains Mono';
  src: url('../vendor/fonts/JetBrainsMono-var.woff2') format('woff2');
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
   1. 令牌（亮色）
   ============================================================ */
html[data-ui="v3"] {
  --v3-canvas: #F6F7F9;
  --v3-surface: #FFFFFF;
  --v3-sunken: #F2F4F6;
  --v3-line: #E7E9ED;
  --v3-line-2: #F0F1F4;
  --v3-line-strong: #D8DCE3;
  --v3-ink: #14161A;
  --v3-ink-2: #5B6270;
  --v3-ink-3: #6B7280;
  --v3-ink-4: #9CA3AF;
  --v3-brand: #0F5F70;
  --v3-brand-hover: #0B4A57;
  --v3-brand-soft: #EAF4F6;
  --v3-brand-line: #D3E8ED;

  /* 映射旧令牌：模板与主题层都读这一层 */
  --erp-bg: #F6F7F9;
  --erp-card: #FFFFFF;
  --erp-side: #FCFCFD;
  --erp-hover: #F2F4F6;
  --erp-row-hover: #F7FAFA;
  --erp-fg: #14161A;
  --erp-mut: #5B6270;
  --erp-dim: #6B7280;
  --erp-dis: #9CA3AF;
  --erp-muted: #F2F4F6;
  --erp-bd: #E7E9ED;
  --erp-bd2: #F0F1F4;
  --erp-primary: #0F5F70;
  --erp-primary-grad: linear-gradient(135deg, #14788C, #0F5F70);
  --erp-primary-ink: #FFFFFF;
  --erp-success: #0F7B4F;
  --erp-warn: #A65A00;
  --erp-info: #1D4ED8;
  --erp-danger: #B3261E;
  --erp-glass: rgba(255, 255, 255, .88);

  --brand-primary: #0F5F70;
  --brand-primary-dark: #0B4A57;
  --brand-accent: #B45309;
  --brand-success: #0F7B4F;
  --brand-danger: #B3261E;
  --brand-warning: #A65A00;

  --radius: 12px;
  --radius-sm: 8px;
  --shadow-card: 0 1px 2px rgba(16, 24, 40, .04);
  --shadow-float: 0 4px 14px rgba(15, 95, 112, .16);

  /* 覆盖 Bootstrap 5 的 body/card 颜色变量（暗色下最关键的漏点） */
  --bs-body-color: #14161A;
  --bs-body-bg: #F6F7F9;
  --bs-border-color: #E7E9ED;
  --bs-secondary-color: #5B6270;
  --bs-emphasis-color: #14161A;
  --bs-card-color: #14161A;
  --bs-card-bg: #FFFFFF;
}

html[data-ui="v3"]:not([data-theme="dark"]) body {
  background: var(--v3-canvas) !important;
  color: var(--v3-ink) !important;
  font-family: Inter, "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", sans-serif !important;
  font-size: 13.5px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "tnum" 1, "cv05" 1;
}
html[data-ui="v3"] * { scrollbar-width: thin; }

/* ============================================================
   2. 壳：顶栏 / 侧栏 / 内容
   ============================================================ */
html[data-ui="v3"] .app-topbar {
  height: 56px !important;
  padding: 0 20px !important;
  background: rgba(255, 255, 255, .9) !important;
  border-bottom: 1px solid var(--v3-line) !important;
  box-shadow: none !important;
  backdrop-filter: blur(12px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(12px) saturate(140%) !important;
}
html[data-ui="v3"] .navbar-brand strong {
  font-size: 14px !important;
  font-weight: 650 !important;
  letter-spacing: .01em;
  color: var(--v3-ink) !important;
}
html[data-ui="v3"] .navbar-brand > span {
  width: 28px !important;
  height: 28px !important;
  border-radius: 8px !important;
  background: linear-gradient(150deg, #14788C, #0B4A57) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  box-shadow: 0 1px 2px rgba(11, 74, 87, .28);
}
html[data-ui="v3"] .topbar-icon-btn {
  width: 32px; height: 32px;
  border-radius: 8px;
  color: var(--v3-ink-2);
}
html[data-ui="v3"] .topbar-icon-btn:hover { background: var(--v3-sunken); color: var(--v3-ink); }
html[data-ui="v3"] .app-avatar {
  width: 28px !important; height: 28px !important;
  background: var(--v3-sunken) !important;
  color: var(--v3-ink-2) !important;
  font-size: 11.5px !important;
  font-weight: 600;
}
html[data-ui="v3"] .app-topbar .btn-warning {
  background: #FFF !important;
  color: var(--v3-ink) !important;
  border: 1px solid var(--v3-line-strong) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04) !important;
  font-weight: 550 !important;
}
html[data-ui="v3"] .app-topbar .btn-warning .bi { color: var(--v3-brand); }
html[data-ui="v3"] .app-topbar .btn-warning:hover { background: var(--v3-sunken) !important; }

html[data-ui="v3"] .app-sidebar {
  flex: 0 0 232px !important;
  width: 232px !important;
  max-width: 232px !important;
  background: #FCFCFD !important;
  border-right: 1px solid var(--v3-line) !important;
}
html[data-ui="v3"] .app-sidebar .nav-section {
  font-size: 11px !important;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--v3-ink-3) !important;
  padding: 14px 18px 5px !important;
}
html[data-ui="v3"] .app-sidebar .nav-link {
  height: 32px;
  margin: 1px 10px !important;
  padding: 0 10px !important;
  border-radius: 8px !important;
  border-left: 0 !important;
  font-size: 13.5px !important;
  font-weight: 500;
  color: var(--v3-ink-2) !important;
  display: flex !important;
  align-items: center;
  transition: background .12s, color .12s;
}
html[data-ui="v3"] .app-sidebar .nav-link .bi {
  font-size: 15px !important;
  color: var(--v3-ink-3);
  width: 18px;
  text-align: center;
}
html[data-ui="v3"] .app-sidebar .nav-link:hover {
  background: var(--v3-sunken) !important;
  color: var(--v3-ink) !important;
}
html[data-ui="v3"] .app-sidebar .nav-link:hover .bi { color: var(--v3-ink); }
html[data-ui="v3"] .app-sidebar .nav-link.active {
  background: var(--v3-brand-soft) !important;
  color: var(--v3-brand-hover) !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}
html[data-ui="v3"] .app-sidebar .nav-link.active .bi { color: var(--v3-brand) !important; }
html[data-ui="v3"] .app-sidebar .nav-link .badge {
  font-size: 11px !important;
  height: 17px;
  padding: 0 5px;
  border-radius: 4px;
}

html[data-ui="v3"] .app-content {
  padding: 22px 28px 34px !important;
  max-width: 1600px;
}

/* ============================================================
   3. 基础组件
   ============================================================ */
html[data-ui="v3"] .card,
html[data-ui="v3"] .erp-card {
  background: var(--v3-surface) !important;
  border: 1px solid var(--v3-line) !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04) !important;
}
html[data-ui="v3"] .card:hover { border-color: var(--v3-line) !important; }
html[data-ui="v3"] .card, html[data-ui="v3"] .v3-todo { color: var(--v3-ink); }
html[data-ui="v3"] .card-header {
  background: transparent !important;
  border-bottom: 1px solid var(--v3-line-2) !important;
  padding: 12px 16px !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
}
html[data-ui="v3"] .card-body { padding: 14px 16px !important; }

html[data-ui="v3"] .btn {
  height: 32px;
  padding: 0 12px;
  border-radius: 8px !important;
  font-size: 13px;
  font-weight: 550;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
html[data-ui="v3"] .btn-sm { height: 27px; padding: 0 9px; font-size: 12px; border-radius: 7px !important; }
html[data-ui="v3"] .btn-lg { height: 38px; padding: 0 16px; font-size: 13.5px; }
html[data-ui="v3"] .btn-primary {
  background: var(--v3-brand) !important;
  border-color: var(--v3-brand) !important;
  color: #fff !important;
  box-shadow: 0 1px 2px rgba(15, 95, 112, .24), inset 0 1px 0 rgba(255, 255, 255, .1) !important;
}
html[data-ui="v3"] .btn-primary:hover,
html[data-ui="v3"] .btn-primary:focus {
  background: var(--v3-brand-hover) !important;
  border-color: var(--v3-brand-hover) !important;
}
html[data-ui="v3"] .btn-primary:disabled { background: #8FB6BF !important; border-color: #8FB6BF !important; }
html[data-ui="v3"] .btn-outline-primary {
  color: var(--v3-brand) !important;
  border-color: var(--v3-brand-line) !important;
  background: #fff !important;
}
html[data-ui="v3"] .btn-outline-primary:hover { background: var(--v3-brand-soft) !important; }
html[data-ui="v3"] .btn-outline-secondary {
  color: var(--v3-ink) !important;
  border-color: var(--v3-line-strong) !important;
  background: #fff !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
html[data-ui="v3"] .btn-outline-secondary:hover { background: var(--v3-sunken) !important; color: var(--v3-ink) !important; }
html[data-ui="v3"] .btn-outline-secondary.active {
  background: var(--v3-brand-soft) !important;
  border-color: var(--v3-brand-line) !important;
  color: var(--v3-brand-hover) !important;
  box-shadow: none;
}
html[data-ui="v3"] .btn-group { border-radius: 8px; }
html[data-ui="v3"] .btn-group .btn { box-shadow: none; }

html[data-ui="v3"] .form-control,
html[data-ui="v3"] .form-select {
  height: 32px;
  padding: 0 10px;
  border-radius: 8px !important;
  border-color: var(--v3-line-strong) !important;
  font-size: 12.5px !important;
  color: var(--v3-ink);
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
html[data-ui="v3"] .form-control:focus,
html[data-ui="v3"] .form-select:focus {
  border-color: var(--v3-brand) !important;
  box-shadow: 0 0 0 3px rgba(15, 95, 112, .14) !important;
}
html[data-ui="v3"] textarea.form-control { height: auto; padding: 8px 10px; }
html[data-ui="v3"] .form-label { font-size: 11.5px; font-weight: 550; color: var(--v3-ink-2); }
html[data-ui="v3"] .form-check-input:checked {
  background-color: var(--v3-brand) !important;
  border-color: var(--v3-brand) !important;
}
html[data-ui="v3"] .form-check-input:focus { box-shadow: 0 0 0 3px rgba(15, 95, 112, .14) !important; }
html[data-ui="v3"] .form-text { font-size: 11px; }

/* 徽标：去掉 v2 的小圆点，圆角 6，软底深字 */
html[data-ui="v3"] .badge {
  border-radius: 6px !important;
  font-size: 11.5px;
  font-weight: 550;
  padding: .28em .5em;
  line-height: 1.1;
}
html[data-ui="v3"] .badge::before { display: none !important; }
html[data-ui="v3"] .badge.bg-info { background: #EDF2FE !important; color: #1D4ED8 !important; }
html[data-ui="v3"] .badge.bg-success { background: #E9F6F0 !important; color: #0F7B4F !important; }
html[data-ui="v3"] .badge.bg-warning { background: #FDF3E3 !important; color: #A65A00 !important; }
html[data-ui="v3"] .badge.bg-danger { background: #FBEDEB !important; color: #B3261E !important; }
html[data-ui="v3"] .badge.bg-primary { background: var(--v3-brand-soft) !important; color: var(--v3-brand-hover) !important; }
html[data-ui="v3"] .badge.bg-secondary { background: var(--v3-sunken) !important; color: var(--v3-ink-2) !important; }

/* 表格：表头浅灰、行高 48、等宽数字 */
html[data-ui="v3"] .table { --bs-table-bg: transparent; margin-bottom: 0; }
html[data-ui="v3"] .table thead th {
  height: 34px;
  padding: 0 12px;
  background: #FAFBFC !important;
  color: var(--v3-ink-3) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .02em;
  border-bottom: 1px solid var(--v3-line) !important;
  white-space: nowrap;
}
html[data-ui="v3"] .table tbody td {
  height: 48px;
  padding: 6px 12px;
  font-size: 12.5px;
  border-bottom: 1px solid var(--v3-line-2) !important;
  vertical-align: middle;
}
html[data-ui="v3"] .table tbody tr:last-child td { border-bottom: 0 !important; }
html[data-ui="v3"] .table-hover tbody tr:hover > * { background: #FAFBFB !important; }
html[data-ui="v3"] .table td, html[data-ui="v3"] .table th { font-variant-numeric: tabular-nums; }
html[data-ui="v3"] .table .btn-sm { height: 24px; padding: 0 7px; font-size: 11.5px; }

html[data-ui="v3"] .alert {
  border-radius: 10px !important;
  font-size: 12.5px;
  padding: 10px 13px;
  border-width: 1px;
}
html[data-ui="v3"] .alert-danger { background: #FBEDEB !important; border-color: #F1CFCA !important; color: #7C1D16 !important; }

html[data-ui="v3"] .dropdown-menu {
  border: 1px solid var(--v3-line) !important;
  border-radius: 10px !important;
  box-shadow: 0 16px 40px rgba(16, 24, 40, .14), 0 2px 8px rgba(16, 24, 40, .05) !important;
  padding: 5px;
  font-size: 12.5px;
}
html[data-ui="v3"] .dropdown-item { border-radius: 6px; padding: 6px 9px; }

/* ============================================================
   4. 首页看板（hg/home.html）
   ============================================================ */
html[data-ui="v3"] .hk-page-head h4 {
  font-size: 22px !important;
  line-height: 30px;
  font-weight: 650 !important;
  letter-spacing: -.015em;
}
html[data-ui="v3"] .hk-page-head h4 .bi { display: none; }
html[data-ui="v3"] .hk-sub { font-size: 12.5px !important; color: var(--v3-ink-2) !important; }
html[data-ui="v3"] .hk-card {
  border-radius: 12px !important;
  border: 1px solid var(--v3-line) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04) !important;
}
html[data-ui="v3"] .hk-card .card-header {
  background: transparent !important;
  font-size: 13px !important;
  padding: 11px 16px !important;
}
html[data-ui="v3"] .hk-card .card-body { padding: 13px 16px !important; }

/* KPI：去掉浮起与彩色图标块，数字成为唯一主角 */
html[data-ui="v3"] .hk-kpi { transition: none !important; }
html[data-ui="v3"] .hk-kpi:hover { transform: none !important; box-shadow: 0 1px 2px rgba(16, 24, 40, .04) !important; }
html[data-ui="v3"] .hk-kpi .hk-ico {
  width: 30px !important; height: 30px !important;
  border-radius: 8px !important;
  background: var(--v3-sunken) !important;
  color: var(--v3-ink-2) !important;
  font-size: 15px !important;
}
html[data-ui="v3"] .hk-kpi .hk-num {
  font-family: Inter, sans-serif !important;
  font-size: 26px !important;
  font-weight: 650 !important;
  letter-spacing: -.02em;
  color: var(--v3-ink);
}
html[data-ui="v3"] .hk-kpi .hk-cap { font-size: 12px !important; font-weight: 500 !important; color: var(--v3-ink-2) !important; }
html[data-ui="v3"] .hk-kpi .hk-foot {
  border-top: 0 !important;
  margin-top: 4px !important;
  padding-top: 0 !important;
  font-size: 11px !important;
  color: var(--v3-ink-3) !important;
}
html[data-ui="v3"] .hk-kpi .card-body { padding: 14px 16px !important; }

html[data-ui="v3"] .hk-alert {
  border-radius: 10px !important;
  padding: 10px 13px !important;
  font-size: 12.5px !important;
}
html[data-ui="v3"] .hk-alert.red {
  background: #FBEDEB !important;
  border-color: #F1CFCA !important;
  color: #7C1D16 !important;
}
html[data-ui="v3"] .hk-alert.yellow {
  background: #FDF3E3 !important;
  border-color: #F3DDBA !important;
  color: #6E3C00 !important;
}
html[data-ui="v3"] .hk-chip {
  border-radius: 6px !important;
  font-size: 11px !important;
  font-weight: 550 !important;
}
html[data-ui="v3"] .hk-bar { height: 6px !important; }

/* ============================================================
   5. 跟卖上架（hg/sell_yours.html）——先做视觉收敛，结构在 P1 动
   ============================================================ */
html[data-ui="v3"] .fs-link { color: var(--v3-brand-hover) !important; }
html[data-ui="v3"] .fs-ghead td { background: #FAFBFC !important; }
html[data-ui="v3"] .fs-ghead:hover td { background: var(--v3-sunken) !important; }

/* ============================================================
   6. 暗色：只覆盖语义令牌，组件规则复用
   ============================================================ */
html[data-ui="v3"][data-theme="dark"] {
  --v3-canvas: #0B0E12;
  --v3-surface: #12161C;
  --v3-sunken: #1A2028;
  --v3-line: #232A33;
  --v3-line-2: #1B2129;
  --v3-line-strong: #2E3743;
  --v3-ink: #E6E9EE;
  --v3-ink-2: #AAB3C0;
  --v3-ink-3: #8A94A3;
  --v3-ink-4: #6B7585;
  --v3-brand: #2E93A8;
  --v3-brand-hover: #3AA6BB;
  --v3-brand-soft: #12262B;
  --v3-brand-line: #1E3A40;

  --erp-bg: #0B0E12;
  --erp-card: #12161C;
  --erp-side: #0E1217;
  --erp-fg: #E6E9EE;
  --erp-mut: #AAB3C0;
  --erp-dim: #8A94A3;
  --erp-bd: #232A33;
  --erp-bd2: #1B2129;
  --erp-muted: #1A2028;
  --erp-primary: #2E93A8;
  --erp-primary-grad: linear-gradient(135deg, #3AA6BB, #2E93A8);
  --brand-primary: #2E93A8;
  --brand-primary-dark: #3AA6BB;
  --shadow-card: 0 1px 2px rgba(0, 0, 0, .3);
  --bs-body-color: #E6E9EE;
  --bs-body-bg: #0B0E12;
  --bs-border-color: #232A33;
  --bs-secondary-color: #AAB3C0;
  --bs-emphasis-color: #E6E9EE;
  --bs-card-color: #E6E9EE;
  --bs-card-bg: #12161C;
}
html[data-ui="v3"][data-theme="dark"] .app-topbar {
  background: rgba(18, 22, 28, .9) !important;
  border-bottom-color: var(--v3-line) !important;
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar { background: #0E1217 !important; }
html[data-ui="v3"][data-theme="dark"] .card,
html[data-ui="v3"][data-theme="dark"] .hk-card { background: var(--v3-surface) !important; }
html[data-ui="v3"][data-theme="dark"] .card-header { border-bottom-color: var(--v3-line) !important; }
html[data-ui="v3"][data-theme="dark"] .table thead th { background: #161B22 !important; }
html[data-ui="v3"][data-theme="dark"] .table-hover tbody tr:hover > * { background: #171D25 !important; }
html[data-ui="v3"][data-theme="dark"] .hk-kpi .hk-ico { background: var(--v3-sunken) !important; color: var(--v3-ink-2) !important; }
html[data-ui="v3"][data-theme="dark"] .navbar-brand strong { color: var(--v3-ink) !important; }
html[data-ui="v3"][data-theme="dark"] .app-topbar .btn-warning {
  background: var(--v3-surface) !important;
  color: var(--v3-ink) !important;
  border-color: var(--v3-line-strong) !important;
}

/* ============================================================
   7. 页面级收敛：跟卖上架（先把「胶囊森林」压回工具条）
   ============================================================ */
.v3-only { display: none; }
html[data-ui="v3"] .v3-page-head { display: flex; align-items: flex-end; gap: 16px; margin: 0 0 14px; }
html[data-ui="v3"] .v3-page-head h1 {
  margin: 0; font-size: 22px; line-height: 30px; font-weight: 650; letter-spacing: -.015em;
}
html[data-ui="v3"] .v3-page-head .v3-sub { font-size: 12.5px; color: var(--v3-ink-2); margin-top: 2px; }

html[data-ui="v3"] .fs-chip,
html[data-ui="v3"] .fs-qsub,
html[data-ui="v3"] .fs-prog {
  height: 28px !important;
  padding: 0 9px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  font-weight: 500;
  border-color: var(--v3-line) !important;
  color: var(--v3-ink-2) !important;
  background: #fff !important;
}
html[data-ui="v3"] .fs-chip.on,
html[data-ui="v3"] .fs-qsub.on {
  background: var(--v3-brand-soft) !important;
  border-color: var(--v3-brand-line) !important;
  color: var(--v3-brand-hover) !important;
  font-weight: 600 !important;
}
html[data-ui="v3"] .fs-chip:hover,
html[data-ui="v3"] .fs-qsub:hover,
html[data-ui="v3"] .fs-prog:hover { border-color: var(--v3-line-strong) !important; color: var(--v3-ink) !important; }
html[data-ui="v3"] .fs-chip-glabel {
  font-size: 11px !important;
  color: var(--v3-ink-3) !important;
  border-left: 0 !important;
  padding-left: 0 !important;
  margin-left: 6px !important;
}
html[data-ui="v3"] #fs-pre .filter-bar { gap: 8px !important; row-gap: 6px !important; }
html[data-ui="v3"] #fs-pre .filter-bar .btn { height: 28px; padding: 0 9px; font-size: 12px; border-radius: 6px; }
html[data-ui="v3"] #fs-pre .filter-bar .badge { font-size: 11px; }
html[data-ui="v3"] .fs-badge-pub { background: #EDF2FE !important; color: #1D4ED8 !important; }
html[data-ui="v3"] .fs-link:hover { color: var(--v3-brand) !important; }
html[data-ui="v3"] #fs-pre .table-sm td,
html[data-ui="v3"] #fs-pre .table-sm th { padding: 6px 10px !important; }
html[data-ui="v3"] #fs-pre table thead th { color: var(--v3-ink-3) !important; font-size: 11.5px !important; }
html[data-ui="v3"] .fs-tgroup { border-right: 0 !important; padding-right: 0 !important; }
html[data-ui="v3"] .fs-margin-hint { border-radius: 8px !important; }

/* ============================================================
   8. 命令面板 + Toast（ui-v3.js）
   ============================================================ */
html[data-ui="v3"] .v3-search-btn { margin-right: 2px; }
.v3-palette {
  position: fixed; inset: 0; z-index: 2200;
  display: flex; align-items: flex-start; justify-content: center;
  padding: 11vh 16px 16px;
  background: rgba(16, 24, 40, .38);
  backdrop-filter: blur(4px);
}
.v3-palette[hidden] { display: none; }
.v3-pal-panel {
  width: min(640px, 94vw);
  background: #fff;
  border: 1px solid rgba(16, 24, 40, .08);
  border-radius: 14px;
  box-shadow: 0 28px 70px rgba(16, 24, 40, .28), 0 4px 12px rgba(16, 24, 40, .08);
  overflow: hidden;
  animation: v3pal .14s ease-out;
}
@keyframes v3pal { from { opacity: 0; transform: translateY(-6px) scale(.99); } }
.v3-pal-input {
  display: flex; align-items: center; gap: 10px;
  padding: 13px 15px;
  border-bottom: 1px solid #F0F1F4;
  color: #6B7280;
}
.v3-pal-input input {
  flex: 1; border: 0; outline: 0; background: transparent;
  font: 400 14px/20px Inter, "Noto Sans CJK SC", "PingFang SC", sans-serif;
  color: #14161A;
}
.v3-pal-input input::placeholder { color: #9CA3AF; }
.v3-pal-input kbd {
  font: 600 10px Inter, sans-serif; color: #9CA3AF;
  border: 1px solid #E7E9ED; border-bottom-width: 2px;
  border-radius: 4px; padding: 1px 4px;
}
.v3-pal-list { max-height: 52vh; overflow-y: auto; padding: 6px; }
.v3-pal-group {
  font-size: 11px; font-weight: 600; letter-spacing: .05em;
  color: #9CA3AF; padding: 8px 9px 4px;
}
.v3-pal-row {
  display: flex; align-items: center; gap: 9px;
  padding: 8px 9px; border-radius: 8px;
  text-decoration: none; color: #14161A;
}
.v3-pal-row:hover, .v3-pal-row.on { background: #EAF4F6; }
.v3-pal-ico {
  width: 26px; height: 26px; border-radius: 7px;
  background: #F2F4F6; color: #5B6270;
  display: grid; place-items: center; flex: 0 0 auto;
}
.v3-pal-ico svg { width: 14px; height: 14px; }
.v3-pal-label { font-size: 12.5px; font-weight: 500; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v3-pal-hint { margin-left: auto; font-size: 11px; color: #9CA3AF; white-space: nowrap; }
.v3-pal-empty { padding: 29px 16px; text-align: center; font-size: 12.5px; color: #6B7280; }
.v3-pal-empty span { display: block; font-size: 11px; color: #9CA3AF; margin-top: 4px; }
.v3-pal-foot {
  display: flex; gap: 14px; padding: 8px 14px;
  border-top: 1px solid #F0F1F4; background: #FAFBFC;
  font-size: 11px; color: #9CA3AF;
}

.v3-toast-wrap {
  position: fixed; right: 20px; bottom: 20px; z-index: 2300;
  display: flex; flex-direction: column; gap: 8px;
}
.v3-toast {
  position: relative; width: 348px; max-width: calc(100vw - 32px);
  display: flex; align-items: center; gap: 10px;
  padding: 11px 12px 12px;
  background: #17191D; color: #fff;
  border-radius: 10px;
  box-shadow: 0 16px 40px rgba(16, 24, 40, .28);
  overflow: hidden;
  animation: v3toast .16s ease-out;
}
@keyframes v3toast { from { opacity: 0; transform: translateY(8px); } }
.v3-toast.out { opacity: 0; transform: translateY(6px); transition: .18s ease-in; }
.v3-toast-main { min-width: 0; }
.v3-toast-title { font-size: 12.5px; font-weight: 600; }
.v3-toast-desc { font-size: 11px; color: #B7BDC7; margin-top: 2px; }
.v3-toast-undo {
  margin-left: auto; flex: 0 0 auto;
  border: 0; background: transparent; color: #6FD3C4;
  font-size: 12px; font-weight: 650; padding: 4px 6px; border-radius: 5px;
}
.v3-toast-undo:hover { background: rgba(255, 255, 255, .08); }
.v3-toast-x {
  border: 0; background: transparent; color: #8A94A3;
  font-size: 16px; line-height: 1; padding: 2px 4px; border-radius: 4px;
}
.v3-toast-x:hover { color: #fff; }
.v3-toast-bar {
  position: absolute; left: 0; bottom: 0; height: 2px; width: 100%;
  background: #2E93A8; transform-origin: left;
  animation: v3bar linear forwards;
}
@keyframes v3bar { from { transform: scaleX(1); } to { transform: scaleX(0); } }

html[data-ui="v3"][data-theme="dark"] .v3-pal-panel { background: #12161C; border-color: #232A33; }
html[data-ui="v3"][data-theme="dark"] .v3-pal-input { border-bottom-color: #1B2129; color: #8A94A3; }
html[data-ui="v3"][data-theme="dark"] .v3-pal-input input { color: #E6E9EE; }
html[data-ui="v3"][data-theme="dark"] .v3-pal-row { color: #E6E9EE; }
html[data-ui="v3"][data-theme="dark"] .v3-pal-row:hover,
html[data-ui="v3"][data-theme="dark"] .v3-pal-row.on { background: #12262B; }
html[data-ui="v3"][data-theme="dark"] .v3-pal-ico { background: #1A2028; color: #AAB3C0; }
html[data-ui="v3"][data-theme="dark"] .v3-pal-foot { background: #0E1217; border-top-color: #1B2129; }

/* ============================================================
   9. 首页 KPI：六卡 → 一条指标带（不改模板结构，只用栅格）
   ============================================================ */
html[data-ui="v3"] #db-kpis {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 16px !important;
  background: var(--v3-line);
  border: 1px solid var(--v3-line);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
html[data-ui="v3"] #db-kpis > div {
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
  max-width: none !important;
  flex: none !important;
}
html[data-ui="v3"] #db-kpis .hk-kpi {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
  height: 100%;
}
html[data-ui="v3"] #db-kpis .hk-kpi:hover { background: #FAFBFB !important; }
html[data-ui="v3"] #db-kpis .hk-kpi .card-body { padding: 14px 16px !important; }
@media (max-width: 1199.98px) {
  html[data-ui="v3"] #db-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  html[data-ui="v3"] #db-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html[data-ui="v3"] #db-kpis .hk-kpi .card-body { padding: 11px 12px !important; }
}

/* ---------- 暗色补丁：v3 自有组件 ---------- */
html[data-ui="v3"][data-theme="dark"] #db-kpis { background: var(--v3-line) !important; border-color: var(--v3-line) !important; }
html[data-ui="v3"][data-theme="dark"] #db-kpis .hk-kpi { background: var(--v3-surface) !important; }
html[data-ui="v3"][data-theme="dark"] #db-kpis .hk-kpi:hover { background: #171D25 !important; }
html[data-ui="v3"][data-theme="dark"] .hk-kpi .hk-ico { background: #1A2028 !important; color: #AAB3C0 !important; }
html[data-ui="v3"][data-theme="dark"] .hk-alert.red {
  background: #2A1514 !important; border-color: #5A2A26 !important; color: #F3B4AE !important;
}
html[data-ui="v3"][data-theme="dark"] .hk-alert.yellow {
  background: #2A2010 !important; border-color: #5A4A1E !important; color: #F0C97A !important;
}
html[data-ui="v3"][data-theme="dark"] .btn-outline-secondary {
  background: var(--v3-surface) !important;
  color: var(--v3-ink) !important;
  border-color: var(--v3-line-strong) !important;
}
html[data-ui="v3"][data-theme="dark"] .btn-outline-secondary:hover { background: var(--v3-sunken) !important; }
html[data-ui="v3"][data-theme="dark"] .btn-outline-secondary.active {
  background: var(--v3-brand-soft) !important;
  border-color: var(--v3-brand-line) !important;
  color: #5EC8D8 !important;
}
html[data-ui="v3"][data-theme="dark"] .btn-group .btn { color: var(--v3-ink) !important; }
html[data-ui="v3"][data-theme="dark"] .form-control,
html[data-ui="v3"][data-theme="dark"] .form-select {
  background: var(--v3-surface) !important;
  color: var(--v3-ink) !important;
  border-color: var(--v3-line-strong) !important;
}
html[data-ui="v3"][data-theme="dark"] .app-topbar .btn-warning { background: var(--v3-surface) !important; color: var(--v3-ink) !important; }
html[data-ui="v3"][data-theme="dark"] .hk-chip { background: #1A2028 !important; color: #AAB3C0 !important; }

/* 顶栏 v3 切换（可一键回退经典） */
html[data-ui="v3"] .v3-ui-switch {
  height: 22px; padding: 0 7px; margin-right: 2px;
  border: 1px solid var(--v3-brand-line); border-radius: 6px;
  background: var(--v3-brand-soft); color: var(--v3-brand-hover);
  font: 700 11px/1 Inter, sans-serif; letter-spacing: .04em;
  cursor: pointer;
}
html[data-ui="v3"] .v3-ui-switch:hover { background: var(--v3-brand-line); }
html[data-ui="v3"][data-theme="dark"] .v3-ui-switch {
  background: var(--v3-brand-soft); color: #5EC8D8; border-color: var(--v3-brand-line);
}

/* ============================================================
   10. 保存视图 + 载入骨架（跟卖页）
   ============================================================ */
html[data-ui="v3"] .v3-views {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  margin: 0 0 8px; font-size: 12px;
}
html[data-ui="v3"] .v3-views .vl {
  font-size: 11px; font-weight: 600; letter-spacing: .04em;
  color: var(--v3-ink-3); margin-right: 2px;
}
html[data-ui="v3"] .v3-view {
  height: 26px; padding: 0 8px; border-radius: 6px;
  border: 1px solid var(--v3-line); background: #fff;
  color: var(--v3-ink-2); font-size: 11.5px; font-weight: 500;
  display: inline-flex; align-items: center; gap: 5px; cursor: pointer;
}
html[data-ui="v3"] .v3-view:hover { border-color: var(--v3-line-strong); color: var(--v3-ink); }
html[data-ui="v3"] .v3-view.on {
  background: var(--v3-brand-soft); border-color: var(--v3-brand-line);
  color: var(--v3-brand-hover); font-weight: 600;
}
html[data-ui="v3"] .v3-view .x {
  color: var(--v3-ink-4); font-size: 12px; line-height: 1;
  padding: 0 1px; border-radius: 3px;
}
html[data-ui="v3"] .v3-view .x:hover { color: var(--v3-danger, #B3261E); background: #FBEDEB; }
html[data-ui="v3"] .v3-view-add {
  border-style: dashed; background: transparent; color: var(--v3-brand-hover);
}
html[data-ui="v3"] .v3-view-form { display: inline-flex; align-items: center; gap: 4px; }
html[data-ui="v3"] .v3-view-form input {
  height: 26px; width: 150px; padding: 0 8px; border-radius: 6px;
  border: 1px solid var(--v3-line-strong); font-size: 11.5px; outline: 0;
}
html[data-ui="v3"] .v3-view-form input:focus { border-color: var(--v3-brand); box-shadow: 0 0 0 3px rgba(15,95,112,.12); }

/* 载入骨架 */
html[data-ui="v3"] .v3-skel td { height: 48px; }
html[data-ui="v3"] .v3-skel .b {
  height: 10px; border-radius: 4px;
  background: linear-gradient(90deg, #F0F1F4 25%, #F7F8FA 37%, #F0F1F4 63%);
  background-size: 400% 100%; animation: v3sk 1.3s ease infinite;
}
@keyframes v3sk { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
html[data-ui="v3"][data-theme="dark"] .v3-view { background: var(--v3-surface); }
html[data-ui="v3"][data-theme="dark"] .v3-skel .b {
  background: linear-gradient(90deg, #1A2028 25%, #222A34 37%, #1A2028 63%);
  background-size: 400% 100%;
}

/* 空态 */
html[data-ui="v3"] .v3-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 5px; padding: 34px 16px 38px; text-align: center;
}
html[data-ui="v3"] .v3-empty .ico {
  width: 40px; height: 40px; border-radius: 10px; background: var(--v3-sunken);
  color: var(--v3-ink-4); display: grid; place-items: center; margin-bottom: 4px;
}
html[data-ui="v3"] .v3-empty .ico svg { width: 18px; height: 18px; }
html[data-ui="v3"] .v3-empty b { font-size: 12.5px; font-weight: 600; color: var(--v3-ink); }
html[data-ui="v3"] .v3-empty span { font-size: 11.5px; color: var(--v3-ink-3); max-width: 380px; line-height: 1.6; }
html[data-ui="v3"] .v3-empty a {
  margin-top: 4px; font-size: 11.5px; font-weight: 600; color: var(--v3-brand-hover);
  text-decoration: none; border-bottom: 1px solid var(--v3-brand-line);
}

/* 跟卖工具条：一主 + 次级，彩色按钮降噪（保留危险动作的语义） */
html[data-ui="v3"] #fs-pre .filter-bar .btn-warning {
  background: #fff !important;
  color: var(--v3-ink) !important;
  border: 1px solid var(--v3-line-strong) !important;
  box-shadow: 0 1px 2px rgba(16,24,40,.04) !important;
}
html[data-ui="v3"] #fs-pre .filter-bar .btn-warning:hover { background: var(--v3-sunken) !important; }
html[data-ui="v3"] #fs-pre .filter-bar .btn-outline-danger {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--v3-ink-2) !important;
}
html[data-ui="v3"] #fs-pre .filter-bar .btn-outline-danger:hover {
  background: #FBEDEB !important;
  border-color: #F1CFCA !important;
  color: #B3261E !important;
}
html[data-ui="v3"] #fs-pre .filter-bar .btn-outline-danger.ms-auto {
  border-color: var(--v3-line) !important;
}

/* 批量操作浮条 */
html[data-ui="v3"] .v3-bulk {
  position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%);
  z-index: 2100; display: flex; align-items: center; gap: 6px;
  padding: 7px 9px 7px 14px; border-radius: 10px;
  background: #17191D; color: #fff; font-size: 12px;
  box-shadow: 0 16px 40px rgba(16,24,40,.28);
}
html[data-ui="v3"] .v3-bulk[hidden] { display: none; }
html[data-ui="v3"] .v3-bulk .cnt { font-weight: 600; }
html[data-ui="v3"] .v3-bulk .rule { width: 1px; height: 16px; background: rgba(255,255,255,.16); }
html[data-ui="v3"] .v3-bulk .bb {
  height: 26px; padding: 0 9px; border: 0; border-radius: 6px;
  background: transparent; color: #D5DAE0; font-size: 11.5px; font-weight: 550;
}
html[data-ui="v3"] .v3-bulk .bb:hover { background: rgba(255,255,255,.10); color: #fff; }
html[data-ui="v3"] .v3-bulk .bb.danger { color: #F3B4AE; }
html[data-ui="v3"] .v3-bulk .bb.danger:hover { background: rgba(179,38,30,.28); color: #fff; }
html[data-ui="v3"] .v3-bulk .bb.ghost { color: #AAB3C0; }

/* 首页行动清单 */
html[data-ui="v3"] .v3-todo {
  background: var(--v3-surface);
  border: 1px solid var(--v3-line);
  border-radius: 12px;
  margin: 0 0 16px;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
  overflow: hidden;
}
html[data-ui="v3"] .v3-todo[hidden] { display: none; }
html[data-ui="v3"] .v3-todo-h {
  display: flex; align-items: center; gap: 8px;
  padding: 11px 16px; border-bottom: 1px solid var(--v3-line-2);
  font-size: 13px;
}
html[data-ui="v3"] .v3-todo-h .t { font-weight: 600; }
html[data-ui="v3"] .v3-todo-h .n {
  min-width: 18px; height: 18px; padding: 0 5px; border-radius: 5px;
  background: var(--v3-sunken); color: var(--v3-ink-2);
  font-size: 11px; font-weight: 700; display: inline-grid; place-items: center;
}
html[data-ui="v3"] .v3-todo-h .hint { margin-left: auto; font-size: 11px; color: var(--v3-ink-3); }
html[data-ui="v3"] .v3-todo-body #db-alerts { margin: 0 !important; gap: 0 !important; }
html[data-ui="v3"] .v3-todo .hk-alert {
  border: 0 !important;
  border-top: 1px solid var(--v3-line-2) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--v3-ink) !important;
  padding: 11px 16px !important;
  font-size: 12.5px !important;
  align-items: flex-start;
}
html[data-ui="v3"] .v3-todo .hk-alert:first-child { border-top: 0 !important; }
html[data-ui="v3"] .v3-todo .hk-alert .bi { color: var(--v3-ink-3); font-size: 15px !important; margin-top: 1px; }
html[data-ui="v3"] .v3-todo .hk-alert.red .bi { color: #B3261E; }
html[data-ui="v3"] .v3-todo .hk-alert.yellow .bi { color: #A65A00; }
html[data-ui="v3"] .v3-todo .db-alert-x { color: var(--v3-ink-4); }
html[data-ui="v3"] .v3-todo .db-alert-x:hover { color: var(--v3-ink); }
html[data-ui="v3"][data-theme="dark"] .v3-todo { background: var(--v3-surface); }

/* 跟卖表：列优先级（1366/1280 不横滚；信息按需展开） */
@media (max-width: 1399.98px) {
  html[data-ui="v3"] #fs-pre table th:nth-child(5), html[data-ui="v3"] #fs-pre table td:nth-child(5), /* Barcode */
  html[data-ui="v3"] #fs-pre table th:nth-child(7), html[data-ui="v3"] #fs-pre table td:nth-child(7)  /* 官方尺寸 */ { display: none !important; }
}
@media (max-width: 1279.98px) {
  html[data-ui="v3"] #fs-pre table th:nth-child(6), html[data-ui="v3"] #fs-pre table td:nth-child(6), /* 件数 */
  html[data-ui="v3"] #fs-pre table th:nth-child(4), html[data-ui="v3"] #fs-pre table td:nth-child(4)  /* PLID */ { display: none !important; }
}

/* 行动清单：去处理 */
html[data-ui="v3"] .v3-todo .v3-todo-go {
  margin-left: auto; margin-top: 1px;
  font-size: 11.5px; font-weight: 600; white-space: nowrap;
  color: var(--v3-brand-hover); text-decoration: none;
  border-bottom: 1px solid transparent; padding-bottom: 1px;
}
html[data-ui="v3"] .v3-todo .v3-todo-go:hover { border-bottom-color: var(--v3-brand-line); }
html[data-ui="v3"][data-theme="dark"] .v3-todo .v3-todo-go { color: #5EC8D8; }

/* 暗色：跟卖工具条与 toast 的可读性 */
html[data-ui="v3"][data-theme="dark"] #fs-pre .filter-bar .btn-warning {
  background: var(--v3-surface) !important;
  color: var(--v3-ink) !important;
  border-color: var(--v3-line-strong) !important;
}
html[data-ui="v3"][data-theme="dark"] #fs-pre .filter-bar .btn-warning:hover { background: var(--v3-sunken) !important; }
html[data-ui="v3"][data-theme="dark"] .btn-primary {
  background: #14788C !important;
  border-color: #14788C !important;
  color: #fff !important;
}
html[data-ui="v3"][data-theme="dark"] .btn-primary:hover { background: #1A8A9E !important; }
html[data-ui="v3"][data-theme="dark"] .toast,
html[data-ui="v3"][data-theme="dark"] .toast-header {
  background: #12161C !important;
  color: #E6E9EE !important;
  border-color: #232A33 !important;
}
html[data-ui="v3"][data-theme="dark"] .toast-body { color: #C9D0DA !important; }
html[data-ui="v3"][data-theme="dark"] .toast-header small { color: #8A94A3 !important; }

/* 键盘行导航 + 错误态 */
html[data-ui="v3"] #fs-pre-body tr.v3-row-active > td {
  background: #F3F9F8 !important;
  box-shadow: inset 2px 0 0 var(--v3-brand);
}
html[data-ui="v3"][data-theme="dark"] #fs-pre-body tr.v3-row-active > td {
  background: #12262B !important;
}
html[data-ui="v3"] .v3-error {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 5px; padding: 30px 16px 34px; text-align: center;
}
html[data-ui="v3"] .v3-error .ico {
  width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center;
  background: #FBEDEB; color: #B3261E; font-weight: 700; font-size: 18px; margin-bottom: 3px;
}
html[data-ui="v3"] .v3-error b { font-size: 12.5px; font-weight: 600; color: var(--v3-ink); }
html[data-ui="v3"] .v3-error span { font-size: 11px; color: var(--v3-ink-3); max-width: 480px; line-height: 1.6; }
html[data-ui="v3"] .v3-error .btn-retry {
  margin-top: 5px; height: 27px; padding: 0 11px; border-radius: 7px;
  border: 1px solid var(--v3-line-strong); background: #fff; color: var(--v3-ink);
  font-size: 11.5px; font-weight: 600;
}
html[data-ui="v3"][data-theme="dark"] .v3-error .btn-retry { background: var(--v3-surface); color: var(--v3-ink); }

/* ============================================================
   11. 移动端：顶栏 / 抽屉 / 内容
   ============================================================ */
html[data-ui="v3"] .v3-menu-btn {
  display: none;
  width: 30px; height: 30px; margin-left: 2px;
  border: 0; border-radius: 8px; background: transparent;
  color: var(--v3-ink-2); place-items: center;
}
html[data-ui="v3"] .v3-menu-btn:hover { background: var(--v3-sunken); color: var(--v3-ink); }

@media (max-width: 767.98px) {
  html[data-ui="v3"] .app-topbar { height: 52px !important; padding: 0 10px !important; gap: 4px !important; }
  html[data-ui="v3"] .app-topbar .navbar-brand strong { font-size: 13px !important; }
  html[data-ui="v3"] .app-topbar .navbar-brand > span { width: 26px !important; height: 26px !important; font-size: 12px !important; }
  html[data-ui="v3"] .app-topbar .badge,
  html[data-ui="v3"] .app-topbar .app-avatar,
  html[data-ui="v3"] .v3-ui-switch { display: none !important; }
  html[data-ui="v3"] .app-topbar .topbar-icon-btn { width: 30px; height: 30px; }
  html[data-ui="v3"] .app-content { padding: 14px 12px 28px !important; }
  html[data-ui="v3"] .v3-menu-btn { display: grid; }

  html[data-ui="v3"] .v3-todo .hk-alert { flex-wrap: wrap; row-gap: 4px; }
  html[data-ui="v3"] .v3-todo-go { margin-left: auto; }

  html[data-ui="v3"] .od-top { flex-wrap: wrap; }
  html[data-ui="v3"] .od-actions { width: 100%; margin-left: 0; margin-top: 8px; }
  html[data-ui="v3"] .od-sum { grid-template-columns: 1fr 1fr !important; }
  html[data-ui="v3"] .od-grid { grid-template-columns: 1fr !important; }
  html[data-ui="v3"] .od-prod { flex-wrap: wrap; }
  html[data-ui="v3"] .od-prod .price { margin-left: 68px; text-align: left; }

  html[data-ui="v3"] .v3-views { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
  html[data-ui="v3"] .v3-view { flex: 0 0 auto; }

  html[data-ui="v3"] .v3-bulk {
    left: 12px; right: 12px; bottom: 12px; transform: none; width: auto;
    justify-content: center; flex-wrap: wrap; gap: 4px;
  }
  html[data-ui="v3"] .v3-bulk .rule { display: none; }
}

@media (max-width: 480px) {
  html[data-ui="v3"] .od-sum { grid-template-columns: 1fr !important; }
  html[data-ui="v3"] .od-sum > div { border-left: 0 !important; border-top: 1px solid var(--v3-line-2); }
  html[data-ui="v3"] .od-sum > div:first-child { border-top: 0; }
  html[data-ui="v3"] .od-prod .price { margin-left: 0; }
}

/* 抽屉 */
html[data-ui="v3"].v3-drawer-open,
html[data-ui="v3"].v3-drawer-open body { overflow: hidden; }
html[data-ui="v3"] .v3-drawer { position: fixed; inset: 0; z-index: 2500; display: none; }
html[data-ui="v3"] .v3-drawer.open { display: block; }
html[data-ui="v3"] .v3-drawer-bg {
  position: absolute; inset: 0; background: rgba(16, 24, 40, .45);
  backdrop-filter: blur(2px);
}
html[data-ui="v3"] .v3-drawer-panel {
  position: absolute; left: 0; top: 0; bottom: 0;
  width: 282px; max-width: 86vw;
  display: flex; flex-direction: column;
  background: #FCFCFD; border-right: 1px solid var(--v3-line);
  box-shadow: 12px 0 40px rgba(16, 24, 40, .18);
  transform: translateX(-102%); transition: transform .2s ease-out;
}
html[data-ui="v3"] .v3-drawer.open .v3-drawer-panel { transform: none; }
html[data-ui="v3"] .v3-drawer-h {
  height: 52px; flex: 0 0 auto; display: flex; align-items: center; gap: 9px;
  padding: 0 14px; border-bottom: 1px solid var(--v3-line);
}
html[data-ui="v3"] .v3-drawer-h .logo {
  width: 26px; height: 26px; border-radius: 7px; color: #fff;
  background: linear-gradient(150deg, #14788C, #0B4A57);
  display: grid; place-items: center; font-size: 12px; font-weight: 700;
}
html[data-ui="v3"] .v3-drawer-h b { font-size: 13.5px; font-weight: 650; }
html[data-ui="v3"] .v3-drawer-x {
  margin-left: auto; width: 30px; height: 30px; border: 0; border-radius: 7px;
  background: transparent; color: var(--v3-ink-2); font-size: 18px; line-height: 1;
}
html[data-ui="v3"] .v3-drawer-x:hover { background: var(--v3-sunken); }
html[data-ui="v3"] .v3-drawer-body { flex: 1 1 auto; overflow-y: auto; padding: 6px 0 12px; }
html[data-ui="v3"] .v3-drawer .app-sidebar {
  position: static !important; height: auto !important; width: 100% !important;
  max-width: none !important; border: 0 !important; background: transparent !important;
  display: flex !important; flex-direction: column;
}
html[data-ui="v3"] .v3-drawer .nav-link { margin: 1px 8px !important; height: 34px; }
html[data-ui="v3"] .v3-drawer-f {
  flex: 0 0 auto; padding: 10px 14px; border-top: 1px solid var(--v3-line);
  font-size: 11.5px;
}
html[data-ui="v3"] .v3-drawer-f a { color: var(--v3-ink-3); text-decoration: none; }
html[data-ui="v3"] .v3-drawer-f a:hover { color: var(--v3-brand-hover); }
html[data-ui="v3"][data-theme="dark"] .v3-drawer-panel { background: #0E1217; }

/* 手机端：上架起量仪表收起高度再压一档 */
@media (max-width: 767.98px) {
  html[data-ui="v3"] #co-wrap.co-collapsed { max-height: 190px; }
}

/* ============================================================
   14. 玻璃质感（2026-10-19 用户：深色导轨效果不好，要透明玻璃/高级感）
   参考：Fluent Mica/Acrylic（持久层用高遮盖的着色玻璃，浮层才用高透明）
        + Apple HIG Materials/Vibrancy（大表面用厚材质，文字用 vibrancy 保可读）
        + visionOS 玻璃的「高光边 + 内外双层阴影」
   约束：只给壳层（侧栏/顶栏/抽屉）上 blur；卡片保持实底，避免大面积 backdrop-filter 掉帧
   ============================================================ */
html[data-ui="v3"]:not([data-theme="dark"]) body {
  background:
    radial-gradient(760px 560px at -6% 6%, rgba(20, 160, 170, .38), transparent 62%),
    radial-gradient(620px 520px at 14% 108%, rgba(92, 108, 220, .22), transparent 62%),
    radial-gradient(760px 520px at 104% 2%, rgba(122, 132, 255, .13), transparent 58%),
    radial-gradient(820px 560px at 58% 116%, rgba(198, 164, 110, .12), transparent 60%),
    #F2F5F6 !important;
  background-attachment: fixed;
}

/* 侧栏：磨砂玻璃 + 顶部高光 + 右缘投影 */
html[data-ui="v3"] .app-sidebar {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E"),
    linear-gradient(180deg, rgba(250, 252, 252, .66) 0%, rgba(236, 244, 245, .50) 100%) !important;
  backdrop-filter: blur(34px) saturate(200%) !important;
  -webkit-backdrop-filter: blur(26px) saturate(180%) !important;
  border-right: 1px solid rgba(255, 255, 255, .86) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .98),
    inset -1px 0 0 rgba(16, 24, 40, .05),
    inset 0 24px 48px -32px rgba(46, 147, 168, .20),
    14px 0 44px rgba(16, 24, 40, .09) !important;
}
html[data-ui="v3"] .app-sidebar .nav-section {
  color: #5B6672 !important;
  letter-spacing: .08em;
}
html[data-ui="v3"] .app-sidebar .nav-link {
  color: #37424C !important;
  border: 0 !important;
}
html[data-ui="v3"] .app-sidebar .nav-link .bi { color: #66727E; }
html[data-ui="v3"] .app-sidebar .nav-link:hover {
  background: rgba(255, 255, 255, .55) !important;
  color: #14161A !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .70);
}
html[data-ui="v3"] .app-sidebar .nav-link:hover .bi { color: #0F5F70; }
html[data-ui="v3"] .app-sidebar .nav-link.active {
  background: rgba(255, 255, 255, .96) !important;
  color: #0B4A57 !important;
  box-shadow:
    inset 0 0 0 1px rgba(15, 95, 112, .12),
    inset 2px 0 0 #0F5F70,
    0 1px 2px rgba(16, 24, 40, .06),
    0 10px 24px rgba(16, 24, 40, .08) !important;
}
html[data-ui="v3"] .app-sidebar .nav-link.active .bi { color: #0F5F70 !important; }
html[data-ui="v3"] .app-sidebar .nav-link .badge {
  background: rgba(15, 95, 112, .10) !important;
  color: #0B4A57 !important;
}
html[data-ui="v3"] .app-sidebar::-webkit-scrollbar { width: 8px; }
html[data-ui="v3"] .app-sidebar::-webkit-scrollbar-thumb {
  background: rgba(16, 24, 40, .12); border-radius: 4px;
}
html[data-ui="v3"] .app-sidebar::-webkit-scrollbar-track { background: transparent; }

/* 顶栏：整条磨砂玻璃（不再切左右两段） */
html[data-ui="v3"]:not([data-theme="dark"]) .app-topbar {
  background: rgba(255, 255, 255, .52) !important;
  backdrop-filter: blur(30px) saturate(190%) !important;
  -webkit-backdrop-filter: blur(22px) saturate(180%) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .70) !important;
  box-shadow: 0 1px 0 rgba(16, 24, 40, .05), 0 12px 32px rgba(16, 24, 40, .05) !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .app-topbar::after { display: none; }
html[data-ui="v3"]:not([data-theme="dark"]) .app-topbar .navbar-brand strong {
  color: #14161A !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .app-topbar .navbar-brand > span {
  box-shadow: 0 1px 2px rgba(11, 74, 87, .30), inset 0 1px 0 rgba(255, 255, 255, .22) !important;
}

/* 卡片：实底 + 顶部高光 + 双层阴影（不上 blur，保性能/可读） */
html[data-ui="v3"] .card {
  background: linear-gradient(180deg, #FFFFFF 0%, #FDFEFE 100%) !important;
  border-color: rgba(228, 232, 237, .95) !important;
  box-shadow:
    0 1px 2px rgba(16, 24, 40, .05),
    0 14px 36px rgba(16, 24, 40, .05),
    inset 0 1px 0 #FFFFFF !important;
}
html[data-ui="v3"] .kpi-strip,
html[data-ui="v3"] #db-kpis {
  box-shadow:
    0 1px 2px rgba(16, 24, 40, .05),
    0 16px 40px rgba(16, 24, 40, .05),
    inset 0 1px 0 #FFFFFF !important;
}
html[data-ui="v3"] .btn-primary {
  background: linear-gradient(180deg, #14808F 0%, #0F5F70 100%) !important;
  border-color: #0F5F70 !important;
  box-shadow:
    0 1px 2px rgba(15, 95, 112, .38),
    inset 0 1px 0 rgba(255, 255, 255, .22) !important;
}
html[data-ui="v3"] .btn-primary:hover {
  background: linear-gradient(180deg, #0F6B7B 0%, #0B4A57 100%) !important;
}
html[data-ui="v3"] .table thead th {
  background: linear-gradient(180deg, #FAFBFC 0%, #F6F8F9 100%) !important;
}

/* 手机抽屉：同一套玻璃 */
html[data-ui="v3"] .v3-drawer-panel {
  background: linear-gradient(180deg, rgba(255, 255, 255, .84), rgba(255, 255, 255, .70)) !important;
  backdrop-filter: blur(28px) saturate(180%);
  -webkit-backdrop-filter: blur(28px) saturate(180%);
  border-right: 1px solid rgba(255, 255, 255, .80);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .90),
    16px 0 48px rgba(16, 24, 40, .18);
}
html[data-ui="v3"] .v3-drawer-h { border-bottom-color: rgba(16, 24, 40, .07); }
html[data-ui="v3"] .v3-drawer-h b { color: #14161A; }
html[data-ui="v3"] .v3-drawer-x { color: #5B6270; }
html[data-ui="v3"] .v3-drawer-x:hover { background: rgba(16, 24, 40, .06); color: #14161A; }
html[data-ui="v3"] .v3-drawer-f { border-top-color: rgba(16, 24, 40, .07); }
html[data-ui="v3"] .v3-drawer-f a { color: #5B6270; }
html[data-ui="v3"] .v3-drawer-f a:hover { color: #0B4A57; }
html[data-ui="v3"] .v3-drawer .app-sidebar {
  background: transparent !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: 0 !important;
  box-shadow: none !important;
}

/* 暗色：深色玻璃 */
html[data-ui="v3"][data-theme="dark"] body {
  background:
    radial-gradient(820px 520px at 4% -10%, rgba(46, 147, 168, .18), transparent 62%),
    radial-gradient(720px 480px at 104% 0%, rgba(94, 108, 220, .12), transparent 58%),
    #0B0E12 !important;
  background-attachment: fixed;
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E"),
    linear-gradient(180deg, rgba(18, 24, 30, .82), rgba(14, 18, 24, .70)) !important;
  border-right-color: rgba(255, 255, 255, .07) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .06),
    inset -1px 0 0 rgba(0, 0, 0, .30),
    12px 0 36px rgba(0, 0, 0, .28) !important;
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-section { color: rgba(255, 255, 255, .42) !important; }
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link { color: rgba(255, 255, 255, .70) !important; }
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link .bi { color: rgba(255, 255, 255, .46); }
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link:hover {
  background: rgba(255, 255, 255, .06) !important;
  color: #fff !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link.active {
  background: linear-gradient(90deg, rgba(46, 147, 168, .30), rgba(46, 147, 168, .10)) !important;
  color: #EAF7F8 !important;
  box-shadow:
    inset 0 0 0 1px rgba(94, 200, 216, .22),
    inset 2px 0 0 #2E93A8,
    0 2px 10px rgba(0, 0, 0, .25) !important;
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link.active .bi { color: #5EC8D8 !important; }
html[data-ui="v3"][data-theme="dark"] .app-topbar {
  background: rgba(18, 24, 30, .68) !important;
  backdrop-filter: blur(22px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(22px) saturate(160%) !important;
  border-bottom-color: rgba(255, 255, 255, .06) !important;
  box-shadow: 0 1px 0 rgba(0, 0, 0, .30), 0 12px 32px rgba(0, 0, 0, .20) !important;
}
html[data-ui="v3"][data-theme="dark"] .app-topbar .navbar-brand strong { color: #F2F7F8 !important; }
html[data-ui="v3"][data-theme="dark"] .card {
  background: linear-gradient(180deg, #141A21 0%, #12161C 100%) !important;
  border-color: #232A33 !important;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, .35),
    0 14px 36px rgba(0, 0, 0, .22),
    inset 0 1px 0 rgba(255, 255, 255, .04) !important;
}
html[data-ui="v3"][data-theme="dark"] .v3-drawer-panel {
  background: linear-gradient(180deg, rgba(18, 24, 30, .90), rgba(14, 18, 24, .82)) !important;
  border-right-color: rgba(255, 255, 255, .08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 16px 0 48px rgba(0, 0, 0, .40);
}
html[data-ui="v3"][data-theme="dark"] .v3-drawer-h { border-bottom-color: rgba(255, 255, 255, .08); }
html[data-ui="v3"][data-theme="dark"] .v3-drawer-h b { color: #F2F7F8; }
html[data-ui="v3"][data-theme="dark"] .v3-drawer-x { color: rgba(255, 255, 255, .60); }
html[data-ui="v3"][data-theme="dark"] .v3-drawer-f { border-top-color: rgba(255, 255, 255, .08); }
html[data-ui="v3"][data-theme="dark"] .v3-drawer-f a { color: rgba(255, 255, 255, .55); }



/* ============================================================
   15. 高级感的另一半：留白与字号（只在桌面生效，手机保持紧凑）
   ============================================================ */
@media (min-width: 768px) {
  html[data-ui="v3"] .app-content { padding: 26px 32px 40px !important; }
  html[data-ui="v3"] .hk-page-head h4,
  html[data-ui="v3"] .od-top h1,
  html[data-ui="v3"] .v3-page-head h1 {
    font-size: 24px !important; line-height: 32px !important; letter-spacing: -.02em;
  }
  html[data-ui="v3"] .card-header {
    padding: 14px 18px !important; font-size: 13.5px !important;
  }
  html[data-ui="v3"] .card-body { padding: 16px 18px !important; }
  html[data-ui="v3"] #db-kpis .hk-kpi .card-body { padding: 16px 18px !important; }
  html[data-ui="v3"] .hk-kpi .hk-num { font-size: 27px !important; }
  html[data-ui="v3"] .app-sidebar .nav-link {
    height: 34px !important; margin: 1px 10px !important; padding: 0 11px !important;
  }
  html[data-ui="v3"] .app-sidebar .nav-section {
    padding: 16px 18px 6px !important;
  }
  html[data-ui="v3"] .table tbody td { height: 50px; }
  html[data-ui="v3"] .btn { height: 33px; }
  html[data-ui="v3"] .btn-sm { height: 28px; }
}

/* iOS 对 fixed 背景支持差，手机改成随内容（视觉几乎无差） */
@media (max-width: 767.98px) {
  html[data-ui="v3"] body,
  html[data-ui="v3"][data-theme="dark"] body { background-attachment: scroll !important; }
}

/* ============================================================
   16. 最终主题 D：雾蓝玻璃（用户 2026-10-19 选定）
   - 冷蓝灰磨砂，不用青绿；钢蓝 #2F6FED 作为唯一强调色
   - 侧栏浅蓝玻璃、顶栏玻璃、卡片实底；暗色为深蓝玻璃
   ============================================================ */
html[data-ui="v3"] {
  --v3-canvas: #F2F6FC; --v3-surface: #FFFFFF; --v3-ink: #0F172A;
  --v3-ink-2: #5A6B80; --v3-ink-3: #8595A8;
  --v3-line: #E1E8F2; --v3-line-2: #EDF2F8;
  --v3-brand: #2F6FED; --v3-brand-hover: #1E56C8;
  --v3-brand-soft: #EDF3FE; --v3-brand-line: #D6E2FB;
  --erp-bg: #F2F6FC; --erp-card: #FFFFFF; --erp-fg: #0F172A;
  --erp-mut: #5A6B80; --erp-dim: #8595A8; --erp-bd: #E1E8F2; --erp-bd2: #EDF2F8;
  --erp-primary: #2F6FED; --erp-muted: #EDF2F8;
  --brand-primary: #2F6FED; --brand-primary-dark: #1E56C8;
  --bs-body-color: #0F172A; --bs-body-bg: #F2F6FC;
  --bs-card-color: #0F172A; --bs-card-bg: #FFFFFF;
  --radius: 12px; --radius-sm: 8px;
  --v3-ring: rgba(47, 111, 237, .28);
}
html[data-ui="v3"]:not([data-theme="dark"]) body {
  background:
    radial-gradient(820px 600px at 0% -10%, #E2EDFB 0%, rgba(242, 246, 252, 0) 62%),
    radial-gradient(720px 520px at 104% 4%, #E8EAFB 0%, rgba(242, 246, 252, 0) 58%),
    #F2F6FC !important;
  background-attachment: fixed;
  color: #0F172A !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar {
  background: linear-gradient(180deg, rgba(238, 245, 253, .74) 0%, rgba(224, 235, 249, .58) 100%) !important;
  backdrop-filter: blur(34px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(34px) saturate(180%) !important;
  border-right: 1px solid rgba(255, 255, 255, .85) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .95),
    inset -1px 0 0 rgba(16, 24, 40, .04),
    14px 0 44px rgba(30, 60, 110, .09) !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar .nav-section { color: #5E7089 !important; }
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar .nav-link { color: #334155 !important; }
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar .nav-link .bi { color: #64748B; }
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar .nav-link:hover {
  background: rgba(255, 255, 255, .60) !important;
  color: #0F172A !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .70);
}
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar .nav-link:hover .bi { color: #2F6FED; }
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar .nav-link.active {
  background: rgba(255, 255, 255, .96) !important;
  color: #1E56C8 !important;
  box-shadow:
    inset 2px 0 0 #2F6FED,
    inset 0 0 0 1px rgba(47, 111, 237, .14),
    0 1px 2px rgba(16, 24, 40, .06),
    0 10px 24px rgba(30, 60, 110, .10) !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar .nav-link.active .bi { color: #2F6FED !important; }
html[data-ui="v3"]:not([data-theme="dark"]) .app-sidebar .nav-link .badge {
  background: rgba(47, 111, 237, .10) !important; color: #1E56C8 !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .app-topbar {
  background: rgba(255, 255, 255, .56) !important;
  backdrop-filter: blur(30px) saturate(190%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(190%) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .72) !important;
  box-shadow: 0 1px 0 rgba(16, 24, 40, .04), 0 12px 32px rgba(30, 60, 110, .05) !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .app-topbar::after { display: none !important; }
html[data-ui="v3"]:not([data-theme="dark"]) .app-topbar .navbar-brand strong { color: #0F172A !important; }
html[data-ui="v3"]:not([data-theme="dark"]) .app-topbar .navbar-brand > span {
  background: linear-gradient(150deg, #3B82F6, #1E56C8) !important;
  box-shadow: 0 2px 10px rgba(30, 86, 200, .30) !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .card {
  background: linear-gradient(180deg, #FFFFFF 0%, #FDFEFF 100%) !important;
  border-color: #E1E8F2 !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 16px 40px rgba(30, 60, 110, .05) !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) #db-kpis {
  background: #FFFFFF !important;
  border-color: #E1E8F2 !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 16px 40px rgba(30, 60, 110, .05) !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) #db-kpis .hk-kpi { background: #FFFFFF !important; }
html[data-ui="v3"]:not([data-theme="dark"]) #db-kpis .hk-kpi:hover { background: #FAFCFF !important; }
html[data-ui="v3"]:not([data-theme="dark"]) .hk-kpi .hk-ico { background: #EDF3FE !important; color: #5A6B80 !important; }
html[data-ui="v3"]:not([data-theme="dark"]) .btn-primary {
  background: linear-gradient(180deg, #3B82F6, #2F6FED) !important;
  border-color: #2F6FED !important;
  box-shadow: 0 1px 2px rgba(30, 86, 200, .30), inset 0 1px 0 rgba(255, 255, 255, .20) !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .btn-primary:hover {
  background: linear-gradient(180deg, #2F6FED, #1E56C8) !important;
  border-color: #1E56C8 !important;
}
html[data-ui="v3"]:not([data-theme="dark"]) .table thead th {
  background: #F7FAFE !important; color: #5A6B80 !important;
}
html[data-ui="v3"] .v3-ui-switch {
  background: #EDF3FE !important; color: #1E56C8 !important; border-color: #D6E2FB !important;
}
html[data-ui="v3"] .v3-view.on {
  background: #EDF3FE !important; border-color: #D6E2FB !important; color: #1E56C8 !important;
}
html[data-ui="v3"] a:not(.btn):not(.nav-link):not(.dropdown-item) { color: #2F6FED; }
html[data-ui="v3"] a.text-danger { color: #D92D20 !important; }
html[data-ui="v3"] a.text-success { color: #0F7B4F !important; }
html[data-ui="v3"] :focus-visible { outline-color: rgba(47, 111, 237, .45) !important; }

/* 手机抽屉：同一块雾蓝玻璃 */
html[data-ui="v3"]:not([data-theme="dark"]) .v3-drawer-panel {
  background: linear-gradient(180deg, rgba(240, 246, 254, .88), rgba(226, 237, 251, .76)) !important;
  border-right: 1px solid rgba(255, 255, 255, .85);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), 16px 0 48px rgba(30, 60, 110, .16);
}
html[data-ui="v3"]:not([data-theme="dark"]) .v3-drawer-h { border-bottom-color: rgba(16, 24, 40, .07); }
html[data-ui="v3"]:not([data-theme="dark"]) .v3-drawer-h b { color: #0F172A; }
html[data-ui="v3"]:not([data-theme="dark"]) .v3-drawer-x { color: #5B6270; }
html[data-ui="v3"]:not([data-theme="dark"]) .v3-drawer-f { border-top-color: rgba(16, 24, 40, .07); }
html[data-ui="v3"]:not([data-theme="dark"]) .v3-drawer-f a { color: #5B6270; }

/* 暗色：深蓝玻璃，不再用青 */
html[data-ui="v3"][data-theme="dark"] body {
  background:
    radial-gradient(820px 600px at 0% -10%, rgba(47, 111, 237, .20), transparent 62%),
    radial-gradient(720px 520px at 104% 4%, rgba(94, 108, 220, .14), transparent 58%),
    #0B0F16 !important;
  background-attachment: fixed;
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar {
  background: linear-gradient(180deg, rgba(20, 30, 46, .82), rgba(14, 20, 32, .70)) !important;
  backdrop-filter: blur(30px) saturate(170%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(170%) !important;
  border-right: 1px solid rgba(255, 255, 255, .07) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 12px 0 40px rgba(0, 0, 0, .30) !important;
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-section { color: rgba(255, 255, 255, .42) !important; }
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link { color: rgba(255, 255, 255, .70) !important; }
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link .bi { color: rgba(255, 255, 255, .46); }
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link:hover {
  background: rgba(255, 255, 255, .06) !important; color: #fff !important;
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link.active {
  background: rgba(47, 111, 237, .22) !important; color: #EAF2FF !important;
  box-shadow: inset 2px 0 0 #60A5FA, inset 0 0 0 1px rgba(96, 165, 250, .26), 0 2px 12px rgba(0, 0, 0, .25) !important;
}
html[data-ui="v3"][data-theme="dark"] .app-sidebar .nav-link.active .bi { color: #93C5FD !important; }
html[data-ui="v3"][data-theme="dark"] .app-topbar {
  background: rgba(18, 24, 36, .68) !important;
  backdrop-filter: blur(30px) saturate(170%) !important;
  -webkit-backdrop-filter: blur(30px) saturate(170%) !important;
  border-bottom-color: rgba(255, 255, 255, .06) !important;
  box-shadow: 0 1px 0 rgba(0, 0, 0, .30), 0 12px 32px rgba(0, 0, 0, .20) !important;
}
html[data-ui="v3"][data-theme="dark"] .app-topbar .navbar-brand strong { color: #F2F7F8 !important; }
html[data-ui="v3"][data-theme="dark"] .card {
  background: linear-gradient(180deg, #141A23 0%, #12161C 100%) !important;
  border-color: #232A36 !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 14px 36px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .04) !important;
}
html[data-ui="v3"][data-theme="dark"] .btn-primary {
  background: linear-gradient(180deg, #3B82F6, #2F6FED) !important; border-color: #2F6FED !important;
}
html[data-ui="v3"][data-theme="dark"] .v3-drawer-panel {
  background: linear-gradient(180deg, rgba(20, 30, 46, .92), rgba(14, 20, 32, .86)) !important;
  border-right-color: rgba(255, 255, 255, .08);
}

/* ============================================================
   17. 竞价管理页：降噪与分层（2026-10-19 用户：这页太乱了）
   ============================================================ */
html[data-ui="v3"] .v3-reprice .app-content > .d-flex:first-child h4 {
  font-size: 24px !important; font-weight: 650; letter-spacing: -.02em;
}
html[data-ui="v3"] .v3-reprice .app-content > .d-flex:first-child .text-muted { font-size: 12.5px !important; }

/* 监控设置：默认一行摘要 */
html[data-ui="v3"] .v3-reprice .v3-mon {
  border: 1px solid var(--v3-line) !important;
  border-left: 1px solid var(--v3-line) !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .045), 0 10px 28px rgba(16, 24, 40, .035) !important;
}
html[data-ui="v3"] .v3-mon-sum {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 11px 14px;
}
html[data-ui="v3"] .v3-mon-title {
  font-size: 13px; font-weight: 650; color: var(--v3-ink);
  display: inline-flex; align-items: center; gap: 6px;
}
html[data-ui="v3"] .v3-mon-meta { font-size: 11.5px; color: var(--v3-ink-3); }
html[data-ui="v3"] .v3-mon-state {
  font-size: 10.5px; color: var(--v3-brand-hover) !important; background: var(--v3-brand-soft);
  padding: 2px 8px; border-radius: 999px;
}
html[data-ui="v3"] .v3-mon-controls {
  display: none !important; padding: 10px 14px 6px !important;
  border-top: 1px solid var(--v3-line-2); gap: 8px 10px !important;
}
html[data-ui="v3"] .v3-mon.open .v3-mon-controls { display: flex !important; }
html[data-ui="v3"] .v3-mon-hint { display: none !important; }
html[data-ui="v3"] .v3-mon.open .v3-mon-hint {
  display: block !important; padding: 0 14px 12px; margin-top: 0 !important;
}

/* 统一小按钮 */
html[data-ui="v3"] .v3-btn {
  height: 30px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--v3-line);
  background: #fff; color: var(--v3-ink-2); font-size: 12px; font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px; line-height: 1; white-space: nowrap;
}
html[data-ui="v3"] .v3-btn:hover { border-color: var(--v3-brand-line); color: var(--v3-brand-hover); background: var(--v3-brand-soft); }
html[data-ui="v3"] .v3-btn-primary { background: var(--v3-brand); border-color: var(--v3-brand); color: #fff; }
html[data-ui="v3"] .v3-btn-primary:hover { background: var(--v3-brand-hover); border-color: var(--v3-brand-hover); color: #fff; }

/* 统计条 */
html[data-ui="v3"] .v3-reprice .v3-stats {
  display: flex !important; flex-wrap: wrap; gap: 0 !important; padding: 0 !important;
  background: #fff !important; border: 1px solid var(--v3-line) !important;
  border-radius: 12px !important; overflow: hidden;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
html[data-ui="v3"] .v3-reprice .v3-stats > span {
  padding: 9px 13px; border-right: 1px solid var(--v3-line-2);
  font-size: 12px; color: var(--v3-ink-2); white-space: nowrap;
}
html[data-ui="v3"] .v3-reprice .v3-stats > span:last-child { border-right: 0; }
html[data-ui="v3"] .v3-reprice .v3-stats b { color: var(--v3-ink); font-variant-numeric: tabular-nums; }

/* 平台读回横幅：折叠 */
html[data-ui="v3"] .v3-reprice .v3-banner {
  background: #FFFAED; border: 1px solid #F1E3C4; border-radius: 10px;
  margin: 10px 12px; overflow: hidden;
}
html[data-ui="v3"] .v3-reprice .v3-banner summary {
  padding: 9px 12px; font-size: 12px; color: #8A5A00; cursor: pointer;
  list-style: none; display: flex; align-items: center; gap: 6px;
}
html[data-ui="v3"] .v3-reprice .v3-banner summary::-webkit-details-marker { display: none; }
html[data-ui="v3"] .v3-reprice .v3-banner-hint { margin-left: auto; color: #A9771B; font-size: 11px; }
html[data-ui="v3"] .v3-reprice .v3-banner-inner {
  border: 0 !important; background: transparent !important; margin: 0 !important;
  padding: 0 12px 10px !important; border-radius: 0 !important;
  font-size: 11.5px !important; color: #7A5A1E !important;
}

/* 工具条 */
html[data-ui="v3"] .v3-reprice .filter-bar {
  background: #fff; border: 1px solid var(--v3-line); border-radius: 12px;
  padding: 10px 12px !important; gap: 8px !important; margin-bottom: 12px !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
html[data-ui="v3"] .v3-reprice .filter-bar .btn {
  height: 30px; border-radius: 8px; font-size: 12px;
  display: inline-flex; align-items: center; gap: 4px;
}
html[data-ui="v3"] .v3-reprice .filter-bar .form-control { height: 30px; font-size: 12px; border-radius: 8px; }
html[data-ui="v3"] .v3-reprice .filter-bar .badge { font-size: 10.5px; font-weight: 600; }

/* 状态快筛 */
html[data-ui="v3"] .v3-reprice .rp-quick {
  padding: 10px 12px !important; gap: 6px !important; border-bottom: 1px solid var(--v3-line-2);
}
html[data-ui="v3"] .v3-reprice .rp-quick .btn {
  height: 27px; padding: 0 11px; border-radius: 999px; border: 1px solid var(--v3-line);
  background: #fff; color: var(--v3-ink-2); font-size: 11.5px;
}
html[data-ui="v3"] .v3-reprice .rp-quick .btn.btn-dark {
  background: var(--v3-brand-soft); border-color: var(--v3-brand-line);
  color: var(--v3-brand-hover); font-weight: 650;
}
html[data-ui="v3"] .v3-reprice .rp-quick .btn .badge {
  background: transparent !important; color: inherit !important;
  padding: 0 0 0 4px; font-size: 10.5px; font-weight: 600;
}

/* 表格 */
html[data-ui="v3"] .v3-reprice #rp-manage table thead th {
  font-size: 10.5px; color: var(--v3-ink-3); font-weight: 650;
  background: #fff; border-bottom: 1px solid var(--v3-line); padding: 8px;
  white-space: nowrap;
}
html[data-ui="v3"] .v3-reprice #rp-manage table tbody td {
  padding: 7px 8px; border-color: var(--v3-line-2); font-size: 12px;
}
html[data-ui="v3"] .v3-reprice #rp-manage table tbody tr:hover td { background: #FAFCFF; }
html[data-ui="v3"] .v3-reprice #rp-manage .form-control-sm { height: 27px; font-size: 11.5px; border-radius: 6px; }
html[data-ui="v3"] .v3-reprice #rp-manage .rp-base-in,
html[data-ui="v3"] .v3-reprice #rp-manage td[data-k="floor"] .form-control { width: 72px !important; }

html[data-ui="v3"] .v3-reprice #rp-manage .rp-acts .btn {
  width: 27px; height: 27px; padding: 0; margin: 0 1px; border-radius: 7px;
  font-size: 12px; display: inline-flex; align-items: center; justify-content: center;
  border-color: var(--v3-line); color: var(--v3-ink-2); background: #fff;
}
html[data-ui="v3"] .v3-reprice #rp-manage .rp-acts .btn:hover {
  background: var(--v3-brand-soft); border-color: var(--v3-brand-line); color: var(--v3-brand-hover);
}
html[data-ui="v3"] .v3-reprice #rp-manage .rp-acts .btn-outline-danger { color: #B42318; }

/* 标签降噪 */
html[data-ui="v3"] .v3-reprice #rp-manage .badge {
  font-size: 10.5px; font-weight: 600; padding: 2px 7px; border-radius: 5px; border: 0;
}
html[data-ui="v3"] .v3-reprice #rp-manage .badge.bg-success { background: #E8F5EE !important; color: #0F7B4F !important; }
html[data-ui="v3"] .v3-reprice #rp-manage .badge.bg-danger { background: #FDECEA !important; color: #B42318 !important; }
html[data-ui="v3"] .v3-reprice #rp-manage .badge.bg-warning { background: #FFF4E5 !important; color: #8A5A00 !important; }
html[data-ui="v3"] .v3-reprice #rp-manage .badge.bg-secondary { background: #EEF1F5 !important; color: #5A6B80 !important; }
html[data-ui="v3"] .v3-reprice #rp-manage .badge.bg-primary { background: #EAF2FE !important; color: #1E56C8 !important; }
html[data-ui="v3"] .v3-reprice #rp-manage .badge.bg-dark { background: #EEF1F5 !important; color: #334155 !important; }
html[data-ui="v3"] .v3-reprice #rp-manage .badge.bg-light { background: #F4F6F9 !important; color: #5A6B80 !important; }

/* 默认只留核心列：7 基准 / 9 空间 / 10 上限 / 11 监控 / 12 下次 / 13 模式 / 15 成本 / 16 链接 / 17 表现 / 18 最近操作 */
#rp-manage.v3-compact table th:nth-child(7),
#rp-manage.v3-compact table td:nth-child(7),
#rp-manage.v3-compact table th:nth-child(9),
#rp-manage.v3-compact table td:nth-child(9),
#rp-manage.v3-compact table th:nth-child(10),
#rp-manage.v3-compact table td:nth-child(10),
#rp-manage.v3-compact table th:nth-child(11),
#rp-manage.v3-compact table td:nth-child(11),
#rp-manage.v3-compact table th:nth-child(12),
#rp-manage.v3-compact table td:nth-child(12),
#rp-manage.v3-compact table th:nth-child(13),
#rp-manage.v3-compact table td:nth-child(13),
#rp-manage.v3-compact table th:nth-child(15),
#rp-manage.v3-compact table td:nth-child(15),
#rp-manage.v3-compact table th:nth-child(16),
#rp-manage.v3-compact table td:nth-child(16),
#rp-manage.v3-compact table th:nth-child(17),
#rp-manage.v3-compact table td:nth-child(17),
#rp-manage.v3-compact table th:nth-child(18),
#rp-manage.v3-compact table td:nth-child(18) { display: none !important; }

@media (max-width: 767.98px) {
  html[data-ui="v3"] .v3-reprice .v3-stats > span { padding: 8px 10px; }
  html[data-ui="v3"] .v3-reprice .v3-mon-meta { display: none; }
  #rp-manage.v3-compact table th:nth-child(2),
  #rp-manage.v3-compact table td:nth-child(2),
  #rp-manage.v3-compact table th:nth-child(6),
  #rp-manage.v3-compact table td:nth-child(6) { display: none !important; }
}

html[data-ui="v3"] .v3-reprice .v3-mon .card-body { padding: 0 !important; }

/* 精简视图：不钉列、隐藏行内长提示，避免状态列盖住利润率 */
#rp-manage.v3-compact table thead th:last-child,
#rp-manage.v3-compact table tbody td:last-child,
#rp-manage.v3-compact table thead th:nth-last-child(2),
#rp-manage.v3-compact table tbody td:nth-last-child(2) {
  position: static !important; box-shadow: none !important;
}
#rp-manage.v3-compact td[data-k="floor"] .rp-hint { display: none !important; }
#rp-manage input[type="number"]::-webkit-inner-spin-button,
#rp-manage input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
#rp-manage input[type="number"] { -moz-appearance: textfield; }
#rp-manage td[data-k="floor"] .form-control { width: 84px !important; }
