/* UI 可读性 / 对比度审计修复层（全主题 + 手机/网页）
   加载顺序：主题 CSS → mobile.css → 本文件（覆盖硬编码低对比色） */

/* 顶栏「盘点」入口永久隐藏（勿被权限/底栏样式重新显示） */
#btn-open-stocktake,
.always-hidden {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* ── 语义色：随主题切换 ── */
:root {
  --ui-link: #2563eb;
  --ui-link-active: #1d4ed8;
  --ui-row-selected-bg: rgba(59, 130, 246, 0.1);
  --ui-row-selected-ink: var(--ink, #1f2430);
  --ui-row-selected-muted: var(--muted, #64748b);
  --ui-row-selected-accent: var(--accent, #2563eb);
  --ui-input-bg: var(--input-bg, #ffffff);
  --ui-input-ink: var(--ink, #0f172a);
}

html[data-theme="glass"] {
  --ui-link: #93c5fd;
  --ui-link-active: #dbeafe;
  --ui-row-selected-bg: rgba(59, 130, 246, 0.16);
  --ui-row-selected-ink: #f1f5f9;
  --ui-row-selected-muted: #cbd5e1;
  --ui-row-selected-accent: #60a5fa;
  --ui-input-bg: #1e293b;
  --ui-input-ink: #f1f5f9;
}

html[data-theme="chrome-dark"] {
  --ui-link: #8ab4f8;
  --ui-link-active: #c6dafc;
  --ui-row-selected-bg: rgba(138, 180, 248, 0.14);
  --ui-row-selected-ink: #e8eaed;
  --ui-row-selected-muted: #bdc1c6;
  --ui-row-selected-accent: #8ab4f8;
  --ui-input-bg: #303134;
  --ui-input-ink: #e8eaed;
}

html[data-theme="neon-emerald"] {
  --ui-link: #69f0ae;
  --ui-link-active: #b9ffcf;
  --ui-row-selected-bg: rgba(0, 255, 65, 0.14);
  --ui-row-selected-ink: #ffffff;
  --ui-row-selected-muted: #b9ffcf;
  --ui-row-selected-accent: #00ff41;
  --ui-input-bg: #0a1610;
  --ui-input-ink: #ffffff;
}

html[data-theme="classic"] {
  --ui-link: #0f6b5c;
  --ui-link-active: #0a5247;
  --ui-row-selected-bg: rgba(15, 107, 92, 0.1);
  --ui-row-selected-accent: #0f6b5c;
  --ui-input-bg: #ffffff;
  --ui-input-ink: #1a1a1a;
}

html[data-theme="chrome-pink"] {
  --ui-link: #be185d;
  --ui-link-active: #9d174d;
  --ui-row-selected-bg: rgba(217, 48, 122, 0.1);
  --ui-row-selected-accent: #d9307a;
  --ui-input-bg: #ffffff;
  --ui-input-ink: #202124;
}

html[data-theme="excel"] {
  --ui-link: #1a5c38;
  --ui-link-active: #14532d;
  --ui-row-selected-bg: #e2efda;
  --ui-row-selected-accent: #217346;
  --ui-input-bg: #ffffff;
  --ui-input-ink: #1a1a1a;
}

/* 登录页始终在最上层，输入框可点可输 */
#login-view.login-wrap {
  position: relative;
  z-index: 2000;
}
#login-view input,
#login-view .pwd-toggle {
  pointer-events: auto !important;
  -webkit-user-select: text !important;
  user-select: text !important;
}
#login-view .pwd-toggle {
  z-index: 2;
}

/* ── 浅色主题：修正从 glass 复制来的深色表头/底栏 ── */
html[data-theme="classic"] .sheet thead th,
html[data-theme="classic"] .sheet thead tr.filter-row th,
html[data-theme="chrome-pink"] .sheet thead th,
html[data-theme="chrome-pink"] .sheet thead tr.filter-row th {
  background: var(--thead) !important;
  color: var(--ink) !important;
  box-shadow: inset 0 -1px 0 var(--line) !important;
}

html[data-theme="excel"] .sheet thead th,
html[data-theme="excel"] .sheet thead tr.filter-row th,
html[data-theme="excel"] .compact-sheet th,
html[data-theme="excel"] .center-sheet th {
  background: #217346 !important;
  color: #ffffff !important;
  box-shadow: inset 0 -1px 0 #1a5c38 !important;
}

html[data-theme="classic"] .sheet-wrap,
html[data-theme="chrome-pink"] .sheet-wrap,
html[data-theme="excel"] .sheet-wrap {
  background: var(--surface, #fff) !important;
}

html[data-theme="classic"] .sheet-footer,
html[data-theme="chrome-pink"] .sheet-footer,
html[data-theme="excel"] .sheet-footer {
  background: var(--thead) !important;
  color: var(--muted) !important;
}

html[data-theme="classic"] .sheet tbody tr:nth-child(even),
html[data-theme="chrome-pink"] .sheet tbody tr:nth-child(even),
html[data-theme="excel"] .sheet tbody tr:nth-child(even) {
  background: var(--row-alt, rgba(0, 0, 0, 0.02)) !important;
}

html[data-theme="classic"] .sheet tbody tr:hover td,
html[data-theme="chrome-pink"] .sheet tbody tr:hover td,
html[data-theme="excel"] .sheet tbody tr:hover td {
  color: var(--ink) !important;
}

/* ── 库存一览：行悬停/选中时文字保持可读 ── */
.sheet tbody tr:hover td,
#dash-sheet tbody tr:hover td {
  color: var(--ink);
}

#dash-sheet input.inline-edit,
#dash-sheet select.inline-edit,
td.col-sup input.inline-edit,
.qe-loc-chip input.inline-edit {
  background: var(--ui-input-bg) !important;
  color: var(--ui-input-ink) !important;
  border-color: var(--accent) !important;
}

/* 手机端：双击库位摘要打开弹层 — 选中行 */
@media (max-width: 860px) {
  #dash-sheet td.col-model .dash-model-tap {
    color: inherit !important;
    text-decoration: none !important;
    font-weight: 700;
    -webkit-user-select: text;
    user-select: text;
  }

  #dash-sheet .mob-loc-tap {
    color: var(--ui-link) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    -webkit-tap-highlight-color: rgba(37, 99, 235, 0.25);
    padding: 4px 0;
    min-height: 28px;
  }

  #dash-sheet tr.is-mloc-open td {
    background: var(--ui-row-selected-bg) !important;
    color: var(--ui-row-selected-ink) !important;
    box-shadow: inset 3px 0 0 var(--ui-row-selected-accent) !important;
  }

  #dash-sheet tr.is-mloc-open td .dash-model-tap {
    color: var(--ui-link-active) !important;
    text-decoration: none !important;
    font-weight: 700 !important;
  }

  #dash-sheet tr.is-mloc-open td .mob-loc-sum {
    color: var(--ui-row-selected-muted) !important;
  }

  #dash-sheet tr.is-mloc-open td .zero-badge,
  #dash-sheet tr.is-mloc-open td .cat-gift,
  #dash-sheet tr.is-mloc-open td .cat-normal {
    opacity: 1;
  }
}

