/* Container Tracker — Emballages Dura-Pak
   Visual language ported from the source workbook's colour code. */

:root {
  --bg: #f4f6f8;
  --panel: #ffffff;
  --panel-2: #fafbfc;
  --ink: #1b2430;
  --ink-2: #5b6875;
  --ink-3: #8b97a4;
  --ink-1: var(--ink);
  --muted: var(--ink-2);
  --soft: var(--panel-2);
  --line: #e2e6ea;
  --line-2: #eef1f4;
  --accent: #0d5c8c;
  --accent-soft: #e7f1f8;

  --red: #b4232a;
  --red-bg: #fde8e8;
  --orange: #96560c;
  --orange-bg: #fdefdc;
  --green: #1c6b3f;
  --green-bg: #e3f4e8;
  --pink-bg: #fce6ec;
  --pink: #93314e;
  --blue: #14568f;
  --blue-bg: #e8f0fa;
  --purple: #5b3a97;
  --purple-bg: #efe9fb;
  --amber: #8a5b00;
  --slate: #4a5967;
  --grey-bg: #eceff2;

  --shadow: 0 1px 2px rgba(20, 30, 44, .05), 0 4px 16px rgba(20, 30, 44, .05);
  --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #14181d;
    --panel: #1c2127;
    --panel-2: #21272e;
    --ink: #e8edf2;
    --ink-2: #a9b6c2;
    --ink-3: #7d8b98;
    --line: #2e363f;
    --line-2: #262d34;
    --accent: #62b0e0;
    --accent-soft: #1b2c38;
    --red: #ff9a9a;
    --red-bg: #45211f;
    --orange: #f3c07a;
    --orange-bg: #40301a;
    --green: #8fd9a8;
    --green-bg: #1e3527;
    --pink-bg: #3f2029;
    --pink: #f0a8bd;
    --blue: #8fc4f5;
    --blue-bg: #1c2c3d;
    --purple: #c3a9f2;
    --purple-bg: #2a2340;
    --amber: #e0b567;
    --slate: #9aa8b6;
    --grey-bg: #262d34;
    --shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .25);
  }
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 14px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.skip-link {
  position: fixed;
  z-index: 1200;
  top: 8px;
  left: 8px;
  padding: 9px 12px;
  border: 2px solid var(--accent);
  border-radius: 8px;
  background: var(--panel);
  color: var(--accent);
  font-weight: 750;
  text-decoration: none;
  box-shadow: var(--shadow);
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

/* ---------- shell ---------- */

header.top {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--panel);
  border-bottom: 1px solid var(--line);
  padding: 10px 18px 0;
}

.brand-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
}

.brand {
  font-size: 15px;
  font-weight: 650;
  letter-spacing: -.01em;
}

.brand span { color: var(--accent); }

.subtle {
  color: var(--ink-3);
  font-size: 12px;
}

.brand-row .spacer { flex: 1; }

nav.tabs {
  display: flex;
  gap: 2px;
  margin-top: 10px;
}

nav.tabs button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ink-2);
  font: inherit;
  font-weight: 550;
  padding: 8px 14px;
  border-radius: 8px 8px 0 0;
  border-bottom: 2px solid transparent;
  cursor: pointer;
}

nav.tabs button:hover { color: var(--ink); background: var(--panel-2); }

nav.tabs button[aria-selected="true"] {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

main { padding: 18px; max-width: 1900px; }

.view[hidden] { display: none; }

/* ---------- generic panel ---------- */

.panel {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow);
  overflow: hidden;
}

.panel > h2 {
  margin: 0;
  padding: 11px 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ink-2);
  border-bottom: 1px solid var(--line-2);
  background: var(--panel-2);
}

.panel .note {
  padding: 8px 14px 12px;
  color: var(--ink-3);
  font-size: 12px;
}

.sync-zoho-warning {
  border: 1px solid color-mix(in srgb, var(--orange) 42%, var(--line));
  border-radius: 8px;
  background: color-mix(in srgb, var(--orange-bg) 78%, var(--panel));
  color: var(--ink-2);
}

.sync-zoho-warning b { color: var(--orange); }

/* ---------- dashboard: the opening sentence ---------- */

/* Set wider than body text and given room to breathe — it is the first thing read
   and it carries what no tile can: where everything is, and what lands next. */
.lede {
  margin: 2px 0 18px;
  font-size: 15.5px;
  line-height: 1.65;
  color: var(--ink-2);
  max-width: 82ch;
}
.lede b { color: var(--ink); font-weight: 640; }
.lede .warnink { color: var(--orange); }
.lede a { font-family: var(--mono); font-size: 14px; }
.lede .subtle { font-size: 14px; }

/* ---------- KPI cards ---------- */

/* One row of six. They were thirteen numbers across two blocks; the duplicates are
   gone, and the survivors get the width to be read at a glance. */
.statrow, .kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}

.kpi {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow);
  padding: 13px 15px;
  cursor: default;
}

.kpi.clickable { cursor: pointer; }
.kpi.clickable:hover { border-color: var(--accent); }

.kpi .label {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.kpi .value {
  font-size: 27px;
  font-weight: 660;
  letter-spacing: -.02em;
  margin-top: 4px;
  font-variant-numeric: tabular-nums;
}

.kpi .value.sm { font-size: 22px; }
.kpi .value.xs { font-size: 19px; letter-spacing: -.01em; }
.kpi .foot { font-size: 12px; color: var(--ink-2); margin-top: 2px; }
.kpi.alarm .value { color: var(--red); }
.kpi.warn .value { color: var(--orange); }
.kpi.good .value { color: var(--green); }

/* ---------- dashboard grid ---------- */

.dash-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 16px;
  align-items: start;
}

.dash-grid .wide { grid-column: 1 / -1; }

/* The two panels that earn a place on the first screen: what is coming, what moved. */
.dash-two {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 16px;
  align-items: start;
  margin: 16px 0;
}

#checkPanel { margin-bottom: 16px; }

/* ---------- folds ----------
   Reference material — five breakdown tables, the yard ledger, the year — used to
   sit open under the day's work and made the page eleven screens long. Folded, it
   is a click away and the page opens on what needs doing. */
.fold {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  box-shadow: var(--shadow);
  margin-bottom: 12px;
  overflow: hidden;
}
.fold > summary {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  padding: 13px 16px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.fold > summary::-webkit-details-marker { display: none; }
.fold > summary::before {
  content: "▸";
  color: var(--ink-3);
  font-size: 11px;
  transition: transform .15s ease;
}
.fold[open] > summary::before { transform: rotate(90deg); }
.fold > summary:hover { background: var(--panel-2); }
.fold .foldtitle {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.fold > summary .subtle { font-size: 12px; }
.fold[open] > summary { border-bottom: 1px solid var(--line-2); background: var(--panel-2); }
.fold > .panel,
.fold > .dash-grid { border: 0; border-radius: 0; box-shadow: none; margin: 0; }
.fold > .dash-grid { padding: 16px; background: var(--bg); }

/* ---------- received-by-week chart ----------
   One series, so no legend — the fold's own title names it. Bars are thin with a
   rounded top and sit on a shared baseline; the axis is month ticks rather than a
   label under all 53. */
.wkchart { padding: 12px 16px 4px; }
.wkreadout {
  font-size: 12.5px;
  color: var(--ink-2);
  height: 20px;
  margin-bottom: 6px;
}
.wkbars {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 120px;
  border-bottom: 1px solid var(--line);
}
.wkbar {
  flex: 1;
  height: 100%;
  display: flex;
  align-items: flex-end;
  min-width: 4px;
  cursor: default;
}
.wkbar > span {
  width: 100%;
  background: var(--accent);
  border-radius: 3px 3px 0 0;
  transition: background .12s ease;
}
.wkbar:hover > span { background: var(--ink); }
/* This week, marked even when nothing landed in it — a "you are here" that
   disappears on a quiet week is worse than none. */
.wkbar.now > span { background: var(--orange); min-height: 2px; }
.wkaxis {
  position: relative;
  height: 18px;
  margin-top: 4px;
  font-size: 11px;
  color: var(--ink-3);
}
.wkaxis span { position: absolute; transform: translateX(-2px); }

/* ---------- data tables (dashboard) ---------- */

table.data {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}

table.data th,
table.data td {
  padding: 6px 14px;
  text-align: left;
  border-bottom: 1px solid var(--line-2);
  white-space: nowrap;
}

table.data thead th {
  font-size: 11px;
  font-weight: 650;
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: .04em;
}

table.data td.num,
table.data th.num { text-align: right; }

table.data tbody tr:last-child td { border-bottom: 0; }
table.data tr.zebra td { background: var(--panel-2); }

table.data tr.total td {
  font-weight: 650;
  border-top: 1px solid var(--line);
}

table.data tr.leak td { color: var(--red); font-weight: 600; }
table.data tr.leak.ok td { color: var(--ink-3); font-weight: 400; }

table.data tr.rowlink { cursor: pointer; }
table.data tr.rowlink:hover td { background: var(--accent-soft); }

.chip {
  display: inline-block;
  min-width: 22px;
  text-align: center;
  padding: 1px 7px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  background: var(--grey-bg);
  color: var(--ink-2);
}

.chip.red { background: var(--red-bg); color: var(--red); }
.chip.orange { background: var(--orange-bg); color: var(--orange); }
.chip.green { background: var(--green-bg); color: var(--green); }
.chip.zero { background: transparent; color: var(--ink-3); font-weight: 400; }

/* bar cell for weekly views */
.bar {
  display: block;
  height: 8px;
  border-radius: 4px;
  background: var(--accent);
  opacity: .75;
  min-width: 2px;
}

td.barcell { width: 40%; padding-right: 18px; }

/* ---------- toolbar ---------- */

.toolbar {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.toolbar .grow { flex: 1; min-width: 40px; }

.multi-select-filter { position: relative; min-width: 152px; max-width: 210px; }
.multi-select-filter > summary {
  display: flex;
  min-height: 34px;
  align-items: center;
  gap: 7px;
  padding: 6px 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--panel);
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.multi-select-filter > summary::-webkit-details-marker { display: none; }
.multi-select-filter > summary:hover { border-color: var(--ink-3); }
.multi-select-filter > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.multi-select-filter.has-selection > summary { border-color: color-mix(in srgb, var(--accent) 52%, var(--line)); background: var(--accent-soft); }
.multi-select-filter > summary > span:first-child { min-width: 0; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-select-count { display: inline-grid; min-width: 20px; height: 20px; place-items: center; padding: 0 5px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 10px; font-weight: 750; }
.multi-select-count[hidden] { display: none; }
.multi-select-chevron { color: var(--ink-3); transition: transform .15s ease; }
.multi-select-filter[open] .multi-select-chevron { transform: rotate(180deg); }
.multi-select-menu { position: absolute; z-index: 52; top: calc(100% + 6px); left: 0; width: min(270px, calc(100vw - 28px)); padding: 7px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); box-shadow: 0 16px 42px rgba(10, 18, 28, .22); }
.alert-multi-filter .multi-select-menu { width: min(310px, calc(100vw - 28px)); }
.multi-select-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 5px 6px 8px; border-bottom: 1px solid var(--line-2); }
.multi-select-head > span { display: grid; }
.multi-select-head b { font-size: 11px; }
.multi-select-head small { color: var(--ink-3); font-size:10px; }
.multi-select-head button { appearance: none; padding: 3px 5px; border: 0; background: transparent; color: var(--accent); font: inherit; font-size: 10px; font-weight: 700; cursor: pointer; }
.multi-select-head button:disabled { color: var(--ink-3); cursor: default; }
.multi-select-options { display: grid; gap: 2px; max-height: 270px; padding-top: 6px; overflow-y: auto; }
.multi-select-option { display: flex; min-height: 32px; align-items: center; gap: 9px; padding: 5px 7px; border-radius: 7px; color: var(--ink-2); cursor: pointer; }
.multi-select-option:hover { background: var(--panel-2); color: var(--ink); }
.multi-select-option:has(input:checked) { background: var(--accent-soft); color: var(--accent); font-weight: 650; }
.multi-select-option input { width: 15px; height: 15px; margin: 0; accent-color: var(--accent); }
.multi-select-option span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

#fSupplier { min-width: 160px; }
#fAlert { min-width: 176px; }

input[type="search"],
input[type="text"],
input[type="date"],
input[type="number"],
select,
textarea {
  font: inherit;
  color: var(--ink);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 6px 8px;
}

input:focus-visible,
select:focus-visible,
button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.btn {
  appearance: none;
  font: inherit;
  font-weight: 550;
  color: var(--ink);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 6px 12px;
  cursor: pointer;
}

.btn:hover { border-color: var(--ink-3); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn.primary:hover { filter: brightness(1.08); }
.btn.danger { color: var(--red); }
.btn.small { padding: 3px 8px; font-size: 12px; }

label.check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink-2);
  white-space: nowrap;
}

.pill-filter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--accent-soft);
  color: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 20px;
  padding: 3px 6px 3px 11px;
  font-size: 12px;
  font-weight: 600;
}

.pill-filter button {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  line-height: 1;
  padding: 2px 4px;
}

/* ---------- tracker grid ---------- */

.grid-wrap {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow);
  overflow: auto;
  max-height: calc(100vh - 210px);
}

table.grid {
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
  width: max-content;
  min-width: 100%;
}

table.grid thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--panel-2);
  border-bottom: 1px solid var(--line);
  padding: 7px 8px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ink-2);
  white-space: nowrap;
  text-align: left;
  cursor: default;
  user-select: none;
}

table.grid thead th[data-col-key] { padding-right: 14px; }
.grid-head-label { display: block; overflow: hidden; text-overflow: ellipsis; }
.grid-sort-button {
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-align: left;
  text-transform: inherit;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}
.grid-sort-button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
.grid-col-resizer {
  position: absolute;
  top: 0;
  right: -5px;
  z-index: 6;
  width: 11px;
  height: 100%;
  cursor: col-resize;
  touch-action: none;
}
.grid-col-resizer::after {
  content: '';
  position: absolute;
  top: 20%;
  bottom: 20%;
  left: 5px;
  width: 2px;
  border-radius: 2px;
  background: transparent;
}
table.grid thead th:hover .grid-col-resizer::after,
.grid-col-resizer:hover::after { background: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.grid-col-resizer:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
.grid-col-resizer:focus-visible::after,
.grid-column-resizing .grid-col-resizer::after { background: var(--accent); }
.grid-column-resizing,
.grid-column-resizing * { cursor: col-resize !important; user-select: none !important; }

table.grid.columns-sized { table-layout: fixed; }
table.grid.columns-sized th,
table.grid.columns-sized td { overflow: hidden; }
table.grid.columns-sized td input,
table.grid.columns-sized td select { min-width: 0 !important; text-overflow: ellipsis; }
table.grid.columns-sized .issue-list { overflow: hidden; }

table.grid thead th.calc { color: var(--ink-3); font-style: italic; }
table.grid thead th .sort { color: var(--accent); }

table.grid td {
  border-bottom: 1px solid var(--line-2);
  padding: 0;
  vertical-align: middle;
  white-space: nowrap;
}

table.grid tbody tr:hover td { background: var(--panel-2); }

table.grid td.calc,
table.grid td.rowno {
  padding: 4px 9px;
  color: var(--ink-3);
  font-style: italic;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

table.grid td.rowno { font-style: normal; font-size: 11.5px; text-align: right; }

table.grid td.cncp {
  padding: 4px 9px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink-3);
  font-style: italic;
}

table.grid td input,
table.grid td select {
  border: 0;
  background: transparent;
  border-radius: 0;
  width: 100%;
  padding: 5px 8px;
  font: inherit;
  color: inherit;
}

table.grid td input:hover,
table.grid td select:hover { background: var(--accent-soft); }

/* keep empty date columns quiet — the yyyy-mm-dd placeholder is pure noise at 90 rows */
table.grid td input.empty-date { color: transparent; }
table.grid td input.empty-date:hover,
table.grid td input.empty-date:focus { color: var(--ink-3); }

table.grid td input:focus,
table.grid td select:focus {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
  background: var(--panel);
}

td.eta-vancouver-exception { box-shadow: inset 3px 0 0 var(--orange); }
td.eta-vancouver-exception.is-critical { background: var(--red-bg); box-shadow: inset 3px 0 0 var(--red); }
td.eta-vancouver-exception.is-warning { background: var(--orange-bg); }
table.grid tbody tr:hover td.eta-vancouver-exception.is-critical { background: color-mix(in srgb, var(--red-bg) 82%, var(--panel-2)); }
table.grid tbody tr:hover td.eta-vancouver-exception.is-warning { background: color-mix(in srgb, var(--orange-bg) 82%, var(--panel-2)); }
.eta-vancouver-cell { display: grid; min-width: 145px; }
table.grid td.eta-vancouver-exception input { padding-bottom: 1px; font-weight: 650; }
td.eta-vancouver-exception.is-critical input,
td.eta-vancouver-exception.is-critical .eta-vancouver-cell > span { color: var(--red); }
td.eta-vancouver-exception.is-warning input,
td.eta-vancouver-exception.is-warning .eta-vancouver-cell > span { color: var(--orange); }
.eta-vancouver-cell > span {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 8px 4px;
  font-size:10px;
  font-weight: 720;
  letter-spacing: .01em;
}
.eta-vancouver-cell > span i { width: 5px; height: 5px; flex: 0 0 auto; border-radius: 50%; background: currentColor; }

table.grid td.sticky-l {
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--panel);
  border-right: 1px solid var(--line);
}

table.grid thead th.sticky-l {
  left: 0;
  z-index: 4;
  border-right: 1px solid var(--line);
}

table.grid tbody tr:hover td.sticky-l { background: var(--panel-2); }

.col-container input {
  font-family: var(--mono);
  font-size: 12.5px;
  letter-spacing: .02em;
}

.col-container.invalid input { color: var(--red); font-weight: 700; }
.col-container.invalid { background: var(--red-bg); }

/* status + supplier + flag colouring, per the workbook's colour code */
td.status select { font-weight: 650; }
td.status.s-booked select { color: var(--slate); font-weight: 500; }
td.status.s-boat { background: var(--blue-bg); }
td.status.s-boat select { color: var(--blue); }
td.status.s-discharged select { color: var(--amber); }
td.status.s-train select { color: var(--red); }
td.status.s-yard { background: var(--purple-bg); }
td.status.s-yard select { color: var(--purple); }
td.status.s-received { background: var(--green-bg); }
td.status.s-received select { color: var(--green); }
td.status.s-closed { background: var(--green-bg); }
td.status.s-closed select { color: var(--ink-3); }

td.flag.yes { background: var(--green-bg); }
td.flag.yes select { color: var(--green); font-weight: 600; }
td.flag.missing { background: var(--pink-bg); }
td.flag.missing select { color: var(--pink); }

td.alert {
  padding: 4px 9px;
  font-size: 12px;
  font-weight: 600;
}

td.alert.a-red { background: var(--red-bg); color: var(--red); }
td.alert.a-orange { background: var(--orange-bg); color: var(--orange); }
td.alert.a-info { color: var(--ink-2); font-weight: 500; }
td.alert.a-ok { color: var(--ink-3); font-weight: 400; }

td.calc.neg { color: var(--red); font-style: normal; font-weight: 600; }
td.calc.soon { color: var(--orange); font-style: normal; font-weight: 600; }
td.calc.money { color: var(--ink-2); }

td.actions { padding: 2px 6px; text-align: center; }

td.actions button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ink-3);
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 4px 6px;
  border-radius: 5px;
}

td.actions button:hover { color: var(--red); background: var(--red-bg); }

.empty {
  padding: 40px 14px;
  text-align: center;
  color: var(--ink-3);
}

/* ---------- lists / settings ---------- */

#view-lists { max-width: 1380px; margin: 0 auto; }

.settings-page-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 2px 0 20px;
}
.settings-page-heading h1 { margin: 0; font-size: 29px; line-height: 1.1; letter-spacing: -.035em; }
.settings-page-heading p { margin: 7px 0 0; color: var(--ink-2); }
.settings-save-state { display: flex; align-items: center; gap: 10px; color: var(--green); }
.settings-save-state > span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: var(--green-bg); font-weight: 800; }
.settings-save-state div { display: grid; gap: 1px; }
.settings-save-state b { font-size: 12px; }
.settings-save-state small { color: var(--ink-3); font-size: 10.5px; }

.settings-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); align-items: start; gap: 22px; }
.settings-index {
  position: sticky;
  top: 76px;
  display: grid;
  gap: 3px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--panel);
  box-shadow: var(--shadow);
}
.settings-index-label { padding: 7px 10px 6px; color: var(--ink-3); font-size:10.5px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.settings-index a {
  min-height: 40px;
  display: flex;
  align-items: center;
  padding: 8px 10px;
  border-left: 2px solid transparent;
  border-radius: 7px;
  color: var(--ink-2);
  font-size: 12px;
  font-weight: 620;
  text-decoration: none;
}
.settings-index a:hover { color: var(--ink); background: var(--panel-2); }
.settings-index a[aria-current="true"] { color: var(--accent); border-left-color: var(--accent); background: var(--accent-soft); }

.settings-content { display: grid; gap: 14px; min-width: 0; }
.settings-section {
  scroll-margin-top: 82px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--panel);
  box-shadow: var(--shadow);
}
.settings-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 17px; }
.settings-section-head h2 { margin: 0; font-size: 18px; line-height: 1.2; letter-spacing: -.015em; }
.settings-section-head p { margin: 5px 0 0; color: var(--ink-2); font-size: 12px; }
.settings-section-head .syncbar {
  flex: 0 1 auto;
  max-width: 55%;
  padding: 7px 10px;
  border: 1px solid var(--line-2);
  border-radius: 8px;
  font-size: 10.5px;
}
.settings-section-head .syncbar.on { border-color: color-mix(in srgb, var(--green) 28%, var(--line)); }
.settings-section-head .syncbar .dot { width: 7px; height: 7px; margin-top: 4px; }
.settings-section-head .syncbar div { line-height: 1.45; }

.settings-control-grid { display: grid; gap: 12px; }
.settings-control-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.settings-control-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.settings-field { display: grid; gap: 7px; min-width: 0; color: var(--ink-2); font-size: 11px; font-weight: 650; }
.settings-field > select,
.settings-field > input,
.settings-input-prefix { width: 100%; min-width: 0; min-height: 43px; }
.settings-field > select,
.settings-field > input { padding: 9px 11px; background: var(--panel-2); }
.settings-input-prefix { display: flex; align-items: stretch; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: var(--panel-2); }
.settings-input-prefix > span { display: grid; place-items: center; padding: 0 10px; border-right: 1px solid var(--line); color: var(--ink-3); font-size: 10px; font-weight: 750; }
.settings-input-prefix input { width: 100%; min-width: 0; border: 0; border-radius: 0; background: transparent; }
.settings-input-prefix:focus-within { outline: 2px solid var(--accent); outline-offset: 1px; }
.settings-input-prefix input:focus-visible { outline: 0; }

.settings-information { display: grid; gap: 7px; margin-top: 13px; }
.settings-information-row { display: flex; align-items: center; gap: 10px; min-height: 42px; padding: 8px 10px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--panel-2); }
.settings-information-row > div { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
.settings-information-row b { flex: none; font-size: 11px; }
.settings-information-row div > span { color: var(--ink-2); font-size: 10.5px; }
.settings-info-icon { display: grid; place-items: center; flex: none; width: 26px; height: 26px; border-radius: 7px; color: var(--accent); background: var(--accent-soft); font-weight: 800; }
.settings-cost-note { margin: 10px 2px 0; color: var(--ink-2); font-size: 11px; }
.settings-privacy-note { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--line-2); color: var(--ink-3); font-size: 10.5px; }

.settings-warning { display: flex; gap: 10px; align-items: flex-start; margin-top: 13px; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--orange) 38%, var(--line)); border-radius: 8px; color: var(--orange); background: var(--orange-bg); font-size: 11px; }
.settings-warning > span { display: grid; place-items: center; flex: none; width: 19px; height: 19px; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; font-weight: 800; }

.settings-data-summary { display: grid; grid-template-columns: 145px minmax(220px, 1fr) auto; gap: 12px; align-items: center; padding: 13px; border: 1px solid var(--line-2); border-radius: 9px; background: var(--panel-2); }
.settings-data-summary > div:not(.settings-data-actions) { display: grid; gap: 3px; }
.settings-data-summary span { color: var(--ink-3); font-size: 10px; }
.settings-data-summary b { overflow-wrap: anywhere; font-size: 12px; }
.settings-data-actions { display: flex; gap: 8px; justify-content: flex-end; }
.settings-data-actions .btn { min-height: 39px; }
.settings-backup-surface { margin-top: 11px; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.settings-backup-title { display: flex; align-items: center; gap: 10px; padding: 11px 13px; border-bottom: 1px solid var(--line-2); background: var(--panel-2); }
.settings-backup-title > div { display: grid; gap: 1px; }
.settings-backup-title b { font-size: 12px; }
.settings-backup-title small { color: var(--ink-3); font-size: 10px; }
.settings-backup-surface .note { padding: 12px 13px; color: var(--ink-2); }
.settings-danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 11px; padding: 13px; border: 1px solid color-mix(in srgb, var(--red) 34%, var(--line)); border-radius: 9px; background: var(--red-bg); }
.settings-danger-zone > div { display: grid; gap: 3px; }
.settings-danger-zone b { color: var(--red); font-size: 12px; }
.settings-danger-zone span { color: var(--ink-2); font-size: 10.5px; }
.settings-danger-zone .btn { flex: none; min-height: 39px; border-color: color-mix(in srgb, var(--red) 55%, var(--line)); background: transparent; }

.settings-lists-head { align-items: flex-end; }
.settings-list-search { display: grid; gap: 5px; flex: 0 0 225px; color: var(--ink-3); font-size:10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.settings-list-search input { min-height: 39px; width: 100%; padding: 8px 10px; text-transform: none; letter-spacing: normal; }
.settings-lists-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.settings-list-card { min-width: 0; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; background: var(--panel-2); }
.settings-list-card > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 9px 11px; border-bottom: 1px solid var(--line-2); background: var(--panel); }
.settings-list-card h3 { margin: 0; font-size: 12px; }
.settings-list-count { color: var(--ink-3); font-size: 10px; font-variant-numeric: tabular-nums; }

ul.listvals {
  list-style: none;
  margin: 0;
  padding: 5px 0;
}

ul.listvals li {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 35px;
  padding: 4px 10px;
  border-bottom: 1px solid var(--line-2);
}

ul.listvals li .v { flex: 1; }
ul.listvals li .used { color: var(--ink-3); font-size: 10px; font-variant-numeric: tabular-nums; }
.settings-list-card ul.listvals .btn { opacity: .65; }
.settings-list-card ul.listvals li:hover .btn,
.settings-list-card ul.listvals .btn:focus-visible { opacity: 1; }

.addrow {
  display: flex;
  gap: 6px;
  padding: 9px 10px 10px;
}

.addrow input { flex: 1; min-width: 40px; }
.settings-list-empty { padding: 28px 14px; border: 1px dashed var(--line); border-radius: 9px; color: var(--ink-3); text-align: center; }

