
.ivd-card[data-v-4e968e45] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md, 12px);
  /* 纯黑透明阴影（不掺主题色），深色主题下不会出现灰雾 */
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  transition: border-color var(--t-fast, 0.2s ease), box-shadow var(--t-fast, 0.2s ease);
}
.ivd-card[data-v-4e968e45]:hover {
  border-color: var(--border-brand);
  box-shadow: 0 4px 16px color-mix(in srgb, var(--brand) 10%, transparent);
}
.ivd-card__head[data-v-4e968e45] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 18px;
  border-bottom: 1px solid var(--border);
}
.ivd-card__title[data-v-4e968e45] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: var(--fs-lg, 15px);
  font-weight: 600;
  color: var(--text-1);
  line-height: 1.4;
}
.ivd-card__title[data-v-4e968e45]::before {
  content: '';
  width: 3px;
  height: 15px;
  border-radius: 2px;
  background: var(--brand);
  flex-shrink: 0;
}
.ivd-card__extra[data-v-4e968e45] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.ivd-card__body[data-v-4e968e45] {
  padding: 16px 18px;
}
@media (max-width: 767px) {
.ivd-card__head[data-v-4e968e45] { padding: 12px 14px;
}
.ivd-card__body[data-v-4e968e45] { padding: 14px;
}
}

.ivd-ov[data-v-5237f853] {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding: 20px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md, 12px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.ivd-ov__img[data-v-5237f853] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100px;
  height: 100px;
  flex-shrink: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-sunken);
}
.ivd-ov__img img[data-v-5237f853] { width: 100%; height: 100%; object-fit: cover;
}
.ivd-ov__ph[data-v-5237f853] { width: 46px; height: 46px; color: var(--text-3);
}
.ivd-ov__main[data-v-5237f853] { flex: 1; min-width: 0;
}
.ivd-ov__title[data-v-5237f853] {
  margin: 0 0 10px;
  font-size: var(--fs-lg, 16px);
  font-weight: 600;
  color: var(--text-1);
  line-height: 1.45;
  word-break: break-word;
}
.ivd-ov__tags[data-v-5237f853] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px;
}
.ivd-tag[data-v-5237f853] {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 6px;
  font-size: var(--fs-sm, 12px);
  font-weight: 500;
  line-height: 1.6;
  white-space: nowrap;
}
/* 标签底色统一用 color-mix 从语义令牌派生：8 套主题下对比度都成立 */
.ivd-tag--info[data-v-5237f853] { background: color-mix(in srgb, var(--info) 14%, transparent); color: var(--info);
}
.ivd-tag--ok[data-v-5237f853] { background: color-mix(in srgb, var(--ok) 14%, transparent); color: var(--ok);
}
.ivd-tag--warn[data-v-5237f853] { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn);
}
.ivd-tag--danger[data-v-5237f853] { background: color-mix(in srgb, var(--danger) 14%, transparent); color: var(--danger);
}
.ivd-tag--muted[data-v-5237f853] { background: var(--bg-sunken); color: var(--text-2);
}

