/* Console: the dispatch board (docs/console/PLAN.md lane C4). Scoped to [data-ui="chartroom"]. */
[data-ui="chartroom"] .crb-dispatch { display: block; color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-sheet { filter: none; padding: 0; }
[data-ui="chartroom"] .crb-dispatch .crb-sheet__body {
  display: grid; align-content: start; gap: 14px; overflow: visible;
  padding: clamp(16px, 2vw, 28px);
}
[data-ui="chartroom"] .crb-dispatch .crb-head--dispatch { display: block; padding: 0 0 4px; }
[data-ui="chartroom"] .crb-dispatch .crb-h1 { margin: 0; }

/* The map: a steel frame, a quiet caption strip on the glass */
[data-ui="chartroom"] .crb-dispatch .crb-mapframe {
  position: relative; margin: 0; padding: 6px; border: 1px solid #071F29; border-radius: 2px;
  background: linear-gradient(145deg, var(--pc-sea-2), var(--pc-sea));
  box-shadow: inset 0 1px rgba(255, 255, 255, .13), 0 2px 0 rgba(16, 39, 51, .3);
}
[data-ui="chartroom"] .crb-dispatch .crb-mapframe::before { content: none; }
[data-ui="chartroom"] .crb-dispatch .crb-mapframe__slot {
  position: relative; height: 300px; overflow: hidden; border-radius: 1px;
  background: #0D5668; box-shadow: 0 0 0 1px #071F29;
}
[data-ui="chartroom"] .crb-dispatch[data-map="large"] .crb-mapframe__slot { height: 520px; }
[data-ui="chartroom"] .crb-dispatch .crb-mapframe__host { position: absolute; inset: 0; }
[data-ui="chartroom"] .crb-dispatch .crb-mapbtn {
  position: absolute; right: 16px; bottom: 16px; min-height: 44px; padding: 0 14px; border: 1px solid #071F29; border-radius: 2px;
  background: rgba(11, 52, 69, .9); color: var(--pc-paper-hi); cursor: pointer;
  font: 700 15px/1 var(--cr-cond); letter-spacing: .08em; text-transform: uppercase;
  transition: background-color var(--cr-d-snap) var(--cr-ease);
}
[data-ui="chartroom"] .crb-dispatch .crb-mapbtn:hover { background: #0F4A5E; }
[data-ui="chartroom"] .crb-dispatch .crb-mapbtn[aria-pressed="true"] { border-color: var(--pc-brass); box-shadow: inset 0 -3px 0 var(--pc-brass); }
[data-ui="chartroom"] .crb-dispatch .crb-mapbtn:focus-visible { outline: 3px solid var(--cr-focus); outline-offset: 2px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__cargo { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid var(--pc-rule); border-radius: 2px; background: var(--pc-paper-hi); }
[data-ui="chartroom"] .crb-dispatch .crb-mapcap {
  position: absolute; left: 16px; bottom: 16px; margin: 0; padding: 6px 12px; pointer-events: none;
  background: rgba(11, 52, 69, .9); border: 1px solid #071F29; border-radius: 2px;
  color: var(--pc-paper-hi); font: 600 15px/1.2 var(--cr-cond); letter-spacing: .08em; text-transform: uppercase;
}
[data-ui="chartroom"] .crb-dispatch .crb-mapcap b { color: var(--pc-brass-hi); font-size: 18px; font-variant-numeric: tabular-nums; }

/* Folder tabs */
[data-ui="chartroom"] .crb-dispatch .crb-folders {
  display: flex; gap: 4px; align-items: flex-end; margin: 4px 0 -15px; padding: 0 2px; position: relative; z-index: 1;
  border-bottom: 1px solid var(--pc-rule); overflow-x: auto; scrollbar-width: none;
}
[data-ui="chartroom"] .crb-dispatch .crb-folder {
  flex: 0 0 auto; min-height: 44px; padding: 0 18px; border: 1px solid var(--pc-rule); border-bottom: 0; border-radius: 3px 3px 0 0;
  background: #DCCDA7; color: var(--pc-ink); cursor: pointer; margin-bottom: 0;
  font: 800 18px/1 var(--cr-cond); letter-spacing: .08em; text-transform: uppercase;
  transition: background-color var(--cr-d-snap) var(--cr-ease);
}
[data-ui="chartroom"] .crb-dispatch .crb-folder b { margin-left: 6px; font-variant-numeric: tabular-nums; color: var(--pc-steel-dark); }
[data-ui="chartroom"] .crb-dispatch .crb-folder:hover { background: #E8DBB8; }
[data-ui="chartroom"] .crb-dispatch .crb-folder[aria-selected="true"] {
  min-height: 50px; background: var(--pc-paper-hi); border-color: var(--pc-ink); box-shadow: inset 0 3px 0 var(--pc-brass);
  margin-bottom: -1px; position: relative;
}
[data-ui="chartroom"] .crb-dispatch .crb-folder:focus-visible { outline: 3px solid var(--cr-focus); outline-offset: 1px; z-index: 2; }
[data-ui="chartroom"] .crb-dispatch .crb-folderpanel {
  position: relative; margin-top: 14px; padding: 16px; border: 1px solid var(--pc-ink); border-radius: 0 2px 2px 2px;
  background: var(--pc-paper-hi); min-width: 0;
}
[data-ui="chartroom"] .crb-dispatch .crb-folder__empty { margin: 0; padding: 18px 4px; font: 500 17px var(--cr-body); color: var(--pc-ink); }

/* Offer and voyage rows */
[data-ui="chartroom"] .crb-dispatch .crb-offers { display: grid; gap: 10px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer, [data-ui="chartroom"] .crb-dispatch .crb-voy {
  display: grid; grid-template-columns: minmax(300px, 1.5fr) minmax(0, 1fr) minmax(200px, .9fr); align-items: center; gap: 8px 18px;
  padding: 10px 14px; border: 1px solid var(--pc-rule); border-left: 5px solid var(--pc-steel); border-radius: 2px;
  background: rgba(255, 250, 235, .75); color: var(--pc-ink);
}
[data-ui="chartroom"] .crb-dispatch .crb-voy { grid-template-columns: minmax(0, 1.1fr) minmax(120px, .8fr) minmax(0, 1.4fr); }
[data-ui="chartroom"] .crb-dispatch .crb-offer__ship { grid-column: 1; }
[data-ui="chartroom"] .crb-dispatch .crb-offer .crb-offer__figs { grid-column: 2; grid-row: 1 / span 2; display: grid; grid-template-columns: 1fr 1fr; }
[data-ui="chartroom"] .crb-dispatch .crb-offer .crb-offer__when { grid-column: 1; grid-row: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer .crb-offer__acts { grid-column: 3; grid-row: 1 / span 2; flex-direction: column; align-items: stretch; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__acts .cr-plate { width: 100%; max-width: none; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__morebox { text-align: left; }
[data-ui="chartroom"] .crb-dispatch .crb-offer.is-top { border-left-color: var(--pc-brass); box-shadow: inset 0 0 0 1px var(--pc-brass); }
[data-ui="chartroom"] .crb-dispatch :is(.crb-offer, .crb-voy, .crb-dtable__row, .crb-card).is-picked { outline: 3px solid var(--pc-brass); outline-offset: 1px; }
[data-ui="chartroom"] .crb-dispatch :is(.crb-offer, .crb-voy):focus-visible { outline: 3px solid var(--cr-focus); outline-offset: 1px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__ship { display: flex; align-items: center; gap: 12px; min-width: 0; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__ship > svg { flex: 0 0 auto; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__id { min-width: 0; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__name { margin: 0; font: 700 20px/1.1 var(--cr-serif); overflow-wrap: normal; word-break: normal; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__name a { color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-offer__route { margin: 2px 0 0; font: 700 17px/1.2 var(--cr-cond); letter-spacing: .04em; text-transform: uppercase; color: var(--pc-steel-dark); }
[data-ui="chartroom"] .crb-dispatch .crb-offer__figs { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__fig dt { font: 700 13px/1 var(--cr-cond); letter-spacing: .1em; text-transform: uppercase; color: var(--pc-steel-dark); }
[data-ui="chartroom"] .crb-dispatch .crb-offer__fig dd { margin: 3px 0 0; font: 700 18px/1.15 var(--cr-cond); font-variant-numeric: tabular-nums; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__fig--key dd { color: #6B4A0F; font-size: 22px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__when { display: grid; justify-items: start; gap: 6px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__when .crb-chip { color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-offer__acts { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__acts .cr-plate { min-height: 50px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__more { min-height: 44px; }
[data-ui="chartroom"] .crb-dispatch .crb-offer__morebox { flex-basis: 100%; text-align: right; }
[data-ui="chartroom"] .crb-dispatch .crb-tag {
  display: inline-block; padding: 3px 9px; border-radius: 2px; font: 800 14px/1.1 var(--cr-cond); letter-spacing: .08em; text-transform: uppercase;
}
[data-ui="chartroom"] .crb-dispatch .crb-tag--ok { background: #3E7A3A; color: #fff; }
[data-ui="chartroom"] .crb-dispatch .crb-tag--amber { background: var(--pc-amber); color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-tag--warn { background: var(--pc-warn); color: #fff; }
[data-ui="chartroom"] .crb-dispatch .crb-voy__prog { height: 12px; border: 1px solid var(--pc-ink); border-radius: 1px; background: #E3D6B4; overflow: hidden; }
[data-ui="chartroom"] .crb-dispatch .crb-voy__prog i { display: block; height: 100%; background: linear-gradient(180deg, #3D9E9B, var(--pc-teal)); transition: width var(--cr-d-move) var(--cr-ease); }

/* Ready / In port lanes become paper panels */
[data-ui="chartroom"] .crb-dispatch .crb-dhead { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
[data-ui="chartroom"] .crb-dispatch .crb-dhead .cr-choice__opt { min-height: 44px; }
[data-ui="chartroom"] .crb-dispatch .crb-lanes { gap: 14px; }
[data-ui="chartroom"] .crb-dispatch .crb-lane { background: rgba(255, 250, 235, .75); color: var(--pc-ink); border: 1px solid var(--pc-ink); border-radius: 2px; box-shadow: none; }
[data-ui="chartroom"] .crb-dispatch .crb-lane::before, [data-ui="chartroom"] .crb-dispatch .crb-lane::after { content: none; }
[data-ui="chartroom"] .crb-dispatch .crb-lane__head { border-bottom: 1px solid var(--pc-rule); background: #E8DBB8; }
[data-ui="chartroom"] .crb-dispatch .crb-lane__title { color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-lane__sub, [data-ui="chartroom"] .crb-dispatch .crb-lane__quiet { color: var(--pc-steel-dark); }
[data-ui="chartroom"] .crb-dispatch .crb-lane .crb-link, [data-ui="chartroom"] .crb-dispatch .crb-dispatch__all { color: var(--pc-ink); text-decoration: underline; }
[data-ui="chartroom"] .crb-dispatch .crb-lane__body { overflow: visible; }
[data-ui="chartroom"] .crb-dispatch .crb-mini, [data-ui="chartroom"] .crb-dispatch .crb-heldgroup { color: var(--pc-ink); background: #E8DBB8; }
[data-ui="chartroom"] .crb-dispatch .crb-heldgroup__head, [data-ui="chartroom"] .crb-dispatch .crb-heldgroup__item p { color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-lane .crb-work__what, [data-ui="chartroom"] .crb-dispatch .crb-lane__worktoggle { color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-card { border-left-color: var(--pc-steel); box-shadow: inset 0 0 0 1px var(--pc-rule); }

/* The Table: ink rules, condensed caps headers */
[data-ui="chartroom"] .crb-dispatch .crb-dtablewrap { margin: 0; background: transparent; color: var(--pc-ink); border: 0; box-shadow: none; }
[data-ui="chartroom"] .crb-dispatch .crb-dtablewrap::before, [data-ui="chartroom"] .crb-dispatch .crb-dtablewrap::after { content: none; }
[data-ui="chartroom"] .crb-dispatch .crb-dtable { color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-dtable thead th { background: #E8DBB8; border-bottom: 2px solid var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-dtable__sort { color: var(--pc-ink); font: 800 15px var(--cr-cond); letter-spacing: .1em; text-transform: uppercase; }
[data-ui="chartroom"] .crb-dispatch .crb-dtable tbody th, [data-ui="chartroom"] .crb-dispatch .crb-dtable td { border-bottom: 1px solid var(--pc-rule); color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-dtable tbody th { display: table-cell; white-space: normal; }
[data-ui="chartroom"] .crb-dispatch .crb-dtable tbody th .crb-ship__name { color: var(--pc-ink); }
[data-ui="chartroom"] .crb-dispatch .crb-dtable__plate { display: inline-block; vertical-align: middle; margin-right: 10px; }
[data-ui="chartroom"] .crb-dispatch .crb-dtable__row:hover { background: rgba(201, 151, 58, .14); }
[data-ui="chartroom"] .crb-dispatch .crb-dtable .crb-dtable__num.is-loss { color: var(--pc-warn); }
[data-ui="chartroom"] .crb-dispatch .crb-dtable__tickall { color: var(--pc-ink); text-decoration: underline; }
[data-ui="chartroom"] .crb-dispatch .crb-dtablewrap__head { justify-content: flex-start; }

[data-ui="chartroom"] .crb-dispatch .crb-dtable thead th.crb-dtable__num .crb-dtable__sort { color: var(--pc-ink); }

/* Tablet and phone */
@media (max-width: 1100px) {
  [data-ui="chartroom"] .crb-dispatch .crb-offer { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  [data-ui="chartroom"] .crb-dispatch .crb-offer .crb-offer__figs { grid-column: 2; }
  [data-ui="chartroom"] .crb-dispatch .crb-offer .crb-offer__acts { grid-column: 1 / -1; grid-row: auto; flex-direction: row; justify-content: flex-start; }
  [data-ui="chartroom"] .crb-dispatch .crb-offer__acts .cr-plate { width: auto; }
  [data-ui="chartroom"] .crb-dispatch .crb-voy { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 760px) {
  [data-ui="chartroom"] .crb-dispatch .crb-sheet__body { padding: 14px 10px; gap: 10px; }
  [data-ui="chartroom"] .crb-dispatch .crb-mapframe__slot { height: 170px; }
  [data-ui="chartroom"] .crb-dispatch .crb-mapcap { left: 8px; bottom: 8px; max-width: calc(100% - 150px); font-size: 12px; padding: 3px 8px; line-height: 1.25; }
  [data-ui="chartroom"] .crb-dispatch .crb-mapcap b { font-size: 14px; }
  [data-ui="chartroom"] .crb-dispatch[data-map="large"] .crb-mapframe__slot { height: 300px; }
  [data-ui="chartroom"] .crb-dispatch .crb-mapbtn { right: 8px; bottom: 8px; padding: 0 10px; font-size: 12px; min-width: 112px; }
  [data-ui="chartroom"] .crb-dispatch .crb-folders {
    flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent);
    padding-right: 28px;
  }
  [data-ui="chartroom"] .crb-dispatch .crb-folder { flex: 0 0 auto; min-width: 96px; padding: 0 12px; font-size: 16px; white-space: nowrap; scroll-snap-align: start; }
  [data-ui="chartroom"] .crb-dispatch .crb-folder:not([aria-selected="true"]) { background: #E8DBB8; box-shadow: none; }
  [data-ui="chartroom"] .crb-dispatch .crb-offer__ship { flex-flow: row wrap; align-items: center; gap: 6px 10px; }
  [data-ui="chartroom"] .crb-dispatch .crb-offer__ship .crb-offer__id { flex: 1 1 100%; }
  [data-ui="chartroom"] .crb-dispatch .crb-folderpanel { padding: 10px; }
  [data-ui="chartroom"] .crb-dispatch .crb-offer, [data-ui="chartroom"] .crb-dispatch .crb-voy { grid-template-columns: minmax(0, 1fr); }
  [data-ui="chartroom"] .crb-dispatch .crb-offer > * { grid-column: 1 !important; grid-row: auto !important; }
  [data-ui="chartroom"] .crb-dispatch .crb-offer .crb-offer__acts { flex-direction: column; align-items: stretch; }
  [data-ui="chartroom"] .crb-dispatch .crb-offer__acts .cr-plate { width: 100%; max-width: none; }
  [data-ui="chartroom"] .crb-dispatch .crb-offer__morebox { text-align: left; }
}

/* Plates on paper: brass for the one decisive control, steel for the rest */
[data-ui="chartroom"] .crb-dispatch .crb-offer__acts .cr-plate--commit {
  border: 1px solid #765014; border-image: none; background: linear-gradient(180deg, var(--pc-brass-hi), var(--pc-brass));
  color: #231806; text-shadow: 0 1px rgba(255, 248, 220, .45);
}
[data-ui="chartroom"] .crb-dispatch .crb-offer__acts .cr-plate--steel { border: 1px solid #1C3C49; border-image: none; background: var(--pc-steel); color: var(--pc-paper-hi); }
[data-ui="chartroom"] .crb-dispatch .crb-offer__acts .cr-plate--commit .cr-plate__sub { color: #3A2A0C; }

/* The Table never clips: it scrolls sideways inside its box with the ship column pinned, and below 1500 px of board width the low-value columns (Cargo, Next port) drop out. */
[data-ui="chartroom"] .crb-dispatch .crb-dtablewrap { container: dtable / inline-size; }
[data-ui="chartroom"] .crb-dispatch .crb-dtablewrap__scroll { overflow-x: auto; max-width: 100%; }
[data-ui="chartroom"] .crb-dispatch .crb-dtable { min-width: 100%; }
[data-ui="chartroom"] .crb-dispatch .crb-dtable tbody th[scope="row"] { position: sticky; left: 0; z-index: 1; background: var(--pc-paper-hi); }
[data-ui="chartroom"] .crb-dispatch .crb-dtable thead th:first-child { position: sticky; left: 0; z-index: 2; }
[data-ui="chartroom"] .crb-dispatch .crb-dtable td, [data-ui="chartroom"] .crb-dispatch .crb-dtable thead th { overflow-wrap: anywhere; }
@container dtable (max-width: 1499px) {
  [data-ui="chartroom"] .crb-dispatch .crb-dtable .crb-dtable__lo { display: none; }
  [data-ui="chartroom"] .crb-dispatch .crb-dtable { min-width: 0; table-layout: auto; }
  [data-ui="chartroom"] .crb-dispatch .crb-dtable :is(td, tbody th) { white-space: normal; overflow-wrap: normal; }
  [data-ui="chartroom"] .crb-dispatch .crb-dtable thead th { white-space: nowrap; overflow-wrap: normal; }
  [data-ui="chartroom"] .crb-dispatch .crb-dtable :is(td, tbody th) { padding-right: 6px; padding-left: 6px; }
  [data-ui="chartroom"] .crb-dispatch .crb-dtable__sort { font-size: 12px; letter-spacing: .03em; padding-right: 4px; padding-left: 4px; }
  [data-ui="chartroom"] .crb-dispatch .crb-dtable__plate { display: block; margin: 0 0 2px; }
}
