@import url('utilities-compat.css');

    /* 说明性辅文：楷体与正文区分，减少与标签/主文案抢视线 */
    .ui-hint-kai {
      font-family: "Kaiti SC", "STKaiti", "KaiTi", "FangSong", "SimSun", serif;
    }

    /* 仅对辅助技术/密码管理器暴露，不占用布局（改密码表单需关联账号） */
    .ui-sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    /* 主题 token 见 css/tokens.css（--ds-* 语义层 + 兼容别名） */

    /* 颜色类（映射语义 status token） */
    .text-green-600 { color: var(--ds-success); }
    .text-yellow-600 { color: var(--ds-warning); }
    .font-medium { font-weight: 500; }

    /* 总部经营看板 */
    .hq-hero-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
      gap: 12px;
      margin-bottom: 14px;
    }
    .hq-hero-grid--money {
      grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
    }
    /* 独立打开总部看板（全宽）：大屏才 5 列 */
    .hq-dashboard:not(.hq-dashboard--in-workspace) .hq-hero-grid--money {
      grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
    }
    @media (min-width: 1100px) {
      .hq-dashboard:not(.hq-dashboard--in-workspace) .hq-hero-grid--money {
        grid-template-columns: repeat(5, minmax(0, 1fr));
      }
    }
    /* 我的空间内嵌：空间不足时换行，金额保持看板大号 */
    .hq-dashboard--in-workspace .hq-hero-grid--money {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(196px, 1fr));
      gap: 12px;
    }
    .hq-dashboard--in-workspace .hq-hero-grid--money .hq-hero-card {
      min-width: 0;
      min-height: auto;
    }
    .hq-dashboard--in-workspace .hq-hero-title,
    .hq-dashboard--in-workspace .hq-hero-sub,
    .hq-dashboard--in-workspace .hq-hero-card .hq-kpi-trend {
      min-width: 0;
      width: 100%;
    }
    /* 我的空间内嵌（老板）：仅收起全公司库存汇总条，各仓表仍展示 */
    .hq-dashboard--embed-boss .hq-dash-section--inventory {
      display: none;
    }
    .hq-dashboard--embed-boss .hq-stat--sales,
    .hq-dashboard--embed-boss .hq-stat--orders,
    .hq-dashboard--embed-boss .hq-stat--delivery {
      display: none;
    }
    .hq-dashboard--embed-boss .hq-dash-nav-row-extra {
      display: none;
    }
    .hq-dashboard--embed-boss .report-header-hint-inline {
      display: none;
    }
    .hq-dashboard--embed-boss .hq-money-stat-row {
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }
    /* 副总内嵌：与完整看板一致展示库存与各仓可视化（页面向下滚动可见） */
    .hq-dashboard--in-workspace .hq-dash-section--wh {
      scroll-margin-top: 12px;
    }
    .hq-dash-body .hq-dash-section {
      margin-top: 0;
    }
    .hq-dash-section + .hq-dash-section,
    .hq-dash-body > .biz-dash-columns + .biz-dash-band,
    .hq-dash-body > .biz-dash-band + .biz-dash-columns,
    .hq-dash-body > .biz-dash-columns + .biz-dash-columns {
      margin-top: 0;
    }
    .hq-dash-cash-due-row {
      display: grid;
      grid-template-columns: minmax(0, 1.4fr) minmax(240px, 0.9fr);
      gap: 16px;
      align-items: stretch;
    }
    .hq-dash-cash-due-row--cash-only,
    .hq-dash-cash-due-row--due-only {
      grid-template-columns: minmax(0, 1fr);
    }
    .hq-dash-due-stack {
      display: flex;
      flex-direction: column;
      gap: 16px;
      min-width: 0;
    }
    .hq-dash-due-stack .biz-dash-band {
      flex: 1 1 auto;
      min-height: 0;
    }
    @media (max-width: 960px) {
      .hq-dash-cash-due-row {
        grid-template-columns: minmax(0, 1fr);
      }
    }
    .hq-dash-period-range {
      margin-left: 0;
      font-size: 12px;
      font-weight: 500;
      color: var(--ds-text-secondary);
      white-space: nowrap;
    }
    .hq-dash-inline-meta {
      margin-top: 12px;
      padding-top: 12px;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 75%, transparent);
      font-size: 13px;
      line-height: 1.5;
      color: var(--ds-text-secondary);
    }
    .hq-dash-inline-meta strong {
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      color: var(--ds-text);
    }
    .hq-dash-section--actions .biz-nav-link {
      font-size: 13px;
    }
    .hq-dash-inline-meta__sep {
      margin: 0 8px;
      opacity: 0.5;
    }
    .hq-due-list {
      list-style: none;
      margin: 0;
      padding: 0;
      font-size: 14px;
      line-height: 1.55;
      color: var(--ds-text);
    }
    .hq-due-list li + li {
      margin-top: 6px;
    }
    .hq-due-list .hq-due-list-empty {
      color: var(--ds-text-muted);
    }
    .hq-due-list li.hq-due-overdue {
      color: var(--ds-danger-emphasis);
    }
    .hq-dash-body .hq-cash-viz-panel {
      border: none;
      padding: 0;
      margin: 0;
      background: transparent;
      box-shadow: none;
    }
    .hq-dash-body .hq-inv-company-panel {
      border: none;
      padding: 0;
      margin: 0;
      background: transparent;
      box-shadow: none;
    }
    .hq-inv-type-row {
      margin-top: 4px;
    }
    .hq-inv-type-row + .hq-inv-type-row {
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 60%, transparent);
    }
    .hq-cash-strip-list--all {
      max-height: min(420px, 50vh);
      overflow-y: auto;
      padding-right: 4px;
    }
    .hq-dash-body .biz-stat__meta.trend-good,
    .biz-stat__meta.trend-good {
      color: var(--ds-success-emphasis);
    }
    .hq-dash-body .biz-stat__meta.trend-bad,
    .biz-stat__meta.trend-bad {
      color: var(--ds-danger-emphasis);
    }
    .hq-dash-body .biz-stat__meta.trend-neutral,
    .biz-stat__meta.trend-neutral {
      color: var(--ds-text-muted);
    }
    .hq-due-week-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 12px;
    }
    #hqDuePayablesList,
    #hqDueReceivablesList {
      list-style: none;
      padding-left: 0;
    }
    #hqDuePayablesList .hq-due-list-empty,
    #hqDueReceivablesList .hq-due-list-empty {
      list-style: none;
    }
    .hq-due-week-grid li.hq-due-overdue {
      color: var(--ds-danger-emphasis);
    }
    .hq-inv-company-panel {
      border: 1px solid var(--ds-border);
      border-radius: 14px;
      background: var(--ds-bg-surface);
      padding: 16px 18px;
      margin-bottom: 14px;
      box-shadow: none;
    }
    .hq-inv-company-panel__hero {
      display: flex;
      flex-wrap: wrap;
      gap: 16px 24px;
      align-items: flex-end;
      justify-content: space-between;
      margin-bottom: 14px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--ds-border);
    }
    .hq-inv-company-panel__label {
      margin: 0 0 4px;
      font-size: 12px;
      color: var(--ds-text-secondary);
      letter-spacing: 0.04em;
    }
    .hq-inv-company-panel__total {
      margin: 0;
      font-size: 32px;
      font-weight: 700;
      color: var(--ds-text);
      line-height: 1.1;
    }
    .hq-inv-company-panel__trend {
      margin: 6px 0 0;
      font-size: 12px;
    }
    .hq-inv-type-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
      gap: 10px;
    }
    .hq-inv-type-chip {
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface);
      padding: 10px 12px;
    }
    .hq-inv-type-chip__name {
      display: block;
      font-size: 12px;
      color: var(--ds-text-secondary);
      margin-bottom: 4px;
    }
    .hq-inv-type-chip__val {
      display: block;
      font-size: 16px;
      font-weight: 700;
      color: var(--ds-text);
    }
    .hq-inv-type-chip__meta {
      display: block;
      margin-top: 4px;
      font-size: 11px;
      color: var(--ds-text-muted);
    }
    .hq-cash-viz-panel {
      border: 1px solid var(--ds-border);
      border-radius: 14px;
      background: var(--ds-bg-surface);
      padding: 14px 16px 12px;
      margin-bottom: 14px;
      box-shadow: none;
    }
    .hq-cash-viz-head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px 16px;
      margin-bottom: 12px;
      padding-bottom: 10px;
      border-bottom: 1px solid var(--ds-border);
    }
    .hq-cash-viz-head .hq-cash-viz-meta {
      margin: 0;
      flex: 1;
      min-width: 200px;
    }
    .hq-cash-viz-body {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .hq-cash-total {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 8px 14px;
      padding-bottom: 10px;
      border-bottom: 1px solid var(--ds-border);
    }
    .hq-cash-total__label {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
    }
    .hq-cash-total__val {
      font-size: 26px;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      color: var(--ds-text);
      line-height: 1.15;
    }
    .hq-cash-strip-list {
      display: flex;
      flex-direction: column;
      gap: 0;
      font-size: 13px;
      line-height: 1.35;
    }
    .hq-cash-strip-list:not(.hq-cash-strip-list--expanded) .hq-cash-strip--more {
      display: none;
    }
    .hq-cash-expand-rest {
      align-self: flex-start;
      margin-top: 4px;
    }
    .hq-cash-strip {
      display: grid;
      grid-template-columns: minmax(5.5rem, 7.5rem) minmax(6.5rem, auto) 2.75rem minmax(0, 1fr);
      gap: 8px 12px;
      align-items: center;
      padding: 9px 0;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 50%, transparent);
    }
    .hq-cash-strip--before-expand,
    .hq-cash-strip-list > .hq-cash-strip:last-child {
      border-bottom: none;
    }
    .hq-cash-strip--head {
      padding: 0 0 8px;
      border-bottom: 1px solid var(--ds-border);
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-text-secondary);
    }
    .hq-cash-strip--head .hq-cash-strip__track--head,
    .hq-cash-strip--head .hq-cash-strip__amt,
    .hq-cash-strip--head .hq-cash-strip__pct {
      font-weight: 600;
    }
    .hq-cash-strip__name {
      font-weight: 600;
      color: var(--ds-text);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      min-width: 0;
    }
    .hq-cash-strip__track {
      height: 10px;
      border-radius: 999px;
      background: color-mix(in srgb, var(--ds-border) 70%, transparent);
      overflow: hidden;
      width: 100%;
      min-width: 0;
      justify-self: stretch;
    }
    .hq-cash-strip__track--head {
      height: auto;
      background: transparent;
      font-size: 11px;
      color: var(--ds-text-secondary);
    }
    .hq-cash-strip__fill {
      display: block;
      height: 100%;
      border-radius: 999px;
      background: var(--primary-color, #2563eb);
      min-width: 0;
      margin-right: auto;
      transition: width 0.35s ease;
    }
    .hq-cash-strip__amt {
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      color: var(--ds-text);
      text-align: left;
      white-space: nowrap;
      font-size: 12px;
      justify-self: start;
    }
    .hq-cash-strip__pct {
      font-size: 12px;
      font-variant-numeric: tabular-nums;
      text-align: left;
      color: var(--ds-text-secondary);
      white-space: nowrap;
      justify-self: start;
    }
    @media (max-width: 720px) {
      .hq-cash-strip {
        grid-template-columns: minmax(4.5rem, 6rem) minmax(5.5rem, auto) 2.5rem minmax(0, 1fr);
        gap: 6px 8px;
      }
      .hq-cash-strip__amt {
        font-size: 11px;
      }
    }
    .hq-cash-viz-meta {
      font-size: 11px;
      color: var(--ds-text-secondary);
      line-height: 1.5;
    }
    #paymentBankBalanceHint.text-amber-700 {
      color: var(--ds-warning-emphasis);
    }
    #paymentBankBalanceHint.text-red-600 {
      color: var(--ds-danger);
    }
    .hq-hero-card {
      border-radius: 14px;
      padding: 16px 14px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      box-shadow: none;
      min-width: 0;
      overflow: visible;
      container-type: inline-size;
      display: flex;
      flex-direction: column;
      min-height: 132px;
    }
    .hq-hero-card--primary {
      background: var(--ds-bg-surface-raised);
      border-color: var(--ds-border);
      border-left: 3px solid var(--ds-brand);
      color: var(--ds-text);
      box-shadow: none;
    }
    .hq-hero-title {
      font-size: 13px;
      line-height: 1.35;
      opacity: 0.9;
      margin-bottom: 8px;
      overflow: hidden;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
    }
    .hq-hero-value {
      font-size: clamp(13px, 5.5cqw, 28px);
      line-height: 1.2;
      font-weight: 700;
      letter-spacing: 0.01em;
      max-width: 100%;
      min-width: 0;
      width: 100%;
      overflow: visible;
      text-overflow: clip;
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: keep-all;
      font-variant-numeric: tabular-nums;
      cursor: default;
    }
    .hq-hero-sub {
      font-size: 12px;
      margin-top: 4px;
      opacity: 0.85;
      max-width: 100%;
      min-width: 0;
      line-height: 1.35;
    }
    .hq-hero-sub--stacked {
      display: flex;
      flex-direction: column;
      gap: 2px;
      overflow: visible;
      white-space: normal;
    }
    .hq-hero-sub-row {
      display: block;
      overflow: visible;
      text-overflow: clip;
      white-space: normal;
      overflow-wrap: anywhere;
      font-variant-numeric: tabular-nums;
    }
    .hq-hero-card .hq-kpi-trend {
      margin-top: auto;
      padding-top: 6px;
      font-size: 12px;
      line-height: 1.35;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      max-width: 100%;
      min-width: 0;
    }
    .hq-hero-card .hq-kpi-trend--spacer {
      visibility: hidden;
      pointer-events: none;
      user-select: none;
    }
    .hq-section-title {
      font-size: 12px;
      color: var(--ds-text-secondary);
      text-transform: uppercase;
      letter-spacing: 0.06em;
      margin: 14px 0 8px;
      font-weight: 600;
    }
    .hq-kpi-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
      gap: 10px;
    }
    .hq-kpi-card {
      border: 1px solid var(--ds-border);
      border-radius: 12px;
      background: var(--ds-bg-surface-raised);
      padding: 12px 14px;
      box-shadow: none;
    }
    .hq-kpi-label {
      font-size: 12px;
      color: var(--ds-text-secondary);
      margin-bottom: 6px;
    }
    .hq-kpi-main {
      font-size: 20px;
      font-weight: 700;
      color: var(--ds-text);
      line-height: 1.2;
    }
    .hq-kpi-sub {
      margin-top: 4px;
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .hq-kpi-trend {
      margin-top: 6px;
      font-size: 12px;
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .hq-action-badge {
      display: inline-flex;
      align-items: center;
      flex-shrink: 0;
      font-size: 11px;
      line-height: 1.2;
      padding: 3px 8px;
      border-radius: 6px;
      margin: 2px 0 0;
      font-weight: 600;
      letter-spacing: 0.02em;
    }
    .hq-action-badge--high {
      background: var(--ds-danger-muted);
      color: var(--ds-danger-emphasis);
    }
    .hq-action-badge--mid {
      background: var(--ds-warning-muted);
      color: var(--ds-warning-emphasis);
    }
    .hq-action-badge--low {
      background: var(--ds-success-muted);
      color: var(--ds-success-emphasis);
    }
    .hq-dash-body > .hq-dash-section:first-child .hq-section-title {
      margin-top: 0;
    }
    .hq-actions-panel {
      border: 1px solid var(--ds-border);
      border-radius: 14px;
      background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--primary-color, #2563eb) 6%, var(--ds-bg-surface)) 0%,
        var(--ds-bg-surface) 100%
      );
      padding: 14px 16px 16px;
      box-shadow: none;
    }
    .hq-actions-panel__header {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      justify-content: space-between;
      gap: 4px 12px;
      margin-bottom: 12px;
      padding-bottom: 10px;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 85%, transparent);
    }
    .hq-actions-panel__title {
      margin: 0;
      font-size: 15px;
      font-weight: 700;
      color: var(--ds-text);
      letter-spacing: 0.01em;
    }
    .hq-actions-panel__hint {
      margin: 0;
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .hq-actions-panel__grid {
      display: grid;
      grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.9fr);
      gap: 14px 20px;
      align-items: start;
    }
    .hq-actions-list {
      min-width: 0;
    }
    .hq-actions-list__ok {
      margin: 0;
      padding: 10px 12px;
      border-radius: 10px;
      background: color-mix(in srgb, var(--ds-success-muted, #dcfce7) 55%, transparent);
      color: var(--ds-success-emphasis, #15803d);
      line-height: 1.5;
    }
    .hq-actions-list ul {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    .hq-actions-list li {
      margin: 0;
      padding: 10px 12px;
      border-radius: 10px;
      background: var(--ds-bg-surface-raised);
      border: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
      line-height: 1.55;
    }
    .hq-actions-panel__aside {
      display: flex;
      flex-direction: column;
      gap: 10px;
      min-width: 0;
    }
    .hq-actions-shortcuts {
      border: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
      border-radius: 12px;
      background: var(--ds-bg-surface-raised);
      padding: 10px 12px;
    }
    .hq-actions-shortcuts__label {
      display: block;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      color: var(--ds-text-secondary);
      margin-bottom: 8px;
    }
    .hq-actions-shortcuts__btns {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      align-items: center;
    }
    .hq-actions-meta {
      margin: 0;
      font-size: 12px;
      color: var(--ds-text-secondary);
      line-height: 1.5;
      padding: 0 2px;
    }
    .hq-actions-meta__label {
      color: var(--ds-text-muted);
    }
    .hq-actions-meta__sep {
      margin: 0 6px;
      color: var(--ds-text-muted);
    }
    .hq-dashboard--embed-boss .hq-actions-panel__hint {
      display: none;
    }
    .hq-dashboard--embed-boss .hq-actions-panel__grid {
      grid-template-columns: minmax(0, 1fr);
    }
    @media (max-width: 860px) {
      .hq-actions-panel__grid {
        grid-template-columns: minmax(0, 1fr);
      }
    }
    .trend-good { color: var(--ds-success-emphasis); }
    .trend-bad { color: var(--ds-danger-emphasis); }
    .trend-neutral { color: var(--ds-text-secondary); }
    .status-dot {
      display: inline-block;
      width: 8px;
      height: 8px;
      border-radius: 999px;
      background: var(--ds-text-muted);
      vertical-align: middle;
      margin-right: 6px;
    }
    .status-dot--good { background: var(--ds-success); }
    .status-dot--warn { background: var(--ds-warning); }
    .status-dot--bad { background: var(--ds-danger); }
    .fd-hero-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 12px;
      margin-bottom: 12px;
    }
    .fd-hero-card {
      border: 1px solid var(--ds-border);
      border-radius: 12px;
      background: var(--ds-bg-surface);
      padding: 14px;
      box-shadow: none;
    }
    .fd-hero-label {
      font-size: 12px;
      color: var(--ds-text-secondary);
      margin-bottom: 6px;
    }
    .fd-hero-value {
      font-size: 24px;
      font-weight: 700;
      line-height: 1.1;
      color: var(--ds-text);
    }
    .fd-status-line {
      margin-top: 6px;
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .fd-section-title {
      font-size: 12px;
      color: var(--ds-text-secondary);
      text-transform: uppercase;
      letter-spacing: 0.06em;
      font-weight: 600;
      margin: 0 0 10px;
    }

    /* 业务看板 — 一页纵览，少边框、用色块分区 */
    .biz-dash-toolbar {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px;
      margin-top: 0;
    }
    .card-header--page-toolbar .biz-dash-toolbar .btn.btn-sm {
      height: 30px;
      min-height: 30px;
      padding: 0 12px;
      font-size: 12px;
      line-height: 1;
      border-radius: 6px;
      box-sizing: border-box;
    }
    .card-header--page-toolbar .biz-dash-asof {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 30px;
      min-height: 30px;
      padding: 0 10px;
      border-radius: 6px;
      box-sizing: border-box;
      background: var(--ds-bg-surface-sunken);
      border: 1px solid var(--ds-border);
      color: var(--ds-text-secondary);
      font-size: 12px;
      font-weight: 500;
      font-variant-numeric: tabular-nums;
      letter-spacing: 0.01em;
      line-height: 1;
      white-space: nowrap;
    }
    .card-header--page-toolbar .biz-dash-asof:empty {
      display: none;
    }
    .biz-dash-body {
      display: flex;
      flex-direction: column;
      gap: 16px;
      padding-bottom: 24px;
    }
    .biz-dash-band {
      background: var(--ds-bg-surface-raised);
      border-radius: 14px;
      padding: 16px 18px;
      min-width: 0;
    }
    .biz-dash-band--hero {
      background: color-mix(in srgb, var(--ds-brand) 5%, var(--ds-bg-surface-raised));
    }
    .biz-dash-band__head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 10px 16px;
      margin-bottom: 12px;
    }
    .biz-dash-band__head .biz-band-label {
      margin: 0;
    }
    .biz-band-label {
      margin: 0 0 10px;
      font-size: 14px;
      font-weight: 600;
      color: var(--ds-text);
      letter-spacing: 0.01em;
    }
    .biz-band-label__sub {
      font-weight: 500;
      font-family: ui-monospace, monospace;
      margin-left: 6px;
      opacity: 0.85;
    }
    .biz-dash-columns {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      align-items: stretch;
    }
    @media (max-width: 960px) {
      .biz-dash-columns { grid-template-columns: 1fr; }
    }
    .biz-actions-list {
      margin: 0;
      min-height: 1.75rem;
    }
    .biz-actions-list ul {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .biz-actions-list li {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 8px;
      margin: 0;
      padding: 0;
      font-size: 14px;
      line-height: 1.5;
      color: var(--ds-text);
    }
    .biz-actions-list li strong {
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }
    .biz-actions-list__ok {
      margin: 0;
      padding: 0;
      font-size: 14px;
      line-height: 1.5;
      color: var(--ds-success-emphasis);
    }
    .biz-actions-list__ok .fa { margin-right: 8px; }
    .biz-actions-plain {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 20px;
      list-style: none;
      margin: 0;
      padding: 0;
      font-size: 15px;
      line-height: 1.5;
      color: var(--ds-text);
    }
    .biz-actions-plain__item strong { font-weight: 700; }
    .biz-actions-plain__item--warn { color: var(--ds-warning-emphasis, #b45309); }
    .biz-actions-plain__item--bad { color: var(--ds-danger-emphasis, #b91c1c); }
    .report-header-hint-inline {
      font-size: 13px;
      color: var(--ds-text-muted, #64748b);
      max-width: 42rem;
      line-height: 1.45;
    }
    .biz-nav-links {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 14px;
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .biz-nav-link {
      background: none;
      border: none;
      padding: 0;
      font-size: 13px;
      font-weight: 500;
      color: var(--ds-brand);
      cursor: pointer;
      text-decoration: none;
    }
    .biz-nav-link:hover { text-decoration: underline; }
    .biz-nav-links__sep {
      color: var(--ds-text-muted);
      user-select: none;
    }

    /* 仓储中心 — 与其它业务页一致的彩色 card-header + 分段导航 */
    #inventory-management .wh-center > .card-header.wh-center__header {
      padding: 14px 20px;
    }
    #inventory-management .wh-center__header .card-title {
      margin: 0;
      color: var(--header-bar-fg);
    }
    #inventory-management .wh-center__header-actions {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: flex-end;
      gap: 10px 16px;
      max-width: 100%;
    }
    #inventory-management .wh-center__header-actions .report-header-hint-inline {
      flex: 1 1 280px;
      text-align: right;
      color: var(--header-bar-subtle);
    }
    #inventory-management .wh-center__header-actions .report-header-hint-inline strong {
      color: var(--header-bar-fg);
      font-weight: 600;
    }
    #inventory-management .wh-center__header-actions .report-header-hint-inline a {
      color: var(--header-bar-fg);
      text-decoration: underline;
      text-underline-offset: 2px;
      opacity: 0.92;
    }
    #inventory-management .wh-center__header-actions .report-header-hint-inline a:hover {
      opacity: 1;
    }
    #inventory-management .wh-center__body {
      padding: 18px 20px 22px;
    }
    .wh-center-nav {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      padding: 6px;
      margin-bottom: 18px;
      background: color-mix(in srgb, var(--ds-bg-surface-raised) 88%, var(--ds-border));
      border: 1px solid color-mix(in srgb, var(--ds-border) 90%, transparent);
      border-radius: 12px;
    }
    #inventory-management .wh-center-nav .tab-btn {
      border: 1px solid transparent !important;
      border-radius: 8px !important;
      padding: 8px 16px !important;
      min-height: 36px;
      font-size: 14px !important;
      font-weight: 500 !important;
      line-height: 1.3 !important;
      background: transparent !important;
      color: var(--ds-text-secondary) !important;
      box-shadow: none !important;
      transition: color 0.15s ease, background 0.15s ease;
    }
    #inventory-management .wh-center-nav .tab-btn:hover {
      color: var(--ds-text) !important;
      background: color-mix(in srgb, var(--ds-border) 35%, var(--ds-bg-surface)) !important;
    }
    #inventory-management .wh-center-nav .tab-btn.btn-primary {
      background: var(--ds-brand, var(--primary-color)) !important;
      color: var(--ds-on-brand, #f8fafc) !important;
      font-weight: 600 !important;
      border-color: transparent !important;
      box-shadow: none !important;
    }
    #inventory-management .wh-center-nav .tab-btn.btn-primary:hover {
      background: var(--ds-brand-hover, var(--primary-color)) !important;
      color: var(--ds-on-brand, #f8fafc) !important;
    }
    .wh-center-outbound-band {
      margin-bottom: 0;
    }
    .wh-center-outbound-band__subtabs {
      margin-bottom: 14px;
    }
    .wh-center-outbound-subnav {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
    }
    #inventory-management .wh-center-outbound-subnav .tab-btn {
      border: 1px solid transparent !important;
      border-radius: 8px !important;
      padding: 7px 14px !important;
      min-height: 32px;
      font-size: 13px !important;
      font-weight: 500 !important;
      line-height: 1.3 !important;
      box-shadow: none !important;
      transition: color 0.15s ease, background 0.15s ease;
    }
    #inventory-management .wh-center-outbound-subnav .tab-btn.btn-secondary {
      background: transparent !important;
      color: var(--ds-text-secondary) !important;
    }
    #inventory-management .wh-center-outbound-subnav .tab-btn.btn-secondary:hover {
      color: var(--ds-text) !important;
      background: color-mix(in srgb, var(--ds-border) 35%, var(--ds-bg-surface)) !important;
    }
    #inventory-management .wh-center-outbound-subnav .tab-btn.btn-primary {
      background: var(--ds-brand, var(--primary-color)) !important;
      color: var(--ds-on-brand, #f8fafc) !important;
      font-weight: 600 !important;
    }
    #inventory-management .wh-center-outbound-subnav .tab-btn.btn-primary:hover {
      background: var(--ds-brand-hover, var(--primary-color)) !important;
      color: var(--ds-on-brand, #f8fafc) !important;
    }
    .wh-center-band__hint {
      font-size: 13px;
      line-height: 1.5;
      color: var(--ds-text-secondary);
      margin-bottom: 12px;
    }
    .wh-center-action-row {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-bottom: 14px;
      padding-bottom: 14px;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 55%, transparent);
    }
    .wh-center-action-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      min-height: 42px;
      padding: 8px 14px;
      border-radius: 10px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 85%, transparent);
      background: var(--ds-bg-surface);
      color: var(--ds-text);
      font-size: 14px;
      font-weight: 500;
      cursor: pointer;
      transition: border-color 0.15s, background 0.15s;
    }
    .wh-center-action-btn .fa {
      width: 1.1em;
      text-align: center;
      color: var(--ds-brand-active, var(--primary-color));
      opacity: 0.9;
    }
    .wh-center-action-btn:hover {
      border-color: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 28%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 4%, var(--ds-bg-surface));
    }
    .wh-center-action-btn--emph {
      border-color: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 35%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 7%, var(--ds-bg-surface-raised));
    }
    .wh-center-action-btn--muted {
      opacity: 0.55;
      cursor: not-allowed;
    }
    .wh-center-subnav {
      display: inline-flex;
      flex-wrap: wrap;
      gap: 4px;
      padding: 3px;
      border-radius: 10px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 90%, transparent);
      background: color-mix(in srgb, var(--ds-bg-surface) 80%, var(--ds-bg-surface-raised));
    }
    .wh-center-subnav__item {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      border: none;
      border-radius: 8px;
      padding: 7px 14px;
      font-size: 13px;
      font-weight: 500;
      background: transparent;
      color: var(--ds-text-secondary);
      cursor: pointer;
      transition: background 0.15s, color 0.15s, box-shadow 0.15s;
    }
    .wh-center-subnav__item:hover {
      color: var(--ds-text);
      background: color-mix(in srgb, var(--ds-bg-surface) 92%, var(--ds-border));
    }
    .wh-center-subnav__item--active {
      background: var(--ds-bg-surface);
      color: var(--ds-brand, var(--primary-color));
      font-weight: 600;
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
    }
    .wh-center-subnav__badge {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 18px;
      height: 18px;
      padding: 0 5px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 700;
      line-height: 1;
      font-variant-numeric: tabular-nums;
      color: #fff;
      background: #2563eb;
      box-shadow: 0 0 0 1px color-mix(in srgb, #2563eb 70%, #fff);
    }
    .wh-center-subnav__item--active .wh-center-subnav__badge {
      background: #1d4ed8;
    }
    .wh-center-subnav__badge.hidden {
      display: none !important;
    }
    .wh-center-inbound-band {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px 16px;
      margin-bottom: 14px;
      padding: 12px 14px;
      border-radius: 10px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 88%, transparent);
      background: color-mix(in srgb, var(--ds-bg-surface-raised) 45%, var(--ds-bg-surface));
    }
    .wh-center-inbound-band__filters {
      flex: 1 1 420px;
      min-width: 0;
    }
    .wh-center-inbound-band__filter-head {
      display: flex;
      align-items: center;
      gap: 0.35rem;
      margin-bottom: 0.35rem;
    }
    .wh-center-inbound-band__filter-label {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
    }
    .wh-center-inbound-band__cta {
      flex: 0 1 200px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 8px;
      padding: 10px 12px;
      border-radius: 8px;
      background: var(--ds-bg-surface);
      border: 1px solid color-mix(in srgb, var(--ds-border) 82%, transparent);
    }
    .wh-doc-filter-bar {
      --wh-doc-filter-h: 2.375rem;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 10px;
    }
    .wh-doc-filter-bar .sales-segment {
      min-height: var(--wh-doc-filter-h);
      box-sizing: border-box;
      align-items: center;
    }
    .wh-doc-filter-bar .form-input,
    .wh-doc-filter-bar .form-select,
    .wh-doc-filter-bar .btn.btn-sm {
      height: var(--wh-doc-filter-h);
      min-height: var(--wh-doc-filter-h);
      max-height: var(--wh-doc-filter-h);
      padding-top: 0;
      padding-bottom: 0;
      padding-left: 10px;
      padding-right: 10px;
      font-size: 0.8125rem;
      line-height: 1.3;
      border-radius: 0.375rem;
      max-width: none;
    }
    .wh-doc-filter-bar .form-select {
      width: auto;
      min-width: 7.5rem;
      padding-right: 1.75rem;
    }
    .wh-doc-filter-bar .pf-select-sm {
      min-width: 6.5rem;
    }
    .wh-doc-filter-bar .pf-select-md {
      min-width: 8.5rem;
    }
    .wh-doc-filter-bar input[type='date'].form-input {
      appearance: none;
      -webkit-appearance: none;
    }
    .wh-doc-filter-bar .btn.btn-sm {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding-left: 12px;
      padding-right: 12px;
    }
    .wh-doc-filter-bar__dash {
      color: var(--ds-text-muted, var(--text-secondary));
      font-size: 12px;
      line-height: 1;
      user-select: none;
    }
    .wh-doc-filter-bar .pf-date {
      width: 132px;
      min-width: 132px;
    }
    .wh-doc-filter-bar .wh-doc-filter-bar__keyword,
    .wh-doc-filter-bar .pf-keyword {
      width: auto;
      min-width: 10rem;
      flex: 1 1 11rem;
      max-width: 16rem;
    }
    .wh-center-doc-filter-band {
      padding: 10px 12px;
      border-radius: 10px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 88%, transparent);
      background: color-mix(in srgb, var(--ds-bg-surface-raised) 45%, var(--ds-bg-surface));
    }
    .wh-center-inbound-band__cta-hint {
      margin: 0;
      font-size: 12px;
      line-height: 1.5;
      color: var(--ds-text-secondary);
    }
    .wh-center-inbound-band__cta-btn {
      width: 100%;
    }
    /* 仓储中心 · 入库/出库作业：主列表区 + 底部辅助待办 */
    .wh-ops-primary-list {
      min-height: 0;
    }
    .wh-ops-primary-list > .table-container,
    .wh-ops-primary-list > .list-panel-outer {
      margin-bottom: 0;
    }
    .wh-center-aux-panel {
      margin-top: 12px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 85%, transparent);
      border-radius: 10px;
      background: var(--ds-bg-surface);
      max-height: min(240px, 32vh);
      overflow: auto;
      -webkit-overflow-scrolling: touch;
    }
    .wh-center-aux-panel__head {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 12px;
      position: sticky;
      top: 0;
      z-index: 1;
      background: color-mix(in srgb, var(--ds-bg-surface-raised) 92%, var(--ds-bg-surface));
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
    }
    .wh-center-aux-panel__title {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text-secondary, #475569);
    }
    .wh-center-aux-panel__count {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-brand, var(--primary-color));
      padding: 1px 8px;
      border-radius: 999px;
      background: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 10%, transparent);
    }
    .wh-center-aux-panel .table {
      margin-bottom: 0;
    }
    .wh-outbound-todo-panel.list-panel-outer {
      margin-bottom: 0;
    }
    .wh-center-doc-filter-band {
      margin-bottom: 0;
    }
    .wh-doc-status-segment {
      flex-shrink: 0;
    }
    .wh-inv-adj-stock-hint {
      padding: 8px 10px;
      border-radius: 8px;
      font-size: 12px;
      line-height: 1.45;
      color: var(--ds-text-secondary);
      background: color-mix(in srgb, var(--ds-bg-surface-raised) 70%, var(--ds-border));
      border: 1px solid color-mix(in srgb, var(--ds-border) 85%, transparent);
    }
    .wh-inv-adj-stock-hint strong {
      color: var(--ds-text);
      font-variant-numeric: tabular-nums;
    }
    .wh-outbound-line {
      font-size: 12px;
      line-height: 1.45;
    }
    .wh-outbound-line + .wh-outbound-line {
      margin-top: 3px;
    }
    .oa-wh-out-lines {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .oa-wh-out-line {
      position: relative;
      padding: 12px;
      border: 1px solid var(--ds-border, #e2e8f0);
      border-radius: 10px;
      background: var(--ds-bg-surface, #fff);
    }
    .oa-wh-out-line__grid {
      display: grid;
      grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) 5.5rem 4.5rem;
      gap: 10px 12px;
      align-items: end;
      padding-right: 4rem;
    }
    .oa-wh-out-line__field .form-label {
      margin-bottom: 4px;
      font-size: 11px;
      color: var(--ds-text-muted, #64748b);
    }
    .oa-wh-out-line__field--avail .oa-wh-out-avail {
      min-height: 2.25rem;
      display: flex;
      align-items: center;
      font-variant-numeric: tabular-nums;
    }
    .oa-wh-out-line .oa-wh-out-del {
      position: absolute;
      top: 10px;
      right: 10px;
    }
    .oa-wh-out-detail-lines {
      display: flex;
      flex-direction: column;
      gap: 8px;
      padding: 10px 14px 12px;
    }
    .oa-wh-out-detail-line {
      position: relative;
      padding: 10px 12px;
      border: 1px solid var(--ds-border, #e2e8f0);
      border-radius: 8px;
      background: var(--ds-bg-surface, #fff);
    }
    .oa-wh-out-detail-line__idx {
      position: absolute;
      top: 8px;
      right: 10px;
      font-size: 11px;
      color: var(--ds-text-muted, #64748b);
    }
    .oa-wh-out-detail-line__name {
      font-size: 13px;
      font-weight: 600;
      line-height: 1.35;
      word-break: break-word;
      padding-right: 1.5rem;
      margin-bottom: 8px;
    }
    .oa-wh-out-detail-line__stats {
      display: flex;
      flex-wrap: wrap;
      gap: 4px 10px;
      align-items: center;
    }
    .oa-wh-out-stat {
      display: inline-flex;
      align-items: baseline;
      gap: 3px;
      font-size: 12px;
      line-height: 1.3;
    }
    .oa-wh-out-stat__k {
      color: var(--ds-text-muted, #64748b);
      font-size: 11px;
    }
    .oa-wh-out-stat__v {
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }
    @media (max-width: 640px) {
      .oa-wh-out-line__grid {
        grid-template-columns: 1fr 1fr;
        padding-right: 0;
      }
      .oa-wh-out-line__field--mat {
        grid-column: 1 / -1;
      }
      .oa-wh-out-line .oa-wh-out-del {
        position: static;
        margin-top: 8px;
      }
    }
    .wh-outbound-lines-cell {
      min-width: 8rem;
      max-width: 14rem;
      white-space: normal;
    }
    .wh-outbound-line--compact {
      font-size: 12px;
      line-height: 1.4;
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      white-space: normal;
    }
    #wcWarehouseOutboundsBody .wh-outbound-lines-cell {
      max-width: 12rem;
    }
    .sales-outbound-table-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .sales-outbound-table {
      table-layout: fixed;
      width: max-content;
      min-width: 100%;
      border-collapse: collapse;
    }
    .sales-outbound-table th,
    .sales-outbound-table td {
      vertical-align: top;
      padding: 10px 10px;
      box-sizing: border-box;
      line-height: 1.45;
    }
    .sales-outbound-table tbody tr {
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 55%, transparent);
    }
    .sales-outbound-table tbody tr:hover td {
      background: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 4%, var(--ds-bg-surface));
    }
    /* 固定列宽（px），总和约 1760；窄屏横向滚动，避免互挤 */
    .sales-outbound-col-no { width: 196px; min-width: 196px; }
    .sales-outbound-col-fhpo { width: 182px; min-width: 182px; }
    .sales-outbound-col-kind { width: 80px; min-width: 80px; }
    .sales-outbound-col-order { width: 140px; }
    .sales-outbound-col-wh { width: 108px; }
    .sales-outbound-col-site { width: 104px; }
    .sales-outbound-col-date { width: 92px; }
    .sales-outbound-col-lines { width: 280px; }
    .sales-outbound-col-status { width: 84px; }
    .sales-outbound-col-receipt { width: 88px; }
    .sales-outbound-col-created { width: 92px; }
    .sales-outbound-col-ops { width: 160px; }
    .sales-outbound-col-no {
      white-space: nowrap;
      font-size: 12px;
    }
    .sales-outbound-col-kind,
    .sales-outbound-col-date,
    .sales-outbound-col-status,
    .sales-outbound-col-receipt {
      white-space: nowrap;
      font-size: 12px;
    }
    .sales-outbound-col-wh {
      white-space: normal;
      font-size: 12px;
      line-height: 1.45;
    }
    .sales-outbound-col-order,
    .sales-outbound-col-site {
      font-size: 12px;
      word-break: break-word;
      overflow-wrap: break-word;
    }
    .sales-outbound-col-lines {
      overflow: hidden;
    }
    .sales-outbound-col-fhpo {
      overflow: visible;
    }
    .sales-outbound-col-status,
    .sales-outbound-col-receipt {
      text-align: center;
    }
    .sales-outbound-fhpo {
      display: flex;
      flex-direction: column;
      gap: 3px;
    }
    .sales-outbound-fhpo__line {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 4px;
      max-width: 100%;
      font-size: 11px;
      line-height: 1.45;
    }
    .sales-outbound-fhpo__tag {
      display: inline;
      flex-shrink: 0;
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.02em;
      color: var(--ds-text-muted);
      line-height: 1.5;
    }
    .sales-outbound-fhpo__tag::after {
      content: ':';
      margin-right: 2px;
    }
    .sales-outbound-fhpo__val {
      flex: 1 1 auto;
      min-width: 0;
      font-size: 11px;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      word-break: break-all;
      overflow-wrap: anywhere;
      line-height: 1.45;
    }
    /* 标签与号码同一行（订单列表等窄列） */
    .sales-outbound-fhpo__line--inline {
      display: block;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 100%;
    }
    .sales-outbound-fhpo__line--inline .sales-outbound-fhpo__tag,
    .sales-outbound-fhpo__line--inline .sales-outbound-fhpo__val {
      display: inline;
      flex: none;
      min-width: 0;
      word-break: normal;
      overflow-wrap: normal;
    }
    .sales-orders-table .sales-orders-col-fhpo {
      width: 182px;
      min-width: 182px;
      max-width: 182px;
    }
    .sales-outbound-time-sub {
      font-size: 11px;
      color: var(--ds-text-muted);
      margin-top: 1px;
    }
    .sales-outbound-table .wh-outbound-lines-cell {
      min-width: 0;
      max-width: none;
      overflow: hidden;
    }
    .sales-outbound-table .wh-outbound-line--compact {
      font-size: 12px;
      line-height: 1.5;
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      white-space: normal;
      color: var(--ds-text-secondary);
    }
    .sales-outbound-table .wh-outbound-line--compact + .wh-outbound-line--compact {
      margin-top: 2px;
    }
    .sales-outbound-ops-cell {
      white-space: normal;
      line-height: 1.4;
    }
    .sales-outbound-ops-cell .btn {
      margin-bottom: 2px;
    }
    .sales-outbound-filters {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 12px 18px;
      padding: 10px 14px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface-raised);
    }
    .sales-outbound-filters__item {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin: 0;
      min-width: 0;
    }
    .sales-outbound-filters__item--grow {
      flex: 1 1 12rem;
      min-width: 10rem;
    }
    .sales-outbound-filters__label {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-muted);
      white-space: nowrap;
      flex-shrink: 0;
    }
    .sales-outbound-filters__item .form-select--sm,
    .sales-outbound-filters__item .form-input--sm {
      min-width: 7.5rem;
      font-size: 0.8125rem;
      padding-top: 0.35rem;
      padding-bottom: 0.35rem;
    }
    .sales-outbound-filters__item--grow .form-input--sm {
      width: 100%;
      min-width: 0;
    }
    .sales-outbound-no-cell {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 3px;
      min-width: 0;
      width: 100%;
    }
    .sales-outbound-no-cell .approval-doc-link {
      display: inline-block;
      white-space: nowrap;
      overflow: visible;
      text-overflow: unset;
      max-width: none;
      font-variant-numeric: tabular-nums;
    }
    .sales-outbound-group-badge {
      font-size: 10px;
      font-weight: 600;
      color: var(--ds-text-muted);
      line-height: 1.3;
      white-space: nowrap;
    }
    .sales-outbound-wh-cell {
      display: flex;
      flex-direction: column;
      gap: 2px;
      min-width: 0;
    }
    .sales-outbound-wh-cell__line {
      line-height: 1.4;
      word-break: keep-all;
      overflow-wrap: break-word;
    }
    .sales-outbound-col-wh--multi {
      min-width: 6.5rem;
    }
    .cusr-intro {
      font-size: 14px;
      line-height: 1.55;
      color: var(--ds-text-secondary);
      margin-bottom: 14px;
      padding: 10px 12px;
      border-radius: 8px;
      border: 1px solid color-mix(in srgb, var(--ds-brand, var(--primary-color)) 18%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 6%, var(--ds-bg-surface));
    }
    .cusr-outbound-summary {
      font-size: 14px;
      margin-bottom: 10px;
      padding: 8px 10px;
      border-radius: 8px;
      background: var(--ds-bg-surface-raised);
      border: 1px solid var(--ds-border);
    }
    .cusr-signed-preview {
      margin-top: 8px;
    }
    .cusr-cdn-original {
      margin: 12px 0;
      padding: 10px 12px;
      border-radius: 8px;
      background: #f8fafc;
      border: 1px dashed var(--ds-border);
    }
    .cusr-cdn-original__label {
      font-size: 12px;
      color: var(--ds-text-muted);
      margin-bottom: 6px;
    }
    #uploadAttachmentPreviewModal {
      z-index: 220;
      padding: 1.5vh 12px;
    }
    #uploadAttachmentPreviewModal .modal-content.upload-preview-modal {
      width: min(96vw, 72rem);
      max-width: min(96vw, 72rem);
      max-height: 92vh;
      overflow: hidden;
      display: flex;
      flex-direction: column;
    }
    .upload-preview-modal__body {
      flex: 1;
      min-height: 0;
      padding: 0;
      background: rgb(248 250 252);
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: auto;
    }
    .upload-preview-modal__frame {
      width: 100%;
      height: min(84vh, 60rem);
      min-height: 24rem;
      border: none;
      background: #fff;
    }
    .upload-preview-modal__img {
      max-width: 100%;
      max-height: min(84vh, 60rem);
      object-fit: contain;
    }
    .cusr-modal--v2 {
      border-radius: 12px;
      overflow: hidden;
    }
    .cusr-modal__header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      border-bottom: 1px solid var(--ds-border);
      padding-bottom: 12px;
    }
    .cusr-modal__subtitle {
      font-size: 12px;
      color: var(--ds-text-muted);
      margin: 4px 0 0;
    }
    .cusr-modal__body {
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    .cusr-context-card {
      padding: 12px 14px;
      border-radius: 10px;
      background: linear-gradient(135deg, #f0f9ff 0%, #f8fafc 100%);
      border: 1px solid #bae6fd;
    }
    .cusr-context-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px 14px;
    }
    @media (max-width: 720px) {
      .cusr-context-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 480px) {
      .cusr-context-grid { grid-template-columns: 1fr; }
    }
    .cusr-context-kv {
      min-width: 0;
    }
    .cusr-context-kv--wide {
      grid-column: 1 / -1;
    }
    .cusr-context-kv__label {
      display: block;
      font-size: 11px;
      color: #64748b;
      margin-bottom: 2px;
      letter-spacing: 0.02em;
    }
    .cusr-context-kv__value {
      display: block;
      font-size: 13px;
      line-height: 1.4;
      color: #0f172a;
      word-break: break-word;
    }
    .cusr-context-tag {
      display: inline-block;
      font-size: 11px;
      padding: 1px 6px;
      border-radius: 999px;
      background: #e0f2fe;
      color: #0369a1;
      margin-left: 4px;
      vertical-align: middle;
    }
    .cusr-context-card__cdn {
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px dashed #bae6fd;
    }
    .cusr-grid-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }
    @media (max-width: 640px) {
      .cusr-grid-2 { grid-template-columns: 1fr; }
    }
    .as-case-modal {
      border-radius: 12px;
      overflow: hidden;
    }
    .as-case-modal__header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      padding-bottom: 14px;
      border-bottom: 1px solid var(--ds-border);
    }
    .as-case-modal__head-text {
      min-width: 0;
      flex: 1;
    }
    .as-case-modal__subtitle {
      margin: 6px 0 0;
      font-size: 12px;
      line-height: 1.45;
      color: var(--ds-text-muted, #64748b);
    }
    .as-case-modal__close {
      flex-shrink: 0;
      margin: 0;
      align-self: flex-start;
    }
    .as-case-modal__body {
      display: flex;
      flex-direction: column;
      gap: 16px;
      padding-top: 4px;
    }
    .as-case-modal__footer {
      gap: 10px;
      border-top: 1px solid var(--ds-border);
      padding-top: 14px;
    }
    .as-case-spray-panel {
      padding: 14px 16px;
      border-radius: 10px;
      border: 1px solid #e2e8f0;
      background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    }
    .as-case-spray-panel__label {
      display: block;
      margin-bottom: 8px;
      font-size: 13px;
      font-weight: 600;
      color: #0f172a;
    }
    .as-case-spray-row {
      display: flex;
      gap: 10px;
      align-items: stretch;
    }
    .as-case-spray-input {
      flex: 1;
      min-width: 0;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 14px;
      letter-spacing: 0.02em;
    }
    .as-case-spray-btn {
      flex-shrink: 0;
      white-space: nowrap;
    }
    .as-case-hint {
      margin: 10px 0 0;
      font-size: 12px;
      line-height: 1.45;
    }
    .as-case-hint.is-success {
      color: #047857;
    }
    .as-case-hint.is-warn {
      color: #b45309;
    }
    .as-case-form-panel {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .as-case-form-panel--primary {
      padding: 14px 16px;
      border-radius: 10px;
      border: 1px solid #bfdbfe;
      background: linear-gradient(135deg, #f0f9ff 0%, #f8fafc 100%);
    }
    .as-case-section-title {
      margin: 0 0 2px;
      font-size: 13px;
      font-weight: 600;
      color: #334155;
    }
    .as-case-optional {
      font-size: 11px;
      font-weight: 400;
      color: #94a3b8;
      margin-left: 4px;
    }
    .as-case-textarea {
      min-height: 4.5rem;
      resize: vertical;
    }
    .as-batch-snapshot-card {
      margin-top: 12px;
      padding: 12px 14px;
      border-radius: 10px;
      border: 1px solid #bae6fd;
      background: linear-gradient(135deg, #f0f9ff 0%, #f8fafc 100%);
    }
    .as-batch-snapshot-card.is-warn {
      border-color: #fcd34d;
      background: linear-gradient(135deg, #fffbeb 0%, #fff 100%);
    }
    .as-batch-snapshot-card__head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
      padding-bottom: 10px;
      border-bottom: 1px dashed #bae6fd;
    }
    .as-batch-snapshot-card.is-warn .as-batch-snapshot-card__head {
      border-bottom-color: #fde68a;
    }
    .as-batch-snapshot-card__badge {
      display: inline-flex;
      align-items: center;
      padding: 2px 8px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 600;
      background: #dcfce7;
      color: #166534;
    }
    .as-batch-snapshot-card.is-warn .as-batch-snapshot-card__badge {
      background: #fef3c7;
      color: #92400e;
    }
    .as-batch-snapshot-card__code {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 14px;
      font-weight: 600;
      color: #0f172a;
    }
    .as-batch-snapshot-card__warn-text {
      margin: 0;
      font-size: 12px;
      line-height: 1.5;
      color: #92400e;
    }
    .as-batch-snapshot-card .cusr-context-grid {
      gap: 10px 14px;
    }
    .as-batch-snapshot-card dl {
      display: grid;
      grid-template-columns: 5.5em 1fr;
      gap: 4px 10px;
      margin: 0;
    }
    .as-batch-snapshot-card dt {
      margin: 0;
      color: #64748b;
      font-weight: 600;
      font-size: 12px;
    }
    .as-batch-snapshot-card dd {
      margin: 0;
      color: #0f172a;
      font-size: 12px;
      word-break: break-word;
    }
    .as-case-advanced {
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      background: #fafafa;
      overflow: hidden;
    }
    .as-case-advanced__summary {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 10px;
      padding: 10px 14px;
      font-size: 13px;
      font-weight: 500;
      color: #475569;
      cursor: pointer;
      list-style: none;
      user-select: none;
    }
    .as-case-advanced__summary::-webkit-details-marker { display: none; }
    .as-case-advanced__summary .fa {
      color: #94a3b8;
      font-size: 12px;
    }
    .as-case-advanced__note {
      font-size: 11px;
      font-weight: 400;
      color: #94a3b8;
    }
    .as-case-advanced[open] .as-case-advanced__summary {
      border-bottom: 1px solid #e2e8f0;
      background: #f1f5f9;
    }
    .as-case-advanced__body {
      padding: 12px 14px 14px;
    }
    .as-case-cdn-summary {
      margin: 10px 0 0;
      padding: 10px 12px;
      font-size: 12px;
      line-height: 1.5;
      color: #475569;
      border-radius: 8px;
      border: 1px solid #e2e8f0;
      background: #fff;
    }
    #equipmentSensorMonitorModal .modal-content.esm-monitor-modal {
      max-width: 720px;
      width: calc(100vw - 2rem);
      padding: 0;
      overflow: hidden;
    }
    #equipmentSensorMonitorModal .esm-monitor-modal__header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      padding: 16px 18px;
      border-bottom: 1px solid #e2e8f0;
      background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    }
    #equipmentSensorMonitorModal .esm-monitor-modal__head-main {
      flex: 1;
      min-width: 0;
    }
    #equipmentSensorMonitorModal .esm-monitor-modal__title-row {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 8px;
    }
    #equipmentSensorMonitorModal .esm-monitor-modal__close {
      flex-shrink: 0;
      width: 32px;
      height: 32px;
      border: none;
      border-radius: 8px;
      background: transparent;
      color: #64748b;
      font-size: 22px;
      line-height: 1;
      cursor: pointer;
      margin: -4px -4px 0 0;
    }
    #equipmentSensorMonitorModal .esm-monitor-modal__close:hover {
      background: #f1f5f9;
      color: #0f172a;
    }
    #equipmentSensorMonitorModal .esm-monitor-modal__body {
      padding: 16px 18px 18px;
      max-height: min(72vh, 640px);
      overflow-y: auto;
    }
    .esm-status-badge {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 2px 10px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 600;
      line-height: 1.4;
    }
    .esm-status-badge::before {
      content: '';
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: currentColor;
    }
    .esm-status-badge--ok {
      background: #ecfdf5;
      color: #047857;
    }
    .esm-status-badge--warn {
      background: #fffbeb;
      color: #b45309;
    }
    .esm-status-badge--alert {
      background: #fef2f2;
      color: #b91c1c;
    }
    .esm-status-badge--stale {
      background: #f8fafc;
      color: #64748b;
    }
    .esm-meta-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .esm-meta-chip {
      display: inline-flex;
      align-items: center;
      max-width: 100%;
      padding: 3px 10px;
      border-radius: 6px;
      font-size: 12px;
      color: #334155;
      background: #f1f5f9;
      border: 1px solid #e2e8f0;
      line-height: 1.35;
    }
    .esm-meta-chip--muted {
      color: #64748b;
      background: #fff;
    }
    .fd-sensor-panel {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
      gap: 12px;
    }
    .fd-sensor-card {
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      padding: 12px 14px;
      background: #fff;
      cursor: pointer;
      text-align: left;
      transition: border-color 0.15s, box-shadow 0.15s;
    }
    .fd-sensor-card:hover {
      border-color: #93c5fd;
      box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
    }
    .fd-sensor-card--alert {
      border-color: #fecaca;
      background: #fffbfb;
    }
    .fd-sensor-card--stale {
      border-color: #fde68a;
      background: #fffef8;
    }
    .fd-sensor-card__name {
      font-size: 14px;
      font-weight: 600;
      color: #0f172a;
      margin-bottom: 2px;
    }
    .fd-sensor-card__meta {
      font-size: 11px;
      color: #64748b;
      margin-bottom: 10px;
    }
    .fd-sensor-card__metrics {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }
    .fd-sensor-card__metric label {
      display: block;
      font-size: 11px;
      color: #94a3b8;
    }
    .fd-sensor-card__metric strong {
      font-size: 18px;
      font-weight: 700;
      color: #1e40af;
    }
    .fd-sensor-card__foot {
      margin-top: 10px;
      font-size: 11px;
      color: #94a3b8;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 8px;
    }
    .fd-sensor-card__badge {
      display: inline-flex;
      padding: 1px 8px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 600;
      background: #fee2e2;
      color: #b91c1c;
    }
    .esm-toolbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      flex-wrap: wrap;
      margin-bottom: 12px;
    }
    .esm-toolbar__label {
      font-size: 13px;
      font-weight: 600;
      color: #334155;
    }
    .esm-range-tabs {
      display: inline-flex;
      border: 1px solid #e2e8f0;
      border-radius: 8px;
      overflow: hidden;
      background: #fff;
    }
    .esm-range-tab {
      border: none;
      background: transparent;
      padding: 6px 12px;
      font-size: 12px;
      color: #64748b;
      cursor: pointer;
    }
    .esm-range-tab--active {
      background: #eff6ff;
      color: #1d4ed8;
      font-weight: 600;
    }
    .esm-threshold-panel {
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      padding: 12px;
      margin-bottom: 12px;
      background: #fafafa;
    }
    .esm-threshold-panel__title {
      font-size: 13px;
      font-weight: 600;
      color: #0f172a;
      margin-bottom: 6px;
    }
    .esm-threshold-panel__hint {
      font-size: 12px;
      color: #64748b;
      margin: 0 0 10px;
      line-height: 1.45;
    }
    .esm-threshold-readonly {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    .esm-threshold-readonly span {
      display: block;
      font-size: 11px;
      color: #94a3b8;
    }
    .esm-threshold-readonly strong {
      font-size: 16px;
      color: #1e40af;
    }
    .esm-threshold-panel--readonly {
      background: #f8fafc;
    }
    #equipmentSensorConfigModal .modal-content.esc-config-modal {
      max-width: 520px;
      width: calc(100vw - 2rem);
    }
    .equip-sensor-cell {
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: 2px;
      margin-right: 4px;
      vertical-align: top;
    }
    .equip-sensor-status {
      font-size: 10px;
      line-height: 1.25;
      padding: 1px 6px;
      border-radius: 4px;
      white-space: nowrap;
      font-weight: 500;
    }
    .equip-sensor-status--none {
      color: #64748b;
      background: #f1f5f9;
      border: 1px solid #e2e8f0;
    }
    .equip-sensor-status--enabled {
      color: #5b21b6;
      background: #ede9fe;
      border: 1px solid #ddd6fe;
    }
    .equip-sensor-status--disabled {
      color: #92400e;
      background: #fef3c7;
      border: 1px solid #fde68a;
    }
    .esc-enable-row {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 14px;
      font-weight: 600;
      color: #0f172a;
      margin-bottom: 12px;
      cursor: pointer;
    }
    .esc-fields-panel {
      border-top: 1px solid #e2e8f0;
      padding-top: 12px;
    }
    .esc-grid-2 {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    @media (max-width: 520px) {
      .esc-grid-2 {
        grid-template-columns: 1fr;
      }
    }
    .esc-threshold-block {
      border: 1px solid #e2e8f0;
      border-radius: 8px;
      padding: 10px 12px;
      margin-bottom: 12px;
      background: #fafafa;
    }
    .esc-threshold-block__title {
      font-size: 13px;
      font-weight: 600;
      margin-bottom: 4px;
      color: #334155;
    }
    .esm-metrics {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 12px;
    }
    .esm-metric {
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      padding: 12px 14px;
      background: #fff;
      transition: border-color 0.15s, background 0.15s;
    }
    .esm-metric--warn {
      border-color: #fcd34d;
      background: #fffef8;
    }
    .esm-metric--warn .esm-metric__value {
      color: #b45309;
    }
    .esm-metric--alert {
      border-color: #fca5a5;
      background: #fffbfb;
    }
    .esm-metric--alert .esm-metric__value {
      color: #b91c1c;
    }
    .esm-metric__top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 6px;
    }
    .esm-metric__label {
      font-size: 12px;
      font-weight: 600;
      color: #64748b;
    }
    .esm-metric__limit {
      font-size: 11px;
      color: #94a3b8;
      white-space: nowrap;
    }
    .esm-metric__value {
      font-size: 28px;
      font-weight: 700;
      color: #0f172a;
      margin-bottom: 8px;
      font-variant-numeric: tabular-nums;
      line-height: 1.1;
    }
    .esm-metric__chart {
      overflow: visible;
    }
    .esm-metric__chart .esm-spark {
      width: 100%;
      height: 64px;
      display: block;
      overflow: visible;
    }
    .esm-spark__extrema {
      font-size: 10px;
      font-weight: 600;
      fill: #64748b;
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
      pointer-events: none;
    }
    .esm-spark__extrema--max {
      fill: #475569;
    }
    .esm-spark__extrema--min {
      fill: #94a3b8;
    }
    .esm-recorded-at {
      font-size: 11px;
      color: #94a3b8;
      margin: 0 0 12px;
      line-height: 1.45;
    }
    .esm-threshold-footnote {
      font-size: 11px;
      color: #94a3b8;
      margin: 10px 0 0;
      line-height: 1.45;
      text-align: center;
    }
    .approval-gate-cell {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 1.1rem;
      font-weight: 600;
      line-height: 1;
      user-select: none;
    }
    .approval-gate-cell--na {
      color: #cbd5e1;
      font-size: 14px;
    }
    .approval-gate-cell--hold {
      color: #94a3b8;
      font-size: 11px;
      letter-spacing: 0.06em;
    }

    /* 经营效率：环节时间轴 */
    .bill-pipeline-progress {
      min-width: 360px;
      max-width: 720px;
    }
    .bill-pipeline-progress__meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 16px;
      font-size: 12px;
      color: var(--ds-text-muted);
      margin-bottom: 8px;
    }
    .bill-pipeline-progress__total {
      font-weight: 600;
      color: var(--text-primary);
    }
    .bill-pipeline-timeline {
      display: flex;
      gap: 4px;
      align-items: stretch;
      margin-bottom: 6px;
    }
    .bill-pipeline-timeline__seg {
      flex: 1 1 0;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    .bill-pipeline-timeline__bar {
      height: 6px;
      border-radius: 999px;
      background: var(--ds-bg-surface-raised, #e2e8f0);
      overflow: hidden;
    }
    .bill-pipeline-timeline__fill {
      height: 100%;
      width: 0;
      border-radius: inherit;
      transition: width 0.2s ease;
    }
    .bill-pipeline-timeline__seg--done .bill-pipeline-timeline__fill {
      width: 100%;
      background: #22c55e;
    }
    .bill-pipeline-timeline__seg--active .bill-pipeline-timeline__fill {
      width: 100%;
      background: #f59e0b;
      animation: bill-pipeline-pulse 2s ease-in-out infinite;
    }
    .bill-pipeline-timeline__seg--pending .bill-pipeline-timeline__fill {
      width: 0;
    }
    .bill-pipeline-timeline__seg--na .bill-pipeline-timeline__bar {
      background: repeating-linear-gradient(
        90deg,
        #e2e8f0,
        #e2e8f0 4px,
        #f8fafc 4px,
        #f8fafc 8px
      );
    }
    @keyframes bill-pipeline-pulse {
      0%,
      100% {
        opacity: 1;
      }
      50% {
        opacity: 0.65;
      }
    }
    .bill-pipeline-timeline__label {
      font-size: 11px;
      font-weight: 600;
      color: var(--text-primary);
      white-space: nowrap;
      display: flex;
      align-items: baseline;
      justify-content: center;
      gap: 3px;
      min-width: 0;
    }
    .bill-pipeline-timeline__name {
      flex-shrink: 0;
    }
    .bill-pipeline-timeline__dur {
      font-size: 10px;
      font-weight: 500;
      color: var(--ds-text-muted);
    }
    .bill-pipeline-timeline__seg--active .bill-pipeline-timeline__dur {
      color: #b45309;
      font-weight: 600;
    }
    .bill-pipeline-timeline__seg--done .bill-pipeline-timeline__dur {
      color: #15803d;
    }
    .finance-pipeline-analytics__meta {
      font-size: 12px;
      color: var(--ds-text-muted);
      margin: 0 0 12px;
    }
    .finance-pipeline-analytics__block {
      margin-bottom: 20px;
    }
    .finance-pipeline-analytics__title {
      font-size: 14px;
      font-weight: 600;
      margin: 0 0 8px;
      color: var(--ds-text);
    }
    .finance-pipeline-analytics__more {
      margin-bottom: 16px;
      border: 1px solid var(--ds-border, #e2e8f0);
      border-radius: 8px;
      padding: 8px 12px;
      background: var(--ds-surface-muted, #f8fafc);
    }
    .finance-pipeline-analytics__more-title {
      cursor: pointer;
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text);
      user-select: none;
    }
    .finance-pipeline-analytics__more .finance-pipeline-analytics__block {
      margin-top: 12px;
      margin-bottom: 12px;
    }
    .efficiency-delta--better {
      color: #15803d;
      font-weight: 600;
    }
    .efficiency-delta--worse {
      color: #b45309;
      font-weight: 600;
    }
    .efficiency-delta--flat,
    .efficiency-delta--na {
      color: var(--ds-text-muted);
    }
    .bill-pipeline-gate-summary {
      font-size: 11px;
      line-height: 1.45;
      color: var(--ds-text-muted);
      margin-bottom: 4px;
    }
    .bill-pipeline-gate-summary__blocker {
      color: #b45309;
      font-weight: 600;
    }
    .bill-pipeline-gate-summary__ok {
      color: #15803d;
    }
    .bill-pipeline-gate-summary__muted {
      color: var(--ds-text-muted);
    }
    .bill-pipeline-gate-summary__sep {
      color: #cbd5e1;
      user-select: none;
    }
    .finance-pipeline-expand-btn {
      padding: 0 6px;
      font-size: 11px;
      min-height: 22px;
    }
    /* 经营效率：关键词 / 月份框与分段 Tab 同高（标签仍在上） */
    #finance-bill-pipeline .header-filter-toolbar {
      --fp-chrome-control-h: 33px;
    }
    #finance-bill-pipeline .header-filter-toolbar .header-filter-segment .btn.tab-btn {
      min-height: var(--fp-chrome-control-h);
      padding: 0 14px;
      line-height: var(--fp-chrome-control-h);
      box-sizing: border-box;
    }
    #finance-bill-pipeline .header-filter-toolbar .filter-field--keyword,
    #finance-bill-pipeline .header-filter-toolbar .filter-field--month {
      flex-shrink: 0;
    }
    #finance-bill-pipeline .header-filter-toolbar .filter-field--keyword .header-filter-keyword,
    #finance-bill-pipeline .header-filter-toolbar .filter-field--keyword .form-input,
    #finance-bill-pipeline .header-filter-toolbar .filter-field--month .form-input[type="month"] {
      height: calc(var(--fp-chrome-control-h) + 2px);
      min-height: calc(var(--fp-chrome-control-h) + 2px);
      max-height: calc(var(--fp-chrome-control-h) + 2px);
      padding: 0 12px;
      font-size: 13px;
      line-height: var(--fp-chrome-control-h);
      box-sizing: border-box;
    }
    #finance-bill-pipeline .header-filter-toolbar .filter-field--month .form-input[type="month"] {
      width: 100%;
      min-width: 8.5rem;
      max-width: 10.5rem;
    }
    .bill-pipeline-expand-cell {
      background: #f8fafc;
      padding: 10px 12px !important;
      border-top: none;
    }
    tr.finance-pipeline-main-row + tr.finance-pipeline-expand-row td {
      border-top: 1px dashed #e2e8f0;
    }
    .bill-pipeline-gate-detail {
      display: flex;
      flex-wrap: wrap;
      gap: 12px 20px;
      font-size: 12px;
    }
    .bill-pipeline-gate-detail__item {
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .bill-pipeline-gate-detail__label {
      color: var(--ds-text-muted);
      font-weight: 600;
      min-width: 2.5em;
    }
    #financePipelineTable .bill-pipeline-progress-cell {
      vertical-align: top;
      min-width: 400px;
    }

    .status-badge.status-badge--outline-green {
      background: transparent !important;
      color: var(--ds-success-emphasis) !important;
      border: 1.5px solid color-mix(in srgb, var(--ds-success) 40%, white);
      box-shadow: none;
    }
    #qcTemplateModal .modal-content.qc-template-editor-modal {
      width: min(94vw, 1040px);
      max-width: min(94vw, 1040px);
      overflow-x: hidden;
    }
    .qc-template-editor-modal__head {
      min-width: 0;
    }
    .qc-template-editor-hint {
      font-size: 12px;
      line-height: 1.55;
      color: #475569;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      border-radius: 8px;
      padding: 10px 12px;
      margin-bottom: 12px;
    }
    .qc-template-fields-scroll {
      max-height: 22rem;
      overflow: auto;
      border: 1px solid #e2e8f0;
      border-radius: 8px;
    }
    .qc-template-fields-table {
      margin: 0;
    }
    .qc-template-fields-table thead th {
      position: sticky;
      top: 0;
      z-index: 1;
      background: #f8fafc;
      font-size: 12px;
      white-space: nowrap;
    }
    .qc-template-fields-table .qc-col-ord {
      width: 2.25rem;
      text-align: center;
      color: #94a3b8;
    }
    .qc-template-fields-table .qc-col-key {
      min-width: 9rem;
    }
    .qc-template-fields-table .qc-col-label {
      min-width: 8rem;
    }
    .qc-template-fields-table .qc-col-type {
      width: 7.5rem;
    }
    .qc-template-fields-table .qc-col-req {
      width: 3rem;
      text-align: center;
    }
    .qc-template-fields-table .qc-col-help {
      min-width: 14rem;
    }
    .qc-template-fields-table .qc-col-act {
      width: 4.5rem;
      text-align: right;
    }
    .qc-template-fields-table tr.qc-field-row--locked {
      background: #fffbeb;
    }
    .qc-template-fields-table .qc-field-locked-tag {
      display: inline-block;
      margin-top: 4px;
      font-size: 10px;
      line-height: 1.2;
      color: #b45309;
      background: #fef3c7;
      border: 1px solid #fde68a;
      border-radius: 999px;
      padding: 1px 6px;
    }
    .qc-template-fields-table input.form-input,
    .qc-template-fields-table select.form-select {
      font-size: 13px;
      min-height: 32px;
    }
    .qc-template-fields-table input.qc-f-key[readonly] {
      background: #f1f5f9;
      color: #64748b;
      cursor: not-allowed;
    }
    .esm-alerts-panel {
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      overflow: hidden;
    }
    .esm-alerts-panel__title {
      padding: 8px 12px;
      font-size: 13px;
      font-weight: 600;
      background: #f1f5f9;
      border-bottom: 1px solid #e2e8f0;
    }
    .esm-alerts-panel__body {
      padding: 10px 12px;
    }
    .esm-alert {
      border-radius: 8px;
      padding: 8px 10px;
      margin-bottom: 8px;
      font-size: 13px;
    }
    .esm-alert:last-child {
      margin-bottom: 0;
    }
    .esm-alert--warn {
      background: #fffbeb;
      border: 1px solid #fde68a;
    }
    .esm-alert--critical {
      background: #fef2f2;
      border: 1px solid #fecaca;
    }
    .esm-alert__title {
      font-weight: 600;
      color: #0f172a;
    }
    .esm-alert__msg {
      color: #475569;
      margin-top: 2px;
    }
    .esm-alert__meta {
      font-size: 11px;
      color: #94a3b8;
      margin-top: 6px;
    }
    .as-pending-panel {
      border: 1px solid #e2e8f0;
      border-radius: 10px;
      overflow: hidden;
    }
    .as-pending-panel__title {
      padding: 10px 14px;
      font-size: 13px;
      font-weight: 600;
      color: #334155;
      background: #f8fafc;
      border-bottom: 1px solid #e2e8f0;
    }
    .as-pending-panel .table {
      margin-bottom: 0;
    }
    @media (max-width: 560px) {
      .as-case-spray-row {
        flex-direction: column;
      }
      .as-case-spray-btn {
        width: 100%;
      }
    }
    #customerReceiptModal .cusr-upload-zone {
      padding: 12px 14px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface-raised);
    }
    #customerReceiptModal .cusr-upload-zone > .form-label {
      display: block;
      margin-bottom: 10px;
    }
    .cusr-file-input-hidden {
      position: absolute;
      width: 0;
      height: 0;
      opacity: 0;
      overflow: hidden;
      pointer-events: none;
    }
    #customerReceiptModal .cusr-signed-upload-zone {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      min-height: 108px;
      padding: 18px 16px;
      border: 2px dashed color-mix(in srgb, var(--ds-border) 85%, var(--ds-accent) 15%);
      border-radius: 10px;
      background: color-mix(in srgb, var(--ds-bg-surface) 92%, var(--ds-accent) 8%);
      cursor: pointer;
      transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
      text-align: center;
    }
    #customerReceiptModal .cusr-signed-upload-zone:hover,
    #customerReceiptModal .cusr-signed-upload-zone:focus-visible {
      border-color: var(--ds-accent);
      background: color-mix(in srgb, var(--ds-bg-surface) 88%, var(--ds-accent) 12%);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-accent) 18%, transparent);
      outline: none;
    }
    #customerReceiptModal .cusr-signed-upload-zone--drag {
      border-color: var(--ds-accent);
      background: color-mix(in srgb, var(--ds-bg-surface) 82%, var(--ds-accent) 18%);
    }
    #customerReceiptModal .cusr-signed-upload-zone.hidden {
      display: none !important;
    }
    #customerReceiptModal .cusr-signed-upload-done {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px 14px;
      padding: 14px 16px;
      border: 1px solid color-mix(in srgb, var(--ds-accent) 35%, var(--ds-border));
      border-radius: 10px;
      background: color-mix(in srgb, var(--ds-bg-surface) 88%, #22c55e 12%);
    }
    #customerReceiptModal .cusr-signed-upload-done.hidden {
      display: none !important;
    }
    #customerReceiptModal .cusr-signed-upload-done--loading {
      background: color-mix(in srgb, var(--ds-bg-surface) 92%, var(--ds-accent) 8%);
      border-color: var(--ds-border);
    }
    #customerReceiptModal .cusr-signed-upload-done__icon {
      font-size: 22px;
      color: #16a34a;
    }
    #customerReceiptModal .cusr-signed-upload-done--loading .cusr-signed-upload-done__icon {
      color: var(--ds-accent);
    }
    #customerReceiptModal .cusr-signed-upload-done__meta {
      flex: 1 1 auto;
      min-width: 0;
    }
    #customerReceiptModal .cusr-signed-upload-done__title {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text);
    }
    #customerReceiptModal .cusr-signed-upload-done__name {
      font-size: 12px;
      color: var(--ds-text-secondary);
      word-break: break-all;
      margin-top: 2px;
    }
    #customerReceiptModal .cusr-signed-upload-done__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    #customerReceiptModal .cusr-signed-upload-zone__icon {
      font-size: 28px;
      color: var(--ds-accent);
      opacity: 0.9;
    }
    #customerReceiptModal .cusr-signed-upload-zone__title {
      font-size: 14px;
      font-weight: 600;
      color: var(--ds-text);
    }
    #customerReceiptModal .cusr-signed-upload-zone__sub {
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .cusr-qty-card {
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      overflow: hidden;
    }
    .cusr-qty-table {
      table-layout: fixed;
      width: 100%;
      margin: 0;
    }
    .cusr-qty-table th:nth-child(1),
    .cusr-qty-table td:nth-child(1) { width: 42%; word-break: break-word; }
    .cusr-qty-table th:nth-child(2),
    .cusr-qty-table td:nth-child(2) { width: 16%; }
    .cusr-qty-table th:nth-child(3),
    .cusr-qty-table td:nth-child(3) { width: 22%; }
    .cusr-qty-table th:nth-child(4),
    .cusr-qty-table td:nth-child(4) { width: 20%; }
    .cusr-qty-table .cusr-rcv-qty {
      width: 100%;
      max-width: none;
      min-width: 0;
      margin-left: 0;
      box-sizing: border-box;
    }
    .cusr-qty-card__head {
      font-size: 13px;
      font-weight: 600;
      padding: 8px 12px;
      background: var(--ds-bg-surface-raised);
      border-bottom: 1px solid var(--ds-border);
    }
    .cusr-totals-bar {
      padding: 10px 12px;
      font-size: 14px;
      font-weight: 600;
      color: #0f766e;
      background: #ecfdf5;
      border-top: 1px solid #a7f3d0;
    }
    .cusr-diff--warn {
      color: #b45309;
      font-weight: 600;
    }
    .cusr-variance-panel {
      padding: 12px 14px;
      border-radius: 10px;
      border: 1px solid #fcd34d;
      background: #fffbeb;
    }
    .cusr-variance-panel__head {
      font-size: 13px;
      font-weight: 600;
      color: #92400e;
      margin-bottom: 10px;
    }
    .cusr-modal__footer {
      border-top: 1px solid var(--ds-border);
    }
    .wh-cdn-mat-cell {
      max-width: 10rem;
      white-space: normal;
      line-height: 1.35;
      font-size: 13px;
    }
    .wh-cdn-lot-cell {
      font-size: 12px;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      max-width: 9rem;
    }
    .wh-cdn-ops-cell {
      white-space: nowrap;
    }
    .wh-cdn-ops-cell .btn + .btn {
      margin-left: 4px;
    }
    .insight-col-lot {
      min-width: 7rem;
    }
    @media (max-width: 720px) {
      .wh-center-inbound-band__cta {
        flex: 1 1 100%;
      }
    }
    #inventory-management .report-btn.btn-primary {
      border: none !important;
      border-radius: 8px !important;
      background: var(--ds-bg-surface) !important;
      color: var(--ds-text) !important;
      box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06) !important;
    }
    #inventory-management .report-btn.btn-secondary {
      border: none !important;
      background: transparent !important;
      color: var(--ds-text-secondary) !important;
    }

    .biz-stat-row {
      display: flex;
      flex-wrap: wrap;
      gap: 4px 0;
      margin: 0 -4px;
    }
    .biz-stat {
      flex: 1 1 88px;
      min-width: 80px;
      padding: 10px 12px;
      text-align: left;
      border-radius: 8px;
      background: transparent;
    }
    .biz-stat--warn {
      background: color-mix(in srgb, var(--ds-warning) 10%, transparent);
    }
    .biz-stat--bad {
      background: color-mix(in srgb, var(--ds-danger) 8%, transparent);
    }
    .biz-stat__label {
      display: block;
      font-size: 11px;
      color: var(--ds-text-secondary);
      line-height: 1.35;
      margin-bottom: 4px;
    }
    .biz-stat__value {
      display: block;
      font-size: 20px;
      font-weight: 700;
      line-height: 1.15;
      font-variant-numeric: tabular-nums;
      color: var(--ds-text);
    }
    .biz-stat__meta {
      display: block;
      margin-top: 4px;
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-warning-emphasis, #b45309);
      min-height: 0;
    }
    .biz-stat__meta:empty { display: none; }
    .biz-period-inline {
      margin-top: 12px;
      padding-top: 12px;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 70%, transparent);
    }
    .biz-period-inline__label {
      display: block;
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-text-muted);
      margin-bottom: 6px;
      letter-spacing: 0.04em;
    }
    .biz-table-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .biz-table-wrap .table {
      margin: 0;
      font-size: 13px;
    }
    .biz-table-wrap .table th {
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-text-secondary);
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
      background: transparent;
    }
    .biz-table-wrap .table td {
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 50%, transparent);
      vertical-align: middle;
    }
    .biz-table-wrap .table tbody tr:last-child td { border-bottom: none; }
    #wcOutboundPendingPanel.biz-table-wrap {
      overflow-x: visible;
    }
    #wcOutboundPendingPanel .table {
      table-layout: fixed;
      width: 100%;
    }
    #wcOutboundPendingPanel .table th:nth-child(1),
    #wcOutboundPendingPanel .table td:nth-child(1) {
      width: 9.5rem;
      white-space: nowrap;
    }
    #wcOutboundPendingPanel .table th:nth-child(2),
    #wcOutboundPendingPanel .table td:nth-child(2) {
      width: 7.5rem;
      white-space: nowrap;
    }
    #wcOutboundPendingPanel .table th:nth-child(3),
    #wcOutboundPendingPanel .table td:nth-child(3) {
      width: 5.5rem;
      white-space: nowrap;
    }
    #wcOutboundPendingPanel .table th:nth-child(5),
    #wcOutboundPendingPanel .table td:nth-child(5) {
      width: 9.5rem;
      white-space: nowrap;
    }
    #wcOutboundPendingPanel .table th:last-child,
    #wcOutboundPendingPanel .table td:last-child {
      width: 8.5rem;
      white-space: nowrap;
    }
    #wcOutboundPendingPanel .wc-pending-outbound-reason {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .biz-table-num {
      font-weight: 700;
      font-variant-numeric: tabular-nums;
    }
    .biz-table-num--warn { color: var(--ds-warning-emphasis, #b45309); }
    .biz-table-num--bad { color: var(--ds-danger-emphasis); }
    .bank-account-table .bank-account-group--even > td {
      background: color-mix(in srgb, var(--card-bg, #fff) 92%, var(--border-color, #e2e8f0));
    }
    .bank-account-table .bank-account-sub-row > td:not([rowspan]) {
      border-top: 1px dashed color-mix(in srgb, var(--border-color, #e2e8f0) 75%, transparent);
    }
    .bank-account-table td[rowspan].bank-account-entity-cell {
      vertical-align: top;
      max-width: 11rem;
    }
    .bank-account-table .bank-account-seq-col {
      width: 2.75rem;
      text-align: center;
      font-variant-numeric: tabular-nums;
      color: var(--ds-text-secondary, #64748b);
    }
    .master-table-seq-col {
      width: 2.75rem;
      text-align: center;
      font-variant-numeric: tabular-nums;
      color: var(--ds-text-secondary, #64748b);
    }
    .master-table-group-cell {
      vertical-align: top;
    }
    .master-table-group-table .master-table-sub-row > td:not([rowspan]) {
      border-top: 1px dashed color-mix(in srgb, var(--border-color, #e2e8f0) 75%, transparent);
    }
    .master-table-group-table .master-table-group--even > td {
      background: color-mix(in srgb, var(--card-bg, #fff) 92%, var(--border-color, #e2e8f0));
    }
    #factory-dashboard .card-header .report-header-hint__body p { max-width: 40rem; }
    /* 浅色卡片区：与财务报表同结构的「查询规则说明（点击展开）」 */
    details.report-header-hint--light {
      margin: 0 0 12px;
      padding: 8px 12px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
    }
    details.report-header-hint--light summary.report-header-hint__summary {
      font-size: 12px;
      color: var(--ds-text-secondary);
      cursor: pointer;
      list-style: none;
      font-weight: 500;
    }
    details.report-header-hint--light summary.report-header-hint__summary::-webkit-details-marker { display: none; }
    details.report-header-hint--light .report-header-hint__body {
      font-size: 12px;
      line-height: 1.55;
      color: var(--ds-text-secondary);
      margin: 8px 0 0;
      max-width: 52rem;
    }
    details.report-header-hint--light .report-header-hint__body strong { color: var(--ds-tab-surface-fg); }
    details.report-header-hint--light .report-header-hint__body code {
      font-size: 11px;
      padding: 1px 6px;
      border-radius: 4px;
      background: var(--ds-bg-surface-sunken);
      color: var(--ds-tab-surface-fg);
    }
    /* OA 发起申请 — 无边框分区，留白 + 标题色条 */
    #oaCreateModal.biz-doc-form-modal .modal-content.oa-create-modal-shell {
      max-width: min(38rem, 96vw);
      width: min(38rem, 96vw);
      max-height: min(92vh, 820px);
      border: none;
      box-shadow: 0 24px 48px -12px rgb(15 23 42 / 0.18);
    }
    #oaCreateModal .approval-doc-detail-head {
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 55%, transparent) !important;
      background: var(--ds-bg-surface) !important;
    }
    #oaCreateModal .oa-create-modal-head .modal-title { font-size: 1.05rem !important; }
    #oaCreateModal .oa-create-modal-sub {
      font-size: 12px;
      color: var(--ds-text-secondary);
      margin-top: 2px;
    }
    #oaCreateModal .oa-create-modal-body {
      display: flex;
      flex-direction: column;
      gap: 0;
      padding: 16px 18px 12px !important;
      background: var(--ds-bg-surface) !important;
    }
    #oaCreateModal .oa-create-modal-footer {
      padding: 10px 18px 14px !important;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 50%, transparent);
      background: var(--ds-bg-surface);
    }
    #oaCreateModal .form-group { margin-bottom: 0; }
    #oaCreateModal .form-label {
      font-size: 12px;
      font-weight: 500;
      color: color-mix(in srgb, var(--ds-text-secondary) 92%, var(--ds-text));
      margin-bottom: 5px;
    }
    #oaCreateModal .form-input,
    #oaCreateModal .form-select,
    #oaCreateModal .form-textarea {
      max-width: none;
      padding: 8px 11px;
      font-size: 14px;
      line-height: 1.4;
      border-radius: 8px;
      border: 1px solid transparent;
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 72%, var(--ds-bg-surface));
      box-shadow: inset 0 0 0 1px transparent;
      transition: box-shadow 0.15s ease, background 0.15s ease;
    }
    #oaCreateModal .form-input:focus,
    #oaCreateModal .form-select:focus,
    #oaCreateModal .form-textarea:focus {
      border-color: transparent;
      background: var(--ds-bg-surface);
      box-shadow: inset 0 0 0 1px var(--ds-brand, var(--primary-color, #2563eb)),
        0 0 0 2px color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 22%, transparent);
      outline: none;
    }
    #oaCreateModal .form-textarea { min-height: 64px; resize: vertical; }

    /* 顶栏：类型（限定宽度）+ 金额，左对齐成组 */
    #oaCreateModal .oa-create-hero {
      padding: 0 0 16px;
      margin-bottom: 8px;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 55%, transparent);
    }
    #oaCreateModal .oa-create-hero__toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 14px 16px;
      width: 100%;
    }
    @media (min-width: 520px) {
      #oaCreateModal .oa-create-hero__toolbar:not(.oa-create-hero__toolbar--solo) {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: end;
      }
    }
    #oaCreateModal .oa-create-hero__toolbar--solo .oa-create-type-picker {
      flex: 1 1 auto;
      max-width: none;
      width: auto;
    }
    #oaCreateModal .oa-create-type-picker {
      flex: 1 1 auto;
      width: auto;
      max-width: none;
      min-width: 0;
    }
    @media (min-width: 520px) {
      #oaCreateModal .oa-create-hero__toolbar:not(.oa-create-hero__toolbar--solo) .oa-create-type-picker {
        grid-column: 1;
      }
      #oaCreateModal .oa-create-hero__toolbar:not(.oa-create-hero__toolbar--solo) .oa-create-hero__amount {
        grid-column: 2;
      }
    }
    #oaCreateModal .oa-create-type-picker__label {
      display: block;
      margin-bottom: 4px;
      font-size: 11px;
      font-weight: 500;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-create-type-picker__shell {
      position: relative;
      display: flex;
      align-items: center;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface);
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
    }
    #oaCreateModal .oa-create-type-picker__shell:hover {
      border-color: color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 40%, var(--ds-border));
    }
    #oaCreateModal .oa-create-type-picker__shell:focus-within {
      border-color: var(--ds-brand, var(--primary-color, #2563eb));
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 18%, transparent);
    }
    #oaCreateModal .oa-create-type-picker__select {
      flex: 1 1 auto;
      min-width: 0;
      appearance: none;
      -webkit-appearance: none;
      margin: 0;
      padding: 10px 2.25rem 10px 12px;
      border: none;
      border-radius: 10px;
      background: transparent;
      font-size: 15px;
      font-weight: 600;
      line-height: 1.3;
      color: var(--ds-text);
      cursor: pointer;
      box-shadow: none;
    }
    #oaCreateModal .oa-create-type-picker__select:focus {
      outline: none;
      box-shadow: none;
      background: transparent;
    }
    #oaCreateModal .oa-create-type-picker__chev {
      position: absolute;
      right: 12px;
      top: 50%;
      width: 0;
      height: 0;
      margin-top: -2px;
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 6px solid var(--ds-text-secondary);
      pointer-events: none;
    }
    #oaCreateModal .oa-create-hero__amount {
      flex: 1 1 7.5rem;
      min-width: 0;
      max-width: 100%;
    }
    #oaCreateModal .oa-create-hero__amount.is-collapsed {
      display: none;
    }

    /* 金额块：顶栏与表单内合计共用样式 */
    #oaCreateModal .oa-form-total {
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      text-align: left;
      min-width: 0;
      width: 100%;
    }
    #oaCreateModal .oa-form-total__label {
      font-size: 12px;
      font-weight: 500;
      color: color-mix(in srgb, var(--ds-text-secondary) 92%, var(--ds-text));
      margin-bottom: 5px;
    }
    #oaCreateModal .oa-form-total__value {
      display: block;
      margin-top: 4px;
      font-size: 1.35rem;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      line-height: 1.1;
      color: var(--ds-brand, var(--primary-color, #2563eb));
    }
    #oaCreateModal .oa-form-total__input {
      width: 100%;
      max-width: 100%;
      margin-top: 0;
      padding: 8px 11px;
      border: 1px solid transparent;
      border-radius: 8px;
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 72%, var(--ds-bg-surface));
      text-align: right;
      font-size: 14px;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      line-height: 1.4;
      color: var(--ds-text);
      box-shadow: none;
      box-sizing: border-box;
      -moz-appearance: textfield;
    }
    #oaCreateModal .oa-form-total__input::-webkit-outer-spin-button,
    #oaCreateModal .oa-form-total__input::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }
    #oaCreateModal .oa-form-total__input:hover {
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 88%, var(--ds-bg-surface));
    }
    #oaCreateModal .oa-form-total__input:focus {
      border-color: var(--ds-brand, var(--primary-color, #2563eb));
      background: var(--ds-bg-surface);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 18%, transparent);
      outline: none;
    }
    #oaCreateModal .oa-form-total__input.oa-create-amount-input--readonly {
      padding: 0;
      border: none;
      background: transparent;
      font-size: 1.35rem;
      font-weight: 700;
      color: var(--ds-brand, var(--primary-color, #2563eb));
      cursor: default;
      box-shadow: none;
    }
    #oaCreateModal .oa-form-total__input.oa-create-amount-input--readonly:focus {
      box-shadow: none;
    }
    #oaCreateModal .oa-form-total__input::placeholder {
      color: color-mix(in srgb, var(--ds-text-secondary) 45%, transparent);
      font-weight: 600;
    }
    #oaCreateModal .oa-create-hero__caption {
      display: block;
      width: 100%;
      margin: 10px 0 0;
      padding: 0;
      border: none;
      background: transparent;
      font-size: 12px;
      line-height: 1.45;
      color: var(--ds-text-secondary);
      box-shadow: none;
    }
    #oaCreateModal .oa-create-hero__hint {
      margin: 6px 0 0;
      font-size: 11px;
      line-height: 1.45;
      color: var(--ds-text-secondary);
    }

    /* 分区：仅标题色条 + 间距，无卡片框 */
    #oaCreateModal .oa-block {
      padding: 18px 0 0;
      margin: 0;
      border: none;
      background: transparent;
    }
    #oaCreateModal .oa-block:first-child,
    #oaCreateModal .oa-create-form-area > .oa-block:first-child {
      padding-top: 0;
    }
    #oaCreateModal .oa-block__title,
    #oaCreateModal .oa-proc-card__head {
      display: flex;
      align-items: center;
      gap: 8px;
      margin: 0 0 14px;
      padding: 0 0 0 11px;
      border: none;
      border-left: 3px solid var(--ds-text);
      background: transparent;
      font-size: 14px;
      font-weight: 600;
      color: var(--ds-text);
      line-height: 1.3;
    }
    #oaCreateModal .oa-block__title--fold,
    #oaCreateModal .oa-proc-card__head--fold {
      cursor: pointer;
      list-style: none;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-block__title--fold::-webkit-details-marker,
    #oaCreateModal .oa-proc-card__head--fold::-webkit-details-marker { display: none; }
    #oaCreateModal .oa-block__step,
    #oaCreateModal .oa-proc-card__badge {
      display: none !important;
    }
    #oaCreateModal .oa-block__grid,
    #oaCreateModal .oa-proc-card__duo,
    #oaCreateModal .oa-proc-card__trio,
    #oaCreateModal .oa-create-dense-grid {
      display: grid;
      gap: 14px 16px;
      padding: 0;
    }
    #oaCreateModal .oa-block__grid,
    #oaCreateModal .oa-proc-card__duo,
    #oaCreateModal .oa-create-dense-grid { grid-template-columns: 1fr; }
    @media (min-width: 520px) {
      #oaCreateModal .oa-block__grid,
      #oaCreateModal .oa-proc-card__duo,
      #oaCreateModal .oa-create-dense-grid--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      #oaCreateModal .oa-proc-card__trio {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }
    #oaCreateModal .oa-span-full { grid-column: 1 / -1; }
    #oaCreateModal .oa-proc-card,
    #oaCreateModal .oa-block--fold {
      border: none;
      background: transparent;
      overflow: visible;
    }
    #oaCreateModal .oa-proc-card__fold-body,
    #oaCreateModal .oa-block--fold .oa-proc-card__fold-body {
      padding: 0 0 0 14px;
      border: none;
    }
    #oaCreateModal .oa-block--remark {
      padding-top: 16px;
    }
    #oaCreateModal .oa-proc-form__cards {
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    #oaCreateModal .oa-proc-form__tip {
      margin: 0 0 8px;
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-proc-form__tip summary {
      cursor: pointer;
      list-style: none;
      font-weight: 500;
    }
    #oaCreateModal .oa-proc-form__tip summary::-webkit-details-marker { display: none; }
    #oaCreateModal .oa-proc-form__tip p {
      margin: 8px 0 0;
      line-height: 1.5;
      padding: 0;
      border: none;
      background: transparent;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-proc-calc {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 10px 12px;
      margin: 4px 0 0;
      padding: 12px 0 0;
      border: none;
      border-top: 1px dashed color-mix(in srgb, var(--ds-border) 70%, transparent);
      border-radius: 0;
      background: transparent;
    }
    #oaCreateModal .oa-proc-calc--duo {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      align-items: end;
    }
    #oaCreateModal .oa-proc-calc--duo .oa-proc-calc__field--price .form-input {
      font-weight: 600;
    }
    #oaCreateModal .oa-proc-calc__field { flex: 1 1 5.5rem; min-width: 5rem; }
    #oaCreateModal .oa-proc-calc__op,
    #oaCreateModal .oa-proc-calc__eq {
      font-size: 1rem;
      font-weight: 600;
      color: color-mix(in srgb, var(--ds-text-secondary) 75%, transparent);
      padding-bottom: 9px;
    }
    #oaCreateModal .oa-proc-calc__result { flex: 1 1 6rem; text-align: right; }
    #oaCreateModal .oa-proc-calc__result-label {
      font-size: 11px;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-proc-calc__result-value {
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--primary, #4f46e5);
    }
    #oaCreateModal .oa-wh-out-info-duo--solo {
      grid-template-columns: 1fr;
    }
    #oaCreateModal .oa-wh-out-lines-head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 8px 12px;
      margin-bottom: 10px;
    }
    #oaCreateModal .oa-wh-out-lines-head .oa-block__title {
      margin-bottom: 0;
    }
    #oaCreateModal .oa-wh-out-line__grid {
      grid-template-columns: minmax(0, 1.55fr) minmax(0, 1.25fr) minmax(6.5rem, 8rem) minmax(5rem, 6.5rem);
      gap: 12px 14px;
      padding-right: 3.75rem;
    }
    @media (max-width: 640px) {
      #oaCreateModal .oa-wh-out-line__grid {
        grid-template-columns: 1fr 1fr;
        padding-right: 0;
      }
      #oaCreateModal .oa-wh-out-line__field--mat {
        grid-column: 1 / -1;
      }
    }
    #oaCreateModal .oa-proc-range {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 10px;
      padding: 0;
    }
    #oaCreateModal .oa-proc-range__field { flex: 1 1 7rem; }
    #oaCreateModal .oa-proc-range__sep {
      padding-bottom: 10px;
      font-size: 13px;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-proc-card > .form-group { padding: 0; }
    #oaCreateModal .oa-create-mat-table-wrap {
      margin: 0 0 12px;
      border: none;
      border-radius: 8px;
      overflow: hidden;
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 65%, transparent);
    }
    #oaCreateModal .oa-proc-mat-table th {
      background: transparent;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 55%, transparent);
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-proc-mat-table td {
      border: none;
      font-size: 13px;
    }
    #oaCreateModal .oa-create-subject-row {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }
    #oaCreateModal .oa-subject-picker {
      display: flex;
      align-items: stretch;
      width: 100%;
      border-radius: 8px;
      border: 1px solid transparent;
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 72%, var(--ds-bg-surface));
      overflow: hidden;
      transition: background 0.15s ease, box-shadow 0.15s ease;
    }
    #oaCreateModal .oa-subject-picker:hover {
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 88%, var(--ds-bg-surface));
    }
    #oaCreateModal .oa-subject-picker:focus-within {
      background: var(--ds-bg-surface);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 35%, transparent);
    }
    #oaCreateModal .oa-subject-picker__filter-wrap {
      display: flex;
      align-items: center;
      gap: 6px;
      flex: 0 0 8.5rem;
      min-width: 0;
      padding: 0 10px;
      border-right: 1px solid color-mix(in srgb, var(--ds-border) 65%, transparent);
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 55%, var(--ds-bg-surface));
    }
    #oaCreateModal .oa-subject-picker__icon {
      flex-shrink: 0;
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-subject-picker__filter {
      flex: 1 1 auto;
      min-width: 0;
      width: 100%;
      padding: 8px 0;
      border: none;
      background: transparent;
      font-size: 13px;
      color: var(--ds-text);
      box-shadow: none;
    }
    #oaCreateModal .oa-subject-picker__filter:focus {
      outline: none;
      box-shadow: none;
    }
    #oaCreateModal .oa-subject-picker__filter::placeholder {
      color: color-mix(in srgb, var(--ds-text-secondary) 75%, transparent);
    }
    #oaCreateModal .oa-subject-picker__select {
      flex: 1 1 auto;
      min-width: 0;
      margin: 0;
      padding: 8px 11px;
      border: none;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
    }
    #oaCreateModal .oa-subject-picker__select:focus {
      outline: none;
      box-shadow: none;
    }
    #oaCreateModal .oa-subject-picker--compact {
      min-height: 2rem;
    }
    #oaCreateModal .oa-subject-picker--compact .oa-subject-picker__filter-wrap {
      flex-basis: 5.75rem;
      padding: 0 8px;
    }
    #oaCreateModal .oa-subject-picker--compact .oa-subject-picker__filter,
    #oaCreateModal .oa-subject-picker--compact .oa-subject-picker__select {
      padding-top: 6px;
      padding-bottom: 6px;
      font-size: 12px;
    }
    #oaCreateModal .oa-create-inline-hint {
      margin: 0;
      padding: 0;
      font-size: 12px;
      line-height: 1.5;
      color: var(--ds-text-secondary);
      background: transparent;
    }

    /* 附件：标题在上，拖拽区占满宽 */
    #oaCreateModal .oa-create-attach {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 6px;
      margin-top: 20px;
      padding-top: 16px;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 50%, transparent);
    }
    #oaCreateModal .oa-create-attach__label {
      margin: 0 0 2px;
      padding: 0;
    }
    #oaCreateModal .oa-create-attach__main {
      flex: 1 1 auto;
      width: 100%;
      min-width: 0;
    }
    #oaCreateModal .oa-create-attach-input {
      position: absolute;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }
    #oaCreateModal .oa-create-attach-dropzone {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 4px;
      min-height: 96px;
      padding: 14px;
      border: 2px dashed color-mix(in srgb, var(--ds-border) 90%, transparent);
      border-radius: 10px;
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 75%, transparent);
      cursor: pointer;
      transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
      text-align: center;
    }
    #oaCreateModal .oa-create-attach-dropzone:hover,
    #oaCreateModal .oa-create-attach-dropzone:focus-visible {
      border-color: color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 45%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 6%, var(--ds-bg-surface));
      outline: none;
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 12%, transparent);
    }
    #oaCreateModal .oa-create-attach-dropzone--drag {
      border-color: var(--ds-brand, var(--primary-color, #2563eb));
      background: color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 10%, var(--ds-bg-surface));
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-brand, var(--primary-color, #2563eb)) 18%, transparent);
    }
    #oaCreateModal .oa-create-attach-dropzone--uploading {
      opacity: 0.72;
      pointer-events: none;
    }
    #oaCreateModal .oa-create-attach-dropzone--has-files {
      min-height: 72px;
      padding: 10px 14px;
    }
    #oaCreateModal .oa-create-attach-dropzone__icon {
      font-size: 24px;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-create-attach-dropzone__title {
      margin: 0;
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text);
    }
    #oaCreateModal .oa-create-attach-dropzone__meta {
      margin: 0;
      font-size: 11px;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-create-attach-list {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-top: 10px;
    }
    #oaCreateModal .oa-create-attach-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 10px;
      border-radius: 8px;
      background: color-mix(in srgb, #16a34a 8%, var(--ds-bg-surface));
      border: 1px solid color-mix(in srgb, #16a34a 25%, transparent);
      font-size: 13px;
    }
    #oaCreateModal .oa-create-attach-item .fa-check-circle {
      color: #16a34a;
      flex-shrink: 0;
    }
    #oaCreateModal .oa-create-attach-item__name {
      flex: 1 1 auto;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    #oaCreateModal .oa-create-attach-item__meta {
      flex-shrink: 0;
      font-size: 11px;
      font-weight: 600;
      color: #16a34a;
    }
    #oaCreateModal .oa-create-attach-item__remove {
      flex-shrink: 0;
      width: 1.5rem;
      height: 1.5rem;
      padding: 0;
      border: none;
      border-radius: 6px;
      background: transparent;
      color: var(--ds-text-secondary);
      cursor: pointer;
      line-height: 1;
    }
    #oaCreateModal .oa-create-attach-item__remove:hover {
      background: color-mix(in srgb, #dc2626 10%, transparent);
      color: #dc2626;
    }
    #oaCreateModal .oa-create-attach-hint {
      margin: 8px 0 0;
      font-size: 11px;
      color: var(--ds-text-secondary);
    }
    #oaCreateModal .oa-create-attach-hint--ok {
      color: #16a34a;
      font-weight: 500;
    }
    #oaCreateModal .oa-create-attach-hint--err {
      color: #dc2626;
    }

    /* 报销明细：紧凑单行 + 与顶栏一致的合计样式 */
    #oaCreateModal .oa-reimb-block { padding-top: 16px; }
    #oaCreateModal .oa-reimb-head {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 10px;
    }
    #oaCreateModal .oa-reimb-head__title {
      margin: 0;
      flex: 0 0 auto;
      white-space: nowrap;
    }
    #oaCreateModal .oa-reimb-head__total {
      flex-shrink: 0;
      min-width: 6.5rem;
    }
    #oaCreateModal .oa-reimb-lines {
      display: flex;
      flex-direction: column;
      gap: 0;
      border: 1px solid color-mix(in srgb, var(--ds-border) 70%, transparent);
      border-radius: 10px;
      overflow: hidden;
      background: var(--ds-bg-surface);
    }
    #oaCreateModal .oa-reimb-line {
      display: grid;
      grid-template-columns: 5.25rem minmax(0, 1.35fr) minmax(0, 1fr) 1.75rem;
      gap: 8px;
      align-items: center;
      padding: 8px 10px;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 55%, transparent);
    }
    #oaCreateModal .oa-reimb-line:first-child {
      border-top: none;
    }
    #oaCreateModal .oa-reimb-line .form-input,
    #oaCreateModal .oa-reimb-line .form-select {
      min-height: 2rem;
      padding-top: 6px;
      padding-bottom: 6px;
      font-size: 13px;
    }
    #oaCreateModal .oa-reimb-line__subject.oa-subject-picker {
      min-width: 0;
    }
    #oaCreateModal .oa-reimb-line .oa-subject-picker__filter-wrap {
      flex-basis: 5.25rem;
    }
    #oaCreateModal .oa-reimb-line__remove {
      width: 1.75rem;
      height: 1.75rem;
      padding: 0;
      font-size: 1.1rem;
      line-height: 1;
      color: color-mix(in srgb, #dc2626 80%, var(--ds-text-secondary));
      background: transparent;
      border: none;
      border-radius: 6px;
      cursor: pointer;
    }
    #oaCreateModal .oa-reimb-line__remove:hover {
      background: color-mix(in srgb, #dc2626 8%, transparent);
    }
    #oaCreateModal .oa-reimb-add-btn {
      margin-top: 10px;
    }
    #oaCreateModal #oaFundSettleAppBox {
      border: none;
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 65%, transparent);
      border-radius: 8px;
      max-height: 180px;
    }
    /* 看板页：允许表头 position:sticky 随 .content-area 滚动（.card 默认 overflow:hidden 会失效） */
    .card.card--dash {
      overflow: visible;
    }
    /* overflow:visible 时表头背景不会随卡片圆角裁剪，单独补上顶角 */
    .card.card--dash > .card-header {
      border-top-left-radius: var(--radius-lg);
      border-top-right-radius: var(--radius-lg);
    }
    /* 我的空间内嵌看板：KPI 金额必须在卡片内裁剪 */
    .hq-dashboard--in-workspace.card--dash {
      overflow: hidden;
      min-width: 0;
    }
    .hq-dashboard--in-workspace.card--dash .card-body {
      min-width: 0;
      overflow: hidden;
      padding: 18px 16px 22px;
    }
    .hq-dashboard--in-workspace.card--dash .card-header {
      padding: 16px 18px;
    }
    .card.card--dash .card-body {
      padding-bottom: 28px;
    }
    /* 纵向滚动表格区：大数据量时在容器内滚动（勿对 th 用 sticky，border-collapse 下易错位） */
    .table-scroll-y {
      max-height: min(52vh, 560px);
      overflow: auto;
      border-radius: 12px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      -webkit-overflow-scrolling: touch;
      min-height: 0;
    }
    .table-scroll-y .table {
      margin-bottom: 0;
    }
    /* 全站列表区：固定高度框内纵向滚动（库存 / 我的空间 / 业务列表共用） */
    .list-panel-outer {
      position: relative;
      height: min(calc(100vh - 17rem), 720px);
      min-height: min(calc(100vh - 17rem), 720px);
      margin-bottom: 1rem;
    }
    .list-panel-outer .list-panel-scroll {
      height: 100%;
      max-height: none;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
      min-height: 0;
    }
    .list-panel-outer .list-panel-scroll.table-container {
      margin-bottom: 0;
    }
    .list-panel-outer.list-panel-outer--more-below::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 3.25rem;
      pointer-events: none;
      border-radius: 0 0 12px 12px;
      background: linear-gradient(
        to bottom,
        transparent,
        color-mix(in srgb, var(--ds-bg-surface, #fff) 92%, transparent)
      );
    }
    .list-panel-scroll-hint {
      position: absolute;
      left: 50%;
      bottom: 10px;
      z-index: 2;
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 4px 12px;
      border-radius: 999px;
      font-size: 12px;
      line-height: 1.3;
      color: var(--ds-text-secondary, #64748b);
      background: color-mix(in srgb, var(--ds-bg-surface, #fff) 94%, var(--ds-border, #e2e8f0));
      border: 1px solid color-mix(in srgb, var(--ds-border, #e2e8f0) 80%, transparent);
      box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
      pointer-events: none;
      transform: translateX(-50%);
      white-space: nowrap;
    }
    .list-panel-scroll-hint.hidden {
      display: none;
    }
    .list-panel-scroll-hint__chev {
      font-size: 13px;
      line-height: 1;
      animation: list-panel-scroll-hint-bob 1.6s ease-in-out infinite;
    }
    @keyframes list-panel-scroll-hint-bob {
      0%, 100% { transform: translateY(0); opacity: 0.75; }
      50% { transform: translateY(3px); opacity: 1; }
    }
    .table.table--compact {
      min-width: 0;
      width: 100%;
    }
    /* OA 审批路径配置：默认折叠，展开后紧凑表格 */
    .oa-route-config {
      border: 1px solid var(--ds-border, var(--border-color));
      border-radius: 10px;
      background: var(--ds-bg-surface, var(--card-bg));
    }
    .oa-route-config__summary {
      cursor: pointer;
      padding: 10px 14px;
      font-size: 14px;
      font-weight: 600;
      color: var(--ds-text, var(--text-primary));
      list-style: none;
      user-select: none;
    }
    .oa-route-config__summary::-webkit-details-marker {
      display: none;
    }
    .oa-route-config__summary::before {
      content: '▸ ';
      display: inline-block;
      transition: transform 0.15s ease;
      color: var(--ds-text-secondary, var(--text-secondary));
    }
    .oa-route-config[open] .oa-route-config__summary::before {
      transform: rotate(90deg);
    }
    .oa-route-config__body {
      padding: 0 14px 12px;
      border-top: 1px solid var(--ds-border, var(--border-color));
    }
    .oa-route-config__block {
      padding-top: 10px;
    }
    .oa-route-config__block--border {
      margin-top: 10px;
      padding-top: 12px;
      border-top: 1px dashed var(--ds-border, var(--border-color));
    }
    .oa-route-config__subtitle {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text, var(--text-primary));
      margin-bottom: 4px;
    }
    .oa-route-config__lead {
      margin: 0 0 8px;
      font-size: 12px;
      line-height: 1.45;
      color: var(--ds-text-secondary, var(--text-secondary));
    }
    .oa-route-config__hint {
      margin: 6px 0 0;
      font-size: 11px;
      color: var(--ds-text-secondary, var(--text-secondary));
    }
    .oa-route-config__org-select {
      max-width: 20rem;
    }
    .oa-route-config__table th,
    .oa-route-config__table td {
      padding: 6px 10px;
      vertical-align: middle;
    }
    .oa-route-config__table .oa-primary-route-sel {
      min-width: 9rem;
      max-width: 14rem;
    }
    /* 长文本列用类名控制换行，勿用 nth-child(3)：会误伤「收付款日期」等第三列 */
    .table.table--compact td.cell-wrap-420,
    .table.table--compact th.cell-wrap-420 {
      white-space: normal;
      max-width: min(420px, 55vw);
      vertical-align: top;
    }
    #approve-center .table.table--compact th:nth-child(3),
    #approve-center .table.table--compact td:nth-child(3) {
      white-space: nowrap;
      min-width: 6.5rem;
      max-width: 8.75rem;
      width: 8rem;
    }
    #approve-center .table.table--compact th:nth-child(9),
    #approve-center .table.table--compact td:nth-child(9) {
      max-width: min(360px, 42vw);
      vertical-align: middle;
    }
    #approve-center .table.table--compact th:nth-child(10),
    #approve-center .table.table--compact td:nth-child(10) {
      vertical-align: middle;
    }
    #approve-center td.approval-row-actions {
      vertical-align: middle;
      white-space: nowrap;
      min-width: 13rem;
    }
    #approve-center .table.table--compact th:last-child {
      min-width: 13rem;
    }
    /* 全站可点击单据编号（与审批中心一致） */
    button.approval-doc-link,
    a.approval-doc-link {
      display: inline;
      padding: 0;
      margin: 0;
      border: 0;
      background: transparent;
      font: inherit;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      letter-spacing: 0.01em;
      color: var(--ds-brand, var(--primary-color));
      text-align: left;
      text-decoration: none;
      cursor: pointer;
      vertical-align: baseline;
      line-height: inherit;
    }
    button.approval-doc-link:hover,
    a.approval-doc-link:hover {
      color: var(--ds-brand-hover, var(--primary-dark));
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    button.approval-doc-link:focus-visible,
    a.approval-doc-link:focus-visible {
      outline: 2px solid var(--ds-brand, var(--primary-color));
      outline-offset: 2px;
      border-radius: 2px;
    }
    #approve-center .approval-doc-link {
      display: inline-block;
      max-width: min(11rem, 28vw);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      vertical-align: middle;
    }
    .approval-row-actions__inner {
      display: inline-flex;
      flex-wrap: nowrap;
      align-items: center;
      gap: 4px;
      max-width: none;
    }
    .approval-act-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 26px;
      padding: 2px 10px;
      border-radius: 6px;
      font-size: 12px;
      font-weight: 600;
      line-height: 1.3;
      white-space: nowrap;
      cursor: pointer;
      border: 1px solid transparent;
      background: transparent;
      transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    }
    .approval-act-btn--approve {
      color: var(--ds-success-emphasis, #15803d);
      border-color: color-mix(in srgb, var(--ds-success, #22c55e) 45%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-success, #22c55e) 8%, transparent);
    }
    .approval-act-btn--approve:hover {
      background: color-mix(in srgb, var(--ds-success, #22c55e) 18%, transparent);
    }
    .approval-act-btn--reject {
      color: var(--ds-danger-emphasis, #b91c1c);
      border-color: color-mix(in srgb, var(--ds-danger, #dc2626) 42%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-danger, #dc2626) 6%, transparent);
    }
    .approval-act-btn--reject:hover {
      background: var(--ds-danger-muted, #fef2f2);
    }
    .approval-act-btn--neutral {
      color: var(--ds-text-secondary, #64748b);
      background: var(--ds-bg-surface, #fff);
      border-color: var(--ds-border, #e2e8f0);
      box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
    }
    .approval-act-btn--pay {
      color: var(--text-on-accent, #fff);
      background: var(--primary-color, var(--ds-brand, #2563eb));
      border-color: var(--primary-color, var(--ds-brand, #2563eb));
      box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
    }
    .approval-act-btn--pay:hover {
      color: var(--text-on-accent, #fff);
      background: var(--primary-dark, var(--ds-brand-hover, #1d4ed8));
      border-color: var(--primary-dark, var(--ds-brand-hover, #1d4ed8));
    }
    .approval-act-btn--neutral:hover {
      color: var(--ds-text-primary, #0f172a);
      background: var(--ds-bg-muted, #f8fafc);
      border-color: color-mix(in srgb, var(--ds-border, #e2e8f0) 70%, var(--ds-text-muted, #94a3b8));
    }
    #approvalBillsTable.table--density-compact .approval-act-btn {
      min-height: 24px;
      padding: 1px 8px;
      font-size: 11px;
    }
    .approval-row-actions__hint {
      display: inline;
      font-size: 12px;
      line-height: 1.25;
      color: var(--ds-text-muted);
      white-space: nowrap;
    }
    .approval-row-actions__hint--warn {
      color: var(--ds-warning-emphasis);
    }
    .btn-ghost {
      background: transparent;
      color: var(--ds-text-secondary);
      border: 1px solid transparent;
      box-shadow: none;
      font-weight: 500;
    }
    .btn-ghost:hover {
      background: var(--ds-bg-surface-raised);
      color: var(--ds-text);
      border-color: var(--ds-border);
    }
    .btn-danger-outline {
      background: transparent;
      color: var(--ds-danger-emphasis);
      border: 1px solid color-mix(in srgb, var(--ds-danger) 42%, var(--ds-border));
    }
    .btn-danger-outline:hover {
      background: var(--ds-danger-muted);
      border-color: color-mix(in srgb, var(--ds-danger) 55%, transparent);
      color: var(--ds-danger-emphasis);
    }
    /* 审批中心 / 出纳收付：彩色 card-header 上的筛选分段（勿用全局 btn-primary，会与顶栏同色） */
    .card-header .header-filter-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 10px 12px;
      margin-top: 12px;
    }
    .card-header .header-filter-segment {
      display: inline-flex;
      flex-wrap: wrap;
      border-radius: var(--radius-sm);
      border: 1px solid var(--header-chrome-segment-border);
      overflow: hidden;
      background: var(--header-chrome-segment-bg);
    }
    .card-header .header-filter-segment .btn.tab-btn {
      margin: 0;
      border-radius: 0;
      border: none;
      box-shadow: none;
      padding: 8px 14px;
      font-size: 13px;
      font-weight: 600;
    }
    .card-header .header-filter-segment .btn.tab-btn.btn-secondary {
      background: transparent;
      color: var(--header-chrome-tab-idle);
    }
    .card-header .header-filter-segment .btn.tab-btn.btn-secondary:hover {
      background: var(--header-chrome-tab-idle-hover);
      color: var(--header-chrome-tab-idle);
      border-color: transparent;
    }
    .card-header .header-filter-segment .btn.tab-btn.btn-primary {
      background: var(--header-chrome-tab-active-bg);
      color: var(--header-chrome-tab-active-fg);
      border-color: transparent;
    }
    .card-header .header-filter-segment .btn.tab-btn.btn-primary:hover {
      background: var(--header-chrome-tab-active-bg);
      color: var(--header-chrome-tab-active-fg);
      filter: brightness(0.97);
    }
    .card-header .header-filter-keyword {
      flex: none;
      width: 100%;
      min-width: 0;
      max-width: 100%;
    }
    .card-header .header-filter-meta {
      display: inline-flex;
      align-items: center;
      margin-top: 0.875rem;
      font-size: 12px;
      line-height: 1;
      padding: 6px 10px;
      border-radius: 999px;
      border: 1px solid var(--header-chrome-outline-border);
      background: transparent;
      color: var(--header-chrome-outline-fg);
      font-weight: 600;
      white-space: nowrap;
    }
    /* 审批中心等：状态类仅作标记，禁止绿/红描边（统一白线框） */
    .card-header .header-filter-meta.header-filter-meta--approved,
    .card-header .header-filter-meta.header-filter-meta--rejected,
    .card-header .header-filter-meta.header-filter-meta--pending,
    .card-header .header-filter-meta.header-filter-meta--all {
      border-color: var(--header-chrome-outline-border);
      background: transparent;
      color: var(--header-chrome-outline-fg);
    }
    .summary-cell-expand {
      display: inline-block;
      max-width: min(360px, 42vw);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      vertical-align: middle;
      line-height: inherit;
      cursor: pointer;
      color: inherit;
      border-bottom: 1px dashed transparent;
    }
    .summary-cell-expand:hover {
      border-bottom-color: var(--ds-text-muted);
      color: var(--ds-text);
    }
    .dash-quick-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px;
      padding: 14px 16px;
      background: var(--ds-bg-surface-sunken);
      border: 1px solid var(--ds-border);
      border-radius: 12px;
      margin-bottom: 20px;
    }
    .dash-quick-row .dash-quick-label {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
      margin-right: 4px;
    }
    
    /* Tooltip 样式 - 使用浏览器默认的title属性 */
    .tooltip-icon {
      cursor: help;
    }
    
    /* 水平滚动容器 */
    .overflow-x-auto {
      overflow-x: auto;
      white-space: nowrap;
    }
    
    .overflow-x-auto::-webkit-scrollbar {
      height: 6px;
    }
    
    .overflow-x-auto::-webkit-scrollbar-track {
      background: color-mix(in srgb, var(--ds-on-inverse) 5%, transparent);
      border-radius: 3px;
    }
    
    .overflow-x-auto::-webkit-scrollbar-thumb {
      background: color-mix(in srgb, var(--ds-on-inverse) 20%, transparent);
      border-radius: 3px;
    }
    
    .overflow-x-auto::-webkit-scrollbar-thumb:hover {
      background: color-mix(in srgb, var(--ds-on-inverse) 30%, transparent);
    }
    
    html {
      height: 100%;
    }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      background-color: var(--background-color);
      color: var(--text-primary);
      margin: 0;
      padding: 0;
      min-height: 100%;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      font-feature-settings: "kern" 1, "liga" 1;
    }
    
    .sidebar { 
      background: linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-end) 100%);
      border-right: 1px solid var(--sidebar-edge);
      box-shadow: none;
      transition: transform 0.22s ease, box-shadow 0.22s ease; 
      display: flex; 
      flex-direction: column; 
      height: 100vh; 
      overflow: hidden; 
      position: fixed; 
      left: 0; 
      top: 0; 
      z-index: 1; 
      width: 16rem; 
    }
    
    .sidebar-header { 
      background: transparent;
      padding: 22px 20px 18px; 
      border-bottom: 1px solid var(--sidebar-edge); 
      flex-shrink: 0;
    }
    
    .sidebar-title { 
      color: var(--sidebar-text); 
      font-size: 18px; 
      font-weight: 600; 
      display: flex; 
      align-items: flex-start; 
      gap: 12px; 
      margin: 0;
      line-height: 1.25;
    }
    .sidebar-title > i {
      margin-top: 3px;
      flex-shrink: 0;
    }
    .sidebar-brand {
      display: flex;
      flex-direction: column;
      gap: 4px;
      min-width: 0;
    }
    .sidebar-brand-name {
      font-size: 17px;
      font-weight: 600;
      letter-spacing: 0.02em;
    }
    .sidebar-version {
      font-size: 11px;
      font-weight: 500;
      color: var(--sidebar-muted);
      letter-spacing: 0.06em;
      opacity: 0.9;
    }

    .sidebar-icp {
      margin: 8px 16px 0;
      font-size: 10px;
      line-height: 1.4;
      text-align: center;
      color: var(--sidebar-muted);
      opacity: 0.85;
    }

    .sidebar-icp a {
      color: inherit;
      text-decoration: none;
    }

    .sidebar-icp a:hover {
      text-decoration: underline;
    }
    
    .nav-group-title { 
      color: var(--sidebar-muted); 
      font-size: 11px; 
      font-weight: 600; 
      text-transform: uppercase; 
      letter-spacing: 0.08em; 
      padding: 18px 20px 8px; 
    }
    .nav-subgroup-title {
      color: var(--nav-subgroup-title-color);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.3px;
      padding: 10px 20px 6px 28px;
    }
    
    .nav-item {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 9px 14px 9px 16px;
      color: var(--nav-item-color);
      border-radius: var(--radius-sm);
      margin: 2px 10px;
      transition: background 0.18s ease, color 0.18s ease;
      text-decoration: none;
      font-size: 14px;
      font-weight: 500;
      position: relative;
      letter-spacing: 0.01em;
    }
    
    .nav-item:hover {
      background-color: var(--sidebar-hover);
      color: var(--nav-item-hover-color);
    }
    
    .nav-item:hover i {
      color: var(--nav-item-hover-color);
    }
    
    .nav-item.active {
      background-color: var(--sidebar-active-bg);
      color: var(--nav-item-hover-color);
      box-shadow: inset 0 0 0 1px var(--sidebar-active-border);
    }
    
    .nav-item.active::before {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 3px;
      height: 20px;
      background: var(--primary-color);
      border-radius: 0 3px 3px 0;
    }
    
    .nav-item.active i {
      color: var(--nav-item-hover-color);
    }
    
    .nav-item i {
      width: 20px;
      text-align: center;
      font-size: 15px;
      color: var(--nav-item-icon-color);
      transition: color 0.18s ease;
    }
    
    .sidebar-nav { 
      flex: 1 1 auto;
      overflow-y: auto; 
      min-height: 0; 
      -webkit-overflow-scrolling: touch;
    }
    .sidebar-compact-bar {
      padding: 8px 16px 0;
    }
    .sidebar-toggle-all-btn {
      width: 100%;
      border: 1px solid var(--sidebar-toggle-border);
      background: var(--sidebar-toggle-bg);
      color: var(--sidebar-toggle-color);
      border-radius: 8px;
      padding: 7px 10px;
      font-size: 12px;
      cursor: pointer;
      transition: all 0.2s ease;
    }
    .sidebar-toggle-all-btn:hover {
      border-color: var(--sidebar-active-border);
      color: var(--sidebar-toggle-hover-color);
      background: var(--sidebar-toggle-hover-bg);
    }
    body.sidebar-compact .sidebar-nav .sidebar-secondary-nav {
      display: none !important;
    }
    body.sidebar-compact .sidebar-nav .nav-group-title,
    body.sidebar-compact .sidebar-nav .nav-subgroup-title,
    body.sidebar-compact .sidebar-nav .sidebar-compact-hide {
      display: none !important;
    }
    
    .sidebar-footer { 
      background-color: var(--sidebar-footer-bg); 
      padding: 10px 14px 14px; 
      border-top: 1px solid var(--sidebar-edge); 
      min-height: 80px; 
      flex-shrink: 0;
    }

    .ui-theme-switch {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 6px;
      margin-bottom: 10px;
      padding-bottom: 10px;
      border-bottom: 1px solid var(--sidebar-edge);
    }
    .ui-theme-switch__label {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--sidebar-muted);
      flex-shrink: 0;
    }
    .ui-theme-switch__btns {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 4px;
    }
    .ui-theme-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 3px;
      min-width: 0;
      min-height: 26px;
      padding: 3px 2px;
      border-radius: 7px;
      border: 1px solid var(--sidebar-toggle-border);
      background: var(--sidebar-toggle-bg);
      color: var(--sidebar-text);
      font-size: 10px;
      font-weight: 600;
      line-height: 1.15;
      cursor: pointer;
      transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
      font-family: inherit;
      box-sizing: border-box;
    }
    .ui-theme-btn:hover {
      background: var(--sidebar-toggle-hover-bg);
      border-color: var(--sidebar-active-border);
      color: var(--nav-item-hover-color);
    }
    .ui-theme-btn[aria-pressed="true"] {
      border-color: var(--primary-color);
      box-shadow: inset 0 0 0 1px var(--primary-color);
      background: var(--sidebar-active-bg);
      color: var(--nav-item-hover-color);
    }
    .ui-theme-swatch {
      width: 10px;
      height: 10px;
      border-radius: 3px;
      flex-shrink: 0;
      border: 1px solid color-mix(in srgb, var(--ds-sidebar-fg) 18%, transparent);
      box-sizing: border-box;
    }
    .ui-theme-btn__text {
      line-height: 1.15;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    
    .user-info { 
      display: flex; 
      align-items: center; 
      gap: 12px; 
    }
    
    .user-avatar { 
      width: 40px; 
      height: 40px; 
      border-radius: 50%; 
      background: var(--primary-color); 
      display: flex; 
      align-items: center; 
      justify-content: center; 
      color: var(--text-on-accent); 
      font-weight: 600; 
      font-size: 14px; 
    }
    
    .user-details { 
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 2px;
    }
    
    .user-name { 
      margin: 0;
      color: var(--sidebar-text); 
      font-size: 14px; 
      font-weight: 500;
      line-height: 1.25;
    }
    
    .user-role { 
      margin: 0;
      color: var(--sidebar-muted); 
      font-size: 12px;
      line-height: 1.25;
    }
    
    .sidebar-user-actions {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }
    .sidebar-account-btn,
    .logout-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      padding: 0;
      margin: 0;
      border-radius: 8px;
      border: 1px solid var(--sidebar-edge);
      background: var(--sidebar-toggle-bg);
      color: var(--sidebar-muted);
      cursor: pointer;
      font-family: inherit;
      font-size: 16px;
      line-height: 1;
      box-sizing: border-box;
      transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    }

    .sidebar-account-btn:hover,
    .logout-btn:hover {
      background: var(--sidebar-toggle-hover-bg);
      border-color: var(--sidebar-active-border);
      color: var(--nav-item-hover-color);
    }

    .sidebar-account-btn:focus-visible,
    .logout-btn:focus-visible {
      outline: 2px solid var(--focus-ring-strong);
      outline-offset: 2px;
    }
    
    .header { 
      background: var(--top-header-bg);
      border-bottom: 1px solid var(--border-color); 
      box-shadow: none;
      flex-shrink: 0;
    }
    
    .header-content { 
      display: flex; 
      align-items: center; 
      justify-content: space-between; 
      padding: 0 28px; 
      height: 60px; 
    }
    
    .page-title { 
      font-size: 17px; 
      font-weight: 600; 
      color: var(--text-primary);
      letter-spacing: -0.02em;
    }
    
    .header-actions { 
      display: flex; 
      align-items: center; 
      gap: 16px;
      flex-shrink: 0;
    }

    .header-shell-link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 12px;
      border-radius: 999px;
      border: 1px solid var(--border-subtle, #e2e8f0);
      background: var(--bg-surface, #fff);
      color: var(--brand, #0369a1);
      font-size: 13px;
      font-weight: 500;
      text-decoration: none;
      white-space: nowrap;
    }
    .header-shell-link:hover {
      border-color: color-mix(in srgb, var(--brand, #0369a1) 35%, #e2e8f0);
      background: color-mix(in srgb, var(--brand, #0369a1) 6%, #fff);
    }
    @media (max-width: 768px) {
      .header-shell-link span {
        display: none;
      }
      .header-shell-link {
        padding: 8px 10px;
      }
    }

    .flow-digest-bar {
      display: flex;
      flex-wrap: nowrap;
      align-items: center;
      justify-content: flex-start;
      gap: 6px;
      min-height: 30px;
      flex-shrink: 1;
      min-width: 0;
      max-width: min(720px, 58vw);
      overflow-x: auto;
      scrollbar-width: none;
    }
    .flow-digest-bar::-webkit-scrollbar {
      display: none;
    }
    @media (max-width: 768px) {
      .flow-digest-bar {
        max-width: min(280px, 60vw);
        gap: 4px;
      }
      .flow-digest-pill {
        font-size: 11px !important;
        padding: 4px 8px !important;
      }
    }
    .flow-digest-pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin: 0;
      border: none;
      cursor: pointer;
      font-size: 12px;
      padding: 6px 12px;
      border-radius: 999px;
      background: var(--ds-capsule-warning-bg);
      color: var(--ds-capsule-warning-fg);
      line-height: 1.2;
      font-family: inherit;
      font-weight: 600;
      box-shadow: none;
      animation: none;
      flex-shrink: 0;
    }
    /* 顶栏胶囊：无流光/伪元素动画（覆盖旧版缓存样式） */
    .header .flow-digest-bar .flow-digest-pill::before,
    .header .flow-digest-bar .flow-digest-pill::after {
      content: none;
      display: none;
      animation: none !important;
    }
    .flow-digest-pill:hover {
      background: color-mix(in srgb, var(--ds-warning) 30%, white);
    }
    .flow-digest-pill--inbound {
      background: var(--ds-capsule-info-bg);
      color: var(--ds-capsule-info-fg);
      box-shadow: none;
    }
    .flow-digest-pill--inbound:hover {
      background: color-mix(in srgb, var(--ds-info) 26%, white);
    }
    .flow-digest-pill--qc {
      background: var(--ds-capsule-success-bg);
      color: var(--ds-capsule-success-fg);
      box-shadow: none;
    }
    .flow-digest-pill--qc:hover {
      background: color-mix(in srgb, var(--ds-capsule-success-bg) 82%, var(--ds-success));
    }
    .flow-digest-pill--payment {
      background: var(--ds-capsule-payment-bg);
      color: var(--ds-capsule-payment-fg);
      box-shadow: none;
    }
    .flow-digest-pill--payment:hover {
      background: color-mix(in srgb, var(--ds-capsule-payment-bg) 82%, var(--ds-capsule-payment));
    }
    .flow-digest-pill .fd-n {
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      min-width: 2ch;
      text-align: center;
    }
    .flow-digest-pill .fd-l {
      white-space: nowrap;
    }
    
    .date-display { 
      color: var(--text-secondary); 
      font-size: 14px;
      flex-shrink: 0;
      font-variant-numeric: tabular-nums;
      line-height: 1.2;
    }
    .date-display #currentDate {
      display: inline-block;
      min-width: 20ch;
      font-variant-numeric: tabular-nums;
    }
    
    .mobile-menu-btn { 
      display: none;
      align-items: center;
      justify-content: center;
      background: none;
      border: none;
      color: var(--text-primary); 
      font-size: 22px; 
      cursor: pointer;
      padding: 8px;
    }
    @media (max-width: 768px) {
      .mobile-menu-btn { display: inline-flex; }
    }

    .sidebar-backdrop {
      display: none;
      position: fixed;
      inset: 0;
      background: var(--modal-scrim);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      z-index: 90;
    }
    .sidebar-backdrop.show { display: block; }

    @media (max-width: 768px) {
      .sidebar {
        width: min(19rem, 86vw);
        transform: translateX(-100%);
        z-index: 100;
        transition: transform 0.22s ease;
      }
      .sidebar.mobile-nav-open {
        transform: translateX(0);
        box-shadow: none;
        border-right: 1px solid color-mix(in srgb, var(--ds-text-muted) 20%, transparent);
      }
      .main-wrap {
        margin-left: 0 !important;
        width: 100%;
        min-width: 0;
      }
      .content-area {
        padding: 16px 14px;
      }
      .header-content {
        padding: 0 12px !important;
      }
    }

    /* 桌面端也使用抽屉侧栏：默认折叠，点左上角菜单展开（与移动端同一套 openMobileNav） */
    @media (min-width: 769px) {
      body.sidebar-always-drawer .sidebar {
        width: min(19rem, 86vw);
        transform: translateX(-100%);
        z-index: 100;
        transition: transform 0.22s ease;
      }
      body.sidebar-always-drawer .sidebar.mobile-nav-open {
        transform: translateX(0);
        box-shadow: none;
        border-right: 1px solid color-mix(in srgb, var(--ds-text-muted) 20%, transparent);
      }
      body.sidebar-always-drawer .main-wrap {
        margin-left: 0 !important;
        width: 100%;
        min-width: 0;
      }
      body.sidebar-always-drawer .mobile-menu-btn {
        display: inline-flex !important;
      }
      body.sidebar-always-drawer .sidebar-backdrop.show {
        display: block;
      }
    }

    .main-wrap {
      flex: 1;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      margin-left: 16rem;
      min-width: 0;
      min-height: 0;
    }
    
    .content-area { 
      padding: 28px 32px 40px;
      overflow-y: auto; 
      flex: 1; 
      min-height: 0;
      background: var(--ds-bg-canvas);
    }

    /* ===== 页面外壳留白（混合版） ===== */
    /* report：生产/打包/溯源等办理页 1320px */
    .page-content.page-shell--report > .card,
    .page-content.page-shell--report > .trace-lookup-shell {
      max-width: 1320px;
      width: 100%;
      margin-left: auto;
      margin-right: auto;
    }
    /* ops：采购/销售/仓储/审批等业务列表 1400px */
    .page-content.page-shell--ops > .card,
    .page-content.page-ops-shell:not(.page-shell--report):not(.page-shell--brief):not(.page-shell--full) > .card {
      max-width: 1400px;
      width: 100%;
      margin-left: auto;
      margin-right: auto;
    }
    /* brief：发起单据、资金调拨等表单页 1040px */
    .page-content.page-shell--brief > .card {
      max-width: 1040px;
      width: 100%;
      margin-left: auto;
      margin-right: auto;
    }
    /* full：总部/工厂看板铺满 */
    .page-content.page-shell--full > .card {
      max-width: none;
      width: 100%;
    }
    /* work：加工/打包三栏办理页 1400px 居中 */
    .page-content.page-shell--work > .card {
      max-width: 1400px;
      width: 100%;
      margin-left: auto;
      margin-right: auto;
    }
    
    .panel-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 24px;
      margin-bottom: 24px;
    }
    
    .card { 
      background: var(--glass-bg); 
      border: 1px solid var(--border-color);
      border-radius: var(--radius-lg); 
      box-shadow: none;
      transition: border-color 0.22s ease; 
      overflow: hidden; 
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }
    
    .card:hover { 
      border-color: var(--ds-border-strong);
    }
    
    .card-header { 
      background: var(--header-bar-bg);
      color: var(--header-bar-fg); 
      padding: 20px 26px;
      border-bottom: 1px solid var(--header-bar-border);
    }
    
    .card-title { 
      font-size: 17px; 
      font-weight: 600; 
      margin-bottom: 6px;
      letter-spacing: -0.02em;
    }
    
    .card-body { 
      padding: 26px 28px; 
    }
    .workspace-shell {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }
    .workspace-topbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      color: var(--header-bar-subtle);
    }
    .workspace-topbar-main {
      display: flex;
      flex-direction: column;
      gap: 4px;
      min-width: 0;
    }
    .workspace-topbar-name {
      font-size: 18px;
      font-weight: 600;
      color: var(--ds-text);
    }
    .workspace-topbar-sub {
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .workspace-topbar-time {
      font-size: 12px;
      white-space: nowrap;
      opacity: 0.92;
    }
    /* 我的空间：与业务页 card-header 主题色一致 */
    #my-workspace-page > .card > .card-header .workspace-topbar {
      color: var(--header-bar-subtle);
    }
    #my-workspace-page > .card > .card-header .workspace-topbar-name {
      color: var(--header-bar-fg);
    }
    #my-workspace-page > .card > .card-header .workspace-topbar-sub {
      color: var(--header-bar-subtle);
    }
    #my-workspace-page > .card > .card-header .workspace-topbar-time {
      color: var(--header-bar-subtle);
    }
    /* 总部经营看板：表头固定白底，与外层「我的空间」主题色顶栏区分 */
    #hq-dashboard .card-header {
      background: var(--ds-bg-surface);
      background-image: none;
      color: var(--ds-text);
      border-bottom: 1px solid var(--ds-border);
    }
    #hq-dashboard .card-header .card-title {
      color: var(--ds-text);
    }
    #hq-dashboard .card-header .form-label {
      color: var(--ds-text-secondary);
    }
    #hq-dashboard .card-header .report-header-hint {
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
    }
    #hq-dashboard .card-header .report-header-hint summary.report-header-hint__summary {
      color: var(--ds-tab-surface-fg);
    }
    #hq-dashboard .card-header .report-header-hint__body {
      color: var(--ds-text-secondary);
    }
    #hq-dashboard .card-header .report-header-hint__body strong {
      color: var(--ds-text);
    }
    .hq-dash-toolbar {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px;
      margin-top: 0;
    }
    #hq-dashboard .card-header--page-toolbar .card-header__top {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 10px 16px;
      width: 100%;
    }
    .workspace-quick-grid-employee {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
      gap: 24px;
    }
    .workspace-quick-tile {
      border: 1px solid var(--ds-border);
      border-radius: 20px;
      background: var(--ds-bg-surface);
      padding: 18px 14px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      min-height: 134px;
      box-shadow: none;
      transition: border-color .2s ease, background .2s ease;
    }
    .workspace-quick-tile:hover {
      border-color: var(--ds-border-strong);
      background: var(--ds-bg-surface-raised);
    }
    .workspace-quick-tile-icon {
      width: 64px;
      height: 64px;
      border-radius: 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--ds-on-brand);
      font-size: 24px;
      background: var(--primary-color);
      box-shadow: none;
    }
    .workspace-quick-tile-label {
      font-size: 14px;
      font-weight: 700;
      color: var(--ds-text);
      text-align: center;
      line-height: 1.4;
    }
    .workspace-permission-apps-wrap {
      border: 1px solid color-mix(in srgb, var(--ds-border) 70%, transparent);
      border-radius: 16px;
      background: var(--ds-bg-surface);
      padding: 18px 20px 20px;
      box-shadow: none;
    }
    .workspace-permission-apps-wrap--grid {
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .workspace-permission-apps-heading {
      margin-bottom: 12px;
      flex-shrink: 0;
    }
    .workspace-perm-section--span {
      margin-top: 4px;
    }
    .workspace-perm-section {
      margin-bottom: 20px;
    }
    .workspace-perm-section:last-child {
      margin-bottom: 0;
    }
    .workspace-perm-section__title {
      margin: 0 0 10px;
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0.05em;
      color: var(--ds-text-secondary);
    }
    .workspace-permission-pills {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
      gap: 8px;
      align-items: start;
    }
    .workspace-app-link {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      min-height: 40px;
      height: auto;
      padding: 9px 12px;
      border-radius: 10px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
      background: var(--ds-bg-surface-raised);
      color: var(--ds-text);
      font-size: 13px;
      font-weight: 500;
      line-height: 1.35;
      text-align: center;
      cursor: pointer;
      transition:
        border-color 0.16s ease,
        background-color 0.16s ease,
        transform 0.12s ease;
    }
    .workspace-app-link:hover {
      border-color: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 32%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 5%, var(--ds-bg-surface-raised));
    }
    .workspace-app-link:active {
      transform: scale(0.99);
    }
    .workspace-app-link:focus {
      outline: none;
    }
    .workspace-app-link:focus-visible {
      outline: 2px solid var(--primary-color);
      outline-offset: 2px;
    }
    .workspace-app-link__label {
      flex: 1;
      min-width: 0;
      white-space: normal;
      line-height: 1.35;
      word-break: keep-all;
      overflow-wrap: anywhere;
    }
    /* 兼容旧类名（若有缓存 DOM） */
    .btn.workspace-permission-pill {
      border-radius: 12px;
      font-weight: 500;
      padding: 10px 12px;
      background-color: var(--ds-bg-surface-raised);
      color: var(--text-primary);
      border: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
    }
    .btn.workspace-permission-pill:hover {
      background-color: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 5%, var(--ds-bg-surface-raised));
      color: var(--text-primary);
      border-color: color-mix(in srgb, var(--ds-brand, var(--primary-color)) 32%, var(--ds-border));
    }

    /* 我的空间 · 溯源中心门户（独立入口，非普通 pill） */
    .workspace-trace-portal-wrap {
      width: 100%;
    }
    .workspace-trace-portal {
      position: relative;
      border-radius: 22px;
      overflow: hidden;
      border: 1px solid color-mix(in srgb, var(--ds-brand) 16%, var(--ds-border));
      background:
        radial-gradient(ellipse 95% 75% at 92% 8%, color-mix(in srgb, var(--ds-brand) 24%, transparent) 0%, transparent 58%),
        radial-gradient(ellipse 70% 55% at 4% 92%, color-mix(in srgb, var(--ds-info) 14%, transparent) 0%, transparent 52%),
        linear-gradient(
          148deg,
          color-mix(in srgb, var(--ds-brand) 7%, var(--ds-bg-surface-raised)) 0%,
          color-mix(in srgb, var(--ds-brand) 4%, var(--ds-bg-surface)) 42%,
          color-mix(in srgb, #0f172a 5%, var(--ds-bg-surface-sunken)) 100%
        );
      box-shadow:
        inset 0 1px 0 color-mix(in srgb, white 75%, transparent),
        0 10px 36px color-mix(in srgb, var(--ds-brand) 10%, transparent);
    }
    .workspace-trace-portal::before {
      content: '';
      position: absolute;
      inset: 0;
      z-index: 0;
      background: linear-gradient(
        108deg,
        transparent 38%,
        color-mix(in srgb, var(--ds-brand) 7%, transparent) 50%,
        transparent 62%
      );
      opacity: 0.55;
      pointer-events: none;
    }
    .workspace-trace-portal::after {
      content: '';
      position: absolute;
      left: -18%;
      bottom: -45%;
      z-index: 0;
      width: 52%;
      height: 85%;
      border-radius: 50%;
      background: radial-gradient(circle, color-mix(in srgb, var(--ds-brand) 18%, transparent) 0%, transparent 72%);
      filter: blur(18px);
      pointer-events: none;
    }
    .workspace-trace-portal__glow {
      position: absolute;
      z-index: 0;
      width: 300px;
      height: 300px;
      right: -90px;
      top: -110px;
      border-radius: 50%;
      background: radial-gradient(circle, color-mix(in srgb, var(--ds-brand) 32%, transparent) 0%, transparent 68%);
      pointer-events: none;
      animation: trace-portal-glow 7s ease-in-out infinite alternate;
    }
    @keyframes trace-portal-glow {
      from { transform: translate(0, 0) scale(1); opacity: 0.65; }
      to { transform: translate(-14px, 10px) scale(1.1); opacity: 0.95; }
    }
    .workspace-trace-portal__inner {
      position: relative;
      z-index: 1;
      padding: 20px 22px 18px;
    }
    .workspace-trace-portal__head {
      display: flex;
      gap: 14px;
      align-items: flex-start;
    }
    .workspace-trace-portal__icon {
      flex-shrink: 0;
      width: 48px;
      height: 48px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
      color: var(--ds-brand-active);
      background: linear-gradient(
        145deg,
        color-mix(in srgb, var(--ds-bg-surface) 92%, transparent),
        color-mix(in srgb, var(--ds-brand) 10%, var(--ds-bg-surface-raised))
      );
      border: 1px solid color-mix(in srgb, var(--ds-brand) 18%, var(--ds-border));
      box-shadow: 0 4px 16px color-mix(in srgb, var(--ds-brand) 14%, transparent);
    }
    .workspace-trace-portal__badge {
      display: inline-block;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--ds-brand-active);
      margin-bottom: 4px;
    }
    .workspace-trace-portal__title {
      margin: 0;
      font-size: 20px;
      font-weight: 700;
      color: var(--ds-text);
      line-height: 1.25;
    }
    .workspace-trace-portal__sub {
      margin: 6px 0 0;
      font-size: 13px;
      color: var(--ds-text-secondary);
      line-height: 1.45;
      max-width: 36rem;
    }
    .workspace-trace-portal__chain {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
      margin: 12px 0 14px;
      padding: 0;
      background: transparent;
      border: none;
    }
    .workspace-trace-portal__step {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-tab-surface-fg);
      padding: 4px 10px;
      border-radius: 999px;
      background: color-mix(in srgb, var(--ds-bg-surface) 50%, transparent);
      border: 1px solid color-mix(in srgb, var(--ds-brand) 12%, var(--ds-border));
    }
    .workspace-trace-portal__arrow {
      font-size: 11px;
      color: var(--ds-text-muted);
    }
    .workspace-trace-portal__search {
      --trace-search-control-h: 42px;
      display: flex;
      flex-wrap: nowrap;
      gap: 10px;
      align-items: stretch;
    }
    .workspace-trace-portal__input {
      flex: 1 1 200px;
      min-width: 0;
      height: var(--trace-search-control-h);
      box-sizing: border-box;
      border-radius: 12px;
      border: 1px solid color-mix(in srgb, var(--ds-brand) 14%, var(--ds-border));
      padding: 0 14px;
      font-size: 14px;
      line-height: normal;
      background: color-mix(in srgb, var(--ds-bg-surface) 88%, transparent);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      box-shadow:
        inset 0 1px 0 color-mix(in srgb, white 70%, transparent),
        0 1px 3px color-mix(in srgb, var(--ds-brand) 6%, transparent);
    }
    .workspace-trace-portal__input:focus {
      outline: none;
      border-color: var(--ds-brand);
      box-shadow: 0 0 0 3px var(--ds-focus-ring);
    }
    .workspace-trace-portal__btn {
      flex-shrink: 0;
      height: var(--trace-search-control-h);
      box-sizing: border-box;
      border-radius: 12px;
      padding: 0 22px;
      font-weight: 600;
      line-height: 1;
      box-shadow: none;
    }
    .workspace-trace-portal__open {
      margin-top: 12px;
      padding: 0;
      border: none;
      background: transparent;
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-brand-active);
      cursor: pointer;
    }
    .workspace-trace-portal__open:hover {
      color: var(--ds-brand-active);
      text-decoration: underline;
    }

    .header-title-cluster {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
      min-width: 0;
    }
    .header-back-workspace {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      margin: 0;
      padding: 6px 12px;
      font-size: 14px;
      font-weight: 600;
      color: var(--primary-color);
      background: color-mix(in srgb, var(--primary-color) 10%, #fff);
      border: 1px solid color-mix(in srgb, var(--primary-color) 35%, var(--border-color));
      border-radius: 8px;
      white-space: nowrap;
      flex-shrink: 0;
      cursor: pointer;
      line-height: 1.2;
      font-family: inherit;
    }
    .header-back-workspace:hover {
      color: var(--primary-dark);
      background: color-mix(in srgb, var(--primary-color) 16%, #fff);
      border-color: color-mix(in srgb, var(--primary-color) 50%, var(--border-color));
    }
    .header-back-workspace .fa {
      font-size: 13px;
    }
    .workspace-pulse-danger {
      animation: workspacePulseDanger 1.8s infinite ease-in-out;
      border-color: color-mix(in srgb, var(--ds-danger) 55%, transparent) !important;
      box-shadow: none;
    }
    .workspace-exec-layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(220px, 268px);
      gap: 16px;
      align-items: start;
    }
    .workspace-exec-main,
    .workspace-exec-side {
      display: flex;
      flex-direction: column;
      gap: 20px;
      min-width: 0;
    }
    #workspaceHqDashboardMount {
      min-width: 0;
      width: 100%;
      overflow: hidden;
    }
    .workspace-ai-advisor {
      border-radius: 20px;
      padding: 18px 16px 16px;
      color: var(--ds-ai-panel-fg);
      background: var(--ds-ai-panel-bg);
      box-shadow: none;
      border: 1px solid var(--ds-ai-panel-border);
    }
    .workspace-ai-advisor-eyebrow {
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--ds-ai-panel-accent);
    }
    .workspace-ai-advisor-title {
      font-size: 24px;
      font-weight: 700;
      color: var(--ds-ai-panel-fg);
      margin-top: 4px;
      line-height: 1.25;
    }
    .workspace-ai-advisor-desc {
      font-size: 13px;
      line-height: 1.7;
      color: var(--ds-ai-panel-muted);
      margin-top: 8px;
    }
    .workspace-ai-advisor-kpis {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin: 14px 0 14px;
    }
    .workspace-ai-advisor-kpi {
      border-radius: 14px;
      padding: 10px 11px;
      background: var(--ds-ai-panel-kpi-bg);
      border: 1px solid var(--ds-ai-panel-kpi-border);
      text-align: left;
    }
    .workspace-ai-kpi-label {
      font-size: 12px;
      color: var(--ds-ai-panel-muted);
    }
    .workspace-ai-kpi-value {
      font-size: 24px;
      font-weight: 700;
      color: var(--ds-ai-panel-fg);
      margin-top: 6px;
      line-height: 1.1;
    }
    .workspace-ai-kpi-value--alert {
      color: var(--ds-ai-panel-danger-fg);
    }
    .workspace-ai-kpi-value--compact {
      font-size: 15px;
      margin-top: 10px;
      line-height: 1.35;
    }
    .workspace-ai-kpi-hint {
      font-size: 11px;
      color: var(--ds-ai-panel-accent);
      margin-top: 6px;
    }
    .workspace-ai-kpi-clickable {
      cursor: pointer;
      transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
    }
    .workspace-ai-kpi-clickable:hover {
      transform: translateY(-1px);
      border-color: color-mix(in srgb, var(--ds-ai-panel-accent) 55%, transparent);
      background: var(--ds-ai-panel-prompt-hover-bg);
    }
    .workspace-ai-advisor .workspace-ai-open-btn {
      width: 100%;
      height: 44px;
      border-radius: 14px;
      background: var(--ds-ai-panel-btn-bg);
      color: var(--ds-ai-panel-btn-fg);
      border: 1px solid var(--ds-ai-panel-btn-border);
      font-weight: 600;
    }
    .workspace-ai-advisor .workspace-ai-open-btn:hover {
      background: var(--ds-ai-panel-btn-hover-bg);
      border-color: var(--ds-ai-panel-btn-border);
      color: var(--ds-ai-panel-btn-fg);
    }
    .workspace-ai-prompt-list {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-top: 16px;
    }
    .workspace-ai-prompt {
      width: 100%;
      text-align: left;
      border: 1px solid var(--ds-ai-panel-kpi-border);
      background: var(--ds-ai-panel-prompt-bg);
      color: var(--ds-ai-panel-fg);
      border-radius: 16px;
      padding: 12px 14px;
      font-size: 13px;
      line-height: 1.55;
      transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
    }
    .workspace-ai-prompt:hover {
      background: var(--ds-ai-panel-prompt-hover-bg);
      border-color: color-mix(in srgb, var(--ds-ai-panel-accent) 35%, transparent);
      transform: translateY(-1px);
    }
    .workspace-ai-prompt-sub {
      display: block;
      font-size: 12px;
      color: var(--ds-ai-panel-muted);
      margin-top: 4px;
    }
    .workspace-task-card-list {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
      gap: 14px;
      padding: 14px;
    }
    .workspace-task-card {
      position: relative;
      border: 1px solid var(--ds-border);
      border-radius: 20px;
      background: var(--ds-bg-surface);
      padding: 18px;
      box-shadow: none;
      overflow: hidden;
    }
    .workspace-task-card::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      width: 5px;
      border-radius: 999px;
      background: var(--task-accent, var(--primary-color));
    }
    @media (max-width: 1100px) {
      .workspace-exec-layout {
        grid-template-columns: 1fr;
      }
    }
    .workspace-exec-layout--boss,
    .workspace-exec-layout--single {
      grid-template-columns: 1fr;
    }
    .workspace-exec-layout--boss .workspace-exec-side {
      max-width: 520px;
    }
    .workspace-exec-layout--boss .workspace-ai-advisor-kpis {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .workspace-exec-layout--boss .workspace-ai-advisor-title {
      font-size: 20px;
    }
    .workspace-block-title {
      font-size: 15px;
      font-weight: 600;
      color: var(--ds-text);
      margin: 0 0 10px;
    }
    .workspace-permission-apps-wrap {
      border: 1px solid color-mix(in srgb, var(--ds-border) 70%, transparent);
      border-radius: 16px;
      background: var(--ds-bg-surface);
      padding: 16px 18px 18px;
      margin-bottom: 16px;
    }
    .workspace-permission-apps-heading {
      margin-bottom: 12px;
    }
    .workspace-kpi-card {
      border: 1px solid var(--ds-border);
      border-radius: 18px;
      background: var(--ds-bg-surface);
      padding: 18px;
      box-shadow: none;
    }
    .workspace-kpi-label {
      font-size: 12px;
      color: var(--ds-text-secondary);
      margin-bottom: 8px;
    }
    .workspace-kpi-value {
      font-size: 34px;
      line-height: 1.05;
      font-weight: 700;
      color: var(--ds-text);
    }
    .workspace-kpi-note {
      margin-top: 10px;
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .workspace-unified-action {
      height: 36px !important;
      border-radius: 10px !important;
      padding: 0 12px !important;
      font-size: 12px !important;
      line-height: 1 !important;
    }
    /* 扁平：用边框色脉冲代替扩散 box-shadow */
    @keyframes workspacePulseDanger {
      0%, 100% { border-color: color-mix(in srgb, var(--ds-danger) 45%, transparent) !important; }
      50% { border-color: color-mix(in srgb, var(--ds-danger) 95%, transparent) !important; }
    }
    
    .form-group { 
      margin-bottom: 20px; 
      display: flex; 
      flex-direction: column; 
    }
    
    .grid { 
      display: grid; 
    }
    
    .grid-cols-1 { 
      grid-template-columns: repeat(1, minmax(0, 1fr)); 
    }
    
    .md\:grid-cols-2 { 
      grid-template-columns: repeat(2, minmax(0, 1fr)); 
    }
    
    .md\:grid-cols-3 { 
      grid-template-columns: repeat(3, minmax(0, 1fr)); 
    }
    
    .md\:grid-cols-4 { 
      grid-template-columns: repeat(4, minmax(0, 1fr)); 
    }

    .col-span-2 {
      grid-column: span 2 / span 2;
    }

    .md\:col-span-2 {
      grid-column: span 2 / span 2;
    }
    
    .gap-4 { 
      gap: 1rem; 
    }
    
    .gap-6 { 
      gap: 1.5rem; 
    }
    
    .form-label { 
      font-size: 14px; 
      font-weight: 500; 
      color: var(--text-primary); 
      margin-bottom: 8px; 
    }
    
    .form-input, .form-select, .form-textarea { 
      width: 100%; 
      max-width: 800px; 
      padding: 11px 14px; 
      border: 1px solid var(--border-color); 
      border-radius: var(--radius-sm); 
      font-size: 14px; 
      transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease; 
      background-color: var(--ds-bg-surface-raised); 
      color: var(--text-primary);
      box-sizing: border-box; 
      -webkit-font-smoothing: antialiased;
    }
    
    .form-input::placeholder, .form-select::placeholder, .form-textarea::placeholder {
      color: var(--text-secondary);
    }
    
    .card-header .form-select, .card-header .form-input { 
      max-width: 200px; 
      color: var(--text-primary); 
      background-color: color-mix(in srgb, var(--ds-bg-surface) 95%, transparent);
      border-color: color-mix(in srgb, var(--ds-on-inverse) 35%, transparent);
    }
    /* 报表/统计类页：表头分区（标题 + 可选明细/汇总切换 | 筛选行 | 关键词 + 操作行） */
    .card-header.report-page-header {
      display: flex;
      flex-direction: column;
      gap: 12px;
      align-items: stretch;
    }
    .card-header.report-page-header .report-page-header__top {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 10px 16px;
    }
    .card-header.report-page-header .report-page-header__top .card-title {
      margin-bottom: 0;
    }
    .card-header.report-page-header .report-header-hint {
      margin: 0;
      padding: 6px 10px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--header-chrome-hint-border);
      background: var(--header-chrome-hint-bg);
    }
    .card-header.report-page-header .report-header-hint summary.report-header-hint__summary {
      font-size: 12px;
      color: var(--header-chrome-muted);
      cursor: pointer;
      list-style: none;
    }
    .card-header.report-page-header .report-header-hint summary.report-header-hint__summary::-webkit-details-marker { display: none; }
    .card-header.report-page-header .report-header-hint__body {
      font-size: 12px;
      line-height: 1.55;
      color: var(--header-chrome-muted);
      margin: 8px 0 0;
      max-width: 52rem;
    }
    .card-header.report-page-header .report-segment {
      display: inline-flex;
      border-radius: var(--radius-sm);
      border: 1px solid var(--header-chrome-segment-border);
      overflow: hidden;
      background: var(--header-chrome-segment-bg);
    }
    .card-header.report-page-header .report-segment .tab-btn {
      margin: 0;
      border-radius: 0;
      border: none;
      padding: 8px 14px;
      font-size: 13px;
    }
    .card-header.report-page-header .report-segment .tab-btn.btn-secondary {
      background: transparent;
      color: var(--header-chrome-tab-idle);
      box-shadow: none;
    }
    .card-header.report-page-header .report-segment .tab-btn.btn-secondary:hover {
      background: var(--header-chrome-tab-idle-hover);
    }
    .card-header.report-page-header .report-segment .tab-btn.btn-primary {
      background: var(--header-chrome-tab-active-bg);
      color: var(--header-chrome-tab-active-fg);
      box-shadow: none;
    }
    .card-header.report-page-header .report-filters__grid {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 10px;
    }
    .card-header.report-page-header .report-filters__grid .form-select,
    .card-header.report-page-header .report-filters__grid .form-input {
      max-width: none;
      min-width: 7rem;
      width: auto;
      flex: 0 1 auto;
    }
    .card-header.report-page-header .report-date-inline {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
    }
    .card-header.report-page-header .report-date-inline .form-input[type="date"] {
      min-width: 8.25rem;
      max-width: 10rem;
    }
    .finance-reports-hub-chrome {
      margin-bottom: 0.75rem;
      padding: 0.65rem 0.85rem;
      background: var(--ds-bg-surface);
      border: 1px solid var(--ds-border);
      border-radius: 0.5rem;
    }
    .finance-hub-tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      align-items: center;
    }
    .finance-hub-tab {
      border: 1px solid var(--ds-border);
      background: var(--ds-tab-surface-bg);
      color: var(--ds-tab-surface-fg);
      border-radius: 6px;
      padding: 0.35rem 0.75rem;
      font-size: 0.8125rem;
      cursor: pointer;
      transition: background 0.15s, color 0.15s, border-color 0.15s;
    }
    .finance-hub-tab:hover {
      background: var(--ds-tab-surface-hover-bg);
    }
    .finance-hub-tab.active {
      background: var(--ds-tab-surface-active-bg);
      color: var(--ds-tab-surface-active-fg);
      border-color: var(--ds-tab-surface-active-border);
    }
    /* 通用：浅色表面 Tab 行（新页面可复用 .ds-tabs-surface） */
    .ds-tabs-surface {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      align-items: center;
    }
    .ds-tabs-surface .ds-tab {
      border: 1px solid var(--ds-border);
      background: var(--ds-tab-surface-bg);
      color: var(--ds-tab-surface-fg);
      border-radius: 6px;
      padding: 0.35rem 0.75rem;
      font-size: 0.8125rem;
      cursor: pointer;
      transition: background 0.15s, color 0.15s, border-color 0.15s;
    }
    .ds-tabs-surface .ds-tab:hover {
      background: var(--ds-tab-surface-hover-bg);
    }
    .ds-tabs-surface .ds-tab.active,
    .ds-tabs-surface .ds-tab[aria-selected="true"] {
      background: var(--ds-tab-surface-active-bg);
      color: var(--ds-tab-surface-active-fg);
      border-color: var(--ds-tab-surface-active-border);
    }
    .card-header.report-page-header .report-date-inline .form-input[type="month"] {
      min-width: 8.5rem;
      max-width: 10rem;
    }
    .card-header.report-page-header .report-date-sep {
      font-size: 12px;
      color: var(--header-chrome-date);
      user-select: none;
    }
    .card-header.report-page-header .report-toolbar-bottom {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px;
      padding-top: 10px;
      border-top: 1px solid var(--header-chrome-toolbar-divider);
      justify-content: space-between;
    }
    .card-header.report-page-header .report-toolbar-keyword {
      min-width: 11rem;
      max-width: 28rem;
    }
    .card-header.report-page-header .report-toolbar-bottom > .report-toolbar-keyword {
      flex: 1 1 200px;
      max-width: 28rem;
    }
    .card-header.report-page-header .report-toolbar-note {
      flex: 1 1 200px;
      min-width: 11rem;
      max-width: 28rem;
      font-size: 12px;
      line-height: 1.4;
      color: var(--header-chrome-muted);
    }
    .card-header.report-page-header .report-header-hint__body code {
      font-size: 11px;
      padding: 1px 6px;
      border-radius: 4px;
      background: var(--header-chrome-code-bg);
      color: var(--header-chrome-code-fg);
    }
    .card-header.report-page-header .report-toolbar-actions {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
    }
    /* 账表中心 · 彩头工具按钮：白字描边（与出纳/审批彩头一致） */
    .card-header.report-page-header .report-toolbar-actions .btn,
    .card-header.report-page-header .report-toolbar-bottom > .btn,
    .card-header.report-page-header .report-filters__grid > .btn,
    .card-header.report-page-header .report-page-header__top > .btn:not(.tab-btn) {
      min-height: 32px;
      padding: 0 14px;
      font-size: 13px;
      line-height: 1;
      font-weight: 600;
      border-radius: 8px;
      white-space: nowrap;
      box-shadow: none;
    }
    .card-header.report-page-header .report-toolbar-actions .btn.btn-primary,
    .card-header.report-page-header .report-toolbar-bottom > .btn.btn-primary,
    .card-header.report-page-header .report-filters__grid > .btn.btn-primary,
    .card-header.report-page-header .report-page-header__top > .btn.btn-primary:not(.tab-btn) {
      border: 1px solid var(--header-chrome-outline-border);
      background: var(--header-chrome-outline-bg);
      color: var(--header-chrome-outline-btn);
    }
    .card-header.report-page-header .report-toolbar-actions .btn.btn-primary:hover,
    .card-header.report-page-header .report-toolbar-bottom > .btn.btn-primary:hover,
    .card-header.report-page-header .report-filters__grid > .btn.btn-primary:hover,
    .card-header.report-page-header .report-page-header__top > .btn.btn-primary:not(.tab-btn):hover {
      background: var(--header-chrome-outline-hover-bg);
      border-color: var(--header-chrome-outline-hover-border);
      color: var(--header-chrome-outline-btn);
    }
    .card-header.report-page-header .report-toolbar-actions .btn.btn-secondary,
    .card-header.report-page-header .report-toolbar-bottom > .btn.btn-secondary,
    .card-header.report-page-header .report-filters__grid > .btn.btn-secondary,
    .card-header.report-page-header .report-page-header__top > .btn.btn-secondary:not(.tab-btn) {
      border: 1px solid var(--header-chrome-outline-border);
      background: transparent;
      color: var(--header-chrome-outline-btn);
      opacity: 0.92;
    }
    .card-header.report-page-header .report-toolbar-actions .btn.btn-secondary:hover,
    .card-header.report-page-header .report-toolbar-bottom > .btn.btn-secondary:hover,
    .card-header.report-page-header .report-filters__grid > .btn.btn-secondary:hover,
    .card-header.report-page-header .report-page-header__top > .btn.btn-secondary:not(.tab-btn):hover {
      background: var(--header-chrome-outline-hover-bg);
      border-color: var(--header-chrome-outline-hover-border);
      color: var(--header-chrome-outline-btn);
      opacity: 1;
    }
    .card-header.report-page-header .report-toolbar-actions .btn-outline,
    .card-header.report-page-header .report-toolbar-bottom > .btn-outline,
    .card-header.report-page-header .report-filters__grid > .btn-outline,
    .card-header.report-page-header .report-page-header__top > .btn-outline:not(.tab-btn) {
      color: var(--header-chrome-outline-btn);
      border-color: var(--header-chrome-outline-border);
      background: var(--header-chrome-outline-bg);
    }
    .card-header.report-page-header .report-toolbar-actions .btn-outline:hover,
    .card-header.report-page-header .report-toolbar-bottom > .btn-outline:hover,
    .card-header.report-page-header .report-filters__grid > .btn-outline:hover,
    .card-header.report-page-header .report-page-header__top > .btn-outline:not(.tab-btn):hover {
      background: var(--header-chrome-outline-hover-bg);
      border-color: var(--header-chrome-outline-hover-border);
      color: var(--header-chrome-outline-btn);
    }
    .card-header.report-page-header .card-title,
    .card-header.report-page-header .form-label {
      color: var(--header-bar-fg);
    }
    .card-header.report-page-header .form-label {
      opacity: 0.92;
    }
    /* 普通卡片蓝底表头：标题 + 右上角「查询规则说明」（与报表页 report-header-hint 视觉一致） */
    .card-header .card-header__top {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px 16px;
    }
    .card-header .card-header__top .card-title {
      margin-bottom: 0;
    }
    .card-header .card-header__top-actions {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      justify-content: flex-end;
      gap: 8px 10px;
    }
    .card-header .card-header__top--end {
      justify-content: flex-end;
    }
    /* 路线 A：业务页彩头仅作工具条，主标题在全局顶栏 #pageTitle */
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar,
    .page-content:not(#my-workspace-page) > .card > .card-header.report-page-header {
      padding: 10px 20px;
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top {
      width: 100%;
    }
    #factory-dashboard .card-header--page-toolbar .card-header__top--end,
    #hq-dashboard .card-header--page-toolbar .card-header__top {
      align-items: center;
    }

    /* 彩头页工具条：无内页标题时操作靠右；主按钮反色描边（避免与顶栏同色糊满一行） */
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar:not(.report-page-header):not(:has(.card-title)) {
      padding: 8px 18px;
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top:not(:has(.card-title)) {
      justify-content: flex-end;
      align-items: center;
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top-actions:not(.biz-dash-toolbar):not(.hq-dash-toolbar) {
      align-items: center;
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top-actions:not(.biz-dash-toolbar):not(.hq-dash-toolbar) .btn {
      height: 32px;
      min-height: 32px;
      padding: 0 14px;
      font-size: 13px;
      line-height: 1;
      font-weight: 600;
      border-radius: 8px;
      white-space: nowrap;
      box-shadow: none;
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top-actions:not(.biz-dash-toolbar):not(.hq-dash-toolbar) .btn .fa {
      margin-right: 0.35rem;
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top-actions:not(.biz-dash-toolbar):not(.hq-dash-toolbar) .btn.btn-primary {
      border: 1px solid var(--header-chrome-outline-border);
      background: var(--header-chrome-outline-bg);
      color: var(--header-chrome-outline-btn);
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top-actions:not(.biz-dash-toolbar):not(.hq-dash-toolbar) .btn.btn-primary:hover {
      background: var(--header-chrome-outline-hover-bg);
      border-color: var(--header-chrome-outline-hover-border);
      color: var(--header-chrome-outline-btn);
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top-actions:not(.biz-dash-toolbar):not(.hq-dash-toolbar) .btn.btn-secondary {
      border: 1px solid var(--header-chrome-outline-border);
      background: transparent;
      color: var(--header-chrome-outline-btn);
      opacity: 0.92;
    }
    .page-content:not(#my-workspace-page) > .card > .card-header.card-header--page-toolbar .card-header__top-actions:not(.biz-dash-toolbar):not(.hq-dash-toolbar) .btn.btn-secondary:hover {
      background: var(--header-chrome-outline-hover-bg);
      border-color: var(--header-chrome-outline-hover-border);
      color: var(--header-chrome-outline-btn);
      opacity: 1;
    }

    .card-header .report-header-hint {
      margin: 0;
      padding: 6px 10px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--header-chrome-hint-border);
      background: var(--header-chrome-hint-bg);
    }
    .card-header .report-header-hint summary.report-header-hint__summary {
      font-size: 12px;
      color: var(--header-chrome-muted);
      cursor: pointer;
      list-style: none;
    }
    .card-header .report-header-hint summary.report-header-hint__summary::-webkit-details-marker {
      display: none;
    }
    .card-header .report-header-hint__body {
      font-size: 12px;
      line-height: 1.55;
      color: var(--header-chrome-muted);
      margin: 8px 0 0;
      max-width: 52rem;
    }
    .card-header .report-header-hint__body strong {
      color: var(--header-chrome-strong);
    }
    .card-header .report-header-hint__body code {
      font-size: 11px;
      padding: 1px 6px;
      border-radius: 4px;
      background: var(--header-chrome-code-bg);
      color: var(--header-chrome-code-fg);
    }
    .card-header .report-header-hint__body .text-slate-600,
    .card-header .report-header-hint__body .text-slate-700 {
      color: var(--header-chrome-muted) !important;
    }
    .card-header .report-header-hint__body .bill-create-route-link {
      color: var(--header-chrome-link) !important;
    }

    @media (max-width: 900px) {
      .card-header.report-page-header .report-toolbar-bottom {
        flex-direction: column;
        align-items: stretch;
      }
      .card-header.report-page-header .report-toolbar-actions {
        justify-content: flex-start;
      }
    }
    .form-input:focus, .form-select:focus, .form-textarea:focus { 
      outline: none; 
      background-color: var(--ds-bg-surface); 
      border-color: var(--primary-color); 
      box-shadow: 0 0 0 3px var(--focus-ring); 
    }
    .form-textarea { resize: vertical; min-height: 100px; }
    /* 扁平按钮：实心色、无渐变、无浮起阴影（与整体扁平 UI 一致） */
    .btn {
      padding: 10px 18px;
      border-radius: var(--radius-sm);
      font-size: 14px;
      font-weight: 500;
      cursor: pointer;
      transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, opacity 0.15s ease;
      border: 1px solid transparent;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      -webkit-font-smoothing: antialiased;
      letter-spacing: 0.01em;
      box-shadow: none;
    }
    .btn:focus-visible {
      outline: none;
      box-shadow: 0 0 0 2px var(--card-bg), 0 0 0 4px var(--primary-color);
    }
    .btn:disabled,
    .btn[disabled] {
      opacity: 0.55;
      cursor: not-allowed;
      pointer-events: none;
    }
    .btn-primary {
      background: var(--primary-color);
      color: var(--text-on-accent);
      border-color: var(--primary-color);
    }
    .btn-primary:hover {
      background: var(--primary-dark);
      border-color: var(--primary-dark);
      color: var(--text-on-accent);
    }
    .btn-primary:active {
      background: var(--primary-active);
      border-color: var(--primary-active);
      color: var(--text-on-accent);
    }
    .btn-secondary {
      background: var(--ds-bg-surface);
      color: var(--ds-text);
      border: 1px solid var(--ds-border);
    }
    .btn-secondary:hover {
      background: var(--ds-bg-surface-raised);
      border-color: var(--ds-border-strong);
    }
    .btn-sm { padding: 6px 12px; font-size: 13px; border-radius: 9px; gap: 6px; }
    .btn-success {
      background: var(--ds-success);
      color: var(--ds-on-brand);
      border-color: var(--ds-success);
    }
    .btn-success:hover {
      background: var(--ds-success-emphasis);
      border-color: var(--ds-success-emphasis);
      color: var(--ds-on-brand);
    }
    .btn-danger {
      background: var(--ds-danger);
      color: var(--ds-on-brand);
      border-color: var(--ds-danger);
    }
    .btn-danger:hover {
      background: var(--ds-danger-emphasis);
      border-color: var(--ds-danger-emphasis);
      color: var(--ds-on-brand);
    }
    .btn-info {
      background: var(--ds-info);
      color: var(--ds-on-brand);
      border-color: var(--ds-info);
    }
    .btn-info:hover {
      background: var(--ds-info-emphasis);
      border-color: var(--ds-info-emphasis);
      color: var(--ds-on-brand);
    }
    .btn-warning {
      background: var(--ds-warning);
      color: var(--ds-warning-emphasis);
      border-color: color-mix(in srgb, var(--ds-warning) 88%, black);
    }
    .btn-warning:hover {
      background: color-mix(in srgb, var(--ds-warning) 92%, white);
      border-color: var(--ds-warning-emphasis);
      color: var(--ds-warning-emphasis);
    }
    .btn-outline {
      background: transparent;
      color: var(--text-primary);
      border: 1px solid var(--border-color);
    }
    .btn-outline:hover {
      background: var(--ds-bg-surface-raised);
      border-color: var(--ds-text-muted);
    }
    .status-badge {
      display: inline-flex;
      align-items: center;
      padding: 3px 10px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 600;
      letter-spacing: 0.02em;
    }
    button.approval-gate-jump-btn {
      border: none;
      cursor: pointer;
      font: inherit;
      line-height: 1.25;
      transition: filter 0.15s ease, box-shadow 0.15s ease;
    }
    button.approval-gate-jump-btn:hover {
      filter: brightness(0.96);
      box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
    }
    button.approval-gate-jump-btn:focus-visible {
      outline: 2px solid var(--ds-brand, #2563eb);
      outline-offset: 2px;
    }
    button.factory-alert-jump-btn:hover {
      filter: brightness(0.92);
      text-decoration: underline;
    }
    button.factory-alert-jump-btn:focus-visible {
      outline: 2px solid var(--ds-brand, #2563eb);
      outline-offset: 2px;
    }
    .bg-green-500 { background: var(--ds-success-muted) !important; color: var(--ds-success-emphasis) !important; }
    .bg-yellow-500 { background: var(--ds-warning-muted) !important; color: var(--ds-warning-emphasis) !important; }
    .bg-red-500 { background: var(--ds-danger-muted) !important; color: var(--ds-danger-emphasis) !important; }
    .bg-amber-500 { background: var(--ds-warning-muted) !important; color: var(--ds-warning-emphasis) !important; }
    /* 收付列「待收付」等：略偏亮黄，与审核列绿色区分 */
    .bg-payment-pending { background: var(--ds-warning-muted) !important; color: var(--ds-warning-emphasis) !important; }
    .bg-slate-400 { background: var(--ds-border) !important; color: var(--ds-text-secondary) !important; }
    .table-container { overflow-x: auto; margin-bottom: 1rem; }
    .table { width: 100%; border-collapse: collapse; min-width: 1000px; }
    .table thead { background: var(--table-header-bg); }
    .tooltip-icon {
      display: inline-block;
      margin-left: 5px;
      cursor: help;
      color: var(--ds-text-secondary);
    }
    .tooltip-icon:hover {
      color: var(--ds-link-hover);
    }
    .table th {
      padding: 12px 16px;
      text-align: left;
      font-size: 11px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      color: var(--table-header-fg);
      border: none;
      border-bottom: 1px solid var(--table-header-border);
      white-space: nowrap;
      -webkit-font-smoothing: antialiased;
      vertical-align: middle;
      line-height: 1.25;
      background: var(--table-header-bg);
    }
    .table thead tr {
      vertical-align: middle;
    }
    .table td { padding: 16px 16px; border: none; font-size: 14px; white-space: nowrap; -webkit-font-smoothing: antialiased; vertical-align: middle; color: var(--text-primary); }
    /* 销售中心 · 出库单列表：须在全局 .table td 之后，否则内边距/换行会盖掉列间距或压坏状态徽章 */
    .sales-outbound-table-wrap .sales-outbound-table th,
    .sales-outbound-table-wrap .sales-outbound-table td {
      vertical-align: top;
      line-height: 1.45;
    }
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-fhpo,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-site,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-lines,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-order {
      white-space: normal;
    }
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-no {
      white-space: nowrap;
    }
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-fhpo,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-wh {
      white-space: normal;
    }
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-kind,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-date,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-status,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-receipt,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-created,
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-ops {
      white-space: nowrap;
    }
    .sales-outbound-table-wrap .sales-outbound-table .status-badge {
      white-space: nowrap;
    }
    .sales-outbound-table-wrap .sales-outbound-table th:nth-child(1),
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-no {
      padding-right: 20px;
    }
    .sales-outbound-table-wrap .sales-outbound-table th:nth-child(2),
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-fhpo {
      padding-left: 18px;
      padding-right: 6px;
    }
    .sales-outbound-table-wrap .sales-outbound-table th:nth-child(3),
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-kind {
      padding-left: 8px;
      padding-right: 12px;
    }
    .sales-outbound-table-wrap .sales-outbound-table th:nth-child(4),
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-order {
      padding-right: 28px;
    }
    .sales-outbound-table-wrap .sales-outbound-table th:nth-child(5),
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-wh {
      padding-left: 16px;
      padding-right: 28px;
    }
    .sales-outbound-table-wrap .sales-outbound-table th:nth-child(6),
    .sales-outbound-table-wrap .sales-outbound-table td.sales-outbound-col-site {
      padding-left: 20px;
    }
    .table-row { transition: background 0.15s ease; border-bottom: 1px solid var(--ds-bg-surface-sunken); }
    .table-row:hover { background-color: var(--primary-muted); }
    /* 信息参考卡 Insight Panel（库存情况等，弹窗内只读参考） */
    .insight-panel {
      margin-top: 0.75rem;
      border-radius: 10px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
      overflow: hidden;
    }
    .insight-panel--ok {
      border-color: color-mix(in srgb, var(--ds-success) 50%, white);
      background: var(--ds-success-muted);
    }
    .insight-panel--warn {
      border-color: color-mix(in srgb, var(--ds-warning) 55%, white);
      background: var(--ds-warning-muted);
    }
    .insight-panel--error {
      border-color: var(--ds-border);
      background: var(--ds-bg-surface-raised);
      padding: 12px 14px;
      font-size: 13px;
      color: var(--ds-text-secondary);
    }
    .insight-panel__head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 12px;
      padding: 10px 14px;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-text) 8%, transparent);
      background: color-mix(in srgb, var(--ds-bg-surface) 55%, transparent);
    }
    .insight-panel__title {
      font-weight: 600;
      font-size: 14px;
      color: var(--ds-text);
    }
    .insight-panel__meta {
      font-size: 12px;
      color: var(--ds-text-secondary);
      white-space: nowrap;
    }
    .insight-panel .table-container {
      margin-bottom: 0;
      padding: 0 2px 2px;
    }
    .insight-panel .insight-panel-table {
      min-width: 0 !important;
      width: 100%;
    }
    .insight-panel .insight-panel-table th,
    .insight-panel .insight-panel-table td {
      padding: 10px 12px;
      font-size: 13px;
    }
    .insight-panel .insight-panel-table th {
      text-transform: none;
      letter-spacing: 0;
      font-size: 12px;
      font-weight: 600;
    }
    .insight-panel .insight-panel-table td.insight-col-num,
    .insight-panel .insight-panel-table th.insight-col-num {
      text-align: right;
      width: 4.25rem;
    }
    .insight-panel .insight-panel-table td.insight-col-name {
      white-space: normal;
      min-width: 8rem;
      max-width: 240px;
      line-height: 1.4;
    }
    .insight-panel .insight-panel-table td.insight-col-status {
      width: 4.5rem;
      text-align: center;
    }
    /* 销售订单 · 库存区块 */
    #soAvailabilitySection {
      margin-top: 1rem;
      padding-top: 1rem;
      border-top: 1px solid var(--ds-border);
    }
    #soAvailabilitySection .so-avail-help {
      margin: 0.35rem 0 0;
      font-size: 12px;
      color: var(--ds-text-secondary);
      line-height: 1.45;
    }
    #woAvailabilitySection {
      margin-top: 1rem;
      padding-top: 1rem;
      border-top: 1px solid var(--ds-border);
    }
    .wo-outbound-modal-shell {
      max-width: 820px;
    }
    .wo-transit-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 12px;
      margin-bottom: 0.5rem;
    }
    .wo-transit-picker {
      margin-bottom: 0.75rem;
      border: 1px solid var(--ds-border);
      border-radius: 8px;
      background: var(--ds-bg-surface-raised);
      overflow: hidden;
    }
    .wo-transit-picker__head {
      padding: 8px 12px;
      font-size: 13px;
      font-weight: 600;
      border-bottom: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
    }
    .wo-transit-picker__body {
      max-height: 180px;
      overflow: auto;
      padding: 4px 0;
    }
    .wo-transit-picker__row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 12px;
      padding: 8px 12px;
      border-bottom: 1px solid var(--ds-border);
    }
    .wo-transit-picker__row:last-child {
      border-bottom: none;
    }
    .wo-transit-picker__meta {
      flex: 1 1 200px;
      min-width: 0;
    }
    .wo-transit-picker__lot {
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .wo-outbound-items-table .wo-col-wh {
      min-width: 120px;
    }
    .wo-outbound-items-table .wo-col-act {
      width: 36px;
    }
    .wo-source-wh {
      min-width: 110px;
      font-size: 12px;
    }
    .cdn-ship-lines-head {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 8px 12px;
      margin-bottom: 0.5rem;
    }
    .cdn-ship-lines-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 12px;
      margin-bottom: 0.5rem;
    }
    .cdn-ship-lines-table {
      margin-bottom: 0.5rem;
    }
    .cdn-ship-lines-table .form-select,
    .cdn-ship-lines-table .form-input {
      font-size: 12px;
      min-width: 0;
    }
    .wo-outbound-modal--review .wo-outbound-modal-body {
      padding: 0.75rem 1.25rem 1rem;
    }
    .wo-outbound-modal-head {
      align-items: flex-start;
      gap: 12px;
      padding-bottom: 0.75rem;
    }
    .wo-outbound-modal-sub {
      margin-top: 4px;
      font-size: 13px;
      color: var(--ds-text-secondary);
      font-weight: 400;
    }
    .wo-outbound-modal-footer {
      gap: 10px;
    }
    .wo-review-summary {
      margin-bottom: 0.875rem;
      border-radius: 10px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
      overflow: hidden;
    }
    .wo-review-combined-banner {
      padding: 10px 14px;
      font-size: 12px;
      line-height: 1.5;
      color: #1e40af;
      background: #eff6ff;
      border-bottom: 1px solid #bfdbfe;
    }
    .wo-review-combined-banner .fa {
      margin-right: 6px;
      opacity: 0.85;
    }
    .wo-review-summary__hero {
      padding: 12px 14px;
      border-bottom: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
    }
    .wo-review-id-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 12px 20px;
    }
    .wo-review-id-pair {
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }
    .wo-review-id-val {
      font-size: 14px;
      font-weight: 600;
      color: var(--ds-text);
      font-variant-numeric: tabular-nums;
    }
    .wo-review-tag {
      display: inline-block;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.03em;
      color: var(--primary);
      background: color-mix(in srgb, var(--primary) 10%, white);
      border-radius: 3px;
      padding: 1px 5px;
      line-height: 1.5;
    }
    .wo-review-tag--muted {
      color: var(--ds-text-secondary);
      background: var(--ds-bg-surface-sunken);
    }
    .wo-review-summary__sep {
      color: var(--ds-text-secondary);
      font-size: 13px;
    }
    .wo-review-summary__grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px 14px;
      padding: 10px 14px;
      border-bottom: 1px solid var(--ds-border);
    }
    .wo-review-kv__k {
      display: block;
      font-size: 12px;
      color: var(--ds-text-secondary);
      margin-bottom: 1px;
    }
    .wo-review-kv__v {
      display: block;
      font-size: 13px;
      color: var(--ds-text);
      line-height: 1.4;
      word-break: break-word;
    }
    .wo-review-shipment {
      padding: 10px 14px 12px;
    }
    .wo-review-shipment__head {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
      margin-bottom: 8px;
    }
    .wo-review-shipment__row {
      display: grid;
      grid-template-columns: 1fr auto auto;
      gap: 10px 16px;
      align-items: start;
    }
    .wo-review-shipment__label {
      display: block;
      font-size: 11px;
      color: var(--ds-text-secondary);
      margin-bottom: 2px;
    }
    .wo-review-shipment__value {
      display: block;
      font-size: 13px;
      color: var(--ds-text);
      line-height: 1.4;
    }
    .wo-review-shipment__value--num {
      font-size: 15px;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }
    .wo-review-shipment__unit {
      font-size: 12px;
      font-weight: 500;
      color: var(--ds-text-secondary);
    }
    .wo-review-shipment__empty {
      color: var(--ds-text-secondary);
    }
    .wo-review-lot-badge {
      display: inline-block;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 12px;
      font-weight: 600;
      color: var(--primary);
      background: color-mix(in srgb, var(--primary) 8%, white);
      border: 1px solid color-mix(in srgb, var(--primary) 20%, transparent);
      border-radius: 5px;
      padding: 2px 7px;
      line-height: 1.45;
    }
    .wo-outbound-modal--review .wo-transit-toolbar,
    .wo-outbound-modal--review .wo-transit-picker {
      display: none;
    }
    .wo-outbound-modal--review #woAvailabilitySection {
      margin-top: 0;
      padding-top: 0;
      border-top: none;
    }
    .wo-review-stock {
      border-radius: 10px;
      border: 1px solid var(--ds-border);
      overflow: hidden;
      font-size: 13px;
    }
    .wo-review-stock--ok {
      border-color: color-mix(in srgb, var(--ds-success) 45%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-success) 6%, white);
    }
    .wo-review-stock--warn {
      border-color: color-mix(in srgb, var(--ds-danger, #dc2626) 40%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-danger, #dc2626) 5%, white);
    }
    .wo-review-stock--caution {
      border-color: color-mix(in srgb, var(--ds-warning) 45%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-warning) 6%, white);
    }
    .wo-review-stock__head {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 14px;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-text) 8%, transparent);
      background: color-mix(in srgb, var(--ds-bg-surface) 60%, transparent);
    }
    .wo-review-stock__title {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text);
    }
    .wo-review-stock__scope {
      font-size: 12px;
      color: var(--ds-text-secondary);
      flex: 1;
    }
    .wo-review-stock__badge {
      font-size: 11px;
      font-weight: 600;
      padding: 2px 8px;
      border-radius: 999px;
      background: var(--ds-bg-surface-sunken);
      color: var(--ds-text-secondary);
    }
    .wo-review-stock--ok .wo-review-stock__badge {
      background: color-mix(in srgb, var(--ds-success) 18%, white);
      color: color-mix(in srgb, var(--ds-success) 80%, black);
    }
    .wo-review-stock--warn .wo-review-stock__badge {
      background: color-mix(in srgb, var(--ds-danger, #dc2626) 15%, white);
      color: color-mix(in srgb, var(--ds-danger, #dc2626) 85%, black);
    }
    .wo-review-stock__metrics {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      background: color-mix(in srgb, var(--ds-text) 8%, transparent);
    }
    .wo-review-stock__metric {
      padding: 10px 12px;
      background: color-mix(in srgb, var(--ds-bg-surface-raised) 90%, transparent);
      text-align: center;
    }
    .wo-review-stock__metric-k {
      display: block;
      font-size: 11px;
      color: var(--ds-text-secondary);
      margin-bottom: 4px;
    }
    .wo-review-stock__metric-v {
      display: block;
      font-size: 15px;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      color: var(--ds-text);
    }
    .wo-review-stock__metric-v small {
      font-size: 11px;
      font-weight: 500;
      color: var(--ds-text-secondary);
    }
    .wo-review-stock__lot {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 10px 14px;
      border-top: 1px solid color-mix(in srgb, var(--ds-text) 8%, transparent);
      background: color-mix(in srgb, var(--ds-bg-surface) 50%, transparent);
    }
    .wo-review-stock__lot--ok {
      background: color-mix(in srgb, var(--ds-success) 8%, white);
    }
    .wo-review-stock__lot--bad {
      background: color-mix(in srgb, var(--ds-danger, #dc2626) 6%, white);
    }
    .wo-review-stock__lot-main {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }
    .wo-review-stock__lot-label {
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .wo-review-stock__lot-qty {
      font-size: 13px;
      color: var(--ds-text);
      white-space: nowrap;
    }
    .wo-review-stock__lot-qty strong {
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }
    .wo-review-stock__lot-ok {
      margin-left: 6px;
      color: var(--ds-success);
    }
    .wo-review-stock__lot-missing {
      color: color-mix(in srgb, var(--ds-danger, #dc2626) 85%, black);
      font-size: 12px;
    }
    .wo-review-stock__note {
      padding: 8px 14px 10px;
      font-size: 11px;
      color: var(--ds-text-secondary);
      line-height: 1.45;
      border-top: 1px dashed color-mix(in srgb, var(--ds-text) 10%, transparent);
    }
    .wo-review-hidden-row {
      display: none !important;
    }
    @media (max-width: 640px) {
      .wo-review-summary__grid {
        grid-template-columns: 1fr;
      }
      .wo-review-shipment__row {
        grid-template-columns: 1fr;
      }
      .wo-review-stock__metrics {
        grid-template-columns: 1fr;
      }
      .wo-review-stock__lot {
        flex-direction: column;
        align-items: flex-start;
      }
    }
    /* 销售订单 · 明细行（紧凑 + 单位） */
    #salesOrderModal .table-container {
      margin-bottom: 0.5rem;
    }
    #salesOrderModal .so-items-table {
      min-width: 0 !important;
      width: 100%;
    }
    #salesOrderModal .so-items-table th,
    #salesOrderModal .so-items-table td {
      padding: 8px 6px;
      font-size: 13px;
      vertical-align: middle;
    }
    #salesOrderModal .so-items-table th {
      text-transform: none;
      letter-spacing: 0;
      font-size: 12px;
    }
    #salesOrderModal .so-items-table td.so-col-mat {
      width: auto;
      min-width: 0;
      max-width: 0;
    }
    #salesOrderModal .so-items-table td.so-col-qty {
      width: 7.5rem;
      white-space: nowrap;
    }
    #salesOrderModal .so-items-table td.so-col-price {
      width: 9.5rem;
      white-space: nowrap;
    }
    #salesOrderModal .so-items-table td.so-col-act {
      width: 2.75rem;
      text-align: center;
      padding-left: 2px;
      padding-right: 2px;
    }
    #salesOrderModal .so-items-table .form-select,
    #salesOrderModal .so-items-table .form-input {
      min-width: 0;
      padding: 6px 8px;
      font-size: 13px;
    }
    #salesOrderModal .so-items-table .so-mat-id {
      width: 100%;
      max-width: 100%;
    }
    #salesOrderModal .so-num-cell {
      display: flex;
      align-items: center;
      gap: 4px;
    }
    #salesOrderModal .so-num-cell .form-input {
      width: 4.25rem;
      flex: 0 0 auto;
      text-align: right;
    }
    #salesOrderModal .so-unit-label {
      font-size: 12px;
      color: var(--ds-text-secondary);
      white-space: nowrap;
      flex-shrink: 0;
    }
    #salesOrderModal .so-price-prefix {
      font-size: 13px;
      color: var(--ds-text-secondary);
      flex-shrink: 0;
    }
    #salesOrderModal .so-col-act .btn {
      min-width: 0;
      padding-left: 8px;
      padding-right: 8px;
    }
    .modal {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: var(--modal-scrim);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 50;
      animation: fadeIn 0.3s ease;
    }
    .modal.transfer-detail-modal {
      z-index: 120;
    }
    /* 全局确认须叠在任何业务弹窗之上（例如在采购订单审核弹窗内再点确认） */
    #globalConfirmModal {
      z-index: 10000;
    }
    .modal-content { background: var(--ds-bg-surface); border: 1px solid var(--border-color); border-radius: var(--radius-md); box-shadow: none; width: 90%; max-width: 480px; animation: slideIn 0.3s ease; max-height: 90vh; overflow-y: auto; backdrop-filter: none; -webkit-backdrop-filter: none; }
    #customerReceiptModal .modal-content.cusr-modal--v2 {
      width: min(92vw, 920px);
      max-width: min(92vw, 920px);
      overflow-x: hidden;
    }
    #afterserviceCaseModal .modal-content.as-case-modal {
      width: min(94vw, 920px);
      max-width: min(94vw, 920px);
      overflow-x: hidden;
    }
    #customerReceiptModal .cusr-qty-table th,
    #customerReceiptModal .cusr-qty-table td {
      padding: 8px 10px;
      vertical-align: middle;
    }
    #salesOutboundDetailModal .modal-content.sales-outbound-detail-modal {
      width: min(92vw, 880px);
      max-width: min(92vw, 880px);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      max-height: min(90vh, 860px);
    }
    #salesOutboundDetailModal .approval-doc-detail-body {
      overflow-y: auto;
      overflow-x: hidden;
    }
    .sales-outbound-detail-subtitle {
      margin: 4px 0 0;
      font-size: 12px;
      color: var(--ds-text-muted);
    }
    .sales-outbound-detail-summary {
      margin: 0;
      padding: 8px 12px 4px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface-raised);
    }
    .sales-outbound-detail-lines {
      margin-top: 14px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      overflow: hidden;
    }
    .sales-outbound-detail-lines__head {
      padding: 8px 12px;
      font-size: 13px;
      font-weight: 600;
      background: var(--ds-bg-surface-raised);
      border-bottom: 1px solid var(--ds-border);
    }
    .sales-outbound-detail-table {
      table-layout: fixed;
      width: 100%;
      margin: 0;
    }
    .sales-outbound-detail-table th,
    .sales-outbound-detail-table td {
      padding: 8px 12px;
      vertical-align: top;
    }
    .sales-outbound-detail-mat {
      width: 46%;
      word-break: break-word;
    }
    .sales-outbound-detail-lot {
      width: 34%;
      word-break: break-all;
      font-size: 12px;
    }
    .sales-outbound-detail-qty {
      width: 20%;
      white-space: nowrap;
    }
    .wh-doc-cert-overlay .wh-doc-cert-shell {
      max-width: min(52rem, 96vw);
    }
    .wh-doc-cert-head-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px 12px;
      min-width: 0;
    }
    .wh-doc-cert-head-status {
      flex-shrink: 0;
    }
    .wh-doc-items-table {
      min-width: 0;
      width: 100%;
      table-layout: fixed;
    }
    .wh-doc-items-table th.num,
    .wh-doc-items-table td.num {
      text-align: right;
      font-variant-numeric: tabular-nums;
    }
    .wh-doc-hero .doc-detail-hero__amounts {
      display: none;
    }
    #customerReceiptDetailModal .modal-content.customer-receipt-detail-modal {
      width: min(92vw, 820px);
      max-width: min(92vw, 820px);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      max-height: min(90vh, 820px);
    }
    #customerReceiptDetailModal .approval-doc-detail-body {
      overflow-y: auto;
      overflow-x: hidden;
    }
    .customer-receipt-detail-subtitle {
      margin: 4px 0 0;
      font-size: 12px;
      color: var(--ds-text-muted);
    }
    .customer-receipt-detail-summary {
      margin: 0;
      padding: 8px 12px 4px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface-raised);
    }
    .customer-receipt-detail-lines {
      margin-top: 14px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      overflow: hidden;
    }
    .customer-receipt-detail-lines__head {
      padding: 8px 12px;
      font-size: 13px;
      font-weight: 600;
      background: var(--ds-bg-surface-raised);
      border-bottom: 1px solid var(--ds-border);
    }
    .customer-receipt-detail-table {
      table-layout: fixed;
      width: 100%;
      margin: 0;
    }
    .customer-receipt-detail-table th,
    .customer-receipt-detail-table td {
      padding: 8px 12px;
      vertical-align: middle;
    }
    /* 物料采购下单：单行明细，卡片式物料区 */
    #purchaseOrderModal #poItemsTable.po-items-table-minimal { width: 100%; border-collapse: collapse; }
    #purchaseOrderModal #poItemsTable.po-items-table-minimal td { border: none; padding: 0; vertical-align: top; }
    #purchaseOrderModal .po-line-card {
      border-radius: var(--radius-sm);
      border: 1px solid var(--border-color);
      background: var(--ds-bg-surface);
      box-shadow: none;
      padding: 14px 16px;
    }
    #purchaseOrderModal .po-line-card .po-mat-id {
      width: 100%;
      min-height: 44px;
      font-size: 15px;
      line-height: 1.35;
      border-radius: var(--radius-sm);
      border-color: var(--ds-border-strong);
    }
    #purchaseOrderModal .po-line-card .po-mat-id:focus {
      border-color: var(--primary-color);
      box-shadow: 0 0 0 3px var(--focus-ring);
    }
    #purchaseOrderModal .po-line-card .po-unit {
      min-height: 42px;
      display: flex;
      align-items: center;
      border-radius: var(--radius-sm);
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-sunken);
      padding: 0 12px;
      font-size: 14px;
      color: var(--ds-tab-surface-fg);
    }
    #purchaseOrderModal .po-subtotal-banner {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-top: 14px;
      padding-top: 12px;
      border-top: 1px solid var(--border-color);
    }
    #purchaseOrderModal .po-subtotal-banner .po-line-subtotal { font-size: 17px; font-weight: 600; color: var(--ds-text); letter-spacing: 0.02em; }
    /* 创建采购订单：固定底部按钮 + 中部滚动 */
    #purchaseOrderModal .modal-content.po-purchase-order-shell {
      max-width: 880px;
      width: 92%;
      max-height: min(92vh, 900px);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      padding: 0;
    }
    #purchaseOrderModal .po-purchase-order-shell > .modal-header {
      flex-shrink: 0;
      padding: 16px 20px;
      border-bottom: 1px solid var(--border-color);
      margin-bottom: 0;
    }
    #purchaseOrderModal .po-modal-body-scroll {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      padding: 16px 20px;
    }
    #purchaseOrderModal .po-purchase-order-shell > .modal-footer {
      flex-shrink: 0;
      margin-top: 0;
      padding: 14px 20px;
      border-top: 1px solid var(--border-color);
      background: color-mix(in srgb, var(--ds-bg-surface-raised) 95%, transparent);
    }
    #purchaseOrderModal .po-sec { margin-bottom: 1.25rem; }
    #purchaseOrderModal .po-sec:last-child { margin-bottom: 0; }
    #purchaseOrderModal .po-sec-title {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-tab-surface-fg);
      margin-bottom: 10px;
      letter-spacing: 0.02em;
    }
    #purchaseOrderModal .po-grand-total-bar {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      gap: 12px;
      margin-top: 12px;
      padding: 12px 14px;
      border-radius: var(--radius-sm);
      background: var(--ds-bg-surface-sunken);
      border: 1px solid var(--ds-border);
      font-size: 14px;
      color: var(--ds-text-secondary);
    }
    #purchaseOrderModal .po-grand-total-bar #poGrandTotalVal {
      font-size: 18px;
      font-weight: 700;
      color: var(--ds-text);
      letter-spacing: 0.02em;
    }
    #purchaseOrderModal .po-line-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 10px;
    }
    #purchaseOrderModal .po-line-head {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 8px;
      gap: 8px;
    }
    #purchaseOrderModal .po-line-remove {
      font-size: 12px;
      padding: 2px 10px;
    }
    #purchaseOrderModal details summary::-webkit-details-marker { display: none; }
    #purchaseOrderModal details summary { list-style: none; }
    .doc-flow-stepper {
      margin-bottom: 14px;
      padding: 12px 10px 10px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface-raised);
    }
    .doc-flow-stepper__title {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
      margin-bottom: 10px !important;
      letter-spacing: 0.04em;
    }
    .doc-flow-stepper__track {
      list-style: none;
      display: flex;
      flex-wrap: wrap;
      gap: 6px 4px;
    }
    .doc-flow-step {
      flex: 1 1 72px;
      min-width: 64px;
      max-width: 88px;
      text-align: center;
      padding: 6px 4px 8px;
      border-radius: 8px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      position: relative;
    }
    .doc-flow-step--done {
      border-color: color-mix(in srgb, var(--ds-success) 35%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-success) 8%, var(--ds-bg-surface));
    }
    .doc-flow-step--current {
      border-color: color-mix(in srgb, var(--ds-brand) 45%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-brand) 10%, var(--ds-bg-surface));
      box-shadow: 0 0 0 2px var(--ds-focus-ring);
    }
    .doc-flow-step--reject {
      border-color: color-mix(in srgb, var(--ds-danger) 40%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-danger) 8%, var(--ds-bg-surface));
    }
    .doc-flow-step__dot {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      margin: 0 auto 4px;
      border-radius: 50%;
      font-size: 11px;
      font-weight: 700;
      color: var(--ds-text-secondary);
      background: var(--ds-bg-surface-sunken);
      border: 1px solid var(--ds-border);
    }
    .doc-flow-step--done .doc-flow-step__dot {
      color: var(--ds-success-emphasis);
      background: color-mix(in srgb, var(--ds-success) 18%, white);
      border-color: color-mix(in srgb, var(--ds-success) 35%, transparent);
    }
    .doc-flow-step--current .doc-flow-step__dot {
      color: var(--ds-on-brand);
      background: var(--ds-brand);
      border-color: var(--ds-brand);
    }
    .doc-flow-step__code {
      display: block;
      font-size: 10px;
      color: var(--ds-text-muted);
      line-height: 1.2;
    }
    .doc-flow-step__label {
      display: block;
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text);
      line-height: 1.25;
      margin-top: 2px;
    }
    .doc-flow-step__hint {
      display: block;
      font-size: 10px;
      color: var(--ds-text-secondary);
      margin-top: 3px;
      line-height: 1.2;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    @media (max-width: 520px) {
      .doc-flow-step {
        flex: 1 1 calc(33% - 6px);
        max-width: none;
      }
    }

    .doc-flow-stepper--purchase-multi .doc-flow-stepper__track--order {
      max-width: 220px;
    }
    .doc-flow-stepper--sales .doc-flow-stepper__track {
      flex-wrap: nowrap;
      gap: 8px;
      padding: 0 8px;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .doc-flow-stepper--sales .doc-flow-step {
      flex: 1 1 0;
      min-width: 0;
      max-width: none;
      padding: 8px 6px 9px;
    }
    .doc-flow-stepper--sales .doc-flow-step--current {
      border-color: var(--ds-border);
      background: var(--ds-bg-surface);
      box-shadow: none;
    }
    .doc-flow-stepper--sales .doc-flow-step__label {
      font-size: 11px;
    }
    .doc-flow-stepper--sales .doc-flow-step__hint {
      white-space: normal;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      line-height: 1.15;
      font-size: 9px;
      overflow: hidden;
      text-overflow: unset;
    }
    @media (max-width: 520px) {
      .doc-flow-stepper--sales .doc-flow-stepper__track {
        gap: 6px;
        padding: 0 6px;
      }
      .doc-flow-stepper--sales .doc-flow-step {
        flex: 0 0 72px;
        min-width: 72px;
      }
    }
    .doc-flow-aggregate {
      margin-top: 8px !important;
      font-size: 12px;
      color: var(--ds-text-secondary);
      line-height: 1.45;
    }
    .doc-flow-pay-summary-wrap {
      margin-top: 10px;
      padding: 8px 10px;
      border-radius: 8px;
      border: 1px solid var(--ds-border);
      background: color-mix(in srgb, var(--ds-bg-surface) 70%, white);
    }
    .doc-flow-pay-summary {
      font-size: 12px;
      color: var(--ds-text);
      line-height: 1.5;
    }
    .doc-flow-pay-summary-note {
      margin-top: 4px !important;
      font-size: 11px;
      color: var(--ds-text-muted);
    }
    .doc-flow-truck-table-wrap {
      overflow-x: auto;
      margin-top: 8px;
    }
    .doc-flow-truck-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 12px;
    }
    .doc-flow-truck-table th,
    .doc-flow-truck-table td {
      border: 1px solid var(--ds-border);
      padding: 6px 8px;
      vertical-align: middle;
    }
    .doc-flow-truck-table thead th {
      background: var(--ds-bg-surface-sunken);
      font-weight: 600;
      color: var(--ds-text-secondary);
      white-space: nowrap;
    }
    .doc-flow-truck-name {
      text-align: left;
      font-weight: 600;
      white-space: nowrap;
    }
    .doc-flow-truck-cell {
      text-align: center;
    }
    .doc-flow-truck-step {
      display: inline-block;
      min-width: 3.25rem;
      padding: 2px 6px;
      border-radius: 6px;
      font-size: 11px;
      font-weight: 600;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      color: var(--ds-text-secondary);
    }
    .doc-flow-truck-step--done {
      border-color: color-mix(in srgb, var(--ds-success) 35%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-success) 10%, var(--ds-bg-surface));
      color: var(--ds-success-emphasis);
    }
    .doc-flow-truck-step--current {
      border-color: color-mix(in srgb, var(--ds-brand) 45%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-brand) 12%, var(--ds-bg-surface));
      color: var(--ds-brand-emphasis, var(--ds-brand));
      box-shadow: 0 0 0 1px var(--ds-focus-ring);
    }
    .oa-timeline-group + .oa-timeline-group {
      margin-top: 12px;
      padding-top: 10px;
      border-top: 1px dashed var(--ds-border);
    }
    .oa-timeline-group-title {
      font-size: 12px;
      font-weight: 700;
      color: var(--ds-text-secondary);
      margin-bottom: 6px !important;
    }
    .supplier-ledger-block .table th,
    .supplier-ledger-block .table td {
      vertical-align: middle;
    }
    .supplier-ledger-head {
      line-height: 1.5;
    }

    .po-truck-payables-body {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .po-truck-payables-meta {
      font-size: 13px;
      color: var(--ds-text-secondary);
      line-height: 1.5;
    }
    .po-truck-payables-meta__batch {
      font-weight: 600;
      color: var(--ds-text);
    }
    .po-truck-payables-meta__sep {
      margin: 0 0.35rem;
      color: var(--ds-text-muted);
    }

    .sales-create-order-btn {
      font-weight: 600;
      padding: 0.5rem 1.1rem;
      box-shadow: 0 1px 2px rgb(15 23 42 / 0.08);
      white-space: nowrap;
    }
    .sales-create-order-btn .fa {
      margin-right: 0.35rem;
    }
    #sales-management .sales-secondary-bar__actions {
      margin-left: auto;
      flex-shrink: 0;
    }
    /* 销售管理 — 固定高度列表区（对齐仓储中心 list-panel-outer） */
    #sales-management > .card.sales-center {
      height: calc(100vh - 4.5rem);
      max-height: calc(100vh - 4.5rem);
      display: flex;
      flex-direction: column;
    }
    #sales-management .sales-center__body {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      padding: 18px 20px 22px;
    }
    #sales-management .sales-primary-nav,
    #sales-management .sales-secondary-bar {
      flex-shrink: 0;
    }
    #sales-management .sales-center__workspace,
    #sales-management .sales-center__ledger {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    #sales-management .sales-center__tab {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    #sales-management .sales-center__tab.hidden {
      display: none !important;
    }
    #sales-management .sales-center__ledger.hidden {
      display: none !important;
    }
    #sales-management .cpo-panel-toolbar,
    #sales-management #cpoSummaryCards,
    #sales-management .sales-outbound-filters,
    #sales-management .sales-ledger-toolbar,
    #sales-management #soCustomerLedgerSummary {
      flex-shrink: 0;
    }
    #sales-management .list-panel-outer {
      flex: 1 1 0;
      min-height: min(calc(100vh - 22rem), 360px);
      height: auto;
      margin-bottom: 0;
    }
    #sales-management .list-panel-outer .list-panel-scroll {
      height: 100%;
      min-height: 0;
      max-height: none;
      overflow: auto;
    }
    #sales-management .sales-afterservice-scroll .table-container {
      margin-bottom: 0;
    }

    .sales-customer-ledger,
    .purchase-orders-panel {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .sales-ledger-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 12px 18px;
      padding: 10px 14px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface-raised);
    }
    .sales-ledger-toolbar__item {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      margin: 0;
      min-width: 0;
    }
    .sales-ledger-toolbar__item--grow {
      flex: 1 1 12rem;
      min-width: 10rem;
    }
    .sales-ledger-toolbar__label {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-muted);
      white-space: nowrap;
      flex-shrink: 0;
    }
    .sales-ledger-toolbar__item .form-select--sm,
    .sales-ledger-toolbar__item .form-input--sm {
      min-width: 8rem;
      font-size: 0.8125rem;
      padding-top: 0.35rem;
      padding-bottom: 0.35rem;
    }
    .sales-ledger-toolbar__item--grow .form-input--sm {
      width: 100%;
      min-width: 0;
    }
    .sales-ledger-toolbar__check {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 13px;
      color: var(--ds-text-secondary);
      margin: 0;
      cursor: pointer;
      user-select: none;
      white-space: nowrap;
    }
    .sales-ledger-kpi__grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
    }
    @media (max-width: 900px) {
      .sales-ledger-kpi__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }
    @media (max-width: 520px) {
      .sales-ledger-kpi__grid {
        grid-template-columns: 1fr;
      }
    }
    .sales-ledger-kpi__card {
      display: flex;
      flex-direction: column;
      gap: 4px;
      padding: 12px 14px;
      border-radius: 10px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
    }
    .sales-ledger-kpi__card--danger {
      border-color: color-mix(in srgb, #e11d48 28%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-bg-surface) 88%, #fff1f2 12%);
    }
    .sales-ledger-kpi__card--success {
      border-color: color-mix(in srgb, #16a34a 22%, var(--ds-border));
    }
    .sales-ledger-kpi__card--muted .sales-ledger-kpi__value {
      color: var(--ds-text);
    }
    .sales-ledger-kpi__label {
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-text-muted);
      letter-spacing: 0.02em;
    }
    .sales-ledger-kpi__value {
      font-size: 1.125rem;
      font-weight: 700;
      color: var(--ds-text);
      line-height: 1.25;
      font-variant-numeric: tabular-nums;
    }
    .sales-ledger-kpi__card--danger .sales-ledger-kpi__value {
      color: #be123c;
    }
    .sales-ledger-kpi__card--success .sales-ledger-kpi__value {
      color: #15803d;
    }
    .sales-ledger-kpi__sub {
      display: block;
      margin-top: 4px;
      font-size: 11px;
      font-weight: 500;
      color: var(--ds-text-muted);
    }
    .sales-ledger-table-wrap {
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      overflow: auto;
      max-height: min(70vh, 720px);
    }
    .sales-ledger-table thead th {
      position: sticky;
      top: 0;
      z-index: 3;
      background: var(--table-header-bg, var(--ds-bg-surface));
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
      white-space: nowrap;
      box-shadow: 0 1px 0 var(--ds-border);
    }
    .sales-ledger-table tbody tr.sales-ledger-line td {
      vertical-align: middle;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 75%, transparent);
      padding-top: 10px;
      padding-bottom: 10px;
    }
    .sales-ledger-table tbody tr.sales-ledger-line:hover td {
      background: color-mix(in srgb, var(--ds-bg-surface) 94%, var(--ds-accent) 6%);
    }
    .sales-ledger-table tbody tr.sales-ledger-group td {
      padding: 0;
      border-top: 1px solid var(--ds-border);
      background: color-mix(in srgb, var(--ds-bg-surface) 88%, var(--ds-accent) 12%);
    }
    .sales-ledger-table tbody tr.sales-ledger-group:first-child td {
      border-top: none;
    }
    .sales-ledger-group__inner {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 8px 16px;
      padding: 11px 14px 11px 12px;
      border-left: 3px solid var(--ds-accent);
    }
    .sales-ledger-group__title {
      display: flex;
      align-items: baseline;
      gap: 8px;
      min-width: 0;
    }
    .sales-ledger-group__name {
      font-size: 14px;
      font-weight: 700;
      color: var(--ds-text);
    }
    .sales-ledger-group__count {
      font-size: 11px;
      font-weight: 500;
      color: var(--ds-text-muted);
      white-space: nowrap;
    }
    .sales-ledger-group__metrics {
      display: flex;
      flex-wrap: wrap;
      gap: 6px 10px;
    }
    .sales-ledger-group__metric {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
      padding: 2px 8px;
      border-radius: 999px;
      background: color-mix(in srgb, var(--ds-bg-surface) 70%, white);
      border: 1px solid var(--ds-border);
      font-variant-numeric: tabular-nums;
    }
    .sales-ledger-group__metric--danger {
      color: #be123c;
      border-color: color-mix(in srgb, #fecdd3 80%, var(--ds-border));
      background: #fff1f2;
    }
    .sales-ledger-group__metric--muted {
      font-weight: 500;
      color: var(--ds-text-muted);
      border-style: dashed;
    }
    .sales-ledger-reconcile__fh {
      font-weight: 600;
      color: var(--ds-text);
      line-height: 1.35;
    }
    .sales-ledger-reconcile__po {
      margin-top: 2px;
      font-size: 11px;
      color: var(--ds-text-muted);
      line-height: 1.3;
    }
    .sales-ledger-reconcile__date {
      margin-top: 2px;
      font-size: 11px;
      color: var(--ds-text-muted);
      line-height: 1.3;
      font-variant-numeric: tabular-nums;
    }
    .sales-ledger-amt-cell {
      display: inline-flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 2px;
      min-width: 5.5rem;
    }
    .sales-ledger-amt-row {
      display: flex;
      align-items: baseline;
      justify-content: flex-end;
      gap: 6px;
      font-size: 12px;
      line-height: 1.3;
    }
    .sales-ledger-amt-row__l {
      font-size: 10px;
      font-weight: 600;
      color: var(--ds-text-muted);
      letter-spacing: 0.02em;
    }
    .sales-ledger-amt-row--out .sales-ledger-amt-row__v {
      color: #be123c;
      font-weight: 700;
    }
    .sales-ledger-amt-row--pending .sales-ledger-amt-row__v {
      color: var(--ds-text-secondary);
      font-weight: 600;
    }
    #purchaseSubpanelSupplierLedger .sales-ledger-table th:nth-child(4),
    #purchaseSubpanelSupplierLedger .sales-ledger-table td.sales-ledger-amt-col {
      text-align: left;
    }
    #purchaseSubpanelSupplierLedger .sales-ledger-amt-cell {
      align-items: flex-start;
    }
    #purchaseSubpanelSupplierLedger .sales-ledger-amt-row {
      justify-content: flex-start;
    }
    .sales-ledger-actions {
      white-space: nowrap;
    }
    .sales-ledger-action {
      border: none;
      background: transparent;
      padding: 0;
      margin: 0 0 0 10px;
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-accent);
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .sales-ledger-action:first-child {
      margin-left: 0;
    }
    .sales-ledger-action:hover {
      color: var(--ds-brand-emphasis, var(--ds-accent));
    }
    .sales-ledger-action--primary {
      color: var(--ds-text-secondary);
    }

    .sales-ops-toolbar .sales-chain-tabs .tab-btn {
      min-width: 4.5rem;
    }
    .sales-primary-nav {
      margin-bottom: 1rem !important;
    }
    .sales-segment {
      display: inline-flex;
      gap: 0.25rem;
      padding: 0.2rem;
      background: var(--ds-bg-surface-sunken);
      border-radius: 0.5rem;
      border: 1px solid var(--ds-border);
    }
    .sales-segment__btn {
      border: none;
      background: transparent;
      padding: 0.4rem 0.85rem;
      border-radius: 0.375rem;
      font-size: 0.8125rem;
      font-weight: 600;
      color: var(--ds-text-secondary);
      cursor: pointer;
      line-height: 1.3;
    }
    .sales-segment__btn:hover {
      color: var(--ds-text);
      background: color-mix(in srgb, var(--ds-border) 40%, var(--ds-bg-surface));
    }
    .sales-segment__btn--active {
      background: var(--ds-brand);
      color: var(--ds-on-brand);
      box-shadow: none;
    }
    .sales-segment__btn--active:hover {
      background: var(--ds-brand-hover);
      color: var(--ds-on-brand);
    }
    .sales-secondary-bar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 16px;
      padding: 10px 14px;
      border: 1px solid var(--ds-border);
      border-radius: 8px;
      background: color-mix(in srgb, var(--ds-bg-surface) 97%, var(--ds-accent) 3%);
    }
    .sales-secondary-bar__label {
      flex: 0 0 auto;
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
      letter-spacing: 0.02em;
      padding-right: 4px;
      border-right: 1px solid var(--ds-border);
      margin-right: 4px;
      line-height: 1.8;
    }
    .sales-secondary-bar__tabs {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 4px 2px;
      flex: 1 1 auto;
      min-width: 0;
    }
    .sales-tab-link {
      background: none !important;
      border: none !important;
      box-shadow: none !important;
      border-bottom: 2px solid transparent !important;
      border-radius: 0 !important;
      padding: 6px 12px !important;
      font-size: 13px;
      font-weight: 500;
      color: var(--ds-text-secondary) !important;
      cursor: pointer;
      line-height: 1.4;
    }
    .sales-tab-link:hover {
      color: var(--ds-text) !important;
      background: color-mix(in srgb, var(--ds-bg-surface) 92%, var(--ds-accent) 8%) !important;
    }
    .sales-tab-link--active {
      color: var(--ds-accent) !important;
      border-bottom-color: var(--ds-accent) !important;
      font-weight: 600;
    }
    .sales-secondary-bar__actions {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
      margin-left: auto;
    }
    @media (max-width: 768px) {
      .sales-secondary-bar__label {
        width: 100%;
        border-right: none;
        margin-right: 0;
        padding-right: 0;
        padding-bottom: 4px;
        border-bottom: 1px solid var(--ds-border);
      }
      .sales-secondary-bar__actions {
        margin-left: 0;
        width: 100%;
        justify-content: flex-end;
      }
    }
    .sales-ops-toolbar .sales-tab-actions:not(.hidden:empty) {
      margin-left: auto;
    }
    @media (max-width: 640px) {
      .sales-ops-toolbar {
        flex-direction: column;
        align-items: stretch !important;
      }
      .sales-ops-toolbar .sales-tab-actions {
        margin-left: 0;
        justify-content: flex-end;
      }
    }

    .oa-timeline {
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      padding: 10px 12px;
      background: color-mix(in srgb, var(--ds-bg-surface) 58%, transparent);
    }
    .oa-timeline-item {
      position: relative;
      padding: 8px 0 8px 18px;
      border-left: 2px solid var(--ds-border-strong);
      margin-left: 6px;
    }
    .oa-timeline-item::before {
      content: '';
      position: absolute;
      left: -6px;
      top: 14px;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: var(--primary-color);
      border: 2px solid var(--primary-light);
      box-sizing: border-box;
      box-shadow: none;
    }
    .oa-timeline-item.is-end::before { background: var(--ds-success); border-color: color-mix(in srgb, var(--ds-success) 40%, white); }
    .oa-timeline-item.is-reject::before { background: var(--ds-danger); border-color: color-mix(in srgb, var(--ds-danger) 35%, white); }
    .oa-timeline-title { font-size: 13px; font-weight: 600; color: var(--ds-text); }
    .oa-timeline-meta { font-size: 12px; color: var(--ds-text-secondary); margin-top: 2px; }
    /* 溯源中心 · 全高布局 + 高级感 */
    .trace-lookup-page {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      height: auto;
      max-height: none;
    }
    .trace-lookup-shell {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      gap: 12px;
    }
    .trace-lookup-hero {
      position: relative;
      flex-shrink: 0;
      border-radius: 18px;
      overflow: visible;
      border: 1px solid color-mix(in srgb, var(--ds-brand) 16%, var(--ds-border));
      background:
        radial-gradient(ellipse 90% 70% at 96% 6%, color-mix(in srgb, var(--ds-brand) 22%, transparent) 0%, transparent 55%),
        radial-gradient(ellipse 65% 50% at 2% 100%, color-mix(in srgb, var(--ds-info) 12%, transparent) 0%, transparent 50%),
        linear-gradient(
          148deg,
          color-mix(in srgb, var(--ds-brand) 7%, var(--ds-bg-surface-raised)) 0%,
          color-mix(in srgb, var(--ds-brand) 4%, var(--ds-bg-surface)) 45%,
          color-mix(in srgb, #0f172a 4%, var(--ds-bg-surface-sunken)) 100%
        );
      box-shadow:
        inset 0 1px 0 color-mix(in srgb, white 75%, transparent),
        0 8px 28px color-mix(in srgb, var(--ds-brand) 9%, transparent);
    }
    .trace-lookup-hero__glow {
      position: absolute;
      right: -70px;
      top: -90px;
      width: 260px;
      height: 260px;
      border-radius: 50%;
      background: radial-gradient(circle, color-mix(in srgb, var(--ds-brand) 28%, transparent) 0%, transparent 68%);
      pointer-events: none;
      animation: trace-portal-glow 7s ease-in-out infinite alternate;
    }
    .trace-lookup-hero__inner {
      position: relative;
      z-index: 1;
      padding: 16px 18px;
    }
    .trace-lookup-hero__head {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 14px;
    }
    .trace-lookup-hero__icon {
      flex-shrink: 0;
      width: 42px;
      height: 42px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 20px;
      color: var(--ds-brand-active);
      background: linear-gradient(
        145deg,
        color-mix(in srgb, var(--ds-bg-surface) 90%, transparent),
        color-mix(in srgb, var(--ds-brand) 10%, var(--ds-bg-surface-raised))
      );
      border: 1px solid color-mix(in srgb, var(--ds-brand) 18%, var(--ds-border));
      box-shadow: 0 4px 14px color-mix(in srgb, var(--ds-brand) 12%, transparent);
    }
    .trace-lookup-hero__badge {
      margin: 0 0 4px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--ds-brand-active);
    }
    .trace-lookup-hero__copy {
      flex: 1;
      min-width: 0;
    }
    .trace-lookup-hero__help {
      display: inline-flex;
      vertical-align: middle;
      margin-left: 0.15rem;
    }
    .trace-lookup-hero__sub {
      margin: 0;
      font-size: 13px;
      line-height: 1.45;
      color: var(--ds-text-secondary);
    }
    .trace-lookup-hero__search {
      --trace-search-control-h: 42px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      grid-template-rows: auto auto;
      gap: 6px 10px;
      align-items: stretch;
    }
    .trace-lookup-search-label {
      grid-column: 1 / -1;
      margin: 0;
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-text-secondary);
    }
    .trace-lookup-search-input {
      grid-column: 1;
      grid-row: 2;
      width: 100%;
      min-width: 0;
      height: var(--trace-search-control-h);
      box-sizing: border-box;
      border-radius: 12px;
      border: 1px solid color-mix(in srgb, var(--ds-brand) 14%, var(--ds-border));
      padding: 0 14px;
      font-size: 14px;
      line-height: normal;
      background: color-mix(in srgb, var(--ds-bg-surface) 88%, transparent);
      backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      box-shadow:
        inset 0 1px 0 color-mix(in srgb, white 70%, transparent),
        0 1px 3px color-mix(in srgb, var(--ds-brand) 6%, transparent);
    }
    .trace-lookup-search-input:focus {
      outline: none;
      border-color: var(--ds-brand);
      box-shadow: 0 0 0 3px var(--ds-focus-ring);
    }
    .trace-lookup-search-btn {
      grid-column: 2;
      grid-row: 2;
      height: var(--trace-search-control-h);
      box-sizing: border-box;
      border-radius: 12px;
      padding: 0 22px;
      font-weight: 600;
      line-height: 1;
      white-space: nowrap;
      align-self: stretch;
    }
    .trace-lookup-panel {
      flex: 1;
      min-height: 0;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      background: var(--ds-bg-surface);
      border: 1px solid color-mix(in srgb, var(--ds-brand) 10%, var(--ds-border));
      border-radius: 18px;
      padding: 18px 20px;
      box-shadow:
        inset 0 1px 0 color-mix(in srgb, white 80%, transparent),
        0 4px 20px color-mix(in srgb, var(--ds-brand) 6%, transparent);
    }
    .trace-lookup-empty {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      min-height: 100%;
      padding: 48px 24px;
      text-align: center;
    }
    .trace-lookup-empty__icon {
      width: 52px;
      height: 52px;
      border-radius: 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
      color: var(--ds-brand-active);
      background: color-mix(in srgb, var(--ds-brand) 8%, var(--ds-bg-surface-raised));
      border: 1px solid color-mix(in srgb, var(--ds-brand) 14%, var(--ds-border));
      margin-bottom: 14px;
    }
    .trace-lookup-empty__title {
      margin: 0;
      font-size: 15px;
      font-weight: 600;
      color: var(--ds-text);
    }
    .trace-lookup-empty__hint {
      margin: 8px 0 0;
      max-width: 28rem;
      font-size: 13px;
      line-height: 1.5;
      color: var(--ds-text-secondary);
    }
    .trace-lookup-loading {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 100%;
      padding: 48px 24px;
      font-size: 14px;
      color: var(--ds-text-secondary);
    }
    .trace-lookup-result__head {
      flex-shrink: 0;
      margin: 0 0 12px;
      padding: 0 0 14px;
      background: var(--ds-bg-surface);
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 85%, transparent);
    }
    .trace-lookup-result__body {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
    }
    .trace-result-footer {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      margin-top: 20px;
      padding-top: 16px;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 85%, transparent);
    }
    .trace-print-footer {
      display: none;
      margin: 16px 0 0;
      padding-top: 12px;
      border-top: 1px solid var(--ds-border);
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .trace-lookup-result__code-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 10px;
      margin-bottom: 10px;
    }
    .trace-lookup-result__label {
      font-size: 13px;
      color: var(--ds-text-secondary);
    }
    .trace-lookup-result__code {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 15px;
      font-weight: 700;
      color: var(--ds-text);
      letter-spacing: 0.02em;
    }
    .trace-lookup-result__product {
      margin: 0;
      font-size: 17px;
      font-weight: 700;
      color: var(--ds-text);
      line-height: 1.3;
    }
    .trace-lookup-result__meta {
      margin: 6px 0 0;
      font-size: 13px;
      line-height: 1.45;
      color: var(--ds-text-secondary);
    }
    .trace-lookup-panel .oa-timeline {
      border: none;
      border-radius: 14px;
      padding: 4px 0 0;
      background: transparent;
    }
    .trace-lookup-panel .oa-timeline-item {
      padding: 10px 0 10px 20px;
      border-left: 2px solid color-mix(in srgb, var(--ds-brand) 22%, var(--ds-border));
    }
    .trace-lookup-panel .oa-timeline-item::before {
      left: -7px;
      top: 16px;
      width: 12px;
      height: 12px;
      background: var(--ds-brand);
      border-color: color-mix(in srgb, var(--ds-brand) 30%, white);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-brand) 12%, transparent);
    }
    .trace-lookup-panel .oa-timeline-item.is-end::before {
      background: var(--ds-success);
      border-color: color-mix(in srgb, var(--ds-success) 35%, white);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-success) 12%, transparent);
    }
    .trace-lookup-panel .oa-timeline-title {
      font-size: 14px;
    }
    .trace-lookup-panel .table-container {
      border-radius: 10px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 90%, transparent);
      overflow: hidden;
    }
    .trace-chain-card {
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 55%, transparent);
      border: 1px solid color-mix(in srgb, var(--ds-border) 90%, transparent) !important;
      border-radius: 14px !important;
    }
    .trace-lookup-badge {
      display: inline-flex;
      align-items: center;
      border-radius: 9999px;
      font-size: 12px;
      padding: 3px 10px;
      background: var(--ds-success-muted);
      color: var(--ds-success-emphasis);
      font-weight: 600;
    }
    .trace-outbound-hit {
      background: var(--ds-warning-muted);
    }
    .trace-outbound-hit td {
      font-weight: 600;
    }
    .trace-kind-badge {
      display: inline-flex;
      align-items: center;
      border-radius: 8px;
      font-size: 12px;
      padding: 5px 12px;
      background: var(--ds-info-muted);
      color: var(--ds-info-emphasis);
      font-weight: 700;
      letter-spacing: 0.02em;
    }
    .trace-kind-badge--semi {
      background: color-mix(in srgb, var(--ds-brand) 12%, transparent);
      color: var(--ds-brand-active);
    }
    .trace-kind-badge--finished {
      background: var(--ds-info-muted);
      color: var(--ds-info-emphasis);
    }
    @media (max-width: 768px) {
      .trace-lookup-panel {
        min-height: 280px;
      }
      #traceability-lookup .trace-lookup-hero__search {
        grid-template-columns: 1fr !important;
      }
      #traceability-lookup .trace-lookup-search-btn {
        grid-column: 1 !important;
        width: 100%;
      }
    }
    @media print {
      body.trace-print-mode .sidebar,
      body.trace-print-mode .top-header,
      body.trace-print-mode .no-print,
      body.trace-print-mode .trace-lookup-hero {
        display: none !important;
      }
      body.trace-print-mode .page-content {
        display: none !important;
      }
      body.trace-print-mode #traceability-lookup {
        display: block !important;
      }
      body.trace-print-mode #traceability-lookup.hidden {
        display: block !important;
      }
      body.trace-print-mode .trace-lookup-panel {
        max-height: none;
        overflow: visible;
        border: none;
        background: var(--ds-bg-surface);
      }
      body.trace-print-mode .trace-print-footer {
        display: block !important;
      }
    }
    .oa-toast-stack {
      position: fixed;
      top: 50%;
      left: 50%;
      right: auto;
      transform: translate(-50%, -50%);
      z-index: 10050;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      pointer-events: none;
      width: min(92vw, 480px);
    }
    .oa-toast {
      width: 100%;
      min-width: 0;
      max-width: none;
      padding: 16px 22px;
      border-radius: 12px;
      border: 1px solid #cbd5e1;
      background: #ffffff;
      box-shadow: 0 16px 48px rgba(15, 23, 42, 0.22);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      opacity: 1;
      pointer-events: auto;
      color: #0f172a;
      font-size: 15px;
      font-weight: 600;
      line-height: 1.45;
      text-align: center;
    }
    .oa-toast--error {
      border-color: #fca5a5;
      background: #fef2f2;
      color: #991b1b;
    }
    .oa-toast--success {
      border-color: #6ee7b7;
      background: #ecfdf5;
      color: #065f46;
    }
    .oa-toast--warning {
      border-color: #fcd34d;
      background: #fffbeb;
      color: #92400e;
    }
    .oa-toast--info {
      border-color: #93c5fd;
      background: #eff6ff;
      color: #1e40af;
    }
    :focus-visible {
      outline: 2px solid var(--focus-ring-strong);
      outline-offset: 2px;
    }
    .btn:focus-visible { outline-offset: 3px; }
    #purchase-type-picker {
      padding: 0;
      border: none;
      background: transparent;
      margin-bottom: 14px;
    }
    #purchase-type-picker .purchase-mode-group {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      background: var(--ds-bg-surface-raised);
      border: 1px solid var(--ds-border);
      border-radius: 8px;
      padding: 5px;
    }
    #purchase-type-picker .purchase-mode-btn {
      min-height: 36px;
      border: 1px solid transparent;
      border-radius: 6px;
      background: transparent;
      box-shadow: none;
      font-weight: 500;
      color: var(--ds-tab-surface-fg);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: all .15s ease;
    }
    #purchase-type-picker .purchase-mode-btn:hover {
      background: var(--ds-brand-muted);
      color: var(--ds-text);
    }
    #purchase-type-picker .purchase-mode-btn.active {
      background: var(--ds-bg-surface);
      border-color: var(--primary-light);
      color: var(--primary-dark);
    }
    .purchase-filter-row > * {
      flex: 0 0 auto;
    }
    .purchase-filter-row {
      display: flex;
      flex-wrap: nowrap;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      padding: 2px 0;
    }
    .purchase-filter-row::-webkit-scrollbar { height: 6px; }
    .purchase-filter-row::-webkit-scrollbar-thumb { background: var(--ds-border-strong); border-radius: 999px; }
    .purchase-filter-row .pf-select-sm { width: 96px; min-width: 96px; }
    .purchase-filter-row .pf-select-md { width: 120px; min-width: 120px; }
    .purchase-filter-row .pf-date { width: 128px; min-width: 128px; }
    .purchase-filter-row .pf-keyword { width: 110px; min-width: 110px; }
    .purchase-filter-wrap {
      margin-top: 10px;
      margin-bottom: 12px;
      padding: 10px;
      border: 1px solid var(--ds-border);
      border-radius: 10px;
      background: var(--ds-bg-surface-raised);
    }
    .nav-item:focus-visible { outline-offset: -2px; border-radius: var(--radius-sm); }
    .command-palette-link {
      cursor: pointer;
      border: none;
      background: transparent;
      font: inherit;
      color: inherit;
      border-radius: var(--radius-sm);
    }
    .command-palette-link:hover {
      background: color-mix(in srgb, var(--ds-bg-surface) 42%, transparent);
    }
    .status-pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      line-height: 1;
      padding: 6px 9px;
      border-radius: 999px;
      border: 1px solid transparent;
      font-weight: 600;
      white-space: nowrap;
    }
    .status-pill--running {
      background: var(--status-pill-running-bg);
      border-color: var(--status-pill-running-border);
      color: var(--status-pill-running-fg);
    }
    .status-pill--done { background: var(--ds-success-muted); border-color: color-mix(in srgb, var(--ds-success) 40%, white); color: var(--ds-success-emphasis); }
    .status-pill--reject { background: var(--ds-danger-muted); border-color: color-mix(in srgb, var(--ds-danger) 35%, white); color: var(--ds-danger-emphasis); }
    .status-pill--withdraw { background: var(--ds-bg-surface-raised); border-color: var(--ds-border-strong); color: var(--ds-text-secondary); }
    .ai-answer-card {
      border: 1px solid var(--ds-border);
      border-radius: 14px;
      background: var(--ds-bg-surface);
      padding: 12px 14px;
      margin-top: 8px;
      box-shadow: none;
    }
    .ai-answer-card-title {
      font-size: 12px;
      color: var(--ds-text-secondary);
      font-weight: 600;
      margin-bottom: 6px;
    }
    .ai-answer-card.ai-answer-card--uncertain {
      border-color: color-mix(in srgb, var(--ds-danger) 35%, white);
      background: var(--ds-danger-muted);
    }
    .ai-answer-card.ai-answer-card--action {
      border-color: color-mix(in srgb, var(--ds-info) 35%, white);
      background: var(--ds-info-muted);
    }
    .ai-answer-card.ai-answer-card--learning {
      border-color: var(--ds-border);
      background: var(--ds-bg-surface-raised);
    }
    /* 动态插入的弹层勿用 Tailwind 类名（本页未引入 Tailwind），否则无 position:fixed 会堆在页面底部 */
    .edit-bill-modal-overlay {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 200;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: var(--modal-scrim);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      padding: 16px;
      box-sizing: border-box;
    }
    .edit-bill-modal-panel {
      background: var(--ds-bg-surface);
      border: 1px solid var(--border-color);
      border-radius: var(--radius-md);
      box-shadow: none;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      width: 100%;
      max-width: 42rem;
      max-height: 90vh;
      overflow-y: auto;
      padding: 24px;
      box-sizing: border-box;
    }
    .edit-bill-modal-panel .form-input,
    .edit-bill-modal-panel .form-select,
    .edit-bill-modal-panel .form-textarea {
      max-width: 100%;
    }
    .edit-bill-modal-title {
      font-size: 18px;
      font-weight: 600;
      color: var(--text-primary);
      margin: 0 0 6px 0;
    }
    .edit-bill-modal-sub {
      font-size: 13px;
      color: var(--text-secondary);
      margin: 0 0 20px 0;
      line-height: 1.45;
    }
    .edit-bill-modal-actions {
      display: flex;
      justify-content: flex-end;
      gap: 10px;
      padding-top: 16px;
      margin-top: 4px;
      border-top: 1px solid var(--border-color);
    }
    .edit-bill-modal-panel .form-input:disabled,
    .edit-bill-modal-panel .form-select:disabled {
      opacity: 0.82;
      cursor: not-allowed;
      color: var(--text-secondary);
    }
    .edit-bill-modal-panel .form-group {
      margin-bottom: 16px;
    }
    /* 出纳收付：工具栏与审批中心一致，单行排布、输入框略紧凑 */
    #cashier-payment .cashier-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 10px 12px;
      margin-top: 12px;
    }
    #cashier-payment .cashier-toolbar .header-filter-segment {
      flex-shrink: 0;
    }
    #cashier-payment .cashier-toolbar .cashier-filter-input {
      flex: none;
      width: 100%;
      min-width: 0;
      max-width: 100%;
      padding: 8px 12px;
      font-size: 13px;
      box-sizing: border-box;
    }
    #cashier-payment .cashier-toolbar .btn {
      flex-shrink: 0;
    }
    #cashier-payment .cashier-toolbar .btn.btn-outline {
      color: var(--header-chrome-outline-btn);
      border-color: var(--header-chrome-outline-border);
      background: var(--header-chrome-outline-bg);
    }
    #cashier-payment .cashier-toolbar .btn.btn-outline:hover {
      color: var(--header-chrome-outline-btn);
      background: var(--header-chrome-outline-hover-bg);
      border-color: var(--header-chrome-outline-hover-border);
    }
    /* 批次到站登记弹窗：整窗滚动，避免 flex 把中间区域压扁 */
    #cycleTruckInboundModal.modal {
      align-items: center;
      justify-content: center;
      padding: 20px 16px;
    }
    #cycleTruckInboundModal .modal-content.cti-modal-shell {
      width: min(92vw, 720px);
      max-width: 720px;
      max-height: 90vh;
      overflow-x: hidden;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      display: block;
      padding: 0;
      margin: 0;
    }
    #cycleTruckInboundModal .cti-modal-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      padding: 18px 20px 14px;
      border-bottom: 1px solid var(--border-color, var(--ds-border));
      background: var(--ds-bg-surface-raised, #f8fafc);
      position: sticky;
      top: 0;
      z-index: 2;
    }
    #cycleTruckInboundModal .cti-modal-header .modal-title {
      margin: 0;
      font-size: 18px;
      font-weight: 700;
      line-height: 1.3;
    }
    #cycleTruckInboundModal .cti-modal-subtitle {
      margin: 4px 0 0;
      font-size: 13px;
      color: var(--muted, #64748b);
      line-height: 1.45;
    }
    #cycleTruckInboundModal .cti-modal-body {
      padding: 16px 20px 20px;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    #cycleTruckInboundModal .cti-modal-hint {
      margin: 0;
      padding: 10px 12px;
      border-radius: 10px;
      font-size: 13px;
      line-height: 1.5;
      color: #334155;
      background: color-mix(in srgb, var(--primary, #2563eb) 8%, #fff);
      border: 1px solid color-mix(in srgb, var(--primary, #2563eb) 18%, var(--border-color, #e2e8f0));
    }
    #cycleTruckInboundModal .cti-modal-hint.hidden {
      display: none;
    }
    #cycleTruckInboundModal .cti-panel {
      border: 1px solid var(--border-color, var(--ds-border));
      border-radius: 12px;
      background: var(--ds-bg-surface, #fff);
      padding: 14px 16px 16px;
    }
    #cycleTruckInboundModal .cti-panel__title {
      display: flex;
      align-items: center;
      gap: 8px;
      margin: 0 0 12px;
      font-size: 14px;
      font-weight: 700;
      color: var(--ds-text, #0f172a);
    }
    #cycleTruckInboundModal .cti-panel__step {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 700;
      color: var(--primary, #2563eb);
      background: color-mix(in srgb, var(--primary, #2563eb) 12%, #fff);
      border: 1px solid color-mix(in srgb, var(--primary, #2563eb) 25%, transparent);
      flex-shrink: 0;
    }
    #cycleTruckInboundModal .cti-panel__field {
      margin-bottom: 0;
    }
    #cycleTruckInboundModal .cti-field {
      margin-bottom: 0;
    }
    #cycleTruckInboundModal .cti-field .form-label {
      font-size: 13px;
      font-weight: 600;
      margin-bottom: 6px;
      color: #334155;
    }
    #cycleTruckInboundModal .cti-field--origin {
      padding: 12px;
      border-radius: 10px;
      background: color-mix(in srgb, var(--ds-bg-surface-raised, #f8fafc) 80%, #fff);
      border: 1px dashed color-mix(in srgb, var(--border-color, #e2e8f0) 90%, #94a3b8);
    }
    .cti-arrival-fields {
      display: grid;
      gap: 14px;
      align-items: start;
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .cti-arrival-fields .form-input,
    .cti-arrival-fields .form-select {
      max-width: 100%;
      box-sizing: border-box;
      min-height: 42px;
      height: 42px;
      padding-top: 10px;
      padding-bottom: 10px;
      line-height: 20px;
    }
    .cti-arrival-fields input[type='datetime-local'].form-input {
      padding-top: 9px;
      padding-bottom: 9px;
    }
    .cti-arrival-fields--material [data-cti-field='origin'],
    .cti-arrival-fields--fresh [data-cti-field='origin'] {
      grid-column: 1 / -1;
    }
    .cti-arrival-fields--fresh [data-cti-field='origin'] {
      grid-row: auto;
    }
    #cycleTruckInboundModal .cti-weigh-fold {
      border: 1px solid var(--border-color, var(--ds-border));
      border-radius: 10px;
      background: var(--ds-bg-surface-raised, #f8fafc);
      overflow: hidden;
    }
    #cycleTruckInboundModal .cti-weigh-fold.hidden {
      display: none;
    }
    #cycleTruckInboundModal .cti-weigh-fold__summary {
      padding: 10px 14px;
      font-size: 13px;
      font-weight: 600;
      color: #475569;
      cursor: pointer;
      list-style: none;
      user-select: none;
    }
    #cycleTruckInboundModal .cti-weigh-fold__summary::-webkit-details-marker {
      display: none;
    }
    #cycleTruckInboundModal .cti-weigh-fold__summary::before {
      content: '▸';
      display: inline-block;
      margin-right: 6px;
      transition: transform 0.15s ease;
    }
    #cycleTruckInboundModal .cti-weigh-fold[open] .cti-weigh-fold__summary::before {
      transform: rotate(90deg);
    }
    #cycleTruckInboundModal .cti-weigh-fold__body {
      padding: 0 14px 14px;
      border-top: 1px solid var(--border-color, var(--ds-border));
    }
    #cycleTruckInboundModal .cti-weigh-fold__hint {
      margin: 10px 0 12px;
      font-size: 12px;
      line-height: 1.45;
      color: var(--muted, #64748b);
    }
    #cycleTruckInboundModal .cti-weigh-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
    }
    #cycleTruckInboundModal .cti-net-readonly {
      background: var(--ds-bg-surface, #fff);
      color: var(--ds-text, #0f172a);
      font-weight: 600;
    }
    #cycleTruckInboundModal .cti-modal-footer {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      justify-content: space-between;
      gap: 10px;
      padding: 12px 20px 16px;
      border-top: 1px solid var(--border-color, var(--ds-border));
      background: var(--ds-bg-surface-raised, #f8fafc);
      position: sticky;
      bottom: 0;
      z-index: 2;
    }
    #cycleTruckInboundModal .cti-close-batch-wrap {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 4px;
      max-width: min(100%, 16rem);
    }
    #cycleTruckInboundModal .cti-close-batch-hint {
      margin: 0;
      font-size: 11px;
      line-height: 1.45;
      color: var(--ds-text-secondary, #64748b);
    }
    #cycleTruckInboundModal .cti-modal-footer__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-left: auto;
    }
    @media (max-width: 640px) {
      .cti-arrival-fields {
        grid-template-columns: 1fr;
      }
      #cycleTruckInboundModal .cti-weigh-grid {
        grid-template-columns: 1fr;
      }
      #cycleTruckInboundModal .cti-modal-footer {
        flex-direction: column;
        align-items: stretch;
      }
      #cycleTruckInboundModal .cti-modal-footer__actions {
        margin-left: 0;
        width: 100%;
        justify-content: flex-end;
      }
    }
    .truck-origin-picker-host {
      width: 100%;
    }
    .truck-origin-picker__row {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      width: 100%;
    }
    .truck-origin-picker__sel {
      min-width: 0;
      font-size: 13px;
    }
    .truck-origin-picker__recents {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
      margin-bottom: 8px;
    }
    .truck-origin-picker__recents-label {
      font-size: 12px;
      color: var(--muted, #64748b);
      flex-shrink: 0;
    }
    .truck-origin-picker__chip {
      font-size: 12px;
      line-height: 1.35;
      padding: 5px 12px;
      border-radius: 999px;
      border: 1px solid color-mix(in srgb, var(--primary, #2563eb) 22%, var(--border-color, #e2e8f0));
      background: var(--ds-bg-surface, #fff);
      color: #334155;
      cursor: pointer;
      transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
    }
    .truck-origin-picker__chip:hover {
      border-color: var(--primary, #2563eb);
      color: var(--primary, #2563eb);
      background: color-mix(in srgb, var(--primary, #2563eb) 6%, #fff);
    }
    .truck-origin-picker__hint {
      margin: 0 0 6px;
    }
    @media (max-width: 640px) {
      .truck-origin-picker__row {
        grid-template-columns: 1fr;
      }
    }
    .summary-text-popup-overlay {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 220;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: var(--modal-scrim);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      padding: 16px;
      box-sizing: border-box;
    }
    .summary-text-popup-panel {
      background: var(--ds-bg-surface);
      border: 1px solid var(--border-color);
      border-radius: var(--radius-md);
      box-shadow: none;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      width: 100%;
      max-width: 32rem;
      max-height: 70vh;
      display: flex;
      flex-direction: column;
      box-sizing: border-box;
    }
    .summary-text-popup-body {
      padding: 16px;
      overflow-y: auto;
      font-size: 14px;
      color: var(--text-primary);
      white-space: pre-wrap;
      word-break: break-word;
      line-height: 1.55;
    }
    .summary-text-popup-head {
      padding: 12px 16px;
      border-bottom: 1px solid var(--border-color);
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-shrink: 0;
    }
    .summary-text-popup-foot {
      padding: 12px 16px;
      border-top: 1px solid var(--border-color);
      display: flex;
      justify-content: flex-end;
      flex-shrink: 0;
    }
    .reject-reason-overlay {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 230;
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: var(--modal-scrim);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      padding: 16px;
      box-sizing: border-box;
    }
    .reject-reason-panel {
      background: var(--ds-bg-surface);
      border: 1px solid var(--border-color);
      border-radius: var(--radius-md);
      box-shadow: none;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
      width: 100%;
      max-width: 28rem;
      padding: 20px;
      box-sizing: border-box;
    }
    .reject-reason-panel .form-input {
      max-width: 100%;
    }
    .reject-reason-actions {
      display: flex;
      justify-content: flex-end;
      gap: 10px;
      margin-top: 16px;
    }
    /* OA 详情：仅中间区域滚动，底部「单据下载」始终可见 */
    #oaDetailModal .modal-content.oa-detail-modal-shell {
      display: flex;
      flex-direction: column;
      max-height: 90vh;
      overflow: hidden;
    }
    #oaDetailModal .approval-doc-detail-head {
      flex-shrink: 0;
    }
    #oaDetailModal .oa-detail-fallback-pre {
      margin: 0;
      padding: 12px 14px 14px;
      font-size: 13px;
      line-height: 1.55;
      white-space: pre-wrap;
      word-break: break-word;
      color: var(--ds-text);
      font-family: inherit;
    }
    #oaDetailModal .oa-detail-body-sections .doc-detail-section:last-child {
      margin-bottom: 0;
    }
    #oaDetailModal .doc-detail-section .oa-timeline {
      padding: 10px 14px 14px;
    }
    .cti-po-summary {
      border: none;
      border-radius: 10px;
      background: color-mix(in srgb, var(--primary, #2563eb) 6%, var(--ds-bg-surface-raised, #f8fafc));
      padding: 12px 14px;
      margin-top: 10px;
    }
    .cti-po-summary.hidden {
      display: none;
    }
    .cti-po-registered-hint {
      margin: 8px 0 0;
      font-size: 13px;
      line-height: 1.45;
      color: #475569;
    }
    .cti-po-registered-hint.hidden {
      display: none;
    }
    .cti-po-summary__head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
    }
    .cti-po-summary__tag {
      display: inline-block;
      font-size: 11px;
      font-weight: 700;
      padding: 3px 10px;
      border-radius: 999px;
      background: var(--ds-bg-surface, #fff);
      border: 1px solid color-mix(in srgb, var(--primary, #2563eb) 30%, var(--ds-border));
      color: var(--primary-dark, #1d4ed8);
    }
    .cti-po-summary__batch {
      font-size: 14px;
      font-weight: 700;
      color: var(--ds-text);
    }
    .cti-po-summary__grid.po-detail-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0 16px;
    }
    @media (max-width: 640px) {
      .cti-po-summary__grid.po-detail-grid {
        grid-template-columns: 1fr;
      }
    }
    #oaDetailModal .modal-body {
      overflow-y: auto;
      flex: 1 1 auto;
      min-height: 0;
    }
    #oaDetailModal .modal-footer {
      flex-shrink: 0;
      border-top: 1px solid var(--border-color);
      background: var(--ds-bg-surface-raised);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }
    #oaDetailModal .oa-detail-payload-wrap {
      position: relative;
      z-index: 1;
      margin-bottom: 1rem;
    }
    #oaDetailModal .oa-detail-payload-pre {
      max-height: min(48vh, 380px);
      white-space: pre-wrap;
      word-break: break-word;
    }
    #oaDetailModal .oa-detail-embedded-table {
      position: relative;
      z-index: 2;
      background: var(--ds-bg-surface);
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    #oaDetailModal .oa-detail-embedded-table .table {
      min-width: 0;
      width: 100%;
    }
    /* 原生 <dialog>：本页未引入 Tailwind，用统一遮罩 + 玻璃面板 */
    #rawInboundAcceptanceDialog {
      border-radius: var(--radius-md);
      padding: 0;
      max-width: 28rem;
      width: calc(100% - 2rem);
      background: var(--ds-bg-surface);
      border: 1px solid var(--border-color);
      box-shadow: none;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }
    #rawInboundAcceptanceDialog::backdrop {
      background: var(--modal-scrim);
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }
    .modal-header {
      padding: 20px 24px;
      border-bottom: 1px solid var(--border-color);
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }
    .modal-header .modal-title,
    .modal-header > h3 {
      flex: 1 1 auto;
      min-width: 0;
      margin: 0;
    }
    .modal-header > .modal-close,
    .modal-header > .closeModalBtn,
    .modal-header > .close-btn,
    .modal-header > .close.approval-doc-detail-close-icon,
    .modal-header > .close:not(.btn) {
      flex-shrink: 0;
      margin-left: auto;
    }
    .modal-header > .modal-close,
    .modal-header > .closeModalBtn,
    .modal-header > .close-btn {
      width: 36px;
      height: 36px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0;
      border-radius: 10px;
      border: 1px solid var(--ds-border, var(--border-color));
      background: var(--ds-bg-surface, #fff);
      font-size: 1.35rem;
      line-height: 1;
      color: var(--ds-text-secondary, #64748b);
      cursor: pointer;
    }
    .modal-header > .modal-close:hover,
    .modal-header > .closeModalBtn:hover,
    .modal-header > .close-btn:hover {
      background: var(--ds-bg-surface-raised, #f8fafc);
      color: var(--ds-text, #0f172a);
    }
    .modal-title { font-size: 18px; font-weight: 600; color: var(--text-primary); }
    .modal-body { padding: 24px; }
    .modal-footer { padding: 20px 24px; border-top: 1px solid var(--border-color); display: flex; justify-content: flex-end; gap: 12px; }

    /* 审批/出纳：点单据编号打开的详情弹窗 — 覆盖全局 .modal-content 的 overflow-y:auto，避免页脚「关闭」随布局错位；仅中部滚动 */
    .modal.approval-doc-detail-overlay {
      z-index: 120;
      padding: 2vh 12px;
    }
    .modal.approval-doc-detail-overlay .modal-content.approval-doc-detail-shell {
      max-width: min(52rem, 96vw);
      width: min(52rem, 96vw);
      max-height: min(88vh, 840px);
      height: auto;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      padding: 0;
      margin: 0;
      border-radius: 14px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.18);
    }
    .modal.approval-doc-detail-overlay .approval-doc-detail-head {
      flex-shrink: 0;
      padding: 12px 16px;
      margin: 0;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      border-bottom: 1px solid var(--ds-border);
      background: linear-gradient(90deg, var(--ds-bg-surface-raised) 0%, var(--ds-bg-surface) 100%);
    }
    .modal.approval-doc-detail-overlay .approval-doc-detail-head .modal-title {
      font-size: 1.05rem;
      line-height: 1.35;
      font-weight: 700;
      color: var(--ds-text);
      padding-right: 8px;
    }
    .modal.approval-doc-detail-overlay .approval-doc-detail-body {
      flex: 1 1 auto;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      padding: 10px 14px 14px;
      -webkit-overflow-scrolling: touch;
      background: linear-gradient(180deg, var(--ds-bg-surface-raised) 0%, color-mix(in srgb, var(--ds-bg-surface-sunken) 45%, transparent) 100%);
    }
    .modal.approval-doc-detail-overlay .approval-doc-detail-close-icon {
      flex-shrink: 0;
      width: 36px;
      height: 36px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 10px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      font-size: 1.35rem;
      line-height: 1;
      color: var(--ds-text-secondary);
      cursor: pointer;
    }
    .modal.approval-doc-detail-overlay .approval-doc-detail-close-icon:hover {
      background: var(--ds-bg-surface-raised);
      color: var(--ds-text);
    }

    /* 仓储等业务表单弹窗：与审批单据详情同款壳层（固定头尾、中部滚动） */
    .modal.biz-doc-form-modal {
      z-index: 110;
      padding: 2vh 12px;
    }
    .modal.biz-doc-form-modal .modal-content.biz-doc-form-modal-shell,
    .modal.biz-doc-form-modal .modal-content.approval-doc-detail-shell {
      max-width: min(52rem, 96vw);
      width: min(52rem, 96vw);
      max-height: min(88vh, 840px);
      height: auto;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      padding: 0;
      margin: 0;
      border-radius: 14px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.18);
    }
    .modal.biz-doc-form-modal .approval-doc-detail-head {
      flex-shrink: 0;
      padding: 12px 16px;
      margin: 0;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      border-bottom: 1px solid var(--ds-border);
      background: linear-gradient(90deg, var(--ds-bg-surface-raised) 0%, var(--ds-bg-surface) 100%);
    }
    .modal.biz-doc-form-modal .approval-doc-detail-head .modal-title {
      font-size: 1.05rem;
      line-height: 1.35;
      font-weight: 700;
      color: var(--ds-text);
      padding-right: 8px;
    }
    .modal.biz-doc-form-modal .approval-doc-detail-body {
      flex: 1 1 auto;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      padding: 10px 14px 14px;
      -webkit-overflow-scrolling: touch;
      background: linear-gradient(180deg, var(--ds-bg-surface-raised) 0%, color-mix(in srgb, var(--ds-bg-surface-sunken) 45%, transparent) 100%);
    }
    .modal.biz-doc-form-modal .approval-doc-detail-close-icon {
      flex-shrink: 0;
      width: 36px;
      height: 36px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 10px;
      border: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      font-size: 1.35rem;
      line-height: 1;
      color: var(--ds-text-secondary);
      cursor: pointer;
    }
    .modal.biz-doc-form-modal .approval-doc-detail-close-icon:hover {
      background: var(--ds-bg-surface-raised);
      color: var(--ds-text);
    }
    .modal.biz-doc-form-modal .modal-footer {
      flex-shrink: 0;
      border-top: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
    }
    .biz-doc-form-grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 12px 16px;
    }
    @media (min-width: 640px) {
      .biz-doc-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }
    .biz-doc-form .form-label {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text-secondary);
    }

    /* 采购订单详情（审批弹窗内） */
    .po-detail {
      display: flex;
      flex-direction: column;
      gap: 14px;
      font-size: 13px;
      color: var(--ds-text);
    }
    .po-detail-hero {
      border: 1px solid var(--ds-border);
      border-radius: 12px;
      background: linear-gradient(135deg, var(--ds-bg-surface) 0%, color-mix(in srgb, var(--primary-light, #e0e7ff) 18%, var(--ds-bg-surface)) 100%);
      padding: 14px 16px;
    }
    .po-detail-hero__top {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 12px;
    }
    .po-detail-hero__amount-wrap {
      text-align: right;
    }
    .po-detail-hero__amount-label {
      display: block;
      font-size: 11px;
      color: var(--ds-text-secondary);
      margin-bottom: 2px;
    }
    .po-detail-hero__amount {
      font-size: 1.35rem;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      color: var(--ds-text);
    }
    .po-detail-stats {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }
    @media (max-width: 640px) {
      .po-detail-stats {
        grid-template-columns: 1fr;
      }
    }
    .po-detail-stat {
      border: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
      border-radius: 8px;
      background: var(--ds-bg-surface);
      padding: 8px 10px;
    }
    .po-detail-stat__label {
      display: block;
      font-size: 11px;
      color: var(--ds-text-secondary);
      margin-bottom: 2px;
    }
    .po-detail-stat__value {
      display: block;
      font-size: 13px;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }
    .po-detail-section {
      border: 1px solid var(--ds-border);
      border-radius: 12px;
      background: var(--ds-bg-surface);
      overflow: hidden;
    }
    .po-detail-section__title {
      margin: 0;
      padding: 10px 14px;
      font-size: 13px;
      font-weight: 700;
      border-bottom: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
    }
    .po-detail-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0 20px;
      padding: 4px 14px 12px;
    }
    @media (max-width: 640px) {
      .po-detail-grid {
        grid-template-columns: 1fr;
      }
    }
    .po-detail-field {
      display: flex;
      flex-direction: column;
      gap: 2px;
      padding: 8px 0;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 55%, transparent);
    }
    .po-detail-field:last-child {
      border-bottom: 0;
    }
    .po-detail-field--wide {
      grid-column: 1 / -1;
    }

    /* 出货计划弹窗 */
    #shipmentPlanOverlay .ssp-plan-shell {
      max-width: min(58rem, 96vw);
      width: min(58rem, 96vw);
    }
    #shipmentPlanOverlay .ssp-plan-lines-table .form-input,
    #shipmentPlanOverlay .ssp-plan-lines-table .form-select {
      font-size: 13px;
      min-width: 0;
    }
    #shipmentPlanOverlay .ssp-qty-wrap {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 6px;
    }
    #shipmentPlanOverlay .ssp-qty-wrap .ssp-qty {
      width: 5.5rem;
      text-align: right;
    }
    #shipmentPlanOverlay .ssp-qty-unit {
      font-size: 12px;
      color: var(--ds-text-secondary);
      white-space: nowrap;
    }
    #shipmentPlanOverlay .ssp-col-act {
      width: 3rem;
      text-align: center;
    }

    /* 客户发货单弹窗 */
    #cdnOverlay .cdn-form-shell {
      max-width: min(52rem, 96vw);
      width: min(52rem, 96vw);
    }
    #cdnOverlay .cdn-ship-section .po-detail-section__title {
      margin-bottom: 0.5rem;
    }
    #cdnOverlay .cdn-ship-summary-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px 14px;
      padding: 0 14px 12px;
    }
    @media (min-width: 640px) {
      #cdnOverlay .cdn-ship-summary-grid {
        grid-template-columns: 2fr 1fr 1fr;
      }
      #cdnOverlay .cdn-ship-summary-grid .po-detail-field--wide {
        grid-column: 1 / -1;
      }
    }
    #cdnOverlay .cdn-ship-lines-card {
      margin: 0 14px 12px;
      padding: 12px 14px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 88%, var(--ds-accent) 12%);
      border-radius: 10px;
      background: color-mix(in srgb, var(--ds-bg-surface) 96%, var(--ds-accent) 4%);
    }
    #cdnOverlay .cdn-ship-lines-card__head {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      justify-content: space-between;
      gap: 10px 14px;
      margin-bottom: 8px;
    }
    #cdnOverlay .cdn-ship-lines-card__title {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text);
    }
    #cdnOverlay .cdn-ship-lines-card__sub {
      margin-top: 2px;
      font-size: 11px;
      color: var(--ds-text-secondary);
      line-height: 1.4;
    }
    #cdnOverlay .cdn-ship-lines-card__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    #cdnOverlay .cdn-ship-lines-sum-hint {
      font-size: 12px;
      line-height: 1.45;
      padding: 8px 10px;
      border-radius: 8px;
      margin-bottom: 10px;
    }
    #cdnOverlay .cdn-ship-lines-sum-hint--idle {
      color: var(--ds-text-secondary);
      background: color-mix(in srgb, var(--ds-bg-surface) 92%, var(--ds-border) 8%);
    }
    #cdnOverlay .cdn-ship-lines-sum-hint--ok {
      color: #166534;
      background: #f0fdf4;
      border: 1px solid #bbf7d0;
    }
    #cdnOverlay .cdn-ship-lines-sum-hint--warn {
      color: #92400e;
      background: #fffbeb;
      border: 1px solid #fde68a;
    }
    #cdnOverlay .cdn-ship-lines-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    #cdnOverlay .cdn-ship-line-row {
      display: grid;
      grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.6fr) 88px 32px;
      gap: 8px;
      align-items: end;
      padding: 10px 10px 10px 12px;
      border: 1px solid var(--ds-border);
      border-radius: 8px;
      background: var(--ds-bg-surface);
    }
    @media (max-width: 520px) {
      #cdnOverlay .cdn-ship-line-row {
        grid-template-columns: 1fr 1fr;
      }
      #cdnOverlay .cdn-ship-line-row__field--lot {
        grid-column: 1 / -1;
      }
      #cdnOverlay .cdn-ship-line-remove {
        grid-column: 2;
        justify-self: end;
      }
    }
    #cdnOverlay .cdn-ship-line-row__label {
      display: block;
      font-size: 10px;
      font-weight: 600;
      letter-spacing: 0.02em;
      color: var(--ds-text-secondary);
      margin-bottom: 4px;
      text-transform: uppercase;
    }
    #cdnOverlay .cdn-ship-line-row .form-select,
    #cdnOverlay .cdn-ship-line-row .form-input {
      font-size: 12px;
      min-width: 0;
      width: 100%;
    }
    #cdnOverlay .cdn-ship-line-remove {
      align-self: center;
      width: 28px;
      height: 28px;
      border: none;
      border-radius: 6px;
      background: transparent;
      color: #dc2626;
      font-size: 18px;
      line-height: 1;
      cursor: pointer;
      transition: background 0.12s ease;
    }
    #cdnOverlay .cdn-ship-line-remove:hover {
      background: #fef2f2;
    }
    #cdnOverlay .cdn-ship-lines-empty {
      font-size: 12px;
      color: var(--ds-text-secondary);
      text-align: center;
      padding: 14px 10px;
      border: 1px dashed color-mix(in srgb, var(--ds-border) 80%, transparent);
      border-radius: 8px;
    }
    #cdnOverlay .cdn-ship-lines-empty.hidden {
      display: none !important;
    }
    #cdnOverlay .cdn-transit-picker {
      margin-bottom: 10px;
      border: 1px solid color-mix(in srgb, var(--ds-accent) 30%, var(--ds-border));
      border-radius: 8px;
      overflow: hidden;
      background: var(--ds-bg-surface);
    }
    #cdnOverlay .cdn-transit-picker__head {
      padding: 8px 12px;
      font-size: 12px;
      font-weight: 600;
      background: color-mix(in srgb, var(--ds-bg-surface) 90%, var(--ds-accent) 10%);
      border-bottom: 1px solid var(--ds-border);
    }
    #cdnOverlay .cdn-transit-picker__body {
      max-height: 200px;
      overflow-y: auto;
    }
    #cdnOverlay .cdn-inventory-hint {
      margin: 0 14px 4px;
    }
    #cdnOverlay .cdn-inventory-hint.hidden {
      display: none !important;
    }
    #cdnOverlay .cdn-cpo-section {
      margin-top: 4px;
    }
    #cdnOverlay .cdn-cpo-section__head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 8px 12px;
      padding: 0 14px 6px;
    }
    #cdnOverlay .cdn-cpo-section__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    #cdnOverlay .cdn-cpo-section__lead {
      margin: 0 14px 10px;
      font-size: 12px;
      line-height: 1.45;
      color: var(--ds-text-secondary);
    }
    #cdnOverlay .cdn-cpo-sum-hint {
      margin: 0 14px 10px;
      padding: 8px 10px;
      font-size: 12px;
      line-height: 1.45;
      border-radius: 8px;
      color: var(--ds-text-secondary);
      background: color-mix(in srgb, var(--ds-bg-surface) 92%, var(--ds-border) 8%);
    }
    #cdnOverlay .cdn-cpo-sum-hint--ok {
      color: #166534;
      background: #f0fdf4;
      border: 1px solid #bbf7d0;
    }
    #cdnOverlay .cdn-cpo-sum-hint--warn {
      color: #92400e;
      background: #fffbeb;
      border: 1px solid #fde68a;
    }
    #cdnOverlay .cdn-cpo-sum-hint--bad {
      color: #991b1b;
      background: #fef2f2;
      border: 1px solid #fecaca;
    }
    #cdnOverlay .cdn-cpo-alloc-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin: 0 14px 14px;
      max-height: 220px;
      overflow-y: auto;
      padding-right: 2px;
    }
    #cdnOverlay .cdn-cpo-alloc-row {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) 7.5rem;
      gap: 10px;
      align-items: center;
      padding: 10px 12px;
      border: 1px solid var(--ds-border);
      border-radius: 8px;
      background: var(--ds-bg-surface);
      cursor: pointer;
      transition: border-color 0.12s ease, background 0.12s ease;
    }
    #cdnOverlay .cdn-cpo-alloc-row:has(.cdn-cpo-pick:checked) {
      border-color: color-mix(in srgb, var(--ds-accent) 45%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-bg-surface) 94%, var(--ds-accent) 6%);
    }
    #cdnOverlay .cdn-cpo-alloc-row__main {
      display: flex;
      flex-direction: column;
      gap: 2px;
      min-width: 0;
    }
    #cdnOverlay .cdn-cpo-alloc-row__title {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text);
    }
    #cdnOverlay .cdn-cpo-alloc-row__sub {
      font-size: 11px;
      color: var(--ds-text-secondary);
    }
    #cdnOverlay .cdn-cpo-alloc-row .cdn-cpo-qty {
      font-size: 12px;
      min-width: 0;
    }
    #cdnOverlay .cdn-cpo-empty {
      margin: 0 14px 14px;
      padding: 14px 12px;
      font-size: 12px;
      line-height: 1.45;
      text-align: center;
      color: var(--ds-text-secondary);
      border: 1px dashed color-mix(in srgb, var(--ds-border) 80%, transparent);
      border-radius: 8px;
    }
    #cdnOverlay .cdn-cpo-empty.hidden {
      display: none !important;
    }
    #cdnOverlay .cdn-inventory-hint .insight-panel {
      border-radius: 10px;
      border: 1px solid var(--ds-border);
      overflow: hidden;
    }
    #cdnOverlay .insight-col-wh {
      min-width: 5.5rem;
      white-space: nowrap;
    }
    #cdnOverlay .cdn-file-input-hidden {
      position: absolute;
      width: 0;
      height: 0;
      opacity: 0;
      overflow: hidden;
      pointer-events: none;
    }
    #cdnOverlay .cdn-upload-zone {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 6px;
      min-height: 120px;
      padding: 20px 16px;
      border: 2px dashed color-mix(in srgb, var(--ds-border) 85%, var(--ds-accent) 15%);
      border-radius: 10px;
      background: color-mix(in srgb, var(--ds-bg-surface) 92%, var(--ds-accent) 8%);
      cursor: pointer;
      transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
      text-align: center;
    }
    #cdnOverlay .cdn-upload-zone:hover,
    #cdnOverlay .cdn-upload-zone:focus-visible {
      border-color: var(--ds-accent);
      background: color-mix(in srgb, var(--ds-bg-surface) 88%, var(--ds-accent) 12%);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-accent) 18%, transparent);
      outline: none;
    }
    #cdnOverlay .cdn-upload-zone--drag {
      border-color: var(--ds-accent);
      background: color-mix(in srgb, var(--ds-bg-surface) 82%, var(--ds-accent) 18%);
    }
    #cdnOverlay .cdn-upload-zone--done {
      min-height: 88px;
      border-style: solid;
      border-color: color-mix(in srgb, var(--ds-accent) 45%, var(--ds-border));
    }
    #cdnOverlay .cdn-upload-zone.hidden {
      display: none !important;
    }
    #cdnOverlay .cdn-upload-done {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 10px 14px;
      padding: 14px 16px;
      border: 1px solid color-mix(in srgb, var(--ds-accent) 35%, var(--ds-border));
      border-radius: 10px;
      background: color-mix(in srgb, var(--ds-bg-surface) 88%, #22c55e 12%);
    }
    #cdnOverlay .cdn-upload-done__icon {
      font-size: 22px;
      color: #16a34a;
    }
    #cdnOverlay .cdn-upload-done__meta {
      flex: 1 1 auto;
      min-width: 0;
    }
    #cdnOverlay .cdn-upload-done__title {
      font-size: 13px;
      font-weight: 600;
      color: var(--ds-text);
    }
    #cdnOverlay .cdn-upload-done__name {
      font-size: 12px;
      color: var(--ds-text-secondary);
      word-break: break-all;
      margin-top: 2px;
    }
    #cdnOverlay .cdn-upload-done__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    #cdnOverlay .cdn-upload-zone__icon {
      font-size: 28px;
      color: var(--ds-accent);
      opacity: 0.9;
    }
    #cdnOverlay .cdn-upload-zone__title {
      font-size: 14px;
      font-weight: 600;
      color: var(--ds-text);
    }
    #cdnOverlay .cdn-upload-zone__sub {
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    #cdnOverlay .cdn-upload-zone__name {
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-accent);
      margin-top: 4px;
      word-break: break-all;
    }
    #cdnOverlay .cdn-attachment-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 10px;
    }
    #cdnOverlay .cdn-ocr-hint {
      margin: 0 14px 10px;
      padding: 10px 12px;
      font-size: 13px;
      line-height: 1.45;
      border-radius: 8px;
      border: 1px solid transparent;
    }
    #cdnOverlay .cdn-ocr-hint.hidden {
      display: none;
    }
    #cdnOverlay .cdn-ocr-hint--loading {
      color: #1e40af;
      background: #eff6ff;
      border-color: #bfdbfe;
    }
    #cdnOverlay .cdn-ocr-hint--ok {
      color: #166534;
      background: #f0fdf4;
      border-color: #bbf7d0;
    }
    #cdnOverlay .cdn-ocr-hint--error {
      color: #991b1b;
      background: #fef2f2;
      border-color: #fecaca;
    }
    #cdnOverlay .form-textarea {
      min-height: 64px;
      resize: vertical;
    }

    .po-detail-field__label {
      font-size: 11px;
      color: var(--ds-text-secondary);
    }
    .po-detail-field__value {
      font-size: 13px;
      font-weight: 500;
      word-break: break-word;
    }
    .po-detail-remarks {
      margin: 0;
      padding: 12px 14px;
      white-space: pre-wrap;
      line-height: 1.55;
      color: var(--ds-text);
    }
    .po-detail-att-list {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      padding: 12px 14px;
    }
    .po-detail-att-link {
      display: inline-block;
      max-width: 100%;
      padding: 4px 10px;
      border-radius: 8px;
      border: 1px solid color-mix(in srgb, var(--primary, #4f46e5) 25%, var(--ds-border));
      background: color-mix(in srgb, var(--primary-light, #eef2ff) 50%, var(--ds-bg-surface));
      font-size: 12px;
      color: var(--primary-dark, #3730a3);
      word-break: break-all;
      text-decoration: none;
    }
    .po-detail-att-link:hover {
      background: color-mix(in srgb, var(--primary-light, #eef2ff) 80%, var(--ds-bg-surface));
    }
    .po-detail-items-wrap {
      padding: 0 8px 8px;
    }
    .po-detail-items-table th.num,
    .po-detail-items-table td.num {
      text-align: right;
      font-variant-numeric: tabular-nums;
    }
    .po-detail-items-table td.po-detail-items-total {
      font-weight: 600;
    }
    .po-detail-empty {
      text-align: center;
      padding: 24px 12px;
      color: var(--ds-text-secondary);
    }

    /* 财务 / 业务单据详情（审批弹窗，与 po-detail 同体系） */
    .doc-detail {
      display: flex;
      flex-direction: column;
      gap: 14px;
      font-size: 13px;
      color: var(--ds-text);
    }
    .doc-detail-section {
      border: 1px solid var(--ds-border);
      border-radius: 12px;
      background: var(--ds-bg-surface);
      overflow: hidden;
    }
    .doc-detail-section--wide {
      grid-column: 1 / -1;
    }
    .doc-detail-section__title {
      margin: 0;
      padding: 10px 14px;
      font-size: 13px;
      font-weight: 700;
      border-bottom: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
    }
    .doc-detail-section__head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 8px 12px;
      border-bottom: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
    }
    .doc-detail-section__head .doc-detail-section__title {
      flex: 1 1 auto;
      min-width: 0;
      padding: 10px 0 10px 14px;
      border-bottom: 0;
      background: transparent;
    }
    .doc-detail-section__toolbar {
      flex: 0 0 auto;
      padding: 6px 14px 6px 0;
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 10px 16px;
      padding: 10px 14px;
      border-bottom: 1px solid var(--ds-border);
      background: color-mix(in srgb, var(--ds-bg-surface-raised) 88%, var(--ds-warning-bg, #fef3c7) 12%);
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary__flow {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 10px;
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary__chip {
      display: inline-flex;
      flex-direction: column;
      gap: 2px;
      min-width: 4.5rem;
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary__chip-label {
      font-size: 11px;
      color: var(--ds-text-muted);
      line-height: 1.2;
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary__chip-val {
      font-size: 13px;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      line-height: 1.25;
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary__chip--emph .receipt-variance-summary__chip-val {
      color: var(--ds-primary, #0f766e);
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary__chip--warn .receipt-variance-summary__chip-val {
      color: var(--ds-warning-text, #b45309);
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary__arrow {
      color: var(--ds-text-muted);
      font-size: 12px;
      line-height: 1;
    }
    .doc-detail-section--receipt-variance .receipt-variance-summary__meta {
      font-size: 12px;
      color: var(--ds-text-muted);
      font-variant-numeric: tabular-nums;
    }
    .doc-detail-section--receipt-variance .receipt-variance-lines {
      display: flex;
      flex-direction: column;
      gap: 8px;
      padding: 10px 14px 12px;
      overflow-x: visible;
    }
    .doc-detail-section--receipt-variance .receipt-variance-line {
      position: relative;
      padding: 10px 12px;
      border: 1px solid var(--ds-border);
      border-radius: 8px;
      background: var(--ds-bg-surface);
    }
    .doc-detail-section--receipt-variance .receipt-variance-line__idx {
      position: absolute;
      top: 8px;
      right: 10px;
      font-size: 11px;
      color: var(--ds-text-muted);
      font-variant-numeric: tabular-nums;
    }
    .doc-detail-section--receipt-variance .receipt-variance-line__name {
      font-size: 13px;
      font-weight: 600;
      line-height: 1.35;
      word-break: break-word;
      padding-right: 1.5rem;
      margin-bottom: 8px;
    }
    .doc-detail-section--receipt-variance .receipt-variance-line__stats {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 4px 8px;
    }
    .doc-detail-section--receipt-variance .rv-stat {
      display: inline-flex;
      align-items: baseline;
      gap: 3px;
      font-size: 12px;
      line-height: 1.3;
      white-space: nowrap;
    }
    .doc-detail-section--receipt-variance .rv-stat__k {
      color: var(--ds-text-muted);
      font-size: 11px;
    }
    .doc-detail-section--receipt-variance .rv-stat__v {
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }
    .doc-detail-section--receipt-variance .rv-stat--sep {
      color: var(--ds-text-muted);
      font-size: 11px;
    }
    .doc-detail-section--receipt-variance .rv-stat--warn .rv-stat__v {
      color: var(--ds-warning-text, #b45309);
    }
    .doc-detail-section--receipt-variance .rv-stat--amt {
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      padding: 2px 6px;
      border-radius: 4px;
      background: color-mix(in srgb, var(--ds-warning-bg, #fef3c7) 55%, transparent);
    }
    .doc-detail-section--receipt-variance .rv-stat--amt-short {
      color: var(--ds-warning-text, #b45309);
    }
    .doc-detail-section--receipt-variance .receipt-variance-line__reason {
      margin-top: 8px;
      font-size: 12px;
      color: var(--ds-text-muted);
      line-height: 1.35;
      word-break: break-word;
    }
    .doc-detail-section--receipt-variance .receipt-variance-footnote {
      margin: 0;
      padding: 8px 14px 10px;
      font-size: 12px;
      color: var(--ds-text-muted);
      border-top: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
    }
    .doc-detail-invoice-summary {
      padding: 10px 14px 0;
    }
    .doc-detail-invoice-stats {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }
    @media (max-width: 640px) {
      .doc-detail-invoice-stats {
        grid-template-columns: 1fr;
      }
    }
    .doc-detail-invoice-stat {
      border: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
      border-radius: 8px;
      background: var(--ds-bg-surface);
      padding: 8px 10px;
      min-width: 0;
    }
    .doc-detail-invoice-stat--status {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .doc-detail-invoice-stat__label {
      display: block;
      font-size: 11px;
      color: var(--ds-text-secondary);
      margin-bottom: 4px;
    }
    .doc-detail-invoice-stat__value {
      display: block;
      font-size: 14px;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      line-height: 1.3;
      word-break: break-word;
    }
    .doc-detail-invoice-stat__value--status {
      font-size: inherit;
      font-weight: inherit;
    }
    .doc-detail-invoice-stat__value--status .status-badge {
      font-size: 11px;
      padding: 2px 8px;
      max-width: 100%;
      white-space: normal;
      text-align: left;
      line-height: 1.35;
    }
    .doc-detail-items-wrap--invoice {
      margin-top: 0;
      padding: 10px 14px 12px;
    }
    .doc-detail-invoice-no {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 12px;
      word-break: break-all;
    }
    .doc-detail-invoice-empty {
      margin: 0;
      padding: 8px 14px 12px;
      font-size: 12px;
      color: var(--ds-text-secondary);
      line-height: 1.45;
    }
    #cashier-payment .approval-row-actions {
      justify-content: flex-start;
    }
    .doc-detail-section-pair {
      display: grid;
      grid-template-columns: 1fr;
      gap: 14px;
    }
    @media (min-width: 900px) {
      .doc-detail-section-pair {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
      }
    }
    .doc-detail-hero {
      border: 1px solid var(--ds-border);
      border-radius: 12px;
      background: linear-gradient(135deg, var(--ds-bg-surface) 0%, color-mix(in srgb, var(--primary-light, #e0e7ff) 16%, var(--ds-bg-surface)) 100%);
      padding: 14px 16px;
    }
    .doc-detail-hero__top {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      justify-content: space-between;
      gap: 14px;
    }
    .doc-detail-hero__meta {
      display: flex;
      flex-direction: column;
      gap: 8px;
      min-width: 0;
      flex: 1 1 12rem;
    }
    .doc-detail-hero__identity {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 10px;
      min-width: 0;
    }
    .doc-detail-hero__type {
      font-size: 12px;
      font-weight: 700;
      color: var(--primary-dark, #3730a3);
      flex-shrink: 0;
    }
    .doc-detail-hero__number {
      font-size: 15px;
      font-weight: 700;
      color: var(--ds-text);
      font-variant-numeric: tabular-nums;
      word-break: break-all;
    }
    .doc-detail-hero__id {
      font-size: 11px;
      color: var(--ds-text-secondary);
      font-variant-numeric: tabular-nums;
      flex-shrink: 0;
    }
    .doc-detail-hero__status-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
    }
    .doc-detail-hero__gate-row {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
    }
    .doc-detail-hero__amounts {
      text-align: right;
      flex-shrink: 0;
    }
    .doc-detail-hero__amount-label {
      display: block;
      font-size: 11px;
      color: var(--ds-text-secondary);
      margin-bottom: 2px;
    }
    .doc-detail-hero__amount {
      display: block;
      font-size: 1.35rem;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      line-height: 1.2;
    }
    .doc-detail-hero__amount-row {
      display: flex;
      gap: 8px;
      justify-content: flex-end;
      margin-top: 8px;
    }
    .doc-detail-mini-amt {
      border: 1px solid var(--ds-border);
      border-radius: 8px;
      background: var(--ds-bg-surface);
      padding: 6px 10px;
      text-align: right;
      min-width: 4.5rem;
    }
    .doc-detail-mini-amt__label {
      display: block;
      font-size: 10px;
      color: var(--ds-text-secondary);
    }
    .doc-detail-mini-amt__value {
      display: block;
      font-size: 12px;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
    }
    .doc-detail-gate-strip {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px 10px;
      padding: 6px 10px;
      border-radius: 8px;
      border: 1px solid color-mix(in srgb, var(--ds-border) 80%, transparent);
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 35%, var(--ds-bg-surface));
    }
    .doc-detail-gate-strip__label {
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-text-secondary);
      flex-shrink: 0;
    }
    .doc-detail-gate-strip .status-badge {
      flex-shrink: 0;
    }
    .doc-detail-kv-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0 16px;
      padding: 4px 14px 12px;
    }
    @media (max-width: 640px) {
      .doc-detail-kv-grid {
        grid-template-columns: 1fr;
      }
    }
    .doc-detail-kv-row {
      display: flex;
      gap: 10px;
      padding: 7px 0;
      border-bottom: 1px solid color-mix(in srgb, var(--ds-border) 55%, transparent);
      line-height: 1.45;
    }
    .doc-detail-kv-row:last-child {
      border-bottom: 0;
    }
    .doc-detail-kv-row--wide {
      grid-column: 1 / -1;
    }
    .doc-detail-kv-row__label {
      flex: 0 0 5.5rem;
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .doc-detail-kv-grid--acceptance-pricing .doc-detail-kv-row__label {
      flex: 0 0 8.75rem;
      white-space: nowrap;
    }
    .doc-detail-kv-grid--acceptance-pricing .doc-detail-kv-row__value {
      white-space: nowrap;
      word-break: normal;
    }
    .doc-detail-kv-grid--acceptance-pricing .doc-detail-acceptance-discount {
      display: flex;
      flex-direction: column;
      gap: 2px;
      white-space: normal;
    }
    .doc-detail-acceptance-discount__row {
      display: flex;
      align-items: baseline;
      gap: 8px;
      font-size: 13px;
      line-height: 1.4;
    }
    .doc-detail-acceptance-discount__key {
      flex: 0 0 2.25rem;
      font-size: 12px;
      color: var(--ds-text-secondary);
    }
    .doc-detail-acceptance-discount__amt {
      color: var(--ds-warning-emphasis, #b45309);
      font-weight: 600;
    }
    .doc-detail-acceptance-discount--none {
      color: var(--ds-text-secondary);
    }
    .doc-detail-kv-row__value {
      flex: 1;
      min-width: 0;
      font-size: 13px;
      font-weight: 500;
      word-break: break-word;
      white-space: pre-wrap;
      text-align: left;
    }
    .doc-detail-kv-row--subhead {
      padding-top: 4px;
      border-bottom: 0;
    }
    .doc-detail-kv-row--subhead .doc-detail-kv-row__value {
      font-size: 12px;
      font-weight: 700;
      color: var(--ds-text-secondary);
    }
    .doc-detail-kv-row--subhead + .doc-detail-kv-row {
      border-top: 0;
    }
    .doc-detail-summary {
      margin: 0;
      padding: 12px 14px;
      white-space: pre-wrap;
      line-height: 1.55;
      color: var(--ds-text);
      background: color-mix(in srgb, var(--ds-bg-surface-sunken) 40%, var(--ds-bg-surface));
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 50%, transparent);
    }
    .doc-detail-att-list {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      padding: 12px 14px;
    }
    .doc-detail-att-link {
      display: inline-block;
      max-width: 100%;
      padding: 4px 10px;
      border-radius: 8px;
      border: 1px solid color-mix(in srgb, var(--primary, #4f46e5) 25%, var(--ds-border));
      background: color-mix(in srgb, var(--primary-light, #eef2ff) 50%, var(--ds-bg-surface));
      font-size: 12px;
      color: var(--primary-dark, #3730a3);
      word-break: break-all;
      text-decoration: none;
    }
    button.doc-detail-att-link {
      cursor: pointer;
      font: inherit;
      line-height: inherit;
      text-align: left;
    }
    .doc-detail-kv-row__value .doc-detail-att-link {
      margin: 0 8px 6px 0;
    }
    .doc-detail-att-link:hover {
      background: color-mix(in srgb, var(--primary-light, #eef2ff) 80%, var(--ds-bg-surface));
    }
    .doc-detail-items-wrap {
      padding: 0 8px 8px;
    }
    .modal.approval-doc-detail-overlay .doc-detail-items-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .modal.approval-doc-detail-overlay .approval-bill-lines-table {
      min-width: 0;
      width: 100%;
      table-layout: fixed;
    }
    .modal.approval-doc-detail-overlay .approval-bill-lines-table th:nth-child(1),
    .modal.approval-doc-detail-overlay .approval-bill-lines-table td:nth-child(1) {
      width: 2rem;
    }
    .modal.approval-doc-detail-overlay .approval-bill-lines-table th:nth-child(3),
    .modal.approval-doc-detail-overlay .approval-bill-lines-table td:nth-child(3) {
      width: 5.5rem;
    }
    .modal.approval-doc-detail-overlay .approval-bill-lines-table th:nth-child(4),
    .modal.approval-doc-detail-overlay .approval-bill-lines-table td:nth-child(4) {
      width: 3.5rem;
    }
    .modal.approval-doc-detail-overlay .approval-bill-lines-table th:nth-child(5),
    .modal.approval-doc-detail-overlay .approval-bill-lines-table td:nth-child(5),
    .modal.approval-doc-detail-overlay .approval-bill-lines-table th:nth-child(6),
    .modal.approval-doc-detail-overlay .approval-bill-lines-table td:nth-child(6) {
      width: 6.5rem;
    }
    .modal.approval-doc-detail-overlay .approval-bill-lines-table td:nth-child(2) {
      word-break: break-word;
    }
    .modal.approval-doc-detail-overlay .po-detail-items-wrap {
      overflow-x: visible;
    }
    .modal.approval-doc-detail-overlay .po-detail-items-table {
      min-width: 0;
      width: 100%;
      table-layout: fixed;
    }
    .modal.approval-doc-detail-overlay .po-detail-items-table th:nth-child(2),
    .modal.approval-doc-detail-overlay .po-detail-items-table td:nth-child(2) {
      width: 5.5rem;
    }
    .modal.approval-doc-detail-overlay .po-detail-items-table th:nth-child(3),
    .modal.approval-doc-detail-overlay .po-detail-items-table td:nth-child(3) {
      width: 3.5rem;
    }
    .modal.approval-doc-detail-overlay .po-detail-items-table th:nth-child(4),
    .modal.approval-doc-detail-overlay .po-detail-items-table td:nth-child(4),
    .modal.approval-doc-detail-overlay .po-detail-items-table th:nth-child(5),
    .modal.approval-doc-detail-overlay .po-detail-items-table td:nth-child(5) {
      width: 6.5rem;
    }
    .modal.approval-doc-detail-overlay .po-detail-items-table td:nth-child(1) {
      word-break: break-word;
    }
    .doc-detail-items-table td.doc-detail-items-discount {
      color: var(--ds-warning-emphasis, #b45309);
      font-weight: 600;
    }
    .doc-detail-items-table tr.doc-detail-items-pricing-row td {
      font-size: 12px;
      padding-top: 4px;
      padding-bottom: 4px;
    }
    .doc-detail-items-table th.num,
    .doc-detail-items-table td.num,
    .po-detail-items-table th.num,
    .po-detail-items-table td.num {
      text-align: right;
      font-variant-numeric: tabular-nums;
    }
    .doc-detail-items-table td.doc-detail-items-total,
    .po-detail-items-table td.po-detail-items-total {
      font-weight: 600;
    }
    .doc-detail-items-table .doc-detail-items-extra {
      font-size: 11px;
      color: var(--ds-text-secondary);
      margin-top: 2px;
    }
    .doc-detail-bc__hint {
      margin: 0;
      padding: 0 14px 8px;
      font-size: 11px;
      line-height: 1.45;
      color: var(--ds-text-secondary);
      border-bottom: 1px solid var(--ds-border);
      background: var(--ds-bg-surface-raised);
    }
    .doc-detail-bc__body {
      padding: 8px 14px 12px;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .doc-detail-bc__line {
      display: flex;
      flex-wrap: wrap;
      gap: 4px 8px;
      font-size: 12px;
      line-height: 1.45;
    }
    .doc-detail-bc__label {
      color: var(--ds-text-secondary);
      flex: 0 0 auto;
    }
    .doc-detail-bc__label::after {
      content: '：';
    }
    .doc-detail-bc__value {
      color: var(--ds-text);
      min-width: 0;
      word-break: break-word;
    }
    .doc-detail-bc__link-row {
      font-size: 12px;
      line-height: 1.45;
    }
    .doc-detail-bc__link-row a {
      color: var(--primary, #4f46e5);
      text-decoration: underline;
    }
    .doc-detail-bc-block {
      margin-top: 6px;
      padding-top: 6px;
      border-top: 1px solid color-mix(in srgb, var(--ds-border) 70%, transparent);
      display: flex;
      flex-direction: column;
      gap: 4px;
    }
    .doc-detail-bc__body-inner {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .doc-detail-bc__section-title {
      font-size: 11px;
      font-weight: 700;
      color: var(--ds-text-secondary);
      letter-spacing: 0.02em;
    }
    .doc-detail-error {
      border: 1px solid #fecaca;
      border-radius: 10px;
      background: #fef2f2;
      padding: 12px 14px;
      font-size: 13px;
      color: #991b1b;
    }

    /* 品控管理：来源单据详情弹窗（原料入库 / 销售出库） */
    .qc-source-detail-modal.approval-doc-detail-overlay {
      z-index: 115;
    }
    .qc-source-detail-body .doc-detail-hero__id {
      font-size: 1.05rem;
      font-weight: 700;
      color: var(--ds-text);
      letter-spacing: 0.01em;
    }
    .qc-source-hero__status {
      align-self: flex-start;
      margin-top: 4px;
    }
    .qc-source-detail-footer {
      flex-shrink: 0;
      border-top: 1px solid var(--ds-border);
      background: var(--ds-bg-surface);
      gap: 10px;
    }
    .qc-source-detail-body .doc-detail-items-table {
      min-width: 320px;
    }
    .qc-source-detail-body .doc-detail-items-table th,
    .qc-source-detail-body .doc-detail-items-table td {
      white-space: normal;
      word-break: break-word;
    }

    /* 采购主批次列表：行点击查看 */
    #purchaseOrdersBody tr.po-list-row {
      cursor: pointer;
    }
    #purchaseOrdersBody tr.po-list-row:hover {
      background: color-mix(in srgb, var(--primary-light, #eef2ff) 35%, var(--ds-bg-surface));
    }
    #purchaseOrdersBody tr.po-list-row:hover td {
      background: transparent;
    }
    #purchaseOrdersBody .po-list-row-actions {
      cursor: default;
    }

    /* 工厂/仓储/销售等业务页：移动端表格横向顺滑滑动、列表内按钮略增大便于触摸 */
    @media (max-width: 768px) {
      .page-ops-shell .table-container,
      .page-ops-shell .table-scroll-y {
        -webkit-overflow-scrolling: touch;
      }
      .page-ops-shell .table td .btn.btn-sm {
        min-height: 40px;
        padding: 8px 14px;
      }
    }

    /* 加工生产：三步开班 + 吸底选料栏 */
    .production-steps {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0.5rem;
    }
    @media (min-width: 640px) {
      .production-steps {
        grid-template-columns: repeat(3, 1fr);
      }
    }
    .production-step {
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      background: rgb(255 255 255 / 0.85);
      padding: 0.625rem 0.75rem;
      min-height: 4.5rem;
      display: flex;
      flex-direction: column;
      gap: 0.25rem;
    }
    .production-step__label {
      font-size: 0.65rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: rgb(100 116 139);
    }
    .production-step__status {
      font-size: 0.8125rem;
      font-weight: 600;
      color: rgb(15 23 42);
      line-height: 1.35;
    }
    .production-step__action {
      margin-top: auto;
      padding-top: 0.25rem;
    }
    .production-step--done {
      border-color: rgb(187 247 208);
      background: rgb(240 253 244 / 0.9);
    }
    .production-step--done .production-step__status {
      color: rgb(21 128 61);
    }
    .production-step--warn {
      border-color: rgb(253 230 138);
      background: rgb(255 251 235 / 0.95);
    }
    .production-step--warn .production-step__status {
      color: rgb(180 83 9);
    }
    .production-step--idle .production-step__status {
      color: rgb(100 116 139);
      font-weight: 500;
    }
    .production-rhythm-meta {
      margin-top: 0.5rem;
      font-size: 0.75rem;
      color: rgb(100 116 139);
    }
    .production-rhythm-panel--compact .production-rhythm-panel__head {
      margin-bottom: 0;
    }
    .production-page-body {
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }
    /* 加工生产：列表区壳内满宽，办理区再收窄 */
    #production .pt-flow-hint,
    #production .fp-step-columns,
    #production .pt-fp-step-columns,
    #production .pt-period-bar,
    #production .pt-dash,
    #production #material-issues-tab {
      width: 100%;
      max-width: none;
    }
    #production .pt-main {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      flex: 1;
      min-height: 0;
      max-width: none;
      margin-left: 0;
      margin-right: 0;
    }
    #production .pt-main > .pt-empty-state,
    #production .pt-main > .pt-work-body,
    #production .pt-step-work {
      width: 100%;
      max-width: none;
      margin-left: 0;
      margin-right: 0;
    }
    #production .fp-step-columns.pt-fp-step-columns {
      grid-template-columns: minmax(13.5rem, 0.82fr) minmax(15rem, 1.1fr) minmax(17rem, 1.38fr);
    }
    #production .pt-new-task-actions--compact {
      flex-shrink: 0;
      margin-bottom: 0.5rem;
    }
    #production .pt-new-task-actions--compact .btn {
      font-size: 0.8125rem;
      padding-top: 0.35rem;
      padding-bottom: 0.35rem;
    }
    #production .pt-step1-tasks {
      flex: 1;
      min-height: 0;
    }
    #production .pt-step1-tasks .pt-task-pending-list {
      flex: 1;
      min-height: 8rem;
      max-height: none;
      margin-top: 0;
      overflow-y: auto;
    }
    #production .pt-step-col--1 .fp-step-col__title,
    #production .pt-step-col--1 .fp-step-col__desc {
      font-size: inherit;
    }
    #production .pt-step-col--1 .fp-step-col__desc {
      font-size: 0.6875rem;
    }
    #production .pt-issue-inline-gate {
      padding: 0.75rem 0.5rem;
      margin-bottom: 0.5rem;
      text-align: center;
      font-size: 0.8125rem;
      color: rgb(100 116 139);
      background: rgb(248 250 252);
      border: 1px dashed rgb(203 213 225);
      border-radius: 0.375rem;
      line-height: 1.45;
    }
    #production .pt-step-work {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }
    #production .pt-step-work--issue {
      gap: 0;
    }
    #production .pt-step-col--3 .fp-step-col__body {
      min-width: 0;
    }
    #production .pt-step-col__body--issue {
      display: flex;
      flex-direction: column;
      min-height: 0;
      padding: 0.55rem;
    }
    #production .pt-work-footer .pt-close-panel {
      padding: 0.55rem 0.6rem;
    }
    #production .pt-work-footer .pt-close-panel__hint {
      font-size: 0.75rem;
      line-height: 1.4;
    }
    #production .pt-work-task-bar {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.5rem;
      flex-shrink: 0;
      margin-bottom: 0.5rem;
      padding-bottom: 0.5rem;
      border-bottom: 1px solid rgb(241 245 249);
    }
    #production .pt-work-task-bar__text {
      min-width: 0;
      flex: 1;
    }
    #production .pt-work-pane--issue {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
    }
    #production .pt-work-footer {
      flex-shrink: 0;
      margin-top: auto;
      padding-top: 0.65rem;
      border-top: 1px solid rgb(241 245 249);
    }
    #production .pt-work-footer .pt-close-panel {
      margin: 0;
    }
    .pt-flow-hint {
      margin: 0 0 0.45rem;
      padding: 0.45rem 0.65rem;
      font-size: 0.8125rem;
      color: rgb(71 85 105);
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      line-height: 1.45;
    }
    .pt-workflow-strip {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem 0.75rem;
      margin: 0 0 0.75rem;
      padding: 0.55rem 0.75rem;
      background: rgb(255 255 255);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      font-size: 0.8125rem;
    }
    .pt-workflow-strip__label {
      flex-shrink: 0;
      font-size: 0.75rem;
      font-weight: 600;
      color: rgb(100 116 139);
      letter-spacing: 0.02em;
    }
    .pt-workflow-strip__steps {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem;
      flex: 1;
      min-width: 0;
    }
    .pt-workflow-strip__meta {
      flex-shrink: 0;
      font-size: 0.6875rem;
      color: rgb(148 163 184);
    }
    .pt-workflow-strip__step {
      padding: 0.22rem 0.6rem;
      border-radius: 9999px;
      color: rgb(100 116 139);
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      font-weight: 500;
      white-space: nowrap;
    }
    .pt-workflow-strip__step--active {
      color: rgb(30 64 175);
      background: rgb(255 255 255);
      border-color: rgb(59 130 246);
      box-shadow: 0 0 0 2px rgb(59 130 246 / 0.15);
    }
    .pt-workflow-strip__step--done {
      color: rgb(21 128 61);
      border-color: rgb(187 247 208);
      background: rgb(240 253 244);
    }
    .pt-workflow-strip__arrow {
      display: none;
    }
    .pt-work-columns {
      display: grid;
      grid-template-columns: minmax(16rem, 0.95fr) minmax(22rem, 1.45fr);
      gap: 0.75rem;
      align-items: stretch;
      min-width: 0;
      min-height: calc(100vh - 10.5rem);
      max-height: calc(100vh - 8rem);
      height: calc(100vh - 8rem);
    }
    @media (max-width: 1024px) {
      .pt-work-columns {
        grid-template-columns: 1fr;
        height: auto;
        max-height: none;
        min-height: 0;
      }
    }
    .pt-work-col {
      display: flex;
      flex-direction: column;
      min-width: 0;
      min-height: 0;
      height: 100%;
      background: rgb(255 255 255);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      overflow: hidden;
    }
    .pt-work-col__head {
      flex-shrink: 0;
      padding: 0.6rem 0.7rem;
      border-bottom: 1px solid rgb(241 245 249);
      background: rgb(248 250 252);
    }
    .pt-work-col__head--main {
      border-left: 3px solid rgb(21 128 61);
    }
    .pt-work-col__head-row {
      display: flex;
      align-items: flex-start;
      gap: 0.55rem;
    }
    .pt-work-col__head-text {
      flex: 1;
      min-width: 0;
    }
    .pt-work-col__num {
      flex-shrink: 0;
      width: 1.5rem;
      height: 1.5rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 9999px;
      background: rgb(71 85 105);
      color: rgb(255 255 255);
      font-size: 0.75rem;
      font-weight: 700;
    }
    .pt-work-col__title {
      margin: 0;
      font-size: 0.9375rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .pt-work-col__desc {
      margin: 0.15rem 0 0;
      font-size: 0.75rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .pt-work-col__body {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      padding: 0.65rem;
      overflow: hidden;
    }
    .pt-work-col__body--stack {
      gap: 0.65rem;
    }
    .pt-new-task-actions {
      display: flex;
      flex-direction: column;
      gap: 0.35rem;
      flex-shrink: 0;
    }
    .pt-pending-board--below-new {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      overflow: hidden;
    }
    .pt-pending-board--below-new .pt-task-pending-list {
      flex: 1;
      min-height: 10rem;
      max-height: none;
      margin-top: 0;
      overflow-y: auto;
    }
    #production .pt-pending-item--done {
      opacity: 0.72;
      cursor: default;
    }
    #production .pt-pending-item--done:hover {
      border-color: rgb(226 232 240);
      background: rgb(248 250 252);
    }
    #production .pt-pending-item {
      align-items: flex-start;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 0.45rem 0.5rem;
      padding: 0.5rem 0.55rem;
      overflow: hidden;
    }
    #production .pt-pending-item .fp-pending-item__status {
      min-width: 0;
      flex-shrink: 0;
      padding-top: 0.05rem;
    }
    #production .pt-pending-item .fp-pending-item__body {
      min-width: 0;
      overflow: hidden;
    }
    #production .pt-pending-item .fp-pending-item__no {
      font-size: 0.75rem;
      line-height: 1.3;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    #production .pt-pending-item .pt-pending-item__meta {
      display: flex;
      flex-direction: column;
      gap: 0.1rem;
      margin-top: 0.18rem;
      overflow: hidden;
    }
    #production .pt-pending-item .pt-pending-item__line {
      display: block;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    #production .pt-pending-item__progress {
      margin-top: 0.2rem;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    #production .pt-task-pending-list {
      gap: 0.4rem;
    }
    .pt-pending-board--below-new .pt-task-table-wrap {
      flex: 1;
      min-height: 8rem;
      max-height: none;
    }
    .pt-empty-state--col {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      min-height: 12rem;
    }
    .pt-page-tabs {
      display: inline-flex;
      gap: 0.25rem;
      padding: 0.2rem;
      margin-left: auto;
      flex-shrink: 0;
      border-radius: 0.5rem;
      border: 1px solid var(--header-chrome-segment-border);
      background: var(--header-chrome-segment-bg);
    }
    .pt-page-tab {
      border: none;
      background: transparent;
      color: var(--header-chrome-tab-idle);
      font-size: 0.8125rem;
      font-weight: 600;
      padding: 0.4rem 0.85rem;
      border-radius: 0.375rem;
      cursor: pointer;
      line-height: 1.3;
    }
    .pt-page-tab:hover {
      color: var(--header-chrome-tab-idle);
      background: var(--header-chrome-tab-idle-hover);
    }
    .pt-page-tab--active {
      background: var(--header-chrome-tab-active-bg);
      color: var(--header-chrome-tab-active-fg);
      box-shadow: none;
    }
    .pt-page-tab--active:hover {
      background: var(--header-chrome-tab-active-bg);
      color: var(--header-chrome-tab-active-fg);
      filter: brightness(0.97);
    }
    #production .card-header__top {
      flex-wrap: wrap;
      gap: 0.5rem 0.75rem;
      align-items: center;
    }
    #production .card-header .fp-help-tip {
      color: var(--header-bar-subtle, rgba(255, 255, 255, 0.88));
      font-size: 1.15rem;
      padding: 0.2rem 0.35rem;
    }
    #production .card-header .fp-help-tip:hover,
    #production .card-header .fp-help-tip:focus-visible {
      color: var(--header-bar-fg, #f8fafc);
      background: var(--header-chrome-outline-hover-bg);
    }
    .pt-stepper {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 0.35rem;
      margin-bottom: 0.65rem;
    }
    @media (max-width: 900px) {
      .pt-stepper {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }
    .pt-stepper__item {
      display: flex;
      align-items: flex-start;
      gap: 0.35rem;
      padding: 0.45rem 0.5rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(248 250 252);
    }
    .pt-stepper__num {
      flex-shrink: 0;
      width: 1.25rem;
      height: 1.25rem;
      border-radius: 999px;
      background: rgb(219 234 254);
      color: rgb(29 78 216);
      font-size: 0.6875rem;
      font-weight: 700;
      line-height: 1.25rem;
      text-align: center;
    }
    .pt-stepper__text {
      display: flex;
      flex-direction: column;
      gap: 0.05rem;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.3;
    }
    .pt-stepper__text strong {
      font-size: 0.75rem;
      color: rgb(15 23 42);
    }
    .pt-period-bar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      margin-bottom: 0.65rem;
      padding: 0.55rem 0.65rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(255 255 255);
    }
    .pt-period-bar__text {
      font-size: 0.8125rem;
      color: rgb(51 65 85);
      flex: 1;
      min-width: 0;
    }
    .pt-period-bar__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem;
      flex-shrink: 0;
    }
    .pt-period-close-btn {
      background: rgb(254 240 138);
      border: 1px solid rgb(250 204 21);
      color: rgb(113 63 18);
      font-weight: 600;
    }
    .pt-period-close-btn:hover {
      background: rgb(253 224 71);
    }
    .pt-pending-board {
      margin-bottom: 0.75rem;
      padding: 0.65rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      background: rgb(255 255 255);
    }
    .pt-pending-board__head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .pt-pending-board__title-row {
      display: flex;
      align-items: center;
      gap: 0.35rem;
    }
    .pt-pending-board__title {
      margin: 0;
      font-size: 0.9375rem;
      font-weight: 700;
    }
    .pt-list-toolbar {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
      margin-bottom: 0.5rem;
    }
    .pt-layout {
      display: grid;
      grid-template-columns: minmax(0, 16rem) minmax(0, 1fr);
      gap: 1rem;
      align-items: start;
    }
    @media (max-width: 1024px) {
      .pt-layout {
        grid-template-columns: 1fr;
      }
    }
    .pt-stage--open {
      padding: 0.65rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      border-left: 3px solid rgb(59 130 246);
      background: rgb(255 255 255);
    }
    .pt-stage__head {
      margin-bottom: 0.65rem;
    }
    .pt-stage__head--main {
      margin-bottom: 0.5rem;
      padding: 0.55rem 0.65rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      border-left: 3px solid rgb(21 128 61);
    }
    .pt-stage__badge {
      display: inline-block;
      margin-bottom: 0.25rem;
      padding: 0.1rem 0.45rem;
      border-radius: 9999px;
      font-size: 0.625rem;
      font-weight: 700;
      color: rgb(29 78 216);
      background: rgb(219 234 254);
    }
    .pt-stage__badge--sub {
      color: rgb(51 65 85);
      background: rgb(226 232 240);
    }
    .pt-stage__title {
      margin: 0;
      font-size: 0.9375rem;
      font-weight: 700;
    }
    .pt-sidebar__actions {
      display: flex;
      flex-direction: column;
      gap: 0.35rem;
    }
    .pt-empty-state {
      padding: 1.25rem 1rem;
      border: 1px dashed rgb(209 213 219);
      border-radius: 0.5rem;
      text-align: center;
      color: rgb(100 116 139);
      background: rgb(248 250 252);
    }
    .pt-empty-state__title {
      margin: 0 0 0.35rem;
      font-size: 0.875rem;
      font-weight: 600;
      color: rgb(51 65 85);
    }
    .pt-empty-state__hint {
      margin: 0;
      font-size: 0.75rem;
    }
    .pt-dash-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      margin-bottom: 0.65rem;
    }
    .pt-dash-head__title {
      margin: 0;
      font-size: 0.9375rem;
      font-weight: 700;
    }
    .pt-dash-kpis {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 0.5rem;
      margin-bottom: 0.75rem;
    }
    @media (max-width: 900px) {
      .pt-dash-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }
    .pt-dash-kpi {
      padding: 0.55rem 0.65rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(248 250 252);
    }
    .pt-dash-kpi__label {
      display: block;
      font-size: 0.625rem;
      color: rgb(100 116 139);
      margin-bottom: 0.15rem;
    }
    .pt-dash-kpi__val {
      font-size: 1.125rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .pt-status-pill {
      display: inline-block;
      padding: 0.08rem 0.4rem;
      border-radius: 999px;
      font-size: 0.6875rem;
      font-weight: 600;
    }
    .pt-status-pill--output {
      background: rgb(219 234 254);
      color: rgb(29 78 216);
    }
    .pt-status-pill--issue {
      background: rgb(254 243 199);
      color: rgb(146 64 14);
    }
    .pt-status-pill--warehouse {
      background: rgb(254 249 195);
      color: rgb(161 98 7);
      border: 1px solid rgb(253 224 71);
    }
    .pt-status-pill--close {
      background: rgb(220 252 231);
      color: rgb(21 128 61);
    }
    .pt-status-pill--done {
      background: rgb(243 244 246);
      color: rgb(75 85 99);
    }
    .pt-status-sub {
      display: block;
      margin-top: 0.15rem;
      font-size: 0.625rem;
      color: rgb(100 116 139);
    }
    .pt-task-progress {
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
    }
    .pt-task-cards {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
      gap: 0.5rem;
      margin-top: 0.5rem;
    }
    .pt-task-card {
      padding: 0.65rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      background: rgb(255 255 255);
    }
    .pt-task-card__title {
      font-weight: 600;
      font-size: 0.875rem;
      margin: 0.25rem 0 0.1rem;
    }
    .pt-task-card__meta,
    .pt-task-card__batch {
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      margin-bottom: 0.15rem;
    }
    .pt-task-card-empty {
      grid-column: 1 / -1;
      padding: 1rem;
      text-align: center;
      color: rgb(100 116 139);
      font-size: 0.8125rem;
      border: 1px dashed rgb(209 213 219);
      border-radius: 0.5rem;
    }
    .pt-work-body {
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      background: rgb(255 255 255);
      padding: 0.65rem;
      max-height: min(72vh, 900px);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-height: 0;
    }
    .pt-work-head {
      flex-shrink: 0;
      background: rgb(255 255 255);
      padding-bottom: 0.5rem;
      margin-bottom: 0;
      border-bottom: 1px solid rgb(241 245 249);
    }
    .pt-work-pane {
      flex: 1 1 auto;
      min-height: 0;
      overflow: auto;
      -webkit-overflow-scrolling: touch;
    }
    .pt-work-head__top {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .pt-work-task-title {
      font-size: 0.9375rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .pt-work-task-sub {
      font-size: 0.75rem;
      color: rgb(100 116 139);
      margin-top: 0.15rem;
    }
    .pt-work-nav {
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem;
    }
    .pt-work-nav-btn {
      border: 1px solid rgb(226 232 240);
      background: rgb(248 250 252);
      color: rgb(51 65 85);
      font-size: 0.75rem;
      font-weight: 600;
      padding: 0.3rem 0.55rem;
      border-radius: 999px;
      cursor: pointer;
    }
    .pt-work-nav-btn--active {
      border-color: rgb(59 130 246);
      background: rgb(219 234 254);
      color: rgb(29 78 216);
    }
    .pt-work-nav-btn--disabled {
      opacity: 0.45;
      cursor: not-allowed;
    }
    .pt-close-panel .btn--locked {
      opacity: 0.72;
      box-shadow: none;
    }
    .pt-work-pane .production-output-steps {
      display: none;
    }
    .pt-work-pane .production-pmb-action-bar,
    .pt-work-pane .modal-footer {
      position: sticky;
      bottom: 0;
      z-index: 1;
      margin-top: 0.75rem;
      padding-top: 0.65rem;
      background: rgb(255 255 255);
      border-top: 1px solid rgb(241 245 249);
    }
    #production .pt-step-col--2 .fp-step-col__body {
      padding: 0.35rem 0.3rem;
    }
    #production .pt-step-col--2 .pt-work-task-bar {
      padding-left: 0.1rem;
      padding-right: 0.1rem;
    }
    #production #ptWorkOutputHost > .modal-body {
      padding: 0.15rem 0.08rem 0.4rem;
    }
    #production #ptWorkOutputHost .production-pmb-section {
      padding: 0.5rem 0.45rem;
    }
    #production #ptWorkOutputHost .production-output-summary {
      padding: 0.5rem 0.45rem;
    }
    #production #ptWorkOutputHost .production-pmb-action-bar {
      padding: 0.5rem 0.08rem;
    }
    .pmb-edit-lock-banner {
      margin: 0 0 0.75rem;
      padding: 0.55rem 0.75rem;
      border-radius: 6px;
      font-size: 12px;
      line-height: 1.45;
      color: #92400e;
      background: #fffbeb;
      border: 1px solid #fcd34d;
    }
    .production-pmb--readonly .form-input:disabled,
    .production-pmb--readonly .form-select:disabled {
      background: #f8fafc;
      color: #64748b;
    }
    #production #ptWorkIssueHost > .modal-body {
      padding: 0.15rem 0.08rem 0.4rem;
    }
    .pt-close-panel {
      padding: 0.75rem;
      border: 1px dashed rgb(209 213 219);
      border-radius: 0.5rem;
      background: rgb(248 250 252);
    }
    .pt-close-panel__hint {
      margin: 0 0 0.65rem;
      font-size: 0.8125rem;
      color: rgb(51 65 85);
    }
    .pt-close-panel__errors {
      margin: 0 0 0.65rem 1.1rem;
      font-size: 0.8125rem;
      color: rgb(185 28 28);
    }
    .production-task-row--active td,
    tr.production-task-row--active td {
      background: rgb(239 246 255);
    }
    .pt-task-card--active {
      border-color: rgb(59 130 246);
      box-shadow: 0 0 0 1px rgb(59 130 246);
    }
    tr[data-pt-task-id] {
      cursor: pointer;
    }
    .production-status-alert {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.75rem;
      padding: 0.65rem 0.85rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      font-size: 0.875rem;
      color: rgb(51 65 85);
      background: rgb(248 250 252);
    }
    .production-status-alert--warn {
      border-color: rgb(253 230 138);
      background: rgb(255 251 235);
      color: rgb(120 53 15);
    }
    .production-period-section {
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(255 255 255);
    }
    .production-period-section__summary {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      padding: 0.65rem 0.85rem;
      cursor: pointer;
      list-style: none;
    }
    .production-period-section__summary::-webkit-details-marker {
      display: none;
    }
    .production-period-section__body {
      padding: 0 0.85rem 0.85rem;
    }
    .production-period-section__title {
      font-size: 0.875rem;
      font-weight: 600;
      color: rgb(71 85 105);
    }
    .production-period-section__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
    }
    .production-period-dl {
      display: grid;
      grid-template-columns: 5.5rem 1fr;
      gap: 0.35rem 0.75rem;
      margin: 0;
      font-size: 0.875rem;
      line-height: 1.45;
    }
    .production-period-dl dt {
      margin: 0;
      color: rgb(100 116 139);
      font-weight: 500;
    }
    .production-period-dl dd {
      margin: 0;
      color: rgb(30 41 59);
    }
    .production-period-dl__warn {
      color: rgb(180 83 9);
    }
    .production-task-order-hint {
      font-size: 0.8125rem;
      color: rgb(100 116 139);
      line-height: 1.4;
    }
    .production-task-product-name {
      font-weight: 600;
      font-size: 0.875rem;
      color: rgb(30 41 59);
    }
    .production-task-product-meta {
      font-size: 0.75rem;
      color: rgb(100 116 139);
      margin-top: 0.15rem;
    }
    .production-task-progress-summary {
      font-size: 0.8125rem;
      color: rgb(51 65 85);
      white-space: nowrap;
    }
    .production-task-progress-out-link,
    .production-task-progress-pmi-link {
      border: none;
      background: none;
      padding: 0;
      margin: 0;
      font: inherit;
      font-size: inherit;
      line-height: inherit;
      color: rgb(22 101 52);
      cursor: pointer;
      text-decoration: underline;
      text-underline-offset: 2px;
    }
    .production-task-progress-out-link:hover,
    .production-task-progress-pmi-link:hover {
      color: rgb(21 128 61);
    }
    .production-task-progress-out-link--draft {
      color: rgb(180 83 9);
    }
    .production-task-progress-out-link--draft:hover {
      color: rgb(146 64 14);
    }
    .fp-workflow-steps li {
      line-height: 1.5;
    }
    #finished-pack-page .form-label {
      font-size: 0.75rem;
      font-weight: 500;
      color: rgb(71 85 105);
      margin-bottom: 0.25rem;
    }
    #finished-pack-page .fp-req {
      color: rgb(220 38 38);
    }
    .fp-page-body {
      padding-top: 0.75rem;
    }
    .fp-stepper {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.5rem;
      margin-bottom: 1rem;
    }
    @media (max-width: 768px) {
      .fp-stepper {
        grid-template-columns: 1fr;
      }
    }
    .fp-stepper__item {
      display: flex;
      align-items: flex-start;
      gap: 0.5rem;
      padding: 0.55rem 0.65rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
    }
    .fp-stepper__num {
      flex-shrink: 0;
      width: 1.35rem;
      height: 1.35rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 9999px;
      background: rgb(15 23 42);
      color: rgb(255 255 255);
      font-size: 0.6875rem;
      font-weight: 700;
    }
    .fp-stepper__text {
      display: flex;
      flex-direction: column;
      gap: 0.1rem;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .fp-stepper__text strong {
      font-size: 0.8125rem;
      color: rgb(15 23 42);
    }
    .fp-step-columns {
      display: grid;
      grid-template-columns: minmax(14rem, 0.9fr) minmax(22rem, 1.55fr) minmax(13rem, 0.825fr);
      gap: 0.75rem;
      align-items: stretch;
      min-width: 0;
      min-height: calc(100vh - 11rem);
      max-height: calc(100vh - 8.5rem);
      height: calc(100vh - 8.5rem);
    }
    .fp-step-col {
      display: flex;
      flex-direction: column;
      min-width: 0;
      min-height: 0;
      height: 100%;
      background: rgb(255 255 255);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      box-shadow: none;
      overflow: hidden;
    }
    #finished-pack-page .fp-step-col .fp-block,
    #finished-pack-page .fp-step-col .fp-panel,
    #finished-pack-page .fp-step-col .fp-settle-section__entry,
    #finished-pack-page .fp-step-col .fp-order-card,
    #finished-pack-page .fp-step-col .fp-block--metrics {
      box-shadow: none;
    }
    #finished-pack-page .fp-step-col--1 .fp-block {
      margin-bottom: 0.5rem;
      padding: 0;
      background: transparent;
      border: none;
      border-radius: 0;
    }
    .fp-step-col--2 {
      --fp-entry-btn-col: 6.5rem;
    }
    .fp-step-col__head {
      flex-shrink: 0;
      padding: 0.6rem 0.7rem;
      border-bottom: 1px solid rgb(241 245 249);
      background: rgb(248 250 252);
    }
    .fp-step-col__head--main {
      background: rgb(248 250 252);
    }
    .fp-step-col__head--close {
      background: rgb(248 250 252);
    }
    .fp-step-col__head-row {
      display: flex;
      align-items: flex-start;
      gap: 0.55rem;
    }
    .fp-step-col__head-text {
      flex: 1;
      min-width: 0;
    }
    .fp-step-col__num {
      flex-shrink: 0;
      width: 1.5rem;
      height: 1.5rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 9999px;
      background: rgb(71 85 105);
      color: rgb(255 255 255);
      font-size: 0.75rem;
      font-weight: 700;
      margin-top: 0.05rem;
    }
    .fp-step-col__title {
      margin: 0;
      font-size: 0.875rem;
      font-weight: 700;
      color: rgb(15 23 42);
      line-height: 1.3;
    }
    .fp-step-col__desc {
      margin: 0.12rem 0 0;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .fp-step-col--1 .fp-step1-orders {
      margin-top: 0.65rem;
      padding-top: 0.6rem;
      border-top: 1px solid rgb(226 232 240);
      display: flex;
      flex-direction: column;
      gap: 0.4rem;
      min-height: 8rem;
      flex: 1 1 auto;
    }
    .fp-step1-orders__head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.35rem;
      flex-shrink: 0;
    }
    .fp-step1-orders__title {
      margin: 0;
      font-size: 0.75rem;
      font-weight: 600;
      color: rgb(51 65 85);
    }
    .fp-list-toolbar--step1 {
      grid-template-columns: 1fr 1fr;
      gap: 0.35rem;
      margin-bottom: 0;
      flex-shrink: 0;
    }
    .fp-pending-list--step1 {
      flex: 1;
      min-height: 0;
      max-height: none;
      margin-top: 0;
      overflow-y: auto;
    }
    .fp-step-col--1 .fp-step-col__body {
      display: flex;
      flex-direction: column;
      min-height: 0;
      flex: 1;
      overflow-x: hidden;
      overflow-y: auto;
      padding: 0.55rem;
      -webkit-overflow-scrolling: touch;
    }
    .fp-step-col--1 .fp-panel--create {
      flex: 0 0 auto;
    }
    .fp-step-col--1 .fp-pending-item {
      grid-template-columns: auto minmax(0, 1fr);
      gap: 0.45rem;
      padding: 0.45rem 0.5rem;
    }
    .fp-step-col--1 .fp-pending-item__meta {
      white-space: normal;
      line-height: 1.35;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }
    .fp-pending-empty--plain {
      padding: 0.65rem 0.5rem;
      text-align: center;
      font-size: 0.75rem;
      color: rgb(148 163 184);
      background: transparent;
      border: none;
      line-height: 1.45;
    }
    .fp-step-col__body {
      flex: 1;
      min-height: 0;
      overflow-x: hidden;
      overflow-y: auto;
      padding: 0.6rem 0.65rem;
    }
    .fp-step-col--1 .fp-panel {
      padding: 0.55rem;
      border: none;
      background: transparent;
    }
    .fp-empty-state--col {
      min-height: 10rem;
      padding: 1.25rem 0.75rem;
      background: transparent;
      border: none;
    }
    .fp-close-panel {
      display: flex;
      flex-direction: column;
      gap: 0.55rem;
      min-width: 0;
    }
    .fp-order-card--compact {
      padding: 0.55rem 0.6rem;
      margin-bottom: 0;
    }
    .fp-order-card--compact .fp-order-card__grid {
      grid-template-columns: 1fr;
      gap: 0.3rem;
    }
    .fp-close-commit {
      margin-top: auto;
      padding-top: 0.45rem;
      border-top: 1px solid rgb(241 245 249);
    }
    .fp-close-commit__hint {
      margin: 0 0 0.45rem;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .fp-step-col--3 .fp-metrics-row {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fp-step-col--3 .fp-weight-dev-dl {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fp-step-col--3 .fp-weight-dev-dl > div:first-child {
      grid-column: 1 / -1;
    }
    .fp-step-col--2 .fp-settle-section__entry {
      overflow: hidden;
      padding-left: 0.5rem;
      padding-right: 0.5rem;
    }
    .fp-step-col--2 .fp-entry-grid > .form-group {
      min-width: 0;
      overflow: hidden;
    }
    .fp-step-col--2 .fp-entry-grid .form-select,
    .fp-step-col--2 .fp-entry-grid .form-input {
      max-width: 100%;
      box-sizing: border-box;
    }
    .fp-step-col--2 .fp-entry-grid .fp-entry-grid__action .btn {
      padding-left: 0.35rem;
      padding-right: 0.35rem;
      font-size: 0.75rem;
    }
    @media (max-width: 1280px) {
      .fp-step-columns {
        grid-template-columns: minmax(13rem, 0.9fr) minmax(18rem, 1.5fr) minmax(12rem, 0.825fr);
        max-height: none;
        min-height: 0;
      }
    }
    @media (max-width: 1024px) {
      .fp-step-columns {
        grid-template-columns: 1fr;
        max-height: none;
        min-height: 0;
      }
      .fp-step-col {
        max-height: none;
      }
      #finished-pack-page .fp-step-col--1 .fp-pending-list {
        min-height: 8rem;
        max-height: none;
      }
    }
    .fp-pending-board {
      margin-bottom: 1rem;
      padding: 0.75rem;
      background: rgb(255 255 255);
      border: 1px solid rgb(203 213 225);
      border-radius: 0.5rem;
    }
    .fp-pending-board__head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.75rem;
      margin-bottom: 0.55rem;
    }
    .fp-pending-board__title {
      margin: 0 0 0.15rem;
      font-size: 0.9375rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .fp-pending-board__hint {
      margin: 0;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.4;
      max-width: 42rem;
    }
    .fp-pending-list {
      display: flex;
      flex-direction: column;
      gap: 0.35rem;
      max-height: 11rem;
      overflow-y: auto;
      margin-top: 0.5rem;
    }
    #finished-pack-page .fp-step-col--1 .fp-pending-list {
      flex: 1 1 auto;
      min-height: 10rem;
      max-height: none;
      margin-top: 0;
      overflow-y: auto;
    }
    .fp-pending-item {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      gap: 0.65rem;
      align-items: center;
      padding: 0.5rem 0.65rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(248 250 252);
      cursor: pointer;
      transition: border-color 0.15s, background 0.15s;
    }
    .fp-pending-item:hover {
      border-color: rgb(191 219 254);
      background: rgb(239 246 255);
    }
    .fp-pending-item--active {
      border-color: rgb(59 130 246);
      background: rgb(239 246 255);
      box-shadow: none;
    }
    .fp-pending-item__no {
      font-size: 0.8125rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .fp-pending-item__meta {
      margin-top: 0.1rem;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .fp-pending-empty {
      padding: 1rem;
      text-align: center;
      font-size: 0.8125rem;
      color: rgb(148 163 184);
      border: 1px dashed rgb(203 213 225);
      border-radius: 0.375rem;
      line-height: 1.45;
    }
    .fp-pending-empty--error {
      color: rgb(220 38 38);
      border-color: rgb(254 202 202);
    }
    .fp-sidebar {
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .fp-stage {
      display: flex;
      flex-direction: column;
      gap: 0.65rem;
    }
    .fp-stage--open {
      padding: 0.65rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      border-left: 3px solid rgb(59 130 246);
    }
    .fp-stage__head {
      margin-bottom: 0.15rem;
    }
    .fp-stage__title-row {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.35rem;
    }
    .fp-stage__title-row .fp-stage__title {
      margin: 0;
      flex: 1;
      min-width: 0;
    }
    .fp-help-tip {
      position: relative;
      flex-shrink: 0;
      margin: 0;
      padding: 0.15rem 0.3rem;
      border: none;
      background: transparent;
      color: var(--ds-text-muted, rgb(100 116 139));
      font-size: 1.05rem;
      line-height: 1;
      cursor: help;
      border-radius: 4px;
    }
    .fp-help-tip:hover,
    .fp-help-tip:focus-visible {
      color: var(--ds-brand, rgb(37 99 235));
      background: color-mix(in srgb, var(--ds-brand, #2563eb) 8%, transparent);
      outline: none;
    }
    /* 仅作文案源，不在原位展示 */
    .fp-help-tip__panel {
      display: none !important;
    }
    .fp-help-tip-float {
      position: fixed;
      z-index: 10050;
      box-sizing: border-box;
      max-width: min(22rem, calc(100vw - 20px));
      min-width: 12.5rem;
      padding: 12px 14px;
      border: 1px solid color-mix(in srgb, var(--ds-brand, #2563eb) 22%, var(--ds-border, #e2e8f0));
      border-radius: 10px;
      background: var(--ds-bg-surface, #fff);
      box-shadow: 0 14px 40px rgb(15 23 42 / 0.16);
      font-size: 13px;
      line-height: 1.55;
      color: var(--ds-text, rgb(51 65 85));
      text-align: left;
      pointer-events: auto;
    }
    .fp-help-tip-float[hidden] {
      display: none !important;
    }
    .fp-help-tip__title {
      display: block;
      margin: 0 0 8px;
      font-size: 13px;
      font-weight: 600;
      line-height: 1.4;
      color: var(--ds-text, rgb(15 23 42));
    }
    .fp-help-tip__list {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .fp-help-tip__list li {
      position: relative;
      margin: 0 0 6px;
      padding-left: 14px;
    }
    .fp-help-tip__list li:last-child {
      margin-bottom: 0;
    }
    .fp-help-tip__list li::before {
      content: '';
      position: absolute;
      left: 0;
      top: 0.58em;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: var(--ds-brand, rgb(37 99 235));
    }
    .fp-help-tip-float .fp-help-tip__muted {
      margin: 8px 0 0;
      font-size: 12px;
      line-height: 1.45;
      color: var(--ds-text-secondary, rgb(100 116 139));
    }
    .fp-stage__head--main {
      margin-bottom: 0.65rem;
      padding: 0.55rem 0.65rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      border-left: 3px solid rgb(21 128 61);
    }
    .fp-stage__badge {
      display: inline-block;
      margin-bottom: 0.25rem;
      padding: 0.1rem 0.45rem;
      border-radius: 9999px;
      font-size: 0.625rem;
      font-weight: 700;
      letter-spacing: 0.03em;
      text-transform: uppercase;
      color: rgb(29 78 216);
      background: rgb(219 234 254);
    }
    .fp-stage__badge--sub {
      color: rgb(51 65 85);
      background: rgb(226 232 240);
      margin-bottom: 0.35rem;
    }
    .fp-stage__title {
      margin: 0 0 0.2rem;
      font-size: 0.9375rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .fp-stage__desc {
      margin: 0;
      font-size: 0.75rem;
      color: rgb(71 85 105);
      line-height: 1.45;
    }
    .fp-create-commit {
      margin-top: 0.5rem;
      padding: 0 0 0.35rem;
      background: transparent;
      border: none;
      border-radius: 0;
    }
    .fp-create-commit__lead {
      margin: 0 0 0.35rem;
      font-size: 0.75rem;
      font-weight: 600;
      color: rgb(30 64 175);
    }
    .fp-create-commit__list {
      margin: 0 0 0.65rem;
      padding-left: 1.1rem;
      font-size: 0.6875rem;
      color: rgb(51 65 85);
      line-height: 1.5;
    }
    .fp-create-commit__list li {
      margin-bottom: 0.15rem;
    }
    .fp-flow-bridge {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.15rem;
      padding: 0.35rem 0.5rem;
      text-align: center;
    }
    .fp-flow-bridge__arrow {
      font-size: 1rem;
      line-height: 1;
      color: rgb(59 130 246);
      font-weight: 700;
    }
    .fp-flow-bridge__text {
      font-size: 0.6875rem;
      color: rgb(100 116 139);
    }
    .fp-panel-head--list-title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      margin-bottom: 0.15rem;
    }
    .fp-panel--list {
      border-color: rgb(191 219 254);
      background: rgb(255 255 255);
    }
    .fp-empty-state__step {
      margin: 0 0 0.35rem;
      font-size: 0.6875rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: rgb(21 128 61);
    }
    .fp-main {
      min-width: 0;
    }
    .fp-panel {
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      padding: 0.85rem;
      background: rgb(255 255 255);
    }
    .fp-panel-head {
      margin-bottom: 0.65rem;
    }
    .fp-panel-head--row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
    }
    .fp-panel-head__title {
      margin: 0;
      font-size: 0.9375rem;
      font-weight: 600;
      color: rgb(15 23 42);
    }
    .fp-panel-head__hint {
      margin: 0.2rem 0 0;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.4;
    }
    .fp-panel-foot {
      margin-top: 0.75rem;
      padding-top: 0.65rem;
      border-top: 1px solid rgb(241 245 249);
    }
    .fp-block {
      margin-bottom: 0.65rem;
      padding: 0.65rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(241 245 249);
      border-radius: 0.375rem;
    }
    .fp-block__head {
      display: flex;
      align-items: flex-start;
      gap: 0.55rem;
      margin-bottom: 0.65rem;
    }
    .fp-block__step {
      flex-shrink: 0;
      width: 1.25rem;
      height: 1.25rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 9999px;
      background: rgb(226 232 240);
      color: rgb(51 65 85);
      font-size: 0.6875rem;
      font-weight: 700;
    }
    .fp-block--post .fp-block__step {
      background: rgb(21 128 61);
      color: rgb(255 255 255);
    }
    .fp-block__title {
      margin: 0;
      font-size: 0.8125rem;
      font-weight: 600;
      color: rgb(15 23 42);
    }
    .fp-block__hint {
      margin: 0.15rem 0 0;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .fp-block__actions {
      margin-top: 0.55rem;
    }
    .fp-block--metrics {
      background: rgb(240 253 244);
      border-color: rgb(187 247 208);
    }
    .fp-block--sub {
      margin-bottom: 0.5rem;
      padding: 0.55rem 0.65rem;
      background: rgb(255 255 255);
      border: 1px solid rgb(241 245 249);
      border-radius: 0.375rem;
    }
    .fp-step-group {
      padding: 0.65rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      border-left: 3px solid rgb(100 116 139);
    }
    .fp-step-group__head {
      display: flex;
      align-items: flex-start;
      gap: 0.55rem;
      margin-bottom: 0.65rem;
      padding-bottom: 0.55rem;
      border-bottom: 1px solid rgb(226 232 240);
    }
    .fp-step-group__title {
      margin: 0;
      font-size: 0.875rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .fp-step-group__hint {
      margin: 0.15rem 0 0;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .fp-subblock__title {
      margin: 0 0 0.15rem;
      font-size: 0.8125rem;
      font-weight: 600;
      color: rgb(51 65 85);
    }
    .fp-subblock__hint {
      margin: 0 0 0.5rem;
      font-size: 0.6875rem;
      color: rgb(148 163 184);
      line-height: 1.35;
    }
    .fp-block--step {
      background: rgb(255 255 255);
      border-color: rgb(226 232 240);
    }
    .fp-field-note {
      margin: 0.25rem 0 0;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .fp-field-note--ok {
      color: rgb(21 128 61);
    }
    .fp-semi-hint {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
      margin-top: 0.5rem;
    }
    .fp-semi-hint__card {
      display: flex;
      align-items: flex-start;
      gap: 0.625rem;
      padding: 0.625rem 0.75rem;
      border-radius: 0.5rem;
      border: 1px solid rgb(226 232 240);
      background: rgb(248 250 252);
      font-size: 0.75rem;
      line-height: 1.45;
    }
    .fp-semi-hint__card--stock {
      border-color: rgb(187 247 208);
      background: rgb(240 253 244);
    }
    .fp-semi-hint__card--closed {
      border-color: rgb(253 230 138);
      background: rgb(255 251 235);
    }
    .fp-semi-hint__icon {
      flex-shrink: 0;
      width: 1.25rem;
      text-align: center;
      margin-top: 0.1rem;
      font-size: 0.875rem;
    }
    .fp-semi-hint__card--stock .fp-semi-hint__icon {
      color: rgb(22 163 74);
    }
    .fp-semi-hint__card--closed .fp-semi-hint__icon {
      color: rgb(217 119 6);
    }
    .fp-semi-hint__body {
      flex: 1;
      min-width: 0;
    }
    .fp-semi-hint__title {
      font-weight: 600;
      color: rgb(30 41 59);
      margin: 0 0 0.15rem;
    }
    .fp-semi-hint__val {
      font-variant-numeric: tabular-nums;
      font-weight: 700;
      color: rgb(21 128 61);
      font-size: 0.875rem;
    }
    .fp-semi-hint__sub {
      display: block;
      margin-top: 0.15rem;
      color: rgb(100 116 139);
      font-size: 0.6875rem;
    }
    .fp-semi-hint__desc {
      margin: 0 0 0.5rem;
      color: rgb(120 53 15);
    }
    .fp-semi-hint__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.375rem;
      align-items: center;
    }
    .fp-more-fields {
      margin-bottom: 0.5rem;
      font-size: 0.75rem;
      color: rgb(100 116 139);
    }
    .fp-more-fields summary {
      cursor: pointer;
      user-select: none;
      padding: 0.25rem 0;
    }
    .fp-more-fields__body {
      padding-top: 0.5rem;
    }
    .fp-list-toolbar {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.5rem;
      margin-bottom: 0.5rem;
    }
    .fp-list-summary {
      margin: 0 0 0.5rem;
      font-size: 0.6875rem;
      color: rgb(71 85 105);
    }
    .fp-list-table-wrap {
      max-height: 16rem;
      overflow: auto;
    }
    .fp-list-table .fp-list-primary {
      font-weight: 600;
      font-size: 0.8125rem;
      color: rgb(15 23 42);
    }
    .fp-list-table .fp-list-sub {
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      margin-top: 0.1rem;
    }
    .fp-list-row--active {
      background: rgb(239 246 255);
    }
    .fp-list-row--active .fp-list-primary {
      color: rgb(29 78 216);
    }
    .fp-empty-state {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      min-height: 14rem;
      padding: 2rem 1.5rem;
      text-align: center;
      background: rgb(248 250 252);
      border: 1px dashed rgb(203 213 225);
      border-radius: 0.5rem;
    }
    .fp-empty-state__title {
      margin: 0 0 0.35rem;
      font-size: 0.9375rem;
      font-weight: 600;
      color: rgb(51 65 85);
    }
    .fp-empty-state__hint {
      margin: 0;
      max-width: 18rem;
      font-size: 0.75rem;
      color: rgb(100 116 139);
      line-height: 1.45;
    }
    .fp-settle {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
      overflow-x: hidden;
      min-width: 0;
      --fp-entry-btn-col: 8.25rem;
    }
    .fp-settle-section {
      padding: 0.6rem 0;
      border-bottom: 1px solid rgb(241 245 249);
      min-width: 0;
    }
    .fp-settle-section:last-of-type {
      border-bottom: none;
    }
    .fp-settle-section__title {
      margin: 0 0 0.45rem;
      font-size: 0.8125rem;
      font-weight: 600;
      color: rgb(30 41 59);
    }
    .fp-settle-section__entry {
      padding: 0.6rem 0.7rem;
      margin-bottom: 0.45rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      min-width: 0;
    }
    .fp-entry-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, var(--fp-entry-btn-col, 8.25rem));
      gap: 0.5rem 0.5rem;
      align-items: end;
      width: 100%;
      min-width: 0;
      max-width: 100%;
      box-sizing: border-box;
    }
    .fp-entry-grid > .form-group {
      min-width: 0;
    }
    #finished-pack-page .fp-entry-grid .form-label {
      margin-bottom: 0.25rem;
      font-size: 0.6875rem;
      font-weight: 600;
      color: rgb(100 116 139);
    }
    #finished-pack-page .fp-entry-grid .form-input,
    #finished-pack-page .fp-entry-grid .form-select {
      width: 100%;
      min-height: 2.125rem;
      font-size: 0.8125rem;
    }
    #finished-pack-page .fp-entry-grid .fp-entry-grid__action .btn {
      width: 100%;
      min-height: 2.125rem;
      white-space: nowrap;
    }
    #finished-pack-page .fp-btn-flat {
      background: rgb(241 245 249);
      border: 1px solid rgb(203 213 225);
      color: rgb(71 85 105);
      font-weight: 600;
      box-shadow: none;
    }
    #finished-pack-page .fp-btn-flat:hover:not(:disabled) {
      background: rgb(226 232 240);
      border-color: rgb(148 163 184);
      color: rgb(51 65 85);
    }
    #finished-pack-page .fp-btn-flat:disabled {
      opacity: 0.5;
      cursor: not-allowed;
    }
    .fp-settle-table {
      table-layout: fixed;
      width: 100%;
      min-width: 0;
    }
    .fp-settle-table .fp-col-item,
    .fp-settle-table .fp-col-lot,
    .fp-settle-table .fp-col-qty {
      width: calc((100% - var(--fp-entry-btn-col, 8.25rem)) / 3);
    }
    .fp-settle-table .fp-col-act {
      width: var(--fp-entry-btn-col, 8.25rem);
    }
    .fp-settle-table td:nth-child(1) {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .fp-preclose-panel {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
      padding: 0.15rem 0;
    }
    .fp-preclose-panel .fp-weight-dev-block {
      margin: 0;
      padding: 0.55rem 0.65rem;
      background: rgb(255 255 255);
      border: 1px solid rgb(241 245 249);
      border-radius: 0.375rem;
    }
    .fp-preclose-panel .fp-weight-dev-block .fp-subblock__title {
      margin-bottom: 0.35rem;
    }
    .fp-table-wrap--tight {
      margin-top: 0.45rem;
    }
    @media (max-width: 720px) {
      .fp-entry-grid {
        grid-template-columns: 1fr 1fr;
      }
      .fp-entry-grid .fp-entry-grid__action {
        grid-column: 1 / -1;
      }
    }
    .fp-order-card {
      padding: 0.75rem;
      background: rgb(255 255 255);
      border: 1px solid rgb(203 213 225);
      border-radius: 0.375rem;
      box-shadow: none;
    }
    .fp-order-card__head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      margin-bottom: 0.55rem;
    }
    .fp-order-card__no {
      font-size: 0.9375rem;
      font-weight: 700;
      color: rgb(15 23 42);
      font-variant-numeric: tabular-nums;
    }
    .fp-order-card__grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.35rem 0.75rem;
      margin: 0;
    }
    .fp-order-card__grid > div {
      display: flex;
      flex-direction: column;
      gap: 0.05rem;
      min-width: 0;
    }
    .fp-order-card__grid dt {
      margin: 0;
      font-size: 0.625rem;
      font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.02em;
      color: rgb(148 163 184);
    }
    .fp-order-card__grid dd {
      margin: 0;
      font-size: 0.8125rem;
      color: rgb(15 23 42);
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .fp-order-card__grid--wide {
      grid-column: 1 / -1;
    }
    .fp-status-pill {
      display: inline-flex;
      align-items: center;
      padding: 0.12rem 0.45rem;
      border-radius: 9999px;
      font-size: 0.6875rem;
      font-weight: 600;
      white-space: nowrap;
    }
    .fp-status-pill--draft {
      background: rgb(254 243 199);
      color: rgb(146 64 14);
    }
    .fp-status-pill--ready {
      background: rgb(254 215 170);
      color: rgb(154 52 18);
    }
    .fp-status-pill--done {
      background: rgb(220 252 231);
      color: rgb(21 128 61);
    }
    button.fp-status-pill {
      border: none;
      cursor: pointer;
      font: inherit;
    }
    button.fp-status-pill--draft:hover,
    button.fp-status-pill--ready:hover {
      filter: brightness(0.97);
    }
    .finished-pack-progress-link {
      border: none;
      background: none;
      padding: 0;
      margin: 0;
      font: inherit;
      cursor: pointer;
    }
    .finished-pack-progress-cell {
      white-space: nowrap;
    }
    .fp-nominal-block {
      padding: 0.55rem 0.65rem;
      border-radius: 0.375rem;
      background: rgb(255 255 255);
      border: 1px dashed rgb(203 213 225);
    }
    .fp-nominal-input[readonly] {
      background: rgb(241 245 249);
      font-weight: 600;
    }
    .fp-metrics-row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.45rem;
      margin-bottom: 0.45rem;
    }
    @media (min-width: 640px) {
      .fp-metrics-row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }
    }
    .fp-metric {
      padding: 0.4rem 0.45rem;
      background: rgb(255 255 255);
      border-radius: 0.25rem;
      border: 1px solid rgb(187 247 208);
    }
    .fp-metric--accent {
      border-color: rgb(134 239 172);
      background: rgb(240 253 244);
    }
    .fp-metric__label {
      display: block;
      font-size: 0.625rem;
      color: rgb(100 116 139);
      margin-bottom: 0.1rem;
    }
    .fp-metric__value {
      display: block;
      font-size: 0.8125rem;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      color: rgb(15 23 42);
    }
    .fp-metric--accent .fp-metric__value {
      color: rgb(21 128 61);
    }
    .fp-form-grid {
      display: grid;
      gap: 0.5rem;
    }
    .fp-form-grid--2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fp-form-grid__full {
      grid-column: 1 / -1;
    }
    @media (max-width: 640px) {
      .fp-form-grid--2 {
        grid-template-columns: 1fr;
      }
    }
    .fp-wh-readonly {
      margin-top: 0.5rem;
      padding: 0.4rem 0.5rem;
      font-size: 0.6875rem;
      color: rgb(71 85 105);
      background: rgb(241 245 249);
      border-radius: 0.25rem;
    }
    .fp-wh-readonly__sep {
      margin: 0 0.35rem;
      color: rgb(148 163 184);
    }
    .fp-metric-foot {
      font-size: 0.6875rem;
      color: rgb(100 116 139);
    }
    .fp-qc-line {
      margin-top: 0.4rem;
      padding: 0.35rem 0.45rem;
      font-size: 0.6875rem;
      color: rgb(21 94 117);
      background: rgb(236 254 255);
      border: 1px solid rgb(165 243 252);
      border-radius: 0.25rem;
    }
    .fp-table-wrap {
      font-size: 0.8125rem;
    }
    .fp-table-empty {
      text-align: center;
      color: rgb(148 163 184);
      padding: 0.65rem;
      font-size: 0.75rem;
      line-height: 1.45;
    }
    .fp-table-empty__sub {
      display: block;
      margin-top: 0.2rem;
      font-size: 0.6875rem;
      color: rgb(148 163 184);
    }
    .fp-optional-details {
      font-size: 0.75rem;
      color: rgb(100 116 139);
    }
    .fp-optional-details summary {
      cursor: pointer;
      user-select: none;
    }
    .fp-optional-details__body {
      margin-top: 0.45rem;
      padding: 0.55rem 0.65rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      line-height: 1.55;
      font-size: 0.75rem;
    }
    .fp-trace-line {
      margin: 0.45rem 0 0;
      padding-top: 0.45rem;
      border-top: 1px solid rgb(241 245 249);
      font-size: 0.6875rem;
      color: rgb(100 116 139);
    }
    #finished-pack-page .form-select--sm,
    #finished-pack-page .form-select-sm {
      font-size: 0.8125rem;
      padding-top: 0.35rem;
      padding-bottom: 0.35rem;
    }
    #finished-pack-page .form-input-sm {
      font-size: 0.8125rem;
      padding-top: 0.35rem;
      padding-bottom: 0.35rem;
    }
    #finished-pack-page .btn-block {
      width: 100%;
    }
    #finished-pack-page .card-header__top {
      flex-wrap: wrap;
      gap: 0.5rem 0.75rem;
      align-items: center;
    }
    #finished-pack-page .card-header .fp-help-tip {
      color: var(--header-bar-subtle, rgba(255, 255, 255, 0.88));
      font-size: 1.15rem;
      padding: 0.2rem 0.35rem;
    }
    #finished-pack-page .card-header .fp-help-tip:hover,
    #finished-pack-page .card-header .fp-help-tip:focus-visible {
      color: var(--header-bar-fg, #f8fafc);
      background: var(--header-chrome-outline-hover-bg);
    }
    .fp-page-tabs {
      display: inline-flex;
      gap: 0.25rem;
      padding: 0.2rem;
      background: rgb(241 245 249);
      border-radius: 0.5rem;
      border: 1px solid rgb(226 232 240);
    }
    .fp-page-tab {
      border: none;
      background: transparent;
      padding: 0.35rem 0.75rem;
      border-radius: 0.375rem;
      font-size: 0.8125rem;
      font-weight: 600;
      color: rgb(100 116 139);
      cursor: pointer;
    }
    .fp-page-tab--active {
      background: rgb(255 255 255);
      color: rgb(15 23 42);
      box-shadow: 0 1px 2px rgb(15 23 42 / 0.06);
    }
    .fp-dash {
      display: flex;
      flex-direction: column;
      min-height: calc(100vh - 10rem);
      height: calc(100vh - 8.5rem);
    }
    .fp-dash-head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.75rem;
      margin-bottom: 0.65rem;
      flex-shrink: 0;
    }
    .fp-dash-layout {
      display: grid;
      grid-template-columns: minmax(12rem, 0.85fr) minmax(20rem, 1.55fr);
      gap: 0.75rem;
      flex: 1;
      min-height: 0;
    }
    .fp-dash-sidebar {
      display: flex;
      flex-direction: column;
      min-width: 0;
      min-height: 0;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(255 255 255);
      overflow: hidden;
    }
    .fp-dash-sidebar__toolbar {
      flex-shrink: 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.4rem;
      padding: 0.55rem;
      border-bottom: 1px solid rgb(241 245 249);
      background: rgb(248 250 252);
    }
    .fp-dash-sidebar__toolbar .form-label {
      font-size: 0.6875rem;
      margin-bottom: 0.15rem;
    }
    .fp-dash-batch-list {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      margin: 0;
    }
    .fp-dash-batch-empty {
      padding: 1.25rem 0.75rem;
      text-align: center;
      color: rgb(107 114 128);
      font-size: 0.8125rem;
    }
    .fp-dash-batch-item {
      display: flex;
      align-items: flex-start;
      gap: 0.45rem;
      width: 100%;
      text-align: left;
      padding: 0.55rem 0.65rem;
      border: none;
      border-bottom: 1px solid rgb(241 245 249);
      background: rgb(255 255 255);
      cursor: pointer;
    }
    .fp-dash-batch-item:hover {
      background: rgb(248 250 252);
    }
    .fp-dash-batch-item--active {
      background: rgb(239 246 255);
    }
    .fp-dash-batch-item__status {
      flex-shrink: 0;
      padding-top: 0.1rem;
    }
    .fp-dash-batch-item__body {
      flex: 1;
      min-width: 0;
    }
    .fp-dash-batch-item__lot {
      font-size: 0.8125rem;
      font-weight: 600;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      margin-bottom: 0.12rem;
      word-break: break-all;
    }
    .fp-dash-batch-item__meta {
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .fp-dash-batch-item__tag {
      flex-shrink: 0;
      font-size: 0.625rem;
      font-weight: 600;
      color: rgb(146 64 14);
      background: rgb(254 243 199);
      border: 1px solid rgb(253 230 138);
      padding: 0.1rem 0.35rem;
      border-radius: 999px;
      margin-top: 0.1rem;
    }
    .fp-dash-batch-card__status,
    .fp-dash-batch-item__pill {
      font-size: 0.625rem;
      padding: 0.05rem 0.35rem;
      border-radius: 999px;
      white-space: nowrap;
    }
    .fp-dash-batch-card__status--open,
    .fp-dash-batch-item__pill--open {
      background: rgb(241 245 249);
      color: rgb(51 65 85);
    }
    .fp-dash-batch-card__status--closed,
    .fp-dash-batch-item__pill--closed {
      background: rgb(241 245 249);
      color: rgb(51 65 85);
    }
    .fp-dash-main {
      display: flex;
      flex-direction: column;
      min-width: 0;
      min-height: 0;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(255 255 255);
      overflow: hidden;
    }
    .fp-dash-main-empty {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      color: rgb(148 163 184);
      font-size: 0.875rem;
      padding: 2rem;
    }
    .fp-dash-main-body {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      padding: 0.65rem;
      gap: 0.55rem;
    }
    .fp-dash-batch-detail {
      flex-shrink: 0;
      padding: 0;
      border: none;
      border-radius: 0;
      background: transparent;
      margin-bottom: 0;
    }
    .fp-dash-batch-detail__head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.75rem;
      margin-bottom: 0.65rem;
    }
    .fp-dash-batch-detail__title {
      margin: 0 0 0.15rem;
      font-size: 0.9375rem;
      font-weight: 600;
    }
    .fp-dash-batch-detail__sub {
      margin: 0;
      font-size: 0.75rem;
      color: rgb(107 114 128);
    }
    .fp-dash-batch-detail__closed-badge {
      font-size: 0.75rem;
      color: rgb(21 128 61);
      background: rgb(220 252 231);
      border: 1px solid rgb(134 239 172);
      padding: 0.2rem 0.5rem;
      border-radius: 999px;
      font-weight: 600;
    }
    .fp-dash-batch-detail__closed-actions {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem;
    }
    .fp-dash-batch-detail__inv-tag {
      font-size: 0.6875rem;
      color: rgb(21 128 61);
      background: rgb(240 253 244);
      border: 1px solid rgb(187 247 208);
      padding: 0.15rem 0.45rem;
      border-radius: 999px;
      font-variant-numeric: tabular-nums;
    }
    .fp-dash-batch-detail__inv-tag--muted {
      color: rgb(100 116 139);
      background: rgb(248 250 252);
      border-color: rgb(226 232 240);
    }
    .fp-dash-batch-card__reopen-tag {
      font-size: 0.625rem;
      font-weight: 600;
      color: rgb(146 64 14);
      background: rgb(254 243 199);
      border: 1px solid rgb(253 230 138);
      padding: 0.1rem 0.35rem;
      border-radius: 999px;
      margin-left: auto;
    }
    .fp-batch-close-btn {
      background: rgb(254 240 138);
      border: 1px solid rgb(250 204 21);
      color: rgb(113 63 18);
      font-weight: 600;
    }
    .fp-batch-close-btn:hover {
      background: rgb(253 224 71);
      border-color: rgb(234 179 8);
      color: rgb(92 25 14);
    }
    .fp-input-locked {
      background: rgb(249 250 251);
      color: rgb(55 65 81);
      cursor: not-allowed;
    }
    .fp-dash-batch-detail__note {
      margin: 0.5rem 0 0;
      font-size: 0.75rem;
      color: rgb(75 85 99);
    }
    .fp-dash-kpi-panel {
      flex-shrink: 0;
    }
    .fp-dash-kpis--batch,
    .fp-dash-kpis {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0.4rem;
      margin-bottom: 0;
    }
    .fp-dash-kpi--wide {
      grid-column: span 2;
    }
    @media (max-width: 900px) {
      .fp-dash-layout {
        grid-template-columns: 1fr;
        height: auto;
      }
      .fp-dash {
        height: auto;
        min-height: 0;
      }
      .fp-dash-sidebar {
        max-height: 14rem;
      }
      .fp-dash-kpis--batch,
      .fp-dash-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }
    .fp-dash-defect-section {
      flex-shrink: 0;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(248 250 252);
      padding: 0.5rem 0.6rem 0.55rem;
    }
    .fp-dash-defect-section .fp-dash-defect-table__title {
      margin-bottom: 0.35rem;
    }
    .fp-dash-fold {
      flex-shrink: 0;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
      background: rgb(248 250 252);
    }
    .fp-dash-fold__summary {
      padding: 0.45rem 0.6rem;
      font-size: 0.75rem;
      font-weight: 600;
      color: rgb(51 65 85);
      cursor: pointer;
    }
    .fp-dash-fold .fp-dash-defect-table-wrap,
    .fp-dash-audit-notes {
      padding: 0 0.6rem 0.55rem;
    }
    .fp-dash-audit-notes {
      font-size: 0.75rem;
      color: rgb(75 85 99);
      line-height: 1.45;
    }
    .fp-dash-audit-notes p {
      margin: 0 0 0.35rem;
    }
    .fp-dash-audit-notes p:last-child {
      margin-bottom: 0;
    }
    .fp-dash-orders-section {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
    }
    .fp-dash-orders-section__head {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 0.5rem;
      flex-shrink: 0;
      margin-bottom: 0.35rem;
    }
    .fp-dash-orders-count {
      font-size: 0.6875rem;
      color: rgb(100 116 139);
    }
    .fp-dash-defect-table-wrap {
      margin-bottom: 0;
    }
    .fp-dash-defect-table__title,
    .fp-dash-tasks-title {
      margin: 0;
      font-size: 0.8125rem;
      font-weight: 600;
    }
    .fp-dash-defect-table {
      font-size: 0.75rem;
      max-width: 24rem;
    }
    .fp-dash-head__title {
      margin: 0 0 0.15rem;
      font-size: 0.9375rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .fp-dash-head__hint {
      margin: 0;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.4;
      max-width: 40rem;
    }
    .fp-dash-kpi {
      padding: 0.45rem 0.55rem;
      background: rgb(248 250 252);
      border: 1px solid rgb(226 232 240);
      border-radius: 0.375rem;
    }
    .fp-dash-kpi__label {
      display: block;
      font-size: 0.625rem;
      color: rgb(100 116 139);
      margin-bottom: 0.15rem;
    }
    .fp-dash-kpi__val {
      font-size: 1rem;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
      color: rgb(15 23 42);
    }
    .fp-dash-rollup {
      margin-bottom: 0.75rem;
      padding: 0.65rem;
      background: rgb(239 246 255);
      border: 1px solid rgb(191 219 254);
      border-radius: 0.375rem;
    }
    .fp-dash-rollup__title {
      margin: 0 0 0.5rem;
      font-size: 0.8125rem;
      font-weight: 600;
      color: rgb(30 64 175);
    }
    .fp-dash-rollup__grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
      gap: 0.45rem;
    }
    .fp-dash-rollup-card {
      padding: 0.45rem 0.55rem;
      background: rgb(255 255 255);
      border: 1px solid rgb(191 219 254);
      border-radius: 0.25rem;
      font-size: 0.6875rem;
    }
    .fp-dash-rollup-card__jet {
      font-weight: 700;
      font-size: 0.75rem;
      color: rgb(15 23 42);
      margin-bottom: 0.15rem;
    }
    .fp-dash-rollup-card__meta {
      color: rgb(71 85 105);
      margin-bottom: 0.1rem;
    }
    .fp-dash-rollup-card__dev {
      color: rgb(30 64 175);
    }
    .fp-dash-table-wrap {
      flex: 1;
      min-height: 0;
      overflow: auto;
    }
    .fp-dash-table {
      font-size: 0.75rem;
      min-width: 100%;
    }
    .fp-dash-table th,
    .fp-dash-table td {
      white-space: nowrap;
    }
    .fp-dash-order-row {
      cursor: pointer;
    }
    .fp-dash-order-row:hover {
      background: rgb(248 250 252);
    }
    .fp-dev-badge {
      display: inline-block;
      font-size: 0.6875rem;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      padding: 0.1rem 0.35rem;
      border-radius: 0.25rem;
      border: 1px solid rgb(226 232 240);
      background: rgb(248 250 252);
      color: rgb(51 65 85);
    }
    .fp-dev-badge--ok {
      background: rgb(240 253 244);
      border-color: rgb(187 247 208);
      color: rgb(21 128 61);
    }
    .fp-dev-badge--warn {
      background: rgb(254 243 199);
      border-color: rgb(253 230 138);
      color: rgb(146 64 14);
    }
    .fp-dev-badge--bad {
      background: rgb(254 226 226);
      border-color: rgb(254 202 202);
      color: rgb(185 28 28);
    }
    .fp-dev-badge--na {
      color: rgb(148 163 184);
      background: transparent;
      border-color: transparent;
    }
    .fp-dev-badge--kpi {
      font-size: 0.9375rem;
      padding: 0.15rem 0.45rem;
    }
    .fp-dash-kpi--deviation .fp-dash-kpi__val {
      display: flex;
      align-items: center;
      min-height: 1.35rem;
    }
    .fp-save-dirty-hint {
      margin: 0.35rem 0 0;
      font-size: 0.75rem;
      font-weight: 600;
      color: rgb(180 83 9);
    }
    #finished-pack-page .fp-btn-flat--dirty {
      border-color: rgb(251 191 36);
      background: rgb(255 251 235);
      color: rgb(146 64 14);
    }
    .fp-guard-hint {
      margin: 0.5rem 0 0;
      font-size: 0.75rem;
      line-height: 1.45;
      color: rgb(71 85 105);
    }
    .fp-guard-hint--warn {
      color: rgb(146 64 14);
      background: rgb(255 251 235);
      border: 1px solid rgb(253 230 138);
      border-radius: 0.375rem;
      padding: 0.35rem 0.5rem;
    }
    .fp-guard-hint--danger {
      color: rgb(185 28 28);
      background: rgb(254 242 242);
      border: 1px solid rgb(254 202 202);
      border-radius: 0.375rem;
      padding: 0.35rem 0.5rem;
    }
    .fp-batch-close-summary {
      padding: 0.65rem 0.75rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      background: rgb(248 250 252);
      font-size: 0.8125rem;
    }
    .fp-batch-close-summary__head {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 0.35rem 0.65rem;
      margin-bottom: 0.5rem;
    }
    .fp-batch-close-summary__sub {
      color: rgb(100 116 139);
      font-size: 0.75rem;
    }
    .fp-batch-close-summary__grid {
      display: grid;
      grid-template-columns: 1fr;
      gap: 0.35rem 0.75rem;
      margin: 0;
    }
    .fp-batch-close-summary__grid > div {
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem 0.5rem;
    }
    .fp-batch-close-summary__grid dt {
      margin: 0;
      font-weight: 600;
      color: rgb(100 116 139);
      min-width: 5.5rem;
    }
    .fp-batch-close-summary__grid dd {
      margin: 0;
      flex: 1;
      min-width: 0;
    }
    .fp-batch-close-summary__pending {
      margin-top: 0.65rem;
      padding-top: 0.55rem;
      border-top: 1px dashed rgb(203 213 225);
    }
    .fp-batch-close-summary__pending-title {
      margin: 0 0 0.35rem;
      font-size: 0.75rem;
      font-weight: 700;
      color: rgb(180 83 9);
    }
    .fp-batch-close-summary__pending-list {
      margin: 0;
      padding-left: 1.1rem;
      font-size: 0.75rem;
      color: rgb(51 65 85);
    }
    .fp-batch-close-summary__pending-list li {
      margin-bottom: 0.25rem;
    }
    .fp-guard-hint--settled {
      color: rgb(21 101 52);
      background: rgb(240 253 244);
      border: 1px solid rgb(187 247 208);
      border-radius: 0.375rem;
      padding: 0.35rem 0.5rem;
    }
    .fp-closed-banner {
      display: flex;
      flex-direction: column;
      gap: 0.25rem;
      margin-bottom: 0.65rem;
      padding: 0.55rem 0.65rem;
      border-radius: 0.5rem;
      font-size: 0.8125rem;
      line-height: 1.45;
    }
    .fp-closed-banner strong {
      font-weight: 700;
    }
    .fp-closed-banner__sub {
      color: rgb(71 85 105);
      font-size: 0.75rem;
    }
    .fp-closed-banner--done {
      background: rgb(240 253 244);
      border: 1px solid rgb(187 247 208);
      color: rgb(21 128 61);
    }
    .fp-closed-banner--done .fp-closed-banner__sub {
      color: rgb(22 101 52);
    }
    .fp-closed-banner--ready {
      background: rgb(239 246 255);
      border: 1px solid rgb(191 219 254);
      color: rgb(29 78 216);
    }
    .fp-closed-banner--pending {
      background: rgb(255 251 235);
      border: 1px solid rgb(253 230 138);
      color: rgb(146 64 14);
    }
    #finished-pack-page .fp-close-panel--readonly .fp-preclose-panel,
    #finished-pack-page .fp-settle--readonly .fp-settle-section__entry {
      opacity: 0.98;
    }
    #finished-pack-page .fp-settle--readonly .fp-settle-section__title::after {
      content: '（只读）';
      margin-left: 0.35rem;
      font-size: 0.6875rem;
      font-weight: 600;
      color: rgb(100 116 139);
    }
    @media (max-width: 640px) {
      .fp-dash-table .fp-dash-col--optional {
        display: none;
      }
    }
    .fp-weight-dev-block {
      background: rgb(255 251 235);
      border-color: rgb(253 230 138);
    }
    .fp-weight-dev-dl {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.35rem;
      margin: 0;
    }
    .fp-weight-dev-dl > div:first-child {
      grid-column: 1 / -1;
    }
    .fp-weight-dev-dl > div {
      display: flex;
      flex-direction: column;
      gap: 0.05rem;
    }
    .fp-weight-dev-dl dt {
      margin: 0;
      font-size: 0.625rem;
      color: rgb(146 64 14);
    }
    .fp-weight-dev-dl dd {
      margin: 0;
      font-size: 0.8125rem;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      color: rgb(15 23 42);
    }
    .production-task-act-btn--close {
      font-weight: 600;
      min-width: 5.5rem;
    }
    .production-task-table__col-act .btn {
      min-width: 5.25rem;
    }
    .production-done-tasks__summary {
      font-size: 0.8125rem;
      color: rgb(100 116 139);
      cursor: pointer;
    }
    .production-task-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      justify-content: space-between;
      gap: 1rem;
      margin-bottom: 0.65rem;
    }
    .production-task-toolbar__title {
      font-size: 0.9375rem;
      font-weight: 600;
      color: rgb(30 41 59);
    }
    .production-task-toolbar__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
    }
    .production-task-table-wrap {
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
    }
    .production-task-table th {
      font-size: 0.75rem;
      white-space: nowrap;
    }
    .production-task-table td {
      vertical-align: middle;
      padding: 0.85rem 0.75rem;
    }
    .production-task-table__col-act {
      width: 5.5rem;
      text-align: right;
      white-space: nowrap;
    }
    .production-task-row--done td {
      color: rgb(100 116 139);
    }
    .production-task-step-cell {
      font-size: 0.8125rem;
      white-space: nowrap;
    }
    .production-task-step-cell--ok {
      color: rgb(22 101 52);
    }
    .production-task-step-cell--warn {
      color: rgb(180 83 9);
    }
    .production-task-next-label {
      font-size: 0.8125rem;
      font-weight: 600;
      color: rgb(30 41 59);
    }
    .production-task-batch {
      font-size: 0.8125rem;
      color: rgb(71 85 105);
      max-width: 12rem;
      line-height: 1.35;
    }
    .production-task-workflow-btn {
      min-width: 4.5rem;
    }
    .production-task-wizard-table td:first-child {
      white-space: nowrap;
      width: 8.5rem;
    }
    .production-task-flow-guide {
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      background: rgb(248 250 252);
      padding: 0.75rem 1rem;
    }
    .production-task-flow-guide__title {
      font-size: 0.75rem;
      font-weight: 700;
      color: rgb(51 65 85);
      margin-bottom: 0.5rem;
    }
    .production-task-flow-guide__steps {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.5rem;
      font-size: 0.8125rem;
    }
    .production-task-flow-chip {
      background: rgb(255 255 255);
      border: 1px solid rgb(203 213 225);
      border-radius: 9999px;
      padding: 0.2rem 0.65rem;
      color: rgb(30 41 59);
      font-weight: 500;
    }
    .production-task-flow-arrow {
      color: rgb(148 163 184);
      font-size: 0.75rem;
    }
    .production-pmb-section {
      border: 1px solid #e2e8f0;
      border-radius: 0.5rem;
      padding: 0.75rem 1rem;
      background: #fff;
    }
    .production-pmb-section--amber {
      border-color: #fcd34d;
      background: #fffbeb;
    }
    .production-pmb-section--jet-lot {
      border-color: #fdba74;
      background: #fff7ed;
    }
    .pmb-jet-lot-input {
      max-width: 100%;
      font-weight: 600;
      letter-spacing: 0.04em;
    }
    .pmb-jet-lot-input:placeholder-shown {
      background: #fffbeb;
      border: 2px dashed #f59e0b;
      color: rgb(15 23 42);
      font-weight: 500;
    }
    .pmb-jet-lot-input:placeholder-shown::placeholder {
      color: #b45309;
      opacity: 1;
      font-style: normal;
      font-weight: 600;
    }
    .pmb-jet-lot-input:focus {
      border-style: solid;
      background: rgb(255 255 255);
    }
    .pmb-jet-lot-input.form-input--invalid {
      border-color: #dc2626;
      border-style: solid;
      box-shadow: 0 0 0 3px rgb(254 202 202 / 0.65);
    }
    .pmb-jet-lot-hint {
      font-size: 0.75rem;
      color: #9a3412;
      margin: 0.35rem 0 0;
    }
    .pmb-jet-lot-hint--filled {
      color: #166534;
    }
    .production-pmb-section__title {
      font-size: 0.875rem;
      font-weight: 600;
      color: #0f172a;
      margin: 0 0 0.5rem;
    }
    .production-pmb-more summary {
      padding: 0.25rem 0;
    }
    .production-task-wizard-steps {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }
    .production-task-wizard-step {
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      padding: 0.5rem 0.75rem;
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.25rem 0.75rem;
      align-items: start;
    }
    .production-task-wizard-step__num {
      font-weight: 700;
      font-size: 0.75rem;
      color: rgb(100 116 139);
    }
    .production-task-wizard-step__title {
      font-weight: 600;
      font-size: 0.875rem;
      color: rgb(15 23 42);
    }
    .production-task-wizard-step__hint {
      grid-column: 2;
      font-size: 0.75rem;
      color: rgb(100 116 139);
    }
    .production-task-wizard-step--done {
      border-color: rgb(187 247 208);
      background: rgb(240 253 244 / 0.85);
    }
    .production-task-wizard-step--warn {
      border-color: rgb(253 230 138);
      background: rgb(255 251 235 / 0.9);
    }
    .production-task-progress {
      display: flex;
      flex-wrap: wrap;
      gap: 0.25rem;
    }
    .production-task-progress-pill {
      font-size: 0.6875rem;
      font-weight: 600;
      padding: 0.15rem 0.45rem;
      border-radius: 0.25rem;
      border: 1px solid transparent;
    }
    .production-task-progress-pill--ok {
      background: rgb(220 252 231);
      color: rgb(21 128 61);
      border-color: rgb(187 247 208);
    }
    .production-task-progress-pill--pending {
      background: rgb(241 245 249);
      color: rgb(71 85 105);
      border-color: rgb(226 232 240);
    }
    .production-task-progress-pill--warn {
      background: rgb(254 243 199);
      color: rgb(146 64 14);
      border-color: rgb(253 230 138);
    }
    .production-rhythm-panel--compact {
      padding-top: 0.625rem;
      padding-bottom: 0.625rem;
    }
    .production-rhythm-compact {
      font-size: 0.8125rem;
      color: rgb(51 65 85);
      line-height: 1.5;
    }
    .production-rhythm-note-details summary {
      list-style: none;
    }
    .production-rhythm-note-details summary::-webkit-details-marker {
      display: none;
    }
    .production-tab--raw {
      padding-bottom: 0.25rem;
    }
    .production-raw-table-wrap {
      max-height: min(52vh, 520px);
      margin-bottom: 0.5rem;
    }
    /* 新建生产任务弹窗：留白、步骤说明区、底栏对齐 */
    .production-new-task-modal__content {
      max-width: min(920px, 96vw);
    }
    #productionNewTaskModal .modal-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 16px;
    }
    #productionNewTaskModal .modal-header .closeModalBtn {
      flex-shrink: 0;
      margin: 0;
      padding: 2px 6px;
      border: none;
      background: transparent;
      font-size: 1.5rem;
      line-height: 1;
      cursor: pointer;
    }
    #productionNewTaskModal .modal-body {
      padding: 20px 24px 24px;
    }
    #productionNewTaskModal .production-new-task-steps,
    #productionMassBalanceModal .production-new-task-steps {
      margin: 0 0 16px;
      padding: 14px 16px;
      border-radius: 8px;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
      font-size: 13px;
      line-height: 1.6;
      color: #475569;
    }
    #productionNewTaskModal .production-new-task-steps p,
    #productionMassBalanceModal .production-new-task-steps p {
      margin: 0;
    }
    #productionNewTaskModal .production-new-task-steps p + p,
    #productionMassBalanceModal .production-new-task-steps p + p {
      margin-top: 8px;
    }
    #productionNewTaskModal .production-raw-selection-hint {
      margin: 0 0 10px;
      font-size: 13px;
      font-weight: 600;
      color: #64748b;
      line-height: 1.4;
    }
    #productionNewTaskModal .production-raw-table-wrap {
      max-height: min(42vh, 380px);
      margin-bottom: 0;
      border: 1px solid #e2e8f0;
      border-radius: 8px;
      background: #fff;
    }
    #productionNewTaskModal .production-raw-table-wrap .table {
      margin-bottom: 0;
    }
    #productionNewTaskModal .table.table--compact th,
    #productionNewTaskModal .table.table--compact td {
      padding: 10px 14px;
      vertical-align: middle;
    }
    #productionNewTaskModal .production-raw-action-bar {
      position: static;
      display: grid;
      grid-template-columns: auto 1fr auto;
      align-items: center;
      gap: 12px 14px;
      width: 100%;
      margin-top: 16px;
      padding: 14px 16px;
      box-sizing: border-box;
      background: #f8fafc;
      border-color: #e2e8f0;
      box-shadow: none;
      backdrop-filter: none;
      -webkit-backdrop-filter: none;
    }
    #productionNewTaskModal .production-raw-action-bar__label {
      margin: 0;
      font-size: 13px;
      font-weight: 600;
      color: #475569;
      white-space: nowrap;
    }
    #productionNewTaskModal .production-raw-action-bar__select {
      width: 100%;
      min-width: 0;
      max-width: none;
      margin: 0;
    }
    #productionNewTaskModal .production-raw-action-bar__submit {
      min-height: 40px;
      padding-left: 20px;
      padding-right: 20px;
      white-space: nowrap;
    }
    @media (max-width: 640px) {
      #productionNewTaskModal .production-raw-action-bar {
        grid-template-columns: 1fr;
        gap: 10px;
      }
      #productionNewTaskModal .production-raw-action-bar__submit {
        width: 100%;
      }
    }
    /* 产出登记弹窗：与新建生产任务同款说明区与底栏 */
    .production-output-modal__content {
      max-width: min(800px, 96vw);
      display: flex;
      flex-direction: column;
      max-height: min(92vh, 900px);
      overflow: hidden;
      padding: 0;
    }
    #productionMassBalanceModal .modal-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 16px;
      flex-shrink: 0;
    }
    #productionMassBalanceModal .modal-header .closeModalBtn {
      flex-shrink: 0;
      margin: 0;
      padding: 2px 6px;
      border: none;
      background: transparent;
      font-size: 1.5rem;
      line-height: 1;
      cursor: pointer;
    }
    #productionMassBalanceModal .modal-body {
      flex: 1 1 auto;
      min-height: 0;
      overflow-y: auto;
      padding: 20px 24px 16px;
    }
    #productionMassBalanceModal .production-output-steps {
      margin-bottom: 12px;
    }
    #productionMassBalanceModal .production-output-task-meta {
      margin: 0 0 14px;
      font-size: 14px;
      font-weight: 600;
      color: #334155;
      line-height: 1.45;
    }
    #productionMassBalanceModal .production-pmb-section {
      margin-bottom: 12px;
      padding: 14px 16px;
    }
    #productionMassBalanceModal .production-output-summary {
      margin-top: 4px;
      padding: 14px 16px;
      border-radius: 8px;
      border: 1px solid #bae6fd;
      background: #f0f9ff;
      font-size: 14px;
      color: #0f172a;
      line-height: 1.5;
    }
    #productionMassBalanceModal .production-pmb-action-bar {
      flex-shrink: 0;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: flex-end;
      gap: 10px 12px;
      padding: 14px 16px;
      border-top: 1px solid #e2e8f0;
      background: #f8fafc;
    }
    #productionMassBalanceModal .production-pmb-action-bar .btn-primary {
      min-width: 5.5rem;
    }
    @media (max-width: 480px) {
      #productionMassBalanceModal .production-pmb-action-bar {
        flex-direction: column;
        align-items: stretch;
      }
      #productionMassBalanceModal .production-pmb-action-bar .btn {
        width: 100%;
      }
    }
    .production-raw-action-bar {
      position: sticky;
      bottom: 0;
      z-index: 20;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
      margin: 0 -0.25rem;
      padding: 0.75rem 0.875rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.625rem;
      background: rgb(255 255 255 / 0.97);
      box-shadow: 0 -4px 16px rgb(15 23 42 / 0.06);
      backdrop-filter: blur(6px);
    }
    .production-raw-action-bar__summary {
      font-size: 0.8125rem;
      font-weight: 600;
      color: rgb(51 65 85);
    }
    .production-raw-action-bar__right {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem;
      margin-left: auto;
    }
    .production-raw-action-bar__select {
      min-width: 10rem;
      max-width: 14rem;
    }
    .production-raw-action-bar__submit {
      white-space: nowrap;
    }
    .production-status-pill {
      display: inline-block;
      font-size: 0.75rem;
      font-weight: 600;
      padding: 0.2rem 0.5rem;
      border-radius: 0.25rem;
      line-height: 1.25;
    }
    .production-status-pill--pending {
      background: rgb(234 179 8);
      color: rgb(255 255 255);
    }
    .production-status-pill--processing {
      background: rgb(59 130 246);
      color: rgb(255 255 255);
    }
    .production-status-pill--done {
      background: rgb(34 197 94);
      color: rgb(255 255 255);
    }
    .production-status-pill--muted {
      background: rgb(107 114 128);
      color: rgb(255 255 255);
    }
    .hidden { display: none !important; }
    @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
    @keyframes slideIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }

    /* 系统偏好：减少动画（无障碍）；登录页加载圈见 login.html 单独处理 */
    @media (prefers-reduced-motion: reduce) {
      *,
      *::before,
      *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
      }
    }

    /* app-shell.js 动态加载 app-main 时的启动遮罩 */
    .app-boot-overlay {
      position: fixed;
      inset: 0;
      z-index: 99999;
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--ds-overlay-scrim);
      font: 14px/1.5 system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
      color: var(--ds-bg-surface-raised);
    }
    .app-boot-overlay--error {
      background: color-mix(in srgb, var(--ds-danger-emphasis) 88%, transparent);
      padding: 24px;
      text-align: center;
    }
    .app-boot-overlay__inner {
      text-align: center;
    }
    .app-boot-overlay__spinner {
      width: 32px;
      height: 32px;
      margin: 0 auto 12px;
      border: 3px solid color-mix(in srgb, var(--ds-on-inverse) 25%, transparent);
      border-top-color: var(--ds-on-brand);
      border-radius: 50%;
      animation: appBootSpin 0.75s linear infinite;
    }
    .app-boot-overlay__text {
      margin: 0;
      opacity: 0.92;
    }
    @keyframes appBootSpin {
      to {
        transform: rotate(360deg);
      }
    }

    /* 生产领用弹窗明细表：避免全局 table td nowrap 导致下拉与数量框叠在一起 */
    #productionMaterialIssueModal .pmi-lines-table {
      table-layout: auto;
      width: 100%;
      min-width: 560px;
    }
    #productionMaterialIssueModal .pmi-lines-table td,
    #productionMaterialIssueModal .pmi-lines-table th {
      white-space: normal;
      vertical-align: top;
    }
    #productionMaterialIssueModal .pmi-col-type {
      width: 3.5rem;
      white-space: nowrap;
    }
    #productionMaterialIssueModal .pmi-col-item {
      min-width: 260px;
      max-width: 420px;
    }
    #productionMaterialIssueModal .pmi-col-stock {
      width: 4.5rem;
      text-align: right;
      white-space: nowrap;
    }
    #productionMaterialIssueModal .pmi-col-qty {
      width: 7.5rem;
    }
    #productionMaterialIssueModal .pmi-col-qty-placeholder {
      color: var(--ds-text-muted);
      text-align: center;
    }
    #productionMaterialIssueModal .pmi-col-action {
      width: 3.5rem;
      white-space: nowrap;
    }
    #productionMaterialIssueModal .pmi-mat-stack {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    #productionMaterialIssueModal .pmi-mat-stack .form-select,
    #productionMaterialIssueModal .pmi-mat-stack .form-input,
    #productionMaterialIssueModal .pmi-col-qty .form-input {
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
    }
    #productionMaterialIssueModal .pmi-lot-stock-hint {
      margin: 0;
      font-size: 12px;
      line-height: 1.35;
      color: var(--ds-text-secondary);
    }
    #productionMaterialIssueModal .pmi-qty-label {
      margin: 2px 0 0;
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-text-secondary);
    }
    /* 生产领用登记（内联办理区 + 弹窗共用） */
    #ptWorkIssueHost .pti-task-meta,
    #ptWorkIssueHost .pti-intro-hint {
      display: none;
    }
    #ptWorkIssueHost .pti-issue-form {
      gap: 0.55rem;
      min-width: 0;
    }
    #ptWorkIssueHost .pti-meta-bar {
      grid-template-columns: 1fr 1fr;
      gap: 0.45rem 0.55rem;
      padding: 0.5rem 0.55rem;
    }
    #ptWorkIssueHost .pti-meta-bar > .form-group:first-child {
      grid-column: 1 / -1;
    }
    #ptWorkIssueHost .pti-meta-bar .form-input,
    #ptWorkIssueHost .pti-meta-bar .form-select {
      width: 100%;
      min-width: 0;
      box-sizing: border-box;
    }
    #ptWorkIssueHost .pti-section__head {
      padding: 0.45rem 0.55rem;
    }
    #ptWorkIssueHost .pti-section__head .btn-sm {
      flex-shrink: 0;
      padding-left: 0.45rem;
      padding-right: 0.45rem;
      font-size: 0.6875rem;
    }
    #ptWorkIssueHost .pti-table-wrap--fresh {
      max-height: min(16rem, 45vh);
      overflow-x: auto;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }
    #ptWorkIssueHost .pti-fresh-table {
      table-layout: auto;
      width: 100%;
      min-width: 17rem;
    }
    #ptWorkIssueHost .pti-issue-form .pti-col-batch {
      word-break: normal;
      overflow-wrap: normal;
      white-space: nowrap;
      min-width: 4.75rem;
      max-width: 7.5rem;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    #ptWorkIssueHost .pti-fresh-table th:nth-child(2),
    #ptWorkIssueHost .pti-fresh-table td:nth-child(2) {
      min-width: 3.25rem;
      max-width: 5rem;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    #ptWorkIssueHost .pti-fresh-table .pti-col-qty {
      width: 4.75rem;
      min-width: 4.75rem;
    }
    #ptWorkIssueHost .pti-fresh-table .pti-col-stock {
      width: 4.5rem;
      min-width: 4.5rem;
    }
    #ptWorkIssueHost .pti-issue-form .pti-fresh-qty {
      max-width: none;
      padding: 0.3rem 0.35rem;
      font-size: 0.75rem;
    }
    #ptWorkIssueHost .modal-footer {
      display: flex;
      flex-direction: column;
      flex-wrap: nowrap;
      justify-content: stretch;
      gap: 0.35rem;
      margin-top: 0.55rem;
      padding-top: 0.55rem;
      border-top: 1px solid rgb(226 232 240);
      background: rgb(255 255 255);
    }
    #ptWorkIssueHost #ptiConfirmBtn {
      width: 100%;
    }
    .pti-issue-form {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
    }
    .pti-meta-bar {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.65rem 0.75rem;
      padding: 0.65rem 0.75rem;
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      background: rgb(248 250 252);
    }
    @media (max-width: 720px) {
      .pti-meta-bar {
        grid-template-columns: 1fr;
      }
    }
    .pti-section {
      border: 1px solid rgb(226 232 240);
      border-radius: 0.5rem;
      background: rgb(255 255 255);
      overflow: hidden;
    }
    .pti-section__head {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.5rem 0.75rem;
      padding: 0.55rem 0.75rem;
      border-bottom: 1px solid rgb(241 245 249);
      background: rgb(248 250 252);
    }
    .pti-section__title {
      margin: 0;
      font-size: 0.8125rem;
      font-weight: 700;
      color: rgb(15 23 42);
      line-height: 1.3;
    }
    .pti-section__subtitle {
      margin: 0.15rem 0 0;
      font-size: 0.6875rem;
      color: rgb(100 116 139);
      line-height: 1.35;
    }
    .pti-section__empty {
      margin: 0;
      padding: 0.65rem 0.75rem;
      font-size: 0.75rem;
      color: rgb(100 116 139);
      line-height: 1.45;
      background: rgb(255 255 255);
    }
    .pti-section--empty .pti-table-wrap {
      display: none;
    }
    .pti-section:not(.pti-section--empty) .pti-section__empty {
      display: none;
    }
    .pti-fresh-summary {
      margin: 0;
      padding: 0.45rem 0.75rem 0;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.65rem;
      font-size: 0.8125rem;
      line-height: 1.45;
      color: rgb(51 65 85);
    }
    .pti-fresh-summary:empty {
      display: none;
      padding: 0;
    }
    .pti-fresh-summary-total {
      cursor: help;
      font-weight: 500;
    }
    .pti-fresh-summary-total strong {
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .pti-fresh-summary-warn {
      font-size: 0.6875rem;
      font-weight: 600;
      color: rgb(180 83 9);
      padding: 0.1rem 0.4rem;
      border-radius: 0.25rem;
      background: rgb(255 251 235);
    }
    .pti-fresh-row--edited {
      background: rgb(255 251 235 / 0.55);
    }
    .pti-fresh-qty--edited {
      border-color: rgb(245 158 11);
      background: rgb(255 251 235);
    }
    .pti-edit-badge {
      display: inline-block;
      margin-left: 0.25rem;
      font-size: 0.625rem;
      font-weight: 700;
      color: rgb(180 83 9);
      padding: 0.05rem 0.35rem;
      border-radius: 0.2rem;
      background: rgb(254 243 199);
      vertical-align: middle;
    }
    .pti-submitted-banner {
      display: flex;
      flex-direction: column;
      gap: 0.2rem;
      margin: 0 0 0.75rem;
      padding: 0.65rem 0.85rem;
      border-radius: 0.5rem;
      border: 1px solid rgb(191 219 254);
      background: rgb(239 246 255);
      color: rgb(30 64 175);
    }
    .pti-submitted-banner--done {
      border-color: rgb(167 243 208);
      background: rgb(236 253 245);
      color: rgb(6 95 70);
    }
    .pti-submitted-banner__title {
      font-size: 0.875rem;
      font-weight: 700;
      line-height: 1.35;
    }
    .pti-submitted-banner__hint {
      font-size: 0.75rem;
      line-height: 1.45;
      opacity: 0.92;
    }
    .pti-confirm-lead {
      margin: 0 0 0.65rem;
      font-size: 0.875rem;
      line-height: 1.5;
      color: rgb(51 65 85);
    }
    .pti-confirm-note {
      margin: 0 0 0.65rem;
      padding: 0.45rem 0.6rem;
      border-radius: 0.35rem;
      font-size: 0.8125rem;
      line-height: 1.45;
      color: rgb(146 64 14);
      background: rgb(255 251 235);
    }
    .pti-confirm-meta {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.25rem 0.75rem;
      margin: 0 0 0.75rem;
      font-size: 0.8125rem;
    }
    .pti-confirm-meta dt {
      margin: 0;
      color: rgb(100 116 139);
      font-weight: 600;
    }
    .pti-confirm-meta dd {
      margin: 0;
      color: rgb(15 23 42);
    }
    .pti-confirm-block {
      margin-bottom: 0.75rem;
    }
    .pti-confirm-block__title {
      margin: 0 0 0.35rem;
      font-size: 0.8125rem;
      font-weight: 700;
      color: rgb(15 23 42);
    }
    .pti-confirm-list {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    .pti-confirm-list li {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 0.35rem 0.5rem;
      padding: 0.25rem 0;
      font-size: 0.8125rem;
      border-bottom: 1px solid rgb(241 245 249);
    }
    .pti-confirm-list li:last-child {
      border-bottom: none;
    }
    .pti-confirm-list__item--warn {
      background: rgb(255 251 235 / 0.65);
      margin: 0 -0.35rem;
      padding-left: 0.35rem;
      padding-right: 0.35rem;
      border-radius: 0.25rem;
    }
    .pti-confirm-list__label {
      flex: 1 1 8rem;
      color: rgb(51 65 85);
    }
    .pti-confirm-list__qty {
      font-weight: 600;
      color: rgb(15 23 42);
    }
    .pti-confirm-list__tag {
      font-size: 0.6875rem;
      font-weight: 600;
      color: rgb(180 83 9);
    }
    .pti-confirm-empty {
      margin: 0;
      font-size: 0.8125rem;
      color: rgb(100 116 139);
    }
    .pti-confirm-warn {
      margin: 0.35rem 0 0;
      font-size: 0.75rem;
      font-weight: 600;
      color: rgb(180 83 9);
    }
    #globalConfirmModal .pti-confirm-block:last-child {
      margin-bottom: 0;
    }
    .pti-qty-with-unit {
      display: inline-flex;
      align-items: center;
      justify-content: flex-end;
      gap: 0.25rem;
      width: 100%;
    }
    .pti-qty-with-unit .form-input {
      flex: 0 1 5.5rem;
      min-width: 3.75rem;
    }
    .pti-qty-unit {
      flex: 0 0 auto;
      min-width: 1.5rem;
      font-size: 0.6875rem;
      font-weight: 600;
      color: rgb(100 116 139);
      white-space: nowrap;
      text-align: left;
    }
    .pti-table-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .pti-table-wrap--fresh {
      max-height: min(200px, 38vh);
      overflow-y: auto;
    }
    .pti-table-placeholder {
      text-align: center;
      color: rgb(100 116 139);
      padding: 0.85rem 0.5rem;
      font-size: 0.75rem;
    }
    .pti-issue-form .pti-fresh-table,
    .pti-issue-form .pti-lines-table {
      table-layout: fixed;
      width: 100%;
      margin: 0;
    }
    .pti-issue-form .pti-fresh-table th,
    .pti-issue-form .pti-fresh-table td,
    .pti-issue-form .pti-lines-table th,
    .pti-issue-form .pti-lines-table td {
      padding: 0.45rem 0.55rem;
      vertical-align: middle;
      font-size: 0.75rem;
    }
    .pti-issue-form .pti-fresh-table thead th,
    .pti-issue-form .pti-lines-table thead th {
      background: rgb(248 250 252);
      color: rgb(71 85 105);
      font-weight: 600;
      border-bottom: 1px solid rgb(226 232 240);
    }
    .pti-issue-form .pti-col-batch {
      width: 34%;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      word-break: normal;
    }
    .pti-issue-form .pti-fresh-table .pti-col-qty {
      width: 6.5rem;
    }
    .pti-issue-form .pti-fresh-table .pti-col-stock {
      width: 5.5rem;
      white-space: nowrap;
    }
    .pti-issue-form .pti-lines-table .pti-col-mat {
      width: 42%;
    }
    .pti-issue-form .pti-lines-table .pti-col-lot {
      width: 34%;
    }
    .pti-issue-form .pti-col-qty {
      width: 6.25rem;
      white-space: nowrap;
    }
    .pti-issue-form .pti-col-action {
      width: 3.25rem;
      text-align: right;
      white-space: nowrap;
    }
    .pti-issue-form--readonly .pti-lines-table .pti-col-action {
      display: none;
    }
    .pti-issue-form--readonly .pti-lines-table .pti-col-mat {
      width: 44%;
      max-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .pti-issue-form--readonly .pti-lines-table .pti-col-lot {
      width: 32%;
      padding-left: 0.85rem;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .pti-issue-form--readonly .pti-lines-table .pti-col-qty {
      width: 7.75rem;
      padding-left: 0.65rem;
      padding-right: 0.25rem;
    }
    .pti-issue-form--readonly .pti-lines-table td,
    .pti-issue-form--readonly .pti-lines-table th {
      padding-top: 0.5rem;
      padding-bottom: 0.5rem;
    }
    .pti-issue-form .pti-fresh-qty,
    .pti-issue-form .pti-line-qty,
    .pti-issue-form .pti-fuel-qty {
      width: 100%;
      max-width: 6rem;
      margin-left: auto;
      display: block;
      padding: 0.35rem 0.45rem;
      font-size: 0.8125rem;
      text-align: right;
      box-sizing: border-box;
    }
    .pti-issue-form .pti-col-mat .form-select,
    .pti-issue-form .pti-col-lot .form-select,
    .pti-issue-form .pti-fuel-mat-select,
    .pti-issue-form .pti-fuel-lot-select {
      width: 100%;
      max-width: 100%;
      padding: 0.35rem 0.45rem;
      font-size: 0.8125rem;
      box-sizing: border-box;
    }
    .pti-issue-form .pti-remove-line,
    .pti-issue-form .pti-fuel-remove {
      padding: 0.2rem 0.45rem;
      font-size: 0.6875rem;
    }
    .pti-issue-form .pti-fresh-row--warn {
      background: rgb(255 251 235);
    }
    .pti-issue-form .pti-stock-badge {
      display: inline-block;
      margin-left: 0.15rem;
      padding: 0.05rem 0.35rem;
      border-radius: 0.25rem;
      font-size: 0.625rem;
      font-weight: 700;
      color: rgb(180 83 9);
      background: rgb(254 243 199);
      vertical-align: middle;
    }
    .pti-issue-form .pti-row-error {
      margin-top: 0.2rem;
      font-size: 0.6875rem;
      color: rgb(220 38 38);
      white-space: normal;
      line-height: 1.35;
    }

    /* 库存管理 · 仓库可视化（数据看板各仓库存） */
    .wh-viz-section-head {
      margin-bottom: 10px;
    }
    .wh-viz-section-hint {
      margin: 4px 0 0;
      font-size: 12px;
      color: var(--text-secondary);
      line-height: 1.45;
    }
    .wh-viz-empty {
      text-align: center;
      color: var(--text-secondary);
      font-size: 13px;
      padding: 28px 12px;
      margin: 0;
    }
    .wh-viz-empty--error {
      color: var(--ds-danger-emphasis);
    }
    .wh-viz-empty--inline {
      padding: 12px 0;
    }
    .wh-viz-cards {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
      gap: 12px;
    }
    .wh-viz-cards--hq {
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    }
    .wh-viz-card {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      text-align: left;
      width: 100%;
      padding: 14px 16px;
      border: 1px solid var(--border-color);
      border-radius: var(--radius-md);
      background: var(--card-bg);
      cursor: pointer;
      transition: border-color 0.15s ease, box-shadow 0.15s ease;
      font-family: inherit;
      color: inherit;
    }
    .wh-viz-card:hover {
      border-color: var(--primary-color);
      box-shadow: 0 4px 14px color-mix(in srgb, var(--ds-text) 8%, transparent);
    }
    .wh-viz-card__row {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 8px;
      margin-bottom: 4px;
    }
    .wh-viz-card__name {
      font-size: 15px;
      font-weight: 600;
      color: var(--text-primary);
      line-height: 1.3;
    }
    .wh-viz-card__alert {
      font-size: 11px;
      font-weight: 600;
      color: var(--ds-warning-emphasis);
      background: var(--ds-warning-muted);
      border: 1px solid color-mix(in srgb, var(--ds-warning) 45%, white);
      padding: 2px 8px;
      border-radius: 999px;
      white-space: nowrap;
      flex-shrink: 0;
    }
    .wh-viz-card__value {
      font-size: 18px;
      font-weight: 700;
      color: var(--text-primary);
      margin: 0 0 8px;
      line-height: 1.2;
      font-variant-numeric: tabular-nums;
    }
    .wh-viz-card__share-row {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
    }
    .wh-viz-card__share-track {
      flex: 1;
      height: 6px;
      border-radius: 999px;
      background: color-mix(in srgb, var(--primary-color) 12%, var(--border-color));
      overflow: hidden;
    }
    .wh-viz-card__share-fill {
      height: 100%;
      border-radius: inherit;
      background: color-mix(in srgb, var(--primary-color) 72%, white);
      min-width: 2px;
    }
    .wh-viz-card__share-pct {
      font-size: 11px;
      font-weight: 600;
      color: var(--text-secondary);
      white-space: nowrap;
      font-variant-numeric: tabular-nums;
    }
    .wh-viz-card__badges {
      display: flex;
      flex-wrap: wrap;
      gap: 6px 10px;
      font-size: 11px;
      color: var(--text-secondary);
      margin-bottom: 6px;
    }
    .wh-viz-card__badges span {
      padding: 2px 8px;
      border-radius: 999px;
      background: var(--table-header-bg);
      border: 1px solid var(--border-color);
    }
    .wh-viz-card__mgr {
      background: transparent;
      border: none;
      padding: 0;
    }
    .wh-viz-card__loc {
      font-size: 12px;
      color: var(--text-secondary);
      margin: 0 0 4px;
      line-height: 1.4;
    }
    .wh-viz-card__qtyline {
      font-size: 11px;
      color: var(--text-secondary);
      margin: 0 0 8px;
      line-height: 1.4;
      opacity: 0.9;
    }
    .wh-viz-card__cta {
      font-size: 12px;
      font-weight: 600;
      color: var(--primary-color);
      margin-top: auto;
    }
    .wh-viz-detail {
      margin-top: 4px;
      padding-top: 12px;
      border-top: 1px dashed var(--border-color);
    }
    .wh-viz-detail-head {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      gap: 12px;
      margin-bottom: 12px;
    }
    .wh-viz-detail-title-wrap {
      flex: 1;
      min-width: 160px;
    }
    .wh-viz-detail-title {
      margin: 0;
      font-size: 17px;
      font-weight: 600;
      color: var(--text-primary);
    }
    .wh-viz-detail-meta {
      margin: 4px 0 0;
      font-size: 12px;
      color: var(--text-secondary);
      line-height: 1.45;
    }
    .wh-viz-detail-tabs {
      display: inline-flex;
      gap: 4px;
      margin-bottom: 12px;
      padding: 3px;
      border-radius: 10px;
      border: 1px solid var(--border-color);
      background: var(--table-header-bg);
    }
    .wh-viz-tab {
      border: none;
      background: transparent;
      color: var(--text-secondary);
      font-size: 13px;
      font-weight: 600;
      padding: 6px 14px;
      border-radius: 8px;
      cursor: pointer;
      font-family: inherit;
      line-height: 1.2;
    }
    .wh-viz-tab--active {
      background: var(--card-bg);
      color: var(--text-primary);
      box-shadow: 0 1px 3px color-mix(in srgb, var(--ds-text) 10%, transparent);
    }
    .wh-viz-search-row {
      margin-bottom: 10px;
    }
    .wh-viz-search {
      width: 100%;
      max-width: 320px;
    }
    .wh-viz-summary {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 12px;
    }
    .wh-viz-stat {
      padding: 8px 12px;
      border: 1px solid var(--border-color);
      border-radius: var(--radius-sm);
      background: var(--table-header-bg);
      min-width: 80px;
    }
    .wh-viz-stat--primary {
      border-color: color-mix(in srgb, var(--primary-color) 35%, var(--border-color));
      background: color-mix(in srgb, var(--primary-color) 8%, var(--card-bg));
    }
    .wh-viz-stat--warn {
      border-color: color-mix(in srgb, var(--ds-warning) 45%, white);
      background: var(--ds-warning-muted);
    }
    .wh-viz-stat__label {
      display: block;
      font-size: 11px;
      color: var(--text-secondary);
    }
    .wh-viz-stat__val {
      display: block;
      font-size: 15px;
      font-weight: 600;
      margin-top: 2px;
      font-variant-numeric: tabular-nums;
    }
    .wh-viz-bars {
      padding: 14px 16px;
      border: 1px solid var(--border-color);
      border-radius: var(--radius-sm);
      background: var(--card-bg);
    }
    .wh-viz-bars__title {
      font-size: 12px;
      font-weight: 600;
      color: var(--text-secondary);
      margin: 0 0 12px;
    }
    .wh-viz-bar-row {
      display: grid;
      grid-template-columns: minmax(100px, 1.2fr) 2fr auto;
      gap: 10px;
      align-items: center;
      margin-bottom: 8px;
      font-size: 13px;
    }
    .wh-viz-bar-row:last-child {
      margin-bottom: 0;
    }
    .wh-viz-bar-row__label em {
      display: block;
      font-style: normal;
      color: var(--text-secondary);
      font-size: 11px;
      margin-top: 2px;
    }
    .wh-viz-bar-track {
      height: 8px;
      border-radius: 4px;
      background: var(--border-color);
      overflow: hidden;
    }
    .wh-viz-bar-fill {
      height: 100%;
      border-radius: inherit;
      background: color-mix(in srgb, var(--primary-color) 70%, white);
    }
    .wh-viz-bar-row__pct {
      font-size: 12px;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
      color: var(--text-secondary);
      min-width: 3.5em;
      text-align: right;
    }
    .wh-viz-cat-fold {
      border: 1px solid var(--border-color);
      border-radius: var(--radius-sm);
      background: var(--card-bg);
      margin-bottom: 10px;
    }
    .wh-viz-cat-fold:last-child {
      margin-bottom: 0;
    }
    .wh-viz-cat-fold__summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 10px 14px;
      cursor: pointer;
      list-style: none;
      font-weight: 600;
      font-size: 13px;
      color: var(--text-primary);
      background: var(--table-header-bg);
    }
    .wh-viz-cat-fold__summary::-webkit-details-marker {
      display: none;
    }
    .wh-viz-cat-fold__meta {
      font-size: 12px;
      font-weight: 500;
      color: var(--text-secondary);
      font-variant-numeric: tabular-nums;
    }
    .wh-viz-table-wrap {
      border-top: 1px solid var(--border-color);
    }
    .wh-viz-mat-table th {
      font-size: 12px;
      white-space: nowrap;
    }
    .wh-viz-mat-table td {
      font-size: 13px;
      vertical-align: top;
    }
    .wh-viz-mat-name {
      font-weight: 500;
      min-width: 120px;
    }
    .wh-viz-mat-code {
      font-size: 12px;
      color: var(--text-secondary);
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    }
    .wh-viz-mat-row--alert {
      background: color-mix(in srgb, var(--ds-warning) 8%, transparent);
    }
    .wh-viz-mat-badge {
      display: inline-block;
      margin-left: 6px;
      font-size: 10px;
      font-weight: 600;
      color: var(--ds-warning-emphasis);
      background: var(--ds-warning-muted);
      padding: 1px 6px;
      border-radius: 999px;
      vertical-align: middle;
    }
    .wh-viz-lots-cell {
      font-size: 12px;
      line-height: 1.45;
      max-width: 220px;
    }
    .wh-viz-lot-line {
      display: block;
    }
    .wh-viz-lot-line + .wh-viz-lot-line {
      margin-top: 2px;
    }
    .wh-viz-lot-code {
      font-size: 11px;
      padding: 1px 4px;
      border-radius: 4px;
      background: var(--table-header-bg);
    }
    .wh-viz-lots-empty {
      font-size: 12px;
      color: var(--text-secondary);
    }
    .wh-viz-table .wh-viz-row {
      cursor: pointer;
    }
    .wh-viz-table .wh-viz-row:hover td {
      background: color-mix(in srgb, var(--primary-color) 6%, transparent);
    }

    .wh-stock-table th.wh-stock-col-wh.hidden,
    .wh-stock-table td.wh-stock-col-wh.hidden {
      display: none;
    }
    .wh-stock-table th.wh-stock-col-type.hidden,
    .wh-stock-table td.wh-stock-col-type.hidden {
      display: none;
    }
    .wh-stock-table .wh-stock-group--even > td {
      background: color-mix(in srgb, var(--card-bg) 92%, var(--border-color));
    }
    .wh-stock-table .wh-stock-lot-row > td:not([rowspan]) {
      border-top: 1px dashed color-mix(in srgb, var(--border-color) 80%, transparent);
    }
    .wh-stock-table .wh-stock-lot-code {
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
      font-size: 13px;
      white-space: nowrap;
    }
    .wh-stock-table .wh-stock-total-cell {
      font-weight: 600;
      white-space: nowrap;
    }
    .wh-stock-table .wh-stock-lot-qty {
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }
    .wh-stock-table .wh-stock-lot-date {
      white-space: nowrap;
      font-size: 12px;
    }
    .wh-stock-table td[rowspan] {
      vertical-align: top;
    }
    .wh-stock-lot-col-head {
      white-space: nowrap;
    }
    .wh-stock-lot-col-head__label {
      margin-right: 0.15rem;
    }
    .wh-stock-table .wh-stock-lot-col-head .fp-help-tip {
      vertical-align: middle;
      font-size: 0.95rem;
    }
    .wh-stock-lot-expand-cell {
      padding-top: 0.35rem;
      padding-bottom: 0.45rem;
    }
    .wh-stock-lot-expand-cell .btn {
      padding: 0;
      border: none;
      background: transparent;
      box-shadow: none;
      font-size: 12px;
      font-weight: 600;
      color: var(--ds-brand, var(--primary-color));
    }
    .wh-stock-lot-expand-cell .btn:hover {
      color: var(--ds-brand-hover, var(--primary-color));
      text-decoration: underline;
      background: transparent;
    }
    .wh-stock-mat-type-tag {
      display: inline-block;
      font-size: 11px;
      font-weight: 600;
      line-height: 1.3;
      padding: 0.1rem 0.45rem;
      border-radius: 0.25rem;
      white-space: nowrap;
      border: none;
      background: color-mix(in srgb, var(--ds-border) 28%, var(--ds-bg-surface));
      color: var(--ds-text-secondary);
    }
    .wh-stock-lot-qc-tag {
      margin-left: 0.35rem;
      font-size: 11px;
      line-height: 1.2;
      font-weight: normal;
      font-family: inherit;
      color: color-mix(in srgb, var(--ds-text-muted, #64748b) 88%, transparent);
      white-space: nowrap;
    }
    .wh-stock-alert-tag {
      display: inline-block;
      margin-left: 0.4rem;
      font-size: 11px;
      line-height: 1.2;
      font-weight: 500;
      vertical-align: middle;
      cursor: help;
      white-space: nowrap;
    }
    .wh-stock-alert-tag--low {
      color: color-mix(in srgb, var(--ds-warning, #b45309) 82%, var(--ds-text));
    }
    .wh-stock-alert-tag--high {
      color: color-mix(in srgb, var(--ds-text-muted, #64748b) 88%, transparent);
    }

    /* --- UI core: 筛选标签、字段校验、表格加载态、粘性列、紧凑密度 --- */
    .filter-field {
      display: flex;
      flex-direction: column;
      gap: 4px;
      min-width: 0;
    }
    .filter-field--grow {
      flex: 1 1 12rem;
      min-width: 10rem;
    }
    .filter-field__label {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.02em;
      color: var(--ds-text-muted, var(--text-secondary));
      line-height: 1.2;
      padding-left: 2px;
    }
    /* 彩色 card 表头：筛选标签用表头前景色（三主题均为浅字） */
    .card-header .filter-field__label,
    .card-header.report-page-header .filter-field__label,
    .card-header.report-page-header .filter-field--range > .filter-field__label {
      color: var(--header-bar-fg, var(--ds-on-inverse));
      opacity: 0.95;
    }
    .card-body .filter-field__label,
    .purchase-filter-wrap .filter-field__label,
    #commandPaletteModal .filter-field__label {
      color: var(--ds-text-muted, var(--text-secondary));
      opacity: 1;
    }
    /* filter-field 为纵向布局；子控件勿沿用横向 flex 以免撑高关键词框 */
    .filter-field .form-input,
    .filter-field .form-select {
      flex: none;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
    }
    .filter-field--keyword {
      flex: 0 1 auto;
      min-width: 11rem;
      max-width: 18rem;
    }
    .filter-field--narrow {
      max-width: 13rem;
      min-width: 9rem;
    }
    #approve-center .header-filter-toolbar .filter-field--keyword,
    #cashier-payment .cashier-toolbar .filter-field--keyword {
      flex: 0 0 auto;
    }
    .card-header.report-page-header .report-toolbar-bottom .filter-field--keyword {
      flex: 0 1 28rem;
      max-width: 28rem;
      min-width: 11rem;
    }
    .card-header.report-page-header .report-toolbar-bottom .report-toolbar-keyword,
    .card-header .header-filter-keyword,
    #cashier-payment .cashier-filter-input {
      flex: none;
      width: 100%;
    }
    .header-filter-toolbar,
    .cashier-toolbar,
    .cs-filter-bar:not(.wh-doc-filter-bar),
    .purchase-filter-row:not(.wh-doc-filter-bar) {
      align-items: flex-end;
    }
    .purchase-filter-row .filter-field,
    .report-filters__grid .filter-field,
    .report-toolbar-bottom .filter-field {
      flex: 0 1 auto;
      min-width: 0;
    }
    .purchase-filter-row .filter-field--grow {
      flex: 1 1 10rem;
    }
    .report-toolbar-bottom .filter-field--keyword {
      flex: 0 1 auto;
    }
    .report-filters__grid .filter-field .form-select,
    .report-filters__grid .filter-field .form-input {
      width: 100%;
      min-width: 0;
    }
    .wh-viz-detail-toolbar .filter-field--grow {
      flex: 1 1 12rem;
      max-width: 20rem;
      margin-left: auto;
    }
    .workspace-trace-portal__search.cs-filter-bar {
      display: flex;
      flex-wrap: nowrap;
      align-items: stretch;
      gap: 10px;
    }
    .workspace-trace-portal__search .filter-field--grow {
      flex: 1 1 12rem;
      min-width: 10rem;
    }
    .filter-field--range {
      display: flex;
      flex-direction: column;
      gap: 4px;
      min-width: 0;
    }
    .filter-field--range .report-date-inline {
      display: inline-flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 6px;
    }
    #commandPaletteModal .filter-field {
      margin-bottom: 0;
    }
    .table-view-toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
    }
    .table-view-toolbar__hint {
      font-size: 11px;
      color: var(--ds-text-muted, var(--text-secondary));
    }
    .field-invalid {
      border-color: var(--ds-danger, #dc2626) !important;
      box-shadow: 0 0 0 1px color-mix(in srgb, var(--ds-danger, #dc2626) 35%, transparent);
    }
    .field-error-hint {
      font-size: 11px;
      color: var(--ds-danger, #dc2626);
      margin-top: 4px;
      line-height: 1.3;
    }
    .table-state-row td {
      padding: 0 !important;
      border: none !important;
    }
    .table-state {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 28px 16px;
      color: var(--ds-text-muted, var(--text-secondary));
      font-size: 13px;
    }
    .table-state--empty {
      flex-direction: column;
      gap: 6px;
      padding: 32px 20px;
    }
    .table-state__text {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      text-align: center;
      line-height: 1.45;
    }
    .table-state__hint {
      font-size: 12px;
      color: var(--ds-text-muted, var(--text-secondary));
      max-width: 420px;
      opacity: 0.92;
    }
    .table-state__spinner {
      width: 18px;
      height: 18px;
      border: 2px solid color-mix(in srgb, var(--ds-text-muted) 25%, transparent);
      border-top-color: var(--ds-brand, var(--primary-color));
      border-radius: 50%;
      animation: cs-table-spin 0.7s linear infinite;
      flex-shrink: 0;
    }
    @keyframes cs-table-spin {
      to { transform: rotate(360deg); }
    }
    .table-sticky-lead {
      --sticky-col-1: 7.25rem;
      --sticky-col-2: 5.5rem;
    }
    .table-sticky-lead.table-sticky-lead--cashier {
      --sticky-col-1: 2.75rem;
      --sticky-col-2: 7.25rem;
    }
    .table-sticky-lead.table-sticky-lead--bill {
      --sticky-col-1: 8.75rem;
    }
    .table-sticky-lead.table-sticky-lead--bill th:nth-child(2),
    .table-sticky-lead.table-sticky-lead--bill td:nth-child(2) {
      position: static;
      left: auto;
      min-width: auto;
      box-shadow: none;
    }
    .table-sticky-lead.table-sticky-lead--bill th:nth-child(1),
    .table-sticky-lead.table-sticky-lead--bill td:nth-child(1) {
      box-shadow: 4px 0 8px -4px rgba(15, 23, 42, 0.12);
    }
    .table-sticky-lead.table-sticky-lead--bill thead th:nth-child(2) {
      z-index: auto;
      background: var(--ds-bg-muted, #f1f5f9);
    }
    .table-sticky-lead th:nth-child(1),
    .table-sticky-lead th:nth-child(2),
    .table-sticky-lead td:nth-child(1),
    .table-sticky-lead td:nth-child(2) {
      position: sticky;
      z-index: 2;
      background: var(--ds-bg-surface, #fff);
    }
    .table-sticky-lead th:nth-child(1),
    .table-sticky-lead td:nth-child(1) {
      left: 0;
      min-width: var(--sticky-col-1);
    }
    .table-sticky-lead th:nth-child(2),
    .table-sticky-lead td:nth-child(2) {
      left: var(--sticky-col-1);
      min-width: var(--sticky-col-2);
      box-shadow: 4px 0 8px -4px rgba(15, 23, 42, 0.12);
    }
    .table-sticky-lead thead th:nth-child(1),
    .table-sticky-lead thead th:nth-child(2) {
      z-index: 3;
      background: var(--ds-bg-muted, #f1f5f9);
    }
    .table--density-compact th,
    .table--density-compact td {
      padding: 6px 8px;
      font-size: 12px;
    }
    .table--density-compact .status-capsule {
      font-size: 11px;
      padding: 2px 6px;
    }
    .table-container--scroll-hint {
      position: relative;
    }
    .table-container--scroll-hint.can-scroll-x.at-scroll-start:not(.at-scroll-end) {
      box-shadow: inset -14px 0 14px -10px rgba(15, 23, 42, 0.1);
    }
    .table-container--scroll-hint.can-scroll-x.at-scroll-end:not(.at-scroll-start) {
      box-shadow: inset 14px 0 14px -10px rgba(15, 23, 42, 0.1);
    }
    .table-container--scroll-hint.can-scroll-x:not(.at-scroll-start):not(.at-scroll-end) {
      box-shadow:
        inset 14px 0 14px -10px rgba(15, 23, 42, 0.1),
        inset -14px 0 14px -10px rgba(15, 23, 42, 0.1);
    }
    .report-table-totals {
      margin-top: 12px;
      padding: 10px 14px;
      border: 1px solid var(--border-color, #e2e8f0);
      border-radius: 0.5rem;
      background: var(--ds-bg-muted, #f8fafc);
    }
    .report-table-totals__grid {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 20px;
      font-size: 13px;
      color: var(--text-primary, #0f172a);
    }
    .report-table-totals__label {
      font-weight: 600;
    }
    .report-table-totals__k {
      color: var(--ds-text-muted, #64748b);
      margin-right: 4px;
    }
    .report-table-totals__item strong {
      font-variant-numeric: tabular-nums;
      font-weight: 700;
    }
    #receivablesDetailsTable.table--density-compact th,
    #receivablesDetailsTable.table--density-compact td,
    #payablesDetailsTable.table--density-compact th,
    #payablesDetailsTable.table--density-compact td {
      padding: 5px 7px;
      font-size: 12px;
    }
    #receivablesDetailsTable.table--density-compact.table-sticky-lead--bill,
    #payablesDetailsTable.table--density-compact.table-sticky-lead--bill {
      --sticky-col-1: 7.25rem;
    }
    #receivablesDetailsTable.table--density-compact .approval-doc-link,
    #payablesDetailsTable.table--density-compact .approval-doc-link {
      font-size: 12px;
    }
    #approvalBillsTable.table--density-compact th,
    #approvalBillsTable.table--density-compact td,
    #cashier-payment .table-sticky-lead.table--density-compact th,
    #cashier-payment .table-sticky-lead.table--density-compact td {
      padding: 5px 7px;
      font-size: 12px;
    }
    #approvalBillsTable.table--density-compact.table-sticky-lead {
      --sticky-col-1: 7.25rem;
      --sticky-col-2: 5rem;
    }
    #approvalBillsTable thead th {
      background: var(--table-header-bg);
      color: var(--table-header-fg);
      border-bottom: 1px solid var(--table-header-border);
    }
    #approvalBillsTable.table-sticky-lead thead th:nth-child(1),
    #approvalBillsTable.table-sticky-lead thead th:nth-child(2),
    #approvalBillsTable.table-sticky-lead thead th:last-child {
      background: var(--table-header-bg);
      color: var(--table-header-fg);
    }

    /* 人事 · 岗位权限弹窗 */
    .org-position-perm-modal {
      max-width: 44rem;
      width: calc(100vw - 2rem);
    }
    .org-position-perm-body {
      max-height: min(78vh, 42rem);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
    }
    .org-position-perm-lead {
      margin: 0;
      font-size: 0.8125rem;
      color: var(--ds-text-muted, #64748b);
      line-height: 1.45;
    }
    .org-position-wh-card {
      flex-shrink: 0;
      border: 1px solid #bfdbfe;
      border-radius: 0.625rem;
      background: linear-gradient(180deg, #f0f9ff 0%, #f8fafc 100%);
      padding: 0.75rem 0.875rem;
    }
    .org-position-wh-card-head {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 0.35rem 0.75rem;
      margin-bottom: 0.5rem;
    }
    .org-position-wh-card-title {
      font-size: 0.875rem;
      font-weight: 600;
      color: #0f172a;
    }
    .org-position-wh-card-sub {
      font-size: 0.75rem;
      color: #64748b;
    }
    .org-position-wh-hint {
      margin: 0 0 0.5rem;
      font-size: 0.75rem;
      color: #92400e;
      background: #fffbeb;
      border: 1px solid #fde68a;
      border-radius: 0.375rem;
      padding: 0.35rem 0.5rem;
    }
    .org-position-wh-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
    }
    .org-pos-wh-chip {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      padding: 0.4rem 0.75rem;
      border-radius: 9999px;
      border: 1px solid #cbd5e1;
      background: #fff;
      font-size: 0.8125rem;
      color: #334155;
      cursor: pointer;
      user-select: none;
      transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
    }
    .org-pos-wh-chip:hover {
      border-color: #93c5fd;
    }
    .org-pos-wh-chip.is-selected {
      border-color: #2563eb;
      background: #eff6ff;
      color: #1d4ed8;
      box-shadow: 0 0 0 1px #bfdbfe;
    }
    .org-pos-wh-chip input {
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }
    .org-position-perm-toolbar {
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }
    .org-position-perm-toolbar-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem;
    }
    .org-position-perm-toolbar-row .form-input {
      flex: 1 1 12rem;
      min-width: 10rem;
    }
    .org-position-perm-only-sel {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-size: 0.8125rem;
      color: #475569;
      white-space: nowrap;
    }
    .org-position-perm-presets .org-position-perm-toolbar-label {
      font-size: 0.75rem;
      font-weight: 600;
      color: #64748b;
      margin-right: 0.15rem;
    }
    .org-position-perm-toolbar-meta {
      justify-content: space-between;
    }
    .org-position-perm-summary {
      font-size: 0.8125rem;
      font-weight: 600;
      color: #0f766e;
    }
    .org-position-perm-list {
      flex: 1 1 auto;
      min-height: 12rem;
      overflow-y: auto;
      border: 1px solid #e2e8f0;
      border-radius: 0.5rem;
      padding: 0.5rem;
      background: #fafafa;
    }
    .org-perm-module {
      border: 1px solid #e2e8f0;
      border-radius: 0.5rem;
      background: #fff;
      margin-bottom: 0.5rem;
      overflow: hidden;
    }
    .org-perm-module:last-child {
      margin-bottom: 0;
    }
    .org-perm-module-summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      padding: 0.5rem 0.65rem;
      cursor: pointer;
      list-style: none;
      font-size: 0.8125rem;
      font-weight: 600;
      color: #334155;
      background: #f8fafc;
    }
    .org-perm-module-summary::-webkit-details-marker {
      display: none;
    }
    .org-perm-module-summary::before {
      content: '▸';
      color: #94a3b8;
      font-size: 0.75rem;
      transition: transform 0.15s;
    }
    .org-perm-module[open] > .org-perm-module-summary::before {
      transform: rotate(90deg);
    }
    .org-perm-module-meta {
      font-size: 0.75rem;
      font-weight: 500;
      color: #64748b;
    }
    .org-perm-module-meta.has-selected {
      color: #0369a1;
    }
    .org-perm-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.25rem 0.75rem;
      padding: 0.5rem 0.65rem 0.65rem;
    }
    @media (max-width: 520px) {
      .org-perm-grid {
        grid-template-columns: 1fr;
      }
    }
    .org-perm-item {
      display: flex;
      align-items: flex-start;
      gap: 0.4rem;
      padding: 0.35rem 0.25rem;
      border-radius: 0.375rem;
      font-size: 0.8125rem;
      line-height: 1.35;
      cursor: pointer;
    }
    .org-perm-item:hover {
      background: #f1f5f9;
    }
    .org-perm-item.is-checked {
      background: #ecfdf5;
    }

    /* 过磅确认入库：附件上传反馈 */
    #warehouseInboundModal.modal {
      align-items: center;
      justify-content: center;
      padding: 20px 16px;
    }
    #warehouseInboundModal .modal-content.wi-modal-shell {
      width: min(94vw, 760px);
      max-width: 760px;
      max-height: 92vh;
      overflow-x: hidden;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      display: block;
      padding: 0;
      margin: 0;
    }
    #warehouseInboundModal .wi-modal-header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      padding: 18px 20px 14px;
      border-bottom: 1px solid var(--border-color, var(--ds-border));
      background: var(--ds-bg-surface-raised, #f8fafc);
      position: sticky;
      top: 0;
      z-index: 2;
    }
    #warehouseInboundModal .wi-modal-header .modal-title {
      margin: 0;
      font-size: 18px;
      font-weight: 700;
      line-height: 1.3;
    }
    #warehouseInboundModal .wi-modal-subtitle {
      margin: 4px 0 0;
      font-size: 13px;
      color: var(--muted, #64748b);
      line-height: 1.45;
    }
    #warehouseInboundModal .wi-modal-body {
      padding: 16px 20px 20px;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    #warehouseInboundModal .wi-modal-hint {
      margin: 0;
      padding: 10px 12px;
      border-radius: 10px;
      font-size: 13px;
      line-height: 1.5;
      color: #334155;
      background: color-mix(in srgb, var(--primary, #2563eb) 8%, #fff);
      border: 1px solid color-mix(in srgb, var(--primary, #2563eb) 18%, var(--border-color, #e2e8f0));
    }
    #warehouseInboundModal .wi-modal-hint.hidden,
    #warehouseInboundModal .wi-modal-meta.hidden {
      display: none;
    }
    #warehouseInboundModal .wi-modal-meta {
      margin: 0;
      font-size: 12px;
      line-height: 1.45;
      color: #64748b;
      padding: 8px 10px;
      border-radius: 8px;
      background: #f8fafc;
      border: 1px solid #e2e8f0;
    }
    #warehouseInboundModal .wi-panel {
      border: 1px solid var(--border-color, var(--ds-border));
      border-radius: 12px;
      background: var(--ds-bg-surface, #fff);
      padding: 14px 16px 16px;
    }
    #warehouseInboundModal .wi-panel--weigh {
      background: color-mix(in srgb, #f59e0b 6%, #fff);
      border-color: color-mix(in srgb, #f59e0b 28%, #e2e8f0);
    }
    #warehouseInboundModal .wi-panel__title {
      display: flex;
      align-items: center;
      gap: 8px;
      margin: 0 0 10px;
      font-size: 14px;
      font-weight: 700;
      color: var(--ds-text, #0f172a);
    }
    #warehouseInboundModal .wi-panel__step {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 700;
      color: var(--primary, #2563eb);
      background: color-mix(in srgb, var(--primary, #2563eb) 12%, #fff);
      border: 1px solid color-mix(in srgb, var(--primary, #2563eb) 25%, transparent);
      flex-shrink: 0;
    }
    #warehouseInboundModal .wi-panel--weigh .wi-panel__step {
      color: #b45309;
      background: color-mix(in srgb, #f59e0b 14%, #fff);
      border-color: color-mix(in srgb, #f59e0b 30%, transparent);
    }
    #warehouseInboundModal .wi-panel__hint {
      margin: 0 0 12px;
      font-size: 12px;
      line-height: 1.45;
      color: #92400e;
    }
    #warehouseInboundModal .wi-field-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px 14px;
    }
    #warehouseInboundModal .wi-field--full {
      grid-column: 1 / -1;
    }
    #warehouseInboundModal .wi-finance-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px 14px;
      margin-top: 12px;
      padding-top: 12px;
      border-top: 1px dashed #e2e8f0;
    }
    #warehouseInboundModal .wi-field .form-label {
      font-size: 13px;
      font-weight: 600;
      margin-bottom: 6px;
      color: #334155;
    }
    #warehouseInboundModal .wi-weigh-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
    }
    #warehouseInboundModal .wi-weigh-input {
      font-size: 16px;
      font-weight: 600;
      text-align: right;
    }
    #warehouseInboundModal .wi-net-readonly {
      background: #fff;
      color: #0f172a;
      font-weight: 700;
      text-align: right;
    }
    #warehouseInboundModal .wi-attach-input {
      position: absolute;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }
    #warehouseInboundModal .wi-attach-dropzone {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 4px;
      min-height: 112px;
      padding: 16px;
      border: 2px dashed #cbd5e1;
      border-radius: 12px;
      background: #f8fafc;
      cursor: pointer;
      transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
      text-align: center;
    }
    #warehouseInboundModal .wi-attach-dropzone:hover,
    #warehouseInboundModal .wi-attach-dropzone:focus-visible {
      border-color: color-mix(in srgb, var(--primary, #2563eb) 45%, #cbd5e1);
      background: color-mix(in srgb, var(--primary, #2563eb) 6%, #fff);
      outline: none;
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary, #2563eb) 12%, transparent);
    }
    #warehouseInboundModal .wi-attach-dropzone--drag {
      border-color: var(--primary, #2563eb);
      background: color-mix(in srgb, var(--primary, #2563eb) 10%, #fff);
      box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary, #2563eb) 18%, transparent);
    }
    #warehouseInboundModal .wi-attach-dropzone--uploading {
      opacity: 0.72;
      pointer-events: none;
    }
    #warehouseInboundModal .wi-attach-dropzone__icon {
      font-size: 28px;
      color: #64748b;
      margin-bottom: 2px;
    }
    #warehouseInboundModal .wi-attach-dropzone__title {
      margin: 0;
      font-size: 14px;
      font-weight: 600;
      color: #334155;
    }
    #warehouseInboundModal .wi-attach-dropzone__meta {
      margin: 0;
      font-size: 12px;
      color: #64748b;
    }
    #warehouseInboundModal .wi-attach-hint {
      margin: 10px 0 0;
      font-size: 12px;
      line-height: 1.45;
      color: #64748b;
    }
    #warehouseInboundModal .wi-items-table-wrap {
      margin: 0;
      border-radius: 8px;
      overflow: visible;
      border: 1px solid #e2e8f0;
    }
    #warehouseInboundModal .wi-items-table-wrap.table-container {
      overflow-x: visible;
      margin-bottom: 0;
    }
    #warehouseInboundModal .wi-items-table {
      margin: 0;
      width: 100%;
      min-width: 0;
      table-layout: fixed;
    }
    #warehouseInboundModal .wi-items-table th,
    #warehouseInboundModal .wi-items-table td {
      white-space: normal;
      word-break: break-word;
      padding: 10px 12px;
      font-size: 13px;
      vertical-align: middle;
    }
    #warehouseInboundModal .wi-items-table th:nth-child(1),
    #warehouseInboundModal .wi-items-table td:nth-child(1) {
      width: 34%;
    }
    #warehouseInboundModal .wi-items-table th:nth-child(2),
    #warehouseInboundModal .wi-items-table td:nth-child(2) {
      width: 20%;
      text-align: right;
    }
    #warehouseInboundModal .wi-items-table th:nth-child(3),
    #warehouseInboundModal .wi-items-table td:nth-child(3) {
      width: 12%;
    }
    #warehouseInboundModal .wi-items-table th:nth-child(4),
    #warehouseInboundModal .wi-items-table td:nth-child(4) {
      width: 34%;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 12px;
      line-height: 1.35;
    }
    #warehouseInboundModal .wi-items-table .wi-mat-qty-inp {
      width: 100%;
      max-width: 120px;
      margin-left: auto;
      text-align: right;
    }
    #warehouseInboundModal .wi-modal-footer {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      padding: 12px 20px 16px;
      border-top: 1px solid var(--border-color, var(--ds-border));
      background: var(--ds-bg-surface-raised, #f8fafc);
      position: sticky;
      bottom: 0;
      z-index: 2;
    }
    #warehouseInboundModal .wi-modal-footer__spacer {
      flex: 1 1 auto;
      min-width: 8px;
    }
    .form-step-nav {
      margin: 0 0 4px;
    }
    .form-step-nav__track {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      list-style: none;
      margin: 0;
      padding: 0;
    }
    .form-step-nav__item {
      flex: 1 1 auto;
      min-width: 0;
    }
    .form-step-nav__btn {
      display: flex;
      align-items: center;
      gap: 8px;
      width: 100%;
      padding: 8px 10px;
      border: 1px solid var(--ds-border, #e2e8f0);
      border-radius: 10px;
      background: var(--ds-bg-surface, #fff);
      color: var(--ds-text-muted, #64748b);
      font-size: 12px;
      cursor: pointer;
      text-align: left;
      transition: border-color 0.15s, background 0.15s;
    }
    .form-step-nav__btn:hover {
      border-color: color-mix(in srgb, var(--ds-brand, #2563eb) 35%, var(--ds-border));
    }
    .form-step-nav__item--current .form-step-nav__btn {
      border-color: color-mix(in srgb, var(--ds-brand, #2563eb) 45%, var(--ds-border));
      background: color-mix(in srgb, var(--ds-brand, #2563eb) 8%, #fff);
      color: var(--ds-text, #0f172a);
      font-weight: 600;
    }
    .form-step-nav__item--done .form-step-nav__btn {
      color: var(--ds-text, #334155);
    }
    .form-step-nav__num {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 22px;
      height: 22px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 700;
      background: var(--ds-bg-muted, #f1f5f9);
      flex-shrink: 0;
    }
    .form-step-nav__item--current .form-step-nav__num {
      background: var(--ds-brand, #2563eb);
      color: #fff;
    }
    .form-step-nav__item--done .form-step-nav__num {
      background: color-mix(in srgb, var(--ds-success, #16a34a) 18%, #fff);
      color: var(--ds-success-emphasis, #15803d);
    }
    .form-step-nav__label {
      line-height: 1.3;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .form-step-issue {
      margin: 0 0 8px;
      padding: 8px 12px;
      border-radius: 8px;
      font-size: 13px;
      line-height: 1.45;
      color: var(--ds-danger-emphasis, #b91c1c);
      background: var(--ds-danger-muted, #fef2f2);
      border: 1px solid color-mix(in srgb, var(--ds-danger) 25%, transparent);
    }
    .form-step-issue.hidden {
      display: none;
    }
    #warehouseInboundModal .wi-wizard-panel--off,
    #cycleTruckInboundModal .wi-wizard-panel--off {
      display: none !important;
    }
    #warehouseInboundModal.wi-modal-readonly .wi-attach-dropzone,
    #warehouseInboundModal.wi-modal-readonly #wiCycleAttachDropzone {
      display: none;
    }
    @media (max-width: 640px) {
      #warehouseInboundModal .wi-field-grid,
      #warehouseInboundModal .wi-finance-grid,
      #warehouseInboundModal .wi-weigh-grid {
        grid-template-columns: 1fr;
      }
    }

    .wi-cycle-attach-list {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-top: 8px;
    }
    .wi-cycle-attach-wrap--has-files .wi-cycle-attach-list:not(.hidden) {
      padding: 8px 10px;
      margin-top: 10px;
      border: 1px solid color-mix(in srgb, var(--ds-success, #16a34a) 45%, #e2e8f0);
      border-radius: 8px;
      background: color-mix(in srgb, var(--ds-success, #16a34a) 8%, #fff);
    }
    .wi-cycle-attach-item {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      color: var(--text-primary, #0f172a);
      padding: 4px 0;
    }
    .wi-cycle-attach-item .fa-file-text-o,
    .wi-cycle-attach-item .fa-check-circle {
      color: var(--ds-success, #16a34a);
      flex-shrink: 0;
    }
    .wi-cycle-attach-item__name {
      font-weight: 500;
      flex: 1;
      min-width: 0;
      word-break: break-all;
    }
    .wi-cycle-attach-item__meta {
      font-size: 11px;
      color: var(--ds-success, #16a34a);
      font-weight: 600;
      flex-shrink: 0;
    }
    .wh-stock-lot-tip {
      margin-left: 2px;
      padding: 0 4px;
      border: none;
      background: transparent;
      color: var(--text-secondary, #64748b);
      font-size: 12px;
      line-height: 1;
      cursor: help;
      vertical-align: middle;
    }
    #globalConfirmMessage .fp-post-confirm {
      display: flex;
      flex-direction: column;
      gap: 12px;
      text-align: left;
    }
    #globalConfirmMessage .fp-post-confirm__head {
      padding-bottom: 8px;
      border-bottom: 1px solid var(--border-subtle, #e2e8f0);
    }
    #globalConfirmMessage .fp-post-confirm__pack-no {
      font-size: 15px;
      font-weight: 700;
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    }
    #globalConfirmMessage .fp-post-confirm__sub {
      font-size: 13px;
      color: var(--text-secondary, #64748b);
      margin-top: 4px;
    }
    #globalConfirmMessage .fp-post-confirm__title {
      font-size: 12px;
      font-weight: 700;
      color: var(--text-secondary, #64748b);
      margin: 0 0 6px;
    }
    #globalConfirmMessage .fp-post-confirm__list {
      margin: 0;
      padding-left: 1.1rem;
      font-size: 13px;
      color: var(--text-primary, #334155);
    }
    #globalConfirmMessage .fp-post-confirm__list li {
      margin-bottom: 4px;
    }
    #globalConfirmMessage .fp-post-confirm__sublist {
      margin: 4px 0 0;
      padding-left: 1rem;
      font-size: 12px;
      color: var(--text-secondary, #64748b);
    }
    #globalConfirmMessage .fp-post-confirm__warn {
      padding: 8px 10px;
      border-radius: 6px;
      background: rgb(255 251 235);
      border: 1px solid rgb(253 230 138);
    }
    #globalConfirmMessage .fp-post-confirm__warn .fp-post-confirm__title {
      color: rgb(180 83 9);
    }
    #globalConfirmMessage .fp-post-confirm__foot {
      font-size: 13px;
      color: var(--text-secondary, #64748b);
      margin: 0;
    }
    .org-perm-item input {
      margin-top: 0.15rem;
      flex-shrink: 0;
    }
    .org-perm-item-label {
      flex: 1;
      color: #1e293b;
    }
    .org-perm-item-body {
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
      flex: 1;
      min-width: 0;
    }
    .org-perm-item-hint {
      display: block;
      font-size: 0.6875rem;
      line-height: 1.35;
      color: #64748b;
    }
    .org-position-menu-preview {
      margin: 0.65rem 0 0.75rem;
      padding: 0.55rem 0.7rem;
      border: 1px solid #bae6fd;
      border-radius: 0.5rem;
      background: #f0f9ff;
    }
    .org-emp-menu-preview {
      margin-bottom: 0.65rem;
    }
    .org-position-menu-preview__title {
      font-size: 0.75rem;
      font-weight: 600;
      color: #0369a1;
      margin-bottom: 0.25rem;
    }
    .org-position-menu-preview__text {
      margin: 0;
      font-size: 0.8125rem;
      line-height: 1.45;
      color: #0f172a;
    }
    .org-position-menu-guide {
      margin: 0.5rem 0 0.65rem;
      border: 1px solid #e2e8f0;
      border-radius: 0.5rem;
      background: #fafafa;
      padding: 0.35rem 0.65rem;
    }
    .org-position-menu-guide > summary {
      cursor: pointer;
      font-size: 0.8125rem;
      font-weight: 600;
      color: #334155;
    }
    .org-position-menu-guide-body {
      margin-top: 0.5rem;
      max-height: min(28vh, 240px);
      overflow: auto;
    }
    .org-menu-guide-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.75rem;
    }
    .org-menu-guide-table th,
    .org-menu-guide-table td {
      border: 1px solid #e2e8f0;
      padding: 0.35rem 0.45rem;
      vertical-align: top;
      text-align: left;
    }
    .org-menu-guide-table th {
      background: #f1f5f9;
      font-weight: 600;
    }
    .org-menu-guide-note {
      font-size: 0.6875rem;
      color: #64748b;
      margin-top: 0.15rem;
    }
    .org-perm-badge-wh {
      display: inline-block;
      margin-left: 0.25rem;
      padding: 0 0.3rem;
      border-radius: 0.25rem;
      font-size: 0.625rem;
      font-weight: 600;
      color: #1d4ed8;
      background: #dbeafe;
      vertical-align: middle;
    }
    .org-perm-badge-pos {
      display: inline-block;
      margin-left: 0.25rem;
      padding: 0 0.3rem;
      border-radius: 0.25rem;
      font-size: 0.625rem;
      font-weight: 600;
      color: #64748b;
      background: #e2e8f0;
      vertical-align: middle;
    }
    .org-perm-item.is-locked {
      cursor: default;
      background: #f8fafc;
      opacity: 0.92;
    }
    .org-perm-item.is-locked.is-checked {
      background: #f1f5f9;
    }
    .org-perm-item.is-locked:hover {
      background: #f8fafc;
    }
    .org-emp-modal-shell {
      max-width: min(52rem, 96vw);
      width: min(52rem, 96vw);
    }
    .org-emp-perm-list {
      max-height: min(42vh, 360px);
    }

    .org-emp-form-lead {
      margin: 0 0 0.25rem;
      padding: 0.5rem 0.65rem;
      font-size: 0.8125rem;
      line-height: 1.45;
      color: #334155;
      background: #f0f9ff;
      border: 1px solid #bae6fd;
      border-radius: 0.5rem;
    }
    .org-emp-account-status {
      margin: 0;
      font-size: 0.8125rem;
      color: #0f766e;
      background: #ecfdf5;
      border: 1px solid #a7f3d0;
      border-radius: 0.375rem;
      padding: 0.4rem 0.6rem;
    }
    .org-emp-advanced {
      border: 1px dashed #cbd5e1;
      border-radius: 0.5rem;
      padding: 0.35rem 0.65rem 0.65rem;
      background: #fafafa;
    }
    .org-emp-advanced summary {
      cursor: pointer;
      font-size: 0.8125rem;
      font-weight: 500;
      color: #64748b;
    }
    .org-emp-no-readonly {
      background: #f1f5f9;
      color: #475569;
    }

    /* 溯源中心：锁定外层不滚，仅结果区滚动（高优先级，避免被缓存旧规则覆盖） */
    .content-area.content-area--trace-lookup,
    .content-area:has(#traceability-lookup.page-content:not(.hidden)) {
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-height: 0;
    }
    #traceability-lookup.trace-lookup-page {
      flex: 1 1 auto;
      min-height: 0;
      display: flex;
      flex-direction: column;
    }
    #traceability-lookup .trace-lookup-shell {
      flex: 1;
      min-height: 0;
      display: flex;
      flex-direction: column;
    }
    #traceability-lookup .trace-lookup-hero__search {
      --trace-search-control-h: 42px;
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) auto !important;
      grid-template-rows: auto auto !important;
      gap: 6px 10px !important;
      align-items: stretch !important;
    }
    #traceability-lookup .trace-lookup-search-label {
      grid-column: 1 / -1 !important;
    }
    #traceability-lookup .trace-lookup-search-input {
      grid-column: 1 !important;
      grid-row: 2 !important;
      min-width: 0;
      width: 100% !important;
      height: var(--trace-search-control-h) !important;
      padding: 0 14px !important;
      line-height: normal !important;
      box-sizing: border-box;
    }
    #traceability-lookup .trace-lookup-search-btn {
      grid-column: 2 !important;
      grid-row: 2 !important;
      height: var(--trace-search-control-h) !important;
      padding: 0 22px !important;
      line-height: 1 !important;
      box-sizing: border-box;
      align-self: stretch !important;
    }
    .workspace-trace-portal__search .workspace-trace-portal__input,
    .workspace-trace-portal__search .workspace-trace-portal__btn {
      height: 42px !important;
      box-sizing: border-box;
    }
    #traceability-lookup .trace-lookup-panel {
      flex: 1 1 auto;
      min-height: 0;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      max-height: none !important;
    }
    #traceability-lookup .trace-print-area {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }
    #traceability-lookup .trace-lookup-result {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }
    #traceability-lookup .trace-lookup-result__head {
      flex-shrink: 0;
      position: static;
      margin: 0 0 12px;
      padding: 0 0 14px;
      background: var(--ds-bg-surface) !important;
      border-bottom: 1px solid var(--ds-border);
    }
    #traceability-lookup .trace-lookup-result__body {
      flex: 1;
      min-height: 0;
      overflow-y: auto;
      overflow-x: hidden;
      -webkit-overflow-scrolling: touch;
    }
    #traceability-lookup .trace-result-footer {
      flex-shrink: 0;
    }
    #traceability-lookup .trace-result-footer {
      display: flex;
      justify-content: flex-end;
      margin-top: 20px;
      padding-top: 16px;
      border-top: 1px solid var(--ds-border);
    }
    #traceability-lookup .trace-print-footer {
      display: none;
    }
    #traceability-lookup .trace-result-toolbar,
    #traceability-lookup .trace-kind-badge {
      display: none !important;
    }

.fin-inv-form-modal-body {
  display: block;
}
.modal.fin-inv-form-modal .fin-inv-form-modal-shell {
  display: flex;
  flex-direction: column;
  max-height: min(88vh, 840px);
  height: min(88vh, 840px);
  overflow: hidden;
}
.modal.fin-inv-form-modal .fin-inv-form-modal-shell > .approval-doc-detail-body,
.modal.fin-inv-form-modal .fin-inv-form-modal-shell > .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.fin-inv-form-modal-body > .doc-detail-section {
  margin-bottom: 12px;
}
.fin-inv-form-grid {
  padding: 12px 14px 14px;
}
.fin-inv-party-field .form-input {
  width: 100%;
}
.fin-inv-party-compare {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--ds-border, #e2e8f0);
  background: var(--ds-bg-surface-raised, #f8fafc);
  font-size: 12px;
  line-height: 1.45;
}
.fin-inv-party-compare__row {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 3px 0;
}
.fin-inv-party-compare__label {
  color: var(--ds-text-secondary, #64748b);
  flex-shrink: 0;
}
.fin-inv-party-compare__value {
  font-weight: 600;
  color: var(--ds-text, #0f172a);
  word-break: break-all;
}
.fin-inv-party-compare__verdict {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid color-mix(in srgb, var(--ds-border, #e2e8f0) 70%, transparent);
  font-weight: 700;
}
.fin-inv-party-compare--ok {
  border-color: #6ee7b7;
  background: #ecfdf5;
}
.fin-inv-party-compare--ok .fin-inv-party-compare__verdict {
  color: #065f46;
}
.fin-inv-party-compare--warn {
  border-color: #fcd34d;
  background: #fffbeb;
}
.fin-inv-party-compare--warn .fin-inv-party-compare__verdict {
  color: #92400e;
}
.fin-inv-party-compare--bad {
  border-color: #fca5a5;
  background: #fef2f2;
}
.fin-inv-party-compare--bad .fin-inv-party-compare__verdict {
  color: #991b1b;
}
.fin-inv-field--ok {
  border-color: #6ee7b7 !important;
  background: #f0fdf4;
}
.fin-inv-field--mismatch {
  border-color: #f87171 !important;
  background: #fff7f7;
  box-shadow: 0 0 0 1px #fecaca inset;
}
.fin-inv-field--fuzzy {
  border-color: #fbbf24 !important;
  background: #fffbeb;
  box-shadow: 0 0 0 1px #fde68a inset;
}
.biz-doc-form-grid__full {
  grid-column: 1 / -1;
}
.fin-inv-name-warn {
  margin: 0;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fcd34d;
}
.fin-inv-ocr-section__body {
  padding: 10px 14px 12px;
}
.fin-inv-ocr-status {
  margin: 0 0 10px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}
.fin-inv-ocr-status--loading {
  color: #1e40af;
  background: #eff6ff;
  border: 1px solid #93c5fd;
}
.fin-inv-ocr-status--success {
  color: #065f46;
  background: #ecfdf5;
  border: 1px solid #6ee7b7;
}
.fin-inv-ocr-status--error {
  color: #991b1b;
  background: #fef2f2;
  border: 1px solid #fca5a5;
}
.fin-inv-ocr-drop {
  border: 1.5px dashed color-mix(in srgb, var(--ds-border, #cbd5e1) 90%, var(--ds-brand, #2563eb));
  border-radius: 10px;
  background: color-mix(in srgb, var(--ds-bg-surface-sunken, #f8fafc) 70%, var(--ds-bg-surface, #fff));
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.fin-inv-ocr-drop__inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
}
.fin-inv-ocr-drop__text {
  flex: 1;
  min-width: 0;
  text-align: left;
}
.fin-inv-ocr-drop__lead {
  font-size: 14px;
  font-weight: 600;
  color: var(--ds-text, #0f172a);
}
.fin-inv-ocr-drop__pick-line {
  margin-top: 4px;
  font-size: 13px;
  color: var(--ds-text-secondary, #64748b);
}
.fin-inv-ocr-drop__pick {
  color: var(--primary-color, var(--ds-brand, #2563eb));
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.fin-inv-ocr-drop__hint {
  margin-top: 6px;
  font-size: 12px;
  color: var(--ds-text-secondary, #64748b);
}
.fin-inv-ocr-drop__hint--loading {
  color: #1d4ed8;
  font-weight: 600;
}
.fin-inv-ocr-drop__hint--success {
  color: #047857;
  font-weight: 600;
}
.fin-inv-ocr-drop__hint--error {
  color: #b91c1c;
  font-weight: 600;
}
.fin-inv-ocr-preview {
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--ds-border, #e2e8f0);
  background: var(--ds-bg-surface, #fff);
  display: flex;
  align-items: center;
  justify-content: center;
}
.fin-inv-ocr-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.fin-inv-ocr-preview--file {
  flex-direction: column;
  gap: 4px;
  padding: 6px;
}
.fin-inv-ocr-preview__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 6px;
  background: color-mix(in srgb, var(--ds-danger, #dc2626) 12%, white);
  color: #b91c1c;
  font-size: 11px;
  font-weight: 700;
}
.fin-inv-ocr-preview__name {
  font-size: 10px;
  line-height: 1.25;
  color: var(--ds-text-secondary, #64748b);
  text-align: center;
  word-break: break-all;
  max-width: 100%;
}
.fin-inv-ocr-drop.fin-inv-ocr-drop--active,
.fin-inv-ocr-drop.fin-inv-ocr-drop--loading {
  border-color: var(--ds-brand, #2563eb);
  background: color-mix(in srgb, var(--ds-brand, #2563eb) 6%, white);
}
.fin-inv-ocr-drop.fin-inv-ocr-drop--error {
  border-color: #fca5a5;
  background: #fef2f2;
}

/* 发票管理列表页 */
#finance-invoice-page > .card.fin-inv-center {
  height: calc(100vh - 4.5rem);
  max-height: calc(100vh - 4.5rem);
  display: flex;
  flex-direction: column;
}
#finance-invoice-page .fin-inv-center__header {
  flex-shrink: 0;
}
#finance-invoice-page .fin-inv-center__body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#finance-invoice-page .fin-inv-center__panel,
#finance-invoice-page .fin-inv-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#finance-invoice-page .fin-inv-panel.hidden {
  display: none !important;
}
#finance-invoice-page .fin-inv-page-tabs {
  width: 100%;
}
#finance-invoice-page .fin-inv-page-body {
  padding-top: 14px;
}
#finance-invoice-page .fin-inv-panel-toolbar,
#finance-invoice-page .fin-inv-panel-lead,
#finance-invoice-page .fin-inv-filter-hint {
  flex-shrink: 0;
}
#finance-invoice-page .list-panel-outer {
  flex: 1 1 0;
  min-height: min(calc(100vh - 22rem), 360px);
  height: auto;
  margin-bottom: 0;
}
#finance-invoice-page .list-panel-outer .list-panel-scroll {
  height: 100%;
  min-height: 0;
  max-height: none;
  overflow: auto;
}
#finance-invoice-page .list-panel-outer .list-panel-scroll.table-container {
  margin-bottom: 0;
}
#finance-invoice-page .fin-inv-panel-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 16px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ds-border, #e2e8f0);
}
#finance-invoice-page .fin-inv-panel-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px 14px;
  flex: 1 1 16rem;
  min-width: 0;
}
#finance-invoice-page .fin-inv-panel-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}
#finance-invoice-page .filter-field--range {
  min-width: 15rem;
}
#finance-invoice-page .filter-field--keyword {
  flex: 1 1 11rem;
  min-width: 10rem;
  max-width: 18rem;
}
#finance-invoice-page .filter-field--month {
  min-width: 9.5rem;
}
#finance-invoice-page .filter-field--kind {
  min-width: 11rem;
}
#finance-invoice-page .filter-field .form-input,
#finance-invoice-page .filter-field .form-select {
  min-height: 34px;
}
#finance-invoice-page .report-date-inline .form-input[type="date"] {
  width: 9.25rem;
  min-width: 0;
}
#finance-invoice-page .fin-inv-panel-lead {
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ds-text-secondary, #64748b);
}
#finance-invoice-page .fin-inv-filter-hint {
  margin: 0 0 10px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ds-warning-emphasis, #b45309);
  background: color-mix(in srgb, var(--ds-warning, #f59e0b) 8%, white);
  border: 1px solid color-mix(in srgb, var(--ds-warning, #f59e0b) 28%, var(--ds-border, #e2e8f0));
  border-radius: 8px;
}
#finance-invoice-page .fin-inv-filter-hint.hidden {
  display: none;
}
#finance-invoice-page .fin-inv-table .fin-inv-col-actions {
  min-width: 7.5rem;
}
#finance-invoice-page .fin-inv-row-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
}
#finance-invoice-page .fin-inv-table.table--density-compact .approval-act-btn {
  min-height: 24px;
  padding: 1px 8px;
  font-size: 11px;
}
@media (max-width: 720px) {
  #finance-invoice-page .fin-inv-panel-actions {
    width: 100%;
    justify-content: flex-start;
  }
  #finance-invoice-page .filter-field--keyword {
    max-width: none;
    flex-basis: 100%;
  }
}

/* 客户采购订单（CPO）页签 */
#customer-purchase-orders .cpo-summary-host {
  margin-bottom: 0;
}
#customer-purchase-orders .cpo-sum-headline {
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--ds-warning, #f59e0b) 28%, var(--ds-border, #e2e8f0));
  border-radius: 10px;
  background: color-mix(in srgb, #fffbeb 75%, var(--ds-bg-surface, #fff) 25%);
}
#customer-purchase-orders .cpo-sum-headline__stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  font-size: 14px;
  color: var(--ds-text, #0f172a);
}
#customer-purchase-orders .cpo-sum-headline__stat strong {
  font-size: 18px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--ds-warning-emphasis, #b45309);
}
#customer-purchase-orders .cpo-sum-headline__sep {
  color: var(--ds-text-muted, #94a3b8);
}
#customer-purchase-orders .cpo-sum-headline__note {
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.45;
  color: var(--ds-text-secondary, #64748b);
}
#customer-purchase-orders .cpo-sum-row--pending .cpo-pending-cell {
  font-weight: 700;
}
#customer-purchase-orders .cpo-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 900px) {
  #customer-purchase-orders .cpo-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  #customer-purchase-orders .cpo-kpi-grid {
    grid-template-columns: 1fr;
  }
}
#customer-purchase-orders .cpo-kpi {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px;
  border: 1px solid var(--ds-border, #e2e8f0);
  border-radius: 10px;
  background: linear-gradient(
    165deg,
    color-mix(in srgb, var(--ds-bg-surface, #fff) 98%, var(--ds-accent, #2563eb) 2%) 0%,
    var(--ds-bg-surface, #fff) 100%
  );
}
#customer-purchase-orders .cpo-kpi--warn {
  border-color: color-mix(in srgb, var(--ds-warning, #f59e0b) 35%, var(--ds-border, #e2e8f0));
  background: linear-gradient(
    165deg,
    color-mix(in srgb, #fffbeb 88%, var(--ds-warning, #f59e0b) 12%) 0%,
    #fff 100%
  );
}
#customer-purchase-orders .cpo-kpi--muted .cpo-kpi__value {
  color: var(--ds-text-secondary, #64748b);
}
#customer-purchase-orders .cpo-kpi__label {
  font-size: 12px;
  font-weight: 500;
  color: var(--ds-text-secondary, #64748b);
}
#customer-purchase-orders .cpo-kpi__value {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.15;
  color: var(--ds-text, #0f172a);
  font-variant-numeric: tabular-nums;
}
#customer-purchase-orders .cpo-kpi__unit {
  font-size: 11px;
  color: var(--ds-text-secondary, #64748b);
}
#customer-purchase-orders .cpo-sum-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}
@media (max-width: 900px) {
  #customer-purchase-orders .cpo-sum-panels {
    grid-template-columns: 1fr;
  }
}
#customer-purchase-orders .cpo-sum-panel {
  margin-top: 12px;
  border: 1px solid var(--ds-border, #e2e8f0);
  border-radius: 10px;
  background: var(--ds-bg-surface, #fff);
  overflow: hidden;
}
#customer-purchase-orders .cpo-sum-panels .cpo-sum-panel {
  margin-top: 0;
}
#customer-purchase-orders .cpo-sum-panel__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--ds-border, #e2e8f0);
  background: var(--ds-bg-surface-raised, #f8fafc);
}
#customer-purchase-orders .cpo-sum-panel__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ds-text, #0f172a);
}
#customer-purchase-orders .cpo-sum-panel__hint {
  font-size: 11px;
  color: var(--ds-text-secondary, #64748b);
}
#customer-purchase-orders .cpo-sum-panel__empty {
  margin: 0;
  padding: 16px 14px;
  font-size: 12px;
  color: var(--ds-text-secondary, #64748b);
  text-align: center;
}
#customer-purchase-orders .cpo-sum-panel__table-wrap {
  max-height: 220px;
  overflow: auto;
  border: none;
  border-radius: 0;
}
#customer-purchase-orders .cpo-sum-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
#customer-purchase-orders .cpo-sum-table th {
  font-size: 11px;
  white-space: nowrap;
}
#customer-purchase-orders .cpo-sum-table td {
  font-size: 12px;
  vertical-align: middle;
}
#customer-purchase-orders .cpo-sum-tag {
  display: inline-block;
  margin-left: 4px;
  padding: 0 5px;
  font-size: 10px;
  font-weight: 600;
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 999px;
  vertical-align: middle;
}
#customer-purchase-orders .cpo-panel-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 16px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ds-border, #e2e8f0);
}
#customer-purchase-orders .cpo-panel-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px 14px;
  flex: 1 1 16rem;
  min-width: 0;
}
#customer-purchase-orders .cpo-panel-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}
#customer-purchase-orders .filter-field--range {
  min-width: 15rem;
}
#customer-purchase-orders .filter-field--keyword {
  flex: 1 1 11rem;
  min-width: 10rem;
  max-width: 18rem;
}
#customer-purchase-orders .filter-field .form-input {
  min-height: 34px;
}
#customer-purchase-orders .report-date-inline .form-input[type="date"] {
  width: 9.25rem;
  min-width: 0;
}
#customer-purchase-orders .cpo-filter-pending {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 10px;
  font-size: 13px;
  color: var(--ds-text-secondary, #64748b);
  border: 1px solid var(--ds-border, #e2e8f0);
  border-radius: 8px;
  background: var(--ds-bg-surface, #fff);
  cursor: pointer;
  user-select: none;
}
#customer-purchase-orders .cpo-filter-pending input {
  margin: 0;
}
#customer-purchase-orders .cpo-table .num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
#customer-purchase-orders .cpo-pending-cell {
  font-weight: 600;
  color: var(--ds-warning-emphasis, #b45309);
}
#customer-purchase-orders .cpo-col-actions {
  min-width: 9rem;
}
#customer-purchase-orders .cpo-row-actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
#customer-purchase-orders .cpo-table.table--density-compact .approval-act-btn {
  min-height: 24px;
  padding: 1px 8px;
  font-size: 11px;
}
#customer-purchase-orders .cpo-status {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
#customer-purchase-orders .cpo-status--pending {
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fde68a;
}
#customer-purchase-orders .cpo-status--partial {
  color: #1d4ed8;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
}
#customer-purchase-orders .cpo-status--done {
  color: #166534;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}
#cpoFormModal .cpo-form-shell {
  max-width: min(44rem, 96vw);
  width: min(44rem, 96vw);
}
#cpoFormModal .cpo-form-modal-body {
  padding: 12px 14px 16px;
}
#cpoFormModal .cpo-form-detail {
  gap: 12px;
}
#cpoFormModal .cpo-form-lead {
  margin: 0 0 2px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ds-text-secondary, #64748b);
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--ds-accent, #2563eb) 18%, var(--ds-border, #e2e8f0));
  background: color-mix(in srgb, var(--ds-bg-surface, #fff) 92%, var(--ds-accent, #2563eb) 8%);
}
#cpoFormModal .cpo-form-grid {
  padding-bottom: 10px;
}
#cpoFormModal .po-detail-field {
  gap: 6px;
  padding: 10px 0;
}
#cpoFormModal .po-detail-field__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ds-text-secondary);
}
#cpoFormModal .cpo-req {
  color: #dc2626;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}
#cpoFormModal .cpo-opt {
  margin-left: 4px;
  font-size: 10px;
  font-weight: 500;
  color: var(--ds-text-muted, #94a3b8);
  text-transform: none;
  letter-spacing: 0;
}
#cpoFormModal .po-detail-field .form-input,
#cpoFormModal .po-detail-field .form-select {
  font-size: 13px;
  min-height: 36px;
}
#cpoFormModal .cpo-form-amount-hint {
  margin: 0 14px 12px;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.45;
  border-radius: 8px;
  color: #166534;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}
#cpoFormModal .cpo-form-amount-hint.hidden {
  display: none;
}
#cpoFormModal .cpo-form-remark-wrap {
  padding: 10px 14px 14px;
}
#cpoFormModal .cpo-form-remark-wrap .form-textarea {
  min-height: 72px;
  font-size: 13px;
  resize: vertical;
}
#cpoFormModal .cpo-form-modal-footer .btn-primary .fa {
  margin-right: 0.35rem;
}
@media (max-width: 720px) {
  #customer-purchase-orders .cpo-panel-actions {
    width: 100%;
    justify-content: flex-start;
  }
  #customer-purchase-orders .filter-field--keyword {
    max-width: none;
    flex-basis: 100%;
  }
}

/* 仓管确认出入库弹窗 — 生产/打包明细 */
.wc-exec-modal-shell--work-order .wc-exec-modal-body {
  padding-top: 0.25rem;
}
.wc-exec-modal-section + .wc-exec-modal-section {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border-subtle, #e2e8f0);
}
.wc-exec-modal-section--confirm .biz-doc-form-grid {
  padding: 0 0.75rem 0.25rem;
}
.wc-exec-confirm-grid {
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1rem;
}
.wc-exec-summary {
  margin: 0.5rem 0.75rem 0;
  font-size: 13px;
  color: var(--color-text-secondary, #475569);
}
.wc-exec-summary--card {
  padding: 0.65rem 0.85rem;
  border-radius: 8px;
  background: var(--color-surface-muted, #f8fafc);
  border: 1px solid var(--color-border-subtle, #e2e8f0);
}
.wc-exec-summary__no {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-text-muted, #64748b);
  margin-bottom: 0.25rem;
}
.wc-exec-summary__label {
  font-size: 13px;
  font-weight: 600;
  color: var(--color-text-primary, #0f172a);
  line-height: 1.45;
}
.wc-exec-summary__wh {
  margin-top: 0.35rem;
  font-size: 12px;
  color: var(--color-text-muted, #64748b);
}
.wc-exec-detail-host {
  margin: 0.75rem 0.75rem 0;
  max-height: none;
  overflow: visible;
}
.wc-exec-detail-grid {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.wc-exec-detail-meta {
  padding: 0.45rem 0.65rem;
  border-radius: 6px;
  font-size: 12px;
  color: var(--color-text-muted, #64748b);
  background: #fff;
  border: 1px dashed var(--color-border-subtle, #cbd5e1);
}
.wc-exec-detail-block {
  border-radius: 8px;
  border: 1px solid var(--color-border-subtle, #e2e8f0);
  background: #fff;
  overflow: hidden;
  min-width: 0;
}
.wc-exec-detail-block--out {
  border-top: 3px solid #f97316;
}
.wc-exec-detail-block--in {
  border-top: 3px solid #22c55e;
}
.wc-exec-detail-block__head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.65rem;
  background: var(--color-surface-muted, #f8fafc);
  border-bottom: 1px solid var(--color-border-subtle, #e2e8f0);
}
.wc-exec-detail-block__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}
.wc-exec-detail-block__badge--out {
  background: #f97316;
}
.wc-exec-detail-block__badge--in {
  background: #22c55e;
}
.wc-exec-detail-block__title {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text-secondary, #475569);
}
/* 出入库明细：Grid 布局；批次列加宽单行显示，数量列固定不重叠 */
.wc-exec-line-list {
  padding: 0 0.65rem 0.5rem;
  font-size: 12px;
  overflow-x: auto;
}
.wc-exec-line-list__head,
.wc-exec-line-list__row {
  display: grid;
  /* 品项略宽、批次够放 -QC·日期 单行，数量固定右对齐 */
  grid-template-columns: 52px minmax(0, 1.08fr) minmax(9.75rem, 0.92fr) minmax(4.75rem, max-content);
  column-gap: 0.5rem;
  align-items: start;
  min-width: 0;
}
.wc-exec-line-list__head {
  padding: 0 0 0.35rem;
  margin-bottom: 0.15rem;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-text-muted, #64748b);
  border-bottom: 1px solid var(--color-border-subtle, #e2e8f0);
}
.wc-exec-line-list__head span:last-child,
.wc-exec-line-list__qty {
  text-align: right;
  justify-self: end;
}
.wc-exec-line-list__row {
  padding: 0.42rem 0;
  border-bottom: 1px solid var(--color-border-subtle, #f1f5f9);
}
.wc-exec-line-list__row:last-child {
  border-bottom: none;
}
.wc-exec-line-list__kind {
  min-width: 0;
}
.wc-exec-line-list__item,
.wc-exec-line-list__lot {
  min-width: 0;
}
.wc-exec-kind-tag {
  display: inline-block;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  background: #f1f5f9;
  color: #475569;
  white-space: nowrap;
}
.wc-exec-kind-tag--defect {
  background: #e2e8f0;
  color: #64748b;
}
.wc-exec-item-name {
  white-space: normal;
  word-break: break-word;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.wc-exec-lot {
  font-size: 11px;
  color: var(--color-text-muted, #64748b);
  line-height: 1.35;
  min-width: 0;
  white-space: nowrap;
}
.wc-exec-qty {
  font-weight: 600;
  color: var(--color-text-primary, #0f172a);
  white-space: nowrap;
  flex-shrink: 0;
}
.wc-exec-detail-empty {
  margin: 0;
  padding: 0.65rem 0.75rem;
  font-size: 12px;
  color: var(--color-text-muted, #94a3b8);
}
.wc-exec-detail-hint {
  margin: 0;
  padding: 0.5rem 0.65rem;
  font-size: 11px;
  color: var(--color-text-muted, #64748b);
  border-top: 1px solid var(--color-border-subtle, #f1f5f9);
  background: #fafafa;
}
.wc-exec-modal-footer {
  gap: 0.5rem;
}
@media (max-width: 720px) {
  .wc-exec-confirm-grid {
    grid-template-columns: 1fr;
  }
}

/* 采购异常调整（退货/扣款）弹窗 */
#supplierInboundAdjustmentModal .biz-doc-form-modal-shell {
  max-width: 720px;
}
#supplierInboundAdjustmentModal .callout-warn {
  padding: 0.55rem 0.75rem;
  font-size: 12px;
  line-height: 1.45;
}
.psa-context-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.45rem 0.65rem;
  margin-bottom: 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--ds-border, #e2e8f0) 85%, transparent);
  background: #f8fafc;
}
.psa-context-item {
  min-width: 0;
}
.psa-context-item__k {
  display: block;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #64748b;
  margin-bottom: 0.15rem;
}
.psa-context-item__v {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #0f172a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.psa-lines-section .doc-detail-section__title {
  margin-bottom: 0.35rem;
}
.psa-line-list {
  border: 1px solid color-mix(in srgb, var(--ds-border, #e2e8f0) 85%, transparent);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.psa-line-list__placeholder {
  padding: 1.25rem 0.75rem;
  text-align: center;
  font-size: 13px;
  color: #94a3b8;
}
.psa-line-list__head,
.psa-line-list__row {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(4.5rem, 0.75fr) minmax(3.5rem, 0.55fr) minmax(4.75rem, 0.65fr) minmax(4.5rem, 0.6fr);
  gap: 0.35rem 0.5rem;
  align-items: center;
  padding: 0.45rem 0.65rem;
}
.psa-line-list__head {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #64748b;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}
.psa-line-list__head span:nth-child(n + 2),
.psa-line-list__row > span:nth-child(n + 2) {
  text-align: right;
}
.psa-line-list__row {
  border-bottom: 1px solid #f1f5f9;
  font-size: 13px;
}
.psa-line-list__row:last-child {
  border-bottom: none;
}
.psa-line-list__item {
  min-width: 0;
  font-weight: 500;
  color: #0f172a;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.psa-line-list__meta {
  display: block;
  margin-top: 0.1rem;
  font-size: 10px;
  font-weight: 400;
  color: #94a3b8;
}
.psa-line-list__qty .psa-qty-input {
  width: 100%;
  max-width: 5.5rem;
  margin-left: auto;
  padding: 0.25rem 0.4rem;
  font-size: 13px;
  text-align: right;
}
.psa-line-list__subtotal {
  font-weight: 600;
  color: #0f172a;
}
.psa-total-row {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.65rem;
  padding: 0.55rem 0.65rem 0.15rem;
  font-size: 13px;
  color: #475569;
}
.psa-total-row__amount {
  font-size: 15px;
  color: #0f172a;
}
.psa-reason-input {
  min-height: 3.25rem;
  font-size: 13px;
}
@media (max-width: 640px) {
  .psa-line-list__head,
  .psa-line-list__row {
    grid-template-columns: minmax(0, 1fr) minmax(4rem, 0.7fr) minmax(4.5rem, 0.75fr);
    grid-template-areas:
      'item item item'
      'avail price qty'
      'sub sub sub';
  }
  .psa-line-list__head span:nth-child(4),
  .psa-line-list__head span:nth-child(5) {
    display: none;
  }
  .psa-line-list__row > span:nth-child(5) {
    grid-column: 1 / -1;
    text-align: right;
    padding-top: 0.15rem;
    border-top: 1px dashed #e2e8f0;
  }
}

/* 采购 · 副产品销售 / 不符合标准玉米处置 */
.proc-supply-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}
.proc-supply-card__title {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--header-bar-fg, #fff);
}
.proc-supply-card__subtitle {
  margin-top: 0.25rem;
  font-size: 12px;
  color: var(--header-bar-fg, #fff);
  opacity: 0.92;
}
.proc-supply-strip {
  margin-bottom: 1rem;
  padding: 0.65rem 0.85rem;
  font-size: 13px;
  line-height: 1.5;
  color: var(--color-text-secondary, #475569);
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid var(--color-border-subtle, #e2e8f0);
  border-radius: 8px;
}
.proc-supply-prefill-banner {
  margin-bottom: 0.75rem;
  padding: 0.6rem 0.85rem;
  font-size: 13px;
  line-height: 1.45;
  color: #166534;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
}
.proc-supply-prefill-banner.hidden {
  display: none;
}
.proc-supply-form-section {
  padding: 1rem 0;
  border-top: 1px solid var(--color-border-subtle, #e2e8f0);
}
.proc-supply-form-section:first-of-type {
  border-top: none;
  padding-top: 0;
}
.proc-supply-form-section__title {
  margin: 0 0 0.75rem;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted, #64748b);
}
.proc-supply-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1rem;
}
.proc-supply-form-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
.proc-supply-form-grid__full {
  grid-column: 1 / -1;
}
.proc-supply-kind-segment {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
  padding: 0.25rem;
  background: #f1f5f9;
  border-radius: 8px;
}
.proc-supply-kind-btn {
  border: none;
  border-radius: 6px;
  padding: 0.45rem 1rem;
  font-size: 13px;
  font-weight: 500;
  color: #475569;
  background: transparent;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, box-shadow 0.15s;
}
.proc-supply-kind-btn:hover {
  color: #0f172a;
}
.proc-supply-kind-btn--active {
  color: #0f172a;
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}
.proc-supply-amount-input {
  font-size: 1.05rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.proc-supply-summary-input {
  min-height: 4rem;
}
.proc-supply-form-footnote {
  margin-top: 0.5rem;
  font-size: 12px;
  color: var(--color-text-muted, #94a3b8);
}
.proc-supply-form-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 0.5rem;
}
.proc-supply-workflow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.65rem;
  margin-bottom: 1rem;
}
.proc-supply-workflow__item {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  padding: 0.65rem 0.75rem;
  background: #fff;
  border: 1px solid var(--color-border-subtle, #e2e8f0);
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.4;
}
.proc-supply-workflow__item strong {
  display: block;
  font-size: 13px;
  color: #0f172a;
  margin-bottom: 0.15rem;
}
.proc-supply-workflow__item p {
  margin: 0;
  color: #64748b;
}
.proc-supply-workflow__badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}
.proc-supply-workflow__badge--warn {
  background: #f59e0b;
}
.proc-supply-workflow__badge--ok {
  background: #22c55e;
}
.proc-supply-workflow__badge--muted {
  background: #94a3b8;
}
.proc-supply-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--color-border-subtle, #e2e8f0);
  border-radius: 8px;
}
.proc-supply-table {
  margin: 0;
  font-size: 13px;
}
.proc-supply-table thead th {
  background: #f8fafc;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  white-space: nowrap;
  border-bottom: 1px solid #e2e8f0;
}
.proc-supply-table tbody td {
  vertical-align: middle;
  border-bottom: 1px solid #f1f5f9;
}
.proc-supply-table tbody tr:last-child td {
  border-bottom: none;
}
.proc-supply-table tbody tr:hover {
  background: #fafafa;
}
.proc-supply-table__actions-col {
  min-width: 15rem;
}
.proc-supply-row-actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.35rem;
}
.proc-supply-tag {
  display: inline-block;
  padding: 0.1rem 0.4rem;
  font-size: 11px;
  font-weight: 600;
  border-radius: 4px;
  background: #f1f5f9;
  color: #475569;
}
.proc-supply-tag--batch {
  font-family: ui-monospace, monospace;
  font-weight: 500;
}
.proc-supply-empty {
  padding: 2.5rem 1rem;
  text-align: center;
  color: #94a3b8;
  font-size: 13px;
}
@media (max-width: 900px) {
  .proc-supply-workflow {
    grid-template-columns: 1fr;
  }
  .proc-supply-form-grid--3 {
    grid-template-columns: 1fr;
  }
  .proc-supply-form-grid {
    grid-template-columns: 1fr;
  }
}