/* 核心指标四格 */
.ivd-ov__metrics[data-v-5237f853] {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.ivd-metric[data-v-5237f853] {
  min-width: 0;
  padding: 12px 14px;
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-sunken);
}
.ivd-metric__label[data-v-5237f853] { font-size: var(--fs-sm, 12px); color: var(--text-2); margin-bottom: 4px;
}
.ivd-metric__value[data-v-5237f853] {
  font-size: var(--fs-3xl, 24px);
  font-weight: 700;
  color: var(--text-1);
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 同步时间是长文本而非大数字，单独缩小（对齐设计稿 14px/常规字重） */
.ivd-metric__value.is-small[data-v-5237f853] { font-size: var(--fs-base, 14px); font-weight: 500; color: var(--text-2);
}
.ivd-metric__value.is-ok[data-v-5237f853] { color: var(--ok);
}
.ivd-metric__value.is-warn[data-v-5237f853] { color: var(--warn);
}
.ivd-metric__value.is-danger[data-v-5237f853] { color: var(--danger);
}
.ivd-metric__value.is-muted[data-v-5237f853] { color: var(--text-2);
}
.ivd-metric__sub[data-v-5237f853] {
  margin-top: 2px;
  font-size: var(--fs-xs, 11px);
  color: var(--text-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 平板：四格降为两格；手机：概览纵排 */
@media (max-width: 1023px) {
.ivd-ov__metrics[data-v-5237f853] { grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 767px) {
.ivd-ov[data-v-5237f853] { flex-direction: column; gap: 14px; padding: 14px;
}
.ivd-ov__img[data-v-5237f853] { width: 84px; height: 84px;
}
.ivd-ov__title[data-v-5237f853] { font-size: var(--fs-base, 15px);
}
}

.ivd-breakdown[data-v-d614cbe7] { display: flex; flex-direction: column; gap: 22px;
}

/* ── 分组 ── */
.ivd-sec[data-v-d614cbe7]:last-of-type { margin-bottom: 0;
}
.ivd-sec__title[data-v-d614cbe7] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-size: var(--fs-md, 13px);
  font-weight: 600;
  color: var(--text-1);
}
.ivd-dot[data-v-d614cbe7] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.ivd-dot.is-ok[data-v-d614cbe7] { background: var(--ok);
}
.ivd-dot.is-warn[data-v-d614cbe7] { background: var(--warn);
}
.ivd-dot.is-info[data-v-d614cbe7] { background: var(--info);
}
.ivd-dot.is-danger[data-v-d614cbe7] { background: var(--danger);
}
.ivd-sec__grid[data-v-d614cbe7] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.ivd-qty[data-v-d614cbe7] {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-sunken);
}
.ivd-qty__label[data-v-d614cbe7] { font-size: var(--fs-sm, 12px); color: var(--text-2); margin-bottom: 4px;
}
.ivd-qty__value[data-v-d614cbe7] {
  font-size: var(--fs-2xl, 20px);
  font-weight: 700;
  color: var(--text-1);
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
/* 数量为 0 的项弱化（对齐设计稿 .si-value.zero） */
.ivd-qty__value.is-zero[data-v-d614cbe7] { color: var(--text-3);
}
.ivd-qty__value.is-danger[data-v-d614cbe7] { color: var(--danger);
}

/* ── 分布可视化 ── */
.ivd-dist[data-v-d614cbe7] {
  padding-top: 18px;
  border-top: 1px solid var(--border);
}
.ivd-dist__title[data-v-d614cbe7] {
  margin-bottom: 12px;
  font-size: var(--fs-md, 13px);
  font-weight: 600;
  color: var(--text-1);
}
.ivd-dist__bar[data-v-d614cbe7] {
  display: flex;
  height: 32px;
  margin-bottom: 12px;
  overflow: hidden;
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-sunken);
}
.ivd-seg[data-v-d614cbe7] {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  font-size: var(--fs-sm, 12px);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #fff;
  transition: width var(--t-base, 0.3s ease);
}
/* 深色主题下语义色为亮色调，白字对比不足 → 段内文字转深色 */
html.dark { color: rgba(0, 0, 0, 0.78);
}
.ivd-seg.is-ok[data-v-d614cbe7] { background: var(--ok);
}
.ivd-seg.is-warn[data-v-d614cbe7] { background: var(--warn);
}
.ivd-seg.is-info[data-v-d614cbe7] { background: var(--info);
}
.ivd-seg.is-danger[data-v-d614cbe7] { background: var(--danger);
}
.ivd-legend[data-v-d614cbe7] { display: flex; flex-wrap: wrap; gap: 8px 16px;
}
.ivd-legend__item[data-v-d614cbe7] {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-sm, 12px);
  color: var(--text-2);
}
.ivd-legend__dot[data-v-d614cbe7] { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0;
}
.ivd-legend__dot.is-ok[data-v-d614cbe7] { background: var(--ok);
}
.ivd-legend__dot.is-warn[data-v-d614cbe7] { background: var(--warn);
}
.ivd-legend__dot.is-info[data-v-d614cbe7] { background: var(--info);
}
.ivd-legend__dot.is-danger[data-v-d614cbe7] { background: var(--danger);
}
.ivd-dist__empty[data-v-d614cbe7] {
  padding: 18px 0;
  font-size: var(--fs-sm, 12px);
  color: var(--text-3);
  text-align: center;
}
@media (max-width: 1023px) {
.ivd-sec__grid[data-v-d614cbe7] { grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 767px) {
.ivd-sec__grid[data-v-d614cbe7] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
}
.ivd-qty[data-v-d614cbe7] { padding: 10px 12px;
}
.ivd-qty__value[data-v-d614cbe7] { font-size: var(--fs-xl, 18px);
}
  /* 手机上 3 列会挤，容器内边距已在卡片层收窄 */
.ivd-legend[data-v-d614cbe7] { gap: 6px 12px;
}
}

.ivd-age[data-v-1383b236] { display: flex; flex-direction: column; gap: 10px;
}
.ivd-age__rows[data-v-1383b236] { display: flex; flex-direction: column; gap: 8px;
}
.ivd-age__row[data-v-1383b236] {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) 46px 40px;
  align-items: center;
  gap: 10px;
  font-size: var(--fs-sm, 12px);
}
.ivd-age__label[data-v-1383b236] { color: var(--text-2); white-space: nowrap;
}
.ivd-age__track[data-v-1383b236] {
  height: 8px;
  overflow: hidden;
  border-radius: 4px;
  background: var(--bg-sunken);
}
.ivd-age__bar[data-v-1383b236] { height: 100%; border-radius: 4px; transition: width var(--t-base, 0.3s ease);
}
.ivd-age__bar.is-ok[data-v-1383b236] { background: var(--ok);
}
.ivd-age__bar.is-slow[data-v-1383b236] { background: var(--warn);
}
.ivd-age__bar.is-warn[data-v-1383b236] { background: var(--warn);
}
.ivd-age__bar.is-danger[data-v-1383b236] { background: var(--danger);
}
.ivd-age__num[data-v-1383b236] {
  color: var(--text-1);
  font-weight: 600;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ivd-age__pct[data-v-1383b236] {
  color: var(--text-3);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ivd-age__empty[data-v-1383b236] {
  padding: 14px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-sunken);
}
.ivd-age__empty-title[data-v-1383b236] { font-size: var(--fs-md, 13px); font-weight: 600; color: var(--text-1); margin-bottom: 4px;
}
.ivd-age__empty-desc[data-v-1383b236] { font-size: var(--fs-sm, 12px); color: var(--text-2); line-height: 1.65;
}
.ivd-age__empty-desc code[data-v-1383b236] {
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--bg-card);
  color: var(--text-2);
  font-size: var(--fs-xs, 11px);
}
.ivd-age__foot[data-v-1383b236] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 2px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: var(--fs-xs, 11px);
  color: var(--text-3);
}
.ivd-age__removal[data-v-1383b236] { color: var(--danger); font-weight: 600;
}
@media (max-width: 767px) {
.ivd-age__row[data-v-1383b236] { grid-template-columns: 68px minmax(0, 1fr) 36px 34px; gap: 6px;
}
.ivd-age__pct[data-v-1383b236] { display: none;
}
}

.ivd-qa[data-v-9f18d315] {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.ivd-qa__planned[data-v-9f18d315] { grid-column: 1 / -1; margin: 2px 0 0; color: var(--text-3); font-size: var(--fs-xs, 11px); line-height: 1.5;
}
.ivd-qa__btn[data-v-9f18d315] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-card);
  color: var(--text-2);
  font-size: var(--fs-md, 13px);
  font-family: inherit;
  cursor: pointer;
  transition: all var(--t-fast, 0.2s ease);
}
.ivd-qa__btn[data-v-9f18d315]:hover {
  border-color: var(--border-brand);
  background: var(--bg-active);
  color: var(--brand);
}
.ivd-qa__btn[data-v-9f18d315]:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 1px;
}
@media (max-width: 767px) {
.ivd-qa__btn[data-v-9f18d315] { min-height: 38px;
}
}

.ivd-rep[data-v-a9cf8806] { display: flex; flex-direction: column; gap: 12px;
}
.ivd-rep__note[data-v-a9cf8806] {
  font-size: var(--fs-sm, 12px);
  color: var(--text-3);
  line-height: 1.7;
}

