/* =============================================================================
   MODULE ACCENTS
   ----------------------------------------------------------------------------
   Subtle but noticeable colour identity per DMS module, applied via a single
   data-module="…" attribute on the .cons or .pid root.
   All tokens come from the existing palette — no new colours are introduced.

     data-module="invoice"  → navy-900 fills + blue accents     (default)
     data-module="grn"      → teal-600 fills + teal accents
     data-module="po"       → blue-600 fills + blue accents

   Touched surfaces:
   - The "kicker" line above the page title (eyebrow + thin coloured rule)
   - Active KPI segment fill (the dark "selected" pill in the segmented header)
   - Saved-view active chip fill
   - Filter chip "is-set" fill
   - Toolbar primary CTA fill
   - Page-title accent rule under the title block
   - List row "hover" tint and selected-row left stripe
   - Listnav active chip / detail page title kicker

   Everything else (state pills, status colours, severity bands) stays neutral
   so the meaning of a colour never depends on which module you're on.
   ============================================================================= */

/* ---------- Topbar sub-module navigation ---------- */
.topbar__subnav {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 20px;
  padding-left: 20px;
  border-left: 1px solid var(--sd-line-200);
  height: 26px;
}
.topbar__subnav a {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--sd-ink-500);
  text-decoration: none;
  border-radius: var(--sd-radius-sm);
  transition: color 150ms ease, background 150ms ease;
}
.topbar__subnav a:hover {
  color: var(--sd-ink-900);
  background: var(--sd-bg-soft);
}
.topbar__subnav a.is-active,
.topbar__subnav a[aria-current="page"] {
  color: var(--sd-ink-900);
  font-weight: 600;
  background: var(--sd-bg-soft);
  box-shadow: inset 0 -2px 0 var(--sd-ink-900);
}
[data-module="grn"] .topbar__subnav a.is-active,
[data-module="grn"] .topbar__subnav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--sd-teal-600); }
[data-module="po"] .topbar__subnav a.is-active,
[data-module="po"] .topbar__subnav a[aria-current="page"]  { box-shadow: inset 0 -2px 0 var(--sd-blue-600); }



[data-module="grn"] .kpiseg.is-active,
[data-module="grn"] .view-chip.is-on,
[data-module="grn"] .cons__primary {
  background: var(--sd-teal-600);
  border-color: var(--sd-teal-600);
}
[data-module="grn"] .kpiseg.is-active:hover,
[data-module="grn"] .view-chip.is-on:hover,
[data-module="grn"] .cons__primary:hover {
  background: #128090;
  border-color: #128090;
}
/* status chip: set state inherits module accent (border + count badge) */
[data-module="grn"] .cons__chip.is-set:not(.is-date) {
  border-color: var(--sd-teal-600);
  color: var(--sd-ink-900);
}
[data-module="grn"] .cons__chip.is-set:not(.is-date):hover { border-color: #128090; }
[data-module="grn"] .cons__chip.is-set:not(.is-date) .cons__chip-count {
  background: var(--sd-teal-600);
}
[data-module="grn"] .row.is-selected {
  background: var(--sd-teal-050) !important;
}
[data-module="grn"] .row.is-selected::before { background: var(--sd-teal-600); }
[data-module="grn"] .cons__row-stripe { background: var(--sd-teal-600); }

/* ---------- PO — link-blue identity ---------- */

[data-module="po"] .kpiseg.is-active,
[data-module="po"] .view-chip.is-on,
[data-module="po"] .cons__primary {
  background: var(--sd-blue-600);
  border-color: var(--sd-blue-600);
}
[data-module="po"] .kpiseg.is-active:hover,
[data-module="po"] .view-chip.is-on:hover,
[data-module="po"] .cons__primary:hover {
  background: var(--sd-blue-700);
  border-color: var(--sd-blue-700);
}
[data-module="po"] .cons__chip.is-set:not(.is-date) {
  border-color: var(--sd-blue-600);
  color: var(--sd-ink-900);
}
[data-module="po"] .cons__chip.is-set:not(.is-date):hover { border-color: var(--sd-blue-700); }
[data-module="po"] .cons__chip.is-set:not(.is-date) .cons__chip-count {
  background: var(--sd-blue-600);
}
[data-module="po"] .row.is-selected {
  background: var(--sd-blue-050) !important;
}
[data-module="po"] .row.is-selected::before { background: var(--sd-blue-600); }
[data-module="po"] .cons__row-stripe { background: var(--sd-blue-600); }

/* ---------- Discrepancy — deep amber (exception / audit) identity ---------- */

[data-module="disc"] .kpiseg.is-active,
[data-module="disc"] .view-chip.is-on,
[data-module="disc"] .cons__primary {
  background: var(--sd-amber-text);
  border-color: var(--sd-amber-text);
}
[data-module="disc"] .kpiseg.is-active:hover,
[data-module="disc"] .view-chip.is-on:hover,
[data-module="disc"] .cons__primary:hover {
  background: #8E5A14;
  border-color: #8E5A14;
}
[data-module="disc"] .cons__chip.is-set:not(.is-date) {
  border-color: var(--sd-amber-text);
  color: var(--sd-ink-900);
}
[data-module="disc"] .cons__chip.is-set:not(.is-date):hover { border-color: #8E5A14; }
[data-module="disc"] .cons__chip.is-set:not(.is-date) .cons__chip-count {
  background: var(--sd-amber-text);
}
[data-module="disc"] .row.is-selected {
  background: var(--sd-amber-100) !important;
}
[data-module="disc"] .row.is-selected::before { background: var(--sd-amber-text); }
[data-module="disc"] .cons__row-stripe { background: var(--sd-amber-text); }
[data-module="disc"] .topbar__subnav a.is-active,
[data-module="disc"] .topbar__subnav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--sd-amber-text); }
[data-module="disc"] .pid__tile--info { --pid-tile-accent: var(--sd-amber-text); }

