/*fern-site-stylesheet*/:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 640px;
  --sidebar-width: 288px;
  --page-width: 1408px;
  --logo-height: 28px;
  --font-body: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-code: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
}

:root {
  --typography-body-font-family: var(--font-body);
  --typography-heading-font-family: var(--font-heading);
  --typography-code-font-family: var(--font-code);
}


.light, :root {
  --accent-1: #fcfdff;
  --accent-2: #f5f9ff;
  --accent-3: #eaf3fe;
  --accent-4: #dcecff;
  --accent-5: #cbe2ff;
  --accent-6: #b7d5fd;
  --accent-7: #9dc3f6;
  --accent-8: #78acef;
  --accent-9: #0d6dd3;
  --accent-10: #005ec3;
  --accent-11: #116fd5;
  --accent-12: #0e3360;

  --accent-a1: #0055ff03;
  --accent-a2: #0066ff0a;
  --accent-a3: #006ef315;
  --accent-a4: #0075ff23;
  --accent-a5: #0071ff34;
  --accent-a6: #006bf848;
  --accent-a7: #0063e862;
  --accent-a8: #0063e187;
  --accent-a9: #0065d1f2;
  --accent-a10: #005ec3;
  --accent-a11: #0065d2ee;
  --accent-a12: #002757f1;

  --accent-contrast: #fff;
  --accent-surface: #f3f8ffcc;
  --accent-indicator: #0d6dd3;
  --accent-track: #0d6dd3;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.3% 0.0028 255.6);
      --accent-2: oklch(98.2% 0.0087 255.6);
      --accent-3: oklch(96% 0.0181 255.6);
      --accent-4: oklch(93.7% 0.0342 255.6);
      --accent-5: oklch(90.6% 0.0498 255.6);
      --accent-6: oklch(86.4% 0.0646 255.6);
      --accent-7: oklch(80.9% 0.0826 255.6);
      --accent-8: oklch(73.4% 0.1123 255.6);
      --accent-9: oklch(54.4% 0.1766 255.6);
      --accent-10: oklch(49.7% 0.1766 255.6);
      --accent-11: oklch(54.9% 0.1766 255.6);
      --accent-12: oklch(32.2% 0.0899 255.6);

      --accent-a1: color(display-p3 0.0235 0.349 1 / 0.012);
      --accent-a2: color(display-p3 0.0235 0.349 0.8941 / 0.036);
      --accent-a3: color(display-p3 0.0078 0.3725 0.898 / 0.075);
      --accent-a4: color(display-p3 0.0078 0.3804 0.9412 / 0.126);
      --accent-a5: color(display-p3 0.0078 0.3804 0.9412 / 0.189);
      --accent-a6: color(display-p3 0.0039 0.349 0.9098 / 0.259);
      --accent-a7: color(display-p3 0.0039 0.3255 0.8588 / 0.353);
      --accent-a8: color(display-p3 0.0039 0.3255 0.8314 / 0.487);
      --accent-a9: color(display-p3 0 0.2824 0.7529 / 0.808);
      --accent-a10: color(display-p3 0 0.2471 0.6902 / 0.848);
      --accent-a11: color(display-p3 0 0.2863 0.7608 / 0.8);
      --accent-a12: color(display-p3 0 0.1098 0.2941 / 0.902);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9569 0.9725 1 / 0.8);
      --accent-indicator: oklch(54.4% 0.1766 255.6);
      --accent-track: oklch(54.4% 0.1766 255.6);
    }
  }
}


.light, :root {
  --grayscale-1: #fdfcfd;
  --grayscale-2: #faf9fb;
  --grayscale-3: #f2eff3;
  --grayscale-4: #eae7ec;
  --grayscale-5: #e3dfe6;
  --grayscale-6: #dbd8e0;
  --grayscale-7: #d0cdd7;
  --grayscale-8: #bcbac7;
  --grayscale-9: #8e8c99;
  --grayscale-10: #84828e;
  --grayscale-11: #65636d;
  --grayscale-12: #211f26;

  --grayscale-a1: #55005503;
  --grayscale-a2: #2b005506;
  --grayscale-a3: #30004010;
  --grayscale-a4: #20003618;
  --grayscale-a5: #20003820;
  --grayscale-a6: #14003527;
  --grayscale-a7: #10003332;
  --grayscale-a8: #08003145;
  --grayscale-a9: #05001d73;
  --grayscale-a10: #0500197d;
  --grayscale-a11: #0400119c;
  --grayscale-a12: #020008e0;

  --grayscale-contrast: #000;
  --grayscale-surface: #ffffffcc;
  --grayscale-indicator: #8e8c99;
  --grayscale-track: #8e8c99;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.991 0.988 0.992);
      --grayscale-2: color(display-p3 0.98 0.976 0.984);
      --grayscale-3: color(display-p3 0.946 0.938 0.952);
      --grayscale-4: color(display-p3 0.915 0.906 0.925);
      --grayscale-5: color(display-p3 0.886 0.876 0.901);
      --grayscale-6: color(display-p3 0.856 0.846 0.875);
      --grayscale-7: color(display-p3 0.814 0.804 0.84);
      --grayscale-8: color(display-p3 0.735 0.728 0.777);
      --grayscale-9: color(display-p3 0.555 0.549 0.596);
      --grayscale-10: color(display-p3 0.514 0.508 0.552);
      --grayscale-11: color(display-p3 0.395 0.388 0.424);
      --grayscale-12: color(display-p3 0.128 0.122 0.147);

      --grayscale-a1: #55005503;
      --grayscale-a2: #2b005506;
      --grayscale-a3: #30004010;
      --grayscale-a4: #20003618;
      --grayscale-a5: #20003820;
      --grayscale-a6: #14003527;
      --grayscale-a7: #10003332;
      --grayscale-a8: #08003145;
      --grayscale-a9: #05001d73;
      --grayscale-a10: #0500197d;
      --grayscale-a11: #0400119c;
      --grayscale-a12: #020008e0;

      --grayscale-contrast: #000;
      --grayscale-surface: color(display-p3 1 1 1 / 80%);
      --grayscale-indicator: color(display-p3 0.555 0.549 0.596);
      --grayscale-track: color(display-p3 0.555 0.549 0.596);
    }
  }
}