/* 对账矩阵：四列定宽内容对齐，数字列右对齐 + 等宽数字 */
.ivd-rep__grid[data-v-a9cf8806] {
  display: grid;
  grid-template-columns: minmax(84px, 1fr) repeat(3, minmax(56px, auto));
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  overflow: hidden;
}
.ivd-rep__th[data-v-a9cf8806],
.ivd-rep__td[data-v-a9cf8806] {
  padding: 7px 10px;
  background: var(--bg-card);
  font-size: var(--fs-sm, 12px);
}
.ivd-rep__th[data-v-a9cf8806] { background: var(--bg-sunken); color: var(--text-2); font-weight: 600;
}
.ivd-rep__td[data-v-a9cf8806] { color: var(--text-1);
}
.ivd-rep__th.is-num[data-v-a9cf8806], .ivd-rep__td.is-num[data-v-a9cf8806] { text-align: right; font-variant-numeric: tabular-nums;
}
.ivd-rep__td.is-muted[data-v-a9cf8806] { color: var(--text-3);
}
.ivd-rep__td.is-warn[data-v-a9cf8806] { color: var(--warn);
}
.ivd-rep__td.is-danger[data-v-a9cf8806] { color: var(--danger);
}
.ivd-rep__rows[data-v-a9cf8806] { display: flex; flex-direction: column;
}
.ivd-rep__row[data-v-a9cf8806] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
  font-size: var(--fs-md, 13px);
}
.ivd-rep__row[data-v-a9cf8806]:last-child { border-bottom: none; padding-bottom: 0;
}
.ivd-rep__label[data-v-a9cf8806] { color: var(--text-2); flex-shrink: 0;
}
.ivd-rep__value[data-v-a9cf8806] {
  color: var(--text-1);
  font-weight: 500;
  text-align: right;
  font-variant-numeric: tabular-nums;
  word-break: break-all;
}
.ivd-rep__empty[data-v-a9cf8806] { padding: 2px 0;
}
.ivd-rep__empty-title[data-v-a9cf8806] { font-size: var(--fs-md, 13px); color: var(--text-1); margin-bottom: 6px;
}
.ivd-rep__empty-desc[data-v-a9cf8806] { font-size: var(--fs-sm, 12px); color: var(--text-3); line-height: 1.7;
}
.ivd-rep__empty-desc code[data-v-a9cf8806] {
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--bg-sunken);
  color: var(--text-2);
  font-size: var(--fs-xs, 11px);
}
.ivd-rep__foot[data-v-a9cf8806] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: var(--fs-sm, 12px);
  color: var(--text-3);
}
.ivd-rep__err[data-v-a9cf8806] { color: var(--danger);
}
@media (max-width: 767px) {
.ivd-rep__grid[data-v-a9cf8806] { grid-template-columns: minmax(70px, 1fr) repeat(3, minmax(48px, auto));
}
.ivd-rep__th[data-v-a9cf8806], .ivd-rep__td[data-v-a9cf8806] { padding: 6px 7px;
}
}

.ivd-fee[data-v-66b86a1d] { display: flex; flex-direction: column; gap: 12px;
}
.ivd-fee__head[data-v-66b86a1d] { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
}
.ivd-fee__tier[data-v-66b86a1d] {
  padding: 3px 10px;
  border-radius: 6px;
  font-size: var(--fs-sm, 12px);
  font-weight: 600;
  background: color-mix(in srgb, var(--brand) 14%, transparent);
  color: var(--brand);
}
.ivd-fee__hint[data-v-66b86a1d] { font-size: var(--fs-sm, 12px); color: var(--text-3);
}
.ivd-fee__rows[data-v-66b86a1d] { display: flex; flex-direction: column;
}
.ivd-fee__row[data-v-66b86a1d] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
  font-size: var(--fs-md, 13px);
}
.ivd-fee__row[data-v-66b86a1d]:last-child { border-bottom: none;
}
.ivd-fee__label[data-v-66b86a1d] { color: var(--text-2); flex-shrink: 0;
}
.ivd-fee__value[data-v-66b86a1d] {
  color: var(--text-1);
  font-weight: 500;
  text-align: right;
  font-variant-numeric: tabular-nums;
  word-break: break-all;
}
.ivd-fee__stores[data-v-66b86a1d] { padding-top: 10px; border-top: 1px solid var(--border);
}
.ivd-fee__stores-title[data-v-66b86a1d] {
  margin-bottom: 8px;
  font-size: var(--fs-sm, 12px);
  font-weight: 600;
  color: var(--text-2);
}
.ivd-fee__store[data-v-66b86a1d] {
  display: grid;
  grid-template-columns: 44px repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding: 6px 8px;
  border-radius: var(--radius-sm, 8px);
  font-size: var(--fs-sm, 12px);
  color: var(--text-2);
}
.ivd-fee__store.is-current[data-v-66b86a1d] { background: var(--bg-active); color: var(--text-1);
}
.ivd-fee__store-name[data-v-66b86a1d] { font-weight: 600; color: var(--text-1);
}
.ivd-fee__store-cell[data-v-66b86a1d] { font-variant-numeric: tabular-nums; text-align: right;
}
.ivd-fee__empty[data-v-66b86a1d] { padding: 2px 0;
}
.ivd-fee__empty-title[data-v-66b86a1d] { font-size: var(--fs-md, 13px); color: var(--text-1); margin-bottom: 6px;
}
.ivd-fee__empty-desc[data-v-66b86a1d] { font-size: var(--fs-sm, 12px); color: var(--text-3); line-height: 1.7;
}
.ivd-fee__empty-desc code[data-v-66b86a1d] {
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--bg-sunken);
  color: var(--text-2);
  font-size: var(--fs-xs, 11px);
}
.ivd-fee__foot[data-v-66b86a1d] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: var(--fs-sm, 12px);
  color: var(--text-3);
}
.ivd-fee__err[data-v-66b86a1d] { color: var(--danger);
}
@media (max-width: 767px) {
.ivd-fee__store[data-v-66b86a1d] { grid-template-columns: 40px 1fr 1fr;
}
.ivd-fee__store-cell[data-v-66b86a1d]:nth-child(n + 4) { display: none;
}
}

.ivd-ledger[data-v-8401afd8] { display: flex; flex-direction: column; gap: 12px;
}

