/* 筑木 MES 2.0 - 全屋定制工厂控制台 */
:root {
  --factory-forest-950: #0d2822;
  --factory-forest-900: #12352e;
  --factory-forest-800: #17473b;
  --factory-green-700: #176b55;
  --factory-green-600: #1d7c63;
  --factory-green-100: #dfeee9;
  --factory-blue-700: #2f6e9d;
  --factory-blue-100: #e2eef7;
  --factory-orange-700: #b96512;
  --factory-orange-100: #fff0dc;
  --factory-red-700: #bd3838;
  --factory-red-100: #fbe4e2;
  --factory-gray-50: #f8faf9;
  --factory-gray-100: #eef2f0;
  --factory-gray-200: #dce4e0;
  --factory-gray-500: #718079;
  --factory-ink: #182720;
  --sidebar-width: 180px;
}

/* 应用外壳 */
.sidebar { background: var(--factory-forest-950); }
.sidebar-logo { min-height: 68px; padding: 11px 10px; background: #0a211c; }
.brand-name { font-family: "Microsoft YaHei UI", "PingFang SC", sans-serif; font-size: 15px; }
.brand-mark { background: #238b70; }
.sidebar-menu { padding: 8px 7px 20px; }
.sidebar-menu .menu-group { padding: 12px 8px 5px; color: #79978d; font-size: 10px; letter-spacing: 0; }
.sidebar-menu .menu-group--core { color: #d7e8e2; }
.sidebar-menu a { min-height: 36px; padding: 7px 8px; color: #b8cdc5; }
.sidebar-menu a .icon { width: 26px; height: 24px; background: transparent; }
.sidebar-menu a .icon svg { width: 17px; height: 17px; }
.sidebar-menu a.active { background: #1a5949; }
.sidebar-menu a.active::before { background: #52d2a9; }
.sidebar-menu a.active .icon { background: rgba(255,255,255,.08); }
.core-nav { margin: 0 0 6px; padding: 5px; border: 1px solid rgba(133,190,170,.17); background: rgba(255,255,255,.025); }
.core-nav .core-nav-item { display: grid; grid-template-columns: 26px minmax(0,1fr) auto; gap: 9px; margin: 0; }
.core-nav .core-nav-item b { padding: 2px 5px; border: 1px solid rgba(115,193,164,.22); border-radius: 3px; color: #8dc8b4; font-size: 9px; font-weight: 700; }
.sidebar.is-collapsed .core-nav { padding: 2px; border-color: transparent; background: transparent; }
.sidebar.is-collapsed .core-nav .core-nav-item { display: flex; }
.sidebar.is-collapsed .core-nav .core-nav-item b { display: none; }

.header { min-height: 64px; background: rgba(255,255,255,.97); }
.header-title-copy { display: flex; flex-direction: column; gap: 1px; }
.header-title-copy small { color: #73827c; font-size: 10px; font-weight: 600; }
.header-title-copy > span { font-size: 17px; line-height: 1.2; }
.header-live { display: inline-flex; align-items: center; gap: 5px; color: var(--factory-green-700); font-size: 12px; font-weight: 700; }
.header-live svg { width: 14px; height: 14px; }
.header-icon-button { width: 34px; height: 34px; display: inline-grid; place-items: center; padding: 0 !important; }
.header-icon-button svg { width: 17px; height: 17px; }
.header .header-logout { display: inline-flex; align-items: center; gap: 6px; height: 34px; }
.header .header-logout svg { width: 15px; height: 15px; }
.page.factory-page { max-width: none; padding: 20px 22px 32px; }

/* 订单中心使用固定视口，只有订单列表本身滚动，避免表格撑开整页。 */
.main-content { min-width: 0; }
.main-content.is-orders-page { height: 100vh; min-width: 0; overflow: hidden; }
.main-content.is-orders-page > .header { min-height: 54px; height: 54px; padding-right: 14px; padding-left: 14px; }
.main-content.is-orders-page > .header .header-title-copy > span { font-size: 16px; }
.main-content.is-orders-page #pageContainer { height: calc(100vh - 54px); min-width: 0; min-height: 0; overflow: hidden; }
.main-content.is-orders-page .page.factory-page.order-center { height: 100%; min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; padding: 8px 10px 10px; }
.main-content.is-orders-page .order-list-panel { min-width: 0; min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; }
.main-content.is-orders-page .order-list-panel .factory-panel-heading { flex: 0 0 auto; }
.main-content.is-orders-page .order-table-scroll { flex: 1 1 auto; min-width: 0; min-height: 0; height: auto; overflow: auto; }

/* 通用工厂组件 */
.factory-page { color: var(--factory-ink); font-family: "Microsoft YaHei UI", "PingFang SC", "Segoe UI", sans-serif; }
.factory-page h1, .factory-page p { margin: 0; }
.factory-page button, .factory-page input, .factory-page select { letter-spacing: 0; }
.command-heading { min-height: 60px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 8px; }
.command-heading--compact { min-height: 56px; }
.command-heading h1 { margin: 1px 0 2px; color: #13241e; font-size: 21px; font-weight: 800; line-height: 1.2; }
.command-heading p { color: var(--factory-gray-500); font-size: 10px; }
.command-kicker { color: var(--factory-green-700); font-size: 11px; font-weight: 800; }
.command-heading-actions { display: flex; align-items: center; gap: 8px; }
.factory-button, .factory-icon-button {
  min-height: 36px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid #cfd9d4;
  border-radius: 4px; background: #fff; color: #344b42; cursor: pointer; font-size: 12px; font-weight: 700;
}
.factory-button { padding: 7px 12px; }
.factory-button svg, .factory-icon-button svg { width: 16px; height: 16px; flex: 0 0 auto; }
.factory-button:hover, .factory-icon-button:hover { border-color: #90aea1; background: #f4f8f6; color: var(--factory-green-700); }
.factory-button--primary { border-color: var(--factory-green-700); background: var(--factory-green-700); color: #fff; }
.factory-button--primary:hover { border-color: var(--factory-forest-800); background: var(--factory-forest-800); color: #fff; }
.factory-button--quiet { background: #f8faf9; }
.factory-button--danger-soft { border-color: #e8b6b2; background: var(--factory-red-100); color: var(--factory-red-700); }
.factory-button--small { min-height: 30px; padding: 5px 8px; }
.factory-icon-button { width: 34px; height: 34px; padding: 0; }
.factory-panel { overflow: hidden; border: 1px solid var(--factory-gray-200); border-radius: 5px; background: #fff; box-shadow: 0 1px 3px rgba(14,43,34,.045); }
.factory-panel-heading { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 9px 13px; border-bottom: 1px solid var(--factory-gray-200); background: var(--factory-gray-50); }
.factory-panel-heading > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.factory-panel-heading span { color: #263b33; font-size: 14px; font-weight: 800; }
.factory-panel-heading small { color: var(--factory-gray-500); font-size: 10px; font-weight: 500; }
.factory-panel-heading > svg { width: 18px; color: var(--factory-orange-700); }
.factory-table-scroll { max-width: 100%; max-height: 470px; overflow: auto; scrollbar-color: #b4c5bd #eef3f0; }
.factory-table { width: 100%; min-width: 900px; border-collapse: separate; border-spacing: 0; }
.factory-table th { position: sticky; top: 0; z-index: 3; height: 40px; padding: 8px 11px; background: #f0f4f2; color: #52655d; white-space: nowrap; }
.factory-table td { height: 48px; padding: 7px 11px; border-bottom: 1px solid #edf1ef; color: #31463e; white-space: nowrap; }
.factory-table tbody tr { cursor: default; }
.factory-table tbody tr:hover td { background: #f1f7f4; }
.factory-table tbody tr:last-child td { border-bottom: 0; }
.factory-table .select-column { width: 38px; text-align: center; }
.factory-table input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--factory-green-700); }
.factory-empty, .factory-error { min-height: 190px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 7px; color: var(--factory-gray-500); }
.factory-empty svg, .factory-error svg { width: 30px; height: 30px; color: #87a197; }
.factory-empty b, .factory-error b { color: #2d443b; font-size: 14px; }
.factory-empty span, .factory-error span { font-size: 12px; }
.factory-empty--compact { min-height: 110px; }
.factory-status { display: inline-flex; align-items: center; gap: 6px; min-height: 23px; padding: 2px 7px; border-radius: 3px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.factory-status-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.factory-status--neutral { background: #edf1ef; color: #52665e; }
.factory-status--warning { background: var(--factory-orange-100); color: var(--factory-orange-700); }
.factory-status--info { background: var(--factory-blue-100); color: var(--factory-blue-700); }
.factory-status--success { background: var(--factory-green-100); color: var(--factory-green-700); }
.factory-status--muted { background: #ebedec; color: #707a76; }
.factory-stage { border: 1px solid transparent; }
.factory-stage--created { background: #edf1ef; border-color: #dfe6e2; color: #52665e; }
.factory-stage--review { background: #e8f2fb; border-color: #d4e6f5; color: #2f6f9f; }
.factory-stage--design { background: #eef0fb; border-color: #dde1f5; color: #5965a4; }
.factory-stage--version { background: #fff3dc; border-color: #f6dfb7; color: #946116; }
.factory-stage--frozen { background: #e4f2e9; border-color: #cfe5d7; color: #236b4b; }
.factory-stage--cutting { background: #fff0dc; border-color: #f3d9b5; color: #a65d13; }
.factory-stage--hole { background: #e5f5f3; border-color: #cde8e4; color: #14736d; }
.factory-stage--sorting { background: #e7f4e9; border-color: #cee7d3; color: #2f7946; }
.factory-stage--packing { background: #edf0fb; border-color: #d9dff4; color: #4c60a8; }
.factory-stage--shipping { background: #f3edf8; border-color: #e4d8ee; color: #77539a; }
.factory-stage--delivered,
.factory-stage--completed { background: #e5f4eb; border-color: #cde7d7; color: #236f4c; }
.factory-stage--paused { background: #ebedec; border-color: #dde1df; color: #707a76; }
.factory-stage--exception { background: #fae9e7; border-color: #f1d3cf; color: #a33f35; }
.factory-progress { width: 112px; height: 20px; position: relative; overflow: hidden; border-radius: 3px; background: #e8eeeb; }
.factory-progress > span { position: absolute; inset: 0 auto 0 0; background: var(--factory-green-600); }
.factory-progress > b { position: relative; z-index: 1; display: block; padding: 2px 6px; color: #243c33; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 10px; line-height: 16px; text-align: right; }
.factory-progress--info > span { background: var(--factory-blue-700); }
.factory-progress--success > span { background: #26815f; }
.order-identity { min-width: 155px; display: flex; flex-direction: column; gap: 2px; }
.order-identity b { color: #183a2e; font-family: Bahnschrift, "Microsoft YaHei UI", sans-serif; font-size: 13px; }
.order-identity span { max-width: 230px; overflow: hidden; color: #66776f; font-size: 11px; text-overflow: ellipsis; }
.table-number { color: #183a2e; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 15px; }
.table-denominator { color: #7f8d87; font-size: 11px; }
.table-time { color: #6f7e78 !important; font-size: 11px; }
.table-actions { display: flex; align-items: center; gap: 5px; }
.exception-count { display: inline-flex; align-items: center; gap: 4px; color: var(--factory-red-700); font-size: 11px; font-weight: 800; }
.exception-count svg { width: 14px; height: 14px; }
.clear-count { color: var(--factory-green-700); font-size: 11px; font-weight: 700; }

/* 指挥台 */
.command-metrics { display: grid; grid-template-columns: repeat(8, minmax(106px, 1fr)); margin-bottom: 8px; border: 1px solid var(--factory-gray-200); background: #fff; }
.workspace-switcher { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-bottom: 8px; }
.workspace-switcher button { min-height: 48px; display: grid; grid-template-columns: 22px minmax(0,1fr) auto auto; align-items: center; gap: 8px; padding: 7px 12px; border: 1px solid var(--factory-gray-200); border-radius: 4px; background: #fff; color: #60736a; cursor: pointer; text-align: left; }
.workspace-switcher button:hover { border-color: #9db9ad; background: #f6faf8; }
.workspace-switcher button.is-active { border-color: var(--factory-green-600); background: #eaf4ef; color: var(--factory-green-700); box-shadow: inset 3px 0 var(--factory-green-600); }
.workspace-switcher svg { width: 18px; height: 18px; }
.workspace-switcher span { font-size: 13px; font-weight: 800; }
.workspace-switcher b { padding: 2px 5px; border: 1px solid #cbd9d3; border-radius: 3px; color: #7b8d85; font-size: 9px; font-weight: 700; }
.workspace-switcher button.is-active b { border-color: #abd0bd; color: var(--factory-green-700); }
.workspace-switcher strong { min-width: 30px; color: #1d3d30; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 18px; text-align: right; }
.workspace-version { display: inline-flex; align-items: center; gap: 4px; min-height: 22px; padding: 2px 6px; border: 1px solid #d5e0db; border-radius: 3px; background: #f5f8f6; color: #63766d; font-size: 10px; font-weight: 700; white-space: nowrap; }
.workspace-version svg { width: 12px; height: 12px; }
.workspace-version--frozen { border-color: #b6d8c5; background: #e8f4ed; color: var(--factory-green-700); }
.workspace-queue-scroll { max-height: 492px; }
.workspace-queue-table { min-width: 980px; }
.command-dashboard--preparation .workspace-queue-table { min-width: 920px; }
.command-dashboard--execution .workspace-queue-table { min-width: 980px; }
.command-dashboard--execution .workspace-queue-table .queue-progress-column { width: 92px; padding-left: 6px; padding-right: 6px; }
.command-dashboard--execution .workspace-queue-table .order-progress-cell { min-width: 80px; }
.command-dashboard--execution .workspace-queue-table .order-progress-cell .factory-progress { width: 80px; }
.command-metric { min-width: 0; min-height: 61px; display: flex; align-items: flex-start; justify-content: space-between; flex-direction: column; padding: 8px 10px; border: 0; border-right: 1px solid var(--factory-gray-200); background: transparent; cursor: pointer; text-align: left; }
.command-metric:last-child { border-right: 0; }
.command-metric:hover { background: #f5f8f7; }
.command-metric span { display: flex; align-items: center; gap: 5px; color: #64766e; font-size: 10px; font-weight: 700; white-space: nowrap; }
.command-metric span svg { width: 14px; height: 14px; }
.command-metric strong { color: #1a3027; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 22px; line-height: 1; }
.command-metric--warning span svg, .command-metric--warning strong { color: var(--factory-orange-700); }
.command-metric--info span svg, .command-metric--info strong { color: var(--factory-blue-700); }
.command-metric--danger span svg, .command-metric--danger strong { color: var(--factory-red-700); }
.command-metric--success span svg, .command-metric--success strong { color: var(--factory-green-700); }
.core-shortcuts { display: flex; flex-wrap: nowrap; gap: 8px; margin-bottom: 8px; overflow-x: auto; overflow-y: hidden; padding-bottom: 2px; scrollbar-width: thin; }
.core-shortcut { flex: 1 0 0; min-width: 210px; min-height: 52px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto 16px; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid var(--factory-gray-200); border-left-width: 4px; border-radius: 4px; background: #fff; cursor: pointer; text-align: left; scroll-snap-align: start; }
.core-shortcut:hover { box-shadow: 0 4px 12px rgba(21,62,49,.08); }
.core-shortcut--green { border-left-color: var(--factory-green-600); }
.core-shortcut--blue { border-left-color: var(--factory-blue-700); }
.core-shortcut--orange { border-left-color: var(--factory-orange-700); }
.core-shortcut--red { border-left-color: var(--factory-red-700); }
.core-shortcut-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 4px; background: var(--factory-green-100); color: var(--factory-green-700); }
.core-shortcut--blue .core-shortcut-icon { background: var(--factory-blue-100); color: var(--factory-blue-700); }
.core-shortcut--orange .core-shortcut-icon { background: var(--factory-orange-100); color: var(--factory-orange-700); }
.core-shortcut--red .core-shortcut-icon { background: var(--factory-red-100); color: var(--factory-red-700); }
.core-shortcut-icon svg { width: 16px; height: 16px; }
.core-shortcut-copy { min-width: 0; display: flex; flex-direction: column; }
.core-shortcut-copy b { overflow: hidden; color: #203a30; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.core-shortcut-copy small { color: #74847d; font-size: 9px; }
.core-shortcut strong { color: #1b3329; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 19px; }
.core-shortcut-arrow { width: 16px; color: #9baba4; }
.command-grid { display: grid; grid-template-columns: minmax(0, 1fr) 285px; gap: 12px; align-items: start; }
.command-queue .factory-table-scroll { max-height: 492px; }
.command-alerts { min-height: 250px; }
.alert-queue { display: flex; flex-direction: column; }
.alert-order { min-height: 59px; display: grid; grid-template-columns: 4px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 7px 10px; border: 0; border-bottom: 1px solid #edf1ef; background: #fff; cursor: pointer; text-align: left; }
.alert-order:hover { background: #f6f9f7; }
.alert-order-mark { width: 4px; height: 32px; background: var(--factory-orange-700); }
.alert-order-mark--danger { background: var(--factory-red-700); }
.alert-order > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.alert-order b { overflow: hidden; color: #2c4139; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.alert-order small { color: #7a8983; font-size: 9px; }
.alert-order strong { color: var(--factory-red-700); font-size: 9px; white-space: nowrap; }

/* 订单中心 */
.order-view-tabs { display: flex; align-items: center; gap: 1px; flex-wrap: nowrap; margin-bottom: 10px; overflow-x: auto; border-bottom: 1px solid #cad7d1; scrollbar-width: thin; }
.order-view-tabs button, .order-detail-tabs button { min-height: 37px; padding: 7px 13px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #697b73; cursor: pointer; font-size: 12px; font-weight: 700; }
.order-view-tabs button:hover, .order-detail-tabs button:hover { color: var(--factory-green-700); }
.order-view-tabs button.is-active, .order-detail-tabs button.is-active { border-bottom-color: var(--factory-green-700); color: var(--factory-green-700); }
.order-filter-panel { margin-bottom: 10px; overflow: visible; }
.order-filter-row { min-height: 55px; display: flex; align-items: center; gap: 8px; padding: 9px 10px; }
.order-center > .command-heading,
.order-center > .order-view-tabs,
.order-center > .order-stage-filter-bar,
.order-center > .order-filter-panel,
.order-center > .order-batchbar { flex: 0 0 auto; }
.order-center .command-heading { min-height: 40px; align-items: center; margin-bottom: 1px; }
.order-center .command-heading h1 { margin: 0; font-size: 18px; }
.order-center .command-kicker { font-size: 9px; }
.order-center .command-heading-actions { gap: 6px; }
.order-center .command-heading-actions .factory-button { min-height: 30px; padding: 5px 9px; font-size: 11px; }
.order-center .order-view-tabs { margin-bottom: 3px; }
.order-view-tabs-label { flex: 0 0 auto; padding: 0 9px 0 2px; color: #61746b; font-size: 9px; font-weight: 800; white-space: nowrap; }
.order-center .order-view-tabs button { min-height: 27px; padding: 3px 10px; font-size: 10px; }
.order-stage-filter-bar { min-width: 0; display: flex; align-items: center; gap: 4px; margin: 0 0 4px; padding: 3px 5px; overflow-x: auto; border-bottom: 1px solid #d6e0dc; background: #f5f8f6; scrollbar-width: thin; }
.order-stage-filter-label { flex: 0 0 auto; padding: 0 7px 0 2px; color: #61746b; font-size: 9px; font-weight: 800; white-space: nowrap; }
.order-stage-filter-bar button.order-stage-filter { min-height: 24px; flex: 0 0 auto; padding: 3px 8px; border: 1px solid #d4dfda; border-radius: 3px; background: #fff; color: #53685f; font: inherit; font-size: 10px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.order-stage-filter-bar button.order-stage-filter:hover { border-color: #93aea3; background: #eef5f1; color: var(--factory-green-700); }
.order-stage-filter-bar button.order-stage-filter:focus-visible { outline: 2px solid var(--factory-green-700); outline-offset: 1px; }
.order-stage-filter-bar button.order-stage-filter.is-active { border-color: var(--factory-green-700); background: #dfeee7; color: #145d47; box-shadow: inset 0 -2px var(--factory-green-700); }
.order-stage-filter-bar button.order-stage-filter--all.is-active { background: #edf3f0; color: #39554a; box-shadow: none; }
.order-center .order-filter-panel { margin-bottom: 4px; }
.order-center .order-filter-row { min-height: 38px; gap: 6px; padding: 3px 6px; }
.order-center .factory-search { min-height: 30px; }
.order-center .factory-search input { height: 28px; }
.order-keyword-search { min-width: 260px; flex: 1 1 340px; }
.order-filter-input { min-width: 164px; height: 30px; display: flex; align-items: center; gap: 6px; flex: 0 1 195px; padding: 0 9px; border: 1px solid #cbd8d2; border-radius: 4px; background: #fff; }
.order-filter-input:focus-within { border-color: var(--factory-green-700); box-shadow: 0 0 0 3px rgba(23,107,85,.10); }
.order-filter-input svg { width: 14px; color: #72847c; }
.order-filter-input input { min-width: 0; width: 100%; height: 28px; border: 0; outline: 0; background: transparent; color: #294137; font-size: 11px; }
.order-center .order-filter-row select { height: 30px; padding: 0 8px; font-size: 11px; }
.order-center .factory-check { height: 30px; padding: 0 8px; font-size: 10px; }
.order-center .order-filter-row > .factory-button, .order-center .order-filter-row > .factory-icon-button { min-height: 30px; padding: 4px 8px; font-size: 11px; }
.order-center .order-filter-row > .factory-icon-button { width: 30px; padding: 0; }
.order-filter-more { position: relative; flex: 0 0 auto; }
.order-filter-more summary { min-height: 30px; padding: 4px 8px; list-style: none; font-size: 11px; }
.order-filter-more summary::-webkit-details-marker { display: none; }
.order-filter-more[open] summary { border-color: var(--factory-green-700); background: #edf6f1; color: var(--factory-green-700); }
.order-filter-more-popover { position: absolute; top: calc(100% + 6px); right: 0; z-index: 20; width: 400px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 10px; border: 1px solid #b9cdc3; border-radius: 4px; background: #fff; box-shadow: 0 10px 24px rgba(17,51,40,.16); }
.order-filter-more-popover label { min-width: 0; display: flex; flex-direction: column; gap: 4px; color: #61746b; font-size: 10px; font-weight: 700; }
.order-filter-more-popover input { width: 100%; height: 32px; padding: 0 8px; border: 1px solid #cbd8d2; border-radius: 3px; background: #fff; color: #294137; font: inherit; font-weight: 400; }
.factory-search { min-width: 260px; min-height: 36px; display: flex; align-items: center; gap: 7px; flex: 1 1 330px; padding: 0 10px; border: 1px solid #cbd8d2; border-radius: 4px; background: #fff; }
.factory-search:focus-within { border-color: var(--factory-green-700); box-shadow: 0 0 0 3px rgba(23,107,85,.10); }
.factory-search svg { width: 16px; color: #72847c; }
.factory-search input { min-width: 0; width: 100%; height: 34px; border: 0; outline: 0; background: transparent; }
.factory-search--small { min-width: 260px; max-width: 360px; flex: 0 1 360px; }
.order-filter-row select, .order-filter-row > input { height: 36px; padding: 0 9px; border: 1px solid #cbd8d2; border-radius: 4px; background: #fff; color: #344b42; font-size: 12px; }
.factory-check { height: 36px; display: inline-flex; align-items: center; gap: 6px; padding: 0 9px; border: 1px solid #cbd8d2; background: #fff; cursor: pointer; font-size: 11px; white-space: nowrap; }
.factory-check input { accent-color: var(--factory-red-700); }
.filter-separator { color: #8b9893; font-size: 10px; }
.order-batchbar { min-height: 34px; display: flex; align-items: center; gap: 4px; margin-bottom: 5px; padding: 3px 6px; border: 1px dashed #c9d5d0; background: rgba(255,255,255,.55); color: #83918b; }
.order-batchbar.is-active { border-style: solid; border-color: #a9c8bc; background: #eaf3ef; color: #28493d; }
.order-batchbar > span { display: inline-flex; align-items: center; gap: 5px; margin-right: 8px; font-size: 11px; }
.order-batchbar svg { width: 14px; height: 14px; }
.order-batchbar button { min-height: 27px; display: inline-flex; align-items: center; gap: 4px; padding: 3px 7px; border: 1px solid #bad0c7; border-radius: 3px; background: #fff; color: #45645a; cursor: pointer; font-size: 10px; }
.order-batchbar:not(.is-active) { min-height: 29px; }
.order-batchbar:not(.is-active) button { display: none; }
.order-batchbar .order-batch-clear { margin-left: auto; }
.order-list-panel { margin-bottom: 0; }
.order-center .order-list-panel .factory-panel-heading { min-height: 40px; padding: 6px 10px; }
.order-center .order-list-panel .factory-panel-heading span { font-size: 13px; }

/* 宽屏订单中心合并为两条工具栏：范围+搜索、环节+批量操作。 */
@media (min-width: 1400px) {
  .main-content.is-orders-page .page.factory-page.order-center {
    display: grid;
    grid-template-columns: minmax(580px, .72fr) minmax(760px, 1.28fr);
    grid-template-rows: auto auto auto minmax(0, 1fr);
    column-gap: 6px;
    align-content: stretch;
  }
  .order-center > .command-heading { grid-column: 1 / -1; grid-row: 1; }
  .order-center > .order-view-tabs { grid-column: 1; grid-row: 2; min-width: 0; height: 42px; margin: 0 0 4px; padding: 0 5px; border: 1px solid var(--factory-gray-200); background: #f8faf9; }
  .order-center > .order-filter-panel { grid-column: 2; grid-row: 2; min-width: 0; height: 42px; margin: 0 0 4px; }
  .order-center > .order-filter-panel .order-filter-row { height: 40px; min-height: 40px; padding: 3px 5px; }
  .order-center > .order-stage-filter-bar { grid-column: 1; grid-row: 3; min-width: 0; height: 31px; margin: 0 0 5px; padding: 3px 5px; border: 1px solid var(--factory-gray-200); }
  .order-center > #orderBatchBar { grid-column: 2; grid-row: 3; min-width: 0; }
  .order-center > #orderBatchBar .order-batchbar { width: 100%; height: 31px; min-height: 31px; margin: 0 0 5px; }
  .order-center > .order-list-panel { grid-column: 1 / -1; grid-row: 4; min-width: 0; min-height: 0; }
}
.order-table-scroll { height: calc(100vh - 385px); min-height: 310px; max-height: none; }
.order-table { min-width: 1660px; }
.order-table th { height: 34px; padding: 5px 8px; }
.order-table td { height: 44px; padding: 3px 8px; }
.order-table .select-column { width: 32px; }
.order-table .factory-progress { width: 96px; height: 17px; }
.order-table .factory-progress > b { padding-top: 0; padding-bottom: 0; line-height: 17px; }
.order-table .order-identity { min-width: 130px; gap: 0; }
.order-table .order-identity b { font-size: 12px; line-height: 1.25; }
.order-table .order-identity span { max-width: 180px; font-size: 10px; line-height: 1.25; }
.order-table input[type="checkbox"] { width: 15px; height: 15px; }
.order-table .factory-button--small { padding-right: 6px; padding-left: 6px; }
.order-created-at { min-width: 88px; font-variant-numeric: tabular-nums; }
.order-direct-cell { width: 100%; min-width: 0; display: block; padding: 1px 3px; border: 1px solid transparent; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.order-direct-cell:hover { border-color: #b9d5c8; background: #f1f8f4; }
.order-direct-cell:active { background: #e4f1eb; }
.order-direct-cell:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--factory-green-700); outline-offset: -2px; }
.order-progress-cell .factory-progress { pointer-events: none; }
.order-delivery-edit { width: 118px; min-width: 0; height: 30px; padding: 0 6px; border: 1px solid #cbd8d2; border-radius: 3px; background: #fff; color: #294137; font: 11px/1 "Microsoft YaHei UI", sans-serif; cursor: pointer; }
.order-delivery-edit:hover { border-color: #9bc4b0; }
.order-delivery-edit:focus { border-color: var(--factory-green-700); outline: 0; box-shadow: 0 0 0 2px rgba(23,107,85,.1); }
.order-delivery-edit:disabled { cursor: wait; opacity: .65; }
.order-information-item--editable input.order-delivery-edit { grid-column: 2; width: 100%; min-width: 0; }
.order-customer [data-order-delivery-value] { color: inherit; font-weight: 700; }
.modal:has(.order-create-form) { width: min(1040px,94vw); max-width: 1040px; max-height: 92vh; overflow: hidden; }
.modal:has(.order-create-form) .modal-body { max-height: calc(92vh - 126px); overflow-y: auto; padding: 13px 16px; }
.order-create-form { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr); gap: 0; }
.order-create-name-preview { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 3px 10px; margin: 0 0 12px; padding: 10px 12px; border-left: 3px solid var(--factory-green-700); background: #edf7f2; }
.order-create-name-preview span { color: #5f786c; font-size: 10px; font-weight: 800; }
.order-create-name-preview b { min-width: 0; overflow: hidden; color: #174c36; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.order-create-name-preview small { grid-column: 2; color: #71847a; font-size: 10px; }
.order-create-fields { min-width: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 12px; }
.order-create-form .form-group { min-width: 0; margin-bottom: 9px; }
.order-create-form .form-group label { margin-bottom: 5px; color: #425b51; font-size: 11px; font-weight: 700; }
.order-create-form .form-group input,
.order-create-form .form-group textarea { min-height: 36px; border-color: #c6d4ce; border-radius: 4px; background: #fff; color: #203a30; font-size: 12px; }
.order-create-form .form-group textarea { min-height: 48px; max-height: 90px; }
.order-customer-picker { display: flex; align-items: stretch; gap: 4px; }
.order-customer-picker input { flex: 1; min-width: 0; }
.order-customer-picker .factory-icon-button { flex: 0 0 36px; width: 36px; min-height: 36px; }
.order-customer-choices { position: relative; z-index: 4; display: grid; gap: 2px; max-height: 260px; overflow-y: auto; margin-top: 4px; padding: 4px; border: 1px solid #c6d4ce; background: #fff; box-shadow: 0 5px 14px rgba(23,76,54,.12); }
.order-customer-choices button { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; border: 0; background: #fff; color: #203a30; text-align: left; cursor: pointer; }
.order-customer-choices button:hover { background: #edf7f2; }
.order-customer-choices small, .order-customer-empty { color: #71847a; font-size: 10px; }
.order-customer-add { display: flex; gap: 5px; margin-top: 5px; }
.order-customer-add input { width: 0; flex: 1; min-width: 0; }
.order-customer-add button, #f_customerAddToggle { margin-top: 5px; }
.order-create-remark { grid-column: 1/-1; }
.order-create-attachments { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 0 10px; padding: 8px 10px; border: 1px solid #d4dfda; background: #f5f8f6; }
.order-create-attachments b, .order-create-attachments small { display: block; }
.order-create-attachments b { color: #24483a; font-size: 11px; }
.order-create-attachments small { margin-top: 2px; color: #788a82; font-size: 10px; }
.order-create-attachment-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.order-create-section { min-width: 0; width: 100%; margin-top: 2px; overflow: hidden; border: 1px solid #d4dfda; background: #fff; }
.order-create-section-heading { min-height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 9px 6px 12px; border-bottom: 1px solid #d4dfda; background: #f2f6f4; }
.order-create-section-heading b { color: #24483a; font-size: 12px; }
.order-create-table-scroll { width: 100%; max-width: 100%; max-height: 245px; min-height: 112px; overflow: auto; }
.order-create-table { min-width: 880px; }
.order-create-table th { position: sticky; top: 0; z-index: 2; height: 34px; padding: 5px 6px; background: #e9f0ed; font-size: 10px; white-space: nowrap; }
.order-create-table td { height: 41px; padding: 4px 5px; }
.order-create-table th:nth-child(1), .order-create-table td:nth-child(1) { min-width: 132px; }
.order-create-table th:nth-child(2), .order-create-table td:nth-child(2) { min-width: 112px; }
.order-create-table th:nth-child(3), .order-create-table td:nth-child(3) { min-width: 92px; }
.order-create-table th:nth-child(n+4):nth-child(-n+7),
.order-create-table td:nth-child(n+4):nth-child(-n+7) { min-width: 76px; }
.order-create-table th:nth-child(8), .order-create-table td:nth-child(8) { min-width: 108px; }
.order-create-table th:last-child, .order-create-table td:last-child { width: 46px; min-width: 46px; text-align: center; }
.order-create-table input { width: 100%; min-width: 0; height: 31px; padding: 4px 6px; border: 1px solid #cbd8d2; border-radius: 3px; outline: 0; color: #263e34; font: 11px/1.2 "Microsoft YaHei UI",sans-serif; }
.order-create-table input:focus { border-color: var(--factory-green-700); box-shadow: 0 0 0 2px rgba(23,107,85,.1); }
.order-create-empty { height: 76px !important; color: #7c8c85; font-size: 11px; text-align: center; }
.system-order-name-rule { margin-bottom: 12px; border: 1px solid #d7e3dd; background: #fff; }
.system-order-name-rule-body { display: grid; gap: 10px; padding: 12px; }
.system-order-name-rule-body > label { display: grid; grid-template-columns: 96px minmax(0,1fr); align-items: center; gap: 10px; }
.system-order-name-rule-body > label > span { color: #4f685d; font-size: 11px; font-weight: 800; }
.system-order-name-rule-body input { min-height: 34px; border: 1px solid #c6d4ce; border-radius: 3px; padding: 6px 9px; color: #214437; font: 12px/1.3 Bahnschrift,"Microsoft YaHei UI",sans-serif; }
.system-order-name-rule-help { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: #70847a; font-size: 10px; }
.system-order-name-rule-help b { color: #365f4d; }
.system-order-name-rule-help span { padding: 4px 6px; border: 1px solid #d9e5df; background: #f6faf8; }
.system-order-name-rule-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.system-order-name-rule-actions small { color: #7b8c84; font-size: 10px; }
.order-item-remove { width: 29px; height: 29px; color: var(--factory-red-700); }
.order-item-remove:hover { border-color: #e0b5ae; background: #fff2f0; }
.order-table tbody tr { cursor: pointer; }
.order-table tr.is-selected td { background: #e9f4ef; }
.order-table tr.has-exception td:first-child { box-shadow: inset 3px 0 var(--factory-red-700); }
.order-delivery-cell { min-width: 92px; display: flex; flex-direction: column; gap: 1px; line-height: 1.1; }
.order-delivery-date { color: #29463b; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 11px; font-weight: 700; white-space: nowrap; }
.order-delivery-remaining { color: #6e8078; font-size: 10px; white-space: nowrap; }
.order-delivery-cell.is-warning .order-delivery-remaining { color: #a56a0b; font-weight: 700; }
.order-delivery-cell.is-today .order-delivery-remaining { color: #bb6113; font-weight: 800; }
.order-delivery-cell.is-overdue .order-delivery-date, .order-delivery-cell.is-overdue .order-delivery-remaining { color: var(--factory-red-700); font-weight: 800; }
.order-delivery-cell.is-empty .order-delivery-date, .order-delivery-cell.is-empty .order-delivery-remaining { color: #87948e; font-weight: 500; }
.progress-copy { display: block; margin-bottom: 1px; color: #73827c; font-size: 9px; line-height: 1.1; }
.progress-copy b { color: #25483b; font-size: 11px; }
.replacement-copy { display: block; margin-top: 1px; color: #8b6d6a; font-size: 9px; line-height: 1.1; }
.priority-flag { display: inline-block; margin-right: 5px; padding: 1px 4px; border-radius: 2px; background: var(--factory-red-700); color: #fff !important; font-family: "Microsoft YaHei UI", sans-serif; font-size: 9px !important; }
.delivery-date.is-overdue { color: var(--factory-red-700); font-weight: 800; }
.list-page-status { color: #75857e !important; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 10px !important; font-weight: 600 !important; }
.factory-pagination { min-height: 47px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 7px 11px; border-top: 1px solid var(--factory-gray-200); }
.factory-pagination button { min-height: 30px; display: inline-flex; align-items: center; gap: 4px; padding: 4px 9px; border: 1px solid #cad7d1; border-radius: 3px; background: #fff; color: #405a50; cursor: pointer; font-size: 10px; }
.factory-pagination button:disabled { cursor: not-allowed; opacity: .4; }
.factory-pagination svg { width: 13px; }
.factory-pagination span { color: #71817a; font-size: 10px; }

/* 订单详情 */
.order-detail-heading { min-height: 58px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: start; gap: 9px; margin-bottom: 8px; }
.order-back { width: 32px; height: 32px; min-height: 32px; margin-top: 0; }
.order-detail-title > span { color: var(--factory-green-700); font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 11px; font-weight: 700; }
.order-detail-title h1 { margin: 0 0 3px; font-size: 20px; line-height: 1.18; }
.order-detail-title > div { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.order-customer { display: inline-flex; align-items: center; gap: 4px; color: #66776f; font-size: 10px; }
.order-customer svg { width: 13px; height: 13px; }
.order-detail-actions { display: flex; align-items: center; gap: 5px; }
.order-detail-actions .factory-button { min-height: 30px; padding-top: 4px; padding-bottom: 4px; }
.order-completed-mark { min-height: 32px; display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid #a9cdbb; border-radius: 3px; background: #eef7f2; color: var(--factory-green-700); font-size: 10px; font-weight: 800; white-space: nowrap; }
.order-completed-mark svg { width: 14px; height: 14px; }
.workflow-complete-confirm { display: grid; gap: 12px; }
.workflow-complete-order { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: baseline; gap: 3px 10px; padding: 10px 11px; border-left: 3px solid var(--factory-green-700); background: #f3f7f5; }
.workflow-complete-order span { color: #72817a; font-size: 10px; }
.workflow-complete-order b { color: #173a2d; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 14px; }
.workflow-complete-order small { grid-column: 2; color: #586d64; font-size: 11px; }
.workflow-complete-confirm > p { display: flex; align-items: flex-start; gap: 7px; margin: 0; padding: 9px 10px; border: 1px solid #d8e3de; background: #fff; color: #4f635a; font-size: 11px; line-height: 1.55; }
.workflow-complete-confirm > p svg { width: 15px; height: 15px; flex: 0 0 15px; margin-top: 1px; color: var(--factory-green-700); }
.order-track-panel { margin-bottom: 10px; }
.order-track-panel .factory-panel-heading > .factory-progress { flex: 0 0 180px; }
.order-stage-track { display: grid; grid-template-columns: repeat(10,minmax(0,1fr)); padding: 15px 12px 13px; overflow: hidden; }
.order-stage { min-width: 0; position: relative; display: flex; align-items: center; gap: 7px; padding: 0; border: 0; background: #fff; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.order-stage:hover .order-stage-copy b { color: var(--factory-green-700); }
.order-stage:focus-visible { outline: 2px solid var(--factory-green-600); outline-offset: 3px; border-radius: 3px; }
.order-stage::after { content: ""; position: absolute; top: 14px; left: 30px; right: 0; height: 2px; background: #dce5e1; }
.order-stage:last-child::after { display: none; }
.order-stage-node { width: 29px; height: 29px; position: relative; z-index: 1; display: grid; place-items: center; flex: 0 0 29px; border: 2px solid #cbd7d2; border-radius: 50%; background: #fff; color: #788780; font-family: Bahnschrift, sans-serif; font-size: 10px; font-weight: 800; }
.order-stage-node svg { width: 14px; }
.order-stage-copy { min-width: 0; position: relative; z-index: 1; display: block; padding-right: 4px; background: #fff; }
.order-stage b, .order-stage small { display: block; white-space: nowrap; }
.order-stage b { color: #52655d; font-size: 10px; }
.order-stage small { color: #8a9792; font-size: 8px; }
.order-stage.is-done .order-stage-node { border-color: var(--factory-green-700); background: var(--factory-green-700); color: #fff; }
.order-stage.is-done::after { background: var(--factory-green-700); }
.order-stage.is-bypassed .order-stage-node { border-color: #2d769d; background: #e8f3f8; color: #1d648a; }
.order-stage.is-bypassed .order-stage-node svg { width: 13px; }
.order-stage.is-bypassed::after { background: #75aeca; }
.order-stage.is-bypassed b { color: #24698f; }
.order-stage.is-bypassed small { color: #6790a7; }
.order-stage.is-current .order-stage-node { border-color: var(--factory-orange-700); background: var(--factory-orange-100); color: var(--factory-orange-700); box-shadow: 0 0 0 4px rgba(185,101,18,.10); }
.order-stage.is-current b { color: var(--factory-orange-700); }
.order-stage.is-stage-focus .order-stage-node { box-shadow: 0 0 0 5px rgba(26,107,81,.16); }
.is-stage-focus { animation: order-stage-focus 1.2s ease-out; }
@keyframes order-stage-focus { 0% { background: #eaf4ef; } 100% { background: transparent; } }
@media (prefers-reduced-motion: reduce) { .is-stage-focus { animation: none; } }
.order-detail-metrics { display: grid; grid-template-columns: repeat(6,1fr); margin-bottom: 10px; border: 1px solid var(--factory-gray-200); background: #fff; }
.order-detail-metrics > div { min-height: 69px; display: grid; grid-template-columns: auto 1fr; align-content: center; gap: 1px 6px; padding: 9px 12px; border-right: 1px solid var(--factory-gray-200); }
.order-detail-metrics > div:last-child { border-right: 0; }
.order-detail-metrics span { grid-column: 1/-1; color: #6e7f77; font-size: 9px; }
.order-detail-metrics strong { color: #1f382e; font-family: Bahnschrift, "Segoe UI", sans-serif; font-size: 23px; line-height: 1; }
.order-detail-metrics small { align-self: end; color: #7b8b84; font-size: 9px; }
.order-detail-metrics .is-danger strong { color: var(--factory-red-700); }
.order-detail-tabs { display: flex; align-items: center; gap: 3px; margin-bottom: 10px; border-bottom: 1px solid #cbd8d2; }
.order-detail-tabs button { display: inline-flex; align-items: center; gap: 6px; }
.order-detail-tabs svg { width: 14px; height: 14px; }
.order-detail-view { display: none; }
.order-detail-view.is-active { display: block; }
.order-information-band { display: grid; grid-template-columns: 128px minmax(0,1fr); margin-bottom: 10px; border: 1px solid var(--factory-gray-200); background: #fff; }
.order-information-heading { display: flex; flex-direction: column; justify-content: center; gap: 3px; padding: 10px 13px; border-right: 1px solid #dce6e1; background: #edf5f1; }
.order-information-heading span { color: #173d2f; font-size: 12px; font-weight: 800; }
.order-information-heading small { color: #6c8077; font-size: 9px; line-height: 1.35; }
.order-information-grid { min-width: 0; display: grid; grid-template-columns: repeat(8,minmax(0,1fr)); }
.order-information-item { min-width: 0; min-height: 58px; display: grid; grid-template-columns: 18px minmax(0,1fr); align-content: center; gap: 2px 6px; padding: 8px 10px; border-right: 1px solid #e1e8e4; }
.order-information-item:last-child { border-right: 0; }
.order-information-item > svg { grid-row: 1/3; align-self: center; width: 15px; height: 15px; color: var(--factory-green-700); }
.order-information-item span { min-width: 0; color: #718279; font-size: 9px; }
.order-information-item b { min-width: 0; overflow: hidden; color: #263d34; font-size: 11px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.order-information-item.is-empty b { color: #9aa7a1; font-weight: 500; }
.order-overview-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(340px,.8fr); gap: 10px; margin-bottom: 10px; }
.stage-progress-list { display: grid; grid-template-columns: repeat(2,minmax(220px,1fr)); gap: 0 22px; padding: 10px 13px; }
.stage-progress-item { min-width: 0; min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 4px; border: 0; border-bottom: 1px solid #edf1ef; background: transparent; color: inherit; cursor: pointer; text-align: left; }
.stage-progress-item:hover { background: #f1f7f4; }
.stage-progress-item:active { background: #e5f0eb; }
.stage-progress-item:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--factory-green-700); outline-offset: -2px; }
.stage-progress-label { display: inline-flex; align-items: center; gap: 6px; color: #40574e; font-size: 11px; }
.stage-progress-meter { min-width: 124px; display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.stage-progress-meter .factory-progress { flex: 1 1 110px; }
.stage-progress-list svg { width: 15px; color: var(--factory-green-700); }
.stage-progress-arrow { width: 13px !important; color: #809189 !important; transition: transform .14s ease; }
.stage-progress-item:hover .stage-progress-arrow { transform: translateX(2px); color: var(--factory-green-700) !important; }
.factory-table.is-stage-cutting th:first-child, .factory-table.is-stage-cutting td:first-child,
.factory-table.is-stage-sorting th:first-child, .factory-table.is-stage-sorting td:first-child,
.factory-table.is-stage-packing th:first-child, .factory-table.is-stage-packing td:first-child,
.factory-table.is-stage-shipping th:first-child, .factory-table.is-stage-shipping td:first-child { background: #eef6f2; color: #155d49; font-weight: 800; box-shadow: inset -1px 0 #c5ddd2; }
.order-stage-status-toolbar { min-height: 64px; display: flex; align-items: stretch; justify-content: space-between; gap: 12px; padding: 8px 10px; border-bottom: 1px solid #d9e3df; background: #f8faf9; }
.stage-status-filters { min-width: 0; display: grid; grid-template-columns: repeat(4,minmax(104px,142px)); gap: 6px; }
.stage-status-filter { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 10px; border: 1px solid #d4dfda; border-radius: 4px; background: #fff; color: #52655d; font: inherit; cursor: pointer; }
.stage-status-filter span { overflow: hidden; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.stage-status-filter b { color: #1d392f; font-family: Bahnschrift,"Segoe UI",sans-serif; font-size: 17px; }
.stage-status-filter:hover { border-color: #91afa3; background: #f1f7f4; }
.stage-status-filter:focus-visible { outline: 2px solid var(--factory-green-700); outline-offset: 1px; }
.stage-status-filter.is-active { border-color: var(--factory-green-700); background: #e6f2ec; box-shadow: inset 0 -3px var(--factory-green-700); }
.stage-status-filter--warning.is-active { border-color: var(--factory-orange-700); background: #fff2df; box-shadow: inset 0 -3px var(--factory-orange-700); }
.stage-status-filter--danger.is-active { border-color: var(--factory-red-700); background: #fff0ef; box-shadow: inset 0 -3px var(--factory-red-700); }
.stage-status-filter--success.is-active { border-color: #25805f; background: #e7f5ee; box-shadow: inset 0 -3px #25805f; }
.order-stage-operation { align-self: center; flex: 0 0 auto; }
.stage-operation-detail { color: #315b4b; font-weight: 800; }
.panel-stage-row.is-completed > td:not(.panel-more-column) { background-color: #f5faf7; }
.panel-stage-row.is-exception > td:not(.panel-more-column) { background-color: #fff5f3; }
.factory-table tbody .panel-stage-row.is-completed:hover > td:not(.panel-more-column) { background-color: #eaf5ef; }
.factory-table tbody .panel-stage-row.is-exception:hover > td:not(.panel-more-column) { background-color: #ffebe7; }
.order-file-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 6px; padding: 10px; }
.order-file-grid a { min-width: 0; min-height: 40px; display: grid; grid-template-columns: 20px minmax(0,1fr) auto 14px; align-items: center; gap: 7px; padding: 7px 9px; border: 1px solid #d8e2dd; color: #35594b; text-decoration: none; font-size: 10px; font-weight: 700; }
.order-file-grid a span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.order-file-grid a small { color: #6d857a; font-size: 9px; font-weight: 600; white-space: nowrap; }
.order-file-grid a.is-pending { border-color: #d7b56c; color: #805d18; background: #fffaf0; }
.order-file-grid a:hover { border-color: #8fb2a4; background: #f1f7f4; }
.order-file-grid svg { width: 15px; height: 15px; }
@media (max-width: 620px) { .order-file-grid { grid-template-columns: minmax(0,1fr); padding: 8px; } }
.workflow-change-alert { min-height: 58px; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 10px; margin-bottom: 10px; padding: 10px 12px; border: 1px solid #e5a752; border-left: 4px solid var(--factory-orange-700); background: #fff7e8; color: #684719; }
.workflow-change-alert > svg { width: 22px; height: 22px; color: var(--factory-orange-700); }
.workflow-change-alert b,.workflow-change-alert span { display: block; }
.workflow-change-alert b { font-size: 12px; }
.workflow-change-alert span { margin-top: 2px; font-size: 10px; }
.workflow-version-resolution { margin-bottom: 10px; padding: 0; overflow: hidden; border-left: 4px solid var(--factory-orange-700); }
.workflow-version-resolution.is-applied { border-left-color: var(--factory-green-700); }
.workflow-version-resolution > header { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 13px; background: #fff8ec; border-bottom: 1px solid #eadfc9; }
.workflow-version-resolution.is-applied > header { background: #edf7f2; border-bottom-color: #cfe2d7; }
.workflow-version-resolution > header > div:first-child > span,.workflow-version-resolution > header > div:first-child > b,.workflow-version-resolution > header > div:first-child > small { display: block; }
.workflow-version-resolution > header > div:first-child > span { color: #8a5a19; font-size: 10px; font-weight: 800; }
.workflow-version-resolution > header > div:first-child > b { margin-top: 2px; color: #173f31; font-size: 16px; }
.workflow-version-resolution > header > div:first-child > small { margin-top: 2px; color: #6f7d77; font-size: 10px; }
.workflow-version-resolution-actions { display: flex; align-items: center; gap: 8px; }
.version-group-list { max-height: 310px; overflow: auto; }
.version-group-row { min-height: 58px; display: grid; grid-template-columns: minmax(210px,1fr) minmax(280px,1.2fr) auto; align-items: center; gap: 12px; padding: 7px 12px; border-bottom: 1px solid #e8ece9; background: #fff; }
.version-group-row:last-child { border-bottom: 0; }
.version-group-row:hover { background: #f7faf8; }
.version-group-spec { min-width: 0; display: flex; align-items: center; gap: 8px; }
.version-group-spec > b { overflow: hidden; color: #213b31; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.version-change { flex: 0 0 auto; padding: 2px 6px; border: 1px solid #cbd8d1; background: #f2f6f4; color: #53665d; font-size: 9px; font-weight: 700; }
.version-change--changed,.version-change--removed { border-color: #efc27e; background: #fff4df; color: #8b5411; }
.version-change--added { border-color: #a8c9e7; background: #edf6fd; color: #225f91; }
.version-group-count { display: grid; grid-template-columns: repeat(3,minmax(76px,1fr)); gap: 5px; }
.version-group-count > span { padding: 5px 7px; background: #f2f5f3; color: #66766e; font-size: 10px; text-align: center; }
.version-group-count b { color: #234d3c; font-size: 12px; }
.version-group-count .has-production { background: #fff0e8; color: #8b421e; }
.version-group-count .has-production b { color: #b33f16; }
.version-group-actions { display: grid; grid-template-columns: repeat(2,minmax(92px,1fr)); gap: 5px; align-items: center; }
.version-group-actions > small { grid-column: 1/-1; color: #7a8981; font-size: 9px; text-align: right; }
.version-choice { min-height: 30px; padding: 4px 9px; border: 1px solid #c9d5cf; border-radius: 4px; background: #f3f6f4; color: #41564d; font: 700 10px/1 "Microsoft YaHei UI",sans-serif; cursor: pointer; }
.version-choice:hover:not(:disabled) { border-color: var(--factory-green-700); color: var(--factory-green-700); }
.version-choice.is-selected { border-color: var(--factory-green-700); background: var(--factory-green-700); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); }
.version-choice--latest.is-selected { border-color: #176ea5; background: #176ea5; }
.version-choice:disabled { cursor: default; opacity: .72; }
.version-group-actions > .version-choice[aria-label] { grid-column: 1/-1; display: flex; align-items: center; justify-content: center; }
.workflow-command { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 13px; border-left: 4px solid var(--factory-green-700); }
.workflow-command > div:first-child span,.workflow-command > div:first-child b,.workflow-command > div:first-child small { display: block; }
.workflow-command > div:first-child span { color: #73847c; font-size: 9px; font-weight: 700; }
.workflow-command > div:first-child b { margin-top: 2px; color: #173f31; font-family: Bahnschrift,"Microsoft YaHei UI",sans-serif; font-size: 18px; }
.workflow-command > div:first-child small { margin-top: 2px; color: #788780; font-size: 9px; }
.workflow-command-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.workflow-review-upload { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; padding-right: 4px; border-right: 1px solid #dce7e1; }
.workflow-upload-group { display: inline-flex; align-items: center; gap: 6px; min-width: 0; flex-wrap: wrap; }
.workflow-upload-group + .workflow-upload-group { padding-left: 9px; border-left: 1px solid #dce7e1; }
.workflow-upload-group-label { display: inline-flex; align-items: center; gap: 4px; color: #587267; font-size: 10px; font-weight: 800; white-space: nowrap; }
.workflow-upload-group-label svg { width: 14px; height: 14px; }
.workflow-review-upload .factory-button { min-height: 28px; }
.workflow-freeze-check { display: inline-flex; align-items: center; gap: 4px; min-height: 28px; padding: 4px 8px; border: 1px solid #d7e3dd; background: #f7faf8; color: #6e8178; font-size: 10px; font-weight: 700; }
.workflow-freeze-check svg { width: 14px; height: 14px; }
.workflow-freeze-check.is-ready { border-color: #abd0be; background: #f1faf5; color: var(--factory-green-700); }
.workflow-freeze-check.is-blocked { border-color: #e5c1b5; background: #fff8f5; color: #a24d3b; }
.workflow-path-preview { display: grid; gap: 12px; min-width: min(520px, 100%); }
.workflow-path-preview-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.workflow-path-preview-summary span { display: grid; gap: 3px; padding: 10px; border: 1px solid #d7e3dd; background: #f7faf8; color: #6e8178; font-size: 12px; }
.workflow-path-preview-summary b { color: var(--factory-green-700); font-size: 18px; }
.workflow-path-preview ul { display: grid; gap: 1px; margin: 0; padding: 0; list-style: none; border: 1px solid #d7e3dd; }
.workflow-path-preview li { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 36px; padding: 0 11px; background: #fff; color: #52675e; font-size: 13px; }
.workflow-path-preview li:nth-child(even) { background: #f7faf8; }
.workflow-path-preview li b { color: var(--factory-green-700); }
.workflow-path-preview p { margin: 0; color: #718078; font-size: 12px; line-height: 1.65; }
.workflow-path-preview-warning { display: flex; align-items: flex-start; gap: 7px; padding: 9px 10px; border: 1px solid #edc5ba; background: #fff8f5; color: #a24d3b; font-size: 12px; line-height: 1.5; }
.workflow-path-preview-warning svg { flex: 0 0 auto; width: 16px; height: 16px; }
.workflow-batch-upload { display:grid; gap:14px; min-width:min(520px,100%); padding:3px 0; }
.workflow-upload-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; }
.workflow-upload-steps span { display:flex; align-items:center; justify-content:center; gap:5px; min-width:0; color:#8a9991; font-size:11px; white-space:nowrap; }
.workflow-upload-steps i { width:8px; height:8px; border:1px solid #bdcbc4; border-radius:50%; background:#fff; }
.workflow-upload-steps .is-active { color:#166546; font-weight:700; }
.workflow-upload-steps .is-active i { border-color:#17835a; background:#17835a; box-shadow:0 0 0 3px #e3f3e9; }
.workflow-upload-steps .is-done { color:#376f59; }
.workflow-upload-steps .is-done i { border-color:#298260; background:#298260; }
.workflow-upload-meter { position:relative; height:22px; overflow:hidden; background:#e7eeea; border:1px solid #d3e0d8; border-radius:3px; }
.workflow-upload-meter > span { position:absolute; inset:0 auto 0 0; background:#17835a; transition:width .25s ease; }
.workflow-upload-meter > b { position:relative; z-index:1; display:block; padding:2px 8px; color:#17392a; font-size:11px; line-height:16px; text-align:right; }
.workflow-upload-current { display:flex; align-items:center; justify-content:space-between; gap:14px; color:#496358; font-size:12px; }
.workflow-upload-current b { min-width:0; overflow:hidden; color:#1d4836; text-overflow:ellipsis; white-space:nowrap; }
.workflow-upload-current span { flex:0 0 auto; color:#72847a; font-family:Bahnschrift,"Segoe UI",sans-serif; }
.workflow-upload-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid #d7e3dd; background:#f7faf8; }
.workflow-upload-stats span { display:grid; gap:3px; min-width:0; padding:9px 10px; border-right:1px solid #dce7e1; }
.workflow-upload-stats span:last-child { border-right:0; }
.workflow-upload-stats small { color:#778a80; font-size:10px; }
.workflow-upload-stats b { overflow:hidden; color:#245e45; font-family:Bahnschrift,"Segoe UI",sans-serif; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.workflow-upload-error { display:flex; align-items:flex-start; gap:7px; padding:9px 10px; border:1px solid #edc5ba; background:#fff8f5; color:#a24d3b; font-size:12px; line-height:1.5; }
.workflow-upload-error svg { flex:0 0 auto; width:16px; height:16px; }
.workflow-upload-error span { min-width:0; overflow-wrap:anywhere; word-break:break-word; }
@media (max-width:600px) { .workflow-upload-steps span { font-size:10px; } .workflow-upload-steps b { overflow:hidden; text-overflow:ellipsis; } .workflow-upload-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } .workflow-upload-stats span:nth-child(2) { border-right:0; } .workflow-upload-stats span:nth-child(-n+2) { border-bottom:1px solid #dce7e1; } }
.workflow-assignee-select { height: 34px; display: flex; align-items: center; gap: 7px; padding-left: 9px; border: 1px solid #c7d4ce; background: #fff; color: #63766d; font-size: 10px; }
.workflow-assignee-select select { min-width: 150px; height: 32px; border: 0; border-left: 1px solid #d9e2de; outline: 0; background: #fff; color: #29443a; }
.workflow-lock { min-height: 34px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid #91b5a5; background: #e9f5ef; color: #145d47; font-size: 10px; font-weight: 800; }
.workflow-lock svg { width: 15px; height: 15px; }
.workflow-lane { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 10px 0; border: 1px solid #cfdbd6; background: #fff; }
.workflow-lane-card { min-width: 0; min-height: 86px; display: grid; grid-template-columns: 30px minmax(0,1fr); align-items: center; gap: 9px; padding: 11px 12px; border-right: 1px solid #dfe7e3; }
.workflow-lane-card:last-child { border-right: 0; }
.workflow-lane-card > svg { width: 23px; height: 23px; color: var(--factory-green-700); }
.workflow-lane-card span,.workflow-lane-card b,.workflow-lane-card small { display: block; }
.workflow-lane-card span { color: #74847d; font-size: 9px; }
.workflow-lane-card b { margin-top: 2px; color: #203d32; font-size: 12px; }
.workflow-lane-card small { margin-top: 3px; overflow: hidden; color: #84918c; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.workflow-detail-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); gap: 10px; }
.workflow-subheading { min-height: 32px; display: flex; align-items: center; padding: 6px 10px; border-top: 1px solid #dfe7e3; border-bottom: 1px solid #dfe7e3; background: #f5f8f6; color: #36594c; font-size: 10px; font-weight: 800; }
.workflow-version-table tr.is-current-version td { background: #eaf5f0; }
.workflow-version-table { min-width: 640px; table-layout: fixed; }
.workflow-version-table th:nth-child(1) { width: 58px; }
.workflow-version-table th:nth-child(2) { width: 72px; }
.workflow-version-table th:nth-child(3) { width: 88px; }
.workflow-version-table th:nth-child(4) { width: 124px; }
.workflow-version-table th:nth-child(5) { width: 108px; }
.workflow-version-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workflow-version-action { width: 164px; text-align: right; white-space: nowrap; }
.workflow-version-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; max-width: 100%; }
.workflow-version-switch { min-width: 104px; justify-content: center; }
.workflow-version-delete { flex: 0 0 30px; width: 30px; height: 30px; color: #b33c32; border-color: #e8b9b2; background: #fff8f6; }
.workflow-version-delete:hover { color: #fff; border-color: #c44c40; background: #c44c40; }
.workflow-version-current { display: inline-flex; align-items: center; gap: 5px; color: var(--factory-green-700); font-size: 10px; font-weight: 800; }
.workflow-version-current svg { width: 14px; height: 14px; }
.workflow-version-unavailable { color: #88968f; font-size: 10px; }
.workflow-version-no { color: var(--factory-green-700); font-family: Bahnschrift,Consolas,monospace; }
.workflow-file-kind { display: inline-flex; min-height: 22px; align-items: center; padding: 3px 6px; border: 1px solid #cedbd5; background: #f5f8f6; color: #456157; font-size: 9px; font-weight: 700; }
.workflow-file-kind.is-zuc { border-color: #b8d4c5; background: #edf8f1; color: #176444; }
.workflow-file-kind.is-folder { border-color: #b9d1c6; background: #eaf5f0; color: var(--factory-green-700); }
.workflow-file-kind.is-folder.is-cutting { border-color:#b9cbe2; background:#edf4fb; color:#315b87; }
.workflow-file-kind.is-folder.is-drilling { border-color:#e8c1bb; background:#fff1ef; color:#a23d31; }
.workflow-document-scroll { max-height: 260px; }
.workflow-document-scroll .factory-table { min-width: 590px; table-layout: fixed; }
.workflow-document-scroll th:nth-child(1),.workflow-document-scroll td:nth-child(1) { width: 70px; }
.workflow-document-scroll th:nth-child(3),.workflow-document-scroll td:nth-child(3) { width: 66px; }
.workflow-document-scroll th:nth-child(4),.workflow-document-scroll td:nth-child(4) { width: 76px; }
.workflow-document-scroll th:nth-child(5),.workflow-document-scroll td:nth-child(5) { width: 118px; }
.workflow-document-scroll a { display: block; overflow: hidden; color: var(--factory-green-700); font-weight: 700; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.workflow-document-scroll a:hover { text-decoration: underline; }
.workflow-folder-row td { background: #fbfdfc; }
.workflow-folder-name { min-width: 0; display: flex; align-items: center; gap: 9px; color: #214b3b; }
.workflow-folder-name > svg { flex: 0 0 auto; width: 19px; height: 19px; color: #3a8065; fill: #dceee6; }
.workflow-folder-name div { min-width: 0; }
.workflow-folder-name b,.workflow-folder-name small { display: block; }
.workflow-folder-name b { overflow: hidden; color: var(--factory-green-700); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.workflow-folder-name small { margin-top: 2px; color: #788b82; font-size: 8px; }
.workflow-document-action { width: 68px; min-width: 68px; text-align: center; }
.workflow-document-actions { display: flex; align-items: center; justify-content: center; gap: 5px; }
.workflow-document-download { width: 28px; height: 28px; border-color: #a9cbbb; color: var(--factory-green-700); }
.workflow-document-download:hover { border-color: #4d8f73; background: #eaf5f0; color: #0d5e43; }
.workflow-document-delete { width: 28px; height: 28px; margin: 0 auto; border-color: #e8b6b2; color: var(--factory-red-700); }
.workflow-document-delete:hover { border-color: #cf7770; background: var(--factory-red-100); color: #8f2f2a; }
.workflow-event-panel { min-height: 360px; }
.workflow-event-list { max-height: 500px; margin: 0; padding: 8px 13px 12px; overflow-y: auto; list-style: none; }
.workflow-event-list li { position: relative; min-height: 58px; display: grid; grid-template-columns: 14px minmax(0,1fr); gap: 7px; padding: 8px 0; border-bottom: 1px solid #edf1ef; }
.workflow-event-list li:last-child { border-bottom: 0; }
.workflow-event-dot { width: 9px; height: 9px; margin-top: 3px; border: 2px solid #fff; border-radius: 50%; background: var(--factory-green-700); box-shadow: 0 0 0 1px #8bb0a0; }
.workflow-event-list b,.workflow-event-list small,.workflow-event-list p { display: block; margin: 0; }
.workflow-event-list b { color: #27473b; font-size: 10px; }
.workflow-event-list small { margin-top: 2px; color: #84918b; font-size: 8px; }
.workflow-event-list p { margin-top: 3px; color: #65776f; font-size: 9px; line-height: 1.4; }
.workflow-event-list li.is-empty { display: block; color: #819089; text-align: center; }
.workflow-modal-field { display: grid; gap: 7px; color: #36544a; font-size: 11px; font-weight: 700; }
.workflow-modal-field textarea,.workflow-modal-field input { width: 100%; min-height: 38px; padding: 8px 9px; border: 1px solid #c8d5cf; border-radius: 3px; outline: 0; color: #203d32; font: inherit; resize: vertical; }
.workflow-modal-field textarea:focus,.workflow-modal-field input:focus { border-color: var(--factory-green-700); box-shadow: 0 0 0 2px rgba(26,107,81,.11); }
.workflow-modal-field small { color: #7b8a84; font-size: 9px; font-weight: 400; }
.workflow-folder-input { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; }
.detail-table-scroll { max-height: calc(100vh - 350px); min-height: 280px; }
.order-detail-section-state { min-height: 280px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 28px; color: #6d7e76; text-align: center; }
.order-detail-section-state > svg { width: 28px; height: 28px; color: #7f9d90; }
.order-detail-section-state b { color: #31483e; font-size: 13px; }
.order-detail-section-state small { color: #84928c; font-size: 10px; }
.order-detail-section-state.is-loading { background: #fafcfb; }
.order-detail-section-state.is-error > svg { color: var(--factory-red-700); }
.order-detail-section-state .factory-button { margin-top: 5px; }
.order-detail-pagination { min-height: 43px; }
.panel-code { font-family: Bahnschrift, Consolas, monospace; color: #1f4939; }
#orderPanelTable { min-width: 1390px; }
.panel-model-column { width: 92px; min-width: 92px; text-align: center; }
.panel-model-link { width: 76px; min-height: 28px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 4px 6px; border: 1px solid #b9d0c6; border-radius: 3px; background: #edf6f1; color: var(--factory-green-700); font-size: 10px; font-weight: 800; line-height: 1; text-decoration: none; white-space: nowrap; }
.panel-model-link:hover { border-color: var(--factory-green-700); background: #dfeee7; color: #0c513d; }
.panel-model-link:focus-visible { outline: 2px solid var(--factory-green-700); outline-offset: 2px; }
.panel-model-link svg { width: 13px; height: 13px; flex: 0 0 auto; }
.panel-model-link > svg,.panel-model-link > span { pointer-events: none; }
.panel-model-empty { color: #94a19b; font-size: 9px; }
.hardware-detail-table { min-width: 1260px; }
.hardware-remark { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.panel-more-column { position: sticky !important; right: 0; z-index: 4; width: 86px; min-width: 86px; border-left: 1px solid #dbe4e0; background: #fff !important; text-align: center; box-shadow: -5px 0 9px rgba(20,55,44,.035); }
.factory-table th.panel-more-column { z-index: 6; background: #f0f4f2 !important; }
.factory-table tbody tr:hover .panel-more-column { background: #f1f7f4 !important; }
.panel-more-button { min-width: 66px; color: var(--factory-green-700); }
.panel-more-button svg { width: 14px; height: 14px; }
.order-panel-detail-backdrop { position: fixed; inset: 64px 0 0; z-index: 160; visibility: hidden; opacity: 0; pointer-events: none; background: rgba(13,40,34,.18); transition: opacity .16s ease,visibility .16s ease; }
.order-panel-detail-backdrop.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
.order-panel-detail-drawer { position: absolute; top: 0; right: 0; bottom: 0; width: min(620px,94vw); display: flex; flex-direction: column; background: #fff; border-left: 1px solid #b9cac3; box-shadow: -18px 0 38px rgba(9,35,27,.19); transform: translateX(100%); transition: transform .2s ease; }
.order-panel-detail-backdrop.is-open .order-panel-detail-drawer { transform: translateX(0); }
.order-panel-detail-drawer > header { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border-bottom: 1px solid #d9e3df; background: #f6f9f7; }
.order-panel-detail-drawer > header > div { min-width: 0; }
.order-panel-detail-drawer > header span { display: block; color: var(--factory-green-700); font-size: 10px; font-weight: 800; }
.order-panel-detail-drawer > header h2 { margin: 2px 0 0; overflow: hidden; color: #19342b; font-family: Bahnschrift,"Microsoft YaHei UI",sans-serif; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
.order-panel-detail-content { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; background: #f6f8f7; }
.panel-detail-loading { min-height: 240px; display: flex; align-items: center; justify-content: center; gap: 9px; color: #52675e; }
.panel-detail-loading .spinner { width: 22px; height: 22px; }
.panel-detail-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); background: #fff; border-bottom: 1px solid #dfe7e3; }
.panel-detail-summary > div { min-width: 0; min-height: 58px; padding: 10px 13px; border-right: 1px solid #edf1ef; border-bottom: 1px solid #edf1ef; }
.panel-detail-summary > div:nth-child(2n) { border-right: 0; }
.panel-detail-summary span,.panel-detail-summary b { display: block; }
.panel-detail-summary span { margin-bottom: 3px; color: #73827c; font-size: 10px; }
.panel-detail-summary b { color: #213c32; font-size: 13px; overflow-wrap: anywhere; }
.panel-super-reminder { padding: 11px 13px 12px; border-bottom: 1px solid #dfe7e3; background: #fff8ef; }
.panel-super-reminder header { margin-bottom: 8px; }
.panel-super-reminder header b,.panel-super-reminder header small { display: block; }
.panel-super-reminder header b { color: #8b4a08; font-size: 13px; }
.panel-super-reminder header small { margin-top: 2px; color: #8a6a45; font-size: 10px; }
.panel-super-reminder > div { display: flex; gap: 7px; }
.panel-super-reminder input { min-width: 0; flex: 1; height: 34px; padding: 0 9px; border: 1px solid #e1c69f; background: #fff; color: #283d33; font-size: 12px; }
.panel-super-reminder .factory-button { min-width: 72px; }
.panel-detail-workflow { padding: 12px 13px 13px; background: #fff; border-bottom: 1px solid #dfe7e3; }
.panel-detail-workflow h3 { margin: 0 0 8px; color: #234237; font-size: 13px; }
.panel-detail-workflow > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid #dce6e1; }
.panel-workflow-cell { min-height: 64px; padding: 9px 10px; border-right: 1px solid #e4ebe7; border-bottom: 1px solid #e4ebe7; background: #fafcfb; }
.panel-workflow-cell:nth-child(2n) { border-right: 0; }
.panel-workflow-cell span,.panel-workflow-cell b,.panel-workflow-cell small { display: block; }
.panel-workflow-cell span { color: #778780; font-size: 10px; }
.panel-workflow-cell b { margin-top: 2px; color: #6d7974; font-size: 12px; }
.panel-workflow-cell small { margin-top: 3px; color: #87948f; font-size: 9px; line-height: 1.35; overflow-wrap: anywhere; }
.panel-workflow-cell.is-active { background: #eef7f3; }
.panel-workflow-cell.is-active b { color: var(--factory-green-700); }
.panel-detail-field-tools { position: sticky; top: 0; z-index: 3; display: grid; grid-template-columns: auto minmax(230px,1fr); align-items: center; gap: 12px; padding: 10px 13px; border-bottom: 1px solid #cfdcd6; background: rgba(246,249,247,.97); backdrop-filter: blur(6px); }
.panel-detail-field-tools > div b,.panel-detail-field-tools > div span { display: block; }
.panel-detail-field-tools > div b { color: #223d33; font-size: 13px; }
.panel-detail-field-tools > div span { margin-top: 2px; color: #788780; font-size: 9px; }
.panel-detail-field-tools label { height: 34px; display: flex; align-items: center; gap: 7px; padding: 0 9px; border: 1px solid #c5d3cd; background: #fff; }
.panel-detail-field-tools label svg { width: 14px; height: 14px; color: #718079; }
.panel-detail-field-tools input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: #203930; font-size: 11px; }
.panel-detail-field-section { margin: 10px 13px 13px; border: 1px solid #d8e2dd; background: #fff; }
.panel-detail-field-section > header { min-height: 38px; display: flex; align-items: center; justify-content: space-between; padding: 7px 10px; border-bottom: 1px solid #d8e2dd; background: #edf4f1; }
.panel-detail-field-section > header b { color: #1e493a; font-size: 12px; }
.panel-detail-field-section > header span { color: #6f8179; font-size: 10px; }
.panel-detail-field-row { display: grid; grid-template-columns: minmax(150px,190px) minmax(0,1fr); min-height: 48px; border-bottom: 1px solid #edf1ef; }
.panel-detail-field-row:last-child { border-bottom: 0; }
.panel-detail-field-row[hidden] { display: none; }
.panel-detail-field-name,.panel-detail-field-value { min-width: 0; padding: 8px 10px; }
.panel-detail-field-name { border-right: 1px solid #edf1ef; background: #fafcfb; }
.panel-detail-field-name b,.panel-detail-field-name small { display: block; overflow-wrap: anywhere; }
.panel-detail-field-name b { color: #2b463c; font-family: Bahnschrift,Consolas,monospace; font-size: 11px; }
.panel-detail-field-name small { margin-top: 2px; color: #829089; font-size: 9px; }
.panel-detail-field-value { display: flex; align-items: center; color: #283f36; font-size: 11px; overflow-wrap: anywhere; }
.panel-detail-field-value pre { width: 100%; max-height: 240px; margin: 0; overflow: auto; color: #31453d; font: 10px/1.5 Consolas,"Microsoft YaHei UI",monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.panel-field-empty { color: #a0aaa6; }
.panel-detail-no-fields { padding: 18px 10px; color: #82908a; font-size: 11px; text-align: center; }

/* 尚未切换的工作区 */
.workspace-preview { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.workspace-preview > div { min-height: 90px; display: grid; grid-template-columns: 34px 1fr; align-content: center; gap: 4px 9px; padding: 13px; border: 1px solid var(--factory-gray-200); background: #fff; }
.workspace-preview svg { width: 23px; grid-row: 1/3; align-self: center; color: var(--factory-green-700); }
.workspace-preview b { font-size: 12px; }
.workspace-preview span { color: #84918c; font-size: 9px; }
.workspace-empty { margin-top: 10px; border: 1px dashed #c7d3ce; background: rgba(255,255,255,.45); }

/* Operational workspaces */
.workspace-page { min-height: calc(100vh - 58px); }
.workspace-heading { margin-bottom: 10px; }
.workspace-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 10px; border: 1px solid var(--factory-gray-200); background: #fff; }
.workspace-metric { min-height: 72px; display: flex; flex-direction: column; justify-content: space-between; gap: 7px; padding: 10px 13px; border-right: 1px solid var(--factory-gray-200); }
.workspace-metric:last-child { border-right: 0; }
.workspace-metric span { display: inline-flex; align-items: center; gap: 6px; color: #687a72; font-size: 10px; font-weight: 700; }
.workspace-metric span svg { width: 15px; height: 15px; }
.workspace-metric strong { color: #1d352b; font-family: Bahnschrift,"Segoe UI",sans-serif; font-size: 25px; line-height: 1; }
.workspace-metric--warning span svg,.workspace-metric--warning strong { color: var(--factory-orange-700); }
.workspace-metric--danger span svg,.workspace-metric--danger strong { color: var(--factory-red-700); }
.workspace-metric--info span svg,.workspace-metric--info strong { color: var(--factory-blue-700); }
.workspace-metric--success span svg,.workspace-metric--success strong { color: var(--factory-green-700); }
.workspace-tabs { display: flex; align-items: center; gap: 2px; margin-bottom: 9px; overflow-x: auto; border-bottom: 1px solid #cbd8d2; }
.workspace-tabs button { min-height: 38px; display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; padding: 7px 13px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #718079; cursor: pointer; font-size: 11px; font-weight: 700; }
.workspace-tabs button:hover { color: var(--factory-green-700); background: #f3f8f5; }
.workspace-tabs button.is-active { border-bottom-color: var(--factory-green-700); color: var(--factory-green-700); background: #f4f8f6; }
.workspace-tabs svg { width: 14px; height: 14px; }

/* Warehouse map and stock entry use the saved physical layout as the source of truth. */
.warehouse-overview-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.warehouse-overview-card{min-height:112px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:7px;padding:12px;border:1px solid #d9e5df;border-radius:6px;background:#fbfdfc;text-align:left;color:#36584a;cursor:pointer}.warehouse-overview-card:hover{border-color:#79a992;background:#f4faf6}.warehouse-overview-card>span{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700}.warehouse-overview-card svg{width:16px;height:16px;color:#2b8061}.warehouse-overview-card>b{font-size:24px;line-height:1;color:#173f32}.warehouse-overview-card>b small{font-size:11px;font-weight:500;color:#70847a}.warehouse-overview-card>em{font-size:10px;font-style:normal;color:#7d8c85}.warehouse-overview-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.warehouse-overview-actions>button{display:flex;align-items:center;gap:10px;min-height:58px;padding:9px 11px;border:1px solid #dce8e2;border-radius:6px;background:#fff;text-align:left;color:#36584b;cursor:pointer}.warehouse-overview-actions>button:hover{border-color:#81ae98;background:#f7fbf8}.warehouse-overview-actions>button>svg:first-child{width:18px;height:18px;color:#2b8061}.warehouse-overview-actions>button>svg:last-child{margin-left:auto;width:15px;height:15px;color:#8b9a93}.warehouse-overview-actions span{display:flex;flex-direction:column;gap:3px}.warehouse-overview-actions b{font-size:12px}.warehouse-overview-actions small{font-size:10px;color:#7b8b83}.warehouse-reset-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid #ead4cf;border-left:3px solid #b34b42;border-radius:6px;background:#fff9f8}.warehouse-reset-panel>div{display:flex;align-items:center;gap:9px;min-width:0}.warehouse-reset-panel>div>svg{width:18px;height:18px;color:#b34b42}.warehouse-reset-panel span{display:flex;flex-direction:column;gap:3px}.warehouse-reset-panel b{font-size:12px;color:#6f302c}.warehouse-reset-panel small{font-size:10px;color:#89625e}.warehouse-map-toolbar{display:flex;align-items:center;gap:10px;min-height:36px;margin-bottom:8px}.warehouse-map-selector{display:flex;align-items:center;gap:7px;color:#687b72;font-size:11px}.warehouse-map-selector select{height:30px;min-width:190px;padding:0 8px;border:1px solid #cadad2;border-radius:4px;background:#fff;color:#2b493d}.warehouse-map-title{display:flex;flex-direction:column;gap:3px;min-width:180px}.warehouse-map-title b{font-size:13px;color:#21483a}.warehouse-map-title small{font-size:10px;color:#7d8e86}.warehouse-map-legend{display:flex;align-items:center;gap:10px;margin-left:auto;color:#71827a;font-size:10px;white-space:nowrap}.warehouse-map-legend span{display:inline-flex;align-items:center;gap:4px}.warehouse-map-legend i{display:inline-block;width:8px;height:8px;border:1px solid #adbbb4;border-radius:2px;background:#fff}.warehouse-map-legend i.is-used{border-color:#5d9bc0;background:#d8ebf5}.warehouse-map-legend i.is-warning{border-color:#d3a04e;background:#fff1d0}.warehouse-map-legend i.is-full{border-color:#bd5047;background:#f9d9d4}.warehouse-map-legend i.is-locked{border-color:#9ca5a1;background:#e4e9e6}.warehouse-map-viewport{min-height:360px;max-height:calc(100vh - 330px);overflow:auto;padding:14px;background:#eef3f0;border:1px solid #dce8e2;border-radius:5px}.warehouse-map-canvas{position:relative;overflow:hidden;border:1px solid #adbfB6;background-color:#fbfdfc;background-image:linear-gradient(var(--warehouse-grid,#24px) 1px,transparent 1px),linear-gradient(90deg,var(--warehouse-grid,#24px) 1px,transparent 1px);box-shadow:0 2px 8px rgba(26,68,51,.1)}.warehouse-map-zone{position:absolute;z-index:1;box-sizing:border-box;border:1px dashed rgba(29,100,75,.42);border-radius:4px;padding:8px;opacity:.65;pointer-events:none}.warehouse-map-zone b{display:block;font-size:12px;color:#315d4c}.warehouse-map-zone small{display:block;margin-top:2px;font-size:10px;color:#608274}.warehouse-map-rack{position:absolute;z-index:2;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;padding:7px;border:1px solid #9fb9ae;border-radius:4px;background:#fff;box-shadow:0 1px 5px rgba(15,63,45,.12);text-align:left;cursor:pointer;transition:box-shadow .15s,border-color .15s}.warehouse-map-rack:hover{z-index:4;border-color:#2b8061;box-shadow:0 0 0 3px rgba(43,128,97,.15)}.warehouse-map-rack>span:first-child{display:flex;justify-content:space-between;gap:5px;min-width:0}.warehouse-map-rack b{font-size:11px;color:#21483a;white-space:nowrap}.warehouse-map-rack em{max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-style:normal;color:#758980}.warehouse-map-rack-levels{display:flex;flex:1;align-items:center;justify-content:space-evenly;gap:3px;margin:7px 0}.warehouse-map-rack-levels i{display:block;flex:1;min-height:7px;border-top:3px solid #90afa0;border-bottom:1px solid #c4d4cc;background:#eef5f1}.warehouse-map-rack--vertical .warehouse-map-rack-levels i{border-left:3px solid #90afa0;border-top:0;border-bottom:0}.warehouse-map-rack--floor{background:#fffaf1;border-color:#d4a45e}.warehouse-map-rack--floor .warehouse-map-rack-levels{display:grid;grid-template-columns:repeat(3,1fr);margin:8px 0}.warehouse-map-rack--floor .warehouse-map-rack-levels i{border:1px dashed #b27c32;background:#fff0cc}.warehouse-map-rack-levels i.is-used,.warehouse-map-rack.is-used .warehouse-map-rack-levels i{border-color:#5d9bc0;background:#d8ebf5}.warehouse-map-rack-levels i.is-warning,.warehouse-map-rack.is-warning .warehouse-map-rack-levels i{border-color:#d3a04e;background:#fff1d0}.warehouse-map-rack-levels i.is-full,.warehouse-map-rack.is-full .warehouse-map-rack-levels i{border-color:#bd5047;background:#f9d9d4}.warehouse-map-rack.is-locked{border-color:#9ca5a1;background:#f0f3f1;filter:grayscale(.55)}.warehouse-map-rack>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#70837a;font-size:9px}.warehouse-location-detail{min-width:min(780px,78vw)}.warehouse-location-detail>header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 0 9px;border-bottom:1px solid #e0eae4}.warehouse-location-detail>header span{display:flex;flex-direction:column;gap:3px}.warehouse-location-detail>header b{font-size:16px;color:#21483a}.warehouse-location-detail>header small{font-size:10px;color:#7a8b83}.warehouse-location-detail>header em{font-size:10px;font-style:normal;color:#48735e}.warehouse-location-list{max-height:52vh;overflow:auto;padding:8px 0}.warehouse-location-row{display:grid;grid-template-columns:minmax(180px,1fr) 110px 110px 70px;align-items:center;gap:8px;padding:8px 9px;border:1px solid #e0e9e4;border-radius:5px;margin-bottom:5px;background:#fbfdfc}.warehouse-location-row.is-used{border-color:#b9d4e4;background:#f3f9fc}.warehouse-location-row.is-warning{border-color:#e3c383;background:#fffaf0}.warehouse-location-row.is-full{border-color:#e2aaa5;background:#fff6f5}.warehouse-location-row.is-locked{border-color:#bbc3be;background:#f0f3f1}.warehouse-location-row span{display:flex;flex-direction:column;gap:2px}.warehouse-location-row b{font-size:11px;color:#355b4b}.warehouse-location-row small{font-size:9px;color:#81918a}.warehouse-location-row>em{font-size:10px;font-style:normal;text-align:right;color:#6d7e76}.warehouse-location-detail>footer{display:flex;justify-content:flex-end;gap:7px;padding-top:8px;border-top:1px solid #e0eae4}.warehouse-inbound-form{min-width:min(700px,76vw)}.warehouse-inbound-form small{display:block;margin-top:3px;color:#7b8d83;font-size:10px}.warehouse-reset-confirm{display:flex;flex-direction:column;gap:9px;min-width:min(540px,72vw)}.warehouse-reset-confirm>svg{width:28px;height:28px;color:#b34b42}.warehouse-reset-confirm h3{margin:0;color:#6f302c;font-size:15px}.warehouse-reset-confirm p{margin:0;padding:9px;background:#fff5f3;border-left:3px solid #c36b62;color:#7d5753;font-size:12px;line-height:1.5}.warehouse-reset-confirm label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#5e7068}.warehouse-reset-confirm input{height:34px;padding:0 9px;border:1px solid #d2b2ad;border-radius:4px}
@media(max-width:920px){.warehouse-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.warehouse-map-legend{margin-left:0;order:3;width:100%;overflow:auto}.warehouse-map-toolbar{flex-wrap:wrap}.warehouse-location-detail{min-width:0}.warehouse-location-row{grid-template-columns:minmax(140px,1fr) 80px 80px 58px}}
@media(max-width:640px){.warehouse-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.warehouse-overview-actions{grid-template-columns:1fr}.warehouse-reset-panel{align-items:flex-start;flex-direction:column}.warehouse-reset-panel .factory-button{width:100%;justify-content:center}.warehouse-map-viewport{max-height:none}.warehouse-location-row{grid-template-columns:minmax(130px,1fr) 70px 70px 52px;padding:7px 6px}}
.workspace-toolbar { min-height: 58px; display: flex; align-items: center; gap: 7px; margin-bottom: 10px; padding: 9px 10px; }
.workspace-toolbar .factory-search { min-width: 250px; flex: 1 1 340px; }
.workspace-toolbar select { height: 36px; min-width: 125px; padding: 0 9px; border: 1px solid #cbd8d2; border-radius: 4px; background: #fff; color: #344b42; font-size: 11px; }
.workspace-panel { min-height: 300px; overflow: hidden; }
.workspace-panel > .factory-panel-heading { min-height: 51px; }
.workspace-live { display: inline-flex; align-items: center; gap: 4px; color: var(--factory-green-700); font-size: 10px; font-weight: 700; }
.workspace-live svg { width: 14px; height: 14px; }
.workspace-table-scroll { max-height: calc(100vh - 365px); min-height: 250px; overflow: auto; }
.workspace-table { min-width: 1030px; }
.workspace-table td { vertical-align: middle; }
.workspace-table td small { display: block; margin-top: 3px; color: #7b8a84; font-size: 9px; }
.workspace-table .factory-button { margin-right: 4px; }
.workspace-progress-note { display: block; margin-top: 3px; color: #7c8a84; font-size: 9px; }
.workspace-done { display: inline-flex; align-items: center; gap: 4px; color: var(--factory-green-700); font-size: 10px; font-weight: 700; white-space: nowrap; }
.workspace-done svg { width: 14px; height: 14px; }
.workspace-danger-number { color: var(--factory-red-700); }
.workspace-danger-copy { color: var(--factory-red-700) !important; font-weight: 700; }
.factory-button--success { border-color: var(--factory-green-700); background: var(--factory-green-100); color: var(--factory-green-700); }
.factory-button--success:hover { border-color: var(--factory-green-700); background: var(--factory-green-700); color:#fff; }
.production-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); margin-bottom:9px; border:1px solid var(--factory-gray-200); background:#fff; }
.production-kpi { min-width:0; min-height:70px; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; gap:5px 8px; padding:9px 11px; border:0; border-right:1px solid var(--factory-gray-200); background:#fff; color:#4e635a; cursor:pointer; text-align:left; }
.production-kpi:last-child { border-right:0; }
.production-kpi:hover { background:#f4f8f6; }
.production-kpi > span { display:inline-flex; align-items:center; gap:5px; min-width:0; font-size:10px; font-weight:800; }
.production-kpi > span svg { width:14px; height:14px; }
.production-kpi strong { grid-row:1/3; grid-column:2; align-self:center; color:#17372b; font:800 24px/1 Bahnschrift,"Segoe UI",sans-serif; }
.production-kpi small { overflow:hidden; color:#7c8d85; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.production-kpi--warning > span,.production-kpi--warning strong { color:var(--factory-orange-700); }
.production-kpi--info > span,.production-kpi--info strong { color:var(--factory-blue-700); }
.production-kpi--success > span,.production-kpi--success strong { color:var(--factory-green-700); }
.production-kpi--danger > span,.production-kpi--danger strong { color:var(--factory-red-700); }
.production-toolbar { flex-wrap:nowrap; }
.production-toolbar .factory-search { min-width:260px; }
.production-filter-input { width:120px; height:36px; padding:0 9px; border:1px solid #cbd8d2; border-radius:4px; color:#344b42; }
.production-filter-date { width:132px; height:36px; padding:0 7px; border:1px solid #cbd8d2; border-radius:4px; color:#344b42; }
.production-queue-panel { display:flex; min-height:0; flex-direction:column; }
.production-batchbar { min-height:39px; display:flex; align-items:center; gap:8px; padding:5px 10px; border-bottom:1px solid #dfe7e3; background:#f8faf9; }
.production-batchbar label { display:inline-flex; align-items:center; gap:6px; color:#465c52; font-size:10px; font-weight:700; }
.production-batchbar small { margin-left:auto; color:#829088; font-size:9px; }
.production-table-scroll { max-height:calc(100vh - 432px); min-height:260px; }
.production-table { min-width:1280px; }
.production-table th:first-child,.production-table td:first-child { position:sticky; left:0; z-index:4; width:64px; background:#fff; }
.production-table th:first-child { z-index:6; background:#f0f4f2; }
.production-table th:nth-child(2),.production-table td:nth-child(2) { position:sticky; left:64px; z-index:4; min-width:200px; background:#fff; box-shadow:1px 0 0 #dfe7e3; }
.production-table th:nth-child(2) { z-index:6; background:#f0f4f2; }
.production-table tbody tr:hover td:first-child,.production-table tbody tr:hover td:nth-child(2) { background:#f1f7f4; }
.production-task-row.is-blocked td { background:#fff7f6; }
.production-task-row.is-blocked td:first-child,.production-task-row.is-blocked td:nth-child(2) { background:#fff7f6; }
.production-task-row.is-blocked:hover td { background:#fff1ef; }
.production-select-cell { display:flex; align-items:center; gap:5px; }
.production-drag-handle { display:inline-flex; align-items:center; justify-content:center; width:22px; height:28px; color:#8a9a92; cursor:grab; }
.production-drag-handle:active { cursor:grabbing; }
.production-drag-handle svg { width:14px; height:14px; }
.production-block-copy { max-width:150px; overflow:hidden; color:var(--factory-red-700) !important; text-overflow:ellipsis; }
.production-data-pending { display:inline-flex; align-items:center; gap:5px; color:#71827a; font-size:10px; }
.production-data-pending svg { width:14px; height:14px; }
.production-plan-date { color:#29483c; font-size:11px; }
.production-row-actions { display:flex; align-items:center; min-width:174px; }
.production-plan-button { width:30px; height:30px; min-height:30px; margin-right:4px; }
.production-pager { min-height:44px; display:flex; align-items:center; justify-content:flex-end; gap:7px; padding:6px 10px; border-top:1px solid #dfe7e3; background:#fafcfb; }
.production-pager > span { margin-right:5px; color:#71837a; font-size:10px; }
.production-batch-summary { display:flex; align-items:center; padding:8px 10px; border:1px solid #d7e3dd; background:#f3f8f5; color:#597067; font-size:11px; }
.production-batch-summary b { margin:0 4px; color:var(--factory-green-700); font-size:16px; }
.production-task-backdrop { position:fixed; inset:58px 0 0; z-index:1700; visibility:hidden; opacity:0; pointer-events:none; background:rgba(13,40,34,.18); transition:opacity .16s ease,visibility .16s ease; }
.production-task-backdrop.is-open { visibility:visible; opacity:1; pointer-events:auto; }
.production-task-drawer { position:absolute; top:0; right:0; bottom:0; width:min(560px,94vw); border-left:1px solid #b9cac3; background:#f5f8f6; box-shadow:-18px 0 38px rgba(9,35,27,.19); transform:translateX(100%); transition:transform .2s ease; }
.production-task-backdrop.is-open .production-task-drawer { transform:translateX(0); }
.production-task-drawer-body { height:100%; display:grid; grid-template-rows:auto auto auto minmax(0,1fr) auto; }
.production-task-drawer-body > header { min-height:76px; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:13px 16px; border-bottom:1px solid #d5e0da; background:#fff; }
.production-task-drawer-body > header span { color:var(--factory-green-700); font-size:10px; font-weight:800; }
.production-task-drawer-body > header h2 { margin:3px 0; color:#17372b; font:800 21px/1.2 Bahnschrift,"Microsoft YaHei UI",sans-serif; }
.production-task-drawer-body > header p { margin:0; color:#74857d; font-size:10px; }
.production-drawer-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-bottom:1px solid #d7e2dc; background:#eef5f1; }
.production-drawer-summary > div { min-width:0; padding:9px 11px; border-right:1px solid #d7e2dc; }
.production-drawer-summary > div:last-child { border-right:0; }
.production-drawer-summary span { display:block; margin-bottom:4px; color:#74867d; font-size:9px; }
.production-drawer-summary b { display:block; overflow:hidden; color:#27483b; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.production-drawer-alert { display:flex; align-items:flex-start; gap:9px; padding:10px 14px; border-bottom:1px solid #efc5c1; background:#fff3f1; color:var(--factory-red-700); }
.production-drawer-alert svg { width:18px; height:18px; flex:0 0 18px; }
.production-drawer-alert div { display:flex; flex-direction:column; gap:3px; }
.production-drawer-alert b { font-size:11px; }
.production-drawer-alert span { font-size:10px; line-height:1.45; }
.production-drawer-scroll { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:10px; }
.production-drawer-scroll > section { margin-bottom:9px; border:1px solid #d6e1dc; background:#fff; }
.production-drawer-scroll h3 { margin:0; padding:9px 11px; border-bottom:1px solid #e0e8e4; color:#27483b; font-size:12px; }
.production-task-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.production-task-fields > div { padding:8px 11px; border-right:1px solid #edf1ef; border-bottom:1px solid #edf1ef; }
.production-task-fields > div:nth-child(2n) { border-right:0; }
.production-task-fields dt { color:#7d8c85; font-size:9px; }
.production-task-fields dd { margin:3px 0 0; color:#2c493e; font-size:11px; font-weight:700; }
.production-process-chain,.production-task-log { margin:0; padding:8px 11px; list-style:none; }
.production-process-chain li { display:flex; align-items:center; gap:8px; min-height:36px; border-bottom:1px solid #edf1ef; }
.production-process-chain li:last-child { border-bottom:0; }
.production-process-chain li > span { width:9px; height:9px; flex:0 0 9px; border-radius:50%; background:#aab8b2; }
.production-process-chain li.is-in_progress > span { background:var(--factory-blue-700); }
.production-process-chain li.is-completed > span { background:var(--factory-green-700); }
.production-process-chain li.is-blocked > span { background:var(--factory-red-700); }
.production-process-chain li div { display:flex; min-width:0; flex-direction:column; gap:2px; }
.production-process-chain b { color:#345247; font-size:11px; }
.production-process-chain small { color:#7e8e86; font-size:9px; }
.production-task-log li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; padding:7px 0; border-bottom:1px solid #edf1ef; }
.production-task-log li:last-child { border-bottom:0; }
.production-task-log b { color:#345247; font-size:10px; }
.production-task-log span { color:#7e8e86; font-size:9px; }
.production-task-log small { grid-column:1/-1; color:#687b72; font-size:9px; }
.production-task-drawer-body > footer { display:flex; justify-content:flex-end; gap:7px; padding:11px 14px; border-top:1px solid #d3ded8; background:#fff; }
.production-task-loading { display:flex; align-items:center; justify-content:center; gap:8px; color:#6d7f76; }
.workspace-low-row td { background: #fffaf3; }
.workspace-alert-row td { background: #fff8f6; }
.workspace-description { max-width: 310px; white-space: normal !important; line-height: 1.45; }
.workspace-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.workspace-form-grid label { display: flex; flex-direction: column; gap: 5px; color: #52665c; font-size: 11px; font-weight: 700; }
.workspace-form-grid input,.workspace-form-grid select,.workspace-form-grid textarea,.workspace-form-wide textarea { width: 100%; min-height: 34px; padding: 7px 9px; border: 1px solid #cbd8d2; border-radius: 3px; background: #fff; color: #263d33; font: inherit; font-weight: 400; }
.workspace-form-grid textarea,.workspace-form-wide textarea { min-height: 80px; resize: vertical; }
.workspace-form-wide { grid-column: 1/-1; }
.system-role-manager { display: grid; grid-template-columns: 170px minmax(0,1fr) auto; align-items: center; gap: 10px; margin: 10px 11px; padding: 9px 10px; border: 1px solid #d6e2dc; background: #f4f8f6; }
.system-role-manager-title { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.system-role-manager-title span { color: #214d3d; font-size: 12px; font-weight: 800; }
.system-role-manager-title small { color: #73857d; font-size: 9px; line-height: 1.35; }
.system-role-list { min-width: 0; display: flex; align-items: stretch; gap: 5px; overflow-x: auto; padding: 1px 0; }
.system-role-chip { min-width: 132px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 8px; border: 1px solid #cfddd6; border-radius: 3px; background: #fff; color: #37574a; text-align: left; }
button.system-role-chip { cursor: pointer; }
button.system-role-chip:hover { border-color: #8eafa1; background: #edf6f1; }
.system-role-chip > svg:first-child { width: 14px; flex: 0 0 14px; color: var(--factory-green-700); }
.system-role-chip > svg:last-child { width: 12px; margin-left: auto; color: #789087; }
.system-role-chip span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.system-role-chip b { overflow: hidden; color: #25483a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.system-role-chip small { color: #788a82; font-size: 9px; white-space: nowrap; }
.system-role-chip.is-system { cursor: pointer; }
.system-role-form-note { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; padding: 8px 9px; border-left: 3px solid var(--factory-green-600); background: #f1f7f4; color: #5e7469; font-size: 10px; }
.system-role-form-note svg { width: 14px; color: var(--factory-green-700); }
.system-role-form-footer { display: flex; justify-content: flex-end; margin-top: 10px; }
.system-role-used { color: #7b8a84; font-size: 10px; }
.system-role-delete { display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; color: var(--factory-red-700); cursor: pointer; font: inherit; font-size: 10px; }
.system-role-delete:hover { text-decoration: underline; }
.system-role-delete svg { width: 13px; }
.modal:has(.system-role-permission-panel) { width: min(920px, calc(100vw - 28px)); max-width: 920px; }
.system-role-permission-panel { margin-top: 12px; padding-top: 10px; border-top: 1px solid #d5e1db; }
.system-role-permission-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.system-role-permission-panel > header > div:first-child { display: flex; flex-direction: column; gap: 2px; }
.system-role-permission-panel > header b { color: #24493a; font-size: 12px; }
.system-role-permission-panel > header small { color: #73857d; font-size: 10px; }
.system-role-permission-tools { display: flex; gap: 6px; }
.system-role-permission-tools button { min-height: 28px; padding: 4px 9px; border: 1px solid #c8d8d0; border-radius: 3px; background: #fff; color: #3c5c4f; font-size: 10px; cursor: pointer; }
.system-role-permission-tools button:hover { border-color: #80ad99; background: #eef7f3; }
.system-role-permission-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid #dce6e1; border-left: 1px solid #dce6e1; }
.system-role-permission { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) 92px; align-items: center; gap: 7px; min-height: 42px; padding: 6px 8px; border-right: 1px solid #dce6e1; border-bottom: 1px solid #dce6e1; background: #fbfdfc; }
.system-role-permission > span { overflow: hidden; color: #355448; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.system-role-permission select { width: 100%; min-height: 28px; padding: 3px 5px; border: 1px solid #c7d6cf; border-radius: 3px; background: #fff; color: #2d4d40; font-size: 10px; }

/* Warehouse picking console */
.workspace-material-v2 .workspace-tabs { scrollbar-width: thin; }
.warehouse-task-table { min-width: 1120px; }
.warehouse-task-table tbody tr { cursor: pointer; }
.warehouse-task-table tbody tr:hover td { background: #f4f8f6; }
.warehouse-task-drawer { position: fixed; z-index: 1800; top: 0; right: 0; width: min(560px,92vw); height: 100vh; border-left: 1px solid #b9c9c1; background: #f4f7f5; box-shadow: -16px 0 42px rgba(24,52,40,.18); }
.warehouse-drawer-content { height: 100%; display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; }
.warehouse-drawer-content > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 18px 18px 14px; border-bottom: 1px solid #cbd8d2; background: #fff; }
.warehouse-drawer-content > header span { color: #6f8178; font-size: 10px; font-weight: 700; }
.warehouse-drawer-content > header h2 { margin: 3px 0; color: #17392b; font-family: Bahnschrift,"Segoe UI",sans-serif; font-size: 24px; letter-spacing: 0; }
.warehouse-drawer-content > header p { margin: 0; color: #66776f; font-size: 11px; }
.warehouse-drawer-summary { display: flex; align-items: center; gap: 14px; padding: 10px 18px; border-bottom: 1px solid #d4ded9; background: #e8f2ed; color: #536960; font-size: 10px; }
.warehouse-drawer-summary b { color: var(--factory-green-700); font-size: 12px; }
.warehouse-drawer-items { overflow: auto; padding: 10px; }
.warehouse-pick-line { min-height: 64px; display: grid; grid-template-columns: minmax(0,1fr) auto 92px; align-items: center; gap: 10px; margin-bottom: 6px; padding: 10px 12px; border: 1px solid #d4ded9; border-radius: 4px; background: #fff; }
.warehouse-pick-line b,.warehouse-pick-line small { display: block; }
.warehouse-pick-line b { color: #263d33; font-size: 12px; }
.warehouse-pick-line small { margin-top: 4px; color: #77877f; font-size: 9px; }
.warehouse-pick-line > span { color: #263d33; font-family: Bahnschrift,"Segoe UI",sans-serif; font-size: 13px; font-weight: 700; white-space: nowrap; }
.warehouse-pick-line em { color: var(--factory-green-700); font-size: 10px; font-style: normal; font-weight: 700; text-align: right; }
.warehouse-pick-line em.is-shortage { color: var(--factory-red-700); }
.warehouse-pick-group>header{display:flex;align-items:center;justify-content:space-between;padding:7px 3px 6px;color:#294b3e}.warehouse-pick-group>header b{font-size:12px}.warehouse-pick-group>header span{color:#7b8d84;font-size:10px}.warehouse-material-summary{display:block;max-width:310px;white-space:normal;line-height:1.45;color:#294b3e;font-size:11px}
.warehouse-drawer-content > footer { display: flex; justify-content: flex-end; gap: 7px; padding: 12px 18px; border-top: 1px solid #cbd8d2; background: #fff; }

@media (max-width: 720px) {
  .warehouse-task-drawer { width: 100vw; }
  .warehouse-pick-line { grid-template-columns: minmax(0,1fr) auto; }
  .warehouse-pick-line em { grid-column: 1/-1; text-align: left; }
}
.system-card-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; padding: 11px; }
.system-card { min-height: 126px; display: grid; grid-template-columns: 31px minmax(0,1fr); grid-template-rows: auto auto auto; align-items: center; column-gap: 9px; padding: 13px; border: 1px solid #d7e2dc; border-left: 4px solid var(--factory-green-600); background: #fff; color: #263d33; cursor: pointer; text-align: left; }
.system-card:hover { border-color: #8fb2a4; background: #f6faf8; box-shadow: 0 4px 12px rgba(21,62,49,.07); }
.system-card svg { width: 22px; height: 22px; grid-row: 1/4; color: var(--factory-green-700); }
.system-card b { font-size: 13px; }
.system-card span { color: #73837b; font-size: 10px; line-height: 1.45; }
.system-card strong { color: var(--factory-green-700); font-size: 10px; }
.system-card-grid--compact .system-card { min-height: 106px; }
.system-settings-intro { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:11px 11px 2px; padding:11px 13px; border:1px solid #d5e2dc; background:#f5faf7; color:#34564a; }
.system-settings-intro > div { display:flex; flex-direction:column; gap:3px; min-width:0; }
.system-settings-intro b { color:#263d33; font-size:12px; }
.system-settings-intro span { color:#718179; font-size:10px; line-height:1.45; }
.system-settings-intro .factory-status { flex:0 0 auto; }
.system-card-grid--workstations { grid-template-columns:repeat(2,minmax(0,1fr)); }
.system-card--workstation { min-height:118px; }
.system-card--workstation strong { color:var(--factory-blue-700,#2d6c8a); }
.system-settings-workbench { display:grid; grid-template-columns:210px minmax(0,1fr); min-height:560px; border-top:1px solid #e0e9e5; }
.system-settings-module-nav { display:flex; flex-direction:column; gap:5px; padding:11px; border-right:1px solid #d7e2dc; background:#f4f8f6; }
.system-settings-module-nav button { display:grid; grid-template-columns:22px minmax(0,1fr) 14px; align-items:center; gap:8px; min-height:62px; padding:9px 10px; border:1px solid transparent; border-radius:4px; background:transparent; color:#527066; text-align:left; cursor:pointer; }
.system-settings-module-nav button:hover { background:#e9f2ed; color:#245e4a; }
.system-settings-module-nav button.is-active { border-color:#9fc6b6; background:#fff; color:#176b50; box-shadow:0 3px 10px rgba(23,107,80,.09); }
.system-settings-module-nav button > svg:first-child { width:18px; height:18px; }
.system-settings-module-nav button > svg:last-child { width:14px; height:14px; opacity:.45; }
.system-settings-module-nav button span { display:flex; flex-direction:column; gap:3px; min-width:0; }
.system-settings-module-nav b { font-size:12px; }
.system-settings-module-nav small { color:#82948c; font-size:9px; line-height:1.35; }
.system-settings-stage { min-width:0; background:#fff; }
.system-settings-stage > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border-bottom:1px solid #e4ece8; background:#fbfdfc; }
.system-settings-stage > header > div { min-width:0; }
.system-settings-stage > header span:first-child { color:#7b9087; font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.system-settings-stage h3 { margin:3px 0 2px; color:#233b34; font-size:18px; }
.system-settings-stage p { margin:0; color:#76877f; font-size:10px; }
.system-settings-location { display:inline-flex; align-items:center; gap:5px; flex:0 0 auto; padding:6px 8px; border:1px solid #cfe0d7; color:#176b50; font-size:10px; font-weight:800; }
.system-settings-location svg { width:14px; height:14px; }
.system-module-settings { min-height:480px; padding:12px 14px; overflow:auto; }
.system-module-settings .system-inline-settings-panel { position:static; width:auto; max-height:none; padding:0; overflow:visible; border:0; border-radius:0; box-shadow:none; background:transparent; }
.system-module-settings .sorting-settings-panel[data-active-tab="reminder"], .system-module-settings .sorting-settings-panel[data-active-tab="ignore"] { width:auto; }
.system-module-settings .sorting-settings-section { max-height:none; overflow:visible; }
.system-module-settings .sorting-settings-tabs { margin-bottom:12px; }
.system-module-settings .sorting-settings-tab { min-height:30px; padding:0 9px; border:0; border-radius:3px; background:transparent; color:#52665f; font-size:11px; font-weight:700; cursor:pointer; }
.system-module-settings .sorting-settings-tab:hover { background:#f7faf9; color:#244b3e; }
.system-module-settings .sorting-settings-tab.is-active { background:#fff; color:#176b50; box-shadow:0 1px 4px rgba(32,67,56,.16); }
.system-module-settings .packing-settings-panel { position:static; width:auto; max-height:none; overflow:visible; border:0; border-radius:0; box-shadow:none; background:transparent; }
.system-module-settings .packing-settings-panel > header { margin:-12px -14px 10px; padding:0 14px; }
.system-module-settings .packing-settings-body { padding:0; }
.system-module-settings .cutting-settings-panel { width:auto; height:auto; max-height:none; margin:0; padding:0; overflow:visible; box-shadow:none; background:transparent; }
.system-module-settings .cutting-settings-panel > header { display:none; }
.system-module-settings .cutting-settings-panel > footer { position:sticky; bottom:-12px; margin:12px -14px -12px; padding:10px 14px; background:#fff; }
.system-settings-loading, .system-settings-empty { display:flex; align-items:center; justify-content:center; min-height:250px; gap:8px; color:#778a81; font-size:12px; }
.system-settings-empty { color:#b35b45; }
.system-settings-health { display:flex; align-items:center; gap:9px; margin-bottom:12px; padding:10px 12px; border:1px solid #d7e2dc; background:#f7faf8; }
.system-settings-health.is-online { border-color:#abd0be; background:#f1faf5; color:#176b50; }
.system-settings-health.is-offline { border-color:#e5c1b5; background:#fff8f5; color:#a24d3b; }
.system-settings-health svg { width:19px; height:19px; }
.system-settings-health span { display:flex; flex-direction:column; gap:2px; }
.system-settings-health b { font-size:11px; }
.system-settings-health small { color:#778a81; font-size:9px; }
.system-settings-health.is-compact { min-height:40px; margin-bottom:8px; padding:7px 9px; }
.system-settings-health.is-compact > .factory-button { margin-left:auto; flex:0 0 auto; }
.system-replacement-settings section { padding:12px 0; border-top:1px solid #e3ebe7; }
.system-replacement-settings h4 { margin:0 0 9px; color:#2d4b3f; font-size:12px; }
.system-replacement-settings label { display:grid; grid-template-columns:160px minmax(0,1fr); align-items:center; gap:10px; margin-bottom:8px; color:#3d574c; font-size:11px; font-weight:700; }
.system-replacement-settings label > span { display:flex; flex-direction:column; gap:2px; }
.system-replacement-settings label small { color:#889990; font-size:9px; font-weight:400; }
.system-replacement-settings input { width:100%; min-width:0; height:34px; padding:0 9px; border:1px solid #cbdad3; border-radius:3px; color:#2f4a3e; background:#fff; }
.system-path-control { display:flex; gap:6px; min-width:0; }
.system-path-control input { flex:1 1 auto; }
.system-path-control .factory-button { flex:0 0 auto; white-space:nowrap; }
.system-replacement-settings footer { display:flex; justify-content:flex-end; padding-top:12px; border-top:1px solid #e3ebe7; }
.system-workflow-settings {
  width: 100%;
  max-width: none;
  display: grid;
  grid-template-columns: minmax(430px, 1.15fr) minmax(300px, .85fr);
  align-items: stretch;
  gap: 10px 12px;
}
.system-workflow-settings .system-settings-intro { display: none; }
.system-workflow-settings > section {
  min-width: 0;
  margin: 0;
  padding: 12px;
  border: 1px solid #d7e2dc;
  background: #fff;
}
.system-workflow-settings > section:first-of-type {
  grid-column: 1;
  grid-row: 1;
}
.system-workflow-settings > .system-workflow-freeze-note {
  grid-column: 2;
  grid-row: 1;
}
.system-workflow-settings > .system-workflow-rules {
  grid-column: 1 / -1;
  grid-row: 2;
  padding: 0;
  overflow: hidden;
}
.system-workflow-settings > footer {
  position: sticky;
  bottom: -12px;
  z-index: 5;
  grid-column: 1 / -1;
  grid-row: 3;
  min-height: 52px;
  margin: 0 -14px -12px;
  padding: 9px 14px;
  border-top: 1px solid #cfdcd6;
  background: rgba(255,255,255,.97);
  box-shadow: 0 -5px 14px rgba(25,55,44,.06);
  backdrop-filter: blur(7px);
}
.system-workflow-settings > section:first-of-type > label {
  grid-template-columns: 125px minmax(0,1fr);
  margin: 0;
}
.system-workflow-freeze-note {
  display: block;
  border-left: 3px solid var(--factory-orange-600) !important;
  background: #fffaf2 !important;
}
.system-workflow-freeze-note h4 { margin: 0 0 7px; color: #69440f; }
.system-workflow-freeze-note p { margin: 0; color: #765f3f; font-size: 10px; line-height: 1.55; }
.workflow-delivery-offset { display:grid; gap:8px; margin-top:10px; padding-top:10px; border-top:1px solid #eadfc9; }
.workflow-delivery-toggle, .workflow-delivery-days { display:flex !important; align-items:center; justify-content:space-between; gap:10px; margin:0 !important; color:#614d2f; font-size:11px; font-weight:700; }
.workflow-delivery-toggle > span { display:flex; flex-direction:column; gap:2px; min-width:0; }
.workflow-delivery-toggle b { color:#69440f; font-size:11px; }
.workflow-delivery-toggle small { color:#886f4d; font-size:9px; font-weight:400; }
.workflow-delivery-toggle input { width:16px; height:16px; accent-color:var(--factory-green-700); }
.workflow-delivery-days > div { display:flex; align-items:center; gap:5px; }
.workflow-delivery-days input { width:72px; height:30px; padding:0 7px; border:1px solid #d7bf98; border-radius:3px; background:#fff; color:#5b431f; font:700 12px/1 "Microsoft YaHei UI",sans-serif; text-align:center; }
.workflow-delivery-days input:disabled { cursor:not-allowed; background:#f5ecdd; color:#a99270; }
.workflow-delivery-days em { min-width:16px; color:#886f4d; font-size:10px; font-style:normal; }
.workflow-delivery-hint { color:#8a7350 !important; font-size:9px !important; }
.workflow-delivery-save { justify-self:start; min-height:30px; padding:0 9px; font-size:10px; }
.system-workflow-api-note { display:flex; align-items:center; gap:8px; margin-top:9px; padding:7px 9px; border:1px solid #d7e5de; background:#f6faf8; color:#4d6c5e; }
.system-workflow-api-note > svg { width:16px; height:16px; flex:0 0 16px; color:var(--factory-green-700); }
.system-workflow-api-note span { display:flex; flex-direction:column; gap:2px; }
.system-workflow-api-note b { font-size:11px; }
.system-workflow-api-note small { color:#7a8d84; font-size:10px; line-height:1.4; }
.system-workflow-section-heading { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0; padding:8px 10px; border-bottom:1px solid #d7e2dc; background:#f7faf8; }
.system-workflow-section-heading h4 { margin:0; }
.system-workflow-section-heading p { margin:2px 0 0; color:#7b8d84; font-size:10px; }
.system-workflow-rules > .factory-table-scroll { max-height:360px; overflow:auto; overscroll-behavior:contain; }
.workflow-rule-table { width:100%; min-width:940px; table-layout:fixed; }
.workflow-rule-table th { position:sticky; top:0; z-index:2; background:#e9f0ed; white-space:nowrap; }
.workflow-rule-table th, .workflow-rule-table td { padding:5px 6px; vertical-align:middle; }
.workflow-rule-table input, .workflow-rule-table select { width:100%; min-width:80px; height:30px; padding:0 6px; border:1px solid #cbdad3; border-radius:3px; background:#fff; color:#2f4a3e; font:11px/1 "Microsoft YaHei UI",sans-serif; }
.workflow-rule-table th:nth-child(1), .workflow-rule-table td:nth-child(1) { width:16%; }
.workflow-rule-table th:nth-child(2), .workflow-rule-table td:nth-child(2) { width:12%; }
.workflow-rule-table th:nth-child(3), .workflow-rule-table td:nth-child(3) { width:14%; }
.workflow-rule-table th:nth-child(4), .workflow-rule-table td:nth-child(4) { width:18%; }
.workflow-rule-table th:nth-child(5), .workflow-rule-table td:nth-child(5) { width:15%; }
.workflow-rule-table th:nth-child(6), .workflow-rule-table td:nth-child(6) { width:10%; }
.workflow-rule-table th:nth-child(7), .workflow-rule-table td:nth-child(7) { width:8%; }
.workflow-rule-table th:nth-child(8), .workflow-rule-table td:nth-child(8) { width:42px; }
.workflow-rule-required { display:flex !important; grid-template-columns:none !important; align-items:center; gap:4px !important; margin:0 !important; white-space:nowrap; font-size:10px !important; font-weight:500 !important; }
.workflow-rule-required input { width:auto; min-width:0; height:auto; }
.workflow-rule-remove { width:28px; height:28px; color:var(--factory-red-700); }
.system-workflow-nc-receipt { min-width:0; margin:12px 0 0; border:1px solid #d7e2dc; background:#fff; }
.system-workflow-nc-receipt .system-workflow-section-heading { background:#f4f8f6; }
.system-workflow-nc-receipt .factory-status { flex:0 0 auto; }
.workflow-nc-settings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; padding:11px; border-bottom:1px solid #dce7e1; }
.workflow-nc-settings > label { display:grid; grid-template-columns:125px minmax(0,1fr); align-items:center; gap:8px; margin:0; color:#3d574c; font-size:11px; font-weight:700; }
.workflow-nc-settings > label > span { display:flex; flex-direction:column; gap:2px; }
.workflow-nc-settings > label small { color:#81928a; font-size:9px; font-weight:400; line-height:1.35; }
.workflow-nc-settings input[type="number"] { width:100%; height:30px; padding:0 7px; border:1px solid #cbdad3; border-radius:3px; background:#fff; color:#2f4a3e; font:700 11px/1 "Microsoft YaHei UI",sans-serif; }
.workflow-nc-settings select { width:100%; height:30px; padding:0 7px; border:1px solid #cbdad3; border-radius:3px; background:#fff; color:#2f4a3e; font:700 11px/1 "Microsoft YaHei UI",sans-serif; }
.workflow-nc-settings .workflow-delivery-toggle { grid-template-columns:minmax(0,1fr) auto; }
.workflow-nc-settings .workflow-delivery-toggle input { width:16px; height:16px; }
.workflow-nc-settings .workflow-delivery-toggle input:disabled { opacity:.55; cursor:not-allowed; }
.workflow-nc-settings .workflow-nc-sync-option { min-height:42px; padding:6px 8px; border:1px solid #e1e9e5; background:#f8faf9; }
.workflow-nc-settings .workflow-nc-sync-option--required { border-color:#b9d8c8; background:#f0f8f3; }
.workflow-nc-settings .system-path-control input { height:30px; color:#5b7065; font-size:10px; }
.workflow-nc-credentials { grid-column:1 / -1; padding:9px 10px; border:1px solid #cbded3; background:#f7fbf8; }
.workflow-nc-credentials .system-workflow-section-heading { margin:-9px -10px 9px; padding:8px 10px; }
.workflow-nc-credentials > label { display:grid; grid-template-columns:125px minmax(0,1fr); align-items:center; gap:8px; margin:0 0 8px; color:#3d574c; font-size:11px; font-weight:700; }
.workflow-nc-credentials > label > span { display:flex; flex-direction:column; gap:2px; }
.workflow-nc-credentials > label small { color:#81928a; font-size:9px; font-weight:400; line-height:1.35; }
.workflow-nc-credentials .system-path-control input { height:30px; }
.workflow-nc-credential-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:8px; }
.workflow-nc-credential-actions small { color:#71857b; font-size:10px; overflow-wrap:anywhere; }
.workflow-nc-actions { grid-column:1 / -1; display:flex; align-items:center; gap:10px; padding-top:3px; }
.workflow-nc-actions small { color:#71857b; font-size:10px; overflow-wrap:anywhere; }
.workflow-nc-history { padding:0 11px 11px; }
.workflow-nc-history .workflow-subheading { margin:0 -11px 8px; padding:8px 11px; border-bottom:1px solid #edf2ef; }
.workflow-nc-history .factory-table-scroll { max-height:238px; overflow:auto; }
.workflow-nc-history .factory-table th { position:sticky; top:0; z-index:1; background:#e9f0ed; }
.system-label-heading { display:flex; align-items:center; gap:7px; padding:11px; border-bottom:1px solid #dce8e2; background:#f7faf8; }
.system-label-heading > div { display:flex; flex-direction:column; gap:3px; margin-right:auto; }
.system-label-heading b { color:#2b4b3e; font-size:13px; }
.system-label-heading span { color:#7d8e86; font-size:10px; }
.system-label-designer { min-height:560px; overflow:auto; }
.system-connection { min-height: 52px; display: flex; align-items: center; gap: 10px; margin: 0 11px 11px; padding: 8px 10px; border: 1px solid #cfe0d7; background: #f0f7f3; color: #34564a; }
.system-connection span { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; }
.system-connection span svg { width: 15px; }
.system-connection b { color: var(--factory-green-700); font-size: 11px; }
.system-connection .factory-button { margin-left: auto; }
.system-order-reset { display:flex; align-items:center; justify-content:space-between; gap:18px; margin:0 11px 11px; padding:14px 15px; border:1px solid #e7c5bf; border-left:3px solid var(--factory-red-700); background:#fff9f7; }
.system-order-reset-copy { min-width:0; display:flex; align-items:flex-start; gap:11px; }
.system-order-reset-copy > svg { flex:0 0 22px; width:22px; height:22px; color:var(--factory-red-700); }
.system-order-reset-copy b,.system-order-reset-copy span,.system-order-reset-copy small { display:block; }
.system-order-reset-copy b { color:#71342e; font-size:12px; }
.system-order-reset-copy span { margin-top:3px; color:#765b57; font-size:10px; line-height:1.5; }
.system-order-reset-copy small { margin-top:4px; color:#9a7771; font-size:9px; }
.system-order-reset-actions { flex:0 0 auto; display:flex; align-items:center; gap:7px; }
.system-reset-confirm { display:grid; gap:12px; }
.system-reset-warning { display:grid; grid-template-columns:22px minmax(0,1fr); gap:10px; padding:12px; border:1px solid #e7c5bf; background:#fff7f5; }
.system-reset-warning > svg { width:21px; height:21px; color:var(--factory-red-700); }
.system-reset-warning b,.system-reset-warning span { display:block; }
.system-reset-warning b { color:#71342e; font-size:12px; }
.system-reset-warning span { margin-top:4px; color:#765b57; font-size:10px; line-height:1.6; }
.system-reset-backup { display:flex; align-items:flex-start; gap:9px; padding:10px 11px; border:1px solid #d8e3de; background:#f7faf8; cursor:pointer; }
.system-reset-backup input { margin-top:2px; accent-color:var(--factory-green-700); }
.system-reset-backup b,.system-reset-backup small { display:block; }
.system-reset-backup b { color:#29483c; font-size:11px; }
.system-reset-backup small { margin-top:3px; color:#718078; font-size:9px; }
.system-reset-confirm-input { display:grid; gap:5px; color:#53675e; font-size:10px; }
.system-reset-confirm-input input { height:35px; padding:6px 9px; border:1px solid #c7d4ce; outline:0; background:#fff; color:#293d35; }
.system-reset-confirm-input input:focus { border-color:var(--factory-red-700); box-shadow:0 0 0 2px rgba(174,63,52,.1); }
.system-inline-actions { padding: 10px 11px; border-top: 1px solid #edf1ef; }
.system-storage-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:11px; border-bottom:1px solid #dce7e1; background:#f7faf8; }
.system-storage-summary article { min-width:0; min-height:76px; display:flex; flex-direction:column; justify-content:center; gap:4px; padding:10px 11px; border:1px solid #d9e5df; border-left:3px solid var(--factory-green-600,#2f7d5a); background:#fff; }
.system-storage-summary article:nth-child(2) { border-left-color:#3b78a8; }
.system-storage-summary article:nth-child(3) { border-left-color:#8a6a2d; }
.system-storage-summary article:nth-child(4) { border-left-color:#b36b36; }
.system-storage-summary span { color:#6c8076; font-size:10px; font-weight:700; }
.system-storage-summary b { color:#29483c; font-size:18px; line-height:1.1; font-variant-numeric:tabular-nums; }
.system-storage-summary small { color:#81928a; font-size:9px; line-height:1.35; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.system-storage-paths { margin:11px; border:1px solid #d7e2dc; background:#fff; }
.system-storage-paths > header { min-height:48px; display:flex; align-items:center; gap:12px; padding:8px 11px; border-bottom:1px solid #e0e9e4; background:#f7faf8; }
.system-storage-paths > header > div { min-width:0; display:flex; flex-direction:column; gap:3px; }
.system-storage-paths > header b { color:#2b4b3e; font-size:12px; }
.system-storage-paths > header span { color:#7d8e86; font-size:10px; }
.system-storage-paths > header .factory-button { margin-left:auto; flex:0 0 auto; }
.system-storage-paths > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; }
.system-storage-paths label { min-width:0; display:grid; grid-template-columns:132px minmax(0,1fr); align-items:center; gap:8px; min-height:38px; padding:6px 10px; border-bottom:1px solid #edf2ef; }
.system-storage-paths label:nth-child(odd) { border-right:1px solid #edf2ef; }
.system-storage-paths label:nth-last-child(-n+2) { border-bottom:0; }
.system-storage-paths label span { color:#71857b; font-size:10px; font-weight:700; }
.system-storage-paths label b { min-width:0; color:#425b50; font:10px/1.35 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace; overflow-wrap:anywhere; }
.system-storage-cleanup-warning { border-color:#e5d7b8; background:#fffaf0; }
.system-storage-cleanup-warning > svg { color:#a06a22; }

.warehouse-inbound-tabs{display:flex;gap:6px;margin-bottom:12px;border-bottom:1px solid #d9e5df}.warehouse-inbound-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;padding:9px 14px;color:#557267;font-weight:700;cursor:pointer}.warehouse-inbound-tabs button.is-active{border-bottom-color:#16755b;color:#16755b;background:#f3faf6}.warehouse-inbound-readonly{grid-column:1/-1;padding:9px 11px;border:1px solid #dce8e2;background:#f7fbf8;color:#5f756b;font-size:11px;line-height:1.5}.warehouse-inbound-hint{margin:10px 0 0;color:#758980;font-size:11px}.warehouse-inbound-tabs + #warehouseInboundModeBody{min-height:180px}.warehouse-remnant-board-switch{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;grid-column:1/-1;padding:9px 11px;border:1px solid #dce8e2;background:#f7fbf8}.warehouse-remnant-board-switch>input{width:16px!important;min-width:16px;min-height:16px!important;accent-color:#16755b}.warehouse-remnant-board-switch>span{display:flex;flex-direction:column;gap:2px}.warehouse-remnant-board-switch small{margin-top:0!important}

@media (max-width: 900px) {
  .workspace-switcher { grid-template-columns: 1fr; }
  .workspace-metrics { grid-template-columns: repeat(2,1fr); }
  .workspace-metric:nth-child(2) { border-right: 0; }
  .workspace-metric:nth-child(-n+2) { border-bottom: 1px solid var(--factory-gray-200); }
  .workspace-toolbar { flex-wrap: wrap; }
  .workspace-toolbar .factory-search { min-width: 100%; flex-basis: 100%; }
  .system-card-grid { grid-template-columns: 1fr; }
  .system-card-grid--workstations { grid-template-columns: 1fr; }
  .system-order-reset { align-items:stretch; flex-direction:column; }
  .system-order-reset-actions { justify-content:flex-end; }
  .system-storage-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .system-storage-paths > div { grid-template-columns:1fr; }
  .system-storage-paths label:nth-child(odd) { border-right:0; }
  .system-storage-paths label:nth-last-child(-n+2) { border-bottom:1px solid #edf2ef; }
  .system-storage-paths label:last-child { border-bottom:0; }
  .system-settings-workbench { grid-template-columns:1fr; }
  .system-settings-module-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-right:0; border-bottom:1px solid #d7e2dc; }
  .system-settings-module-nav button { min-height:54px; }
  .system-workflow-settings { grid-template-columns:1fr; }
  .system-workflow-settings > section:first-of-type,
  .system-workflow-settings > .system-workflow-freeze-note,
  .system-workflow-settings > .system-workflow-rules,
  .system-workflow-settings > footer { grid-column:1; grid-row:auto; }
  .workflow-nc-settings { grid-template-columns:1fr; }
}

@media (max-width: 560px) {
  .workspace-metrics { display: flex; overflow-x: auto; }
  .workspace-metric { min-width: 145px; border-right: 1px solid var(--factory-gray-200) !important; border-bottom: 0 !important; }
  .workspace-toolbar select { flex: 1 1 120px; }
  .workspace-form-grid { grid-template-columns: 1fr; }
  .workspace-form-wide { grid-column: auto; }
  .system-role-manager { grid-template-columns: 1fr; align-items: stretch; }
  .system-role-manager > .factory-button { justify-self: start; }
  .system-replacement-settings label { grid-template-columns:1fr; gap:4px; }
  .system-workflow-freeze-note { grid-template-columns:1fr; gap:4px; }
  .system-settings-stage > header { align-items:flex-start; flex-direction:column; }
  .system-label-heading { align-items:flex-start; flex-wrap:wrap; }
  .system-label-heading > div { flex-basis:100%; }
  .system-storage-summary { grid-template-columns:1fr; }
  .system-storage-paths > header { align-items:flex-start; flex-direction:column; }
  .system-storage-paths > header .factory-button { margin-left:0; }
  .system-storage-paths label { grid-template-columns:1fr; gap:3px; }
}

@media (max-width: 1280px) {
  .command-metrics { grid-template-columns: repeat(4,1fr); }
  .command-metric:nth-child(4) { border-right: 0; }
  .command-metric:nth-child(-n+4) { border-bottom: 1px solid var(--factory-gray-200); }
  .core-shortcuts { display: flex; }
  .command-grid { grid-template-columns: 1fr; }
  .command-alerts { display: none; }
  .order-detail-actions .factory-button span { display: none; }
  .order-detail-metrics { grid-template-columns: repeat(3,1fr); }
  .order-detail-metrics > div:nth-child(3) { border-right: 0; }
  .order-detail-metrics > div:nth-child(-n+3) { border-bottom: 1px solid var(--factory-gray-200); }
  .order-information-band { grid-template-columns: 1fr; }
  .order-information-heading { border-right: 0; border-bottom: 1px solid #dce6e1; }
  .order-information-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .order-information-item:nth-child(4n) { border-right: 0; }
  .order-information-item:nth-child(-n+4) { border-bottom: 1px solid #e1e8e4; }
  .production-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .production-kpi:nth-child(3n) { border-right:0; }
  .production-kpi:nth-child(-n+3) { border-bottom:1px solid var(--factory-gray-200); }
}

@media (max-width: 900px) {
  .page.factory-page { padding: 14px 12px 24px; }
  .command-heading h1 { font-size: 20px; }
  .command-heading-actions .factory-button span { display: none; }
  .command-metrics { grid-template-columns: repeat(2,1fr); }
  .command-metric:nth-child(2n) { border-right: 0; }
  .command-metric { border-bottom: 1px solid var(--factory-gray-200); }
  .command-metric:nth-last-child(-n+2) { border-bottom: 0; }
  .order-filter-row { flex-wrap: wrap; }
  .factory-search { min-width: 100%; flex-basis: 100%; }
  .order-filter-input { min-width: 180px; flex: 1 1 180px; }
  .order-filter-more-popover { right: auto; left: 0; }
  .order-table-scroll { height: calc(100vh - 485px); }
  .order-detail-heading { grid-template-columns: 36px minmax(0,1fr); }
  .order-detail-actions { grid-column: 1/-1; padding-left: 47px; }
  .order-overview-grid { grid-template-columns: 1fr; }
  .workflow-lane { grid-template-columns: repeat(2,1fr); }
  .workflow-lane-card:nth-child(2) { border-right: 0; }
  .workflow-lane-card:nth-child(-n+2) { border-bottom: 1px solid #dfe7e3; }
  .workflow-detail-grid { grid-template-columns: 1fr; }
  .stage-progress-list { grid-template-columns: 1fr; }
  .order-stage-status-toolbar { align-items: stretch; flex-direction: column; }
  .stage-status-filters { grid-template-columns: repeat(4,minmax(90px,1fr)); }
  .order-stage-operation { align-self: flex-end; }
  .workspace-preview { grid-template-columns: repeat(2,1fr); }
  .order-create-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .production-toolbar { flex-wrap:wrap; }
  .production-toolbar .factory-search { min-width:100%; flex-basis:100%; }
  .production-table-scroll { max-height:calc(100vh - 470px); }
}

@media (max-width: 768px) {
  .sidebar.is-collapsed { width: 56px; }
  .sidebar.is-collapsed .sidebar-logo { min-height: 70px; }
  .sidebar-logo::after { display: none !important; content: none !important; }
  .sidebar .core-nav { padding: 2px; border-color: transparent; background: transparent; }
  .sidebar .core-nav .core-nav-item { display: flex; justify-content: center; margin: 2px 0; padding: 8px 5px; }
  .sidebar .core-nav .core-nav-item b { display: none; }
  .header-live { display: none; }
  .header-title-copy small { display: none; }
  .header .header-logout span { display: none; }
  .command-heading { min-height: 65px; }
  .core-shortcuts { display: flex; }
  .command-metrics { position: relative; overflow-x: auto; display: flex; }
  .command-metric { min-width: 128px; border-right: 1px solid var(--factory-gray-200) !important; border-bottom: 0 !important; }
  .order-batchbar { overflow-x: auto; }
  .order-batchbar > span { flex: 0 0 auto; }
  .order-detail-metrics { grid-template-columns: repeat(2,1fr); }
  .order-detail-metrics > div { border-bottom: 1px solid var(--factory-gray-200); }
  .order-detail-metrics > div:nth-child(2n) { border-right: 0; }
  .order-detail-metrics > div:nth-last-child(-n+2) { border-bottom: 0; }
  .order-information-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .order-information-item { border-bottom: 1px solid #e1e8e4; }
  .order-information-item:nth-child(2n) { border-right: 0; }
  .order-information-item:nth-last-child(-n+2) { border-bottom: 0; }
  .order-detail-tabs { overflow-x: auto; }
  .order-detail-tabs button { flex: 0 0 auto; }
  .order-stage-track { grid-template-columns: repeat(10,104px); overflow-x: auto; }
  .order-stage { min-width: 104px; }
  .workflow-command { align-items: flex-start; flex-direction: column; }
  .workflow-command-actions { width: 100%; justify-content: flex-start; }
  .workflow-review-upload { width: 100%; padding-right: 0; border-right: 0; padding-bottom: 6px; border-bottom: 1px solid #dce7e1; }
  .workflow-assignee-select { flex: 1 1 190px; }
  .order-detail-view .factory-panel-heading:has(.factory-search) { flex-wrap: wrap; }
  .order-detail-view .factory-panel-heading:has(.factory-search) > div { flex: 1 1 100%; }
  .order-detail-view .factory-search--small { width: 100%; max-width: none; min-width: 0; flex: 1 1 100%; }
  .workspace-preview { grid-template-columns: 1fr; }
  .order-panel-detail-backdrop { inset: 50px 0 0; }
  .order-panel-detail-drawer { width: 100vw; }
  .panel-detail-field-tools { grid-template-columns: 1fr; gap: 7px; }
  .panel-detail-field-row { grid-template-columns: minmax(115px,145px) minmax(0,1fr); }
  .production-kpis { display:flex; overflow-x:auto; }
  .production-kpi { min-width:150px; border-right:1px solid var(--factory-gray-200) !important; border-bottom:0 !important; }
  .production-batchbar { overflow-x:auto; }
  .production-batchbar small { display:none; }
  .production-task-backdrop { inset:50px 0 0; }
  .production-task-drawer { width:100vw; }
}

@media (max-width: 560px) {
  .order-filter-input { min-width: 100%; flex-basis: 100%; }
  .order-filter-more-popover { width: min(400px,calc(100vw - 24px)); grid-template-columns: 1fr; }
  .modal:has(.order-create-form) { width: calc(100vw - 16px); }
  .modal:has(.order-create-form) .modal-body { padding: 11px; }
  .order-create-fields { grid-template-columns: 1fr; }
  .order-create-attachments { align-items: flex-start; flex-direction: column; }
  .order-create-attachment-actions { width: 100%; justify-content: flex-start; }
  .workflow-change-alert { grid-template-columns: 25px minmax(0,1fr); }
  .workflow-change-alert .factory-button { grid-column: 1/-1; justify-self: start; }
  .workflow-version-resolution > header { align-items: flex-start; flex-direction: column; }
  .workflow-version-resolution-actions { width: 100%; justify-content: space-between; }
  .version-group-row { grid-template-columns: 1fr; gap: 7px; }
  .version-group-actions > small { text-align: left; }
  .workflow-lane { grid-template-columns: 1fr; }
  .stage-status-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .order-stage-operation { width: 100%; justify-content: center; }
  .workflow-lane-card { min-height: 74px; border-right: 0; border-bottom: 1px solid #dfe7e3; }
  .workflow-lane-card:last-child { border-bottom: 0; }
  .workflow-folder-input { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .factory-page *, .factory-page *::before, .factory-page *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Procurement views reuse the factory table language but keep their own dense controls. */
.workspace-procurement .procurement-table th,
.workspace-procurement .procurement-table td { vertical-align: middle; }
.workspace-procurement .procurement-table td > small,
.procurement-detail-table td > small { display: block; margin-top: 3px; color: var(--factory-gray-500, #718079); font-size: 11px; }
.workspace-procurement .procurement-table td:last-child { white-space: nowrap; }
.workspace-procurement .procurement-table td:last-child .factory-button { margin: 2px 4px 2px 0; }
.workspace-empty-state { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--factory-gray-500, #718079); text-align: center; }
.workspace-empty-state svg { width: 30px; height: 30px; color: var(--factory-green-600, #1d6950); }
.workspace-empty-state b { color: var(--factory-gray-800, #26352e); font-size: 15px; }
.workspace-empty-state span { max-width: 460px; font-size: 12px; }
.workspace-detail-summary { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.workspace-detail-summary span { padding: 5px 9px; border: 1px solid var(--factory-gray-200, #dce5e0); border-radius: 4px; color: var(--factory-gray-700, #4c5a53); background: var(--factory-gray-50, #f7faf8); font-size: 12px; }
.procurement-mode-select { min-width: 112px; padding: 5px 22px 5px 7px; border: 1px solid var(--factory-gray-300, #cedad4); border-radius: 4px; background: #fff; color: var(--factory-gray-800, #26352e); }
.procurement-mode-select:focus { outline: 2px solid rgba(29, 105, 80, .18); border-color: var(--factory-green-600, #1d6950); }
.procurement-supplier-input { width: 150px; min-width: 110px; box-sizing: border-box; padding: 5px 7px; border: 1px solid var(--factory-gray-300, #cedad4); border-radius: 4px; background: #fff; color: var(--factory-gray-800, #26352e); }
.procurement-supplier-input:focus { outline: 2px solid rgba(29, 105, 80, .18); border-color: var(--factory-green-600, #1d6950); }
.procurement-supplier-input:disabled { opacity: .65; background: var(--factory-gray-50, #f7faf8); }
.procurement-supplier-empty { color: var(--factory-gray-500, #718079); font-size: 12px; }
@media (max-width: 768px) {
  .workspace-procurement .procurement-table { min-width: 980px; }
  .workspace-procurement .workspace-tabs { overflow-x: auto; }
  .system-role-permission-grid { grid-template-columns: 1fr; }
  .system-role-permission-panel > header { align-items: flex-start; flex-direction: column; }
}
.production-material-table .production-material-stock-input {
  width: 82px;
  min-width: 82px;
  padding: 5px 7px;
  border: 1px solid #b8c8c1;
  border-radius: 4px;
  background: #fff;
  color: #17352a;
  font: inherit;
  text-align: right;
}
.production-material-table .production-material-stock-input:focus {
  outline: 2px solid rgba(31, 111, 78, .22);
  border-color: #1f6f4e;
}
.production-material-table .production-material-unit {
  color: #61766c;
  font-size: 12px;
}
.production-material-table .production-material-note {
  display: block;
  margin-top: 3px;
  color: #7b8d85;
  font-size: 11px;
  white-space: nowrap;
}
.order-material-source-actions { display: flex; flex-direction: row !important; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

/* One-module roles use a focused full-width workspace. */
body.single-module-mode .sidebar { display: none; }
body.single-module-mode .main-content { margin-left: 0; width: 100%; min-width: 0; }
body.single-module-mode .single-module-home { display: inline-flex; }
.single-module-home { display: none; align-items: center; justify-content: center; width: 30px; height: 30px; margin-right: 7px; border: 1px solid #c8d8d0; border-radius: 4px; background: #fff; color: #1f6f4e; cursor: pointer; }
.single-module-home[hidden] { display: none !important; }
.single-module-home:hover { background: #edf7f2; border-color: #86b6a2; }
.single-module-home svg { width: 16px; height: 16px; }
.module-access-empty { min-height: 360px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: #65776e; }
.module-access-empty svg { width: 34px; height: 34px; color: #c58447; }
.module-access-empty b { color: #29473b; font-size: 16px; }
.module-access-empty span { font-size: 12px; }

/* Keep the warehouse map grid aligned with the saved layout scale. */
.warehouse-map-canvas { background-image: linear-gradient(#dfe8e3 1px, transparent 1px), linear-gradient(90deg, #dfe8e3 1px, transparent 1px); background-size: var(--warehouse-grid, 24px) var(--warehouse-grid, 24px); }
.warehouse-map-zone-selector{display:flex;align-items:center;gap:7px;color:#687b72;font-size:11px}.warehouse-map-zone-selector select{height:30px;min-width:190px;padding:0 8px;border:1px solid #cadad2;border-radius:4px;background:#fff;color:#2b493d}.warehouse-map-active-zone{padding:6px 8px;border:1px solid #d7e6de;border-radius:4px;background:#f4faf6;color:#477360;font-size:10px;white-space:nowrap}.warehouse-map-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#7d8e86;font-size:12px;pointer-events:none}

/* The map is a read-only view. Fill the remaining workspace while preserving
   physical rack proportions and the saved coordinate system. */
.workspace-material-v2 .warehouse-panel--map{display:flex;flex-direction:column;height:clamp(360px,calc(100vh - 314px),1400px);min-height:0;padding:9px}
.warehouse-panel--map .warehouse-map-toolbar{flex:0 0 auto;margin-bottom:8px}
.warehouse-panel--map .warehouse-map-viewport{position:relative;display:flex;flex:1 1 auto;align-items:center;justify-content:center;min-height:0;max-height:none;overflow:hidden;padding:12px}
.warehouse-map-stage{position:relative;flex:0 0 auto;overflow:visible}
.warehouse-panel--map .warehouse-map-canvas{position:absolute;top:0;left:0;transform-origin:top left;will-change:transform}
@media(max-width:720px){.workspace-material-v2 .warehouse-panel--map{height:clamp(340px,calc(100vh - 280px),900px)}.warehouse-panel--map .warehouse-map-viewport{overflow:auto;align-items:flex-start;justify-content:flex-start}}

/* Warehouse console navigation and workbench. Keep the primary row short;
   detail categories belong to the secondary row so the map and task list get
   the available vertical space. */
.warehouse-primary-nav,.warehouse-secondary-nav{display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:thin;white-space:nowrap}
.warehouse-primary-nav{margin:0 0 5px;padding:4px;background:#edf4f0;border:1px solid #d5e3dc;border-radius:6px}
.warehouse-primary-nav button,.warehouse-secondary-nav button{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;height:34px;padding:0 12px;border:1px solid transparent;border-radius:4px;background:transparent;color:#587067;font:600 11px/1 "Microsoft YaHei UI",sans-serif;cursor:pointer}
.warehouse-primary-nav button svg{width:15px;height:15px}.warehouse-secondary-nav{min-height:34px;margin-bottom:8px;padding:0 2px;border-bottom:1px solid #dce8e2}.warehouse-secondary-nav button{height:31px;padding:0 9px;font-weight:500}.warehouse-primary-nav button:hover,.warehouse-secondary-nav button:hover{background:#f7fbf8;color:#176b52}.warehouse-primary-nav button.is-active{background:#176b52;color:#fff;box-shadow:0 1px 3px rgba(23,107,82,.18)}.warehouse-secondary-nav button.is-active{color:#176b52;border-bottom:2px solid #176b52;border-radius:0;font-weight:700}
.warehouse-primary-nav,.warehouse-secondary-nav{position:relative;display:flex!important;flex:0 0 auto!important;width:100%;box-sizing:border-box;flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;white-space:nowrap;clear:both}
.warehouse-primary-nav{height:40px!important;min-height:40px!important;margin:0 0 6px!important;padding:4px!important;line-height:1!important}
.warehouse-secondary-nav{height:36px!important;min-height:36px!important;margin:0 0 10px!important;padding:0 2px!important;line-height:1!important}
.warehouse-primary-nav button{height:30px!important;min-height:30px!important;line-height:1!important}
.warehouse-secondary-nav button{height:30px!important;min-height:30px!important;line-height:1!important}
.warehouse-workbench-tasks{margin-top:10px;border:1px solid #dce8e2;border-radius:6px;background:#fff}.warehouse-workbench-tasks>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-bottom:1px solid #e6eee9}.warehouse-workbench-tasks>header>div{display:flex;flex-direction:column;gap:2px}.warehouse-workbench-tasks>header b{font-size:12px;color:#21483a}.warehouse-workbench-tasks>header small{font-size:10px;color:#7b8c84}.warehouse-workbench-task-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}.warehouse-workbench-task{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:49px;padding:7px 9px;border:1px solid #e1ebe5;border-radius:5px;background:#fbfdfc;text-align:left;color:#2c4f41;cursor:pointer}.warehouse-workbench-task:hover{border-color:#8bb7a2;background:#f5faf7}.warehouse-workbench-task>span{display:flex;flex-direction:column;gap:2px;min-width:0}.warehouse-workbench-task b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.warehouse-workbench-task small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7b8d84;font-size:9px}.warehouse-workbench-task>strong{font-size:10px;color:#b24d45;white-space:nowrap}.warehouse-workbench-empty{display:flex;align-items:center;justify-content:center;gap:7px;min-height:64px;color:#7b8c84;font-size:11px}.warehouse-workbench-empty svg{width:16px;height:16px;color:#2f8565}
.warehouse-map-search-status{display:inline-flex;align-items:center;min-height:25px;padding:0 8px;border:1px solid #e7c687;border-radius:4px;background:#fff9ed;color:#9b661e;font-size:10px;white-space:nowrap}.warehouse-map-rack.is-search-dim{opacity:.28;filter:saturate(.45)}.warehouse-map-rack.is-search-match{z-index:6;border-color:#c67b1b;box-shadow:0 0 0 3px rgba(198,123,27,.22);animation:warehouse-rack-search-pulse .7s ease-in-out 3}.warehouse-map-rack.is-search-match b{color:#9b5b12}@keyframes warehouse-rack-search-pulse{0%,100%{opacity:1;box-shadow:0 0 0 3px rgba(198,123,27,.22)}50%{opacity:.38;box-shadow:0 0 0 8px rgba(198,123,27,.04)}}
@media(prefers-reduced-motion:reduce){.warehouse-map-rack.is-search-match{animation:none}}
.warehouse-reset-panel{overflow:hidden}.warehouse-reset-panel summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;cursor:pointer;list-style:none}.warehouse-reset-panel summary::-webkit-details-marker{display:none}.warehouse-reset-panel summary>span{display:flex;align-items:center;gap:8px;min-width:0}.warehouse-reset-panel summary>span>svg{width:17px;height:17px;color:#b34b42}.warehouse-reset-panel summary b{font-size:11px;color:#6f302c}.warehouse-reset-panel summary small{font-size:10px;color:#89625e}.warehouse-reset-panel summary>svg{width:14px;color:#9d7d79;transition:transform .15s}.warehouse-reset-panel[open] summary>svg{transform:rotate(180deg)}.warehouse-reset-panel[open]>div{padding:0 12px 10px}
@media(max-width:920px){.warehouse-workbench-task-list{grid-template-columns:1fr}.warehouse-primary-nav button{padding:0 9px}.warehouse-reset-panel summary>span{align-items:flex-start;flex-direction:column;gap:2px}}
.warehouse-workbench-task{grid-template-columns:minmax(120px,1fr) minmax(140px,220px) auto minmax(190px,auto)}.warehouse-workbench-task>.warehouse-workbench-task-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#315447;font-size:10px;font-weight:700}.warehouse-workbench-task>strong{display:flex;flex-direction:column;align-items:flex-end;gap:2px;color:#324f43}.warehouse-workbench-task>strong small{color:#b24d45}.warehouse-workbench-task>strong small.is-ready{color:#2f8565}

/* Warehouse map is a fixed work surface: the map fills the remaining viewport. */
.workspace-material-map{display:flex;flex-direction:column;height:calc(100vh - 54px);min-height:0;overflow:hidden;padding:7px 9px 9px!important}
.workspace-material-map>.warehouse-primary-nav{flex:0 0 40px}
.workspace-material-map>.workspace-toolbar{flex:0 0 46px;min-height:46px;margin-bottom:6px;padding:5px 7px}
.workspace-material-map>.warehouse-panel--map{flex:1 1 auto;height:auto;min-height:0;margin:0;padding:7px}
.workspace-material-map .warehouse-map-toolbar{min-height:34px;margin-bottom:6px;gap:7px;overflow-x:auto;overflow-y:hidden;white-space:nowrap}
.workspace-material-map .warehouse-map-toolbar select{height:29px}
.workspace-material-map .warehouse-map-viewport{min-height:0;height:auto;max-height:none;padding:9px}
.workspace-material-map .warehouse-map-stage{position:relative;flex:0 0 auto}
.workspace-material-map .warehouse-map-canvas{position:absolute;inset:0 auto auto 0}
.warehouse-map-active-zone{display:inline-flex;align-items:center;min-height:28px;padding:0 8px;border:1px solid #d4e3dc;border-radius:4px;background:#f7fbf9;color:#4d6c5e;font-size:10px}
.warehouse-map-match-nav{display:inline-flex;gap:3px}.warehouse-map-match-nav button{display:grid;place-items:center;width:27px;height:27px;padding:0;border:1px solid #dcc08a;border-radius:4px;background:#fffaf0;color:#96601c;cursor:pointer}.warehouse-map-match-nav svg{width:14px;height:14px}
.warehouse-map-rack{justify-content:space-between;padding:6px 7px}
.warehouse-map-rack-head{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0}
.warehouse-map-rack-head b{font-size:11px;color:#21483a;white-space:nowrap}.warehouse-map-rack-head em{max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-style:normal;color:#758980}
.warehouse-map-rack-physical{position:absolute!important;z-index:2}.warehouse-map-rack>small{position:absolute;right:7px;bottom:5px;left:7px;z-index:3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#70837a;font-size:9px}
.warehouse-map-rack .wle-rack-physical>i.is-warning{background:#fff1d0!important;border-color:#d3a04e!important;color:#8c611e!important}.warehouse-map-rack .wle-rack-physical>i.is-full{background:#f9d9d4!important;border-color:#bd5047!important;color:#963a32!important}
.warehouse-map-rack.is-search-dim{opacity:.24;filter:saturate(.35)}.warehouse-map-rack.has-search-hit{opacity:.82}.warehouse-map-rack.is-search-current{z-index:6;border-color:#c67b1b;box-shadow:0 0 0 2px rgba(198,123,27,.2)}
.warehouse-map-rack-physical>i.is-search-hit,.warehouse-map-rack-physical>i.is-search-current,.warehouse-map-rack-physical>.wle-pallet-deck.is-search-hit,.warehouse-map-rack-physical>.wle-pallet-deck.is-search-current{position:relative;z-index:5;border-color:#dc8514!important;background:#ffe0a3!important;box-shadow:0 0 0 3px rgba(220,133,20,.24);animation:warehouse-level-search-pulse .72s ease-in-out 3}
.warehouse-map-rack-physical>i.is-search-current,.warehouse-map-rack-physical>.wle-pallet-deck.is-search-current{box-shadow:0 0 0 4px rgba(209,112,9,.38)}
@keyframes warehouse-level-search-pulse{0%,100%{opacity:1;filter:none}50%{opacity:.25;filter:saturate(1.4)}}
@media(prefers-reduced-motion:reduce){.warehouse-map-rack-physical>i.is-search-hit,.warehouse-map-rack-physical>i.is-search-current,.warehouse-map-rack-physical>.wle-pallet-deck.is-search-hit,.warehouse-map-rack-physical>.wle-pallet-deck.is-search-current{animation:none}}

.modal.warehouse-label-modal{width:min(1040px,calc(100vw - 28px));max-width:1040px;max-height:92vh;overflow:hidden}.modal.warehouse-label-modal>.modal-footer{display:none}.modal.warehouse-label-modal .modal-body{max-height:calc(92vh - 58px);overflow:auto;padding:14px 16px}.warehouse-label-dialog{display:flex;flex-direction:column;gap:12px;min-width:0}.warehouse-label-controls{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px}.warehouse-label-controls label{display:flex;flex-direction:column;gap:5px;color:#536a60;font-size:10px}.warehouse-label-controls select,.warehouse-label-controls input{height:34px;padding:0 8px;border:1px solid #cadad2;border-radius:4px;background:#fff;color:#294b3e}.warehouse-label-layout{display:grid;grid-template-columns:minmax(320px,1fr) minmax(300px,.85fr);gap:12px}.warehouse-label-selection,.warehouse-label-preview-wrap{min-height:310px;border:1px solid #d9e5df;border-radius:6px;background:#f8fbf9}.warehouse-label-selection>header{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border-bottom:1px solid #dce7e1}.warehouse-label-selection>header span{display:flex;align-items:baseline;gap:8px}.warehouse-label-selection>header b{font-size:12px;color:#294f40}.warehouse-label-selection>header small{color:#71847a}.warehouse-label-selection>header div{display:flex;gap:4px}.warehouse-label-selection>header button{height:27px;padding:0 9px;border:1px solid #c8d8d0;border-radius:4px;background:#fff;color:#3e6353;font-size:10px;cursor:pointer}#warehouseLabelTargetList{max-height:280px;overflow:auto;padding:7px}.warehouse-label-target{display:flex;align-items:center;gap:8px;min-height:43px;margin-bottom:4px;padding:6px 8px;border:1px solid #e0e9e4;border-radius:4px;background:#fff;cursor:pointer}.warehouse-label-target input{width:16px;height:16px;flex:0 0 auto}.warehouse-label-target span{display:flex;flex-direction:column;gap:2px;min-width:0}.warehouse-label-target b{font-size:11px;color:#2d5142}.warehouse-label-target small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7a8c83;font-size:9px}.warehouse-label-target.is-locked{background:#f1f4f2}.warehouse-label-target.is-invalid{border-color:#e5b2ad;background:#fff7f6}.warehouse-label-empty{display:grid;place-items:center;min-height:220px;color:#75877e;font-size:11px}.warehouse-label-preview-wrap{display:flex;flex-direction:column;padding:10px}.warehouse-label-preview-wrap>b{font-size:11px;color:#355b4b}.warehouse-label-preview{display:grid;grid-template-columns:34% 1fr;gap:10px;align-items:center;aspect-ratio:2.5/1;margin-top:10px;padding:10px;border:1px solid #aebfb6;background:#fff;box-shadow:0 3px 10px rgba(28,67,51,.08)}.warehouse-label-preview-qr{display:grid;place-items:center;height:100%;border-right:2px solid #173f32}.warehouse-label-preview-qr svg{width:62%;height:62%;color:#173f32}.warehouse-label-preview>div:last-child{display:flex;flex-direction:column;min-width:0}.warehouse-label-preview span{color:#176b52;font-size:9px;font-weight:800}.warehouse-label-preview b{margin:5px 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#102f24;font-size:20px}.warehouse-label-preview small,.warehouse-label-preview em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#526b60;font-size:9px;font-style:normal}.warehouse-label-preview-wrap>p{margin:auto 0 0;color:#74867d;font-size:10px;line-height:1.55}.warehouse-label-actions{position:sticky;bottom:-14px;z-index:5;display:flex;justify-content:flex-end;gap:7px;margin:0 -16px -14px;padding:10px 16px 14px;border-top:1px solid #dce7e1;background:#fff}
@media(max-width:860px){.warehouse-label-dialog{min-width:0}.warehouse-label-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.warehouse-label-layout{grid-template-columns:1fr}.warehouse-label-preview-wrap{min-height:250px}.workspace-material-map .warehouse-map-legend{display:none}}
.warehouse-pick-line{grid-template-columns:minmax(0,1fr) auto 92px 30px}.warehouse-pick-line>.factory-icon-button{width:28px;height:28px;color:#176b52}.warehouse-task-delivery{display:inline-flex;align-items:center;min-height:22px;padding:0 6px;border-radius:3px;background:#eef4f1;color:#587067;font-size:10px;white-space:nowrap}.warehouse-task-delivery.is-warning,.warehouse-task-delivery.is-today{background:#fff2d5;color:#9f6519}.warehouse-task-delivery.is-overdue{background:#fff0ee;color:#af443c}.warehouse-task-table .priority-flag{margin-left:5px;vertical-align:1px}
@media(max-width:720px){.warehouse-pick-line{grid-template-columns:minmax(0,1fr) auto 30px}.warehouse-pick-line em{grid-column:1/3}}

/* Material master: category-first archive with compact search and forms. */
.workspace-material-master .material-master-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.material-master-toolbar .material-master-category-tabs{display:flex;align-items:center;gap:6px;flex:0 0 auto;flex-wrap:nowrap;margin:0}.material-master-toolbar .material-master-category-tabs button{min-width:92px;min-height:44px;padding:6px 10px}.material-master-toolbar .factory-search{flex:1 1 320px;min-width:260px;margin:0}.material-master-toolbar .factory-button{flex:0 0 auto;white-space:nowrap}.material-master-toolbar .factory-button span{white-space:nowrap}.material-master-toolbar .material-master-category-tabs button.is-active{border-color:#2f8565;background:#e7f4ed;color:#176b52;box-shadow:inset 0 -3px #2f8565}
@media(max-width:900px){.workspace-material-master .material-master-toolbar{padding-bottom:4px}.workspace-material-master .material-master-toolbar .factory-search{min-width:240px;flex:1 0 240px}.workspace-material-master .material-master-toolbar .factory-button{flex:0 0 auto}}
@media(max-width:720px){.material-master-toolbar .material-master-category-tabs button{min-width:86px}.material-master-toolbar .factory-search{min-width:220px;flex-basis:220px}.material-master-toolbar .factory-button{flex:0 0 auto}}

/* Shared color master: one color row with independently tracked variants. */
.material-master-color-cell,.material-master-variant-list,.material-master-category-list{display:flex;flex-direction:column;gap:3px;min-width:0}.material-master-color-cell b{color:#204b3b;font-size:12px}.material-master-color-cell small,.material-master-variant small,.material-master-more,.material-master-empty-variant{color:#788b82;font-size:9px}.material-master-category-list{flex-direction:row;flex-wrap:wrap;gap:4px}.material-master-category-chip{display:inline-flex;align-items:center;min-height:20px;padding:0 6px;border:1px solid #cfe2d7;border-radius:3px;background:#f2faf5;color:#28664e;font-size:9px;font-weight:800}.material-master-category-chip.is-muted{background:#f7f8f7;border-color:#e0e5e2;color:#8c9a93}.material-master-variant{display:grid;grid-template-columns:48px minmax(0,1fr);gap:5px;align-items:baseline}.material-master-variant b{font-size:9px;color:#2f7259}.material-master-variant small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-master-variant--all b{color:#8b5e21}.material-master-variant--all small{color:#9a7743}.material-master-more{margin-top:1px}.material-master-table td{vertical-align:top}.material-color-master-form{display:flex;flex-direction:column;gap:14px;min-width:0}.material-color-base,.material-color-variants{padding:12px;border:1px solid #dce8e1;border-radius:5px;background:#fbfdfc}.material-color-form-title{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:#245741}.material-color-form-title svg{width:18px;height:18px}.material-color-form-title div{display:flex;flex-direction:column;gap:2px}.material-color-form-title small,.material-color-variants header small{color:#788b82;font-size:10px;font-weight:400}.material-color-category-section{display:flex;align-items:center;gap:12px;margin-top:10px;color:#45675a;font-size:11px;font-weight:800}.material-color-category-list{display:flex;flex-wrap:wrap;gap:6px}.material-color-category-check{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:5px!important;min-height:30px;padding:0 8px;border:1px solid #d3e3da;border-radius:4px;background:#fff;color:#315b49!important;font-size:10px!important;cursor:pointer}.material-color-category-check input{min-height:0!important;width:14px;height:14px}.material-color-scope-notes{display:grid;gap:5px;margin-top:10px;padding-top:9px;border-top:1px dashed #d6e5dc}.material-color-scope-note{display:flex;align-items:baseline;gap:8px;color:#547267;font-size:10px}.material-color-scope-note b{min-width:46px;color:#8b5e21;font-size:10px}.material-color-scope-note--board b{color:#28664e}.material-color-scope-empty{color:#87978f;font-size:10px}.material-color-variants[hidden]{display:none}.material-color-variants header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.material-color-variants header div{display:flex;flex-direction:column;gap:2px}.material-color-variant-row{padding:9px 0;border-top:1px solid #e4ece7}.material-color-variant-row:first-child{border-top:0;padding-top:0}.material-color-variant-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;color:#356451;font-size:10px}.material-color-variant-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.material-color-variant-grid label{min-width:0}.material-color-variant-grid .material-color-variant-wide{grid-column:span 2}.material-color-variant-grid input,.material-color-variant-grid select{width:100%;min-width:0;box-sizing:border-box}.material-color-variants-empty{padding:18px 8px;text-align:center;color:#87978f;font-size:10px;background:#f7faf8;border:1px dashed #cfddd5;border-radius:4px}@media(max-width:720px){.material-color-category-section{align-items:flex-start;flex-direction:column;gap:6px}.material-color-variant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.material-color-variant-grid .material-color-variant-wide{grid-column:1/-1}}

/* Warehouse stock inspection: large responsive dialog with level drill-down. */
.modal.warehouse-stock-modal{width:min(1000px,calc(100vw - 32px));max-width:1000px;max-height:90vh;overflow:hidden}.modal.warehouse-stock-modal .modal-body{max-height:calc(90vh - 118px);overflow-x:hidden;overflow-y:auto;padding:16px}.warehouse-stock-modal .warehouse-location-detail{width:100%;max-width:100%;min-width:0}.warehouse-stock-modal .warehouse-location-list{overflow-x:hidden;overflow-y:auto}.warehouse-stock-modal .warehouse-location-row{grid-template-columns:minmax(0,1fr) 110px 110px 80px}.warehouse-stock-modal .warehouse-location-row span{min-width:0}.warehouse-stock-modal .warehouse-location-row b,.warehouse-stock-modal .warehouse-location-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warehouse-stock-modal .warehouse-location-detail>footer{flex-wrap:wrap}.warehouse-map-rack [data-level]{cursor:pointer}.warehouse-map-rack [data-level]:hover{filter:brightness(.94);box-shadow:0 0 0 2px rgba(43,128,97,.28)}.warehouse-level-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:220px;color:#537166}.warehouse-level-list{display:flex;flex-direction:column;gap:6px;max-height:58vh;overflow-y:auto;overflow-x:hidden;padding:9px 0}.warehouse-level-item{display:grid;grid-template-columns:130px minmax(210px,1fr) minmax(220px,1.15fr) 110px;align-items:center;gap:10px;padding:9px 10px;border:1px solid #dce7e1;border-radius:5px;background:#fbfdfc}.warehouse-level-item>span{display:flex;flex-direction:column;gap:3px;min-width:0}.warehouse-level-item b,.warehouse-level-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warehouse-level-item b{font-size:11px;color:#294f40}.warehouse-level-item small{font-size:9px;color:#7a8c83}.warehouse-level-quantity{text-align:right}.warehouse-level-empty{display:grid;place-items:center;gap:7px;min-height:220px;color:#70837a}.warehouse-level-empty svg{width:28px;height:28px}.warehouse-level-empty small{font-size:10px}@media(max-width:920px){.warehouse-stock-modal .warehouse-location-row{grid-template-columns:minmax(0,1fr) 86px 86px 64px}.warehouse-level-item{grid-template-columns:100px minmax(140px,1fr) minmax(150px,1fr) 82px;gap:7px}}
.warehouse-map-rack-head b{font-size:15px!important;font-weight:800!important;letter-spacing:.1px}.warehouse-map-rack-head em{font-size:10px!important}.warehouse-map-rack-physical{inset:31px 7px 22px!important;display:flex!important;flex-direction:column!important;justify-content:space-evenly!important;gap:3px!important}.warehouse-map-level{display:grid!important;grid-template-columns:34px minmax(0,1fr);align-items:stretch;flex:1;min-width:0;min-height:0;width:auto!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid #a9c1b5!important;border-radius:0!important;background:transparent!important;color:inherit!important;font-style:normal!important;box-sizing:border-box}.warehouse-map-level:last-child{border-bottom:0!important}.warehouse-map-level-label{display:flex;align-items:center;justify-content:center;color:#3b6654!important;font-size:11px!important;font-weight:800!important;white-space:nowrap}.warehouse-map-slot-grid{display:grid!important;grid-template-columns:repeat(var(--warehouse-slot-count,1),minmax(0,1fr));min-width:0;min-height:0}.warehouse-map-slot{display:flex!important;align-items:center;justify-content:center;min-width:0;min-height:0;width:auto!important;height:auto!important;margin:0!important;padding:0 2px!important;border:0!important;border-left:1px solid #8eada0!important;border-radius:0!important;background:#edf5f0!important;color:#517364!important;font-size:10px!important;font-style:normal!important;overflow:hidden;box-sizing:border-box}.warehouse-map-slot:first-child{border-left:0!important}.warehouse-map-slot>span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}.warehouse-map-slot.is-used{background:#d8ebf5!important;border-left-color:#5d9bc0!important;color:#236586!important}.warehouse-map-slot.is-warning{background:#fff1d0!important;border-left-color:#d3a04e!important;color:#8c611e!important}.warehouse-map-slot.is-full{background:#f9d9d4!important;border-left-color:#bd5047!important;color:#963a32!important}.warehouse-map-slot.is-search-hit,.warehouse-map-slot.is-search-current{box-shadow:inset 0 0 0 2px rgba(220,133,20,.38);background:#ffe0a3!important}.warehouse-map-rack--vertical .warehouse-map-level{grid-template-columns:27px minmax(0,1fr)}.warehouse-map-rack--vertical .warehouse-map-level-label{font-size:10px!important}.warehouse-map-rack--vertical .warehouse-map-slot{font-size:9px!important}.warehouse-map-rack--vertical .warehouse-map-slot>span{writing-mode:vertical-rl}
/* Keep map labels readable at any zoom: layer and slot labels are numeric only. */
.warehouse-map-level{grid-template-columns:30px minmax(0,1fr)!important}
.warehouse-map-level-label{font-size:13px!important;font-weight:900!important;color:#294f40!important}
.warehouse-map-slot{font-size:12px!important;font-weight:800!important;padding:0 1px!important}
.warehouse-map-rack--vertical .warehouse-map-level{grid-template-columns:30px minmax(0,1fr)!important}
.warehouse-map-rack--vertical .warehouse-map-level-label,.warehouse-map-rack--vertical .warehouse-map-slot{font-size:12px!important}
.warehouse-map-rack--vertical .warehouse-map-slot>span{writing-mode:horizontal-tb!important}
/* Larger numeric labels remain legible after the map is fit to the viewport. */
.warehouse-map-rack-head b{font-size:20px!important;font-weight:900!important}
.warehouse-map-level-label{font-size:20px!important;font-weight:900!important}
.warehouse-map-slot{font-size:18px!important;font-weight:900!important}
.warehouse-map-rack--vertical .warehouse-map-level-label,.warehouse-map-rack--vertical .warehouse-map-slot{font-size:18px!important}
/* Enlarge the rack stock summary shown beneath each rack. */
.warehouse-map-rack>small{font-size:16px!important;font-weight:800!important;line-height:1.2!important;color:#355f4e!important}
/* All warehouse categories use one readable rack layout. */
.warehouse-map-rack-physical{bottom:26px!important}
.warehouse-map-rack>small{right:7px!important;bottom:4px!important;left:7px!important;font-size:16px!important;line-height:1.1!important;text-align:center!important}

/* 大板入库弹窗：内容跟随窗口宽度，禁止表单把右侧字段挤出可视区域。 */
.modal:has(.warehouse-inbound-tabs){width:min(760px,calc(100vw - 24px));max-width:760px;max-height:calc(100vh - 24px);overflow:hidden}
.modal:has(.warehouse-inbound-tabs) .modal-body{min-width:0;max-height:calc(100vh - 116px);overflow-x:hidden;overflow-y:auto;padding:14px}
.warehouse-inbound-tabs,.warehouse-inbound-tabs + #warehouseInboundModeBody,.warehouse-inbound-form{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.warehouse-inbound-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.warehouse-inbound-form>label,.warehouse-inbound-form>.warehouse-inbound-readonly{min-width:0}
.warehouse-inbound-form input,.warehouse-inbound-form select,.warehouse-inbound-form textarea{max-width:100%;box-sizing:border-box}
.warehouse-inbound-tabs{overflow-x:auto;overflow-y:hidden;white-space:nowrap}
.warehouse-inbound-hint{max-width:100%;overflow-wrap:anywhere}
@media(max-width:620px){.modal:has(.warehouse-inbound-tabs){width:calc(100vw - 16px)}.modal:has(.warehouse-inbound-tabs) .modal-body{padding:11px}.warehouse-inbound-form{grid-template-columns:minmax(0,1fr)}}
.warehouse-pending-board__actions,.warehouse-stock-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.warehouse-pending-board__actions .factory-button,.warehouse-stock-actions .factory-button{margin-right:0}.warehouse-delete-confirm{display:flex;flex-direction:column;gap:8px;min-width:min(420px,70vw)}.warehouse-delete-confirm>svg{width:28px;height:28px;color:var(--factory-red-700)}.warehouse-delete-confirm>b{font-size:14px;color:#6f302c}.warehouse-delete-confirm>p{margin:0;padding:8px 10px;border-left:3px solid #b34b42;background:#fff6f5;color:#73443f;font-size:12px}.warehouse-delete-confirm>small{color:#7b6b68;font-size:10px;line-height:1.5}.workspace-danger-note{padding:8px 10px;border:1px solid #e2aaa4;border-left:3px solid #b34b42;background:#fff3f1;color:#8b332d;font-size:11px;line-height:1.5}.workspace-danger-note:not([hidden]){display:block}@media(max-width:920px){.warehouse-pending-board__actions{grid-column:1/-1;justify-content:flex-start}}
/* Large-board receiving is a separate work queue: received labels stay visible until scanned into a location. */
.warehouse-board-status-tabs{display:grid;grid-template-columns:repeat(5,minmax(112px,1fr));gap:5px;min-width:620px}.warehouse-board-status-tabs button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;min-height:48px;padding:6px 8px;border:1px solid #d2e0d9;border-radius:4px;background:#fff;color:#547168;text-align:left;cursor:pointer}.warehouse-board-status-tabs button:hover{border-color:#83b19d;background:#f7fbf8}.warehouse-board-status-tabs button.is-active{border-color:#3f8b6d;background:#eaf6ef;color:#175b43;box-shadow:inset 0 0 0 1px rgba(43,128,97,.14)}.warehouse-board-status-tabs span{font-size:11px;font-weight:800}.warehouse-board-status-tabs b{font-size:16px;line-height:1}.warehouse-board-status-tabs small{grid-column:1/3;overflow:hidden;color:#7a8e84;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.warehouse-pending-board-list{display:flex;flex-direction:column;gap:6px}.warehouse-pending-board{display:grid;grid-template-columns:minmax(210px,1.7fr) minmax(100px,.7fr) minmax(130px,1fr) minmax(130px,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid #ead6a9;border-left:4px solid #c48b28;border-radius:5px;background:#fffdf8}.warehouse-pending-board__main{min-width:0;display:flex;flex-direction:column;gap:2px}.warehouse-pending-board__main>b{font-size:13px;color:#384f45}.warehouse-pending-board__main>span{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.warehouse-pending-board small{display:block;color:#7c8e85;font-size:9px}.warehouse-pending-board>div:not(.warehouse-pending-board__main)>b{display:block;overflow:hidden;margin-top:3px;color:#3c554a;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.warehouse-pending-empty{min-height:240px}
.warehouse-inventory-status-tabs{width:100%;min-width:0;grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.warehouse-inventory-status-tabs button{min-height:48px}.workspace-material-v2:not(.workspace-material-map) .warehouse-panel{display:flex;flex-direction:column;min-height:0}.workspace-material-v2:not(.workspace-material-map) .warehouse-panel>.workspace-table-scroll{flex:1 1 auto;min-height:250px}.warehouse-stock-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.warehouse-stock-actions .factory-button,.warehouse-stock-actions .factory-icon-button{margin-right:0;flex:0 0 auto}
.warehouse-unified-inventory-scroll{min-height:250px}.warehouse-unified-inventory-table{min-width:1040px}.warehouse-unified-inventory-table th:nth-child(1){min-width:170px}.warehouse-unified-inventory-table th:nth-child(6){min-width:130px}.warehouse-unified-inventory-table td small{display:block;margin-top:2px;color:#7b8d84;font-size:9px}.warehouse-unified-inventory-table .factory-button{white-space:nowrap}

/* Workbench flow cards keep the six warehouse stages visible without making
   the rest of the page look like a dashboard full of large tiles. */
.warehouse-flow-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:10px}
.warehouse-flow-card{min-height:72px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px;padding:10px;border:1px solid #d4e1da;border-radius:5px;background:#fff;text-align:left;color:#35584a;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.warehouse-flow-card:hover{border-color:#72a88f;background:#f5faf7;box-shadow:0 1px 5px rgba(28,83,59,.08)}
.warehouse-flow-card>span{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:800;white-space:nowrap}
.warehouse-flow-card>span svg{width:15px;height:15px}
.warehouse-flow-card>b{font-size:22px;line-height:1;color:#193f31}
.warehouse-flow-card>b small{font-size:10px;font-weight:600;color:#71847a}
.warehouse-flow-card--warning>span svg,.warehouse-flow-card--warning>b{color:#af741b}
.warehouse-flow-card--info>span svg,.warehouse-flow-card--info>b{color:#2b7196}
.warehouse-flow-card--success>span svg,.warehouse-flow-card--success>b{color:#2b8061}
.warehouse-flow-card--danger>span svg,.warehouse-flow-card--danger>b{color:#b34b42}
.warehouse-inbound-table th,.warehouse-inbound-table td{white-space:nowrap}
.warehouse-records-scroll{min-height:250px}
.warehouse-records-table{min-width:1240px}
.warehouse-records-table th,.warehouse-records-table td{white-space:nowrap}

/* 出库订单分配：订单号、名称和客户分层显示，避免长名称挤压数量操作。 */
.modal.warehouse-issue-modal{width:min(820px,calc(100vw - 28px));max-width:820px;max-height:92vh;overflow:hidden}
.modal.warehouse-issue-modal .modal-body{max-height:calc(92vh - 118px);overflow-x:hidden;overflow-y:auto;padding:15px 16px}
.warehouse-issue-form{gap:12px}
.warehouse-issue-form>label{min-width:0}
.warehouse-issue-allocation{min-width:0;border:1px solid #d8e5de;background:#fbfdfc}
.warehouse-issue-lines-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-bottom:1px solid #e0e9e4;background:#f3f8f5}
.warehouse-issue-lines-heading>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.warehouse-issue-lines-heading b{color:#294f40;font-size:12px}
.warehouse-issue-lines-heading small{color:#788b82;font-size:10px;font-weight:400}
.warehouse-issue-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}
.warehouse-issue-lines-heading .factory-button{flex:0 0 auto}
.warehouse-issue-public{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:5px!important;min-height:30px;padding:0 7px;border:1px solid #cbded3;background:#fff;color:#48685a!important;font-size:10px!important;font-weight:700!important;white-space:nowrap;cursor:pointer}
.warehouse-issue-public input{width:14px;height:14px;min-height:0!important;margin:0;accent-color:#16755b}
.warehouse-issue-line{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;align-items:end;gap:10px;padding:10px;border-bottom:1px solid #e8efeb}
.warehouse-issue-line:last-child{border-bottom:0}
.warehouse-issue-order-picker{min-width:0;display:grid;grid-template-columns:minmax(190px,1fr) minmax(180px,1fr);align-items:end;gap:9px}
.warehouse-issue-order-picker label,.warehouse-issue-quantity-field{display:flex;flex-direction:column;gap:5px;color:#52665c;font-size:11px;font-weight:700}
.warehouse-issue-order-picker select,.warehouse-issue-quantity-field input{width:100%;min-width:0;box-sizing:border-box}
.warehouse-issue-order-detail{min-width:0;display:flex;flex-direction:column;gap:3px;padding:7px 9px;border-left:3px solid #8ab29e;background:#f2f8f4;line-height:1.3}
.warehouse-issue-order-detail b,.warehouse-issue-order-detail small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.warehouse-issue-order-detail b{color:#245640;font-size:11px}
.warehouse-issue-order-detail small{color:#70857a;font-size:9px}
.warehouse-issue-special-order{display:grid;grid-template-columns:minmax(190px,1fr) minmax(180px,1fr);align-items:end;gap:9px}
.warehouse-issue-special-order>label{display:flex;flex-direction:column;gap:5px;color:#52665c;font-size:11px;font-weight:700}
.warehouse-issue-special-order select{width:100%;min-width:0;box-sizing:border-box}
.warehouse-issue-remove{height:34px;white-space:nowrap}
@media(max-width:680px){
  .modal.warehouse-issue-modal{width:calc(100vw - 16px)}
  .modal.warehouse-issue-modal .modal-body{padding:11px}
  .warehouse-issue-line{grid-template-columns:minmax(0,1fr) 92px;align-items:end}
  .warehouse-issue-order-picker{grid-column:1/-1;grid-template-columns:minmax(0,1fr)}
  .warehouse-issue-special-order{grid-template-columns:minmax(0,1fr)}
  .warehouse-issue-remove{grid-column:2;grid-row:2}
  .warehouse-issue-heading-actions{gap:5px}
  .warehouse-issue-lines-heading{align-items:flex-start}
  .warehouse-issue-heading-actions{flex-wrap:wrap}
}
.warehouse-records-table td:first-child{min-width:170px}
.warehouse-records-table td:nth-child(5){min-width:130px;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.warehouse-records-table td:nth-child(6){min-width:92px}
.warehouse-records-table td:nth-child(10){min-width:110px}
.warehouse-records-table .factory-status{white-space:nowrap}
.warehouse-records-empty{min-height:250px}
@media(max-width:1100px){.warehouse-flow-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.warehouse-flow-grid{display:flex;overflow-x:auto;padding-bottom:2px}.warehouse-flow-card{min-width:150px}}
.warehouse-receiving-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.warehouse-receiving-actions .factory-button{white-space:nowrap}
.warehouse-detail-form{gap:10px}.warehouse-detail-readonly{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:38px;padding:7px 9px;border:1px solid #dce7e1;background:#f7faf8;border-radius:4px}.warehouse-detail-readonly span{font-size:10px;color:#70837a}.warehouse-detail-readonly b{font-size:12px;color:#294f40;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warehouse-detail-form input{min-width:0}.warehouse-detail-hint{margin:2px 0 0;padding:8px 10px;color:#657b70;background:#f3f8f5;border-left:3px solid #2d8968;font-size:11px;line-height:1.45}
.material-master-color-cell{flex-direction:row;align-items:center;gap:8px}.material-master-thumb{width:38px;height:38px;flex:0 0 38px;object-fit:cover;border:1px solid #d4e1da;border-radius:3px;background:#fff}.material-master-thumb--empty{display:grid;place-items:center;color:#9aa9a2}.material-master-thumb--empty svg{width:16px;height:16px}.material-image-field{display:flex;align-items:center;gap:10px;min-width:0;padding:8px;border:1px solid #dce8e1;border-radius:4px;background:#f8fbf9}.material-image-field.is-uploading{opacity:.6;pointer-events:none}.material-image-preview{display:grid;place-items:center;width:84px;height:60px;flex:0 0 84px;overflow:hidden;border:1px dashed #c7d8ce;border-radius:3px;background:#fff;color:#8a9b92;font-size:10px}.material-image-preview img{display:block;width:100%;height:100%;object-fit:contain}.material-image-actions{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}.material-image-actions label.factory-button{position:relative;display:inline-flex;flex-direction:row;align-items:center;gap:5px;overflow:hidden;cursor:pointer}.material-image-actions label.factory-button input{position:absolute;inset:0;width:100%;height:100%;min-height:0;opacity:0;cursor:pointer}.material-color-variant-image{display:flex;align-items:center;gap:8px;margin-top:8px;color:#60766b;font-size:10px;font-weight:700}.material-color-variant-image>span{flex:0 0 48px}.material-color-variant-image .material-image-field{flex:1}.material-color-variant-image .material-image-preview{width:64px;height:44px;flex-basis:64px}
.material-master-thumb{cursor:zoom-in}.modal.material-image-viewer-modal{width:min(920px,calc(100vw - 28px));max-width:920px}.material-image-viewer{display:grid;place-items:center;min-height:220px;max-height:calc(88vh - 132px);overflow:auto;background:#f5f8f6}.material-image-viewer img{display:block;max-width:100%;max-height:calc(88vh - 150px);width:auto;height:auto;object-fit:contain}
.material-master-table th,.material-master-table td{vertical-align:top}.material-master-detail-list{display:flex;flex-direction:column;gap:4px;min-width:180px}.material-master-detail-line{display:flex;flex-direction:column;gap:1px;padding:3px 0;border-bottom:1px solid #edf2ef}.material-master-detail-line:last-child{border-bottom:0}.material-master-detail-line b{color:#2d5d49;font-size:10px;font-weight:800}.material-master-detail-line small{color:#788b82;font-size:9px;white-space:nowrap}.material-master-table--board{min-width:980px}.material-master-table--edge_banding,.material-master-table--hardware{min-width:900px}.material-master-inline-row>td{padding:0!important;background:#f7fbf8}.material-inline-editor{display:flex;flex-direction:column;gap:9px;padding:11px;border:1px solid #9fc4b0;border-left:3px solid #2d8968;background:#fbfefc}.material-inline-common{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:7px}.material-inline-common label{display:flex;flex-direction:column;gap:4px;color:#4d695c;font-size:10px;font-weight:800}.material-inline-common input{width:100%;min-width:0;box-sizing:border-box}.material-inline-categories{display:flex;flex-wrap:wrap;gap:5px}.material-inline-category{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:4px!important;min-height:25px;padding:0 7px;border:1px solid #d3e3da;background:#fff;color:#315b49!important;font-size:10px!important;cursor:pointer}.material-inline-category input{width:13px;height:13px;min-height:0!important}.material-inline-variants{display:flex;flex-direction:column;gap:5px}.material-inline-variant{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:6px;padding:5px 0;border-top:1px solid #e4ece7}.material-inline-variant:first-child{border-top:0}.material-inline-variant-fields{display:grid;grid-template-columns:repeat(8,minmax(70px,1fr));gap:5px}.material-inline-variant-fields input{width:100%;min-width:0;box-sizing:border-box;min-height:30px;padding:4px 6px;font-size:10px}.material-inline-actions{display:flex;align-items:center;gap:7px}.material-inline-hint{color:#7a8e84;font-size:9px}.material-inline-spacer{flex:1}.material-master-table--all .material-master-detail-list{min-width:230px}@media(max-width:900px){.material-inline-common{grid-template-columns:repeat(2,minmax(0,1fr))}.material-inline-variant-fields{grid-template-columns:repeat(4,minmax(70px,1fr))}}@media(max-width:620px){.material-inline-common{grid-template-columns:1fr}.material-inline-variant-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.material-inline-actions{align-items:flex-start;flex-wrap:wrap}.material-inline-spacer{display:none}}
.material-inline-field{display:flex;flex-direction:column;gap:3px;min-width:0}.material-inline-field>span{color:#5c7669;font-size:9px;font-weight:800;line-height:1}.material-inline-field input{width:100%;box-sizing:border-box}.material-master-table--board th:nth-child(3),.material-master-table--edge_banding th:nth-child(3){min-width:190px}.material-master-price-cell{white-space:nowrap;font-variant-numeric:tabular-nums}.material-master-price-cell--cost{color:#7a5b2e}.material-master-price-cell--quote{color:#17613f;font-weight:700}
.material-master-price-line{min-height:20px;padding:3px 0;border-bottom:1px solid #edf2ef}.material-master-price-line:last-child{border-bottom:0}
.material-master-row-actions{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.material-master-row-actions .factory-button{width:30px;min-width:30px;padding:5px;justify-content:center}.material-master-row-actions .material-master-status{white-space:nowrap}
.material-inline-image{display:flex;align-items:center;gap:8px;color:#4d695c;font-size:10px;font-weight:800}.material-inline-image>span{flex:0 0 48px}.material-inline-image .material-image-field{flex:1}
.material-inline-common select{width:100%;min-width:0;box-sizing:border-box}.material-inline-checkbox{display:flex;align-items:center;gap:6px;min-height:30px;padding:0 8px;border:1px solid #ccd9d2;background:#fff}.material-inline-common .material-inline-checkbox input{width:15px;min-width:15px;height:15px;min-height:0}.material-inline-checkbox em{color:#365e4d;font-size:10px;font-style:normal;font-weight:700}
.material-inline-editor{overflow-x:auto}
.material-inline-common{grid-template-columns:minmax(180px,2.2fr) repeat(3,minmax(110px,1fr)) minmax(110px,1fr) minmax(140px,1.2fr) minmax(110px,1fr);min-width:1120px}
.material-inline-variants{min-width:1120px}
.material-inline-variant-fields{grid-template-columns:minmax(120px,1.25fr) repeat(3,minmax(85px,1fr)) minmax(100px,1fr) repeat(3,minmax(105px,1fr)) minmax(70px,.7fr)}
.material-inline-variant[data-inline-group="edge_banding"] .material-inline-variant-fields{grid-template-columns:minmax(120px,1.25fr) repeat(2,minmax(85px,1fr)) minmax(100px,1fr) repeat(2,minmax(105px,1fr)) minmax(70px,.7fr)}
.material-inline-variant[data-inline-group="hardware"] .material-inline-variant-fields,.material-inline-variant[data-inline-group="packaging"] .material-inline-variant-fields,.material-inline-variant[data-inline-group="other"] .material-inline-variant-fields{grid-template-columns:minmax(120px,1.25fr) repeat(2,minmax(100px,1fr)) minmax(100px,1fr) repeat(2,minmax(105px,1fr)) minmax(70px,.7fr)}
@media(max-width:900px){.material-inline-common,.material-inline-variants,.material-inline-actions{min-width:1120px}.material-inline-editor{padding-bottom:12px}}
.material-inline-common{grid-template-columns:minmax(180px,2.2fr) repeat(3,minmax(110px,1fr)) minmax(110px,1fr) minmax(140px,1.2fr) minmax(110px,1fr) minmax(190px,1.5fr);min-width:1320px}
.material-inline-common--edge_banding,.material-inline-common--packaging{grid-template-columns:minmax(180px,1.7fr) repeat(5,minmax(110px,1fr)) minmax(190px,1.5fr);min-width:1120px}
.material-inline-common--hardware{grid-template-columns:minmax(180px,1.7fr) repeat(6,minmax(105px,1fr)) minmax(190px,1.5fr);min-width:1240px}
.material-inline-image-inline{display:flex;flex-direction:column;gap:4px;min-width:0;color:#4d695c;font-size:10px;font-weight:800}
.material-inline-image-inline .material-image-field{min-width:0;padding:3px 5px;gap:5px}
.material-inline-image-inline .material-image-preview{width:50px;height:36px;flex-basis:50px;font-size:9px}
.material-inline-image-inline .material-image-actions{gap:4px;flex-wrap:nowrap}
.material-inline-image-inline .material-image-actions .factory-button{min-height:26px;padding:0 6px;font-size:9px}
.material-edge-color-picker{min-width:220px}.material-edge-color-box{display:flex;align-items:center;gap:4px;min-height:30px;padding:3px 5px;border:1px solid #ccd9d2;background:#fff;box-sizing:border-box}.material-edge-color-tags{display:flex;flex-wrap:wrap;gap:3px}.material-edge-color-tag{display:inline-flex;align-items:center;gap:3px;min-height:22px;padding:0 5px;border:1px solid #b8d5c5;background:#eef8f1;color:#28664e;font-size:9px;cursor:pointer}.material-edge-color-tag svg{width:11px;height:11px}.material-edge-color-box input[data-edge-color-input]{flex:1 1 100px;min-width:80px;border:0!important;outline:0!important;padding:3px 2px!important}
.material-search-select{position:relative}
.material-board-thickness-picker{min-width:0}.material-board-thickness-box{display:flex;align-items:center;gap:4px;min-height:30px;padding:3px 5px;border:1px solid #ccd9d2;background:#fff;box-sizing:border-box}.material-board-thickness-range input{width:72px!important;min-width:0;border:0!important;outline:0!important;padding:3px 2px!important}.material-board-thickness-range b{color:#5a7668;font-size:10px;font-weight:600}
.material-inline-variant[data-inline-group="packaging"] .material-inline-variant-fields{grid-template-columns:minmax(120px,1.25fr) repeat(3,minmax(80px,.8fr)) minmax(90px,.8fr) minmax(100px,1fr) repeat(3,minmax(105px,1fr)) minmax(70px,.7fr)}
@media(max-width:900px){.material-inline-common{min-width:1320px}}
.material-master-table--edge_banding{min-width:1020px}
.material-inline-common{width:100%;min-width:0;grid-template-columns:minmax(150px,1.55fr) repeat(5,minmax(100px,1fr)) minmax(170px,1.25fr);align-items:start}
.material-inline-common--board{grid-template-columns:minmax(150px,1.55fr) repeat(6,minmax(100px,1fr)) minmax(170px,1.25fr)}
.material-inline-common--hardware{grid-template-columns:minmax(150px,1.45fr) repeat(6,minmax(100px,1fr)) minmax(170px,1.25fr)}
.material-inline-common--packaging{grid-template-columns:minmax(150px,1.45fr) repeat(5,minmax(100px,1fr)) minmax(170px,1.25fr)}
.material-inline-common--edge_banding{grid-template-columns:minmax(150px,1.55fr) repeat(5,minmax(100px,1fr)) minmax(170px,1.25fr)}
.material-inline-common label{min-width:0;box-sizing:border-box}
.material-inline-common label>span:first-child{display:block;min-height:12px;line-height:1.2}
.material-inline-common input,.material-inline-common select{width:100%;height:30px;min-height:30px;box-sizing:border-box;border:1px solid #b9c9c1;border-radius:3px;padding:4px 8px;background:#fff;color:#263f34;font-size:12px;line-height:20px}
.material-inline-common input:focus,.material-inline-common select:focus{border-color:#2d8968;outline:2px solid rgba(45,137,104,.12)}
.material-edge-color-box{width:100%;min-height:30px;height:30px;border:1px solid #b9c9c1;border-radius:3px}
.material-edge-color-box input[data-edge-color-input]{height:22px;min-height:22px;border:0!important;padding:2px 3px!important}
.material-inline-editor{box-sizing:border-box;max-width:100%;overflow-x:auto}
.material-inline-variants{width:100%;min-width:0}
.material-inline-variant-fields{min-width:0}
@media(max-width:900px){.material-inline-common,.material-inline-variants,.material-inline-actions{min-width:0}.material-inline-common{grid-template-columns:repeat(2,minmax(0,1fr))}.material-inline-common--hardware,.material-inline-common--edge_banding,.material-inline-common--packaging{grid-template-columns:repeat(2,minmax(0,1fr))}.material-inline-variant-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.material-inline-variant[data-inline-group="edge_banding"] .material-inline-variant-fields{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Keep dense edge/hardware rows reachable instead of clipping their right fields. */
.material-inline-editor{overflow-x:auto;overflow-y:visible;max-width:100%;}
.material-inline-preset-empty{display:block;color:#8a9b92;font-size:9px;font-weight:400;line-height:1.2;}
.material-inline-preset select{width:100%;height:30px;min-height:30px;box-sizing:border-box;border:1px solid #b9c9c1;border-radius:3px;padding:4px 8px;background:#fff;color:#263f34;font-size:12px;}
.material-preset-group{display:grid;gap:8px;margin:0 0 10px;padding:10px;border:1px solid #dce8e1;border-radius:4px;background:#fbfdfc}.material-preset-group legend{padding:0 6px;color:#245741;font-size:12px;font-weight:800}.material-preset-group label{display:flex;flex-direction:column;gap:4px;color:#4d695c;font-size:10px;font-weight:800}.material-preset-group textarea{width:100%;box-sizing:border-box;min-height:72px;resize:vertical}
.material-inline-variant-fields{align-items:start;}
.material-inline-common,.material-inline-common--board,.material-inline-common--edge_banding,.material-inline-common--hardware,.material-inline-common--packaging{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));min-width:0;}
.material-inline-variant[data-inline-group="edge_banding"] .material-inline-variant-fields,.material-inline-variant[data-inline-group="hardware"] .material-inline-variant-fields,.material-inline-variant[data-inline-group="packaging"] .material-inline-variant-fields,.material-inline-variant[data-inline-group="other"] .material-inline-variant-fields{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));min-width:0;}
@media(max-width:900px){.material-inline-common,.material-inline-variants,.material-inline-actions{min-width:760px;}.material-inline-common--hardware{min-width:900px;}.material-inline-variant-fields{min-width:760px;}}

/* Keep every material editor field on the same control baseline. */
.material-inline-variant-fields input,.material-inline-variant-fields select{width:100%;height:30px;min-height:30px;box-sizing:border-box;border:1px solid #b9c9c1;border-radius:3px;padding:4px 8px;background:#fff;color:#263f34;font-size:12px;line-height:20px}
.material-inline-variant-fields input:focus,.material-inline-variant-fields select:focus{border-color:#2d8968;outline:2px solid rgba(45,137,104,.12)}
.workspace-material .material-inline-variant-fields input[type=number],.workspace-material .material-inline-common input[type=number]{-moz-appearance:textfield}
.workspace-material .material-inline-variant-fields input[type=number]::-webkit-inner-spin-button,.workspace-material .material-inline-variant-fields input[type=number]::-webkit-outer-spin-button,.workspace-material .material-inline-common input[type=number]::-webkit-inner-spin-button,.workspace-material .material-inline-common input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}

/* Multi-select edge colors must grow with their tags instead of overlapping the label. */
.material-edge-color-picker{min-width:0;align-self:stretch}
.material-edge-color-picker>span{display:block;min-height:12px;line-height:1.2}
.material-edge-color-box{height:auto;min-height:30px;align-items:flex-start;flex-wrap:wrap}
.material-edge-color-tags{flex:0 1 auto;max-width:100%;align-items:center}
.material-edge-color-box input[data-edge-color-input]{flex:1 1 100px;min-width:80px;height:22px;min-height:22px;margin:0}
.material-edge-color-box>svg{align-self:center;margin-top:2px}

.material-inline-variant[data-inline-group="edge_banding"] .material-inline-variant-fields{grid-template-columns:repeat(11,minmax(100px,1fr));min-width:1320px;flex-wrap:nowrap;white-space:nowrap}
.material-inline-variant[data-inline-group="board"] .material-inline-variant-fields,.material-inline-variant[data-inline-group="remnant"] .material-inline-variant-fields{grid-template-columns:repeat(10,minmax(90px,1fr));min-width:0;flex-wrap:nowrap;white-space:nowrap}

/* Keep the master editor compact; the board code is first and auto-generated. */
.material-inline-common--board{grid-template-columns:minmax(90px,.7fr) minmax(150px,1.25fr) repeat(6,minmax(90px,1fr)) minmax(120px,1.1fr);min-width:0}
.material-inline-common--board label:first-child input[readonly]{background:#f2f6f3;color:#5d7167}
@media(max-width:900px){.material-inline-common--board{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}}

/* Keep every specification row horizontal; narrow screens scroll instead of wrapping fields. */
.material-inline-variant{min-width:max-content}
.material-inline-variant-fields{display:flex;flex-wrap:nowrap;min-width:max-content;gap:5px}
.material-inline-variant-fields .material-inline-field{flex:0 0 110px}
.material-inline-variant-fields .material-inline-field:first-child{flex-basis:120px}

/* Keep specification actions after the last specification row. */
.material-inline-variant{grid-template-columns:minmax(0,1fr) auto}
.material-inline-actions--footer{display:flex;align-items:center;gap:7px;min-width:max-content}
.material-inline-actions--footer .material-inline-spacer{flex:1}
.material-inline-actions--footer .material-inline-hint{margin-right:auto}
.material-inline-variant>.factory-icon-button{width:30px;min-width:30px;padding:5px;justify-content:center}

@media(min-width:901px){
  .material-inline-variant[data-inline-group="edge_banding"] .material-inline-variant-fields{display:grid;width:max-content;max-width:100%;min-width:0;grid-template-columns:repeat(11,110px);}
  .material-inline-variant[data-inline-group="hardware"] .material-inline-variant-fields{display:grid;width:max-content;max-width:100%;min-width:0;grid-template-columns:repeat(11,110px);}
  .material-inline-variant[data-inline-group="hardware"][data-inline-basis="piece"] .material-inline-variant-fields>.material-inline-field:last-child{grid-column:11;grid-row:1;}
  .material-inline-variant[data-inline-group="hardware"][data-inline-basis="meter"] .material-inline-variant-fields{grid-template-columns:repeat(13,110px);}
  .material-inline-variant[data-inline-group="hardware"][data-inline-basis="length_range"] .material-inline-variant-fields{grid-template-columns:repeat(14,110px);}
}
.modal.hardware-editor-modal { display: flex; flex-direction: column; width: 100vw !important; max-width: none !important; height: 100vh !important; max-height: none !important; margin: 0 !important; border-radius: 0; overflow: hidden; box-shadow: none; }
.modal-overlay:has(.hardware-editor-modal) { align-items: stretch; background: #fff; backdrop-filter: none; }
.modal.hardware-editor-modal .modal-body { flex: 1 1 auto; min-height: 0; max-height: none; overflow: auto; }
.modal.hardware-editor-modal .modal-footer { flex: 0 0 auto; }
.modal.production-material-editor-modal { display: flex; flex-direction: column; width: 100vw !important; max-width: none !important; height: 100vh !important; max-height: none !important; margin: 0 !important; border-radius: 0; overflow: hidden; box-shadow: none; }
.modal-overlay:has(.production-material-editor-modal) { align-items: stretch; background: #fff; backdrop-filter: none; }
.modal.production-material-editor-modal .modal-body { flex: 1 1 auto; min-height: 0; max-height: none; overflow: auto; padding: 12px; }
.modal.production-material-editor-modal .modal-footer { flex: 0 0 auto; }
.production-material-editor { display: grid; gap: 14px; min-width: 980px; }
.production-material-editor-note { display: flex; align-items: center; gap: 7px; padding: 8px 10px; border: 1px solid #c9ddd3; background: #f1f8f4; color: #476b5a; font-size: 11px; }
.production-material-editor section { border: 1px solid #cbd9d2; background: #fff; }
.production-material-editor section > header { display: flex; align-items: center; justify-content: space-between; min-height: 36px; padding: 6px 10px; border-bottom: 1px solid #dce7e1; background: #f3f8f5; color: #294f40; }
.production-material-editor-table { min-width: 1040px; }
.production-material-editor-table th, .production-material-editor-table td { height: 28px !important; min-height: 28px; padding: 0 4px !important; line-height: 1.05; vertical-align: middle; white-space: nowrap; }
.production-material-editor-table input { width: 100%; min-width: 0; height: 22px !important; min-height: 22px !important; padding: 0 4px; border: 1px solid transparent; border-radius: 0; background: transparent; box-sizing: border-box; }
.production-material-editor-table input:focus { border-color: #8bb5a2; background: #fff; outline: 1px solid #8bb5a2; }
.production-material-editor-table .factory-icon-button { width: 24px; height: 24px; min-width: 24px; padding: 2px; }
.production-material-editor-table .factory-icon-button svg { width: 14px; height: 14px; }
.production-material-editor-table tfoot td { padding: 6px 4px !important; border-bottom: 0; background: #edf5f1; }
.production-material-editor-table .quote-add-row { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border: 1px solid #b8cbc2; border-radius: 3px; color: #406255; background: #f7faf8; cursor: pointer; }
.production-material-editor-table .quote-add-row:hover { border-color: #5d927b; background: #edf6f1; }
.production-material-editor-table .quote-add-row svg { width: 16px; height: 16px; }
.production-material-window { overflow: hidden; }
.production-material-window #appContainer { visibility: hidden; }
.production-material-window .modal-header .close-btn { display: none; }
.hardware-window { overflow: hidden; }
.hardware-window #appContainer { visibility: hidden; }
.hardware-window .modal-header .close-btn { display: none; }
.hardware-editor { min-width: 1040px; }
.hardware-editor-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; color: #6f8279; font-size: 12px; }
.hardware-editor-filters { display: flex; gap: 6px; overflow-x: auto; margin-bottom: 9px; padding: 6px 8px; border: 1px solid #b8ccc2; background: #f7faf8; }
.hardware-editor-filter { min-height: 30px; flex: 0 0 auto; padding: 4px 11px; border: 1px solid #b8cbc2; border-radius: 3px; color: #405e51; background: #fff; font-size: 10px; font-weight: 700; cursor: pointer; }
.hardware-editor-filter:hover { border-color: #5d927b; background: #edf6f1; }
.hardware-editor-filter.is-active { border-color: var(--factory-green-700); color: #fff; background: var(--factory-green-700); }
.hardware-editor-filter span { margin-left: 3px; font-weight: 600; opacity: .8; }
.hardware-editor-groups { display: grid; gap: 10px; }
.hardware-editor-group { border: 1px solid #cbd9d2; background: #fff; }
.hardware-editor-group[hidden] { display: none; }
.hardware-editor-group-heading { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; min-height: 34px; padding: 6px 9px; border-left: 4px solid var(--factory-blue-700); color: #244137; background: #edf5f1; }
.hardware-editor-group-heading b { font-size: 12px; }
.hardware-editor-group-heading span { color: #6c8075; font-size: 10px; }
.hardware-editor-table { min-width: 1040px; }
.hardware-editor-table input { width: 100%; min-width: 0; height: 30px; padding: 0 6px; border: 1px solid #c7d5cf; border-radius: 3px; color: #294137; box-sizing: border-box; }
.hardware-editor-table th, .hardware-editor-table td { padding: 5px 4px; }
.hardware-editor-table th:nth-child(1) { width: 86px; }
.hardware-editor-table th:nth-child(2) { width: 150px; }
.hardware-editor-table th:nth-child(3), .hardware-editor-table th:nth-child(4), .hardware-editor-table th:nth-child(5) { width: 120px; }
.hardware-editor-table th:nth-child(6), .hardware-editor-table th:nth-child(7) { width: 110px; }
.hardware-editor-table th:nth-child(8), .hardware-editor-table th:nth-child(9) { width: 72px; }
.hardware-editor-table th:nth-child(10) { width: 150px; }
.modal.hardware-editor-modal .modal-body { padding: 12px; }
.hardware-editor-table th, .hardware-editor-table td { height: 28px !important; min-height: 28px; padding: 0 4px !important; line-height: 1.05; vertical-align: middle; white-space: nowrap; }
.hardware-editor-table input { height: 22px !important; min-height: 22px !important; padding: 0 4px; border-color: transparent; border-radius: 0; background: transparent; }
.hardware-editor-table input:focus { border-color: #8bb5a2; background: #fff; outline: 1px solid #8bb5a2; }
.hardware-editor-table .factory-icon-button { width: 24px; height: 24px; min-width: 24px; padding: 2px; }
.hardware-editor-table .factory-icon-button svg { width: 14px; height: 14px; }
.hardware-editor-table tfoot td { padding: 6px 4px !important; border-bottom: 0; background: #edf5f1; }
.hardware-editor-table .quote-add-row { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border: 1px solid #b8cbc2; border-radius: 3px; color: #406255; background: #f7faf8; cursor: pointer; }
.hardware-editor-table .quote-add-row:hover { border-color: #5d927b; background: #edf6f1; }
.hardware-editor-table .quote-add-row svg { width: 16px; height: 16px; }
.hardware-editor-row-context-menu { position: fixed; z-index: 10000; min-width: 92px; padding: 4px; border: 1px solid #cbd9d2; background: #fff; box-shadow: 0 6px 18px rgba(18,55,41,.18); }
.hardware-editor-row-context-menu button { display: block; width: 100%; padding: 7px 10px; border: 0; background: #fff; color: #365248; text-align: left; cursor: pointer; font-size: 12px; }
.hardware-editor-row-context-menu button:hover:not(:disabled) { background: #e8f3ed; }
.hardware-editor-row-context-menu button:disabled { color: #a3afa9; cursor: not-allowed; }
/* hardware attachments */
.material-hardware-attachment-row{grid-template-columns:repeat(12,minmax(90px,1fr));align-items:end}.material-hardware-attachment-row label.material-inline-field{display:flex;flex-direction:column;gap:3px;color:#5c7669;font-size:9px;font-weight:800}.material-hardware-attachment-row label.material-inline-field>span{line-height:1}.material-hardware-attachment-row label.material-inline-field input{min-height:30px;padding:4px 6px;font-size:10px}.material-hardware-attachment-row .material-hardware-attachment-image{grid-column:span 2}.material-hardware-attachment-row>.factory-icon-button{grid-column:12;align-self:end;width:30px;min-width:30px;height:30px;padding:5px;justify-content:center}
.material-hardware-attachments{grid-column:1/-1;margin-top:6px;padding:7px;border:1px solid #dce8e1;background:#f7fbf8}.material-hardware-attachments-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px;color:#356451;font-size:10px}.material-hardware-attachment-row{display:grid;grid-template-columns:minmax(140px,1.3fr) minmax(120px,1fr) 74px 70px 90px minmax(110px,1fr) minmax(110px,1fr) 90px 90px 150px auto;gap:5px;align-items:end;margin-top:5px;padding-top:5px;border-top:1px solid #e4ece7}.material-hardware-attachment-row:first-child{border-top:0;margin-top:0;padding-top:0}.material-hardware-attachment-row label{min-width:0}.material-hardware-attachment-row input{width:100%;box-sizing:border-box}.material-hardware-attachment-image{grid-column:span 2;min-width:0}.material-hardware-attachment-image .material-image-field{padding:4px}.material-hardware-attachment-image .material-image-preview{width:48px;height:36px;flex-basis:48px}@media(max-width:1000px){.material-hardware-attachment-row{grid-template-columns:repeat(3,minmax(0,1fr))}.material-hardware-attachment-image{grid-column:span 2}}
