/* Bid step rail · a column of the bid's estimating steps beside the cards, or a
   strip across the top when the pane is narrow. bid-step-rail.js pins it while
   scrolling (the studio's .workspace defeats position: sticky). */
#single-bid-view.has-step-rail { position: relative; padding-left: 196px; }
#single-bid-view.has-step-rail.step-rail-compact { padding-left: 0; }

.bid-step-rail { position: absolute; top: 0; bottom: 0; left: 0; width: 176px; }
.bid-step-rail[hidden] { display: none; }
.bid-step-rail-inner { display: grid; gap: 2px; z-index: 6; }
.bid-step-rail-title {
  font: 600 10.5px/1 'JetBrains Mono', ui-monospace, monospace; letter-spacing: .1em;
  text-transform: uppercase; color: var(--ink-3); padding: 4px 10px 8px;
}
.bid-step-rail ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.bid-step {
  display: grid; grid-template-columns: 22px minmax(0, 1fr) 8px; gap: 8px; align-items: center;
  padding: 8px 10px; border-radius: 8px; color: var(--ink-2); text-decoration: none; font-size: 13px;
}
.bid-step:hover { background: var(--cream, #F5F1EB); }
.bid-step:focus-visible { outline: 2px solid var(--clay); outline-offset: 1px; }
.bid-step.is-active { background: var(--paper, #FFFFFF); box-shadow: 0 0 0 1px var(--border); color: var(--ink); font-weight: 600; }
.bid-step.is-upcoming { color: var(--ink-3); opacity: .55; cursor: default; }
.bid-step.is-upcoming:hover { background: transparent; }
.bid-step-n { font: 500 11px 'JetBrains Mono', ui-monospace, monospace; color: var(--ink-3); }
.bid-step-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bid-step-dot, .bid-step-rail-key span { width: 8px; height: 8px; border-radius: 50%; background: transparent; }
[data-status="ok"] > .bid-step-dot, .bid-step-rail-key [data-status="ok"] { background: var(--sage-ink, #3F5A32); }
[data-status="info"] > .bid-step-dot { background: var(--border-2, #D2CCC0); }
[data-status="warn"] > .bid-step-dot, .bid-step-rail-key [data-status="warn"] { background: #B7872F; }
[data-status="bad"] > .bid-step-dot, .bid-step-rail-key [data-status="bad"] { background: var(--clay); }
.bid-step-rail-key {
  margin-top: 10px; padding: 10px 10px 0; border-top: 1px solid var(--border);
  font-size: 11px; color: var(--ink-3); display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center;
}
.bid-step-rail-key span { display: inline-block; }

/* narrow pane: steps become a scrollable strip above the cards */
.step-rail-compact .bid-step-rail { position: relative; bottom: auto; width: auto; margin-bottom: 12px; }
.step-rail-compact .bid-step-rail-inner {
  background: var(--cream-soft, #FAF7F1); border: 1px solid var(--border);
  border-radius: 10px; padding: 6px; box-sizing: border-box;
}
.step-rail-compact .bid-step-rail-inner.is-pinned { border-radius: 0 0 10px 10px; box-shadow: 0 4px 12px rgba(31, 30, 29, 0.08); }
.step-rail-compact .bid-step-rail-title, .step-rail-compact .bid-step-rail-key { display: none; }
.step-rail-compact .bid-step-rail ol { display: flex; flex-wrap: wrap; gap: 2px; }
.step-rail-compact .bid-step { grid-template-columns: auto auto 8px; gap: 6px; padding: 7px 9px; }
.step-rail-compact .bid-step-label { overflow: visible; }

/* A card focused by a rail jump (tabindex=-1) takes focus without drawing a
   ring around the whole card. */
#single-bid-view [tabindex="-1"]:focus { outline: none; }

@media print { .bid-step-rail { display: none; } #single-bid-view.has-step-rail { padding-left: 0; } }