/* 网页端：型号列可点提示（与手机一致语义色） */
@media (min-width: 861px) {
  #dash-sheet td.col-model.dash-model-editable[data-product-id] {
    color: var(--ink);
    cursor: pointer;
  }
  #dash-sheet td.col-model.dash-model-editable[data-product-id]:hover .dash-model-tap {
    text-decoration: underline;
    text-underline-offset: 2px;
    color: var(--ui-link, #2563eb);
  }
}

/* ── 拣货/库位芯片：浅色主题勿用深色玻璃底 ── */
html[data-theme="classic"] .loc-pick-chip,
html[data-theme="chrome-pink"] .loc-pick-chip,
html[data-theme="excel"] .loc-pick-chip {
  background: var(--surface, #fff) !important;
  border-color: var(--line) !important;
}

html[data-theme="classic"] .loc-pick-chip .code,
html[data-theme="chrome-pink"] .loc-pick-chip .code,
html[data-theme="excel"] .loc-pick-chip .code {
  color: var(--ink) !important;
}

html[data-theme="classic"] .loc-pick-chip .qty,
html[data-theme="chrome-pink"] .loc-pick-chip .qty,
html[data-theme="excel"] .loc-pick-chip .qty {
  color: var(--muted) !important;
}

/* ── 进度/标签：浅色背景上勿用浅蓝灰字 ── */
html[data-theme="classic"] .pick-progress-bar,
html[data-theme="chrome-pink"] .pick-progress-bar,
html[data-theme="excel"] .pick-progress-bar {
  color: var(--ink) !important;
}

html[data-theme="classic"] .pick-chip.done,
html[data-theme="chrome-pink"] .pick-chip.done,
html[data-theme="excel"] .pick-chip.done {
  color: #15803d !important;
  background: rgba(34, 197, 94, 0.12) !important;
}

html[data-theme="classic"] .cat-gift,
html[data-theme="chrome-pink"] .cat-gift {
  color: #c2410c !important;
  background: rgba(234, 88, 12, 0.12) !important;
}

/* ═══════════════════════════════════════════════════════════
   库存一览 · 库位芯片（全主题）
   问题：浅色主题从 glass 复制了深色 .loc-chip 底，.loc-stock 继承墨色 → 黑底黑字
   ═══════════════════════════════════════════════════════════ */

/* 深色主题：库存数字显式浅色 */
html[data-theme="glass"] .loc-chip,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .loc-chip {
  color: #e2e8f0;
}
html[data-theme="glass"] .loc-chip .loc-stock,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .loc-chip .loc-stock,
html[data-theme="glass"] .loc-chip .loc-qty,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .loc-chip .loc-qty {
  color: #93c5fd !important;
  background: rgba(37, 99, 235, 0.22) !important;
  font-weight: 650;
  padding: 1px 7px;
  border-radius: 6px;
}
html[data-theme="glass"] .loc-chip .loc-qty-num,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .loc-chip .loc-qty-num,
html[data-theme="glass"] .loc-chip .loc-box-num,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .loc-chip .loc-box-num {
  color: #bfdbfe !important;
}
html[data-theme="glass"] .loc-chip .loc-stock-sep,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .loc-chip .loc-stock-sep {
  color: #94a3b8;
  opacity: 1;
}

/* 浅色经典 */
html[data-theme="classic"] .loc-chip {
  background: #fffdf8 !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
  box-shadow: 0 1px 2px rgba(31, 36, 48, 0.06);
}
html[data-theme="classic"] .loc-chip .loc-stock,
html[data-theme="classic"] .loc-chip .loc-qty {
  color: var(--accent) !important;
  background: var(--exact) !important;
  font-weight: 650;
  padding: 1px 7px;
  border-radius: 6px;
}
html[data-theme="classic"] .loc-chip .loc-qty-num,
html[data-theme="classic"] .loc-chip .loc-box-num {
  color: #0a5247 !important;
}
html[data-theme="classic"] .loc-chip.loc-empty .loc-qty,
html[data-theme="classic"] .loc-chip.loc-disabled .loc-qty {
  color: var(--muted) !important;
  background: rgba(100, 116, 139, 0.12) !important;
}

/* 谷歌粉色 */
html[data-theme="chrome-pink"] .loc-chip {
  background: #fff7fa !important;
  border-color: #f0c2d2 !important;
  color: var(--ink) !important;
  box-shadow: 0 1px 3px rgba(217, 48, 122, 0.1);
}
html[data-theme="chrome-pink"] .loc-chip .loc-stock,
html[data-theme="chrome-pink"] .loc-chip .loc-qty {
  color: #be185d !important;
  background: #ffe0ec !important;
  font-weight: 650;
  padding: 1px 7px;
  border-radius: 6px;
}
html[data-theme="chrome-pink"] .loc-chip .loc-qty-num,
html[data-theme="chrome-pink"] .loc-chip .loc-box-num {
  color: #9d174d !important;
}
html[data-theme="chrome-pink"] .loc-chip.loc-empty .loc-qty,
html[data-theme="chrome-pink"] .loc-chip.loc-disabled .loc-qty {
  color: #8d6b76 !important;
  background: rgba(240, 194, 210, 0.35) !important;
}
html[data-theme="chrome-pink"] .loc-chip.loc-staging,
html[data-theme="chrome-pink"] .loc-chip.loc-pick-pending {
  background: #fff8eb !important;
  border-color: rgba(227, 116, 0, 0.45) !important;
}

/* Excel 表格风 */
html[data-theme="excel"] .loc-chip {
  background: #ffffff !important;
  border-color: #b4b4b4 !important;
  color: var(--ink) !important;
  box-shadow: none;
}
html[data-theme="excel"] .loc-chip .loc-stock,
html[data-theme="excel"] .loc-chip .loc-qty {
  color: #1a5c38 !important;
  background: #e2efda !important;
  font-weight: 650;
  padding: 1px 7px;
  border-radius: 0;
}
html[data-theme="excel"] .loc-chip .loc-qty-num,
html[data-theme="excel"] .loc-chip .loc-box-num {
  color: #14532d !important;
}

/* 浅色：库位建议/拣货区勿用深色玻璃底 */
html[data-theme="classic"] .loc-item,
html[data-theme="classic"] .loc-pick-col,
html[data-theme="chrome-pink"] .loc-item,
html[data-theme="chrome-pink"] .loc-pick-col,
html[data-theme="excel"] .loc-item,
html[data-theme="excel"] .loc-pick-col {
  background: var(--surface, #fff) !important;
  color: var(--ink) !important;
}
html[data-theme="classic"] .loc-pick-chip,
html[data-theme="chrome-pink"] .loc-pick-chip,
html[data-theme="excel"] .loc-pick-chip {
  background: var(--surface, #fff) !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
}
html[data-theme="classic"] .loc-pick-chip .code,
html[data-theme="chrome-pink"] .loc-pick-chip .code,
html[data-theme="excel"] .loc-pick-chip .code {
  color: var(--ink) !important;
}

/* 浅色：下拉建议列表 */
html[data-theme="classic"] .suggest,
html[data-theme="chrome-pink"] .suggest,
html[data-theme="excel"] .suggest {
  background: var(--card) !important;
  border-color: var(--line) !important;
  box-shadow: var(--shadow) !important;
}
html[data-theme="classic"] .suggest button,
html[data-theme="chrome-pink"] .suggest button,
html[data-theme="excel"] .suggest button {
  color: var(--ink) !important;
  border-bottom-color: var(--line) !important;
}

/* 浅色：代码块/备注区 */
html[data-theme="classic"] .mono,
html[data-theme="chrome-pink"] .mono,
html[data-theme="excel"] .mono {
  background: var(--surface, #f8fafc) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
}

/* 手机库位弹层：浅色主题沿用默认蓝/琥珀分段（勿套用 glass 深色覆盖） */
html[data-theme="classic"] #mobile-loc-pop .mobile-loc-pop-panel,
html[data-theme="chrome-pink"] #mobile-loc-pop .mobile-loc-pop-panel,
html[data-theme="excel"] #mobile-loc-pop .mobile-loc-pop-panel {
  background: var(--card) !important;
  color: var(--ink) !important;
}
html[data-theme="classic"] #mobile-loc-pop .mloc-chip,
html[data-theme="chrome-pink"] #mobile-loc-pop .mloc-chip,
html[data-theme="excel"] #mobile-loc-pop .mloc-chip {
  background: #fff !important;
  border-color: var(--line) !important;
}
html[data-theme="classic"] #mobile-loc-pop .mloc-chip .code,
html[data-theme="chrome-pink"] #mobile-loc-pop .mloc-chip .code,
html[data-theme="excel"] #mobile-loc-pop .mloc-chip .code {
  color: #1e3a8a !important;
  background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%) !important;
}
html[data-theme="chrome-pink"] #mobile-loc-pop .mloc-chip .code {
  color: #9d174d !important;
  background: linear-gradient(180deg, #fff0f5 0%, #ffe0ec 100%) !important;
  border-right-color: #f472b6 !important;
}
html[data-theme="chrome-pink"] #mobile-loc-pop .mloc-chip .qty,
html[data-theme="chrome-pink"] #mobile-loc-pop .mloc-chip .mloc-stock {
  color: #9a3412 !important;
  background: linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%) !important;
}