/* 事件合计 chips */
.ivd-ledger__sum[data-v-8401afd8] { display: flex; flex-wrap: wrap; gap: 6px 8px;
}
.ivd-ledger__chip[data-v-8401afd8] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 6px;
  font-size: var(--fs-sm, 12px);
  background: var(--bg-sunken);
  color: var(--text-2);
}
.ivd-ledger__chip b[data-v-8401afd8] { font-variant-numeric: tabular-nums;
}
.ivd-ledger__chip.is-ok[data-v-8401afd8] { background: color-mix(in srgb, var(--ok) 14%, transparent); color: var(--ok);
}
.ivd-ledger__chip.is-info[data-v-8401afd8] { background: color-mix(in srgb, var(--info) 14%, transparent); color: var(--info);
}
.ivd-ledger__chip.is-warn[data-v-8401afd8] { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn);
}
.ivd-ledger__chip.is-danger[data-v-8401afd8] { background: color-mix(in srgb, var(--danger) 14%, transparent); color: var(--danger);
}

/* 事件名 / 数量：色相区分方向（增/减），文字用混合色保证 8 套主题对比度 */
.ivd-ledger__evt[data-v-8401afd8] { font-size: var(--fs-sm, 12px); white-space: nowrap;
}
.ivd-ledger__evt.is-ok[data-v-8401afd8] { color: var(--ok);
}
.ivd-ledger__evt.is-info[data-v-8401afd8] { color: var(--info);
}
.ivd-ledger__evt.is-warn[data-v-8401afd8] { color: color-mix(in srgb, var(--warn) 75%, var(--text-1));
}
.ivd-ledger__evt.is-danger[data-v-8401afd8] { color: var(--danger);
}
.ivd-ledger__evt.is-muted[data-v-8401afd8] { color: var(--text-3);
}
.ivd-ledger__qty[data-v-8401afd8] {
  font-size: var(--fs-md, 13px);
  font-variant-numeric: tabular-nums;
  color: var(--text-1);
}
.ivd-ledger__qty.is-ok[data-v-8401afd8] { color: var(--ok);
}
.ivd-ledger__qty.is-danger[data-v-8401afd8] { color: var(--danger);
}
.ivd-ledger__qty.is-muted[data-v-8401afd8] { color: var(--text-3);
}

/* 弹窗内表格：去掉外框，融进卡片（Element Plus 主题变量已在 theme.css 接管） */
.ivd-ledger__table[data-v-8401afd8] { width: 100%; border-radius: var(--radius-sm, 8px);
}
.ivd-ledger__empty[data-v-8401afd8] { padding: 6px 0 2px;
}
.ivd-ledger__empty-title[data-v-8401afd8] { font-size: var(--fs-md, 13px); color: var(--text-1); margin-bottom: 6px;
}
.ivd-ledger__empty-desc[data-v-8401afd8] { font-size: var(--fs-sm, 12px); color: var(--text-3); line-height: 1.7;
}
.ivd-ledger__empty-desc code[data-v-8401afd8] {
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--bg-sunken);
  color: var(--text-2);
  font-size: var(--fs-xs, 11px);
}
.ivd-ledger__foot[data-v-8401afd8] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: var(--fs-sm, 12px);
  color: var(--text-3);
}
.ivd-ledger__err[data-v-8401afd8] { color: var(--danger);
}
@media (max-width: 767px) {
.ivd-ledger__table[data-v-8401afd8] { font-size: var(--fs-sm, 12px);
}
}

.ivd-sf[data-v-73fb680a] { display: flex; flex-direction: column; gap: 14px;
}

