:root {
  --console-sidebar: 196px;
  --console-header: 54px;
  --console-bg: #edf2ef;
  --console-surface: #ffffff;
  --console-surface-soft: #f5f8f6;
  --console-ink: #172820;
  --console-muted: #66786f;
  --console-line: #d3ded8;
  --console-line-soft: #e7eeea;
  --console-green: #126b52;
  --console-green-dark: #0a493a;
  --console-green-soft: #e3f1ea;
  --console-blue: #2b72a7;
  --console-orange: #be711b;
  --console-red: #b63e38;
  --console-purple: #71579a;
  --console-focus: 0 0 0 3px rgba(18, 107, 82, .14);
  --sidebar-width: var(--console-sidebar);
  --header-height: var(--console-header);
}

html, body { height: 100%; overflow: hidden; background: var(--console-bg); }
body { color: var(--console-ink); font-family: "Microsoft YaHei UI", "PingFang SC", "Segoe UI", sans-serif; }
button, input, select, textarea { letter-spacing: 0; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--console-green); outline-offset: 1px; }
* { scrollbar-color: #8ba79c #e9efec; scrollbar-width: thin; }
*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-track { background: #e9efec; }
*::-webkit-scrollbar-thumb { border: 2px solid #e9efec; border-radius: 5px; background: #8ba79c; }

/* Application frame */
.app-container { height: 100vh; overflow: hidden; background: var(--console-bg); }
.sidebar {
  width: var(--console-sidebar); height: 100vh; overflow-x: hidden; overflow-y: auto;
  border-right: 1px solid #173f35; background: #092d25; box-shadow: none;
}
.sidebar-logo {
  min-height: 62px; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.09);
  background: #07251f;
}
.brand-lockup { justify-content: flex-start; gap: 9px; }
.brand-mark { width: 32px; height: 32px; overflow: hidden; border-radius: 5px; background: #12314b; font-size: 17px; box-shadow: none; }
.brand-mark img { display:block; width:100%; height:100%; object-fit:cover; }
.brand-name { font-size: 15px; font-weight: 800; }
.sidebar-toggle { right: 9px; width: 27px; height: 27px; border-color: rgba(255,255,255,.2); border-radius: 3px; }
.sidebar-menu { padding: 7px 8px 18px; }
.sidebar-menu .menu-group {
  padding: 13px 8px 5px; color: #78988d; font-size: 9px; font-weight: 800;
  text-transform: none; letter-spacing: 0;
}
.sidebar-menu .menu-group--core { color: #c1d9d0; }
.sidebar-menu a {
  min-height: 36px; margin: 1px 0; padding: 6px 8px; gap: 8px; border: 1px solid transparent;
  border-radius: 3px; color: #bdd0c9; font-size: 12px;
}
.sidebar-menu [hidden] { display: none !important; }
.sidebar-menu a:hover { border-color: rgba(255,255,255,.07); background: rgba(255,255,255,.055); }
.sidebar-menu a.active { border-color: rgba(83,199,158,.2); background: #175a49; }
.sidebar-menu a.active::before { left: -8px; width: 3px; height: 24px; border-radius: 0; background: #56d1a5; }
.sidebar-menu a .icon { width: 25px; height: 24px; border-radius: 3px; background: transparent; }
.sidebar-menu a .icon svg { width: 16px; height: 16px; }
.core-nav { padding: 3px; border: 1px solid rgba(116,157,143,.25); border-radius: 4px; background: rgba(0,0,0,.08); }
.core-nav .core-nav-item { margin: 1px 0; }
.core-nav .core-nav-item b { margin-left: auto; padding: 2px 5px; border: 1px solid rgba(127,182,162,.26); border-radius: 2px; color: #8fb8a9; font-size: 8px; }
.main-content { height: 100vh; min-width: 0; margin-left: var(--console-sidebar); overflow: hidden; background: var(--console-bg); }
.main-content.is-sidebar-collapsed { margin-left: 56px; }
.header {
  position: relative; z-index: 50; height: var(--console-header); min-height: var(--console-header); padding: 0 14px;
  border-bottom: 1px solid var(--console-line); background: rgba(255,255,255,.98); box-shadow: none;
}
.header-title { gap: 9px; }
.header-rail { width: 3px; height: 28px; border-radius: 0; background: var(--console-green); box-shadow: 6px 0 0 #b9ddce; }
.header-title-copy small { color: #73847c; font-size: 9px; }
.header-title-copy > span { color: #1a3027; font-size: 16px; font-weight: 800; }
.header .user-info { gap: 7px; font-size: 11px; }
.header-live { padding-right: 8px; border-right: 1px solid var(--console-line); font-size: 10px; }
.header .user-info .role-badge { border-radius: 3px; background: var(--console-green-soft); color: var(--console-green-dark); }
.header button { min-height: 32px; height: 32px; border-radius: 3px; background: #fff; }
#pageContainer { height: calc(100vh - var(--console-header)); min-width: 0; min-height: 0; overflow: auto; }

/* Shared work surface */
.page, .page.factory-page { max-width: none; min-width: 0; padding: 10px 12px 14px; background: var(--console-bg); }
.factory-page { min-height: 100%; }
.command-heading {
  min-height: 50px; align-items: center; margin-bottom: 6px; padding: 0 2px;
}
.command-heading > div:first-child { min-width: 0; }
.command-heading h1 { margin: 1px 0; color: #132a21; font-size: 19px; line-height: 1.2; }
.command-heading p { max-width: 850px; overflow: hidden; color: var(--console-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.command-kicker { color: var(--console-green); font-size: 9px; }
.command-heading-actions { gap: 6px; }
.factory-button, .factory-icon-button, .btn {
  min-height: 32px; border: 1px solid #c7d4ce; border-radius: 3px; background: #fff;
  color: #344b41; box-shadow: none; font-size: 11px; font-weight: 700;
}
.factory-button { padding: 5px 10px; }
.factory-icon-button { width: 32px; height: 32px; }
.factory-button:hover, .factory-icon-button:hover, .btn:hover { border-color: #80a797; background: #f0f6f3; color: var(--console-green-dark); }
.factory-button--primary, .btn-primary { border-color: var(--console-green); background: var(--console-green); color: #fff; }
.factory-button--primary:hover, .btn-primary:hover { border-color: var(--console-green-dark); background: var(--console-green-dark); color: #fff; }
.factory-button--danger-soft, .btn-danger { border-color: #dfaaa6; background: #faebe9; color: var(--console-red); }
.factory-button--small, .btn-sm { min-height: 28px; padding: 4px 8px; font-size: 10px; }
.factory-panel, .card {
  overflow: hidden; margin-bottom: 0; border: 1px solid var(--console-line); border-radius: 4px;
  background: var(--console-surface); box-shadow: 0 1px 2px rgba(20,54,42,.04);
}
.factory-panel:hover, .card:hover { box-shadow: 0 1px 2px rgba(20,54,42,.04); }
.factory-panel-heading, .card-header {
  min-height: 43px; padding: 7px 10px; border-bottom: 1px solid var(--console-line);
  background: var(--console-surface-soft);
}
.factory-panel-heading span, .card-header { color: #263e34; font-size: 12px; font-weight: 800; }
.factory-panel-heading small { color: #74867d; font-size: 9px; }
.card-header::before { display: none; }
.card-body { padding: 12px; }
.factory-table-scroll, .table-scroll { max-width: 100%; border-radius: 0; overscroll-behavior: contain; }
.factory-table { min-width: 880px; }
.factory-table th, .table-scroll thead th {
  height: 36px; padding: 6px 9px; border-bottom: 1px solid #c9d6d0;
  background: #eaf0ed; color: #50655b; font-size: 10px; font-weight: 800;
}
.factory-table td, .table-scroll tbody td { height: 43px; padding: 6px 9px; border-bottom-color: var(--console-line-soft); font-size: 11px; }
.factory-table tbody tr:hover td, .table-scroll tbody tr:hover td { background: #eef6f2; }
.order-identity b { color: #123c2e; font-size: 12px; }
.order-identity span { color: #708179; font-size: 9px; }
.factory-status { min-height: 22px; border-radius: 3px; font-size: 10px; }
.factory-progress { width: 104px; height: 18px; border-radius: 2px; }
.factory-progress > b { padding: 1px 5px; font-size: 9px; line-height: 16px; }
.factory-search, .order-filter-input, .edge-search {
  min-height: 32px; border-color: #bdcdc5; border-radius: 3px; background: #fff;
}
.factory-search:focus-within, .order-filter-input:focus-within, .edge-search:focus-within { border-color: var(--console-green); box-shadow: var(--console-focus); }
.factory-search input { height: 30px; color: #213c31; font-size: 11px; }
select, input, textarea { border-radius: 3px; }

/* Dashboard: commands first, context second */
.page.active.command-dashboard { height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.command-dashboard .command-heading { flex: 0 0 auto; }
.workspace-switcher { flex: 0 0 auto; grid-template-columns: repeat(2,minmax(280px,1fr)); gap: 6px; margin-bottom: 6px; }
.workspace-switcher button { min-height: 42px; padding: 5px 10px; border-radius: 3px; }
.workspace-switcher button.is-active { border-color: var(--console-green); background: var(--console-green-soft); box-shadow: inset 3px 0 var(--console-green); }
.workspace-switcher span { font-size: 12px; }
.workspace-switcher strong { font-size: 17px; }
.command-metrics { flex: 0 0 auto; grid-template-columns: repeat(8,minmax(104px,1fr)); margin-bottom: 6px; border-color: var(--console-line); border-radius: 4px; }
.command-metric { min-height: 55px; padding: 7px 9px; }
.command-metric span { font-size: 9px; }
.command-metric strong { font-size: 19px; }
.core-shortcuts { flex: 0 0 auto; gap: 6px; margin-bottom: 6px; }
.core-shortcut { min-width: 188px; min-height: 48px; padding: 5px 8px; border-radius: 3px; }
.core-shortcut-icon { width: 28px; height: 28px; border-radius: 3px; }
.core-shortcut-copy b { font-size: 11px; }
.core-shortcut-copy small { font-size: 8px; }
.core-shortcut strong { font-size: 17px; }
.command-grid { min-height: 0; flex: 1 1 auto; grid-template-columns: minmax(0,1fr) 300px; align-items: stretch; gap: 7px; overflow: hidden; }
.command-grid > * { min-height: 0; }
.command-queue { height: 100%; display: flex; flex-direction: column; }
.command-queue .factory-table-scroll { min-height: 0; max-height: none; flex: 1 1 auto; }
.command-alerts { min-height: 0; }
.alert-order { min-height: 52px; }

/* Order center and order details */
.main-content.is-orders-page > .header { height: var(--console-header); min-height: var(--console-header); }
.main-content.is-orders-page #pageContainer { height: calc(100vh - var(--console-header)); }
.main-content.is-orders-page .page.factory-page.order-center { padding: 7px 10px 10px; }
.order-center .command-heading { min-height: 42px; }
.order-view-tabs, .order-detail-tabs, .workspace-tabs, .capacity-tabs, .cost-tabs, .quote-tabs, .edge-tabs {
  gap: 0; margin-bottom: 5px; border-bottom: 1px solid #c7d5ce;
}
.order-view-tabs button, .order-detail-tabs button, .workspace-tabs button,
.capacity-tabs button, .cost-tabs button, .quote-tabs button, .edge-tabs button {
  min-height: 31px; padding: 5px 10px; border-bottom-width: 2px; font-size: 10px;
}
.order-view-tabs button.is-active, .order-detail-tabs button.is-active, .workspace-tabs button.is-active,
.capacity-tabs button.is-active, .cost-tabs button.is-active, .quote-tabs button.is-active, .edge-tabs button.is-active {
  border-bottom-color: var(--console-green); background: #eef5f1; color: var(--console-green-dark);
}
.order-stage-filter-bar { min-height: 31px; margin-bottom: 4px; padding: 3px 5px; border: 1px solid var(--console-line); border-radius: 3px; background: #eaf0ed; }
.order-stage-filter-bar button.order-stage-filter { min-height: 23px; border-radius: 2px; font-size: 9px; }
.order-filter-panel, .workspace-toolbar, .capacity-filter, .cost-filter, .quote-filter, .edge-controls {
  min-height: 41px; margin-bottom: 5px; padding: 4px 6px; border-radius: 3px;
}
.order-center .order-filter-row { min-height: 38px; }
.order-batchbar { min-height: 34px; margin-bottom: 4px; border-radius: 3px; }
.order-list-panel { min-height: 0; }
.order-list-panel .factory-panel-heading { min-height: 39px; }
.order-table-scroll { min-height: 0; }
.order-detail-heading { margin-bottom: 6px; padding: 7px 9px; border: 1px solid var(--console-line); border-radius: 4px; background: #fff; }
.order-detail-metrics { margin-bottom: 6px; border-radius: 4px; }
.order-information-band, .order-overview-grid > .factory-panel { border-radius: 4px; }
.order-detail-tabs { position: sticky; top: 0; z-index: 8; background: var(--console-bg); }
.order-panel-detail-backdrop, .production-task-backdrop, .cost-drawer-backdrop, .quote-drawer-backdrop { background: rgba(6,31,23,.34); backdrop-filter: blur(1px); }
.order-panel-detail-drawer, .production-task-drawer, .cost-drawer, .quote-drawer, .warehouse-drawer-content {
  border-left: 1px solid #aebfb7; background: #f2f6f4; box-shadow: -12px 0 32px rgba(8,38,28,.16);
}

/* Management workspaces */
.page.active.workspace-page, .page.active.capacity-page, .page.active.cost-page, .page.active.quote-page, .page.active.edge-band-page {
  height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden;
  padding: 9px 12px 12px !important;
}
.workspace-heading, .capacity-heading, .cost-heading, .quote-heading, .edge-heading { flex: 0 0 auto; min-height: 47px; margin-bottom: 5px; }
.workspace-metrics, .capacity-metrics, .cost-metrics, .quote-metrics, .edge-metrics {
  flex: 0 0 auto; margin-bottom: 5px; overflow: hidden; border-color: var(--console-line); border-radius: 4px;
}
.workspace-metric, .capacity-metric, .cost-metric, .quote-metric, .edge-metric {
  min-height: 57px; padding: 7px 9px; box-shadow: inset 3px 0 #91a49b;
}
.workspace-metric span, .capacity-metric > span, .cost-metric > span, .quote-metric > span, .edge-metric > span { font-size: 9px; }
.workspace-metric strong, .capacity-metric strong, .cost-metric strong, .quote-metric strong, .edge-metric > b { font-size: 19px; }
.workspace-tabs, .capacity-tabs, .cost-tabs, .quote-tabs, .edge-tabs { flex: 0 0 auto; }
.workspace-toolbar, .capacity-filter, .cost-filter, .quote-filter, .edge-controls { flex: 0 0 auto; }
.workspace-panel, .capacity-pending-panel, .cost-orders-panel, .quote-list-panel, .edge-panel {
  min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column;
}
.workspace-table-scroll, .capacity-table-scroll, .cost-table-scroll, .quote-table-scroll, .edge-table-scroll {
  min-height: 0; max-height: none; flex: 1 1 auto; overflow: auto;
}
.workspace-tabs { background: transparent; }
.workspace-toolbar select { height: 32px; }
.production-kpis { margin-bottom: 5px; border-radius: 4px; }
.production-kpi { min-height: 57px; padding: 7px 9px; }
.production-toolbar { min-height: 41px; }
.production-layout, .warehouse-layout { min-height: 0; gap: 6px; }

/* System settings: permanent navigation and one editing surface */
.page.active.workspace-system {
  display: grid; grid-template-columns: 178px minmax(0,1fr); grid-template-rows: auto auto minmax(0,1fr);
  gap: 6px; align-content: stretch;
}
.workspace-system > .workspace-heading { grid-column: 1 / -1; grid-row: 1; }
.workspace-system .workspace-metrics { display: none; }
.workspace-system > .workspace-tabs {
  grid-column: 1; grid-row: 2 / 4; min-height: 0; display: flex; align-items: stretch; flex-direction: column;
  gap: 0; margin: 0; overflow-y: auto; border: 1px solid var(--console-line); border-radius: 4px;
  background: #e7eeea;
}
.workspace-system > .workspace-tabs button {
  min-height: 42px; justify-content: flex-start; padding: 7px 10px; border: 0; border-left: 3px solid transparent;
  border-bottom: 1px solid #d4dfd9; background: transparent; color: #53685e;
}
.workspace-system > .workspace-tabs button.is-active {
  border-left-color: var(--console-green); border-bottom-color: #d4dfd9; background: #fff; color: var(--console-green-dark);
}
.workspace-system > .workspace-toolbar { grid-column: 2; grid-row: 2; margin: 0; }
.workspace-system > .workspace-panel { grid-column: 2; grid-row: 3; }
.workspace-system--toolbarless > .workspace-panel { grid-row: 2 / 4; }
.workspace-system--toolbarless > .workspace-panel > .factory-panel-heading { min-height: 42px; }
.system-settings-workbench { grid-template-columns: 188px minmax(0,1fr); min-height: 0; height: 100%; border-top: 0; }
.system-settings-module-nav { border-right: 1px solid var(--console-line); background: #edf3f0; }
.system-settings-module-nav button { min-height: 49px; border-bottom: 1px solid #dde7e2; border-left: 3px solid transparent; background: transparent; }
.system-settings-module-nav button.is-active { border-left-color: var(--console-green); background: #fff; color: var(--console-green-dark); }
.system-settings-stage { min-height: 0; overflow: auto; background: #fff; }
.system-settings-stage > header { min-height: 50px; padding: 9px 12px; }
.system-card-grid { grid-template-columns: repeat(4,minmax(160px,1fr)); gap: 6px; padding: 8px; }
.system-card { min-height: 104px; padding: 11px; border-radius: 3px; box-shadow: none; }
.system-connection, .system-order-reset { margin: 0 8px 8px; }
.system-workflow-settings, .system-card-grid--workstations { gap: 7px; padding: 8px; }
.system-workflow-page { min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; overflow: hidden; background: #f2f6f4; }
.system-workflow-subnav { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; border-bottom: 1px solid #cbd9d2; background: #e7eeea; }
.system-workflow-subnav button { min-width: 0; min-height: 52px; display: flex; align-items: center; gap: 8px; padding: 7px 11px; border: 0; border-right: 1px solid #d0ddd7; border-bottom: 3px solid transparent; color: #53695e; background: transparent; text-align: left; cursor: pointer; }
.system-workflow-subnav button:last-child { border-right: 0; }
.system-workflow-subnav button:hover { background: #f5f8f6; }
.system-workflow-subnav button.is-active { border-bottom-color: var(--console-green); color: var(--console-green-dark); background: #fff; }
.system-workflow-subnav button > i { width: 18px; height: 18px; flex: 0 0 auto; }
.system-workflow-subnav button > span { min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.system-workflow-subnav button b { font-size: 11px; }
.system-workflow-subnav button small { overflow: hidden; color: #7b8d84; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.system-workflow-content { min-height: 0; flex: 1 1 auto; overflow: auto; padding: 8px; }
.system-workflow-content .system-order-name-rule { margin: 0 0 8px; }
.system-workflow-content .system-order-name-rule-body { grid-template-columns: minmax(0,1fr) auto; gap: 6px 10px; padding: 8px 10px; }
.system-workflow-content .system-order-name-rule-body > label { grid-column: 1 / -1; grid-template-columns: 86px minmax(0,1fr); gap: 8px; }
.system-workflow-content .system-order-name-rule-help { min-width: 0; gap: 4px; }
.system-workflow-content .system-order-name-rule-help span { padding: 3px 5px; }
.system-workflow-content .system-order-name-rule-actions { justify-content: flex-end; flex-wrap: nowrap; }
.system-workflow-content .system-order-name-rule-actions small { display: none; }
.system-workflow-content .system-workflow-settings { padding: 0; }
.system-workflow-view--basics .system-workflow-rules,
.system-workflow-view--basics .system-workflow-settings > footer,
.system-workflow-view--basics .system-workflow-nc-receipt { display: none; }
.system-workflow-view--basics .system-workflow-settings { grid-template-columns: minmax(420px,1.2fr) minmax(310px,.8fr); gap: 8px; }
.system-workflow-view--basics .system-workflow-settings > section { padding: 10px; }
.system-workflow-view--basics .system-workflow-settings > section:first-of-type > label { grid-template-columns: 104px minmax(0,1fr); }
.system-workflow-view--basics .system-workflow-freeze-note { border-left-width: 3px !important; }
.system-workflow-view--basics .workflow-delivery-offset { grid-template-columns: minmax(0,1fr) 130px auto; align-items: end; gap: 7px 12px; margin-top: 8px; padding-top: 8px; }
.system-workflow-view--basics .workflow-delivery-toggle { grid-column: 1 / -1; }
.system-workflow-view--basics .workflow-delivery-hint { align-self: center; }
.system-workflow-view--basics .workflow-delivery-save { align-self: center; }
.system-workflow-view--rules .system-workflow-content { display: flex; overflow: hidden; }
.system-workflow-view--rules .system-order-name-rule,
.system-workflow-view--rules .system-workflow-settings > section:first-of-type,
.system-workflow-view--rules .system-workflow-freeze-note,
.system-workflow-view--rules .system-workflow-nc-receipt { display: none; }
.system-workflow-view--rules .system-workflow-settings { min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: 0; }
.system-workflow-view--rules .system-workflow-rules { min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; border: 1px solid #d4e0da; }
.system-workflow-view--rules .system-workflow-rules > .factory-table-scroll { min-height: 0; max-height: none; flex: 1 1 auto; }
.system-workflow-view--rules .system-workflow-settings > footer { position: static; flex: 0 0 auto; min-height: 48px; margin: 0; padding: 8px 10px; }
.system-workflow-view--receipts .system-workflow-content { overflow: auto; }
.system-workflow-view--receipts .system-order-name-rule,
.system-workflow-view--receipts .system-workflow-settings { display: none; }
.system-workflow-view--receipts .system-workflow-nc-receipt { margin: 0; }
.system-track-settings { min-height: 0; overflow: auto; padding: 9px; background: #f7faf8; }
.workflow-track-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px solid #cbdad2; border-left: 4px solid var(--console-green); background: #fff; }
.workflow-track-intro h3 { margin: 3px 0 4px; color: var(--console-green-dark); font-size: 18px; }
.workflow-track-intro p { max-width: 760px; margin: 0; color: #5e7068; font-size: 11px; line-height: 1.55; }
.workflow-track-rule-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 8px 0; }
.workflow-track-rule-grid > div { display: flex; gap: 8px; align-items: flex-start; min-height: 58px; padding: 9px 10px; border: 1px solid #d6e2dc; background: #fff; }
.workflow-track-rule-grid > div > i { width: 18px; height: 18px; flex: 0 0 auto; color: var(--console-green); }
.workflow-track-rule-grid span, .workflow-track-node-top { display: flex; flex-direction: column; gap: 2px; }
.workflow-track-rule-grid b { color: #263d32; font-size: 11px; }
.workflow-track-rule-grid small { color: #6b7c74; font-size: 10px; line-height: 1.45; }
.workflow-track-section { padding: 10px; border: 1px solid #d5e1db; background: #fff; }
.workflow-track-section + .workflow-track-section { margin-top: 8px; }
.workflow-track-section > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; padding-bottom: 7px; border-bottom: 1px solid #e1e9e5; }
.workflow-track-section h4 { margin: 0 0 2px; color: #29443a; font-size: 13px; }
.workflow-track-section header p { margin: 0; color: #74847d; font-size: 10px; }
.workflow-track-section header > span { color: #71837a; font-size: 10px; white-space: nowrap; }
.workflow-track-node-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.workflow-track-node { min-height: 98px; padding: 9px 10px; border: 1px solid #d5e1db; border-left: 3px solid #9baea4; background: #fbfdfc; }
.workflow-track-node--warning { border-left-color: var(--console-orange); background: #fffaf2; }
.workflow-track-node--info { border-left-color: #5d9cc5; background: #f5faff; }
.workflow-track-node--success { border-left-color: #2c946d; background: #f4fbf7; }
.workflow-track-node-top { position: relative; padding-right: 76px; }
.workflow-track-node-top > span { color: #87978f; font-size: 9px; letter-spacing: .04em; }
.workflow-track-node-top b { color: #2b4439; font-size: 12px; }
.workflow-track-node-top code { position: absolute; top: 0; right: 0; max-width: 72px; overflow: hidden; color: #81928a; font: 9px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; text-overflow: ellipsis; white-space: nowrap; }
.workflow-track-node p { min-height: 29px; margin: 7px 0 6px; color: #63746c; font-size: 10px; line-height: 1.45; }
.workflow-track-node small { display: flex; align-items: center; gap: 4px; color: #84938d; font-size: 9px; }
.workflow-track-node small i { width: 12px; height: 12px; color: var(--console-green); }
.workflow-track-note { display: flex; align-items: flex-start; gap: 8px; margin-top: 8px; padding: 9px 10px; border: 1px solid #ceded5; background: #eef6f1; }
.workflow-track-note > i { width: 17px; height: 17px; flex: 0 0 auto; color: var(--console-green-dark); }
.workflow-track-note div { display: flex; flex-direction: column; gap: 2px; }
.workflow-track-note b { color: #2b4439; font-size: 11px; }
.workflow-track-note span { color: #62756b; font-size: 10px; line-height: 1.45; }
.system-storage-summary { gap: 6px; padding: 8px; }
.system-storage-summary article { min-height: 65px; padding: 8px 9px; }
.system-storage-paths { margin: 8px; }

/* Execution modules share one visual grammar */
.main-content.is-operation-page { background: var(--console-bg); }
.cutting-page, .hole-page, .packing-page, .sorting-page, .replacement-page {
  color: var(--console-ink); background: var(--console-bg);
}

/* Sorting focus view after two consecutive successful scans. */
.main-content.sorting-focus-mode {
  position: fixed; inset: 0; z-index: 1200;
  width: 100vw; height: 100vh; margin-left: 0;
  overflow: hidden; background: #edf2ef;
}
.main-content.sorting-focus-mode > .header,
.main-content.sorting-focus-mode .sorting-left-panel,
.main-content.sorting-focus-mode .sorting-current-order-bar,
.main-content.sorting-focus-mode .sorting-reminder-banner,
.main-content.sorting-focus-mode .sorting-location-detail,
.main-content.sorting-focus-mode #sortingPanelModelCard { display: none !important; }
.main-content.sorting-focus-mode #pageContainer {
  position: absolute; inset: 0; height: auto; margin: 0; padding: 0; overflow: hidden;
}
.main-content.sorting-focus-mode .sorting-page,
.main-content.sorting-focus-mode .sorting-work-view {
  position: absolute; inset: 0; width: auto; height: auto; min-height: 0; margin: 0; padding: 0; overflow: hidden;
}
.main-content.sorting-focus-mode .sorting-page {
  display: flex !important; flex-direction: column;
}
.main-content.sorting-focus-mode .sorting-command-bar {
  display: grid !important; flex: 0 0 auto; width: 100%; min-height: 54px;
  height: auto; box-sizing: border-box; position: relative; inset: auto;
}
.main-content.sorting-focus-mode .sorting-work-view {
  position: static; inset: auto; flex: 1 1 auto; display: block; width: 100%;
  height: auto; min-height: 0;
}
.main-content.sorting-focus-mode .sorting-workspace {
  width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 0; overflow: hidden;
}
.main-content.sorting-focus-mode #sortingGrid {
  flex: 0 0 auto; max-height: 122px; margin: 0; padding: 8px 10px;
  position: static !important; top: auto !important;
  overflow-x: auto; overflow-y: hidden; box-shadow: none;
}
.main-content.sorting-focus-mode #sortingPreview {
  display: block !important; flex: 1 1 auto; width: 100%; min-height: 0; margin: 0; padding: 0 10px 10px;
  position: static !important; top: auto !important;
  box-sizing: border-box;
}
.main-content.sorting-focus-mode .sorting-model-grid { display: block; height: 100%; }
.main-content.sorting-focus-mode #sortingProjectModelCard {
  display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; box-sizing: border-box;
}
.main-content.sorting-focus-mode #sortingProjectModelCard .sorting-model-frame { height: calc(100% - 44px); min-height: 0; }
.main-content.sorting-focus-mode #sortingProjectModelCard iframe { height: 100%; }

.sorting-focus-control {
  display: inline-flex; align-items: center; gap: 3px; flex: 0 0 auto;
  padding: 2px; border: 1px solid #c8d5ce; border-radius: 4px; background: #eef3f0;
}
.sorting-focus-auto {
  min-height: 28px; display: inline-flex; align-items: center; gap: 4px; padding: 0 5px;
  color: #344b42; font-size: 11px; font-weight: 700; white-space: nowrap; cursor: pointer;
}
.sorting-focus-auto input { width: 14px; height: 14px; margin: 0; accent-color: var(--sorting-accent, #176b55); }
.sorting-page .sorting-focus-now {
  min-height: 28px; display: inline-flex; align-items: center; gap: 4px; padding: 0 7px;
  border-color: var(--sorting-accent, #176b55) !important;
  background: var(--sorting-accent, #176b55) !important; color: #fff !important;
}
.sorting-page .sorting-focus-now:hover,
.sorting-page .sorting-focus-now:focus-visible {
  background: var(--sorting-accent-dark, #12352e) !important; color: #fff !important;
}
.sorting-focus-now svg { width: 14px; height: 14px; }

/* Dense scan list: retain readable text while using roughly 60% of the former row height. */
.sorting-location-table tbody tr { height: 25px; }
.sorting-location-table tbody td {
  height: 25px; padding-top: 2px !important; padding-bottom: 2px !important;
  line-height: 16px; white-space: nowrap;
}
.cutting-command, .hole-command, .packing-command-bar, .sorting-current-order-bar {
  min-height: 52px; border-bottom: 1px solid var(--console-line); box-shadow: none;
}
.cutting-brand-mark, .hole-command-mark { border-radius: 3px; background: var(--console-green); }
.cutting-button, .cutting-icon-button,
.hole-button, .hole-icon-button,
.packing-toolbar-actions button, .packing-view-tabs button,
.sorting-page button:not(.sorting-table-sort):not(.sorting-column-drag) { border-radius: 3px; box-shadow: none; }
.cutting-machines, .hole-devices { min-height: 58px; height: 58px; padding: 6px 10px; background: #e7eeea; }
.cutting-machine, .hole-device { min-height: 45px; border-radius: 3px; }
.cutting-status-tabs, .hole-status-tabs { min-height: 36px; background: #f4f7f5; }
.cutting-status-tabs button, .hole-status-tabs button { min-height: 36px; }
.cutting-workspace { grid-template-columns: 260px 330px minmax(430px,1fr); }
.cutting-panel-head, .hole-panel-heading { min-height: 44px; background: #f2f6f4; }
.cutting-order-row, .cutting-batch-row, .sorting-order-card, .sorting-location-card { border-radius: 3px; box-shadow: none; }
.sorting-order-card { border-left: 3px solid #a7b6af; background: #fff; }
.sorting-order-card.is-progress:not(.is-current) { border-color: #d9a55f; border-left-color: var(--console-orange); background: #fffaf2; }
.sorting-order-card.is-current { border-color: #8eb6a6; border-left-color: var(--console-green); background: var(--console-green-soft); }
.sorting-order-card.is-complete:not(.is-current) { border-color: #b6d6c8; border-left-color: #27825f; background: #f3faf6; }
.sorting-order-card.is-progress .sorting-order-card-progress > div { background: var(--console-orange); }
.packing-command-bar { padding: 6px 10px; }
.packing-view-tabs { border-radius: 3px; }
.packing-scan-box { height: 37px; border-radius: 3px; box-shadow: none; }
.replacement-page { height: 100%; gap: 6px; padding: 8px; }
.replacement-summary { gap: 6px; }
.replacement-summary-item { height: 55px; border-radius: 3px; padding: 6px 9px; }
.replacement-summary-item strong { font-size: 22px; }
.replacement-summary-item span { font-size: 11px; }
.replacement-toolbar, .replacement-batchbar { padding: 6px 8px; border-radius: 3px; }
.replacement-workspace { gap: 6px; }
.replacement-list-pane, .replacement-detail { border-radius: 3px; }
.replacement-table th { height: 36px; background: #e8efeb; color: #4e6258; }

/* Modals and forms */
.modal-overlay { background: rgba(6,31,23,.42); backdrop-filter: blur(2px); }
.modal { width: min(760px,calc(100vw - 32px)); max-height: 88vh; border: 1px solid #afc0b8; border-radius: 5px; box-shadow: 0 18px 54px rgba(5,29,21,.24); }
.modal-header { min-height: 52px; padding: 10px 14px; background: #eef4f1; color: #1d392e; font-size: 14px; }
.modal-body { padding: 14px; }
.modal-footer { position: sticky; bottom: 0; z-index: 2; padding: 9px 14px; background: #f7faf8; }
.form-row, .workspace-form-grid, .edge-form-grid { gap: 9px; }
.form-group { margin-bottom: 10px; }
.form-group label, .workspace-form-grid label, .edge-form-grid label { color: #50675c; font-size: 10px; font-weight: 800; }
.form-group input, .form-group select, .form-group textarea,
.workspace-form-grid input, .workspace-form-grid select, .workspace-form-grid textarea,
.edge-form-grid input, .edge-form-grid select { border-color: #bdcbc5; border-radius: 3px; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus,
.workspace-form-grid input:focus, .workspace-form-grid select:focus, .workspace-form-grid textarea:focus { border-color: var(--console-green); box-shadow: var(--console-focus); }

@media (max-width: 1280px) {
  .command-metrics { grid-template-columns: repeat(4,1fr); }
  .command-grid { grid-template-columns: minmax(0,1fr); }
  .command-alerts { display: none; }
  .system-card-grid { grid-template-columns: repeat(2,minmax(160px,1fr)); }
  .cutting-workspace { grid-template-columns: 235px 300px minmax(390px,1fr); }
}

@media (max-width: 900px) {
  :root { --console-sidebar: 60px; }
  .sidebar { width: 60px; }
  .sidebar-logo { min-height: 56px; padding: 10px; justify-content: center; }
  .brand-name, .sidebar-toggle, .sidebar-menu .menu-group, .sidebar-menu a span:not(.icon), .core-nav .core-nav-item b { display: none; }
  .sidebar-menu a, .core-nav .core-nav-item { justify-content: center; padding: 7px; }
  .main-content { margin-left: 60px; }
  .header-title-copy small, .header-live, #currentUserName { display: none; }
  .page, .page.factory-page { padding: 8px; }
  .command-heading p { display: none; }
  .command-grid { grid-template-columns: 1fr; }
  .command-alerts { display: none; }
  .workspace-switcher { grid-template-columns: 1fr 1fr; }
  .system-settings-workbench { grid-template-columns: 1fr; }
  .page.active.workspace-system { display: flex; }
  .workspace-system > .workspace-tabs {
    width: 100%; min-height: auto; display: flex; align-items: center; flex-direction: row; overflow-x: auto;
    border-right: 0; border-left: 0; border-radius: 0; background: transparent;
  }
  .workspace-system > .workspace-tabs button { min-width: 140px; justify-content: center; border-left: 0; border-bottom: 2px solid transparent; }
  .workspace-system > .workspace-tabs button.is-active { border-bottom-color: var(--console-green); }
  .system-settings-module-nav { display: flex; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--console-line); }
  .system-settings-module-nav button { min-width: 150px; border-left: 0; border-bottom: 3px solid transparent; }
  .system-settings-module-nav button.is-active { border-bottom-color: var(--console-green); }
  .system-workflow-view--basics .system-workflow-settings { grid-template-columns: 1fr; }
  .system-workflow-view--basics .system-workflow-settings > section:first-of-type,
  .system-workflow-view--basics .system-workflow-freeze-note { grid-column: 1; grid-row: auto; }
  .workflow-track-rule-grid, .workflow-track-node-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .workflow-track-intro { flex-direction: column; }
}

@media (max-width: 620px) {
  .system-workflow-subnav { display: flex; overflow-x: auto; }
  .system-workflow-subnav button { min-width: 176px; }
  .system-workflow-content .system-order-name-rule-body { grid-template-columns: 1fr; }
  .system-workflow-content .system-order-name-rule-body > label { grid-template-columns: 1fr; }
  .system-workflow-content .system-order-name-rule-actions { justify-content: flex-start; }
  .system-workflow-view--basics .workflow-delivery-offset { grid-template-columns: 1fr; }
  .system-workflow-view--basics .workflow-delivery-toggle { grid-column: 1; }
  .workflow-track-rule-grid, .workflow-track-node-grid { grid-template-columns: 1fr; }
  .workflow-track-intro h3 { font-size: 16px; }
  .workflow-track-node { min-height: 0; }
}

@media (max-width: 560px) {
  :root { --console-header: 50px; }
  .header { padding: 0 8px; }
  .header .header-logout span, .command-heading-actions .factory-button span { display: none; }
  .workspace-switcher { display: flex; overflow-x: auto; }
  .workspace-switcher button { min-width: 230px; }
  .command-metrics, .workspace-metrics, .capacity-metrics, .cost-metrics, .quote-metrics, .edge-metrics { display: flex; overflow-x: auto; }
  .command-metric, .workspace-metric, .capacity-metric, .cost-metric, .quote-metric, .edge-metric { min-width: 128px; }
  .system-card-grid { grid-template-columns: 1fr; }
  .modal { width: calc(100vw - 12px); }
  .form-row, .workspace-form-grid, .edge-form-grid { grid-template-columns: 1fr; }
}

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

/* Procurement detail is a dense, long list: use the available screen while
   keeping the header, filters and footer visible. */
.modal.procurement-detail-modal {
  width: min(94vw, 1600px);
  max-width: none;
  height: min(92vh, 1000px);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.procurement-detail-modal .modal-body { min-height: 0; flex: 1 1 auto; overflow: hidden; padding: 12px 14px; }
.procurement-detail-modal .procurement-detail-shell { min-height: 0; height: 100%; display: flex; flex-direction: column; gap: 10px; }
.procurement-detail-modal .workspace-detail-summary { flex: 0 0 auto; margin: 0; }
.procurement-detail-tools { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.procurement-detail-tools .factory-search { flex: 1 1 auto; min-width: 220px; }
.procurement-category-select { min-width: 130px; height: 32px; padding: 0 8px; border: 1px solid #bdcbc5; border-radius: 3px; background: #fff; color: #29473b; }
.procurement-detail-modal .procurement-detail-scroll { min-height: 0; flex: 1 1 auto; overflow: auto; }
.procurement-detail-modal .procurement-detail-table { min-width: 1080px; }
.procurement-detail-modal .procurement-detail-table thead th { position: sticky; top: 0; z-index: 1; background: #e8efeb; }
.procurement-detail-modal .procurement-detail-table tr[hidden] { display: none; }
@media (max-width: 620px) {
  .modal.procurement-detail-modal { width: calc(100vw - 12px); height: calc(100vh - 12px); max-height: calc(100vh - 12px); }
  .procurement-detail-tools { align-items: stretch; flex-direction: column; }
  .procurement-detail-tools .factory-search { min-width: 0; }
  .procurement-category-select { width: 100%; }
}

/* Unified production order cards.
   Packing is the reference: a compact 64px desktop card with the progress
   summary on the right. The execution pages keep their own data, but share
   the same visual grid so switching modules does not change the list rhythm. */
.cutting-page .cut-order,
.hole-page .hole-order,
.sorting-page .sorting-order-card {
  width: 100%;
  height: 64px;
  min-height: 64px;
  max-height: 64px;
  margin-bottom: 5px;
  padding: 5px 8px;
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid #d0dad5;
  border-left: 4px solid #9aa8a1;
  border-radius: 4px;
  background: #fff;
}

/* Make the reference card's intrinsic three-line content fit the declared
   64px height instead of allowing the browser to grow it to 70px. */
@media (min-width: 769px) {
  .packing-page .packing-order-item {
    height: 64px;
    min-height: 64px;
    max-height: 64px;
    grid-template-rows: minmax(0, 1fr);
  }
  .packing-page .packing-order-item > span:first-child { gap: 1px; }
  .packing-page .packing-order-item b { line-height: 14px; }
  .packing-page .packing-order-item small { line-height: 12px; }
}

/* Keep the state language shared across modules. */
.cutting-page .cut-order.is-active,
.hole-page .hole-order.is-active,
.sorting-page .sorting-order-card.is-current {
  border-color: #8eb6a6;
  border-left-color: var(--console-green, #0f6b59);
  background: var(--console-green-soft, #edf8f3);
}
.cutting-page .cut-order.is-urgent:not(.is-active),
.hole-page .hole-order.is-urgent:not(.is-active) {
  border-left-color: var(--console-red, #c83e3e);
}
.sorting-page .sorting-order-card.is-progress:not(.is-current) {
  border-color: #d9a55f;
  border-left-color: var(--console-orange, #d97706);
  background: #fffaf2;
}
.sorting-page .sorting-order-card.is-complete:not(.is-current) {
  border-color: #b6d6c8;
  border-left-color: #27825f;
  background: #f3faf6;
}

/* Cutting: five dense rows match the reference card while keeping the
   remaining quantity and percent in the right-side footer. */
.cutting-page .cut-order {
  position: relative;
  height: 96px;
  min-height: 96px;
  max-height: 96px;
  grid-template-columns: minmax(0, 1fr) 78px;
  grid-template-rows: 20px 20px 18px 18px 4px;
  row-gap: 2px;
  column-gap: 8px;
}
.cutting-page .cut-order-line { display: contents; }
.cutting-page .cut-order-line > b { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 4px; min-width: 0; white-space: normal; overflow: visible; line-height: 18px; }
.cutting-page .cut-order-line > b { grid-column: 1; grid-row: 1; }
.cutting-page .cut-order-line > b .cut-order-code { min-width: 0; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow-wrap: anywhere; white-space: normal; text-overflow: clip; }
.cutting-page .cut-order-line > .cut-state { grid-column: 2; grid-row: 1; justify-self: end; align-self: start; max-width: 78px; font-size: 9px; }
.cutting-page .cut-order > strong { grid-column: 1 / -1; grid-row: 2; min-width: 0; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; font-size: 11px; line-height: 18px; white-space: normal; text-overflow: clip; overflow-wrap: anywhere; }
.cutting-page .cut-order > small { grid-column: 1; grid-row: 3; max-width: 52%; font-size: 10px; line-height: 18px; }
.cutting-page .cut-order > .cut-order-delivery { grid-column: 1; grid-row: 4; font-size: 10px; line-height: 18px; }
.cutting-page .cut-order > .cut-order-badges {
  grid-column: 1;
  grid-row: 3;
  justify-self: end;
  min-width: 0;
  width: 48%;
  min-height: 11px;
  display: flex;
  flex-wrap: nowrap;
  gap: 2px;
  overflow: hidden;
}
.cutting-page .cut-order > .cut-order-badges .cut-badge {
  min-width: 0;
  overflow: hidden;
  padding: 1px 3px;
  font-size: 8px;
  line-height: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cutting-page .cut-order > .cut-progress { grid-column: 1 / -1; grid-row: 5; height: 4px; margin: 0; align-self: end; }
.cutting-page .cut-order > footer { grid-column: 2; grid-row: 3 / 5; align-self: center; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 2px; font-size: 9px; line-height: 11px; }
.cutting-page .cut-order > footer span { max-width: 78px; text-align: right; white-space: normal; overflow-wrap: anywhere; }
.cutting-page .cut-order-line > b { font-size: 12px; line-height: 14px; }

/* Hole machining: the three counters become a compact, readable numeric
   cluster. Their original text remains in the DOM for accessibility/title
   inspection, while the short labels keep the fixed card from growing. */
.hole-page .hole-order {
  grid-template-columns: minmax(0, 1fr) 54px;
  grid-template-rows: 16px 14px 13px 3px;
  row-gap: 0;
  column-gap: 8px;
  border-left-width: 4px;
}
.hole-page .hole-order-top { grid-column: 1 / -1; grid-row: 1; min-width: 0; }
.hole-page .hole-order-top > b { font-size: 12px; }
.hole-page .hole-order-top > .hole-status { min-height: 15px; padding: 0 4px; font-size: 9px; }
.hole-page .hole-order > strong { grid-column: 1; grid-row: 2; font-size: 12px; line-height: 14px; }
.hole-page .hole-order-meta { grid-column: 1; grid-row: 3; font-size: 9px; line-height: 13px; }
.hole-page .hole-order-meta > small,
.hole-page .hole-order-delivery { font-size: 9px; line-height: 13px; }
.hole-page .hole-order-counts { grid-column: 2; grid-row: 2 / 4; align-self: center; justify-content: space-between; gap: 2px; font-size: 0; line-height: 11px; }
.hole-page .hole-order-counts span { display: flex; min-width: 0; flex-direction: column; align-items: center; font-size: 0; }
.hole-page .hole-order-counts span::before { color: #718079; font-size: 8px; line-height: 9px; }
.hole-page .hole-order-counts span:nth-child(1)::before { content: '完'; }
.hole-page .hole-order-counts span:nth-child(2)::before { content: '余'; }
.hole-page .hole-order-counts span:nth-child(3)::before { content: '异'; }
.hole-page .hole-order-counts b { font-size: 11px; line-height: 11px; }
.hole-page .hole-order > .hole-progress { grid-column: 1 / -1; grid-row: 4; height: 4px; margin: 0; align-self: end; }

/* Sorting already has the same fields as packing; move its scan summary to
   the right column and keep the order/project/delivery stack on the left. */
.sorting-page .sorting-order-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 54px;
  grid-template-rows: 16px 14px 13px 3px;
  gap: 0 8px;
  border-left-width: 4px;
}
.sorting-page .sorting-order-card-title { grid-column: 1; grid-row: 1; min-width: 0; font-size: 12px !important; line-height: 16px !important; }
.sorting-page .sorting-order-card-subtitle { grid-column: 1; grid-row: 2; min-width: 0; font-size: 10px !important; line-height: 14px !important; }
.sorting-page .sorting-order-card-delivery { grid-column: 1; grid-row: 3; font-size: 9px; line-height: 13px; }
.sorting-page .sorting-order-card-stats { grid-column: 2; grid-row: 1 / 4; align-self: center; text-align: right; font-size: 9px !important; line-height: 11px !important; white-space: normal; }
.sorting-page .sorting-order-card-progress { grid-column: 1 / -1; grid-row: 4; height: 4px; margin: 0; align-self: end; }

@media (max-width: 768px) {
  .packing-page .packing-order-item,
  .cutting-page .cut-order,
  .hole-page .hole-order,
  .sorting-page .sorting-order-card {
    width: 188px;
    min-width: 188px;
    height: 80px;
    min-height: 80px;
    max-height: 80px;
    flex: 0 0 188px;
  }
}

/* The order rail is the most information-dense part of the cutting view.
   Give it enough width at laptop sizes so the fixed card grid remains readable. */
@media (min-width: 901px) and (max-width: 1280px) {
  /* Give the order rail enough width for the full code/name and delivery row
     while keeping the production preview usable on laptop-sized windows. */
  .cut-workspace { grid-template-columns: 250px 250px minmax(0, 1fr); }
}
@media (min-width: 681px) and (max-width: 900px) {
  .cut-workspace { grid-template-columns: 205px 230px minmax(0, 1fr); }
}

/* Orders without usable panel details stay visible for repair, but never look
   like normal sorting work. */
.sorting-page .sorting-order-section-title.is-exception {
  border-left-color: var(--console-red, #b63e38);
  color: var(--console-red, #b63e38);
}
.sorting-page .sorting-order-card.is-exception {
  border-color: #e1b4b0;
  border-left-color: var(--console-red, #b63e38);
  background: #fff8f7;
}