.dark {
  --accent-1: #000;
  --accent-2: #0a121f;
  --accent-3: #0e2344;
  --accent-4: #0c2d62;
  --accent-5: #163b75;
  --accent-6: #224987;
  --accent-7: #2e599f;
  --accent-8: #386bbe;
  --accent-9: #5294ff;
  --accent-10: #4688f2;
  --accent-11: #80b4ff;
  --accent-12: #cde2ff;

  --accent-a1: #00000000;
  --accent-a2: #5395ff1f;
  --accent-a3: #3584ff44;
  --accent-a4: #2076ff62;
  --accent-a5: #3081ff75;
  --accent-a6: #418aff87;
  --accent-a7: #4a8fff9f;
  --accent-a8: #4b90ffbe;
  --accent-a9: #5294ff;
  --accent-a10: #4a8ffff2;
  --accent-a11: #80b4ff;
  --accent-a12: #cde2ff;

  --accent-contrast: #fff;
  --accent-surface: #14243e80;
  --accent-indicator: #5294ff;
  --accent-track: #5294ff;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(0% 0.0259 259.6);
      --accent-2: oklch(18% 0.03 259.6);
      --accent-3: oklch(25.8% 0.0682 259.6);
      --accent-4: oklch(30.9% 0.1004 259.6);
      --accent-5: oklch(36% 0.1092 259.6);
      --accent-6: oklch(41.2% 0.1136 259.6);
      --accent-7: oklch(47% 0.1226 259.6);
      --accent-8: oklch(53.5% 0.1412 259.6);
      --accent-9: oklch(67.5% 0.1725 259.6);
      --accent-10: oklch(63.6% 0.1725 259.6);
      --accent-11: oklch(76.9% 0.1342 259.6);
      --accent-12: oklch(90.8% 0.0501 259.6);

      --accent-a1: color(display-p3 0 0 0 / 0);
      --accent-a2: color(display-p3 0.4 0.6 1 / 0.118);
      --accent-a3: color(display-p3 0.2902 0.5176 1 / 0.259);
      --accent-a4: color(display-p3 0.2235 0.4706 1 / 0.369);
      --accent-a5: color(display-p3 0.2863 0.5137 1 / 0.444);
      --accent-a6: color(display-p3 0.3373 0.5529 1 / 0.514);
      --accent-a7: color(display-p3 0.3647 0.5725 1 / 0.604);
      --accent-a8: color(display-p3 0.3686 0.5765 1 / 0.722);
      --accent-a9: color(display-p3 0.3961 0.5922 1 / 0.969);
      --accent-a10: color(display-p3 0.3647 0.5686 1 / 0.922);
      --accent-a11: color(display-p3 0.5569 0.7176 1 / 0.977);
      --accent-a12: color(display-p3 0.8275 0.8941 1 / 0.989);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.0863 0.1333 0.2353 / 0.5);
      --accent-indicator: oklch(67.5% 0.1725 259.6);
      --accent-track: oklch(67.5% 0.1725 259.6);
    }
  }
}


