/*fern-site-stylesheet*/@font-face {
    font-family: 'Sen';
    src: url('/_fern-files/unleash.docs.buildwithfern.com/6ddc694d22cf765f23c06e7fd961a50d5c5dec1a385d88bd27891be300528617/fonts/Sen-VariableFont_wght.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Sen';
    src: url('/_fern-files/unleash.docs.buildwithfern.com/6ddc694d22cf765f23c06e7fd961a50d5c5dec1a385d88bd27891be300528617/fonts/Sen-VariableFont_wght.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
}

:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 880px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 35px;
  --font-body: 'Sen', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: 'Sen', 'Sen', 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: #e6e6e9;
  --accent-2: #dfe0e8;
  --accent-3: #d6d8e6;
  --accent-4: #c9cce9;
  --accent-5: #bcbfea;
  --accent-6: #abb0e7;
  --accent-7: #979bdf;
  --accent-8: #7c7ed7;
  --accent-9: #7770fe;
  --accent-10: #6c63ef;
  --accent-11: #412eae;
  --accent-12: #2a2667;

  --accent-a1: #1f1f2205;
  --accent-a2: #0116830c;
  --accent-a3: #031a9c16;
  --accent-a4: #0116d024;
  --accent-a5: #0413de33;
  --accent-a6: #0114d745;
  --accent-a7: #020dc65b;
  --accent-a8: #0105bf78;
  --accent-a9: #7169fff1;
  --accent-a10: #0000ff1d;
  --accent-a11: #18009fcd;
  --accent-a12: #05004ed6;

  --accent-contrast: #fff;
  --accent-surface: #dcdde7cc;
  --accent-indicator: #7770fe;
  --accent-track: #7770fe;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(92.7% 0.0029 280.9);
      --accent-2: oklch(90.9% 0.0103 280.9);
      --accent-3: oklch(88.4% 0.0198 280.9);
      --accent-4: oklch(85.2% 0.0401 280.9);
      --accent-5: oklch(81.7% 0.0596 280.9);
      --accent-6: oklch(77.2% 0.0783 280.9);
      --accent-7: oklch(71.1% 0.0992 280.9);
      --accent-8: oklch(62.9% 0.1323 280.9);
      --accent-9: oklch(62.6% 0.2046 280.9);
      --accent-10: oklch(58.5% 0.2046 280.9);
      --accent-11: oklch(41.3% 0.1911 280.9);
      --accent-12: oklch(31.4% 0.1103 280.9);

      --accent-a1: color(display-p3 0.0471 0.0471 0.0588 / 0.018);
      --accent-a2: color(display-p3 0.0196 0.102 0.4431 / 0.048);
      --accent-a3: color(display-p3 0.0078 0.098 0.5647 / 0.086);
      --accent-a4: color(display-p3 0.0039 0.0627 0.7569 / 0.137);
      --accent-a5: color(display-p3 0.0039 0.0471 0.8078 / 0.193);
      --accent-a6: color(display-p3 0.0039 0.0627 0.7843 / 0.265);
      --accent-a7: color(display-p3 0.0039 0.0353 0.7176 / 0.351);
      --accent-a8: color(display-p3 0.0039 0.0196 0.698 / 0.471);
      --accent-a9: color(display-p3 0 0 1 / 0.445);
      --accent-a10: color(display-p3 0.0471 0 0.8902 / 0.577);
      --accent-a11: color(display-p3 0.0745 0 0.5882 / 0.8);
      --accent-a12: color(display-p3 0.0157 0 0.2863 / 0.838);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.8667 0.8667 0.902 / 0.8);
      --accent-indicator: oklch(62.6% 0.2046 280.9);
      --accent-track: oklch(62.6% 0.2046 280.9);
    }
  }
}


