/* Truth-first StockYield market terminal.
   Every selector is rooted in the terminal shell or `.market-terminal`; the
   AAPL detail/chart/trade composition intentionally remains outside this
   cascade. */

/* Terminal routes use the existing 76px topbar with a bounded drawer instead
   of the desktop rail. Long-horizon Insights pages keep their own page spacing;
   only a frame that actually contains the terminal becomes full bleed. */
.app-shell[data-shell-section="terminal"] {
  padding-inline-start: var(--space-0);
  overflow-inline: clip;
  background: var(--color-bg);
}

.app-shell[data-shell-section="terminal"] .app-frame {
  min-inline-size: var(--space-0);
  background: var(--color-bg);
}

.app-shell[data-shell-section="terminal"] .sidebar {
  z-index: var(--z-modal);
  inline-size: var(--terminal-drawer-inline-size);
  max-inline-size: calc(100vw - var(--space-12));
  visibility: hidden;
  border-inline-end: var(--border-default);
  border-radius: var(--radius-none);
  background: var(--color-bg-raised);
  box-shadow: none;
  transform: translate3d(-100%, var(--space-0), var(--space-0));
  transition:
    transform var(--duration-base) var(--ease-out),
    visibility 0s linear var(--duration-base);
}

.app-shell[data-shell-section="terminal"] .sidebar:is(.is-open, [data-open="true"]),
.app-shell[data-shell-section="terminal"][data-mobile-open="true"] .sidebar {
  visibility: visible;
  transform: translate3d(var(--space-0), var(--space-0), var(--space-0));
  transition-delay: 0s;
}

.app-shell[data-shell-section="terminal"] :is(.mobile-menu-toggle, .sidebar-close) {
  display: inline-grid;
}

.app-shell[data-shell-section="terminal"] .sidebar-backdrop {
  backdrop-filter: none;
}

.app-shell[data-shell-section="terminal"] .mobile-nav {
  display: none;
}

.app-shell[data-shell-section="terminal"] .page-main:has(.market-terminal) {
  min-inline-size: var(--space-0);
  min-block-size: calc(100dvh - var(--layout-topbar-block-size));
  padding-block-end: var(--space-0);
  overflow-inline: clip;
  scroll-padding-block-start: var(--terminal-sticky-stack);
}

.app-shell[data-shell-section="terminal"] :is(.page-content, .page-frame):has(.market-terminal) {
  display: block;
  inline-size: 100%;
  max-inline-size: none;
  min-block-size: var(--space-0);
  padding: var(--space-0);
  margin: var(--space-0);
  gap: var(--space-0);
}

.app-shell[data-shell-section="terminal"] :is(.page-content, .page-frame):has(.market-terminal) > .market-terminal {
  inline-size: 100%;
  max-inline-size: none;
  margin: var(--space-0);
}

.market-terminal {
  --terminal-sticky-stack: calc(var(--layout-topbar-block-size) + var(--terminal-command-block-size));
  position: relative;
  display: grid;
  grid-template-rows:
    var(--terminal-command-block-size)
    var(--terminal-tape-block-size)
    auto;
  inline-size: 100%;
  min-inline-size: var(--space-0);
  max-inline-size: 100%;
  overflow-inline: clip;
  color: var(--color-text-secondary);
  background: var(--color-bg);
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  line-height: var(--leading-snug);
  scroll-padding-block-start: var(--terminal-sticky-stack);
  isolation: isolate;
}

.market-terminal,
.market-terminal *,
.market-terminal *::before,
.market-terminal *::after {
  box-sizing: border-box;
}

.market-terminal :is([id], [tabindex], a, button, input, select) {
  scroll-margin-block-start: var(--terminal-sticky-stack);
}

.market-terminal :is(button, input, select, a[role="button"]) {
  border-radius: var(--terminal-control-radius);
  box-shadow: none;
}

.market-terminal :is(button, a, input, select, [tabindex]):focus-visible {
  outline: var(--border-width-strong) solid var(--color-focus-ring);
  outline-offset: calc(var(--border-width-strong) * -1);
  box-shadow: none;
}

.market-terminal :is(button, input, select, a[role="button"]):disabled,
.market-terminal :is(button, input, select, a[role="button"])[aria-disabled="true"] {
  border-color: var(--color-border-subtle);
  background: var(--color-control-bg-disabled);
  color: var(--color-text-disabled);
}

/* Command and coverage bands ------------------------------------------------ */
.market-terminal__command {
  position: sticky;
  z-index: var(--z-sticky);
  inset-block-start: var(--layout-topbar-block-size);
  display: grid;
  min-inline-size: var(--space-0);
  block-size: var(--terminal-command-block-size);
  align-items: center;
  overflow: visible;
  background: var(--color-surface);
  border-block-end: var(--border-default);
}

.market-terminal__route-nav,
.market-terminal__search,
.market-terminal__filters,
.market-terminal__result,
.market-terminal__ages {
  min-inline-size: var(--space-0);
}

.market-terminal__route-nav {
  display: flex;
  block-size: var(--terminal-row-block-size);
  min-inline-size: var(--space-0);
  align-items: stretch;
  overflow: hidden;
  white-space: nowrap;
}

.market-terminal__route-nav nav {
  display: flex;
  block-size: var(--terminal-row-block-size);
}

.market-terminal__route-nav .market-terminal__markets-nav {
  min-inline-size: max-content;
  flex: none;
}

.market-terminal__route-nav .insights-analytics-nav {
  min-inline-size: var(--space-0);
  flex: 1 1 auto;
  overflow-x: auto;
  border: var(--space-0);
  border-inline-start: var(--border-subtle);
  border-radius: var(--radius-none);
}

.market-terminal__route-nav :is(a, button, select) {
  display: inline-flex;
  min-inline-size: max-content;
  min-block-size: var(--terminal-row-block-size);
  align-items: center;
  justify-content: center;
  padding-inline: var(--space-3);
  border: var(--border-width) solid transparent;
  border-radius: var(--radius-none);
  background: transparent;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-none);
  text-decoration: none;
}

.market-terminal__route-nav :is(a, button)[aria-current],
.market-terminal__route-nav :is(a, button)[aria-selected="true"],
.market-terminal__route-nav :is(a, button)[aria-pressed="true"] {
  border-block-end-color: var(--color-accent);
  background: var(--color-surface-elevated);
  color: var(--color-text-secondary);
}

.market-terminal__route-nav :is(.market-terminal__product, [data-terminal-product]) {
  justify-content: flex-start;
  color: var(--color-text-secondary);
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: var(--weight-semibold);
  line-height: var(--text-xl);
  letter-spacing: var(--tracking-snug);
}

.market-terminal__search {
  position: relative;
  display: flex;
  block-size: var(--terminal-row-block-size);
  align-items: center;
}

.market-terminal__search :is(.input-shell, [role="combobox"], input[type="search"], input:not([type])) {
  inline-size: 100%;
  min-inline-size: var(--space-0);
  block-size: var(--terminal-row-block-size);
  min-block-size: var(--terminal-row-block-size);
  border: var(--border-width) solid var(--color-control-border);
  border-radius: var(--terminal-control-radius);
  background: var(--color-control-bg);
  color: var(--color-control-text);
  font-size: var(--text-sm);
  line-height: var(--leading-none);
  box-shadow: none;
}

.market-terminal__search :is(input[type="search"], input:not([type])) {
  padding-inline: var(--space-4);
  caret-color: var(--color-control-caret);
}

.market-terminal__search :is(input[type="search"], input:not([type]))::placeholder {
  color: var(--color-control-placeholder);
  opacity: 1;
}

.market-search__list,
.market-terminal__search [role="listbox"] {
  position: absolute;
  z-index: var(--z-dropdown);
  inset-block-start: calc(100% + var(--border-width));
  inset-inline: var(--space-0);
  max-block-size: calc(var(--terminal-row-block-size) * 7);
  overflow-y: auto;
  border: var(--border-default);
  border-radius: var(--radius-none);
  background: var(--color-bg-raised);
  box-shadow: none;
  overscroll-behavior: contain;
}