@media (max-width: 1050px) {
  .settings-layout { grid-template-columns: 1fr; }
  .settings-index { position: sticky; top: 56px; z-index: 8; grid-template-columns: repeat(5, minmax(120px, 1fr)); overflow-x: auto; padding: 6px; }
  .settings-index-label { display: none; }
  .settings-index a { justify-content: center; border-left: 0; border-bottom: 2px solid transparent; white-space: nowrap; }
  .settings-index a[aria-current="true"] { border-bottom-color: var(--accent); }
}

@media (max-width: 760px) {
  .settings-page-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
  .settings-page-heading h1 { font-size: 26px; }
  .settings-save-state { align-self: stretch; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
  .settings-section { padding: 15px; }
  .settings-section-head { flex-direction: column; gap: 10px; }
  .settings-section-head .syncbar { max-width: none; width: 100%; }
  .settings-control-grid.two,
  .settings-control-grid.three,
  .settings-data-summary,
  .settings-lists-grid { grid-template-columns: 1fr; }
  .settings-information-row > div { align-items: flex-start; flex-direction: column; gap: 1px; }
  .settings-data-actions { justify-content: stretch; }
  .settings-data-actions .btn { flex: 1; }
  .settings-danger-zone { align-items: stretch; flex-direction: column; }
  .settings-danger-zone .btn { width: 100%; }
  .settings-lists-head { align-items: stretch; }
  .settings-list-search { flex-basis: auto; width: 100%; }
}

@media (max-width: 520px) {
  .settings-index { grid-template-columns: repeat(4, max-content); justify-content: start; }
  .settings-index a { min-height: 38px; padding: 7px 11px; }
  .settings-section { padding: 13px; }
  .settings-data-actions { flex-direction: column; }
}

/* ---------- help ----------
   Eighteen sections had accumulated in the order they were built. Now grouped, with a
   jump-to strip, because a manual nobody can navigate is a manual nobody reads. */

.help {
  max-width: 900px;
  padding: 4px 18px 24px;
}

.help h3 {
  font-size: 13px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ink-2);
  margin: 26px 0 8px;
  padding-top: 4px;
  border-top: 1px solid var(--line-2);
}
.help h3:first-of-type { border-top: 0; }
/* The sticky header must not cover a heading you just jumped to. It wraps to two rows
   on a narrow window, where it measures ~118px, so the offset clears that. */
.help [id] { scroll-margin-top: 140px; }

.helplede {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-2) !important;
  max-width: 78ch;
}

.helpnav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  padding: 12px 14px;
  margin: 16px 0 4px;
  background: var(--panel-2);
  border: 1px solid var(--line-2);
  border-radius: 10px;
  font-size: 12.5px;
}
.helpnav b {
  color: var(--ink-3);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-right: 2px;
}
.helpnav a {
  color: var(--accent);
  text-decoration: none;
  padding: 2px 8px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--panel);
  white-space: nowrap;
}
.helpnav a:hover { border-color: var(--accent); background: var(--accent-soft); }

/* ---- the journey ----
   The seven statuses only mean anything against the physical chain, so they are shown
   as the chain: reused status pills in route order, with what happens at each stop. */
.journey {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 4px;
}
.jleg {
  display: flex;
  flex-direction: column;
  gap: 2px;
  /* sized so all seven fit one row inside the 900px help column; below that the
     strip wraps and the connecting arrows are switched off rather than left
     pointing into empty space */
  flex: 1 1 104px;
  min-width: 100px;
  padding: 10px 12px;
  background: var(--panel-2);
  border: 1px solid var(--line-2);
  border-radius: 10px;
  font-size: 11.5px;
  color: var(--ink-3);
  position: relative;
}
.jleg b { color: var(--ink-2); font-size: 12.5px; font-weight: 620; }
.jleg .statuspill { align-self: flex-start; margin-bottom: 3px; font-size: 11px; padding: 1px 7px; }
/* the arrow between legs, hidden on the last and wherever a row wraps */
.jleg::after {
  content: "›";
  position: absolute;
  right: -8px; top: 50%;
  transform: translateY(-50%);
  color: var(--ink-3);
  font-size: 15px;
  z-index: 1;
}
.jleg:last-child::after { content: none; }
@media (max-width: 820px) { .jleg::after { content: none; } }

/* ---- carrier state pills ---- */
.okpill, .waitpill, .offpill {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 1px 6px;
  border-radius: 20px;
  margin-right: 6px;
  vertical-align: 1px;
}
.okpill { background: var(--green-bg); color: var(--green); }
.waitpill { background: var(--orange-bg); color: var(--orange); }
.offpill { background: var(--grey-bg); color: var(--ink-3); }

/* the calendar's colour key, named in prose */
.ev-ink-mtl { color: var(--accent); }
.ev-ink-van { color: var(--purple); }
.ev-ink-lfd { color: var(--red); }
.ev-ink-etd { color: var(--slate); }

/* ---- lists that carry the instructions ---- */
.help ol.steps { padding-left: 22px; }
.help ol.steps li { margin-bottom: 6px; }
.help ul.tight { padding-left: 20px; margin: 6px 0; }
.help ul.tight li { margin-bottom: 5px; }

/* a useful aside — quieter than helpnote, which is reserved for money */
.helptip {
  background: var(--panel-2);
  border-left: 3px solid var(--line);
  padding: 9px 12px;
  border-radius: 0 6px 6px 0;
  font-size: 13px;
}

/* reference tables, folded until asked for */
.helpfold { margin: 10px 0; box-shadow: none; }
.helpfold .foldbody { padding: 4px 14px 14px; }
.helpfold .foldbody p { font-size: 13px; }
.helpfold table.data { margin-top: 4px; }

/* a command or a field list, set apart from the prose around it */
.helpkeys {
  font-family: var(--mono);
  font-size: 12.5px;
  background: var(--panel-2);
  border-left: 3px solid var(--accent);
  padding: 8px 12px;
  border-radius: 0 6px 6px 0;
  color: var(--ink) !important;
}

/* the one thing in a section that costs money if ignored */
.helpnote {
  background: var(--orange-bg);
  border-left: 3px solid var(--orange);
  padding: 9px 12px;
  border-radius: 0 6px 6px 0;
}
.helpnote b { color: var(--ink); }

.help p, .help li { color: var(--ink-2); }
.help table.data th, .help table.data td { white-space: normal; padding: 6px 12px 6px 0; }
.help table.data td:first-child { white-space: nowrap; font-weight: 600; color: var(--ink); }
.help code {
  font-family: var(--mono);
  font-size: 12px;
  background: var(--grey-bg);
  padding: 1px 5px;
  border-radius: 4px;
}

.toast {
  position: fixed;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: var(--ink);
  color: var(--bg);
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 550;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s, transform .18s;
  z-index: 90;
}

.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }

/* ---------- shipment intake ---------- */

.intake-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 16px;
}

.intake-step {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel-2);
  color: var(--ink-3);
}

.intake-step > span {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  flex: none;
  border-radius: 50%;
  background: var(--grey-bg);
  font-size: 12px;
  font-weight: 750;
}

.intake-step div { display: grid; min-width: 0; }
.intake-step b { color: var(--ink-2); font-size: 12.5px; }
.intake-step small { font-size: 10.5px; }
.intake-step.active { border-color: color-mix(in srgb, var(--accent) 38%, var(--line)); background: var(--accent-soft); }
.intake-step.active > span { background: var(--accent); color: #fff; }
.intake-step.active b { color: var(--accent); }

.intake-layout {
  display: grid;
  grid-template-columns: minmax(380px, .85fr) minmax(520px, 1.15fr);
  gap: 16px;
  align-items: start;
}
.intake-layout.review-open .intake-queue-panel { grid-column: 1 / -1; }

.intake-form { display: grid; gap: 11px; padding: 14px; }
.intake-label { color: var(--ink-2); font-size: 12px; font-weight: 650; }
.intake-form > input[type="text"] { width: 100%; }

.intake-drop {
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 27px 18px;
  border: 2px dashed color-mix(in srgb, var(--accent) 45%, var(--line));
  border-radius: 10px;
  background: var(--accent-soft);
  color: var(--ink-2);
  text-align: center;
  cursor: pointer;
  transition: border-color .15s, background .15s, transform .15s;
}

.intake-drop:hover,
.intake-drop.dragging,
.intake-drop:focus-visible {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent-soft) 72%, var(--panel));
}
.intake-drop.dragging { transform: scale(1.005); }
.intake-drop b { color: var(--accent); font-size: 14px; }
.intake-drop span:not(.intake-drop-icon) { font-size: 12.5px; }
.intake-drop small { color: var(--ink-3); font-size: 11px; }
.intake-drop-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 2px;
  border-radius: 50%;
  background: var(--panel);
  color: var(--accent);
  font-size: 21px;
  line-height: 1;
  box-shadow: var(--shadow);
}

.intake-selection { display: grid; gap: 6px; }
.intake-selection:empty { display: none; }
.intake-selected-file,
.intake-stored-file {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid var(--line-2);
  border-radius: 7px;
  background: var(--panel-2);
}
.intake-file-name { overflow: hidden; color: var(--ink); font-size: 12.5px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.intake-file-meta { color: var(--ink-3); font-size: 10.5px; }
.intake-remove { appearance: none; border: 0; background: transparent; color: var(--ink-3); cursor: pointer; font: inherit; font-size: 18px; }
.intake-remove:hover { color: var(--red); }

.intake-actions { display: flex; align-items: center; gap: 10px; }
.intake-actions .subtle { flex: 1; }
.intake-progress-copy { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 5px; color: var(--ink-2); font-size: 11.5px; }

.intake-empty { padding: 28px 18px; color: var(--ink-3); text-align: center; }
.intake-empty b { display: block; margin-bottom: 4px; color: var(--ink-2); font-size: 13px; }
.intake-server-offline { margin: 14px; padding: 12px; border-radius: 8px; background: var(--orange-bg); color: var(--orange); font-size: 12px; }

.intake-batch + .intake-batch { border-top: 1px solid var(--line); }
.intake-batch-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px 8px;
}
.intake-batch-head > div:first-child { flex: 1; min-width: 0; }
.intake-batch-title { display: block; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.intake-batch-meta { margin-top: 2px; color: var(--ink-3); font-size: 11px; }
.intake-batch-files { display: grid; gap: 5px; padding: 0 14px 13px; }
.intake-stored-file { padding: 7px 9px; }
.intake-stored-file .btn { white-space: nowrap; }
.intake-file-pending { color: var(--orange); font-size: 11px; font-weight: 650; }
.intake-batch-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px 13px;
}
.intake-batch-actions span { color: var(--ink-3); font-size: 10.5px; }
.intake-analysis-error { margin: 0 14px 12px; padding: 9px 10px; border-radius: 7px; background: var(--orange-bg); color: var(--orange); font-size: 11.5px; }
.intake-analysis-error code { color: inherit; }
.intake-review-host { border-top: 1px solid var(--line); background: color-mix(in srgb, var(--panel-2) 68%, var(--panel)); }

/* Shipment document packages: compact, traceable and useful from intake through
   delivery. The original file is immutable; these controls edit metadata only. */
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.sync-status-decision select {
  min-width: 220px;
  border-color: var(--accent);
  background: var(--accent-soft);
  font-weight: 700;
}
.intake-mailbox { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; margin-bottom: 12px; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line)); border-radius: 10px; background: color-mix(in srgb, var(--accent-soft) 44%, var(--panel)); }
.intake-mailbox-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: var(--accent-soft); color: var(--accent); }
.intake-mailbox-mark svg, .settings-mailbox-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.intake-mailbox-copy { display: grid; min-width: 0; }
.intake-mailbox-copy b { font-size: 12.5px; }
.intake-mailbox-copy span { overflow: hidden; color: var(--ink-3); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.intake-mailbox-state { padding: 4px 7px; border-radius: 999px; background: var(--orange-bg); color: var(--orange); font-size:10.5px; font-weight: 750; }
.intake-mailbox-state.connected { background: var(--green-bg); color: var(--green); }
.intake-mailbox-state.ready { background: var(--blue-bg); color: var(--blue); }
.intake-link-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.intake-link-fields .intake-label { display: grid; gap: 5px; }
.intake-link-fields .intake-label > span { display: flex; justify-content: space-between; gap: 8px; }
.intake-link-fields .intake-label small { color: var(--ink-3); font-size:10.5px; font-weight: 500; }
.intake-link-fields input { width: 100%; min-width: 0; }
.intake-batch { background: var(--panel); }
.intake-batch-source { display: flex; align-items: center; gap: 7px; margin-bottom: 3px; }
.intake-batch-source span { color: var(--accent); font-size:10.5px; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.intake-batch-source small { color: var(--ink-3); font-size:10.5px; }
.intake-batch-links { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.intake-batch-links span { padding: 2px 5px; border: 1px solid var(--line); border-radius: 4px; color: var(--ink-3); font: 9.5px/1.35 var(--mono); }
.intake-completeness { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; margin: 3px 14px 10px; padding: 8px 10px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel-2); }
.intake-completeness > div:first-child { display: grid; }
.intake-completeness b { color: var(--ink-2); font-size: 10.5px; }
.intake-completeness span { color: var(--ink-3); font-size:10.5px; }
.intake-completeness strong { align-self: center; color: var(--orange); font: 750 12px/1 var(--mono); }
.intake-completeness.complete strong { color: var(--green); }
.intake-completeness-track { grid-column: 1 / -1; height: 4px; overflow: hidden; border-radius: 99px; background: var(--line); }
.intake-completeness-track i { display: block; height: 100%; border-radius: inherit; background: var(--orange); }
.intake-completeness.complete .intake-completeness-track i { background: var(--green); }
.intake-file-head { display: grid; grid-template-columns: minmax(155px, 1.3fr) minmax(145px, 1fr) minmax(105px, .75fr) 74px 112px; gap: 8px; padding: 0 23px 5px; color: var(--ink-3); font-size:9.5px; font-weight: 750; letter-spacing: .065em; text-transform: uppercase; }
.intake-batch-files { gap: 0; padding-bottom: 8px; }
.intake-stored-file { grid-template-columns: minmax(155px, 1.3fr) minmax(145px, 1fr) minmax(105px, .75fr) 74px 112px; gap: 8px; padding: 7px 9px; border-width: 1px 0 0; border-radius: 0; background: transparent; }
.intake-stored-file:first-child { border-top: 1px solid var(--line-2); }
.intake-file-actions, .intake-evidence-actions { display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.intake-file-actions .btn, .intake-evidence-actions .btn { min-width: 0; padding-right: 6px; padding-left: 6px; }
.intake-no-active-files { padding: 14px; color: var(--ink-3); font-size: 11px; text-align: center; }
.intake-removed-files { margin: 0 0 10px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel-2); }
.intake-removed-files > summary { padding: 8px 10px; color: var(--ink-3); font-size: 10.5px; font-weight: 700; cursor: pointer; }
.intake-removed-files > div { border-top: 1px solid var(--line-2); }
.intake-removed-file { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; }
.intake-removed-file + .intake-removed-file { border-top: 1px solid var(--line-2); }
.intake-removed-file > span { display: grid; min-width: 0; gap: 2px; }
.intake-removed-file b, .intake-removed-file small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.intake-removed-file b { color: var(--ink-2); font-size: 10.5px; }
.intake-removed-file small { color: var(--ink-3); font-size: 10px; }
.intake-document-type { width: 100%; min-width: 0; height: 30px; padding: 4px 24px 4px 7px; font-size: 10.5px; }
.intake-file-source { overflow: hidden; color: var(--ink-3); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.intake-file-status { font-size: 10px; font-weight: 700; }
.intake-file-status.ready { color: var(--green); }
.intake-file-status.pending { color: var(--orange); }
.intake-batch-actions { justify-content: space-between; border-top: 1px solid var(--line-2); padding-top: 10px; }
.intake-batch-actions > div { display: flex; flex-wrap: wrap; gap: 7px; }
.review-document-gate { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; padding: 9px 11px; border: 1px solid color-mix(in srgb, var(--orange) 25%, var(--line)); border-radius: 8px; background: var(--orange-bg); }
.review-document-gate > div { display: grid; }
.review-document-gate b { color: var(--orange); font-size: 11.5px; }
.review-document-gate span { color: var(--ink-2); font-size: 10.5px; }
.review-document-gate.complete { border-color: color-mix(in srgb, var(--green) 24%, var(--line)); background: var(--green-bg); }
.review-document-gate.complete b, .review-document-gate.complete strong { color: var(--green); }
.review-document-gate strong { font-size: 10.5px; }

.settings-mailbox { margin-top: 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-2); overflow: hidden; }
.settings-mailbox-head { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 12px 13px; border-bottom: 1px solid var(--line-2); }
.settings-mailbox-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: var(--accent-soft); color: var(--accent); }
.settings-mailbox-head h3 { margin: 0; font-size: 13px; }
.settings-mailbox-head p { margin: 1px 0 0; color: var(--ink-3); font-size: 10.5px; }
.settings-mailbox-head > span { padding: 4px 7px; border-radius: 999px; background: var(--orange-bg); color: var(--orange); font-size:10.5px; font-weight: 750; }
.settings-mailbox-head > span.connected { background: var(--green-bg); color: var(--green); }
.settings-mailbox-head > span.ready { background: var(--blue-bg); color: var(--blue); }
.settings-mailbox-body { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 14px; padding: 12px 13px; }
.settings-mailbox-body > div:not(.settings-mailbox-actions) { display: grid; }
.settings-mailbox-body span { color: var(--ink-3); font-size:10px; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.settings-mailbox-body b { font-size: 11.5px; }
.settings-mailbox-body small { color: var(--ink-3); font-size:10.5px; }
.settings-mailbox-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.settings-mailbox-note { margin: 0; padding: 9px 13px; border-top: 1px solid var(--line-2); color: var(--ink-3); font-size: 10px; }

.container-documents-button { display: grid; min-width: 72px; padding: 5px 7px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel-2); color: var(--ink-2); cursor: pointer; text-align: left; }
.container-documents-button span { font: 750 11px/1.15 var(--mono); }
.container-documents-button small { color: var(--ink-3); font-size:10px; }
.container-documents-button.complete { border-color: color-mix(in srgb, var(--green) 32%, var(--line)); background: var(--green-bg); color: var(--green); }
.container-documents-button.missing { border-color: color-mix(in srgb, var(--orange) 32%, var(--line)); background: var(--orange-bg); color: var(--orange); }

.shipment-documents-panel > #shipmentDocuments { padding: 12px 14px 14px; }
.container-document-empty { display: grid; justify-items: start; gap: 5px; padding: 8px 0; }
.container-document-empty span { color: var(--ink-3); font-size: 11px; }
.container-document-package + .container-document-package { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.container-document-summary { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.container-document-summary > div { display: grid; min-width: 0; }
.container-document-summary b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.container-document-summary span { color: var(--ink-3); font-size:10.5px; }
.container-document-summary strong { color: var(--orange); font: 750 11px/1.2 var(--mono); }
.container-document-package.complete .container-document-summary strong { color: var(--green); }
.container-document-progress { height: 5px; margin: 8px 0; overflow: hidden; border-radius: 99px; background: var(--line); }
.container-document-progress i { display: block; height: 100%; background: var(--orange); }
.container-document-package.complete .container-document-progress i { background: var(--green); }
.container-document-ready, .container-document-warning { margin: 0 0 8px; color: var(--green); font-size: 10px; }
.container-document-warning { color: var(--orange); }
.container-document-files { display: grid; gap: 4px; }
.container-document-files a { display: grid; grid-template-columns: 105px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 6px 7px; border: 1px solid var(--line-2); border-radius: 6px; background: var(--panel-2); color: inherit; text-decoration: none; }
.container-document-files a:hover { border-color: var(--accent); }
.container-document-files span, .container-document-files small { color: var(--ink-3); font-size:10px; }
.container-document-files b { overflow: hidden; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.container-document-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: 9px; }

.review-shell { padding: 16px; }
.review-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.review-title-row h3 { margin: 2px 0 0; font-size: 17px; }
.review-title-row p { margin: 3px 0 0; color: var(--ink-3); font-size: 10.5px; }
.review-efficiency { display: flex; align-items: center; gap: 8px; margin: -4px 0 12px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); color: var(--ink-2); font-size: 10.5px; }
.review-efficiency b { flex: 0 0 auto; color: var(--blue); }
.review-efficiency.good { border-color: color-mix(in srgb, var(--green) 24%, var(--line)); background: var(--green-bg); }
.review-efficiency.good b { color: var(--green); }
.review-summary { display: grid; grid-template-columns: repeat(5, auto); border: 1px solid var(--line-2); border-radius: 8px; background: var(--panel); overflow: hidden; }
.review-summary span { display: grid; min-width: 65px; padding: 7px 10px; border-right: 1px solid var(--line-2); color: var(--ink-3); font-size:10.5px; text-align: center; }
.review-summary span:last-child { border-right: 0; }
.review-summary b { color: var(--ink); font-size: 16px; line-height: 1.1; }
.review-summary .good b { color: var(--green); }
.review-summary .warn b { color: var(--orange); }
.review-summary .bad b { color: var(--red); }
.review-summary .price b { color: var(--orange); }
.review-warning { display: grid; gap: 2px; margin-bottom: 10px; padding: 9px 11px; border-radius: 7px; background: var(--orange-bg); color: var(--ink-2); font-size: 11px; }
.review-warning b { color: var(--orange); }
.review-warnings { margin-bottom: 10px; padding: 8px 11px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel); color: var(--ink-2); font-size: 11px; }
.review-warnings summary { color: var(--orange); cursor: pointer; font-weight: 700; }
.review-warnings p { margin: 6px 0 0; }
.review-fields { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 8px; margin-bottom: 14px; }
.review-field { display: grid; gap: 3px; min-width: 0; }
.review-field span { color: var(--ink-3); font-size:10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.review-field .review-required { margin-left: 6px; color: var(--red); font-size: 9.5px; font-style: normal; letter-spacing: .02em; }
.review-field input, .review-field select { width: 100%; min-width: 0; padding: 7px 8px; font-size: 11.5px; }
.review-field input:disabled, .review-field select:disabled { opacity: .8; color: var(--ink-2); }
.review-field input[readonly] { background: var(--panel-2); color: var(--ink-2); }
.review-vendor-picker { grid-column: span 2; display: grid; grid-template-columns: minmax(260px, 1.35fr) minmax(190px, .65fr); gap: 8px; min-width: 0; }
.review-vendor-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.review-vendor-search-row .btn { white-space: nowrap; }
.review-vendor-note { grid-column: 1 / -1; color: var(--orange); font-size:10.5px; }
.review-vendor-note.selected { color: var(--green); }
.review-vendor-results { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); }
.review-vendor-results[hidden] { display: none !important; }
.review-vendor-result { appearance: none; display: grid; gap: 2px; min-width: 0; padding: 8px 10px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.review-vendor-result:hover { border-color: var(--accent); background: var(--accent-soft); }
.review-vendor-result b { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.review-vendor-result span, .review-vendor-result small { overflow: hidden; color: var(--ink-3); font-size:10.5px; text-overflow: ellipsis; white-space: nowrap; }
.review-vendor-empty { grid-column: 1 / -1; padding: 13px; color: var(--ink-3); text-align: center; }
.review-shipping-line small { color: var(--blue); font-size:10px; line-height: 1.25; }
.review-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.review-table { width: 100%; min-width: 920px; border-collapse: collapse; font-size: 11px; }
.review-table th { padding: 8px; border-bottom: 1px solid var(--line); background: var(--panel-2); color: var(--ink-3); font-size:10.5px; text-align: left; text-transform: uppercase; letter-spacing: .03em; }
.review-table th.num { text-align: right; }
.review-table td { padding: 8px; border-bottom: 1px solid var(--line-2); vertical-align: top; }
.review-table tbody tr:last-child td { border-bottom: 0; }
.review-table td.num { text-align: right; white-space: nowrap; }
.review-table td.num small { display: block; color: var(--ink-3); }
.review-table td.review-price-cell { min-width: 235px; text-align: left; white-space: normal; }
.review-number-input { width: 108px; min-height: 34px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); color: var(--ink); font: 600 11px var(--mono); }
.review-number-input:focus { border-color: var(--blue); outline: 2px solid color-mix(in srgb, var(--blue) 18%, transparent); outline-offset: 1px; }
.review-price-cell .review-number-input { margin-bottom: 6px; }
.review-price-current { display: block; color: var(--ink); font-family: var(--mono); font-size: 12px; }
.review-price-cell > small { display: block; margin-top: 1px; color: var(--ink-3); font-size:10.5px; }
.review-price-check { display: grid; gap: 3px; margin-top: 7px; padding: 7px 8px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel-2); }
.review-price-check strong { font-size: 10.5px; }
.review-price-check span, .review-price-check small { color: var(--ink-3); font-size:10.5px; line-height: 1.35; }
.review-price-check.changed { border-color: color-mix(in srgb, var(--orange) 38%, var(--line)); background: var(--orange-bg); }
.review-price-check.changed strong, .review-price-check.warning strong { color: var(--orange); }
.review-price-check.changed label { display: flex; align-items: flex-start; gap: 6px; margin-top: 3px; color: var(--ink-2); font-size: 10px; font-weight: 650; white-space: normal; }
.review-price-check.changed input { flex: none; margin-top: 1px; }
.review-price-check.unchanged { border-color: color-mix(in srgb, var(--green) 30%, var(--line)); background: var(--green-bg); }
.review-price-check.unchanged strong { color: var(--green); }
.review-price-check.baseline { border-color: color-mix(in srgb, var(--blue) 28%, var(--line)); background: var(--blue-bg); }
.review-price-check.baseline strong { color: var(--blue); }
.review-price-check.warning { background: var(--orange-bg); }
.review-line-source { display: grid; min-width: 210px; max-width: 310px; }
.review-line-source b { color: var(--ink); font-family: var(--mono); font-size: 11px; }
.review-line-source span { margin-top: 2px; color: var(--ink-2); }
.review-line-source small { margin-top: 3px; color: var(--ink-3); }
.review-match-cell { display: grid; gap: 5px; min-width: 270px; }
.review-match-cell input, .review-match-cell select { width: 100%; min-width: 0; padding: 6px 7px; font-size: 10.5px; }
.review-match-cell small { color: var(--blue); }
.review-match-status { font-size: 10px; font-weight: 750; }
.review-match-status.matched { color: var(--green); }
.review-match-status.review { color: var(--orange); }
.review-match-status.unresolved { color: var(--red); }
.review-memory-cell { min-width: 130px; color: var(--ink-3); font-size: 10.5px; }
.review-memory-cell label { display: flex; align-items: flex-start; gap: 5px; color: var(--ink-2); }
.review-table tfoot td { border-top: 1px solid var(--line); border-bottom: 0; background: var(--panel-2); text-align: right; }
.review-actions { display: flex; align-items: center; gap: 14px; padding-top: 12px; }
.review-actions span { flex: 1; color: var(--ink-3); font-size: 10.5px; }
.review-actions .btn { white-space: nowrap; }
.review-zoho-state { display: flex; align-items: center; gap: 14px; margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line-2); border-radius: 8px; }
.review-zoho-state > div { display: grid; flex: 1; gap: 3px; }
.review-zoho-state b { font-size: 12px; }
.review-zoho-state span { color: var(--ink-3); font-size: 10.5px; }
.review-zoho-state.success { border-color: color-mix(in srgb, var(--green) 35%, var(--line-2)); background: color-mix(in srgb, var(--green) 8%, var(--panel)); }
.review-zoho-state.success b { color: var(--green); }
.review-zoho-state.warning { border-color: color-mix(in srgb, var(--orange) 35%, var(--line-2)); background: var(--orange-bg); }
.review-zoho-state.warning b { color: var(--orange); }
.review-zoho-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.container-zoho-sync { display: flex; align-items: flex-start; gap: 11px; margin: 0 0 12px; padding: 11px 13px; border: 1px solid var(--line-2); border-radius: 10px; background: var(--panel); box-shadow: var(--shadow); }
.container-zoho-sync[hidden] { display: none; }
.container-zoho-sync-mark { display: grid; place-items: center; flex: 0 0 25px; width: 25px; height: 25px; border-radius: 50%; background: var(--blue-bg); color: var(--blue); font-weight: 800; }
.container-zoho-sync-copy { display: grid; flex: 1; gap: 2px; min-width: 0; }
.container-zoho-sync-copy > b { color: var(--ink); font-size: 12px; }
.container-zoho-sync-copy > span, .container-zoho-sync-actions small { color: var(--ink-3); font-size: 10.5px; line-height: 1.45; }
.container-zoho-sync-copy details { margin-top: 5px; color: var(--ink-2); font-size: 10.5px; }
.container-zoho-sync-copy details summary { width: max-content; cursor: pointer; font-weight: 700; }
.container-zoho-sync-copy ul { display: grid; gap: 5px; margin: 7px 0 0; padding-left: 17px; }
.container-zoho-sync-copy li span { display: block; color: var(--ink-3); }
.container-zoho-sync-actions { display: flex; align-items: center; gap: 9px; }
.container-zoho-sync.is-good { border-color: color-mix(in srgb, var(--green) 34%, var(--line-2)); background: color-mix(in srgb, var(--green-bg) 45%, var(--panel)); }
.container-zoho-sync.is-good .container-zoho-sync-mark { background: var(--green-bg); color: var(--green); }
.container-zoho-sync.is-bad { border-color: color-mix(in srgb, var(--red) 35%, var(--line-2)); background: color-mix(in srgb, var(--red-bg) 42%, var(--panel)); }
.container-zoho-sync.is-bad .container-zoho-sync-mark { background: var(--red-bg); color: var(--red); }
.container-zoho-history { margin: 12px 0 0; overflow: hidden; border: 1px solid var(--line-2); border-radius: 10px; background: var(--panel); box-shadow: var(--shadow); }
.container-zoho-history > summary { display: flex; align-items: center; gap: 11px; min-height: 50px; padding: 9px 13px; cursor: pointer; list-style: none; }
.container-zoho-history > summary::-webkit-details-marker { display: none; }
.container-zoho-history > summary > span:nth-child(2) { display: grid; flex: 1; min-width: 0; gap: 2px; }
.container-zoho-history > summary b { color: var(--ink); font-size: 12px; }
.container-zoho-history > summary small { color: var(--ink-3); font-size: 10.5px; }
.container-zoho-history-icon { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 7px; background: var(--blue-bg); color: var(--blue); font-weight: 800; }
.container-zoho-history-count { padding: 4px 7px; border-radius: 999px; background: var(--panel-2); color: var(--ink-2); font-size: 10px; font-weight: 750; }
.container-zoho-history-body { border-top: 1px solid var(--line-2); }
.container-zoho-history-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line-2); }
.container-zoho-history-stats > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 9px 12px; background: var(--panel-2); }
.container-zoho-history-stats span { color: var(--ink-3); font-size: 10px; font-weight: 700; }
.container-zoho-history-stats b { color: var(--ink); font: 800 16px/1 var(--mono); }
.container-zoho-history-stats .is-bad b { color: var(--red); }
.container-zoho-history-stats .is-warn b { color: var(--orange); }
.container-zoho-history-stats .is-info b { color: var(--blue); }
.container-zoho-history-stats .is-good b { color: var(--green); }
.container-zoho-history-toolbar { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-top: 1px solid var(--line-2); color: var(--ink-3); font-size: 10px; }
.container-zoho-history-search { flex: 0 1 300px; min-width: 180px; }
.container-zoho-history-search input { width: 100%; height: 31px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 8px; outline: 0; background: var(--panel); color: var(--ink); font: inherit; font-size: 10.5px; }
.container-zoho-history-search input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 14%, transparent); }
.container-zoho-history-search input:disabled { opacity: .58; cursor: not-allowed; }
#containerZohoHistoryFilterSummary { flex: 1; min-width: 145px; }
.container-zoho-history-actions { display: flex; align-items: center; gap: 6px; }
.container-zoho-history-rows { max-height: 390px; overflow: auto; border-top: 1px solid var(--line-2); }
.container-zoho-history-row { display: grid; grid-template-columns: 112px minmax(190px, .8fr) minmax(300px, 1.3fr) minmax(190px, .8fr); gap: 12px; align-items: start; padding: 10px 12px; border-bottom: 1px solid var(--line-2); border-left: 3px solid var(--green); }
.container-zoho-history-row:last-child { border-bottom: 0; }
.container-zoho-history-row.is-failed { border-left-color: var(--red); background: color-mix(in srgb, var(--red-bg) 26%, transparent); }
.container-zoho-history-row.is-bug { border-left-color: var(--orange); background: color-mix(in srgb, var(--orange-bg) 36%, transparent); }
.container-zoho-history-row.is-corrected { border-left-color: var(--blue); }
.container-zoho-history-row.is-unchanged { border-left-color: var(--ink-3); }
.container-zoho-history-state, .container-zoho-history-identity, .container-zoho-history-note { display: grid; gap: 3px; min-width: 0; }
.container-zoho-history-state > span { width: fit-content; padding: 3px 6px; border-radius: 999px; background: var(--green-bg); color: var(--green); font-size: 9.5px; font-weight: 800; text-transform: uppercase; }
.is-failed .container-zoho-history-state > span { background: var(--red-bg); color: var(--red); }
.is-bug .container-zoho-history-state > span { background: var(--orange-bg); color: var(--orange); }
.is-corrected .container-zoho-history-state > span { background: var(--blue-bg); color: var(--blue); }
.is-unchanged .container-zoho-history-state > span { background: var(--panel-2); color: var(--ink-3); }
.container-zoho-history-state time, .container-zoho-history-note small { color: var(--ink-3); font-size: 9.5px; line-height: 1.4; }
.container-zoho-history-identity b { color: var(--ink); font: 750 11px/1.35 var(--mono); }
.container-zoho-history-identity span, .container-zoho-history-note > span { color: var(--ink-2); font-size: 10.5px; line-height: 1.4; overflow-wrap: anywhere; }
.container-zoho-history-changes { display: flex; flex-wrap: wrap; gap: 5px; }
.container-zoho-field-change { display: grid; grid-template-columns: auto auto auto; align-items: center; gap: 3px 6px; padding: 5px 7px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel-2); }
.container-zoho-field-change b { grid-column: 1 / -1; color: var(--ink-2); font-size: 9.5px; }
.container-zoho-field-change i { color: var(--ink-3); font-size: 9.5px; font-style: normal; }
.container-zoho-field-change strong { color: var(--ink); font: 750 10px/1 var(--mono); }
.container-zoho-history-empty { padding: 18px; color: var(--ink-3); font-size: 11px; text-align: center; }
.container-zoho-history-empty.is-error { color: var(--red); }

