/*
 * Generated by infrastructure/branding/factory.py from
 * infrastructure/branding/tokens.yaml. Do not edit by hand -- edit the
 * tokens and run `binocular branding compile`. A regression test
 * (infrastructure/tests/test_branding.py) fails when this file drifts.
 */

:root {
  --bn-font-ui: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bn-font-mono: ui-monospace, SFMono-Regular, "Cascadia Mono", Menlo, Consolas, monospace;
  --bn-radius: 4px;
  --bn-radius-lg: 8px;
  --bn-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.08);
  --bn-focus-ring: 0 0 0 3px rgba(64, 145, 108, 0.35);
  --bn-page: #fafafa;
  --bn-surface: #ffffff;
  --bn-subtle: #f4f4f5;
  --bn-text: #18181b;
  --bn-text-muted: #71717a;
  --bn-text-faint: #8e8e97;
  --bn-border: #dcdce0;
  --bn-border-light: #ebebee;
  --bn-link: #2d6a4f;
  --bn-link-hover: #1b4332;
  --bn-fill: #2d6a4f;
  --bn-fill-text: #ffffff;
  --bn-fill-hover: #1b4332;
  --bn-focus: #40916c;
  --bn-wash: #d8f3dc;
  --bn-wash-strong: #b7e4c7;
  --bn-success-fg: #2d6a4f;
  --bn-success-bg: #d8f3dc;
  --bn-error-fg: #b91c1c;
  --bn-error-bg: #fef2f2;
  --bn-warning-fg: #b45309;
  --bn-warning-bg: #fffbeb;
  --bn-topbar: #40916c;
  --bn-topbar-text: #ffffff;
  --bn-sidebar: #40916c;
  --bn-sidebar-hover: #2d6a4f;
  --bn-sidebar-active: #1b4332;
  --bn-sidebar-text: #ffffff;
  --bn-sidebar-text-faint: #d8f3dc;
}

:root.pf-v5-theme-dark {
  --bn-page: #18181b;
  --bn-surface: #212124;
  --bn-subtle: #2a2a2e;
  --bn-text: #fafafa;
  --bn-text-muted: #a1a1aa;
  --bn-text-faint: #8e8e97;
  --bn-border: #3f3f46;
  --bn-border-light: #2a2a2e;
  --bn-link: #74c69d;
  --bn-link-hover: #95d5b2;
  --bn-fill: #52b788;
  --bn-fill-text: #18181b;
  --bn-fill-hover: #74c69d;
  --bn-focus: #40916c;
  --bn-wash: rgba(82, 183, 136, 0.12);
  --bn-wash-strong: rgba(82, 183, 136, 0.20);
  --bn-success-fg: #74c69d;
  --bn-success-bg: rgba(82, 183, 136, 0.12);
  --bn-error-fg: #f87171;
  --bn-error-bg: rgba(248, 113, 113, 0.12);
  --bn-warning-fg: #fbbf24;
  --bn-warning-bg: rgba(251, 191, 36, 0.12);
  --bn-topbar: #40916c;
  --bn-topbar-text: #ffffff;
  --bn-sidebar: #40916c;
  --bn-sidebar-hover: #2d6a4f;
  --bn-sidebar-active: #1b4332;
  --bn-sidebar-text: #ffffff;
  --bn-sidebar-text-faint: #d8f3dc;
}