.market-search__list :is(a, button, [role="option"]),
.market-terminal__search [role="option"] {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1fr) auto;
  min-block-size: var(--terminal-row-block-size);
  align-items: center;
  padding-inline: var(--space-3);
  gap: var(--space-3);
  border: var(--space-0);
  border-block-end: var(--border-subtle);
  border-radius: var(--radius-none);
  background: var(--color-bg-raised);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  text-align: start;
}

.market-search__list :is(a, button, [role="option"]):last-child,
.market-terminal__search [role="option"]:last-child {
  border-block-end: var(--space-0);
}

.market-search__list [aria-selected="true"],
.market-terminal__search [role="option"][aria-selected="true"] {
  background: var(--color-surface-elevated);
  box-shadow: inset var(--border-width-strong) var(--space-0) var(--space-0) var(--color-accent);
}

.market-terminal__filters {
  display: grid;
  align-items: center;
}

.market-terminal__filters > label {
  display: grid;
  grid-template-rows:
    calc(var(--terminal-row-block-size) - var(--terminal-leader-head-block-size))
    var(--terminal-leader-head-block-size);
  min-inline-size: var(--space-0);
  block-size: var(--terminal-row-block-size);
  overflow: hidden;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  line-height: calc(var(--terminal-row-block-size) - var(--terminal-leader-head-block-size));
  white-space: nowrap;
}

.market-terminal__filters > label > select,
.market-terminal__filters > :is(button, select, [role="button"]) {
  inline-size: 100%;
  min-inline-size: var(--space-0);
  block-size: var(--terminal-leader-head-block-size);
  min-block-size: var(--terminal-leader-head-block-size);
  padding-block: var(--space-0);
  padding-inline: var(--space-3);
  overflow: hidden;
  border: var(--border-width) solid var(--color-control-border);
  border-radius: var(--terminal-control-radius);
  background: var(--color-control-bg);
  color: var(--color-text-secondary);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  line-height: var(--leading-none);
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: none;
}

.market-terminal__filters :is(button, [role="button"])[aria-pressed="true"],
.market-terminal__filters :is(button, [role="button"])[aria-expanded="true"] {
  border-color: var(--color-border-accent);
  background: var(--color-accent-soft);
  color: var(--color-text-secondary);
}

.market-terminal__result,
.market-terminal__ages {
  display: flex;
  min-block-size: var(--terminal-row-block-size);
  align-items: center;
  overflow: hidden;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-variant-numeric: tabular-nums;
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-snug);
  text-overflow: ellipsis;
}

.market-terminal__result {
  color: var(--color-text-secondary);
}

.market-terminal__ages {
  justify-content: flex-end;
  text-align: end;
}

.market-terminal__tape {
  display: flex;
  min-inline-size: var(--space-0);
  block-size: var(--terminal-tape-block-size);
  align-items: stretch;
  overflow-x: auto;
  overflow-y: hidden;
  border-block-end: var(--border-default);
  background: var(--color-bg-raised);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-variant-numeric: tabular-nums;
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-none);
  white-space: nowrap;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.market-terminal__tape > * {
  display: inline-flex;
  min-block-size: var(--terminal-tape-block-size);
  flex: none;
  align-items: center;
  padding-inline: var(--space-3);
  gap: var(--space-1);
  border-inline-end: var(--border-subtle);
}

.market-terminal__tape strong {
  color: var(--color-text-secondary);
  font-weight: var(--weight-semibold);
}

/* Shared panels ------------------------------------------------------------- */
.market-terminal__grid {
  display: grid;
  min-inline-size: var(--space-0);
  max-inline-size: 100%;
  align-content: start;
  overflow-inline: clip;
  border-inline-end: var(--border-default);
  background: var(--color-border-subtle);
}

.market-panel {
  position: relative;
  min-inline-size: var(--space-0);
  min-block-size: var(--space-0);
  overflow: hidden;
  border: var(--space-0);
  border-radius: var(--radius-none);
  background: var(--color-bg-raised);
  color: var(--color-text-secondary);
  box-shadow: none;
}

.market-panel--map {
  display: grid;
  grid-template-rows: var(--terminal-panel-bar-block-size) minmax(var(--space-0), 1fr);
}

.market-panel__bar {
  display: flex;
  min-inline-size: var(--space-0);
  block-size: var(--terminal-panel-bar-block-size);
  align-items: center;
  justify-content: space-between;
  padding-inline: var(--space-3);
  gap: var(--space-3);
  overflow: visible;
  border-block-end: var(--border-default);
  background: var(--color-surface);
}

.market-panel__bar :is(h2, h3, strong) {
  min-inline-size: var(--space-0);
  overflow: hidden;
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-none);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-panel__bar [role="tablist"] {
  display: flex;
  min-inline-size: max-content;
  block-size: var(--terminal-row-block-size);
  align-items: stretch;
}

.market-panel__bar :is(button, a, select, [role="tab"]) {
  min-block-size: var(--terminal-row-block-size);
}

.market-panel__bar [role="tab"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-inline: var(--space-2);
  border: var(--space-0);
  border-inline-start: var(--border-subtle);
  border-radius: var(--radius-none);
  background: transparent;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-none);
  white-space: nowrap;
}

.market-panel__bar [role="tab"][aria-selected="true"] {
  background: var(--color-surface-elevated);
  color: var(--color-text-secondary);
  box-shadow: inset var(--space-0) calc(var(--border-width-strong) * -1) var(--space-0) var(--color-accent);
}

.market-panel__bar > :is(span, output) {
  min-inline-size: var(--space-0);
  overflow: hidden;
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-variant-numeric: tabular-nums;
  line-height: var(--leading-none);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-panel__body {
  min-inline-size: var(--space-0);
  min-block-size: var(--space-0);
  overflow: hidden;
  background: var(--color-bg-raised);
}

.market-panel__footer {
  display: flex;
  min-inline-size: var(--space-0);
  block-size: var(--terminal-panel-bar-block-size);
  align-items: center;
  justify-content: space-between;
  padding-inline: var(--space-3);
  gap: var(--space-3);
  overflow: hidden;
  border-block-start: var(--border-default);
  background: var(--color-bg-raised);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-none);
  white-space: nowrap;
}

.market-panel__footer :is(a, button) {
  min-block-size: var(--terminal-row-block-size);
  padding-inline: var(--space-2);
  color: var(--color-text-secondary);
  text-decoration: none;
}

.market-panel__state {
  display: grid;
  min-inline-size: var(--space-0);
  min-block-size: 100%;
  align-content: center;
  justify-items: start;
  padding: var(--space-4);
  gap: var(--space-2);
  border-radius: var(--radius-none);
  background: var(--color-bg-raised);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
}

.market-panel__state strong {
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
}

/* Dense terminal tables ----------------------------------------------------- */
.market-terminal .terminal-table {
  inline-size: 100%;
  min-inline-size: var(--space-0);
  margin: var(--space-0);
  border-collapse: separate;
  border-spacing: var(--space-0);
  border-radius: var(--radius-none);
  background: var(--color-bg-raised);
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  line-height: var(--leading-snug);
  box-shadow: none;
}

.market-terminal .terminal-table :is(th, td, [role="columnheader"], [role="cell"], [role="rowheader"]) {
  min-inline-size: var(--space-0);
  padding-block: var(--space-0);
  padding-inline: var(--space-3);
  overflow: hidden;
  border-block-end: var(--border-subtle);
  color: var(--color-text-secondary);
  text-align: start;
  text-overflow: ellipsis;
  vertical-align: middle;
}

.market-terminal .terminal-table :is(th, [role="columnheader"]) {
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-none);
  text-transform: uppercase;
  white-space: nowrap;
}

.market-terminal .terminal-table :is(td, [role="cell"]):not(:first-child),
.market-terminal .terminal-table :is([data-numeric], .numeric) {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  text-align: end;
  white-space: nowrap;
}

