/* NEXOR : fichier généré. Modifier styles/*.css puis relancer scripts/build_css.py. */

/* SOURCE : styles/nexor-design-v10.css */
/* NEXOR / V10 — restore the original anthracite + ardoise language from style.css.
   No cyan hero, no gratuitous glass glow, no rainbow accents. Tokens are semantic. */
:root {
  --nx-bg: #17181a;
  --nx-panel: #222527;
  --nx-panel-2: #2b2e31;
  --nx-border: #454c53;
  --nx-muted: #a9b4bc;
  --nx-paper: #d3e1eb;
  --nx-lime: #d2e5ed;
  --nx-positive: #bed6e1;
  --nx-danger: #e5a094;
  --nx-focus: #d2e5ed;
  --nx-signal: #9cbcd7;  /* informations / flux */
  --nx-warm: #e5c28a;    /* contexte PROP / sélection */
  --nx-profit: #85c7b2;  /* résultat positif / achat */
  --nx-loss: #df9a92;    /* résultat négatif / vente */
}
html {
  scroll-behavior: smooth;
}
body {
  accent-color: var(--nx-lime);
}
body.workspace-app {
  background: #1a1b1d;
  color: var(--nx-paper);
}
.workspace-app .app-rail,.workspace-app .desk-header,.workspace-app .app-header {
  background: #1f2123;
  border-color: #3d444a;
}
.workspace-app .app-rail .rail-brand,.workspace-app .app-header b {
  color: #d5e3ed;
}
.workspace-app .app-rail a[aria-current=page],.workspace-app .app-rail nav a:hover {
  background: #36393d;
  color: #dfeef8;
}
.workspace-app .app-rail .rail-label,.workspace-app .app-breadcrumb,.workspace-app .section-label {
  color: #b0bcc4;
}
.workspace-app .status-dot {
  background: #bed6e1;
}
.workspace-app .paper-banner {
  background: #282a2d;
  color: #c2cfd8;
  border-color: #505860;
}
.workspace-app .app-mode-launcher {
  background: #d2e5ed!important;
  color: #242729!important;
  border-color: #d2e5ed!important;
}
.workspace-app .tour-launch:hover,.workspace-app .app-header a:hover {
  color: #d2e5ed;
}
.desk button:not(:disabled):focus-visible,.desk a:focus-visible,.desk input:focus-visible,.desk textarea:focus-visible,.desk select:focus-visible,.desk summary:focus-visible {
  outline: 2px solid var(--nx-focus);
  outline-offset: 3px;
}
.desk button,.desk input,.desk select,.desk textarea,.desk a {
  transition-property: background-color,border-color,color,opacity;
  transition-duration: .14s;
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto;
  }
  .desk button,.desk a,.desk input,.desk select,.desk textarea {
    transition: none!important;
  }
}
/* Accessible states: not merely green vs red. */
.positive {
  color: var(--nx-positive);
}
.negative {
  color: var(--nx-danger);
}
.futures-workbench {
  color: #d1dee8;
}
.futures-workbench .fx-summary,.futures-workbench .fx-market,.futures-workbench .fx-ticket,.futures-workbench .fx-ledger {
  background: #222527;
  border-color: #485057;
}
.futures-workbench .fx-eyebrow,.futures-workbench .fx-live small,.futures-workbench .fx-summary span,.futures-workbench .fx-market-notice {
  color: #b0bcc4;
}
.futures-workbench .fx-toolbar h1,.futures-workbench .fx-market-top h2,.futures-workbench .fx-ledger-head h2 {
  color: #dbe9f3;
}
.futures-workbench .fx-toolbar h1 em,.futures-workbench .fx-pulse {
  color: #d2e5ed;
}
.futures-workbench .fx-pulse {
  background: #d2e5ed;
}
.futures-workbench .fx-symbols button {
  background: #26282b;
  color: #c9d6df;
  border-color: #424950;
}
.futures-workbench .fx-symbols button[aria-pressed=true] {
  background: #3d4145;
  color: #e6f4ff;
  box-shadow: inset 0 -3px #d2e5ed;
}
.futures-workbench .fx-chart-controls,.futures-workbench .fx-market-notice,.futures-workbench .fx-ticket-head {
  border-color: #424950;
}
.futures-workbench .fx-periods button[aria-pressed=true] {
  background: #3f464c;
  border-color: #bed6e1;
  color: #e6f4ff;
}
.futures-workbench .fx-primary,.futures-workbench .fx-save-risk,.desk .futures-workbench .fx-primary,.desk .futures-workbench .fx-save-risk {
  background: #d2e5ed;
  color: #212325;
  border-color: #d2e5ed;
}
.futures-workbench .fx-primary.sell {
  background: #e8b1a0;
  color: #271814;
}
.futures-workbench .fx-side #fx-buy[aria-pressed=true] {
  background: #4c535b;
  border-color: #bed6e1;
}
.futures-workbench .fx-side #fx-sell[aria-pressed=true] {
  background: #6a3c38;
  border-color: #dc9c91;
}
.futures-workbench .fx-tabpanel th,.futures-workbench .fx-tabs button {
  background: #282b2e;
  border-color: #41474e;
  color: #bbc7d0;
}
.futures-workbench .fx-tabs button[aria-selected=true] {
  background: #3e4347;
  border-bottom-color: #d2e5ed;
  color: #e6f4ff;
}
.futures-workbench .fx-quote strong {
  color: #dfeef8;
}
.futures-workbench .fx-chart-area svg {
  background: #1a1b1d;
}
/* Avoid oversized generic rounded cards in the main workbench. */
.operations .ops-panel,.desk .integration-panel,.workspace-app .settings-section {
  border-radius: 3px;
}
/* Consistent brand-neutral cards and action controls across isolated legacy pages. */
.workspace-app :is(.button,.primary-button,.challenge-launch):not(:disabled) {
  border-radius: 3px;
}
.workspace-app :is(.button,.primary-button):not(:disabled):hover {
  filter: brightness(1.07);
}
/* NEXOR V10 · audit Master Skill: coherence, accessibility, form affordances.
   Intention: anthracite + ardoise, information > decoration, no generic UI gloss.
   This layer consolidates the visual decisions after legacy page styles. */