/* 月度仓储费 */
.ivd-sf__m-head[data-v-73fb680a] { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
}
.ivd-sf__period[data-v-73fb680a] {
  font-size: var(--fs-md, 13px);
  font-weight: 600;
  color: var(--text-1);
  font-variant-numeric: tabular-nums;
}
.ivd-sf__tier[data-v-73fb680a] {
  padding: 2px 9px;
  border-radius: 6px;
  font-size: var(--fs-sm, 12px);
  font-weight: 600;
  background: color-mix(in srgb, var(--brand) 14%, transparent);
  color: var(--brand);
}
.ivd-sf__hint[data-v-73fb680a] { font-size: var(--fs-sm, 12px); color: var(--text-3);
}
.ivd-sf__fee[data-v-73fb680a] { padding: 6px 0 4px;
}
.ivd-sf__fee-val[data-v-73fb680a] {
  font-size:var(--fs-3xl);
  font-weight: 700;
  color: var(--text-1);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.5px;
}
.ivd-sf__grid[data-v-73fb680a] {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.ivd-sf__cell[data-v-73fb680a] { display: flex; flex-direction: column; gap: 3px;
}
.ivd-sf__label[data-v-73fb680a] { font-size: var(--fs-xs, 11px); color: var(--text-3);
}
.ivd-sf__value[data-v-73fb680a] {
  font-size: var(--fs-md, 13px);
  color: var(--text-1);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.ivd-sf__unit[data-v-73fb680a] { font-size: var(--fs-xs, 11px); color: var(--text-3); margin-left: 2px;
}
.ivd-sf__value.is-warn[data-v-73fb680a] { color: var(--warn);
}
.ivd-sf__value.is-danger[data-v-73fb680a] { color: var(--danger);
}
.ivd-sf__hist[data-v-73fb680a] { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: baseline; padding-top: 8px; border-top: 1px solid var(--border);
}
.ivd-sf__hist-title[data-v-73fb680a] { font-size: var(--fs-xs, 11px); color: var(--text-3);
}
.ivd-sf__hist-item[data-v-73fb680a] { font-size: var(--fs-xs, 11px); color: var(--text-2); font-variant-numeric: tabular-nums;
}

/* 长期仓储费 */
.ivd-sf__ltsf[data-v-73fb680a] { padding-top: 12px; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 8px;
}
.ivd-sf__ltsf-head[data-v-73fb680a] { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap;
}
.ivd-sf__ltsf-title[data-v-73fb680a] { font-size: var(--fs-md, 13px); font-weight: 600; color: var(--text-1);
}
.ivd-sf__ltsf-total[data-v-73fb680a] { font-size: var(--fs-sm, 12px); color: var(--text-2); font-variant-numeric: tabular-nums;
}
.ivd-sf__ltsf-total--danger[data-v-73fb680a] { color: var(--danger); font-weight: 600;
}
.ivd-sf__ltsf-empty[data-v-73fb680a] { font-size: var(--fs-sm, 12px); color: var(--text-3); padding: 4px 0;
}
.ivd-sf__table[data-v-73fb680a] { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius-sm, 8px); overflow: hidden;
}
.ivd-sf__tr[data-v-73fb680a] {
  display: grid;
  grid-template-columns: 1.1fr 1fr 0.8fr 1fr 1fr;
  gap: 8px;
  padding: 7px 10px;
  font-size: var(--fs-sm, 12px);
  border-bottom: 1px solid var(--border);
}
.ivd-sf__tr[data-v-73fb680a]:last-child { border-bottom: none;
}
.ivd-sf__tr--head[data-v-73fb680a] { background: var(--bg-sunken); color: var(--text-3); font-weight: 600;
}
.ivd-sf__tr.is-muted[data-v-73fb680a] { color: var(--text-3);
}
.ivd-sf__tr.is-danger[data-v-73fb680a] { background: color-mix(in srgb, var(--danger) 8%, transparent);
}
.ivd-sf__num[data-v-73fb680a] { text-align: right; font-variant-numeric: tabular-nums;
}
.ivd-sf__amount[data-v-73fb680a] { font-weight: 600; color: var(--danger);
}
.ivd-sf__empty[data-v-73fb680a] { padding: 2px 0;
}
.ivd-sf__empty-title[data-v-73fb680a] { font-size: var(--fs-md, 13px); color: var(--text-1); margin-bottom: 6px;
}
.ivd-sf__empty-desc[data-v-73fb680a] { font-size: var(--fs-sm, 12px); color: var(--text-3); line-height: 1.7;
}
.ivd-sf__empty-desc code[data-v-73fb680a] {
  padding: 1px 5px;
  border-radius: 4px;
  background: var(--bg-sunken);
  color: var(--text-2);
  font-size: var(--fs-xs, 11px);
}
.ivd-sf__foot[data-v-73fb680a] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: var(--fs-sm, 12px);
  color: var(--text-3);
}
.ivd-sf__err[data-v-73fb680a] { color: var(--danger);
}
@media (max-width: 767px) {
.ivd-sf__grid[data-v-73fb680a] { grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ivd-sf__tr[data-v-73fb680a] { grid-template-columns: 1fr 0.9fr 0.8fr;
}
.ivd-sf__tr > span[data-v-73fb680a]:nth-child(n + 4) { display: none;
}
}

.ivd-wh[data-v-ca1f44c8] { display: flex; flex-direction: column; gap: 12px;
}

/* 汇总行 */
.ivd-wh__sum[data-v-ca1f44c8] { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: var(--fs-md, 13px); color: var(--text-2);
}
.ivd-wh__sum-item b[data-v-ca1f44c8] { font-variant-numeric: tabular-nums; color: var(--text-1); font-weight: 600;
}
.ivd-wh__sum-item .is-brand[data-v-ca1f44c8] { color: var(--brand);
}
.ivd-wh__sum-item .is-ok[data-v-ca1f44c8] { color: var(--ok);
}
.ivd-wh__sum-item .is-danger[data-v-ca1f44c8] { color: var(--danger);
}

/* 仓库明细列表 */
.ivd-wh__list[data-v-ca1f44c8] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px;
}
.ivd-wh__row[data-v-ca1f44c8] {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px 14px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-sunken);
}
.ivd-wh__fc[data-v-ca1f44c8] { display: flex; flex-direction: column; min-width: 0;
}
.ivd-wh__fc-name[data-v-ca1f44c8] { font-size: var(--fs-md, 13px); font-weight: 600; color: var(--text-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ivd-wh__fc-code[data-v-ca1f44c8] { font-size: var(--fs-xs, 11px); color: var(--text-3); font-variant-numeric: tabular-nums;
}
.ivd-wh__nums[data-v-ca1f44c8] { display: flex; align-items: center; gap: 10px; white-space: nowrap;
}
.ivd-wh__num[data-v-ca1f44c8] { font-size: var(--fs-sm, 12px); font-variant-numeric: tabular-nums;
}
.ivd-wh__num.is-ok[data-v-ca1f44c8] { color: var(--ok);
}
.ivd-wh__num.is-danger[data-v-ca1f44c8] { color: var(--danger);
}
.ivd-wh__num.is-muted[data-v-ca1f44c8] { color: var(--text-3);
}
.ivd-wh__meta[data-v-ca1f44c8] { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; min-width: 0;
}
.ivd-wh__evt[data-v-ca1f44c8] { font-size: var(--fs-sm, 12px); color: var(--text-2);
}
.ivd-wh__last[data-v-ca1f44c8] { font-size: var(--fs-xs, 11px); color: var(--text-3); font-variant-numeric: tabular-nums; white-space: nowrap;
}

/* 全站当前在库（对照行：明确与上方「流量」口径不同） */
.ivd-wh__current[data-v-ca1f44c8] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  padding: 10px 12px;
  border: 1px solid var(--brand-border, rgba(120, 120, 255, 0.25));
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-brand-soft, rgba(120, 120, 255, 0.06));
  font-size: var(--fs-md, 13px);
  color: var(--text-2);
}
.ivd-wh__current-label[data-v-ca1f44c8] { font-weight: 600; color: var(--text-1);
}
.ivd-wh__current-nums[data-v-ca1f44c8] { font-variant-numeric: tabular-nums; color: var(--text-1);
}
.ivd-wh__current-nums b[data-v-ca1f44c8] { font-weight: 700;
}
.ivd-wh__current-sep[data-v-ca1f44c8] { color: var(--text-3); margin: 0 2px;
}
.ivd-wh__current-hint[data-v-ca1f44c8] { font-size: var(--fs-xs, 11px); color: var(--text-3); margin-left: auto;
}

/* 空态 / 错误 */
.ivd-wh__empty[data-v-ca1f44c8] { padding: 6px 0 2px;
}
.ivd-wh__empty-title[data-v-ca1f44c8] { font-size: var(--fs-md, 13px); color: var(--text-1); margin-bottom: 6px;
}
.ivd-wh__empty-desc[data-v-ca1f44c8] { font-size: var(--fs-sm, 12px); color: var(--text-3); line-height: 1.7;
}

