/* tokens.css — generated from src/_data/site.js. Do not edit by hand. */
:root {
  --cnvs-themecolor: #84B82B;
  --cnvs-themecolor-rgb: 132, 184, 43;
  --cnvs-body-font: 'Roboto', sans-serif;
  --cnvs-primary-font: 'Roboto', sans-serif;
  --xb-bg: #15324D;
  --xb-bg-offset: #1B3D5C;
  --xb-bg-deep: #0E2438;
  --xb-cta-label: #15324D;
  --xb-focus: #84B82B; /* focus ring (T15 ruling 1): bg 5.56 · bgOffset 4.75 · bgDeep 6.68 */
  --xb-meta-text: #AAAAAA;
  --xb-error404: #DDDDDD;
  --xb-primary: #84B82B;          /* primary fills in both themes (.button, brand tags; T18) */
  --xb-primary-rgb: 132, 184, 43;
  --xb-line: var(--xb-bg-offset);                  /* .line-xs (custom.css) */
  /* R6 accents (T22, decisions.md §17): brand tints derived from the lever */
  --xb-mark-bg: color-mix(in srgb, var(--xb-primary) 40%, var(--xb-bg)); /* <mark>: text #E9ECEF 5.4:1 */
  --xb-callout-bg: var(--xb-bg-offset);            /* callout info / tip surface */
}
/* Light theme (T18, decisions.md §16 Theme rulings): body without .dark = TPL native light (style.css:13500–13529)
   + the lever's light values. The theme colour turns text primary; :root vars derived from it resolve at :root
   (style.css:13286–13287, :13524) → re-declared. Primary fills re-pinned in custom.css. */
body:not(.dark) {
  --cnvs-themecolor: #4D6B19;
  --cnvs-themecolor-rgb: 77, 107, 25;
  --bs-link-color: var(--cnvs-themecolor);
  --bs-link-color-rgb: var(--cnvs-themecolor-rgb);
  --cnvs-link-color: var(--cnvs-themecolor);
  --cnvs-link-hover-color: #415B15; /* style.css:13525 invalid var, as under .dark */
  --cnvs-contrast-500: #686D71;
  --xb-focus: var(--cnvs-themecolor);
  --xb-meta-text: #6C6C6C;
  --xb-error404: #898989;
  --xb-line: #EEEEEE;
  /* fill hover (button, brand tag) = the dark value: theme.primary 70% toward white */
  --xb-primary-hover: color-mix(in srgb, var(--xb-primary) 70%, var(--cnvs-white));
  /* R6 accents (T22): brand tints toward white */
  --xb-mark-bg: color-mix(in srgb, var(--xb-primary) 30%, var(--cnvs-white)); /* <mark>: text #212529 12:1 */
  --xb-callout-bg: color-mix(in srgb, var(--xb-primary) 10%, var(--cnvs-white));
}
.dark {
  --cnvs-contrast-bg: var(--xb-bg);               /* style.css:36169 (page via body.dark :36208, header :36198) */
  --cnvs-contrast-bg-offset: var(--xb-bg-offset); /* style.css:36170 */
  --cnvs-header-sticky-bg: var(--xb-bg-offset);   /* style.css:36199 */
  --cnvs-footer-bg: var(--xb-bg-deep);            /* style.css:36204 */
  /* hover of primary links (decisions.md §3); .dark only — in :root contrast-1000 is the light scheme's black */
  --xb-primary-hover: color-mix(in srgb, var(--cnvs-themecolor) 70%, var(--cnvs-contrast-1000));
  /* dark values back for .dark inside a light body (header, footer, photo overlays; T18) */
  --cnvs-themecolor: var(--xb-primary);
  --cnvs-themecolor-rgb: var(--xb-primary-rgb);
  --cnvs-link-color: var(--cnvs-themecolor);
  --xb-focus: var(--xb-primary);
  --xb-meta-text: #AAAAAA;
  --xb-error404: #DDDDDD;
  --xb-line: var(--xb-bg-offset);
}
[data-bs-theme="dark"] { --bs-body-bg: var(--xb-bg); }
/* Empty-body frame (decisions.md §17 ruling H, T20): /js/theme-init.js chose light (html without data-bs-theme) while the
   server's body.dark waits for /js/theme.js → the light page values (style.css:216 / :214, body.dark :36208) */