.review-item-confirmed,
.review-item-selected,
.review-item-proposal {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 330px;
  padding: 9px 10px;
  border: 1px solid var(--line-2);
  border-left: 4px solid var(--green);
  border-radius: 7px;
  background: var(--green-bg);
}
.review-item-confirmed { display: grid; gap: 2px; }
.review-item-proposal { border-left-color: var(--orange); background: var(--orange-bg); }
.review-item-proposal[hidden], .review-item-selected[hidden] { display: none !important; }
.review-item-proposal-copy,
.review-item-selected > div { display: grid; min-width: 0; gap: 2px; flex: 1; }
.review-item-confirmed b,
.review-item-proposal b,
.review-item-selected b { overflow: hidden; color: var(--ink); font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.review-item-confirmed span,
.review-item-proposal span,
.review-item-selected span { color: var(--ink-2); font-size: 10.5px; }
.review-item-confirmed small,
.review-item-proposal small,
.review-item-selected small { color: var(--ink-3); font-size:10.5px; }
.review-item-proposal .review-item-warning { color: var(--orange); font-weight: 750; }
.review-item-proposal-actions { display: grid; flex: 0 0 auto; gap: 6px; }
.approve-suggestion-btn { border-color: var(--green); background: var(--green); color: #fff; font-weight: 750; white-space: nowrap; }
.approve-suggestion-btn:hover { filter: brightness(1.06); }
.resolve-btn { border-color: color-mix(in srgb, var(--orange) 50%, var(--line)); color: var(--orange); background: var(--panel); font-weight: 750; }

.item-resolve-backdrop {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(15, 23, 38, .46);
  backdrop-filter: blur(2px);
}
.item-resolve-backdrop[hidden] { display: none !important; }
.item-resolve-dialog {
  width: min(1040px, 96vw);
  max-height: min(820px, 92vh);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel);
  box-shadow: 0 24px 70px rgba(16, 28, 46, .28);
}
.item-resolve-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 20px 13px; border-bottom: 1px solid var(--line); }
.item-resolve-head h3 { margin: 2px 0 0; font-size: 19px; }
.item-resolve-source { display: grid; gap: 2px; margin: 14px 20px; padding: 10px 12px; border-radius: 8px; background: var(--panel-2); }
.item-resolve-source b { color: var(--ink); font-family: var(--mono); font-size: 12px; }
.item-resolve-source span { color: var(--ink-2); font-size: 12px; }
.item-search-label { display: block; margin: 0 20px 6px; color: var(--ink-3); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.item-search-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding: 0 20px; }
.item-search-bar input { width: 100%; min-width: 0; padding: 11px 12px; font-size: 14px; font-weight: 650; }
.item-search-note { padding: 7px 20px 11px; color: var(--ink-3); font-size: 10.5px; }
.item-search-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 0 20px 18px; }
.item-search-result {
  appearance: none;
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.item-search-result:hover { border-color: var(--accent); background: var(--accent-soft); }
.item-search-result.selected { border-color: var(--accent); background: var(--blue-bg); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent); }
.item-search-result b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.item-search-result span { color: var(--ink-2); font-size: 11px; }
.item-search-result small { overflow: hidden; color: var(--ink-3); font-size:10.5px; text-overflow: ellipsis; white-space: nowrap; }
.item-search-empty { grid-column: 1 / -1; padding: 26px 14px; border: 1px dashed var(--line); border-radius: 9px; color: var(--ink-3); text-align: center; }
.item-resolve-actions { position: sticky; bottom: 0; display: flex; align-items: center; gap: 16px; padding: 12px 20px; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 94%, transparent); backdrop-filter: blur(8px); }
.item-resolve-actions span { flex: 1; color: var(--ink-2); font-size: 11px; }

@media (max-width: 720px) {
  .review-vendor-picker { grid-column: 1 / -1; grid-template-columns: 1fr; }
  .review-vendor-note, .review-vendor-results { grid-column: 1; }
  .review-vendor-results { grid-template-columns: 1fr; }
  .review-item-confirmed, .review-item-selected, .review-item-proposal { min-width: 270px; }
  .item-resolve-backdrop { padding: 8px; }
  .item-search-results { grid-template-columns: 1fr; }
  .item-resolve-actions { align-items: stretch; flex-direction: column; }
  .item-resolve-actions .btn { width: 100%; }
}

.item-memory-panel { margin-top: 16px; }
.memory-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  border-bottom: 1px solid var(--line);
}
.memory-stat { display: grid; gap: 1px; padding: 13px 14px; border-right: 1px solid var(--line-2); }
.memory-stat:last-child { border-right: 0; }
.memory-stat b { font-size: 20px; line-height: 1.1; }
.memory-stat span { color: var(--ink-3); font-size: 10.5px; }
.memory-stat.good b { color: var(--green); }
.memory-stat.warn b { color: var(--orange); }
.memory-vendors { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.memory-vendor { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 14px; border-right: 1px solid var(--line-2); }
.memory-vendor:last-child { border-right: 0; }
.memory-vendor > div:first-child { display: grid; min-width: 0; }
.memory-vendor b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.memory-vendor span { color: var(--ink-3); font-family: var(--mono); font-size:10.5px; }
.memory-vendor > div:last-child { color: var(--ink-3); font-size: 10.5px; text-align: right; }
.memory-vendor strong { color: var(--green); }
.memory-vendor em { color: var(--orange); font-style: normal; }
.memory-shared { padding: 9px 14px; border-bottom: 1px solid var(--line-2); background: var(--blue-bg); color: var(--blue); font-size: 11.5px; }
.memory-unresolved { display: grid; gap: 3px; padding: 10px 14px; border-bottom: 1px solid var(--line-2); background: var(--orange-bg); color: var(--orange); font-size: 11.5px; }
.memory-unresolved span { color: var(--ink-2); }
.memory-footer { display: flex; align-items: center; gap: 14px; padding: 11px 14px; color: var(--ink-3); font-size: 11.5px; }
.memory-footer span { flex: 1; }
.memory-footer .btn { white-space: nowrap; }

/* Shipment intake workspace — action-first queue with a compact, retained archive. */
.intake-page-heading { align-items: flex-end; }
.intake-page-heading h1 { margin-bottom: 2px; }
.intake-page-heading p { margin: 0; color: var(--ink-3); font-size: 11.5px; }
.intake-page-heading .btn { min-width: 126px; }
.intake-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 12px;
}
.intake-summary-card {
  appearance: none;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  color: var(--ink);
  cursor: pointer;
  text-align: left;
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.intake-summary-card:hover { border-color: color-mix(in srgb, var(--accent) 38%, var(--line)); box-shadow: var(--shadow); transform: translateY(-1px); }
.intake-summary-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.intake-summary-card > span:nth-child(2) { display: grid; min-width: 0; }
.intake-summary-card b { font: 760 20px/1 var(--mono); }
.intake-summary-card strong { margin-top: 3px; font-size: 11.5px; }
.intake-summary-card small { margin-top: 2px; color: var(--ink-3); font-size:10.5px; line-height: 1.3; white-space: normal; }
.intake-summary-card > i { color: var(--ink-3); font-size: 20px; font-style: normal; }
.intake-summary-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--orange-bg); color: var(--orange); font: 750 15px/1 var(--mono); }
.intake-summary-card.danger .intake-summary-icon { background: var(--red-bg); color: var(--red); }
.intake-summary-card.success .intake-summary-icon { background: var(--green-bg); color: var(--green); }

.intake-upload-panel { margin-bottom: 12px; overflow: hidden; }
.intake-upload-panel[hidden] { display: none; }
.intake-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border-bottom: 1px solid var(--line-2);
}
.intake-section-head > div { display: flex; align-items: center; gap: 10px; }
.intake-section-head > div > div { display: grid; }
.intake-section-head b { font-size: 12.5px; }
.intake-section-head small { color: var(--ink-3); font-size: 10px; }
.intake-section-icon { display: grid; place-items: center; width: 30px; height: 30px; flex: none; border-radius: 8px; background: var(--accent-soft); color: var(--accent); font: 750 16px/1 var(--mono); }
.intake-upload-panel .intake-form { grid-template-columns: minmax(300px, .9fr) minmax(360px, 1.1fr); align-items: start; }
.intake-upload-panel .intake-link-fields { align-self: stretch; }
.intake-upload-panel .intake-drop { grid-column: 2; grid-row: 1 / span 3; min-height: 144px; padding: 18px; }
.intake-upload-panel .intake-selection,
.intake-upload-panel .intake-actions,
.intake-upload-panel #intakeProgress { grid-column: 1; }
.intake-upload-panel .note { padding: 10px 14px; border-top: 1px solid var(--line-2); }

.intake-queue-panel { overflow: hidden; overflow: clip; }
.intake-view-tabs { display: flex; gap: 18px; min-height: 43px; padding: 0 14px; border-bottom: 1px solid var(--line); }
.intake-view-tab { appearance: none; position: relative; border: 0; background: transparent; color: var(--ink-3); cursor: pointer; font: inherit; font-size: 12px; font-weight: 720; line-height: 43px; }
.intake-view-tab span { margin-left: 4px; padding: 2px 6px; border-radius: 999px; background: var(--grey-bg); color: var(--ink-3); font: 700 9.5px/1 var(--mono); }
.intake-view-tab::after { content: ''; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; border-radius: 2px 2px 0 0; background: transparent; }
.intake-view-tab.active { color: var(--accent); }
.intake-view-tab.active span { background: var(--accent-soft); color: var(--accent); }
.intake-view-tab.active::after { background: var(--accent); }
.intake-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) 150px 135px auto; align-items: center; gap: 8px; padding: 10px 13px; border-bottom: 1px solid var(--line-2); background: var(--panel-2); }
.intake-toolbar input, .intake-toolbar select { width: 100%; height: 34px; }
.intake-search { position: relative; }
.intake-search::after { content: '⌕'; position: absolute; top: 7px; right: 10px; color: var(--ink-3); font-size: 17px; pointer-events: none; }
.intake-search input { padding-right: 32px; }
.intake-result-count { justify-self: end; color: var(--ink-3); font: 650 10px/1 var(--mono); white-space: nowrap; }
.intake-list-head,
.intake-row-grid {
  display: grid;
  grid-template-columns: minmax(245px, 1.4fr) minmax(120px, .68fr) 92px minmax(210px, 1.05fr) 84px 70px;
  align-items: center;
  gap: 10px;
}
.intake-list-head { padding: 7px 13px; border-bottom: 1px solid var(--line); color: var(--ink-3); font-size:9.5px; font-weight: 760; letter-spacing: .055em; text-transform: uppercase; }
.intake-list-row { background: var(--panel); }
.intake-list-row + .intake-list-row { border-top: 1px solid var(--line-2); }
.intake-list-row.expanded { box-shadow: inset 3px 0 0 var(--accent); }
.intake-row-grid { min-height: 56px; padding: 8px 13px; }
.intake-package-cell { display: grid; grid-template-columns: 24px 20px minmax(0, 1fr); align-items: center; gap: 7px; min-width: 0; }
.intake-package-cell > span:last-child { display: grid; min-width: 0; }
.intake-package-cell b, .intake-reference-cell b, .intake-date-cell b { overflow: hidden; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.intake-package-cell small, .intake-reference-cell small, .intake-date-cell small { overflow: hidden; color: var(--ink-3); font-size:10.5px; text-overflow: ellipsis; white-space: nowrap; }
.intake-expand-button { appearance: none; display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid var(--line); border-radius: 50%; background: var(--panel); color: var(--ink-3); cursor: pointer; font-size: 16px; line-height: 1; }
.intake-expand-button:hover { border-color: var(--accent); color: var(--accent); }
.intake-source-glyph { color: var(--accent); font-size: 13px; text-align: center; }
.intake-source-glyph.manual { color: var(--green); }
.intake-source-badge { justify-self: start; padding: 3px 6px; border-radius: 5px; background: var(--blue-bg); color: var(--blue); font-size:10px; font-weight: 750; }
.intake-source-badge.manual { background: var(--green-bg); color: var(--green); }
.intake-date-cell, .intake-reference-cell, .intake-doc-cell { display: grid; min-width: 0; }
.intake-doc-cell b { font: 720 10.5px/1.2 var(--mono); }
.intake-doc-cell > span { width: 64px; height: 4px; margin-top: 5px; overflow: hidden; border-radius: 99px; background: var(--line); }
.intake-doc-cell i { display: block; height: 100%; border-radius: inherit; background: var(--green); }
.intake-next-action { display: grid; min-width: 0; gap: 2px; padding-left: 9px; border-left: 3px solid var(--blue); }
.intake-next-action b, .intake-next-action small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.intake-next-action b { color: var(--blue); font-size: 10.5px; }
.intake-next-action small { color: var(--ink-3); font-size:10.5px; }
.intake-next-action.warning { border-left-color: var(--orange); }
.intake-next-action.warning b { color: var(--orange); }
.intake-next-action.danger { border-left-color: var(--red); }
.intake-next-action.danger b { color: var(--red); }
.intake-next-action.success { border-left-color: var(--green); }
.intake-next-action.success b { color: var(--green); }
.intake-status-badge { justify-self: start; max-width: 118px; overflow: hidden; padding: 4px 7px; border-radius: 5px; font-size:10px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.intake-status-badge.success { background: var(--green-bg); color: var(--green); }
.intake-status-badge.warning { background: var(--orange-bg); color: var(--orange); }
.intake-status-badge.danger { background: var(--red-bg); color: var(--red); }
.intake-status-badge.info { background: var(--blue-bg); color: var(--blue); }
.intake-row-action { justify-self: end; }
.intake-row-action .btn { min-width: 62px; }
.intake-date-group { padding: 8px 13px 6px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line-2); background: var(--panel-2); color: var(--ink-3); font-size:10px; font-weight: 760; letter-spacing: .055em; text-transform: uppercase; }
.intake-expanded { padding: 11px 13px 13px 44px; border-top: 1px solid var(--line-2); background: color-mix(in srgb, var(--accent-soft) 30%, var(--panel-2)); }
.intake-expanded-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.intake-expanded-title > div { display: grid; }
.intake-expanded-title b { font-size: 11.5px; }
.intake-expanded-title span { color: var(--ink-3); font-size:10.5px; }
.intake-expanded-title strong { color: var(--green); font: 760 11px/1 var(--mono); }
.intake-expanded > .intake-completeness-track { margin: 7px 0 11px; }
.intake-expanded > .intake-completeness-track.complete i { background: var(--green); }
.intake-expanded .intake-file-head { padding: 0 9px 5px; }
.intake-expanded .intake-batch-files { padding: 0; border: 1px solid var(--line-2); border-radius: 8px; background: var(--panel); overflow: hidden; }
.intake-expanded .intake-stored-file { padding: 7px 9px; }
.intake-expanded .intake-batch-actions { margin-top: 10px; padding: 0; border: 0; }
.intake-expanded .intake-review-host { margin: 13px -13px -13px -44px; }
.intake-grouping-review { display: grid; gap: 14px; padding-top: 14px; }
.intake-grouping-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.intake-grouping-heading h3 { margin: 2px 0 0; font-size: 15px; }
.intake-grouping-heading p { max-width: 760px; margin: 4px 0 0; color: var(--ink-3); font-size: 10.5px; line-height: 1.45; }
.intake-grouping-stats { display: flex; flex: 0 0 auto; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
.intake-grouping-stats span { display: grid; min-width: 76px; padding: 7px 10px; border-left: 1px solid var(--line-2); color: var(--ink-3); font-size: 9.5px; text-align: center; }
.intake-grouping-stats span:first-child { border-left: 0; }
.intake-grouping-stats b { color: var(--ink); font: 760 15px/1.1 var(--mono); }
.intake-grouping-stats .warning b { color: var(--orange); }
.intake-grouping-stats .ready b { color: var(--green); }
.intake-grouping-trust { display: grid; gap: 2px; padding: 9px 11px; border: 1px solid color-mix(in srgb, var(--orange) 28%, var(--line)); border-radius: 8px; background: var(--orange-bg); }
.intake-grouping-trust b { color: var(--orange); font-size: 11px; }
.intake-grouping-trust span { color: var(--ink-2); font-size: 10.5px; line-height: 1.4; }
.intake-grouping-draft-note { display: grid; gap: 2px; padding: 9px 11px; border: 1px solid color-mix(in srgb, var(--blue) 30%, var(--line)); border-radius: 8px; background: var(--blue-bg); }
.intake-grouping-draft-note b { color: var(--blue); font-size: 11px; }
.intake-grouping-draft-note span { color: var(--ink-2); font-size: 10.5px; line-height: 1.4; }
.intake-group-section { display: grid; gap: 9px; }
.intake-group-section-head { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.intake-group-section-head h4 { margin: 0; font-size: 12px; }
.intake-group-section-head p { margin: 2px 0 0; color: var(--ink-3); font-size: 10.5px; }
.intake-new-group { display: flex; align-items: center; gap: 6px; }
.intake-new-group input { min-width: 230px; height: 31px; padding: 5px 8px; font-size: 10.5px; }
.intake-group-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.intake-group-card { display: grid; gap: 8px; min-width: 0; padding: 10px; border: 1px solid var(--line); border-left: 4px solid var(--orange); border-radius: 9px; background: var(--panel); }
.intake-group-card.ready { border-left-color: var(--green); }
.intake-group-card.empty { border-color: color-mix(in srgb, var(--red) 48%, var(--line)); border-left-color: var(--red); }
.intake-group-card.uncertain:not(.empty) { border-left-color: var(--orange); }
.intake-group-card-head { display: flex; align-items: end; justify-content: space-between; gap: 10px; }
.intake-group-card-head label { display: grid; flex: 1; min-width: 0; gap: 3px; }
.intake-group-card-head label span { color: var(--ink-3); font-size: 9.5px; font-weight: 750; letter-spacing: .045em; text-transform: uppercase; }
.intake-group-existing-name { display: grid; flex: 1; min-width: 0; gap: 3px; }
.intake-group-existing-name span { color: var(--ink-3); font-size: 9.5px; font-weight: 750; letter-spacing: .045em; text-transform: uppercase; }
.intake-group-existing-name strong { min-height: 32px; padding: 7px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel-2); color: var(--ink); font-size: 11px; line-height: 16px; overflow-wrap: anywhere; }
.intake-group-card-head input { width: 100%; min-width: 0; height: 32px; padding: 5px 7px; font-weight: 700; }
.intake-group-destination-badge { flex: 0 0 auto; padding: 4px 7px; border: 1px solid var(--line-2); border-radius: 999px; font-size: 9.5px; font-weight: 800; white-space: nowrap; }
.intake-group-destination-badge.existing { border-color: color-mix(in srgb, var(--blue) 34%, var(--line)); background: var(--blue-bg); color: var(--blue); }
.intake-group-destination-badge.create { border-color: color-mix(in srgb, var(--green) 34%, var(--line)); background: var(--green-bg); color: var(--green); }
.intake-group-doc-count { flex: 0 0 auto; color: var(--ink-3); font-size: 10px; }
.intake-group-doc-count b { color: var(--ink); font: 750 13px/1 var(--mono); }
.intake-group-confidence { display: grid; gap: 2px; padding: 7px 8px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel-2); }
.intake-group-confidence b { color: var(--green); font-size: 10px; }
.intake-group-confidence span { color: var(--ink-3); font-size: 9.5px; line-height: 1.4; }
.intake-group-confidence.medium b { color: var(--blue); }
.intake-group-confidence.low { border-color: color-mix(in srgb, var(--orange) 34%, var(--line)); background: var(--orange-bg); }
.intake-group-confidence.low b { color: var(--orange); }
.intake-group-confidence.reviewer b { color: var(--blue); }
.intake-group-choice { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 9px; border: 1px solid color-mix(in srgb, var(--blue) 35%, var(--line)); border-radius: 7px; background: var(--blue-bg); color: var(--ink-2); cursor: pointer; }
.intake-group-choice.selected { border-color: var(--blue); box-shadow: inset 3px 0 0 var(--blue); }
.intake-group-choice input { width: 18px; height: 18px; margin: 0; accent-color: var(--blue); }
.intake-group-choice span { display: grid; gap: 2px; min-width: 0; }
.intake-group-choice b { color: var(--blue); font-size: 10.5px; }
.intake-group-choice small { color: var(--ink-3); font-size: 9.5px; }
.intake-group-card-status { display: flex; justify-content: space-between; gap: 8px; color: var(--orange); font-size: 10px; font-weight: 700; }
.intake-group-card.ready .intake-group-card-status { color: var(--green); }
.intake-group-card-status small { color: var(--blue); font-size: 9.5px; }
.intake-group-card-files { display: flex; flex-wrap: wrap; gap: 4px; min-height: 22px; }
.intake-group-card-files span { max-width: 220px; overflow: hidden; padding: 3px 6px; border-radius: 5px; background: var(--panel-2); color: var(--ink-2); font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.intake-group-card-files em { color: var(--ink-3); font-size: 10px; font-style: normal; }
.intake-group-card-actions { display: flex; justify-content: flex-end; gap: 5px; padding-top: 7px; border-top: 1px solid var(--line-2); }
.intake-group-card-actions label { margin-right: auto; }
.intake-group-card-actions select { max-width: 180px; height: 29px; padding: 3px 24px 3px 6px; font-size: 10px; }
.intake-group-documents { overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); }
.intake-group-document { display: grid; grid-template-columns: minmax(210px, 1.1fr) minmax(320px, 1.8fr) 135px auto; align-items: center; gap: 10px; padding: 9px 10px; border-top: 1px solid var(--line-2); }
.intake-group-document:first-child { border-top: 0; }
.intake-group-document.unassigned { background: var(--orange-bg); }
.intake-group-document.shared { background: var(--blue-bg); }
.intake-group-document.uncertain { box-shadow: inset 3px 0 0 var(--orange); }
.intake-group-document-name { display: grid; min-width: 0; }
.intake-group-document-name b { overflow: hidden; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.intake-group-document-name span { color: var(--ink-3); font-size: 9.5px; }
.intake-group-document-name small { margin-top: 3px; color: var(--orange); font-size: 9.5px; font-weight: 700; line-height: 1.35; }
.intake-group-document fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.intake-group-document legend { margin-bottom: 4px; color: var(--ink-3); font-size: 9.5px; font-weight: 750; text-transform: uppercase; }
.intake-group-document fieldset > div { display: flex; flex-wrap: wrap; gap: 4px; }
.intake-group-document fieldset label { display: flex; align-items: center; gap: 4px; max-width: 180px; padding: 3px 6px; border: 1px solid var(--line-2); border-radius: 5px; background: var(--panel); color: var(--ink-2); font-size: 9.5px; cursor: pointer; }
.intake-group-document fieldset label:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); background: var(--accent-soft); color: var(--accent); }
.intake-group-document fieldset label.locked { border-style: dashed; cursor: not-allowed; }
.intake-group-document fieldset label.locked:has(input:checked) { border-color: color-mix(in srgb, var(--blue) 42%, var(--line)); background: var(--blue-bg); color: var(--blue); }
.intake-group-document fieldset label.reserved { border-style: dashed; background: var(--panel-2); color: var(--ink-3); cursor: not-allowed; opacity: .72; }
.intake-group-document fieldset input { margin: 0; }
.intake-group-document fieldset span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.intake-group-document-status { font-size: 9.5px; font-weight: 750; }
.intake-group-document-status.unassigned { color: var(--orange); }
.intake-group-document-status.assigned { color: var(--green); }
.intake-group-document-status.shared { color: var(--blue); }
.intake-grouping-actions { position: sticky; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0 -13px -13px -44px; padding: 11px 13px 11px 44px; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 94%, transparent); box-shadow: 0 -7px 20px rgba(20, 40, 70, .06); backdrop-filter: blur(8px); }
.intake-grouping-actions > span { display: grid; }
.intake-grouping-actions b { color: var(--orange); font-size: 10.5px; }
.intake-grouping-actions > span.ready b { color: var(--green); }
.intake-grouping-actions small { color: var(--ink-3); font-size: 9.5px; }
.intake-grouping-actions .btn { white-space: nowrap; }
.intake-grouped-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.intake-grouped-links article { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 8px; background: var(--panel); }
.intake-grouped-links article > span { display: grid; min-width: 0; }
.intake-grouped-links b { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.intake-grouped-links small { color: var(--ink-3); font-size: 9.5px; }
.intake-email-sources { margin-bottom: 13px; border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--line)); border-radius: 8px; background: var(--panel); overflow: hidden; }
.intake-email-sources-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 10px; border-bottom: 1px solid var(--line-2); background: color-mix(in srgb, var(--accent-soft) 50%, var(--panel)); }
.intake-email-sources-head > div { display: grid; }
.intake-email-sources-head b { font-size: 10.5px; }
.intake-email-sources-head span { color: var(--ink-3); font-size:10.5px; }
.intake-email-sources-head strong { color: var(--accent); font: 750 11px/1 var(--mono); }
.intake-email-source-list { display: grid; }
.intake-email-source-card { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 8px 10px; }
.intake-email-source-card + .intake-email-source-card { border-top: 1px solid var(--line-2); }
.intake-email-source-card > span:nth-child(2) { display: grid; min-width: 0; }
.intake-email-source-card b, .intake-email-source-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.intake-email-source-card b { font-size: 11px; }
.intake-email-source-card small { color: var(--ink-3); font-size:10.5px; }
.intake-email-source-icon { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 7px; background: var(--accent-soft); color: var(--accent); font-size: 12px; }

