/* Order ticket. Place-order layout: side → LIMIT|MARKET|PRO → LEVERAGE|TYPE → PRICE+TRACK → SIZE+unit. */
.v2-ticket {
  container-type: inline-size;
  container-name: v2-ticket;
  /* Shared right-edge column: Track and size USDC/coin. */
  --v2-edge-w: 64px;
}
.v2-ticket .v2-field label,
.v2-ticket .v2-field .v2-lbl {
  flex: 0 0 74px;
  min-width: 0;
}
@container v2-ticket (max-width: 399px) {
  .v2-field label.v2-lbl,
  .v2-ticket .v2-field label,
  .v2-ticket .v2-field .v2-lbl {
    flex: 0 0 52px;
  }
}
[data-tile="ticket"] .v2-body {
  min-height: 0;
  display: flex;
  flex-direction: column;
  /* Vertical only: nothing in the ticket is meant to scroll sideways. Kit square scrollbar when a
     short panel does need it (style §Scrollbars). */
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-color: var(--acc) var(--bg);
  background: var(--v2-tile);
  gap: 0;
}
/* Kit boxed fields stack flush (shared 1px lines, no stray gaps). */
.v2-ticket .v2-field.x-field,
.v2-ticket .v2-field {
  border-radius: var(--r);
  border-left: 0;
  border-right: 0;
  border-top: 0;
  min-height: 44px;
}
.v2-ticket .v2-field + .v2-field,
.v2-ticket .v2-px-row + .v2-field,
.v2-ticket .v2-field + .v2-sz-row,
.v2-ticket .v2-sz-row + .v2-seg,
.v2-ticket .v2-meta + .v2-px-row,
.v2-ticket .v2-meta + .v2-field {
  margin-top: 0;
}
/* pu-8: preview/kit ticket values — 16px mono, rose focus, never clip decimals. */
.v2-ticket .v2-field input,
.v2-ticket .x-field input {
  font-size: var(--fs-16);
  font-weight: 400;
  line-height: 1.2;
  padding-right: 8px;
  min-width: 0;
  flex: 1 1 auto;
  overflow-x: auto;
  overflow-y: hidden;
  text-overflow: clip;
  white-space: nowrap;
  font-feature-settings: "zero" 1, "tnum" 1;
  font-variant-numeric: tabular-nums;
}
.v2-ticket .v2-field:focus-within,
.v2-ticket .x-field:focus-within {
  border-color: var(--acc);
  outline: 1px solid var(--acc);
  outline-offset: -1px;
  z-index: 1;
}
.v2-ticket .v2-unit:empty,
.v2-ticket .v2-unit[hidden] {
  display: none;
  min-width: 0;
  width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

/* 1) LONG / SHORT — main side toggle. */
.v2-ticket .v2-side {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--line);
  border-left: 0;
  border-right: 0;
  border-top: 0;
  background: var(--bg);
}
.v2-ticket .v2-side .v2-btn {
  min-height: 44px;
  border: 0;
  border-radius: var(--r);
  background: var(--bg);
  color: var(--mute);
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  text-transform: uppercase;
  -webkit-font-smoothing: none;
  box-shadow: none;
  cursor: var(--cur-pointer);
  /* No background transition — e2e/read of --bone must be immediate (main). */
  transition: none;
}
.v2-ticket .v2-side .v2-btn + .v2-btn {
  border-left: 1px solid var(--line);
}
.v2-ticket .v2-side .v2-btn:active,
.v2-ticket .v2-side .v2-btn.pr {
  transform: none;
  box-shadow: none;
}
.v2-ticket .v2-side .v2-btn.long.on,
.v2-ticket .v2-side .v2-btn.long.on:hover {
  background: var(--acc-hi);
  color: var(--ink);
}
.v2-ticket .v2-side .v2-btn.short.on,
.v2-ticket .v2-side .v2-btn.short.on:hover {
  background: var(--bone);
  color: var(--ink);
}