/* 底部说明 */
.ivd-wh__foot[data-v-ca1f44c8] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: var(--fs-sm, 12px);
  color: var(--text-3);
}
.ivd-wh__hint[data-v-ca1f44c8] { color: var(--text-3);
}
@media (max-width: 767px) {
.ivd-wh__row[data-v-ca1f44c8] { grid-template-columns: minmax(0, 1fr) auto;
}
.ivd-wh__meta[data-v-ca1f44c8] { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between;
}
}

/* 锚定层：铺满弹窗体内容区，scrim 遮罩左侧内容，面板自右侧滑入 */
.ivd-snap[data-v-c52cd851] { position: absolute; inset: 0; z-index: 20;
}
.ivd-snap__scrim[data-v-c52cd851] { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.28); cursor: pointer;
}
.ivd-snap__panel[data-v-c52cd851] {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 520px;
  max-width: 88%;
  background: var(--bg-card);
  border-left: 1px solid var(--border);
  box-shadow: -8px 0 24px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
}
.ivd-snap__head[data-v-c52cd851] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}
.ivd-snap__title[data-v-c52cd851] { font-size: var(--fs-lg, 15px); font-weight: 600; color: var(--text-1);
}
.ivd-snap__close[data-v-c52cd851] {
  border: none;
  background: none;
  cursor: pointer;
  font-size:var(--fs-2xl);
  line-height: 1;
  color: var(--text-3);
  padding: 2px 6px;
  border-radius: 6px;
}
.ivd-snap__close[data-v-c52cd851]:hover { background: var(--bg-active); color: var(--text-1);
}
.ivd-snap__body[data-v-c52cd851] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ivd-snap__err[data-v-c52cd851],
.ivd-snap__empty[data-v-c52cd851] {
  padding: 24px 12px;
  color: var(--text-3);
  font-size: var(--fs-md, 13px);
  text-align: center;
}
.ivd-snap__err[data-v-c52cd851] { color: var(--danger);
}

/* 概览卡 */
.ivd-snap__cards[data-v-c52cd851] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
}
.ivd-snap__card[data-v-c52cd851] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-card);
}
.ivd-snap__card-label[data-v-c52cd851] { font-size: var(--fs-xs, 11px); color: var(--text-3);
}
.ivd-snap__card b[data-v-c52cd851] { font-size: var(--fs-lg, 16px); color: var(--text-1); font-variant-numeric: tabular-nums;
}
.ivd-snap__card.is-brand[data-v-c52cd851] { border-color: var(--brand-border, rgba(120, 120, 255, 0.3)); background: var(--bg-brand-soft, rgba(120, 120, 255, 0.06));
}
.ivd-snap__card.is-brand b[data-v-c52cd851] { color: var(--brand);
}

/* 趋势 sparkline */
.ivd-snap__spark[data-v-c52cd851] { padding: 8px 2px 0;
}
.ivd-snap__spark-title[data-v-c52cd851] { font-size: var(--fs-xs, 11px); color: var(--text-3); margin-bottom: 4px;
}
.ivd-snap__spark-svg[data-v-c52cd851] { width: 100%; height: 48px; display: block;
}
.ivd-snap__hint[data-v-c52cd851] { font-size: var(--fs-xs, 11px); color: var(--text-3);
}

/* 历史表 */
.ivd-snap__table-wrap[data-v-c52cd851] { border: 1px solid var(--border); border-radius: var(--radius-sm, 8px); overflow: auto; max-height: 52vh;
}
.ivd-snap__table[data-v-c52cd851] { width: 100%; border-collapse: collapse; font-size: var(--fs-sm, 12px);
}
.ivd-snap__table th[data-v-c52cd851],
.ivd-snap__table td[data-v-c52cd851] { padding: 8px 10px; border-bottom: 1px solid var(--border); white-space: nowrap;
}
.ivd-snap__table th[data-v-c52cd851] { position: sticky; top: 0; background: var(--bg-sunken); color: var(--text-2); font-weight: 600; text-align: left;
}
.ivd-snap__table td[data-v-c52cd851] { color: var(--text-1); font-variant-numeric: tabular-nums;
}
.ivd-snap__table .num[data-v-c52cd851] { text-align: right;
}
.ivd-snap__table tbody tr[data-v-c52cd851]:hover { background: var(--bg-active);
}
.ivd-snap__foot[data-v-c52cd851] { display: flex; justify-content: flex-end;
}
.ivd-snap__foot a[data-v-c52cd851] { color: var(--brand); font-size: var(--fs-sm, 12px); text-decoration: none;
}
.ivd-snap__foot a[data-v-c52cd851]:hover { text-decoration: underline;
}

/* 滑入 / 滑出过渡 */
.ivd-snap-enter-active[data-v-c52cd851],
.ivd-snap-leave-active[data-v-c52cd851] { transition: opacity 0.25s ease;
}
.ivd-snap-enter-active .ivd-snap__panel[data-v-c52cd851],
.ivd-snap-leave-active .ivd-snap__panel[data-v-c52cd851] { transition: transform 0.25s ease;
}
.ivd-snap-enter-from[data-v-c52cd851],
.ivd-snap-leave-to[data-v-c52cd851] { opacity: 0;
}
.ivd-snap-enter-from .ivd-snap__panel[data-v-c52cd851],
.ivd-snap-leave-to .ivd-snap__panel[data-v-c52cd851] { transform: translateX(100%);
}
@media (max-width: 767px) {
.ivd-snap__cards[data-v-c52cd851] { grid-template-columns: repeat(2, 1fr);
}
}