.light, :root {
  --grayscale-1: #fcfcfd;
  --grayscale-2: #f9f9fb;
  --grayscale-3: #f0f0f3;
  --grayscale-4: #e8e8ec;
  --grayscale-5: #e0e1e6;
  --grayscale-6: #d9d9e0;
  --grayscale-7: #cdced6;
  --grayscale-8: #b9bbc6;
  --grayscale-9: #8b8d98;
  --grayscale-10: #80838d;
  --grayscale-11: #60646c;
  --grayscale-12: #1c2024;

  --grayscale-a1: #00005503;
  --grayscale-a2: #00005506;
  --grayscale-a3: #0000330f;
  --grayscale-a4: #00002d17;
  --grayscale-a5: #0009321f;
  --grayscale-a6: #00002f26;
  --grayscale-a7: #00062e32;
  --grayscale-a8: #00083046;
  --grayscale-a9: #00051d74;
  --grayscale-a10: #00071b7f;
  --grayscale-a11: #0007149f;
  --grayscale-a12: #000509e3;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.988 0.988 0.992);
      --grayscale-2: color(display-p3 0.976 0.976 0.984);
      --grayscale-3: color(display-p3 0.94 0.941 0.953);
      --grayscale-4: color(display-p3 0.908 0.909 0.925);
      --grayscale-5: color(display-p3 0.88 0.881 0.901);
      --grayscale-6: color(display-p3 0.85 0.852 0.876);
      --grayscale-7: color(display-p3 0.805 0.808 0.838);
      --grayscale-8: color(display-p3 0.727 0.733 0.773);
      --grayscale-9: color(display-p3 0.547 0.553 0.592);
      --grayscale-10: color(display-p3 0.503 0.512 0.549);
      --grayscale-11: color(display-p3 0.379 0.392 0.421);
      --grayscale-12: color(display-p3 0.113 0.125 0.14);

      --grayscale-a1: #00005503;
      --grayscale-a2: #00005506;
      --grayscale-a3: #0000330f;
      --grayscale-a4: #00002d17;
      --grayscale-a5: #0009321f;
      --grayscale-a6: #00002f26;
      --grayscale-a7: #00062e32;
      --grayscale-a8: #00083046;
      --grayscale-a9: #00051d74;
      --grayscale-a10: #00071b7f;
      --grayscale-a11: #0007149f;
      --grayscale-a12: #000509e3;

      --grayscale-contrast: #000;
      --grayscale-surface: color(display-p3 1 1 1 / 80%);
      --grayscale-indicator: color(display-p3 0.547 0.553 0.592);
      --grayscale-track: color(display-p3 0.547 0.553 0.592);
    }
  }
}