:root {
  --nx-bg: #17181a;
  --nx-surface: #222527;
  --nx-surface-strong: #2c2f32;
  --nx-surface-raised: #33373a;
  --nx-ink: #eff1e8;
  --nx-secondary: #b7c3cb;
  --nx-quiet: #aab5bd;
  --nx-divider: #4a5159;
  --nx-action: #d2e5ed;
  --nx-action-ink: #242729;
  --nx-error: #f3b6a9;
  --nx-notice: #edcda3;
  --nx-radius: 4px;
  --nx-space-1: 4px;
  --nx-space-2: 8px;
  --nx-space-3: 12px;
  --nx-space-4: 16px;
  --nx-space-5: 24px;
  --nx-space-6: 32px;
}
/* Typography: secondary information remains readable. Monospace is for data,
   not for forcing explanatory copy into tiny tracking-heavy capitals. */
.workspace-app {
  color: var(--nx-ink);
}
.workspace-app .app-breadcrumb,
.workspace-app .rail-label,
.workspace-app .section-label,
.workspace-app .panel-eyebrow,
.workspace-app .paper-banner,
.workspace-app .account-kicker,
.workspace-app .app-rail .rail-brand span {
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .055em;
}
.workspace-app .app-header small,
.workspace-app .app-rail .rail-footer,
.workspace-app .app-rail .rail-footer a,
.workspace-app .app-header .connection-status,
.workspace-app .snapshot-note,
.workspace-app .field-note,
.workspace-app .ops-panel-foot,
.workspace-app .ops-empty p,
.workspace-app .performance-footnote {
  font-size: 12px;
  line-height: 1.6;
  color: var(--nx-secondary);
}
.workspace-app .app-rail nav a,
.workspace-app .app-rail nav button,
.workspace-app .app-home-link {
  font-size: 13px;
  line-height: 1.35;
}
.workspace-app .app-rail nav a {
  min-height: 48px;
}
.workspace-app .app-header .connection-status,
.workspace-app .app-rail .rail-footer a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
}
.workspace-app .app-header .member-chip {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.workspace-app .app-header button,
.workspace-app .app-header a.app-home-link,
.workspace-app .app-mode-launcher,
.workspace-app .challenge-launch {
  min-height: 44px;
}
.workspace-app .rail-brand {
  letter-spacing: .065em;
}
.workspace-app .desk-header small {
  margin-top: 4px;
}
/* Real focus contrast on all application surfaces and dialogs. */
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--nx-action);
  outline-offset: 3px;
}
:where(.workspace-app, .mode-dialog, .challenge-dialog) button:disabled {
  cursor: not-allowed;
  opacity: .55;
}
/* Buttons stay put while hovered; targets must not move under the pointer. */
.workspace-app .button:hover,
.workspace-app .quiet-button:hover,
.landing-page .button:hover,
body:not(.workspace-app) .button:hover {
  transform: none;
}
/* Panels and tables: one restrained radius language rather than pills and cards. */
.workspace-app :is(.ops-panel, .overview-panel, .dashboard-context, .fx-market, .fx-ticket, .fx-ledger, .fx-summary,
                    .hub-active-panel, .hub-command, .integration-panel, .settings-section) {
  border-radius: var(--nx-radius);
}
.workspace-app :is(table, th, td) {
  font-variant-numeric: tabular-nums;
}
.workspace-app .table-scroll {
  max-width: 100%;
  overflow-x: auto;
}
.workspace-app table th {
  white-space: nowrap;
}
.workspace-app table td {
  overflow-wrap: anywhere;
}
.workspace-app .ops-page-title {
  font-size: clamp(32px, 3.3vw, 52px);
  letter-spacing: -0.035em;
  line-height: 1.12;
  font-weight: 400;
  margin: 0;
}
/* Keep an accessible H1 in the Dashboard, even when challenge data is gated. */
.nx-visually-hidden {
  position: absolute!important;
  width: 1px!important;
  height: 1px!important;
  padding: 0!important;
  margin: -1px!important;
  overflow: hidden!important;
  clip: rect(0,0,0,0)!important;
  white-space: nowrap!important;
  border: 0!important;
}
/* Challenge selection: accent is a purposeful action, not a huge green background. */
.workspace-app .hub-command {
  background: var(--nx-surface-strong);
  border-color: var(--nx-divider);
  box-shadow: none;
}
.workspace-app .hub-command::before {
  display: none;
}
.workspace-app .hub-hero-button {
  color: var(--nx-ink)!important;
  background: #282b2e!important;
  border-left: 1px solid var(--nx-divider)!important;
  position: relative;
}
.workspace-app .hub-hero-button::before {
  display: none;
}
.workspace-app .hub-hero-button strong {
  color: var(--nx-ink);
}
.workspace-app .hub-hero-button .hub-btn-arrow {
  background: var(--nx-action);
  color: var(--nx-action-ink);
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  border-radius: var(--nx-radius);
  font-size: 34px;
}
.workspace-app .hub-hero-button:hover,
.workspace-app .hub-hero-button:focus-visible {
  background: #3c4044!important;
}
.workspace-app .hub-hero-button:hover .hub-btn-arrow,
.workspace-app .hub-hero-button:focus-visible .hub-btn-arrow {
  transform: none;
}
.workspace-app .hub-btn-above,.workspace-app .hub-btn-below,
.workspace-app .hub-challenge-steps {
  font-size: 11px;
  line-height: 1.6;
}
.workspace-app .hub-command-copy p,
.workspace-app .hub-active-panel p,
.workspace-app .hub-active-panel small {
  font-size: 13px;
  line-height: 1.7;
}
/* Empty chart: real unavailable-data state rather than an extra decorative tile. */
.workspace-app .chart-empty-icon {
  display: none;
}
.workspace-app .chart-empty-kicker {
  font-size: 11px;
  letter-spacing: .06em;
}
.workspace-app .live-chart-empty h3 {
  font-size: clamp(24px,2.6vw,32px);
  line-height: 1.25;
}
.workspace-app .live-chart-empty p {
  font-size: 14px;
  line-height: 1.7;
}
.workspace-app .live-chart-top .panel-eyebrow,
.workspace-app .live-status,
.workspace-app .live-chart-toolbar,
.workspace-app .live-chart-footer,
.workspace-app .chart-source-note,
.workspace-app .chart-market-label {
  font-size: 11px;
  line-height: 1.55;
}
.workspace-app .live-chart-actions .button,
.workspace-app .live-chart-actions .quiet-button {
  min-height: 44px;
  font-size: 13px;
}
/* Settings: text labels and switch geometry, no blue override. */
.workspace-app.settings-page .settings-toggle small,
.workspace-app .settings-page .settings-toggle small {
  font-size: 12px;
  line-height: 1.6;
}
.workspace-app .settings-trigger-copy>small {
  font-size: 12px;
  line-height: 1.55;
}
.workspace-app .settings-section.is-expanded {
  background: var(--nx-surface);
}
.settings-page .settings-toggle input[type="checkbox"][role="switch"] {
  background: #373b3f!important;
  border-color: #868f95!important;
}
.settings-page .settings-toggle input[type="checkbox"][role="switch"]::before {
  background: #d1dee8!important;
}
.settings-page .settings-toggle input[type="checkbox"][role="switch"]:checked {
  background: #565f68!important;
  border-color: var(--nx-action)!important;
}
.settings-page .settings-toggle input[type="checkbox"][role="switch"]:checked::before {
  background: var(--nx-action)!important;
}
/* Connection settings: labels stay distinct from helper text. */
.workspace-app .nx-flows-heading > div > p,
.workspace-app .nx-step-body p:not(.field-note),
.workspace-app .nx-flows-guide p,
.workspace-app .nx-flows-footer {
  font-size: 14px;
  line-height: 1.7;
}
.workspace-app .nx-flow-map small,
.workspace-app .nx-flows-guide>span,
.workspace-app .nx-step-state,
.workspace-app .nx-muted-chip {
  font-size: 11px;
}
.workspace-app .nx-step-body label {
  font-size: 13px;
}
.workspace-app .nx-flow-step summary {
  min-height: 72px;
}
.workspace-app .nx-flow-step summary:focus-visible {
  outline-offset: -4px;
}
/* Terminal controls: hit targets and legible dense-data labels. */
.workspace-app .futures-workbench .fx-eyebrow,
.workspace-app .futures-workbench .fx-summary span,
.workspace-app .futures-workbench .fx-market-notice,
.workspace-app .futures-workbench .fx-risk-grid label,
.workspace-app .futures-workbench .fx-live small,
.workspace-app .futures-workbench .fx-symbols button small,
.workspace-app .futures-workbench .fx-footnote {
  font-size: 11px;
  line-height: 1.6;
}
.workspace-app .futures-workbench .fx-tools button,
.workspace-app .futures-workbench .fx-periods button,
.workspace-app .futures-workbench #fx-price-plus,
.workspace-app .futures-workbench #fx-price-minus {
  min-height: 44px;
}
.workspace-app .futures-workbench .fx-risk-note,
.workspace-app .futures-workbench .fx-market-notice {
  font-size: 12px;
  line-height: 1.6;
}
/* The bottom dock is a navigation aid, not microscopic captions. */
@media (max-width:650px) {
  .workspace-app .app-rail nav a,
  html[data-nexor-mode="prop"] .app-rail nav[data-prop-only] a {
    font-size: 11px!important;
    line-height: 1.2;
    min-height: 60px;
  }
  .workspace-app .app-rail {
    height: 76px;
  }
  .workspace-app {
    padding-bottom: 84px;
  }
  .workspace-app .app-header .app-breadcrumb {
    font-size: 11px;
  }
  .workspace-app .hub-command {
    gap: 0;
    min-height: 0;
  }
  .workspace-app .hub-command-copy {
    padding: 24px 20px;
  }
  .workspace-app .hub-hero-button {
    min-height: 160px;
    border-left: 0!important;
    border-top: 1px solid var(--nx-divider)!important;
    padding: 22px 20px!important;
  }
  .workspace-app .hub-hero-button strong {
    font-size: 32px;
  }
  .workspace-app .hub-hero-button .hub-btn-arrow {
    width: 44px;
    height: 44px;
    font-size: 27px;
  }
  .workspace-app .live-chart-empty {
    min-height: 340px;
  }
  .workspace-app .live-chart-area {
    min-height: 340px;
  }
  .workspace-app .settings-trigger-copy>small {
    font-size: 12px;
  }
  .workspace-app .app-rail .rail-footer {
    display: none;
  }
}
@media (prefers-reduced-motion:reduce) {
  .workspace-app *, .workspace-app *::before, .workspace-app *::after {
    scroll-behavior: auto!important;
  }
}
/* Public site: meaningful hierarchy and believable previews, not microtype
   and tilted interface mockups. This intentionally removes decorative motion
   while leaving the explicitly requested challenge-card animation intact. */
