:root,
[data-bs-theme="light"] {
  --icm-color-primary: #134391;
  --icm-color-primary-rgb: 19, 67, 145;
  --icm-color-primary-dark: #0b3477;
  --icm-color-primary-strong: #1f4e9d;
  --icm-color-primary-deep: #0c2854;
  --icm-color-primary-soft: rgba(19, 67, 145, 0.05);
  --icm-color-primary-soft-2: rgba(19, 67, 145, 0.08);
  --icm-color-primary-soft-3: rgba(19, 67, 145, 0.12);
  --icm-color-primary-soft-4: rgba(19, 67, 145, 0.14);
  --icm-color-primary-soft-5: rgba(19, 67, 145, 0.18);
  --icm-color-primary-soft-6: rgba(19, 67, 145, 0.32);
  --icm-color-primary-border-soft: rgba(61, 108, 185, 0.15);
  --icm-color-primary-shadow-soft: rgba(12, 34, 72, 0.08);
  --icm-color-primary-shadow: rgba(12, 34, 72, 0.18);
  --icm-color-primary-shadow-strong: rgba(12, 34, 72, 0.28);
  --icm-color-primary-shadow-stronger: rgba(12, 34, 72, 0.35);

  --icm-color-accent: #94c11f;
  --icm-color-accent-rgb: 148, 193, 31;
  --icm-color-accent-dark: #7ea51a;
  --icm-color-accent-strong: #9cca12;
  --icm-color-accent-deep: #789f00;
  --icm-color-accent-soft: rgba(148, 193, 31, 0.08);
  --icm-color-accent-soft-2: rgba(148, 193, 31, 0.16);
  --icm-color-accent-soft-3: rgba(148, 193, 31, 0.18);
  --icm-color-accent-soft-4: rgba(148, 193, 31, 0.9);
  --icm-color-accent-soft-5: rgba(148, 193, 31, 0.95);

  --icm-color-secondary: #02614c;
  --icm-color-secondary-rgb: 2, 97, 76;
  --icm-color-secondary-dark: #014d3c;
  --icm-color-secondary-strong: #0f7b69;
  --icm-color-secondary-soft: rgba(2, 97, 76, 0.76);

  --icm-color-surface: #ffffff;
  --icm-color-surface-alt: #f8f8f8;
  --icm-color-surface-muted: #f2f2f2;
  --icm-color-surface-raised: #fcfcfd;
  --icm-color-surface-overlay: rgba(255, 255, 255, 0.92);
  --icm-color-surface-overlay-strong: rgba(255, 255, 255, 0.96);
  --icm-color-surface-overlay-soft: rgba(255, 255, 255, 0.14);
  --icm-color-surface-overlay-faint: rgba(255, 255, 255, 0.18);
  --icm-color-surface-blue-soft: #edf3fb;
  --icm-color-surface-blue-soft-2: #eef4fc;
  --icm-color-surface-blue-soft-3: #f4f7fb;
  --icm-color-surface-green-soft: #eff5e4;
  --icm-color-surface-green-soft-2: #f2f8df;
  --icm-color-surface-green-soft-3: #e5efc2;
  --icm-color-surface-warm: #f7f4ef;
  --icm-color-surface-warm-2: #f4f2ef;
  --icm-color-border: #d9e1ef;
  --icm-color-border-strong: #3864ab;
  --icm-color-border-soft: #d8dfeb;
  --icm-color-border-soft-2: #c7d4ea;

  --icm-color-text: #101828;
  --icm-color-text-strong: #111111;
  --icm-color-text-display: #121212;
  --icm-color-text-dark: #12161c;
  --icm-color-text-muted: #8a8f97;
  --icm-color-text-muted-2: #697384;
  --icm-color-text-muted-3: #667085;
  --icm-color-heading: #000000;
  --icm-color-inverse: #ffffff;
  --icm-color-overlay-dark: rgba(0, 0, 0, 0.1);
  --icm-color-overlay-dark-2: rgba(0, 0, 0, 0.12);
  --icm-color-overlay-dark-3: rgba(0, 0, 0, 0.18);
  --icm-color-overlay-backdrop: rgba(0, 0, 0, 0.5);

  --icm-font-sans: "Inter", "Segoe UI", Helvetica, Arial, sans-serif;
  --icm-font-weight-light: 300;
  --icm-font-weight-normal: 400;
  --icm-font-weight-medium: 500;
  --icm-font-weight-semibold: 600;
  --icm-font-weight-bold: 700;
  --icm-font-weight-extrabold: 800;
  --icm-font-weight-black: 900;

  /* Golden-ratio modular scale with quarter-steps for practical UI use. */
  --icm-font-size--4: 0.618rem;
  --icm-font-size--3: 0.697rem;
  --icm-font-size--2: 0.786rem;
  --icm-font-size--1: 0.886rem;
  --icm-font-size-0: 1rem;
  --icm-font-size-1: 1.128rem;
  --icm-font-size-2: 1.272rem;
  --icm-font-size-3: 1.436rem;
  --icm-font-size-4: 1.618rem;
  --icm-font-size-5: 1.824rem;
  --icm-font-size-6: 2.058rem;
  --icm-font-size-7: 2.321rem;
  --icm-font-size-8: 2.618rem;
  --icm-font-size-9: 2.953rem;
  --icm-font-size-10: 3.333rem;
  --icm-font-size-11: 3.761rem;
  --icm-font-size-12: 4.236rem;

  --icm-font-size-xs: var(--icm-font-size--2);
  --icm-font-size-sm: var(--icm-font-size--1);
  --icm-font-size-base: var(--icm-font-size-0);
  --icm-font-size-md: var(--icm-font-size-2);
  --icm-font-size-lg: var(--icm-font-size-4);
  --icm-font-size-xl: var(--icm-font-size-6);
  --icm-font-size-2xl: var(--icm-font-size-8);
  --icm-font-size-3xl: var(--icm-font-size-10);
  --icm-font-size-display: var(--icm-font-size-10);

  --icm-line-height-tight: 1.2;
  --icm-line-height-base: 1.55;
  --icm-line-height-copy: 1.7;

  --icm-radius-sm: 0.3125rem;
  --icm-radius-md: 0.625rem;
  --icm-radius-lg: 1.375rem;
  --icm-radius-xl: 2.1875rem;
  --icm-radius-pill: 12.5rem;

  --icm-shadow-card: 0 0.25rem 1.25rem rgba(0, 0, 0, 0.1);
  --icm-shadow-card-hover: 0 0.75rem 2rem rgba(19, 67, 145, 0.12);
  --icm-shadow-surface-sm: 0 0.0625rem 0.125rem rgba(12, 34, 72, 0.04);
  --icm-shadow-surface-md: 0 0.625rem 1.5rem rgba(0, 0, 0, 0.12);
  --icm-shadow-surface-lg: 0 1.375rem 2.75rem rgba(16, 33, 62, 0.16);
  --icm-shadow-float-sm: 0 0.75rem 1.75rem -1.2rem rgba(12, 34, 72, 0.22);
  --icm-shadow-float-md: 0 1rem 2.2rem -1.5rem rgba(12, 34, 72, 0.28);
  --icm-shadow-float-lg: 0 1.25rem 2.5rem -1.75rem rgba(12, 34, 72, 0.34);
  --icm-shadow-float-xl: 0 1rem 2rem -1.4rem rgba(12, 34, 72, 0.35);
  --icm-shadow-chip: 0 0.5rem 1rem rgba(31, 78, 157, 0.14);
  --icm-shadow-chip-soft: 0 0.5rem 1rem rgba(31, 78, 157, 0.12);
  --icm-shadow-inset-light: inset 0 0 0 0.0625rem rgba(255, 255, 255, 0.7);
  --icm-shadow-inset-light-soft: inset 0 0 0 0.0625rem rgba(255, 255, 255, 0.35);
  --icm-shadow-inset-light-strong: inset 0 0 0 0.0625rem rgba(255, 255, 255, 0.22);
  --icm-shadow-inset-primary: inset 0 0 0 0.0625rem rgba(31, 78, 157, 0.12);
  --icm-shadow-panel: 0 1rem 2rem rgba(12, 34, 72, 0.08);
  --icm-shadow-focus-surface: 0 0 0 0.25rem rgba(148, 193, 31, 0.16), var(--icm-shadow-surface-sm);
  --icm-shadow-hero-card: 0 1.25rem 2.75rem rgba(0, 0, 0, 0.2);
  --icm-shadow-hero-card-soft: 0 1.375rem 2.5rem rgba(0, 0, 0, 0.12);
  --icm-shadow-hero-card-strong: 0 1.875rem 4.375rem rgba(0, 0, 0, 0.38);
  --icm-shadow-accent: 0 0.625rem 1.375rem rgba(156, 202, 18, 0.28);
  --icm-shadow-focus: 0 0 0 0.25rem rgba(148, 193, 31, 0.25);

  --icm-space-1: 0.25rem;
  --icm-space-2: 0.5rem;
  --icm-space-3: 0.75rem;
  --icm-space-4: 1rem;
  --icm-space-5: 1.25rem;
  --icm-space-6: 1.5rem;
  --icm-space-7: 2rem;
  --icm-space-8: 2.5rem;
  --icm-space-9: 3rem;
  --icm-space-10: 4rem;

  --icm-button-gap-sm: 0.5rem;
  --icm-button-gap-md: 0.625rem;
  --icm-button-gap-lg: 0.75rem;
  --icm-button-height-xs: 2rem;
  --icm-button-height-sm: 2.5625rem;
  --icm-button-height-md: 3.25rem;
  --icm-button-height-lg: 3.5rem;
  --icm-button-height-xl: 3.75rem;
  --icm-button-padding-y-xs: 0.3rem;
  --icm-button-padding-y-sm: 0.625rem;
  --icm-button-padding-y-md: 0.875rem;
  --icm-button-padding-y-lg: 0.95rem;
  --icm-button-padding-x-xs: 0.875rem;
  --icm-button-padding-x-sm: 1.25rem;
  --icm-button-padding-x-md: 1.375rem;
  --icm-button-padding-x-lg: 1.5rem;
  --icm-button-padding-x-xl: 1.75rem;
  --icm-button-icon-size-md: 3rem;

  --bs-blue: var(--icm-color-primary);
  --bs-primary: var(--icm-color-primary);
  --bs-primary-rgb: var(--icm-color-primary-rgb);
  --bs-primary-text-emphasis: var(--icm-color-primary-dark);
  --bs-primary-bg-subtle: var(--icm-color-primary-soft);
  --bs-primary-border-subtle: var(--icm-color-primary-soft-5);

  --bs-success: var(--icm-color-secondary);
  --bs-success-rgb: var(--icm-color-secondary-rgb);
  --bs-success-text-emphasis: var(--icm-color-secondary-dark);
  --bs-success-bg-subtle: rgba(2, 97, 76, 0.08);
  --bs-success-border-subtle: rgba(2, 97, 76, 0.18);

  --bs-warning: var(--icm-color-accent);
  --bs-warning-rgb: var(--icm-color-accent-rgb);
  --bs-warning-text-emphasis: #4a6108;
  --bs-warning-bg-subtle: rgba(148, 193, 31, 0.14);
  --bs-warning-border-subtle: rgba(148, 193, 31, 0.24);

  --bs-body-font-family: var(--icm-font-sans);
  --bs-body-font-size: var(--icm-font-size-base);
  --bs-body-font-weight: var(--icm-font-weight-normal);
  --bs-body-line-height: var(--icm-line-height-base);
  --bs-body-color: var(--icm-color-text);
  --bs-body-color-rgb: 16, 24, 40;
  --bs-body-bg: var(--icm-color-surface);
  --bs-body-bg-rgb: 255, 255, 255;

  --bs-heading-color: var(--icm-color-heading);
  --bs-secondary-color: var(--icm-color-text-muted);
  --bs-secondary-color-rgb: 138, 143, 151;
  --bs-tertiary-bg: var(--icm-color-surface-alt);
  --bs-tertiary-bg-rgb: 248, 248, 248;

  --bs-link-color: var(--icm-color-primary);
  --bs-link-color-rgb: var(--icm-color-primary-rgb);
  --bs-link-hover-color: var(--icm-color-secondary);
  --bs-link-hover-color-rgb: var(--icm-color-secondary-rgb);

  --bs-border-color: var(--icm-color-border);
  --bs-border-color-translucent: var(--icm-color-primary-soft-3);
  --bs-border-radius: var(--icm-radius-md);
  --bs-border-radius-sm: var(--icm-radius-sm);
  --bs-border-radius-lg: var(--icm-radius-lg);
  --bs-border-radius-xl: var(--icm-radius-xl);
  --bs-border-radius-pill: var(--icm-radius-pill);

  --bs-box-shadow: var(--icm-shadow-card);
  --bs-box-shadow-sm: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.08);
  --bs-box-shadow-lg: var(--icm-shadow-card-hover);
  --bs-focus-ring-color: rgba(148, 193, 31, 0.25);
  --bs-focus-ring-width: 0.25rem;

  --bs-card-border-color: transparent;
  --bs-card-border-radius: var(--icm-radius-lg);
  --bs-card-box-shadow: var(--icm-shadow-card);
  --bs-card-cap-bg: var(--icm-color-surface);
  --bs-card-bg: var(--icm-color-surface);

  --bs-btn-padding-y: var(--icm-button-padding-y-md);
  --bs-btn-padding-x: var(--icm-button-padding-x-sm);
  --bs-btn-font-family: var(--icm-font-sans);
  --bs-btn-font-size: var(--icm-font-size-xs);
  --bs-btn-font-weight: var(--icm-font-weight-semibold);
  --bs-btn-line-height: 1.2;
  --bs-btn-border-radius: var(--icm-radius-pill);
  --bs-btn-focus-box-shadow: var(--icm-shadow-focus);

  --bs-form-control-border-color: var(--icm-color-border-strong);
  --bs-form-control-border-radius: var(--icm-radius-sm);
  --bs-form-control-focus-border-color: var(--icm-color-accent);
  --bs-form-control-focus-box-shadow: var(--icm-shadow-focus);
  --bs-form-select-border-radius: var(--icm-radius-sm);
  --bs-input-border-radius: var(--icm-radius-sm);

  --bs-accordion-bg: var(--icm-color-surface);
  --bs-accordion-border-color: transparent;
  --bs-accordion-border-radius: var(--icm-radius-md);
  --bs-accordion-btn-focus-box-shadow: var(--icm-shadow-focus);
  --bs-accordion-active-bg: var(--icm-color-surface);
  --bs-accordion-active-color: var(--icm-color-primary);

  --bs-nav-pills-border-radius: var(--icm-radius-md);
  --bs-nav-pills-link-active-bg: var(--icm-color-primary);
  --bs-nav-pills-link-active-color: var(--icm-color-inverse);

  --bs-pagination-active-bg: var(--icm-color-primary);
  --bs-pagination-active-border-color: var(--icm-color-primary);
  --bs-pagination-color: var(--icm-color-primary);
  --bs-pagination-hover-color: var(--icm-color-secondary);

  --bs-badge-padding-x: 0.875em;
  --bs-badge-padding-y: 0.5em;
  --bs-badge-font-size: var(--icm-font-size--2);
  --bs-badge-font-weight: var(--icm-font-weight-semibold);
  --bs-badge-border-radius: var(--icm-radius-pill);
}

