/* ==========================================================================
   GENERATED — do not edit by hand.

   Source: design/palettes.json + the exports it names.
   Rebuild: venv/bin/python build_theme.py

   4 palettes x light/dark x standard/medium/high contrast.
   Selectors are [data-palette] [data-theme] [data-contrast] on <html>;
   absent means the default, so a page with no attributes still works.
   ========================================================================== */

/* Simian — light, standard contrast */
:root[data-palette="simian"][data-theme="light"]:not([data-contrast="medium"]):not([data-contrast="high"]),
:root:not([data-palette])[data-theme="light"],
:root:not([data-palette]):not([data-theme]):not([data-contrast]) {
  --md-sys-color-primary: #904A4A;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #FFDAD8;
  --md-sys-color-on-primary-container: #733334;
  --md-sys-color-secondary: #775655;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #FFDAD8;
  --md-sys-color-on-secondary-container: #5D3F3E;
  --md-sys-color-tertiary: #745A2F;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #FFDEAC;
  --md-sys-color-on-tertiary-container: #5A4319;
  --md-sys-color-error: #BA1A1A;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #FFDAD6;
  --md-sys-color-on-error-container: #93000A;
  --md-sys-color-surface: #FFF8F7;
  --md-sys-color-on-surface: #231919;
  --md-sys-color-surface-variant: #F4DDDC;
  --md-sys-color-on-surface-variant: #524342;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #FFF0EF;
  --md-sys-color-surface-container: #FCEAE9;
  --md-sys-color-surface-container-high: #F6E4E3;
  --md-sys-color-surface-container-highest: #F0DEDD;
  --md-sys-color-outline: #857372;
  --md-sys-color-outline-variant: #D7C1C0;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #382E2D;
  --md-sys-color-inverse-on-surface: #FFEDEB;
  --md-sys-color-inverse-primary: #FFB3B1;

  /* names the existing stylesheet already uses */
  --bg-main: #FFF8F7;
  --bg-card: #FCEAE9;
  --bg-card-hover: #F6E4E3;
  --text-main: #231919;
  --text-muted: #524342;
  --text-link: #904A4A;
  --accent-primary: #904A4A;
  --accent-primary-hover: #FFDAD8;
  --border-subtle: #D7C1C0;
  --border-focus: #857372;

  /* Bootstrap follows along */
  --bs-body-bg: #FFF8F7;
  --bs-body-color: #231919;
  --bs-emphasis-color: #231919;
  --bs-secondary-color: #524342;
  --bs-border-color: #D7C1C0;
  --bs-primary: #904A4A;
  --bs-link-color: #904A4A;
  --bs-link-hover-color: #FFDAD8;
  --bs-danger: #BA1A1A;
  --bs-card-bg: #FCEAE9;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #BA1A1A;
  --status-danger-bg: #FFDAD6;
}

/* Simian — light, medium contrast */
:root[data-palette="simian"][data-theme="light"][data-contrast="medium"],
:root:not([data-palette])[data-theme="light"][data-contrast="medium"] {
  --md-sys-color-primary: #5E2324;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #A15858;
  --md-sys-color-on-primary-container: #FFFFFF;
  --md-sys-color-secondary: #4A2F2E;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #876564;
  --md-sys-color-on-secondary-container: #FFFFFF;
  --md-sys-color-tertiary: #48320A;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #84693C;
  --md-sys-color-on-tertiary-container: #FFFFFF;
  --md-sys-color-error: #740006;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #CF2C27;
  --md-sys-color-on-error-container: #FFFFFF;
  --md-sys-color-surface: #FFF8F7;
  --md-sys-color-on-surface: #170F0F;
  --md-sys-color-surface-variant: #F4DDDC;
  --md-sys-color-on-surface-variant: #413332;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #FFF0EF;
  --md-sys-color-surface-container: #F6E4E3;
  --md-sys-color-surface-container-high: #EBD9D8;
  --md-sys-color-surface-container-highest: #DFCECD;
  --md-sys-color-outline: #5F4F4E;
  --md-sys-color-outline-variant: #7B6968;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #382E2D;
  --md-sys-color-inverse-on-surface: #FFEDEB;
  --md-sys-color-inverse-primary: #FFB3B1;

  /* names the existing stylesheet already uses */
  --bg-main: #FFF8F7;
  --bg-card: #F6E4E3;
  --bg-card-hover: #EBD9D8;
  --text-main: #170F0F;
  --text-muted: #413332;
  --text-link: #5E2324;
  --accent-primary: #5E2324;
  --accent-primary-hover: #A15858;
  --border-subtle: #7B6968;
  --border-focus: #5F4F4E;

  /* Bootstrap follows along */
  --bs-body-bg: #FFF8F7;
  --bs-body-color: #170F0F;
  --bs-emphasis-color: #170F0F;
  --bs-secondary-color: #413332;
  --bs-border-color: #7B6968;
  --bs-primary: #5E2324;
  --bs-link-color: #5E2324;
  --bs-link-hover-color: #A15858;
  --bs-danger: #740006;
  --bs-card-bg: #F6E4E3;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #740006;
  --status-danger-bg: #CF2C27;
}

/* Simian — light, high contrast */
:root[data-palette="simian"][data-theme="light"][data-contrast="high"],
:root:not([data-palette])[data-theme="light"][data-contrast="high"] {
  --md-sys-color-primary: #51191B;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #763536;
  --md-sys-color-on-primary-container: #FFFFFF;
  --md-sys-color-secondary: #3F2525;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #604141;
  --md-sys-color-on-secondary-container: #FFFFFF;
  --md-sys-color-tertiary: #3C2802;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #5D451C;
  --md-sys-color-on-tertiary-container: #FFFFFF;
  --md-sys-color-error: #600004;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #98000A;
  --md-sys-color-on-error-container: #FFFFFF;
  --md-sys-color-surface: #FFF8F7;
  --md-sys-color-on-surface: #000000;
  --md-sys-color-surface-variant: #F4DDDC;
  --md-sys-color-on-surface-variant: #000000;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #FFEDEB;
  --md-sys-color-surface-container: #F0DEDD;
  --md-sys-color-surface-container-high: #E2D0CF;
  --md-sys-color-surface-container-highest: #D4C3C2;
  --md-sys-color-outline: #362928;
  --md-sys-color-outline-variant: #554545;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #382E2D;
  --md-sys-color-inverse-on-surface: #FFFFFF;
  --md-sys-color-inverse-primary: #FFB3B1;

  /* names the existing stylesheet already uses */
  --bg-main: #FFF8F7;
  --bg-card: #F0DEDD;
  --bg-card-hover: #E2D0CF;
  --text-main: #000000;
  --text-muted: #000000;
  --text-link: #51191B;
  --accent-primary: #51191B;
  --accent-primary-hover: #763536;
  --border-subtle: #554545;
  --border-focus: #362928;

  /* Bootstrap follows along */
  --bs-body-bg: #FFF8F7;
  --bs-body-color: #000000;
  --bs-emphasis-color: #000000;
  --bs-secondary-color: #000000;
  --bs-border-color: #554545;
  --bs-primary: #51191B;
  --bs-link-color: #51191B;
  --bs-link-hover-color: #763536;
  --bs-danger: #600004;
  --bs-card-bg: #F0DEDD;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #600004;
  --status-danger-bg: #98000A;
}

/* Simian — dark, standard contrast */
:root[data-palette="simian"][data-theme="dark"]:not([data-contrast="medium"]):not([data-contrast="high"]),
:root:not([data-palette])[data-theme="dark"] {
  --md-sys-color-primary: #FFB3B1;
  --md-sys-color-on-primary: #571D1F;
  --md-sys-color-primary-container: #733334;
  --md-sys-color-on-primary-container: #FFDAD8;
  --md-sys-color-secondary: #E6BDBB;
  --md-sys-color-on-secondary: #442929;
  --md-sys-color-secondary-container: #5D3F3E;
  --md-sys-color-on-secondary-container: #FFDAD8;
  --md-sys-color-tertiary: #E4C18D;
  --md-sys-color-on-tertiary: #412D05;
  --md-sys-color-tertiary-container: #5A4319;
  --md-sys-color-on-tertiary-container: #FFDEAC;
  --md-sys-color-error: #FFB4AB;
  --md-sys-color-on-error: #690005;
  --md-sys-color-error-container: #93000A;
  --md-sys-color-on-error-container: #FFDAD6;
  --md-sys-color-surface: #1A1111;
  --md-sys-color-on-surface: #F0DEDD;
  --md-sys-color-surface-variant: #524342;
  --md-sys-color-on-surface-variant: #D7C1C0;
  --md-sys-color-surface-container-lowest: #140C0C;
  --md-sys-color-surface-container-low: #231919;
  --md-sys-color-surface-container: #271D1D;
  --md-sys-color-surface-container-high: #322827;
  --md-sys-color-surface-container-highest: #3D3232;
  --md-sys-color-outline: #A08C8B;
  --md-sys-color-outline-variant: #524342;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #F0DEDD;
  --md-sys-color-inverse-on-surface: #382E2D;
  --md-sys-color-inverse-primary: #904A4A;

  /* names the existing stylesheet already uses */
  --bg-main: #1A1111;
  --bg-card: #271D1D;
  --bg-card-hover: #322827;
  --text-main: #F0DEDD;
  --text-muted: #D7C1C0;
  --text-link: #FFB3B1;
  --accent-primary: #FFB3B1;
  --accent-primary-hover: #733334;
  --border-subtle: #524342;
  --border-focus: #A08C8B;

  /* Bootstrap follows along */
  --bs-body-bg: #1A1111;
  --bs-body-color: #F0DEDD;
  --bs-emphasis-color: #F0DEDD;
  --bs-secondary-color: #D7C1C0;
  --bs-border-color: #524342;
  --bs-primary: #FFB3B1;
  --bs-link-color: #FFB3B1;
  --bs-link-hover-color: #733334;
  --bs-danger: #FFB4AB;
  --bs-card-bg: #271D1D;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFB4AB;
  --status-danger-bg: #93000A;
}

/* Simian — dark, medium contrast */
:root[data-palette="simian"][data-theme="dark"][data-contrast="medium"],
:root:not([data-palette])[data-theme="dark"][data-contrast="medium"] {
  --md-sys-color-primary: #FFD2D0;
  --md-sys-color-on-primary: #481315;
  --md-sys-color-primary-container: #CB7A79;
  --md-sys-color-on-primary-container: #000000;
  --md-sys-color-secondary: #FED2D0;
  --md-sys-color-on-secondary: #381F1E;
  --md-sys-color-secondary-container: #AD8886;
  --md-sys-color-on-secondary-container: #000000;
  --md-sys-color-tertiary: #FBD7A1;
  --md-sys-color-on-tertiary: #352200;
  --md-sys-color-tertiary-container: #AA8C5C;
  --md-sys-color-on-tertiary-container: #000000;
  --md-sys-color-error: #FFD2CC;
  --md-sys-color-on-error: #540003;
  --md-sys-color-error-container: #FF5449;
  --md-sys-color-on-error-container: #000000;
  --md-sys-color-surface: #1A1111;
  --md-sys-color-on-surface: #FFFFFF;
  --md-sys-color-surface-variant: #524342;
  --md-sys-color-on-surface-variant: #EED7D6;
  --md-sys-color-surface-container-lowest: #0D0606;
  --md-sys-color-surface-container-low: #251B1B;
  --md-sys-color-surface-container: #2F2525;
  --md-sys-color-surface-container-high: #3B3030;
  --md-sys-color-surface-container-highest: #463B3A;
  --md-sys-color-outline: #C2ADAC;
  --md-sys-color-outline-variant: #9F8C8B;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #F0DEDD;
  --md-sys-color-inverse-on-surface: #322827;
  --md-sys-color-inverse-primary: #743435;

  /* names the existing stylesheet already uses */
  --bg-main: #1A1111;
  --bg-card: #2F2525;
  --bg-card-hover: #3B3030;
  --text-main: #FFFFFF;
  --text-muted: #EED7D6;
  --text-link: #FFD2D0;
  --accent-primary: #FFD2D0;
  --accent-primary-hover: #CB7A79;
  --border-subtle: #9F8C8B;
  --border-focus: #C2ADAC;

  /* Bootstrap follows along */
  --bs-body-bg: #1A1111;
  --bs-body-color: #FFFFFF;
  --bs-emphasis-color: #FFFFFF;
  --bs-secondary-color: #EED7D6;
  --bs-border-color: #9F8C8B;
  --bs-primary: #FFD2D0;
  --bs-link-color: #FFD2D0;
  --bs-link-hover-color: #CB7A79;
  --bs-danger: #FFD2CC;
  --bs-card-bg: #2F2525;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFD2CC;
  --status-danger-bg: #FF5449;
}

