/* BidDesk Quant v2: the Numbers room. Subjects on the left, the instrument on the right; ink and hairlines; a failed gate
   in the kill red, a passed one in ink; the SIMULATED curve as one ink line. No gold: none of it is the member's money. */
.nr { display: grid; grid-template-columns: 228px minmax(0, 1fr); gap: 36px; align-items: start; }
.nr-side { position: sticky; top: 76px; display: grid; gap: 2px; max-height: calc(100vh - 100px); overflow: auto; padding-right: 4px; }
.nr-g { margin: 14px 0 6px; font: 500 10.5px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); } .nr-g:first-child { margin-top: 0; }
.nr-s { display: grid; gap: 1px; padding: 8px 10px; border-radius: var(--r-1); text-decoration: none; color: var(--ink-2); font-size: 13.5px; }
.nr-s small { color: var(--ink-3); font-size: 11.5px; } .nr-s:hover { background: var(--surface); color: var(--ink); }
.nr-s.on { background: var(--surface-2); color: var(--ink); box-shadow: inset 2px 0 0 var(--ink-2); }
.nr-none { margin: 0 10px 6px; } .nr-pick { display: none; }
.nr-main { min-width: 0; display: grid; gap: 22px; }
.nr-head { display: grid; gap: 8px; } .nr-head .eyebrow { margin: 0; }
.nr-title { font: 300 38px/1.08 var(--serif); letter-spacing: -.025em; margin: 0; }
.nr-rb { margin: 0; display: grid; gap: 4px; font-size: 14px; color: var(--ink-2); max-width: 90ch; } .nr-rb em { font-style: normal; color: var(--ink-3); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; margin-right: 6px; }
.nb-room { border-top: 0; padding-top: 0; }
.nb-jump { position: sticky; top: var(--q-top, 53px); z-index: 3; display: flex; align-items: center; gap: 4px; padding: 8px 0; background: rgba(12, 11, 9, .9); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.nb-jumpb { height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid transparent; background: transparent; color: var(--ink-2); font-size: 13px; cursor: pointer; }
.nb-jumpb:hover { border-color: var(--line-2); color: var(--ink); } .nb-ms { margin-left: auto; font-size: 12px; }
.nb-jumpb[aria-current="true"] { border-color: var(--line-2); background: var(--surface); color: var(--ink); }
#nr-body { position: relative; min-width: 0; }
.nb-dim > :not(.nb-working) { opacity: .42; pointer-events: none; transition: opacity var(--fast) var(--ease); }
.nb-working { position: absolute; top: 6px; right: 0; z-index: 6; margin: 0; padding: 7px 14px; border-radius: 999px; background: var(--raise); border: 1px solid var(--line-2); font-size: 13px; color: var(--ink); box-shadow: var(--shadow); }
.nb-working .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--go); display: inline-block; margin-right: 8px; vertical-align: 1px; }
.nb-skel .rp-skel span:first-child { height: 132px; }
.nb-top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.nb-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; } .nb-meta .nb-line { font-size: 13px; color: var(--ink-3); }
.nb-notes { flex-basis: 100%; list-style: none; margin: 2px 0 0; padding: 8px 0 8px 14px; border-left: 2px solid var(--line-2); display: grid; gap: 4px; font-size: 13px; color: var(--ink-2); max-width: 96ch; }
.nr .nb-hero { grid-template-columns: minmax(0, auto) minmax(0, 1fr); column-gap: 44px; row-gap: 6px; padding: 22px 28px; }
.nr .nb-hero .nb-k { grid-column: 1 / -1; } .nr .nb-hero .nb-big { grid-column: 1; grid-row: 2 / span 2; align-self: center; } .nr .nb-hero .nb-proof { grid-column: 2; }
.nr .nb-grid:not(.nb-firings) { min-width: 0; table-layout: auto; }
.nr .nb-grid:not(.nb-firings) th, .nr .nb-grid:not(.nb-firings) td { padding: 10px 10px; font-size: 13.5px; }
.nr .nb-grid:not(.nb-firings) th:first-child { padding-left: 14px; } .nr .nb-grid:not(.nb-firings) td:last-child { padding-right: 14px; }
@media (min-width: 1000px) { .nr .nb-gates { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; } }
.nb-verdict { border: 1px solid var(--line); border-radius: var(--r-3); background: var(--bg-2); padding: 18px 20px; display: grid; gap: 12px; align-content: start; }
.nb-verdict.v-killed { box-shadow: inset 3px 0 0 var(--kill); }
.nb-vhead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 12px; } .nb-vhead .nb-k { white-space: nowrap; }
.nb-vword { margin: 0; font: 300 26px/1 var(--serif); letter-spacing: -.02em; min-width: 0; } .nb-vword small { display: inline-block; white-space: nowrap; font: 400 12.5px var(--sans); color: var(--ink-3); margin-left: 8px; letter-spacing: 0; }
.v-killed .nb-vword { color: var(--kill); }
.nb-gates { list-style: none; margin: 0; padding: 0; display: grid; border-top: 1px solid var(--line); }
.nb-gates li { display: grid; grid-template-columns: 62px minmax(0, 1fr); column-gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.nb-gates b { font-weight: 500; } .nb-gates small { grid-column: 2; color: var(--ink-3); font-size: 12px; }
.nb-gs { grid-row: span 2; align-self: start; font: 600 10.5px/18px var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
.g-fail .nb-gs { color: var(--kill); } .g-pass .nb-gs { color: var(--ink); } .g-na b { color: var(--ink-2); font-weight: 400; }
.nb-sec { display: grid; gap: 16px; scroll-margin-top: 110px; }
.nb-h { margin: 6px 0 0; display: flex; align-items: center; gap: 10px; font: 400 22px/1.2 var(--serif); letter-spacing: -.01em; }
.nb-fwd { margin: 0 0 6px; font: 300 24px/1.25 var(--serif); max-width: 40ch; }
.nb-curve { margin: 4px 0 0; } .nb-curve svg { display: block; width: 100%; height: 200px; }
.nb-cbox { position: relative; padding-left: 64px; touch-action: pan-y; cursor: crosshair; }
.nb-ax { position: absolute; left: 0; transform: translateY(-50%); font-size: 11px; color: var(--ink-3); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nb-cx { position: absolute; top: 0; bottom: 22px; width: 1px; background: var(--ink-3); pointer-events: none; }
.nb-cread { position: absolute; top: -4px; transform: translateX(-50%); padding: 4px 10px; border-radius: 999px; background: var(--raise); border: 1px solid var(--line-2); font-size: 12px; color: var(--ink); white-space: nowrap; pointer-events: none; }
.nb-c0 { stroke: var(--line-2); stroke-width: 1; stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.nb-cline { fill: none; stroke: var(--ink-2); stroke-width: 1.6; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.nb-cfill { fill: rgba(241, 233, 216, .045); stroke: none; }
.nb-curve figcaption { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; color: var(--ink-3); margin-top: 6px; }
#nb-gridbox { scroll-margin-top: 110px; }
.nb-gridsec { display: grid; gap: 12px; }
.nb-sechead { display: flex; align-items: end; justify-content: space-between; gap: 16px; flex-wrap: wrap; } .nb-sechead > div { display: grid; gap: 6px; }
.nb-sechead > .nb-exp { display: flex; gap: 8px; }
.nb-gwrap { max-height: 640px; overflow: auto; }
.nb-firings { min-width: 1040px; font-size: 13px; } .nb-firings td.nb-pm { color: var(--ink); font-weight: 500; }
.nb-firings th, .nb-firings td { padding: 9px 12px; }
/* The filing's date and company stay put while the moves scroll; a fade says more columns lie to the right. */
.nb-firings td:first-child, .nb-firings tbody th, .nb-firings thead th:nth-child(-n+2) { position: sticky; background: var(--bg-2); z-index: 1; }
.nb-firings td:first-child, .nb-firings thead th:first-child { left: 0; min-width: 124px; width: 124px; white-space: nowrap; }
.nb-firings tbody th, .nb-firings thead th:nth-child(2) { left: 124px; min-width: 96px; text-align: left; box-shadow: inset -1px 0 0 var(--line); }
.nb-firings thead th:nth-child(-n+2) { z-index: 3; }
.nb-gfade { position: relative; min-width: 0; }
.nb-gfade > .nb-wrap { max-width: 100%; }
.nr .nb-gfade .nb-grid:not(.nb-firings) tbody th { position: sticky; left: 0; z-index: 1; background: var(--bg-2); }
.nr .nb-gfade .nb-grid:not(.nb-firings) tr.on th { background: var(--surface); }
.nb-gfade::after { content: ""; position: absolute; top: 1px; right: 1px; bottom: 1px; width: 56px; pointer-events: none; border-radius: 0 var(--r-3) var(--r-3) 0;
  background: linear-gradient(90deg, rgba(18, 16, 13, 0), rgba(18, 16, 13, .94)); opacity: 0; transition: opacity var(--fast) var(--ease); }
.nb-gfade.more::after { opacity: 1; }
.nb-firings thead th { position: sticky; top: 0; background: var(--bg-2); z-index: 1; padding-top: 12px; padding-bottom: 10px; font-size: 10px; letter-spacing: .1em; }
.nb-firings tbody th { text-align: left; } .nb-firings tbody th b { font-weight: 600; color: var(--ink); }
.nb-firings td:first-child { text-align: left; color: var(--ink-2); } .nb-firings td small { color: var(--ink-3); }
.nb-lnd { text-align: left !important; color: var(--ink-3); font-size: 12.5px; white-space: nowrap; }
.nb-near { display: block; font-size: 11px; color: var(--ink-3); white-space: nowrap; }
.nb-firings tr:hover td, .nb-firings tr:hover th { background: var(--surface); }
.nb-kept { text-align: center !important; color: var(--ink-3); font-style: italic; }
.nb-firings a { color: var(--ink); }
.nb-t { border: 1px solid var(--line); border-radius: var(--r-3); background: var(--bg-2); padding: 24px 26px; display: grid; gap: 6px; max-width: 720px; }
.nb-t .eyebrow { margin: 0 0 4px; } .nb-tbig { margin: 0; font: 300 56px/1 var(--serif); letter-spacing: -.03em; } .nb-tbig small { font: 400 15px var(--sans); color: var(--ink-3); letter-spacing: 0; }
.nb-locks { list-style: none; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--line); display: grid; gap: 6px; font-size: 13px; color: var(--ink-3); }
.nb-locks li::before { content: "Locked · "; color: var(--ink-2); font-weight: 500; }
.rp-num { margin: 18px 0 0; }
@media (max-width: 1599px) { .nr { grid-template-columns: 188px minmax(0, 1fr); gap: 28px; } }
@media (max-width: 1180px) { .nr { grid-template-columns: 176px minmax(0, 1fr); gap: 24px; } .nb-top { grid-template-columns: minmax(0, 1fr); } }
/* Under 1000px the subjects list folds into the picker so the instrument keeps its width (a tablet, a half-screen
   window); the hero stacks by the room's own width. */
@media (max-width: 1000px) { .nr { grid-template-columns: minmax(0, 1fr); gap: 16px; } .nr-side { display: none; } .nr-pick { display: block; } }
.nr-main { container: nrmain / inline-size; }
@container nrmain (max-width: 559px) { .nr .nb-hero { grid-template-columns: minmax(0, 1fr); } .nr .nb-hero .nb-big, .nr .nb-hero .nb-proof { grid-column: 1; grid-row: auto; } }
@media (max-width: 760px) {
  .nr-title { font-size: 22px; } .nr-rb { font-size: 13px; } .nb-room > .nb-own { margin: 12px 0 0; } .nb-jump { overflow-x: auto; } .nb-ms { display: none; }
  .nb-gates li { grid-template-columns: 52px minmax(0, 1fr); } .nb-curve svg { height: 150px; } .nb-gwrap { max-height: 520px; }
  .nb-t { padding: 18px 16px; } .nb-tbig { font-size: 44px; }
}

/* The answer, first (bench gap 3): the verdict in one word and three numbers, each with its sample beneath. Ink only;
   a killed verdict takes the kill red on its word and its rule, nothing else. */
.nb-answer { container: nbans / inline-size; position: relative; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr); gap: 20px 40px; align-items: center;
  padding: 26px 30px; border: 1px solid var(--line); border-radius: var(--r-3); background: linear-gradient(180deg, var(--surface), var(--bg-2)); box-shadow: var(--shadow); }
.nb-answer.v-killed { box-shadow: inset 3px 0 0 var(--kill), var(--shadow); }
.nb-a-head { display: grid; gap: 8px; min-width: 0; }
.nb-a-head .nb-k { margin: 0; display: flex; align-items: center; gap: 10px; }
.nb-a-word { margin: 0; font: 300 44px/1.02 var(--serif); letter-spacing: -.03em; }
.v-killed .nb-a-word { color: var(--kill); } .v-incomplete .nb-a-word { font-size: 36px; color: var(--ink-2); }
.nb-a-tally { margin: 0; font-size: 13px; color: var(--ink-3); }
.nb-a-why { margin: 2px 0 0; font: 500 15px/1.4 var(--sans); color: var(--ink); max-width: 52ch; }
.nb-a-fails { margin: 0; padding: 0 0 0 16px; display: grid; gap: 4px; font-size: 13px; line-height: 1.45; color: var(--ink-2); max-width: 56ch; }
.nb-a-run { grid-column: 1 / -1; margin: 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13px; line-height: 1.55; color: var(--ink-2); }
.nb-a-run .tag { vertical-align: 1px; } .nb-a-ev { color: var(--ink-3); }
.nb-how > summary { cursor: pointer; padding: 6px 0; font-size: 13px; } .nb-how[open] > summary { margin-bottom: 4px; }
.nb-a-nums { container-type: inline-size; --c: var(--n, 3); --pad: 22px; margin: 0; display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); border-left: 1px solid var(--line); }
.nb-a-n { padding: 4px 0 4px 22px; min-width: 0; display: grid; gap: 6px; align-content: start; }
.nb-a-n + .nb-a-n { border-left: 1px solid var(--line); }
.nb-a-n dt { font: 500 11px/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); min-height: 2.6em; }   /* two lines held, so the figures line up */
.nb-a-n dd { margin: 0; }
.nb-a-v { font: 300 clamp(26px, 2.6vw, 38px)/1 var(--serif); letter-spacing: -.02em; white-space: nowrap; }
/* 13 Oct 2026: every figure fits its tile at any width, all alike: a tile's room (the row's width, cqi, over its --c
   columns, less the tile's --pad) over the widest figure's ems (--w, numparts.js figW); four across only on a card of
   640 px or more, else two by two. */
.nb-a-v { font-size: clamp(18px, calc((100cqi / var(--c) - var(--pad)) / var(--w, 4.6)), 38px); }
@container nbans (max-width: 639px) { .nb-a-nums.n4 { --c: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 14px; }
  .nb-a-nums.n4 .nb-a-n:nth-child(3) { border-left: 0; padding-left: 0; } }
.nb-a-s { font-size: 12.5px; color: var(--ink-3); }
/* How sure: what qualifies the answer (the tags, the history, the notes, the band, every gate). */
.nb-sure { border: 1px solid var(--line); border-radius: var(--r-3); background: var(--bg-2); }
.nb-sure > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 14px; min-height: 48px; padding: 12px 20px; }
.nb-sure > summary::-webkit-details-marker { display: none; }
.nb-sure > summary::after { content: ""; margin-left: auto; flex: none; width: 8px; height: 8px; border-right: 1.5px solid var(--ink-3); border-bottom: 1.5px solid var(--ink-3); transform: rotate(45deg) translateY(-3px); transition: transform var(--fast) var(--ease); }
.nb-sure[open] > summary::after { transform: rotate(-135deg) translateY(-1px); }
.nb-sure-k { font: 500 14px/1.2 var(--sans); white-space: nowrap; }
.nb-sure-l { flex: 1 1 0; min-width: 0; font-size: 12.5px; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nb-sure[open] .nb-sure-l { display: none; }
@media (max-width: 640px) { .nb-sure-l { white-space: normal; overflow: visible; text-overflow: clip; } }   /* read whole on a phone */
.nb-sure-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 24px 32px; padding: 4px 20px 20px; }
.nb-sure-a { display: grid; gap: 16px; align-content: start; min-width: 0; }
.nb-sure .nb-verdict { background: transparent; border: 0; box-shadow: none; padding: 0; }
.nb-sure .nb-verdict .nb-vhead { display: none; }   /* the word is the answer's, above */
.nb-partial { margin: 0; color: var(--ink-2); border-left: 2px solid var(--line-2, var(--line)); padding-left: 10px; }
.v-arriving .nb-gates .g-fail .nb-gs, .v-arriving .nb-gates .g-fail b { color: var(--ink-2); }   /* not a verdict: no kill red */
.nr .nb-sure .nb-gates { grid-template-columns: minmax(0, 1fr); }
.nb-pf { display: grid; gap: 6px; } .nb-pf .nb-k { margin: 0; } .nb-pf .nb-proof { margin: 0; font-size: 13px; }
@container nrmain (max-width: 820px) { .nb-answer { grid-template-columns: minmax(0, 1fr); } .nb-a-nums { border-left: 0; border-top: 1px solid var(--line); padding-top: 14px; }
  .nb-a-n:first-child { padding-left: 0; } .nb-sure-in { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  .nb-answer { padding: 18px 16px; gap: 14px; } .nb-a-word { font-size: 34px; } .v-incomplete .nb-a-word { font-size: 28px; }
  .nb-a-nums { --pad: 12px; } .nb-a-n { padding-left: 12px; } .nb-a-v { font-size: clamp(16px, calc((100cqi / var(--c) - var(--pad)) / var(--w, 4.6)), 26px); } .nb-a-n dt { font-size: 10px; letter-spacing: .06em; } .nb-a-s { font-size: 12px; }
  #room .nb-sure > summary { padding: 12px 16px; } .nb-sure-in { padding: 4px 16px 16px; }
}
.nr-act { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.nb-room > .nb-own { margin: 14px 0 0; }   /* 13 Oct 2026: said under the answer, which comes first */
/* 13 Oct 2026: the money answer's four figures run the card's full width under the verdict (never squeezed beside it). */
.nb-answer.has-run { grid-template-columns: minmax(0, 1fr); align-items: start; } .nb-answer.has-run .nb-a-nums { border-left: 0; border-top: 1px solid var(--line); padding-top: 16px; }
.nb-answer.has-run .nb-a-n:first-child { padding-left: 0; } .nb-answer.has-run .nb-a-why, .nb-answer.has-run .nb-a-fails { max-width: 80ch; }
@media (max-width: 760px) { .nb-a-fails li:nth-child(n+3) { display: none; } }   /* a phone: two reasons, the rest under How sure */