.intake-email-backdrop { position: fixed; inset: 0; z-index: 130; display: grid; place-items: center; padding: 24px; background: rgba(10, 18, 28, .46); backdrop-filter: blur(3px); }
.intake-email-backdrop[hidden] { display: none !important; }
.intake-email-dialog { display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(780px, 100%); min-width: 0; max-width: 100%; max-height: min(820px, calc(100vh - 48px)); border: 1px solid var(--line); border-radius: 13px; background: var(--panel); box-shadow: 0 24px 70px rgba(10, 18, 28, .28); overflow: hidden; }
.intake-email-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 15px 17px; border-bottom: 1px solid var(--line); background: var(--panel-2); }
.intake-email-dialog-head > div { min-width: 0; }
.intake-email-dialog-head h2 { margin: 2px 0 0; max-width: 630px; overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.intake-email-dialog-content { min-width: 0; min-height: 260px; padding: 17px; overflow: auto; }
.intake-email-loading, .intake-email-error { display: grid; place-items: center; align-content: center; min-height: 300px; gap: 5px; color: var(--ink-3); text-align: center; }
.intake-email-loading > span { width: 24px; height: 24px; margin-bottom: 5px; border: 3px solid var(--line); border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; }
.intake-email-loading b, .intake-email-error b { color: var(--ink-2); font-size: 13px; }
.intake-email-loading small, .intake-email-error small { font-size: 10px; }
.intake-email-error { margin: 12px; min-height: 220px; padding: 22px; border: 1px solid color-mix(in srgb, var(--orange) 25%, var(--line)); border-radius: 9px; background: var(--orange-bg); color: var(--orange); }
.intake-email-error span { max-width: 520px; font-size: 11.5px; }
.intake-email-subject-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line-2); }
.intake-email-subject-row > div { display: flex; align-items: flex-start; gap: 11px; min-width: 0; }
.intake-email-subject-row > div > div { display: grid; min-width: 0; }
.intake-email-subject-row h3 { margin: 0; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.intake-email-subject-row span:not(.intake-email-avatar) { color: var(--ink-3); font-size:10.5px; }
.intake-email-avatar { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--accent); color: #fff; font-size: 13px; font-weight: 750; }
.intake-email-headers { display: grid; gap: 6px; margin: 13px 0 16px; }
.intake-email-headers > div { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 9px; }
.intake-email-headers dt { color: var(--ink-3); font-size:10.5px; font-weight: 720; text-transform: uppercase; }
.intake-email-headers dd { margin: 0; color: var(--ink-2); font-size: 11px; overflow-wrap: anywhere; }
.intake-email-body-label { margin-bottom: 7px; color: var(--ink-3); font-size:10px; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.intake-email-body { min-height: 180px; margin: 0; padding: 15px; border: 1px solid var(--line-2); border-radius: 8px; background: var(--panel-2); color: var(--ink-2); font: 12px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; overflow-wrap: anywhere; white-space: pre-wrap; }
.intake-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 8px 13px; border-top: 1px solid var(--line); color: var(--ink-3); font: 600 10px/1 var(--mono); }
.intake-pagination:empty { display: none; }
.intake-pagination > div { display: flex; align-items: center; gap: 9px; }
.intake-pagination b { color: var(--ink-2); font-size:10.5px; }
.intake-pagination .btn { min-width: 30px; padding-right: 8px; padding-left: 8px; }
.intake-empty { display: grid; justify-items: center; gap: 5px; }
.intake-empty span { display: block; }
.intake-empty .btn { margin-top: 6px; }

/* A package review is a focused workspace, not another table expansion. */
.intake-review-workspace[hidden] { display: none !important; }
#view-intake.review-open > .page-ai-overview,
#view-intake.review-open > .intake-mailbox,
#view-intake.review-open > .intake-summary,
#view-intake.review-open > .intake-upload-panel,
#view-intake.review-open > .intake-queue-panel,
#view-intake.review-open > .item-memory-panel { display: none !important; }
#view-intake.review-open .intake-page-heading p,
#view-intake.review-open .intake-page-heading .btn { display: none; }
.intake-review-workspace { margin-top: -5px; }
.intake-review-workspace-shell { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); box-shadow: var(--shadow); }
.intake-review-workspace-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px 16px; padding: 12px 15px; border-bottom: 1px solid var(--line); background: var(--panel); }
.intake-review-back { appearance: none; justify-self: start; padding: 0; border: 0; background: transparent; color: var(--accent); font: inherit; font-size: 11px; font-weight: 750; cursor: pointer; }
.intake-review-back:hover { text-decoration: underline; }
.intake-review-back:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.intake-review-package-id { color: var(--ink-3); font: 650 9.5px/1 var(--mono); }
.intake-review-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.intake-list-row.archived { opacity: .78; }
.intake-list-row.archived .intake-next-action { border-left-color: var(--ink-3); }
.intake-archive-note { display: grid; gap: 2px; margin: 0 0 10px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel-2); }
.intake-archive-note b { font-size: 11px; }
.intake-archive-note span { color: var(--ink-3); font-size: 10.5px; }
.intake-review-identity { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 7px 14px; min-width: 0; }
.intake-review-identity h2 { margin: 0; padding-right: 14px; border-right: 1px solid var(--line); font-size: 17px; }
.intake-review-identity > span:not(.intake-status-badge) { color: var(--ink-3); font-size: 10.5px; }
.intake-review-identity > span b { color: var(--ink-2); font-family: var(--mono); }
.intake-review-workspace-grid { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; min-height: 560px; }
.intake-evidence-rail { position: sticky; top: calc(var(--app-topbar-height) + 10px); display: grid; align-content: start; gap: 9px; min-width: 0; padding: 14px; border-right: 1px solid var(--line); background: var(--panel-2); }
.intake-evidence-heading { display: flex; align-items: end; justify-content: space-between; gap: 10px; }
.intake-evidence-heading h3 { margin: 2px 0 0; font-size: 13px; }
.intake-evidence-heading strong { color: var(--green); font: 750 12px/1 var(--mono); }
.intake-evidence-rail > .intake-completeness-track { margin: -1px 0 2px; }
.intake-evidence-rail > .intake-completeness-track.complete i { background: var(--green); }
.intake-evidence-list { display: grid; gap: 6px; }
.intake-evidence-item { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); }
.intake-evidence-item > div { display: grid; min-width: 0; gap: 1px; }
.intake-evidence-item b, .intake-evidence-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.intake-evidence-item b { font-size: 10.5px; }
.intake-evidence-item small { color: var(--ink-3); font-size:10px; }
.intake-evidence-state { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--orange-bg); color: var(--orange); font: 750 9px/1 var(--mono); }
.intake-evidence-item.complete .intake-evidence-state { background: var(--green-bg); color: var(--green); }
.intake-evidence-item.email { border-color: color-mix(in srgb, var(--accent) 25%, var(--line)); }
.intake-evidence-item.email .intake-evidence-state { background: var(--accent-soft); color: var(--accent); }
.intake-evidence-item .btn { padding-right: 7px; padding-left: 7px; }
.intake-evidence-actions { align-items: stretch; flex-direction: column; }
.intake-evidence-item.removed { opacity: .78; border-style: dashed; }
.intake-evidence-item.removed .intake-evidence-state { background: var(--grey-bg); color: var(--ink-3); }
.intake-removed-evidence { border: 1px solid var(--line); border-radius: 7px; background: var(--panel); }
.intake-removed-evidence > summary { padding: 7px 8px; color: var(--ink-3); font-size: 10px; font-weight: 700; cursor: pointer; }
.intake-removed-evidence > div { display: grid; gap: 6px; padding: 0 6px 6px; }
.intake-evidence-blocker, .intake-evidence-ready { display: grid; gap: 2px; padding: 8px 9px; border: 1px solid color-mix(in srgb, var(--red) 30%, var(--line)); border-radius: 7px; background: var(--red-bg); }
.intake-evidence-blocker b, .intake-evidence-ready b { color: var(--red); font-size: 10px; }
.intake-evidence-blocker span, .intake-evidence-ready span { color: var(--ink-2); font-size:10px; line-height: 1.35; }
.intake-evidence-ready { border-color: color-mix(in srgb, var(--green) 30%, var(--line)); background: var(--green-bg); }
.intake-evidence-ready b { color: var(--green); }
.intake-evidence-reader { color: var(--ink-3); font-size:10px; line-height: 1.35; }
.intake-review-main { min-width: 0; }
.intake-review-section-label { display: grid; padding: 14px 16px 0; }
.intake-review-section-label h3 { margin: 2px 0 0; font-size: 15px; }
.intake-review-section-label p { margin: 3px 0 0; color: var(--ink-3); font-size: 10px; }
.intake-review-main .review-title-row > div:first-child { display: none; }
.intake-review-main .review-title-row { margin-bottom: 11px; }
.intake-review-main .review-summary { width: 100%; grid-template-columns: repeat(5, 1fr); }
.intake-review-main .review-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.intake-review-main .review-vendor-picker { grid-column: 1 / -1; }
.intake-review-main .review-table { min-width: 830px; }
.intake-review-main .review-line-source { min-width: 180px; }
.intake-review-main .review-table td.review-price-cell { min-width: 195px; }
.intake-review-main .review-match-cell { min-width: 225px; }
.intake-review-main .review-memory-cell { min-width: 105px; }
.intake-review-main .review-item-confirmed,
.intake-review-main .review-item-selected,
.intake-review-main .review-item-proposal { min-width: 235px; }
.intake-review-main .review-actions { position: sticky; bottom: 0; z-index: 3; margin: 12px -16px -16px; padding: 12px 220px 12px 16px; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 94%, transparent); box-shadow: 0 -8px 22px rgba(20, 40, 70, .06); backdrop-filter: blur(8px); }
.intake-review-main .review-actions span::before { content: 'Draft-only workflow · '; color: var(--blue); font-weight: 750; }
.intake-review-main .review-actions .btn:disabled { opacity: .48; filter: saturate(.5); cursor: not-allowed; }

.item-memory-panel { overflow: hidden; }
.item-memory-toggle { appearance: none; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; padding: 10px 13px; border: 0; background: var(--panel); color: var(--ink); cursor: pointer; text-align: left; }
.item-memory-toggle > span:nth-child(2) { display: grid; }
.item-memory-toggle b { font-size: 12px; }
.item-memory-toggle small { color: var(--ink-3); font-size:10.5px; }
.item-memory-chevron { color: var(--ink-3); font-size: 17px; transition: transform .15s; }
.item-memory-toggle[aria-expanded="true"] .item-memory-chevron { transform: rotate(180deg); }
.item-memory-panel #itemMemory:not([hidden]) { border-top: 1px solid var(--line); }

/* ---------- carrier tracking ---------- */

.syncbar {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 12px 14px;
  color: var(--ink-2);
  border-bottom: 1px solid var(--line-2);
}

.syncbar.on { background: var(--green-bg); color: var(--green); }
.syncbar.off { background: var(--panel-2); }
.syncbar code {
  font-family: var(--mono);
  font-size: 12px;
  background: var(--grey-bg);
  color: var(--ink);
  padding: 1px 6px;
  border-radius: 4px;
}

.syncbar .dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  margin-top: 5px;
  flex: none;
}

.dot.green { background: #23a55a; }
.dot.red { background: #d0454c; }
.dot.grey { background: var(--ink-3); }

/* ---------- Sync & history command center ---------- */

.sync-subnav button[aria-selected="true"] {
  border-left-color: var(--accent) !important;
  background: color-mix(in srgb, var(--accent-soft) 55%, transparent) !important;
  color: var(--accent) !important;
}

#view-tracking { max-width: 1500px; margin: 0 auto; }
.sync-page-heading { margin-bottom: 18px; }
.sync-page-heading h1 { margin: 0; font-size: 28px; letter-spacing: -.025em; }
.sync-page-heading p { margin: 6px 0 0; color: var(--ink-3); font-size: 13px; }
.sync-pane { display: grid; gap: 16px; }
.sync-pane[hidden] { display: none; }

.sync-availability,
.sync-surface {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  box-shadow: var(--shadow);
}

.sync-availability { overflow: hidden; }
.sync-availability-head {
  display: flex;
  min-height: 82px;
  align-items: center;
  gap: 20px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
}
.sync-availability-state { display: flex; min-width: 0; align-items: center; gap: 12px; flex: 1; }
.sync-availability-state h2 { margin: 0; color: var(--green); font-size: 17px; }
.sync-availability-state p { margin: 3px 0 0; color: var(--ink-3); font-size: 11.5px; }
.sync-state-mark {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  flex: none;
  border-radius: 50%;
  background: var(--green);
  color: white;
  font-size: 15px;
  font-weight: 800;
}
.sync-availability.is-warning .sync-availability-state h2 { color: var(--orange); }
.sync-availability.is-warning .sync-state-mark { background: var(--orange); }
.sync-availability.is-error .sync-availability-state h2 { color: var(--red); }
.sync-availability.is-error .sync-state-mark { background: var(--red); }
.sync-primary-action { min-height: 40px; white-space: nowrap; }
.sync-primary-action svg {
  width: 17px;
  height: 17px;
  margin-right: 7px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -3px;
}

.sync-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sync-metric { display: grid; gap: 4px; min-width: 0; padding: 14px 18px 15px; border-right: 1px solid var(--line-2); }
.sync-metric:last-child { border-right: 0; }
.sync-metric span { color: var(--ink-3); font-size: 10.5px; font-weight: 650; }
.sync-metric strong { overflow: hidden; color: var(--ink); font-size: 19px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.sync-metric small { color: var(--ink-3); font-size: 10.5px; line-height: 1.35; }
.sync-metric small.is-good { color: var(--green); }
.sync-metric small.is-warning { color: var(--orange); }

.sync-action-notice {
  display: flex;
  min-height: 50px;
  align-items: center;
  gap: 11px;
  padding: 10px 14px;
  border: 1px solid color-mix(in srgb, var(--orange) 62%, var(--line));
  border-radius: 9px;
  background: color-mix(in srgb, var(--orange-bg) 62%, var(--panel));
  color: var(--ink-2);
  font-size: 12px;
}
.sync-action-notice[hidden] { display: none; }
.sync-action-notice svg { width: 20px; height: 20px; flex: none; fill: none; stroke: var(--orange); stroke-width: 1.8; }
.sync-action-notice b { color: var(--orange); }
.sync-action-notice a { margin-left: auto; color: var(--accent); font-weight: 700; text-decoration: none; white-space: nowrap; }
.sync-action-notice a:hover { text-decoration: underline; }

.sync-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr); gap: 16px; align-items: start; }
.sync-carriers.has-review-results { grid-column: 1 / -1; }
.sync-surface { overflow: hidden; }
.sync-surface-head {
  display: flex;
  min-height: 61px;
  align-items: center;
  gap: 16px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--line-2);
}
.sync-surface-head > div:first-child { min-width: 0; flex: 1; }
.sync-surface-head h2 { margin: 0; font-size: 15px; letter-spacing: -.01em; }
.sync-surface-head p { margin: 3px 0 0; color: var(--ink-3); font-size: 10.5px; }
.sync-role { color: var(--accent); font-size:10.5px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }

.sync-record-identity { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 16px; }
.sync-record-identity h3,
.sync-source-copy h3 { margin: 0 0 5px; font-size: 14px; }
.sync-source-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  flex: none;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel-2);
  color: var(--accent);
}
.sync-source-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.sync-source-summary { display: flex; align-items: center; gap: 6px; color: var(--ink-3); font-size: 11.5px; }
.sync-source-summary::before { content: ''; width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--ink-3); }
.sync-source-summary.is-good { color: var(--green); }
.sync-source-summary.is-good::before { background: var(--green); }
.sync-source-summary.is-warning { color: var(--orange); }
.sync-source-summary.is-warning::before { background: var(--orange); }
.sync-source-summary.is-error { color: var(--red); }
.sync-source-summary.is-error::before { background: var(--red); }
.sync-source-summary.is-loading::before { background: var(--ink-3); animation: syncPulse 1.2s ease-in-out infinite; }
@keyframes syncPulse { 50% { opacity: .32; } }

.sync-zoho-progress { display: flex; align-items: flex-start; gap: 10px; }
.sync-zoho-progress > div { display: grid; gap: 3px; min-width: 0; }
.sync-zoho-progress b { color: var(--ink-2); }
.sync-zoho-progress span:not(.sync-progress-spinner) { line-height: 1.45; }
.sync-progress-spinner {
  width: 15px;
  height: 15px;
  margin-top: 1px;
  flex: none;
  border: 2px solid var(--line);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: syncSpin .8s linear infinite;
}
@keyframes syncSpin { to { transform: rotate(360deg); } }

.sync-record-facts { display: grid; grid-template-columns: minmax(130px, .7fr) minmax(0, 1.3fr); border-top: 1px solid var(--line-2); }
.sync-record-facts > div { display: grid; gap: 4px; min-width: 0; padding: 12px 16px; border-right: 1px solid var(--line-2); }
.sync-record-facts > div:last-child { border-right: 0; }
.sync-record-facts span { color: var(--ink-3); font-size: 10px; }
.sync-record-facts b { overflow: hidden; color: var(--ink-2); font-size: 11px; font-weight: 600; line-height: 1.35; text-overflow: ellipsis; }

.sync-source-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; min-width: 0; align-items: center; gap: 12px; padding: 13px 16px; border-bottom: 1px solid var(--line-2); }
.sync-source-list { display: contents; }
.sync-ocean-group { border-bottom: 1px solid var(--line-2); }
.sync-ocean-group > summary {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 16px;
  color: var(--ink-2);
  cursor: pointer;
  list-style-position: inside;
}
.sync-ocean-group > summary:hover { background: var(--panel-2); }
.sync-ocean-group > summary span { display: inline-grid; gap: 3px; margin-right: auto; }
.sync-ocean-group > summary b { font-size: 12px; }
.sync-ocean-group > summary small { color: var(--ink-3); font-size: 10px; font-weight: 500; }
.sync-ocean-group > summary em { flex: none; color: var(--orange); font-size: 10.5px; font-style: normal; font-weight: 700; }
.sync-ocean-rows { border-top: 1px solid var(--line-2); background: color-mix(in srgb, var(--panel-2) 40%, var(--panel)); }
.sync-ocean-rows .sync-source-row { padding-left: 24px; }
.sync-source-row:last-child { border-bottom: 0; }
.sync-source-row > .btn { min-width: 88px; }
.sync-source-details { grid-column: 1 / -1; min-width: 0; max-width: 100%; }
.sync-technical { border-top: 1px solid var(--line-2); }
.sync-source-details { width: 100%; margin-top: 1px; border: 0; }
.sync-technical summary {
  padding: 9px 16px;
  color: var(--ink-3);
  font-size: 10.5px;
  font-weight: 650;
  cursor: pointer;
}
.sync-source-details summary { padding: 5px 0 0; }
.sync-technical summary:hover { color: var(--accent); }
.sync-technical .syncbar { margin-top: 8px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--panel-2); font-size: 11px; }
.sync-record > .sync-technical .syncbar { margin: 0 14px; }
.sync-record > .sync-technical > p { margin: 9px 16px 14px; color: var(--ink-3); font-size: 10.5px; line-height: 1.5; }
.sync-option-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 9px 0 2px; }
.sync-option-row .subtle { margin-left: auto; }

.sync-latest { min-height: 154px; }
.sync-text-action { appearance: none; border: 0; background: transparent; color: var(--accent); font: 700 11.5px/1.2 inherit; cursor: pointer; }
.sync-text-action:hover { text-decoration: underline; }
.sync-activity-empty { display: grid; min-height: 92px; place-content: center; gap: 5px; padding: 18px; color: var(--ink-3); text-align: center; }
.sync-activity-empty svg { width: 24px; height: 24px; margin: 0 auto 2px; fill: none; stroke: var(--ink-3); stroke-width: 1.6; }
.sync-activity-empty b { color: var(--ink-2); font-size: 12px; }
.sync-activity-row { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 10px 16px; border-bottom: 1px solid var(--line-2); font-size: 11px; }
.sync-activity-row:last-child { border-bottom: 0; }
.sync-activity-row a { color: var(--accent); }
.sync-activity-row span { overflow: hidden; color: var(--ink-3); text-overflow: ellipsis; white-space: nowrap; }
.sync-activity-row time { color: var(--ink-3); font-family: var(--mono); font-size:10.5px; }

.sync-section-surface { min-height: 260px; }
.sync-section-surface #changeLog .toolbar { background: var(--panel-2); }
.sync-coverage-summary { color: var(--ink-3); font-size: 11px; text-align: right; }
.sync-section-surface #carrierTable { overflow-x: auto; }
.sync-coverage-help { border-top: 1px solid var(--line-2); }
.sync-coverage-help summary { padding: 10px 14px; color: var(--ink-3); font-size: 10.5px; font-weight: 650; cursor: pointer; }
.sync-coverage-help p { margin: 0; padding: 0 14px 14px; color: var(--ink-3); font-size: 11px; line-height: 1.55; }