[data-bs-theme="dark"] {
  --bs-body-bg: #0b1630;
  --bs-body-bg-rgb: 11, 22, 48;
  --bs-body-color: #edf2f9;
  --bs-body-color-rgb: 237, 242, 249;
  --bs-heading-color: #ffffff;
  --bs-secondary-color: rgba(237, 242, 249, 0.75);
  --bs-secondary-bg: #13346f;
  --bs-tertiary-bg: #0f244d;
  --bs-border-color: rgba(255, 255, 255, 0.14);
  --bs-card-bg: #102750;
  --bs-card-cap-bg: #102750;
  --bs-accordion-bg: #102750;
  --bs-accordion-active-bg: #13346f;
  --bs-link-color: #b8d86b;
  --bs-link-hover-color: #d6ea9d;
}

@media (max-width: 991.98px) {
  :root,
  [data-bs-theme="light"] {
    --icm-font-size-9: 2.75rem;
    --icm-font-size-10: 3.062rem;
    --icm-font-size-11: 3.438rem;
    --icm-font-size-12: 3.85rem;
    --icm-line-height-tight: 1.12;
    --icm-line-height-base: 1.6;
    --icm-line-height-copy: 1.72;
  }
}

@media (max-width: 767.98px) {
  :root,
  [data-bs-theme="light"] {
    --icm-font-size-6: 1.942rem;
    --icm-font-size-7: 2.185rem;
    --icm-font-size-8: 2.458rem;
    --icm-font-size-9: 2.764rem;
    --icm-font-size-10: 3.108rem;
    --icm-font-size-11: 3.495rem;
    --icm-font-size-12: 3.932rem;
    --icm-line-height-tight: 1.14;
    --icm-line-height-base: 1.62;
    --icm-line-height-copy: 1.76;
    --icm-button-height-md: 3.125rem;
    --icm-button-height-lg: 3.375rem;
    --icm-button-height-xl: 3.5rem;
    --icm-button-padding-y-md: 0.8125rem;
    --icm-button-padding-y-lg: 0.875rem;
    --icm-button-padding-x-md: 1.25rem;
    --icm-button-padding-x-lg: 1.375rem;
  }
}