/* Simian — dark, high contrast */
:root[data-palette="simian"][data-theme="dark"][data-contrast="high"],
:root:not([data-palette])[data-theme="dark"][data-contrast="high"] {
  --md-sys-color-primary: #FFECEA;
  --md-sys-color-on-primary: #000000;
  --md-sys-color-primary-container: #FFADAC;
  --md-sys-color-on-primary-container: #220002;
  --md-sys-color-secondary: #FFECEA;
  --md-sys-color-on-secondary: #000000;
  --md-sys-color-secondary-container: #E2B9B7;
  --md-sys-color-on-secondary-container: #190606;
  --md-sys-color-tertiary: #FFEDD7;
  --md-sys-color-on-tertiary: #000000;
  --md-sys-color-tertiary-container: #E0BE89;
  --md-sys-color-on-tertiary-container: #130900;
  --md-sys-color-error: #FFECE9;
  --md-sys-color-on-error: #000000;
  --md-sys-color-error-container: #FFAEA4;
  --md-sys-color-on-error-container: #220001;
  --md-sys-color-surface: #1A1111;
  --md-sys-color-on-surface: #FFFFFF;
  --md-sys-color-surface-variant: #524342;
  --md-sys-color-on-surface-variant: #FFFFFF;
  --md-sys-color-surface-container-lowest: #000000;
  --md-sys-color-surface-container-low: #271D1D;
  --md-sys-color-surface-container: #382E2D;
  --md-sys-color-surface-container-high: #443938;
  --md-sys-color-surface-container-highest: #504443;
  --md-sys-color-outline: #FFECEA;
  --md-sys-color-outline-variant: #D3BEBD;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #F0DEDD;
  --md-sys-color-inverse-on-surface: #000000;
  --md-sys-color-inverse-primary: #743435;

  /* names the existing stylesheet already uses */
  --bg-main: #1A1111;
  --bg-card: #382E2D;
  --bg-card-hover: #443938;
  --text-main: #FFFFFF;
  --text-muted: #FFFFFF;
  --text-link: #FFECEA;
  --accent-primary: #FFECEA;
  --accent-primary-hover: #FFADAC;
  --border-subtle: #D3BEBD;
  --border-focus: #FFECEA;

  /* Bootstrap follows along */
  --bs-body-bg: #1A1111;
  --bs-body-color: #FFFFFF;
  --bs-emphasis-color: #FFFFFF;
  --bs-secondary-color: #FFFFFF;
  --bs-border-color: #D3BEBD;
  --bs-primary: #FFECEA;
  --bs-link-color: #FFECEA;
  --bs-link-hover-color: #FFADAC;
  --bs-danger: #FFECE9;
  --bs-card-bg: #382E2D;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFECE9;
  --status-danger-bg: #FFAEA4;
}

@media (prefers-color-scheme: dark) {
  /* system dark, standard contrast */
  :root:not([data-theme]):not([data-contrast="medium"]):not([data-contrast="high"]) {
    --md-sys-color-primary: #FFB3B1;
    --md-sys-color-on-primary: #571D1F;
    --md-sys-color-primary-container: #733334;
    --md-sys-color-on-primary-container: #FFDAD8;
    --md-sys-color-secondary: #E6BDBB;
    --md-sys-color-on-secondary: #442929;
    --md-sys-color-secondary-container: #5D3F3E;
    --md-sys-color-on-secondary-container: #FFDAD8;
    --md-sys-color-tertiary: #E4C18D;
    --md-sys-color-on-tertiary: #412D05;
    --md-sys-color-tertiary-container: #5A4319;
    --md-sys-color-on-tertiary-container: #FFDEAC;
    --md-sys-color-error: #FFB4AB;
    --md-sys-color-on-error: #690005;
    --md-sys-color-error-container: #93000A;
    --md-sys-color-on-error-container: #FFDAD6;
    --md-sys-color-surface: #1A1111;
    --md-sys-color-on-surface: #F0DEDD;
    --md-sys-color-surface-variant: #524342;
    --md-sys-color-on-surface-variant: #D7C1C0;
    --md-sys-color-surface-container-lowest: #140C0C;
    --md-sys-color-surface-container-low: #231919;
    --md-sys-color-surface-container: #271D1D;
    --md-sys-color-surface-container-high: #322827;
    --md-sys-color-surface-container-highest: #3D3232;
    --md-sys-color-outline: #A08C8B;
    --md-sys-color-outline-variant: #524342;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #F0DEDD;
    --md-sys-color-inverse-on-surface: #382E2D;
    --md-sys-color-inverse-primary: #904A4A;
  
    /* names the existing stylesheet already uses */
    --bg-main: #1A1111;
    --bg-card: #271D1D;
    --bg-card-hover: #322827;
    --text-main: #F0DEDD;
    --text-muted: #D7C1C0;
    --text-link: #FFB3B1;
    --accent-primary: #FFB3B1;
    --accent-primary-hover: #733334;
    --border-subtle: #524342;
    --border-focus: #A08C8B;
  
    /* Bootstrap follows along */
    --bs-body-bg: #1A1111;
    --bs-body-color: #F0DEDD;
    --bs-emphasis-color: #F0DEDD;
    --bs-secondary-color: #D7C1C0;
    --bs-border-color: #524342;
    --bs-primary: #FFB3B1;
    --bs-link-color: #FFB3B1;
    --bs-link-hover-color: #733334;
    --bs-danger: #FFB4AB;
    --bs-card-bg: #271D1D;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFB4AB;
    --status-danger-bg: #93000A;
  }
}

@media (prefers-color-scheme: dark) {
  /* system dark, medium contrast */
  :root:not([data-theme])[data-contrast="medium"] {
    --md-sys-color-primary: #FFD2D0;
    --md-sys-color-on-primary: #481315;
    --md-sys-color-primary-container: #CB7A79;
    --md-sys-color-on-primary-container: #000000;
    --md-sys-color-secondary: #FED2D0;
    --md-sys-color-on-secondary: #381F1E;
    --md-sys-color-secondary-container: #AD8886;
    --md-sys-color-on-secondary-container: #000000;
    --md-sys-color-tertiary: #FBD7A1;
    --md-sys-color-on-tertiary: #352200;
    --md-sys-color-tertiary-container: #AA8C5C;
    --md-sys-color-on-tertiary-container: #000000;
    --md-sys-color-error: #FFD2CC;
    --md-sys-color-on-error: #540003;
    --md-sys-color-error-container: #FF5449;
    --md-sys-color-on-error-container: #000000;
    --md-sys-color-surface: #1A1111;
    --md-sys-color-on-surface: #FFFFFF;
    --md-sys-color-surface-variant: #524342;
    --md-sys-color-on-surface-variant: #EED7D6;
    --md-sys-color-surface-container-lowest: #0D0606;
    --md-sys-color-surface-container-low: #251B1B;
    --md-sys-color-surface-container: #2F2525;
    --md-sys-color-surface-container-high: #3B3030;
    --md-sys-color-surface-container-highest: #463B3A;
    --md-sys-color-outline: #C2ADAC;
    --md-sys-color-outline-variant: #9F8C8B;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #F0DEDD;
    --md-sys-color-inverse-on-surface: #322827;
    --md-sys-color-inverse-primary: #743435;
  
    /* names the existing stylesheet already uses */
    --bg-main: #1A1111;
    --bg-card: #2F2525;
    --bg-card-hover: #3B3030;
    --text-main: #FFFFFF;
    --text-muted: #EED7D6;
    --text-link: #FFD2D0;
    --accent-primary: #FFD2D0;
    --accent-primary-hover: #CB7A79;
    --border-subtle: #9F8C8B;
    --border-focus: #C2ADAC;
  
    /* Bootstrap follows along */
    --bs-body-bg: #1A1111;
    --bs-body-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #EED7D6;
    --bs-border-color: #9F8C8B;
    --bs-primary: #FFD2D0;
    --bs-link-color: #FFD2D0;
    --bs-link-hover-color: #CB7A79;
    --bs-danger: #FFD2CC;
    --bs-card-bg: #2F2525;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFD2CC;
    --status-danger-bg: #FF5449;
  }
}

@media (prefers-color-scheme: dark) {
  /* system dark, high contrast */
  :root:not([data-theme])[data-contrast="high"] {
    --md-sys-color-primary: #FFECEA;
    --md-sys-color-on-primary: #000000;
    --md-sys-color-primary-container: #FFADAC;
    --md-sys-color-on-primary-container: #220002;
    --md-sys-color-secondary: #FFECEA;
    --md-sys-color-on-secondary: #000000;
    --md-sys-color-secondary-container: #E2B9B7;
    --md-sys-color-on-secondary-container: #190606;
    --md-sys-color-tertiary: #FFEDD7;
    --md-sys-color-on-tertiary: #000000;
    --md-sys-color-tertiary-container: #E0BE89;
    --md-sys-color-on-tertiary-container: #130900;
    --md-sys-color-error: #FFECE9;
    --md-sys-color-on-error: #000000;
    --md-sys-color-error-container: #FFAEA4;
    --md-sys-color-on-error-container: #220001;
    --md-sys-color-surface: #1A1111;
    --md-sys-color-on-surface: #FFFFFF;
    --md-sys-color-surface-variant: #524342;
    --md-sys-color-on-surface-variant: #FFFFFF;
    --md-sys-color-surface-container-lowest: #000000;
    --md-sys-color-surface-container-low: #271D1D;
    --md-sys-color-surface-container: #382E2D;
    --md-sys-color-surface-container-high: #443938;
    --md-sys-color-surface-container-highest: #504443;
    --md-sys-color-outline: #FFECEA;
    --md-sys-color-outline-variant: #D3BEBD;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #F0DEDD;
    --md-sys-color-inverse-on-surface: #000000;
    --md-sys-color-inverse-primary: #743435;
  
    /* names the existing stylesheet already uses */
    --bg-main: #1A1111;
    --bg-card: #382E2D;
    --bg-card-hover: #443938;
    --text-main: #FFFFFF;
    --text-muted: #FFFFFF;
    --text-link: #FFECEA;
    --accent-primary: #FFECEA;
    --accent-primary-hover: #FFADAC;
    --border-subtle: #D3BEBD;
    --border-focus: #FFECEA;
  
    /* Bootstrap follows along */
    --bs-body-bg: #1A1111;
    --bs-body-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #FFFFFF;
    --bs-border-color: #D3BEBD;
    --bs-primary: #FFECEA;
    --bs-link-color: #FFECEA;
    --bs-link-hover-color: #FFADAC;
    --bs-danger: #FFECE9;
    --bs-card-bg: #382E2D;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFECE9;
    --status-danger-bg: #FFAEA4;
  }
}