/* =============================================================================
   DISCREPANCY ATOMS — reason pill + source-ref micro-chip
   ============================================================================= */

/* reason pill — coloured by reason family (semantic, not module-coded) */
.disc-reason {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px 3px 6px;
  border-radius: 4px;
  font-size: 11.5px;
  font-weight: 500;
  background: var(--sd-bg-soft);
  color: var(--sd-ink-700);
  border: 1px solid var(--sd-line-200);
  white-space: nowrap;
  line-height: 1.3;
}
.disc-reason__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--sd-ink-400);
  flex-shrink: 0;
}
.disc-reason--ship    { background: #FEF6E7; color: #8E5A14; border-color: #F2D9A6; }
.disc-reason--ship .disc-reason__dot    { background: #B47200; }
.disc-reason--damage  { background: var(--sd-red-100); color: #A8273F; border-color: #F1B4BD; }
.disc-reason--damage .disc-reason__dot  { background: var(--sd-red-600); }
.disc-reason--paper   { background: #F1EBFB; color: #5B3F92; border-color: #DDD2EF; }
.disc-reason--paper .disc-reason__dot   { background: #5B3F92; }
.disc-reason--data    { background: #EAF1F5; color: #225d83; border-color: #C9D9E5; }
.disc-reason--data .disc-reason__dot    { background: #225d83; }
.disc-reason--unknown { background: #F4F2EE; color: #6B5C3A; border-color: #DDD6C7; }
.disc-reason--unknown .disc-reason__dot { background: #6B5C3A; }

/* source-ref micro-chip — links to a PO / Invoice / GRN / LR / Dispatch doc */
.disc-srcrefs {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.disc-srcref {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 20px;
  padding: 0 6px;
  font-family: var(--sd-mono);
  font-size: 10.5px;
  font-weight: 500;
  color: var(--sd-ink-700);
  background: #fff;
  border: 1px solid var(--sd-line-300);
  border-radius: 3px;
  text-decoration: none;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.disc-srcref:hover {
  color: var(--sd-blue-700);
  border-color: var(--sd-blue-600);
  background: var(--sd-blue-050);
}
.disc-srcref__kind {
  font-family: var(--sd-font);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--sd-ink-400);
  border-right: 1px solid var(--sd-line-200);
  padding-right: 5px;
  margin-right: 1px;
}
.disc-srcref:hover .disc-srcref__kind { color: var(--sd-blue-600); border-color: var(--sd-blue-100); }
.disc-srcref--missing {
  color: var(--sd-ink-400);
  background: var(--sd-bg-soft);
  border-style: dashed;
}
.disc-srcref--missing:hover {
  color: var(--sd-ink-500);
  background: var(--sd-line-100);
  border-color: var(--sd-line-300);
}

/* owner avatar + name (compact) */
.disc-owner {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.disc-owner__av {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  flex-shrink: 0;
  background: var(--sd-bg-soft);
  color: var(--sd-ink-700);
  border: 1px solid var(--sd-line-200);
}
.disc-owner__av--ra { background: #F1EBFB; color: #5B3F92; border-color: #DDD2EF; }
.disc-owner__av--rl { background: #EAF1F5; color: #225d83; border-color: #C9D9E5; }
.disc-owner__av--rq { background: var(--sd-red-100); color: #A8273F; border-color: #F1B4BD; }
.disc-owner__av--sb { background: var(--sd-bg-soft); color: var(--sd-ink-700); border-color: var(--sd-line-300); }
.disc-owner__av--si { background: #FEF6E7; color: #8E5A14; border-color: #F2D9A6; }
.disc-owner__lines {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.disc-owner__person {
  font-size: 12.5px;
  color: var(--sd-ink-900);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
.disc-owner__team {
  font-size: 10.5px;
  color: var(--sd-ink-400);
  font-family: var(--sd-mono);
  letter-spacing: 0.04em;
  line-height: 1.2;
}

/* priority pip */
.disc-prio {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--sd-mono);
  font-size: 11px;
  color: var(--sd-ink-500);
  font-variant-numeric: tabular-nums;
}
.disc-prio__pip {
  display: inline-flex;
  gap: 2px;
}
.disc-prio__pip span {
  width: 3px; height: 10px;
  background: var(--sd-line-200);
  border-radius: 1px;
}
.disc-prio--p1 .disc-prio__pip span { background: var(--sd-red-600); }
.disc-prio--p2 .disc-prio__pip span:nth-child(1),
.disc-prio--p2 .disc-prio__pip span:nth-child(2) { background: var(--sd-amber-500); }
.disc-prio--p3 .disc-prio__pip span:nth-child(1) { background: var(--sd-green-600); }

/* =============================================================================
   Detail page summary tiles — the "primary value" tile (.pid__tile--info)
   inherits the module accent. Severity tiles (--ok / --warn / --bad)
   stay semantic. Subtle but it tells you which module you're on at a glance.
   ============================================================================= */
[data-module="invoice"] .pid__tile--info { --pid-tile-accent: var(--sd-navy-900); }
[data-module="grn"]     .pid__tile--info { --pid-tile-accent: var(--sd-teal-600); }
[data-module="po"]      .pid__tile--info { --pid-tile-accent: var(--sd-blue-600); }

/* ---------- Page kicker — coloured eyebrow + 2px rule under title ---------- */
/* Used on detail pages, sits inside .pid__title-block in place of .pid__eyebrow. */

.pid__kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sd-ink-500);
  margin-bottom: 8px;
}
.pid__kicker::before {
  content: "";
  display: inline-block;
  width: 18px; height: 2px;
  background: var(--sd-ink-300);
  border-radius: 2px;
}
[data-module="invoice"] .pid__kicker { color: var(--sd-navy-900, #0F1F36); }
[data-module="invoice"] .pid__kicker::before { background: var(--sd-navy-900, #0F1F36); }
[data-module="grn"] .pid__kicker { color: var(--sd-teal-600); }
[data-module="grn"] .pid__kicker::before { background: var(--sd-teal-600); }
[data-module="po"]  .pid__kicker { color: var(--sd-blue-600); }
[data-module="po"]  .pid__kicker::before { background: var(--sd-blue-600); }

/* ---------- 3-way match mini bars: reused on GRN as 2-way (PO ↔ GRN) ---------- */
.match--two .match__bar:nth-child(3),
.pid-match-mini--two .pid-match-mini__bar:nth-child(3) {
  display: none;
}

/* ---------- Variance pill — used on GRN list/detail rows ---------- */
.pill-var {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--sd-mono);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--sd-bg-soft);
  border: 1px solid var(--sd-line-200);
  color: var(--sd-ink-700);
  white-space: nowrap;
}
.pill-var--short  { color: var(--sd-red-600);   border-color: #F1B4BD; background: var(--sd-red-100); }
.pill-var--over   { color: var(--sd-amber-text);border-color: #F1D5A2; background: var(--sd-amber-100); }
.pill-var--ok     { color: var(--sd-green-600); border-color: #B6D9BD; background: var(--sd-green-100); }
.pill-var--damage { color: var(--sd-red-600);   border-color: #F1B4BD; background: var(--sd-red-100); }

/* ---------- Receipt progress bar — small 3-segment indicator ---------- */
.recv-bar {
  display: inline-grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2px;
  align-items: center;
  width: 64px;
  height: 6px;
}
.recv-bar__seg {
  height: 100%;
  background: var(--sd-line-200);
  border-radius: 1px;
}
.recv-bar__seg.is-ok     { background: var(--sd-green-600); }
.recv-bar__seg.is-short  { background: var(--sd-red-600); }
.recv-bar__seg.is-damage { background: var(--sd-amber-500); }

/* ---------- PO approval timeline (compact) ---------- */
.appflow {
  display: flex;
  flex-direction: column;
}
.appflow__step {
  display: grid;
  grid-template-columns: 26px 1fr auto;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px dashed var(--sd-line-200);
}
.appflow__step:last-child { border-bottom: none; }
.appflow__num {
  width: 22px; height: 22px;
  border-radius: 999px;
  background: var(--sd-bg-soft);
  border: 1px solid var(--sd-line-300);
  color: var(--sd-ink-500);
  font-family: var(--sd-mono);
  font-size: 11px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.appflow__step.is-done .appflow__num {
  background: var(--sd-green-600);
  border-color: var(--sd-green-600);
  color: #fff;
}
.appflow__step.is-active .appflow__num {
  background: #fff;
  border-color: var(--sd-blue-600);
  color: var(--sd-blue-600);
  box-shadow: 0 0 0 3px var(--sd-blue-050);
}
.appflow__title {
  font-size: 13px;
  font-weight: 500;
  color: var(--sd-ink-900);
  margin-bottom: 2px;
}
.appflow__sub {
  font-size: 12px;
  color: var(--sd-ink-500);
}
.appflow__meta {
  font-family: var(--sd-mono);
  font-size: 11px;
  color: var(--sd-ink-400);
  white-space: nowrap;
  padding-top: 3px;
}

/* ---------- PO lifecycle progress — small 4-dot indicator ---------- */
.po-progress {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  vertical-align: middle;
}
.po-progress__step {
  width: 8px; height: 8px;
  border-radius: 999px;
  background: var(--sd-line-200);
  position: relative;
}
.po-progress__step.is-done {
  background: var(--sd-green-600);
}
.po-progress__step.is-active {
  background: var(--sd-blue-600);
  box-shadow: 0 0 0 2px var(--sd-blue-050);
}
.po-progress__step.is-bad {
  background: var(--sd-red-600);
}
.po-progress__join {
  width: 8px; height: 1px;
  background: var(--sd-line-200);
}
.po-progress__join.is-done { background: var(--sd-green-600); }
.po-progress__label {
  margin-left: 8px;
  font-size: 11.5px;
  color: var(--sd-ink-500);
  white-space: nowrap;
}

/* =============================================================================
   PO LIFECYCLE — numbered stage + miniature trail (canonical V1)
   Replaces the bare .po-progress dot-stepper in cells where the user needs
   to read the named stage at a glance.
   ============================================================================= */
.po-life {
  display: inline-flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.po-life__row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.po-life__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--sd-blue-600);
  color: #fff;
  font-family: var(--sd-mono);
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  flex-shrink: 0;
}
.po-life__num--bad  { background: var(--sd-red-600); }
.po-life__num--done { background: var(--sd-green-600); }
.po-life__name {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--sd-ink-900);
  white-space: nowrap;
}
.po-life__sub {
  font-family: var(--sd-mono);
  font-size: 10.5px;
  color: var(--sd-ink-400);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.po-life__trail {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.po-life__pip {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--sd-line-200);
}
.po-life__pip.is-done   { background: var(--sd-green-600); }
.po-life__pip.is-active { background: var(--sd-blue-600); box-shadow: 0 0 0 1.5px var(--sd-blue-050); }
.po-life__pip.is-bad    { background: var(--sd-red-600); }
.po-life__pipsep {
  width: 8px; height: 1px;
  background: var(--sd-line-200);
}
.po-life__pipsep.is-done { background: var(--sd-green-600); }

/* =============================================================================
   RECEIPT MIX — fraction + colour-coded breakdown (canonical V1)
   Used in GRN list / detail to show received-vs-ordered with variance detail.
   ============================================================================= */
.recv-mix {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.recv-mix__frac {
  font-family: var(--sd-mono);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--sd-ink-900);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  flex-shrink: 0;
}
.recv-mix__frac .denom {
  color: var(--sd-ink-400);
  font-weight: 500;
}
.recv-mix__breakdown {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--sd-mono);
  font-size: 11px;
  color: var(--sd-ink-500);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.recv-mix__dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.recv-mix__dot--ok    { background: var(--sd-green-600); }
.recv-mix__dot--short { background: var(--sd-red-600); }
.recv-mix__dot--dmg   { background: var(--sd-amber-500); }
.recv-mix__clean {
  color: var(--sd-green-600);
  font-weight: 500;
  font-family: var(--sd-font);
}
.recv-mix__na {
  color: var(--sd-ink-400);
  font-style: italic;
  font-family: var(--sd-font);
  font-size: 12px;
}

/* ---------- PO approval pill (sub) ---------- */
.pill-approval {
  font-family: var(--sd-mono);
  font-size: 10.5px;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid var(--sd-line-200);
  background: #fff;
  color: var(--sd-ink-700);
  white-space: nowrap;
}
.pill-approval--auto { color: var(--sd-green-600); border-color: #B6D9BD; background: var(--sd-green-100); }
.pill-approval--ho   { color: var(--sd-amber-text); border-color: #F1D5A2; background: var(--sd-amber-100); }
.pill-approval--rj   { color: var(--sd-red-600); border-color: #F1B4BD; background: var(--sd-red-100); }


.pill-sub {
  font-family: var(--sd-mono);
  font-size: 10.5px;
  font-variant-numeric: tabular-nums;
  color: var(--sd-ink-500);
  padding: 2px 5px;
  border-radius: 3px;
  background: var(--sd-bg-soft);
  border: 1px solid var(--sd-line-200);
  white-space: nowrap;
}
.pill-sub--warn { color: var(--sd-amber-text); border-color: #F1D5A2; background: var(--sd-amber-100); }

/* ---------- Side panel — variance peek (GRN list) ---------- */
/* uses the existing preview-panel CSS; just one extra block: */
.preview-panel__variance {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1px;
  background: var(--sd-line-200);
  border: 1px solid var(--sd-line-300);
  border-radius: var(--sd-radius-sm);
  overflow: hidden;
  margin-top: 8px;
}
.preview-panel__variance > div {
  background: #fff;
  padding: 10px 12px;
  text-align: center;
}
.preview-panel__variance .lbl {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sd-ink-400);
  margin-bottom: 3px;
}
.preview-panel__variance .val {
  font-family: var(--sd-mono);
  font-size: 18px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--sd-ink-900);
}
.preview-panel__variance .val--short { color: var(--sd-red-600); }
.preview-panel__variance .val--ok    { color: var(--sd-green-600); }

/* ---------- Detail · alt layout (left rail KPIs + sticky breakdown) ---------- */
.pid--alt .pid__layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 22px;
  align-items: start;
  margin-top: 14px;
}
.pid--alt .pid__rail {
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: sticky;
  top: 16px;
}
.pid--alt .pid__rail .pid__tile {
  background: #fff;
  border: 1px solid var(--sd-line-300);
  border-right: 1px solid var(--sd-line-300);
  border-radius: var(--sd-radius-md);
  padding: 14px 16px;
}
.pid--alt .pid__rail .pid__tile::before {
  top: 0; bottom: 0; left: 0; right: auto;
  width: 3px; height: auto;
  border-radius: 4px 0 0 4px;
}
.pid--alt .pid__main { min-width: 0; }
.pid--alt .pid__tiles { display: none; }
@media (max-width: 1279px) {
  .pid--alt .pid__layout { grid-template-columns: 1fr; }
  .pid--alt .pid__rail {
    position: static;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    background: #fff;
    border: 1px solid var(--sd-line-300);
    border-radius: var(--sd-radius-md);
    overflow: hidden;
  }
  .pid--alt .pid__rail .pid__tile {
    border: none;
    border-right: 1px solid var(--sd-line-200);
    border-radius: 0;
  }
  .pid--alt .pid__rail .pid__tile:last-child { border-right: none; }
  .pid--alt .pid__rail .pid__tile::before {
    top: auto; bottom: 0; left: 0; right: 0;
    width: auto; height: 3px;
    border-radius: 4px 4px 0 0;
  }
}


/* ---------- Logistics — deep slate (dispatch/trace) identity ---------- */

[data-module="logistics"] .kpiseg.is-active,
[data-module="logistics"] .view-chip.is-on,
[data-module="logistics"] .cons__primary {
  background: #334155;
  border-color: #334155;
}
[data-module="logistics"] .kpiseg.is-active:hover,
[data-module="logistics"] .view-chip.is-on:hover,
[data-module="logistics"] .cons__primary:hover {
  background: #1E293B;
  border-color: #1E293B;
}
[data-module="logistics"] .cons__chip.is-set:not(.is-date) {
  border-color: #334155;
  color: var(--sd-ink-900);
}
[data-module="logistics"] .cons__chip.is-set:not(.is-date):hover { border-color: #1E293B; }
[data-module="logistics"] .cons__chip.is-set:not(.is-date) .cons__chip-count {
  background: #334155;
}
[data-module="logistics"] .row.is-selected {
  background: #EEF2F7 !important;
}
[data-module="logistics"] .row.is-selected::before { background: #334155; }
[data-module="logistics"] .cons__row-stripe { background: #334155; }