@media (max-width: 1100px) {
  .sync-workspace-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .sync-page-heading { margin-bottom: 14px; }
  .sync-page-heading h1 { font-size: 24px; }
  .sync-availability-head { align-items: flex-start; flex-direction: column; gap: 13px; }
  .sync-primary-action { width: 100%; }
  .sync-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sync-metric:nth-child(2) { border-right: 0; }
  .sync-metric:nth-child(-n+2) { border-bottom: 1px solid var(--line-2); }
  .sync-action-notice { align-items: flex-start; flex-wrap: wrap; }
  .sync-action-notice a { width: 100%; margin-left: 31px; }
  .sync-record-identity { grid-template-columns: 42px minmax(0, 1fr); }
  .sync-record-identity > .btn { grid-column: 1 / -1; width: 100%; }
  .sync-record-facts { grid-template-columns: 1fr; }
  .sync-record-facts > div { border-right: 0; border-bottom: 1px solid var(--line-2); }
  .sync-record-facts > div:last-child { border-bottom: 0; }
  .sync-source-row { grid-template-columns: 42px minmax(0, 1fr); }
  .sync-source-row > .btn { grid-column: 1 / -1; width: 100%; min-height: 42px; }
  .sync-activity-row { grid-template-columns: 1fr; gap: 4px; }
  .sync-activity-row span { white-space: normal; }
  .sync-surface-head { align-items: flex-start; }
  .sync-coverage-summary { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .sync-source-summary.is-loading::before,
  .sync-progress-spinner { animation: none; }
}

.progress {
  height: 5px;
  background: var(--line-2);
  overflow: hidden;
}

.progress .bar {
  height: 100%;
  background: var(--accent);
  transition: width .3s;
}

.reviewhead {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 11px 14px;
  border-bottom: 1px solid var(--line-2);
  background: var(--panel-2);
  color: var(--ink-2);
}

.reviewhead .spacer { flex: 1; }

.reviewwrap { width: 100%; max-width: 100%; max-height: 460px; overflow: auto; }

table.review td { font-size: 13px; }
table.review tr.grouptop td { border-top: 1px solid var(--line); }
table.review td.was { color: var(--ink-3); text-decoration: line-through; }
table.review td.now { color: var(--green); font-weight: 600; }
table.review td.small { font-size: 11.5px; }
table.review .mono { font-family: var(--mono); font-size: 12px; }

.cn-sync-brief { min-width: 0; max-width: 100%; border-bottom: 1px solid var(--line); background: var(--panel); }
.cn-sync-brief-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px 13px;
}
.cn-sync-brief-head h4 { margin: 3px 0 4px; color: var(--ink); font-size: 18px; letter-spacing: -.015em; }
.cn-sync-brief-head p { max-width: 700px; margin: 0; color: var(--ink-3); font-size: 12px; line-height: 1.45; }
.cn-attention-count {
  flex: none;
  padding: 6px 9px;
  border: 1px solid color-mix(in srgb, var(--orange) 32%, var(--line));
  border-radius: 999px;
  background: var(--orange-bg);
  color: var(--orange);
  font-size: 11px;
  font-weight: 750;
}
.cn-attention-count.clear { border-color: color-mix(in srgb, var(--green) 30%, var(--line)); background: var(--green-bg); color: var(--green); }
.cn-sync-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 18px 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--line); }
.cn-sync-metrics > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 2px 10px; padding: 10px 12px; background: var(--panel-2); }
.cn-sync-metrics span { color: var(--ink-3); font-size:10px; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.cn-sync-metrics b { grid-row: span 2; color: var(--ink); font: 750 21px/1 var(--mono); }
.cn-sync-metrics small { color: var(--ink-3); font-size:10.5px; }
.cn-result-table-wrap { width: 100%; max-width: 100%; max-height: 430px; overflow: auto; border-top: 1px solid var(--line-2); }
.cn-result-table { min-width: 880px; table-layout: fixed; }
.cn-result-table th,
.cn-result-table td { padding: 9px 12px; overflow: hidden; white-space: normal; line-height: 1.4; overflow-wrap: anywhere; }
.cn-result-table th { padding-top: 8px; padding-bottom: 8px; }
.cn-result-table th + th,
.cn-result-table td + td { border-left: 1px solid color-mix(in srgb, var(--line-2) 68%, transparent); }
.cn-result-table th:nth-child(1) { width: 14%; }
.cn-result-table th:nth-child(2) { width: 16%; }
.cn-result-table th:nth-child(3) { width: 16%; }
.cn-result-table th:nth-child(4) { width: 13%; }
.cn-result-table th:nth-child(5) { width: 21%; }
.cn-result-table th:nth-child(6) { width: 20%; }
.cn-result-table th { position: sticky; top: 0; z-index: 1; background: var(--panel-2); }
.cn-result-table td { vertical-align: top; }
.cn-result-table .mono { font: 700 11.5px/1.4 var(--mono); color: var(--ink-2); }
.cn-result-table td > small,
.cn-result-stack small { display: block; max-width: 100%; margin-top: 4px; overflow: hidden; color: var(--ink-3); font-size:10.5px; line-height: 1.45; white-space: normal; overflow-wrap: anywhere; }
.cn-result-stack b { display: block; color: var(--ink-2); font-size: 11px; line-height: 1.35; }
.cn-rail-state,
.cn-result-action { display: inline-flex; align-items: center; width: fit-content; padding: 3px 6px; border-radius: 5px; font-size:10px; font-weight: 750; }
.cn-rail-state.info { background: var(--blue-bg); color: var(--blue); }
.cn-rail-state.good,
.cn-result-action.good { background: var(--green-bg); color: var(--green); }
.cn-rail-state.warn,
.cn-result-action.warn { background: var(--orange-bg); color: var(--orange); }
.cn-result-action.danger { background: var(--red-bg); color: var(--red); }
.cn-result-action.neutral { background: var(--grey-bg); color: var(--ink-3); }
.cn-missing-value { color: var(--orange); font-size: 10.5px; font-weight: 700; }
.cn-unmatched { border-top: 1px solid var(--line-2); }
.cn-unmatched summary { padding: 11px 18px; color: var(--ink-2); cursor: pointer; font-size: 11px; font-weight: 700; }
.cn-unmatched summary span { margin-left: 5px; color: var(--ink-3); font-weight: 500; }
.cn-unmatched > div { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 18px 13px; }
.cn-unmatched > div > span { padding: 4px 7px; border: 1px solid var(--line-2); border-radius: 5px; background: var(--panel-2); color: var(--ink-3); font-size:10.5px; }
.cn-unmatched.error summary { color: var(--red); }
.cn-empty-result { padding: 18px; border-top: 1px solid var(--line-2); color: var(--ink-3); font-size: 12px; text-align: center; }

@media (max-width: 900px) {
  .cn-sync-brief-head { flex-direction: column; }
  .cn-sync-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .cn-sync-metrics { grid-template-columns: 1fr; }
}

td.actions.track { white-space: nowrap; }
td.actions.track button { font-size: 13px; padding: 4px 4px; }
td.actions.track button:hover:not(:disabled) { color: var(--accent); background: var(--accent-soft); }
td.actions.track button:disabled { opacity: .25; cursor: default; }

/* ---------- container detail page ---------- */

.detail-page main { max-width: 1500px; }

.dhead {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: var(--shadow);
  padding: 16px 18px;
  margin-bottom: 16px;
}

.dnum {
  font-size: 25px;
  font-weight: 650;
  letter-spacing: -.01em;
}

.dsub { color: var(--ink-3); font-size: 12.5px; margin-top: 2px; }

.dstats { display: flex; gap: 26px; flex-wrap: wrap; }
.dstat { display: flex; flex-direction: column; gap: 3px; }
.dstat .label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.dhead .dactions { margin-left: auto; display: flex; gap: 8px; }
.dhead .dactions button:disabled { opacity: .4; cursor: default; }

.statuspill, .alertpill {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: 12.5px;
  font-weight: 650;
  background: var(--grey-bg);
  color: var(--ink-2);
}

.statuspill.s-boat { background: var(--blue-bg); color: var(--blue); }
.statuspill.s-discharged { background: var(--orange-bg); color: var(--amber); }
.statuspill.s-train { background: var(--red-bg); color: var(--red); }
.statuspill.s-yard { background: var(--purple-bg); color: var(--purple); }
.statuspill.s-received, .statuspill.s-closed { background: var(--green-bg); color: var(--green); }

.alertpill.a-red { background: var(--red-bg); color: var(--red); }
.alertpill.a-orange { background: var(--orange-bg); color: var(--orange); }
.alertpill.a-ok { background: var(--green-bg); color: var(--green); }

.dgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 16px;
  align-items: start;
}

.dgrid .wide { grid-column: 1 / -1; }

/* form rows */
.frow {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 7px 14px;
  border-bottom: 1px solid var(--line-2);
}

.frow:last-of-type { border-bottom: 0; }
.frow label { flex: 0 0 42%; color: var(--ink-2); font-size: 13px; }
.frow .fctl { flex: 1; min-width: 0; }
.frow .fctl input, .frow .fctl select, .frow .fctl textarea { width: 100%; }
.frow .fhint { font-size: 11.5px; color: var(--ink-3); margin-top: 3px; }
.detail-page textarea { width: 100%; resize: vertical; font: inherit; }

/* timeline */
.tlwrap { padding: 14px 16px 16px; }

ol.timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 4px;
  position: relative;
}

ol.timeline li {
  position: relative;
  padding: 0 0 16px 24px;
  border-left: 2px solid var(--line);
}

ol.timeline li:last-child { border-left-color: transparent; padding-bottom: 0; }

ol.timeline .mdot {
  position: absolute;
  left: -7px;
  top: 3px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--panel);
  border: 2px solid var(--line);
}

ol.timeline li.done { border-left-color: var(--green); }
ol.timeline li.done .mdot { background: var(--green); border-color: var(--green); }
ol.timeline li.future .mdot { border-color: var(--accent); background: var(--accent-soft); }
ol.timeline li.blank .mtop { color: var(--ink-3); }
ol.timeline .mtop { font-size: 13.5px; }
ol.timeline .small { font-size: 11.5px; }

.tag {
  display: inline-block;
  padding: 0 6px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .03em;
  background: var(--grey-bg);
  color: var(--ink-2);
}

.tag.ok { background: var(--green-bg); color: var(--green); }
.tag.plan { background: var(--blue-bg); color: var(--blue); }
.tag.bad { background: var(--red-bg); color: var(--red); }
.tag.today { background: var(--orange-bg); color: var(--orange); }

/* risk + money */
.riskbox {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  background: var(--grey-bg);
  color: var(--ink-2);
}

.riskbox.ok { background: var(--green-bg); color: var(--green); }
.riskbox.warn { background: var(--orange-bg); color: var(--orange); }
.riskbox.bad { background: var(--red-bg); color: var(--red); }
.riskbox.none { background: var(--pink-bg); color: var(--pink); }
.warnrow { color: var(--purple); font-weight: 600; }

/* carrier event log */
.evwrap { max-height: 420px; overflow: auto; }
table.ev td { font-size: 12.5px; }
table.ev tr.planned td { color: var(--ink-3); }
table.ev .mono { font-family: var(--mono); }

/* grid → detail affordance */
table.grid td.cncp a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dotted var(--ink-3);
}

table.grid td.cncp a:hover { color: var(--accent); border-bottom-color: var(--accent); }
table.grid td.rowno a { color: var(--ink-3); text-decoration: none; }
table.grid td.rowno a:hover { color: var(--accent); }
.btn.off { opacity: .35; pointer-events: none; }

@media print {
  header.top, nav.tabs, .toolbar, .toast { display: none !important; }
  main { padding: 0; }
  .panel { break-inside: avoid; box-shadow: none; }
}

td.actions.track a.opendetail {
  text-decoration: none;
  color: var(--ink-3);
  padding: 4px 5px;
  border-radius: 5px;
  font-size: 13px;
}

td.actions.track a.opendetail:hover { color: var(--accent); background: var(--accent-soft); }

/* purchase-order contents on the container page */
.pohead {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  padding: 11px 14px;
  border-bottom: 1px solid var(--line-2);
  background: var(--panel-2);
  font-size: 13px;
}

.pohead .label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-right: 4px;
}

/* SKU column in the purchase-order panel */
table.data td.sku {
  font-family: var(--mono);
  font-size: 11.5px;
  color: var(--ink-2);
  white-space: nowrap;
}

/* print controls on the purchase-order panel */
.printbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  border-top: 1px solid var(--line-2);
}

.printbar .subtle { flex: 1; min-width: 200px; }

/* ---------- dashboard: summary ---------- */

.sumline {
  padding: 13px 14px 11px;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ink);
  border-bottom: 1px solid var(--line-2);
}

.sumgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.sumstat {
  padding: 11px 14px;
  border-right: 1px solid var(--line-2);
  border-bottom: 1px solid var(--line-2);
}

.sumstat .label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.sumstat .v {
  font-size: 19px;
  font-weight: 650;
  letter-spacing: -.01em;
  margin-top: 3px;
  font-variant-numeric: tabular-nums;
}

.sumstat .sub { font-size: 11.5px; color: var(--ink-2); margin-top: 2px; }

/* ---------- dashboard: check immediately ---------- */

table.checknow td { padding-top: 7px; padding-bottom: 7px; }
table.checknow td.sev { width: 20px; padding-right: 0; }
table.checknow .mono { font-family: var(--mono); font-size: 12.5px; }
table.checknow a { color: var(--accent); text-decoration: none; }
table.checknow a:hover { text-decoration: underline; }

.dotsev {
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ink-3);
}

tr.sev-critical .dotsev { background: #d0454c; box-shadow: 0 0 0 3px var(--red-bg); }
tr.sev-critical td b { color: var(--red); }
tr.sev-high .dotsev { background: #e08a2e; }
tr.sev-high td b { color: var(--orange); }
tr.sev-medium .dotsev { background: var(--ink-3); }

.gaps { border-top: 1px solid var(--line-2); }

.gap {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line-2);
  font-size: 13px;
  color: var(--ink-2);
}

.gap:last-child { border-bottom: 0; }
.gap > div { flex: 1; }
.gap.red { background: var(--red-bg); color: var(--red); }
.gap.orange { background: var(--orange-bg); color: var(--orange); }
.gap.grey { background: var(--panel-2); }
.gap.red b, .gap.orange b { color: inherit; }

/* ---------- change log / sync digest ---------- */

.digest { border-top: 1px solid var(--line-2); }

.digesthead {
  padding: 9px 14px;
  font-size: 12px;
  font-weight: 650;
  color: var(--ink-2);
  background: var(--panel-2);
}

.loggroup { border-bottom: 1px solid var(--line); }
.loggroup:last-child { border-bottom: 0; }

.loghead {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--panel-2);
  font-size: 12px;
  font-weight: 650;
  color: var(--ink-2);
  font-variant-numeric: tabular-nums;
}

.drow {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  padding: 7px 14px 7px 18px;
  border-bottom: 1px solid var(--line-2);
  font-size: 13px;
  border-left: 3px solid transparent;
}

.drow:last-child { border-bottom: 0; }
.drow .mono { font-family: var(--mono); font-size: 12px; color: var(--accent); text-decoration: none; }
.drow .mono:hover { text-decoration: underline; }
.drow b { font-weight: 600; }
.drow .act { color: var(--accent); font-weight: 550; }

.drow.tone-alert { border-left-color: #d0454c; background: var(--red-bg); }
.drow.tone-alert b { color: var(--red); }
.drow.tone-warn { border-left-color: #e08a2e; }
.drow.tone-warn b { color: var(--orange); }
.drow.tone-good { border-left-color: #23a55a; }
.drow.tone-good b { color: var(--green); }
.drow.tone-info { border-left-color: var(--line); }

/* dashboard: recent changes header */
.recenthead {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line-2);
  background: var(--panel-2);
  font-size: 13px;
  color: var(--ink-2);
}

.recenthead .grow { flex: 1; min-width: 20px; }

/* ---------- ask claude ---------- */

.askbar {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  padding: 11px 14px 4px;
}

.aihead {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 14px;
  border-top: 1px solid var(--line-2);
  background: var(--panel-2);
  font-size: 13px;
}

.aihead .grow { flex: 1; min-width: 20px; }

.aibody {
  padding: 4px 16px 10px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink);
  max-width: 80ch;
}

.aibody p { margin: 8px 0; }
.aibody h4 {
  margin: 16px 0 6px;
  font-size: 12px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.aibody ul { margin: 8px 0; padding-left: 20px; }
.aibody li { margin: 3px 0; }
.aibody code {
  font-family: var(--mono);
  font-size: 12.5px;
  background: var(--grey-bg);
  padding: 1px 5px;
  border-radius: 4px;
}
.aibody pre {
  font-family: var(--mono);
  font-size: 12.5px;
  background: var(--panel-2);
  border: 1px solid var(--line-2);
  border-radius: 8px;
  padding: 10px 12px;
  overflow-x: auto;
  white-space: pre-wrap;
}

/* ---------- schedule ----------
   The month answers "when"; the agenda adds readiness and next action. Event
   colours stay fixed, but text labels carry the meaning for accessibility. */

.evkey {
  display: inline-block;
  width: 9px; height: 9px;
  border-radius: 2px;
  margin-right: 5px;
  vertical-align: -1px;
}
.ev-mtl { background: var(--accent); }
.ev-van { background: var(--purple); }
.ev-lfd { background: var(--red); }
.ev-etd { background: var(--slate); }

.schedule-controls {
  display: grid;
  grid-template-columns: auto minmax(230px, 1fr);
  align-items: end;
  gap: 12px;
  margin-bottom: 10px;
}
.calnav { display: flex; align-items: center; gap: 6px; }
.calnav .calarrow { width: 34px; padding-left: 0; padding-right: 0; font-size: 18px; line-height: 1.2; }
#calLabel { min-width: 150px; margin-left: 5px; font-size: 16px; letter-spacing: -.01em; }
.calsearch { display: grid; gap: 3px; max-width: 420px; width: 100%; justify-self: end; }
.calsearch > span, .calfilters-label {
  color: var(--ink-3);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.calsearch input { width: 100%; padding: 7px 10px; }
.view-switch {
  display: inline-flex;
  align-items: center;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel-2);
}
.view-switch button {
  appearance: none;
  border: 0;
  border-radius: 6px;
  padding: 5px 11px;
  background: transparent;
  color: var(--ink-2);
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}
.view-switch button[aria-pressed="true"],
.view-switch button[aria-selected="true"] { background: var(--panel); color: var(--ink); box-shadow: var(--shadow); }

.container-heading-actions {
  display: grid;
  justify-items: end;
  gap: 7px;
}
.container-view-switch { max-width: 100%; }
.container-view-switch button { min-height: 30px; }

.calfilters {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.calfilters-label { margin-right: 2px; }
.calfilter {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  gap: 3px;
  padding: 4px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  color: var(--ink-2);
  font-size: 12px;
  cursor: pointer;
  user-select: none;
}
.calfilter:hover { border-color: var(--ink-3); }
.calfilter input { margin: 0 3px 0 0; accent-color: var(--accent); }
.calfilter:has(input:checked) { color: var(--ink); border-color: color-mix(in srgb, var(--accent) 35%, var(--line)); }
.empty-layer { opacity: .52; cursor: not-allowed; }
.nolayer { margin-left: 3px; color: var(--ink-3); font-size: 10px; font-style: italic; }

.schedule-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(135px, 1fr));
  gap: 9px;
  margin: 0 0 12px;
}
.schedule-kpi {
  appearance: none;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1px 8px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel);
  color: var(--ink);
  text-align: left;
  font: inherit;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(20, 30, 44, .03);
}
.schedule-kpi:hover { border-color: var(--accent); transform: translateY(-1px); }
.schedule-kpi span { align-self: center; color: var(--ink-2); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.schedule-kpi b { grid-row: 1 / 3; grid-column: 2; align-self: center; font-size: 24px; line-height: 1; font-variant-numeric: tabular-nums; }
.schedule-kpi small { color: var(--ink-3); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.schedule-kpi.alarm b { color: var(--red); }
.schedule-kpi.warn b { color: var(--orange); }
.schedule-kpi.good b { color: var(--green); }
.schedule-kpi.blue b { color: var(--accent); }
.schedule-kpi.muted b { color: var(--ink-2); }

.cal-summary-note {
  display: flex;
  align-items: center;
  gap: 6px 18px;
  flex-wrap: wrap;
  min-height: 38px;
  margin-bottom: 10px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-2);
  color: var(--ink-2);
  font-size: 12px;
}
.cal-summary-note b { color: var(--ink); }
.cal-summary-note.empty { color: var(--ink-3); }
.calstat { white-space: nowrap; }
.cal-search-result { margin-left: auto; color: var(--accent); }

#calendar { max-width: 100%; }

.calgrid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.calhead {
  background: var(--panel-2);
  padding: 8px 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.calhead b { display: none; }

.calcell {
  background: var(--panel);
  min-height: 132px;
  padding: 7px 6px 9px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow: hidden;
}
.calcell.expanded { overflow: visible; }
.calcell.other { background: var(--panel-2); }
.calcell.other .caldate { opacity: .58; }
.calcell.past:not(.has-events) { opacity: .58; }
.calcell.today { background: var(--accent-soft); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 36%, transparent); }

.caldate {
  appearance: none;
  width: max-content;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 12px;
  font-weight: 650;
  color: var(--ink-2);
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 1px;
  cursor: pointer;
}
.caldate:hover > span:first-child { color: var(--accent); text-decoration: underline; }
.todaytag {
  font-size:10.5px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--accent);
}
.calitems { display: grid; gap: 3px; }

.calev {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  line-height: 1.45;
  padding: 3px 4px;
  border: 1px solid var(--line-2);
  border-left: 3px solid var(--ink-3);
  border-radius: 5px;
  background: var(--panel-2);
  color: var(--ink);
  text-decoration: none;
}
.calev:hover { background: var(--accent-soft); color: var(--accent); }
.calev.ev-mtl { border-left-color: var(--accent); background: var(--panel-2); }
.calev.ev-van { border-left-color: var(--purple); background: var(--panel-2); }
.calev.ev-lfd { border-left-color: var(--red); background: var(--red-bg); }
.calev.ev-etd { border-left-color: var(--slate); background: var(--panel-2); }
.calev-id { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--mono); letter-spacing: -.35px; }
.calev-kind { color: var(--ink-3); font-family: inherit; font-size:10px; font-weight: 800; letter-spacing: .04em; }
.calev-risk { display: grid; place-items: center; width: 14px; height: 14px; border-radius: 50%; background: var(--orange-bg); color: var(--orange); font: 800 9px/1 sans-serif; }
.calev.needs-attention { border-top-color: color-mix(in srgb, var(--orange) 20%, var(--line)); border-right-color: color-mix(in srgb, var(--orange) 20%, var(--line)); }

.calmore {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--ink-3);
  font: inherit;
  font-size: 11px;
  text-align: left;
  padding: 0 5px;
  cursor: pointer;
}
.calmore:hover { color: var(--accent); text-decoration: underline; }

/* Agenda: one row per milestone, with operational readiness before navigation. */
.agenda-list { display: grid; gap: 10px; }
.agenda-day {
  scroll-margin-top: 118px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  box-shadow: var(--shadow);
}
.agenda-day.today { border-color: color-mix(in srgb, var(--accent) 52%, var(--line)); }
.agenda-day-head {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  gap: 10px;
  padding: 9px 13px;
  border-bottom: 1px solid var(--line-2);
  background: var(--panel-2);
}
.agenda-date { display: flex; align-items: baseline; gap: 5px; color: var(--accent); }
.agenda-date strong { font-size: 23px; line-height: 1; }
.agenda-date span { font-size: 10px; font-weight: 800; text-transform: uppercase; }
.agenda-day-head > div:last-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.agenda-day-head > div:last-child > span { color: var(--ink-3); font-size: 11.5px; }
.agenda-event {
  display: grid;
  grid-template-columns: 140px 220px minmax(210px, 1fr) minmax(190px, auto) auto;
  align-items: center;
  gap: 12px;
  min-height: 57px;
  padding: 8px 13px;
  border-top: 1px solid var(--line-2);
}
.agenda-event:first-child { border-top: 0; }
.agenda-event:hover { background: var(--panel-2); }
.agenda-type { display: inline-flex; align-items: center; width: max-content; padding: 3px 7px; border-radius: 999px; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.agenda-type.ev-mtl { color: var(--blue); background: var(--blue-bg); }
.agenda-type.ev-van { color: var(--purple); background: var(--purple-bg); }
.agenda-type.ev-lfd { color: var(--red); background: var(--red-bg); }
.agenda-type.ev-etd { color: var(--slate); background: var(--grey-bg); }
.agenda-container { display: grid; gap: 3px; min-width: 0; }
.agenda-container > a { color: var(--accent); font-size: 12px; font-weight: 700; text-decoration: none; }
.agenda-container > span { color: var(--ink-2); font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-container .statuspill { margin-left: 2px; }
.agenda-readiness { color: var(--ink-2); font-size: 12px; }
.schedule-issues { min-width: 0; }
.agenda-open { color: var(--accent); font-size: 11.5px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.agenda-open:hover { text-decoration: underline; }
.calendar-empty {
  display: grid;
  place-items: center;
  gap: 4px;
  min-height: 210px;
  padding: 30px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  color: var(--ink-3);
  text-align: center;
}
.calendar-empty b { color: var(--ink-2); }

.schedule-missing { margin-top: 16px; }
.schedule-missing-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.schedule-missing-head h2 { margin: 0; font-size: 16px; letter-spacing: -.01em; }
.schedule-missing-head p { margin: 3px 0 0; color: var(--ink-2); font-size: 12px; }
.schedule-missing-list { display: grid; }
.schedule-missing-row {
  display: grid;
  grid-template-columns: 140px 90px minmax(120px, 1fr) minmax(150px, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  border-top: 1px solid var(--line-2);
  color: var(--ink-2);
  font-size: 12px;
  text-decoration: none;
}
.schedule-missing-row:first-child { border-top: 0; }
.schedule-missing-row:hover { background: var(--panel-2); }
.schedule-missing-row .mono { color: var(--accent); }
.schedule-missing-row b { color: var(--accent); font-size: 11.5px; white-space: nowrap; }
.schedule-ready { margin-top: 16px; padding: 12px 14px; border: 1px solid color-mix(in srgb, var(--green) 30%, var(--line)); border-radius: 9px; background: var(--green-bg); color: var(--green); }

@media (max-width: 1100px) {
  .schedule-kpis { grid-template-columns: repeat(3, minmax(145px, 1fr)); }
  .agenda-event { grid-template-columns: 130px 205px 1fr auto; }
  .agenda-event .schedule-issues { grid-column: 2 / 4; }
  .agenda-open { grid-column: 4; grid-row: 1 / 3; }
}

@media (max-width: 820px) {
  .schedule-controls { grid-template-columns: 1fr auto; align-items: center; }
  .calsearch { grid-column: 1 / -1; grid-row: 2; max-width: none; }
  #calendar { overflow-x: auto; padding-bottom: 5px; }
  .calgrid { min-width: 760px; }
  .calcell { min-height: 118px; }
  .agenda-event { grid-template-columns: 125px 1fr auto; }
  .agenda-readiness { grid-column: 2 / 4; }
  .agenda-event .schedule-issues { grid-column: 2 / 4; }
  .agenda-open { grid-column: 3; grid-row: 1; }
}

@media (max-width: 620px) {
  .schedule-controls { grid-template-columns: 1fr; }
  .calnav { flex-wrap: wrap; }
  #calLabel { order: -1; width: 100%; margin: 0 0 4px; font-size: 18px; }
  .view-switch { justify-self: start; }
  .calfilters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; scrollbar-width: none; }
  .calfilters::-webkit-scrollbar { display: none; }
  .calfilters-label { display: none; }
  .calfilter { flex: 0 0 auto; }
  .schedule-kpis { grid-template-columns: 1fr 1fr; gap: 7px; }
  .schedule-kpi { padding: 9px 10px; }
  .schedule-kpi:last-child { grid-column: 1 / -1; }
  .agenda-day-head { grid-template-columns: 42px 1fr; }
  .agenda-day-head > div:last-child { display: grid; gap: 1px; }
  .agenda-event { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 7px 10px; padding: 10px 12px; }
  .agenda-type { order: 1; }
  .agenda-container { order: 2; flex: 1 1 170px; }
  .agenda-open { order: 3; margin-left: auto; }
  .agenda-readiness { order: 4; flex: 1 1 100%; }
  .agenda-event .schedule-issues { order: 5; flex: 1 1 100%; }
  .schedule-missing-head { align-items: flex-start; }
  .schedule-missing-row { grid-template-columns: 1fr auto; gap: 4px 10px; }
  .schedule-missing-row > span:nth-child(3), .schedule-missing-row > span:nth-child(4) { grid-column: 1 / -1; }
  .schedule-missing-row b { grid-column: 2; grid-row: 1; }
}

/* ---- column picker ---- */
.colgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  padding: 0 14px 4px;
}
@media (max-width: 900px) { .colgrid { grid-template-columns: 1fr; } }
.colhead {
  font-size: 11.5px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}
.collist { list-style: none; margin: 0; padding: 0; max-height: 340px; overflow-y: auto; }
.collist li {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  border-bottom: 1px solid var(--line-2);
}
.collist li:hover { background: var(--panel-2); }
.collist .colname { font-size: 13px; }
.collist .btn.small { padding: 1px 7px; line-height: 1.5; }

/* Claude answers one-row-per-container as a markdown table; keep it readable and
   let a wide one scroll inside the card rather than stretching the page. */
.aibody .aitable {
  width: 100%;
  border-collapse: collapse;
  margin: 10px 0;
  font-size: 13px;
  display: block;
  overflow-x: auto;
}
.aibody .aitable th,
.aibody .aitable td {
  border-bottom: 1px solid var(--line-2);
  padding: 6px 10px 6px 0;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}
.aibody .aitable th {
  color: var(--muted);
  font-weight: 600;
  font-size: 11.5px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* One block per exchange, stacked oldest first, so a thread reads as a thread. */
.aiturn + .aiturn { border-top: 1px solid var(--line); margin-top: 4px; }

.aicost { border-top: 1px solid var(--line-2); }

/* =====================================================================
   OPERATIONS UX — exception-first shell, trust states and issue language
   ===================================================================== */

main { width: 100%; margin: 0 auto; padding: 22px clamp(14px, 2vw, 28px) 34px; }

.trust-menu { position: relative; flex: none; }
.trust-menu > summary {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: 7px;
  padding: 5px 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel-2);
  color: var(--ink-2);
  font-size: 11.5px;
  font-weight: 700;
  list-style: none;
  cursor: pointer;
  white-space: nowrap;
}
.trust-menu > summary::-webkit-details-marker { display: none; }
.trust-menu > summary:hover,
.trust-menu[open] > summary { border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); color: var(--ink); }
.trust-menu-indicator {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 14%, transparent);
}
.trust-menu:has(.trust-bad) .trust-menu-indicator {
  background: var(--orange);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--orange) 14%, transparent);
}
.trust-popover {
  position: absolute;
  z-index: 100;
  top: calc(100% + 7px);
  right: 0;
  width: min(330px, calc(100vw - 24px));
  display: grid;
  gap: 7px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--panel);
  box-shadow: 0 16px 48px rgba(7, 18, 27, .24);
}
.trust-menu:not([open]) > .trust-popover { display: none; }
.trust-popover-head { display: grid; gap: 2px; padding: 2px 2px 8px; border-bottom: 1px solid var(--line-2); }
.trust-popover-head b { font-size: 12px; }
.trust-popover-head span { color: var(--ink-3); font-size: 10.5px; }
.trust-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 31px;
  padding: 5px 8px;
  border-radius: 7px;
  background: var(--green-bg);
  color: var(--green);
  font-size: 11px;
  white-space: nowrap;
}
.trust-item::before { content: "✓"; font-weight: 800; }
.trust-item.trust-bad { background: var(--orange-bg); color: var(--orange); }
.trust-item.trust-bad::before { content: "!"; }

