/*fern-site-stylesheet*/@font-face {
    font-family: 'font:body:docs/assets/fonts/DMSans-Regular.woff2';
    src: url('/_fern-files/sigma.docs.buildwithfern.com/b3fb2d56f4d8738ad1233ed0210908e7cbcf41100da4363c40d1fd701a22b5c7/docs/assets/fonts/DMSans-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-0192, U+01FC-0237, U+0259, U+02C7-02DD, U+0300-0328, U+03C0, U+1E80-1EBD, U+1EF2-1EF9, U+2074, U+20A8-20BD, U+2113-212E, U+2190-2199, U+2202-2265, U+25CA, U+FB01-FB02;
}
@font-face {
    font-family: 'font:body:docs/assets/fonts/DMSans-Regular.woff2';
    src: url('/_fern-img/b3fb2d56f4d8738ad1233ed0210908e7-v1.latin.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    unicode-range: U+000D, U+0020-007E, U+00A0-00AC, U+00AE-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
    font-family: 'font:body:docs/assets/fonts/DMSans-Regular.woff2';
    src: url('/_fern-files/sigma.docs.buildwithfern.com/bcbe726ee8a2c2af231c8f042cc2d12ebafd1ffe913c9e84db72285c0956f349/docs/assets/fonts/DMSans-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-0192, U+01FC-0237, U+0259, U+02C7-02DD, U+0300-0328, U+03C0, U+1E80-1EBD, U+1EF2-1EF9, U+2074, U+20A8-20BD, U+2113-212E, U+2190-2199, U+2202-2265, U+25CA, U+FB01-FB02;
}
@font-face {
    font-family: 'font:body:docs/assets/fonts/DMSans-Regular.woff2';
    src: url('/_fern-img/bcbe726ee8a2c2af231c8f042cc2d12e-v1.latin.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    unicode-range: U+000D, U+0020-007E, U+00A0-00AC, U+00AE-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
    font-family: 'font:body:docs/assets/fonts/DMSans-Regular.woff2';
    src: url('/_fern-files/sigma.docs.buildwithfern.com/207d115a832c5858ae05b53eec9ab499908b5386e11c8ce63277f7216133bb66/docs/assets/fonts/DMSans-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-0192, U+01FC-0237, U+0259, U+02C7-02DD, U+0300-0328, U+03C0, U+1E80-1EBD, U+1EF2-1EF9, U+2074, U+20A8-20BD, U+2113-212E, U+2190-2199, U+2202-2265, U+25CA, U+FB01-FB02;
}
@font-face {
    font-family: 'font:body:docs/assets/fonts/DMSans-Regular.woff2';
    src: url('/_fern-img/207d115a832c5858ae05b53eec9ab499-v1.latin.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    unicode-range: U+000D, U+0020-007E, U+00A0-00AC, U+00AE-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
    font-family: 'font:code:docs/assets/fonts/DMMono.woff2';
    src: url('/_fern-files/sigma.docs.buildwithfern.com/01880442d6b416c88f12be212dbca0e19c19d56b76c310384a842b39bc2685d9/docs/assets/fonts/DMMono.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-0192, U+01FC-021B, U+0259, U+02C7-02DD, U+0300-0328, U+03C0, U+1E80-1E85, U+1EBC-1EBD, U+1EF2-1EF9, U+2074, U+20BD, U+2113-212E, U+2202-2265, U+25CA;
}
@font-face {
    font-family: 'font:code:docs/assets/fonts/DMMono.woff2';
    src: url('/_fern-img/01880442d6b416c88f12be212dbca0e1-v1.latin.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
    unicode-range: U+000D, U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+2215;
}
@font-face {
    font-family: 'font:body:docs/assets/fonts/DMSans-Regular.woff2 Fallback';
    src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
    size-adjust: 104.53%;
    ascent-override: 94.90%;
    descent-override: 29.66%;
    line-gap-override: 0.00%;
}

:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 800px;
  --sidebar-width: 288px;
  --page-width: 100vw;
  --logo-height: 20px;
  --font-body: 'font:body:docs/assets/fonts/DMSans-Regular.woff2', 'font:body:docs/assets/fonts/DMSans-Regular.woff2 Fallback', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-heading: 'font:body:docs/assets/fonts/DMSans-Regular.woff2', 'font:body:docs/assets/fonts/DMSans-Regular.woff2 Fallback', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  --font-code: 'font:code:docs/assets/fonts/DMMono.woff2', 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: #fcfcfc;
  --accent-2: #f9f9f9;
  --accent-3: #f0f0f0;
  --accent-4: #e8e8e8;
  --accent-5: #e1e1e1;
  --accent-6: #d9d9d9;
  --accent-7: #cecece;
  --accent-8: #bbb;
  --accent-9: #171717;
  --accent-10: #2e2e2e;
  --accent-11: #636363;
  --accent-12: #1f1f1f;

  --accent-a1: #00000003;
  --accent-a2: #00000006;
  --accent-a3: #0000000f;
  --accent-a4: #00000017;
  --accent-a5: #0000001e;
  --accent-a6: #00000026;
  --accent-a7: #00000031;
  --accent-a8: #00000044;
  --accent-a9: #000000e8;
  --accent-a10: #000000d1;
  --accent-a11: #0000009c;
  --accent-a12: #000000e0;

  --accent-contrast: #fff;
  --accent-surface: #f8f8f8cc;
  --accent-indicator: #171717;
  --accent-track: #171717;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.2% 0 none);
      --accent-2: oklch(98.1% 0 none);
      --accent-3: oklch(95.5% 0 none);
      --accent-4: oklch(93.1% 0 none);
      --accent-5: oklch(90.9% 0 none);
      --accent-6: oklch(88.5% 0 none);
      --accent-7: oklch(85.1% 0 none);
      --accent-8: oklch(79.2% 0 none);
      --accent-9: oklch(20.5% 0 none);
      --accent-10: oklch(30.3% 0 none);
      --accent-11: oklch(50.1% 0 none);
      --accent-12: oklch(24% 0 none);

      --accent-a1: color(display-p3 0 0 0 / 0.0118);
      --accent-a2: color(display-p3 0 0 0 / 0.0235);
      --accent-a3: color(display-p3 0 0 0 / 0.0588);
      --accent-a4: color(display-p3 0 0 0 / 0.0902);
      --accent-a5: color(display-p3 0 0 0 / 0.1176);
      --accent-a6: color(display-p3 0 0 0 / 0.149);
      --accent-a7: color(display-p3 0 0 0 / 0.1922);
      --accent-a8: color(display-p3 0 0 0 / 0.2667);
      --accent-a9: color(display-p3 0 0 0 / 0.9098);
      --accent-a10: color(display-p3 0 0 0 / 0.8196);
      --accent-a11: color(display-p3 0 0 0 / 0.6118);
      --accent-a12: color(display-p3 0 0 0 / 0.8784);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9725 0.9725 0.9725 / 0.8);
      --accent-indicator: oklch(20.5% 0 none);
      --accent-track: oklch(20.5% 0 none);
    }
  }
}


.light, :root {
  --grayscale-1: #fcfcfc;
  --grayscale-2: #f9f9f9;
  --grayscale-3: #f0f0f0;
  --grayscale-4: #e8e8e8;
  --grayscale-5: #e0e0e0;
  --grayscale-6: #d9d9d9;
  --grayscale-7: #cecece;
  --grayscale-8: #bbbbbb;
  --grayscale-9: #8d8d8d;
  --grayscale-10: #838383;
  --grayscale-11: #646464;
  --grayscale-12: #202020;

  --grayscale-a1: #00000003;
  --grayscale-a2: #00000006;
  --grayscale-a3: #0000000f;
  --grayscale-a4: #00000017;
  --grayscale-a5: #0000001f;
  --grayscale-a6: #00000026;
  --grayscale-a7: #00000031;
  --grayscale-a8: #00000044;
  --grayscale-a9: #00000072;
  --grayscale-a10: #0000007c;
  --grayscale-a11: #0000009b;
  --grayscale-a12: #000000df;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.988 0.988 0.988);
      --grayscale-2: color(display-p3 0.975 0.975 0.975);
      --grayscale-3: color(display-p3 0.939 0.939 0.939);
      --grayscale-4: color(display-p3 0.908 0.908 0.908);
      --grayscale-5: color(display-p3 0.88 0.88 0.88);
      --grayscale-6: color(display-p3 0.849 0.849 0.849);
      --grayscale-7: color(display-p3 0.807 0.807 0.807);
      --grayscale-8: color(display-p3 0.732 0.732 0.732);
      --grayscale-9: color(display-p3 0.553 0.553 0.553);
      --grayscale-10: color(display-p3 0.512 0.512 0.512);
      --grayscale-11: color(display-p3 0.392 0.392 0.392);
      --grayscale-12: color(display-p3 0.125 0.125 0.125);

      --grayscale-a1: #00000003;
      --grayscale-a2: #00000006;
      --grayscale-a3: #0000000f;
      --grayscale-a4: #00000017;
      --grayscale-a5: #0000001f;
      --grayscale-a6: #00000026;
      --grayscale-a7: #00000031;
      --grayscale-a8: #00000044;
      --grayscale-a9: #00000072;
      --grayscale-a10: #0000007c;
      --grayscale-a11: #0000009b;
      --grayscale-a12: #000000df;

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


.dark {
  --accent-1: #171717;
  --accent-2: #1e1e1e;
  --accent-3: #262626;
  --accent-4: #2c2c2c;
  --accent-5: #333;
  --accent-6: #3b3b3b;
  --accent-7: #494949;
  --accent-8: #606060;
  --accent-9: #fff;
  --accent-10: #f6f6f6;
  --accent-11: #b4b4b4;
  --accent-12: #eee;

  --accent-a1: #00000000;
  --accent-a2: #ffffff08;
  --accent-a3: #ffffff10;
  --accent-a4: #ffffff17;
  --accent-a5: #ffffff1f;
  --accent-a6: #ffffff28;
  --accent-a7: #ffffff37;
  --accent-a8: #ffffff50;
  --accent-a9: #ffffff;
  --accent-a10: #fffffff5;
  --accent-a11: #ffffffad;
  --accent-a12: #ffffffec;

  --accent-contrast: #311921;
  --accent-surface: #25252580;
  --accent-indicator: #fff;
  --accent-track: #fff;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(20.5% 0 none);
      --accent-2: oklch(23.5% 0 none);
      --accent-3: oklch(27% 0 none);
      --accent-4: oklch(29.4% 0 none);
      --accent-5: oklch(32% 0 none);
      --accent-6: oklch(35.3% 0 none);
      --accent-7: oklch(40.4% 0 none);
      --accent-8: oklch(48.8% 0 none);
      --accent-9: oklch(100% 0 none);
      --accent-10: oklch(97.3% 0 none);
      --accent-11: oklch(77% 0 none);
      --accent-12: oklch(94.9% 0 none);

      --accent-a1: color(display-p3 0 0 0 / 0);
      --accent-a2: color(display-p3 1 1 1 / 0.0302);
      --accent-a3: color(display-p3 1 1 1 / 0.0647);
      --accent-a4: color(display-p3 1 1 1 / 0.0905);
      --accent-a5: color(display-p3 1 1 1 / 0.1207);
      --accent-a6: color(display-p3 1 1 1 / 0.1552);
      --accent-a7: color(display-p3 1 1 1 / 0.2155);
      --accent-a8: color(display-p3 1 1 1 / 0.3147);
      --accent-a9: color(display-p3 1 1 1);
      --accent-a10: color(display-p3 1 1 1 / 0.9612);
      --accent-a11: color(display-p3 1 1 1 / 0.6767);
      --accent-a12: color(display-p3 1 1 1 / 0.9267);

      --accent-contrast: #311921;
      --accent-surface: color(display-p3 0.1412 0.1412 0.1412 / 0.5);
      --accent-indicator: oklch(100% 0 none);
      --accent-track: oklch(100% 0 none);
    }
  }
}


.dark {
  --grayscale-1: #111111;
  --grayscale-2: #191919;
  --grayscale-3: #222222;
  --grayscale-4: #2a2a2a;
  --grayscale-5: #313131;
  --grayscale-6: #3a3a3a;
  --grayscale-7: #484848;
  --grayscale-8: #606060;
  --grayscale-9: #6e6e6e;
  --grayscale-10: #7b7b7b;
  --grayscale-11: #b4b4b4;
  --grayscale-12: #eeeeee;

  --grayscale-a1: #00000000;
  --grayscale-a2: #ffffff09;
  --grayscale-a3: #ffffff12;
  --grayscale-a4: #ffffff1b;
  --grayscale-a5: #ffffff22;
  --grayscale-a6: #ffffff2c;
  --grayscale-a7: #ffffff3b;
  --grayscale-a8: #ffffff55;
  --grayscale-a9: #ffffff64;
  --grayscale-a10: #ffffff72;
  --grayscale-a11: #ffffffaf;
  --grayscale-a12: #ffffffed;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.067 0.067 0.067);
      --grayscale-2: color(display-p3 0.098 0.098 0.098);
      --grayscale-3: color(display-p3 0.135 0.135 0.135);
      --grayscale-4: color(display-p3 0.163 0.163 0.163);
      --grayscale-5: color(display-p3 0.192 0.192 0.192);
      --grayscale-6: color(display-p3 0.228 0.228 0.228);
      --grayscale-7: color(display-p3 0.283 0.283 0.283);
      --grayscale-8: color(display-p3 0.375 0.375 0.375);
      --grayscale-9: color(display-p3 0.431 0.431 0.431);
      --grayscale-10: color(display-p3 0.484 0.484 0.484);
      --grayscale-11: color(display-p3 0.706 0.706 0.706);
      --grayscale-12: color(display-p3 0.933 0.933 0.933);

      --grayscale-a1: #00000000;
      --grayscale-a2: #ffffff09;
      --grayscale-a3: #ffffff12;
      --grayscale-a4: #ffffff1b;
      --grayscale-a5: #ffffff22;
      --grayscale-a6: #ffffff2c;
      --grayscale-a7: #ffffff3b;
      --grayscale-a8: #ffffff55;
      --grayscale-a9: #ffffff64;
      --grayscale-a10: #ffffff72;
      --grayscale-a11: #ffffffaf;
      --grayscale-a12: #ffffffed;

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

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

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

/* Sigma Documentation Styles */

/* ââ Advercase display font (inlined as data URI so it loads in dev + prod
   without depending on Fern asset-URL rewriting of custom CSS) ââ */
@font-face {
  font-family: "Advercase";
  src: url("data:font/woff2;base64,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") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ── Landing page background ── */
body:has(.sigma-landing) .fern-background-image {
  background: #F4F5F7;
}
:root.dark body:has(.sigma-landing) .fern-background-image {
  background: #131318;
}

/* Header (#fern-header): site-wide, tinted a touch darker than the body with a
   faint grid that fades in from the right (mockup: .sitenav + .sitenav::before).
   Applies on every page; the nav/tabs/search remain (only the landing hides
   those via the rules below). */
#fern-header {
  background: #E9EAEE !important;
  border-bottom: 1px solid #E5E5E9 !important;
}
:root.dark #fern-header {
  background: #16161C !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.10) !important;
}
#fern-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(10, 46, 112, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(10, 46, 112, 0.06) 1px, transparent 1px);
  background-size: 32px 32px;
  -webkit-mask-image: linear-gradient(90deg, transparent 42%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 42%, #000 100%);
  pointer-events: none;
  z-index: 0;
}
:root.dark #fern-header::before {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
}
/* Keep nav/tabs/search above the grid layer (the grid ::before is positioned,
   so non-positioned header content would otherwise paint beneath it). */
#fern-header > div {
  position: relative;
  z-index: 1;
}

/* Hide page heading, sidebar, header search, and header tabs on landing page */
body:has(.sigma-landing) .fern-page-heading,
body:has(.sigma-landing) .fern-page-heading-wrapper {
  display: none;
}

body:has(.sigma-landing) #fern-sidebar[data-state="sticky"],
body:has(.sigma-landing) #fern-sidebar[data-state="fixed"],
body:has(.sigma-landing) #fern-sidebar-spacer {
  visibility: hidden;
  width: 0;
  overflow: hidden;
  display: none;
}

