/* =================================================================
   Plenary — Brand Tokens
   Same variable contract as generic-tokens.css. Swap this file in
   place of generic-tokens.css to apply the Plenary brand.
   Brand character: plain, calm, credible. Restraint is the brand.
   Accent = considered indigo; near-ink headings; cool-slate neutrals.
   Typeface: Schibsted Grotesk (display) + Instrument Sans (body).
   ================================================================= */

:root {
  /* ---------- Accent palette (indigo) ---------- */
  --c-primary:        #4338CA;   /* accent — main interactive color */
  --c-primary-hover:  #3730A3;   /* hover / pressed */
  --c-primary-deep:   #14152B;   /* headings, bars, body ink (indigo-tinted near-black) */
  --c-primary-200:    #C7D2FE;   /* accent tint — active chip */
  --c-primary-100:    #E7E9FE;   /* accent surface tint, focus ring */

  /* ---------- Status ---------- */
  --c-success:        #17886A;   /* delivered / reached */
  --c-warning:        #B7791F;
  --c-danger:         #DC4B4B;
  --c-danger-soft:    #E97070;

  /* ---------- Neutrals (cool slate) ---------- */
  --c-white:          #FFFFFF;
  --c-gray-50:        #F7F8FB;
  --c-gray-100:       #EFF1F6;   /* app surface */
  --c-gray-200:       #E1E4EC;   /* borders, dividers */
  --c-gray-300:       #C6CBD8;   /* disabled fill */
  --c-gray-500:       #646C82;   /* muted label */
  --c-gray-800:       #333A4C;
  --c-ink:            #14152B;
  --c-black:          #000000;

  /* ---------- Surfaces (semantic) ---------- */
  --surface-app:      var(--c-gray-100);
  --surface-card:     var(--c-white);
  --surface-raised:   var(--c-white);
  --surface-sunken:   var(--c-gray-50);

  /* ---------- Text (semantic) ---------- */
  --text-primary:     var(--c-ink);
  --text-secondary:   var(--c-gray-500);
  --text-onbrand:     var(--c-white);
  --text-link:        var(--c-primary);
  --text-danger:      var(--c-danger);

  /* ---------- Border (semantic) ---------- */
  --border-subtle:    var(--c-gray-200);
  --border-strong:    var(--c-primary);
  --border-danger:    var(--c-danger);
  --border-divider:   var(--c-gray-200);

  /* ---------- Typography ---------- */
  --font-display: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-body:    "Instrument Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Scale (px) */
  --fs-h1: 56px;   --lh-h1: 1.1;
  --fs-h2: 40px;   --lh-h2: 1.15;
  --fs-h3: 32px;   --lh-h3: 1.2;
  --fs-h4: 28px;   --lh-h4: 1.25;
  --fs-h5: 24px;   --lh-h5: 1.3;
  --fs-h6: 20px;   --lh-h6: 1.35;
  --fs-h7: 18px;   --lh-h7: 1.4;
  --fs-body:   16px;  --lh-body:   1.5;
  --fs-label:  14px;  --lh-label:  1;
  --fs-cap-13: 13px;
  --fs-cap-12: 12px;
  --fs-cap-10: 10px;

  --fw-regular: 400;
  --fw-semibold: 600;
  --fw-bold: 700;

  --track-eyebrow: 0.12em;

  /* ---------- Spacing (4px scale) ---------- */
  --s-1: 4px;   --s-2: 8px;   --s-3: 12px;  --s-4: 16px;  --s-5: 20px;
  --s-6: 24px;  --s-7: 32px;  --s-8: 40px;  --s-9: 48px;  --s-10: 64px;

  /* ---------- Radii (crisp, credible) ---------- */
  --r-sm:   6px;
  --r-md:   10px;
  --r-lg:   14px;
  --r-pill: 8px;
  --r-full: 9999px;

  /* ---------- Elevation ---------- */
  --shadow-1: 0 1px 2px rgba(20, 21, 43, 0.06);
  --shadow-2: 0 4px 14px rgba(20, 21, 43, 0.10);
  --shadow-focus: 0 0 0 4px rgba(67, 56, 202, 0.20);

  /* ---------- Motion ---------- */
  --dur-fast: 120ms;
  --dur-base: 180ms;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);

  /* ---------- Sizing ---------- */
  --control-h-m: 44px;
  --control-h-s: 36px;
  --container:   1200px;
}

html { color: var(--text-primary); }
body { font-family: var(--font-body); font-weight: var(--fw-regular); }