.dark {
  --grayscale-1: #121113;
  --grayscale-2: #1a191b;
  --grayscale-3: #232225;
  --grayscale-4: #2b292d;
  --grayscale-5: #323035;
  --grayscale-6: #3c393f;
  --grayscale-7: #49474e;
  --grayscale-8: #625f69;
  --grayscale-9: #6f6d78;
  --grayscale-10: #7c7a85;
  --grayscale-11: #b5b2bc;
  --grayscale-12: #eeeef0;

  --grayscale-a1: #00000000;
  --grayscale-a2: #f5f4f609;
  --grayscale-a3: #ebeaf814;
  --grayscale-a4: #eee5f81d;
  --grayscale-a5: #efe6fe25;
  --grayscale-a6: #f1e6fd30;
  --grayscale-a7: #eee9ff40;
  --grayscale-a8: #eee7ff5d;
  --grayscale-a9: #eae6fd6e;
  --grayscale-a10: #ece9fd7c;
  --grayscale-a11: #f5f1ffb7;
  --grayscale-a12: #fdfdffef;

  --grayscale-contrast: #fff;
  --grayscale-surface: rgba(0, 0, 0, 0.05);
  --grayscale-indicator: #6f6d78;
  --grayscale-track: #6f6d78;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.07 0.067 0.074);
      --grayscale-2: color(display-p3 0.101 0.098 0.105);
      --grayscale-3: color(display-p3 0.138 0.134 0.144);
      --grayscale-4: color(display-p3 0.167 0.161 0.175);
      --grayscale-5: color(display-p3 0.196 0.189 0.206);
      --grayscale-6: color(display-p3 0.232 0.225 0.245);
      --grayscale-7: color(display-p3 0.286 0.277 0.302);
      --grayscale-8: color(display-p3 0.383 0.373 0.408);
      --grayscale-9: color(display-p3 0.434 0.428 0.467);
      --grayscale-10: color(display-p3 0.487 0.48 0.519);
      --grayscale-11: color(display-p3 0.707 0.7 0.735);
      --grayscale-12: color(display-p3 0.933 0.933 0.94);

      --grayscale-a1: #00000000;
      --grayscale-a2: #f5f4f609;
      --grayscale-a3: #ebeaf814;
      --grayscale-a4: #eee5f81d;
      --grayscale-a5: #efe6fe25;
      --grayscale-a6: #f1e6fd30;
      --grayscale-a7: #eee9ff40;
      --grayscale-a8: #eee7ff5d;
      --grayscale-a9: #eae6fd6e;
      --grayscale-a10: #ece9fd7c;
      --grayscale-a11: #f5f1ffb7;
      --grayscale-a12: #fdfdffef;

      --grayscale-contrast: #fff;
      --grayscale-surface: color(display-p3 0 0 0 / 5%);
      --grayscale-indicator: color(display-p3 0.434 0.428 0.467);
      --grayscale-track: color(display-p3 0.434 0.428 0.467);
    }
  }
}

.light, :root {
  color-scheme: light;
  --accent: rgba(13, 109, 211, 1);
  --background: #fff;
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #0d6dd3;
}

.dark {
  color-scheme: dark;
  --accent: rgba(82, 148, 255, 1);
  --background: #000;
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #5294ff;
}

.fern-background-image {
  background-image: linear-gradient(to bottom, color-mix(in srgb, var(--accent), var(--background) 90%) 0, var(--background) 100%);
}

.dark .fern-background-image {
  background-image: linear-gradient(to bottom, var(--background) 0, color-mix(in srgb, var(--accent), var(--background) 90%) 100%);
}

/* Page-footer order: put Prev/Next above "Was this page helpful?".
 *
 * Fern renders both into one <footer class="fern-layout-footer">, the feedback
 * toolbar first and <nav class="fern-footer-nav"> second, and offers no config
 * for the order -- `footer-nav` in docs.yml selects `default` vs `minimal`
 * styling only. Anoop's point (2026-08-23) is that Next does the work of moving
 * a reader through the docs and sits below the fold, under a widget that is not
 * what they were looking for.
 *
 * Declaring the container flex makes the ordering deterministic rather than
 * relying on whatever display it inherits. `order: -1` on the nav alone would be
 * a no-op if the parent were block. Only the nav is reordered, so any child Fern
 * adds later keeps its source position after it.
 *
 * This targets Fern's own class names, so it can break on a redesign. If the
 * footer looks wrong after a Fern upgrade, look here first.
 */
.fern-layout-footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.fern-layout-footer .fern-footer-nav {
  order: -1;
}

/* Flat white in light mode.
 *
 * Fern paints a fixed full-viewport <div class="fern-background-image">, and in
 * light mode its gradient is `color-mix(in srgb, var(--accent), var(--background)
 * 90%)` at the top fading to the background at the bottom -- so the page reads as
 * a faint blue-grey rather than white, and a colour picker returns different
 * values at different heights (#F9FCFE near the top, #FAFCFD lower down).
 *
 * Removing the image leaves --background (#fff) showing through the same div.
 * Dark mode keeps its gradient: the selector is html.light, and the theme class
 * is on <html>, verified against a rendered page rather than assumed.
 *
 * Contrast improves slightly as a side effect -- the accent measures 5.07:1 on
 * pure white against 4.92:1 on the tint -- but the reason is that the page
 * should look white when it is white.
 */
html.light .fern-background-image {
  background-image: none;
}
