/* RM Funds design tokens — refreshed (modern/minimal pass). Original: docs/02-design-system.md §13 */
/* Fonts: Gesta (display, Adobe Fonts kit pxr1gsm) + Geist (UI/body, tabular figures, Google Fonts). */

:root {
  color-scheme: light;

  /* Brand ramps */
  --purple-50:#F7F4FB; --purple-100:#EEE9F5; --purple-200:#DCD4E8; --purple-300:#C3B4DB;
  --purple-400:#A08DBF; --purple-500:#7F6BA0; --purple-600:#634F82; --purple-700:#4E3B69;
  --purple-800:#3F2D58; --purple-900:#382550; --purple-950:#1A1124;
  --gold-50:#FBF6E4; --gold-100:#F6EDCF; --gold-200:#E8DAB1; --gold-300:#C8B783;
  --gold-400:#AE9E6D; --gold-500:#907F4A; --gold-600:#746226; --gold-700:#5C4B12;
  --neutral-0:#FFFFFF; --neutral-50:#F5F3F7; --neutral-100:#ECE9F0; --neutral-200:#E0DCE5;
  --neutral-300:#C6C1CC; --neutral-400:#A29CA9; --neutral-500:#7F7986; --neutral-600:#635D6B;
  --neutral-700:#4C4653; --neutral-800:#36303D; --neutral-900:#241E2B;

  /* Semantic */
  --surface-page:var(--neutral-50);       /* lilac mist */
  --surface-panel:var(--neutral-0);       /* raised paper */
  --surface-subtle:#EFECF3;
  --surface-muted:var(--neutral-100);
  --surface-brand:var(--purple-900);
  --surface-brand-deep:var(--purple-950); /* night */
  --surface-highlight:var(--gold-50);
  --text-strong:#1E1528;
  --text-body:#3A3342;
  --text-muted:#6B6575;
  --text-on-brand:#FFFFFF;
  --text-on-dark-muted:rgb(255 255 255 / .62);
  --text-accent-on-brand:var(--gold-300);
  --text-accent-on-light:var(--gold-700);
  --link:var(--purple-900);
  --link-hover:var(--purple-600);
  --border-subtle:rgb(30 21 40 / .09);
  --border-mid:rgb(30 21 40 / .16);
  --border-strong:rgb(30 21 40 / .32);
  --border-on-dark:rgb(255 255 255 / .12);
  --rule-accent:var(--gold-300);
  --focus-ring-light:var(--purple-900);
  --focus-ring-dark:var(--gold-300);

  /* Status / finance */
  --positive:#1B7A43; --negative:#B42318; --warning:#8F5600; --info:#3E5C9A;
  --positive-tint:#E6F2EA; --warning-tint:#F7EEDC; --info-tint:#E9EEF7;

  /* Data viz */
  --series-1:#5E40A0; --series-2:#D9A21B; --series-3:#00968A;
  --series-4:#2F6FD0; --series-5:#D2547E; --series-6:#8C8A00; --series-benchmark:#817F84;

  /* Type */
  --font-display:"gesta","Segoe UI",system-ui,sans-serif;
  --font-body:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --fs-display:clamp(2.5rem,1.6rem + 3.8vw,5rem);
  --fs-h1:clamp(2.25rem,1.6rem + 2.6vw,3.75rem);
  --fs-h2:clamp(1.875rem,1.4rem + 1.8vw,2.875rem);
  --fs-h3:clamp(1.375rem,1.2rem + .7vw,1.75rem);
  --fs-h4:1.1875rem;
  --fs-label:.9375rem;
  --fs-figure-xl:clamp(2.25rem,1.7rem + 2vw,3.5rem);
  --fs-body-lg:1.1875rem;
  --fs-body:1.0625rem;
  --fs-body-sm:.9375rem;
  --fs-caption:.8125rem;
  --fs-as-at:.8125rem;
  --measure:68ch;

  /* Space (4px base) */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px; --space-6:32px;
  --space-7:40px; --space-8:48px; --space-9:64px; --space-10:80px; --space-11:96px; --space-12:128px;
  --section-y:clamp(80px,10vw,152px);
  --section-y-tight:clamp(56px,6vw,96px); /* content-dense sections */
  --panel-gap:clamp(32px,3.5vw,56px);     /* between stacked inset panels */
  --page-x:clamp(16px,4vw,48px);
  --inset:clamp(8px,1.2vw,16px);          /* gap between viewport edge and inset panels */
  --container:1280px;
  --header-h:88px;

  /* Shape & depth — radius scales with hierarchy */
  --radius-1:4px;     /* chips, small controls */
  --radius-2:8px;     /* inputs, tiles, menus */
  --radius-3:12px;    /* media, cards */
  --radius-4:16px;    /* section-scale inset panels */
  --radius-pill:999px;
  --shadow-1:0 1px 2px rgb(30 21 40 / .05),0 8px 28px rgb(30 21 40 / .07);
  --shadow-2:0 2px 6px rgb(30 21 40 / .06),0 30px 80px rgb(30 21 40 / .18);
  --z-dropdown:100; --z-sticky:200; --z-overlay:300; --z-modal:400; --z-toast:500; --z-tooltip:600;

  /* Motion */
  --dur-1:140ms; --dur-2:220ms; --dur-3:360ms; --dur-4:600ms; --dur-5:900ms;
  --ease-out:cubic-bezier(.25,1,.5,1);
  --ease-out-expo:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
}

@media (max-width: 767px) {
  :root { --header-h:68px; }
}

@media (prefers-reduced-motion: reduce) {
  :root { --dur-1:0ms; --dur-2:0ms; --dur-3:120ms; --dur-4:0ms; --dur-5:0ms; }
}
