.trading-page {
  --trade-rule: color-mix(in srgb, var(--line-strong) 72%, transparent);
  display: grid;
  gap: 32px;
}

.trading-heading em {
  color: var(--accent-text);
  font-style: normal;
  font-weight: 430;
}

.trade-truth-register {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line-strong);
  background: var(--surface);
}

.trade-truth-register > div {
  display: grid;
  min-width: 0;
  gap: 7px;
  padding: 18px;
  border-right: 1px solid var(--line);
}

.trade-truth-register > div:last-child { border-right: 0; }
.trade-truth-register span,
.trade-truth-register small {
  color: var(--muted);
  font-size: 11px;
}
.trade-truth-register strong {
  color: var(--text);
  font: 680 11px var(--mono);
  letter-spacing: .04em;
  overflow-wrap: anywhere;
}
.trade-truth-register [data-tone="live"] { border-top: 3px solid var(--accent); }
.trade-truth-register [data-tone="lab"] { border-top: 3px solid var(--blue); }
.trade-truth-register [data-tone="blocked"] { border-top: 3px solid var(--amber); }
.trade-truth-register [data-tone="missing"] { border-top: 3px solid var(--red); }
.trade-truth-register [data-tone="disabled"] { border-top: 3px solid var(--red); }

.trade-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  align-items: start;
  border: 1px solid var(--line-strong);
  background: var(--surface);
}

.trade-ticket-instrument,
.trade-gate-instrument,
.trade-command-rail,
.trade-blotter,
.trade-order-inspector,
.trade-positions,
.trade-risk-register {
  min-width: 0;
  background: var(--surface);
  border: 1px solid var(--line-strong);
}

.trade-workbench > * { border: 0; }
.trade-ticket-instrument { border-right: 1px solid var(--line) !important; }

.trade-ticket-instrument > header,
.trade-gate-instrument > header,
.trade-command-rail > header,
.trade-blotter > header,
.trade-order-inspector > header,
.trade-positions > header,
.trade-risk-register > header {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 20px;
  border-bottom: 1px solid var(--line);
}

.trade-ticket-instrument h3,
.trade-gate-instrument h3,
.trade-command-rail h3,
.trade-blotter h3,
.trade-order-inspector h3,
.trade-positions h3,
.trade-risk-register h3 {
  margin: 4px 0 0;
  font-size: 18px;
  letter-spacing: -.025em;
}

.trade-source-chip,
.trade-state,
.trade-build-stop {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  gap: 7px;
  padding: 0 8px;
  color: var(--muted);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-xs);
  font: 650 9px var(--mono);
  letter-spacing: .04em;
  text-align: center;
}

.trade-state[data-tone="live"] { color: var(--accent-text); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.trade-state[data-tone="attention"] { color: var(--amber); border-color: color-mix(in srgb, var(--amber) 45%, var(--line)); }
.trade-state[data-tone="danger"] { color: var(--red); border-color: color-mix(in srgb, var(--red) 45%, var(--line)); }

#trade-ticket fieldset {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 22px 20px;
  border: 0;
  border-bottom: 1px solid var(--line);
}

#trade-ticket legend,
#trade-fill-form legend {
  padding: 0 8px 0 0;
  color: var(--muted);
  font: 650 10px var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.trade-field-note {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

#trade-ticket .field input[readonly] {
  color: var(--muted);
  background: color-mix(in srgb, var(--surface-2) 75%, transparent);
}

#trade-ticket .trade-fixed-contract {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  padding: 0;
}

.trade-fixed-contract > div {
  display: grid;
  gap: 8px;
  padding: 16px 18px;
  border-right: 1px solid var(--line);
}
.trade-fixed-contract > div:last-child { border-right: 0; }
.trade-fixed-contract span { color: var(--muted); font-size: 10px; }
.trade-fixed-contract code { color: var(--text); font: 650 12px var(--mono); }

