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

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


.light, :root {
  --accent-1: #fdfdfe;
  --accent-2: #f7f9fe;
  --accent-3: #eef2fc;
  --accent-4: #e1e9fe;
  --accent-5: #d3dffd;
  --accent-6: #c1d1fb;
  --accent-7: #acbff1;
  --accent-8: #8ea5e6;
  --accent-9: #354da8;
  --accent-10: #283d96;
  --accent-11: #435eba;
  --accent-12: #212e57;

  --accent-a1: #00008002;
  --accent-a2: #0040e008;
  --accent-a3: #003cd211;
  --accent-a4: #0044f71e;
  --accent-a5: #0046f42c;
  --accent-a6: #0042ef3e;
  --accent-a7: #003bd453;
  --accent-a8: #0034c771;
  --accent-a9: #001e91ca;
  --accent-a10: #001983d7;
  --accent-a11: #0025a2bc;
  --accent-a12: #000f3ede;

  --accent-contrast: #fff;
  --accent-surface: #f5f8fecc;
  --accent-indicator: #354da8;
  --accent-track: #354da8;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.4% 0.0013 268.7);
      --accent-2: oklch(98.3% 0.007 268.7);
      --accent-3: oklch(96.1% 0.0148 268.7);
      --accent-4: oklch(93.5% 0.0292 268.7);
      --accent-5: oklch(90.3% 0.0441 268.7);
      --accent-6: oklch(86.3% 0.0614 268.7);
      --accent-7: oklch(80.7% 0.0749 268.7);
      --accent-8: oklch(73% 0.0979 268.7);
      --accent-9: oklch(45.4% 0.1488 268.7);
      --accent-10: oklch(40% 0.1488 268.7);
      --accent-11: oklch(51% 0.1488 268.7);
      --accent-12: oklch(31.3% 0.0747 268.7);

      --accent-a1: color(display-p3 0.0196 0.0196 0.5098 / 0.008);
      --accent-a2: color(display-p3 0.0196 0.2667 0.8784 / 0.032);
      --accent-a3: color(display-p3 0.0078 0.1922 0.7529 / 0.063);
      --accent-a4: color(display-p3 0.0039 0.2471 0.898 / 0.114);
      --accent-a5: color(display-p3 0.0039 0.2431 0.8824 / 0.165);
      --accent-a6: color(display-p3 0.0039 0.2078 0.8667 / 0.232);
      --accent-a7: color(display-p3 0.0039 0.1804 0.7725 / 0.31);
      --accent-a8: color(display-p3 0.0039 0.1686 0.7255 / 0.428);
      --accent-a9: color(display-p3 0 0.0902 0.5294 / 0.773);
      --accent-a10: color(display-p3 0 0.0706 0.4745 / 0.824);
      --accent-a11: color(display-p3 0 0.1098 0.5882 / 0.714);
      --accent-a12: color(display-p3 0 0.0471 0.2196 / 0.859);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9647 0.9725 0.9961 / 0.8);
      --accent-indicator: oklch(45.4% 0.1488 268.7);
      --accent-track: oklch(45.4% 0.1488 268.7);
    }
  }
}


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

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

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

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

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

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


