/* Purpose-built terminal composition. Loaded after the compatibility styles. */
:root {
  --sidebar-width: 264px;
  --activity-width: 320px;
  --terminal-canvas: #071011;
  --terminal-surface: #0c1819;
  --terminal-surface-2: #112022;
  --terminal-surface-3: #17282a;
  --terminal-hairline: rgba(145, 170, 167, .17);
  --terminal-page-shadow: 0 12px 32px rgba(0, 0, 0, .18);
}

html[data-color-scheme="light"] {
  --terminal-canvas: #edf2f3;
  --terminal-surface: #ffffff;
  --terminal-surface-2: #f4f7f8;
  --terminal-surface-3: #eaf0f2;
  --terminal-hairline: rgba(37, 61, 69, .12);
  --terminal-page-shadow: 0 8px 24px rgba(23, 49, 58, .07);
}

body:not(.login-page) {
  background: var(--terminal-canvas);
}

.shell {
  padding: 16px;
  background-color: var(--terminal-canvas);
}

.shell::before {
  background-color: var(--terminal-canvas) !important;
  background-image:
    linear-gradient(rgba(var(--page-identity-rgb), .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--page-identity-rgb), .03) 1px, transparent 1px) !important;
  background-size: 48px 48px !important;
}

html[data-color-scheme="light"] .shell::before {
  background-color: #edf2f3 !important;
  background-image:
    linear-gradient(rgba(var(--page-identity-rgb), .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--page-identity-rgb), .026) 1px, transparent 1px) !important;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 18;
  min-height: 66px;
  margin-bottom: 10px;
  border: 1px solid var(--terminal-line);
  border-radius: 7px;
  padding: 10px 12px;
  background: color-mix(in srgb, var(--terminal-shell) 96%, transparent);
  box-shadow: 0 5px 18px rgba(0, 0, 0, .12);
  backdrop-filter: blur(14px);
}

html[data-color-scheme="light"] .topbar {
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 5px 18px rgba(24, 51, 59, .06);
}

.topbar > div:first-child {
  min-width: min(460px, 40vw);
}

.topbar h1 {
  margin-top: 2px;
  font-size: 25px;
  line-height: 1.05;
}

.topbar-purpose {
  max-width: 680px;
  font-size: 11px;
  line-height: 1.35;
}

.top-status {
  align-content: center;
  gap: 5px;
}

.top-status .pill,
.top-status .button,
.color-scheme-toggle {
  min-height: 28px;
  border-color: var(--terminal-line);
  background: var(--terminal-surface-2);
}

.content {
  gap: 10px;
  padding: 0;
}