.quick-menu { position: relative; }
.quick-menu > summary { list-style: none; user-select: none; }
.quick-menu > summary::-webkit-details-marker { display: none; }
.quick-menu[open] > summary { border-color: var(--accent); color: var(--accent); }
.quick-menu-pop {
  position: absolute;
  right: 0;
  top: calc(100% + 7px);
  z-index: 80;
  min-width: 190px;
  display: grid;
  gap: 5px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  box-shadow: var(--shadow);
}
.quick-menu-pop .btn { text-align: left; padding: 7px 10px; }

nav.tabs { overflow-x: auto; scrollbar-width: none; }
nav.tabs::-webkit-scrollbar { display: none; }
nav.tabs .tab-spacer { flex: 1; min-width: 18px; }
nav.tabs button.tab-utility { font-size: 12px; color: var(--ink-3); }

.page-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin: 2px 0 14px;
}
.page-heading.compact { margin-bottom: 16px; }
.page-heading h1 { margin: 0; font-size: 27px; line-height: 1.15; letter-spacing: -.03em; }
.eyebrow {
  margin-bottom: 3px;
  color: var(--accent);
  font-size: 10.5px;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.page-heading-note { max-width: 54ch; color: var(--ink-2); font-size: 12.5px; text-align: right; }

.kpi { position: relative; transition: border-color .15s, transform .15s, box-shadow .15s; }
.kpi.clickable:hover { transform: translateY(-1px); box-shadow: 0 5px 18px rgba(20, 30, 44, .09); }
.kpi.clickable::after { content: "View"; position: absolute; top: 12px; right: 13px; color: var(--ink-3); font-size: 10px; }

.issue-list { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; min-width: 170px; }
.issue {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  border: 1px solid transparent;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.45;
  white-space: nowrap;
}
.issue > span:first-child { font-weight: 850; }
.issue-critical { color: var(--red); background: var(--red-bg); border-color: color-mix(in srgb, var(--red) 18%, transparent); }
.issue-high { color: var(--orange); background: var(--orange-bg); }
.issue-medium { color: var(--pink); background: var(--pink-bg); }
.issue-info { color: var(--blue); background: var(--blue-bg); }
.issue-ok { color: var(--green); background: var(--green-bg); }
.issue-more { color: var(--ink-2); background: var(--grey-bg); }

td.issues { padding: 5px 8px !important; min-width: 220px; white-space: normal !important; }
td.issues .issue-list { flex-wrap: nowrap; }

.action-section + .action-section, .action-section + .gaps { border-top: 1px solid var(--line); }
.action-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  color: var(--ink-2);
  background: var(--panel-2);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.action-section-head b { min-width: 23px; margin-left: auto; padding: 1px 7px; border-radius: 20px; text-align: center; background: var(--grey-bg); color: var(--ink-2); }
.action-row {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) minmax(270px, auto) auto;
  align-items: center;
  gap: 14px;
  padding: 9px 14px;
  border-top: 1px solid var(--line-2);
}
.action-row:hover { background: var(--panel-2); }
.action-main { display: grid; grid-template-columns: 185px 1fr; align-items: center; gap: 12px; min-width: 0; }
.action-identity { display: flex; align-items: center; gap: 8px; }
.action-identity .mono { color: var(--accent); font-family: var(--mono); font-size: 12px; text-decoration: none; }
.action-main b { display: block; font-size: 13px; }
.action-empty, .action-more { padding: 12px 14px; color: var(--ink-3); font-size: 12.5px; }
.action-more { border-top: 1px solid var(--line-2); }

table.grid tbody tr.editing-row td { background: var(--accent-soft); }
table.grid tbody tr.editing-row td.sticky-l { background: var(--accent-soft); }
.compact-grid table.grid { font-size: 12px; }
.compact-grid table.grid td input,
.compact-grid table.grid td select { padding-top: 3px; padding-bottom: 3px; }
.compact-grid table.grid td.calc,
.compact-grid table.grid td.rowno,
.compact-grid table.grid td.cncp,
.compact-grid table.grid td.issues { padding-top: 2px !important; padding-bottom: 2px !important; }
.compact-grid .issue { padding-top: 1px; padding-bottom: 1px; font-size: 10.5px; }

.attention-strip {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) repeat(3, minmax(120px, auto));
  align-items: center;
  gap: 18px;
  margin: -4px 0 16px;
  padding: 12px 16px;
  border: 1px solid var(--orange);
  border-radius: 10px;
  background: var(--orange-bg);
}
.attention-strip.ready { border-color: var(--green); background: var(--green-bg); }

.source-primary {
  border-color: color-mix(in srgb, var(--blue) 38%, var(--line));
  box-shadow: 0 8px 26px rgba(28, 72, 122, .07);
}
.source-primary > h2::after {
  content: "System of record";
  display: inline-block;
  margin-left: 8px;
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--blue-bg);
  color: var(--blue);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  vertical-align: 2px;
}
.attention-meta { display: flex; flex-direction: column; gap: 1px; }
.attention-meta span { color: var(--ink-3); font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.attention-meta b { font-size: 12.5px; font-weight: 650; }

.journey-panel { order: 1; }
.paperwork-panel { order: 2; }
.shipment-documents-panel { order: 3; }
.risk-panel { order: 4; }
.cost-panel { order: 5; }
.dates-panel { order: 6; }
.movers-panel { order: 7; }
.shipment-panel { order: 8; }
.notes-panel { order: 9; }
.contents-panel { order: 10; }
.events-panel { order: 11; }
.history-panel { order: 12; }

/* ---------- container detail: decision-first workspace ---------- */

.detail-page main {
  width: 100%;
  max-width: 1580px;
  margin: 0 auto;
  padding: 22px 26px 44px;
}

.detail-page header.top { padding-bottom: 10px; }
.detail-page .brand-row { align-items: center; }
.detail-page #jump { width: 210px !important; }

.detail-page .dhead {
  display: grid;
  grid-template-columns: minmax(230px, .9fr) minmax(520px, 2.2fr) auto;
  align-items: center;
  gap: 22px;
  padding: 19px 20px;
  margin-bottom: 14px;
  border-radius: 12px;
}

.detail-page .dnum { font-size: 28px; font-weight: 720; letter-spacing: -.035em; }
.detail-page .dsub { margin-top: 4px; line-height: 1.45; }
.detail-page .dstats {
  display: grid;
  grid-template-columns: .7fr 1fr 1.35fr 1.25fr 1fr;
  gap: 18px;
  min-width: 0;
}
.detail-page .dstat { min-width: 0; }
.detail-page .dstat > span:last-child:not(.statuspill):not(.alertpill) { font-size: 13px; }
.detail-page .dstat-route > span:last-child { line-height: 1.35; white-space: normal; }
.detail-page .dactions { margin-left: 0; justify-content: flex-end; flex-wrap: wrap; }

.detail-decision-grid {
  display: grid;
  grid-template-columns: minmax(520px, 1.8fr) minmax(250px, .85fr) minmax(270px, .9fr);
  gap: 14px;
  margin-bottom: 14px;
}

.detail-decision-card,
.detail-summary-card {
  min-width: 0;
  overflow: hidden;
  padding: 18px 19px 0;
}

.detail-summary-card { display: flex; flex-direction: column; }

.detail-card-heading,
.detail-strip-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.detail-card-heading h2,
.detail-strip-heading h2 {
  margin: 2px 0 0;
  font-size: 16px;
  line-height: 1.25;
  letter-spacing: -.015em;
}

.detail-score {
  display: grid;
  grid-template-columns: auto auto auto;
  align-items: baseline;
  gap: 3px;
  color: var(--green);
  white-space: nowrap;
}
.detail-score span { color: var(--ink-3); font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; margin-right: 4px; }
.detail-score b { display: grid; place-items: center; width: 38px; height: 38px; border: 2px solid currentColor; border-radius: 50%; font-size: 17px; }
.detail-score small { color: var(--ink-3); font-size: 10px; }

.detail-recommendation {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  margin-top: 15px;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-2);
}
.detail-recommendation > i { flex: 0 0 12px; width: 12px; height: 12px; margin-top: 5px; border-radius: 50%; border: 3px solid currentColor; box-shadow: 0 0 0 5px color-mix(in srgb, currentColor 12%, transparent); }
.detail-recommendation > div { min-width: 0; }
.detail-recommendation span { color: var(--ink-3); font-size: 10px; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.detail-recommendation h3 { margin: 2px 0 2px; font-size: 20px; letter-spacing: -.025em; }
.detail-recommendation p { margin: 0; color: var(--ink-2); font-size: 13px; }
.detail-recommendation.tone-critical { color: var(--red); background: var(--red-bg); border-color: color-mix(in srgb, var(--red) 22%, var(--line)); }
.detail-recommendation.tone-high,
.detail-recommendation.tone-watch { color: var(--orange); background: var(--orange-bg); border-color: color-mix(in srgb, var(--orange) 22%, var(--line)); }
.detail-recommendation.tone-healthy { color: var(--green); background: var(--green-bg); border-color: color-mix(in srgb, var(--green) 22%, var(--line)); }
.detail-recommendation.tone-neutral { color: var(--accent); background: var(--accent-soft); }
.detail-recommendation h3,
.detail-recommendation p { color: var(--ink); }

.detail-reasons { display: grid; gap: 5px; margin: 11px 0 0; padding: 0; list-style: none; }
.detail-reasons li { position: relative; padding-left: 18px; color: var(--ink-2); font-size: 12.5px; }
.detail-reasons li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--green); font-weight: 800; }

.detail-decision-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin: 15px -19px 0;
  padding: 13px 19px;
  border-top: 1px solid var(--line-2);
}
.detail-cost-metrics { display: flex; align-items: stretch; gap: 0; min-width: 0; }
.detail-cost-metrics > div { min-width: 120px; padding: 0 18px; border-left: 1px solid var(--line); }
.detail-cost-metrics > div:first-child { padding-left: 0; border-left: 0; }
.detail-cost-metrics span { display: block; color: var(--ink-3); font-size:10.5px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.detail-cost-metrics b { display: block; margin-top: 2px; font-size: 20px; line-height: 1.2; }
.detail-cost-metrics b small { font-size: 11px; font-weight: 600; color: var(--ink-2); }
.detail-cost-metrics small { color: var(--ink-3); font-size: 10.5px; }

.detail-evidence { margin: 0 -19px; padding: 0 19px 13px; border-top: 1px solid var(--line-2); }
.detail-evidence summary { padding: 10px 0 5px; color: var(--ink-2); font-size: 12px; font-weight: 650; cursor: pointer; }
.detail-evidence span { display: block; padding: 2px 0 2px 14px; color: var(--ink-3); font-size: 11.5px; }

.detail-mini-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 18px; border: 1px solid var(--line-2); border-radius: 8px; overflow: hidden; }
.detail-mini-metrics > div { min-width: 0; padding: 10px 11px; border-left: 1px solid var(--line-2); }
.detail-mini-metrics > div:first-child { border-left: 0; }
.detail-mini-metrics span { display: block; color: var(--ink-3); font-size: 10px; line-height: 1.25; }
.detail-mini-metrics b { display: block; margin-top: 4px; font-size: 19px; line-height: 1; }
.detail-mini-metrics b.danger { color: var(--red); }
.detail-mini-metrics b.warning { color: var(--orange); }
.detail-mini-metrics b.positive { color: var(--green); }
.detail-method { padding: 4px 7px; border-radius: 5px; background: var(--accent-soft); color: var(--accent); font-size:10.5px; font-weight: 700; white-space: nowrap; }

.detail-ready-date { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding: 8px 1px; border-bottom: 1px solid var(--line-2); }
.detail-ready-date span { color: var(--ink-3); font-size: 10.5px; }
.detail-ready-date b { font-size: 12.5px; }

.detail-empty-state { display: flex; flex-direction: column; gap: 2px; margin-top: 12px; padding: 10px 11px; border-radius: 8px; background: var(--panel-2); }
.detail-empty-state b { font-size: 12.5px; }
.detail-empty-state span { color: var(--ink-3); font-size: 11px; line-height: 1.35; }
.detail-empty-state.warning { background: var(--orange-bg); }
.detail-empty-state.warning b { color: var(--orange); }
.detail-empty-state.healthy { background: var(--green-bg); }
.detail-empty-state.healthy b { color: var(--green); }
.detail-card-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: auto -19px 0; padding: 12px 19px; border-top: 1px solid var(--line-2); color: var(--accent); font-size: 12px; font-weight: 700; text-decoration: none; }
.detail-card-link:hover { background: var(--accent-soft); }