body:has(.sigma-landing) .fern-header-search-bar {
  display: none !important;
}

body:has(.sigma-landing) .fern-header-tabs {
  display: none !important;
}

/* ── Landing page layout ── */

.sigma-landing {
  min-height: calc(100vh - 100px);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 24px 64px !important;
}

/* ── Hero section ── */

.sigma-hero {
  position: relative;
  overflow: hidden;
  padding: 64px 0 52px;
  text-align: left;
  width: 100%;
  max-width: 1100px;
}

.sigma-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(#DCE6FE 1px, transparent 1px),
    linear-gradient(90deg, #DCE6FE 1px, transparent 1px);
  background-size: 38px 38px;
  opacity: 0.55;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(120% 100% at 78% 30%, #000 35%, transparent 72%);
  mask-image: radial-gradient(120% 100% at 78% 30%, #000 35%, transparent 72%);
}

:root.dark .sigma-hero::before {
  background-image:
    linear-gradient(rgba(26, 112, 241, 0.32) 1px, transparent 1px),
    linear-gradient(90deg, rgba(26, 112, 241, 0.32) 1px, transparent 1px);
}

.sigma-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 40px;
  align-items: center;
}

.sigma-hero-copy {
  min-width: 0;
}

.sigma-hero-eyebrow {
  font-family: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: #1A70F1;
  margin: 0 0 16px;
}

.sigma-landing .sigma-hero-title {
  font-family: "Advercase", Georgia, "Times New Roman", serif !important;
  font-weight: 400 !important;
  font-size: 56px !important;
  line-height: 1.0 !important;
  letter-spacing: 0.025em !important;
  margin: 0 0 16px !important;
}
:root.light .sigma-hero-title {
  color: #111114;
}
:root.dark .sigma-hero-title {
  color: #F3F4F7;
}

.sigma-hero-subtitle {
  font-size: 18px;
  line-height: 1.5;
  margin: 0 0 28px;
  max-width: 46ch;
}
:root.light .sigma-hero-subtitle {
  color: #3A3A40;
}
:root.dark .sigma-hero-subtitle {
  color: #B7B8C2;
}

.sigma-hero-art {
  display: flex;
  justify-content: center;
}

.sigma-hero-ill {
  position: relative;
  width: 100%;
  max-width: 320px;
  aspect-ratio: 1099 / 825;
}

/* Blue ball disc — sits in the palm, behind the line-art (which is transparent,
   so the disc shows through). Geometry matches the Sigma "Paper" design. */
.sigma-hero-ball {
  position: absolute;
  left: 58.6%;
  top: 41.6%;
  width: 49.5%;
  aspect-ratio: 1;
  transform: translate(-50%, calc(-50% - var(--lift, 0px)));
  will-change: transform;
  transition: transform 1.1s cubic-bezier(0.34, 1.3, 0.64, 1);
  z-index: 0;
}

.sigma-hero-ball-disc {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #1A70F1;
}

.sigma-hero-ill-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  margin: 0 !important;
  z-index: 1;
}

/* Hand line-art ships black; recolor to ink (light) / paper-white (dark) to
   match the Sigma design across themes. */
:root.dark .sigma-hero-ill-img {
  filter: invert(1);
}

/* ── Search trigger (pill-shaped) ── */

.sigma-search-trigger {
  max-width: 540px;
  width: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 11px;
  border-radius: 999px;
  padding: 13px 20px;
  font-size: 15px;
  font-family: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
:root.light .sigma-search-trigger {
  background: #fff;
  border: 1px solid #E5E5E9;
  box-shadow: 0 2px 8px rgba(17, 17, 20, 0.08), 0 1px 2px rgba(17, 17, 20, 0.04);
  color: #8B8B92;
}
:root.light .sigma-search-trigger:hover {
  border-color: #1A70F1;
  box-shadow: 0 2px 8px rgba(26, 112, 241, 0.12);
}
:root.light .sigma-search-trigger:focus-visible {
  border-color: #1A70F1;
  box-shadow: 0 2px 8px rgba(26, 112, 241, 0.12);
}
:root.dark .sigma-search-trigger {
  background: #24242E;
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  color: #9596A1;
}
:root.dark .sigma-search-trigger:hover {
  border-color: rgba(26, 112, 241, 0.5);
}
:root.dark .sigma-search-trigger:focus-visible {
  border-color: rgba(26, 112, 241, 0.5);
}

.sigma-search-text {
  flex: 1;
  text-align: left;
}

.sigma-search-go {
  flex: none;
  width: 36px;
  height: 36px;
  margin: -7px -9px -7px 4px;
  border-radius: 50%;
  background: #1A70F1;
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.sigma-search-go:hover {
  background: #0A2E70;
}
.sigma-search-go:focus-visible {
  background: #0A2E70;
}

/* ── Hero cards (top row: Get started / Build with AI) ── */

.sigma-hero-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.sigma-hero-card {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
}
:root.light .sigma-hero-card {
  background: #ffffff;
  border: 1px solid #E5E5E9;
}
:root.dark .sigma-hero-card {
  background: #1B1B22;
  border: 1px solid rgba(255, 255, 255, 0.10);
}

.sigma-hero-card-body {
  padding: 40px 40px 44px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.sigma-landing .sigma-hero-card-title {
  font-family: "Advercase", Georgia, "Times New Roman", serif !important;
  font-weight: 400 !important;
  font-size: 40px !important;
  line-height: 1.05 !important;
  letter-spacing: 0.02em !important;
  margin: 0 0 12px !important;
}
:root.light .sigma-hero-card-title {
  color: #111114;
}
:root.dark .sigma-hero-card-title {
  color: #F3F4F7;
}

.sigma-hero-card-desc {
  font-size: 15px;
  line-height: 1.55;
  margin: 0 0 24px;
  max-width: 42ch;
}
:root.light .sigma-hero-card-desc {
  color: #3A3A40;
}
:root.dark .sigma-hero-card-desc {
  color: #B7B8C2;
}

.sigma-hero-card-links {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: auto;
}

.sigma-hero-card-link {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  padding: 7px 0;
}
:root.light .sigma-hero-card-link {
  color: #111114;
}
:root.light .sigma-hero-card-link:hover {
  color: #1A70F1;
}
:root.light .sigma-hero-card-link:focus-visible {
  color: #1A70F1;
}
:root.dark .sigma-hero-card-link {
  color: #F3F4F7;
}
:root.dark .sigma-hero-card-link:hover {
  color: #6EA8FF;
}
:root.dark .sigma-hero-card-link:focus-visible {
  color: #6EA8FF;
}

.sigma-hero-card-link-icon {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: #5F5F66;
}
.sigma-hero-card-link-icon svg {
  width: 20px;
  height: 20px;
}
:root.dark .sigma-hero-card-link-icon {
  color: #9596A1;
}
.sigma-hero-card-link:hover .sigma-hero-card-link-icon {
  color: inherit;
}
.sigma-hero-card-link:focus-within .sigma-hero-card-link-icon {
  color: inherit;
}

/* ── Card grid ── */

.sigma-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding-top: 28px;
}

/* ── Landing cards ── */

.sigma-landing-card {
  text-align: left;
  border-radius: 10px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
:root.light .sigma-landing-card {
  background: #ffffff;
  border: 1px solid #E5E5E9;
}
:root.light .sigma-landing-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 2px 8px rgba(17, 17, 20, 0.08), 0 1px 2px rgba(17, 17, 20, 0.04);
  border-color: #D5D6DB;
}
:root.light .sigma-landing-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 2px 8px rgba(17, 17, 20, 0.08), 0 1px 2px rgba(17, 17, 20, 0.04);
  border-color: #D5D6DB;
}
:root.dark .sigma-landing-card {
  background: #1B1B22;
  border: 1px solid rgba(255, 255, 255, 0.10);
}
:root.dark .sigma-landing-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
  border-color: rgba(255, 255, 255, 0.18);
}
:root.dark .sigma-landing-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
  border-color: rgba(255, 255, 255, 0.18);
}

