/* ============================================================
   theme-tokens.css — AUTO-GENERATED, DO NOT EDIT BY HAND
   Regenerate:  python deploy/gen-theme-tokens.py
   Then bump CACHE in static/sw.js or installed clients never see it.

   Mode-correct accent colors derived from each seed via Material 3
   tonal palettes (Fidelity scheme). Tabler ships one hex per accent for
   BOTH modes, which cannot be correct in both — 5 of 12 stock accents
   failed WCAG AA on a dark card, the other 7 failed on light, none
   passed both. These pick the tone per mode instead.

   Accent-only by design: surfaces are NOT seed-derived, so the picker
   still changes only the accent. --tblr-primary-darken / -lt are
   color-mix()'d from --tblr-primary by Tabler and follow automatically.

   MUST load AFTER tabler-themes.min.css.
   ============================================================ */

/* mesh · dark — accent 12.59:1 on card, button text 11.26:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="mesh"] {
  --tblr-primary: #b3ffc4;
  --tblr-primary-rgb: 179, 255, 196;
  --tblr-primary-fg: #00391a;
}
/* mesh · light — accent 6.47:1 on card, button text 6.47:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="mesh"] {
  --tblr-primary: #006d38;
  --tblr-primary-rgb: 0, 109, 56;
  --tblr-primary-fg: #ffffff;
}

/* blue · dark — accent 8.65:1 on card, button text 7.75:1 */
:root[data-bs-theme="dark"]:not([data-bs-theme-primary]) {
  --tblr-primary: #a8c8ff;
  --tblr-primary-rgb: 168, 200, 255;
  --tblr-primary-fg: #003061;
}
/* blue · light — accent 7.21:1 on card, button text 7.21:1 */
:root:not([data-bs-theme="dark"]):not([data-bs-theme-primary]) {
  --tblr-primary: #0057a6;
  --tblr-primary-rgb: 0, 87, 166;
  --tblr-primary-fg: #ffffff;
}

/* azure · dark — accent 8.63:1 on card, button text 7.69:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="azure"] {
  --tblr-primary: #99cbff;
  --tblr-primary-rgb: 153, 203, 255;
  --tblr-primary-fg: #003355;
}
/* azure · light — accent 6.49:1 on card, button text 6.49:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="azure"] {
  --tblr-primary: #00629d;
  --tblr-primary-rgb: 0, 98, 157;
  --tblr-primary-fg: #ffffff;
}

/* indigo · dark — accent 8.61:1 on card, button text 7.72:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="indigo"] {
  --tblr-primary: #b9c3ff;
  --tblr-primary-rgb: 185, 195, 255;
  --tblr-primary-fg: #002388;
}
/* indigo · light — accent 7.20:1 on card, button text 7.20:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="indigo"] {
  --tblr-primary: #2248d1;
  --tblr-primary-rgb: 34, 72, 209;
  --tblr-primary-fg: #ffffff;
}

/* purple · dark — accent 8.63:1 on card, button text 7.72:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="purple"] {
  --tblr-primary: #f4aeff;
  --tblr-primary-rgb: 244, 174, 255;
  --tblr-primary-fg: #560069;
}
/* purple · light — accent 6.98:1 on card, button text 6.98:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="purple"] {
  --tblr-primary: #921dae;
  --tblr-primary-rgb: 146, 29, 174;
  --tblr-primary-fg: #ffffff;
}

/* pink · dark — accent 8.61:1 on card, button text 7.70:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="pink"] {
  --tblr-primary: #ffb1c2;
  --tblr-primary-rgb: 255, 177, 194;
  --tblr-primary-fg: #66002b;
}
/* pink · light — accent 6.66:1 on card, button text 6.66:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="pink"] {
  --tblr-primary: #b41254;
  --tblr-primary-rgb: 180, 18, 84;
  --tblr-primary-fg: #ffffff;
}

/* red · dark — accent 8.60:1 on card, button text 7.72:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="red"] {
  --tblr-primary: #ffb3ad;
  --tblr-primary-rgb: 255, 179, 173;
  --tblr-primary-fg: #68000a;
}
/* red · light — accent 6.71:1 on card, button text 6.71:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="red"] {
  --tblr-primary: #b31e24;
  --tblr-primary-rgb: 179, 30, 36;
  --tblr-primary-fg: #ffffff;
}

/* orange · dark — accent 8.65:1 on card, button text 7.73:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="orange"] {
  --tblr-primary: #ffb694;
  --tblr-primary-rgb: 255, 182, 148;
  --tblr-primary-fg: #571f00;
}
/* orange · light — accent 6.46:1 on card, button text 6.46:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="orange"] {
  --tblr-primary: #a14000;
  --tblr-primary-rgb: 161, 64, 0;
  --tblr-primary-fg: #ffffff;
}

/* yellow · dark — accent 9.24:1 on card, button text 8.30:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="yellow"] {
  --tblr-primary: #ffc273;
  --tblr-primary-rgb: 255, 194, 115;
  --tblr-primary-fg: #462a00;
}
/* yellow · light — accent 6.46:1 on card, button text 6.46:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="yellow"] {
  --tblr-primary: #845400;
  --tblr-primary-rgb: 132, 84, 0;
  --tblr-primary-fg: #ffffff;
}

/* lime · dark — accent 8.62:1 on card, button text 7.70:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="lime"] {
  --tblr-primary: #93da3c;
  --tblr-primary-rgb: 147, 218, 60;
  --tblr-primary-fg: #1e3700;
}
/* lime · light — accent 6.50:1 on card, button text 6.50:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="lime"] {
  --tblr-primary: #3f6900;
  --tblr-primary-rgb: 63, 105, 0;
  --tblr-primary-fg: #ffffff;
}

/* green · dark — accent 8.65:1 on card, button text 7.78:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="green"] {
  --tblr-primary: #61e06a;
  --tblr-primary-rgb: 97, 224, 106;
  --tblr-primary-fg: #00390c;
}
/* green · light — accent 6.46:1 on card, button text 6.46:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="green"] {
  --tblr-primary: #006e1f;
  --tblr-primary-rgb: 0, 110, 31;
  --tblr-primary-fg: #ffffff;
}

/* teal · dark — accent 8.59:1 on card, button text 7.71:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="teal"] {
  --tblr-primary: #5ddcaa;
  --tblr-primary-rgb: 93, 220, 170;
  --tblr-primary-fg: #003826;
}
/* teal · light — accent 6.46:1 on card, button text 6.46:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="teal"] {
  --tblr-primary: #006c4c;
  --tblr-primary-rgb: 0, 108, 76;
  --tblr-primary-fg: #ffffff;
}

/* cyan · dark — accent 8.64:1 on card, button text 7.73:1 */
:root[data-bs-theme="dark"][data-bs-theme-primary="cyan"] {
  --tblr-primary: #62d6ed;
  --tblr-primary-rgb: 98, 214, 237;
  --tblr-primary-fg: #00363f;
}
/* cyan · light — accent 6.47:1 on card, button text 6.47:1 */
:root:not([data-bs-theme="dark"])[data-bs-theme-primary="cyan"] {
  --tblr-primary: #006877;
  --tblr-primary-rgb: 0, 104, 119;
  --tblr-primary-fg: #ffffff;
}

/* Customizer swatch for the 'mesh' option — Tabler has no .bg-mesh.
   Shows the brand SEED (#67EA94), not the derived accent, so the chip reads
   the same in both modes. */
.bg-mesh { background-color: #67ea94; }