.dark {
  --accent-1: #03050e;
  --accent-2: #111423;
  --accent-3: #1a2246;
  --accent-4: #222c60;
  --accent-5: #2b3772;
  --accent-6: #354283;
  --accent-7: #3f4e96;
  --accent-8: #4a5bb0;
  --accent-9: #8ea3f5;
  --accent-10: #8398e9;
  --accent-11: #9cb1ff;
  --accent-12: #d8e1ff;

  --accent-a1: #0006d705;
  --accent-a2: #7793f71b;
  --accent-a3: #5a7bfc3f;
  --accent-a4: #5874fe5a;
  --accent-a5: #5e7afd6d;
  --accent-a6: #6680ff7e;
  --accent-a7: #6b85ff92;
  --accent-a8: #6a83ffad;
  --accent-a9: #94aafff5;
  --accent-a10: #8fa6fee9;
  --accent-a11: #9cb1ff;
  --accent-a12: #d8e1ff;

  --accent-contrast: #fff;
  --accent-surface: #1d233c80;
  --accent-indicator: #8ea3f5;
  --accent-track: #8ea3f5;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(11.8% 0.0244 272.2);
      --accent-2: oklch(19.7% 0.0298 272.2);
      --accent-3: oklch(26.6% 0.0683 272.2);
      --accent-4: oklch(31.6% 0.0919 272.2);
      --accent-5: oklch(36% 0.103 272.2);
      --accent-6: oklch(40.3% 0.109 272.2);
      --accent-7: oklch(45% 0.1185 272.2);
      --accent-8: oklch(50.2% 0.1353 272.2);
      --accent-9: oklch(73.2% 0.1216 272.2);
      --accent-10: oklch(69.6% 0.1216 272.2);
      --accent-11: oklch(77.7% 0.1216 272.2);
      --accent-12: oklch(91.1% 0.0422 272.2);

      --accent-a1: color(display-p3 0 0.0235 0.9451 / 0.013);
      --accent-a2: color(display-p3 0.5373 0.6196 1 / 0.098);
      --accent-a3: color(display-p3 0.4039 0.502 1 / 0.237);
      --accent-a4: color(display-p3 0.3804 0.4745 1 / 0.339);
      --accent-a5: color(display-p3 0.4039 0.502 1 / 0.409);
      --accent-a6: color(display-p3 0.4353 0.5176 1 / 0.478);
      --accent-a7: color(display-p3 0.4549 0.5412 1 / 0.552);
      --accent-a8: color(display-p3 0.451 0.5294 1 / 0.654);
      --accent-a9: color(display-p3 0.6118 0.6784 1 / 0.935);
      --accent-a10: color(display-p3 0.5922 0.6627 1 / 0.886);
      --accent-a11: color(display-p3 0.6431 0.7059 1 / 0.976);
      --accent-a12: color(display-p3 0.8667 0.8941 1 / 0.988);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.1098 0.1333 0.2275 / 0.5);
      --accent-indicator: oklch(73.2% 0.1216 272.2);
      --accent-track: oklch(73.2% 0.1216 272.2);
    }
  }
}


.dark {
  --grayscale-1: #111113;
  --grayscale-2: #18191b;
  --grayscale-3: #212225;
  --grayscale-4: #272a2d;
  --grayscale-5: #2e3135;
  --grayscale-6: #363a3f;
  --grayscale-7: #43484e;
  --grayscale-8: #5a6169;
  --grayscale-9: #696e77;
  --grayscale-10: #777b84;
  --grayscale-11: #b0b4ba;
  --grayscale-12: #edeef0;

  --grayscale-a1: #00000000;
  --grayscale-a2: #d8f4f609;
  --grayscale-a3: #ddeaf814;
  --grayscale-a4: #d3edf81d;
  --grayscale-a5: #d9edfe25;
  --grayscale-a6: #d6ebfd30;
  --grayscale-a7: #d9edff40;
  --grayscale-a8: #d9edff5d;
  --grayscale-a9: #dfebfd6d;
  --grayscale-a10: #e5edfd7b;
  --grayscale-a11: #f1f7feb5;
  --grayscale-a12: #fcfdffef;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.067 0.067 0.074);
      --grayscale-2: color(display-p3 0.095 0.098 0.105);
      --grayscale-3: color(display-p3 0.13 0.135 0.145);
      --grayscale-4: color(display-p3 0.156 0.163 0.176);
      --grayscale-5: color(display-p3 0.183 0.191 0.206);
      --grayscale-6: color(display-p3 0.215 0.226 0.244);
      --grayscale-7: color(display-p3 0.265 0.28 0.302);
      --grayscale-8: color(display-p3 0.357 0.381 0.409);
      --grayscale-9: color(display-p3 0.415 0.431 0.463);
      --grayscale-10: color(display-p3 0.469 0.483 0.514);
      --grayscale-11: color(display-p3 0.692 0.704 0.728);
      --grayscale-12: color(display-p3 0.93 0.933 0.94);

      --grayscale-a1: #00000000;
      --grayscale-a2: #d8f4f609;
      --grayscale-a3: #ddeaf814;
      --grayscale-a4: #d3edf81d;
      --grayscale-a5: #d9edfe25;
      --grayscale-a6: #d6ebfd30;
      --grayscale-a7: #d9edff40;
      --grayscale-a8: #d9edff5d;
      --grayscale-a9: #dfebfd6d;
      --grayscale-a10: #e5edfd7b;
      --grayscale-a11: #f1f7feb5;
      --grayscale-a12: #fcfdffef;

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

.light, :root {
  color-scheme: light;
  --accent: rgba(53, 77, 168, 1);
  --background: rgba(255, 255, 255, 1);
  --border: rgba(177, 179, 188, 1);
  --sidebar-background: rgba(255, 255, 255, 1);
  --header-background: rgba(255, 255, 255, 1);
  --card-background: rgba(255, 255, 255, 1);
  --theme-color: #fff;
}

.dark {
  color-scheme: dark;
  --accent: rgba(142, 163, 245, 1);
  --background: rgba(5, 5, 10, 1);
  --border: rgba(40, 42, 48, 1);
  --sidebar-background: rgba(5, 5, 10, 1);
  --header-background: rgba(5, 5, 10, 1);
  --card-background: rgba(5, 5, 10, 1);
  --theme-color: #05050a;
}

/* Inter font - @import must be first */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap');

/* Custom styles for Respan Docs */

/* Override Fern default img margin inside integration cards */
.integration-card img {
  margin: 0 !important;
}

/* Subtle linear gradient background */
.fern-background-image {
  background-image: linear-gradient(180deg, rgba(100, 131, 240, 0.03) 0%, transparent 50%);
}

:root.dark .fern-background-image {
  background-image: linear-gradient(180deg, rgba(117, 144, 242, 0.03) 0%, transparent 50%);
}

body {
  font-family: 'Inter', sans-serif;
}

/* Heading font weights */
h1, h2 {
  font-weight: 500;
}

h3, h4, h5, h6 {
  font-weight: 400;
}

/* Mermaid diagram colors (dark mode) */
:root.dark .node rect,
:root.dark .node circle,
:root.dark .node polygon,
:root.dark .actor {
  fill: #282A30 !important;
  stroke: #B1B3BC !important;
}

:root.dark .nodeLabel,
:root.dark .edgeLabel,
:root.dark .actor-man,
:root.dark text.actor > tspan {
  color: #F9FAFC !important;
  fill: #F9FAFC !important;
}

:root.dark .edgePath .path,
:root.dark .flowchart-link,
:root.dark line {
  stroke: #B1B3BC !important;
}

:root.dark marker#arrowhead path {
  fill: #B1B3BC !important;
  stroke: #B1B3BC !important;
}