.dark {
  --accent-1: #191925;
  --accent-2: #1b1b2b;
  --accent-3: #28244d;
  --accent-4: #322969;
  --accent-5: #3a3177;
  --accent-6: #443b84;
  --accent-7: #504797;
  --accent-8: #6055b4;
  --accent-9: #a39dfe;
  --accent-10: #9892f2;
  --accent-11: #aea8ff;
  --accent-12: #dfdfff;

  --accent-a1: #0019a402;
  --accent-a2: #3752eb09;
  --accent-a3: #6554fe30;
  --accent-a4: #664cfd51;
  --accent-a5: #6f59ff61;
  --accent-a6: #7967ff70;
  --accent-a7: #8171ff86;
  --accent-a8: #8474ffa8;
  --accent-a9: #a49efffe;
  --accent-a10: #9f9afff0;
  --accent-a11: #aea8ff;
  --accent-a12: #dfdfff;

  --accent-contrast: #fff;
  --accent-surface: #1c1d3280;
  --accent-indicator: #a39dfe;
  --accent-track: #a39dfe;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(22% 0.0228 285.3);
      --accent-2: oklch(23% 0.0308 285.3);
      --accent-3: oklch(28.8% 0.0723 285.3);
      --accent-4: oklch(32.9% 0.1075 285.3);
      --accent-5: oklch(36.4% 0.1152 285.3);
      --accent-6: oklch(40.2% 0.1178 285.3);
      --accent-7: oklch(44.9% 0.1266 285.3);
      --accent-8: oklch(50.8% 0.1456 285.3);
      --accent-9: oklch(74% 0.1382 285.3);
      --accent-10: oklch(70.5% 0.1382 285.3);
      --accent-11: oklch(77.6% 0.1382 285.3);
      --accent-12: oklch(91.4% 0.0442 285.3);

      --accent-a1: color(display-p3 0 0.098 0.9216 / 0.005);
      --accent-a2: color(display-p3 0.2275 0.3451 0.9961 / 0.032);
      --accent-a3: color(display-p3 0.3922 0.3412 1 / 0.178);
      --accent-a4: color(display-p3 0.4039 0.3059 0.9961 / 0.3);
      --accent-a5: color(display-p3 0.4353 0.3569 1 / 0.364);
      --accent-a6: color(display-p3 0.4824 0.4157 1 / 0.423);
      --accent-a7: color(display-p3 0.5059 0.4588 1 / 0.505);
      --accent-a8: color(display-p3 0.5216 0.4706 1 / 0.632);
      --accent-a9: color(display-p3 0.6549 0.6353 1 / 0.964);
      --accent-a10: color(display-p3 0.6431 0.6196 1 / 0.91);
      --accent-a11: color(display-p3 0.6941 0.6745 1 / 0.973);
      --accent-a12: color(display-p3 0.8863 0.8863 1 / 0.987);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.1098 0.1098 0.1882 / 0.5);
      --accent-indicator: oklch(74% 0.1382 285.3);
      --accent-track: oklch(74% 0.1382 285.3);
    }
  }
}


.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(119, 112, 254, 1);
  --background: rgba(234, 234, 237, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #eaeaed;
}

.dark {
  color-scheme: dark;
  --accent: rgba(163, 157, 254, 1);
  --background: rgba(26, 25, 36, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #1a1924;
}

/* Light theme variables */
:root {
    --container-bg-color: #fff;
    --nav-text-color: #1E373F;
    --text-color: #202021;
    --page-bg-light-color: #EAEAED;
    --sidebar-nav-bg-color: var(--page-bg-light-color);
    --accent-color: #817afe;
    --button-bg-color: #244049;
    --button-text-color: #FFF;
    --button-hover-bg-color: #817afe;
    --card-hover-bg-color: #f5f6fa;
    --card-stripe-color: #6c64e5;
}

/* Dark theme overrides */
.dark {
    --container-bg-color: #232130;
    --nav-text-color: #E3E3E3;
    --text-color: #E3E3E3;
    --sidebar-nav-bg-color: #1A1924;
    --accent-color: #BBB9FF;
    --button-bg-color: #E3E3E3;
    --button-text-color: var(--sidebar-nav-bg-color);
    --button-hover-bg-color: #817afe;
    --card-hover-bg-color: #23233a;
}

#fern-docs {
    color: var(--text-color);
}

body {
    color: var(--text-color);
    /* this contains z-index layering to body element */
    isolation: isolate;
}

/* Gap: spacing between flex children (sidebar↔content, content↔ToC) */
/* Padding-right: spacing between last child and viewport right edge */
main {
    gap: 16px;
    padding-right: 16px;
}

/* Below 1024px: sidebar collapses and header tabs expand into a dropdown panel
   between the header and main. Remove z-index so main doesn't block the tabs.
   Mountain is hidden at this width so z-index elevation is unnecessary.
   Add left padding since sidebar no longer provides a left boundary. */
@media (max-width: 1024px) {

    main {
        padding-left: 16px;
    }

}

/* Below 768px: also reset gap/padding so Fern's responsive layout works unimpeded */
@media (max-width: 768px) {

    main {
        gap: initial;
        padding-left: initial;
        padding-right: initial;
    }

}

