:root {
  --bg: #0f1419;
  --panel: #1a222c;
  --border: #2c3845;
  --text: #e8eef4;
  --muted: #8b9aab;
  --accent: #4da3ff;
  --green: #3ecf8e;
  --amber: #e6b84d;
  --red: #f07178;
  --chip: #243040;
  --danger-bg: #2a1518;
  --warn-bg: #2a2414;
  --ok-bg: #14241c;
  --font: "IBM Plex Sans", "Source Sans 3", system-ui, sans-serif;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
}
a { color: var(--accent); text-decoration: none; }
a:hover { color: #9ec9ff; }

.top {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding: .7rem 1.1rem;
  border-bottom: 1px solid var(--border);
  background: rgba(15, 20, 25, .92);
  position: sticky; top: 0; z-index: 10;
  backdrop-filter: blur(8px);
}
.brand {
  font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--muted); font-weight: 650;
}
.top nav { display: flex; flex-wrap: wrap; gap: 10px 14px; flex: 1; align-items: flex-end; }
.top nav a {
  color: var(--muted); padding: 7px 12px; border-radius: 999px;
  font-size: .84rem; font-weight: 560; border: 1px solid var(--border);
}
.top nav a:hover { color: var(--text); border-color: var(--accent); }
.top nav a.active, .top nav a[aria-current="page"],
.top nav .nav-trigger.active {
  background: var(--accent); color: #061018; border-color: transparent;
}
.nav-lane {
  display: flex; flex-direction: column; gap: 3px;
  padding-left: 12px; margin-left: 2px;
  border-left: 1px solid var(--border);
}
.nav-lane:first-of-type { border-left: none; padding-left: 0; margin-left: 0; }
.nav-lane-util { margin-left: auto; border-left: 1px solid var(--border); }
.nav-lane-label {
  font-size: .62rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--muted); font-weight: 650; line-height: 1; padding-left: 4px;
}
.nav-lane-tabs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.nav-group { position: relative; }
.nav-trigger {
  color: var(--muted); padding: 7px 12px; border-radius: 999px;
  font-size: .84rem; font-weight: 560; border: 1px solid var(--border);
  background: transparent; cursor: pointer; font-family: inherit;
}
.nav-trigger:hover { color: var(--text); border-color: var(--accent); }
.nav-submenu {
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 11.5rem;
  background: var(--panel); border: 1px solid var(--border); border-radius: 10px;
  padding: 6px; display: flex; flex-direction: column; gap: 2px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .35); z-index: 20;
}
.nav-submenu[hidden] { display: none; }
.nav-submenu a {
  border-radius: 8px; border: none; padding: 8px 10px;
  color: var(--text); font-size: .84rem; font-weight: 560;
}
.nav-submenu a:hover { background: #243040; color: var(--text); }
.nav-submenu a.active {
  background: rgba(77, 163, 255, .18); color: var(--accent);
}
.nav-submenu-label {
  display: block;
  padding: 8px 10px 2px;
  font-size: .68rem;
  font-weight: 650;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
}
.settings-tabs {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin: 0 0 4px; padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.settings-tab {
  color: var(--muted); padding: 8px 14px; border-radius: 999px;
  font-size: .86rem; font-weight: 600; border: 1px solid var(--border);
}
.settings-tab:hover { color: var(--text); border-color: var(--accent); }
.settings-tab.active {
  background: var(--accent); color: #061018; border-color: transparent;
}
.settings-heading {
  margin: 0; font-size: 1.15rem; font-weight: 650; letter-spacing: -.01em;
}
.page-head {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline;
}
.page-head h1 { margin: 0; }
.page-head-actions {
  margin-left: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.howto-q {
  display: inline-block; padding: 0 6px;
  border: 1px solid var(--border); border-radius: 999px;
  color: var(--muted); text-decoration: none; font-size: .85rem; line-height: 1.4;
}
.howto-q:hover { color: var(--text); border-color: var(--accent); }
.btn-icon { padding: 4px 8px; line-height: 1; font-size: 1.05rem; }
.user { display: flex; align-items: center; gap: .55rem; font-size: .78rem; color: var(--muted); }

.wrap { max-width: 1200px; margin: 0 auto; padding: 20px 18px 56px; }
.wrap.narrow { max-width: 480px; margin-top: 4rem; }
.hero-plain { margin-bottom: 14px; }
.hero-plain h1 { margin: 4px 0 0; font-size: 1.55rem; font-weight: 650; letter-spacing: -.02em; }
.lede, .sub { color: var(--muted); font-size: .9rem; margin: 6px 0 0; max-width: 62ch; line-height: 1.4; }

.callout {
  border-radius: 8px; padding: 12px 14px; margin-bottom: 14px;
  font-size: .875rem; line-height: 1.45;
  border: 1px solid var(--border); background: #141b24;
}
.callout strong { display: block; margin-bottom: 4px; }
.callout.info { border-color: #2a4a6a; background: #13202c; }
.callout.ok { border-color: #1a3d32; background: var(--ok-bg); }
.callout.warn { border-color: #5a4a20; background: var(--warn-bg); }
.callout.danger { border-color: #5a2a32; background: var(--danger-bg); }

.panel {
  background: rgba(26, 34, 44, .92);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 14px;
}
.panel h2 { margin: 0 0 6px; font-size: 1.05rem; font-weight: 600; }
.panel h3 { margin: 14px 0 6px; font-size: .92rem; font-weight: 600; color: var(--muted); }
.muted, .hint, .footer-note { color: var(--muted); font-size: .85rem; }
.footer-note { font-size: .78rem; margin-top: 12px; line-height: 1.45; }
.lane-next { margin-top: 20px; padding-top: 10px; border-top: 1px solid var(--border); }
.warn { color: var(--amber); }
.kv {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem 1rem;
  margin: .6rem 0 .75rem; font-size: .85rem;
}
.kv dt { color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; margin: 0; }
.kv dd { margin: .1rem 0 0; }
@media (max-width: 560px) { .kv { grid-template-columns: 1fr; } }

tr.inline-detail-row > td {
  padding: 12px 14px 16px;
  background: #10161e;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
tr.inline-detail-row .biz-ctx,
tr.inline-detail-row .panel {
  margin: 0;
  box-shadow: none;
}
.stats a, .stat {
  background: #141b24; border: 1px solid var(--border); border-radius: 8px;
  padding: 10px 14px; min-width: 120px; color: inherit; text-decoration: none;
}
.stats a:hover { border-color: var(--accent); }
.stats strong, .stat .v { display: block; font-size: 1.25rem; font-weight: 650; margin-top: 2px; }
.stats span, .stat .k {
  font-size: .68rem; color: var(--muted); text-transform: uppercase; letter-spacing: .05em;
}

.split { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } }

/* CBU Intake: full-width queue; Prep is a switched mode (§5ae). */
main.wrap:has(#cbu-intake-section) { max-width: 1440px; }
main.wrap:has(#fg-list) { max-width: min(1760px, 98vw); }
#cbu-intake-section[data-intake-mode="prep"] ~ #cbu-approval-section,
#cbu-intake-section[data-intake-mode="prep"] ~ #cbu-onbook-section {
  display: none;
}
.cbu-prep-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin: 0 0 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 5;
  background: var(--panel, #0f1419);
}
.cbu-prep-context {
  font-size: 0.95rem;
  min-width: 0;
}

/* Stock shorten editor — same seq-row as Approved sequences, not a skinny label list. */
#thin-gate .thin-stock-seq {
  margin: 8px 0;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #141c26;
}
#thin-gate .thin-stock-seq .del-row { width: 100%; }

/* Canvas summary: four large figures, then a headered batch table. */
#thin-gate .thin-summary-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 16px;
  margin: 16px 0 12px;
  padding: 4px 0 8px;
}
#thin-gate .thin-summary-stats .v {
  display: block;
  font-size: 1.55rem;
  font-weight: 650;
  letter-spacing: -.02em;
  color: var(--accent);
  line-height: 1.15;
}
#thin-gate .thin-summary-stats .v.warn { color: var(--amber); }
#thin-gate .thin-summary-stats .k {
  display: block;
  margin-top: 4px;
  font-size: .72rem;
  color: var(--muted);
  line-height: 1.3;
}
#thin-gate .thin-summary-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #101820;
}
#thin-gate .thin-summary {
  width: 100%;
  border-collapse: collapse;
  font-size: .82rem;
}
#thin-gate .thin-summary th {
  text-align: left;
  background: #0c1218;
  color: #e8eef4;
  font-size: .72rem;
  font-weight: 650;
  text-transform: none;
  letter-spacing: 0;
  padding: 9px 10px;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
  vertical-align: bottom;
}
#thin-gate .thin-summary td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--border);
  font-family: ui-monospace, Menlo, monospace;
  font-size: .8rem;
  vertical-align: middle;
}
#thin-gate .thin-summary tbody tr:last-child td { border-bottom: 0; }
#thin-gate .thin-summary .num { text-align: right; }
@media (max-width: 720px) {
  #thin-gate .thin-summary-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.form-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1rem;
}
.form-grid label { display: flex; flex-direction: column; gap: .3rem; font-size: .72rem; color: var(--muted); }
.form-grid .span2 { grid-column: 1 / -1; }