html .main-panel {
  min-width: 0;
  overflow: visible;
  border: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.main-panel > .stack {
  gap: 9px;
}

html .activity {
  border-color: var(--terminal-line);
  background: var(--terminal-surface);
  box-shadow: var(--terminal-page-shadow);
}

.activity .activity-run-controls,
.activity .activity-full-run-panel,
.activity .activity-maintenance-actions,
.activity .activity-overview,
.activity .activity-mini-card,
.activity .activity-proof-toggle,
.activity .activity-proof-row,
.activity .activity-phase-flow,
.activity .activity-phase-flow-row,
.activity .activity-diagnostics,
.activity .activity-section,
.activity .readable-box,
.activity .readable-facts > div,
.activity .mini-log {
  border-color: var(--terminal-line);
  background: var(--terminal-surface-2);
  box-shadow: none;
}

.activity .activity-run-controls-head,
.activity .activity-maintenance-head,
.activity .activity-overview-head,
.activity .activity-phase-flow-head,
.activity .activity-section > summary,
.activity .activity-proof-toggle > summary,
.activity .activity-diagnostics > summary {
  border-color: var(--terminal-line);
  background: var(--terminal-surface-3);
}

.activity h2,
.activity h3,
.activity strong,
.activity .readable-lead,
.activity .readable-facts dd {
  color: var(--terminal-ink);
}

.activity p,
.activity small,
.activity span,
.activity .readable-meaning,
.activity .readable-facts dt {
  color: var(--terminal-muted);
}

.activity button:not(.primary) {
  border-color: var(--terminal-line);
  background: var(--terminal-surface-2);
  color: var(--terminal-ink);
}

.sidebar .sidebar-section-shell,
.sidebar .sidebar-phase-group,
.sidebar .sidebar-section[data-sidebar-section="WORKSPACE"],
.sidebar .sidebar-section[data-sidebar-section="SYSTEM"] {
  border-color: var(--terminal-line);
  background: var(--terminal-surface);
  box-shadow: none;
}

.sidebar .sidebar-phase-summary {
  background: var(--terminal-surface-2);
}

.sidebar .sidebar-full-run {
  border-color: var(--terminal-line);
  background: var(--terminal-surface-2);
}

.sidebar .sidebar-main-progress,
.sidebar .nav-progress-bar {
  background: var(--terminal-surface-3);
}

.page-background-icon {
  display: none;
}

/* The topbar owns title and purpose. This strip exposes evidence topology only. */
.page-data-suite {
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.page-data-suite-command-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 40px;
  border: 1px solid var(--terminal-line);
  border-radius: 6px;
  padding: 6px 9px;
  background: var(--terminal-surface);
}

.page-data-suite-command-copy {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.page-data-suite-command-copy span {
  color: rgb(var(--page-identity-rgb));
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}

.page-data-suite-command-copy strong {
  color: var(--terminal-ink);
  font-size: 10px;
}

.page-data-suite-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px;
}

.page-data-suite-tags span {
  border: 1px solid var(--terminal-line);
  border-radius: 4px;
  padding: 4px 7px;
  background: var(--terminal-surface-2);
  color: var(--terminal-muted);
  font-size: 8px;
}

.page-data-suite-body {
  display: grid;
  gap: 8px;
}

.page-data-suite-body > .route-page-layout {
  order: -10;
}

.page-data-suite-body > .notice {
  min-height: 0;
  border: 1px solid var(--terminal-line);
  border-left: 3px solid rgb(var(--page-identity-rgb));
  border-radius: 5px;
  padding: 8px 10px;
  background: var(--terminal-surface);
  color: var(--terminal-muted);
  box-shadow: none;
  font-size: 10px;
  line-height: 1.35;
}

.page-data-suite-mapping {
  margin-top: 8px;
}

/* Shared route framing. */
.route-page-layout {
  position: relative;
  gap: 8px;
  margin: 0;
}

.route-page-layout::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -1px;
  width: 2px;
  border-radius: 2px;
  background: rgb(var(--route-rgb));
  content: "";
  opacity: .72;
  pointer-events: none;
}

.route-evidence-strip {
  min-height: 42px;
  margin-left: 5px;
  border-color: var(--terminal-line);
  padding: 6px 9px;
  background: var(--terminal-surface);
  box-shadow: none;
}

.route-evidence-copy span {
  color: rgb(var(--route-rgb));
}

.route-evidence-bar {
  height: 4px;
  background: var(--terminal-surface-3);
}

.route-evidence-bar i {
  background: rgb(var(--route-rgb));
}

.terminal-page-grid,
.terminal-chart-shell,
.terminal-studio,
.terminal-split,
[data-purpose-renderer="market-scanner"] {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}

.terminal-component {
  position: relative;
  min-width: 0;
  border-color: var(--terminal-line);
  border-radius: 6px;
  background: var(--terminal-surface);
  box-shadow: var(--terminal-page-shadow);
}

.terminal-component::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  background: rgb(var(--route-rgb));
  content: "";
  opacity: .6;
  pointer-events: none;
}

.terminal-component > header {
  display: flex;
  min-height: 34px;
  align-items: center;
  border-bottom-color: var(--terminal-line);
  padding: 9px 11px 8px;
  background: var(--terminal-surface-2);
}