.marketing {
  color: var(--nx-ink);
}
.marketing .brand-sub,
.marketing .hero-overline,
.marketing .device-caption,
.marketing .landing-section-index,
.marketing .feature-number,
.marketing .principles-strip,
.marketing .landing-offer-footer>span,
.marketing .illustration-note,
.marketing .showcase-note>span,
.marketing .workflow-line article>span,
.marketing .workflow-line article>small,
.marketing .workflow-line h3 small,
.marketing .device-toolbar {
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .06em;
}
.marketing .hero-overline {
  color: var(--nx-secondary);
}
.marketing .landing-intro>div>p,
.marketing .editorial-heading>p,
.marketing .feature-editorial p,
.marketing .workflow-line p,
.marketing .statement-bottom p,
.marketing .showcase-note p {
  font-size: 14px;
  line-height: 1.7;
}
.marketing .device-composition .wide-device,
.marketing .device-composition .phone-device,
.marketing .floating-note {
  transform: none;
}
.marketing .wide-device {
  box-shadow: none;
}
.marketing .floating-note {
  box-shadow: none;
}
.marketing .landing-in,
.marketing .landing-in.seen {
  opacity: 1;
  transform: none;
  transition: none;
}
.marketing .ink-reveal {
  transition: none;
}
.marketing .speed-demo i::after {
  animation: none;
}
.marketing .landing-offer-grid a,
.marketing .landing-offer-footer a,
.marketing .landing-link,
.marketing .product-split-grid a,
.marketing footer a:last-of-type {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 13px;
}
.marketing .landing-offer-grid a {
  min-width: fit-content;
}
.marketing .brand {
  min-height: 44px;
}
.marketing header .button {
  min-height: 44px;
}
/* Semantic headings in connections accordion. */
.nx-flows .nx-step-copy h2 {
  font: 400 clamp(18px,2vw,23px)/1.3 'Helvetica Neue',Arial,sans-serif;
  letter-spacing: -.02em;
  color: var(--nx-ink);
  margin: 0;
}
@media (max-width:650px) {
  .marketing .hero-overline,
 .marketing .device-caption,
 .marketing .landing-section-index,
 .marketing .principles-strip,
 .marketing .feature-number {
    font-size: 11px;
  }
  .marketing .marketing-header nav a {
    min-height: 44px;
  }
  .marketing .phone-device {
    transform: none;
  }
  .marketing .landing-hero h1 {
    font-size: clamp(42px,12vw,62px);
    line-height: 1.06;
    letter-spacing: -.045em;
  }
  .marketing .landing-section {
    padding-block: 48px;
  }
  .marketing .workflow-line article>small,
 .marketing .workflow-line article>span {
    font-size: 11px;
  }
  .marketing .landing-link {
    min-height: 44px;
  }
  .marketing .landing-offer-grid a {
    font-size: 13px;
  }
}
@media(max-width:420px) {
  /* Primary call-to-action remains on the PROP page. Do not let a duplicate
     header CTA force a 371px-wide layout on a 320px device. */
  .workspace-app .app-header-actions .challenge-launch {
    display: none!important;
  }
  .workspace-app .app-header-actions {
    min-width: 0;
    max-width: 100%;
  }
}
@media(max-width:650px) {
  /* On mobile, make the action available before the long editorial explanation. */
  .workspace-app .hub-command .hub-hero-button {
    order: 0;
  }
  .workspace-app .hub-command .hub-command-copy {
    order: 1;
  }
}