:root {
  --bn-lockup: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2080%2080%22%3E%3Crect%20width%3D%2280%22%20height%3D%2280%22%20rx%3D%2217.6%22%20fill%3D%22%2340916c%22%2F%3E%3Cg%20transform%3D%22translate%287.703%206.491%29%20scale%280.80744%29%22%20fill%3D%22%23ffffff%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M20%2027a7%207%200%200%201%2014%200v22a14%2014%200%200%200-26.087-7.064l-.006-.002l6.765-11.098a8%208%200%200%201%205.33-3.694zm14%2022.162V49z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22m22.05%2022.05l-2.12-2.12zm9.9%200l2.121-2.121zM34%2027h3zM10.1%2039.1l2.122%202.122zm-2.187%202.836l-.8%202.89a3%203%200%200%200%203.39-1.377zm-.006-.002l-2.562-1.562a3%203%200%200%200%201.761%204.453zm6.765-11.098l2.562%201.562zm5.33-3.694l.562%202.947a3%203%200%200%200%202.437-3.008zm13.997%2022.02l-3-.034a3%203%200%200%200%202.2%202.925zm.001%200l-.8%202.892a3%203%200%200%200%203.8-2.892zM19.929%2019.93A10%2010%200%200%200%2017%2027h6a4%204%200%200%201%201.172-2.828zM27%2017a10%2010%200%200%200-7.071%202.929l4.243%204.243A4%204%200%200%201%2027%2023zm7.071%202.929A10%2010%200%200%200%2027%2017v6a4%204%200%200%201%202.828%201.172zM37%2026.999a10%2010%200%200%200-2.929-7.07l-4.243%204.243A4%204%200%200%201%2031%2027zM37%2027h-6zm0%2022V27h-6v22zm-9.222-7.778A11%2011%200%200%201%2031%2049h6a17%2017%200%200%200-4.98-12.02zM20%2038a11%2011%200%200%201%207.778%203.222l4.243-4.243A17%2017%200%200%200%2020%2032zm-7.778%203.222A11%2011%200%200%201%2020%2038v-6a17%2017%200%200%200-12.02%204.98zm-1.719%202.227a11%2011%200%200%201%201.719-2.227l-4.243-4.243a17%2017%200%200%200-2.656%203.443zm-3.397%201.376l.007.002l1.6-5.783l-.005-.001zm5.005-15.55L5.345%2040.371l5.124%203.123l6.765-11.097zm7.328-5.08a11%2011%200%200%200-7.328%205.08l5.123%203.123a5%205%200%200%201%203.33-2.31zM17%2027q0%20.102.002.203l5.999-.122l-.001-.08zm16.198%2025.053l1.602-5.782zM37%2049.163V49h-6v.163zM31%2049v.128l5.999.069L37%2049z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M60%2027a7%207%200%200%200-14%200v22a14%2014%200%200%201%2026.087-7.064l.006-.002l-6.765-11.098a8%208%200%200%200-5.33-3.694zM46.001%2049.162V49z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22m57.95%2022.05l2.121-2.121zm-9.9%200l-2.12-2.121zM46%2027h-3zm23.9%2012.1l-2.122%202.122zm2.187%202.836l.8%202.89a3%203%200%200%201-3.39-1.377zm.006-.002l2.562-1.562a3%203%200%200%201-1.761%204.453zm-6.765-11.098l-2.562%201.562zm-5.33-3.694l-.562%202.947a3%203%200%200%201-2.437-3.008zm-13.997%2022.02l3-.034a3%203%200%200%201-2.199%202.925zm0%200l.8%202.892a3%203%200%200%201-3.8-2.892zM60.07%2019.93A10%2010%200%200%201%2063.001%2027h-6a4%204%200%200%200-1.172-2.828zM53.001%2017a10%2010%200%200%201%207.07%202.929l-4.242%204.243A4%204%200%200%200%2053%2023zm-7.072%202.929A10%2010%200%200%201%2053%2017v6a4%204%200%200%200-2.828%201.172zM43%2026.999a10%2010%200%200%201%202.93-7.07l4.242%204.243A4%204%200%200%200%2049%2027zM43%2027h6zm0%2022V27h6v22zm9.222-7.778A11%2011%200%200%200%2049%2049h-6a17%2017%200%200%201%204.98-12.02zM60%2038a11%2011%200%200%200-7.778%203.222l-4.242-4.243A17%2017%200%200%201%2060%2032zm7.778%203.222A11%2011%200%200%200%2060%2038v-6a17%2017%200%200%201%2012.02%204.98zm1.719%202.227a11%2011%200%200%200-1.719-2.227l4.243-4.243a17%2017%200%200%201%202.656%203.443zm3.397%201.376l-.006.002l-1.602-5.783l.007-.001zm-5.005-15.55l6.766%2011.097l-5.123%203.123l-6.766-11.097zm-7.327-5.08a11%2011%200%200%201%207.328%205.08l-5.124%203.123a5%205%200%200%200-3.33-2.31zM63%2027q0%20.102-.002.203L57%2027.08l.001-.08zM46.802%2052.053L45.2%2046.271h.001zM43%2049.163V49h6v.163zM49%2049l.001.128l-6%20.069V49z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M44.243%2024.757A6%206%200%200%201%2046%2029v14a6%206%200%200%200-12-.02V29a6%206%200%200%201%2010.243-4.243%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M46%2029h-3v3h3zm-1.757-4.243l2.12-2.12zM46%2029h3v-3h-3zm0%2014v3h3v-3zm0%200h-3v3h3zm-1.757-4.243l2.12-2.12zm-8.486%200l2.122%202.122zM34%2042.98h-3l6%20.01zm0-13.96h3v-.005zm0-.02h-3v.005zm1.757-4.243l2.122%202.122zM49%2029a9%209%200%200%200-2.636-6.364L42.12%2026.88A3%203%200%200%201%2043%2029zm-3-3v6zm3%2017V29h-6v14zm-3%203v-6zm3-3a9%209%200%200%200-2.636-6.364L42.12%2040.88A3%203%200%200%201%2043%2043zm-2.636-6.364A9%209%200%200%200%2040%2034v6a3%203%200%200%201%202.121.879zM40%2034a9%209%200%200%200-6.364%202.636l4.243%204.243A3%203%200%200%201%2040%2040zm-6.364%202.636A9%209%200%200%200%2031%2042.97l6%20.02a3%203%200%200%201%20.879-2.111zM31%2029.02v13.96h6V29.02zm0-.015v.02l6-.01v-.02zm2.636-6.369A9%209%200%200%200%2031%2029h6a3%203%200%200%201%20.879-2.121zM40%2020a9%209%200%200%200-6.364%202.636l4.243%204.243A3%203%200%200%201%2040%2026zm6.364%202.636A9%209%200%200%200%2040%2020v6a3%203%200%200%201%202.121.879z%22%2F%3E%3Cpath%20d%3D%22M42.121%2045.121a3%203%200%200%200%20.879-2.12h6a9%209%200%200%201-2.636%206.363zM40%2046a3%203%200%200%200%202.121-.879l4.243%204.243A9%209%200%200%201%2040%2052zm-2.121-.879A3%203%200%200%200%2040%2046v6a9%209%200%200%201-6.364-2.636zM37%2043.001a3%203%200%200%200%20.879%202.12l-4.243%204.243A9%209%200%200%201%2031%2043zm.879-2.122A3%203%200%200%200%2037%2043h-6a9%209%200%200%201%202.636-6.364zM40%2040a3%203%200%200%200-2.121.879l-4.243-4.243A9%209%200%200%201%2040%2034zm2.121.879A3%203%200%200%200%2040%2040v-6a9%209%200%200%201%206.364%202.636zm4.243-4.243A9%209%200%200%201%2049%2043h-6a3%203%200%200%200-.879-2.121z%22%2F%3E%3Cpath%20d%3D%22M12.222%2056.778A11%2011%200%200%201%209%2049H3a17%2017%200%200%200%204.98%2012.02zM20%2060a11%2011%200%200%201-7.778-3.222l-4.243%204.243A17%2017%200%200%200%2020%2066zm7.778-3.222A11%2011%200%200%201%2020%2060v6a17%2017%200%200%200%2012.02-4.98zM31%2049a11%2011%200%200%201-3.222%207.778l4.243%204.243A17%2017%200%200%200%2037%2049zm-3.222-7.778A11%2011%200%200%201%2031%2049h6c0-4.508-1.791-8.833-4.98-12.02zM20%2038a11%2011%200%200%201%207.778%203.222l4.243-4.243A17%2017%200%200%200%2020%2032zm-7.778%203.222A11%2011%200%200%201%2020%2038v-6a17%2017%200%200%200-12.02%204.98zm-4.243-4.243A17%2017%200%200%200%203%2049h6a11%2011%200%200%201%203.222-7.778zm59.799%2019.799A11%2011%200%200%200%2071%2049h6a17%2017%200%200%201-4.98%2012.02zM60%2060a11%2011%200%200%200%207.778-3.222l4.243%204.243A17%2017%200%200%201%2060%2066zm-7.778-3.222A11%2011%200%200%200%2060%2060v6a17%2017%200%200%201-12.02-4.98zM49%2049a11%2011%200%200%200%203.222%207.778l-4.243%204.243A17%2017%200%200%201%2043%2049zm3.222-7.778A11%2011%200%200%200%2049%2049h-6c0-4.508%201.791-8.833%204.98-12.02zM60%2038a11%2011%200%200%200-7.778%203.222l-4.243-4.243A17%2017%200%200%201%2060%2032zm7.778%203.222A11%2011%200%200%200%2060%2038v-6a17%2017%200%200%201%2012.02%204.98zm4.243-4.243A17%2017%200%200%201%2077%2049h-6a11%2011%200%200%200-3.222-7.778z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --bn-logo-white: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2080%2080%22%20fill%3D%22%23ffffff%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M20%2027a7%207%200%200%201%2014%200v22a14%2014%200%200%200-26.087-7.064l-.006-.002l6.765-11.098a8%208%200%200%201%205.33-3.694zm14%2022.162V49z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22m22.05%2022.05l-2.12-2.12zm9.9%200l2.121-2.121zM34%2027h3zM10.1%2039.1l2.122%202.122zm-2.187%202.836l-.8%202.89a3%203%200%200%200%203.39-1.377zm-.006-.002l-2.562-1.562a3%203%200%200%200%201.761%204.453zm6.765-11.098l2.562%201.562zm5.33-3.694l.562%202.947a3%203%200%200%200%202.437-3.008zm13.997%2022.02l-3-.034a3%203%200%200%200%202.2%202.925zm.001%200l-.8%202.892a3%203%200%200%200%203.8-2.892zM19.929%2019.93A10%2010%200%200%200%2017%2027h6a4%204%200%200%201%201.172-2.828zM27%2017a10%2010%200%200%200-7.071%202.929l4.243%204.243A4%204%200%200%201%2027%2023zm7.071%202.929A10%2010%200%200%200%2027%2017v6a4%204%200%200%201%202.828%201.172zM37%2026.999a10%2010%200%200%200-2.929-7.07l-4.243%204.243A4%204%200%200%201%2031%2027zM37%2027h-6zm0%2022V27h-6v22zm-9.222-7.778A11%2011%200%200%201%2031%2049h6a17%2017%200%200%200-4.98-12.02zM20%2038a11%2011%200%200%201%207.778%203.222l4.243-4.243A17%2017%200%200%200%2020%2032zm-7.778%203.222A11%2011%200%200%201%2020%2038v-6a17%2017%200%200%200-12.02%204.98zm-1.719%202.227a11%2011%200%200%201%201.719-2.227l-4.243-4.243a17%2017%200%200%200-2.656%203.443zm-3.397%201.376l.007.002l1.6-5.783l-.005-.001zm5.005-15.55L5.345%2040.371l5.124%203.123l6.765-11.097zm7.328-5.08a11%2011%200%200%200-7.328%205.08l5.123%203.123a5%205%200%200%201%203.33-2.31zM17%2027q0%20.102.002.203l5.999-.122l-.001-.08zm16.198%2025.053l1.602-5.782zM37%2049.163V49h-6v.163zM31%2049v.128l5.999.069L37%2049z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M60%2027a7%207%200%200%200-14%200v22a14%2014%200%200%201%2026.087-7.064l.006-.002l-6.765-11.098a8%208%200%200%200-5.33-3.694zM46.001%2049.162V49z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22m57.95%2022.05l2.121-2.121zm-9.9%200l-2.12-2.121zM46%2027h-3zm23.9%2012.1l-2.122%202.122zm2.187%202.836l.8%202.89a3%203%200%200%201-3.39-1.377zm.006-.002l2.562-1.562a3%203%200%200%201-1.761%204.453zm-6.765-11.098l-2.562%201.562zm-5.33-3.694l-.562%202.947a3%203%200%200%201-2.437-3.008zm-13.997%2022.02l3-.034a3%203%200%200%201-2.199%202.925zm0%200l.8%202.892a3%203%200%200%201-3.8-2.892zM60.07%2019.93A10%2010%200%200%201%2063.001%2027h-6a4%204%200%200%200-1.172-2.828zM53.001%2017a10%2010%200%200%201%207.07%202.929l-4.242%204.243A4%204%200%200%200%2053%2023zm-7.072%202.929A10%2010%200%200%201%2053%2017v6a4%204%200%200%200-2.828%201.172zM43%2026.999a10%2010%200%200%201%202.93-7.07l4.242%204.243A4%204%200%200%200%2049%2027zM43%2027h6zm0%2022V27h6v22zm9.222-7.778A11%2011%200%200%200%2049%2049h-6a17%2017%200%200%201%204.98-12.02zM60%2038a11%2011%200%200%200-7.778%203.222l-4.242-4.243A17%2017%200%200%201%2060%2032zm7.778%203.222A11%2011%200%200%200%2060%2038v-6a17%2017%200%200%201%2012.02%204.98zm1.719%202.227a11%2011%200%200%200-1.719-2.227l4.243-4.243a17%2017%200%200%201%202.656%203.443zm3.397%201.376l-.006.002l-1.602-5.783l.007-.001zm-5.005-15.55l6.766%2011.097l-5.123%203.123l-6.766-11.097zm-7.327-5.08a11%2011%200%200%201%207.328%205.08l-5.124%203.123a5%205%200%200%200-3.33-2.31zM63%2027q0%20.102-.002.203L57%2027.08l.001-.08zM46.802%2052.053L45.2%2046.271h.001zM43%2049.163V49h6v.163zM49%2049l.001.128l-6%20.069V49z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M44.243%2024.757A6%206%200%200%201%2046%2029v14a6%206%200%200%200-12-.02V29a6%206%200%200%201%2010.243-4.243%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M46%2029h-3v3h3zm-1.757-4.243l2.12-2.12zM46%2029h3v-3h-3zm0%2014v3h3v-3zm0%200h-3v3h3zm-1.757-4.243l2.12-2.12zm-8.486%200l2.122%202.122zM34%2042.98h-3l6%20.01zm0-13.96h3v-.005zm0-.02h-3v.005zm1.757-4.243l2.122%202.122zM49%2029a9%209%200%200%200-2.636-6.364L42.12%2026.88A3%203%200%200%201%2043%2029zm-3-3v6zm3%2017V29h-6v14zm-3%203v-6zm3-3a9%209%200%200%200-2.636-6.364L42.12%2040.88A3%203%200%200%201%2043%2043zm-2.636-6.364A9%209%200%200%200%2040%2034v6a3%203%200%200%201%202.121.879zM40%2034a9%209%200%200%200-6.364%202.636l4.243%204.243A3%203%200%200%201%2040%2040zm-6.364%202.636A9%209%200%200%200%2031%2042.97l6%20.02a3%203%200%200%201%20.879-2.111zM31%2029.02v13.96h6V29.02zm0-.015v.02l6-.01v-.02zm2.636-6.369A9%209%200%200%200%2031%2029h6a3%203%200%200%201%20.879-2.121zM40%2020a9%209%200%200%200-6.364%202.636l4.243%204.243A3%203%200%200%201%2040%2026zm6.364%202.636A9%209%200%200%200%2040%2020v6a3%203%200%200%201%202.121.879z%22%2F%3E%3Cpath%20d%3D%22M42.121%2045.121a3%203%200%200%200%20.879-2.12h6a9%209%200%200%201-2.636%206.363zM40%2046a3%203%200%200%200%202.121-.879l4.243%204.243A9%209%200%200%201%2040%2052zm-2.121-.879A3%203%200%200%200%2040%2046v6a9%209%200%200%201-6.364-2.636zM37%2043.001a3%203%200%200%200%20.879%202.12l-4.243%204.243A9%209%200%200%201%2031%2043zm.879-2.122A3%203%200%200%200%2037%2043h-6a9%209%200%200%201%202.636-6.364zM40%2040a3%203%200%200%200-2.121.879l-4.243-4.243A9%209%200%200%201%2040%2034zm2.121.879A3%203%200%200%200%2040%2040v-6a9%209%200%200%201%206.364%202.636zm4.243-4.243A9%209%200%200%201%2049%2043h-6a3%203%200%200%200-.879-2.121z%22%2F%3E%3Cpath%20d%3D%22M12.222%2056.778A11%2011%200%200%201%209%2049H3a17%2017%200%200%200%204.98%2012.02zM20%2060a11%2011%200%200%201-7.778-3.222l-4.243%204.243A17%2017%200%200%200%2020%2066zm7.778-3.222A11%2011%200%200%201%2020%2060v6a17%2017%200%200%200%2012.02-4.98zM31%2049a11%2011%200%200%201-3.222%207.778l4.243%204.243A17%2017%200%200%200%2037%2049zm-3.222-7.778A11%2011%200%200%201%2031%2049h6c0-4.508-1.791-8.833-4.98-12.02zM20%2038a11%2011%200%200%201%207.778%203.222l4.243-4.243A17%2017%200%200%200%2020%2032zm-7.778%203.222A11%2011%200%200%201%2020%2038v-6a17%2017%200%200%200-12.02%204.98zm-4.243-4.243A17%2017%200%200%200%203%2049h6a11%2011%200%200%201%203.222-7.778zm59.799%2019.799A11%2011%200%200%200%2071%2049h6a17%2017%200%200%201-4.98%2012.02zM60%2060a11%2011%200%200%200%207.778-3.222l4.243%204.243A17%2017%200%200%201%2060%2066zm-7.778-3.222A11%2011%200%200%200%2060%2060v6a17%2017%200%200%201-12.02-4.98zM49%2049a11%2011%200%200%200%203.222%207.778l-4.243%204.243A17%2017%200%200%201%2043%2049zm3.222-7.778A11%2011%200%200%200%2049%2049h-6c0-4.508%201.791-8.833%204.98-12.02zM60%2038a11%2011%200%200%200-7.778%203.222l-4.243-4.243A17%2017%200%200%201%2060%2032zm7.778%203.222A11%2011%200%200%200%2060%2038v-6a17%2017%200%200%201%2012.02%204.98zm4.243-4.243A17%2017%200%200%201%2077%2049h-6a11%2011%200%200%200-3.222-7.778z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --bn-logo-black: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2080%2080%22%20fill%3D%22%23000000%22%3E%3Cg%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M20%2027a7%207%200%200%201%2014%200v22a14%2014%200%200%200-26.087-7.064l-.006-.002l6.765-11.098a8%208%200%200%201%205.33-3.694zm14%2022.162V49z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22m22.05%2022.05l-2.12-2.12zm9.9%200l2.121-2.121zM34%2027h3zM10.1%2039.1l2.122%202.122zm-2.187%202.836l-.8%202.89a3%203%200%200%200%203.39-1.377zm-.006-.002l-2.562-1.562a3%203%200%200%200%201.761%204.453zm6.765-11.098l2.562%201.562zm5.33-3.694l.562%202.947a3%203%200%200%200%202.437-3.008zm13.997%2022.02l-3-.034a3%203%200%200%200%202.2%202.925zm.001%200l-.8%202.892a3%203%200%200%200%203.8-2.892zM19.929%2019.93A10%2010%200%200%200%2017%2027h6a4%204%200%200%201%201.172-2.828zM27%2017a10%2010%200%200%200-7.071%202.929l4.243%204.243A4%204%200%200%201%2027%2023zm7.071%202.929A10%2010%200%200%200%2027%2017v6a4%204%200%200%201%202.828%201.172zM37%2026.999a10%2010%200%200%200-2.929-7.07l-4.243%204.243A4%204%200%200%201%2031%2027zM37%2027h-6zm0%2022V27h-6v22zm-9.222-7.778A11%2011%200%200%201%2031%2049h6a17%2017%200%200%200-4.98-12.02zM20%2038a11%2011%200%200%201%207.778%203.222l4.243-4.243A17%2017%200%200%200%2020%2032zm-7.778%203.222A11%2011%200%200%201%2020%2038v-6a17%2017%200%200%200-12.02%204.98zm-1.719%202.227a11%2011%200%200%201%201.719-2.227l-4.243-4.243a17%2017%200%200%200-2.656%203.443zm-3.397%201.376l.007.002l1.6-5.783l-.005-.001zm5.005-15.55L5.345%2040.371l5.124%203.123l6.765-11.097zm7.328-5.08a11%2011%200%200%200-7.328%205.08l5.123%203.123a5%205%200%200%201%203.33-2.31zM17%2027q0%20.102.002.203l5.999-.122l-.001-.08zm16.198%2025.053l1.602-5.782zM37%2049.163V49h-6v.163zM31%2049v.128l5.999.069L37%2049z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M60%2027a7%207%200%200%200-14%200v22a14%2014%200%200%201%2026.087-7.064l.006-.002l-6.765-11.098a8%208%200%200%200-5.33-3.694zM46.001%2049.162V49z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22m57.95%2022.05l2.121-2.121zm-9.9%200l-2.12-2.121zM46%2027h-3zm23.9%2012.1l-2.122%202.122zm2.187%202.836l.8%202.89a3%203%200%200%201-3.39-1.377zm.006-.002l2.562-1.562a3%203%200%200%201-1.761%204.453zm-6.765-11.098l-2.562%201.562zm-5.33-3.694l-.562%202.947a3%203%200%200%201-2.437-3.008zm-13.997%2022.02l3-.034a3%203%200%200%201-2.199%202.925zm0%200l.8%202.892a3%203%200%200%201-3.8-2.892zM60.07%2019.93A10%2010%200%200%201%2063.001%2027h-6a4%204%200%200%200-1.172-2.828zM53.001%2017a10%2010%200%200%201%207.07%202.929l-4.242%204.243A4%204%200%200%200%2053%2023zm-7.072%202.929A10%2010%200%200%201%2053%2017v6a4%204%200%200%200-2.828%201.172zM43%2026.999a10%2010%200%200%201%202.93-7.07l4.242%204.243A4%204%200%200%200%2049%2027zM43%2027h6zm0%2022V27h6v22zm9.222-7.778A11%2011%200%200%200%2049%2049h-6a17%2017%200%200%201%204.98-12.02zM60%2038a11%2011%200%200%200-7.778%203.222l-4.242-4.243A17%2017%200%200%201%2060%2032zm7.778%203.222A11%2011%200%200%200%2060%2038v-6a17%2017%200%200%201%2012.02%204.98zm1.719%202.227a11%2011%200%200%200-1.719-2.227l4.243-4.243a17%2017%200%200%201%202.656%203.443zm3.397%201.376l-.006.002l-1.602-5.783l.007-.001zm-5.005-15.55l6.766%2011.097l-5.123%203.123l-6.766-11.097zm-7.327-5.08a11%2011%200%200%201%207.328%205.08l-5.124%203.123a5%205%200%200%200-3.33-2.31zM63%2027q0%20.102-.002.203L57%2027.08l.001-.08zM46.802%2052.053L45.2%2046.271h.001zM43%2049.163V49h6v.163zM49%2049l.001.128l-6%20.069V49z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M44.243%2024.757A6%206%200%200%201%2046%2029v14a6%206%200%200%200-12-.02V29a6%206%200%200%201%2010.243-4.243%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20d%3D%22M46%2029h-3v3h3zm-1.757-4.243l2.12-2.12zM46%2029h3v-3h-3zm0%2014v3h3v-3zm0%200h-3v3h3zm-1.757-4.243l2.12-2.12zm-8.486%200l2.122%202.122zM34%2042.98h-3l6%20.01zm0-13.96h3v-.005zm0-.02h-3v.005zm1.757-4.243l2.122%202.122zM49%2029a9%209%200%200%200-2.636-6.364L42.12%2026.88A3%203%200%200%201%2043%2029zm-3-3v6zm3%2017V29h-6v14zm-3%203v-6zm3-3a9%209%200%200%200-2.636-6.364L42.12%2040.88A3%203%200%200%201%2043%2043zm-2.636-6.364A9%209%200%200%200%2040%2034v6a3%203%200%200%201%202.121.879zM40%2034a9%209%200%200%200-6.364%202.636l4.243%204.243A3%203%200%200%201%2040%2040zm-6.364%202.636A9%209%200%200%200%2031%2042.97l6%20.02a3%203%200%200%201%20.879-2.111zM31%2029.02v13.96h6V29.02zm0-.015v.02l6-.01v-.02zm2.636-6.369A9%209%200%200%200%2031%2029h6a3%203%200%200%201%20.879-2.121zM40%2020a9%209%200%200%200-6.364%202.636l4.243%204.243A3%203%200%200%201%2040%2026zm6.364%202.636A9%209%200%200%200%2040%2020v6a3%203%200%200%201%202.121.879z%22%2F%3E%3Cpath%20d%3D%22M42.121%2045.121a3%203%200%200%200%20.879-2.12h6a9%209%200%200%201-2.636%206.363zM40%2046a3%203%200%200%200%202.121-.879l4.243%204.243A9%209%200%200%201%2040%2052zm-2.121-.879A3%203%200%200%200%2040%2046v6a9%209%200%200%201-6.364-2.636zM37%2043.001a3%203%200%200%200%20.879%202.12l-4.243%204.243A9%209%200%200%201%2031%2043zm.879-2.122A3%203%200%200%200%2037%2043h-6a9%209%200%200%201%202.636-6.364zM40%2040a3%203%200%200%200-2.121.879l-4.243-4.243A9%209%200%200%201%2040%2034zm2.121.879A3%203%200%200%200%2040%2040v-6a9%209%200%200%201%206.364%202.636zm4.243-4.243A9%209%200%200%201%2049%2043h-6a3%203%200%200%200-.879-2.121z%22%2F%3E%3Cpath%20d%3D%22M12.222%2056.778A11%2011%200%200%201%209%2049H3a17%2017%200%200%200%204.98%2012.02zM20%2060a11%2011%200%200%201-7.778-3.222l-4.243%204.243A17%2017%200%200%200%2020%2066zm7.778-3.222A11%2011%200%200%201%2020%2060v6a17%2017%200%200%200%2012.02-4.98zM31%2049a11%2011%200%200%201-3.222%207.778l4.243%204.243A17%2017%200%200%200%2037%2049zm-3.222-7.778A11%2011%200%200%201%2031%2049h6c0-4.508-1.791-8.833-4.98-12.02zM20%2038a11%2011%200%200%201%207.778%203.222l4.243-4.243A17%2017%200%200%200%2020%2032zm-7.778%203.222A11%2011%200%200%201%2020%2038v-6a17%2017%200%200%200-12.02%204.98zm-4.243-4.243A17%2017%200%200%200%203%2049h6a11%2011%200%200%201%203.222-7.778zm59.799%2019.799A11%2011%200%200%200%2071%2049h6a17%2017%200%200%201-4.98%2012.02zM60%2060a11%2011%200%200%200%207.778-3.222l4.243%204.243A17%2017%200%200%201%2060%2066zm-7.778-3.222A11%2011%200%200%200%2060%2060v6a17%2017%200%200%201-12.02-4.98zM49%2049a11%2011%200%200%200%203.222%207.778l-4.243%204.243A17%2017%200%200%201%2043%2049zm3.222-7.778A11%2011%200%200%200%2049%2049h-6c0-4.508%201.791-8.833%204.98-12.02zM60%2038a11%2011%200%200%200-7.778%203.222l-4.243-4.243A17%2017%200%200%201%2060%2032zm7.778%203.222A11%2011%200%200%200%2060%2038v-6a17%2017%200%200%201%2012.02%204.98zm4.243-4.243A17%2017%200%200%201%2077%2049h-6a11%2011%200%200%200-3.222-7.778z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

/* Keycloak's admin and account consoles -- the pages behind the docs home
 * page's Access and Account buttons.
 *
 * Both are React apps on PatternFly v5, so branding them is variable
 * redefinition only: the accent colour and links. Surfaces, text and borders
 * stay PatternFly's own, because both consoles keep Keycloak's dark mode and
 * PatternFly already flips those itself. The logo and favicon are files next
 * to this one (`logo.svg`, `favicon.svg`), not CSS.
 */

:root {
	--pf-v5-global--primary-color--100: var(--bn-fill);
	--pf-v5-global--primary-color--200: var(--bn-fill-hover);
	/* Not `--primary-color--light-100`/`--dark-100`: PatternFly sets those per
	 * scheme under `.pf-v5-theme-dark`, and overriding them here outranks
	 * that -- the admin console's "Current realm" label went dark-on-dark. */
	--pf-v5-global--link--Color: var(--bn-link);
	--pf-v5-global--link--Color--hover: var(--bn-link-hover);
	--pf-v5-global--active-color--100: var(--bn-fill);
	/* PatternFly's light blue (#73bcf7) for hovers on dark surfaces, and its
	 * source palette step. Always the same pale red as the sidebar's marker. */
	--pf-v5-global--palette--blue-200: #f87171;
	--pf-v5-global--active-color--400: #f87171;
	--pf-v5-global--link--Color--light--hover: #f87171;
	--pf-v5-global--link--Color--dark--hover: #f87171;
	--pf-v5-global--FontFamily--text: var(--bn-font-ui);
	--pf-v5-global--FontFamily--heading: var(--bn-font-ui);
	--pf-v5-global--FontFamily--redhat-updated--text: var(--bn-font-ui);
	--pf-v5-global--FontFamily--redhat-updated--heading: var(--bn-font-ui);
	--pf-v5-global--FontFamily--monospace: var(--bn-font-mono);
}

/* A primary button's label sits on the fill, which is dark green in the light
 * scheme and light green in the dark one -- so its text has to flip too. */
.pf-v5-c-button.pf-m-primary {
	--pf-v5-c-button--m-primary--Color: var(--bn-fill-text);
	--pf-v5-c-button--m-primary--hover--Color: var(--bn-fill-text);
	--pf-v5-c-button--m-primary--focus--Color: var(--bn-fill-text);
	--pf-v5-c-button--m-primary--active--Color: var(--bn-fill-text);
}

/* The top bar and the sidebar are Keycloak's near-black chrome, so the accent
 * variables above never reach them. `:root` in the selectors lifts them over
 * PatternFly's `:where(.pf-v5-theme-dark) .pf-v5-c-masthead`, which paints the
 * dark scheme's bar black. Both bars take the same green as the other
 * surfaces' (`--bn-topbar`/`--bn-sidebar`) in either scheme. */
:root .pf-v5-c-masthead {
	--pf-v5-c-masthead--BackgroundColor: var(--bn-topbar);
	color: var(--bn-topbar-text);
}

/* The dark scheme paints the content div inside the bar black on its own. */
:root .pf-v5-c-masthead__content {
	background-color: var(--bn-topbar);
}

:root .pf-v5-c-page__sidebar {
	--pf-v5-c-page__sidebar--BackgroundColor: var(--bn-sidebar);
	--pf-v5-global--Color--100: var(--bn-sidebar-text);
	--pf-v5-global--Color--200: var(--bn-sidebar-text-faint);
	/* PatternFly's `dark-200` (#3c3f42) is the colour of the section titles' and
	 * the realm strip's dividers, among others. Everything in the sidebar that
	 * reads it wants the hover green instead. */
	--pf-v5-global--BackgroundColor--dark-200: var(--bn-sidebar-hover);
}

:root .pf-v5-c-page__sidebar .pf-v5-c-nav {
	--pf-v5-c-nav__link--Color: var(--bn-sidebar-text);
	--pf-v5-c-nav__link--hover--Color: var(--bn-sidebar-text);
	--pf-v5-c-nav__link--focus--Color: var(--bn-sidebar-text);
	--pf-v5-c-nav__link--active--Color: var(--bn-sidebar-text);
	--pf-v5-c-nav__link--m-current--Color: var(--bn-sidebar-text);
	--pf-v5-c-nav__link--hover--BackgroundColor: var(--bn-sidebar-hover);
	--pf-v5-c-nav__link--focus--BackgroundColor: var(--bn-sidebar-hover);
	--pf-v5-c-nav__link--active--BackgroundColor: var(--bn-sidebar-active);
	--pf-v5-c-nav__link--m-current--BackgroundColor: transparent;
	/* The dividers between items. */
	--pf-v5-c-nav__item--before--BorderColor: var(--bn-sidebar-hover);
	--pf-v5-c-nav__link--before--BorderColor: var(--bn-sidebar-hover);
	--pf-v5-c-nav__item--before--BorderWidth: 2px;
	--pf-v5-c-nav__link--before--BorderBottomWidth: 2px;
}

/* The marker at a link's left edge is the only sign of the current item (it has
 * no fill of its own). PatternFly draws it in blue, which fights the green, so
 * it is a pale red instead: the dark scheme's error colour in tokens.yaml,
 * fixed here because the sidebar is the same green in both schemes. Its width
 * is PatternFly's own -- zero except where a state shows it. */
:root .pf-v5-c-page__sidebar .pf-v5-c-nav__link::after,
:root .pf-v5-c-page__sidebar .pf-v5-c-menu__item::after {
	border-color: #f87171;
}

/* The same pale red for every other state-dependent line PatternFly draws in
 * its light blue (#73bcf7, `--pf-v5-global--link--Color--light`) because the
 * bars are dark: the "Back to Security Admin Console" link in the account
 * console's top bar. The link's
 * text is the bar's own text colour -- a red label would not read on the
 * green -- and the red is its hover/focus underline. */
:root .pf-v5-c-masthead .pf-v5-c-button.pf-m-link,
:root [data-testid="referrer-link"] {
	--pf-v5-c-button--m-link--Color: var(--bn-topbar-text);
	--pf-v5-c-button--m-link--hover--Color: var(--bn-topbar-text);
	--pf-v5-c-button--m-link--focus--Color: var(--bn-topbar-text);
	--pf-v5-c-button--m-link--active--Color: var(--bn-topbar-text);
	color: var(--bn-topbar-text);
}

:root .pf-v5-c-masthead .pf-v5-c-button.pf-m-link .pf-v5-c-button__icon,
:root [data-testid="referrer-link"] .pf-v5-c-button__icon {
	color: var(--bn-topbar-text);
}

:root .pf-v5-c-masthead .pf-v5-c-button.pf-m-link::before,
:root .pf-v5-c-masthead .pf-v5-c-button.pf-m-link::after,
:root [data-testid="referrer-link"]::before,
:root [data-testid="referrer-link"]::after {
	border-color: #f87171;
}

/* The realm selector strip at the sidebar's top is a hard-coded black. */
:root .pf-v5-c-page__sidebar-body.pf-m-menu {
	background-color: var(--bn-sidebar-hover);
}

/* The "Current realm" pill is a static label beside the realm's name, not a
 * control, and a Binocular solution has exactly one realm -- so it is noise. The
 * heading keeps the realm's name. */
:root .pf-v5-c-page__sidebar .pf-v5-c-nav__section-title .pf-v5-c-label {
	display: none;
}

/* "Manage" and "Configure" are section titles, but read as buttons next to the
 * menu items. Small caps-style capitals set them apart. The realm's own heading
 * uses the same class but carries an inline style, which is what tells the two
 * apart here. */
:root .pf-v5-c-page__sidebar .pf-v5-c-nav__section-title:not([style]) {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.75rem;
}

/* The user menu in the top bar. PatternFly draws a toggle as a top and side
 * border on `::before` plus a separate accent line under it on `::after`, which
 * thickens on hover. One even, rounded outline in the hover green instead. */
:root .pf-v5-c-masthead .pf-v5-c-menu-toggle {
	border-radius: var(--bn-radius-lg);
	box-shadow: none;
	margin-block: 0.375rem;
}

:root .pf-v5-c-masthead .pf-v5-c-menu-toggle::before {
	border: 1px solid var(--bn-sidebar-hover);
	border-radius: inherit;
	box-shadow: none;
}

:root .pf-v5-c-masthead .pf-v5-c-menu-toggle::after {
	display: none;
}

/* The realm's display name heading at the top of the sidebar repeats the brand
 * -- a Binocular solution has one realm, named for the product -- so it moves
 * to the top bar, next to the logo (below). It is the one section title with an
 * inline style. */
:root .pf-v5-c-page__sidebar .pf-v5-c-nav__section-title[style] {
	display: none;
}

/* `Binocular` is `titles.product` in tokens.yaml. Only the admin console's
 * wordmark follows the logo in both consoles, so they read as one product. */
.pf-v5-c-masthead__brand {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.pf-v5-c-masthead__brand::after {
	content: "Binocular";
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	color: var(--bn-topbar-text);
}

/* The masthead brand is a square lockup, not Keycloak's wide wordmark. */
.pf-v5-c-masthead__brand img {
	height: 2.25rem;
	width: auto;
}