.terminal-component > header span {
  color: rgb(var(--route-rgb));
  font-size: 9px;
}

.terminal-kpi-grid {
  gap: 0;
  background: transparent;
}

.terminal-kpi-grid .route-hero-fact {
  min-height: 68px;
  border: 0;
  border-right: 1px solid var(--terminal-line);
  border-bottom: 1px solid var(--terminal-line);
  padding: 9px 10px;
  background: var(--terminal-surface);
}

.terminal-kpi-grid .route-hero-fact:last-child {
  border-right: 0;
}

.route-hero-fact span {
  color: var(--terminal-muted);
  font-size: 8px;
}

.route-hero-fact strong {
  margin-top: 7px;
  font-size: 14px;
  line-height: 1.12;
}

.route-hero-fact small:empty {
  display: none;
}

.terminal-matrix {
  gap: 0;
  padding: 0;
  background: transparent;
}

.terminal-matrix > div {
  min-height: 38px;
  border-bottom: 1px solid var(--terminal-line);
  padding: 7px 10px;
  background: var(--terminal-surface);
}

.terminal-matrix > div:last-child {
  border-bottom: 0;
}

.terminal-matrix i {
  height: 3px;
}

.terminal-table-wrap {
  max-height: min(62vh, 620px);
  overscroll-behavior: contain;
  scrollbar-color: var(--terminal-strong) transparent;
  scrollbar-width: thin;
}

.terminal-table {
  min-width: max(100%, calc(var(--terminal-columns, 5) * 112px));
  font-size: 10px;
}

.terminal-table th {
  top: 0;
  padding: 8px 10px;
  border-bottom-color: var(--terminal-strong);
  background: var(--terminal-surface-2);
  color: var(--terminal-muted);
  font-size: 8px;
  letter-spacing: 0;
  white-space: nowrap;
}

.terminal-table td {
  max-width: 320px;
  padding: 8px 10px;
  border-bottom-color: var(--terminal-line);
  background: var(--terminal-surface);
  line-height: 1.28;
  overflow-wrap: anywhere;
  vertical-align: top;
  white-space: nowrap;
}

.terminal-table tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--terminal-surface-2) 54%, var(--terminal-surface));
}

.terminal-table tbody tr:hover td {
  background: color-mix(in srgb, rgb(var(--route-rgb)) 9%, var(--terminal-surface));
}

.terminal-table td[data-cell-state="missing"] {
  color: var(--terminal-faint);
}

[data-tone="buy"] strong,
.terminal-table td[data-tone="buy"] {
  color: var(--terminal-good);
}

[data-tone="sell"] strong,
.terminal-table td[data-tone="sell"] {
  color: var(--terminal-bad);
}

[data-tone="wait"] strong,
.terminal-table td[data-tone="wait"] {
  color: var(--terminal-warn);
}

[data-tone="neutral"] strong,
.terminal-table td[data-tone="neutral"] {
  color: var(--terminal-muted);
}

.terminal-flow {
  min-height: 58px;
  gap: 4px;
  padding: 10px;
}

.terminal-flow span {
  border-radius: 4px;
  padding: 6px 8px;
  background: var(--terminal-surface-2);
}

.terminal-ladder {
  gap: 2px;
  padding: 10px 12px;
}

.terminal-ladder > div {
  min-height: 38px;
}

.terminal-ladder i {
  position: relative;
}

.terminal-ladder i::after {
  position: absolute;
  top: -3px;
  right: 0;
  width: 8px;
  height: 8px;
  border: 2px solid currentColor;
  border-radius: 50%;
  background: var(--terminal-surface);
  content: "";
}

.terminal-empty {
  min-height: 150px;
  border: 0;
  background-color: var(--terminal-surface);
  background-image:
    linear-gradient(var(--terminal-hairline) 1px, transparent 1px),
    linear-gradient(90deg, var(--terminal-hairline) 1px, transparent 1px);
  background-size: 32px 32px;
}