/* 锚定层：铺满弹窗体内容区，scrim 遮罩左侧内容，面板自右侧滑入（与库存历史同款） */
.ivd-snap[data-v-111b2267] { position: absolute; inset: 0; z-index: 20;
}
.ivd-snap__scrim[data-v-111b2267] { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.28); cursor: pointer;
}
.ivd-snap__panel[data-v-111b2267] {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 520px;
  max-width: 88%;
  background: var(--bg-card);
  border-left: 1px solid var(--border);
  box-shadow: -8px 0 24px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
}
.ivd-snap__head[data-v-111b2267] {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}
.ivd-snap__title[data-v-111b2267] { font-size: var(--fs-lg, 15px); font-weight: 600; color: var(--text-1);
}
.ivd-snap__close[data-v-111b2267] {
  border: none;
  background: none;
  cursor: pointer;
  font-size:var(--fs-2xl);
  line-height: 1;
  color: var(--text-3);
  padding: 2px 6px;
  border-radius: 6px;
}
.ivd-snap__close[data-v-111b2267]:hover { background: var(--bg-active); color: var(--text-1);
}
.ivd-snap__body[data-v-111b2267] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ivd-snap__err[data-v-111b2267],
.ivd-snap__empty[data-v-111b2267] { padding: 24px 12px; color: var(--text-3); font-size: var(--fs-md, 13px); text-align: center;
}
.ivd-snap__err[data-v-111b2267] { color: var(--danger);
}
.ivd-snap__hint[data-v-111b2267] { font-size: var(--fs-xs, 11px); color: var(--text-3);
}
.ivd-ib__list[data-v-111b2267] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px;
}
.ivd-ib__item[data-v-111b2267] {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  padding: 10px 12px;
  background: var(--bg-card);
}
.ivd-ib__top[data-v-111b2267] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px;
}
.ivd-ib__name[data-v-111b2267] { font-size: var(--fs-md, 13px); font-weight: 600; color: var(--text-1);
}
.ivd-ib__meta[data-v-111b2267] { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: var(--fs-sm, 12px); color: var(--text-2);
}
.ivd-ib__meta code[data-v-111b2267] { font-size: var(--fs-xs, 11px); color: var(--text-3); word-break: break-all;
}
.ivd-ib__meta b[data-v-111b2267] { color: var(--brand); font-variant-numeric: tabular-nums;
}
.ivd-ib__foot[data-v-111b2267] { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; margin-top: 4px;
}
.ivd-ib__sync-msg[data-v-111b2267] { font-size: var(--fs-sm, 12px); color: var(--ok);
}

/* 复用详情弹窗内的按钮样式（与 IvdDetailDialog 同源变量） */
.ivd-btn[data-v-111b2267] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 13px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-card);
  color: var(--text-2);
  font-size: var(--fs-md, 13px);
  font-family: inherit;
  cursor: pointer;
  transition: all var(--t-fast, 0.2s ease);
}
.ivd-btn[data-v-111b2267]:hover:not(:disabled) { border-color: var(--border-brand); color: var(--brand); background: var(--bg-active);
}
.ivd-btn[data-v-111b2267]:disabled { opacity: 0.45; cursor: not-allowed;
}
.ivd-btn--primary[data-v-111b2267] { background: var(--brand); border-color: var(--brand); color: var(--text-on-brand, #fff); font-weight: 500;
}
.ivd-btn--primary[data-v-111b2267]:hover:not(:disabled) { color: var(--text-on-brand, #fff); background: var(--brand-2, var(--brand));
}

/* 滑入 / 滑出过渡 */
.ivd-snap-enter-active[data-v-111b2267],
.ivd-snap-leave-active[data-v-111b2267] { transition: opacity 0.25s ease;
}
.ivd-snap-enter-active .ivd-snap__panel[data-v-111b2267],
.ivd-snap-leave-active .ivd-snap__panel[data-v-111b2267] { transition: transform 0.25s ease;
}
.ivd-snap-enter-from[data-v-111b2267],
.ivd-snap-leave-to[data-v-111b2267] { opacity: 0;
}
.ivd-snap-enter-from .ivd-snap__panel[data-v-111b2267],
.ivd-snap-leave-to .ivd-snap__panel[data-v-111b2267] { transform: translateX(100%);
}
@media (max-width: 767px) {
.ivd-ib__foot[data-v-111b2267] > * { flex: 1;
}
}

.ivd-dlg__head[data-v-400cb091] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0;
}
.ivd-dlg__label[data-v-400cb091] { color: var(--text-3); font-size: var(--fs-md, 13px);
}
.ivd-dlg__sku[data-v-400cb091] {
  color: var(--text-1);
  font-size: var(--fs-lg, 15px);
  font-variant-numeric: tabular-nums;
  word-break: break-all;
}
.ivd-dlg__rt[data-v-400cb091] { font-size: var(--fs-xs, 11px); color: var(--ok); white-space: nowrap;
}
.ivd-dlg__rt-err[data-v-400cb091] { margin: 0 0 10px; font-size: var(--fs-sm, 12px); color: var(--danger);
}
.ivd-hint[data-v-400cb091] { font-size: var(--fs-sm, 12px); color: var(--text-3);
}
/* 卡片右上角的文字按钮（如「库存分类账 · 刷新」），比 el-button link 更轻 */
.ivd-link[data-v-400cb091] {
  padding: 0;
  border: none;
  background: none;
  color: var(--brand);
  font-size: var(--fs-sm, 12px);
  font-family: inherit;
  cursor: pointer;
}
.ivd-link[data-v-400cb091]:disabled { color: var(--text-3); cursor: default;
}

/* 骨架 / 错误态 */
.ivd-dlg__skeleton[data-v-400cb091] { padding: 20px;
}
.ivd-dlg__error[data-v-400cb091] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 48px 20px;
  text-align: center;
}
.ivd-dlg__error-ico[data-v-400cb091] { font-size:var(--fs-4xl);
}
.ivd-dlg__error-msg[data-v-400cb091] { font-size: var(--fs-lg, 15px); color: var(--text-1);
}
.ivd-dlg__error-hint[data-v-400cb091] { font-size: var(--fs-sm, 12px); color: var(--text-3);
}

/* 主栅格：与设计稿一致（主内容 + 360 侧栏） */
.ivd-dlg__grid[data-v-400cb091] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 336px;
  gap: 16px;
  margin-top: 16px;
  align-items: start;
}
.ivd-dlg__main[data-v-400cb091],
.ivd-dlg__side[data-v-400cb091] { display: flex; flex-direction: column; gap: 16px; min-width: 0;
}