/* Couleurs par fonction, pas par bloc décoratif : trading=bleu clair,
   évaluation=ambre, résultat positif=turquoise, perte=corail. */
.workspace-app .fx-side #fx-buy[aria-pressed=true], .workspace-app .nx-mobile-buy { border-color: var(--nx-profit)!important; }
.workspace-app .fx-side #fx-sell[aria-pressed=true], .workspace-app .nx-mobile-sell { border-color: var(--nx-loss)!important; }
.workspace-app .hub-live-marker, .workspace-app .challenge-hub .section-label,
.workspace-app .challenge-hub .settings-point { color: var(--nx-warm); }
.workspace-app .fx-live .fx-pulse { background:var(--nx-profit); }
.workspace-app .fx-live span:not(.fx-pulse) { color:var(--nx-profit); }
.workspace-app .connection-status .status-dot { background:var(--nx-signal); }
.workspace-app .fx-tabpanel .positive, .workspace-app .positive { color:var(--nx-profit); }
.workspace-app .fx-tabpanel .negative, .workspace-app .negative { color:var(--nx-loss); }


/* SOURCE : styles/mobile-v11.css */
/* NEXOR V11 — iPhone-first control layer. Anthracite / ardoise design, no generic card system. */
:root {
  --nx-mobile-bottom: 0px;
}
.nx-mobile-nav,.nx-mobile-tradebar,.nx-mobile-sheet-head,.nx-mobile-backdrop {
  display: none;
}
@media(max-width:800px) {
  html {
    scroll-padding-bottom: 110px;
    -webkit-text-size-adjust: 100%;
  }
  body {
    overscroll-behavior-y: auto;
  }
  body:not(.nx-ticket-open) {
    padding-bottom: calc(82px + env(safe-area-inset-bottom,0px))!important;
  }
  body.nx-ticket-open {
    overflow: hidden;
    touch-action: none;
  }
  .nx-mobile-nav {
    position: fixed;
    z-index: 950;
    bottom: 0;
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    align-items: stretch;
    gap: 0;
    padding: 5px max(8px,env(safe-area-inset-left,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-right,0px));
    background: #1f2123;
    border-top: 1px solid #424950;
    box-shadow: 0 -8px 22px #12141550;
    min-height: 65px;
  }
  .nx-mobile-nav a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
    gap: 4px;
    padding: 7px 2px;
    color: #b7c3cb;
    text-decoration: none;
    font: 500 11px/1.15 -apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
    letter-spacing: 0;
    min-height: 53px;
    border-radius: 5px;
  }
  .nx-mobile-nav a[aria-current=page] {
    color: #d2e5ed;
    background: #36393d;
  }
  .nx-mobile-nav a svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .nx-mobile-nav a:focus-visible {
    outline: 2px solid #d2e5ed;
    outline-offset: -2px;
  }
  .nx-mobile-nav a span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }
  .nx-mobile-tradebar {
    position: fixed;
    bottom: calc(68px + env(safe-area-inset-bottom,0px));
    left: 0;
    right: 0;
    z-index: 940;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    padding: 8px 12px;
    background: #222527ed;
    border-top: 1px solid #454c53;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  body:has(.nx-mobile-tradebar), body.nx-has-tradebar {
    padding-bottom: calc(143px + env(safe-area-inset-bottom,0px))!important;
  }
  .nx-mobile-tradebar button {
    font: 700 14px/1.2 -apple-system,BlinkMacSystemFont,sans-serif;
    min-height: 49px;
    border: 1px solid #6b7681;
    border-radius: 4px;
    color: #d8e6f0;
    background: #3a3e42;
  }
  .nx-mobile-tradebar .nx-mobile-buy {
    background: #bed6e1;
    color: #242729;
    border-color: #bed6e1;
  }
  .nx-mobile-tradebar .nx-mobile-sell {
    background: #503834;
    color: #f4d0c8;
    border-color: #96716c;
  }
  .nx-mobile-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: #070808ab;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease;
  }
  body.nx-ticket-open .nx-mobile-backdrop {
    opacity: 1;
    pointer-events: auto;
  }
  .nx-mobile-sheet-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid #495158;
    color: #d5e3ed;
    font: 600 16px/1.35 -apple-system,BlinkMacSystemFont,sans-serif;
  }
  .nx-mobile-sheet-head button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    padding: 0;
    line-height: 1;
    width: 44px;
    height: 44px;
    background: #36393d;
    color: #f1f4eb;
    border: 1px solid #555d66;
    border-radius: 4px;
    font: 24px sans-serif;
  }
  .futures-workbench {
    padding: 12px 8px 40px!important;
    width: 100%;
    max-width: 100%;
    overflow: clip;
  }
  .fx-toolbar {
    margin-bottom: 12px!important;
  }
  .fx-toolbar h1 {
    font-size: clamp(30px,9vw,38px)!important;
    margin: 5px 0!important;
  }
  .fx-toolbar p {
    font-size: 12px!important;
  }
  .fx-toolbar .fx-live {
    margin: 9px 0 0!important;
  }
  .fx-summary {
    display: flex!important;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    border-color: #41474e;
  }
  .fx-summary::-webkit-scrollbar {
    display: none;
  }
  .fx-summary>div {
    flex: 0 0 38%;
    min-width: 125px!important;
    border-right: 1px solid #41474e!important;
    border-top: 0!important;
    grid-column: auto!important;
    scroll-snap-align: start;
    padding: 10px 12px!important;
  }
  .fx-summary span {
    font-size: 11px!important;
  }
  .fx-summary strong {
    font-size: 16px!important;
    margin-top: 3px!important;
  }
  .fx-grid {
    display: block!important;
    margin-top: 10px!important;
  }
  .fx-market {
    width: 100%;
  }
  .fx-market-top {
    padding: 13px 10px!important;
  }
  .fx-market-top h2 {
    font-size: 20px!important;
  }
  .fx-quote strong {
    font-size: 20px!important;
  }
  .fx-symbols {
    display: flex!important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    grid-template-columns: none!important;
  }
  .fx-symbols button {
    flex: 0 0 80px!important;
    min-height: 52px!important;
    scroll-snap-align: start;
    padding: 8px 5px!important;
  }
  .fx-symbols button b {
    font-size: 15px!important;
  }
  .fx-symbols button span {
    font-size: 10px!important;
  }
  .fx-chart-controls {
    display: grid!important;
    grid-template-columns: minmax(0,1fr);
    gap: 5px!important;
    padding: 8px!important;
  }
  .fx-periods,.fx-tools {
    justify-content: space-between;
    width: 100%;
    gap: 3px;
  }
  .fx-periods button,.fx-tools button {
    min-width: 42px!important;
    min-height: 44px!important;
    font-size: 12px!important;
    flex: 1;
    padding: 5px!important;
  }
  .fx-chart-area {
    padding: 2px 0!important;
  }
  .futures-workbench .fx-chart-area svg {
    height: clamp(310px,83vw,445px)!important;
    touch-action: none!important;
    cursor: crosshair;
  }
  .futures-workbench .fx-chart-area p {
    font-size: 11px!important;
    line-height: 1.5;
    padding: 8px 12px!important;
  }
  .fx-axis-guide {
    font-size: 11px!important;
    line-height: 1.5;
  }
  .fx-market-notice {
    font-size: 11px!important;
    padding: 10px!important;
  }
  .fx-ticket {
    display: block!important;
    position: fixed!important;
    z-index: 1201!important;
    left: 0!important;
    right: 0!important;
    bottom: 0!important;
    top: auto!important;
    width: 100%!important;
    max-width: none!important;
    max-height: min(90dvh,900px)!important;
    overflow-y: auto!important;
    overscroll-behavior: contain;
    transform: translateY(105%)!important;
    visibility: hidden;
    pointer-events: none;
    border-radius: 12px 12px 0 0!important;
    border: 1px solid #505860!important;
    background: #282a2d!important;
    box-shadow: 0 -14px 48px #0b0b0ca8!important;
    padding-bottom: calc(18px + env(safe-area-inset-bottom,0px))!important;
    transition: transform .22s cubic-bezier(.2,.7,.2,1),visibility .22s!important;
  }
  body.nx-ticket-open .fx-ticket {
    transform: translateY(0)!important;
    visibility: visible;
    pointer-events: auto;
  }
  .fx-ticket-head {
    padding: 10px 16px!important;
  }
  .fx-ticket .fx-side {
    padding: 10px 16px 0!important;
  }
  .fx-ticket .fx-side button {
    font-size: 14px!important;
    min-height: 48px;
  }
  .fx-ticket #fx-form {
    display: block!important;
    padding: 10px 16px 0!important;
  }
  .fx-ticket .fx-field label {
    font-size: 13px!important;
  }
  .fx-ticket input,.fx-ticket select {
    font-size: 16px!important;
    min-height: 46px!important;
  }
  .fx-ticket .fx-field {
    margin-bottom: 12px!important;
  }
  .fx-ticket .fx-ticket-amount {
    margin: 12px 0!important;
    gap: 8px!important;
  }
  .fx-ticket .fx-ticket-amount>div {
    font-size: 12px!important;
  }
  .fx-ticket .fx-ticket-amount b {
    font-size: 12px!important;
  }
  .fx-primary {
    min-height: 52px!important;
    font-size: 14px!important;
  }
  .fx-ledger {
    margin-top: 10px!important;
  }
  .fx-ledger-head {
    padding: 15px 12px!important;
  }
  .fx-ledger-head h2 {
    font-size: 21px!important;
  }
  .fx-ledger-actions {
    display: flex!important;
    flex-wrap: wrap;
    gap: 6px!important;
  }
  .fx-ledger-actions button {
    min-height: 44px!important;
    font-size: 12px!important;
    flex: 1;
  }
  .fx-tabs {
    position: relative;
    display: flex;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .fx-tabs button {
    min-height: 48px!important;
    font-size: 13px!important;
    padding: 13px 12px!important;
    scroll-snap-align: start;
  }
  .fx-tabpanel .table-scroll {
    overflow-x: auto!important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .fx-tabpanel table {
    font-size: 12px!important;
  }
  .fx-tabpanel th,.fx-tabpanel td {
    padding: 12px 10px!important;
    font-size: 12px!important;
  }
  .fx-tabpanel td button {
    min-height: 44px!important;
    font-size: 12px!important;
  }
  .fx-risk-grid {
    grid-template-columns: 1fr!important;
  }
  .fx-risk-grid label {
    font-size: 13px!important;
  }
  .fx-risk-grid input {
    font-size: 16px!important;
  }
  .fx-empty {
    font-size: 13px!important;
    padding: 22px 12px!important;
  }
  .fx-bracket-dialog {
    max-height: 85dvh;
    overflow-y: auto;
    font-size: 15px;
  }
  body .app-rail {
    bottom: auto;
  }
  body .app-header {
    min-width: 0;
  }
  input,select,textarea {
    font-size: max(16px,1em);
  }
}
@media(max-width:365px) {
  .fx-summary>div {
    flex-basis: 47%;
  }
  .fx-periods button,.fx-tools button {
    min-width: 0!important;
  }
  .fx-chart-area svg {
    height: 315px!important;
  }
}
@media(prefers-reduced-motion:reduce) {
  .fx-ticket,.nx-mobile-backdrop {
    transition: none!important;
  }
}

/* Small screens: one navigation system only. The fixed NEXOR dock already
   contains the page links; do not render a second (legacy) dock above it. */
@media (max-width: 800px) {
  body.workspace-app {
    padding-left: 0 !important;
    min-width: 0;
  }
  body.workspace-app .app-rail {
    display: none !important;
  }
  body.workspace-app .app-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    min-height: 0;
    height: auto;
    gap: 8px 10px;
    padding: 10px 12px !important;
  }
  body.workspace-app .app-header > .home-mode-shortcuts {
    grid-column: 1 / -1;
    min-width: 0;
    width: 100%;
    justify-content: space-between;
    gap: 8px;
  }
  body.workspace-app .app-header > div:nth-child(2) {
    min-width: 0;
    grid-column: 1;
    align-self: center;
  }
  body.workspace-app .app-header > div:nth-child(2) > small {
    display: none;
  }
  body.workspace-app .app-breadcrumb {
    font-size: 10px;
    line-height: 1.35;
    letter-spacing: 0;
    overflow-wrap: anywhere;
  }
  body.workspace-app .app-header-actions {
    grid-column: 2;
    min-width: 0;
    gap: 8px;
    margin: 0;
  }
  body.workspace-app .app-header-actions .challenge-launch {
    display: none !important; /* Primary challenge action remains in Challenges. */
  }
  body.workspace-app .connection-status {
    max-width: 130px;
    min-height: 36px;
    font-size: 11px;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  body.workspace-app .member-chip,
  body.workspace-app .tour-launch {
    flex-shrink: 0;
  }
  /* Information should wrap. Only instruments, summary cards and real data
     tables are intentionally horizontally scrollable. */
  body.workspace-app .overview,
  body.workspace-app .operations,
  body.workspace-app .settings-page,
  body.workspace-app .connection-page,
  body.workspace-app .futures-workbench,
  body.workspace-app .hub,
  body.workspace-app .journal-page {
    min-width: 0;
    max-width: 100%;
  }
  body.workspace-app main :is(h1, h2, h3, p, label, summary),
  body.workspace-app main :is(.settings-trigger-copy, .hub-command-copy, .ops-heading) {
    overflow-wrap: break-word;
  }
  body.workspace-app main :is(button, a) {
    min-width: 0;
  }
  .futures-workbench .fx-summary > div {
    flex: 0 0 158px !important;
    min-width: 158px !important;
  }
  .futures-workbench .fx-summary strong {
    font-size: 15px !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    line-height: 1.3;
  }
  .futures-workbench .fx-summary span,
  .futures-workbench .fx-market-notice,
  .futures-workbench .fx-chart-area p {
    font-size: 12px !important;
    line-height: 1.5;
  }
  .futures-workbench .fx-market-top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 6px 14px;
  }
  .futures-workbench .fx-symbol-copy,
  .futures-workbench .fx-quote {
    min-width: 0;
  }
  .futures-workbench .fx-market-top h2 small {
    white-space: normal;
    overflow-wrap: break-word;
  }
  .futures-workbench .fx-symbols button span {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.15;
  }
  .futures-workbench .fx-symbols button {
    flex-basis: 96px !important;
  }
  .futures-workbench .fx-ledger-head {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }
  .futures-workbench .fx-ledger-actions {
    width: 100%;
  }
}
@media (max-width: 365px) {
  body.workspace-app .app-header-actions .connection-status {
    display: none; /* Still accessible via the Flux bottom navigation. */
  }
  .futures-workbench .fx-summary > div {
    flex-basis: 148px !important;
    min-width: 148px !important;
  }
  .futures-workbench .fx-symbols button {
    flex-basis: 88px !important;
  }
}

