/* APODEXA brand tokens — "Neon Prism" (2026-07-13 redesign).
   Loaded BEFORE landing.css / app.css / dashboard.css. Single source of truth
   for the dark theme; page stylesheets consume these variables and may
   re-map their legacy variable names onto them. Reference: DOC/design.md. */

:root {
  /* surfaces */
  --bg-0: #02010C;            /* page */
  --bg-1: #0A0716;            /* panel / section */
  --bg-2: #110C1F;            /* raised card */
  --bg-3: #1A1330;            /* hover / active surface */
  --line: rgba(255, 255, 255, .08);
  --line-2: rgba(255, 255, 255, .16);

  /* text */
  --ink: #F4F2F8;
  --ink-2: #B8B3C7;
  --ink-3: #7E7890;

  /* brand */
  --brand-red: #FF2D3E;
  --brand-rose: #F42058;
  --brand-magenta: #E5199A;
  --brand-orange: #FF8A2A;
  --grad-brand: linear-gradient(135deg, #FF2D3E 0%, #F42058 35%, #E5199A 70%, #FF8A2A 100%);
  /* TASK-20260714-022: darkened from #FF3B2E/#FF6A3D (white text was 2.86-3.54:1,
     below WCAG AA 4.5:1) to the same hue at ~72% luminance — every point along
     the gradient now measures >=5.1:1 for white text (computed via WCAG relative
     luminance), keeping the red->orange Neon Prism look intact. */
  --grad-cta: linear-gradient(90deg, #B82A21, #B84C2C);
  --glow-brand: 0 0 40px rgba(244, 32, 88, .25);
  --glow-soft: 0 0 24px rgba(229, 25, 154, .15);

  /* semantic */
  --green: #2FD37A;
  --amber: #FFB454;
  --red: #FF5C6C;             /* danger — distinct from brand red */
  --blue: #7AA7FF;

  /* shape */
  --r-card: 16px;
  --r-btn: 10px;
}

/* shared primitives */
.grad-text {
  background: var(--grad-brand);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.btn-cta {
  background: var(--grad-cta);
  color: #fff;
  border: 0;
  border-radius: var(--r-btn);
  box-shadow: var(--glow-soft);
}
.btn-cta:hover { filter: brightness(1.08); box-shadow: var(--glow-brand); }
.card-dark {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
}
.card-dark:hover { border-color: var(--line-2); }
