/* GENERATED by tools/build_design_tokens.py from design-system/tokens.json - do not hand-edit; edit the tokens and re-run. */

@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('fonts/SourceSans3VF-Upright.ttf.woff2') format('woff2');
}
@font-face {
  font-family: 'Source Sans Pro';
  font-style: italic;
  font-weight: 200 900;
  font-display: swap;
  src: url('fonts/SourceSans3VF-Italic.ttf.woff2') format('woff2');
}

:root {

  /* color / brand */
  --ncdpi-brand-primary: #092940;
  --ncdpi-brand-secondary-dark: #3B75A9;
  --ncdpi-brand-secondary: #1E79C8;
  --ncdpi-brand-secondary-bright: #3892E1;
  --ncdpi-brand-secondary-light: #EEF7FF;
  --ncdpi-brand-accent: #CF1F42;
  --ncdpi-brand-accent-dark: #BC2442;
  --ncdpi-brand-accent-light: #FFE9EE;
  --ncdpi-brand-white: #FFFFFF;

  /* color / gray */
  --ncdpi-gray-1: #FAF9F9;
  --ncdpi-gray-2: #F3F3F1;
  --ncdpi-gray-5: #E9E9E7;
  --ncdpi-gray-10: #DBDAD6;
  --ncdpi-gray-20: #C2C0BA;
  --ncdpi-gray-30: #A8A59D;
  --ncdpi-gray-40: #8A867C;
  --ncdpi-gray-50: #7A756C;
  --ncdpi-gray-60: #615D56;
  --ncdpi-gray-70: #48453F;
  --ncdpi-gray-80: #32302D;
  --ncdpi-gray-90: #1B1A18;

  /* color / semantic */
  --ncdpi-surface: #FAF9F9;
  --ncdpi-on-surface: #1B1A18;
  --ncdpi-surface-raised: #FFFFFF;
  --ncdpi-on-surface-raised: #1B1A18;
  --ncdpi-surface-sunken: #F3F3F1;
  --ncdpi-on-surface-sunken: #1B1A18;
  --ncdpi-surface-brand: #092940;
  --ncdpi-on-surface-brand: #FFFFFF;
  --ncdpi-surface-info: #EEF7FF;
  --ncdpi-on-surface-info: #092940;
  --ncdpi-surface-accent: #FFE9EE;
  --ncdpi-on-surface-accent: #BC2442;
  --ncdpi-accent: #BC2442;
  --ncdpi-on-accent: #FFFFFF;
  --ncdpi-danger: #BC2442;
  --ncdpi-on-danger: #FFFFFF;
  --ncdpi-action: #092940;
  --ncdpi-on-action: #FFFFFF;
  --ncdpi-action-hover: #3B75A9;
  --ncdpi-text-primary: #1B1A18;
  --ncdpi-text-secondary: #615D56;
  --ncdpi-text-heading: #092940;
  /* LOCAL DEVIATION from the design system, 2026-08-27 (family sweep 2, S2.19).
     Upstream ships #3B75A9, which measures 4.39:1 against --ncdpi-surface-sunken
     (#F3F3F1) and so fails the WCAG 1.4.3 floor of 4.5:1 for normal-size text.
     Every app paints surface-sunken on <body> (2026-08-24 design consult), and
     puts links plus .ncdpi-btn--quiet/--secondary straight onto it, so the whole
     family inherited the failure. #356A99 measures 5.15:1 there and 5.72:1 on
     white. Nothing consumes --ncdpi-link on a dark surface, so darkening is safe
     everywhere; .ncdpi-btn--secondary uses it for ink AND border, so one change
     fixes both halves.
     THIS MUST GO UPSTREAM into ncdpi-data-visualization. Until it does, a verbatim
     file swap will silently revert it -- which is why check_link_contrast.py exists
     and fails if this value comes back. Delete this note once upstream carries it. */
  --ncdpi-link: #356A99;
  --ncdpi-link-hover: #092940;
  --ncdpi-border-subtle: #DBDAD6;
  --ncdpi-border-strong: #8A867C;
  --ncdpi-focus: #3892E1;

  /* font / family */
  --ncdpi-font-ui: 'Source Sans Pro', 'Source Sans 3', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --ncdpi-font-chart: Arial, Helvetica, sans-serif;

  /* font / weight */
  --ncdpi-weight-regular: 400;
  --ncdpi-weight-semibold: 600;
  --ncdpi-weight-bold: 700;

  /* type / size */
  --ncdpi-size-h1: 42px;
  --ncdpi-size-h2: 36px;
  --ncdpi-size-h3: 28px;
  --ncdpi-size-h4: 24px;
  --ncdpi-size-h5: 21px;
  --ncdpi-size-h6: 18px;
  --ncdpi-size-body: 18px;
  --ncdpi-size-small: 16px;

  /* type / line-height */
  --ncdpi-leading-heading: 1.2;
  --ncdpi-leading-body: 1.667;
  --ncdpi-leading-small: 1.5;

  /* space / 2xs */
  --ncdpi-space-2xs: 4px;

  /* space / xs */
  --ncdpi-space-xs: 8px;

  /* space / sm */
  --ncdpi-space-sm: 16px;

  /* space / md */
  --ncdpi-space-md: 24px;

  /* space / lg */
  --ncdpi-space-lg: 32px;

  /* space / xl */
  --ncdpi-space-xl: 48px;

  /* space / 2xl */
  --ncdpi-space-2xl: 64px;

  /* radius / sm */
  --ncdpi-radius-sm: 4px;

  /* radius / md */
  --ncdpi-radius-md: 6px;

  /* radius / lg */
  --ncdpi-radius-lg: 8px;

  /* shadow / raised */
  --ncdpi-shadow-raised: 0px 1px 3px 0px rgba(9, 41, 64, 0.10), 0px 1px 2px 0px rgba(9, 41, 64, 0.07);

  /* shadow / overlay */
  --ncdpi-shadow-overlay: 0px 4px 16px 0px rgba(9, 41, 64, 0.16);

  /* chart palettes - read-only feed from site/theme/color-data.json (built by build_vega_theme.py); charts themselves keep using that pipeline directly (D2) */
  --ncdpi-chart-background-chart-background: #FFFFFF;
  --ncdpi-chart-diverging-3-steps-step-minus-1: #B33A12;
  --ncdpi-chart-diverging-3-steps-step-0: #DEDEDE;
  --ncdpi-chart-diverging-3-steps-step-plus-1: #077890;
  --ncdpi-chart-diverging-5-steps-step-minus-2: #B33A12;
  --ncdpi-chart-diverging-5-steps-step-minus-1: #C88C78;
  --ncdpi-chart-diverging-5-steps-step-0: #DEDEDE;
  --ncdpi-chart-diverging-5-steps-step-plus-1: #86A4AE;
  --ncdpi-chart-diverging-5-steps-step-plus-2: #077890;
  --ncdpi-chart-diverging-7-steps-step-minus-3: #B33A12;
  --ncdpi-chart-diverging-7-steps-step-minus-2: #C26F54;
  --ncdpi-chart-diverging-7-steps-step-minus-1: #D1BCB5;
  --ncdpi-chart-diverging-7-steps-step-0: #DEDEDE;
  --ncdpi-chart-diverging-7-steps-step-plus-1: #B9C4C7;
  --ncdpi-chart-diverging-7-steps-step-plus-2: #6593A1;
  --ncdpi-chart-diverging-7-steps-step-plus-3: #077890;
  --ncdpi-chart-diverging-9-steps-step-minus-4: #B33A12;
  --ncdpi-chart-diverging-9-steps-step-minus-3: #BE6143;
  --ncdpi-chart-diverging-9-steps-step-minus-2: #CC9F91;
  --ncdpi-chart-diverging-9-steps-step-minus-1: #D5CBC8;
  --ncdpi-chart-diverging-9-steps-step-0: #DEDEDE;
  --ncdpi-chart-diverging-9-steps-step-plus-1: #CACFD1;
  --ncdpi-chart-diverging-9-steps-step-plus-2: #9AB0B7;
  --ncdpi-chart-diverging-9-steps-step-plus-3: #548B9C;
  --ncdpi-chart-diverging-9-steps-step-plus-4: #077890;
  --ncdpi-chart-diverging-continuous-begin: #B33A12;
  --ncdpi-chart-diverging-continuous-mid: #DEDEDE;
  --ncdpi-chart-diverging-continuous-end: #077890;
  --ncdpi-chart-groups-2-cat-1: #5085BC;
  --ncdpi-chart-groups-2-cat-2: #FF9015;
  --ncdpi-chart-groups-2-total-avg: #003A70;
  --ncdpi-chart-groups-3-cat-1: #5085BC;
  --ncdpi-chart-groups-3-cat-2: #FF9015;
  --ncdpi-chart-groups-3-cat-3: #922880;
  --ncdpi-chart-groups-3-total-avg: #003A70;
  --ncdpi-chart-groups-4-cat-1: #5085BC;
  --ncdpi-chart-groups-4-cat-2: #FF9015;
  --ncdpi-chart-groups-4-cat-3: #922880;
  --ncdpi-chart-groups-4-cat-4: #3D803F;
  --ncdpi-chart-groups-4-total-avg: #003A70;
  --ncdpi-chart-groups-5-cat-1: #5085BC;
  --ncdpi-chart-groups-5-cat-2: #FF9015;
  --ncdpi-chart-groups-5-cat-3: #922880;
  --ncdpi-chart-groups-5-cat-4: #3D803F;
  --ncdpi-chart-groups-5-cat-5: #D3B10B;
  --ncdpi-chart-groups-5-total-avg: #003A70;
  --ncdpi-chart-groups-6-cat-1: #5085BC;
  --ncdpi-chart-groups-6-cat-2: #FF9015;
  --ncdpi-chart-groups-6-cat-3: #922880;
  --ncdpi-chart-groups-6-cat-4: #3D803F;
  --ncdpi-chart-groups-6-cat-5: #D3B10B;
  --ncdpi-chart-groups-6-cat-6: #BE7EB3;
  --ncdpi-chart-groups-6-total-avg: #003A70;
  --ncdpi-chart-chart-elements-axis-ruler: #525A60;
  --ncdpi-chart-chart-elements-dividers: #DEDEDE;
  --ncdpi-chart-chart-elements-gridlines: #DEDEDE;
  --ncdpi-chart-chart-elements-reference-lines: #003A70;
  --ncdpi-chart-data-highlight-neutral-bar-line: #B7B9BB;
  --ncdpi-chart-data-highlight-highlighted-bar-line: #003A70;
  --ncdpi-chart-data-highlight-bar-line-is-best: #077890;
  --ncdpi-chart-data-highlight-bar-line-is-worst: #B33A12;
  --ncdpi-chart-sequence-to-bad-worst-step-1: #B33A12;
  --ncdpi-chart-sequence-to-bad-2-steps-step-1: #DC8F76;
  --ncdpi-chart-sequence-to-bad-2-steps-step-2: #B33A12;
  --ncdpi-chart-sequence-to-bad-3-steps-step-1: #E2A996;
  --ncdpi-chart-sequence-to-bad-3-steps-step-2: #D37355;
  --ncdpi-chart-sequence-to-bad-3-steps-step-3: #B33A12;
  --ncdpi-chart-sequence-to-bad-4-steps-step-1: #E3B6A8;
  --ncdpi-chart-sequence-to-bad-4-steps-step-2: #DC8F76;
  --ncdpi-chart-sequence-to-bad-4-steps-step-3: #CD6544;
  --ncdpi-chart-sequence-to-bad-4-steps-step-4: #B33A12;
  --ncdpi-chart-sequence-to-bad-5-steps-step-1: #E4BEB2;
  --ncdpi-chart-sequence-to-bad-5-steps-step-2: #E09F89;
  --ncdpi-chart-sequence-to-bad-5-steps-step-3: #D77F62;
  --ncdpi-chart-sequence-to-bad-5-steps-step-4: #C85D3A;
  --ncdpi-chart-sequence-to-bad-5-steps-step-5: #B33A12;
  --ncdpi-chart-sequence-to-bad-continuous-begin: #DEDEDE;
  --ncdpi-chart-sequence-to-bad-continuous-end: #B33A12;
  --ncdpi-chart-sequence-to-good-best-step-1: #077890;
  --ncdpi-chart-sequence-to-good-2-steps-step-1: #8BAEB9;
  --ncdpi-chart-sequence-to-good-2-steps-step-2: #077890;
  --ncdpi-chart-sequence-to-good-3-steps-step-1: #A9BEC6;
  --ncdpi-chart-sequence-to-good-3-steps-step-2: #6D9CAC;
  --ncdpi-chart-sequence-to-good-3-steps-step-3: #077890;
  --ncdpi-chart-sequence-to-good-4-steps-step-1: #B6C6CC;
  --ncdpi-chart-sequence-to-good-4-steps-step-2: #8BAEB9;
  --ncdpi-chart-sequence-to-good-4-steps-step-3: #5C93A6;
  --ncdpi-chart-sequence-to-good-4-steps-step-4: #077890;
  --ncdpi-chart-sequence-to-good-5-steps-step-1: #BECBCF;
  --ncdpi-chart-sequence-to-good-5-steps-step-2: #9DB8C1;
  --ncdpi-chart-sequence-to-good-5-steps-step-3: #7AA3B1;
  --ncdpi-chart-sequence-to-good-5-steps-step-4: #508EA2;
  --ncdpi-chart-sequence-to-good-5-steps-step-5: #077890;
  --ncdpi-chart-sequence-to-good-continuous-begin: #DEDEDE;
  --ncdpi-chart-sequence-to-good-continuous-end: #077890;
  --ncdpi-chart-sequence-to-neutral-2-steps-step-1: #9CB0CD;
  --ncdpi-chart-sequence-to-neutral-2-steps-step-2: #5085BC;
  --ncdpi-chart-sequence-to-neutral-3-steps-step-1: #B2BFD3;
  --ncdpi-chart-sequence-to-neutral-3-steps-step-2: #85A2C8;
  --ncdpi-chart-sequence-to-neutral-3-steps-step-3: #5085BC;
  --ncdpi-chart-sequence-to-neutral-4-steps-step-1: #BDC7D6;
  --ncdpi-chart-sequence-to-neutral-4-steps-step-2: #9CB0CD;
  --ncdpi-chart-sequence-to-neutral-4-steps-step-3: #799AC5;
  --ncdpi-chart-sequence-to-neutral-4-steps-step-4: #5085BC;
  --ncdpi-chart-sequence-to-neutral-5-steps-step-1: #C4CBD7;
  --ncdpi-chart-sequence-to-neutral-5-steps-step-2: #A9B9D1;
  --ncdpi-chart-sequence-to-neutral-5-steps-step-3: #8EA7CA;
  --ncdpi-chart-sequence-to-neutral-5-steps-step-4: #7196C3;
  --ncdpi-chart-sequence-to-neutral-5-steps-step-5: #5085BC;
  --ncdpi-chart-sequence-to-neutral-continuous-begin: #DEDEDE;
  --ncdpi-chart-sequence-to-neutral-continuous-end: #5085BC;
  --ncdpi-chart-text-annotation: #842175;
  --ncdpi-chart-text-axis-label: #000000;
  --ncdpi-chart-text-axis-value: #525A60;
  --ncdpi-chart-text-chart-note: #525A60;
  --ncdpi-chart-text-chart-subtitle: #525A60;
  --ncdpi-chart-text-chart-title: #000000;
  --ncdpi-chart-text-data-label: #000000;
  --ncdpi-chart-text-control-header: #525A60;
  --ncdpi-chart-text-dashboard-body-text: #000000;
  --ncdpi-chart-text-dashboard-help-text: #006174;
  --ncdpi-chart-text-dashboard-subtitle: #525A60;
  --ncdpi-chart-text-dashboard-title: #003A70;
  --ncdpi-chart-text-selected-control: #111827;
  --ncdpi-chart-text-unselected-control: #525A60;
  --ncdpi-chart-background-control-or-filter-background: #FFFFFF;
  --ncdpi-chart-background-general-background: #FFFFFF;
}