/* Harbour — light, standard contrast */
:root[data-palette="harbour"][data-theme="light"]:not([data-contrast="medium"]):not([data-contrast="high"]) {
  --md-sys-color-primary: #006970;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #9DF0F9;
  --md-sys-color-on-primary-container: #004F55;
  --md-sys-color-secondary: #4A6365;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #CCE8EA;
  --md-sys-color-on-secondary-container: #324B4D;
  --md-sys-color-tertiary: #505E7D;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #D7E2FF;
  --md-sys-color-on-tertiary-container: #384764;
  --md-sys-color-error: #BA1A1A;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #FFDAD6;
  --md-sys-color-on-error-container: #93000A;
  --md-sys-color-surface: #F5FAFB;
  --md-sys-color-on-surface: #161D1D;
  --md-sys-color-surface-variant: #DAE4E5;
  --md-sys-color-on-surface-variant: #3F4849;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #EFF5F5;
  --md-sys-color-surface-container: #E9EFEF;
  --md-sys-color-surface-container-high: #E3E9EA;
  --md-sys-color-surface-container-highest: #DEE4E4;
  --md-sys-color-outline: #6F797A;
  --md-sys-color-outline-variant: #BEC8C9;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #2B3232;
  --md-sys-color-inverse-on-surface: #ECF2F2;
  --md-sys-color-inverse-primary: #81D4DC;

  /* names the existing stylesheet already uses */
  --bg-main: #F5FAFB;
  --bg-card: #E9EFEF;
  --bg-card-hover: #E3E9EA;
  --text-main: #161D1D;
  --text-muted: #3F4849;
  --text-link: #006970;
  --accent-primary: #006970;
  --accent-primary-hover: #9DF0F9;
  --border-subtle: #BEC8C9;
  --border-focus: #6F797A;

  /* Bootstrap follows along */
  --bs-body-bg: #F5FAFB;
  --bs-body-color: #161D1D;
  --bs-emphasis-color: #161D1D;
  --bs-secondary-color: #3F4849;
  --bs-border-color: #BEC8C9;
  --bs-primary: #006970;
  --bs-link-color: #006970;
  --bs-link-hover-color: #9DF0F9;
  --bs-danger: #BA1A1A;
  --bs-card-bg: #E9EFEF;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #BA1A1A;
  --status-danger-bg: #FFDAD6;
}

/* Harbour — light, medium contrast */
:root[data-palette="harbour"][data-theme="light"][data-contrast="medium"] {
  --md-sys-color-primary: #003D41;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #167880;
  --md-sys-color-on-primary-container: #FFFFFF;
  --md-sys-color-secondary: #213A3D;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #587174;
  --md-sys-color-on-secondary-container: #FFFFFF;
  --md-sys-color-tertiary: #273652;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #5E6D8C;
  --md-sys-color-on-tertiary-container: #FFFFFF;
  --md-sys-color-error: #740006;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #CF2C27;
  --md-sys-color-on-error-container: #FFFFFF;
  --md-sys-color-surface: #F5FAFB;
  --md-sys-color-on-surface: #0C1213;
  --md-sys-color-surface-variant: #DAE4E5;
  --md-sys-color-on-surface-variant: #2E3839;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #EFF5F5;
  --md-sys-color-surface-container: #E3E9EA;
  --md-sys-color-surface-container-high: #D8DEDE;
  --md-sys-color-surface-container-highest: #CDD3D3;
  --md-sys-color-outline: #4B5455;
  --md-sys-color-outline-variant: #656F70;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #2B3232;
  --md-sys-color-inverse-on-surface: #ECF2F2;
  --md-sys-color-inverse-primary: #81D4DC;

  /* names the existing stylesheet already uses */
  --bg-main: #F5FAFB;
  --bg-card: #E3E9EA;
  --bg-card-hover: #D8DEDE;
  --text-main: #0C1213;
  --text-muted: #2E3839;
  --text-link: #003D41;
  --accent-primary: #003D41;
  --accent-primary-hover: #167880;
  --border-subtle: #656F70;
  --border-focus: #4B5455;

  /* Bootstrap follows along */
  --bs-body-bg: #F5FAFB;
  --bs-body-color: #0C1213;
  --bs-emphasis-color: #0C1213;
  --bs-secondary-color: #2E3839;
  --bs-border-color: #656F70;
  --bs-primary: #003D41;
  --bs-link-color: #003D41;
  --bs-link-hover-color: #167880;
  --bs-danger: #740006;
  --bs-card-bg: #E3E9EA;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #740006;
  --status-danger-bg: #CF2C27;
}

/* Harbour — light, high contrast */
:root[data-palette="harbour"][data-theme="light"][data-contrast="high"] {
  --md-sys-color-primary: #003236;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #005258;
  --md-sys-color-on-primary-container: #FFFFFF;
  --md-sys-color-secondary: #173032;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #354D50;
  --md-sys-color-on-secondary-container: #FFFFFF;
  --md-sys-color-tertiary: #1D2C48;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #3B4967;
  --md-sys-color-on-tertiary-container: #FFFFFF;
  --md-sys-color-error: #600004;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #98000A;
  --md-sys-color-on-error-container: #FFFFFF;
  --md-sys-color-surface: #F5FAFB;
  --md-sys-color-on-surface: #000000;
  --md-sys-color-surface-variant: #DAE4E5;
  --md-sys-color-on-surface-variant: #000000;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #ECF2F2;
  --md-sys-color-surface-container: #DEE4E4;
  --md-sys-color-surface-container-high: #CFD5D6;
  --md-sys-color-surface-container-highest: #C1C8C8;
  --md-sys-color-outline: #242E2F;
  --md-sys-color-outline-variant: #414B4C;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #2B3232;
  --md-sys-color-inverse-on-surface: #FFFFFF;
  --md-sys-color-inverse-primary: #81D4DC;

  /* names the existing stylesheet already uses */
  --bg-main: #F5FAFB;
  --bg-card: #DEE4E4;
  --bg-card-hover: #CFD5D6;
  --text-main: #000000;
  --text-muted: #000000;
  --text-link: #003236;
  --accent-primary: #003236;
  --accent-primary-hover: #005258;
  --border-subtle: #414B4C;
  --border-focus: #242E2F;

  /* Bootstrap follows along */
  --bs-body-bg: #F5FAFB;
  --bs-body-color: #000000;
  --bs-emphasis-color: #000000;
  --bs-secondary-color: #000000;
  --bs-border-color: #414B4C;
  --bs-primary: #003236;
  --bs-link-color: #003236;
  --bs-link-hover-color: #005258;
  --bs-danger: #600004;
  --bs-card-bg: #DEE4E4;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #600004;
  --status-danger-bg: #98000A;
}

/* Harbour — dark, standard contrast */
:root[data-palette="harbour"][data-theme="dark"]:not([data-contrast="medium"]):not([data-contrast="high"]) {
  --md-sys-color-primary: #81D4DC;
  --md-sys-color-on-primary: #00363B;
  --md-sys-color-primary-container: #004F55;
  --md-sys-color-on-primary-container: #9DF0F9;
  --md-sys-color-secondary: #B1CBCE;
  --md-sys-color-on-secondary: #1C3437;
  --md-sys-color-secondary-container: #324B4D;
  --md-sys-color-on-secondary-container: #CCE8EA;
  --md-sys-color-tertiary: #B8C6EA;
  --md-sys-color-on-tertiary: #21304C;
  --md-sys-color-tertiary-container: #384764;
  --md-sys-color-on-tertiary-container: #D7E2FF;
  --md-sys-color-error: #FFB4AB;
  --md-sys-color-on-error: #690005;
  --md-sys-color-error-container: #93000A;
  --md-sys-color-on-error-container: #FFDAD6;
  --md-sys-color-surface: #0E1415;
  --md-sys-color-on-surface: #DEE4E4;
  --md-sys-color-surface-variant: #3F4849;
  --md-sys-color-on-surface-variant: #BEC8C9;
  --md-sys-color-surface-container-lowest: #090F10;
  --md-sys-color-surface-container-low: #161D1D;
  --md-sys-color-surface-container: #1A2121;
  --md-sys-color-surface-container-high: #252B2C;
  --md-sys-color-surface-container-highest: #303637;
  --md-sys-color-outline: #899393;
  --md-sys-color-outline-variant: #3F4849;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #DEE4E4;
  --md-sys-color-inverse-on-surface: #2B3232;
  --md-sys-color-inverse-primary: #006970;

  /* names the existing stylesheet already uses */
  --bg-main: #0E1415;
  --bg-card: #1A2121;
  --bg-card-hover: #252B2C;
  --text-main: #DEE4E4;
  --text-muted: #BEC8C9;
  --text-link: #81D4DC;
  --accent-primary: #81D4DC;
  --accent-primary-hover: #004F55;
  --border-subtle: #3F4849;
  --border-focus: #899393;

  /* Bootstrap follows along */
  --bs-body-bg: #0E1415;
  --bs-body-color: #DEE4E4;
  --bs-emphasis-color: #DEE4E4;
  --bs-secondary-color: #BEC8C9;
  --bs-border-color: #3F4849;
  --bs-primary: #81D4DC;
  --bs-link-color: #81D4DC;
  --bs-link-hover-color: #004F55;
  --bs-danger: #FFB4AB;
  --bs-card-bg: #1A2121;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFB4AB;
  --status-danger-bg: #93000A;
}

/* Harbour — dark, medium contrast */
:root[data-palette="harbour"][data-theme="dark"][data-contrast="medium"] {
  --md-sys-color-primary: #97EAF3;
  --md-sys-color-on-primary: #002B2E;
  --md-sys-color-primary-container: #479DA5;
  --md-sys-color-on-primary-container: #000000;
  --md-sys-color-secondary: #C6E1E4;
  --md-sys-color-on-secondary: #10292C;
  --md-sys-color-secondary-container: #7C9598;
  --md-sys-color-on-secondary-container: #000000;
  --md-sys-color-tertiary: #CEDCFF;
  --md-sys-color-on-tertiary: #162541;
  --md-sys-color-tertiary-container: #8291B2;
  --md-sys-color-on-tertiary-container: #000000;
  --md-sys-color-error: #FFD2CC;
  --md-sys-color-on-error: #540003;
  --md-sys-color-error-container: #FF5449;
  --md-sys-color-on-error-container: #000000;
  --md-sys-color-surface: #0E1415;
  --md-sys-color-on-surface: #FFFFFF;
  --md-sys-color-surface-variant: #3F4849;
  --md-sys-color-on-surface-variant: #D4DEDF;
  --md-sys-color-surface-container-lowest: #040809;
  --md-sys-color-surface-container-low: #181F1F;
  --md-sys-color-surface-container: #23292A;
  --md-sys-color-surface-container-high: #2D3434;
  --md-sys-color-surface-container-highest: #383F3F;
  --md-sys-color-outline: #AAB4B5;
  --md-sys-color-outline-variant: #889293;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #DEE4E4;
  --md-sys-color-inverse-on-surface: #252B2C;
  --md-sys-color-inverse-primary: #005056;

  /* names the existing stylesheet already uses */
  --bg-main: #0E1415;
  --bg-card: #23292A;
  --bg-card-hover: #2D3434;
  --text-main: #FFFFFF;
  --text-muted: #D4DEDF;
  --text-link: #97EAF3;
  --accent-primary: #97EAF3;
  --accent-primary-hover: #479DA5;
  --border-subtle: #889293;
  --border-focus: #AAB4B5;

  /* Bootstrap follows along */
  --bs-body-bg: #0E1415;
  --bs-body-color: #FFFFFF;
  --bs-emphasis-color: #FFFFFF;
  --bs-secondary-color: #D4DEDF;
  --bs-border-color: #889293;
  --bs-primary: #97EAF3;
  --bs-link-color: #97EAF3;
  --bs-link-hover-color: #479DA5;
  --bs-danger: #FFD2CC;
  --bs-card-bg: #23292A;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFD2CC;
  --status-danger-bg: #FF5449;
}