/* ── 筛选弹窗 / 次要文字 ── */
.muted,
.tiny.muted,
.sheet-footer {
  color: var(--muted);
}

.th-filterable:hover {
  color: var(--ink) !important;
}

.mf-item {
  color: var(--ink);
}

.mf-item .muted {
  color: var(--muted) !important;
}

/* ── 手机库位弹层：深色主题 ── */
html[data-theme="glass"] #mobile-loc-pop .mobile-loc-pop-panel,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mobile-loc-pop-panel {
  background: var(--glass-strong, #1e293b) !important;
  color: var(--ink) !important;
}

html[data-theme="glass"] #mobile-loc-pop .mobile-loc-pop-head b,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mobile-loc-pop-head b {
  color: var(--ink) !important;
}

html[data-theme="glass"] #mobile-loc-pop .mloc-chip,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-chip {
  background: transparent !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}

html[data-theme="glass"] #mobile-loc-pop .mloc-chip .code,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-chip .code {
  color: #dbeafe !important;
  background: rgba(37, 99, 235, 0.42) !important;
  border-right-color: #60a5fa !important;
}

html[data-theme="glass"] #mobile-loc-pop .mloc-chip .qty,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-chip .qty,
html[data-theme="glass"] #mobile-loc-pop .mloc-chip .mloc-stock,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-chip .mloc-stock {
  color: #fde68a !important;
  background: rgba(217, 119, 6, 0.32) !important;
}