:root.dark .messageText,
:root.dark .sequenceNumber {
  fill: #F9FAFC !important;
  stroke: none !important;
}

:root.dark .messageLine0,
:root.dark .messageLine1 {
  stroke: #B1B3BC !important;
}

/*
 * Responses API Explorer:
 * - examples own the provider header, so it must never be editable;
 * - example selection is the first control in the request form;
 * - Fern's map key is derived from the provider/model and hidden from users.
 */
html.respan-responses-api-explorer #request\.header {
  display: none !important;
}

html.respan-responses-api-explorer .fern-explorer-form {
  display: flex;
  flex-direction: column;
}

html.respan-responses-api-explorer .fern-explorer-form-buttons {
  order: -1;
  margin-top: 0 !important;
  margin-bottom: 1.5rem;
}

html.respan-responses-api-explorer .respan-credential-selector-column,
html.respan-responses-api-explorer .respan-credential-map-remove,
html.respan-responses-api-explorer .respan-credential-map-add {
  display: none !important;
}

html.respan-responses-api-explorer .respan-credential-value-column {
  flex: 1 1 100% !important;
  max-width: 100% !important;
}


/* Docs landing: product cards (fern/components/ProductCards.tsx) */
.product-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 16px 0 8px;
}

@media (max-width: 640px) {

  .product-card-grid {
    grid-template-columns: minmax(0, 1fr);
  }

}

.product-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid var(--grayscale-a4, #e0e0e0);
  text-decoration: none !important;
  color: inherit !important;
  transition: border-color 0.15s;
}