.trade-advanced { border-bottom: 1px solid var(--line); }
.trade-advanced summary {
  min-height: 48px;
  padding: 16px 20px;
  color: var(--muted);
  cursor: pointer;
  font: 650 11px var(--mono);
}
.trade-advanced[open] summary { border-bottom: 1px solid var(--line); }
.trade-advanced > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 20px;
}

.trade-ticket-checks {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}
.trade-ticket-checks label {
  display: flex;
  min-width: 0;
  min-height: 62px;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-right: 1px solid var(--line);
  cursor: pointer;
}
.trade-ticket-checks label:last-child { border-right: 0; }
.trade-ticket-checks input { accent-color: var(--accent); }
.trade-ticket-checks span { display: grid; min-width: 0; gap: 3px; }
.trade-ticket-checks strong { font-size: 11px; }
.trade-ticket-checks small { color: var(--muted); font-size: 9px; overflow-wrap: anywhere; }

.trade-ticket-actions,
.trade-order-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
}

.trade-decision-empty {
  display: grid;
  min-height: 248px;
  place-items: center;
  align-content: center;
  gap: 10px;
  padding: 28px;
  text-align: center;
  border-bottom: 1px solid var(--line);
}
.trade-decision-empty > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  color: var(--muted);
  border: 1px solid var(--line-strong);
  border-radius: 50%;
}
.trade-decision-empty h4,
.trade-decision-empty p { margin: 0; }
.trade-decision-empty p { max-width: 440px; color: var(--muted); font-size: 12px; line-height: 1.55; }

.trade-decision-summary { border-bottom: 1px solid var(--line); outline: none; }
.trade-decision-summary:focus-visible { box-shadow: inset 0 0 0 2px var(--focus); }
.trade-outcome {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  border-bottom: 1px solid var(--line);
}
.trade-outcome > span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  color: var(--text);
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  font: 700 18px var(--mono);
}
.trade-outcome[data-outcome="ALLOW"] > span { color: var(--accent-text); border-color: var(--accent); }
.trade-outcome[data-outcome="REVIEW"] > span { color: var(--amber); border-color: var(--amber); }
.trade-outcome[data-outcome="DENY"] > span { color: var(--red); border-color: var(--red); }
.trade-outcome div { min-width: 0; }
.trade-outcome small { color: var(--muted); font: 9px var(--mono); text-transform: uppercase; }
.trade-outcome strong { display: block; margin-top: 3px; font: 720 24px var(--mono); }
.trade-outcome p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }

.trade-decision-summary dl,
.trade-order-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}
.trade-decision-summary dl > div,
.trade-order-facts > div {
  min-width: 0;
  padding: 14px 18px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.trade-decision-summary dl > div:nth-child(even),
.trade-order-facts > div:nth-child(even) { border-right: 0; }
.trade-decision-summary dl > div:nth-last-child(-n + 2),
.trade-order-facts > div:nth-last-child(-n + 2) { border-bottom: 0; }
.trade-decision-summary dt,
.trade-order-facts dt { color: var(--muted); font-size: 9px; }
.trade-decision-summary dd,
.trade-order-facts dd { margin: 6px 0 0; font-size: 11px; overflow-wrap: anywhere; }
.trade-decision-summary code,
.trade-order-facts code { display: block; overflow: hidden; text-overflow: ellipsis; font: 10px var(--mono); white-space: nowrap; }

.trade-gate-list,
.trade-command-rail ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
.trade-gate-list li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 68px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--line);
}
.trade-gate-list li > span { color: var(--muted); font: 10px var(--mono); }
.trade-gate-list li > div { display: grid; min-width: 0; gap: 3px; }
.trade-gate-list li strong { font-size: 12px; }
.trade-gate-list li small { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.trade-gate-list li b { color: var(--muted); font: 650 9px var(--mono); }
.trade-gate-list [data-state="pass"] { box-shadow: inset 3px 0 0 var(--accent); }
.trade-gate-list [data-state="pass"] b { color: var(--accent-text); }
.trade-gate-list [data-state="review"] { box-shadow: inset 3px 0 0 var(--amber); }
.trade-gate-list [data-state="review"] b { color: var(--amber); }
.trade-gate-list [data-state="deny"] { box-shadow: inset 3px 0 0 var(--red); }
.trade-gate-list [data-state="deny"] b { color: var(--red); }

.trade-command-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 18px 20px;
}
.trade-command-action p { display: grid; gap: 4px; margin: 0; }
.trade-command-action p strong { font-size: 11px; }
.trade-command-action p span { color: var(--muted); font-size: 10px; line-height: 1.45; }