/* 2) LIMIT | MARKET | PRO — equal tiles, rose fill on the active tab. */
.v2-ticket .v2-otype-host {
  position: relative;
  z-index: 6;
}
.v2-ticket .v2-otype {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  border: 1px solid var(--line);
  border-left: 0;
  border-right: 0;
  border-top: 0;
  background: var(--bg);
}
.v2-ticket .v2-otype-tile {
  min-height: 44px;
  border: 0;
  border-radius: var(--r);
  background: var(--bg);
  color: var(--mute);
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  text-transform: uppercase;
  -webkit-font-smoothing: none;
  box-shadow: none;
  cursor: var(--cur-pointer);
  transition:
    background 120ms var(--st-2),
    color 120ms var(--st-2);
}
.v2-ticket .v2-otype-tile + .v2-otype-tile {
  border-left: 1px solid var(--line);
}
.v2-ticket .v2-otype-tile:active,
.v2-ticket .v2-otype-tile.pr {
  transform: none;
  box-shadow: none;
}
.v2-ticket .v2-otype-tile.on,
.v2-ticket .v2-otype-tile.on:hover,
.v2-ticket .v2-otype-tile[aria-selected="true"] {
  position: relative;
  background: var(--bg);
  color: var(--tx);
}
.v2-ticket .v2-otype-tile.on::after,
.v2-ticket .v2-otype-tile[aria-selected="true"]::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 0;
  height: 3px;
  background: var(--acc);
  pointer-events: none;
}

/* 3) LEVERAGE · TYPE (Cross/Isolated) — equal tiles. */
.v2-ticket .v2-meta {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  padding: 8px;
  background: var(--bg);
  border-bottom: var(--v2-rule) solid var(--v2-line);
  z-index: 5;
}
.v2-ticket .v2-meta-tile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--tile);
  box-shadow: none;
  text-transform: uppercase;
}
.v2-ticket .v2-meta-tile:active,
.v2-ticket .v2-meta-tile.pr {
  transform: none;
  box-shadow: none;
}
.v2-ticket .v2-meta-tile .x-lab {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--mute);
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  -webkit-font-smoothing: none;
  text-transform: uppercase;
}
.v2-ticket .v2-meta-tile > b {
  flex: 0 0 auto;
  min-width: 0;
  overflow: visible;
  white-space: nowrap;
  font-family: var(--mono);
  font-size: var(--fs-12);
  font-weight: 600;
  font-feature-settings: "zero" 1, "tnum" 1;
  font-variant-numeric: tabular-nums;
  color: var(--tx);
  text-align: right;
}
.v2-ticket .v2-meta-tile.on,
.v2-ticket .v2-meta-tile.on:hover {
  border-color: var(--acc);
  color: var(--tx);
  background: var(--tile);
}
.v2-ticket .v2-meta-tile.on > b {
  color: var(--acc-hi);
}