.market-terminal .terminal-table :is(tbody tr, [role="row"]):last-child > * {
  border-block-end: var(--space-0);
}

.market-terminal .terminal-table :is(small, .terminal-table__meta) {
  display: block;
  min-inline-size: var(--space-0);
  overflow: hidden;
  color: var(--color-text-muted);
  font-family: var(--font-sans);
  font-size: var(--text-2xs);
  font-variant-numeric: normal;
  font-weight: var(--weight-regular);
  line-height: var(--leading-snug);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-terminal .terminal-table :is(a, button) {
  min-block-size: var(--terminal-row-block-size);
}

.market-terminal .terminal-table :is(tbody tr, [role="row"])[aria-selected="true"],
.market-terminal .terminal-table :is(tbody tr, [role="row"])[data-selected="true"] {
  background: var(--color-surface-elevated);
  box-shadow: inset var(--border-width-strong) var(--space-0) var(--space-0) var(--color-accent);
}

.market-terminal__leaders {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1fr);
  min-inline-size: var(--space-0);
  min-block-size: var(--space-0);
}

.market-terminal :is(.market-panel--spot, .market-panel--perp, .market-panel--leaderboard) {
  display: grid;
  grid-template-rows:
    var(--terminal-panel-bar-block-size)
    minmax(var(--space-0), 1fr)
    var(--terminal-panel-bar-block-size);
}

.market-terminal :is(.market-panel--spot, .market-panel--perp, .market-panel--leaderboard) .terminal-table [role="row"] {
  display: grid;
  min-inline-size: var(--space-0);
  align-items: stretch;
}

.market-panel--spot .terminal-table [role="row"],
.market-panel--leaderboard:not(:has([data-leader-source="perp"][aria-selected="true"])) .terminal-table [role="row"] {
  grid-template-columns:
    var(--terminal-spot-asset-inline-size)
    var(--terminal-spot-price-inline-size)
    var(--terminal-spot-change-inline-size)
    minmax(var(--space-0), 1fr);
}

.market-panel--perp .terminal-table [role="row"],
.market-panel--leaderboard:has([data-leader-source="perp"][aria-selected="true"]) .terminal-table [role="row"] {
  grid-template-columns:
    var(--terminal-perp-asset-inline-size)
    var(--terminal-perp-mark-inline-size)
    var(--terminal-perp-change-inline-size)
    var(--terminal-perp-volume-inline-size)
    minmax(var(--space-0), 1fr);
}

.market-terminal :is(.market-panel--spot, .market-panel--perp, .market-panel--leaderboard) .terminal-table [role="row"]:has(> [role="columnheader"]) {
  block-size: var(--terminal-leader-head-block-size);
  min-block-size: var(--terminal-leader-head-block-size);
  background: var(--color-surface);
}

.market-terminal :is(.market-panel--spot, .market-panel--perp, .market-panel--leaderboard) .terminal-table [role="row"]:not(:has(> [role="columnheader"])) {
  block-size: var(--terminal-row-block-size);
  min-block-size: var(--terminal-row-block-size);
  background: var(--color-bg-raised);
}

.market-terminal :is(.market-panel--spot, .market-panel--perp, .market-panel--leaderboard) .terminal-table [role="row"] > * {
  display: flex;
  min-inline-size: var(--space-0);
  align-items: center;
}

.market-terminal :is(.market-panel--spot, .market-panel--perp, .market-panel--leaderboard) .terminal-table [role="row"] > :not(:first-child) {
  justify-content: flex-end;
  text-align: end;
}

/* The scanner remains one semantic table at every width. */
.market-panel--scanner {
  display: grid;
  grid-template-rows: var(--terminal-scanner-bar-block-size) minmax(var(--space-0), 1fr);
}

.market-panel--scanner .market-panel__bar {
  block-size: var(--terminal-scanner-bar-block-size);
}

.market-scanner__scroller {
  position: relative;
  min-inline-size: var(--space-0);
  min-block-size: var(--space-0);
  max-inline-size: 100%;
  overflow: auto;
  border: var(--space-0);
  border-radius: var(--radius-none);
  background: var(--color-bg-raised);
  box-shadow: inset calc(var(--border-width) * -1) var(--space-0) var(--space-0) var(--color-border-strong);
  overscroll-behavior-inline: contain;
  overscroll-behavior-block: auto;
  scrollbar-color: var(--color-border-strong) var(--color-bg-raised);
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.market-scanner__scroller:focus-visible {
  outline-offset: calc(var(--border-width-strong) * -1);
}

.market-scanner__table {
  inline-size: calc(
    var(--terminal-scanner-asset-inline-size)
    + var(--terminal-scanner-spot-inline-size)
    + var(--terminal-scanner-change-inline-size)
    + var(--terminal-scanner-volume-inline-size)
    + var(--terminal-scanner-venues-inline-size)
  );
  min-inline-size: calc(
    var(--terminal-scanner-asset-inline-size)
    + var(--terminal-scanner-spot-inline-size)
    + var(--terminal-scanner-change-inline-size)
    + var(--terminal-scanner-volume-inline-size)
    + var(--terminal-scanner-venues-inline-size)
  ) !important;
  table-layout: fixed;
}

.market-scanner__table :is(col, th, td):nth-child(1) {
  inline-size: var(--terminal-scanner-asset-inline-size);
}

.market-scanner__table :is(col, th, td):nth-child(2) {
  inline-size: var(--terminal-scanner-spot-inline-size);
}

.market-scanner__table :is(col, th, td):nth-child(3) {
  inline-size: var(--terminal-scanner-change-inline-size);
}

.market-scanner__table :is(col, th, td):nth-child(4) {
  inline-size: var(--terminal-scanner-volume-inline-size);
}

.market-scanner__table :is(col, th, td):nth-child(5) {
  inline-size: var(--terminal-scanner-venues-inline-size);
}

.market-scanner__table thead tr {
  block-size: var(--terminal-scanner-head-block-size);
  min-block-size: var(--terminal-scanner-head-block-size);
}

.market-scanner__table thead th {
  position: sticky;
  z-index: calc(var(--z-sticky) + 1);
  inset-block-start: var(--space-0);
  block-size: var(--terminal-scanner-head-block-size);
  min-block-size: var(--terminal-scanner-head-block-size);
  background: var(--color-surface);
}

.market-scanner__table thead th > button {
  position: absolute;
  inset-block-start: 50%;
  inset-inline: var(--space-0);
  display: flex;
  inline-size: 100%;
  block-size: var(--terminal-row-block-size);
  min-block-size: var(--terminal-row-block-size);
  align-items: center;
  justify-content: inherit;
  padding-inline: var(--space-3);
  border: var(--space-0);
  border-radius: var(--radius-none);
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-align: inherit;
  text-transform: inherit;
  transform: translateY(-50%);
}

.market-scanner__table tbody tr {
  block-size: var(--terminal-row-block-size);
  min-block-size: var(--terminal-row-block-size);
  background: var(--color-bg-raised);
}

.market-scanner__table tbody :is(th, td) {
  block-size: var(--terminal-row-block-size);
  min-block-size: var(--terminal-row-block-size);
}

.market-scanner__table :is(th, td):first-child {
  position: sticky;
  z-index: var(--z-sticky);
  inset-inline-start: var(--space-0);
  background: var(--color-bg-raised);
  box-shadow: inset calc(var(--border-width) * -1) var(--space-0) var(--space-0) var(--color-border-strong);
}

.market-scanner__table thead th:first-child {
  z-index: calc(var(--z-sticky) + 2);
  background: var(--color-surface);
}

.market-scanner__table tbody tr:is([aria-selected="true"], [data-selected="true"]) > :first-child {
  background: var(--color-surface-elevated);
}

.market-scanner__table tbody th:first-child {
  display: grid;
  grid-template-columns: minmax(var(--space-0), 1fr) auto;
  align-items: center;
  padding-block: var(--space-0);
  padding-inline: var(--space-1);
  gap: var(--space-1);
}

.market-scanner__table [data-analysis-link] {
  display: grid;
  min-inline-size: var(--space-0);
  min-block-size: var(--terminal-row-block-size);
  align-content: center;
  padding-inline: var(--space-2);
  gap: var(--space-0-5);
  overflow: hidden;
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-none);
  text-decoration: none;
  white-space: nowrap;
}