/* Harbour — dark, high contrast */
:root[data-palette="harbour"][data-theme="dark"][data-contrast="high"] {
  --md-sys-color-primary: #C5F9FF;
  --md-sys-color-on-primary: #000000;
  --md-sys-color-primary-container: #7DD0D8;
  --md-sys-color-on-primary-container: #000E0F;
  --md-sys-color-secondary: #DAF5F8;
  --md-sys-color-on-secondary: #000000;
  --md-sys-color-secondary-container: #ADC7CA;
  --md-sys-color-on-secondary-container: #000E0F;
  --md-sys-color-tertiary: #ECEFFF;
  --md-sys-color-on-tertiary: #000000;
  --md-sys-color-tertiary-container: #B4C3E6;
  --md-sys-color-on-tertiary-container: #000A21;
  --md-sys-color-error: #FFECE9;
  --md-sys-color-on-error: #000000;
  --md-sys-color-error-container: #FFAEA4;
  --md-sys-color-on-error-container: #220001;
  --md-sys-color-surface: #0E1415;
  --md-sys-color-on-surface: #FFFFFF;
  --md-sys-color-surface-variant: #3F4849;
  --md-sys-color-on-surface-variant: #FFFFFF;
  --md-sys-color-surface-container-lowest: #000000;
  --md-sys-color-surface-container-low: #1A2121;
  --md-sys-color-surface-container: #2B3232;
  --md-sys-color-surface-container-high: #363D3D;
  --md-sys-color-surface-container-highest: #424849;
  --md-sys-color-outline: #E8F2F3;
  --md-sys-color-outline-variant: #BBC4C5;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #DEE4E4;
  --md-sys-color-inverse-on-surface: #000000;
  --md-sys-color-inverse-primary: #005056;

  /* names the existing stylesheet already uses */
  --bg-main: #0E1415;
  --bg-card: #2B3232;
  --bg-card-hover: #363D3D;
  --text-main: #FFFFFF;
  --text-muted: #FFFFFF;
  --text-link: #C5F9FF;
  --accent-primary: #C5F9FF;
  --accent-primary-hover: #7DD0D8;
  --border-subtle: #BBC4C5;
  --border-focus: #E8F2F3;

  /* Bootstrap follows along */
  --bs-body-bg: #0E1415;
  --bs-body-color: #FFFFFF;
  --bs-emphasis-color: #FFFFFF;
  --bs-secondary-color: #FFFFFF;
  --bs-border-color: #BBC4C5;
  --bs-primary: #C5F9FF;
  --bs-link-color: #C5F9FF;
  --bs-link-hover-color: #7DD0D8;
  --bs-danger: #FFECE9;
  --bs-card-bg: #2B3232;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFECE9;
  --status-danger-bg: #FFAEA4;
}

@media (prefers-color-scheme: dark) {
  /* Harbour system dark, standard */
  :root[data-palette="harbour"]:not([data-theme]) {
    --md-sys-color-primary: #81D4DC;
    --md-sys-color-on-primary: #00363B;
    --md-sys-color-primary-container: #004F55;
    --md-sys-color-on-primary-container: #9DF0F9;
    --md-sys-color-secondary: #B1CBCE;
    --md-sys-color-on-secondary: #1C3437;
    --md-sys-color-secondary-container: #324B4D;
    --md-sys-color-on-secondary-container: #CCE8EA;
    --md-sys-color-tertiary: #B8C6EA;
    --md-sys-color-on-tertiary: #21304C;
    --md-sys-color-tertiary-container: #384764;
    --md-sys-color-on-tertiary-container: #D7E2FF;
    --md-sys-color-error: #FFB4AB;
    --md-sys-color-on-error: #690005;
    --md-sys-color-error-container: #93000A;
    --md-sys-color-on-error-container: #FFDAD6;
    --md-sys-color-surface: #0E1415;
    --md-sys-color-on-surface: #DEE4E4;
    --md-sys-color-surface-variant: #3F4849;
    --md-sys-color-on-surface-variant: #BEC8C9;
    --md-sys-color-surface-container-lowest: #090F10;
    --md-sys-color-surface-container-low: #161D1D;
    --md-sys-color-surface-container: #1A2121;
    --md-sys-color-surface-container-high: #252B2C;
    --md-sys-color-surface-container-highest: #303637;
    --md-sys-color-outline: #899393;
    --md-sys-color-outline-variant: #3F4849;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #DEE4E4;
    --md-sys-color-inverse-on-surface: #2B3232;
    --md-sys-color-inverse-primary: #006970;
  
    /* names the existing stylesheet already uses */
    --bg-main: #0E1415;
    --bg-card: #1A2121;
    --bg-card-hover: #252B2C;
    --text-main: #DEE4E4;
    --text-muted: #BEC8C9;
    --text-link: #81D4DC;
    --accent-primary: #81D4DC;
    --accent-primary-hover: #004F55;
    --border-subtle: #3F4849;
    --border-focus: #899393;
  
    /* Bootstrap follows along */
    --bs-body-bg: #0E1415;
    --bs-body-color: #DEE4E4;
    --bs-emphasis-color: #DEE4E4;
    --bs-secondary-color: #BEC8C9;
    --bs-border-color: #3F4849;
    --bs-primary: #81D4DC;
    --bs-link-color: #81D4DC;
    --bs-link-hover-color: #004F55;
    --bs-danger: #FFB4AB;
    --bs-card-bg: #1A2121;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFB4AB;
    --status-danger-bg: #93000A;
  }
}

@media (prefers-color-scheme: dark) {
  /* Harbour system dark, medium */
  :root[data-palette="harbour"]:not([data-theme])[data-contrast="medium"] {
    --md-sys-color-primary: #97EAF3;
    --md-sys-color-on-primary: #002B2E;
    --md-sys-color-primary-container: #479DA5;
    --md-sys-color-on-primary-container: #000000;
    --md-sys-color-secondary: #C6E1E4;
    --md-sys-color-on-secondary: #10292C;
    --md-sys-color-secondary-container: #7C9598;
    --md-sys-color-on-secondary-container: #000000;
    --md-sys-color-tertiary: #CEDCFF;
    --md-sys-color-on-tertiary: #162541;
    --md-sys-color-tertiary-container: #8291B2;
    --md-sys-color-on-tertiary-container: #000000;
    --md-sys-color-error: #FFD2CC;
    --md-sys-color-on-error: #540003;
    --md-sys-color-error-container: #FF5449;
    --md-sys-color-on-error-container: #000000;
    --md-sys-color-surface: #0E1415;
    --md-sys-color-on-surface: #FFFFFF;
    --md-sys-color-surface-variant: #3F4849;
    --md-sys-color-on-surface-variant: #D4DEDF;
    --md-sys-color-surface-container-lowest: #040809;
    --md-sys-color-surface-container-low: #181F1F;
    --md-sys-color-surface-container: #23292A;
    --md-sys-color-surface-container-high: #2D3434;
    --md-sys-color-surface-container-highest: #383F3F;
    --md-sys-color-outline: #AAB4B5;
    --md-sys-color-outline-variant: #889293;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #DEE4E4;
    --md-sys-color-inverse-on-surface: #252B2C;
    --md-sys-color-inverse-primary: #005056;
  
    /* names the existing stylesheet already uses */
    --bg-main: #0E1415;
    --bg-card: #23292A;
    --bg-card-hover: #2D3434;
    --text-main: #FFFFFF;
    --text-muted: #D4DEDF;
    --text-link: #97EAF3;
    --accent-primary: #97EAF3;
    --accent-primary-hover: #479DA5;
    --border-subtle: #889293;
    --border-focus: #AAB4B5;
  
    /* Bootstrap follows along */
    --bs-body-bg: #0E1415;
    --bs-body-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #D4DEDF;
    --bs-border-color: #889293;
    --bs-primary: #97EAF3;
    --bs-link-color: #97EAF3;
    --bs-link-hover-color: #479DA5;
    --bs-danger: #FFD2CC;
    --bs-card-bg: #23292A;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFD2CC;
    --status-danger-bg: #FF5449;
  }
}

@media (prefers-color-scheme: dark) {
  /* Harbour system dark, high */
  :root[data-palette="harbour"]:not([data-theme])[data-contrast="high"] {
    --md-sys-color-primary: #C5F9FF;
    --md-sys-color-on-primary: #000000;
    --md-sys-color-primary-container: #7DD0D8;
    --md-sys-color-on-primary-container: #000E0F;
    --md-sys-color-secondary: #DAF5F8;
    --md-sys-color-on-secondary: #000000;
    --md-sys-color-secondary-container: #ADC7CA;
    --md-sys-color-on-secondary-container: #000E0F;
    --md-sys-color-tertiary: #ECEFFF;
    --md-sys-color-on-tertiary: #000000;
    --md-sys-color-tertiary-container: #B4C3E6;
    --md-sys-color-on-tertiary-container: #000A21;
    --md-sys-color-error: #FFECE9;
    --md-sys-color-on-error: #000000;
    --md-sys-color-error-container: #FFAEA4;
    --md-sys-color-on-error-container: #220001;
    --md-sys-color-surface: #0E1415;
    --md-sys-color-on-surface: #FFFFFF;
    --md-sys-color-surface-variant: #3F4849;
    --md-sys-color-on-surface-variant: #FFFFFF;
    --md-sys-color-surface-container-lowest: #000000;
    --md-sys-color-surface-container-low: #1A2121;
    --md-sys-color-surface-container: #2B3232;
    --md-sys-color-surface-container-high: #363D3D;
    --md-sys-color-surface-container-highest: #424849;
    --md-sys-color-outline: #E8F2F3;
    --md-sys-color-outline-variant: #BBC4C5;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #DEE4E4;
    --md-sys-color-inverse-on-surface: #000000;
    --md-sys-color-inverse-primary: #005056;
  
    /* names the existing stylesheet already uses */
    --bg-main: #0E1415;
    --bg-card: #2B3232;
    --bg-card-hover: #363D3D;
    --text-main: #FFFFFF;
    --text-muted: #FFFFFF;
    --text-link: #C5F9FF;
    --accent-primary: #C5F9FF;
    --accent-primary-hover: #7DD0D8;
    --border-subtle: #BBC4C5;
    --border-focus: #E8F2F3;
  
    /* Bootstrap follows along */
    --bs-body-bg: #0E1415;
    --bs-body-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #FFFFFF;
    --bs-border-color: #BBC4C5;
    --bs-primary: #C5F9FF;
    --bs-link-color: #C5F9FF;
    --bs-link-hover-color: #7DD0D8;
    --bs-danger: #FFECE9;
    --bs-card-bg: #2B3232;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFECE9;
    --status-danger-bg: #FFAEA4;
  }
}

