/**
 * Bootstrap theme mapped to company variables
 * 
 * Auto-generated helper: maps Bootstrap CSS variables (--bs-*) to the
 * company's design tokens (defined in masterbrand.css and common.css).
 *
 * Usage:
 * - Ensure your site's root has the `.masterbrand.light` / `.masterbrand.dark`
 *   classes (or import this file after `masterbrand.css`).
 * - Alternatively the mapping also targets `[data-bs-theme="light"]` and
 *   `[data-bs-theme="dark"]` so it works with Bootstrap's theme attribute.
 */

/* Light theme mapping -----------------------------------------------------*/
.masterbrand.light,
:root,
[data-bs-theme="light"] {
  /* core colour palette */
  --bs-primary: var(--color-dominant-base-default);
  --bs-secondary: var(--color-neutral-text-default);
  --bs-success: var(--color-success-base-default);
  --bs-info: var(--color-info-base-default);
  --bs-warning: var(--color-warning-base-default);
  --bs-danger: var(--color-danger-base-default);
  --bs-light: var(--color-neutral-background-default);
  --bs-dark: var(--color-neutral-text-default);

  /* convenience colour aliases (map Bootstrap named colours) */
  --bs-blue: var(--color-complementary-base-default);
  --bs-indigo: var(--color-accent-base-default);
  --bs-purple: var(--color-accent-base-default);
  --bs-pink: var(--color-support2-base-default);
  --bs-red: var(--color-danger-base-default);
  --bs-orange: var(--color-support3-base-default);
  --bs-yellow: var(--color-support3-base-default);
  --bs-green: var(--color-success-base-default);
  --bs-teal: var(--color-info-base-default);
  --bs-cyan: var(--color-accent-base-default);
  --bs-white: var(--color-neutral-surface-default);
  --bs-black: var(--color-neutral-text-default);

  /* grayscale (approximate using neutral tokens) */
  --bs-gray-100: var(--color-neutral-base-default);
  --bs-gray-200: var(--color-neutral-base-hover);
  --bs-gray-300: var(--color-neutral-base-active);
  --bs-gray-400: var(--color-neutral-border-subtle);
  --bs-gray-500: var(--color-neutral-border-default);
  --bs-gray-600: var(--color-neutral-border-strong);
  --bs-gray-700: var(--color-neutral-text-subtle);
  --bs-gray-800: var(--color-neutral-text-default);
  --bs-gray-900: var(--color-neutral-text-default);
  --bs-gray: var(--color-neutral-text-subtle);
  --bs-gray-dark: var(--color-neutral-text-default);

  /* RGB variants for main palette (light theme values) */
  --bs-primary-rgb: 0, 51, 102; /* #003366 (color-dominant-base-default) */
  --bs-secondary-rgb: 43, 43, 42; /* #2b2b2a (color-neutral-text-default) */
  --bs-success-rgb: 0, 128, 0; /* #008000 (color-success-base-default) */
  --bs-info-rgb: 0, 87, 149; /* #005795 (color-info-base-default) */
  --bs-warning-rgb: 224, 176, 0; /* #e0b000 (color-warning-base-default) */
  --bs-danger-rgb: 168, 27, 16; /* #a81b10 (color-danger-base-default) */
  --bs-light-rgb: 255, 255, 255; /* #ffffff (color-neutral-background-default) */
  --bs-dark-rgb: 43, 43, 42; /* #2b2b2a (color-neutral-text-default) */
  --bs-white-rgb: 255, 255, 255; /* white */
  --bs-black-rgb: 43, 43, 42; /* mapped black -> neutral text */

  /* body & foreground */
  --bs-body-color: var(--color-neutral-text-default);
  --bs-body-bg: var(--color-dominant-background-default);
  /* RGB variants (extracted from company hex tokens) */
  --bs-body-color-rgb: 43, 43, 42; /* #2b2b2a (neutral-text-default) */
  --bs-body-bg-rgb: 255, 255, 255; /* #ffffff (dominant-background-default) */

  /* link & emphasis */
  --bs-link-color: var(--color-dominant-base-default);
  --bs-link-hover-color: var(--color-dominant-base-hover);
  --bs-link-active-color: var(--color-dominant-base-active);
  --bs-emphasis-color: var(--color-neutral-text-default);
  --bs-link-color-rgb: 0, 51, 102; /* #003366 (dominant-base-default) */
  --bs-link-hover-color-rgb: 25, 71, 117; /* #194775 (dominant-base-hover) */
  --bs-emphasis-color-rgb: 43, 43, 42; /* same as body color */
  --bs-primary-text-emphasis: var(--color-dominant-text-subtle);
  --bs-secondary-text-emphasis: var(--color-neutral-text-subtle);
  --bs-success-text-emphasis: var(--color-success-text-subtle);
  --bs-info-text-emphasis: var(--color-info-text-subtle);
  --bs-warning-text-emphasis: var(--color-warning-text-subtle);
  --bs-danger-text-emphasis: var(--color-danger-text-subtle);
  --bs-light-text-emphasis: var(--color-neutral-text-subtle);
  --bs-dark-text-emphasis: var(--color-neutral-text-subtle);

  /* secondary / tertiary helpers */
  --bs-secondary-color: var(--bs-secondary);
  --bs-secondary-color-rgb: 43, 43, 42; /* neutral-text-default */
  --bs-secondary-bg: var(--color-neutral-background-tinted);
  --bs-secondary-bg-rgb: 244, 244, 240; /* #f4f4f0 */
  --bs-tertiary-color: var(--color-support1-text-default);
  --bs-tertiary-color-rgb: 88, 99, 103; /* approx #5a6367 (support1-text-default) */
  --bs-tertiary-bg: var(--color-neutral-surface-default);
  --bs-tertiary-bg-rgb: 255, 255, 255;
  --bs-link-decoration: underline;
  --bs-gradient: linear-gradient(
    180deg,
    rgba(var(--bs-white-rgb), 0.15),
    rgba(var(--bs-white-rgb), 0)
  );

  /* border/translucent helpers using RGB refs */
  --bs-border-color-translucent: rgba(var(--bs-black-rgb), 0.175);
  --bs-border-radius-xxl: var(--border-radius-xl);
  --bs-border-radius-2xl: var(--bs-border-radius-xxl);

  /* subtle / supporting colours */
  --bs-primary-bg-subtle: var(--color-dominant-base-contrast-subtle);
  --bs-secondary-bg-subtle: var(--color-neutral-background-tinted);
  --bs-success-bg-subtle: var(--color-success-base-contrast-subtle);
  --bs-info-bg-subtle: var(--color-info-base-contrast-subtle);
  --bs-warning-bg-subtle: var(--color-warning-base-contrast-subtle);
  --bs-danger-bg-subtle: var(--color-danger-base-contrast-subtle);

  --bs-primary-border-subtle: var(--color-dominant-border-subtle);
  --bs-secondary-border-subtle: var(--color-neutral-border-subtle);
  --bs-success-border-subtle: var(--color-success-border-subtle);
  --bs-info-border-subtle: var(--color-info-border-subtle);
  --bs-warning-border-subtle: var(--color-warning-border-subtle);
  --bs-danger-border-subtle: var(--color-danger-border-subtle);

  /* borders, highlights, radii */
  --bs-border-color: var(--color-neutral-border-default);
  --bs-border-width: var(--border-width-default);
  --bs-border-style: var(--bs-border-style, solid);
  --bs-border-radius: var(--border-radius-default);
  --bs-border-radius-sm: var(--border-radius-sm);
  --bs-border-radius-lg: var(--border-radius-lg);
  --bs-border-radius-xl: var(--border-radius-xl);
  --bs-border-radius-pill: var(--border-radius-full);

  /* shadows */
  --bs-box-shadow: var(--shadow-md);
  --bs-box-shadow-sm: var(--shadow-sm);
  --bs-box-shadow-lg: var(--shadow-lg);
  --bs-box-shadow-inset: var(
    --bs-box-shadow-inset,
    inset 0 1px 2px rgba(0, 0, 0, 0.075)
  );

  /* focus / forms */
  --bs-focus-ring-color: var(--color-focus-outer-default);
  --bs-focus-ring-width: var(--bs-focus-ring-width, 0.25rem);
  --bs-focus-ring-opacity: var(--bs-focus-ring-opacity, 0.25);

  --bs-form-valid-color: var(--color-success-base-default);
  --bs-form-valid-border-color: var(
    --color-success-border-default,
    var(--color-success-border-subtle)
  );
  --bs-form-invalid-color: var(--color-danger-base-default);
  --bs-form-invalid-border-color: var(
    --color-danger-border-default,
    var(--color-danger-border-subtle)
  );

  /* typography */
  --bs-font-sans-serif: var(--typography-body-default-standard-font-family);
  --bs-font-monospace: var(
    --bs-font-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    "Liberation Mono",
    "Courier New",
    monospace
  );
  --bs-body-font-family: var(--typography-body-default-standard-font-family);
  --bs-body-font-size: var(--typography-body-default-standard-font-size);
  --bs-body-font-weight: var(
    --typography-body-default-standard-font-weight,
    400
  );
  --bs-body-line-height: var(
    --typography-body-default-standard-line-height,
    1.5
  );

  /* headings & small text – fallback to masterbrand tokens where present */
  --bs-heading-color: var(
    --color-dominant-text-default,
    var(--color-neutral-text-default)
  );

  /* utility colors used by Bootstrap components */
  --bs-white: var(--color-neutral-surface-default);
  --bs-black: var(--color-neutral-text-default);
  --bs-light: var(--color-neutral-background-default);
  --bs-dark: var(--color-neutral-text-default);

  /* code / highlights */
  --bs-code-color: var(
    --color-accent-text-default,
    var(--color-support2-text-default)
  );
  --bs-highlight-color: var(--color-warning-text-default);
  --bs-highlight-bg: var(--color-warning-surface-tinted);
}