.market-scanner__table [data-analysis-link] span {
  overflow: hidden;
  color: var(--color-text-muted);
  font-size: var(--text-2xs);
  font-weight: var(--weight-regular);
  line-height: var(--leading-snug);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-scanner__table [data-preview-address] {
  inline-size: var(--terminal-row-block-size);
  min-inline-size: var(--terminal-row-block-size);
  padding-inline: var(--space-1);
  overflow: hidden;
  border: var(--space-0);
  border-inline-start: var(--border-subtle);
  border-radius: var(--radius-none);
  background: transparent;
  color: var(--color-text-secondary);
  font-size: var(--text-2xs);
  line-height: var(--leading-none);
  text-overflow: ellipsis;
}

.market-scanner__table [data-coarse-analysis] {
  display: none;
}

.market-venue-states {
  position: relative;
  overflow: visible !important;
  white-space: nowrap;
}

:is(.market-venue-states, .market-venue-key) > span:not(.market-venue-readout) {
  display: inline-grid;
  min-inline-size: var(--space-5);
  min-block-size: var(--space-5);
  place-items: center;
  border: var(--border-subtle);
  border-radius: var(--radius-none);
  background: var(--color-surface);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-none);
}

:is(.market-venue-states, .market-venue-key) > :is(
  [data-state="fresh"],
  [data-state="active"],
  [data-state="active-token"],
  [data-state="catalog-supported"],
  [data-state="listed"],
  [data-state="deployed"]
) {
  border-color: var(--color-border-strong);
  color: var(--color-text-secondary);
}

:is(.market-venue-states, .market-venue-key) > :is([data-state="stale"], [data-state="stale-view-only"], [data-state="reduce-only"]) {
  border-style: dashed;
  border-color: var(--color-warning-border);
  color: var(--color-warning);
}

:is(.market-venue-states, .market-venue-key) > :is([data-state="absent"], [data-state="unavailable"], [data-state="not-listed"], [data-state="not-deployed"]) {
  border-color: var(--color-border-strong);
  color: var(--color-text-muted);
}

.market-venue-key {
  display: inline-flex;
  min-inline-size: max-content;
  min-block-size: var(--terminal-row-block-size);
  align-items: center;
  gap: var(--space-1);
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  letter-spacing: var(--tracking-wide);
  white-space: nowrap;
}

.market-venue-readout {
  position: absolute;
  z-index: var(--z-dropdown);
  inset-block-start: calc(100% - var(--border-width));
  inset-inline-end: var(--space-0);
  display: none;
  inline-size: var(--terminal-tooltip-max-inline-size);
  min-block-size: var(--terminal-row-block-size);
  padding: var(--space-2) var(--space-3);
  overflow: visible;
  border: var(--border-default);
  background: var(--color-surface);
  color: var(--color-text-secondary);
  font-family: var(--font-sans);
  font-size: var(--text-2xs);
  line-height: var(--leading-snug);
  text-align: start;
  white-space: normal;
}

.market-scanner__table tr:is(:focus, :focus-within, [aria-selected="true"]) .market-venue-readout {
  display: block;
}


/* Preview anatomy: header + quote + growing evidence + three source rows. */
.market-panel--preview,
.market-preview {
  min-inline-size: var(--space-0);
  overflow: hidden;
  background: var(--color-bg-raised);
}

.market-panel--preview {
  display: grid;
  grid-template-rows: auto;
  align-content: start;
  overflow: auto;
}

.market-preview__header {
  position: relative;
  display: grid;
  grid-template-columns: minmax(7.5rem, 32%) minmax(var(--space-0), 1fr);
  block-size: var(--terminal-scanner-bar-block-size);
  align-items: stretch;
  overflow: hidden;
  border-block-end: var(--border-default);
  background: var(--color-surface);
}

.market-preview__header > :is([data-preview-details], [data-preview-analysis]) {
  display: none;
}

.market-preview__eyebrow {
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  line-height: var(--leading-none);
  text-transform: uppercase;
}

.market-preview__header h2 {
  overflow: hidden;
  color: var(--color-text-secondary);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-none);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-preview__header h2 small {
  color: var(--color-text-muted);
  font-size: var(--text-2xs);
  font-weight: var(--weight-regular);
}

.market-preview__header > :first-child {
  display: grid;
  min-inline-size: var(--space-0);
  align-content: center;
  padding-inline: var(--space-3);
  overflow: hidden;
}

.market-preview__header > :first-child :is(strong, span) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-preview__actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(var(--space-0), 1fr));
  min-inline-size: var(--space-0);
  block-size: var(--terminal-scanner-bar-block-size);
  align-items: stretch;
  justify-content: stretch;
  grid-column: 2;
  grid-row: 1;
}

.market-preview__actions:has(> :only-child) {
  grid-template-columns: minmax(var(--space-0), 1fr);
}

.market-preview__actions:has(> :nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(var(--space-0), 1fr));
}

.market-preview__actions :is(a, button) {
  display: inline-flex;
  min-inline-size: var(--space-0);
  min-block-size: var(--terminal-row-block-size);
  align-items: center;
  justify-content: center;
  padding-inline: var(--space-2);
  overflow: hidden;
  border: var(--space-0);
  border-inline-start: var(--border-default);
  border-radius: var(--radius-none);
  background: transparent;
  color: var(--color-text-secondary);
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-snug);
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.market-preview__actions :is(a, button)[data-primary="true"],
.market-preview__actions :is(a, button).button--primary {
  background: var(--color-accent);
  color: var(--color-on-accent);
}



.market-preview__quote {
  display: grid;
  grid-template-columns: repeat(3, minmax(var(--space-0), 1fr));
  min-block-size: calc(var(--terminal-preview-quote-block-size) * 2);
  align-items: center;
  padding: var(--space-2) var(--space-3);
  gap: var(--space-2) var(--space-3);
  overflow: hidden;
  border-block-end: var(--border-default);
  background: var(--color-bg-raised);
}
.market-preview__stat {
  display: grid;
  min-inline-size: var(--space-0);
  gap: var(--space-1);
}

.market-preview__stat > * {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-preview__quote :is(strong, [data-quote]) {
  color: var(--color-text-secondary);
  font-family: var(--font-mono);
  font-size: var(--text-lg);
  font-variant-numeric: tabular-nums;
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-none);
}

.market-preview__quote :is(small, span) {
  color: var(--color-text-muted);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
  font-variant-numeric: tabular-nums;
}

.market-preview__evidence {
  position: relative;
  display: block;
  min-block-size: var(--space-0);
  padding: var(--space-3);
  overflow: hidden;
  border-block-end: var(--border-default);
  background: var(--color-bg-raised);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  text-align: start;
}