/* Card icon */
.sigma-landing-card-icon {
  width: 42px;
  height: 42px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  font-size: 28px;
  margin-bottom: 14px;
}
:root.light .sigma-landing-card-icon {
  background: #EEF3FF;
  color: #1A70F1;
}
:root.dark .sigma-landing-card-icon {
  background: rgba(26, 112, 241, 0.16);
  color: #1A70F1;
}

/* Card title */
.sigma-landing-card-title {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 6px;
}
:root.light .sigma-landing-card-title {
  color: #111114;
}
:root.dark .sigma-landing-card-title {
  color: #F3F4F7;
}

/* Card description */
.sigma-landing-card-desc {
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 14px;
}
:root.light .sigma-landing-card-desc {
  color: #3A3A40;
}
:root.dark .sigma-landing-card-desc {
  color: #B7B8C2;
}

/* Card CTA — single uppercase link with arrow, pinned to the card bottom */
.sigma-landing-card-cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none;
  padding-top: 4px;
}
:root.light .sigma-landing-card-cta {
  color: #111114;
}
:root.light .sigma-landing-card-cta:hover {
  color: #1A70F1;
}
:root.light .sigma-landing-card-cta:focus-visible {
  color: #1A70F1;
}
:root.dark .sigma-landing-card-cta {
  color: #F3F4F7;
}
:root.dark .sigma-landing-card-cta:hover {
  color: #6EA8FF;
}
:root.dark .sigma-landing-card-cta:focus-visible {
  color: #6EA8FF;
}