.qr700 {
  display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 1rem;
  max-width: 760px; margin-top: 8px;
  padding: 12px 14px; border: 1px solid var(--border); border-radius: 8px;
  background: #141c26;
}
.qr700-head {
  grid-column: 1 / -1; margin: 0 0 4px; font-size: 1.05rem; font-weight: 650;
  letter-spacing: .02em;
}
.qr700 label { display: flex; flex-direction: column; gap: .3rem; font-size: .72rem; color: var(--muted); }
.qr700 .span2 { grid-column: 1 / -1; }
.qr700-check { flex-direction: row !important; align-items: center; gap: 8px; }
.qr700-chips { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; min-height: 1.4rem; }
.qr700-chip {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--border); border-radius: 999px; padding: 2px 8px;
  background: var(--chip);
}
.qr700-chip button { border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.qr700-chip-total {
  grid-column: 1 / -1; margin: 2px 0 0; font-size: 1.15rem; font-weight: 650;
  color: var(--text);
}
.ps-so-context {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px;
  margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px;
  background: var(--panel);
}
.ps-so-context-main { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; font-size: .92rem; }
.ps-so-context-label { font-size: .72rem; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.ps-so-context-date { flex-direction: row !important; align-items: center; gap: 8px; margin: 0; font-size: .72rem; }
.ps-so-context-date input { width: auto; min-width: 9rem; }
.ps-delivery-guide {
  margin: 0 0 10px; padding: 8px 12px; border: 1px solid var(--border); border-radius: 8px;
  background: var(--panel); font-size: .82rem; line-height: 1.45;
}
.ps-so-banner {
  grid-column: 1 / -1; margin: 0 0 10px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: 8px; background: var(--panel);
}
.ps-declare-form { max-width: 980px; }
.ps-due-row {
  display: grid; grid-template-columns: 1fr 11rem; gap: 10px; align-items: stretch;
  margin-bottom: 10px;
}
.ps-due-card {
  padding: 10px 12px; border-radius: 6px; border: 1px solid var(--border);
  cursor: pointer; background: transparent;
}
.ps-due-card.selected { border-color: var(--accent); background: var(--panel); }
.ps-due-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 6px; font-size: .82rem; }
.ps-due-bar {
  height: 8px; border-radius: 4px; overflow: hidden; display: flex;
  background: color-mix(in srgb, var(--muted) 25%, transparent);
}
.ps-due-bar span { display: block; height: 100%; }
.ps-due-bar .prior { background: #3b82f6; }
.ps-due-bar .slip { background: var(--green); }
.ps-due-bar .open { background: #f59e0b; }
.ps-due-stacks {
  min-height: 3rem; padding: 6px 8px; border-radius: 6px;
  border: 1px solid var(--border); background: var(--panel);
  display: flex; flex-direction: column; gap: 4px; font-size: .68rem;
}
.ps-due-chip {
  padding: 4px 6px; border-radius: 4px; border: 1px solid var(--border);
  font-family: ui-monospace, monospace;
}
.ps-due-chip.slip { border-color: var(--accent); }
.ps-batch-table { width: 100%; border-collapse: collapse; font-size: .78rem; }
.ps-batch-table th, .ps-batch-table td { padding: 6px 8px; text-align: left; border-bottom: 1px solid var(--border); }
.ps-batch-table input, .ps-batch-table select { font-size: .78rem; }
.ps-split-detail td { background: var(--panel); font-size: .72rem; color: var(--muted); }
.ps-so-coverage { font-weight: 650; color: var(--text); }
.ps-so-coverage.flag.shortfall { font-weight: 650; }
.qr700-boxes { width: 100%; border-collapse: collapse; font-size: .78rem; }
.qr700-boxes th, .qr700-boxes td { padding: 3px 4px; text-align: left; vertical-align: top; }
.qr700-boxes input { width: 4.6rem; padding: .3rem .35rem; }
.qr700-boxes .ps-box-part { width: 8rem; }
.qr700-boxes .ps-box-size { width: 11rem; }
.qr700-boxes .ps-box-dims { display: flex; gap: 4px; margin-top: 4px; }
.qr700-boxes .ps-box-dims input { width: 3.4rem; }
input, select, textarea {
  font: inherit; color: var(--text);
  border: 1px solid var(--border); background: #121820;
  border-radius: 6px; padding: .45rem .55rem;
}
.del-row { display: flex; gap: .5rem; margin-bottom: .4rem; align-items: center; }
.del-row input { flex: 1; }
.del-row select.s-station { flex: 0 0 8.5rem; max-width: 10rem; }
.del-row select.s-activity { flex: 1; min-width: 0; }
.del-row .s-days { flex: 0 0 4.5rem; max-width: 5rem; }
.del-row .s-step {
  flex: 0 0 1.6rem;
  min-width: 1.6rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-size: .82rem;
  font-weight: 650;
  color: var(--muted);
  user-select: none;
}
.del-row .seq-drag {
  flex: 0 0 1.75rem; cursor: grab; padding: .25rem .2rem; color: var(--muted, #9aa);
  user-select: none; touch-action: none;
}
.del-row .seq-drag:active { cursor: grabbing; }
.seq-row.seq-dragging { opacity: .55; }
.seq-row.seq-drag-over { outline: 1px dashed rgba(201, 162, 39, .85); }

.sc-edit-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 1fr);
  gap: 16px;
  align-items: start;
  margin-top: 8px;
}
@media (max-width: 900px) {
  .sc-edit-layout { grid-template-columns: 1fr; }
}
.scw-job-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  background: rgba(255,255,255,.03);
  position: sticky;
  top: 12px;
}
.scw-card-tag {
  display: inline-block;
  font-size: .7rem;
  font-weight: 650;
  padding: 2px 7px;
  border-radius: 4px;
  margin-bottom: 8px;
  background: rgba(30, 80, 120, .35);
  color: #9ec8e8;
}
.scw-job-card-title { font-size: 1.05rem; font-weight: 650; margin: 0 0 4px; }
.scw-job-card-meta { margin: 0 0 10px; }
.scw-job-card-sub { font-size: .8rem; font-weight: 650; margin: 0 0 6px; color: var(--muted); text-transform: uppercase; letter-spacing: .02em; }
.scw-wo-list { margin: 0; padding-left: 1.1rem; font-size: .82rem; }
.scw-wo-list li { margin: 0 0 6px; }
.scw-wo-list code { font-size: .8rem; word-break: break-all; }
.scw-wo-unmapped code { color: #e0b35a; }
.row-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-top: .5rem; }

.btn {
  appearance: none; border: 1px solid var(--border); background: var(--chip);
  color: var(--text); border-radius: 6px; padding: 6px 11px; font-size: .82rem;
  font-weight: 560; cursor: pointer; font: inherit;
}
.btn:hover { border-color: var(--accent); }
.btn.primary, .btn-primary { background: var(--accent); color: #061018; border-color: transparent; }
.btn:disabled, .btn.primary:disabled, .btn-primary:disabled {
  opacity: .42;
  cursor: not-allowed;
  filter: grayscale(0.35);
}
.btn.ghost { background: transparent; }
/* Schedule Hold production — same framed amber signal as Held pills */
.btn.sch-hold {
  background: #4a2a12;
  color: #ffb020;
  border: 2px solid #ffb020;
  font-weight: 700;
  box-shadow: 0 0 0 1px rgba(255, 176, 32, 0.35);
}
.btn.sch-hold:hover {
  background: #5c3518;
  color: #ffc14d;
  border-color: #ffc14d;
}
.msg { font-size: .85rem; }
.msg.ok { color: var(--green); }
.msg.err { color: var(--red); }

.table-wrap { overflow-x: auto; }
table, .tbl { width: 100%; border-collapse: collapse; font-size: .875rem; }
th, .tbl th {
  text-align: left; color: var(--muted); font-weight: 560; font-size: .7rem;
  text-transform: uppercase; letter-spacing: .04em;
  padding: 8px; border-bottom: 1px solid var(--border);
  vertical-align: bottom;
}
.th-sub {
  display: block;
  margin-top: 3px;
  font-size: .68rem;
  font-weight: 450;
  text-transform: none;
  letter-spacing: 0;
  color: #7a8694;
  line-height: 1.3;
}
td, .tbl td { padding: 9px 8px; border-bottom: 1px solid #243040; vertical-align: middle; }

/* CBU Intake / Approval — stacked want / need-by dates (not comma-wrapped crush) */
td.want-dates-cell { vertical-align: top; min-width: 7.5rem; }
.want-dates {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: .85rem;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  white-space: nowrap;
}
.want-dates > div { margin: 0; }
.tbl tr:hover td { background: rgba(77, 163, 255, .04); }
.tbl tr.tone-warning td { background: rgba(230, 184, 77, .06); }
.tbl tr.so-group td {
  padding-top: 10px; padding-bottom: 8px;
  border-bottom: 1px solid #2e3a4a;
  background: rgba(77, 163, 255, .03);
  font-size: .82rem;
  cursor: pointer;
  user-select: none;
}
.tbl tr.so-group:hover td { background: rgba(77, 163, 255, .08); }
.tbl tr.cbu-cer-child td { background: rgba(77, 163, 255, .04); }
.tbl tr.cbu-cer-child td:first-child { padding-left: 1.6rem; }
.tbl tr.cbu-cer-child:hover td { background: rgba(77, 163, 255, .08); }
button.cer-fold {
  display: inline-block;
  margin: 0 6px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  vertical-align: middle;
}
button.cer-fold:hover .so-chevron { color: var(--text); }
.tbl tr.so-group.is-open td { background: rgba(77, 163, 255, .07); }
.so-chevron {
  display: inline-block; width: 1.1em; color: var(--muted);
  font-size: .85rem;
}
.tbl tr.date-group td {
  padding-top: 8px; padding-bottom: 6px;
  padding-left: 1.6rem;
  border-bottom: 1px solid #243040;
  background: rgba(230, 184, 77, .06);
  font-size: .78rem;
  color: var(--muted);
  cursor: pointer;
  user-select: none;
}
.tbl tr.date-group:hover td { background: rgba(230, 184, 77, .12); }
.tbl tr.date-group.has-shortfall td { background: rgba(230, 184, 77, .12); }
.tbl tr.date-group .shortfall-callout {
  margin-top: 6px;
  color: var(--amber);
  font-size: .75rem;
}
.flag.shortfall { background: #3d321a; color: var(--amber); }
.tbl tr.wo-row[data-ship-due] td:first-child { padding-left: 2.8rem; }
.due-promise-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.tbl tr.remain-group td {
  padding-top: 8px; padding-bottom: 4px;
  padding-left: 1.6rem;
  border-bottom: 1px solid #243040;
  background: rgba(77, 163, 255, .05);
  font-size: .78rem;
}
.tbl tr.ship-group td {
  padding-top: 8px; padding-bottom: 6px;
  padding-left: 1.6rem;
  border-bottom: 1px solid #2e3a4a;
  background: rgba(26, 61, 50, .35);
  font-size: .78rem;
  cursor: pointer;
  user-select: none;
}
.tbl tr.ship-group:hover td { background: rgba(26, 61, 50, .5); }
.tbl tr.ship-group.is-open td { background: rgba(26, 61, 50, .45); }
.tbl tr.wo-row td:first-child { padding-left: 1.6rem; }
.tbl tr.wo-row[data-ship-group] td:first-child { padding-left: 2.4rem; }
.tbl tr.wo-shipped td { opacity: 0.65; }
.flag {
  display: inline-block; margin-left: 4px; padding: 1px 6px;
  border-radius: 4px; font-size: .68rem; font-weight: 600;
  background: #3d321a; color: var(--amber);
}
.flag.odd_so, .flag.scw_error, .flag.no_estimate, .flag.no_prod_due, .flag.scw_still_open, .flag.scw_canceled_steps { background: #3d241f; color: #e07a5f; }
.flag.no_ship { background: #2a3340; color: var(--muted); }
.flag.no_customer { background: #2a3340; color: #9db4d0; }
.flag.pin { background: #1a3d32; color: var(--green); }
.flag.wave { background: #1a2e45; color: var(--accent); }
.flag.decision { background: #2a2438; color: #c4b5fd; }
.flag.reassigned, .flag.leftover { background: #3d2a1a; color: #f0b27a; }
.flag.stock { background: #1a3d32; color: var(--green); }
.flag.park_test { background: #2a3340; color: #9db4d0; }
.flag.kill_pre_press { background: #3d241f; color: #e07a5f; }
.flag.superseded { background: #2a3340; color: var(--muted); }
.flag.scrap { background: #3d241f; color: #e07a5f; }
.flag.investigate { background: #3d321a; color: var(--amber); border: 1px solid var(--amber); }
/* Schedule Held from Schedule — framed signal (2026-10-16 Andreas) */
.flag.sch-held {
  background: #4a2a12;
  color: #ffb020;
  border: 2px solid #ffb020;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: 0 0 0 1px rgba(255, 176, 32, 0.35);
}
.flag.qa_hold { background: #3d2a1a; color: #f0b27a; }
.flag.qa_pass { background: #1a3d32; color: var(--green); }
.flag.gate_hard { background: #1a2e45; color: var(--accent); }
.flag.gate_soft { background: #2a3340; color: #9db4d0; }
.flag.scw_done { background: #1a3d32; color: var(--green); }
.flag.shipped { background: #243040; color: #9db4d0; border: 1px solid var(--green); }
.flag.routing_corrected { background: #1a2e45; color: var(--accent); }
.flag.re_estimate { background: #3d321a; color: var(--amber); }
.st.shipped { background: #1a3d32; color: var(--green); }
.tbl tr.wo-done td { opacity: 0.72; }
.tbl tr.wo-done code { text-decoration: line-through; text-decoration-color: rgba(255,255,255,.35); }
.callout {
  padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px;
  background: rgba(77, 163, 255, .05); font-size: .85rem;
}
.wo-disp-form { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px; align-items: end; }
.wo-disp-form label { font-size: .75rem; color: var(--muted); }
.wo-disp-form input, .wo-disp-form select { min-width: 7rem; }
details.insert-pass { margin-top: 8px; font-size: .8rem; }
details.insert-pass > summary { cursor: pointer; color: var(--muted); }
.insert-pass-form { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px; align-items: end; }
.insert-pass-form label { font-size: .75rem; color: var(--muted); }
.insert-pass-form input, .insert-pass-form select { min-width: 7rem; }
.insert-pass-form .span2 { flex: 1 1 100%; }
.insert-pass-preview { flex: 1 1 100%; }
.muted.small, .small.muted { font-size: .75rem; color: var(--muted); }
.tbl tr.so-edit td {
  padding-top: 4px; padding-bottom: 8px; padding-left: 1.6rem;
  background: rgba(77, 163, 255, .02);
  border-bottom: 1px solid #243040;
}
.so-cust-form.inline-form {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end;
}
.so-cust-form label { font-size: .78rem; color: var(--muted); display: flex; flex-direction: column; gap: 4px; }
.so-cust-form input[type="text"] {
  min-width: 220px; padding: 6px 8px; border-radius: 6px;
  border: 1px solid var(--border); background: #121820; color: var(--text); font: inherit;
}
a.btn {
  display: inline-flex; align-items: center; text-decoration: none;
}
.num { text-align: right; font-variant-numeric: tabular-nums; }
td.steps { font-size: .8rem; max-width: 280px; }
.drag { cursor: grab; color: var(--muted); width: 2rem; }

.pill, .st {
  display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: .72rem;
  font-weight: 650; letter-spacing: .02em; white-space: nowrap;
  border: none; background: #2a3340; color: var(--muted);
}
.st.submitted, .st.open, .st.pending, .st.coming_up { background: #2a3340; color: var(--muted); }
.st.sequenced { background: #243040; color: #9db4d0; }
.st.offered, .st.hold, .st.ready { background: #1a2e45; color: var(--accent); }
.st.held, .st.active, .st.working, .st.firm { background: #1a3d32; color: var(--green); }
.st.sales-soft-hold {
  background: #0d3d2e;
  color: #5eead4;
  font-weight: 750;
  letter-spacing: .04em;
  border: 1px solid #2dd4bf;
}
.sales-soft-hold-cell {
  display: flex; flex-direction: column; gap: 4px; align-items: flex-start;
}
.sales-soft-hold-date { color: var(--text); font-size: .92rem; }
.sales-hold-timer {
  display: inline-block; font-size: .78rem; font-weight: 650;
  color: #5eead4;
}
.sales-hold-timer--warn { color: var(--amber); font-weight: 750; }
.sales-hold-timer--dead { color: var(--red); font-weight: 750; }
tr.sales-row-soft-hold td {
  background: rgba(45, 212, 191, 0.06);
}
.sales-soft-hold-banner {
  border-color: #2dd4bf;
  background: rgba(45, 212, 191, 0.08);
}
.st.expired, .st.rejected, .st.cancelled { background: #3d321a; color: var(--amber); }
.st.done, .st.approved, .st.legacy, .st.in_flight { background: #243040; color: #9db4d0; }
.st.committed, .st.scheduled { background: #2a2438; color: #c4b5fd; }
.st.not_started { background: #1a2e45; color: var(--accent); }
.st.abu_firm, .st.abu_demand { background: #3d2a1a; color: #f0b27a; }
.pill-track { background: #1a3d32; color: var(--green); }
.pill-open { background: #2a3340; color: var(--muted); }
.pill-undated { background: #2a3040; color: #9db4d0; }
.pill-carry { background: #3d321a; color: var(--amber); }
.pill-dead { background: #3d241f; color: var(--red); font-weight: 650; }
.pill-kind { font-size: .68rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.pill-kind.intake { background: #1a2e45; color: var(--accent); }
.pill-kind.retrofit { background: #2a2438; color: #c4b5fd; }
.pill-kind.seed { background: #3d321a; color: var(--amber); }
.pill-line { font-size: .68rem; font-weight: 650; letter-spacing: .04em; }
.pill-line-cbu { background: #1a3328; color: #6ee7b7; }
.pill-line-abu { background: #1a2e45; color: var(--accent); }
.pill-line-sbu { background: #2a2438; color: #c4b5fd; }
.bundle-tabs { margin: 12px 0; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.bundle-tabs .btn { font-size: .82rem; }
.req-id { font-size: .72rem; }

.toolbar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.pill-filter {
  border: 1px solid var(--border); background: transparent; color: var(--muted);
  padding: 5px 11px; border-radius: 999px; font-size: .8rem; font-weight: 560;
  cursor: pointer; font: inherit;
}
.pill-filter:hover { color: var(--text); border-color: var(--accent); }
.pill-filter.active { background: var(--accent); color: #061018; border-color: transparent; }

.cmt-find-bar {
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
  margin-bottom: 12px; padding: 10px 14px;
}
.cmt-find-label {
  display: flex; align-items: center; gap: 8px; margin: 0;
  font-size: .85rem; font-weight: 560; color: var(--muted);
}
.cmt-find-label input[type="search"] {
  min-width: 220px; max-width: 360px; width: 42vw;
  padding: 7px 10px; border-radius: 6px;
  border: 1px solid var(--border); background: #0e141c; color: var(--text);
  font: inherit;
}
.cmt-find-label input[type="search"]:focus {
  outline: none; border-color: var(--accent);
}
.tbl th.sortable {
  cursor: pointer; user-select: none; white-space: nowrap;
}
.tbl th.sortable .th-sub { white-space: normal; }
.tbl th.sortable:hover { color: var(--accent); }
.tbl th.sortable.sort-active { color: var(--accent); }

.action {
  display: flex; gap: 12px; align-items: flex-start;
  border: 1px solid var(--border); background: #141b24;
  border-radius: 8px; padding: 12px 14px; margin-bottom: 8px;
}
.sev {
  flex: 0 0 auto; font-size: .68rem; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: 4px 8px; border-radius: 6px;
  background: #243040; color: var(--muted);
}
.sev-medium { background: #1a2e45; color: var(--accent); }
.sev-now { background: #1a3d32; color: var(--green); }
.sev-next { background: #3d321a; color: var(--amber); }

.lang { margin: 0; padding-left: 1.1rem; line-height: 1.55; color: var(--muted); }
.lang strong { color: var(--text); }

.howto-steps {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 12px;
}
.howto-boxes {
  display: flex; flex-direction: column; gap: 10px;
  max-width: 52rem;
}
.howto-box {
  margin: 0;
  padding: 0;
}
.howto-box > summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.howto-box > summary::-webkit-details-marker { display: none; }
.howto-box > summary::after {
  content: "▸";
  position: absolute;
  right: 16px;
  top: 14px;
  color: var(--muted);
  font-size: .85rem;
}
.howto-box { position: relative; }
.howto-box[open] > summary::after { content: "▾"; }
.howto-box > summary strong {
  font-size: 1.02rem; font-weight: 650; color: var(--text);
  padding-right: 1.5rem;
}
.howto-box-one {
  color: var(--muted); font-size: .88rem; line-height: 1.4;
  max-width: 48ch;
}
.howto-box-body {
  padding: 0 16px 16px;
  border-top: 1px solid var(--border);
  margin-top: 0;
  padding-top: 12px;
}
.howto-bullets {
  margin: 0 0 10px; padding-left: 1.15rem;
  color: var(--muted); font-size: .9rem; line-height: 1.45;
  max-width: 62ch;
}
.howto-bullets li { margin-bottom: 6px; }
.howto-bullets strong { color: var(--text); }
.howto-step {
  background: rgba(26, 34, 44, .92);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px 18px;
}
.howto-step h2 {
  margin: 0 0 8px; font-size: 1.05rem; font-weight: 650;
}
.howto-step p { margin: 0 0 8px; color: var(--muted); font-size: .9rem; line-height: 1.45; max-width: 62ch; }
.howto-step p:last-child { margin-bottom: 0; }
.howto-box code,
.howto-step code {
  font-size: .8rem; padding: 1px 6px; border-radius: 4px;
  background: #243040; color: var(--text);
}
.howto-say {
  color: var(--text) !important;
  border-left: 2px solid var(--accent);
  padding-left: 10px;
  margin: 0 0 8px;
  font-size: .9rem; line-height: 1.45;
}
.howto-say span {
  display: inline-block; margin-right: 6px;
  font-size: .72rem; font-weight: 650; letter-spacing: .04em;
  text-transform: uppercase; color: var(--muted);
}
.howto-go { display: flex; flex-wrap: wrap; gap: 12px 18px; margin: 4px 0 0 !important; }
.howto-go a { font-size: .86rem; font-weight: 600; }

.book-strip { margin: 10px 0 12px; }
.book-list {
  margin: 8px 0 0; padding-left: 1.1rem;
  color: var(--muted); font-size: .82rem; line-height: 1.5;
}
.book-list .st { margin-right: 4px; }
.biz-ctx { margin: 12px 0 0; }
.biz-ctx .kv { margin-top: 8px; }
.biz-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.biz-card {
  margin-top: 12px; padding: 14px 16px;
  border: 1px solid var(--border); border-radius: 8px; background: #121820;
}
.biz-card-head { margin-bottom: 10px; }
.biz-truth { margin: 8px 0 4px; }
.biz-offer {
  margin-top: 14px; padding-top: 12px;
  border-top: 1px solid var(--border);
}
.biz-offer h3 { margin: 0 0 10px; font-size: .95rem; }
.check-row {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: .9rem; color: var(--text);
}
.check-row input { margin-top: 3px; }
.sales-card .sales-layer {
  margin-top: 14px; padding-top: 12px;
  border-top: 1px solid var(--border);
}
.sales-card .sales-layer:first-of-type { border-top: 0; padding-top: 0; }
.sales-card .sales-layer h3 {
  margin: 0 0 8px; font-size: .9rem; font-weight: 650;
}
.sales-stage-strip {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  margin-top: 10px; font-size: .88rem;
}
.sales-stage {
  padding: 2px 8px; border-radius: 4px;
  background: #2a3340; color: var(--muted);
}
.sales-stage.done {
  background: #1a3d32; color: var(--green);
}
.sales-stage.current {
  background: #1a2e45; color: var(--accent); font-weight: 650;
}
.sales-stage-sep { color: var(--muted); opacity: .6; }
.sales-stage-raw { font-size: .82em; }
.st.captured { background: #2a3340; color: var(--muted); }
.st.in_prep { background: #243040; color: #9db4d0; }
.st.dates_agreed { background: #1a3d32; color: var(--green); }
.st.pushed { background: #1a2e45; color: var(--accent); }
.st.needs_work { background: #2a2a24; color: #e8d48b; }
.st.completed { background: #1a3d32; color: var(--green); }
.biz-offer-lines { margin: 8px 0 0; }
.biz-offer-lines input[type="date"] { min-width: 9.5rem; }
.money-ok { color: var(--green); font-weight: 650; font-variant-numeric: tabular-nums; }
.money-weak { color: var(--amber); font-weight: 560; font-variant-numeric: tabular-nums; }
.firm-inline {
  margin-top: 14px; padding-top: 12px;
  border-top: 1px solid var(--border);
}
.firm-inline h3 { margin: 0 0 8px; font-size: .95rem; }
tr.row-sel td { background: rgba(77, 163, 255, .08); }

.ops-matrix th, .ops-matrix td { min-width: 108px; vertical-align: top; }
.ops-matrix th:first-child, .ops-matrix td:first-child {
  min-width: 72px; position: sticky; left: 0; background: var(--panel);
}
.ops-meta { font-size: .68rem; color: var(--muted); margin-top: 4px; }
.ops-role { font-size: .65rem; color: var(--muted); margin-bottom: 4px; }
.ops-empty {
  color: var(--muted); border: 1px dashed var(--border);
  display: inline-block; padding: 8px 12px; border-radius: 6px;
}
.ops-matrix th.ops-sig-live { box-shadow: inset 0 -3px 0 var(--green); }
.ops-matrix th.ops-sig-stale { box-shadow: inset 0 -3px 0 var(--amber); }
.ops-matrix th.ops-sig-none { box-shadow: inset 0 -3px 0 var(--muted); }
.ops-matrix th.ops-sig-dead { box-shadow: inset 0 -3px 0 var(--red); }
.ops-offfocus { margin: 0 0 12px; }
.ops-offfocus-list { margin: 6px 0 0; padding-left: 1.2rem; }
.ops-offfocus-list li { margin: 2px 0; }
tr.sch-so-hit td {
  box-shadow: inset 3px 0 0 var(--accent);
  background: rgba(77, 163, 255, .08);
}
tr.sch-focus-top td {
  box-shadow: inset 3px 0 0 var(--accent);
  background: rgba(77, 163, 255, .06);
}
.ops-walk { margin: 0 0 12px; }
.ops-do-first {
  margin: 0 0 14px;
  padding: 16px 18px;
}
.ops-do-first-k {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
  margin-bottom: 6px;
  font-weight: 650;
}
.ops-do-first a {
  display: block;
  font-size: 1.35rem;
  font-weight: 650;
  line-height: 1.3;
  color: var(--text);
}
.ops-do-first a:hover { color: var(--accent); }
.ops-walk-block { margin: 12px 0 0; }
.ops-walk-block h3 {
  margin: 0 0 4px;
  font-size: .92rem;
  font-weight: 650;
}
.ops-walk-station {
  font-size: .78rem;
  color: var(--muted);
  font-weight: 650;
  margin: 8px 0 2px;
}
.ops-walk-list { margin: 6px 0 0; padding-left: 1.2rem; }
.ops-walk-list li { margin: 3px 0; }
.ops-walk-list a { color: var(--text); }
.ops-walk-list a:hover { color: var(--accent); }
.ops-matrix th[id^="ops-col-"],
#ops-offfocus,
#ops-offfocus-block { scroll-margin-top: 72px; }

.tank-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
}
.tank {
  background: #121820; border: 1px solid var(--border); border-radius: 8px;
  padding: 10px 12px;
}
.tank-head { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-bottom: 8px; }
.tank-bar {
  height: 10px; background: #1a222c; border-radius: 999px; overflow: hidden;
  border: 1px solid var(--border);
}
.tank-fill { height: 100%; background: var(--accent); border-radius: 999px; }
.tank-idle .tank-fill { background: #3a4554; width: 0 !important; }
.tank-ok .tank-fill { background: var(--green); }
.tank-busy .tank-fill { background: var(--amber); }
.tank-full .tank-fill { background: #e07a5f; }
.tank-fill-idle { background: #3a4554; }
.tank-fill-ok { background: var(--green); }
.tank-fill-busy { background: var(--amber); }
.tank-fill-full { background: #e07a5f; }
.tank .pill { margin: 0 0 8px; }
.tank-meta { font-size: .78rem; color: var(--muted); margin-top: 6px; }
.tank-layers, .tank-refs { font-size: .68rem; color: var(--muted); margin-top: 4px; }

.flow-bars { display: flex; flex-direction: column; gap: 8px; }
.flow-bar-row {
  display: grid;
  grid-template-columns: minmax(110px, 1.2fr) 3fr auto minmax(70px, 0.8fr);
  gap: 10px;
  align-items: center;
  width: 100%;
  text-align: left;
  background: #121820;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
  color: inherit;
  cursor: pointer;
  font: inherit;
}
.flow-bar-row:hover { border-color: var(--accent); }
.flow-bar-track {
  height: 12px; background: #1a222c; border-radius: 999px; overflow: hidden;
  border: 1px solid var(--border);
}
.flow-bar-track .tank-fill { display: block; height: 100%; }
.flow-bar-num { font-weight: 700; min-width: 1.5rem; text-align: right; }
.flow-bar-meta { font-size: .75rem; }
.flow-station-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
}
.flow-card {
  background: #121820; border: 1px solid var(--border); border-radius: 8px;
  padding: 10px 12px; text-align: left; color: inherit; cursor: pointer; font: inherit;
}
.flow-card:hover { border-color: var(--accent); }
.flow-trend { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; }
.flow-trend-row {
  display: grid; grid-template-columns: 3.5rem 1fr 2rem; gap: 8px; align-items: center;
}
.flow-car-list { margin: 8px 0 0; padding-left: 1.2rem; font-size: .85rem; }
.flow-car-list li { margin: 2px 0; }

.os-wrap { overflow-x: auto; }
.os-row.os-none td:first-child { border-left: 3px solid #e07a5f; }
.os-row.os-later td:first-child { border-left: 3px solid var(--amber); }
.os-row.os-wrong_car td:first-child { border-left: 3px solid #6b7c8f; }
.os-row.os-waiting td:first-child { border-left: 3px solid var(--amber); }
.os-row.os-on td:first-child { border-left: 3px solid var(--green); }

.st.idle { background: #2a3340; color: var(--muted); }
.st.ok { background: #1a3d32; color: var(--green); }
.st.busy { background: #3d321a; color: var(--amber); }
.st.full { background: #3d241f; color: #e07a5f; }

.attention-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.attention-card {
  background: #121820;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px 14px;
}
.attention-card.warn { border-color: #5a4a20; background: var(--warn-bg); }
.attention-card.danger { border-color: #5a2a32; background: var(--danger-bg); }
.attention-card .k { font-size: .75rem; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.attention-card .v { font-size: 1.6rem; font-weight: 650; margin: 4px 0 8px; }
.attention-card .btn { margin: 4px 4px 0 0; }
.cmt-free-list {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.45;
}
.cmt-free-list li { margin-bottom: 6px; }
.cmt-free-list strong { color: var(--text); }

.cmt-attn-cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 16px;
}
.cmt-attn-col .attention-card { margin-bottom: 10px; }
.cmt-group-list { display: flex; flex-direction: column; gap: 6px; }
.cmt-so-group, .cmt-date-bucket {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #121820;
  padding: 0;
}
.cmt-so-group > summary, .cmt-date-bucket > summary {
  cursor: pointer;
  list-style: none;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cmt-so-group > summary::-webkit-details-marker,
.cmt-date-bucket > summary::-webkit-details-marker { display: none; }
.cmt-so-group > summary::before,
.cmt-date-bucket > summary::before {
  content: '▸ ';
  color: var(--muted);
  font-size: .8rem;
}
.cmt-so-group[open] > summary::before,
.cmt-date-bucket[open] > summary::before { content: '▾ '; }
.cmt-so-cust { font-weight: 650; font-size: .95rem; }
.cmt-so-cust.warn { color: var(--amber); }
.cmt-so-meta { font-size: .78rem; color: var(--muted); }
.cmt-so-body { padding: 0 10px 10px; border-top: 1px solid var(--border); }
.cmt-wo-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 6px 0; font-size: .86rem;
  border-bottom: 1px solid #1a222c;
}
.cmt-wo-row:last-child { border-bottom: 0; }
.cmt-wo-id { font-weight: 600; font-variant-numeric: tabular-nums; }
.cmt-date-bucket { margin-bottom: 10px; }
.cmt-date-bucket .cmt-group-list { padding: 8px 10px 10px; }

.seq-top {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline;
  gap: 10px 16px; margin-bottom: 4px;
}
.seq-days-box {
  font-size: 1.05rem;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #121820;
}
.seq-days-box strong { font-size: 1.35rem; margin-left: 6px; }

.cal-wrap { overflow-x: auto; }
.cal-grid th, .cal-grid td { font-size: .72rem; text-align: center; padding: 4px 3px; }
.cal-grid th:first-child, .cal-grid td:first-child {
  text-align: left; position: sticky; left: 0; background: var(--panel); min-width: 88px;
}
.cal-cell { min-width: 36px; }
.cal-idle { background: transparent; color: var(--muted); }
.cal-ok { background: #143028; color: var(--green); }
.cal-busy { background: #3a2e14; color: var(--amber); }
.cal-full { background: #3a1e18; color: #e07a5f; font-weight: 650; }

.rc-pool { display: flex; flex-wrap: wrap; gap: 8px; min-height: 2rem; }
.rc-chip {
  appearance: none; border: 1px solid var(--border); background: var(--chip);
  color: var(--text); border-radius: 999px; padding: 5px 12px; font: inherit;
  font-size: .82rem; cursor: pointer;
}
.rc-chip.present { border-color: var(--green); color: var(--green); }
.rc-chip:hover { border-color: var(--accent); }
.rc-stations {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}
.rc-station {
  background: #121820; border: 1px solid var(--border); border-radius: 8px;
  padding: 10px 12px;
}
.rc-station .hint { font-size: .72rem; }
.rc-slot { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.rc-slot select { flex: 1; min-width: 0; }
.rc-remove { padding: 4px 8px; line-height: 1; }

/* Commitment Board — one screen at 1440px */
main.wrap:has(.board-page) { max-width: 1440px; padding-top: 10px; padding-bottom: 28px; }
.board-hero { margin-bottom: 8px; }
.board-hero h1 { font-size: 1.35rem; }
.board-hero .lede { max-width: none; }
.board-header {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  margin-bottom: 10px;
}
.board-stat {
  background: rgba(26, 34, 44, .92); border: 1px solid var(--border);
  border-radius: 10px; padding: 10px 14px;
  cursor: pointer; text-align: left; width: 100%;
  font: inherit; color: inherit;
}
.board-stat:hover { border-color: var(--accent); }
.board-stat.active { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.board-stat span {
  display: block; color: var(--muted); font-size: .72rem;
  letter-spacing: .06em; text-transform: uppercase; font-weight: 650;
}
.board-stat strong {
  display: block; font-size: 2rem; font-weight: 700; letter-spacing: -.03em;
  line-height: 1.15; margin-top: 2px;
}
.board-stat.risk strong { color: var(--amber); }
.board-stat.gate strong { color: var(--accent); }
.board-layout {
  display: block;
}
.board-main { padding: 8px 10px; margin-bottom: 0; overflow: auto; }
.board-tbl { font-size: .78rem; }
.board-tbl th { font-size: .68rem; color: var(--muted); font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.board-tbl td, .board-tbl th { padding: 4px 8px; }
.board-row { cursor: pointer; }
.board-row:hover td { background: #1c2733; }
.board-stage { color: var(--muted); max-width: 220px; }
.board-actions { white-space: nowrap; }
.board-lever {
  color: var(--muted); font-size: .72rem; margin-left: 8px;
  border-bottom: 1px solid var(--border);
}
button.board-lever {
  background: none; border: 0; border-bottom: 1px solid var(--border);
  padding: 0; cursor: pointer; font: inherit;
}
.board-lever:hover { color: var(--accent); }
.flag.override { background: #2a2438; color: #c4b5fd; }
.board-chooser td { background: #121820; padding: 10px 12px; }
.board-chooser-box { display: grid; gap: 8px; max-width: 720px; }
.board-chooser-opts { display: grid; gap: 6px; }
.board-chooser-opt { display: flex; gap: 8px; align-items: flex-start; font-size: .82rem; }
.board-chooser-reason { display: grid; gap: 4px; font-size: .78rem; color: var(--muted); }
.board-chooser-reason input { width: 100%; max-width: 420px; }
.board-health {
  display: inline-block; font-size: .78rem; font-weight: 750;
  letter-spacing: .06em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 999px; line-height: 1.2;
}
.board-health.green { background: var(--ok-bg); color: var(--green); }
.board-health.yellow { background: var(--warn-bg); color: var(--amber); }
.board-health.red { background: var(--danger-bg); color: var(--red); }
.board-health.late { background: var(--danger-bg); color: var(--red); }
.board-health.unestimated { background: #2a3340; color: var(--muted); }
.board-status {
  display: inline-block; font-size: .78rem; font-weight: 750;
  letter-spacing: .02em;
  padding: 4px 10px; border-radius: 999px; line-height: 1.2;
}
.board-status.stopped { background: var(--danger-bg); color: var(--red); }
.board-status.flag { background: #3a2f18; color: var(--amber); }
.board-status.proceeding { background: var(--ok-bg); color: var(--green); }
.board-status.completed { background: #2a3340; color: var(--muted); }
.board-chain {
  display: inline-block; font-size: .72rem; font-weight: 650;
  letter-spacing: .02em;
  padding: 3px 8px; border-radius: 999px; line-height: 1.2;
  margin-left: 6px; vertical-align: middle;
}
.board-chain.confirmed { background: #1a2e24; color: var(--green); }
.board-chain.ship-list { background: #2a3340; color: var(--muted); }
.board-convoy td {
  padding: 0 12px 10px 12px;
  border-top: 0;
  background: transparent;
}
.board-convoy-strip {
  display: block;
  font-size: .78rem;
  color: var(--muted);
  padding-left: 2px;
}
.board-row-nested td:first-child {
  padding-left: 2.5rem;
}
.board-row-nested td:nth-child(2) {
  padding-left: 1.75rem;
}
.board-convoy.board-row-nested td {
  padding-left: 2.5rem;
}
.board-nest-mark {
  color: var(--muted);
  margin-right: 2px;
}
button.board-schedule-toggle {
  background: none;
  border: 0;
  padding: 0 0 0 6px;
  margin: 0;
  color: var(--muted);
  font: inherit;
  font-size: .78rem;
  font-weight: 650;
  cursor: pointer;
  letter-spacing: .02em;
  vertical-align: baseline;
}
button.board-schedule-toggle:hover { color: var(--accent); }
button.board-schedule-toggle[aria-expanded="true"] { color: var(--text); }
.board-row-schedule td:first-child,
.board-convoy.board-row-schedule td {
  padding-left: 3.25rem;
}
.board-row-schedule td:nth-child(2) {
  padding-left: 2.25rem;
}
.board-row-schedule td {
  background: #161c24;
}
.board-convoy.board-row-schedule td {
  background: #161c24;
}
.board-bu {
  display: inline-block;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .04em;
  padding: 2px 6px;
  border-radius: 4px;
  margin-right: 6px;
  vertical-align: 1px;
  line-height: 1.2;
}
.board-bu.abu { background: #243044; color: #93c5fd; }
.board-bu.cbu { background: #24352a; color: #86efac; }
.board-bu.sbu { background: #352a24; color: #fdba74; }
.board-date-overdue {
  color: var(--red);
  font-weight: 650;
}
.board-part-under {
  margin-top: 2px;
  font-size: inherit;
  font-weight: inherit;
  font-family: inherit;
  color: inherit;
  opacity: 0.85;
  line-height: 1.25;
}
button.board-sort {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
  text-align: inherit;
}
button.board-sort:hover { color: var(--accent); }
button.board-sort.active { color: var(--accent); }
.board-cust-sort-head {
  white-space: nowrap;
}
.board-cust-sort-label {
  display: block;
  margin-bottom: 2px;
}
.board-cust-sort-btns {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}
.board-cust-sort-btns .board-sort {
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: 0.85;
}
.board-cust-sort-btns .board-sort.active { opacity: 1; }
.board-completed-head td {
  padding: 12px 10px 8px;
  border-top: 1px solid var(--border);
  background: #141a22;
}
.board-completed-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
button.board-completed-toggle {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  color: var(--muted);
  font: inherit;
  font-weight: 650;
  cursor: pointer;
  letter-spacing: .02em;
}
button.board-completed-toggle:hover { color: var(--text); }
.board-owner-check { color: var(--muted); }
.board-filter-bar {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
  margin: 0 0 8px; font-size: .82rem;
}
.board-jump-btns .btn.active {
  color: var(--accent);
  border-color: var(--accent);
}
.hist-fold { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 10px; }
.hist-fold > summary {
  cursor: pointer; color: var(--muted); font-weight: 650;
  list-style: none; font-size: .92rem; line-height: 1.4;
}
.hist-fold > summary::-webkit-details-marker { display: none; }
.hist-fold[open] > summary { margin-bottom: 8px; color: var(--text); }
.hist-section-title {
  font-size: .72rem; letter-spacing: .06em; text-transform: uppercase;
  color: var(--muted); margin: 0 0 8px; font-weight: 700;
}
.queue-start { font-size: .82rem; white-space: nowrap; }

/* Team date approval scoreboard — canvas contract */
#team-gate .team-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr));
  gap: 12px 16px;
  margin: 12px 0;
}
#team-gate .team-stats .v {
  display: block;
  font-size: 1.35rem;
  font-weight: 650;
  letter-spacing: -.02em;
  color: var(--accent);
  line-height: 1.15;
}
#team-gate .team-stats .v.warn { color: var(--amber); }
#team-gate .team-stats .v.ok { color: var(--green); }
#team-gate .team-stats .k {
  display: block;
  margin-top: 4px;
  font-size: .72rem;
  color: var(--muted);
  line-height: 1.3;
}
#team-gate .team-date {
  border-bottom: 1px solid var(--border);
  padding: 4px 0 10px;
}
#team-gate .team-group {
  margin: 0 0 16px;
  padding: 10px 12px 2px;
  border: 1px solid var(--border);
  border-radius: 8px;
}
#team-gate .team-group-head {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: baseline;
  margin: 0 0 2px;
}
#team-gate .team-group .team-date:last-child {
  border-bottom: none;
}
#team-gate .team-date > summary {
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 10px 0;
  list-style: none;
}
#team-gate .team-date > summary::-webkit-details-marker { display: none; }
#team-gate .team-date-title { font-weight: 650; flex: 1; min-width: 12rem; }
#team-gate .team-date-pills { display: flex; flex-wrap: wrap; gap: 6px; }
#team-gate .team-date-body { padding: 0 0 8px; }
#team-gate .team-kind {
  display: flex; flex-wrap: wrap; gap: 16px;
  margin: 10px 0;
  font-size: .9rem;
}
#team-gate .team-later { margin-top: 10px; }
#team-gate .team-later input[type="date"] {
  background: var(--bg);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 6px 10px;
  font-size: 14px;
}
#team-gate .team-divider {
  border: 0;
  border-top: 1px solid var(--border);
  margin: 20px 0;
}
@media (max-width: 720px) {
  #team-gate .team-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* CBU Intake search focus strip (§5ae Andreas A) */
.cbu-focus { margin: 0 0 16px; }
.cbu-focus-lanes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.cbu-focus-lane {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px 10px;
  background: var(--chip);
  min-height: 4.5rem;
}
@media (max-width: 900px) {
  .cbu-focus-lanes { grid-template-columns: 1fr; }
}

/* Work rate browse · shape × size */
.wr-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 8px;
}
.wr-stat {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px 10px;
  background: var(--chip);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.wr-stat strong { font-size: .95rem; }
.wr-bars { display: flex; flex-direction: column; gap: 6px; }
.wr-bar-label {
  min-width: 7.5rem;
  font-size: .82rem;
  font-weight: 560;
}
.wr-bar-num {
  min-width: 3.2rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-size: .85rem;
}
#wr-matrix .pill-filter { white-space: nowrap; }
@media (max-width: 900px) {
  .wr-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