.fern-layout-content-wrapper {
    background-color: var(--container-bg-color);
    border-radius: 0.75rem;
    overflow: clip;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.05),
                0 0px 1px 0 rgba(0, 0, 0, 0.1);
    max-width: calc(var(--content-width, 880px) + var(--page-padding, 2rem) * 2);
    margin: auto;
    margin-top: 2rem;
}

/* =====================================
   HEADING ANCHOR ICONS
   ===================================== */

/* But show anchor icons inside steps */
.fern-step .fern-anchor-icon {
    display: flex !important;
}

/* Below 1024px: sidebar collapses to mobile menu */
@media (max-width: 1024px) {

    .fern-layout-content-wrapper {
        margin-top: 1rem;
    }

}

/* Small screens: keep container look with small edge margins, reduced rounding */
@media (max-width: 768px) {

    .fern-layout-content-wrapper {
        border-radius: 0.5rem;
        margin-left: 8px;
        margin-right: 8px;
    }

}

.fern-layout-reference {
    padding: 0 2rem;
    margin-bottom: calc(var(--spacing) * 12);
}

@media (max-width: 768px) {

    .fern-layout-reference {
        padding: 0 1rem;
    }

}

@media (max-width: 480px) {

    .fern-layout-reference {
        padding: 0 0.5rem;
    }

}

.landing-page.landing-page,
body:has(.landing-page) .fern-page-heading {
    max-width: 1300px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 4rem;
    padding-right: 4rem;
}

.landing-page.landing-page {
    padding-bottom: 4rem;
}

body:has(.landing-page) .fern-page-actions {
    display: none;
}

/* Hero section styles */
.hero {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-top: 1rem;
    margin-bottom: 2rem;
    padding-bottom: 2.5rem;
}

body:has(.landing-page) .fern-page-heading {
    display: block;
    white-space: nowrap;
    margin-bottom: 1.75rem;
    color: var(--nav-text-color);
}

/* Dark mode - keep homepage h1 white */
.dark body:has(.landing-page) .fern-page-heading {
    color: #ffffff;
}

/* Fern wraps the page heading in nested flex containers that shrink-wrap to
   the h1's content width, breaking max-width + margin auto. Neutralize those
   wrappers on the homepage so the heading can center like .landing-page.
   display: block stops them from acting as flex containers themselves;
   flex: 1 makes them fill the outer flex parent (the .justify-between row). */
body:has(.landing-page) div:has(> .fern-page-heading),
body:has(.landing-page) div:has(> div > .fern-page-heading) {
    display: block;
    flex: 1;
}

.hero-row {
    display: flex;
    align-items: flex-start;
    gap: 4rem;
    flex-wrap: wrap;
}

.hero-text-column {
    flex: 1;
    min-width: 300px;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    word-break: normal;
    overflow-wrap: normal;
}

.hero-text-column p {
    margin: 0;
}

/* Tablet and below - stack vertically, smaller video */
@media (max-width: 1024px) {

    .hero-row {
        flex-direction: column;
        gap: 2rem;
    }

    .hero-text-column {
        width: 100%;
        max-width: 100%;
    }

    .hero-video {
        width: 100%;
        max-width: 600px;
        margin: 0 auto;
    }

}

