.journey-stack { display:grid; gap:1.4rem; }
.journey-card { padding:clamp(1.25rem,3vw,2.5rem); border:1px solid #d7e2ec; border-radius:20px; background:#fff; min-width:0; }
.journey-card h2 { margin:.4rem 0 .85rem; font-size:clamp(1.45rem,3vw,2rem); }
.journey-card h3 { font-size:1.15rem; margin:.4rem 0; }
.journey-card p, .journey-card li { line-height:1.65; color:#415870; }
.journey-card p { margin:.65rem 0; }
.journey-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.broker-compat-grid h3 { display:flex; align-items:center; min-height:44px; margin:0 0 .2rem; }
.broker-compat-logo { display:block; width:auto; max-width:100%; object-fit:contain; object-position:left center; }
.broker-compat-logo-tradovate { height:44px; }
.broker-compat-logo-tradestation { height:28px; }
/* Official NinjaTrader asset is a white knockout wordmark. Ink it for the white card. */
.broker-compat-logo-ninja { height:22px; filter:brightness(0); }
.journey-table-scroll { overflow-x:auto; max-width:100%; }
.journey-table { width:100%; border-collapse:collapse; }
.journey-table th, .journey-table td { padding:1rem; text-align:left; vertical-align:top; white-space:normal; border-bottom:1px solid #d7e2ec; }
.journey-table th:first-child { min-width:8rem; }
.journey-terms { font-size:.9rem; line-height:1.6; padding:1rem 0; }
.journey-terms p { margin:.65rem 0; }
.journey-offer { background:#edf4f9; display:flex; align-items:center; gap:2rem; justify-content:space-between; }
.journey-offer > div { min-width:0; }
.journey-offer .button-row { flex-shrink:0; flex-direction:column; }
.journey-checklist { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; padding:0; list-style:none; margin:1.25rem 0; }
.journey-checklist li { padding:1rem; border-radius:12px; background:#f1f6fa; }
.journey-checklist strong, .journey-checklist span { display:block; }
.journey-checklist span { margin-top:.5rem; font-size:.92rem; }
.journey-setup { margin-bottom:1.5rem; }
.journey-tabs { display:flex; gap:.6rem; flex-wrap:wrap; margin:1rem 0; }
.journey-tabs button { border:1px solid #b2c8da; background:white; color:#173d5d; padding:.7rem 1rem; border-radius:8px; }
.journey-tabs button[aria-pressed="true"] { background:#173d5d; color:white; }
.journey-demo { background:#f2f6fa; padding:1.5rem; border-radius:14px; }
.journey-demo [hidden] { display:none !important; }
.journey-demo-status { font-weight:700; padding:.7rem 0; }
.journey-capacity { display:flex; flex-wrap:wrap; gap:1rem; align-items:end; }
.journey-capacity label { display:grid; gap:.4rem; flex:1 1 140px; }
.journey-capacity input { width:100%; }
.journey-capacity-result { display:block; margin-top:.85rem; line-height:1.6; }
.journey-mini-plans { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.journey-mini-plans article { padding:1.25rem; border:1px solid #d7e2ec; border-radius:12px; }
.journey-mini-plans a { display:inline-block; margin-top:.7rem; }
.journey-guide-form { max-width:40rem; }
.journey-guide-form input[type="email"] { width:100%; }
.journey-guide-form .checkbox-row { margin:1rem 0; }
.journey-guide-form .cf-turnstile { max-width:100%; overflow:hidden; }
.journey-note { padding:1rem; border-left:3px solid #3579b8; background:#f1f6fa; }
.journey-card :focus-visible, .journey-table-scroll:focus-visible { outline:3px solid #2c78b6; outline-offset:4px; }
.site-shell, .portal-layout > *, .portal-main, .portal-panel, .header-inner, .fe-ticker { min-width:0; }
.fe-ticker { max-width:100%; overflow:hidden; }
.portal-main input, .portal-main select, .portal-main textarea { max-width:100%; }
.journey-response { max-width:720px; margin:0 auto; }
#plan-checkout, #email-guide, #capacity-helper, #broker-compatibility, #compare-strategies, #custom-application { scroll-margin-top:10rem; }
/* Full-width drifting backdrops created horizontal scroll even when content fit. */
.is-marketing .page-main::before, .is-dashboard .page-main::before { animation:none; transform:none; }
/* Account actions must be visible immediately, including before reveal observers run. */
.is-dashboard .portal-panel.fe-reveal, .is-dashboard .metric-card.fe-reveal { opacity:1; transform:none; transition:none; }
.is-dashboard .portal-layout:has(> .portal-main) > .portal-panel:has(> .portal-panel-copy):not(:has(> .fe-ops)) { grid-template-columns:1fr; }
/* Keep full-screen dialogs above the sticky header's separate stacking context. */
.page-main:has(.modal-overlay:not([hidden])) { z-index:50; }
#accounts-inline-feedback, #accounts-inline-error {
  position: fixed;
  inset: auto 1rem 1rem auto;
  z-index: 60;
  max-width: min(32rem, calc(100vw - 2rem));
  margin: 0;
  box-shadow: 0 8px 30px rgba(15,47,83,.16);
}
.is-dashboard .page-main { overflow-anchor: none; }
.account-login-groups, .account-login-group-card, .account-login-group-copy { min-width: 0; }
.account-table-scroll { width:100%; overflow-x:auto; border-radius:0 0 22px 22px; }
.account-table-scroll:focus-visible { outline:2px solid #2470c4; outline-offset:2px; }
.account-reconnect-banner { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; margin-bottom:1.25rem; }
.account-reconnect-copy { display:grid; gap:.3rem; min-width:0; overflow-wrap:anywhere; }
.account-reconnect-banner > .button { flex-shrink:0; }
.account-reconnect-banner[data-reconnect-notice] { position:relative; padding-right:4rem; }
.account-reconnect-dismiss { position:absolute; top:.5rem; right:.5rem; margin:0; }
.account-reconnect-dismiss button { display:grid; place-items:center; width:36px; height:36px; padding:0; border:0; border-radius:50%; background:transparent; color:#812936; font-size:1.375rem; line-height:1; cursor:pointer; }
.account-reconnect-dismiss button:hover { background:rgba(129,41,54,.1); }
.account-reconnect-dismiss button:focus-visible { outline:2px solid currentColor; outline-offset:1px; }
.account-reconnect-dismiss button:disabled { opacity:.5; cursor:wait; }
.account-reconnect-manual { margin:1rem 0 0; padding-top:1rem; border-top:1px solid rgba(15,47,83,.12); }
.account-disconnected-logins > summary { cursor:pointer; font-weight:700; }
@media (max-width:760px) {
  .account-reconnect-banner { align-items:flex-start; flex-direction:column; }
  .account-reconnect-banner > .button { align-self:flex-end; }
  .account-login-group-card .account-login-group-title h3 { white-space:normal !important; overflow-wrap:anywhere; }
  .journey-grid, .journey-checklist, .journey-mini-plans { grid-template-columns:1fr; }
  .journey-offer { display:block; }
  .journey-offer .button-row { align-items:stretch; margin-top:1rem; }
  .journey-table th, .journey-table td { padding:.7rem; }
  .journey-demo { padding:1rem; }
  .journey-setup .journey-checklist { grid-template-columns:1fr 1fr; }
}
@media (max-width:420px) { .journey-setup .journey-checklist { grid-template-columns:1fr; } }