/* Sage — light, standard contrast */
:root[data-palette="sage"][data-theme="light"]:not([data-contrast="medium"]):not([data-contrast="high"]) {
  --md-sys-color-primary: #316941;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #B4F1BE;
  --md-sys-color-on-primary-container: #17512B;
  --md-sys-color-secondary: #506352;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #D3E8D2;
  --md-sys-color-on-secondary-container: #394B3B;
  --md-sys-color-tertiary: #3A656E;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #BDEAF5;
  --md-sys-color-on-tertiary-container: #204D56;
  --md-sys-color-error: #BA1A1A;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #FFDAD6;
  --md-sys-color-on-error-container: #93000A;
  --md-sys-color-surface: #F6FBF3;
  --md-sys-color-on-surface: #181D18;
  --md-sys-color-surface-variant: #DDE5DA;
  --md-sys-color-on-surface-variant: #414941;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #F1F5ED;
  --md-sys-color-surface-container: #EBEFE7;
  --md-sys-color-surface-container-high: #E5EAE2;
  --md-sys-color-surface-container-highest: #DFE4DC;
  --md-sys-color-outline: #717970;
  --md-sys-color-outline-variant: #C1C9BF;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #2D322D;
  --md-sys-color-inverse-on-surface: #EEF2EA;
  --md-sys-color-inverse-primary: #99D4A3;

  /* names the existing stylesheet already uses */
  --bg-main: #F6FBF3;
  --bg-card: #EBEFE7;
  --bg-card-hover: #E5EAE2;
  --text-main: #181D18;
  --text-muted: #414941;
  --text-link: #316941;
  --accent-primary: #316941;
  --accent-primary-hover: #B4F1BE;
  --border-subtle: #C1C9BF;
  --border-focus: #717970;

  /* Bootstrap follows along */
  --bs-body-bg: #F6FBF3;
  --bs-body-color: #181D18;
  --bs-emphasis-color: #181D18;
  --bs-secondary-color: #414941;
  --bs-border-color: #C1C9BF;
  --bs-primary: #316941;
  --bs-link-color: #316941;
  --bs-link-hover-color: #B4F1BE;
  --bs-danger: #BA1A1A;
  --bs-card-bg: #EBEFE7;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #BA1A1A;
  --status-danger-bg: #FFDAD6;
}

/* Sage — light, medium contrast */
:root[data-palette="sage"][data-theme="light"][data-contrast="medium"] {
  --md-sys-color-primary: #00401C;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #41794F;
  --md-sys-color-on-primary-container: #FFFFFF;
  --md-sys-color-secondary: #283A2B;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #5E7260;
  --md-sys-color-on-secondary-container: #FFFFFF;
  --md-sys-color-tertiary: #0A3C44;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #49747D;
  --md-sys-color-on-tertiary-container: #FFFFFF;
  --md-sys-color-error: #740006;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #CF2C27;
  --md-sys-color-on-error-container: #FFFFFF;
  --md-sys-color-surface: #F6FBF3;
  --md-sys-color-on-surface: #0E120E;
  --md-sys-color-surface-variant: #DDE5DA;
  --md-sys-color-on-surface-variant: #313831;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #F1F5ED;
  --md-sys-color-surface-container: #E5EAE2;
  --md-sys-color-surface-container-high: #DADED6;
  --md-sys-color-surface-container-highest: #CED3CB;
  --md-sys-color-outline: #4D544D;
  --md-sys-color-outline-variant: #676F67;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #2D322D;
  --md-sys-color-inverse-on-surface: #EEF2EA;
  --md-sys-color-inverse-primary: #99D4A3;

  /* names the existing stylesheet already uses */
  --bg-main: #F6FBF3;
  --bg-card: #E5EAE2;
  --bg-card-hover: #DADED6;
  --text-main: #0E120E;
  --text-muted: #313831;
  --text-link: #00401C;
  --accent-primary: #00401C;
  --accent-primary-hover: #41794F;
  --border-subtle: #676F67;
  --border-focus: #4D544D;

  /* Bootstrap follows along */
  --bs-body-bg: #F6FBF3;
  --bs-body-color: #0E120E;
  --bs-emphasis-color: #0E120E;
  --bs-secondary-color: #313831;
  --bs-border-color: #676F67;
  --bs-primary: #00401C;
  --bs-link-color: #00401C;
  --bs-link-hover-color: #41794F;
  --bs-danger: #740006;
  --bs-card-bg: #E5EAE2;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #740006;
  --status-danger-bg: #CF2C27;
}

/* Sage — light, high contrast */
:root[data-palette="sage"][data-theme="light"][data-contrast="high"] {
  --md-sys-color-primary: #003416;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #1A532E;
  --md-sys-color-on-primary-container: #FFFFFF;
  --md-sys-color-secondary: #1E3022;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #3B4E3E;
  --md-sys-color-on-secondary-container: #FFFFFF;
  --md-sys-color-tertiary: #003139;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #234F58;
  --md-sys-color-on-tertiary-container: #FFFFFF;
  --md-sys-color-error: #600004;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #98000A;
  --md-sys-color-on-error-container: #FFFFFF;
  --md-sys-color-surface: #F6FBF3;
  --md-sys-color-on-surface: #000000;
  --md-sys-color-surface-variant: #DDE5DA;
  --md-sys-color-on-surface-variant: #000000;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #EEF2EA;
  --md-sys-color-surface-container: #DFE4DC;
  --md-sys-color-surface-container-high: #D1D6CE;
  --md-sys-color-surface-container-highest: #C3C8C0;
  --md-sys-color-outline: #272E27;
  --md-sys-color-outline-variant: #444B43;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #2D322D;
  --md-sys-color-inverse-on-surface: #FFFFFF;
  --md-sys-color-inverse-primary: #99D4A3;

  /* names the existing stylesheet already uses */
  --bg-main: #F6FBF3;
  --bg-card: #DFE4DC;
  --bg-card-hover: #D1D6CE;
  --text-main: #000000;
  --text-muted: #000000;
  --text-link: #003416;
  --accent-primary: #003416;
  --accent-primary-hover: #1A532E;
  --border-subtle: #444B43;
  --border-focus: #272E27;

  /* Bootstrap follows along */
  --bs-body-bg: #F6FBF3;
  --bs-body-color: #000000;
  --bs-emphasis-color: #000000;
  --bs-secondary-color: #000000;
  --bs-border-color: #444B43;
  --bs-primary: #003416;
  --bs-link-color: #003416;
  --bs-link-hover-color: #1A532E;
  --bs-danger: #600004;
  --bs-card-bg: #DFE4DC;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #600004;
  --status-danger-bg: #98000A;
}

/* Sage — dark, standard contrast */
:root[data-palette="sage"][data-theme="dark"]:not([data-contrast="medium"]):not([data-contrast="high"]) {
  --md-sys-color-primary: #99D4A3;
  --md-sys-color-on-primary: #003919;
  --md-sys-color-primary-container: #17512B;
  --md-sys-color-on-primary-container: #B4F1BE;
  --md-sys-color-secondary: #B7CCB7;
  --md-sys-color-on-secondary: #233426;
  --md-sys-color-secondary-container: #394B3B;
  --md-sys-color-on-secondary-container: #D3E8D2;
  --md-sys-color-tertiary: #A2CED8;
  --md-sys-color-on-tertiary: #01363F;
  --md-sys-color-tertiary-container: #204D56;
  --md-sys-color-on-tertiary-container: #BDEAF5;
  --md-sys-color-error: #FFB4AB;
  --md-sys-color-on-error: #690005;
  --md-sys-color-error-container: #93000A;
  --md-sys-color-on-error-container: #FFDAD6;
  --md-sys-color-surface: #101510;
  --md-sys-color-on-surface: #DFE4DC;
  --md-sys-color-surface-variant: #414941;
  --md-sys-color-on-surface-variant: #C1C9BF;
  --md-sys-color-surface-container-lowest: #0B0F0B;
  --md-sys-color-surface-container-low: #181D18;
  --md-sys-color-surface-container: #1C211C;
  --md-sys-color-surface-container-high: #262B26;
  --md-sys-color-surface-container-highest: #313631;
  --md-sys-color-outline: #8B938A;
  --md-sys-color-outline-variant: #414941;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #DFE4DC;
  --md-sys-color-inverse-on-surface: #2D322D;
  --md-sys-color-inverse-primary: #316941;

  /* names the existing stylesheet already uses */
  --bg-main: #101510;
  --bg-card: #1C211C;
  --bg-card-hover: #262B26;
  --text-main: #DFE4DC;
  --text-muted: #C1C9BF;
  --text-link: #99D4A3;
  --accent-primary: #99D4A3;
  --accent-primary-hover: #17512B;
  --border-subtle: #414941;
  --border-focus: #8B938A;

  /* Bootstrap follows along */
  --bs-body-bg: #101510;
  --bs-body-color: #DFE4DC;
  --bs-emphasis-color: #DFE4DC;
  --bs-secondary-color: #C1C9BF;
  --bs-border-color: #414941;
  --bs-primary: #99D4A3;
  --bs-link-color: #99D4A3;
  --bs-link-hover-color: #17512B;
  --bs-danger: #FFB4AB;
  --bs-card-bg: #1C211C;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFB4AB;
  --status-danger-bg: #93000A;
}

/* Sage — dark, medium contrast */
:root[data-palette="sage"][data-theme="dark"][data-contrast="medium"] {
  --md-sys-color-primary: #AEEBB8;
  --md-sys-color-on-primary: #002D12;
  --md-sys-color-primary-container: #649D70;
  --md-sys-color-on-primary-container: #000000;
  --md-sys-color-secondary: #CDE2CC;
  --md-sys-color-on-secondary: #182A1C;
  --md-sys-color-secondary-container: #829683;
  --md-sys-color-on-secondary-container: #000000;
  --md-sys-color-tertiary: #B7E4EF;
  --md-sys-color-on-tertiary: #002A31;
  --md-sys-color-tertiary-container: #6D98A2;
  --md-sys-color-on-tertiary-container: #000000;
  --md-sys-color-error: #FFD2CC;
  --md-sys-color-on-error: #540003;
  --md-sys-color-error-container: #FF5449;
  --md-sys-color-on-error-container: #000000;
  --md-sys-color-surface: #101510;
  --md-sys-color-on-surface: #FFFFFF;
  --md-sys-color-surface-variant: #414941;
  --md-sys-color-on-surface-variant: #D7DFD4;
  --md-sys-color-surface-container-lowest: #050805;
  --md-sys-color-surface-container-low: #1A1F1A;
  --md-sys-color-surface-container: #242924;
  --md-sys-color-surface-container-high: #2F342F;
  --md-sys-color-surface-container-highest: #3A3F3A;
  --md-sys-color-outline: #ACB4AA;
  --md-sys-color-outline-variant: #8B9289;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #DFE4DC;
  --md-sys-color-inverse-on-surface: #262B26;
  --md-sys-color-inverse-primary: #19522C;

  /* names the existing stylesheet already uses */
  --bg-main: #101510;
  --bg-card: #242924;
  --bg-card-hover: #2F342F;
  --text-main: #FFFFFF;
  --text-muted: #D7DFD4;
  --text-link: #AEEBB8;
  --accent-primary: #AEEBB8;
  --accent-primary-hover: #649D70;
  --border-subtle: #8B9289;
  --border-focus: #ACB4AA;

  /* Bootstrap follows along */
  --bs-body-bg: #101510;
  --bs-body-color: #FFFFFF;
  --bs-emphasis-color: #FFFFFF;
  --bs-secondary-color: #D7DFD4;
  --bs-border-color: #8B9289;
  --bs-primary: #AEEBB8;
  --bs-link-color: #AEEBB8;
  --bs-link-hover-color: #649D70;
  --bs-danger: #FFD2CC;
  --bs-card-bg: #242924;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFD2CC;
  --status-danger-bg: #FF5449;
}