/* Mobile - hide video, ensure text is readable */
@media (max-width: 768px) {

    .landing-page.landing-page,
    body:has(.landing-page) .fern-page-heading {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .hero {
        gap: 1.5rem;
    }

    body:has(.landing-page) .fern-page-heading {
        white-space: normal;
        font-size: 2rem;
    }

    .hero-row {
        display: block;
    }

    .hero-text-column {
        width: 100%;
        max-width: 100%;
    }

    /* Hide video on mobile */
    .hero-video {
        display: none;
    }

}

/* Small mobile */
@media (max-width: 480px) {

    .landing-page.landing-page,
    body:has(.landing-page) .fern-page-heading {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    body:has(.landing-page) .fern-page-heading {
        font-size: 1.75rem;
    }

    .hero-text-column {
        gap: 1rem;
    }

}

.hero-video {
    flex: 1 1 450px;
    min-width: 320px;
    max-width: 580px;
    aspect-ratio: 600 / 330;
}

.hero-video iframe {
    border-radius: 12px;
    width: 100%;
    height: auto;
    aspect-ratio: 600 / 330;
}

/* Card styles */
body:has(.landing-page) .fern-card {
    position: relative;
    overflow: hidden;
    padding: 1.75rem;
    padding-bottom: 3rem;
    height: 100%;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    background-color: var(--container-bg-color);
}

/* Hover states for both light and dark modes */
body:has(.landing-page) .fern-card:hover {
    background-color: var(--card-hover-bg-color);
}
body:has(.landing-page) .fern-card:focus-visible {
    background-color: var(--card-hover-bg-color); outline: none;
}

.light body:has(.landing-page) .fern-card:hover {
    border-color: #e5e7eb;
}
.light body:has(.landing-page) .fern-card:focus-visible {
    border-color: #e5e7eb; outline: none;
}

.dark body:has(.landing-page) .fern-card:hover {
    border-color: #374151;
}
.dark body:has(.landing-page) .fern-card:focus-visible {
    border-color: #374151; outline: none;
}

/* Fern renders the Card lightModeColor prop as an inline style on .card-icon and
   never emits darkModeColor for custom SVG icons, so the light-mode color sticks in
   dark mode. Inline styles can only be beaten with !important. var(--color-white) is
   what Fern's .text-body resolves to in dark mode, so the icons match the card title. */
.dark .fern-card .card-icon {
    color: var(--color-white) !important;
}

body:has(.landing-page) .fern-card::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 8px;
    background: var(--card-stripe-color);
    border-radius: 0 0 8px 8px;
}

/* Card background */
body:has(.landing-page) .fern-card:before {
    content: "";
    z-index: 0;
    background-image: url(https://cdn.getunleash.io/docs-assets/card-hover-bg.png);
    background-size: cover;
    border-top-right-radius: 12px;
    width: 60%;
    height: 85%;
    position: absolute;
    top: 0;
    right: 0;
    opacity: 0.8;
}

/* Dark mode - use Fern's dark theme class */
.dark body:has(.landing-page) .fern-card:before {
    opacity: 0.1;
}

/* Ensure card content is positioned above background */
body:has(.landing-page) .fern-card > * {
    position: relative;
    z-index: 1;
}

/* Card grid layout for icon + title inline, description full width */
body:has(.landing-page) .fern-card > div:first-child {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 0 0.5rem;
    align-items: center;
    align-content: start;
    flex: 1;
}

body:has(.landing-page) .fern-card .card-icon {
    grid-column: 1;
    grid-row: 1;
}

body:has(.landing-page) .fern-card .card-icon ~ div {
    display: contents;
}

body:has(.landing-page) .fern-card .card-icon ~ div > div:first-child {
    grid-column: 2;
    grid-row: 1;
}

body:has(.landing-page) .fern-card .card-icon ~ div > div:last-child {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: 2rem;
}

/* Card text colors — h3 also gets line-height from the grid rule above */
body:has(.landing-page) .fern-card h3 {
    color: var(--nav-text-color);
    line-height: 1;
}

body:has(.landing-page) .fern-card p,
body:has(.landing-page) .fern-card div {
    color: var(--text-color);
}

/* Rounded corners for images in content areas only (not nav, footer, etc.) */
.fern-layout-guide img,
.fern-layout-reference img {
    border-radius: 12px;
}

/* Navbar links styling */
#fern-header .fern-button.minimal {
    font-weight: 600;
    color: var(--nav-text-color);
    border: none;
}

#fern-header .fern-button.minimal:hover {
    color: var(--accent-color);
}
#fern-header .fern-button.minimal:focus-visible {
    color: var(--accent-color); outline: none;
}

