/* Conexus semantic token layer (design PR15.2).

   Core CSS reads ONLY --cnx-* variables. This file is the single place that
   maps them to the vendored Springhead kit (--sh-*, vendor/springhead-kit-3.0).
   A child re-skins every core page by loading its own stylesheet AFTER this one
   (the `cnx_brand_css` template block) and redefining any --cnx-* below. It
   never edits core.css.

   Fonts: the core ships no brand font. The display and text faces are the kit's
   free Helvetica stack (Helvetica Neue, Helvetica, Arial). A Springhead-branded
   child that has its own Ladislav license slots it in by loading the kit's
   fonts.css and redefining:
       --cnx-font-display: var(--sh-font-display);
       --cnx-display-weight: 600;
   See docs/runbooks/theming.md. */

:root {
  /* Surfaces and text (kit rule 3: white product surface). */
  --cnx-surface: var(--sh-white);
  --cnx-text: var(--sh-ink-800);
  --cnx-text-muted: var(--sh-ink-700);
  --cnx-border: var(--sh-ink-200);

  /* Kit extension (recorded in DESIGN.md): the kit's hairline --sh-border
     (ink-200) is 1.42:1 on white, below the 3:1 WCAG 1.4.11 asks of a form
     control boundary. Input borders use ink-500 (4.36:1). */
  --cnx-border-input: var(--sh-ink-500);

  /* Action and brand. */
  --cnx-primary: var(--sh-navy);
  --cnx-primary-hover: var(--sh-navy-deep);
  --cnx-primary-busy: var(--sh-ink-700);
  --cnx-on-primary: var(--sh-white);
  --cnx-link: var(--sh-teal);
  --cnx-accent: var(--sh-yellow);
  --cnx-danger: var(--sh-danger);
  --cnx-success: var(--sh-success);
  --cnx-selection: var(--sh-ink-200);

  /* QR code (enrollment). A QR must scan whatever the brand: dark modules on a
     white paper at AAA contrast. A child can retint --cnx-qr-ink, never the
     paper (a quiet zone that is not light does not scan). */
  --cnx-qr-ink: var(--sh-ink-800);
  --cnx-qr-paper: var(--sh-white);

  /* Focus ring (kit). */
  --cnx-focus-ring: var(--sh-focus-ring-color);
  --cnx-focus-ring-width: var(--sh-focus-ring-width);
  --cnx-focus-ring-offset: var(--sh-focus-ring-offset);

  /* Type. */
  --cnx-font-text: var(--sh-font-text);
  --cnx-font-display: var(--sh-font-text);
  --cnx-text-weight: var(--sh-fw-text);
  --cnx-strong-weight: var(--sh-fw-strong);
  --cnx-display-weight: var(--sh-fw-strong);
  --cnx-fs-small: 0.875rem;
  --cnx-fs-body: 1rem;
  --cnx-fs-title: 2rem;

  /* Spacing (kit 4/8 rhythm). */
  --cnx-s-1: var(--sh-r-1);
  --cnx-s-2: var(--sh-r-2);
  --cnx-s-3: var(--sh-r-3);
  --cnx-s-4: var(--sh-r-4);
  --cnx-s-5: var(--sh-r-5);
  --cnx-s-6: var(--sh-r-6);
  --cnx-s-7: var(--sh-r-7);
  --cnx-s-8: var(--sh-r-8);

  /* Shape and size. */
  --cnx-radius: var(--sh-radius-sm);
  --cnx-header-height: var(--sh-r-8);
  --cnx-column-width: 25rem;
  --cnx-container-width: 72rem;
  --cnx-touch: var(--sh-touch-target-min);
  --cnx-touch-mobile: var(--sh-touch-target-tablet);

  /* Motion (kit). */
  --cnx-motion-fast: var(--sh-motion-duration-fast);
  --cnx-ease-out: var(--sh-motion-ease-out);
}