/* Isolate bottom navigation from legacy global nav a margins/sizing. */
@media(max-width:800px) {
  .nx-mobile-nav a {
    margin: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 53px;
    max-width: 100%;
    box-sizing: border-box;
    justify-self: stretch;
    overflow-wrap: normal;
  }
}

/* Information architecture for touch screens — a composed phone layout rather
   than a scaled desktop. The bottom dock and order sheet are kept functional. */
@media (max-width: 800px) {
  :root { --nx-phone-gutter: clamp(14px,4.5vw,22px); }
  body.workspace-app { background: #17191c; }
  body.workspace-app .app-header {
    display: flex!important; align-items: center; justify-content: space-between;
    flex-wrap: nowrap; gap: 8px; padding: 10px var(--nx-phone-gutter)!important;
    min-height: 62px; border-bottom-color:#40474f;
  }
  body.workspace-app .app-header > .home-mode-shortcuts {
    flex: 1 1 auto; width: auto; min-width: 0; justify-content: flex-start;
    gap: 7px; flex-wrap: nowrap;
  }
  body.workspace-app .app-header > div:nth-child(2) { display:none!important; }
  body.workspace-app .app-header-actions { display:flex; flex: 0 0 auto; gap: 7px; }
  body.workspace-app .app-header-actions .connection-status { display:none!important; }
  body.workspace-app .app-home-link,
  body.workspace-app .app-mode-launcher { min-height: 44px!important; padding: 9px 11px!important; font-size: 11px!important; white-space: nowrap; }
  body.workspace-app .tour-launch { width:38px; height:38px; }
  body.workspace-app .member-chip { width:38px; height:38px; }
  body.workspace-app .paper-banner { padding: 7px var(--nx-phone-gutter); text-align: left; font-size: 10px!important; line-height:1.35; }
  body.workspace-app .account-switcher { padding: 9px var(--nx-phone-gutter); }
  body.workspace-app #account-trigger { min-height:48px; max-width:100%; }
  body.workspace-app .operations,
  body.workspace-app .futures-workbench,
  body.workspace-app .settings-page,
  body.workspace-app .connection-page { padding: 20px var(--nx-phone-gutter) 32px!important; }
  body.workspace-app main h1 { text-wrap:balance; }
  body.workspace-app .ops-heading { display: block; margin-bottom:18px; }
  body.workspace-app .ops-heading h1 { font-size: clamp(30px,8.6vw,43px); line-height:1.09; margin:8px 0 10px; letter-spacing:-1.3px; }
  body.workspace-app .ops-heading p { font: 13px/1.6 -apple-system,BlinkMacSystemFont,Arial,sans-serif; max-width: 38ch; }
  body.workspace-app .ops-heading-actions { margin-top:14px; flex-wrap:wrap; }
  body.workspace-app .ops-heading .section-label { font-size:10px; }
  body.workspace-app .ops-panel { border-radius: 5px; }
  body.workspace-app .ops-panel-head { padding:14px var(--nx-phone-gutter); flex-wrap: wrap; gap:8px; }
  body.workspace-app .ops-panel-head h2 { font-size: 16px; }
  body.workspace-app .ops-panel-foot { padding:14px var(--nx-phone-gutter); flex-wrap:wrap; font-size:11px; }
  body.workspace-app .ops-metrics {
    display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important;
    border-radius:5px; gap:0; margin-bottom:14px;
  }
  body.workspace-app .ops-metrics > div {
    padding:15px 12px!important; border-right: 1px solid #474f56;
    border-bottom:1px solid #474f56; min-width:0;
  }
  body.workspace-app .ops-metrics strong { margin:10px 0 5px!important; font-size: clamp(17px,4.7vw,23px)!important; overflow-wrap:anywhere; }
  body.workspace-app .ops-metrics > div > span { font-size:11px; line-height:1.35; }
  body.workspace-app .ops-metrics > div > small { font-size:10px; }
  body.workspace-app .ops-main-grid { display:grid!important; grid-template-columns: minmax(0,1fr)!important; gap:14px!important; }
  body.workspace-app :is(.hub-command,.hub-active-grid,.core-hero-grid,.core-bottom-grid) {
    display:grid!important; grid-template-columns:minmax(0,1fr)!important;
    gap:0!important;
  }
  body.workspace-app .hub-command { min-height:0; margin-bottom:14px; }
  body.workspace-app .hub-command::before { display:none; }
  body.workspace-app .hub-command-copy { padding: 23px var(--nx-phone-gutter) 18px!important; }
  body.workspace-app .hub-command-copy h2 { font-size: clamp(29px,8vw,39px); letter-spacing:-1.4px; margin: 8px 0; }
  body.workspace-app .hub-command-copy p { font-size:13px; line-height:1.55; margin:7px 0; }
  body.workspace-app .hub-challenge-steps { font-size:10px; line-height:1.5; margin-top: 11px; }
  body.workspace-app .hub-challenge-steps i { margin: 0 5px; }
  body.workspace-app .hub-hero-button {
    min-height:100px; display:grid; grid-template-columns:1fr auto;
    align-items:center; gap:5px 14px; padding:17px var(--nx-phone-gutter)!important;
    border-left:0!important; border-top: 1px solid #e5c28a!important;
  }
  body.workspace-app .hub-hero-button strong { font-size: clamp(27px,7.3vw,35px); line-height:1.02; }
  body.workspace-app .hub-hero-button strong br { display:none; }
  body.workspace-app .hub-btn-above { grid-column:1/-1; font-size:10px; }
  body.workspace-app .hub-btn-arrow { grid-column:2; grid-row:2; font-size:31px; }
  body.workspace-app .hub-btn-below { grid-column:1/-1; font-size:9px; }
  body.workspace-app .hub-active-panel { padding:16px var(--nx-phone-gutter)!important; margin:14px 0!important; }
  body.workspace-app .hub-section-title { align-items:flex-start; gap:10px; }
  body.workspace-app .hub-section-title h2 { font-size:22px; }
  body.workspace-app .hub-active-grid { gap:14px!important; padding-top:15px; }
  body.workspace-app .hub-active-stats { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:8px; }
  body.workspace-app .hub-active-stats > div { padding:10px 0; }
  body.workspace-app .hub-active-actions { display:flex; flex-direction:column; gap:8px; }
  body.workspace-app .hub-active-actions a { justify-content:center; min-height:47px; }
  body.workspace-app .hub-history .hub-attempt-list { max-width:100%; }
  body.workspace-app .hub-optional-caption { display:block; margin:10px 0 0; font-size:11px; }
  /* Trading: chart first, compact quote, readable instrument picker, horizontal
     data tables only where their tabular structure is actually required. */
  body.workspace-app .fx-toolbar { margin: 0 0 11px!important; }
  body.workspace-app .fx-toolbar h1 { font-size: 31px!important; }
  body.workspace-app .fx-toolbar p { font-size:12px!important; }
  body.workspace-app .fx-summary { margin: 0 0 11px; }
  body.workspace-app .fx-summary > div { flex: 0 0 140px!important; min-width:140px!important; }
  body.workspace-app .fx-market-top { padding: 12px!important; }
  body.workspace-app .fx-market-top h2 { font-size:21px!important; }
  body.workspace-app .fx-market-top h2 small { display:block; font-size:11px!important; }
  body.workspace-app .fx-quote strong { font-size:24px!important; }
  body.workspace-app .fx-chart-controls { padding:8px 10px!important; }
  body.workspace-app .futures-workbench .fx-chart-area svg { height: clamp(290px,100vw,430px)!important; }
  body.workspace-app .fx-chart-area p { font-size:12px!important; }
  body.workspace-app .fx-axis-guide { padding:7px 10px!important; }
  body.workspace-app .fx-ledger { margin-top:13px!important; }
  body.workspace-app .fx-ledger-head { padding:14px!important; }
  body.workspace-app .fx-ledger-actions button { padding:8px!important; }
  body.workspace-app .fx-tabpanel .table-scroll { max-width:100%; }
  body.workspace-app .fx-ticket { border-radius:17px 17px 0 0!important; }
  /* Settings/flux remain native vertical groups, not squeezed multi-column cards. */
  body.workspace-app .settings-accordion,
  body.workspace-app .nx-flows-accordion { display:block; max-width:100%; }
  body.workspace-app .settings-section,
  body.workspace-app .nx-flow-step { min-width:0; }
  body.workspace-app input,
  body.workspace-app select,
  body.workspace-app textarea { max-width:100%; }
  body.workspace-app .settings-intro h1,
  body.workspace-app .nx-flows-heading h1 { font-size:clamp(29px,8vw,42px)!important; letter-spacing:-1px; }
  body.workspace-app .nx-mobile-nav { background:#1b2025; border-top:1px solid #49515a; }
  body.workspace-app .nx-mobile-nav a[aria-current=page] { color:#ebd09f; background:#33383d; }
  body.workspace-app .nx-mobile-nav a { font-size:12px; }
  body.workspace-app .nx-mobile-buy { background:#9bcbbb; border-color:#9bcbbb!important; color:#192924; }
  body.workspace-app .nx-mobile-sell { background:#4a3133; border-color:#c58c88!important; color:#f4d6d0; }
}
@media (max-width: 350px) {
  body.workspace-app .app-header { padding: 9px 10px!important; }
  body.workspace-app .app-home-link,body.workspace-app .app-mode-launcher { padding:8px!important; font-size:10px!important; }
  body.workspace-app .app-header-actions .tour-launch { display:none; }
  body.workspace-app .ops-heading h1 { font-size:29px; }
}

/* Le graphique, plutôt que cinq statistiques et un hero, doit être le premier
   élément de travail sur un iPhone. Les métriques restent lisibles plus bas. */
@media (max-width:800px) {
  .futures-workbench { display:flex; flex-direction:column; }
  .futures-workbench > .fx-toolbar { order:0; }
  .futures-workbench > .fx-grid { order:1; }
  .futures-workbench > .fx-summary { order:2; margin:12px 0 0!important; }
  .futures-workbench > .fx-challenge-line { order:3; }
  .futures-workbench > .fx-ledger { order:4; }
  .futures-workbench > .fx-legacy { order:5; }
  .futures-workbench > .fx-footnote { order:6; }
  .futures-workbench > .fx-bracket-dialog { order:7; }
  .futures-workbench .fx-toolbar { display:flex!important; align-items:center; justify-content:space-between; gap:8px; }
  .futures-workbench .fx-toolbar h1 { font-size:25px!important; margin:4px 0!important; letter-spacing:-.8px; }
  .futures-workbench .fx-toolbar .fx-eyebrow { font-size:9px; }
  .futures-workbench .fx-toolbar p { display:none; } /* banner précise les limites de la simulation */
  .futures-workbench .fx-live { min-width:0; display:flex; flex-direction:column; align-items:flex-end; gap:2px; }
  .futures-workbench .fx-live span:not(.fx-pulse) { font-size:10px; }
  .futures-workbench .fx-live small { font-size:10px; }
  .futures-workbench .fx-market-top { align-items:center; }
  .futures-workbench .fx-chart-controls { grid-template-columns: minmax(0,1fr)!important; }
  .futures-workbench .fx-axis-guide > span:nth-child(2) { display:none; } /* commandes X/Y visibles */
  .futures-workbench .fx-protection-help { font-size:11px!important; }
  .futures-workbench .fx-symbols button { flex-basis:91px!important; }
  .workspace-app .live-chart-panel { margin-top:10px; }
  .workspace-app .live-chart-panel .ops-panel-head { padding:12px 14px; }
  .workspace-app main .ops-heading > div > p { max-width:36ch; }
  .workspace-app .challenge-gate { padding:22px!important; min-height:0!important; }
  .workspace-app .challenge-gate h2 { font-size:clamp(25px,7.6vw,34px)!important; line-height:1.2; }
  .workspace-app .challenge-gate p { font-size:14px!important; line-height:1.55!important; }
  .workspace-app .challenge-gate a.button { min-height:48px; padding:14px!important; width:100%; justify-content:center; }
}
@media(max-width:650px) {
  /* SVG remains fully inside the iPhone viewport; hit zones and price labels
     use a wider dedicated Y axis instead of a 570px horizontal desktop canvas. */
  .futures-workbench .fx-chart-area { overflow-x:hidden!important; }
  .futures-workbench .fx-chart-area svg {
    width:100%!important; min-width:0!important; height:auto!important;
    aspect-ratio:1000/550!important; max-width:100%;
  }
  .futures-workbench .fx-scale-label,
  .futures-workbench .fx-time-label { font-size:30px!important; }
  .futures-workbench .fx-last-label { font-size:27px!important; }
  .futures-workbench .fx-chart-order-line text { font-size:28px!important; }
  .futures-workbench .fx-chart-controls { display:flex!important; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:4px!important; }
  .futures-workbench .fx-chart-controls::-webkit-scrollbar { display:none; }
  .futures-workbench .fx-periods,
  .futures-workbench .fx-tools { display:flex!important; flex:0 0 auto; width:auto; gap:2px!important; }
  .futures-workbench .fx-periods button,
  .futures-workbench .fx-tools button { min-width:34px!important; width:34px!important; min-height:38px!important; font-size:11px!important; flex:0 0 auto; }
  .futures-workbench .fx-axis-guide { display:flex!important; flex-direction:row; align-items:center; gap:5px; flex-wrap:wrap; }
  .futures-workbench .fx-axis-actions { margin-left:auto; }
  .futures-workbench .fx-axis-actions button { min-height:35px; font-size:10px; }
}
@media(max-width:650px) {
  body.workspace-app .futures-workbench .fx-chart-area svg {
    display:block; min-width:0!important; width:100%!important;
    height:auto!important; aspect-ratio:1000/550!important;
  }
  body.workspace-app .fx-axis-guide { padding:5px 9px!important; display:grid!important; grid-template-columns: minmax(0,1fr) auto; gap:4px; }
  body.workspace-app .fx-axis-guide #fx-zoom-level { align-self:center; font-size:10px; }
  body.workspace-app .fx-axis-guide .fx-axis-actions { display:flex; flex-wrap:nowrap; width:auto; margin:0; gap:3px; }
  body.workspace-app .fx-axis-guide .fx-axis-actions button { min-height:35px; padding:5px!important; }
}

@media(max-width:650px) {
  /* L'action est première ; supprimer la répétition éditoriale directement
     dessous au lieu de laisser le début d'une maquette desktop. */
  body.workspace-app .hub-command .hub-hero-button { order:0; }
  body.workspace-app .hub-command .hub-command-copy { order:1; padding:12px 18px 16px!important; }
  body.workspace-app .hub-command .hub-command-copy > .section-label,
  body.workspace-app .hub-command .hub-command-copy > h2 { display:none!important; }
  body.workspace-app .hub-command .hub-command-copy p { margin:0!important; font-size:12px!important; line-height:1.5!important; }
  body.workspace-app .hub-command .hub-challenge-steps { margin-top:9px!important; font-size:10px!important; }
  body.workspace-app .hub-hero-button { border-top:0!important; border-bottom:1px solid #565355!important; }
  body.workspace-app .hub-hero-button .hub-btn-arrow { background:#e5c28a; color:#292725; }
  body.workspace-app .hub-hero-button strong { color:#f0f2f5; }
}