/* Compact GitHub star button */
#fern-header .fern-button.outlined[href*="github"] {
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.25rem 0.6rem;
    gap: 0.3rem;
    color: var(--nav-text-color);
    border-color: var(--nav-text-color);
}

#fern-header .fern-button.outlined[href*="github"]:hover {
    color: var(--accent-color);
    border-color: var(--accent-color);
}
#fern-header .fern-button.outlined[href*="github"]:focus-visible {
    color: var(--accent-color);
    border-color: var(--accent-color); outline: none;
}

/* Safety net: ensure header tabs panel stacks above main.
   At <=1024px main has z-index: auto so this is technically redundant,
   but protects against Fern changing its breakpoints. */
.fern-header-tabs,
#fern-header div:has(> [role="tablist"]) {
    z-index: 2 !important;
}

/* Header tabs — doubled class for specificity over Fern's Tailwind classes */
.fern-header-tabs.fern-header-tabs button[role="tab"],
.fern-header-tabs.fern-header-tabs button[role="tab"] span,
.fern-header-tabs.fern-header-tabs button[role="tab"] .truncate,
.fern-header-tabs.fern-header-tabs a {
    color: var(--nav-text-color);
}

.fern-header-tabs.fern-header-tabs button[role="tab"][aria-selected="true"],
.fern-header-tabs.fern-header-tabs button[role="tab"][aria-selected="true"] span,
.fern-header-tabs.fern-header-tabs button[role="tab"][aria-selected="true"] .truncate,
.fern-header-tabs.fern-header-tabs button[role="tab"][data-state="active"],
.fern-header-tabs.fern-header-tabs button[role="tab"][data-state="active"] span,
.fern-header-tabs.fern-header-tabs button[role="tab"][data-state="active"] .truncate,
.fern-header-tabs.fern-header-tabs a[aria-selected="true"],
.fern-header-tabs.fern-header-tabs a[data-state="active"],
.fern-header-tabs.fern-header-tabs button[role="tab"]:hover,
.fern-header-tabs.fern-header-tabs button[role="tab"]:hover span,
.fern-header-tabs.fern-header-tabs button[role="tab"]:hover .truncate,
.fern-header-tabs.fern-header-tabs a:hover {
    color: var(--accent-color);
}
.fern-header-tabs.fern-header-tabs button[role="tab"]:focus-visible,
.fern-header-tabs.fern-header-tabs button[role="tab"]:focus-within span,
.fern-header-tabs.fern-header-tabs button[role="tab"]:focus-within .truncate,
.fern-header-tabs.fern-header-tabs a:focus-visible {
    color: var(--accent-color); outline: none;
}

/* Navbar button styling */
#fern-header .fern-button.filled {
    background-color: var(--button-bg-color);
    color: var(--button-text-color);
    font-weight: 600;
}

#fern-header .fern-button.filled:hover {
    background-color: var(--button-hover-bg-color);
}
#fern-header .fern-button.filled:focus-visible {
    background-color: var(--button-hover-bg-color); outline: none;
}

/* Start free trial — bright purple CTA */
#fern-header .fern-button.filled[href*="enterprise-payg"] {
    background-color: #817afe;
    color: #ffffff;
}

.dark #fern-header .fern-button.filled[href*="enterprise-payg"] {
    color: var(--button-text-color);
}

#fern-header .fern-button.filled[href*="enterprise-payg"]:hover {
    background-color: var(--button-bg-color);
}
#fern-header .fern-button.filled[href*="enterprise-payg"]:focus-visible {
    background-color: var(--button-bg-color); outline: none;
}

/* CTA button styling (for inline buttons matching header style)
   .fern-button prefix needed to match Fern's .fern-button.filled specificity */