/* Sage — dark, high contrast */
:root[data-palette="sage"][data-theme="dark"][data-contrast="high"] {
  --md-sys-color-primary: #C1FFCB;
  --md-sys-color-on-primary: #000000;
  --md-sys-color-primary-container: #95D09F;
  --md-sys-color-on-primary-container: #000F04;
  --md-sys-color-secondary: #E0F6E0;
  --md-sys-color-on-secondary: #000000;
  --md-sys-color-secondary-container: #B3C8B3;
  --md-sys-color-on-secondary-container: #010E04;
  --md-sys-color-tertiary: #D2F6FF;
  --md-sys-color-on-tertiary: #000000;
  --md-sys-color-tertiary-container: #9ECAD4;
  --md-sys-color-on-tertiary-container: #000D11;
  --md-sys-color-error: #FFECE9;
  --md-sys-color-on-error: #000000;
  --md-sys-color-error-container: #FFAEA4;
  --md-sys-color-on-error-container: #220001;
  --md-sys-color-surface: #101510;
  --md-sys-color-on-surface: #FFFFFF;
  --md-sys-color-surface-variant: #414941;
  --md-sys-color-on-surface-variant: #FFFFFF;
  --md-sys-color-surface-container-lowest: #000000;
  --md-sys-color-surface-container-low: #1C211C;
  --md-sys-color-surface-container: #2D322D;
  --md-sys-color-surface-container-high: #383D37;
  --md-sys-color-surface-container-highest: #434842;
  --md-sys-color-outline: #EAF2E7;
  --md-sys-color-outline-variant: #BDC5BB;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #DFE4DC;
  --md-sys-color-inverse-on-surface: #000000;
  --md-sys-color-inverse-primary: #19522C;

  /* names the existing stylesheet already uses */
  --bg-main: #101510;
  --bg-card: #2D322D;
  --bg-card-hover: #383D37;
  --text-main: #FFFFFF;
  --text-muted: #FFFFFF;
  --text-link: #C1FFCB;
  --accent-primary: #C1FFCB;
  --accent-primary-hover: #95D09F;
  --border-subtle: #BDC5BB;
  --border-focus: #EAF2E7;

  /* Bootstrap follows along */
  --bs-body-bg: #101510;
  --bs-body-color: #FFFFFF;
  --bs-emphasis-color: #FFFFFF;
  --bs-secondary-color: #FFFFFF;
  --bs-border-color: #BDC5BB;
  --bs-primary: #C1FFCB;
  --bs-link-color: #C1FFCB;
  --bs-link-hover-color: #95D09F;
  --bs-danger: #FFECE9;
  --bs-card-bg: #2D322D;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFECE9;
  --status-danger-bg: #FFAEA4;
}

@media (prefers-color-scheme: dark) {
  /* Sage system dark, standard */
  :root[data-palette="sage"]:not([data-theme]) {
    --md-sys-color-primary: #99D4A3;
    --md-sys-color-on-primary: #003919;
    --md-sys-color-primary-container: #17512B;
    --md-sys-color-on-primary-container: #B4F1BE;
    --md-sys-color-secondary: #B7CCB7;
    --md-sys-color-on-secondary: #233426;
    --md-sys-color-secondary-container: #394B3B;
    --md-sys-color-on-secondary-container: #D3E8D2;
    --md-sys-color-tertiary: #A2CED8;
    --md-sys-color-on-tertiary: #01363F;
    --md-sys-color-tertiary-container: #204D56;
    --md-sys-color-on-tertiary-container: #BDEAF5;
    --md-sys-color-error: #FFB4AB;
    --md-sys-color-on-error: #690005;
    --md-sys-color-error-container: #93000A;
    --md-sys-color-on-error-container: #FFDAD6;
    --md-sys-color-surface: #101510;
    --md-sys-color-on-surface: #DFE4DC;
    --md-sys-color-surface-variant: #414941;
    --md-sys-color-on-surface-variant: #C1C9BF;
    --md-sys-color-surface-container-lowest: #0B0F0B;
    --md-sys-color-surface-container-low: #181D18;
    --md-sys-color-surface-container: #1C211C;
    --md-sys-color-surface-container-high: #262B26;
    --md-sys-color-surface-container-highest: #313631;
    --md-sys-color-outline: #8B938A;
    --md-sys-color-outline-variant: #414941;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #DFE4DC;
    --md-sys-color-inverse-on-surface: #2D322D;
    --md-sys-color-inverse-primary: #316941;
  
    /* names the existing stylesheet already uses */
    --bg-main: #101510;
    --bg-card: #1C211C;
    --bg-card-hover: #262B26;
    --text-main: #DFE4DC;
    --text-muted: #C1C9BF;
    --text-link: #99D4A3;
    --accent-primary: #99D4A3;
    --accent-primary-hover: #17512B;
    --border-subtle: #414941;
    --border-focus: #8B938A;
  
    /* Bootstrap follows along */
    --bs-body-bg: #101510;
    --bs-body-color: #DFE4DC;
    --bs-emphasis-color: #DFE4DC;
    --bs-secondary-color: #C1C9BF;
    --bs-border-color: #414941;
    --bs-primary: #99D4A3;
    --bs-link-color: #99D4A3;
    --bs-link-hover-color: #17512B;
    --bs-danger: #FFB4AB;
    --bs-card-bg: #1C211C;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFB4AB;
    --status-danger-bg: #93000A;
  }
}

@media (prefers-color-scheme: dark) {
  /* Sage system dark, medium */
  :root[data-palette="sage"]:not([data-theme])[data-contrast="medium"] {
    --md-sys-color-primary: #AEEBB8;
    --md-sys-color-on-primary: #002D12;
    --md-sys-color-primary-container: #649D70;
    --md-sys-color-on-primary-container: #000000;
    --md-sys-color-secondary: #CDE2CC;
    --md-sys-color-on-secondary: #182A1C;
    --md-sys-color-secondary-container: #829683;
    --md-sys-color-on-secondary-container: #000000;
    --md-sys-color-tertiary: #B7E4EF;
    --md-sys-color-on-tertiary: #002A31;
    --md-sys-color-tertiary-container: #6D98A2;
    --md-sys-color-on-tertiary-container: #000000;
    --md-sys-color-error: #FFD2CC;
    --md-sys-color-on-error: #540003;
    --md-sys-color-error-container: #FF5449;
    --md-sys-color-on-error-container: #000000;
    --md-sys-color-surface: #101510;
    --md-sys-color-on-surface: #FFFFFF;
    --md-sys-color-surface-variant: #414941;
    --md-sys-color-on-surface-variant: #D7DFD4;
    --md-sys-color-surface-container-lowest: #050805;
    --md-sys-color-surface-container-low: #1A1F1A;
    --md-sys-color-surface-container: #242924;
    --md-sys-color-surface-container-high: #2F342F;
    --md-sys-color-surface-container-highest: #3A3F3A;
    --md-sys-color-outline: #ACB4AA;
    --md-sys-color-outline-variant: #8B9289;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #DFE4DC;
    --md-sys-color-inverse-on-surface: #262B26;
    --md-sys-color-inverse-primary: #19522C;
  
    /* names the existing stylesheet already uses */
    --bg-main: #101510;
    --bg-card: #242924;
    --bg-card-hover: #2F342F;
    --text-main: #FFFFFF;
    --text-muted: #D7DFD4;
    --text-link: #AEEBB8;
    --accent-primary: #AEEBB8;
    --accent-primary-hover: #649D70;
    --border-subtle: #8B9289;
    --border-focus: #ACB4AA;
  
    /* Bootstrap follows along */
    --bs-body-bg: #101510;
    --bs-body-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #D7DFD4;
    --bs-border-color: #8B9289;
    --bs-primary: #AEEBB8;
    --bs-link-color: #AEEBB8;
    --bs-link-hover-color: #649D70;
    --bs-danger: #FFD2CC;
    --bs-card-bg: #242924;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFD2CC;
    --status-danger-bg: #FF5449;
  }
}

@media (prefers-color-scheme: dark) {
  /* Sage system dark, high */
  :root[data-palette="sage"]:not([data-theme])[data-contrast="high"] {
    --md-sys-color-primary: #C1FFCB;
    --md-sys-color-on-primary: #000000;
    --md-sys-color-primary-container: #95D09F;
    --md-sys-color-on-primary-container: #000F04;
    --md-sys-color-secondary: #E0F6E0;
    --md-sys-color-on-secondary: #000000;
    --md-sys-color-secondary-container: #B3C8B3;
    --md-sys-color-on-secondary-container: #010E04;
    --md-sys-color-tertiary: #D2F6FF;
    --md-sys-color-on-tertiary: #000000;
    --md-sys-color-tertiary-container: #9ECAD4;
    --md-sys-color-on-tertiary-container: #000D11;
    --md-sys-color-error: #FFECE9;
    --md-sys-color-on-error: #000000;
    --md-sys-color-error-container: #FFAEA4;
    --md-sys-color-on-error-container: #220001;
    --md-sys-color-surface: #101510;
    --md-sys-color-on-surface: #FFFFFF;
    --md-sys-color-surface-variant: #414941;
    --md-sys-color-on-surface-variant: #FFFFFF;
    --md-sys-color-surface-container-lowest: #000000;
    --md-sys-color-surface-container-low: #1C211C;
    --md-sys-color-surface-container: #2D322D;
    --md-sys-color-surface-container-high: #383D37;
    --md-sys-color-surface-container-highest: #434842;
    --md-sys-color-outline: #EAF2E7;
    --md-sys-color-outline-variant: #BDC5BB;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #DFE4DC;
    --md-sys-color-inverse-on-surface: #000000;
    --md-sys-color-inverse-primary: #19522C;
  
    /* names the existing stylesheet already uses */
    --bg-main: #101510;
    --bg-card: #2D322D;
    --bg-card-hover: #383D37;
    --text-main: #FFFFFF;
    --text-muted: #FFFFFF;
    --text-link: #C1FFCB;
    --accent-primary: #C1FFCB;
    --accent-primary-hover: #95D09F;
    --border-subtle: #BDC5BB;
    --border-focus: #EAF2E7;
  
    /* Bootstrap follows along */
    --bs-body-bg: #101510;
    --bs-body-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #FFFFFF;
    --bs-border-color: #BDC5BB;
    --bs-primary: #C1FFCB;
    --bs-link-color: #C1FFCB;
    --bs-link-hover-color: #95D09F;
    --bs-danger: #FFECE9;
    --bs-card-bg: #2D322D;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFECE9;
    --status-danger-bg: #FFAEA4;
  }
}