.terminal-chart-stage,
.terminal-scenario-chart,
.terminal-price-path,
.terminal-scatter {
  border: 0;
  background-color: #071314;
}

html[data-color-scheme="light"] .terminal-chart-stage,
html[data-color-scheme="light"] .terminal-scenario-chart,
html[data-color-scheme="light"] .terminal-price-path,
html[data-color-scheme="light"] .terminal-scatter {
  background-color: #f4f8f8;
}

/* Route-specific architecture. */
[data-purpose-renderer="market-scanner"] > .terminal-component,
[data-purpose-renderer="source-control-room"] > .terminal-component {
  grid-column: 1 / -1;
}

[data-purpose-renderer="workspace-terminal"] [data-terminal-component="workspace-recent-runs"],
[data-purpose-renderer="workspace-terminal"] [data-terminal-component="workspace-methodology"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="source-evidence-library"] [data-terminal-component="source-library-filters"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="source-evidence-library"] [data-terminal-component="source-library-list"] {
  grid-column: span 8;
}

[data-purpose-renderer="source-evidence-library"] [data-terminal-component="source-library-inspector"] {
  grid-column: span 4;
}

[data-terminal-component="source-library-inspector"] .terminal-flow,
[data-terminal-component="settings-navigation"] .terminal-flow,
[data-terminal-component="run-inspector"] .terminal-flow {
  align-items: stretch;
  flex-direction: column;
}

[data-terminal-component="source-library-inspector"] .terminal-flow i,
[data-terminal-component="settings-navigation"] .terminal-flow i,
[data-terminal-component="run-inspector"] .terminal-flow i {
  display: none;
}

[data-purpose-renderer="intelligence-terminal"] [data-terminal-component="intelligence-event-hero"] {
  grid-column: span 4;
}

[data-purpose-renderer="intelligence-terminal"] [data-terminal-component="intelligence-event-table"] {
  grid-column: span 8;
}

[data-purpose-renderer="intelligence-terminal"] [data-terminal-component="intelligence-causal-chain"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="factor-lab"] [data-terminal-component="factor-kpis"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="factor-lab"] [data-terminal-component="factor-table"] {
  grid-column: span 8;
}

[data-purpose-renderer="factor-lab"] [data-terminal-component="factor-reaction-plot"] {
  grid-column: span 4;
}

[data-purpose-renderer="research-terminal"] [data-terminal-component="research-thesis"],
[data-purpose-renderer="research-terminal"] [data-terminal-component="research-analytical-matrix"],
[data-purpose-renderer="research-terminal"] [data-terminal-component="research-timeframe-matrix"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="research-terminal"] [data-terminal-component="research-price-delivery"] {
  grid-column: span 8;
}

[data-purpose-renderer="research-terminal"] [data-terminal-component="research-contradictions"] {
  grid-column: span 8;
}

[data-purpose-renderer="research-terminal"] [data-terminal-component="research-evidence-tree"] {
  grid-column: span 4;
}

[data-purpose-renderer="technical-terminal"] [data-terminal-component="chart-toolbar"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="technical-terminal"] [data-terminal-component="chart-terminal"] {
  grid-column: span 9;
}

[data-purpose-renderer="technical-terminal"] [data-terminal-component="chart-proof-rail"] {
  grid-column: span 3;
}