.fern-button.cta-button {
    background-color: var(--button-bg-color);
    color: var(--button-text-color);
    font-weight: 600;
    border: none;
}

.fern-button.cta-button:hover {
    background-color: var(--button-hover-bg-color);
}
.fern-button.cta-button:focus-visible {
    background-color: var(--button-hover-bg-color); outline: none;
}

.fern-button.version-button {
    font-weight: 600;
}

/* =====================================
   CHANGELOG / RELEASE NOTES
   ===================================== */

/* Force stacked layout: date/labels always above entry content, never beside it */
.fern-changelog-label {
    flex-direction: row !important;
}

.fern-changelog-entry {
    flex-direction: column !important;
}

/* Force the entry to stack vertically — no aside column */
article.fern-changelog-content {
    display: flex !important;
    flex-direction: column !important;
}

article.fern-changelog-content > aside {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Purple date badge */
.fern-changelog-label > a.fern-docs-badge.fern-docs-badge.large.grayscale.subtle {
    background-color: #817afe !important;
    color: #fff !important;
    border-color: #817afe !important;
    filter: none !important;
    --tw-grayscale: none !important;
}

/* Learning Lab overview cards: remove the image's corner rounding. Scoped to
   .learning-lab-cards so the image-left card in demo-walkthrough is unaffected. */
.learning-lab-cards .fern-card.fern-card img {
    border-radius: 0;
}


/* =====================================
   SIDEBAR BORDER
   ===================================== */

#fern-sidebar#fern-sidebar {
    border-right: none;
}

/* =====================================
   TOC MOBILE BUTTON
   ===================================== */

/* ToC mobile: both the toggle button and the dropdown panel use Fern's
   bg-background (page background color). Override to match the white container. */
.toc-mobile button,
.toc-mobile-dropdown {
    background-color: var(--container-bg-color) !important;
}

.toc-mobile button {
    transition: background-color 0.15s ease;
}

.light .toc-mobile button:hover {
    background-color: #f0f0f3 !important;
}
.light .toc-mobile button:focus-visible {
    background-color: #f0f0f3 !important; outline: none;
}

.dark .toc-mobile button:hover {
    background-color: #2b2a3d !important;
}
.dark .toc-mobile button:focus-visible {
    background-color: #2b2a3d !important; outline: none;
}

/* =====================================
   FOOTER
   ===================================== */

#fern-footer {
    margin-top: 4rem;
    position: relative;
    z-index: 1;
}

#fern-footer footer {
    width: 100%;
    font-size: 14px;
    line-height: 1.6;
    background: var(--container-bg-color);
}

/* Top container — 1-col → 3-col → 7-col */
.footer-top {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 1.5rem 1rem;
}

@media (min-width: 768px) {

    .footer-top {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 2rem 1.5rem;
        padding: 2rem;
    }

}

@media (min-width: 1024px) {

    .footer-top {
        grid-template-columns: 2fr 0.8fr 0.8fr 0.8fr 0.8fr 0.8fr 0.8fr;
        gap: 2rem;
        padding: 1.5rem 2rem 2rem;
    }

}

/* Logo section — flex row at mobile/tablet, grid at desktop */
.footer-logo {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
}

@media (min-width: 768px) {

    .footer-logo { grid-column: 1 / -1; }

}

@media (min-width: 1024px) {

    .footer-logo {
        grid-column: 1;
        display: grid;
        grid-template-columns: 48px 1fr;
        grid-template-rows: auto auto;
        gap: 1rem;
        row-gap: 8rem;
        align-items: start;
    }

}

.footer-logo-icon { width: 48px; flex-shrink: 0; }

.footer-logo-description {
    display: none;
    font-size: 12px;
    line-height: 1.5;
    color: var(--text-color);
    margin: 0;
}

.footer-logo-social { display: flex; flex-direction: row; gap: 1rem; }