.market-preview__capabilities {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.market-preview__capabilities > span {
  padding: var(--space-1) var(--space-2);
  border: var(--border-subtle);
  color: var(--color-text-secondary);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
}

.market-preview__capabilities > [data-status="stale"] {
  border-color: var(--color-warning-border);
  color: var(--color-warning);
}


.market-preview__sources {
  display: block;
  min-inline-size: var(--space-0);
  block-size: auto;
  overflow: visible;
  background: var(--color-bg-raised);
}

.market-preview__data-details {
  min-inline-size: var(--space-0);
  border-block-end: var(--border-subtle);
  color: var(--color-text-secondary);
  font-size: var(--text-xs);
}

.market-preview__data-details > summary {
  display: list-item;
  min-block-size: var(--terminal-row-block-size);
  padding: var(--space-3);
  color: var(--color-text-secondary);
  font-weight: var(--weight-semibold);
  cursor: pointer;
}

.market-preview__data-details[open] > summary {
  border-block-end: var(--border-subtle);
}

.market-preview__data-details > :is(p, dl) {
  margin: var(--space-0);
}

.market-preview__data-details > p {
  padding: var(--space-3);
  color: var(--color-text-muted);
}

.market-preview__data-details dl > div {
  display: grid;
  grid-template-columns: minmax(7rem, auto) minmax(var(--space-0), 1fr);
  padding: var(--space-2) var(--space-3);
  gap: var(--space-3);
  border-block-end: var(--border-subtle);
}

.market-preview__data-details dl > div:last-child {
  border-block-end: var(--space-0);
}

.market-preview__data-details :is(dt, dd) {
  min-inline-size: var(--space-0);
  margin: var(--space-0);
  overflow-wrap: anywhere;
}

.market-preview__data-details dt {
  color: var(--color-text-muted);
  font-weight: var(--weight-semibold);
}

.market-preview__data-details dd {
  color: var(--color-text-secondary);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
}

/* Lighter perpetual activity map and ranked representation ---------------- */
.market-volume-map {
  position: relative;
  display: block;
  inline-size: 100%;
  min-inline-size: var(--space-0);
  block-size: 100%;
  min-block-size: var(--space-0);
  margin: var(--space-0);
  overflow: hidden;
  border-radius: var(--radius-none);
  background: var(--color-bg-raised);
}


.market-volume-map__plot {
  position: relative;
  inline-size: 100%;
  min-inline-size: var(--space-0);
  block-size: 100%;
  min-block-size: var(--space-0);
  padding: var(--space-0);
  overflow: auto;
  background: var(--color-bg-raised);
  overscroll-behavior-inline: contain;
  overscroll-behavior-block: auto;
  touch-action: pan-x pan-y;
  -webkit-overflow-scrolling: touch;
}

.market-volume-map__explorer {
  position: relative;
  inline-size: 100%;
  min-inline-size: 100%;
  block-size: 100%;
  min-block-size: var(--space-0);
  overflow: visible;
  background: var(--color-bg-raised);
}

.market-volume-map__svg {
  display: block;
  inline-size: 100%;
  min-inline-size: 100%;
  max-inline-size: none;
  block-size: 100%;
  overflow: visible;
}

.market-volume-map__node {
  color: var(--color-text-secondary);
  text-decoration: none;
  outline: none;
}

.market-volume-map__target {
  fill: transparent;
  stroke: transparent;
  pointer-events: all;
}

.market-volume-map__halo,
.market-volume-map__disc,
.market-volume-map__rim {
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}

.market-volume-map__halo {
  fill: none;
  stroke: var(--color-info);
  stroke-width: 6;
  opacity: 0.14;
}

.market-volume-map__disc {
  fill: var(--color-info-soft);
  stroke: none;
}

.market-volume-map__rim {
  fill: none;
  stroke: var(--color-info);
  stroke-width: var(--border-width-strong);
}

.market-volume-map__node[data-sign="positive"] :is(.market-volume-map__halo, .market-volume-map__rim) {
  stroke: var(--color-success);
}

.market-volume-map__disc--positive {
  fill: var(--color-success-soft);
}

.market-volume-map__node[data-sign="negative"] :is(.market-volume-map__halo, .market-volume-map__rim) {
  stroke: var(--color-error);
}

.market-volume-map__disc--negative {
  fill: var(--color-error-soft);
}

.market-volume-map__disc--neutral {
  fill: var(--color-info-soft);
}

.market-volume-map__node.market-volume-map__node--stale .market-volume-map__rim {
  stroke: var(--color-warning);
  stroke-dasharray: var(--space-1-5) var(--space-1);
}

.market-volume-map__node:focus-visible .market-volume-map__target {
  stroke: var(--color-focus-ring);
  stroke-width: var(--border-width-strong);
}

.market-volume-map__node:is(:focus-visible, [data-active="true"])
  :is(.market-volume-map__halo, .market-volume-map__disc, .market-volume-map__rim, text) {
  filter: brightness(1.3);
  opacity: 1;
}

.market-volume-map__symbol,
.market-volume-map__value,
.market-volume-map__state {
  fill: var(--color-text-secondary);
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: var(--weight-semibold);
  paint-order: stroke;
  stroke: var(--color-bg-raised);
  stroke-width: var(--border-width-strong);
  text-anchor: middle;
}

.market-volume-map__symbol {
  font-size: var(--text-xs);
}

.market-volume-map__value,
.market-volume-map__state {
  font-size: var(--text-2xs);
}

.market-volume-map__node[data-label-tier="full"] .market-volume-map__symbol {
  font-size: var(--text-sm);
}

.market-volume-map__node[data-label-tier="ticker"] .market-volume-map__symbol {
  font-size: var(--text-2xs);
}

.market-volume-map__node[data-sign="positive"] :is(.market-volume-map__value, .market-volume-map__state) {
  fill: var(--color-success);
}

.market-volume-map__node[data-sign="negative"] :is(.market-volume-map__value, .market-volume-map__state) {
  fill: var(--color-error);
}

.market-volume-map__node--stale .market-volume-map__state {
  fill: var(--color-warning);
}

.market-volume-map__tooltip,
.market-volume-map__readout {
  z-index: var(--z-dropdown);
  max-inline-size: min(var(--terminal-tooltip-max-inline-size), calc(100% - var(--space-4)));
  min-block-size: var(--terminal-row-block-size);
  padding: var(--space-2) var(--space-3);
  border: var(--border-default);
  border-radius: var(--radius-none);
  background: var(--color-surface);
  color: var(--color-text-secondary);
  font-size: var(--text-xs);
  line-height: var(--leading-snug);
  box-shadow: none;
}

.market-volume-map__readout:not([hidden]) {
  position: absolute;
  inset-inline: var(--space-0);
  inset-block-end: var(--space-0);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}


.market-volume-map__empty {
  display: grid;
  min-block-size: 100%;
  place-items: center;
  padding: var(--space-4);
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  text-align: center;
}

.market-volume-map__ranked {
  min-inline-size: 100%;
  min-block-size: 100%;
  overflow: auto;
  overscroll-behavior-inline: contain;
  overscroll-behavior-block: auto;
}

.market-volume-map__table {
  min-inline-size: var(--terminal-ranked-list-min-inline-size) !important;
  table-layout: fixed;
}

.market-volume-map__table thead th {
  position: sticky;
  z-index: calc(var(--z-sticky) + 1);
  inset-block-start: var(--space-0);
  block-size: var(--terminal-leader-head-block-size);
  background: var(--color-surface);
}

.market-volume-map__ranked-row {
  block-size: var(--terminal-row-block-size);
  min-block-size: var(--terminal-row-block-size);
}

.market-volume-map__ranked-row :is(th, td) {
  block-size: var(--terminal-row-block-size);
  min-block-size: var(--terminal-row-block-size);
}

.market-volume-map__ranked-row[data-status="stale"] .market-volume-map__status {
  color: var(--color-warning);
}

.market-volume-map__ranked-row[data-sign="positive"] .market-volume-map__change {
  color: var(--color-success);
}

.market-volume-map__ranked-row[data-sign="negative"] .market-volume-map__change {
  color: var(--color-error);
}

.market-volume-map__asset span {
  color: var(--color-text-secondary);
  font-weight: var(--weight-semibold);
}

/* Financial direction is always redundant with a visible sign. Direct cell
   selectors intentionally outrank the terminal table's neutral baseline. */
.market-terminal :is([data-sign="positive"], .is-positive, .terminal-value--positive),
.market-terminal .terminal-table :is(td, [role="cell"])[data-direction="positive"],
.market-terminal .market-preview__stat strong[data-direction="positive"] {
  color: var(--color-success);
}

.market-terminal :is([data-sign="negative"], .is-negative, .terminal-value--negative),
.market-terminal .terminal-table :is(td, [role="cell"])[data-direction="negative"],
.market-terminal .market-preview__stat strong[data-direction="negative"] {
  color: var(--color-error);
}

.market-terminal .terminal-table :is(td, [role="cell"]):is([data-direction="flat"], [data-direction="unavailable"]),
.market-terminal .market-preview__stat strong:is([data-direction="flat"], [data-direction="unavailable"]) {
  color: var(--color-text-secondary);
}

.market-terminal :is([data-status="stale"], [data-status="stale-view-only"], [data-status="reduce-only"], [data-state="degraded"], .is-stale) {
  color: var(--color-warning);
}

.market-terminal :is([data-status="unavailable"], [data-status="source-unavailable"], [data-state="unavailable"]) {
  color: var(--color-text-muted);
}

.market-terminal :is([data-status="error"], [data-state="error"], .is-error) {
  color: var(--color-error);
}

.market-terminal :is([data-status="fresh"], [data-status="listed"], [data-state="ready"], .is-live) {
  color: var(--color-text-secondary);
}

/* Source-local, static loading geometry. The global sweeping skeleton is
   deliberately disabled inside the terminal so state changes do not animate
   or alter panel/table boundaries. */
.market-terminal .skeleton,
.market-terminal [data-skeleton] {
  overflow: hidden;
  border-radius: var(--radius-none);
  background: var(--color-surface-elevated);
  color: transparent !important;
  pointer-events: none;
  box-shadow: none;
}

.market-terminal .skeleton::after,
.market-terminal [data-skeleton]::after {
  display: none;
  content: none;
  animation: none;
}

.market-terminal .terminal-table :is(.skeleton, [data-skeleton]) {
  block-size: var(--space-2);
  min-block-size: var(--space-2);
}

.market-terminal :is(.terminal-table__row.is-loading, .market-scanner__table tr.is-loading) > * {
  position: relative;
  color: transparent !important;
  background: var(--color-bg-raised);
}

.market-terminal :is(.terminal-table__row.is-loading, .market-scanner__table tr.is-loading) > *::before {
  display: block;
  inline-size: 68%;
  block-size: var(--space-2);
  margin-inline: auto;
  background: var(--color-surface-elevated);
  content: "";
}

.market-terminal .terminal-table__row.market-panel__state {
  min-block-size: var(--terminal-row-block-size);
  padding: var(--space-0);
}

.market-terminal .sr-only {
  position: absolute !important;
  inline-size: var(--border-width) !important;
  block-size: var(--border-width) !important;
  padding: var(--space-0) !important;
  margin: calc(var(--border-width) * -1) !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  border: var(--space-0) !important;
  white-space: nowrap !important;
}

/* Wide five-panel mosaic: fills tall viewports and scrolls as one intact
   940px terminal when the viewport is shorter than the data minimum. */
@media (min-width: 80rem) {
  .app-shell[data-shell-section="terminal"] .page-main:has(.market-terminal) {
    min-block-size: calc(100dvh - var(--layout-topbar-block-size));
    block-size: auto;
    overflow-block: visible;
  }

  .market-terminal {
    --terminal-command-block-size: calc(var(--terminal-compact-command-row-block-size) * 2);
    block-size: max(
      calc(100dvh - var(--layout-topbar-block-size)),
      calc(var(--terminal-command-block-size) + var(--terminal-tape-block-size) + var(--terminal-data-block-size))
    );
    grid-template-rows:
      var(--terminal-command-block-size)
      var(--terminal-tape-block-size)
      minmax(var(--terminal-data-block-size), 1fr);
    overflow-block: visible;
  }

  .market-terminal__command {
    inset-block-start: var(--space-0);
    grid-template-columns: minmax(var(--space-0), 1fr) auto auto;
    grid-template-rows: repeat(2, var(--terminal-compact-command-row-block-size));
    block-size: var(--terminal-command-block-size);
    padding-inline: var(--terminal-command-edge-wide);
    gap: var(--space-0) var(--terminal-command-gap-wide);
  }

  .market-terminal__route-nav {
    grid-column: 1;
    grid-row: 1;
  }

  .market-terminal__result {
    grid-column: 2;
    grid-row: 1;
  }

  .market-terminal__ages {
    grid-column: 3;
    grid-row: 1;
  }

  .market-terminal__search {
    grid-column: 1;
    grid-row: 2;
  }

  .market-terminal__filters {
    grid-column: 2 / 4;
    grid-row: 2;
    grid-auto-flow: column;
    grid-auto-columns: minmax(var(--terminal-row-block-size), max-content);
    gap: var(--terminal-command-gap-wide);
  }

  .market-terminal__grid[data-layout="overview"] {
    grid-template-columns: repeat(20, minmax(var(--space-0), 1fr));
    grid-template-rows:
      minmax(var(--terminal-upper-block-size), 6fr)
      minmax(var(--terminal-lower-block-size), 5fr);
    min-block-size: var(--terminal-data-block-size);
    block-size: 100%;
  }

  .market-terminal__grid[data-layout="overview"] .market-terminal__leaders {
    grid-column: 1 / span 10;
    grid-row: 1;
    grid-template-columns: minmax(var(--space-0), 1fr);
    block-size: 100%;
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--map {
    grid-column: 11 / span 10;
    grid-row: 1;
    border-inline-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--scanner {
    grid-column: 1 / span 12;
    grid-row: 2;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--preview {
    grid-column: 13 / span 8;
    grid-row: 2;
    border-block-start: var(--border-default);
    border-inline-start: var(--border-default);
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) {
    grid-template-columns: repeat(5, minmax(var(--space-0), 1fr));
    grid-template-rows: minmax(var(--terminal-data-block-size), 1fr);
    min-block-size: var(--terminal-data-block-size);
    block-size: 100%;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--scanner {
    grid-column: 1 / span 3;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--preview {
    grid-column: 4 / span 2;
    border-inline-start: var(--border-default);
  }

  .market-terminal__leaders,
  .market-panel--spot,
  .market-panel--perp,
  .market-panel--map,
  .market-panel--scanner,
  .market-panel--preview {
    block-size: 100%;
  }


  .market-scanner__scroller {
    block-size: auto;
    max-block-size: none;
  }
  .market-terminal:is([data-mode="markets"], [data-mode="stock"]) {
    block-size: auto;
    min-block-size: calc(100dvh - var(--layout-topbar-block-size));
    grid-template-rows:
      var(--terminal-command-block-size)
      var(--terminal-tape-block-size)
      auto;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) {
    grid-template-rows: auto;
    min-block-size: var(--space-0);
    block-size: auto;
    align-items: start;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) :is(.market-panel--scanner, .market-panel--preview) {
    block-size: auto;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-scanner__scroller {
    block-size: calc(var(--terminal-scanner-head-block-size) + (var(--terminal-row-block-size) * 7));
    max-block-size: calc(var(--terminal-scanner-head-block-size) + (var(--terminal-row-block-size) * 7));
  }
}

/* Exact 1024 state and the compact-width document-flow range above it. */
@media (min-width: 64rem) and (max-width: 79.999rem) {
  .market-terminal {
    --terminal-command-block-size: calc(var(--terminal-compact-command-row-block-size) * 2);
    --terminal-sticky-stack: calc(var(--layout-topbar-block-size) + var(--terminal-command-block-size));
    grid-template-rows: var(--terminal-command-block-size) var(--terminal-tape-block-size) auto;
    block-size: auto;
    min-block-size: calc(100dvh - var(--layout-topbar-block-size));
    overflow: visible;
  }

  .market-terminal__command {
    grid-template-columns: minmax(var(--space-0), 1fr) auto auto;
    grid-template-rows: repeat(2, var(--terminal-compact-command-row-block-size));
    block-size: var(--terminal-command-block-size);
    padding-inline: var(--space-3);
    gap: var(--space-0) var(--space-2);
  }

  .market-terminal__route-nav {
    grid-column: 1;
    grid-row: 1;
  }

  .market-terminal__result {
    grid-column: 2;
    grid-row: 1;
  }

  .market-terminal__ages {
    grid-column: 3;
    grid-row: 1;
  }

  .market-terminal__search {
    grid-column: 1;
    grid-row: 2;
  }

  .market-terminal__filters {
    grid-column: 2 / 4;
    grid-row: 2;
    grid-auto-flow: column;
    grid-auto-columns: minmax(var(--terminal-row-block-size), max-content);
    gap: var(--space-2);
  }

  .market-terminal__grid[data-layout="overview"] {
    grid-template-columns: repeat(2, minmax(var(--space-0), 1fr));
    grid-auto-flow: row;
  }

  .market-terminal__grid[data-layout="overview"] .market-terminal__leaders {
    grid-column: 1 / -1;
    grid-row: 1;
    grid-template-columns: minmax(var(--space-0), 1fr);
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--map {
    grid-column: 1 / -1;
    grid-row: 2;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--scanner {
    grid-column: 1 / -1;
    grid-row: 3;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--preview {
    grid-column: 1 / -1;
    grid-row: 4;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="markets"],
  .market-terminal__grid[data-layout="stock"] {
    grid-template-columns: minmax(var(--space-0), 1fr);
  }

  .market-terminal__grid[data-layout="markets"] > * + *,
  .market-terminal__grid[data-layout="stock"] > * + * {
    border-block-start: var(--border-default);
  }

  .market-terminal__leaders,
  .market-panel--spot,
  .market-panel--perp,
  .market-panel--map {
    block-size: var(--terminal-upper-block-size);
  }

  .market-panel--scanner,
  .market-panel--preview {
    block-size: var(--terminal-lower-block-size);
  }


  .market-scanner__scroller {
    block-size: calc(var(--terminal-scanner-head-block-size) + (var(--terminal-row-block-size) * 7));
    max-block-size: calc(var(--terminal-scanner-head-block-size) + (var(--terminal-row-block-size) * 7));
  }
  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) {
    align-items: start;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--scanner {
    block-size: calc(var(--terminal-scanner-bar-block-size) + var(--terminal-scanner-head-block-size) + (var(--terminal-row-block-size) * 7));
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--preview {
    block-size: auto;
  }
}

/* Exact 768 state: two 48px command rows, then Scanner → activity → Preview
   → one source-tabbed leaderboard instance. */
@media (min-width: 48rem) and (max-width: 63.999rem) {
  .market-terminal {
    --terminal-sticky-stack: calc(var(--layout-topbar-block-size) + (var(--terminal-compact-command-row-block-size) * 2));
    grid-template-rows:
      calc(var(--terminal-compact-command-row-block-size) * 2)
      var(--terminal-tape-block-size)
      auto;
    block-size: auto;
    min-block-size: calc(100dvh - var(--layout-topbar-block-size));
    overflow: visible;
  }

  .market-terminal__command {
    grid-template-columns: minmax(var(--space-0), 1fr) auto auto;
    grid-template-rows: repeat(2, var(--terminal-compact-command-row-block-size));
    block-size: calc(var(--terminal-compact-command-row-block-size) * 2);
    padding-inline: var(--space-3);
    gap: var(--space-0) var(--space-2);
  }

  .market-terminal__route-nav {
    grid-column: 1;
    grid-row: 1;
  }

  .market-terminal__result {
    grid-column: 2;
    grid-row: 1;
  }

  .market-terminal__ages {
    grid-column: 3;
    grid-row: 1;
  }

  .market-terminal__search {
    grid-column: 1;
    grid-row: 2;
  }

  .market-terminal__filters {
    grid-column: 2 / 4;
    grid-row: 2;
    grid-auto-flow: column;
    grid-auto-columns: minmax(var(--terminal-row-block-size), max-content);
    gap: var(--space-2);
  }

  .market-terminal__grid {
    grid-template-columns: minmax(var(--space-0), 1fr);
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--scanner {
    grid-row: 1;
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--map {
    grid-row: 2;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--preview {
    grid-row: 3;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="overview"] .market-terminal__leaders {
    grid-row: 4;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--scanner {
    grid-row: 1;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--preview {
    grid-row: 2;
    border-block-start: var(--border-default);
  }

  .market-panel--scanner,
  .market-panel--preview {
    block-size: var(--terminal-lower-block-size);
  }

  .market-terminal__leaders,
  .market-panel--leaderboard,
  .market-panel--map,
  .market-panel--spot,
  .market-panel--perp {
    block-size: var(--terminal-upper-block-size);
  }

  .market-scanner__scroller {
    block-size: calc(var(--terminal-scanner-head-block-size) + (var(--terminal-row-block-size) * 7));
    max-block-size: calc(var(--terminal-scanner-head-block-size) + (var(--terminal-row-block-size) * 7));
  }
  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) {
    align-items: start;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--preview {
    block-size: auto;
  }
}

/* Phone stream. The command owns separate navigation, search, and filter
   tracks so every analytics destination and control remains reachable. */
@media (max-width: 47.999rem) {
  .market-terminal {
    --terminal-sticky-stack: calc(var(--layout-topbar-block-size) + (var(--terminal-compact-command-row-block-size) * 3));
    grid-template-rows:
      calc(var(--terminal-compact-command-row-block-size) * 3)
      var(--terminal-tape-block-size)
      auto;
    block-size: auto;
    min-block-size: calc(100dvh - var(--layout-topbar-block-size));
    overflow: visible;
  }

  .market-terminal__command {
    grid-template-columns: minmax(var(--space-0), 1fr);
    grid-template-rows: repeat(3, var(--terminal-compact-command-row-block-size));
    block-size: calc(var(--terminal-compact-command-row-block-size) * 3);
    padding-inline: var(--terminal-command-edge-phone);
    gap: var(--space-0);
  }

  .market-terminal__route-nav {
    display: flex;
    grid-column: 1;
    grid-row: 1;
    inline-size: 100%;
  }

  .market-terminal__search {
    grid-column: 1;
    grid-row: 2;
    inline-size: 100%;
    block-size: var(--terminal-row-block-size);
    align-self: center;
  }

  .market-terminal__filters {
    grid-column: 1;
    grid-row: 3;
    display: flex;
    inline-size: 100%;
    block-size: var(--terminal-row-block-size);
    align-self: center;
    overflow-x: auto;
    overflow-y: hidden;
    gap: var(--space-2);
    white-space: nowrap;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  .market-terminal__filters > * {
    min-inline-size: max-content;
    flex: none;
  }

  .market-terminal__filters :is(button, select, [role="button"]) {
    inline-size: auto;
    min-inline-size: var(--terminal-row-block-size);
  }

  .market-terminal__result,
  .market-terminal__ages {
    display: none;
  }

  .market-terminal__tape > * {
    padding-inline: var(--space-3);
  }

  .market-terminal__grid {
    grid-template-columns: minmax(var(--space-0), 1fr);
    padding-inline: var(--terminal-content-gutter-phone);
    border-inline-end: var(--space-0);
    background: var(--color-bg);
  }

  .market-terminal__grid .market-panel {
    inline-size: 100%;
    border-inline: var(--border-default);
  }

  :is(.market-panel--map, .market-panel--scanner) .market-panel__bar {
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
  }

  :is(.market-panel--map, .market-panel--scanner) .market-panel__bar > * {
    flex: none;
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--scanner {
    grid-row: 1;
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--map {
    grid-row: 2;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="overview"] .market-panel--preview {
    grid-row: 3;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid[data-layout="overview"] .market-terminal__leaders {
    grid-row: 4;
    border-block-start: var(--border-default);
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--scanner {
    grid-row: 1;
  }

  .market-terminal__grid:is([data-layout="markets"], [data-layout="stock"]) .market-panel--preview {
    grid-row: 2;
    border-block-start: var(--border-default);
  }

  .market-terminal__leaders,
  .market-panel--leaderboard {
    block-size: var(--terminal-upper-block-size);
  }

  .market-panel--scanner {
    block-size: calc(
      var(--terminal-scanner-bar-block-size)
      + var(--terminal-scanner-head-block-size)
      + (var(--terminal-phone-row-wide-block-size) * 4)
    );
  }

  .market-scanner__scroller {
    block-size: calc(
      var(--terminal-scanner-head-block-size)
      + (var(--terminal-phone-row-wide-block-size) * 4)
    );
    max-block-size: calc(
      var(--terminal-scanner-head-block-size)
      + (var(--terminal-phone-row-wide-block-size) * 4)
    );
  }

  .market-scanner__table tbody tr,
  .market-scanner__table tbody :is(th, td) {
    block-size: var(--terminal-phone-row-wide-block-size);
    min-block-size: var(--terminal-phone-row-wide-block-size);
    white-space: normal;
  }

  .market-scanner__table tbody :is(th, td) {
    padding-block: var(--space-2);
    vertical-align: top;
  }

  .market-scanner__table tbody th:first-child {
    grid-template-columns: minmax(var(--space-0), 1fr) var(--terminal-row-block-size);
    grid-template-rows: repeat(2, var(--terminal-row-block-size));
    align-content: center;
    padding-block: var(--space-0);
  }

  .market-scanner__table [data-analysis-link] {
    grid-column: 1;
    grid-row: 1;
  }

  .market-scanner__table [data-preview-address] {
    grid-column: 2;
    grid-row: 1;
  }

  .market-scanner__table [data-coarse-analysis] {
    display: flex;
    grid-column: 1 / -1;
    grid-row: 2;
    min-block-size: var(--terminal-row-block-size);
    align-items: center;
    padding-inline: var(--space-2);
    border-block-start: var(--border-subtle);
    color: var(--color-text-secondary);
    font-size: var(--text-2xs);
    text-decoration: none;
  }

  .market-panel--map {
    block-size: calc(var(--terminal-panel-bar-block-size) + var(--terminal-phone-map-block-size));
  }


  .market-volume-map__plot,
  .market-volume-map__ranked {
    block-size: var(--terminal-phone-map-block-size);
    min-block-size: var(--terminal-phone-map-block-size);
    max-block-size: var(--terminal-phone-map-block-size);
  }

  .market-volume-map[data-mode="map"] .market-volume-map__svg {
    inline-size: max(100%, var(--terminal-map-plane-min-inline-size));
    min-inline-size: max(100%, var(--terminal-map-plane-min-inline-size));
  }


  .market-preview__header {
    grid-template-columns: minmax(var(--space-0), 1fr) auto auto;
  }
  .market-preview__quote {
    grid-template-columns: repeat(3, minmax(var(--space-0), 1fr));
    grid-auto-flow: row;
    grid-auto-columns: auto;
    block-size: auto;
    min-block-size: var(--terminal-preview-quote-block-size);
    padding-block: var(--space-3);
  }


  .market-preview__header > :is([data-preview-details], [data-preview-analysis]) {
    display: inline-flex;
    min-block-size: var(--terminal-row-block-size);
    align-items: center;
    justify-content: center;
    padding-inline: var(--space-2);
    border: var(--space-0);
    border-inline-start: var(--border-default);
    border-radius: var(--radius-none);
    background: transparent;
    color: var(--color-text-secondary);
    font-size: var(--text-2xs);
    font-weight: var(--weight-semibold);
    text-decoration: none;
    white-space: nowrap;
  }

  .market-preview__actions {
    display: none;
  }

  .market-panel--preview[data-preview-expanded="false"] {
    block-size: var(--terminal-scanner-bar-block-size);
  }

  .market-panel--preview[data-preview-expanded="false"] > :is(
    .market-preview__quote,
    .market-preview__evidence,
    .market-preview__sources
  ) {
    display: none;
  }

  .market-panel--preview[data-preview-expanded="true"] {
    block-size: auto;
    grid-template-rows: auto;
  }

  .market-panel--preview[data-preview-expanded="true"] .market-preview__header {
    grid-template-rows: repeat(2, var(--terminal-row-block-size));
    block-size: calc(var(--terminal-row-block-size) * 2);
  }

  .market-panel--preview[data-preview-expanded="true"] .market-preview__actions {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
    inline-size: 100%;
  }

  .market-volume-map__table {
    min-inline-size: var(--terminal-ranked-list-phone-min-inline-size) !important;
  }

  .market-volume-map__ranked-row {
    min-block-size: var(--terminal-row-block-size);
  }
}

/* Exact 320 state: 16px command insets yield a 288px search; the data stream
   uses 8px gutters and reveals three 96px scanner rows before activity. */
@media (max-width: 20rem) {
  .app-shell[data-shell-section="terminal"] .sidebar {
    inline-size: 100vw;
    max-inline-size: none;
    padding-block:
      var(--layout-safe-area-top)
      var(--layout-safe-area-bottom);
  }

  .market-terminal__grid {
    padding-inline: var(--terminal-content-gutter-narrow);
  }

  .market-panel--scanner {
    block-size: calc(
      var(--terminal-scanner-bar-block-size)
      + var(--terminal-scanner-head-block-size)
      + (var(--terminal-phone-row-narrow-block-size) * 3)
    );
  }

  .market-scanner__scroller {
    block-size: calc(
      var(--terminal-scanner-head-block-size)
      + (var(--terminal-phone-row-narrow-block-size) * 3)
    );
    max-block-size: calc(
      var(--terminal-scanner-head-block-size)
      + (var(--terminal-phone-row-narrow-block-size) * 3)
    );
  }

  .market-scanner__table tbody tr,
  .market-scanner__table tbody :is(th, td) {
    block-size: var(--terminal-phone-row-narrow-block-size);
    min-block-size: var(--terminal-phone-row-narrow-block-size);
  }

  .market-scanner__table :is(.market-scanner__asset, [data-asset-identity]) {
    min-block-size: calc(var(--terminal-phone-row-narrow-block-size) - (var(--space-2) * 2));
  }
}

@media (hover: hover) and (pointer: fine) {
  .market-terminal__route-nav :is(a, button):hover,
  .market-search__list :is(a, button, [role="option"]):hover,
  .market-terminal__search [role="option"]:hover,
  .market-terminal .terminal-table :is(tbody tr, [role="row"]):hover {
    background: var(--color-surface-hover);
    color: var(--color-text-secondary);
  }

  .market-terminal__filters :is(button, select, [role="button"]):hover {
    border-color: var(--color-control-border-hover);
    background: var(--color-control-bg-hover);
  }

  .market-scanner__table tbody tr:hover > :first-child {
    background: var(--color-surface-hover);
  }
}

@media (pointer: coarse) {
  .market-terminal :is(button, input, select, a, [role="button"], [role="option"]) {
    min-block-size: var(--terminal-row-block-size);
  }
}

@media (prefers-reduced-motion: reduce) {
  .market-terminal,
  .market-terminal *,
  .market-terminal *::before,
  .market-terminal *::after {
    scroll-behavior: auto;
    transition: none !important;
    animation: none !important;
  }
}

@media (prefers-contrast: more) {
  .market-terminal__command,
  .market-terminal__tape,
  .market-panel,
  .market-scanner__scroller {
    border-color: var(--color-border-strong);
  }

  .market-volume-map__rim {
    stroke-width: 2px;
  }
}

@media (forced-colors: active) {
  .market-terminal,
  .market-terminal__command,
  .market-terminal__tape,
  .market-panel,
  .market-terminal .terminal-table,
  .market-scanner__table :is(th, td):first-child {
    background: Canvas;
    color: CanvasText;
  }
  .market-volume-map__node
    :is(.market-volume-map__halo, .market-volume-map__disc, .market-volume-map__rim, text) {
    filter: none;
    opacity: 1;
  }


  .market-volume-map__halo {
    display: none;
  }

  .market-volume-map__disc {
    fill: Canvas;
    stroke: none;
  }

  .market-volume-map__rim {
    fill: none;
    stroke: CanvasText;
  }

  .market-volume-map__node.market-volume-map__node--stale .market-volume-map__rim {
    stroke: CanvasText;
    stroke-dasharray: var(--space-1-5) var(--space-1);
  }
}