[data-purpose-renderer="decision-console"] [data-terminal-component="algorithm-decision-hero"],
[data-purpose-renderer="risk-planner"] [data-terminal-component="risk-plan-hero"],
[data-purpose-renderer="forecast-planner"] [data-terminal-component="forecast-hero"],
[data-purpose-renderer="prediction-terminal"] [data-terminal-component="prediction-hero"],
[data-purpose-renderer="signal-lifecycle"] [data-terminal-component="signal-board"],
[data-purpose-renderer="evaluation-lab"] [data-terminal-component="evaluation-kpis"],
[data-purpose-renderer="frozen-comparison"] [data-terminal-component="compare-selector"],
[data-purpose-renderer="experiment-ledger"] [data-terminal-component="run-filter-toolbar"],
[data-purpose-renderer="automation-manager"] [data-terminal-component="watchlist-column-controls"],
[data-purpose-renderer="database-governance"] [data-terminal-component="database-kpis"],
[data-purpose-renderer="diagnostics-terminal"] [data-terminal-component="log-kpis"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="decision-console"] [data-terminal-component="algorithm-contribution-waterfall"],
[data-purpose-renderer="risk-planner"] [data-terminal-component="risk-price-ladder"],
[data-purpose-renderer="forecast-planner"] [data-terminal-component="forecast-scenarios"],
[data-purpose-renderer="prediction-terminal"] [data-terminal-component="prediction-price-ladder"],
[data-purpose-renderer="evaluation-lab"] [data-terminal-component="evaluation-mfe-mae"],
[data-purpose-renderer="frozen-comparison"] [data-terminal-component="compare-evaluation-diff"] {
  grid-column: span 4;
}

[data-purpose-renderer="decision-console"] [data-terminal-component="algorithm-rule-table"],
[data-purpose-renderer="risk-planner"] [data-terminal-component="risk-stop-comparison"],
[data-purpose-renderer="risk-planner"] [data-terminal-component="risk-target-table"],
[data-purpose-renderer="forecast-planner"] [data-terminal-component="forecast-scenario-chart"],
[data-purpose-renderer="prediction-terminal"] [data-terminal-component="prediction-lineage"],
[data-purpose-renderer="evaluation-lab"] [data-terminal-component="evaluation-outcome-path"],
[data-purpose-renderer="frozen-comparison"] [data-terminal-component="compare-decision-diff"] {
  grid-column: span 8;
}

[data-purpose-renderer="risk-planner"] [data-terminal-component="risk-costs-sizing"],
[data-purpose-renderer="forecast-planner"] [data-terminal-component="forecast-timeline"],
[data-purpose-renderer="signal-lifecycle"] [data-terminal-component="signal-lifecycle-timeline"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="dossier-library"] [data-terminal-component="collection-table"] {
  grid-column: 1 / -1;
}

[data-purpose-renderer="dossier-library"] [data-terminal-component="collection-artifact-matrix"] {
  grid-column: span 8;
}

[data-purpose-renderer="dossier-library"] [data-terminal-component="collection-integrity"] {
  grid-column: span 4;
}

[data-purpose-renderer="experiment-ledger"] [data-terminal-component="run-ledger-table"] {
  grid-column: span 9;
}

[data-purpose-renderer="experiment-ledger"] [data-terminal-component="run-inspector"] {
  grid-column: span 3;
}

.terminal-studio {
  grid-template-columns: minmax(170px, 2.4fr) minmax(0, 6.5fr) minmax(210px, 3.1fr);
}

.terminal-studio > .terminal-component,
.terminal-studio > .terminal-component-wide {
  grid-column: auto;
}

[data-purpose-renderer="automation-manager"] [data-terminal-component="watchlist-table"] {
  grid-column: span 9;
}

[data-purpose-renderer="automation-manager"] [data-terminal-component="automation-panel"] {
  grid-column: span 3;
}

[data-purpose-renderer="database-governance"] [data-terminal-component="database-object-tree"] {
  grid-column: span 3;
}

[data-purpose-renderer="database-governance"] [data-terminal-component="database-governance-matrix"] {
  grid-column: span 9;
}

[data-purpose-renderer="diagnostics-terminal"] [data-terminal-component="log-correlation-timeline"] {
  grid-column: span 4;
}

[data-purpose-renderer="diagnostics-terminal"] [data-terminal-component="log-table"] {
  grid-column: span 8;
}