.sigma-landing-card-cta-arrow {
  display: flex;
  align-items: center;
  transition: transform 0.18s ease;
}
.sigma-landing-card-cta:hover .sigma-landing-card-cta-arrow {
  transform: translateX(3px);
}
.sigma-landing-card-cta:focus-within .sigma-landing-card-cta-arrow {
  transform: translateX(3px);
}

/* The custom footer carries its own "Built with Fern" badge, so suppress
   Fern's default standalone one. Fern sets `#builtwithfern { display:flex }`
   with !important at equal specificity, so we need an extra qualifier to win. */
body #builtwithfern {
  display: none !important;
}

/* ── Footer (site-wide custom component, mirrors the Sigma site footer) ── */
.sigma-sitefoot {
  --sigma-foot-bg: #E9EAEE;
  position: relative;
  overflow: hidden;
  background: var(--sigma-foot-bg);
  border-top: 1px solid #E5E5E9;
  padding: 48px 64px 26px;
  font-family: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;
}
:root.dark .sigma-sitefoot {
  --sigma-foot-bg: #16161C;
  border-top: 1px solid rgba(255, 255, 255, 0.10);
}

/* faint grid, fading in from the top-left (mockup: .sitefoot::before) */
.sigma-sitefoot::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(10, 46, 112, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(10, 46, 112, 0.06) 1px, transparent 1px);
  background-size: 40px 40px;
  -webkit-mask-image: radial-gradient(130% 150% at 12% -10%, #000 28%, transparent 68%);
  mask-image: radial-gradient(130% 150% at 12% -10%, #000 28%, transparent 68%);
  pointer-events: none;
}
:root.dark .sigma-sitefoot::before {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
}

/* faint Sigma watermark, bottom-right */
.sigma-sf-watermark {
  position: absolute;
  right: -18px;
  bottom: -34px;
  width: 170px;
  height: auto;
  fill: currentColor;
  color: #0A2E70;
  opacity: 0.05;
  pointer-events: none;
  z-index: 0;
}
:root.dark .sigma-sf-watermark {
  color: #ffffff;
  opacity: 0.06;
}

.sigma-sf-inner {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 96px;
  align-items: flex-start;
  max-width: 1280px;
  margin: 0 auto;
}

/* brand wordmark (left) */
.sigma-sf-logo {
  display: flex;
  flex: none;
}
.sigma-sf-wordmark {
  height: 24px;
  width: auto;
  display: block;
  fill: currentColor;
}
:root.light .sigma-sf-logo { color: #111114; }
:root.dark .sigma-sf-logo { color: #ffffff; }

.sigma-sf-cols {
  display: flex;
  gap: 80px;
}
.sigma-sf-heading {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 20px;
}
:root.light .sigma-sf-heading { color: #111114; }
:root.dark .sigma-sf-heading { color: #ffffff; }

.sigma-sf-links {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sigma-sf-links a {
  display: flex;
  align-items: center;
  gap: 13px;
  font-size: 15px;
  text-decoration: none;
  width: fit-content;
}
:root.light .sigma-sf-links a { color: #3A3A40; }
:root.light .sigma-sf-links a:hover { color: #111114; }
:root.light .sigma-sf-links a:focus-visible { color: #111114; }
:root.dark .sigma-sf-links a { color: #C7C8D1; }
:root.dark .sigma-sf-links a:hover { color: #ffffff; }
:root.dark .sigma-sf-links a:focus-visible { color: #ffffff; }

.sigma-sf-icon {
  width: 19px;
  height: 19px;
  flex: none;
  fill: currentColor;
}
:root.light .sigma-sf-links a .sigma-sf-icon { color: #111114; }
:root.dark .sigma-sf-links a .sigma-sf-icon { color: #C7C8D1; }
.sigma-sf-pub {
  width: 20px;
  height: 20px;
  flex: none;
  object-fit: contain;
  display: block;
  margin: 0 !important;
}
:root.light .sigma-sf-pub { filter: grayscale(1) contrast(1.1); }
:root.dark .sigma-sf-pub { filter: none; }

/* bottom bar: copyright (left) · Built with Fern (center) · legal (right) */
.sigma-sf-bottom {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 40px auto 0;
  padding-top: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
:root.light .sigma-sf-bottom { border-top: 1px solid #E5E5E9; }
:root.dark .sigma-sf-bottom { border-top: 1px solid rgba(255, 255, 255, 0.10); }

.sigma-sf-copy {
  flex: 1;
  font-size: 14px;
  margin: 0;
  white-space: nowrap;
}
:root.light .sigma-sf-copy { color: #8B8B92; }
:root.dark .sigma-sf-copy { color: #7C7D88; }

.sigma-sf-fern {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s ease;
}
.sigma-sf-fern-label { font-size: 13px; }
.sigma-sf-fern-logo {
  height: 13px;
  width: auto;
  display: block;
  fill: currentColor;
}
:root.light .sigma-sf-fern { color: #8B8B92; }
:root.light .sigma-sf-fern:hover { color: #1DA32B; }
:root.light .sigma-sf-fern:focus-visible { color: #1DA32B; }
:root.dark .sigma-sf-fern { color: #7C7D88; }
:root.dark .sigma-sf-fern:hover { color: #3ECF8E; }
:root.dark .sigma-sf-fern:focus-visible { color: #3ECF8E; }

.sigma-sf-legal {
  flex: 1;
  display: flex;
  justify-content: flex-end;
  gap: 22px;
  flex-wrap: wrap;
}
.sigma-sf-legal a {
  font-size: 13px;
  text-decoration: none;
}
:root.light .sigma-sf-legal a { color: #5F5F66; }
:root.light .sigma-sf-legal a:hover { color: #111114; }
:root.light .sigma-sf-legal a:focus-visible { color: #111114; }
:root.dark .sigma-sf-legal a { color: #A6A7B2; }
:root.dark .sigma-sf-legal a:hover { color: #ffffff; }
:root.dark .sigma-sf-legal a:focus-visible { color: #ffffff; }


/* ── Responsive ── */

@media (max-width: 768px) {

  .sigma-card-grid {
    grid-template-columns: 1fr;
  }
  .sigma-hero-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .sigma-hero-card-body {
    padding: 28px 24px 32px;
  }
  .sigma-landing .sigma-hero-card-title {
    font-size: 32px !important;
  }
  .sigma-hero {
    padding: 48px 0 28px;
  }
  .sigma-hero-inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .sigma-landing .sigma-hero-title {
    font-size: 36px !important;
  }
  .sigma-hero-art {
    display: none;
  }
  .sigma-sitefoot {
    padding: 40px 24px 24px;
  }
  .sigma-sf-inner {
    flex-direction: column;
    gap: 32px;
  }
  .sigma-sf-cols {
    flex-direction: column;
    gap: 32px;
  }
  .sigma-sf-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .sigma-sf-copy,
  .sigma-sf-legal {
    flex: none;
    justify-content: flex-start;
  }

}

@media (min-width: 769px) and (max-width: 1024px) {

  .sigma-card-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .sigma-landing .sigma-hero-title {
    font-size: 56px !important;
  }

}

/* ── Recipes page ── */

.sigma-recipes {
  max-width: 960px;
  margin: 0 auto;
  padding: 48px 24px 64px;
}

.sigma-recipes h1 {
  font-family: "Advercase", Georgia, "Times New Roman", serif;
  font-size: 3.5rem;
  font-weight: 400;
  text-align: center;
  margin: 0 0 8px;
}

.sigma-recipes .subtitle {
  text-align: center;
  opacity: 0.55;
  margin: 0 0 48px;
  font-size: 1rem;
}

.sigma-recipes h2 {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.4;
  margin: 40px 0 16px;
}

/* Recipe card base */
.sigma-recipes .recipe-card-link {
  border: 1px solid;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
  text-decoration: none;
}
.sigma-recipes .recipe-card-link:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06) !important;
  text-decoration: none;
}
.sigma-recipes .recipe-card-link:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06) !important;
  text-decoration: none;
}

/* Light mode recipe cards */
:root.light .sigma-recipes .recipe-card-link {
  background-color: #ffffff;
  border-color: #e5e7eb;
  color: #171717;
}
:root.light .sigma-recipes .recipe-card-link:hover {
  background-color: #f9fafb;
}
:root.light .sigma-recipes .recipe-card-link:focus-visible {
  background-color: #f9fafb;
}
:root.light .sigma-recipes .recipe-open-btn {
  background-color: #f3f4f6;
  color: #171717;
}

/* Dark mode recipe cards */
:root.dark .sigma-recipes .recipe-card-link {
  background-color: #1e1e1e;
  border-color: #333333;
  color: #e5e7eb;
}
:root.dark .sigma-recipes .recipe-card-link:hover {
  background-color: #262626;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
}
:root.dark .sigma-recipes .recipe-card-link:focus-visible {
  background-color: #262626;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
}
:root.dark .sigma-recipes .recipe-open-btn {
  background-color: #2a2a2a;
  color: #e5e7eb;
}

/* FA icon styling in recipe cards */
.sigma-recipes .recipe-icon i {
  font-size: 24px;
}
:root.light .sigma-recipes .recipe-icon i {
  color: #2d8a4e;
}
:root.dark .sigma-recipes .recipe-icon i {
  color: #4ade80;
}



/* Recipes grid responsive */
@media (max-width: 900px) {

  .sigma-recipes > div > div {
    grid-template-columns: repeat(2, 1fr) !important;
  }

}
@media (max-width: 600px) {

  .sigma-recipes > div > div {
    grid-template-columns: 1fr !important;
  }

}

/* ══════════════════════════════════════════════════════════════════════════════
   Table styles — ported from Sigma's custom table CSS.
   Usage: wrap a markdown table in <div class="table-a"> ... </div>
   Variants: table-a, table-a2, table-a3, table-a4, table-b, table-b2,
             table-d, table-e, grid, grid-list, alt-row-header, subheader-row,
             col-3-thumb, function-list, full-width, header-col-200
   ══════════════════════════════════════════════════════════════════════════════ */


/* ── CSS variables ── */
:root {
  --table-default-bg: #fcfcfc;
  --table-alt-bg-1: #c6c6c6;
  --table-alt-bg-2: #dddddd;
  --table-alt-bg-3: #e9e9e9;
  --table-alt-bg-4: #e9e9e975;
}
:root.dark {
  --table-default-bg: #303b4265;
  --table-alt-bg-1: #565f65;
  --table-alt-bg-2: #444e54;
  --table-alt-bg-3: #363e43;
  --table-alt-bg-4: #363e4375;
}

/* ── Utility background classes ── */
.default-bg { background-color: var(--table-default-bg) !important; }
.alt-bg-1 { background-color: var(--table-alt-bg-1) !important; }
.alt-bg-2 { background-color: var(--table-alt-bg-2) !important; }
.alt-bg-3 { background-color: var(--table-alt-bg-3) !important; }
.alt-bg-4 { background-color: var(--table-alt-bg-4) !important; }

/* .row-header is a marker class with no styles of its own — apply it
   alongside an alt-bg-* class on a row's genuine first-column/header cell so
   grouped (rowspan) table rules can tell it apart from a cell that's merely
   first-child because a preceding row's rowspan cell occupies the true first
   column. See the .table-b2:has(td[rowspan])... rules below. */

/* ── Base table resets ── */
.table-a table,
.table-a2 table,
.table-a3 table,
.table-a4 table,
.table-b table,
.table-b2 table,
.table-d table,
.table-e table,
.grid table,
.grid-list table {
  border: none;
  width: 100%;
  text-align: left;
}

/* Key-value markdown tables are authored with a blank header row (| | |),
   which renders an empty <thead> that shows as a grey bar. Hide the header
   row when every cell in it is empty. Tables with real headers (any non-empty
   <th>) are untouched. */
table thead:has(th):not(:has(th:not(:empty))) {
  display: none;
}

/* Space between tables stacked directly on top of each other — adjacent table
   wrappers (or bare tables) otherwise render flush with no gap between them.
   Matches whole class names that start with "table-" (table-a, table-b2, ...), not
   any class that merely contains it, such as the sigma-adv-table-* component classes. */
.fern-prose :is([class^="table-"], [class*=" table-"]) + :is([class^="table-"], [class*=" table-"]),
.fern-prose table + table {
  margin-top: 1.5rem;
}

.table-a table th,
.table-a2 table th,
.table-a3 table th,
.table-a4 table th,
.table-b table th,
.table-b2 table th,
.table-d table th,
.table-e table th {
  vertical-align: bottom;
  padding: 0.5rem 0.75rem;
}

.table-a table td,
.table-a2 table td,
.table-a3 table td,
.table-a4 table td,
.table-b table td,
.table-b2 table td,
.table-d table td,
.table-e table td {
  vertical-align: top;
  padding: 0.5rem 0.75rem;
}

/* ── Default header background ── */
.table-a table thead th,
.table-a2 table thead th,
.table-a3 table thead th,
.table-a4 table thead th,
.table-b table thead th,
.table-b2 table thead th,
.table-d table thead th {
  background: #e9e9e9;
}
:root.dark .table-a table thead th,
:root.dark .table-a2 table thead th,
:root.dark .table-a3 table thead th,
:root.dark .table-a4 table thead th,
:root.dark .table-b table thead th,
:root.dark .table-b2 table thead th,
:root.dark .table-d table thead th {
  background: #444e54;
}

/* ── Table A: standard bordered ── */
.table-a th {
  border: 1px solid #d8d8d8 !important;
}
:root.dark .table-a th {
  border-color: #d8d8d845 !important;
}
.table-a td {
  border: 1px solid #d8d8d8 !important;
}
:root.dark .table-a td {
  border-color: #d8d8d845 !important;
}

/* ── Table A2: bordered + header column ── */
.table-a2 th,
.table-a2 td {
  border: 1px solid #d8d8d8 !important;
}
:root.dark .table-a2 th,
:root.dark .table-a2 td {
  border-color: #d8d8d845 !important;
}
.table-a2 td:first-child {
  background-color: #e9e9e975;
  font-weight: 600;
}
:root.dark .table-a2 td:first-child {
  background-color: #363e4395 !important;
}

/* Grouped (rowspan) tables: reset header shading on spanned rows */
.table-a2:has(td[rowspan]) tr:not(:has(td[rowspan])) td:first-child {
  background-color: transparent !important;
  font-weight: 400 !important;
}

/* ── Table A3: merged header row ── */
.table-a3 tr,
.table-a3 td {
  border: 1px solid #d8d8d8 !important;
}
:root.dark .table-a3 tr,
:root.dark .table-a3 td {
  border-color: #d8d8d845 !important;
}

/* ── Table A4: header column + merged header row ── */
.table-a4 tr,
.table-a4 td {
  border: 1px solid #d8d8d8 !important;
}
:root.dark .table-a4 tr,
:root.dark .table-a4 td {
  border-color: #d8d8d845 !important;
}
.table-a4 td:first-child {
  background-color: #e9e9e975;
  font-weight: 600;
}
:root.dark .table-a4 td:first-child {
  background-color: #363e4395 !important;
}

/* ── Table B: horizontal borders only ── */
.table-b tr {
  border-bottom: 1px solid #d8d8d8;
}
:root.dark .table-b tr {
  border-bottom: 1px solid #d8d8d845;
}
.table-b td {
  background-color: #fcfcfc;
}
:root.dark .table-b td {
  background-color: #303b4265;
}

/* ── Table B2: horizontal borders + header column ── */
.table-b2 tr {
  border-bottom: 1px solid #d8d8d8;
}
:root.dark .table-b2 tr {
  border-bottom: 1px solid #d8d8d845;
}
.table-b2 td:not(:first-child) {
  background-color: #fcfcfc !important;
}
:root.dark .table-b2 td:not(:first-child) {
  background-color: #303b4265 !important;
}
.table-b2 td:first-child {
  background-color: #e9e9e975;
  font-weight: 600;
}
:root.dark .table-b2 td:first-child {
  background-color: #363e4395 !important;
}

.table-b2:has(td[rowspan]) tr:not(:has(td[rowspan])):not(:has(td.row-header)) td:first-child {
  background-color: #fcfcfc !important;
  font-weight: 400 !important;
}
:root.dark .table-b2:has(td[rowspan]) tr:not(:has(td[rowspan])):not(:has(td.row-header)) td:first-child {
  background-color: #303b4265 !important;
  font-weight: 400 !important;
}

/* ── Table D: blank corner cell ── */
.table-d th:not(:first-child),
.table-d td {
  border: 1px solid #d8d8d8 !important;
}
:root.dark .table-d th:not(:first-child),
:root.dark .table-d td {
  border-color: #d8d8d845 !important;
}
.table-d th {
  font-weight: bold;
}
.table-d th:first-child {
  background-color: transparent !important;
  border-top: none;
  border-left: none;
}
.table-d td:first-child {
  background-color: #e9e9e975;
  font-weight: 600;
}
:root.dark .table-d td:first-child {
  background-color: #363e43;
}

/* ── Table E: horizontal borders + borderless header column ── */
.table-e {
  border-collapse: collapse;
  width: 100%;
}
.table-e td,
.table-e th {
  border: 1px solid #d8d8d8;
  padding: 8px;
  text-align: left;
}
.table-e td:first-child,
.table-e th:first-child {
  border-left: none;
  background: none;
}
.table-e td:not(:first-child),
.table-e th:not(:first-child) {
  border-bottom: 1px solid #d8d8d8;
}
:root.dark .table-e th:not(:first-child),
:root.dark .table-e td:not(:first-child) {
  border-color: #d8d8d845 !important;
}
.table-e th:first-child {
  background-color: transparent !important;
  border-top: none;
  border-left: none;
}

/* ── Grid: borderless + extra padding ── */
.grid {
  margin: 0 0.5rem 0 0;
}
.grid table td:not(.code-block-line-content):not(.code-block-line-gutter) {
  padding: 1rem;
}

/* ── Grid-list: borderless compact grid ── */
.grid-list {
  margin: 0 0 1rem 0;
  padding-bottom: 0.5rem;
}
.grid-list table td {
  padding: 0.5rem;
}
.grid-list table td:first-child img {
  margin: 0 auto;
}

/* ── Center: center first column ── */
.center table td:first-child {
  text-align: center !important;
}

/* ── Utility classes ── */
th.top-lev {
  background-color: #d5d5d5;
}

td.header-col,
.header-col {
  background-color: #f4f4f4;
  font-weight: 600;
}
:root.dark td.header-col,
:root.dark .header-col {
  background-color: #303b42b0;
}

td.header-colspan,
td.header-colspan p {
  background-color: #e5e5e5;
  font-weight: 600;
}

.matrix-text-center th:not(:first-child),
.matrix-text-center td:not(:first-child) {
  text-align: center !important;
}

.function-list td:first-child {
  min-width: 150px;
  font-weight: 600;
}

.full-width table {
  width: 100%;
}

.header-col-200 td:first-child {
  width: 200px;
}

/* ── Alternating row headers ── */
.alt-row-header tr:nth-child(2n) {
  background-color: #e9e9e9 !important;
  font-weight: 600;
}
:root.dark .alt-row-header tr:nth-child(2n) {
  background-color: #444e54 !important;
}

/* ── Row banding (body rows only, no bold) ── */
.row-banded tbody tr:nth-child(2n) {
  background-color: #e9e9e9 !important;
}
:root.dark .row-banded tbody tr:nth-child(2n) {
  background-color: #444e54 !important;
}

/* ── Subheader row ── */
.subheader-row tr:nth-child(1) {
  background-color: #e9e9e975;
  font-weight: 600;
}

/* ── Column 3 thumbnail ── */
.col-3-thumb th:nth-child(3) {
  width: 30%;
  word-wrap: break-word;
}

/* ── Break long strings in cells ── */
.break-string td {
  word-break: break-word;
}

/* Long unbroken strings (e.g. SSH keys) in <pre>/<code> would otherwise
   overflow and blow out the table width — force them to wrap. */
.break-string td pre,
.break-string td code {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-all;
}

/* ...but the key column holds short labels — don't break those mid-word. */
.break-string td:first-child,
.break-string td:first-child p {
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

/* ── Prevent wrapping on inline labels ──
   Usage: <span className="no-wrap">...</span> (used widely across docs). */
.no-wrap {
  white-space: nowrap;
}

/* ── Table paragraph spacing ── */
.table-a td p:not(:last-child),
.table-a2 td p:not(:last-child),
.table-a3 td p:not(:last-child),
.table-a4 td p:not(:last-child),
.table-b td p:not(:last-child),
.table-b2 td p:not(:last-child),
/* plain (unwrapped) prose tables — e.g. the support page — get the same
   breathing room between stacked paragraphs in a cell */
.fern-prose td p:not(:last-child) {
  margin-bottom: 0.5rem;
}

/* ── Table list spacing ──
   Applies to every table-* variant (table-a, table-b2, table-d, ...) but not
   sigma-adv-table-* component classes, same matching as the rule above. */
:is([class^="table-"], [class*=" table-"]) li > p {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
:is([class^="table-"], [class*=" table-"]) li + li,
:is([class^="table-"], [class*=" table-"]) li > ul {
  margin-top: 0.5em;
}

/* ── Checkmark / xmark lists (e.g. billable usage events) ──
   Usage: <ul className="checkmark"> or <ul className="xmark"> with <li> items.
   Replaces the default bullet with a colored ✓ / ✕ marker. */
ul.checkmark,
ul.xmark {
  list-style: none;
  padding-left: 0.75em;
  margin-left: 0;
}

.checkmark li,
.xmark li {
  list-style: none;
}

.checkmark li::before,
.xmark li::before {
  display: inline-block;
  width: 1.2em;
  font-weight: 600;
}

.checkmark li::before {
  content: "✓";
  color: #2e7d32;
}

.xmark li::before {
  content: "✕";
  color: #ff0000;
}

/* ── Prevent Fern image-zoom from adding excessive margins to table images ── */
table td img,
.fern-table td img {
  margin: 0 auto !important;
  display: block;
}

/* ── Give table logos a light background in dark mode so dark text stays readable ── */
:root.dark table td img,
:root.dark .fern-table td img {
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  padding: 4px;
}

/* ── Interactive table (custom_blocks/CustomAdvancedTable.tsx) ──
   Filterable, sortable, paginated table. Column min-widths stay inline in the
   component because they're calculated from each table's data. */
/* Colors, shared with the category dropdown above linked tables (FilteredEventTables) */
.sigma-adv-table,
.sigma-filtered-tables {
  --sigma-adv-table-control-border: #d1d5db;
  --sigma-adv-table-header-border: #e5e7eb;
  --sigma-adv-table-row-border: #f3f4f6;
  --sigma-adv-table-muted: #6b7280;
  --sigma-adv-table-current-bg: #dbeafe;
  --sigma-adv-table-current: #1A70F1;
}
:root.dark .sigma-adv-table,
:root.dark .sigma-filtered-tables {
  --sigma-adv-table-control-border: #565f65;
  --sigma-adv-table-header-border: #444e54;
  --sigma-adv-table-row-border: #363e43;
  --sigma-adv-table-muted: #9ca3af;
  --sigma-adv-table-current-bg: #1e3a5f;
  --sigma-adv-table-current: #93c5fd;
}

.sigma-adv-table {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sigma-adv-table-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sigma-adv-table-filter-group {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sigma-adv-table-filter {
  width: 200px;
  padding: 8px 12px;
  border: 1px solid var(--sigma-adv-table-control-border);
  border-radius: 6px;
  background: inherit;
}
.sigma-adv-table-page-label {
  font-size: 13px;
  color: var(--sigma-adv-table-muted);
  white-space: nowrap;
}
.sigma-adv-table-export {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  font-size: 14px;
  border: 1px solid var(--sigma-adv-table-control-border);
  border-radius: 6px;
  background: inherit;
  cursor: pointer;
}
.sigma-adv-table-export svg {
  flex-shrink: 0;
}

.sigma-adv-table-scroll {
  overflow: auto;
}
/* margin: 0 overrides Fern's prose table margins, so the 8px gap above is the only spacing */
.sigma-adv-table table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
}
.sigma-adv-table th {
  text-align: left;
  padding: 8px;
  border-bottom: 2px solid var(--sigma-adv-table-header-border);
  white-space: nowrap;
}
.sigma-adv-table td {
  padding: 8px;
  border-bottom: 1px solid var(--sigma-adv-table-row-border);
}
/* Two classes, so this outranks the plain td rule above */
.sigma-adv-table .sigma-adv-table-empty {
  padding: 16px;
  text-align: center;
  color: #9ca3af;
}
/* Strip the default button look so the sort control reads as header text,
   but keep the browser's focus outline for keyboard users */
.sigma-adv-table-sort {
  width: 100%;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: inherit;
  text-align: inherit;
  cursor: pointer;
}

.sigma-adv-table-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex-wrap: wrap;
}
.sigma-adv-table-pager button {
  padding: 4px 12px;
  border: none;
  border-radius: 6px;
  background: inherit;
  color: inherit;
  font-weight: 400;
  cursor: pointer;
}
.sigma-adv-table-pager [aria-current="page"] {
  font-weight: 700;
  background: var(--sigma-adv-table-current-bg);
  color: var(--sigma-adv-table-current);
}
/* Previous and Next use aria-disabled instead of disabled (see goToPage in the component) */
.sigma-adv-table-pager [aria-disabled="true"],
.sigma-adv-table-export:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ── Linked tables with one category dropdown (custom_blocks/FilteredEventTables.tsx) ── */
.sigma-filtered-tables {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.sigma-filtered-tables-category {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 320px;
}
/* The browser's own arrow can't be moved, so draw one 12px in from the right edge instead */
.sigma-filtered-tables-category select {
  appearance: none;
  padding: 4px 36px 4px 12px;
  border: 1px solid var(--sigma-adv-table-control-border);
  border-radius: 6px;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center / 12px 8px;
  cursor: pointer;
}
:root.dark .sigma-filtered-tables-category select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%239ca3af' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ============================================================
   Individual docs-page styling (scoped to non-landing pages)
   - content links in Sigma blue (#1A70F1)
   - page title (H1) in the Advercase display face
   - left-align content images (Fern centers them via .mx-auto)
   ============================================================ */

/* Links — Sigma blue */
body:not(:has(.sigma-landing)) .fern-prose a {
  color: #1A70F1;
}
body:not(:has(.sigma-landing)) .fern-prose a:hover {
  color: #1660D6;
}
body:not(:has(.sigma-landing)) .fern-prose a:focus-visible {
  color: #1660D6;
}

/* "Try it" playground buttons (RunnableEndpoint) — black in light mode,
   white in dark mode, instead of inheriting the plain-link color override
   above, which strips their accent styling. Matches the native "Try it"
   button styling on the API reference page. */
body:not(:has(.sigma-landing)) .fern-prose a[href*="explorer=true"] {
  background-color: #000000;
  color: #FFFFFF;
}
body:not(:has(.sigma-landing)) .fern-prose a[href*="explorer=true"]:hover {
  background-color: #262626;
  color: #FFFFFF;
}
body:not(:has(.sigma-landing)) .fern-prose a[href*="explorer=true"]:focus-visible {
  background-color: #262626;
  color: #FFFFFF;
}
:root.dark body:not(:has(.sigma-landing)) .fern-prose a[href*="explorer=true"] {
  background-color: #FFFFFF;
  color: #000000;
}
:root.dark body:not(:has(.sigma-landing)) .fern-prose a[href*="explorer=true"]:hover {
  background-color: #E5E5E5;
  color: #000000;
}
:root.dark body:not(:has(.sigma-landing)) .fern-prose a[href*="explorer=true"]:focus-visible {
  background-color: #E5E5E5;
  color: #000000;
}

/* Page title — Advercase display font */
body:not(:has(.sigma-landing)) h1.fern-page-heading {
  font-family: "Advercase", Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: 0.02em;
}

/* Images — left-aligned (override Fern's centering)… */
body:not(:has(.sigma-landing)) .fern-prose img {
  margin-left: 0 !important;
  margin-right: auto !important;
}
/* …but keep small images inside table cells centered (existing behavior) */
body:not(:has(.sigma-landing)) .fern-prose td img {
  margin: 0 auto !important;
}
/* Step screenshots inside numbered/bulleted lists stay at the list's content
   indent so they line up with the step text (not pulled out to the page
   margin). Inline icons keep their inline style; table-cell images untouched. */
body:not(:has(.sigma-landing)) .fern-prose li p img:not([style*="display: inline"]) {
  margin-left: 0 !important;
}

/* ============================================================
   Callout styling — customer brand colors
   Mapping: <Info> = "Note" (blue), <Warning> = "Warning" (red),
            <Note> = "Important" (purple), <Tip> = "Tip" (green)
   ============================================================ */

/* ── Note (intent "info") — Blue ── */
.fern-callout[data-intent="info"] {
  background-color: #EEF4FF !important;
  border-color: #C6D8FB !important;
  color: #3B6FD4 !important;
}
.fern-callout[data-intent="info"] svg {
  color: #3B6FD4 !important;
}
.fern-callout[data-intent="info"] h5,
.fern-callout[data-intent="info"] p,
.fern-callout[data-intent="info"] li,
.fern-callout[data-intent="info"] a {
  color: #1e3a5f !important;
}

/* ── Warning (intent "warning") — Red/Orange ── */
.fern-callout[data-intent="warning"] {
  background-color: #FFF0EC !important;
  border-color: #FDB19E !important;
  color: #E04B28 !important;
}
.fern-callout[data-intent="warning"] svg {
  color: #E04B28 !important;
}
.fern-callout[data-intent="warning"] h5,
.fern-callout[data-intent="warning"] p,
.fern-callout[data-intent="warning"] li,
.fern-callout[data-intent="warning"] a {
  color: #5c1d0e !important;
}

/* ── Important (intent "note") — Purple ── */
.fern-callout[data-intent="note"] {
  background-color: #F3EFFF !important;
  border-color: #C4AFF5 !important;
  color: #7C4DCC !important;
}
.fern-callout[data-intent="note"] svg {
  color: #7C4DCC !important;
}
.fern-callout[data-intent="note"] h5,
.fern-callout[data-intent="note"] p,
.fern-callout[data-intent="note"] li,
.fern-callout[data-intent="note"] a {
  color: #3b1f6e !important;
}

/* ── Tip (intent "tip") — Green ── */
.fern-callout[data-intent="tip"] {
  background-color: #E5FBEA !important;
  border-color: #9DE0B0 !important;
  color: #27A050 !important;
}
.fern-callout[data-intent="tip"] svg {
  color: #27A050 !important;
}
.fern-callout[data-intent="tip"] h5,
.fern-callout[data-intent="tip"] p,
.fern-callout[data-intent="tip"] li,
.fern-callout[data-intent="tip"] a {
  color: #133d22 !important;
}

/* ── Callout icon replacement via CSS ──
   Hide default SVG and inject custom icons as background-image on the container */

/* Warning: replace Bell with Triangle Alert */
.fern-callout[data-intent="warning"] > div > div:first-child {
  position: relative;
}
.fern-callout[data-intent="warning"] > div > div:first-child svg {
  visibility: hidden;
}
.fern-callout[data-intent="warning"] > div > div:first-child::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23E04B28' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

/* Important (note): replace Pin with Flag */
.fern-callout[data-intent="note"] > div > div:first-child {
  position: relative;
}
.fern-callout[data-intent="note"] > div > div:first-child svg {
  visibility: hidden;
}
.fern-callout[data-intent="note"] > div > div:first-child::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237C4DCC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z'/%3E%3Cline x1='4' x2='4' y1='22' y2='15'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

/* Opt a Note out of the forced Flag icon to use its inline icon= prop.
   Sizing is left to Fern's own [&_svg]:size-icon-md wrapper. */
.fern-callout.custom-icon[data-intent="note"] .callout-icon svg {
  visibility: visible;
  width: 16px;
  height: 16px;
  overflow: visible;
}
.fern-callout.custom-icon[data-intent="note"] > div > div:first-child::before {
  content: none;
}

/* Note (info): ensure info circle icon stays (default is already correct) */
.fern-callout[data-intent="info"] > div > div:first-child {
  position: relative;
}

/* ── Dark mode callout adjustments ── */
:root.dark .fern-callout[data-intent="info"] {
  background-color: rgba(59, 111, 212, 0.10) !important;
  border-color: rgba(198, 216, 251, 0.25) !important;
  color: #8AB4F8 !important;
}
:root.dark .fern-callout[data-intent="info"] svg {
  color: #8AB4F8 !important;
}
:root.dark .fern-callout[data-intent="info"] h5,
:root.dark .fern-callout[data-intent="info"] p,
:root.dark .fern-callout[data-intent="info"] li,
:root.dark .fern-callout[data-intent="info"] a {
  color: #c8dcf8 !important;
}

:root.dark .fern-callout[data-intent="warning"] {
  background-color: rgba(224, 75, 40, 0.10) !important;
  border-color: rgba(253, 177, 158, 0.25) !important;
  color: #F4845F !important;
}
:root.dark .fern-callout[data-intent="warning"] svg {
  color: #F4845F !important;
}
:root.dark .fern-callout[data-intent="warning"] h5,
:root.dark .fern-callout[data-intent="warning"] p,
:root.dark .fern-callout[data-intent="warning"] li,
:root.dark .fern-callout[data-intent="warning"] a {
  color: #f8d0c0 !important;
}
:root.dark .fern-callout[data-intent="warning"] > div > div:first-child::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23F4845F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
}

:root.dark .fern-callout[data-intent="note"] {
  background-color: rgba(124, 77, 204, 0.10) !important;
  border-color: rgba(196, 175, 245, 0.25) !important;
  color: #B794F4 !important;
}
:root.dark .fern-callout[data-intent="note"] svg {
  color: #B794F4 !important;
}
:root.dark .fern-callout[data-intent="note"] h5,
:root.dark .fern-callout[data-intent="note"] p,
:root.dark .fern-callout[data-intent="note"] li,
:root.dark .fern-callout[data-intent="note"] a {
  color: #dccef8 !important;
}
:root.dark .fern-callout[data-intent="note"] > div > div:first-child::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23B794F4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z'/%3E%3Cline x1='4' x2='4' y1='22' y2='15'/%3E%3C/svg%3E");
}

:root.dark .fern-callout[data-intent="tip"] {
  background-color: rgba(39, 160, 80, 0.10) !important;
  border-color: rgba(157, 224, 176, 0.25) !important;
  color: #6BCB77 !important;
}
:root.dark .fern-callout[data-intent="tip"] svg {
  color: #6BCB77 !important;
}
:root.dark .fern-callout[data-intent="tip"] h5,
:root.dark .fern-callout[data-intent="tip"] p,
:root.dark .fern-callout[data-intent="tip"] li,
:root.dark .fern-callout[data-intent="tip"] a {
  color: #c0f0cc !important;
}

/* Footnote CSS */

.footnote {
  display: flex;
  align-items: baseline;
}
.footnote-marker {
  font-size: smaller;
  margin-right: 0.25em;
  position: relative;
  top: -0.25rem;
}
.footnote-content {
  font-style: italic;
  font-size: 0.9rem;
}

/* ============================================================
   Inline code — grayer background for higher contrast
   (Fern's default uses a near-white fill that's hard to read)
   ============================================================ */
:root.light .fern-prose code:not(pre code):not(.fern-prompt-code),
:root.light .fern-mdx-inline-code {
  background-color: #F3F3F4 !important;
  border-color: #E0E2E7 !important;
  color: #24242E !important;
}
:root.dark .fern-prose code:not(pre code):not(.fern-prompt-code),
:root.dark .fern-mdx-inline-code {
  background-color: #2B2B33 !important;
  border-color: #3A3A44 !important;
  color: #E6E6EB !important;
}


/* ============================================================
   Code blocks — force the configured monospace code font on
   fenced (```) and <pre> blocks and use a gray background
   ============================================================ */
:root.light .fern-code-block {
  background-color: #F3F3F4 !important;
  border-color: #E0E2E7 !important;
}
:root.dark .fern-code-block {
  background-color: #2B2B33 !important;
  border-color: #3A3A44 !important;
}

/* The light syntax theme colors comments a very pale gray (rgb(194,195,197))
   that's hard to read on the gray code-block fill. Shiki sets it inline, so
   match that exact (comment-only) color and darken it for contrast. Dark mode
   uses --shiki-dark (#8a8a8a) on the dark fill and reads fine, so it's left. */
:root.light .fern-code-block span[style*="color: rgb(194, 195, 197)"] {
  color: #5C6370 !important;
}

pre,
code,
[class*="code-block"] {
  font-family: var(--typography-code-font-family) !important;
}

/* ============================================================
  Mermaid diagrams — Fern renders mermaid with the theme matching the active
   site mode, so node fills, text, edge colors, and edge-label chip
   backgrounds all shift between light and dark. To keep diagrams
   readable AND consistent, we normalize every diagram to one light "card"
   palette (dark ink text, light fills, gray edges, white edge-label chips)
   in BOTH themes — light cards read fine over the dark page too. Diagram
   fills authored inline in the .mdx (style X fill:#…) are decorative, so we
   override them here for legibility. The diagram is an <svg id="mermaid-…"
   class="flowchart"> (no .mermaid wrapper), and mermaid scopes its own
   styles by that dynamic #id, so we match the id prefix and use
   !important to win.
   ============================================================ */
svg[id^="mermaid-"] .nodeLabel,
svg[id^="mermaid-"] .nodeLabel p,
svg[id^="mermaid-"] .edgeLabel,
svg[id^="mermaid-"] .edgeLabel p,
svg[id^="mermaid-"] .cluster-label,
svg[id^="mermaid-"] .label,
svg[id^="mermaid-"] span,
svg[id^="mermaid-"] text {
  fill: #14213d !important;
  color: #14213d !important;
}
svg[id^="mermaid-"] .node rect,
svg[id^="mermaid-"] .node polygon,
svg[id^="mermaid-"] .node circle,
svg[id^="mermaid-"] .node ellipse,
svg[id^="mermaid-"] .node path,
svg[id^="mermaid-"] .cluster rect {
  fill: #eef4ff !important;
  stroke: #3b6fd4 !important;
}
/* edges + arrowheads (arrowheads inherit the svg fill → invisible) */
svg[id^="mermaid-"] .flowchart-link,
svg[id^="mermaid-"] .edgePath .path {
  stroke: #5a6577 !important;
}
svg[id^="mermaid-"] .marker,
svg[id^="mermaid-"] .arrowMarkerPath {
  fill: #5a6577 !important;
}

/* edge-label chips — the dark theme paints the chip via background-color on
   the HTML <p> (foreignObject label), not the SVG rect, so forcing only the
   rect/labelBkg leaves a dark chip under the (now dark) text in dark mode.
   Force white on all four: the HTML label elements and the SVG fallbacks. */
svg[id^="mermaid-"] .edgeLabel,
svg[id^="mermaid-"] .edgeLabel p {
  background-color: #ffffff !important;
  opacity: 1 !important;
}
svg[id^="mermaid-"] .edgeLabel rect,
svg[id^="mermaid-"] .labelBkg {
  fill: #ffffff !important;
  background-color: #ffffff !important;
  opacity: 1 !important;
  padding: 4px !important;
}


/* Inline caret/dropdown icon sits slightly low with vertical-align: middle —
   nudge it up 2px so it reads as centered (e.g. inside parentheses). */
.fern-prose img[src*="caret.svg"] {
  transform: translateY(-2px);
}

/* ── Hide the Ask AI UI while the backend stays enabled ──
Hides every Ask AI surface: the header button, the "Ask AI" entry in the
search dialog, the Ask AI side panel (also reachable via keyboard
shortcut), the "Ask a question" page action, and the per-endpoint Ask AI
buttons in API reference blocks. The AI backend remains on so the MCP
server keeps working. */
#fern-ask-ai-button,
#fern-ask-ai-panel,
[data-cmdk-item][data-value^="Ask AI"],
[data-mode="ask-ai"],
button[aria-label="Ask AI"],
button[title="Ask a question about this page"],
[role="menuitemradio"].fern-dropdown-item:has(svg path[d^="M327.5 85.2"]) {
  display: none !important;
}

/* If the Ask AI side panel is triggered anyway (e.g. pressing Enter in the
search dialog), the layout normally shifts left to make room for it —
with the panel hidden that leaves a blank strip. Cancel the shift. */
[data-side-panel-open] {
  margin-right: 0 !important;
}

/* The header also shrinks to make room for the hidden panel — keep it full width. */
[data-side-panel-open] #fern-header {
  width: 100% !important;
}

/* "Chat with AI" button loading state (toggled by custom.js while Intercom
boots). Overlay covers the existing icon/text via `background: inherit`, so
it doesn't need to know Fern's internal button markup. */
.sigma-chat-loading {
  position: relative;
  pointer-events: none;
}

.sigma-chat-loading::before {
  content: "";
  position: absolute;
  inset: 0;
  background: inherit;
  border-radius: inherit;
}

.sigma-chat-loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: sigma-chat-spin 0.7s linear infinite;
}

@keyframes sigma-chat-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Process diagram (Build apps > AI apps overview) */
.sigma-flow-diagram {
  display: flex;
  align-items: center;
  margin-top: 1.5rem;
  padding: 0 1rem;
}

.sigma-flow-box {
  flex: 1 0 calc(30% - 45px);
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #292929;
  font-family: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1rem;
  border: 1.5px solid #3d3d3d;
  border-radius: 12px;
}

.sigma-flow-box-1 { background-color: #e9e9e9; }
.sigma-flow-box-2 { background-color: #c6d8fb; }
.sigma-flow-box-3 { background-color: #8ab4f8; }

.sigma-flow-connector {
  flex: 0 0 42px;
  height: 1.5px;
  background-color: #737373;
}