.detail-readiness-panel,
.detail-journey-panel { margin-bottom: 14px; overflow: hidden; }
.detail-readiness-panel .detail-strip-heading,
.detail-journey-panel .detail-strip-heading { padding: 13px 16px 11px; border-bottom: 1px solid var(--line-2); }
.detail-strip-heading .issue-list { justify-content: flex-end; }
.detail-readiness-list { display: grid; grid-template-columns: repeat(5, 1fr); }
.detail-readiness-item {
  appearance: none;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 13px 15px;
  border: 0;
  border-left: 1px solid var(--line-2);
  background: transparent;
  color: var(--ink);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.detail-readiness-item:first-child { border-left: 0; }
.detail-readiness-item:hover { background: var(--panel-2); }
.detail-readiness-item i { display: grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%; background: var(--grey-bg); color: var(--ink-2); font-size: 12px; font-style: normal; font-weight: 800; }
.detail-readiness-item.complete i { color: #fff; background: var(--green); }
.detail-readiness-item.missing i { color: #fff; background: var(--red); }
.detail-readiness-item.checking i { color: var(--accent); background: var(--accent-soft); }
.detail-readiness-item span { display: flex; flex-direction: column; min-width: 0; }
.detail-readiness-item b { font-size: 12px; }
.detail-readiness-item small { overflow: hidden; color: var(--ink-3); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }
.detail-readiness-item.missing small { color: var(--red); }

.detail-journey-now { padding: 4px 9px; border-radius: 20px; background: var(--purple-bg); color: var(--purple); font-size: 11px; font-weight: 750; }
.detail-journey-panel .tlwrap { padding: 22px 20px 18px; overflow-x: auto; }
.detail-journey-panel ol.timeline { display: grid; grid-template-columns: repeat(6, minmax(145px, 1fr)); min-width: 870px; padding: 0; }
.detail-journey-panel ol.timeline li { min-width: 0; padding: 27px 10px 0; border-left: 0; text-align: center; }
.detail-journey-panel ol.timeline li::before { content: ""; position: absolute; z-index: 0; left: 50%; right: -50%; top: 6px; height: 2px; background: var(--line); }
.detail-journey-panel ol.timeline li:last-child::before { display: none; }
.detail-journey-panel ol.timeline li.done::before { background: var(--green); }
.detail-journey-panel ol.timeline .mdot { z-index: 1; left: 50%; top: 0; width: 14px; height: 14px; transform: translateX(-50%); }
.detail-journey-panel ol.timeline .mtop { font-size: 12.5px; line-height: 1.4; }
.detail-journey-panel ol.timeline .small { margin-top: 2px; font-size: 10.5px; }

.detail-section { margin-bottom: 10px; overflow: hidden; }
.detail-section > summary {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 15px;
  border-bottom: 0 solid var(--line-2);
  background: var(--panel);
  cursor: pointer;
  list-style: none;
}
.detail-section[open] > summary { border-bottom-width: 1px; }
.detail-section > summary::-webkit-details-marker { display: none; }
.detail-section > summary > span:first-child { display: flex; flex-direction: column-reverse; min-width: 0; }
.detail-section > summary strong { font-size: 14px; }
.detail-section > summary small { color: var(--ink-3); font-size: 10.5px; font-weight: 450; }
.detail-section > summary::after { content: "⌄"; margin-left: 2px; color: var(--ink-3); font-size: 17px; line-height: 1; transition: transform .18s ease; }
.detail-section[open] > summary::after { transform: rotate(180deg); }
.detail-section-summary,
.detail-section-status { margin-left: auto; color: var(--ink-3); font-size: 11px; white-space: nowrap; }
.detail-section-status.warning { color: var(--orange); }
.detail-section-status.healthy { color: var(--green); }

.shipment-details-panel { margin-bottom: 14px; scroll-margin-top: 70px; }
.detail-edit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.detail-edit-group { min-width: 0; padding-bottom: 8px; border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.detail-edit-group:nth-child(3n) { border-right: 0; }
.detail-edit-group:nth-last-child(-n+3) { border-bottom: 0; }
.detail-edit-group h3 { margin: 0; padding: 11px 14px 7px; color: var(--ink-2); font-size: 11px; letter-spacing: .055em; text-transform: uppercase; }
.detail-edit-group .frow { min-height: 46px; padding: 6px 14px; }
.detail-edit-group .frow label { flex-basis: 39%; font-size: 12px; }
.detail-edit-group input,
.detail-edit-group select,
.detail-edit-group textarea { min-height: 34px; }
.detail-inline-risk { padding: 4px 14px 8px; }
.detail-cost-group table.data td { padding: 7px 14px; }
.detail-notes-control { padding: 4px 14px 10px; }
.detail-notes-control textarea { min-height: 112px; }
.detail-secondary { display: grid; gap: 0; }
.detail-secondary .detail-section { order: initial; margin-bottom: 8px; }

.detail-section:focus-within,
.detail-readiness-item:focus-visible,
.detail-card-link:focus-visible { outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent); outline-offset: 2px; }

@media (max-width: 1280px) {
  .detail-page .dhead { grid-template-columns: minmax(220px, .8fr) 2fr; }
  .detail-page .dactions { grid-column: 1 / -1; justify-content: flex-start; }
  .detail-decision-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-decision-card { grid-column: 1 / -1; }
}

@media (max-width: 1000px) {
  .detail-page main { padding-left: 16px; padding-right: 16px; }
  .detail-page .dhead { grid-template-columns: 1fr; }
  .detail-page .dstats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .detail-page .dactions { grid-column: auto; }
  .detail-readiness-list { grid-template-columns: repeat(3, 1fr); }
  .detail-readiness-item:nth-child(4) { border-left: 0; border-top: 1px solid var(--line-2); }
  .detail-readiness-item:nth-child(5) { border-top: 1px solid var(--line-2); }
  .detail-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-edit-group:nth-child(3n) { border-right: 1px solid var(--line-2); }
  .detail-edit-group:nth-child(2n) { border-right: 0; }
  .detail-edit-group:nth-last-child(-n+3) { border-bottom: 1px solid var(--line-2); }
  .detail-edit-group:nth-last-child(-n+2) { border-bottom: 0; }
}

@media (max-width: 720px) {
  .detail-page header.top { padding: 8px 10px; }
  .detail-page #crumb,
  .detail-page #jump,
  .detail-page #saveState { display: none; }
  .detail-page main { padding: 12px 10px 34px; }
  .detail-page .dhead { gap: 14px; padding: 16px; }
  .detail-page .dnum { font-size: 24px; }
  .detail-page .dstats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 16px; }
  .detail-page .dstat-route { grid-column: 1 / -1; }
  .detail-page .dactions { display: grid; grid-template-columns: 1fr 1fr; }
  .detail-page .dactions #editDetails { grid-column: 1 / -1; }
  .detail-page .dactions .btn { width: 100%; white-space: normal; }
  .detail-decision-grid { grid-template-columns: 1fr; }
  .detail-decision-card { grid-column: auto; }
  .detail-decision-footer { align-items: stretch; flex-direction: column; }
  .detail-cost-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-cost-metrics > div { min-width: 0; }
  .detail-decision-footer .btn { width: 100%; text-align: center; }
  .detail-card-heading { align-items: flex-start; }
  .detail-readiness-panel .detail-strip-heading { align-items: flex-start; flex-direction: column; }
  .detail-strip-heading .issue-list { justify-content: flex-start; }
  .detail-readiness-list { grid-template-columns: 1fr; }
  .detail-readiness-item { border-top: 1px solid var(--line-2); border-left: 0 !important; }
  .detail-readiness-item:first-child { border-top: 0; }
  .detail-edit-grid { grid-template-columns: 1fr; }
  .detail-edit-group { border-right: 0 !important; border-bottom: 1px solid var(--line-2) !important; }
  .detail-edit-group:last-child { border-bottom: 0 !important; }
  .detail-section > summary { align-items: flex-start; }
  .detail-section > summary > span:first-child { flex: 1; }
  .detail-section-summary { display: none; }
  .detail-section-status { max-width: 100px; overflow: hidden; text-overflow: ellipsis; }
}

.toast { display: flex; align-items: center; gap: 14px; border-radius: 10px; }
.toast button { appearance: none; border: 0; border-left: 1px solid currentColor; padding: 0 0 0 12px; background: transparent; color: inherit; font: inherit; font-weight: 750; cursor: pointer; }

@media (max-width: 1050px) {
  .trust-menu-label { display: none; }
  .trust-menu > summary { width: 36px; justify-content: center; padding-inline: 0; }
  .action-row { grid-template-columns: 1fr auto; }
  .action-row > .issue-list { grid-column: 1 / -1; }
  .attention-strip { grid-template-columns: 1fr 1fr; }
  .intake-layout { grid-template-columns: 1fr; }
  .intake-upload-panel .intake-form { grid-template-columns: 1fr; }
  .intake-upload-panel .intake-drop { grid-column: 1; grid-row: auto; }
  .intake-upload-panel .intake-selection,
  .intake-upload-panel .intake-actions,
  .intake-upload-panel #intakeProgress { grid-column: 1; }
  .intake-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intake-group-cards, .intake-grouped-links { grid-template-columns: 1fr; }
  .intake-group-document { grid-template-columns: minmax(180px, .9fr) minmax(280px, 1.6fr) 125px auto; }
  .intake-list-head { display: none; }
  .intake-row-grid { grid-template-columns: minmax(220px, 1.25fr) minmax(110px, .7fr) 82px minmax(170px, 1fr) 68px; }
  .intake-row-grid > .intake-source-badge,
  .intake-row-grid > .intake-date-cell { display: none; }
  .intake-review-workspace-grid { grid-template-columns: 1fr; }
  .intake-evidence-rail { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); border-right: 0; border-bottom: 1px solid var(--line); }
  .intake-evidence-heading,
  .intake-evidence-rail > .intake-completeness-track,
  .intake-evidence-blocker,
  .intake-evidence-ready,
  .intake-evidence-reader { grid-column: 1 / -1; }
  .intake-review-main .review-actions { padding-right: 220px; }
  .settings-mailbox-body { grid-template-columns: 1fr 1fr; }
  .settings-mailbox-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .review-fields { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .review-title-row { align-items: stretch; flex-direction: column; }
  .review-efficiency { align-items: flex-start; flex-direction: column; gap: 3px; }
  .review-summary { align-self: flex-start; }
  .memory-summary { grid-template-columns: repeat(3, 1fr); }
  .memory-stat:nth-child(3) { border-right: 0; }
  .memory-stat:nth-child(n+4) { border-top: 1px solid var(--line-2); }
  .memory-vendors { grid-template-columns: 1fr; }
  .memory-vendor { border-right: 0; border-bottom: 1px solid var(--line-2); }
  .memory-vendor:last-child { border-bottom: 0; }
}

@media (max-width: 720px) {
  header.top { padding-left: 12px; padding-right: 12px; }
  .brand span, #asOf { display: none; }
  nav.tabs button { padding-left: 10px; padding-right: 10px; white-space: nowrap; }
  #view-tracker > .toolbar .multi-select-filter { flex: 1 1 150px; max-width: none; }
  #view-tracker > .toolbar .multi-select-menu { width: min(310px, calc(100vw - 28px)); }
  .page-heading { align-items: start; flex-direction: column; gap: 5px; }
  .page-heading-note { text-align: left; }
  .container-heading-actions { width: 100%; justify-items: start; }
  .container-view-switch { width: 100%; overflow-x: auto; }
  .container-view-switch button { flex: 1 0 auto; }
  .action-row { display: flex; align-items: flex-start; flex-wrap: wrap; }
  .action-main { grid-template-columns: 1fr; width: 100%; }
  .action-row > .issue-list { flex: 1 1 100%; }
  .attention-strip { grid-template-columns: 1fr; }
  .intake-steps { grid-template-columns: 1fr; }
  .intake-page-heading .btn { width: 100%; }
  .intake-summary { grid-template-columns: 1fr 1fr; }
  .intake-summary-card { grid-template-columns: 30px minmax(0, 1fr); padding: 10px; }
  .intake-summary-card > i { display: none; }
  .intake-summary-icon { width: 28px; height: 28px; }
  .intake-summary-card small { white-space: normal; }
  .intake-toolbar { grid-template-columns: 1fr 1fr; }
  .intake-search { grid-column: 1 / -1; }
  .intake-result-count { grid-column: 1 / -1; justify-self: start; }
  .intake-row-grid { grid-template-columns: minmax(0, 1fr) auto; gap: 7px 10px; padding: 10px 12px; }
  .intake-package-cell { grid-column: 1 / -1; }
  .intake-source-badge, .intake-date-cell { display: none; }
  .intake-reference-cell { grid-column: 1; }
  .intake-doc-cell { grid-column: 2; justify-self: end; }
  .intake-next-action { grid-column: 1 / -1; padding: 7px 9px; border-top: 1px solid var(--line-2); border-left-width: 3px; background: var(--panel-2); }
  .intake-next-action b, .intake-next-action small { white-space: normal; }
  .intake-row-action { grid-column: 2; }
  .intake-row-action .btn { width: 100%; }
  .intake-expanded { padding: 11px 12px 13px; }
  .intake-expanded .intake-review-host { margin: 13px -12px -13px; }
  .intake-grouping-heading, .intake-group-section-head { align-items: stretch; flex-direction: column; }
  .intake-grouping-stats { align-self: stretch; }
  .intake-grouping-stats span { flex: 1; }
  .intake-new-group { width: 100%; }
  .intake-new-group input { min-width: 0; flex: 1; }
  .intake-new-group input, .intake-new-group .btn { min-height: 44px; font-size: 12px; }
  .intake-group-card { gap: 10px; padding: 12px; }
  .intake-group-card-head { align-items: stretch; flex-direction: column; }
  .intake-group-card-head input { min-height: 44px; font-size: 13px; }
  .intake-group-existing-name strong { min-height: 44px; padding: 12px 9px; font-size: 13px; }
  .intake-group-destination-badge { min-height: 32px; padding: 7px 9px; font-size: 10.5px; }
  .intake-group-card-head label span, .intake-group-doc-count { font-size: 10.5px; }
  .intake-group-confidence b, .intake-group-card-status { font-size: 11px; }
  .intake-group-confidence span, .intake-group-card-files span { max-width: 100%; font-size: 10.5px; white-space: normal; }
  .intake-group-card-actions { align-items: stretch; flex-wrap: wrap; }
  .intake-group-card-actions label { flex: 1 1 100%; margin: 0; }
  .intake-group-card-actions select, .intake-group-card-actions .btn { width: 100%; max-width: none; min-height: 44px; font-size: 11px; }
  .intake-group-document { grid-template-columns: minmax(0, 1fr) auto; }
  .intake-group-document-name, .intake-group-document fieldset { grid-column: 1 / -1; }
  .intake-group-document { gap: 11px; padding: 12px; }
  .intake-group-document-name b { font-size: 12px; white-space: normal; }
  .intake-group-document-name span, .intake-group-document-name small, .intake-group-document legend, .intake-group-document-status { font-size: 10.5px; }
  .intake-group-document fieldset > div { display: grid; grid-template-columns: 1fr; gap: 6px; }
  .intake-group-document fieldset label { max-width: none; min-height: 44px; padding: 8px 10px; font-size: 11px; }
  .intake-group-document fieldset input { width: 18px; height: 18px; }
  .intake-group-document > .btn { min-width: 72px; min-height: 44px; }
  .intake-grouping-actions { align-items: stretch; flex-direction: column; margin: 0 -12px -13px; padding: 11px 12px; }
  .intake-grouping-actions b { font-size: 11.5px; line-height: 1.35; }
  .intake-grouping-actions small { margin-top: 3px; font-size: 10.5px; line-height: 1.35; }
  .intake-grouping-actions .btn { width: 100%; min-height: 48px; white-space: normal; }
  .intake-email-source-card { grid-template-columns: 28px minmax(0, 1fr); }
  .intake-email-source-card .btn { grid-column: 1 / -1; width: 100%; }
  .intake-email-backdrop { align-items: end; padding: 0; }
  .intake-email-dialog { width: 100vw; max-width: 100vw; max-height: 94vh; border-width: 1px 0 0; border-radius: 14px 14px 0 0; }
  .intake-email-dialog-head { padding: 13px 14px; }
  .intake-email-dialog-head > div { flex: 1; }
  .intake-email-dialog-content { padding: 14px; }
  .intake-email-subject-row { align-items: stretch; flex-direction: column; }
  .intake-email-subject-row > .btn { width: 100%; }
  .intake-email-headers > div { grid-template-columns: 58px minmax(0, 1fr); }
  .intake-pagination { align-items: flex-start; flex-direction: column; }
  .intake-pagination > div { width: 100%; justify-content: space-between; }
  .intake-mailbox { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .intake-mailbox-state { grid-column: 2; justify-self: start; }
  .intake-mailbox .btn { grid-column: 3; grid-row: 1 / 3; }
  .intake-link-fields { grid-template-columns: 1fr; }
  .intake-file-head { display: none; }
  .intake-stored-file { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; padding: 9px 0; }
  .intake-stored-file > div:first-child, .intake-stored-file > label { grid-column: 1 / -1; }
  .intake-stored-file .intake-file-source { grid-column: 1; }
  .intake-stored-file .intake-file-status { grid-column: 2; }
  .intake-stored-file > .intake-file-actions { grid-column: 1 / -1; grid-row: auto; justify-content: stretch; }
  .intake-stored-file > .intake-file-actions .btn { flex: 1; }
  .intake-removed-file { align-items: stretch; flex-direction: column; }
  .intake-removed-file .btn { width: 100%; }
  .intake-actions { align-items: stretch; flex-direction: column; }
  .intake-actions .btn { width: 100%; }
  .intake-batch-head, .intake-batch-actions, .review-actions, .review-zoho-state { align-items: stretch; flex-direction: column; }
  .intake-batch-actions .btn, .review-actions .btn, .review-zoho-state .btn { width: 100%; }
  .review-zoho-actions { width: 100%; }
  .container-zoho-sync { flex-wrap: wrap; }
  .container-zoho-sync-actions { width: 100%; justify-content: space-between; padding-left: 36px; }
  .container-zoho-history-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .container-zoho-history-toolbar { align-items: stretch; flex-wrap: wrap; }
  .container-zoho-history-search { flex-basis: 100%; min-width: 0; }
  #containerZohoHistoryFilterSummary { align-self: center; }
  .container-zoho-history-actions { margin-left: auto; }
  .container-zoho-history-row { grid-template-columns: 1fr; gap: 8px; }
  .review-shell { padding: 12px; }
  .intake-review-workspace { margin-top: 0; }
  .intake-review-workspace-head { padding: 11px 12px; }
  .intake-review-package-id { display: none; }
  .intake-review-identity { align-items: flex-start; flex-direction: column; gap: 4px; }
  .intake-review-identity h2 { padding-right: 0; border-right: 0; }
  .intake-review-workspace-grid { grid-template-columns: 1fr; }
  .intake-evidence-rail { position: static; grid-template-columns: 1fr; padding: 12px; border-right: 0; border-bottom: 1px solid var(--line); }
  .intake-review-section-label { padding: 12px 12px 0; }
  .intake-review-main .review-actions { margin: 12px -12px -12px; padding: 11px 12px; }
  .intake-review-main .review-actions { padding-right: 74px; }
  .intake-review-main .review-table-wrap { overflow: visible; border: 0; background: transparent; }
  .intake-review-main .review-table { display: block; min-width: 0; }
  .intake-review-main .review-table thead { display: none; }
  .intake-review-main .review-table tbody { display: grid; gap: 10px; }
  .intake-review-main .review-table tbody tr { display: grid; grid-template-columns: 1fr 1fr; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); }
  .intake-review-main .review-table tbody td { display: grid; min-width: 0; max-width: none; padding: 10px; border: 0; border-top: 1px solid var(--line-2); text-align: left; white-space: normal; }
  .intake-review-main .review-table tbody td::before { margin-bottom: 5px; color: var(--ink-3); font-size:9.5px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
  .intake-review-main .review-table tbody .review-line-source { grid-column: 1 / -1; border-top: 0; background: var(--panel-2); }
  .intake-review-main .review-table tbody td:nth-child(2)::before { content: 'Quantity'; }
  .intake-review-main .review-table tbody td:nth-child(3)::before { content: 'Unit price and history'; }
  .intake-review-main .review-table tbody .review-match-cell { grid-column: 1 / -1; }
  .intake-review-main .review-table tbody .review-match-cell::before { content: 'Zoho item match'; }
  .intake-review-main .review-table tbody .review-memory-cell { grid-column: 1 / -1; }
  .intake-review-main .review-table tbody .review-memory-cell::before { content: 'Future matching memory'; }
  .intake-review-main .review-number-input { width: 100%; }
  .intake-review-main .review-item-selected,
  .intake-review-main .review-item-proposal { min-width: 0; }
  .intake-review-main .review-table tfoot { display: block; margin-top: 9px; }
  .intake-review-main .review-table tfoot tr { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); }
  .intake-review-main .review-table tfoot td { display: block; padding: 0; border: 0; background: transparent; }
  .settings-mailbox-head { grid-template-columns: 34px minmax(0, 1fr); }
  .settings-mailbox-head > span { grid-column: 2; justify-self: start; }
  .settings-mailbox-body { grid-template-columns: 1fr; }
  .settings-mailbox-actions { grid-column: 1; }
  .settings-mailbox-actions .btn { width: 100%; }
  .review-document-gate { align-items: stretch; flex-direction: column; }
  .container-document-files a { grid-template-columns: 1fr auto; }
  .container-document-files a span { grid-column: 1 / -1; }
  .review-fields { grid-template-columns: 1fr 1fr; }
  .review-summary { width: 100%; grid-template-columns: 1fr 1fr; }
  .review-summary span { border-bottom: 1px solid var(--line-2); }
  .review-summary span:nth-child(even) { border-right: 0; }
  .review-summary span:nth-child(5) { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
  .memory-summary { grid-template-columns: 1fr 1fr; }
  .memory-stat { border-top: 1px solid var(--line-2); }
  .memory-stat:nth-child(odd) { border-right: 1px solid var(--line-2); }
  .memory-stat:nth-child(even) { border-right: 0; }
  .memory-footer { align-items: stretch; flex-direction: column; }
  .dhead { align-items: flex-start; }
  .dhead .dactions { width: 100%; margin-left: 0; }
  .dhead .dactions .btn { flex: 1; }
}

@media (max-width: 480px) {
  .intake-summary { grid-template-columns: 1fr; }
  .intake-summary-card small { white-space: normal; }
  .review-fields { grid-template-columns: 1fr; }
  .review-vendor-picker { grid-column: 1; grid-template-columns: 1fr; }
  .review-vendor-results { grid-template-columns: 1fr; }
  .intake-review-main .review-summary { grid-template-columns: 1fr 1fr; }
  .intake-grouping-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .intake-grouping-stats span { min-width: 0; padding-inline: 6px; }
  .intake-new-group { align-items: stretch; flex-direction: column; }
  .intake-new-group .btn { width: 100%; }
  .intake-group-card-head { align-items: stretch; flex-direction: column; }
  .intake-group-card-actions { align-items: stretch; flex-direction: column; }
  .intake-group-card-actions label, .intake-group-card-actions select, .intake-group-card-actions .btn { width: 100%; max-width: none; }
}

/* ---------- application navigation shell ----------
   One hierarchy replaces the old global tabs and page-level subtab strips. */

:root {
  --app-sidebar-width: 248px;
  --app-sidebar-rail: 68px;
  --app-topbar-height: 56px;
}

body.app-shell { overflow-x: hidden; }
.app-layout { min-height: 100vh; }
.app-workspace {
  min-width: 0;
  min-height: 100vh;
  margin-left: var(--app-sidebar-width);
  transition: margin-left .2s ease;
}
.app-workspace > main { width: 100%; }

.app-sidebar {
  position: fixed;
  z-index: 60;
  inset: 0 auto 0 0;
  display: flex;
  width: var(--app-sidebar-width);
  flex-direction: column;
  border-right: 1px solid var(--line);
  background: var(--panel);
  box-shadow: 8px 0 24px rgba(20, 30, 44, .035);
  transition: width .2s ease, transform .22s ease;
}
.nav-icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.app-sidebar-head {
  display: flex;
  min-height: 70px;
  align-items: center;
  gap: 10px;
  padding: 12px 12px 12px 18px;
  border-bottom: 1px solid var(--line);
}
.sidebar-brand { display: grid; min-width: 0; flex: 1; line-height: 1.15; }
.sidebar-brand b { color: var(--ink); font-size: 16px; letter-spacing: .02em; }
.sidebar-brand span { margin-top: 4px; color: var(--accent); font-size: 11px; font-weight: 600; }
.sidebar-brand-short { display: none; color: var(--ink); font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.sidebar-toggle,
.sidebar-mobile-toggle {
  appearance: none;
  display: inline-grid;
  width: 36px;
  height: 36px;
  place-items: center;
  flex: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-2);
  color: var(--ink-2);
  cursor: pointer;
}
.sidebar-toggle:hover,
.sidebar-mobile-toggle:hover { border-color: var(--accent); color: var(--accent); }
.sidebar-toggle:focus-visible,
.sidebar-mobile-toggle:focus-visible,
.app-sidebar button:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 34%, transparent); outline-offset: 2px; }
.sidebar-toggle svg,
.sidebar-mobile-toggle svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sidebar-toggle .icon-close { display: none; }
.sidebar-mobile-toggle { display: none; }

.app-sidebar nav.app-nav {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.app-nav-scroll {
  display: flex;
  min-height: 0;
  flex: 1;
  flex-direction: column;
  gap: 2px;
  padding: 10px 10px 8px;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-color: var(--line) transparent;
  scrollbar-width: thin;
}
.app-nav-scroll::-webkit-scrollbar { display: block; width: 5px; }
.app-nav-scroll::-webkit-scrollbar-thumb { border-radius: 8px; background: var(--line); }
.app-sidebar nav.app-nav .app-nav-item {
  appearance: none;
  position: relative;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  min-height: 39px;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 7px 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ink-2);
  font: 600 12.5px/1.2 inherit;
  text-align: left;
  cursor: pointer;
  transition: color .14s ease, background .14s ease;
}
.app-sidebar nav.app-nav .app-nav-item:hover { background: var(--panel-2); color: var(--ink); }
.app-sidebar nav.app-nav .app-nav-item[aria-selected="true"] {
  border-bottom-color: transparent;
  background: var(--accent-soft);
  color: var(--accent);
}
.app-sidebar nav.app-nav .app-nav-item[aria-selected="true"]::before {
  content: '';
  position: absolute;
  left: -10px;
  width: 3px;
  height: 24px;
  border-radius: 0 4px 4px 0;
  background: var(--accent);
}
.app-nav-item > svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.app-nav-item > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-nav-item > svg.app-nav-disclosure {
  width: 14px;
  height: 14px;
  opacity: .72;
  transform: rotate(90deg);
}
.app-sidebar .app-subnav,
.app-sidebar .impact-subtabs,
.app-sidebar .report-tabs {
  display: none !important;
  gap: 1px;
  width: 100%;
  margin: 0 0 3px;
  padding: 0 0 1px 32px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.app-sidebar .app-nav-item[aria-selected="true"] + .app-subnav {
  display: grid !important;
}
.app-sidebar .app-subnav[hidden],
.app-sidebar .app-subnav button[hidden] { display: none !important; }
.app-sidebar .app-subnav button,
.app-sidebar .impact-subtabs button,
.app-sidebar .report-tabs button {
  appearance: none;
  min-height: 28px;
  width: 100%;
  padding: 4px 8px 4px 11px;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: 0 6px 6px 0;
  background: transparent;
  color: var(--ink-3);
  font: 550 11.5px/1.25 inherit;
  text-align: left;
  white-space: normal;
  cursor: pointer;
}
.app-sidebar .app-subnav button:hover,
.app-sidebar .impact-subtabs button:hover,
.app-sidebar .report-tabs button:hover { background: var(--panel-2); color: var(--ink); }
.app-sidebar .app-subnav button[aria-pressed="true"],
.app-sidebar .app-subnav button[aria-selected="true"],
.app-sidebar .impact-subtabs button[aria-selected="true"],
.app-sidebar .report-tabs button[aria-selected="true"] {
  border-left-color: var(--accent);
  background: color-mix(in srgb, var(--accent-soft) 55%, transparent);
  color: var(--accent);
}
.app-sidebar .app-nav-item:not([aria-selected="true"]) + .app-subnav button[aria-pressed="true"],
.app-sidebar .app-nav-item:not([aria-selected="true"]) + .app-subnav button[aria-selected="true"],
.app-sidebar .app-nav-item:not([aria-selected="true"]) + .impact-subtabs button[aria-selected="true"],
.app-sidebar .app-nav-item:not([aria-selected="true"]) + .report-tabs button[aria-selected="true"] {
  border-left-color: var(--line);
  background: transparent;
  color: var(--ink-3);
}
.app-sidebar .app-nav-item[aria-selected="true"] + .app-subnav button[aria-pressed="true"],
.app-sidebar .app-nav-item[aria-selected="true"] + .app-subnav button[aria-selected="true"],
.app-sidebar .app-nav-item[aria-selected="true"] + .impact-subtabs button[aria-selected="true"],
.app-sidebar .app-nav-item[aria-selected="true"] + .report-tabs button[aria-selected="true"] {
  border-left-color: var(--accent);
  background: color-mix(in srgb, var(--accent-soft) 55%, transparent);
  color: var(--accent);
}
.app-nav-divider { height: 1px; margin: 6px 8px; background: var(--line); }
.app-sidebar nav.app-nav .app-nav-news {
  width: auto;
  flex: none;
  margin: 0 10px 12px;
  border-top: 1px solid var(--line);
  border-radius: 0 0 8px 8px;
  padding-top: 10px;
}

header.top {
  min-height: var(--app-topbar-height);
  padding: 9px 18px;
}
header.top .brand-row { min-height: 36px; align-items: center; flex-wrap: nowrap; }
.top-current {
  max-width: min(270px, 27vw);
  overflow: hidden;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#asOf { flex: none; white-space: nowrap; }

.sidebar-collapsed .app-sidebar { width: var(--app-sidebar-rail); }
.sidebar-collapsed .app-workspace { margin-left: var(--app-sidebar-rail); }
.sidebar-collapsed .app-sidebar-head { justify-content: center; padding: 12px 8px; }
.sidebar-collapsed .sidebar-brand { display: none; }
.sidebar-collapsed .sidebar-brand-short { display: block; }
.sidebar-collapsed .sidebar-toggle { position: absolute; right: -15px; width: 30px; height: 30px; background: var(--panel); }
.sidebar-collapsed .sidebar-toggle .icon-collapse { transform: rotate(180deg); }
.sidebar-collapsed .app-nav-scroll { padding-left: 8px; padding-right: 8px; }
.sidebar-collapsed .app-sidebar nav.app-nav .app-nav-item { display: flex; justify-content: center; min-height: 42px; padding: 8px; }
.sidebar-collapsed .app-nav-item > span,
.sidebar-collapsed .app-nav-item > .app-nav-disclosure,
.sidebar-collapsed .app-sidebar .app-subnav { display: none !important; }
.sidebar-collapsed .app-sidebar nav.app-nav .app-nav-item[aria-selected="true"]::before { left: -8px; }
.sidebar-collapsed .app-nav-divider { margin-left: 5px; margin-right: 5px; }
.sidebar-collapsed .app-sidebar nav.app-nav .app-nav-news { margin-left: 8px; margin-right: 8px; padding-top: 8px; }

.app-sidebar-overlay { display: none; }

@media (max-width: 900px) {
  .app-workspace,
  .sidebar-collapsed .app-workspace { margin-left: 0; }
  .app-sidebar,
  .sidebar-collapsed .app-sidebar {
    width: min(310px, calc(100vw - 48px));
    transform: translateX(-100%);
    box-shadow: 18px 0 44px rgba(0, 0, 0, .32);
  }
  .sidebar-open .app-sidebar { transform: translateX(0); }
  .sidebar-open { overflow: hidden; }
  .sidebar-collapsed .app-sidebar-head { justify-content: initial; padding: 12px 12px 12px 18px; }
  .sidebar-collapsed .sidebar-brand { display: grid; }
  .sidebar-collapsed .sidebar-brand-short { display: none; }
  .sidebar-collapsed .sidebar-toggle { position: static; width: 36px; height: 36px; }
  .sidebar-collapsed .app-nav-scroll { padding: 8px 10px; }
  .sidebar-collapsed .app-sidebar nav.app-nav .app-nav-item { display: grid; justify-content: initial; min-height: 39px; padding: 7px 10px; }
  .sidebar-collapsed .app-nav-item > span,
  .sidebar-collapsed .app-nav-item > .app-nav-disclosure { display: initial; }
  .sidebar-collapsed .app-sidebar .app-subnav { display: none !important; }
  .sidebar-collapsed .app-sidebar .app-nav-item[aria-selected="true"] + .app-subnav { display: grid !important; }
  .sidebar-toggle .icon-collapse { display: none; }
  .sidebar-toggle .icon-close { display: block; }
  .sidebar-mobile-toggle { display: inline-grid; }
  .app-sidebar-overlay {
    position: fixed;
    z-index: 55;
    inset: 0;
    display: block;
    width: 100%;
    border: 0;
    background: rgba(5, 9, 13, .64);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
  }
  .sidebar-open .app-sidebar-overlay { opacity: 1; pointer-events: auto; }
  header.top { padding-left: 12px; padding-right: 12px; }
  .top-current { font-size: 13px; }
}

@media (max-width: 520px) {
  header.top .brand-row { gap: 8px; }
  header.top .quick-menu summary { padding-left: 10px; padding-right: 10px; }
  .app-sidebar nav.app-nav .app-nav-item,
  .sidebar-collapsed .app-sidebar nav.app-nav .app-nav-item { min-height: 38px; }
  .app-sidebar .app-subnav button,
  .app-sidebar .impact-subtabs button,
  .app-sidebar .report-tabs button { min-height: 44px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .app-sidebar, .app-workspace, .app-sidebar-overlay { transition: none; }
}

@media print {
  .app-sidebar, .app-sidebar-overlay { display: none !important; }
  .app-workspace { margin-left: 0 !important; }
}

/* ---------- persistent operations assistant ----------
   The assistant is intentionally a dock instead of a page: the manager can ask
   a question without losing the container, report or intake context underneath. */

.assistant-dock {
  position: fixed;
  z-index: 75;
  right: 20px;
  bottom: 20px;
  pointer-events: none;
}
body.intake-grouping-active:has(#view-intake:not([hidden])) .assistant-dock { bottom: 84px; }
body.intake-grouping-active:has(#view-intake:not([hidden])) .assistant-dock:has(.assistant-panel:not([hidden])) { bottom: 20px; }

/* Keep the last actionable row scrollable above the persistent launcher. */
body.app-shell .app-workspace > main { padding-bottom: max(104px, calc(34px + env(safe-area-inset-bottom))); }

.intake-stale-warning{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--orange) 34%,var(--line));border-radius:9px;background:var(--orange-bg);color:var(--orange);font-size:11px}
.intake-stale-warning span{display:grid;gap:2px}.intake-stale-warning small{color:inherit;opacity:.84}

.assistant-dock > * { pointer-events: auto; }
.assistant-dock [hidden] { display: none !important; }

.assistant-launcher {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 50px;
  padding: 7px 14px 7px 8px;
  border: 1px solid color-mix(in srgb, var(--accent) 38%, var(--line));
  border-radius: 999px;
  background: var(--panel);
  color: var(--ink);
  box-shadow: 0 14px 42px rgba(11, 26, 39, .22), var(--shadow);
  font: inherit;
  font-weight: 720;
  letter-spacing: -.01em;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.assistant-launcher:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
  box-shadow: 0 18px 48px rgba(11, 26, 39, .28), var(--shadow);
}

.assistant-launcher:focus-visible,
.assistant-panel button:focus-visible,
.assistant-panel select:focus-visible,
.assistant-panel textarea:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 28%, transparent);
  outline-offset: 2px;
}

.assistant-launcher-icon,
.assistant-mark {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  background: var(--accent-soft);
  color: var(--accent);
}

.assistant-launcher-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
}

.assistant-launcher svg,
.assistant-mark svg,
.assistant-icon-button svg,
.assistant-prompts svg,
.assistant-attach svg,
.assistant-send svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.assistant-online-dot {
  width: 8px;
  height: 8px;
  margin-left: 1px;
  border-radius: 50%;
  background: var(--ink-3);
  box-shadow: 0 0 0 3px var(--panel);
}

.assistant-launcher.is-online .assistant-online-dot { background: #27a85a; }

@media (max-width: 900px) {
  .assistant-launcher {
    position: relative;
    width: 50px;
    min-height: 50px;
    justify-content: center;
    gap: 0;
    padding: 7px;
    border-radius: 16px;
  }
  .assistant-launcher > span:nth-child(2) { display: none; }
  .assistant-launcher .assistant-online-dot { position: absolute; top: 5px; right: 5px; width: 7px; height: 7px; margin: 0; }
}

.assistant-panel {
  position: relative;
  width: min(430px, calc(100vw - 32px));
  height: min(640px, calc(100dvh - 92px));
  min-width: 380px;
  min-height: min(520px, calc(100dvh - 40px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--line) 82%, var(--ink-3));
  border-radius: 18px;
  background: var(--panel);
  box-shadow: 0 26px 70px rgba(6, 17, 26, .34), 0 2px 8px rgba(6, 17, 26, .14);
  color: var(--ink);
  transform-origin: bottom right;
  animation: assistant-panel-in .18s ease-out;
}

.assistant-panel[hidden] { display: none !important; }

@keyframes assistant-panel-in {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: none; }
}

.assistant-sheet-handle { display: none; }

.assistant-resize-handle {
  position: absolute;
  z-index: 4;
  top: 0;
  left: 0;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 17px 0 10px 0;
  background: transparent;
  color: var(--ink-3);
  cursor: nwse-resize;
  touch-action: none;
  transition: color .15s ease, background .15s ease;
}

.assistant-resize-handle::before,
.assistant-resize-handle::after,
.assistant-resize-handle span::before {
  content: "";
  position: absolute;
  top: 7px;
  left: 7px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
  border-radius: 2px 0 0;
}

.assistant-resize-handle::before { width: 12px; height: 12px; }
.assistant-resize-handle::after { top: 11px; left: 11px; width: 8px; height: 8px; opacity: .7; }
.assistant-resize-handle span::before { top: 15px; left: 15px; width: 4px; height: 4px; opacity: .5; }
.assistant-resize-handle:hover { color: var(--accent); background: var(--accent-soft); }
.assistant-resize-handle:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 28%, transparent);
  outline-offset: 2px;
  color: var(--accent);
}