.product-card:hover,
.product-card:focus-visible {
  border-color: var(--accent-primary, #354DA8);
}

.product-card:focus-visible {
  outline: 2px solid var(--accent-primary, #354DA8);
  outline-offset: 2px;
}

.product-card-picture {
  aspect-ratio: 2 / 1;
  background: #F4F6FC;
}

:root.dark .product-card-picture {
  background: #0B0C13;
}

.product-card-picture svg {
  display: block;
  width: 100%;
  height: 100%;
}

.product-card-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 18px 20px;
}

.product-card-title {
  font-size: 16px;
  font-weight: 500;
}

.product-card-description {
  font-size: 14px;
  color: var(--grayscale-a11, #6b6f7b);
}

/* Scene pieces: slabs, routes, dots, labels */
.product-scene-slab polygon {
  stroke-width: 1;
  stroke-linejoin: round;
}

.product-scene-top { fill: #FFFFFF; stroke: #C3CAE6; }
.product-scene-side-left { fill: #E6E9F6; stroke: #C3CAE6; }
.product-scene-side-right { fill: #D5DAEE; stroke: #C3CAE6; }

.product-scene-slab-respan .product-scene-top { fill: #EEF1FD; stroke: #354DA8; }
.product-scene-slab-respan .product-scene-side-left { fill: #DCE2FA; stroke: #354DA8; }
.product-scene-slab-respan .product-scene-side-right { fill: #C9D2F5; stroke: #354DA8; }

.product-scene-slab-attack .product-scene-top { fill: #FDF0F0; stroke: #D93D42; }
.product-scene-slab-attack .product-scene-side-left { fill: #F8DEDF; stroke: #D93D42; }
.product-scene-slab-attack .product-scene-side-right { fill: #F2CDCF; stroke: #D93D42; }

:root.dark .product-scene-top { fill: #1A1D29; stroke: #30354A; }
:root.dark .product-scene-side-left { fill: #13151E; stroke: #30354A; }
:root.dark .product-scene-side-right { fill: #0F1118; stroke: #30354A; }

:root.dark .product-scene-slab-respan .product-scene-top { fill: #1B2138; stroke: #8EA3F5; }
:root.dark .product-scene-slab-respan .product-scene-side-left { fill: #151A2D; stroke: #8EA3F5; }
:root.dark .product-scene-slab-respan .product-scene-side-right { fill: #111523; stroke: #8EA3F5; }

:root.dark .product-scene-slab-attack .product-scene-top { fill: #2A1619; stroke: #F2555A; }
:root.dark .product-scene-slab-attack .product-scene-side-left { fill: #211114; stroke: #F2555A; }
:root.dark .product-scene-slab-attack .product-scene-side-right { fill: #1A0E10; stroke: #F2555A; }

.product-scene-route {
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
}

.product-scene-route-request { stroke: #354DA8; }
.product-scene-route-background { stroke: #354DA8; stroke-dasharray: 3 4; }
.product-scene-route-attack { stroke: #D93D42; stroke-dasharray: 3 4; }
.product-scene-route-idle { stroke: #C3CAE6; }

:root.dark .product-scene-route-request,
:root.dark .product-scene-route-background { stroke: #8EA3F5; }
:root.dark .product-scene-route-attack { stroke: #F2555A; }
:root.dark .product-scene-route-idle { stroke: #30354A; }

.product-scene-dot-request,
.product-scene-dot-background { fill: #354DA8; }
.product-scene-dot-attack { fill: #D93D42; }

:root.dark .product-scene-dot-request,
:root.dark .product-scene-dot-background { fill: #8EA3F5; }
:root.dark .product-scene-dot-attack { fill: #F2555A; }

.product-scene-span {
  stroke: #354DA8;
  stroke-width: 4;
  stroke-linecap: round;
  opacity: 0.55;
}

.product-scene-span-root { opacity: 1; }
.product-scene-span-muted { stroke: #9AA3C7; opacity: 1; }

:root.dark .product-scene-span { stroke: #8EA3F5; }
:root.dark .product-scene-span-muted { stroke: #4A5170; }

.product-scene-impact {
  fill: none;
  stroke: #D93D42;
  stroke-width: 1.25;
}

:root.dark .product-scene-impact { stroke: #F2555A; }

.product-scene-verdict-present { fill: #218358; }
.product-scene-verdict-absent { fill: none; stroke: #9AA3C7; stroke-width: 1.5; }

:root.dark .product-scene-verdict-present { fill: #3DD68C; }
:root.dark .product-scene-verdict-absent { stroke: #4A5170; }

.product-scene-label {
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 500;
  fill: #6B7086;
}

:root.dark .product-scene-label { fill: #8A8FA3; }

/* Integration directory icons that vanish on one theme (see IntegrationSearch.tsx) */
:root.dark .integration-icon-dark-glyph,
:root:not(.dark) .integration-icon-light-glyph {
  filter: invert(1) hue-rotate(180deg);
}