html:not([data-bs-theme="dark"]) body.dark { background-color: var(--bs-body-bg); color: var(--bs-body-color); }
/* FAQ accordion brand (decisions.md §4). Bootstrap sets these on .accordion itself (style.css:4587–4609),
   so a bare [data-bs-theme] rule would not reach them. */
[data-bs-theme="dark"] .accordion {
  --bs-accordion-active-color: var(--cnvs-themecolor);
  --bs-accordion-active-bg: var(--xb-bg-offset);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 2px var(--xb-focus); /* T15: solid ring, was .25 alpha (1.55:1) */
}
/* Light (T18): Bootstrap light active = primary-bg-subtle blue (style.css:4607–4608), focus ring blue .25 (:4604) */
body:not(.dark) .accordion {
  --bs-accordion-active-color: var(--cnvs-themecolor);
  --bs-accordion-active-bg: var(--cnvs-contrast-bg-offset);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 2px var(--xb-focus);
}
/* Chevron, collapsed + active (T10b): Bootstrap dark data-URI icons with a blue fill (style.css:4719–4722), same
   selector and SVG, fill = theme.primary (a custom property cannot reach inside a data URI). */
[data-bs-theme=dark] .accordion-button::after {
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2384B82B'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2384B82B'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e");
}
/* Pager brand (decisions.md §4, §6). Bootstrap declares these on .pagination (style.css:4756–4776), Canvas re-points
   colour/hover/active to the theme colour (style.css:33019–33031) but leaves active text #fff (2.37:1) and the
   Bootstrap-blue focus ring. Normal items: bgOffset + light text (T05b); disabled keeps Bootstrap's (style.css:4774–4776). */
[data-bs-theme="dark"] .pagination {
  --bs-pagination-color: var(--cnvs-contrast-900);
  --bs-pagination-bg: var(--xb-bg-offset);
  --bs-pagination-active-color: var(--xb-cta-label);
  --bs-pagination-hover-color: var(--xb-cta-label);
  --bs-pagination-focus-color: var(--xb-cta-label);
  --bs-pagination-focus-bg: var(--cnvs-themecolor);
  --bs-pagination-focus-box-shadow: 0 0 0 2px var(--xb-focus); /* T15: solid ring, was .25 alpha (1.55:1) */
}
/* Light (T18): Canvas light pagination passes (theme colour text, fill + contrast-0 text, style.css:33024–33031); Bootstrap
   focus stays blue (style.css:4768–4770) → filled like :hover, solid ring */
body:not(.dark) .pagination {
  --bs-pagination-focus-color: var(--cnvs-contrast-0);
  --bs-pagination-focus-bg: var(--cnvs-themecolor);
  --bs-pagination-focus-box-shadow: 0 0 0 2px var(--xb-focus);
}
/* Home tabs nav (T18): TPL navbar-light swapped to navbar-dark for the dark base (decisions.md §4) → white toggler on the
   light body (style.css:4384–4393). Light: Bootstrap's light .navbar values (style.css:3976, :3989–3990, emphasis rgb =
   --cnvs-contrast-rgb), icon = the same SVG, stroke theme.light.contrast500 (a custom property cannot reach a data URI). */
body:not(.dark) .navbar-dark {
  --bs-navbar-color: rgba(var(--cnvs-contrast-rgb), .65);
  --bs-navbar-toggler-border-color: rgba(var(--cnvs-contrast-rgb), .15);
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23686D71' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