body.assistant-resizing,
body.assistant-resizing * {
  cursor: nwse-resize !important;
  user-select: none !important;
}

.assistant-chat-header {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 72px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 91%, var(--accent-soft));
}

.assistant-mark {
  width: 40px;
  height: 40px;
  border-radius: 12px;
}

.assistant-chat-title {
  display: grid;
  min-width: 0;
  flex: 1;
  line-height: 1.2;
}

.assistant-chat-title strong {
  font-size: 17px;
  letter-spacing: -.02em;
}

.assistant-chat-title span {
  margin-top: 4px;
  overflow: hidden;
  color: var(--ink-3);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.assistant-header-action,
.assistant-icon-button {
  border: 0;
  background: transparent;
  color: var(--ink-2);
  cursor: pointer;
}

.assistant-header-action {
  padding: 7px 5px;
  color: var(--accent);
  font: inherit;
  font-size: 12px;
  font-weight: 720;
}

.assistant-icon-button {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 9px;
}

.assistant-icon-button:hover { background: var(--panel-2); color: var(--ink); }
.assistant-size-toggle[aria-pressed="true"] { background: var(--accent-soft); color: var(--accent); }
.assistant-history-toggle[aria-expanded="true"] { background: var(--accent-soft); color: var(--accent); }

.assistant-history-drawer {
  position: absolute;
  z-index: 8;
  inset: 72px 0 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  min-width: 0;
  overflow: hidden;
  background: var(--panel);
}
.assistant-history-drawer[hidden] { display: none !important; }
.assistant-history-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 16px 11px;
  border-bottom: 1px solid var(--line-2);
}
.assistant-history-head .eyebrow { margin: 0 0 3px; font-size:10px; }
.assistant-history-head h2 { margin: 0; font-size: 18px; letter-spacing: -.025em; }
.assistant-history-tools { display: grid; gap: 9px; padding: 10px 14px; border-bottom: 1px solid var(--line-2); background: var(--panel-2); }
.assistant-history-search {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
}
.assistant-history-search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent); }
.assistant-history-search svg { width: 16px; height: 16px; fill: none; stroke: var(--ink-3); stroke-width: 1.8; }
.assistant-history-search input { min-width: 0; width: 100%; padding: 7px 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 11px; }
.assistant-history-filters { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 3px; border-radius: 10px; background: color-mix(in srgb, var(--line) 60%, transparent); }
.assistant-history-filters button { min-width: 0; padding: 6px 4px; border: 0; border-radius: 8px; background: transparent; color: var(--ink-3); font: inherit; font-size: 10px; font-weight: 720; cursor: pointer; }
.assistant-history-filters button[aria-selected="true"] { background: var(--panel); color: var(--accent); box-shadow: 0 1px 4px rgba(10, 25, 38, .08); }
.assistant-history-filters span { display: inline-grid; place-items: center; min-width: 17px; height: 17px; margin-left: 2px; padding: 0 4px; border-radius: 999px; background: var(--panel-2); font: 750 8px/1 var(--mono); }
.assistant-history-list { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 4px 12px 14px; scrollbar-gutter: stable; }
.assistant-history-group > h3 { position: sticky; z-index: 1; top: 0; margin: 0; padding: 11px 4px 6px; background: color-mix(in srgb, var(--panel) 94%, transparent); color: var(--ink-3); font-size:9.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; backdrop-filter: blur(6px); }
.assistant-history-item { position: relative; overflow: hidden; margin-bottom: 7px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel); transition: border-color .15s, box-shadow .15s; }
.assistant-history-item:hover { border-color: color-mix(in srgb, var(--accent) 36%, var(--line)); box-shadow: 0 5px 16px rgba(15, 35, 50, .07); }
.assistant-history-item.is-current { border-color: var(--accent); box-shadow: inset 3px 0 var(--accent); }
.assistant-history-item.is-pinned { background: color-mix(in srgb, var(--accent-soft) 32%, var(--panel)); }
.assistant-history-open { display: grid; gap: 5px; width: 100%; padding: 10px 11px 8px; border: 0; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.assistant-history-title-row { display: flex; align-items: center; gap: 5px; min-width: 0; }
.assistant-history-title-row b { min-width: 0; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.assistant-history-title-row i { flex: 0 0 auto; padding: 2px 5px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size:9.5px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.assistant-history-summary { display: -webkit-box; overflow: hidden; color: var(--ink-2); font-size: 10px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.assistant-history-meta { display: flex; flex-wrap: wrap; gap: 3px 7px; color: var(--ink-3); font-size:10px; }
.assistant-history-meta span + span::before, .assistant-history-meta time::before { content: '·'; margin-right: 7px; }
.assistant-history-meta time { margin-left: auto; }
.assistant-history-actions { display: flex; justify-content: flex-end; gap: 2px; padding: 0 7px 7px; border-top: 1px solid color-mix(in srgb, var(--line) 68%, transparent); }
.assistant-history-actions button { display: grid; place-items: center; width: 27px; height: 27px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: var(--ink-3); font: inherit; font-size: 14px; cursor: pointer; }
.assistant-history-actions button:hover { background: var(--panel-2); color: var(--accent); }
.assistant-history-actions button:last-child:hover { color: var(--red); }
.assistant-history-empty { display: grid; place-items: center; align-content: center; gap: 6px; min-height: 230px; padding: 24px; color: var(--ink-3); text-align: center; }
.assistant-history-empty > span:first-child { color: var(--accent); font-size: 24px; }
.assistant-history-empty b { color: var(--ink-2); font-size: 12px; }
.assistant-history-empty small { max-width: 280px; font-size:10px; line-height: 1.45; }
.assistant-history-empty.is-error b { color: var(--red); }
.assistant-history-spinner { width: 22px; height: 22px; border: 3px solid var(--line); border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; }
.assistant-history-footer { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px 10px; padding: 10px 14px 12px; border-top: 1px solid var(--line); background: var(--panel-2); }
.assistant-history-footer .btn { white-space: nowrap; }
.assistant-history-footer label { display: grid; grid-template-columns: auto minmax(90px, 1fr); align-items: center; gap: 6px; min-width: 0; color: var(--ink-3); font-size:10px; }
.assistant-history-footer select { min-width: 0; width: 100%; height: 30px; padding: 3px 24px 3px 6px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--ink-2); font-size: 10px; }
.assistant-history-footer small { grid-column: 1 / -1; color: var(--ink-3); font-size:10px; }

.assistant-history-dialog { width: min(470px, calc(100vw - 28px)); padding: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); color: var(--ink); box-shadow: 0 24px 70px rgba(6, 17, 26, .32); }
.assistant-history-dialog::backdrop { background: rgba(6, 17, 26, .45); backdrop-filter: blur(3px); }
.assistant-history-dialog form { display: grid; }
.assistant-history-dialog form > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 15px; border-bottom: 1px solid var(--line); background: var(--panel-2); }
.assistant-history-dialog h3 { margin: 2px 0 0; font-size: 16px; }
.assistant-history-dialog form > #assistantHistoryDialogBody { display: grid; gap: 11px; padding: 15px; }
.assistant-history-dialog form > footer { display: flex; justify-content: flex-end; gap: 8px; padding: 11px 15px; border-top: 1px solid var(--line); }
.assistant-history-field { display: grid; gap: 5px; }
.assistant-history-field > span { color: var(--ink-2); font-size:10px; font-weight: 750; text-transform: uppercase; }
.assistant-history-field input, .assistant-history-field select { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); color: var(--ink); font: inherit; }
.assistant-history-dialog-note { margin: 0; color: var(--ink-2); font-size: 10px; line-height: 1.5; }
.assistant-history-dialog-error { min-height: 16px; margin: 0; padding: 0 15px; color: var(--red); font-size:10px; }
.assistant-history-share-list { display: grid; gap: 5px; max-height: 160px; margin: 0; padding: 0; overflow: auto; list-style: none; }
.assistant-history-share-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; }
.assistant-history-share-list li > span { display: grid; min-width: 0; }
.assistant-history-share-list b, .assistant-history-share-list small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assistant-history-share-list b { font-size: 10px; }
.assistant-history-share-list small { color: var(--ink-3); font-size:9.5px; }
.assistant-history-share-list button { width: 26px; height: 26px; border: 0; border-radius: 7px; background: transparent; color: var(--ink-3); cursor: pointer; }
.assistant-history-share-list button:hover { background: var(--red-bg); color: var(--red); }
.assistant-history-share-list .is-empty { justify-content: center; color: var(--ink-3); font-size:10px; }
.assistant-history-dialog button:focus-visible, .assistant-history-field input:focus-visible, .assistant-history-field select:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 22%, transparent); outline-offset: 1px; border-color: var(--accent); }
.assistant-shared-note { display: grid; gap: 3px; margin: 2px 0 10px; padding: 10px 11px; border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line)); border-radius: 10px; background: var(--accent-soft); color: var(--ink-2); font-size:10px; line-height: 1.4; }
.assistant-shared-note b { color: var(--accent); font-size: 10px; }
.assistant-history-usage { margin-top: 8px; }

.assistant-panel.is-wide .assistant-chat-scroll { padding-right: 24px; padding-left: 24px; }
.assistant-panel.is-wide .assistant-prompts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.assistant-panel.is-wide .assistant-chat-footer { padding-right: 18px; padding-left: 18px; }

.assistant-chat-scroll {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding: 20px 18px 16px;
}

.assistant-panel #aiStatus { margin: 0 0 14px; }
.assistant-panel #aiStatus.syncbar.on { display: none; }
.assistant-panel #aiStatus.syncbar.off { padding: 10px 11px; font-size: 11px; }

.assistant-welcome { margin-bottom: 16px; }
.assistant-welcome .eyebrow { margin-bottom: 6px; }
.assistant-welcome h2 {
  margin: 0;
  font-size: 24px;
  line-height: 1.18;
  letter-spacing: -.035em;
}
.assistant-welcome p { margin: 6px 0 0; color: var(--ink-2); font-size: 13px; }

.assistant-page-context {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: -2px 0 12px;
  padding: 9px 10px;
  border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--line));
  border-radius: 11px;
  background: color-mix(in srgb, var(--accent-soft) 54%, var(--panel));
}
.assistant-context-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: var(--panel);
  color: var(--accent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 16%, var(--line));
}
.assistant-context-icon svg { width: 16px; height: 16px; }
.assistant-context-copy { min-width: 0; display: grid; gap: 2px; line-height: 1.25; }
.assistant-context-copy b { overflow: hidden; color: var(--ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.assistant-context-copy small { overflow: hidden; color: var(--ink-3); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }

.assistant-prompts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
}

.assistant-prompts:empty { display: none; }

.assistant-prompts button {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 52px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-2);
  color: var(--ink);
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.assistant-prompts button:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--accent) 58%, var(--line));
  background: var(--accent-soft);
}

.assistant-prompts button:disabled { opacity: .52; cursor: not-allowed; }
.assistant-prompts svg { flex: 0 0 auto; color: var(--accent); }
.assistant-prompts span { overflow: hidden; text-overflow: ellipsis; }

.assistant-answer { display: grid; gap: 12px; margin-top: 18px; }
.assistant-answer:empty { display: none; }
.assistant-panel .aiturn {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--panel-2);
}
.assistant-panel .aiturn + .aiturn { margin-top: 0; }
.assistant-panel .aihead {
  align-items: flex-start;
  gap: 6px;
  padding: 11px 12px;
  border-top: 0;
  border-bottom: 1px solid var(--line-2);
  background: var(--accent-soft);
}
.assistant-panel .aihead b { flex: 1 1 100%; color: var(--ink); }
.assistant-panel .aihead .grow { display: none; }
.assistant-panel .aihead .subtle { font-size: 10px; }
.assistant-panel .aibody {
  max-width: none;
  padding: 8px 13px 12px;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.assistant-panel .aibody pre,
.assistant-panel .aibody .aitable { max-width: 100%; overflow-x: auto; }
.assistant-panel .aicost { margin: 0; padding: 9px 12px 11px; border-top: 1px solid var(--line-2); font-size: 10px; }

.assistant-privacy { margin: 18px 2px 0; color: var(--ink-3); font-size: 11px; }
.assistant-privacy summary { width: max-content; cursor: pointer; color: var(--ink-2); font-weight: 650; }
.assistant-privacy p { margin: 7px 0 0; line-height: 1.5; }

.assistant-chat-footer {
  padding: 10px 14px 12px;
  border-top: 1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 94%, var(--panel-2));
}

.assistant-model-bar {
  display: grid;
  grid-template-columns: auto minmax(86px, .42fr) minmax(125px, 1fr);
  align-items: center;
  gap: 7px;
}

.assistant-model-bar > span {
  color: var(--ink-3);
  font-size:10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.assistant-model-bar label,
.assistant-model-bar select { min-width: 0; width: 100%; }

.assistant-model-bar select {
  height: 32px;
  padding: 4px 27px 4px 8px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background-color: var(--panel-2);
  color: var(--ink-2);
  font-size: 11px;
  font-weight: 650;
}

.assistant-model-bar select:disabled { opacity: .62; cursor: not-allowed; }
.assistant-model-meta {
  min-height: 16px;
  margin: 4px 2px 6px;
  overflow: hidden;
  color: var(--ink-3);
  font-size:10px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.assistant-attachment-tray {
  margin: 0 0 8px;
  padding: 8px;
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line));
  border-radius: 11px;
  background: color-mix(in srgb, var(--accent-soft) 45%, var(--panel-2));
}

.assistant-attachment-tray[hidden] { display: none; }
.assistant-attachment-tray header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
  color: var(--ink-2);
  font-size: 10px;
  font-weight: 750;
}

.assistant-attachment-tray header button {
  padding: 2px 3px;
  border: 0;
  background: transparent;
  color: var(--accent);
  font: inherit;
  font-size:10px;
  cursor: pointer;
}

.assistant-attachment-list {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 1px 1px 3px;
  scrollbar-width: thin;
}

.assistant-attachment {
  display: grid;
  grid-template-columns: auto minmax(82px, 1fr) auto;
  align-items: center;
  flex: 0 0 auto;
  gap: 6px;
  max-width: 220px;
  min-height: 36px;
  padding: 5px 5px 5px 7px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel);
}

.assistant-attachment.is-incompatible { border-color: color-mix(in srgb, var(--amber) 62%, var(--line)); }
.assistant-attachment-icon {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 7px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size:9.5px;
  font-weight: 850;
  text-transform: uppercase;
}
.assistant-attachment.is-incompatible .assistant-attachment-icon { background: var(--orange-bg); color: var(--amber); }
.assistant-attachment-copy { min-width: 0; display: grid; line-height: 1.2; }
.assistant-attachment-copy b { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.assistant-attachment-copy span { margin-top: 2px; color: var(--ink-3); font-size:9.5px; }
.assistant-attachment-remove {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--ink-3);
  font-size: 16px;
  cursor: pointer;
}
.assistant-attachment-remove:hover { background: var(--panel-2); color: var(--red); }
.assistant-attachment-tray > p { margin: 4px 2px 0; color: var(--ink-3); font-size:9.5px; }
.assistant-attachment-tray > p.warning { color: var(--amber); font-weight: 650; }

.assistant-turn-files {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 7px 0 4px;
}
.assistant-turn-files span {
  max-width: 210px;
  overflow: hidden;
  padding: 3px 7px;
  border: 1px solid color-mix(in srgb, var(--accent) 20%, var(--line));
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size:9.5px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.assistant-context-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.assistant-scope {
  display: flex;
  align-items: center;
  min-width: 0;
  flex: 1;
}
.assistant-scope > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.assistant-scope select {
  min-width: 0;
  width: 100%;
  height: 32px;
  padding: 4px 28px 4px 9px;
  border-color: var(--line);
  border-radius: 9px;
  background-color: var(--panel-2);
  color: var(--ink-2);
  font-size: 11px;
}

.assistant-cost-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 32px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel-2);
  color: var(--ink-2);
  font-size: 11px;
  white-space: nowrap;
  cursor: pointer;
}
.assistant-cost-toggle input { margin: 0; accent-color: var(--accent); }

.assistant-composer {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  min-height: 48px;
  padding: 6px 6px 6px 12px;
  border: 1px solid color-mix(in srgb, var(--line) 72%, var(--ink-3));
  border-radius: 13px;
  background: var(--panel-2);
}
.assistant-composer:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 13%, transparent); }
.assistant-composer.is-dragover { border-color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 13%, transparent); }
.assistant-attach {
  display: inline-grid;
  place-items: center;
  align-self: end;
  width: 34px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--ink-2);
  cursor: pointer;
}
.assistant-attach:hover:not(:disabled) { background: var(--accent-soft); color: var(--accent); }
.assistant-attach.has-files { background: var(--accent-soft); color: var(--accent); }
.assistant-attach:disabled { opacity: .45; cursor: not-allowed; }
.assistant-composer textarea {
  width: 100%;
  min-height: 32px;
  max-height: 110px;
  padding: 7px 0 5px;
  border: 0;
  outline: 0;
  resize: none;
  overflow-y: auto;
  background: transparent;
  color: var(--ink);
  font: inherit;
  line-height: 1.35;
}
.assistant-composer textarea::placeholder { color: var(--ink-3); }
.assistant-send,
.assistant-stop {
  display: inline-grid;
  place-items: center;
  align-self: end;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 10px;
  background: var(--accent);
  color: var(--panel);
  cursor: pointer;
}
.assistant-send:hover:not(:disabled) { filter: brightness(1.06); }
.assistant-send:disabled { opacity: .42; cursor: not-allowed; }
.assistant-stop { width: auto; padding: 0 11px; background: var(--red); color: var(--panel); font: inherit; font-size: 11px; font-weight: 750; }
.assistant-composer-hint { margin: 5px 2px 0; color: var(--ink-3); font-size:10px; text-align: right; }

@media (max-width: 620px) {
  body.assistant-chat-open { overflow: hidden; }
  .assistant-dock { right: 8px; bottom: max(8px, env(safe-area-inset-bottom)); left: 8px; }
  body.intake-grouping-active:has(#view-intake:not([hidden])) .assistant-dock {
    bottom: calc(152px + env(safe-area-inset-bottom));
  }
  body.intake-grouping-active:has(#view-intake:not([hidden])) .assistant-dock:has(.assistant-panel:not([hidden])) {
    bottom: max(8px, env(safe-area-inset-bottom));
  }
  body.intake-grouping-active:has(#view-intake:not([hidden])) .intake-grouping-actions { z-index: 80; }
  .assistant-launcher { float: right; min-height: 48px; }
  .assistant-panel {
    width: auto;
    height: calc(100dvh - 66px - env(safe-area-inset-bottom));
    min-width: 0;
    min-height: 0;
    border-radius: 18px 18px 14px 14px;
    transform-origin: bottom center;
  }
  .assistant-resize-handle,
  .assistant-size-toggle { display: none; }
  .assistant-sheet-handle {
    display: block;
    position: absolute;
    z-index: 1;
    top: 7px;
    left: 50%;
    width: 42px;
    height: 4px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ink-3) 55%, transparent);
    transform: translateX(-50%);
  }
  .assistant-chat-header { min-height: 68px; padding: 17px 12px 9px; }
  .assistant-history-drawer { inset: 68px 0 0; }
  .assistant-history-head { padding: 12px 13px 9px; }
  .assistant-history-tools { padding: 9px 11px; }
  .assistant-history-list { padding-right: 9px; padding-left: 9px; }
  .assistant-history-footer { padding: 9px 11px calc(10px + env(safe-area-inset-bottom)); }
  .assistant-history-open { padding-right: 11px; }
  .assistant-chat-scroll { padding: 18px 14px 14px; }
  .assistant-welcome h2 { font-size: 22px; }
  .assistant-prompts { gap: 7px; }
  .assistant-prompts button { min-height: 49px; padding: 9px; font-size: 11px; }
  .assistant-chat-footer { padding: 9px 10px calc(10px + env(safe-area-inset-bottom)); }
  .assistant-model-bar { grid-template-columns: auto minmax(78px, .38fr) minmax(112px, 1fr); gap: 5px; }
  .assistant-model-bar select { padding-left: 6px; font-size: 10px; }
  .assistant-model-meta { margin-bottom: 5px; }
  .assistant-cost-toggle span { display: none; }
  .assistant-cost-toggle::after { content: "Costs"; }
  .assistant-composer-hint { display: none; }
}

@media (max-width: 360px) {
  .assistant-prompts { grid-template-columns: 1fr; }
  .assistant-prompts button:nth-child(n + 5) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .assistant-panel { animation: none; }
  .assistant-launcher, .assistant-prompts button { transition: none; }
}

@media print {
  .assistant-dock { display: none !important; }
}

/* Vendor Bill Intake critical shell.
   This small, low-specificity fallback lives in the always-served application
   stylesheet so an already-running legacy server cannot reduce the payable
   workflow to raw HTML while its newer /billing.css route is unavailable.
   billing.css remains the authoritative, later-loaded module stylesheet. */
:where(#view-billing).billing-view { max-width: 1780px; margin-inline: auto; }
:where(#view-billing) .billing-heading { align-items: flex-end; }
:where(#view-billing) .billing-heading p { max-width: 760px; }
:where(#view-billing) .billing-command {
  margin-bottom: 16px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--panel);
  box-shadow: var(--shadow);
}
:where(#view-billing) .billing-mailbox {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 15px 16px;
  background: linear-gradient(120deg, var(--panel), var(--panel-2));
}
:where(#view-billing) .billing-mailbox-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: var(--accent-soft);
  color: var(--accent);
}
:where(#view-billing) .billing-mailbox-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
:where(#view-billing) .billing-mailbox-copy { display: grid; gap: 3px; min-width: 0; }
:where(#view-billing) .billing-mailbox-copy small { color: var(--ink-2); }
:where(#view-billing) .billing-mailbox-actions { display: flex; gap: 8px; align-items: center; }
:where(#view-billing) .billing-state {
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--grey-bg);
  color: var(--ink-2);
  font-size: 12px;
  font-weight: 800;
}
:where(#view-billing) .billing-state.good { background: var(--green-bg); color: var(--green); }
:where(#view-billing) .billing-state.bad { background: var(--orange-bg); color: var(--orange); }
:where(#view-billing) .billing-command-foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 10px 12px;
  border-top: 1px solid var(--line);
  background: var(--panel-2);
}
:where(#view-billing) .billing-readiness {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
:where(#view-billing) .billing-readiness > span,
:where(#view-billing) .billing-readiness > button {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  gap: 7px;
  align-items: center;
  min-width: 0;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--panel);
  color: var(--ink);
  text-align: left;
}
:where(#view-billing) .billing-readiness i { width: 8px; height: 8px; border-radius: 50%; background: var(--orange); }
:where(#view-billing) .billing-readiness i.good { background: var(--green); }
:where(#view-billing) .billing-readiness small {
  min-width: 0;
  overflow: hidden;
  color: var(--ink-2);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
:where(#view-billing) .billing-how { min-width: 210px; }
:where(#view-billing) .billing-how summary {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  color: var(--ink);
  cursor: pointer;
  font-weight: 750;
  list-style: none;
}
:where(#view-billing) .billing-how summary::-webkit-details-marker { display: none; }
:where(#view-billing) .billing-how summary small { color: var(--ink-2); font-size: 11px; font-weight: 600; }
:where(#view-billing) .billing-how[open] { grid-column: 1 / -1; }
:where(#view-billing) .billing-safety {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--line);
}
:where(#view-billing) .billing-safety > div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  background: var(--panel);
}
:where(#view-billing) .billing-safety span {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent);
  font-weight: 800;
}
:where(#view-billing) .billing-safety p { display: grid; gap: 2px; margin: 0; }
:where(#view-billing) .billing-safety small { color: var(--ink-2); line-height: 1.35; }
:where(#view-billing) .billing-layout {
  display: grid;
  grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
:where(#view-billing) .billing-queue-panel {
  position: sticky;
  top: 74px;
  max-height: calc(100vh - 94px);
  padding: 0;
  overflow: hidden;
}
:where(#view-billing) .billing-panel-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 17px 18px 12px;
}
:where(#view-billing) .billing-panel-head h2,
:where(#view-billing) .billing-panel-head p { margin: 0; }
:where(#view-billing) .billing-panel-head h2 { font-size: 18px; }
:where(#view-billing) .billing-panel-head p,
:where(#view-billing) .billing-panel-head > span { color: var(--ink-2); font-size: 12px; }
:where(#view-billing) .billing-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  padding: 0 14px 12px;
}
:where(#view-billing) .billing-kpi {
  display: grid;
  gap: 4px;
  min-height: 66px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  color: var(--ink);
  text-align: left;
}
:where(#view-billing) .billing-kpi small { color: var(--ink-2); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
:where(#view-billing) .billing-kpi b { font-size: 19px; line-height: 1; }
:where(#view-billing) .billing-kpi span { color: var(--ink-2); font-size: 11px; }
:where(#view-billing) .billing-filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 145px;
  gap: 8px;
  padding: 0 14px 12px;
}
:where(#view-billing) .billing-filters input,
:where(#view-billing) .billing-filters select { width: 100%; min-width: 0; }
:where(#view-billing) .billing-queue { max-height: calc(100vh - 320px); overflow: auto; border-top: 1px solid var(--line); }
:where(#view-billing) .billing-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  width: 100%;
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  text-align: left;
}
:where(#view-billing) .billing-row:hover,
:where(#view-billing) .billing-row.active { background: var(--accent-soft); }
:where(#view-billing) .billing-workspace { min-height: 540px; padding: 0; overflow: hidden; }
:where(#view-billing) .billing-empty {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 540px;
  padding: 50px;
  text-align: center;
}
:where(#view-billing) .billing-empty > span {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: var(--green-bg);
  color: var(--green);
  font-size: 25px;
}
:where(#view-billing) .billing-empty h2 { margin: 14px 0 4px; }
:where(#view-billing) .billing-empty p { max-width: 460px; margin: 0; color: var(--ink-2); }

@media (max-width: 1100px) {
  :where(#view-billing) .billing-layout { grid-template-columns: 1fr; }
  :where(#view-billing) .billing-queue-panel { position: static; max-height: none; }
  :where(#view-billing) .billing-queue { max-height: 360px; }
  :where(#view-billing) .billing-safety { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  :where(#view-billing) .billing-mailbox { grid-template-columns: auto minmax(0, 1fr) auto; padding: 13px; }
  :where(#view-billing) .billing-mailbox-actions { grid-column: 2 / -1; justify-content: flex-end; flex-wrap: wrap; }
  :where(#view-billing) .billing-command-foot,
  :where(#view-billing) .billing-readiness { grid-template-columns: 1fr; }
  :where(#view-billing) .billing-how { min-width: 0; }
  :where(#view-billing) .billing-how[open] { grid-column: auto; }
  :where(#view-billing) .billing-filters { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  :where(#view-billing) .billing-safety { grid-template-columns: 1fr; }
  :where(#view-billing) .billing-mailbox { grid-template-columns: auto minmax(0, 1fr); }
  :where(#view-billing) .billing-mailbox-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
}

/* Cross-application accessibility guardrails. Compact desktop tables keep their
   density; touch layouts receive reliable hit areas and motion preferences are
   honored across every module. */
main:focus { outline: none; }

@media (pointer: coarse) {
  button,
  summary,
  select,
  input[type="search"],
  input[type="text"],
  input[type="date"],
  input[type="number"],
  .btn { min-height: 44px; }
}

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