.fs-app {
  --fs-brand: #F62058;
  --fs-brand-strong: #C2174A;
  --fs-positive: #2fbd85;
  --fs-negative: #ef5a6f;
  --fs-warning: #dca436;
  --fs-info: #56b7ff;
  --fs-radius-sm: 10px;
  --fs-radius: 18px;
  --fs-radius-lg: 26px;
  --fs-shadow: 0 18px 50px rgba(0,0,0,.20);
  --fs-font-ui: "Satoshi", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --fs-font-display: var(--fs-font-ui);
  --fs-font-data: var(--fs-font-ui);
  --fs-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --fs-font: var(--fs-font-ui);
  --fs-sans: var(--fs-font-ui);
  /* Shared FlareSignal UI type scale. New product surfaces should use these
     instead of introducing sub-10px customer-facing copy. */
  --fs-type-badge: 11px;
  --fs-type-label: 12px;
  --fs-type-small: 13px;
  --fs-type-body: 15px;
  /* Sig-Metrics semantic aliases. All Sig-Metrics families consume these shared
     tokens rather than inventing page-local micro type. */
  --fs-sm-type-badge: var(--fs-type-badge);
  --fs-sm-type-label: var(--fs-type-label);
  --fs-sm-type-support: var(--fs-type-small);
  --fs-sm-type-body: var(--fs-type-body);
  /* Dark is the safe FlareSignal application default. A future global appearance
     control can still opt an app into data-fs-theme="light" explicitly. */
  --fs-bg: #070709;
  --fs-surface-0: var(--fs-bg);
  --fs-surface-1: #0e0e12;
  --fs-surface-2: #15151b;
  --fs-surface-3: #1c1c23;
  --fs-border: rgba(255,255,255,.09);
  --fs-border-strong: rgba(255,255,255,.16);
  --fs-text: #f7f7f8;
  --fs-muted: #9797a1;
  --fs-grid: rgba(255,255,255,.055);
}
.fs-app[data-fs-theme="dark"] {
  --fs-bg: #070709;
  --fs-surface-1: #0e0e12;
  --fs-surface-2: #15151b;
  --fs-surface-3: #1c1c23;
  --fs-border: rgba(255,255,255,.09);
  --fs-border-strong: rgba(255,255,255,.16);
  --fs-text: #f7f7f8;
  --fs-muted: #9797a1;
  --fs-grid: rgba(255,255,255,.055);
}
.fs-app[data-fs-theme="light"] {
  --fs-bg: #f7f7f9;
  --fs-surface-1: #ffffff;
  --fs-surface-2: #f1f1f4;
  --fs-surface-3: #e8e8ed;
  --fs-border: rgba(8,8,12,.10);
  --fs-border-strong: rgba(8,8,12,.18);
  --fs-text: #0a0a0e;
  --fs-muted: #666671;
  --fs-info: #2457c5;
  --fs-grid: rgba(8,8,12,.06);
  --fs-shadow: 0 18px 50px rgba(22,22,34,.08);
}
.fs-app {
  /* v0.38.99 · asset-pair identity + analytical palette. The canonical
     secondary/Songbird comparison series returns to neutral white; mint is
     retained as an explicit analytical colour for non-asset roles. */
  --fs-series-secondary: #d8d8df;
  --fs-series-mint: #62dfb4;
  --fs-series-tertiary: #f3b83f;
  --fs-series-violet: #a98cff;
  --fs-series-cyan: #56b7ff;
  --fs-series-neutral: #c9c5d2;
  --fs-chart-accent-a: var(--fs-brand);
  --fs-chart-accent-b: var(--fs-series-mint);
  --fs-chart-accent-c: var(--fs-series-cyan);
}
.fs-app[data-fs-theme="light"] {
  --fs-series-secondary: #4d4d58;
  --fs-series-mint: #12896c;
  --fs-series-tertiary: #9f6d00;
  --fs-series-violet: #7153c7;
  --fs-series-cyan: #246fc5;
  --fs-series-neutral: #5b5b67;
}