/* Dark theme mapping ------------------------------------------------------*/
.masterbrand.dark,
[data-bs-theme="dark"] {
  color-scheme: dark;

  /* core colours */
  --bs-primary: var(--color-dominant-base-default);
  --bs-secondary: var(--color-neutral-text-default);
  --bs-success: var(--color-success-base-default);
  --bs-info: var(--color-info-base-default);
  --bs-warning: var(--color-warning-base-default);
  --bs-danger: var(--color-danger-base-default);
  --bs-light: var(--color-neutral-background-default);
  --bs-dark: var(--color-neutral-text-default);

  /* convenience colour aliases (map Bootstrap named colours) */
  --bs-blue: var(--color-complementary-base-default);
  --bs-indigo: var(--color-accent-base-default);
  --bs-purple: var(--color-accent-base-default);
  --bs-pink: var(--color-support2-base-default);
  --bs-red: var(--color-danger-base-default);
  --bs-orange: var(--color-support3-base-default);
  --bs-yellow: var(--color-support3-base-default);
  --bs-green: var(--color-success-base-default);
  --bs-teal: var(--color-info-base-default);
  --bs-cyan: var(--color-accent-base-default);
  --bs-white: var(--color-neutral-surface-default);
  --bs-black: var(--color-neutral-text-default);

  /* grayscale (approximate using neutral tokens) */
  --bs-gray-100: var(--color-neutral-base-default);
  --bs-gray-200: var(--color-neutral-base-hover);
  --bs-gray-300: var(--color-neutral-base-active);
  --bs-gray-400: var(--color-neutral-border-subtle);
  --bs-gray-500: var(--color-neutral-border-default);
  --bs-gray-600: var(--color-neutral-border-strong);
  --bs-gray-700: var(--color-neutral-text-subtle);
  --bs-gray-800: var(--color-neutral-text-default);
  --bs-gray-900: var(--color-neutral-text-default);
  --bs-gray: var(--color-neutral-text-subtle);
  --bs-gray-dark: var(--color-neutral-text-default);

  /* RGB variants for main palette (dark theme values) */
  --bs-primary-rgb: 189, 222, 255; /* #bddeff (color-dominant-base-default) */
  --bs-secondary-rgb: 235, 236, 237; /* #ebeced (color-neutral-text-default) */
  --bs-success-rgb: 39, 147, 39; /* #279327 (color-success-base-default) */
  --bs-info-rgb: 28, 136, 195; /* #1c88c3 (color-info-base-default) */
  --bs-warning-rgb: 166, 124, 0; /* #a67c00 (color-warning-base-default) */
  --bs-danger-rgb: 209, 34, 28; /* #d1221c (color-danger-base-default) */
  --bs-light-rgb: 19, 24, 31; /* #13181f (color-neutral-background-default) */
  --bs-dark-rgb: 235, 236, 237; /* #ebeced (color-neutral-text-default) */
  --bs-white-rgb: 32, 40, 52; /* #202834 (neutral-surface-default) */
  --bs-black-rgb: 235, 236, 237; /* map black to neutral text in dark */

  /* emphasis tokens */
  --bs-primary-text-emphasis: var(--color-dominant-text-subtle);
  --bs-secondary-text-emphasis: var(--color-neutral-text-subtle);
  --bs-success-text-emphasis: var(--color-success-text-subtle);
  --bs-info-text-emphasis: var(--color-info-text-subtle);
  --bs-warning-text-emphasis: var(--color-warning-text-subtle);
  --bs-danger-text-emphasis: var(--color-danger-text-subtle);
  --bs-light-text-emphasis: var(--color-neutral-text-subtle);
  --bs-dark-text-emphasis: var(--color-neutral-text-subtle);

  /* secondary / tertiary helpers */
  --bs-secondary-color: var(--bs-secondary);
  --bs-secondary-color-rgb: 235, 236, 237; /* neutral-text-default */
  --bs-secondary-bg: var(--color-neutral-background-tinted);
  --bs-secondary-bg-rgb: 25, 32, 39; /* #192029 */
  --bs-tertiary-color: var(--color-support1-text-default);
  --bs-tertiary-color-rgb: 220, 240, 250; /* approx #dcf0fa (support1-text-default) */
  --bs-tertiary-bg: var(--color-neutral-surface-default);
  --bs-tertiary-bg-rgb: 32, 40, 52; /* #202834 */
  --bs-link-decoration: underline;
  --bs-gradient: linear-gradient(
    180deg,
    rgba(var(--bs-black-rgb), 0.15),
    rgba(var(--bs-black-rgb), 0)
  );

  /* border/translucent helpers using RGB refs */
  --bs-border-color-translucent: rgba(var(--bs-white-rgb), 0.15);
  --bs-border-radius-xxl: var(--border-radius-xl);
  --bs-border-radius-2xl: var(--bs-border-radius-xxl);

  /* body & foreground */
  --bs-body-color: var(--color-neutral-text-default);
  --bs-body-bg: var(--color-neutral-background-default);
  /* RGB variants (extracted from company hex tokens) */
  --bs-body-color-rgb: 235, 236, 237; /* #ebeced (neutral-text-default) */
  --bs-body-bg-rgb: 19, 24, 31; /* #13181f (neutral-background-default) */

  /* link & emphasis */
  --bs-link-color: var(--color-complementary-base-default);
  --bs-link-hover-color: var(
    --color-complementary-base-hover,
    var(--color-complementary-base-default)
  );
  --bs-emphasis-color: var(--color-neutral-text-default);
  --bs-link-color-rgb: 5, 83, 255; /* #0553ff (complementary-base-default) */
  --bs-link-hover-color-rgb: 31, 101, 255; /* #1f65ff (complementary-base-hover) */
  --bs-emphasis-color-rgb: 235, 236, 237; /* same as body color */

  /* subtle / supporting colours */
  --bs-primary-bg-subtle: var(--color-dominant-base-contrast-subtle);
  --bs-secondary-bg-subtle: var(--color-neutral-background-tinted);
  --bs-success-bg-subtle: var(--color-success-base-contrast-subtle);
  --bs-info-bg-subtle: var(--color-info-base-contrast-subtle);
  --bs-warning-bg-subtle: var(--color-warning-base-contrast-subtle);
  --bs-danger-bg-subtle: var(--color-danger-base-contrast-subtle);

  --bs-primary-border-subtle: var(--color-dominant-border-subtle);
  --bs-secondary-border-subtle: var(--color-neutral-border-subtle);
  --bs-success-border-subtle: var(--color-success-border-subtle);
  --bs-info-border-subtle: var(--color-info-border-subtle);
  --bs-warning-border-subtle: var(--color-warning-border-subtle);
  --bs-danger-border-subtle: var(--color-danger-border-subtle);

  /* borders, highlights, radii */
  --bs-border-color: var(--color-neutral-border-default);
  --bs-border-width: var(--border-width-default);
  --bs-border-style: var(--bs-border-style, solid);
  --bs-border-radius: var(--border-radius-default);

  /* shadows */
  --bs-box-shadow: var(--shadow-lg);
  --bs-box-shadow-sm: var(--shadow-sm);
  --bs-box-shadow-lg: var(--shadow-lg);

  /* focus / forms */
  --bs-focus-ring-color: var(--color-focus-outer-default);
  --bs-focus-ring-width: var(--bs-focus-ring-width, 0.25rem);
  --bs-focus-ring-opacity: var(--bs-focus-ring-opacity, 0.25);

  --bs-form-valid-color: var(--color-success-base-default);
  --bs-form-valid-border-color: var(
    --color-success-border-default,
    var(--color-success-border-subtle)
  );
  --bs-form-invalid-color: var(--color-danger-base-default);
  --bs-form-invalid-border-color: var(
    --color-danger-border-default,
    var(--color-danger-border-subtle)
  );

  /* typography */
  --bs-font-sans-serif: var(--typography-body-default-standard-font-family);
  --bs-body-font-family: var(--typography-body-default-standard-font-family);
  --bs-body-font-size: var(--typography-body-default-standard-font-size);
  --bs-body-font-weight: var(
    --typography-body-default-standard-font-weight,
    400
  );
  --bs-body-line-height: var(
    --typography-body-default-standard-line-height,
    1.5
  );

  /* utility colours used by Bootstrap components */
  --bs-white: var(--color-neutral-surface-default);
  --bs-black: var(--color-neutral-text-default);

  /* code / highlights */
  --bs-code-color: var(
    --color-accent-text-default,
    var(--color-support2-text-default)
  );
  --bs-highlight-color: var(--color-warning-text-default);
  --bs-highlight-bg: var(--color-warning-surface-tinted);
}