html[data-theme="glass"] #mobile-loc-pop .mloc-qty-num,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-qty-num,
html[data-theme="glass"] #mobile-loc-pop .mloc-box-num,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-box-num {
  color: #fbbf24 !important;
}

html[data-theme="glass"] #mobile-loc-pop .mloc-editable .code,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-editable .code {
  color: #dbeafe !important;
  text-decoration-color: #93c5fd !important;
}

html[data-theme="glass"] #mobile-loc-pop .mloc-editable .qty,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-editable .qty,
html[data-theme="glass"] #mobile-loc-pop .mloc-editable .mloc-stock,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-editable .mloc-stock {
  color: #fde68a !important;
  text-decoration-color: #fbbf24 !important;
}

html[data-theme="glass"] .mobile-loc-pop-hint,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .mobile-loc-pop-hint {
  color: var(--muted) !important;
}

html[data-theme="glass"] .mloc-legend,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .mloc-legend {
  color: var(--ink) !important;
}

html[data-theme="glass"] .mloc-lg-code,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .mloc-lg-code {
  background: rgba(59, 130, 246, 0.55) !important;
  border-color: #93c5fd !important;
}

html[data-theme="glass"] .mloc-lg-qty,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .mloc-lg-qty {
  background: rgba(217, 119, 6, 0.5) !important;
  border-color: #fbbf24 !important;
}

html[data-theme="glass"] #mobile-loc-pop .mloc-seg-lab,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #mobile-loc-pop .mloc-seg-lab {
  opacity: 0.85 !important;
}