.trade-command-rail > header > div,
.trade-blotter > header > div:first-child { min-width: 0; }
.trade-command-rail ol {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.trade-command-rail li {
  display: grid;
  min-width: 0;
  gap: 7px;
  min-height: 116px;
  padding: 18px;
  border-right: 1px solid var(--line);
  box-shadow: inset 0 3px 0 var(--line-strong);
}
.trade-command-rail li:last-child { border-right: 0; }
.trade-command-rail li > span { color: var(--muted); font: 10px var(--mono); }
.trade-command-rail li strong { font-size: 12px; }
.trade-command-rail li small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.trade-command-rail li[data-state="complete"] { box-shadow: inset 0 3px 0 var(--accent); }
.trade-command-rail li[data-state="synthetic"] { box-shadow: inset 0 3px 0 var(--blue); }
.trade-command-rail li[data-state="attention"] { box-shadow: inset 0 3px 0 var(--amber); }
.trade-command-rail li[data-state="blocked"] { box-shadow: inset 0 3px 0 var(--red); }

.trade-safety-evidence {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}
.trade-safety-evidence span { padding: 13px 18px; color: var(--muted); border-right: 1px solid var(--line); font-size: 10px; }
.trade-safety-evidence span:last-child { border-right: 0; }
.trade-safety-evidence code { display: block; margin-top: 4px; color: var(--text); font: 650 10px var(--mono); overflow-wrap: anywhere; }

.trade-blotter > header > div:last-child,
.trade-positions > header > div:last-child {
  display: flex;
  align-items: center;
  gap: 8px;
}
.trade-blotter header small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; }
.trade-blotter table,
.trade-positions table { min-width: 940px; }
.trade-blotter tbody tr { cursor: pointer; }
.trade-blotter tbody tr:hover,
.trade-blotter tbody tr[aria-selected="true"] { background: color-mix(in srgb, var(--accent) 7%, transparent); }
.trade-blotter tbody tr[aria-selected="true"] { box-shadow: inset 3px 0 0 var(--accent); }
.trade-blotter td,
.trade-blotter th,
.trade-positions td,
.trade-positions th { vertical-align: top; }
.trade-blotter td code,
.trade-positions td code { font: 10px var(--mono); }
.trade-cell-stack { display: grid; gap: 4px; }
.trade-cell-stack small { color: var(--muted); font-size: 9px; }
.trade-order-select {
  width: fit-content;
  max-width: 100%;
  padding: 0;
  color: var(--text);
  background: transparent;
  border: 0;
  cursor: pointer;
  font: 650 10px var(--mono);
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.trade-order-select:hover { color: var(--accent-text); }
.trade-order-select:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.trade-blotter .state-badge.partially_filled { color: var(--amber); border-color: color-mix(in srgb, var(--amber) 35%, transparent); }
.trade-blotter .state-badge.cancelled { color: var(--muted); border-color: var(--line-strong); background: transparent; }
.trade-evidence-short { display: block; max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.trade-post-trade {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: start;
  gap: 20px;
}

.trade-order-empty { padding: 28px 20px; }
.trade-order-empty p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
#trade-fill-form fieldset {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 20px;
  border: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
#trade-fill-form > .trade-field-note { padding: 14px 20px; border-bottom: 1px solid var(--line); }

.trade-position-warning {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 17px 20px;
  border-bottom: 1px solid var(--line);
}
.trade-position-warning strong { font-size: 11px; }
.trade-position-warning span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.trade-reconciliation-target {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  padding: 16px 20px;
  border-top: 1px solid var(--line);
}
.trade-reconciliation-target span { color: var(--blue); font: 650 9px var(--mono); }
.trade-reconciliation-target p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }

.trade-build-stop { color: var(--red); border-color: color-mix(in srgb, var(--red) 42%, var(--line)); }
.trade-build-stop i { width: 7px; height: 7px; background: var(--red); border-radius: 50%; }
.trade-risk-rows {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.trade-risk-rows article {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 8px;
  min-height: 168px;
  padding: 18px;
  border-right: 1px solid var(--line);
}
.trade-risk-rows article:last-child { border-right: 0; }
.trade-risk-rows span { color: var(--muted); font: 9px var(--mono); }
.trade-risk-rows strong { font-size: 13px; }
.trade-risk-rows p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.trade-risk-rows b { align-self: end; color: var(--blue); font: 650 9px var(--mono); }
.trade-risk-rows article:first-child b { color: var(--accent-text); }
.trade-risk-register footer {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 16px 20px;
  border-top: 1px solid var(--line);
}

.trading-page button:disabled { cursor: not-allowed; opacity: .5; }
.trading-page [aria-busy="true"] { cursor: progress; }
.trade-ticket-instrument.is-locked input:not([readonly]),
.trade-ticket-instrument.is-locked select { opacity: .72; }

@media (max-width: 1180px) {
  .trade-workbench,
  .trade-post-trade { grid-template-columns: 1fr; }
  .trade-ticket-instrument { border-right: 0 !important; border-bottom: 1px solid var(--line) !important; }
  .trade-risk-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trade-risk-rows article:nth-child(2) { border-right: 0; }
  .trade-risk-rows article:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 800px) {
  .trading-page { gap: 20px; }
  .trade-truth-register,
  .trade-command-rail ol,
  .trade-safety-evidence,
  .trade-risk-rows { grid-template-columns: 1fr; }
  .trade-truth-register > div,
  .trade-command-rail li,
  .trade-safety-evidence span,
  .trade-risk-rows article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .trade-truth-register > div:last-child,
  .trade-command-rail li:last-child,
  .trade-safety-evidence span:last-child,
  .trade-risk-rows article:last-child { border-bottom: 0; }
  #trade-ticket fieldset,
  #trade-ticket .trade-fixed-contract,
  .trade-advanced > div,
  .trade-ticket-checks,
  .trade-decision-summary dl,
  .trade-order-facts,
  #trade-fill-form fieldset { grid-template-columns: 1fr; }
  .trade-fixed-contract > div,
  .trade-ticket-checks label,
  .trade-decision-summary dl > div,
  .trade-order-facts > div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .trade-fixed-contract > div:last-child,
  .trade-ticket-checks label:last-child,
  .trade-decision-summary dl > div:last-child,
  .trade-order-facts > div:last-child { border-bottom: 0; }
  .trade-ticket-instrument > header,
  .trade-gate-instrument > header,
  .trade-command-rail > header,
  .trade-blotter > header,
  .trade-order-inspector > header,
  .trade-positions > header,
  .trade-risk-register > header,
  .trade-ticket-actions,
  .trade-order-actions,
  .trade-command-action { align-items: stretch; flex-direction: column; }
  .trade-command-action { grid-template-columns: 1fr; }
  .trade-command-action .primary-button,
  .trade-ticket-actions .primary-button,
  .trade-order-actions .primary-button { width: 100%; }
  .trade-gate-list li { grid-template-columns: 30px minmax(0, 1fr); }
  .trade-gate-list li b { grid-column: 2; }
  .trade-reconciliation-target { grid-template-columns: 1fr; }
}

@media (pointer: coarse) {
  .trade-ticket-checks label,
  .trade-advanced summary,
  .trade-blotter tbody tr { min-height: 44px; }
  .trading-page .ghost-button,
  .trading-page .primary-button { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .trading-page *,
  .trading-page *::before,
  .trading-page *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