/* 滞销 / 冗余预警 */
.ivd-alert[data-v-400cb091] {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 13px 16px;
  border-radius: var(--radius-md, 12px);
}
.ivd-alert__ico[data-v-400cb091] { width: 20px; height: 20px; flex-shrink: 0; margin-top: 1px;
}
.ivd-alert__body[data-v-400cb091] { min-width: 0;
}
.ivd-alert__title[data-v-400cb091] { font-size: var(--fs-md, 13px); font-weight: 600; margin-bottom: 2px;
}
.ivd-alert__desc[data-v-400cb091] { font-size: var(--fs-sm, 12px); color: var(--text-2); line-height: 1.6;
}
/* 预警标题承载关键业务提示。若直接用语义色，浅色主题下对比仅 2.7 左右（偏弱）：
   故标题与 --text-1 按 62/38 混合 —— 浅色主题下加深、深色主题下提亮，
   8 套主题实测对比度均 ≥4.8；图标仍用纯语义色以保持色相识别度。 */
.ivd-alert.is-warn .ivd-alert__ico[data-v-400cb091] { color: var(--warn);
}
.ivd-alert.is-warn .ivd-alert__title[data-v-400cb091] { color: color-mix(in srgb, var(--warn) 62%, var(--text-1));
}
.ivd-alert.is-warn[data-v-400cb091] {
  background: color-mix(in srgb, var(--warn) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--warn) 38%, transparent);
}
.ivd-alert.is-danger .ivd-alert__ico[data-v-400cb091] { color: var(--danger);
}
.ivd-alert.is-danger .ivd-alert__title[data-v-400cb091] { color: color-mix(in srgb, var(--danger) 62%, var(--text-1));
}
.ivd-alert.is-danger[data-v-400cb091] {
  background: color-mix(in srgb, var(--danger) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--danger) 38%, transparent);
}
.ivd-alert.is-info .ivd-alert__ico[data-v-400cb091] { color: var(--info);
}
.ivd-alert.is-info .ivd-alert__title[data-v-400cb091] { color: color-mix(in srgb, var(--info) 62%, var(--text-1));
}
.ivd-alert.is-info[data-v-400cb091] {
  background: color-mix(in srgb, var(--info) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--info) 38%, transparent);
}

/* 侧栏信息行 */
.ivd-row[data-v-400cb091] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
  font-size: var(--fs-md, 13px);
}
.ivd-row[data-v-400cb091]:last-child { border-bottom: none; padding-bottom: 0;
}
.ivd-row__label[data-v-400cb091] { flex-shrink: 0; color: var(--text-2);
}
.ivd-row__value[data-v-400cb091] { min-width: 0; color: var(--text-1); font-weight: 500; text-align: right; word-break: break-all;
}
.ivd-row__value.is-mono[data-v-400cb091] { font-variant-numeric: tabular-nums;
}
.ivd-row__value.is-ok[data-v-400cb091] { color: var(--ok);
}
.ivd-row__value.is-info[data-v-400cb091] { color: var(--info);
}
.ivd-row__value.is-warn[data-v-400cb091] { color: var(--warn);
}
.ivd-row__value.is-danger[data-v-400cb091] { color: var(--danger);
}

/* 底部操作区 */
.ivd-dlg__foot[data-v-400cb091] { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap;
}
.ivd-btn[data-v-400cb091] {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 13px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm, 8px);
  background: var(--bg-card);
  color: var(--text-2);
  font-size: var(--fs-md, 13px);
  font-family: inherit;
  cursor: pointer;
  transition: all var(--t-fast, 0.2s ease);
}
.ivd-btn[data-v-400cb091]:hover:not(:disabled) { border-color: var(--border-brand); color: var(--brand); background: var(--bg-active);
}
.ivd-btn[data-v-400cb091]:disabled { opacity: 0.45; cursor: not-allowed;
}
.ivd-btn--primary[data-v-400cb091] {
  background: var(--brand);
  border-color: var(--brand);
  color: var(--text-on-brand, #fff);
  font-weight: 500;
}
.ivd-btn--primary[data-v-400cb091]:hover:not(:disabled) { color: var(--text-on-brand, #fff); background: var(--brand-2, var(--brand));
}

/* 标签（概览/头部共用同一套语义） */
.ivd-tag[data-v-400cb091] {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 6px;
  font-size: var(--fs-sm, 12px);
  font-weight: 500;
  line-height: 1.6;
  white-space: nowrap;
}
.ivd-tag.is-ok[data-v-400cb091] { background: color-mix(in srgb, var(--ok) 14%, transparent); color: var(--ok);
}
.ivd-tag.is-info[data-v-400cb091] { background: color-mix(in srgb, var(--info) 14%, transparent); color: var(--info);
}
.ivd-tag.is-warn[data-v-400cb091] { background: color-mix(in srgb, var(--warn) 16%, transparent); color: var(--warn);
}
.ivd-tag.is-danger[data-v-400cb091] { background: color-mix(in srgb, var(--danger) 14%, transparent); color: var(--danger);
}
.ivd-tag.is-muted[data-v-400cb091] { background: var(--bg-sunken); color: var(--text-2);
}
@media (max-width: 1023px) {
.ivd-dlg__grid[data-v-400cb091] { grid-template-columns: minmax(0, 1fr);
}
}
@media (max-width: 767px) {
.ivd-dlg__head[data-v-400cb091] { gap: 6px;
}
.ivd-btn[data-v-400cb091] { min-height: 38px;
}
.ivd-dlg__foot[data-v-400cb091] { justify-content: stretch;
}
.ivd-dlg__foot[data-v-400cb091] > * { flex: 1;
}
}

.ivd-dialog.el-dialog {
  width: 1200px;
  max-width: 94vw;
  margin-bottom: 5vh;
}
.ivd-dialog .el-dialog__header { padding: 16px 20px 12px; margin-right: 0;
}
.ivd-dialog .el-dialog__body {
  /* 弹窗体内独立滚动：内容较长时保持头部与底部操作区恒可见。
     改为 position:relative + 不滚动，滚动下放到 .ivd-dlg__grid，
     以便「库存历史」侧板 absolute 锚定到弹窗框、不被内容滚动带走。 */
  position: relative;
  overflow: visible;
  padding: 0 20px 4px;
}
.ivd-dlg__grid { max-height: 70vh; overflow-y: auto;
}
.ivd-dialog .el-dialog__footer { padding: 12px 20px 16px; border-top: 1px solid var(--border);
}
@media (max-width: 767px) {
.ivd-dialog.el-dialog { width: 94vw; top: 4vh; margin-top: 0;
}
.ivd-dialog .el-dialog__body { padding: 0 12px 4px;
}
.ivd-dlg__grid { max-height: 74vh;
}
}