/* ── 手机拣货创建卡片：随主题 ── */
@media (max-width: 860px) {
  html[data-theme="glass"] #modal-out.pick-create-page table.pick-create-table tr,
  html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #modal-out.pick-create-page table.pick-create-table tr {
    background: var(--glass, rgba(17, 23, 34, 0.75)) !important;
    border-color: var(--line) !important;
    color: var(--ink) !important;
  }

  html[data-theme="glass"] #modal-out.pick-create-page table.pick-create-table td::before,
  html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #modal-out.pick-create-page table.pick-create-table td::before {
    color: var(--muted) !important;
  }
}

/* ── 按钮按下态：避免文字被 filter 压暗 ── */
button:active,
button.primary:active,
.ghost:active {
  filter: none;
}

button:active {
  opacity: 0.92;
}

/* 库存一览勾选列：主题 CSS 未定义时会被 table-layout:fixed 撑得很宽 */
#dash-sheet col.dash-col-check,
#dash-sheet .col-check {
  width: 28px !important;
  max-width: 28px !important;
  min-width: 28px !important;
  padding-left: 2px !important;
  padding-right: 2px !important;
  box-sizing: border-box;
  text-align: center;
  overflow: hidden;
}
#dash-sheet col.dash-col-seq {
  width: 44px;
}
#dash-sheet col.dash-col-sup {
  width: 110px;
}
#dash-sheet col.dash-col-model {
  width: 150px;
}
#dash-sheet col.dash-col-name {
  width: 120px;
}
#dash-sheet col.dash-col-qpc {
  width: 72px;
}
#dash-sheet col.dash-col-qty,
#dash-sheet col.dash-col-boxes {
  width: 88px;
}
#dash-sheet col.dash-col-loc {
  width: auto;
}
#dash-sheet .col-check input[type="checkbox"] {
  width: 15px;
  height: 15px;
  margin: 0;
  padding: 0;
  vertical-align: middle;
}