/* Clay — light, standard contrast */
:root[data-palette="clay"][data-theme="light"]:not([data-contrast="medium"]):not([data-contrast="high"]) {
  --md-sys-color-primary: #895021;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #FFDCC5;
  --md-sys-color-on-primary-container: #6D390A;
  --md-sys-color-secondary: #755945;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #FFDCC5;
  --md-sys-color-on-secondary-container: #5B412F;
  --md-sys-color-tertiary: #5E6135;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #E3E6AF;
  --md-sys-color-on-tertiary-container: #464920;
  --md-sys-color-error: #BA1A1A;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #FFDAD6;
  --md-sys-color-on-error-container: #93000A;
  --md-sys-color-surface: #FFF8F5;
  --md-sys-color-on-surface: #221A14;
  --md-sys-color-surface-variant: #F3DFD2;
  --md-sys-color-on-surface-variant: #52443B;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #FFF1E9;
  --md-sys-color-surface-container: #FBEBE1;
  --md-sys-color-surface-container-high: #F5E5DC;
  --md-sys-color-surface-container-highest: #F0DFD6;
  --md-sys-color-outline: #84746A;
  --md-sys-color-outline-variant: #D6C3B7;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #382F28;
  --md-sys-color-inverse-on-surface: #FEEEE4;
  --md-sys-color-inverse-primary: #FFB782;

  /* names the existing stylesheet already uses */
  --bg-main: #FFF8F5;
  --bg-card: #FBEBE1;
  --bg-card-hover: #F5E5DC;
  --text-main: #221A14;
  --text-muted: #52443B;
  --text-link: #895021;
  --accent-primary: #895021;
  --accent-primary-hover: #FFDCC5;
  --border-subtle: #D6C3B7;
  --border-focus: #84746A;

  /* Bootstrap follows along */
  --bs-body-bg: #FFF8F5;
  --bs-body-color: #221A14;
  --bs-emphasis-color: #221A14;
  --bs-secondary-color: #52443B;
  --bs-border-color: #D6C3B7;
  --bs-primary: #895021;
  --bs-link-color: #895021;
  --bs-link-hover-color: #FFDCC5;
  --bs-danger: #BA1A1A;
  --bs-card-bg: #FBEBE1;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #BA1A1A;
  --status-danger-bg: #FFDAD6;
}

/* Clay — light, medium contrast */
:root[data-palette="clay"][data-theme="light"][data-contrast="medium"] {
  --md-sys-color-primary: #572A00;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #9B5F2E;
  --md-sys-color-on-primary-container: #FFFFFF;
  --md-sys-color-secondary: #483120;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #846752;
  --md-sys-color-on-secondary-container: #FFFFFF;
  --md-sys-color-tertiary: #353911;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #6D7043;
  --md-sys-color-on-tertiary-container: #FFFFFF;
  --md-sys-color-error: #740006;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #CF2C27;
  --md-sys-color-on-error-container: #FFFFFF;
  --md-sys-color-surface: #FFF8F5;
  --md-sys-color-on-surface: #17100B;
  --md-sys-color-surface-variant: #F3DFD2;
  --md-sys-color-on-surface-variant: #40342B;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #FFF1E9;
  --md-sys-color-surface-container: #F5E5DC;
  --md-sys-color-surface-container-high: #EADAD1;
  --md-sys-color-surface-container-highest: #DECFC6;
  --md-sys-color-outline: #5E5046;
  --md-sys-color-outline-variant: #7A6A60;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #382F28;
  --md-sys-color-inverse-on-surface: #FEEEE4;
  --md-sys-color-inverse-primary: #FFB782;

  /* names the existing stylesheet already uses */
  --bg-main: #FFF8F5;
  --bg-card: #F5E5DC;
  --bg-card-hover: #EADAD1;
  --text-main: #17100B;
  --text-muted: #40342B;
  --text-link: #572A00;
  --accent-primary: #572A00;
  --accent-primary-hover: #9B5F2E;
  --border-subtle: #7A6A60;
  --border-focus: #5E5046;

  /* Bootstrap follows along */
  --bs-body-bg: #FFF8F5;
  --bs-body-color: #17100B;
  --bs-emphasis-color: #17100B;
  --bs-secondary-color: #40342B;
  --bs-border-color: #7A6A60;
  --bs-primary: #572A00;
  --bs-link-color: #572A00;
  --bs-link-hover-color: #9B5F2E;
  --bs-danger: #740006;
  --bs-card-bg: #F5E5DC;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #740006;
  --status-danger-bg: #CF2C27;
}

/* Clay — light, high contrast */
:root[data-palette="clay"][data-theme="light"][data-contrast="high"] {
  --md-sys-color-primary: #482200;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #703C0C;
  --md-sys-color-on-primary-container: #FFFFFF;
  --md-sys-color-secondary: #3D2717;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #5D4431;
  --md-sys-color-on-secondary-container: #FFFFFF;
  --md-sys-color-tertiary: #2B2E07;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #484C22;
  --md-sys-color-on-tertiary-container: #FFFFFF;
  --md-sys-color-error: #600004;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #98000A;
  --md-sys-color-on-error-container: #FFFFFF;
  --md-sys-color-surface: #FFF8F5;
  --md-sys-color-on-surface: #000000;
  --md-sys-color-surface-variant: #F3DFD2;
  --md-sys-color-on-surface-variant: #000000;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #FEEEE4;
  --md-sys-color-surface-container: #F0DFD6;
  --md-sys-color-surface-container-high: #E1D1C8;
  --md-sys-color-surface-container-highest: #D3C4BB;
  --md-sys-color-outline: #352A22;
  --md-sys-color-outline-variant: #54463D;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #382F28;
  --md-sys-color-inverse-on-surface: #FFFFFF;
  --md-sys-color-inverse-primary: #FFB782;

  /* names the existing stylesheet already uses */
  --bg-main: #FFF8F5;
  --bg-card: #F0DFD6;
  --bg-card-hover: #E1D1C8;
  --text-main: #000000;
  --text-muted: #000000;
  --text-link: #482200;
  --accent-primary: #482200;
  --accent-primary-hover: #703C0C;
  --border-subtle: #54463D;
  --border-focus: #352A22;

  /* Bootstrap follows along */
  --bs-body-bg: #FFF8F5;
  --bs-body-color: #000000;
  --bs-emphasis-color: #000000;
  --bs-secondary-color: #000000;
  --bs-border-color: #54463D;
  --bs-primary: #482200;
  --bs-link-color: #482200;
  --bs-link-hover-color: #703C0C;
  --bs-danger: #600004;
  --bs-card-bg: #F0DFD6;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #035C44;
  --status-success-bg: #D1FAE5;
  --status-warning: #8A4106;
  --status-warning-bg: #FEF3C7;
  --status-info: #035C8D;
  --status-info-bg: #E0F2FE;
  --status-danger: #600004;
  --status-danger-bg: #98000A;
}

/* Clay — dark, standard contrast */
:root[data-palette="clay"][data-theme="dark"]:not([data-contrast="medium"]):not([data-contrast="high"]) {
  --md-sys-color-primary: #FFB782;
  --md-sys-color-on-primary: #4F2500;
  --md-sys-color-primary-container: #6D390A;
  --md-sys-color-on-primary-container: #FFDCC5;
  --md-sys-color-secondary: #E4BFA7;
  --md-sys-color-on-secondary: #422B1A;
  --md-sys-color-secondary-container: #5B412F;
  --md-sys-color-on-secondary-container: #FFDCC5;
  --md-sys-color-tertiary: #C7CA95;
  --md-sys-color-on-tertiary: #30330B;
  --md-sys-color-tertiary-container: #464920;
  --md-sys-color-on-tertiary-container: #E3E6AF;
  --md-sys-color-error: #FFB4AB;
  --md-sys-color-on-error: #690005;
  --md-sys-color-error-container: #93000A;
  --md-sys-color-on-error-container: #FFDAD6;
  --md-sys-color-surface: #19120D;
  --md-sys-color-on-surface: #F0DFD6;
  --md-sys-color-surface-variant: #52443B;
  --md-sys-color-on-surface-variant: #D6C3B7;
  --md-sys-color-surface-container-lowest: #140D08;
  --md-sys-color-surface-container-low: #221A14;
  --md-sys-color-surface-container: #261E18;
  --md-sys-color-surface-container-high: #312822;
  --md-sys-color-surface-container-highest: #3C332D;
  --md-sys-color-outline: #9F8D83;
  --md-sys-color-outline-variant: #52443B;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #F0DFD6;
  --md-sys-color-inverse-on-surface: #382F28;
  --md-sys-color-inverse-primary: #895021;

  /* names the existing stylesheet already uses */
  --bg-main: #19120D;
  --bg-card: #261E18;
  --bg-card-hover: #312822;
  --text-main: #F0DFD6;
  --text-muted: #D6C3B7;
  --text-link: #FFB782;
  --accent-primary: #FFB782;
  --accent-primary-hover: #6D390A;
  --border-subtle: #52443B;
  --border-focus: #9F8D83;

  /* Bootstrap follows along */
  --bs-body-bg: #19120D;
  --bs-body-color: #F0DFD6;
  --bs-emphasis-color: #F0DFD6;
  --bs-secondary-color: #D6C3B7;
  --bs-border-color: #52443B;
  --bs-primary: #FFB782;
  --bs-link-color: #FFB782;
  --bs-link-hover-color: #6D390A;
  --bs-danger: #FFB4AB;
  --bs-card-bg: #261E18;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFB4AB;
  --status-danger-bg: #93000A;
}

/* Clay — dark, medium contrast */
:root[data-palette="clay"][data-theme="dark"][data-contrast="medium"] {
  --md-sys-color-primary: #FFD4B7;
  --md-sys-color-on-primary: #3F1D00;
  --md-sys-color-primary-container: #C5814D;
  --md-sys-color-on-primary-container: #000000;
  --md-sys-color-secondary: #FBD5BC;
  --md-sys-color-on-secondary: #362111;
  --md-sys-color-secondary-container: #AB8A74;
  --md-sys-color-on-secondary-container: #000000;
  --md-sys-color-tertiary: #DDE0A9;
  --md-sys-color-on-tertiary: #252803;
  --md-sys-color-tertiary-container: #919463;
  --md-sys-color-on-tertiary-container: #000000;
  --md-sys-color-error: #FFD2CC;
  --md-sys-color-on-error: #540003;
  --md-sys-color-error-container: #FF5449;
  --md-sys-color-on-error-container: #000000;
  --md-sys-color-surface: #19120D;
  --md-sys-color-on-surface: #FFFFFF;
  --md-sys-color-surface-variant: #52443B;
  --md-sys-color-on-surface-variant: #EDD8CC;
  --md-sys-color-surface-container-lowest: #0C0603;
  --md-sys-color-surface-container-low: #241C16;
  --md-sys-color-surface-container: #2F2620;
  --md-sys-color-surface-container-high: #3A312B;
  --md-sys-color-surface-container-highest: #463C35;
  --md-sys-color-outline: #C1AEA3;
  --md-sys-color-outline-variant: #9E8D82;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #F0DFD6;
  --md-sys-color-inverse-on-surface: #312822;
  --md-sys-color-inverse-primary: #6E3B0B;

  /* names the existing stylesheet already uses */
  --bg-main: #19120D;
  --bg-card: #2F2620;
  --bg-card-hover: #3A312B;
  --text-main: #FFFFFF;
  --text-muted: #EDD8CC;
  --text-link: #FFD4B7;
  --accent-primary: #FFD4B7;
  --accent-primary-hover: #C5814D;
  --border-subtle: #9E8D82;
  --border-focus: #C1AEA3;

  /* Bootstrap follows along */
  --bs-body-bg: #19120D;
  --bs-body-color: #FFFFFF;
  --bs-emphasis-color: #FFFFFF;
  --bs-secondary-color: #EDD8CC;
  --bs-border-color: #9E8D82;
  --bs-primary: #FFD4B7;
  --bs-link-color: #FFD4B7;
  --bs-link-hover-color: #C5814D;
  --bs-danger: #FFD2CC;
  --bs-card-bg: #2F2620;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFD2CC;
  --status-danger-bg: #FF5449;
}