/* Adjust-leverage modal. Reuses .v2-modal (rose offset shadow). Own veil so k.ask keeps .v2-veil. */
.v2-lev-veil {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: none;
  align-items: center;
  justify-content: center;
  background: var(--v2-veil);
  padding: 16px;
}
.v2-lev-veil.on {
  display: flex;
}
.v2-lev-mod {
  width: min(440px, calc(100% - 32px));
  border-radius: var(--r);
}
.v2-lev-mod > .v2-hd {
  height: 44px;
  flex: 0 0 44px;
  overflow: visible;
}
.v2-lev-mod > .v2-hd h3 {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
  color: var(--mute);
  background: transparent;
}
.v2-lev-x {
  flex: 0 0 auto;
  margin-left: auto;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: var(--r);
  background: transparent;
  box-shadow: none;
  color: var(--tx);
  font-family: var(--pix);
  font-size: var(--fs-22);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1;
  cursor: pointer;
}
.v2-lev-x:hover {
  color: var(--acc-hi);
  background: transparent;
}
.v2-lev-read {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
  min-height: 66px;
}
.v2-lev-read .x-lab {
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
  color: var(--mute);
  background: transparent;
}
.v2-lev-fig {
  flex: 0 0 auto;
  font-family: var(--pix);
  font-size: var(--fs-66);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.1;
  color: var(--tx);
  background: transparent;
}
.v2-lev-bar {
  display: grid;
  grid-template-columns: repeat(var(--v2-lev-steps, 10), minmax(0, 1fr));
  gap: var(--v2-rule);
  height: 44px;
  min-height: 44px;
  background: var(--v2-line);
  border-radius: var(--r);
  touch-action: none;
  cursor: var(--cur-ew-resize);
  user-select: none;
}
.v2-lev-bar:focus-visible,
.v2-lev-bar.drag {
  outline: 1px solid var(--acc);
  outline-offset: -1px;
}
.v2-lev-bar i {
  display: block;
  min-width: 0;
  min-height: 44px;
  background: var(--tile);
  border-radius: var(--r);
  pointer-events: auto;
}
.v2-lev-bar i.on {
  background: var(--acc);
}
.v2-lev-scale {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.v2-lev-scale span {
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
  color: var(--mute);
  background: transparent;
}
.v2-lev-liq {
  margin: 0;
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
  color: var(--mute);
  background: transparent;
}
.v2-lev-mod .x-kv {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 0;
  color: var(--mute);
}
.v2-lev-mod .x-kv .x-lab {
  flex: 0 1 auto;
  min-width: 0;
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
  color: var(--mute);
  background: transparent;
}
.v2-lev-mod .v2-lead {
  flex: 1 1 auto;
  min-width: 12px;
  height: 0;
  border-bottom: 1px dotted var(--v2-leader);
  transform: translateY(-3px);
}
.v2-lev-mod .x-kv b {
  flex: 0 0 auto;
  color: var(--tx);
  font-family: var(--mono);
  font-size: var(--fs-12);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "zero" 1, "tnum" 1;
  white-space: nowrap;
  background: transparent;
}
.v2-lev-err {
  margin: 0;
  font-family: var(--mono);
  font-size: var(--fs-12);
  line-height: 1.4;
  color: var(--crit-tx);
  background: transparent;
  overflow-wrap: anywhere;
}
.v2-lev-err[hidden] {
  display: none;
}
.v2-lev-acts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.v2-lev-acts .v2-btn {
  width: 100%;
  min-height: 44px;
  border-radius: var(--r);
}

[data-tile="ticket"] .v2-tpsl,
[data-tile="ticket"] .v2-pro-field {
  display: none;
}
[data-tile="ticket"] .v2-tpsl.on,
[data-tile="ticket"] .v2-pro-field.on {
  display: flex;
}
[data-tile="ticket"] .v2-seg.v2-pro-field.on {
  display: grid;
}
/* PRO menu host — absolute under the otype row so it never pushes price/size. */
[data-tile="ticket"] .v2-pro-pick {
  display: block;
  position: absolute;
  z-index: 9;
  left: 0;
  right: 0;
  top: 100%;
  pointer-events: none;
}
[data-tile="ticket"] .v2-pro-pick.on {
  pointer-events: auto;
}
[data-tile="ticket"] .v2-pro-menu {
  display: none;
  position: absolute;
  z-index: 9;
  left: 0;
  right: 0;
  top: 0;
  flex-direction: column;
  gap: var(--v2-rule);
  background: var(--v2-line);
  border: var(--v2-rule) solid var(--v2-rose);
  box-sizing: border-box;
  pointer-events: auto;
}
[data-tile="ticket"] .v2-pro-menu.on {
  display: flex;
  animation: x-pop 160ms var(--st);
}
@keyframes x-pop {
  from {
    clip-path: inset(0 0 100% 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-tile="ticket"] .v2-pro-menu.on,
  .v2-lev-mod {
    animation: none;
  }
}
[data-tile="ticket"] .v2-pro-menu .v2-btn {
  justify-content: flex-start;
  padding: 0 10px;
  min-height: 44px;
  background: var(--v2-tile);
  border: 0;
  box-shadow: none;
}
[data-tile="ticket"] .v2-pro-menu .v2-btn:active,
[data-tile="ticket"] .v2-pro-menu .v2-btn.pr {
  transform: none;
  box-shadow: none;
}
[data-tile="ticket"] .v2-pro-menu .v2-btn.on,
[data-tile="ticket"] .v2-pro-menu .v2-btn.on:hover {
  background: var(--acc-hi);
  color: var(--ink);
  font-weight: 700;
  box-shadow: none;
}
[data-tile="ticket"] .v2-pro-menu .v2-btn.v2-cur:not(.on) {
  background: var(--v2-header);
  color: var(--acc-hi);
}

/* 3–4) PRICE + TRACK · SIZE + unit toggle (no MAX). */
[data-tile="ticket"] .v2-px-row,
[data-tile="ticket"] .v2-sz-row {
  display: flex;
  align-items: stretch;
  border-bottom: var(--v2-rule) solid var(--v2-line);
  min-height: 44px;
  background: var(--bg);
}
[data-tile="ticket"] .v2-px-row > form,
[data-tile="ticket"] .v2-sz-row > form {
  flex: 1;
  min-width: 0;
}
[data-tile="ticket"] .v2-px-row .v2-field,
[data-tile="ticket"] .v2-sz-row .v2-field {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: none;
  min-height: 44px;
  padding-right: 8px;
}
[data-tile="ticket"] .v2-px-row:focus-within,
[data-tile="ticket"] .v2-sz-row:focus-within {
  outline: 1px solid var(--acc);
  outline-offset: -1px;
  z-index: 1;
}
[data-tile="ticket"] .v2-px-row .v2-unit,
[data-tile="ticket"] .v2-sz-row .v2-unit,
[data-tile="ticket"] #v2Trig ~ .v2-unit,
[data-tile="ticket"] .v2-field:has(#v2Trig) .v2-unit {
  display: none;
}
/* Converted coin size when SIZE is in USDC. */
[data-tile="ticket"] .v2-sz-conv {
  flex: 0 1 auto;
  align-self: center;
  min-width: 0;
  max-width: 40%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 8px 0 0;
  color: var(--mute);
  font-family: var(--mono);
  font-size: var(--fs-12);
  font-feature-settings: "zero" 1, "tnum" 1;
  text-transform: none;
}
[data-tile="ticket"] .v2-sz-conv[hidden] {
  display: none;
}
[data-tile="ticket"] .v2-edge-btn {
  flex: 0 0 var(--v2-edge-w);
  width: var(--v2-edge-w);
  margin: 0;
  height: auto;
  min-height: 44px;
  border: 0;
  border-left: var(--v2-rule) solid var(--v2-line);
  border-radius: var(--r);
  box-shadow: none;
  font-weight: 700;
  letter-spacing: var(--v2-track-label);
  text-transform: uppercase;
}
[data-tile="ticket"] .v2-edge-btn:active,
[data-tile="ticket"] .v2-edge-btn.pr {
  transform: none;
  box-shadow: none;
}
[data-tile="ticket"] .v2-track.on,
[data-tile="ticket"] .v2-track.on:hover {
  background: var(--acc-hi);
  color: var(--ink);
}
[data-tile="ticket"] .v2-sz-unit,
[data-tile="ticket"] .v2-sz-unit:hover {
  background: var(--acc-hi);
  color: var(--ink);
  font-weight: 700;
}
/* Flags: kit .x-ck look — square box + pix label (button, no raw checkbox input). */
.v2-ticket .v2-flags {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 4px 8px;
  background: var(--bg);
  border-bottom: var(--v2-rule) solid var(--v2-line);
}
.v2-ticket .v2-ck {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 33px;
  margin: 0;
  padding: 0 4px;
  border: 0;
  border-radius: var(--r);
  background: transparent;
  box-shadow: none;
  color: var(--mute);
  text-align: left;
  cursor: var(--cur-pointer);
  font: inherit;
}
.v2-ticket .v2-ck:active,
.v2-ticket .v2-ck.pr {
  transform: none;
  box-shadow: none;
}
.v2-ticket .v2-ck .v2-ck-box {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border: 1px solid var(--bone);
  border-radius: var(--r);
  background: var(--bg);
  display: grid;
  place-items: center;
}
.v2-ticket .v2-ck .v2-ck-box::after {
  content: "";
  width: 8px;
  height: 8px;
  background: var(--ink);
  transform: scale(0);
  transition: transform 120ms var(--st-2);
}
.v2-ticket .v2-ck.on .v2-ck-box,
.v2-ticket .v2-ck[aria-checked="true"] .v2-ck-box {
  background: var(--acc);
  border-color: var(--acc);
}
.v2-ticket .v2-ck.on .v2-ck-box::after,
.v2-ticket .v2-ck[aria-checked="true"] .v2-ck-box::after {
  transform: scale(1);
}
.v2-ticket .v2-ck .x-lab {
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  -webkit-font-smoothing: none;
  text-transform: uppercase;
  color: var(--mute);
}
.v2-ticket .v2-ck.on .x-lab,
.v2-ticket .v2-ck[aria-checked="true"] .x-lab {
  color: var(--tx);
}
.v2-ticket .v2-ck:disabled {
  opacity: 0.35;
  cursor: var(--cur-default);
}
[data-tile="ticket"] .v2-submit {
  margin-top: auto;
  /* The kit press (translate 2px) stays inside this row, so pressing LONG/SHORT never grows the
     ticket's scroll area and flashes scrollbars. clip (not hidden) so the row is not a scroll box. */
  overflow: clip;
}
/* Focus ring drawn inside the button (ink on the rose/bone fill), not the browser's blue ring outside the panel. */
[data-tile="ticket"] .v2-submit .v2-btn:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: -4px;
}
/* Submit keeps kit primary height even when dense .v2-seg rules shrink siblings. */
[data-tile="ticket"] .v2-submit .v2-btn {
  height: 46px;
  min-height: 44px;
}
[data-tile="ticket"] .v2-field input[readonly] {
  color: var(--mute);
}
[data-tile="ticket"] .v2-submit .v2-btn.long,
[data-tile="ticket"] .v2-submit .v2-btn.long:hover {
  background: var(--acc-hi);
  border-color: var(--acc);
  color: var(--ink);
}
/* Short / sell = --bone per docs/v2-style.md (not --crit). */
[data-tile="ticket"] .v2-submit .v2-btn.short,
[data-tile="ticket"] .v2-submit .v2-btn.short:hover {
  background: var(--bone);
  border-color: var(--bone);
  color: var(--ink);
}
[data-tile="ticket"] .v2-btn:disabled {
  opacity: 0.35;
}
.v2-ticket .v2-field:focus-within .x-car {
  position: absolute;
  left: auto;
  right: 12px;
}
.v2-ticket .v2-field:focus-within:has(.v2-unit:not([hidden])) .x-car {
  right: 52px;
}
.v2-ticket .v2-px-row:focus-within .x-car,
.v2-ticket .v2-sz-row:focus-within .x-car {
  right: 12px;
}
/* TP / SL est. PnL: kit x-tip (shell.css) on the field box, right-aligned over the value
   (unit 32 + gap 8 + pad 12 + input pad 8). Profit / loss fill the tip with --ok / --crit, ink text. */
.v2-ticket .x-tip .v2-tpsl-tip {
  left: auto;
  right: 60px;
  font-feature-settings: "zero" 1, "tnum" 1;
  font-variant-numeric: tabular-nums;
}
.v2-ticket .x-tip .v2-tpsl-tip[hidden] {
  display: none;
}
.v2-ticket .x-tip .v2-tpsl-tip.v2-up {
  background: var(--ok);
  color: var(--ink);
}
.v2-ticket .x-tip .v2-tpsl-tip.v2-dn {
  background: var(--crit);
  color: var(--ink);
}
html[data-v2-priv] .v2-tpsl-tip .v2-pv::before {
  color: var(--ink);
}

/* QUICK Q row: screener chip left, quick hint right. One rule under the row. */
.v2-qrow {
  display: flex;
  align-items: stretch;
  flex: 0 0 auto;
  border-bottom: 1px solid var(--line);
  background: var(--bg);
}
.v2-qrow > .v2-qhint {
  flex: 1 1 auto;
  width: auto;
  border-bottom: 0;
}
.v2-scr-chip {
  appearance: none;
  flex: 0 0 auto;
  min-height: 33px;
  margin: 0;
  padding: 0 12px;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  box-shadow: none;
  color: var(--mute);
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
  -webkit-font-smoothing: none;
  cursor: var(--cur-pointer);
}
.v2-scr-chip:hover,
.v2-scr-chip:focus-visible {
  color: var(--acc-hi);
}
.v2-scr-chip[aria-pressed="true"] {
  background: var(--acc-hi);
  color: var(--ink);
}
/* Screener on: the ticket body shows only the row and the starred list. */
[data-tile="ticket"] .v2-body.v2-scr-on > :not(.v2-qrow):not(.v2-scr) {
  display: none !important;
}
.v2-scr {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
}
.v2-scr[hidden] {
  display: none;
}
.v2-scr-th,
.v2-scr-r {
  display: grid;
  grid-template-columns: 33px minmax(0, 1fr);
  align-items: stretch;
  border-bottom: 1px solid var(--line);
}
.v2-scr-th {
  flex: 0 0 33px;
  grid-template-columns: 33px minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 0.8fr);
  align-items: center;
  padding-right: 8px;
  column-gap: 8px;
  background: var(--alt);
  color: var(--mute);
  font-family: var(--mono);
  font-size: var(--fs-12);
  letter-spacing: var(--v2-track-label);
  text-transform: uppercase;
}
.v2-scr-th > .v2-scr-star {
  text-align: center;
}
.v2-scr-list {
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: var(--acc) var(--bg);
}
.v2-scr-r {
  height: 33px;
  background: var(--tile);
  color: var(--tx);
}
.v2-scr-r > button {
  appearance: none;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--r);
  background: transparent;
  color: inherit;
  font-family: var(--mono);
  font-size: var(--fs-12);
  font-variant-numeric: tabular-nums slashed-zero;
  text-align: left;
  cursor: var(--cur-pointer);
}
.v2-scr-r > .v2-scr-star {
  color: var(--warn);
  text-align: center;
}
.v2-scr-r > .v2-scr-star:hover,
.v2-scr-r > .v2-scr-star:focus-visible {
  color: var(--mute);
}
.v2-scr-pick {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 0.8fr);
  column-gap: 8px;
  align-items: center;
  padding-right: 8px !important;
}
.v2-scr-n {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.v2-scr-px,
.v2-scr-ch {
  overflow: hidden;
  white-space: nowrap;
  text-align: right;
}
.v2-scr-ch.v2-up {
  color: var(--acc-hi);
}
.v2-scr-ch.v2-dn {
  color: var(--bone);
}
.v2-scr-r:hover {
  background: var(--alt);
}
.v2-scr-r:hover .v2-scr-n {
  color: var(--acc-hi);
}
/* Current market: inverted block (kit tr.on). */
.v2-scr-r.on,
.v2-scr-r.on:hover {
  background: var(--acc-hi);
  color: var(--ink);
}
.v2-scr-r.on .v2-scr-n,
.v2-scr-r.on .v2-scr-ch,
.v2-scr-r.on > .v2-scr-star {
  color: var(--ink);
}
.v2-scr-empty {
  padding: 12px 8px;
  border-bottom: 1px solid var(--line);
  color: var(--mute);
  font-family: var(--mono);
  font-size: var(--fs-12);
}
/* Leftover panel height: large area → plain tile + scanlines, no diagonal hatch. */
.v2-scr-fill {
  flex: 1 1 auto;
  min-height: 33px;
  background: var(--tile);
}

/* Quick order (Q). Narrow popup; size and flags are the ticket's, not a second store. */
.v2-qhint {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
  min-height: 33px;
  margin: 0;
  padding: 0 8px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  box-shadow: none;
  color: var(--mute);
  cursor: var(--cur-pointer);
}
.v2-qhint .x-lab {
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: uppercase;
  -webkit-font-smoothing: none;
  color: var(--mute);
}
.v2-qhint kbd {
  font-family: var(--mono);
  font-size: var(--fs-12);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1;
  padding: 0 4px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  color: var(--tx);
}
.v2-qord {
  position: fixed;
  z-index: 98;
  top: 72px;
  right: 16px;
  display: none;
  width: min(260px, calc(100vw - 16px));
  max-width: calc(100vw - 16px);
  box-sizing: border-box;
  overflow: hidden;
  flex-direction: column;
  background: var(--tile);
  border: 1px solid var(--acc);
  border-radius: var(--r);
  /* One 1px frame. The 4px offset sat on top of the border and read as a second edge. */
  box-shadow: none;
}
.v2-qord.on {
  display: flex;
}
.v2-qord > .v2-hd {
  height: 44px;
  flex: 0 0 44px;
  padding: 0 0 0 8px;
  gap: 8px;
  cursor: grab;
  user-select: none;
  touch-action: none;
}
.v2-qord > .v2-hd.v2-qord-drag {
  cursor: grabbing;
}
.v2-qord-pin {
  appearance: none;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: var(--r);
  background: transparent;
  box-shadow: none;
  color: var(--mute);
  cursor: var(--cur-pointer);
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
  -webkit-font-smoothing: none;
}
.v2-qord-pin.on,
.v2-qord-pin[aria-pressed="true"] {
  background: var(--acc-hi);
  color: var(--ink);
}
.v2-qord-x {
  appearance: none;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: var(--r);
  background: transparent;
  box-shadow: none;
  color: var(--tx);
  cursor: var(--cur-pointer);
  font-family: var(--pix);
  font-size: var(--fs-22);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1;
  -webkit-font-smoothing: none;
}
.v2-qord-sum {
  margin: 0;
  padding: 4px 8px;
  border-bottom: 1px solid var(--line);
  background: var(--bg);
  color: var(--tx);
  font-family: var(--mono);
  font-size: var(--fs-12);
  font-weight: 400;
  font-feature-settings: "zero" 1, "tnum" 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.v2-qord .v2-qord-sz {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 44px;
  border-bottom: 1px solid var(--line);
  background: var(--bg);
}
.v2-qord .v2-qord-sz > form {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}
.v2-qord .v2-field {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  border: 0;
  border-radius: var(--r);
  outline: none;
  box-shadow: none;
}
.v2-qord .v2-field:focus-within {
  border-color: transparent;
  outline: none;
}
.v2-qord .v2-qord-sz:focus-within {
  outline: 1px solid var(--acc);
  outline-offset: -1px;
}
.v2-qord .v2-field label,
.v2-qord .v2-field .v2-lbl {
  flex: 0 0 52px;
}
/* Block caret sits on the value, same as the ticket size row, not on the SIZE label. */
.v2-qord .v2-field:focus-within .x-car {
  position: absolute;
  left: auto;
  right: 12px;
}
.v2-qord .v2-unit[hidden],
.v2-qord .v2-unit:empty {
  display: none;
  width: 0;
  min-width: 0;
  margin: 0;
  padding: 0;
}
.v2-qord .v2-edge-btn {
  flex: 0 0 auto;
  width: auto;
  min-width: 52px;
  max-width: 40%;
  margin: 0;
  height: auto;
  min-height: 44px;
  padding: 0 8px;
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: none;
  background: var(--acc-hi);
  color: var(--ink);
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  text-transform: uppercase;
  -webkit-font-smoothing: none;
}
/* Quick price row: MARKET toggle sits where the size row has its unit. Off = tile, on = --acc block. */
/* Same edge width on both rows so PRICE and SIZE values line up. */
.v2-qord .v2-qord-sz > .v2-edge-btn {
  min-width: 66px;
}
.v2-qord .v2-qord-mkt,
.v2-qord .v2-qord-mkt:hover {
  background: var(--tile);
  color: var(--mute);
}
.v2-qord .v2-qord-mkt.on,
.v2-qord .v2-qord-mkt.on:hover {
  background: var(--acc-hi);
  color: var(--ink);
}
.v2-qord .v2-qord-mkt-on .v2-field input {
  cursor: pointer;
}
.v2-qord .v2-qord-mkt-on .v2-field input::placeholder {
  color: var(--tx);
  opacity: 1;
}
.v2-qord .v2-flags {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 4px;
  background: var(--bg);
  border-bottom: 1px solid var(--line);
}
.v2-qord .v2-ck {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 33px;
  margin: 0;
  padding: 0 4px;
  border: 0;
  border-radius: var(--r);
  background: transparent;
  box-shadow: none;
  color: var(--mute);
  text-align: left;
  cursor: var(--cur-pointer);
}
.v2-qord .v2-ck .v2-ck-box {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  box-sizing: border-box;
  border: 1px solid var(--bone);
  border-radius: var(--r);
  background: var(--bg);
  display: grid;
  place-items: center;
}
.v2-qord .v2-ck .v2-ck-box::after {
  content: "";
  width: 8px;
  height: 8px;
  background: var(--ink);
  transform: scale(0);
  transition: transform 120ms var(--st-2);
}
.v2-qord .v2-ck.on .v2-ck-box,
.v2-qord .v2-ck[aria-checked="true"] .v2-ck-box {
  background: var(--acc);
  border-color: var(--acc);
}
.v2-qord .v2-ck.on .v2-ck-box::after,
.v2-qord .v2-ck[aria-checked="true"] .v2-ck-box::after {
  transform: scale(1);
}
.v2-qord .v2-ck .x-lab {
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  -webkit-font-smoothing: none;
  text-transform: uppercase;
  color: var(--mute);
}
.v2-qord .v2-ck.on .x-lab,
.v2-qord .v2-ck[aria-checked="true"] .x-lab {
  color: var(--tx);
}
.v2-qord .v2-ck:disabled {
  opacity: 1;
  cursor: var(--cur-default);
}
.v2-qord .v2-ck:disabled .v2-ck-box {
  opacity: 0.35;
}
.v2-qord-why {
  margin: 0;
  padding: 0 8px 6px 28px;
  color: var(--mute);
  font-family: var(--mono);
  font-size: var(--fs-12);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  line-height: 1.3;
}
.v2-qord-why[hidden] {
  display: none;
}
.v2-qord-acts {
  display: flex;
  gap: 8px;
  padding: 8px;
  background: var(--bg);
}
.v2-qord-acts .v2-btn {
  flex: 1 1 0;
  min-width: 0;
  min-height: 44px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--v2-shadow-2) var(--line);
  font-family: var(--pix);
  font-size: var(--fs-11);
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  text-transform: uppercase;
  -webkit-font-smoothing: none;
}
.v2-qord-acts .v2-btn.long,
.v2-qord-acts .v2-btn.long:hover {
  background: var(--acc-hi);
  border-color: var(--acc);
  color: var(--ink);
  box-shadow: var(--v2-shadow-2) var(--bone);
}
.v2-qord-acts .v2-btn.short,
.v2-qord-acts .v2-btn.short:hover {
  background: var(--bone);
  border-color: var(--bone);
  color: var(--ink);
}
@media (prefers-reduced-motion: reduce) {
  .v2-qord .v2-ck .v2-ck-box::after {
    transition: none;
  }
}