/* 库存件数右键 → 历史菜单 / 对账弹窗 */
#dash-sheet td.col-qty.dash-qty-hist {
  cursor: context-menu;
}
.dash-qty-ctx {
  position: fixed;
  z-index: 12000;
  min-width: 200px;
  padding: 4px;
  background: var(--panel, #fff);
  color: var(--ink, #0f172a);
  border: 1px solid var(--line, rgba(100, 116, 139, 0.35));
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
  border-radius: 8px;
}
.dash-qty-ctx.hidden {
  display: none;
}
.dash-qty-ctx button {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 10px 12px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: inherit;
  border-radius: 6px;
}
.dash-qty-ctx button:hover {
  background: rgba(37, 99, 235, 0.1);
}
.stock-hist-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
  align-items: center;
}
.stock-hist-toolbar input {
  flex: 1 1 200px;
  min-width: 0;
  min-height: 38px;
}
.stock-hist-toolbar select {
  min-height: 38px;
  min-width: 110px;
}
.stock-hist-wrap {
  overflow: auto;
  max-height: min(62vh, 640px);
  border: 1px solid var(--line, rgba(100, 116, 139, 0.28));
  border-radius: 8px;
}
.stock-hist-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  min-width: 860px;
}
.stock-hist-table th,
.stock-hist-table td {
  border-bottom: 1px solid var(--line, rgba(100, 116, 139, 0.22));
  padding: 8px 10px;
  text-align: left;
  vertical-align: top;
}
.stock-hist-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--panel-head, rgba(15, 23, 42, 0.92));
  color: var(--ink, #e2e8f0);
  font-weight: 700;
  white-space: nowrap;
}
html[data-theme="excel"] .stock-hist-table thead th,
html[data-theme="classic"] .stock-hist-table thead th {
  background: #1f6b3a;
  color: #fff;
}
.stock-hist-table .sh-time {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-size: 12px;
}
.stock-hist-table .sh-loc-cell {
  min-width: 220px;
  max-width: 360px;
}
.stock-hist-table .sh-loc-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  line-height: 1.45;
  padding: 2px 0;
}
.stock-hist-table .sh-loc-line + .sh-loc-line {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed var(--line, rgba(100, 116, 139, 0.28));
}
.stock-hist-table .sh-loc-code {
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 0.02em;
}
.stock-hist-table .sh-loc-act {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 4px;
  white-space: nowrap;
}
.sh-act-in {
  background: rgba(22, 163, 74, 0.16);
  color: #15803d;
}
.sh-act-out {
  background: rgba(220, 38, 38, 0.14);
  color: #b91c1c;
}
.sh-act-other {
  background: rgba(37, 99, 235, 0.12);
  color: #1d4ed8;
}
.stock-hist-table .sh-loc-qty {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.stock-hist-table .sh-loc-ba {
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  opacity: 0.82;
  white-space: nowrap;
}
.stock-hist-table .sh-loc-fallback {
  font-weight: 600;
}
.stock-hist-table {
  min-width: 720px;
}
.stock-hist-table .sh-dir {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  white-space: nowrap;
}
.sh-dir-in {
  background: rgba(22, 163, 74, 0.14);
  color: #15803d;
}
.sh-dir-out {
  background: rgba(220, 38, 38, 0.12);
  color: #b91c1c;
}
.sh-dir-tf {
  background: rgba(37, 99, 235, 0.12);
  color: #1d4ed8;
}
.sh-dir-other {
  background: rgba(100, 116, 139, 0.14);
  color: #475569;
}
.stock-hist-table .sh-delta {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.sh-delta-in { color: #15803d; }
.sh-delta-out { color: #b91c1c; }
.sh-delta-tf { color: #1d4ed8; }
.sh-delta-zero { color: var(--muted, #64748b); }
.stock-hist-table .sh-ba {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.stock-hist-table .sh-arrow {
  margin: 0 6px;
  opacity: 0.55;
}
.stock-hist-table .sh-who {
  white-space: nowrap;
  font-weight: 600;
}
.stock-hist-foot {
  margin-top: 10px;
  display: flex;
  justify-content: center;
}
@media (max-width: 720px) {
  .stock-hist-table {
    min-width: 720px;
    font-size: 12px;
  }
}

/* 库位号分色：1色=独（1品种），2~5色=混合（对应品种数，最多5色） */
.loc-code.loc-mix-1 {
  background: linear-gradient(135deg, #dc2626, #f97316) !important;
  color: #fff !important;
  box-shadow: 0 0 8px rgba(239, 68, 68, 0.28) !important;
}
.loc-code.loc-mix-2 {
  background: linear-gradient(90deg, #dc2626 0 50%, #2563eb 50% 100%) !important;
  color: #fff !important;
  box-shadow: 0 0 8px rgba(37, 99, 235, 0.22) !important;
}
.loc-code.loc-mix-3 {
  background: linear-gradient(
    90deg,
    #dc2626 0 33.33%,
    #2563eb 33.33% 66.66%,
    #16a34a 66.66% 100%
  ) !important;
  color: #fff !important;
}
.loc-code.loc-mix-4 {
  background: linear-gradient(
    90deg,
    #dc2626 0 25%,
    #2563eb 25% 50%,
    #16a34a 50% 75%,
    #d97706 75% 100%
  ) !important;
  color: #fff !important;
}
.loc-code.loc-mix-5 {
  background: linear-gradient(
    90deg,
    #dc2626 0 20%,
    #2563eb 20% 40%,
    #16a34a 40% 60%,
    #d97706 60% 80%,
    #9333ea 80% 100%
  ) !important;
  color: #fff !important;
}
.loc-mix-badge {
  display: inline-block;
  margin-left: 4px;
  padding: 0 5px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.35;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.28);
  vertical-align: middle;
}
.loc-chip.loc-mix-2,
.loc-chip.loc-mix-3,
.loc-chip.loc-mix-4,
.loc-chip.loc-mix-5,
#mobile-loc-pop .mloc-chip.loc-mix-2,
#mobile-loc-pop .mloc-chip.loc-mix-3,
#mobile-loc-pop .mloc-chip.loc-mix-4,
#mobile-loc-pop .mloc-chip.loc-mix-5 {
  border-color: rgba(37, 99, 235, 0.45);
}

/* 入库 / 出库 入口按钮区分 */
.btn-hub-in {
  background: #059669 !important;
  border-color: #047857 !important;
  color: #fff !important;
  font-weight: 700;
}
.btn-hub-in:hover {
  background: #047857 !important;
}
.btn-hub-out {
  background: #ea580c !important;
  border-color: #c2410c !important;
  color: #fff !important;
  font-weight: 700;
}
.btn-hub-out:hover {
  background: #c2410c !important;
}

/* 入库 / 出库 合一弹窗 */
.io-hub-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.io-hub-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.io-hub-tab {
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid var(--border, var(--line, #cbd5e1));
  background: var(--ui-input-bg, var(--card, #f8fafc));
  color: var(--ui-input-ink, var(--ink, #0f172a));
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.io-hub-tab:hover {
  border-color: var(--accent, #2563eb);
  color: var(--ui-input-ink, var(--ink, #0f172a));
}
.io-hub-tab.active {
  background: var(--accent, #2563eb);
  border-color: var(--accent, #2563eb);
  color: var(--on-accent, #fff);
}
.io-hub-out .io-hub-tab.active {
  background: #ea580c;
  border-color: #c2410c;
}
.io-hub-in .io-hub-tab.active {
  background: #059669;
  border-color: #047857;
  color: #fff;
}

/* 深色主题：入库/出库弹窗分段标签（避免浅底+浅字不可读） */
html[data-theme="glass"] .io-hub-tab:not(.active),
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .io-hub-tab:not(.active) {
  background: var(--ui-input-bg, #1e293b) !important;
  border-color: var(--line, rgba(70, 90, 120, 0.55)) !important;
  color: var(--ui-input-ink, #f1f5f9) !important;
}
html[data-theme="glass"] .io-hub-tab:not(.active):hover,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .io-hub-tab:not(.active):hover {
  border-color: var(--accent, #3b82f6) !important;
  color: #fff !important;
}
html[data-theme="glass"] .io-hub-tab.active,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .io-hub-tab.active {
  color: #fff !important;
}

/* 深色主题：打印/拣货页分段标签 */
html[data-theme="glass"] #modal-print .print-tab-btn:not(.active),
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #modal-print .print-tab-btn:not(.active) {
  background: var(--ui-input-bg, #1e293b) !important;
  border-color: var(--line, rgba(70, 90, 120, 0.55)) !important;
  color: var(--ui-input-ink, #f1f5f9) !important;
}
html[data-theme="glass"] #modal-print .print-tab-hint,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #modal-print .print-tab-hint {
  color: var(--muted, #94a3b8) !important;
}
html[data-theme="glass"] #modal-pick-work.pick-work-page .pw-tab-btn:not(.active),
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] #modal-pick-work.pick-work-page .pw-tab-btn:not(.active) {
  background: var(--ui-input-bg, #1e293b) !important;
  border-color: var(--line, rgba(70, 90, 120, 0.55)) !important;
  color: var(--ui-input-ink, #f1f5f9) !important;
}

/* 库存一览：已废弃批量栏，彻底不占位 */
#dash-batch-bar {
  display: none !important;
}

.io-hub-pane-foot {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--border, #e2e8f0);
}
.io-hub-list-toolbar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 8px;
}
.io-hub-list-toolbar input {
  flex: 1;
  min-width: 180px;
}

/* 出库记录 · 异常人工处理 */
.outbound-list-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  margin-bottom: 8px;
}
.outbound-list-toolbar input[type="search"],
.outbound-list-toolbar input:not([type="checkbox"]) {
  flex: 1;
  min-width: 200px;
}
.out-exc-filter-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink, #0f172a);
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}
.out-exc-pending-banner {
  margin: 0 0 10px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #fca5a5;
  background: #fef2f2;
  color: #991b1b;
  font-size: 13px;
  font-weight: 600;
}
.in-slip.out-slip-has-pending {
  outline: 2px solid rgba(220, 38, 38, 0.35);
  outline-offset: 2px;
  border-radius: 4px;
}
.bi-row-err {
  background: #fef2f2 !important;
  cursor: pointer;
}
.bi-row-err:hover {
  background: #fee2e2 !important;
}
.bi-row-err-handled {
  background: #f1f5f9 !important;
  opacity: 0.92;
  cursor: default;
}
.bi-row-err-handled:hover {
  background: #f1f5f9 !important;
}
.bi-row-err-handled .in-slip-model,
.bi-row-err-handled .in-slip-num {
  color: #64748b !important;
}
.bi-err-handled {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  color: #475569;
  background: #e2e8f0;
  font-weight: 600;
  font-size: 12px;
}
.out-exc-handle-btn {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid #fca5a5;
  background: #fef2f2;
  color: #b91c1c;
  font-weight: 700;
  font-size: 12px;
  cursor: pointer;
  line-height: 1.3;
}
.out-exc-handle-btn:hover {
  background: #fee2e2;
  border-color: #f87171;
}
.out-exc-status-cell {
  min-width: 7.5em;
}
.out-exc-slip-banner {
  margin: 0 0 10px;
  padding: 8px 12px;
  border-radius: 6px;
  border: 1px dashed #f87171;
  background: #fff1f2;
  color: #b91c1c;
  font-size: 13px;
  font-weight: 600;
}
.out-exc-why {
  color: #991b1b !important;
  margin-top: 4px;
}
tr.out-exc-clickable {
  cursor: pointer;
}
html[data-theme="chrome-pink"] .out-exc-slip-banner {
  background: #fff0f5;
  border-color: #f9a8d4;
  color: #9d174d;
}
html[data-theme="chrome-pink"] .out-exc-why {
  color: #9d174d !important;
}
html[data-theme="glass"] .bi-row-err,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .bi-row-err {
  background: rgba(127, 29, 29, 0.35) !important;
}
html[data-theme="glass"] .bi-row-err-handled,
html[data-theme="chrome-dark"],
html[data-theme="neon-emerald"] .bi-row-err-handled {
  background: rgba(51, 65, 85, 0.45) !important;
}
html[data-theme="chrome-pink"] .out-exc-pending-banner {
  background: #fff0f5;
  border-color: #f9a8d4;
  color: #9d174d;
}
html[data-theme="chrome-pink"] .out-exc-handle-btn {
  background: #ffe0ec;
  border-color: #f472b6;
  color: #9d174d;
}
.io-doc-no {
  cursor: pointer;
  border-bottom: 1px dashed var(--muted, #94a3b8);
}

/* ── 库存一览顶栏：标题 + 型号/库位搜索 + 按钮 同一水平行 ── */
#dash-toolbar.sheet-toolbar {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px 14px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
}
#dash-toolbar .sheet-title {
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}
#dash-toolbar .dash-toolbar-search {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  align-content: center !important;
  gap: 12px 16px !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
}
#dash-toolbar .dash-search-field {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  gap: 4px 6px !important;
}
#dash-toolbar .dash-search-label {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  color: var(--muted, #64748b) !important;
}
#dash-toolbar .dash-search-field input {
  display: inline-block !important;
  width: 120px !important;
  min-width: 72px !important;
  max-width: 160px !important;
  min-height: 34px !important;
  padding: 5px 8px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  flex: 0 1 auto !important;
}
#dash-toolbar .sheet-actions {
  flex: 0 0 auto !important;
  margin-left: auto !important;
  display: inline-flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 6px !important;
}
@media (max-width: 860px) {
  #dash-toolbar.sheet-toolbar {
    flex-wrap: nowrap !important;
  }
  #dash-toolbar .dash-toolbar-search {
    flex: 1 1 auto !important;
    gap: 8px 10px !important;
  }
  #dash-toolbar .dash-search-field input {
    width: 88px !important;
    min-width: 56px !important;
    max-width: 110px !important;
    min-height: 36px !important;
    font-size: 16px !important;
  }
}
.io-doc-no:hover {
  color: var(--accent, #2563eb);
}
.io-doc-no-input {
  width: 100%;
  max-width: 220px;
  font-family: ui-monospace, monospace;
  font-size: inherit;
  padding: 2px 6px;
}

/* —— 弹窗放大全屏（拣货单列表 / 入库 / 出库 / 出货单 / 挪位 / 流水账） —— */
.modal-head-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: center;
  margin-left: auto;
  flex-shrink: 0;
}
.modal-max-btn {
  min-width: 88px;
  min-height: 36px;
  padding: 6px 14px !important;
  font-weight: 800 !important;
  white-space: nowrap;
  border: 1px solid var(--accent, #2563eb) !important;
  color: var(--accent, #2563eb) !important;
  background: color-mix(in srgb, var(--accent, #2563eb) 12%, transparent) !important;
  border-radius: 8px !important;
}
.modal-max-btn:hover {
  background: color-mix(in srgb, var(--accent, #2563eb) 22%, transparent) !important;
}
.modal-max-btn.is-on {
  border-color: #0f766e !important;
  color: #0f766e !important;
  background: color-mix(in srgb, #14b8a6 16%, transparent) !important;
}
.io-hub-head {
  flex-wrap: nowrap !important;
  align-items: center !important;
}
.io-hub-head .io-hub-tabs {
  flex: 1 1 auto;
  min-width: 0;
}
.io-hub-head .modal-head-actions {
  margin-left: 8px;
}
@media (max-width: 860px) {
  .modal-max-btn {
    min-height: 44px;
    min-width: 96px;
    font-size: 15px !important;
    padding: 8px 14px !important;
  }
  .io-hub-head {
    flex-wrap: wrap !important;
  }
  .io-hub-head .modal-head-actions {
    width: 100%;
    justify-content: flex-end;
    margin-left: 0;
  }
}
body.modal-maximized-open {
  overflow: hidden;
}
.modal.is-maximized {
  padding: 0 !important;
  padding: env(safe-area-inset-top, 0) env(safe-area-inset-right, 0) env(safe-area-inset-bottom, 0)
    env(safe-area-inset-left, 0) !important;
  place-items: stretch !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  display: flex !important;
  background: var(--bg, #0b1220) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  z-index: 1400 !important;
}
.modal.is-maximized .modal-panel {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  height: 100dvh !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  animation: none !important;
}
.modal.is-maximized .modal-panel::before {
  display: none !important;
}
.modal.is-maximized .modal-head,
.modal.is-maximized .modal-foot,
.modal.is-maximized .io-hub-head {
  flex: 0 0 auto !important;
}
.modal.is-maximized .modal-body,
.modal.is-maximized .io-hub-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: auto !important;
  -webkit-overflow-scrolling: touch;
}
.modal.is-maximized .io-hub-panel {
  height: 100% !important;
}
.modal.is-maximized .io-hub-pane:not(.hidden) {
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.modal.is-maximized .ledger-panel,
.modal.is-maximized .order-modal-panel {
  height: 100% !important;
}
.modal.is-maximized .ledger-list-wrap,
.modal.is-maximized #orders-list,
.modal.is-maximized #shipped-list,
.modal.is-maximized #order-detail {
  max-height: none !important;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto !important;
}
.modal.is-maximized table.sheet {
  min-width: 100%;
}