.terminal-split {
  grid-template-columns: minmax(180px, 3fr) minmax(0, 9fr);
}

.terminal-split > .terminal-component,
.terminal-split > .terminal-component-wide {
  grid-column: auto;
}

[data-purpose-renderer="system-settings"] [data-terminal-component="paper-safety"] {
  grid-column: 2;
}

.terminal-safety-lock {
  border-left: 3px solid var(--terminal-good);
  background: color-mix(in srgb, var(--terminal-good) 8%, var(--terminal-surface));
}

/* Market and chart pages keep a darker analytical canvas in either theme. */
body[data-page="/professional-chart"] .terminal-component,
body[data-page="/professional-chart"] .chart-smart-shell,
body[data-page="/professional-chart"] .trading-chart-wrap {
  --terminal-surface: #071314;
  --terminal-surface-2: #0d1b1d;
  --terminal-surface-3: #15282a;
  --terminal-ink: #edf7f4;
  --terminal-muted: #91a8a5;
  --terminal-line: #203638;
  color: var(--terminal-ink);
}

/* Login shares the product language without looking like an app dashboard. */
.login-page {
  background-color: #071011;
  background-image:
    linear-gradient(rgba(45, 212, 167, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 212, 167, .045) 1px, transparent 1px);
  background-size: 48px 48px;
}

.login-panel {
  border-color: #294343;
  background: #0b1718;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .42);
}

@media (max-width: 1180px) {
  .shell {
    padding: 12px;
  }

  .topbar > div:first-child {
    min-width: 0;
  }

  .content,
  body.activity-collapsed .content {
    grid-template-columns: minmax(0, 1fr);
  }

  .activity,
  body.activity-collapsed .activity {
    position: static;
    max-width: 100%;
    max-height: none;
  }

  .terminal-studio,
  .terminal-split {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .terminal-studio > .terminal-component,
  .terminal-split > .terminal-component {
    grid-column: span 4;
  }

  .terminal-studio > .terminal-component-wide,
  .terminal-split > .terminal-component-wide {
    grid-column: span 8;
  }

  [data-purpose-renderer="system-settings"] [data-terminal-component="paper-safety"] {
    grid-column: span 8;
  }
}

@media (max-width: 960px) {
  .topbar {
    position: relative;
  }

  [data-purpose-renderer] > .terminal-component,
  [data-purpose-renderer] > .terminal-component-wide,
  .terminal-studio > .terminal-component,
  .terminal-studio > .terminal-component-wide,
  .terminal-split > .terminal-component,
  .terminal-split > .terminal-component-wide,
  [data-purpose-renderer="system-settings"] [data-terminal-component="paper-safety"] {
    grid-column: 1 / -1;
  }

  .terminal-table-wrap {
    max-height: 520px;
  }
}

@media (max-width: 760px) {
  .shell {
    padding: 7px;
  }

  .topbar {
    margin-bottom: 7px;
    padding: 9px;
  }

  .topbar h1 {
    font-size: 21px;
  }

  .page-data-suite-command-strip {
    align-items: flex-start;
    flex-direction: column;
  }

  .page-data-suite-tags {
    justify-content: flex-start;
  }

  .route-evidence-strip {
    margin-left: 3px;
  }

  .terminal-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .terminal-kpi-grid .route-hero-fact {
    border-right: 1px solid var(--terminal-line);
  }

  .terminal-matrix > div {
    grid-template-columns: minmax(76px, .85fr) minmax(0, 1.15fr) 24px;
  }

  .terminal-table {
    min-width: 620px;
  }

  .terminal-flow {
    align-items: stretch;
    flex-direction: column;
  }

  .terminal-flow i {
    display: none;
  }

  .terminal-timeline li {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .terminal-kpi-grid {
    grid-template-columns: 1fr;
  }

  .terminal-bars > div {
    grid-template-columns: minmax(90px, 1fr) minmax(70px, 1.2fr) 46px;
  }
}