@media (min-width: 1024px) {

    .footer-logo-icon { grid-column: 1; grid-row: 1; }
    .footer-logo-description { display: block; grid-column: 2; grid-row: 1; }
    .footer-logo-social { grid-column: 2; grid-row: 2; }

}

/* Footer nav sections */
.footer-section { display: flex; flex-direction: column; }

.footer-section-title {
    font-size: 12px;
    font-weight: bold;
    color: var(--text-color);
    margin: 0 0 0.5rem 0;
}

@media (min-width: 1024px) {

    .footer-col-3 { grid-column: 3; }
    .footer-col-4 { grid-column: 4; }
    .footer-col-5 { grid-column: 5; }
    .footer-col-6 { grid-column: 6; }
    .footer-col-7 { grid-column: 7; }

}

/* Footer link lists */
.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35em;
}

.footer-links li { margin: 0; }

.footer-links a {
    color: #606770;
    font-size: 12px;
    text-decoration: none;
    transition: color 0.2s ease;
}

.dark .footer-links a { color: #DADDE1; }
.footer-links a:hover { color: #817afe; text-decoration: underline; }
.footer-links a:focus-visible { color: #817afe; text-decoration: underline; outline: none;
}

/* Social link icons */
.footer-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    transition: opacity 0.2s ease;
    text-decoration: none;
}

.footer-social-link:hover { opacity: 0.7; }
.footer-social-link:focus-visible { opacity: 0.7; outline: none;
}

.footer-social-icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

/* Bottom container */
.footer-bottom {
    border-top: 1px solid #d9d9d9;
    padding: 1rem;
    display: flex;
    color: var(--text-color);
    font-size: 12px;
}

.dark .footer-bottom { border-color: #333333; }

@media (min-width: 768px) {

    .footer-bottom { padding: 1rem 1.5rem; }

}

@media (min-width: 1024px) {

    .footer-bottom {
        display: grid;
        grid-template-columns: 48px 1fr;
        gap: 1rem;
        padding: 1rem 2rem;
    }

}

.footer-bottom-spacer { display: none; width: 48px; }

@media (min-width: 1024px) {

    .footer-bottom-spacer { display: block; }

}

.footer-bottom-content {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.footer-made-with {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 20px 0;
}

.footer-copyright { opacity: 0.8; }

/* =====================================
   MOUNTAIN BACKDROP
   ===================================== */

body::after {
    content: "";
    background-image: url("https://cdn.getunleash.io/docs-assets/mountain-texture.png");
    position: fixed;
    display: block;
    z-index: -1;
    bottom: 0;
    right: 0;
    width: clamp(200px, 25vw, 400px);
    aspect-ratio: 652 / 905;
    background-size: cover;
    background-repeat: no-repeat;
    pointer-events: none;
    user-select: none;
}

/* Hide mountain below 1024px — removes the need for z-index: 1 on main,
   which otherwise blocks Fern's expanded tabs panel */
@media (max-width: 1024px) {

    body::after {
        display: none;
    }

}

/* Make mountain more subtle in dark mode */
.dark body::after {
    opacity: 0.3;
}

/* =====================================
   SCROLLBAR STYLING
   ===================================== */

/* Use OS colour-scheme for scrollbar colors instead of Fern accent */
.fern-scroll-area-thumb {
    background-color: rgba(0, 0, 0, 0.45);
}

.fern-scroll-area-thumb:hover {
    background-color: rgba(0, 0, 0, 0.6);
}
.fern-scroll-area-thumb:focus-visible {
    background-color: rgba(0, 0, 0, 0.6); outline: none;
}

.dark .fern-scroll-area-thumb {
    background-color: rgba(255, 255, 255, 0.3);
}

.dark .fern-scroll-area-thumb:hover {
    background-color: rgba(255, 255, 255, 0.5);
}
.dark .fern-scroll-area-thumb:focus-visible {
    background-color: rgba(255, 255, 255, 0.5); outline: none;
}