/* Clay — dark, high contrast */
:root[data-palette="clay"][data-theme="dark"][data-contrast="high"] {
  --md-sys-color-primary: #FFECE2;
  --md-sys-color-on-primary: #000000;
  --md-sys-color-primary-container: #FEB279;
  --md-sys-color-on-primary-container: #170700;
  --md-sys-color-secondary: #FFECE2;
  --md-sys-color-on-secondary: #000000;
  --md-sys-color-secondary-container: #E0BCA3;
  --md-sys-color-on-secondary-container: #170700;
  --md-sys-color-tertiary: #F1F4BB;
  --md-sys-color-on-tertiary: #000000;
  --md-sys-color-tertiary-container: #C3C691;
  --md-sys-color-on-tertiary-container: #0B0C00;
  --md-sys-color-error: #FFECE9;
  --md-sys-color-on-error: #000000;
  --md-sys-color-error-container: #FFAEA4;
  --md-sys-color-on-error-container: #220001;
  --md-sys-color-surface: #19120D;
  --md-sys-color-on-surface: #FFFFFF;
  --md-sys-color-surface-variant: #52443B;
  --md-sys-color-on-surface-variant: #FFFFFF;
  --md-sys-color-surface-container-lowest: #000000;
  --md-sys-color-surface-container-low: #261E18;
  --md-sys-color-surface-container: #382F28;
  --md-sys-color-surface-container-high: #433933;
  --md-sys-color-surface-container-highest: #4F453E;
  --md-sys-color-outline: #FFECE2;
  --md-sys-color-outline-variant: #D2BFB3;
  --md-sys-color-shadow: #000000;
  --md-sys-color-scrim: #000000;
  --md-sys-color-inverse-surface: #F0DFD6;
  --md-sys-color-inverse-on-surface: #000000;
  --md-sys-color-inverse-primary: #6E3B0B;

  /* names the existing stylesheet already uses */
  --bg-main: #19120D;
  --bg-card: #382F28;
  --bg-card-hover: #433933;
  --text-main: #FFFFFF;
  --text-muted: #FFFFFF;
  --text-link: #FFECE2;
  --accent-primary: #FFECE2;
  --accent-primary-hover: #FEB279;
  --border-subtle: #D2BFB3;
  --border-focus: #FFECE2;

  /* Bootstrap follows along */
  --bs-body-bg: #19120D;
  --bs-body-color: #FFFFFF;
  --bs-emphasis-color: #FFFFFF;
  --bs-secondary-color: #FFFFFF;
  --bs-border-color: #D2BFB3;
  --bs-primary: #FFECE2;
  --bs-link-color: #FFECE2;
  --bs-link-hover-color: #FEB279;
  --bs-danger: #FFECE9;
  --bs-card-bg: #382F28;

  /* status colors — see STATUS in build_theme.py */
  --status-success: #34D399;
  --status-success-bg: #064E3B;
  --status-warning: #FBBF24;
  --status-warning-bg: #4A2F0B;
  --status-info: #38BDF8;
  --status-info-bg: #0C3A52;
  --status-danger: #FFECE9;
  --status-danger-bg: #FFAEA4;
}

@media (prefers-color-scheme: dark) {
  /* Clay system dark, standard */
  :root[data-palette="clay"]:not([data-theme]) {
    --md-sys-color-primary: #FFB782;
    --md-sys-color-on-primary: #4F2500;
    --md-sys-color-primary-container: #6D390A;
    --md-sys-color-on-primary-container: #FFDCC5;
    --md-sys-color-secondary: #E4BFA7;
    --md-sys-color-on-secondary: #422B1A;
    --md-sys-color-secondary-container: #5B412F;
    --md-sys-color-on-secondary-container: #FFDCC5;
    --md-sys-color-tertiary: #C7CA95;
    --md-sys-color-on-tertiary: #30330B;
    --md-sys-color-tertiary-container: #464920;
    --md-sys-color-on-tertiary-container: #E3E6AF;
    --md-sys-color-error: #FFB4AB;
    --md-sys-color-on-error: #690005;
    --md-sys-color-error-container: #93000A;
    --md-sys-color-on-error-container: #FFDAD6;
    --md-sys-color-surface: #19120D;
    --md-sys-color-on-surface: #F0DFD6;
    --md-sys-color-surface-variant: #52443B;
    --md-sys-color-on-surface-variant: #D6C3B7;
    --md-sys-color-surface-container-lowest: #140D08;
    --md-sys-color-surface-container-low: #221A14;
    --md-sys-color-surface-container: #261E18;
    --md-sys-color-surface-container-high: #312822;
    --md-sys-color-surface-container-highest: #3C332D;
    --md-sys-color-outline: #9F8D83;
    --md-sys-color-outline-variant: #52443B;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #F0DFD6;
    --md-sys-color-inverse-on-surface: #382F28;
    --md-sys-color-inverse-primary: #895021;
  
    /* names the existing stylesheet already uses */
    --bg-main: #19120D;
    --bg-card: #261E18;
    --bg-card-hover: #312822;
    --text-main: #F0DFD6;
    --text-muted: #D6C3B7;
    --text-link: #FFB782;
    --accent-primary: #FFB782;
    --accent-primary-hover: #6D390A;
    --border-subtle: #52443B;
    --border-focus: #9F8D83;
  
    /* Bootstrap follows along */
    --bs-body-bg: #19120D;
    --bs-body-color: #F0DFD6;
    --bs-emphasis-color: #F0DFD6;
    --bs-secondary-color: #D6C3B7;
    --bs-border-color: #52443B;
    --bs-primary: #FFB782;
    --bs-link-color: #FFB782;
    --bs-link-hover-color: #6D390A;
    --bs-danger: #FFB4AB;
    --bs-card-bg: #261E18;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFB4AB;
    --status-danger-bg: #93000A;
  }
}

@media (prefers-color-scheme: dark) {
  /* Clay system dark, medium */
  :root[data-palette="clay"]:not([data-theme])[data-contrast="medium"] {
    --md-sys-color-primary: #FFD4B7;
    --md-sys-color-on-primary: #3F1D00;
    --md-sys-color-primary-container: #C5814D;
    --md-sys-color-on-primary-container: #000000;
    --md-sys-color-secondary: #FBD5BC;
    --md-sys-color-on-secondary: #362111;
    --md-sys-color-secondary-container: #AB8A74;
    --md-sys-color-on-secondary-container: #000000;
    --md-sys-color-tertiary: #DDE0A9;
    --md-sys-color-on-tertiary: #252803;
    --md-sys-color-tertiary-container: #919463;
    --md-sys-color-on-tertiary-container: #000000;
    --md-sys-color-error: #FFD2CC;
    --md-sys-color-on-error: #540003;
    --md-sys-color-error-container: #FF5449;
    --md-sys-color-on-error-container: #000000;
    --md-sys-color-surface: #19120D;
    --md-sys-color-on-surface: #FFFFFF;
    --md-sys-color-surface-variant: #52443B;
    --md-sys-color-on-surface-variant: #EDD8CC;
    --md-sys-color-surface-container-lowest: #0C0603;
    --md-sys-color-surface-container-low: #241C16;
    --md-sys-color-surface-container: #2F2620;
    --md-sys-color-surface-container-high: #3A312B;
    --md-sys-color-surface-container-highest: #463C35;
    --md-sys-color-outline: #C1AEA3;
    --md-sys-color-outline-variant: #9E8D82;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #F0DFD6;
    --md-sys-color-inverse-on-surface: #312822;
    --md-sys-color-inverse-primary: #6E3B0B;
  
    /* names the existing stylesheet already uses */
    --bg-main: #19120D;
    --bg-card: #2F2620;
    --bg-card-hover: #3A312B;
    --text-main: #FFFFFF;
    --text-muted: #EDD8CC;
    --text-link: #FFD4B7;
    --accent-primary: #FFD4B7;
    --accent-primary-hover: #C5814D;
    --border-subtle: #9E8D82;
    --border-focus: #C1AEA3;
  
    /* Bootstrap follows along */
    --bs-body-bg: #19120D;
    --bs-body-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #EDD8CC;
    --bs-border-color: #9E8D82;
    --bs-primary: #FFD4B7;
    --bs-link-color: #FFD4B7;
    --bs-link-hover-color: #C5814D;
    --bs-danger: #FFD2CC;
    --bs-card-bg: #2F2620;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFD2CC;
    --status-danger-bg: #FF5449;
  }
}

@media (prefers-color-scheme: dark) {
  /* Clay system dark, high */
  :root[data-palette="clay"]:not([data-theme])[data-contrast="high"] {
    --md-sys-color-primary: #FFECE2;
    --md-sys-color-on-primary: #000000;
    --md-sys-color-primary-container: #FEB279;
    --md-sys-color-on-primary-container: #170700;
    --md-sys-color-secondary: #FFECE2;
    --md-sys-color-on-secondary: #000000;
    --md-sys-color-secondary-container: #E0BCA3;
    --md-sys-color-on-secondary-container: #170700;
    --md-sys-color-tertiary: #F1F4BB;
    --md-sys-color-on-tertiary: #000000;
    --md-sys-color-tertiary-container: #C3C691;
    --md-sys-color-on-tertiary-container: #0B0C00;
    --md-sys-color-error: #FFECE9;
    --md-sys-color-on-error: #000000;
    --md-sys-color-error-container: #FFAEA4;
    --md-sys-color-on-error-container: #220001;
    --md-sys-color-surface: #19120D;
    --md-sys-color-on-surface: #FFFFFF;
    --md-sys-color-surface-variant: #52443B;
    --md-sys-color-on-surface-variant: #FFFFFF;
    --md-sys-color-surface-container-lowest: #000000;
    --md-sys-color-surface-container-low: #261E18;
    --md-sys-color-surface-container: #382F28;
    --md-sys-color-surface-container-high: #433933;
    --md-sys-color-surface-container-highest: #4F453E;
    --md-sys-color-outline: #FFECE2;
    --md-sys-color-outline-variant: #D2BFB3;
    --md-sys-color-shadow: #000000;
    --md-sys-color-scrim: #000000;
    --md-sys-color-inverse-surface: #F0DFD6;
    --md-sys-color-inverse-on-surface: #000000;
    --md-sys-color-inverse-primary: #6E3B0B;
  
    /* names the existing stylesheet already uses */
    --bg-main: #19120D;
    --bg-card: #382F28;
    --bg-card-hover: #433933;
    --text-main: #FFFFFF;
    --text-muted: #FFFFFF;
    --text-link: #FFECE2;
    --accent-primary: #FFECE2;
    --accent-primary-hover: #FEB279;
    --border-subtle: #D2BFB3;
    --border-focus: #FFECE2;
  
    /* Bootstrap follows along */
    --bs-body-bg: #19120D;
    --bs-body-color: #FFFFFF;
    --bs-emphasis-color: #FFFFFF;
    --bs-secondary-color: #FFFFFF;
    --bs-border-color: #D2BFB3;
    --bs-primary: #FFECE2;
    --bs-link-color: #FFECE2;
    --bs-link-hover-color: #FEB279;
    --bs-danger: #FFECE9;
    --bs-card-bg: #382F28;
  
    /* status colors — see STATUS in build_theme.py */
    --status-success: #34D399;
    --status-success-bg: #064E3B;
    --status-warning: #FBBF24;
    --status-warning-bg: #4A2F0B;
    --status-info: #38BDF8;
    --status-info-bg: #0C3A52;
    --status-danger: #FFECE9;
    --status-danger-bg: #FFAEA4;
  }
}

