/*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: #fbfefb;
  --accent-2: #f5fbf5;
  --accent-3: #e8f7e8;
  --accent-4: #d9f1d9;
  --accent-5: #c8e9c7;
  --accent-6: #b1deb0;
  --accent-7: #93cf92;
  --accent-8: #66ba67;
  --accent-9: #4caf50;
  --accent-10: #43a247;
  --accent-11: #287f2e;
  --accent-12: #203c20;

  --accent-a1: #00c00004;
  --accent-a2: #0099000a;
  --accent-a3: #00a70017;
  --accent-a4: #00a20026;
  --accent-a5: #059b0038;
  --accent-a6: #0495004f;
  --accent-a7: #038f006d;
  --accent-a8: #008c0299;
  --accent-a9: #008d06b3;
  --accent-a10: #008106bc;
  --accent-a11: #006707d7;
  --accent-a12: #002000df;

  --accent-contrast: #fff;
  --accent-surface: #f3faf3cc;
  --accent-indicator: #4caf50;
  --accent-track: #4caf50;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.4% 0.0059 144.2);
      --accent-2: oklch(98.2% 0.0102 144.2);
      --accent-3: oklch(96.1% 0.0256 144.2);
      --accent-4: oklch(93.4% 0.0409 144.2);
      --accent-5: oklch(90.1% 0.0585 144.2);
      --accent-6: oklch(85.8% 0.0789 144.2);
      --accent-7: oklch(79.8% 0.1051 144.2);
      --accent-8: oklch(71.6% 0.1438 144.2);
      --accent-9: oklch(67.3% 0.1624 144.2);
      --accent-10: oklch(63.4% 0.1566 144.2);
      --accent-11: oklch(52.7% 0.1434 144.2);
      --accent-12: oklch(32.7% 0.0592 144.2);

      --accent-a1: color(display-p3 0.2667 0.7569 0.0235 / 0.016);
      --accent-a2: color(display-p3 0.1216 0.6118 0.0235 / 0.04);
      --accent-a3: color(display-p3 0.102 0.6431 0.0118 / 0.087);
      --accent-a4: color(display-p3 0.0902 0.5882 0.0078 / 0.142);
      --accent-a5: color(display-p3 0.0784 0.5686 0.0039 / 0.208);
      --accent-a6: color(display-p3 0.0863 0.549 0.0039 / 0.295);
      --accent-a7: color(display-p3 0.0784 0.5176 0.0039 / 0.404);
      --accent-a8: color(display-p3 0.0784 0.5059 0 / 0.561);
      --accent-a9: color(display-p3 0.0745 0.502 0 / 0.644);
      --accent-a10: color(display-p3 0.0627 0.451 0 / 0.679);
      --accent-a11: color(display-p3 0.0471 0.3451 0 / 0.777);
      --accent-a12: color(display-p3 0.0196 0.1098 0 / 0.863);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9569 0.9804 0.9529 / 0.8);
      --accent-indicator: oklch(67.3% 0.1624 144.2);
      --accent-track: oklch(67.3% 0.1624 144.2);
    }
  }
}


.light, :root {
  --grayscale-1: #fcfdfc;
  --grayscale-2: #f8faf8;
  --grayscale-3: #eff1ef;
  --grayscale-4: #e7e9e7;
  --grayscale-5: #dfe2df;
  --grayscale-6: #d7dad7;
  --grayscale-7: #cccfcc;
  --grayscale-8: #b9bcb8;
  --grayscale-9: #898e87;
  --grayscale-10: #7f847d;
  --grayscale-11: #60655f;
  --grayscale-12: #1d211c;

  --grayscale-a1: #00550003;
  --grayscale-a2: #00490007;
  --grayscale-a3: #00200010;
  --grayscale-a4: #00160018;
  --grayscale-a5: #00180020;
  --grayscale-a6: #00140028;
  --grayscale-a7: #000f0033;
  --grayscale-a8: #040f0047;
  --grayscale-a9: #050f0078;
  --grayscale-a10: #040e0082;
  --grayscale-a11: #020a00a0;
  --grayscale-a12: #010600e3;

  --grayscale-contrast: #000;
  --grayscale-surface: #ffffffcc;
  --grayscale-indicator: #898e87;
  --grayscale-track: #898e87;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --grayscale-1: color(display-p3 0.989 0.992 0.989);
      --grayscale-2: color(display-p3 0.974 0.98 0.973);
      --grayscale-3: color(display-p3 0.939 0.945 0.937);
      --grayscale-4: color(display-p3 0.907 0.914 0.905);
      --grayscale-5: color(display-p3 0.878 0.885 0.875);
      --grayscale-6: color(display-p3 0.846 0.855 0.843);
      --grayscale-7: color(display-p3 0.803 0.812 0.8);
      --grayscale-8: color(display-p3 0.727 0.738 0.723);
      --grayscale-9: color(display-p3 0.541 0.556 0.532);
      --grayscale-10: color(display-p3 0.5 0.515 0.491);
      --grayscale-11: color(display-p3 0.38 0.395 0.374);
      --grayscale-12: color(display-p3 0.117 0.129 0.111);

      --grayscale-a1: #00550003;
      --grayscale-a2: #00490007;
      --grayscale-a3: #00200010;
      --grayscale-a4: #00160018;
      --grayscale-a5: #00180020;
      --grayscale-a6: #00140028;
      --grayscale-a7: #000f0033;
      --grayscale-a8: #040f0047;
      --grayscale-a9: #050f0078;
      --grayscale-a10: #040e0082;
      --grayscale-a11: #020a00a0;
      --grayscale-a12: #010600e3;

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


.dark {
  --accent-1: #090e09;
  --accent-2: #141914;
  --accent-3: #1c291c;
  --accent-4: #213922;
  --accent-5: #29472a;
  --accent-6: #325633;
  --accent-7: #3b663d;
  --accent-8: #457847;
  --accent-9: #66bb6a;
  --accent-10: #5aaf5f;
  --accent-11: #7bce7e;
  --accent-12: #c3f0c3;

  --accent-a1: #010e011a;
  --accent-a2: #dff8df0c;
  --accent-a3: #a9fca91d;
  --accent-a4: #8afd902e;
  --accent-a5: #8cfc903d;
  --accent-a6: #8ffd924d;
  --accent-a7: #8ffd955e;
  --accent-a8: #8ffd9371;
  --accent-a9: #89fe8fb8;
  --accent-a10: #82fe89ab;
  --accent-a11: #97fe9bcc;
  --accent-a12: #cefecef0;

  --accent-contrast: #fff;
  --accent-surface: #1e241e80;
  --accent-indicator: #66bb6a;
  --accent-track: #66bb6a;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(15.8% 0.0137 144.9);
      --accent-2: oklch(20.6% 0.0138 144.9);
      --accent-3: oklch(26.5% 0.0292 144.9);
      --accent-4: oklch(31.8% 0.0509 144.9);
      --accent-5: oklch(36.6% 0.0604 144.9);
      --accent-6: oklch(41.6% 0.0703 144.9);
      --accent-7: oklch(46.8% 0.0814 144.9);
      --accent-8: oklch(52.4% 0.0948 144.9);
      --accent-9: oklch(71.8% 0.1417 144.9);
      --accent-10: oklch(68.2% 0.1417 144.9);
      --accent-11: oklch(78% 0.1384 144.9);
      --accent-12: oklch(91.1% 0.076 144.9);

      --accent-a1: color(display-p3 0.0039 0.0549 0 / 0.1);
      --accent-a2: color(display-p3 0.898 0.9961 0.8941 / 0.046);
      --accent-a3: color(display-p3 0.7373 0.9922 0.702 / 0.113);
      --accent-a4: color(display-p3 0.651 0.9961 0.6235 / 0.175);
      --accent-a5: color(display-p3 0.6667 1 0.6275 / 0.233);
      --accent-a6: color(display-p3 0.6706 1 0.6275 / 0.295);
      --accent-a7: color(display-p3 0.6745 1 0.6392 / 0.361);
      --accent-a8: color(display-p3 0.6745 1 0.6314 / 0.436);
      --accent-a9: color(display-p3 0.6627 1 0.6157 / 0.71);
      --accent-a10: color(display-p3 0.6353 1 0.5922 / 0.66);
      --accent-a11: color(display-p3 0.698 1 0.6549 / 0.789);
      --accent-a12: color(display-p3 0.851 1 0.8314 / 0.934);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.1176 0.1412 0.1176 / 0.5);
      --accent-indicator: oklch(71.8% 0.1417 144.9);
      --accent-track: oklch(71.8% 0.1417 144.9);
    }
  }
}


.dark {
  --grayscale-1: #111210;
  --grayscale-2: #181917;
  --grayscale-3: #212220;
  --grayscale-4: #282a27;
  --grayscale-5: #2f312e;
  --grayscale-6: #383a36;
  --grayscale-7: #454843;
  --grayscale-8: #5c625b;
  --grayscale-9: #687066;
  --grayscale-10: #767d74;
  --grayscale-11: #afb5ad;
  --grayscale-12: #eceeec;

  --grayscale-a1: #00000000;
  --grayscale-a2: #f1f2f008;
  --grayscale-a3: #f4f5f312;
  --grayscale-a4: #f3fef21a;
  --grayscale-a5: #f2fbf122;
  --grayscale-a6: #f4faed2c;
  --grayscale-a7: #f2fced3b;
  --grayscale-a8: #edfdeb57;
  --grayscale-a9: #ebfde766;
  --grayscale-a10: #f0fdec74;
  --grayscale-a11: #f6fef4b0;
  --grayscale-a12: #fdfffded;

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

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --grayscale-1: color(display-p3 0.067 0.07 0.063);
      --grayscale-2: color(display-p3 0.095 0.098 0.091);
      --grayscale-3: color(display-p3 0.131 0.135 0.126);
      --grayscale-4: color(display-p3 0.158 0.163 0.153);
      --grayscale-5: color(display-p3 0.186 0.192 0.18);
      --grayscale-6: color(display-p3 0.221 0.229 0.215);
      --grayscale-7: color(display-p3 0.273 0.284 0.266);
      --grayscale-8: color(display-p3 0.365 0.382 0.359);
      --grayscale-9: color(display-p3 0.414 0.438 0.404);
      --grayscale-10: color(display-p3 0.467 0.49 0.458);
      --grayscale-11: color(display-p3 0.69 0.709 0.682);
      --grayscale-12: color(display-p3 0.927 0.933 0.926);

      --grayscale-a1: #00000000;
      --grayscale-a2: #f1f2f008;
      --grayscale-a3: #f4f5f312;
      --grayscale-a4: #f3fef21a;
      --grayscale-a5: #f2fbf122;
      --grayscale-a6: #f4faed2c;
      --grayscale-a7: #f2fced3b;
      --grayscale-a8: #edfdeb57;
      --grayscale-a9: #ebfde766;
      --grayscale-a10: #f0fdec74;
      --grayscale-a11: #f6fef4b0;
      --grayscale-a12: #fdfffded;

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

.light, :root {
  color-scheme: light;
  --accent: rgba(76, 175, 80, 1);
  --background: rgba(255, 255, 255, 1);
  --border: rgba(228, 231, 228, 1);
  --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(102, 187, 106, 1);
  --background: rgba(10, 14, 10, 1);
  --border: rgba(30, 40, 32, 1);
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #0a0e0a;
}

/* ─── Vlens Docs — Custom Styles ───────────────────────────────────────────── */

/* ── 1. Fonts ────────────────────────────────────────────────────────────────*/
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;

  /* Brand palette — exact colors from Vlens logo SVG */
  --vlens-green:        #4CAF50;
  --vlens-green-dark:   #388E3C;
  --vlens-green-light:  #66BB6A;
  --vlens-green-subtle: #F1F8F1;
  --vlens-coral:        #FF8155;
  --vlens-coral-subtle: #FFF3EE;

  /* Neutral scale */
  --gray-50:  #F9FAFB;
  --gray-100: #F3F4F6;
  --gray-200: #E5E7EB;
  --gray-300: #D1D5DB;
  --gray-400: #9CA3AF;
  --gray-600: #4B5563;
  --gray-700: #374151;
  --gray-800: #1F2937;
  --gray-900: #111827;
}

/* ── 2. Base typography ──────────────────────────────────────────────────────*/
body,
.fern-docs {
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Page content line-length and spacing */
.fern-page-content {
  line-height: 1.75;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.3;
}

h1 { font-size: 2rem;   }
h2 { font-size: 1.5rem; margin-top: 2.5rem; }
h3 { font-size: 1.2rem; margin-top: 2rem;   }

/* ── 3. Background gradient (matches brand green, very subtle) ───────────────*/
.fern-background-image {
  background-image: linear-gradient(
    160deg,
    rgba(61, 155, 71, 0.04) 0%,
    transparent 40%
  );
}

:root.dark .fern-background-image {
  background-image: linear-gradient(
    160deg,
    rgba(92, 187, 103, 0.05) 0%,
    transparent 40%
  );
}

/* ── 4. Sidebar refinements ──────────────────────────────────────────────────*/
/* Active sidebar item — green left border + soft green background */
[data-state="active"] > .fern-sidebar-link,
.fern-sidebar-link[aria-current="page"] {
  border-left: 2px solid var(--vlens-green) !important;
  background-color: var(--vlens-green-subtle) !important;
  font-weight: 500;
}

:root.dark [data-state="active"] > .fern-sidebar-link,
:root.dark .fern-sidebar-link[aria-current="page"] {
  background-color: rgba(92, 187, 103, 0.08) !important;
}

/* Sidebar link hover */
.fern-sidebar-link:hover {
  background-color: var(--gray-100) !important;
  transition: background-color 0.12s ease;
}
.fern-sidebar-link:focus-visible {
  background-color: var(--gray-100) !important;
  transition: background-color 0.12s ease;
}

:root.dark .fern-sidebar-link:hover {
  background-color: rgba(255, 255, 255, 0.04) !important;
}
:root.dark .fern-sidebar-link:focus-visible {
  background-color: rgba(255, 255, 255, 0.04) !important;
}

/* ── 5. Code blocks ──────────────────────────────────────────────────────────*/
code,
pre,
kbd,
samp {
  font-family: var(--font-mono) !important;
  font-size: 0.85em;
  font-feature-settings: "liga" 0;
}

/* Inline code */
:not(pre) > code {
  background-color: var(--vlens-green-subtle);
  color: #1a5c25;
  padding: 0.15em 0.45em;
  border-radius: 5px;
  border: 1px solid rgba(61, 155, 71, 0.15);
  font-size: 0.82em;
}

:root.dark :not(pre) > code {
  background-color: rgba(92, 187, 103, 0.1);
  color: #86efac;
  border-color: rgba(92, 187, 103, 0.2);
}

/* Code block wrapper */
pre {
  background-color: #0d1117 !important;
  border: 1px solid #21262d !important;
  border-radius: 10px !important;
  padding: 1.25rem 1.5rem !important;
  overflow-x: auto;
  position: relative;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
}

pre code {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  font-size: 0.875rem !important;
  line-height: 1.7 !important;
  color: #e6edf3 !important;
}

/* Language badge on code blocks */
.fern-code-block-lang,
[class*="language-"] + .fern-code-block-header {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gray-400);
}

/* ── 6. Cards ────────────────────────────────────────────────────────────────*/
.fern-card {
  border-radius: 12px !important;
  border: 1px solid var(--gray-200) !important;
  background: #FFFFFF !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease !important;
}

.fern-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(61, 155, 71, 0.08), 0 2px 8px rgba(0, 0, 0, 0.06) !important;
  border-color: rgba(61, 155, 71, 0.3) !important;
}
.fern-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(61, 155, 71, 0.08), 0 2px 8px rgba(0, 0, 0, 0.06) !important;
  border-color: rgba(61, 155, 71, 0.3) !important;
}

:root.dark .fern-card {
  background: #111a12 !important;
  border-color: #1e2820 !important;
}

:root.dark .fern-card:hover {
  box-shadow: 0 8px 24px rgba(92, 187, 103, 0.08) !important;
  border-color: rgba(92, 187, 103, 0.25) !important;
}
:root.dark .fern-card:focus-visible {
  box-shadow: 0 8px 24px rgba(92, 187, 103, 0.08) !important;
  border-color: rgba(92, 187, 103, 0.25) !important;
}

/* Card icon — tint to brand green */
.fern-card .fern-card-icon {
  color: var(--vlens-green) !important;
}

/* ── 7. Tables ───────────────────────────────────────────────────────────────*/
table {
  width: 100%;
  border-collapse: collapse;
  border-radius: 10px;
  overflow: hidden;
  font-size: 0.9rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  border: 1px solid var(--gray-200);
}

:root.dark table {
  border-color: #1e2820;
}

thead tr {
  background-color: var(--vlens-green-subtle) !important;
}

:root.dark thead tr {
  background-color: rgba(92, 187, 103, 0.06) !important;
}

th {
  padding: 0.75rem 1rem !important;
  font-weight: 600 !important;
  font-size: 0.8rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: var(--vlens-green) !important;
  border-bottom: 2px solid rgba(61, 155, 71, 0.2) !important;
}

:root.dark th {
  color: var(--vlens-green-light) !important;
  border-bottom-color: rgba(92, 187, 103, 0.15) !important;
}

td {
  padding: 0.7rem 1rem !important;
  border-bottom: 1px solid var(--gray-100) !important;
  vertical-align: top;
  line-height: 1.6;
}

:root.dark td {
  border-bottom-color: #1e2820 !important;
}

tbody tr:last-child td {
  border-bottom: none !important;
}

tbody tr:hover {
  background-color: var(--vlens-green-subtle) !important;
  transition: background-color 0.1s ease;
}
tbody tr:focus-visible {
  background-color: var(--vlens-green-subtle) !important;
  transition: background-color 0.1s ease;
}

:root.dark tbody tr:hover {
  background-color: rgba(92, 187, 103, 0.04) !important;
}
:root.dark tbody tr:focus-visible {
  background-color: rgba(92, 187, 103, 0.04) !important;
}

/* ── 8. Callouts — unified semantic color map ────────────────────────────────
   Consistent color for each intent everywhere in the docs:
     Note / Info  → Slate blue   (neutral information)
     Warning      → Amber        (caution / be careful)
     Tip / Check  → Brand green  (positive / good to know)
     Error        → Red          (danger / error)
─────────────────────────────────────────────────────────────────────────── */

/* Colour tokens */
:root {
  --callout-note-bg:      #EFF6FF;
  --callout-note-border:  #3B82F6;
  --callout-note-text:    #1D4ED8;

  --callout-warn-bg:      #FFFBEB;
  --callout-warn-border:  #F59E0B;
  --callout-warn-text:    #92400E;

  --callout-tip-bg:       #F1F8F1;
  --callout-tip-border:   #4CAF50;
  --callout-tip-text:     #1B5E20;

  --callout-error-bg:     #FEF2F2;
  --callout-error-border: #EF4444;
  --callout-error-text:   #991B1B;
}

:root.dark {
  --callout-note-bg:      rgba(59, 130, 246, 0.08);
  --callout-note-border:  #60A5FA;
  --callout-note-text:    #93C5FD;

  --callout-warn-bg:      rgba(245, 158, 11, 0.08);
  --callout-warn-border:  #FBBF24;
  --callout-warn-text:    #FDE68A;

  --callout-tip-bg:       rgba(76, 175, 80, 0.08);
  --callout-tip-border:   #66BB6A;
  --callout-tip-text:     #A5D6A7;

  --callout-error-bg:     rgba(239, 68, 68, 0.08);
  --callout-error-border: #F87171;
  --callout-error-text:   #FCA5A5;
}

/* Shared callout base — covers every selector Fern might generate */
.fern-callout,
[class*="callout"],
[class*="Callout"],
[data-type="note"],
[data-type="warning"],
[data-type="tip"],
[data-type="info"],
[data-type="check"],
[data-type="error"],
[data-intent="note"],
[data-intent="info"],
[data-intent="warning"],
[data-intent="tip"],
[data-intent="success"],
[data-intent="check"],
[data-intent="error"],
[data-intent="danger"] {
  border-radius: 8px !important;
  border: none !important;
  border-left: 3px solid !important;
  padding: 0.85rem 1.1rem !important;
  font-size: 0.9rem !important;
  line-height: 1.65 !important;
  margin: 1.25rem 0 !important;
}

/* ── Note / Info ─────────────────────────────────────────────────────────── */
.fern-callout[data-type="note"],
.fern-callout[data-intent="note"],
.fern-callout[data-intent="info"],
[class*="callout-note"],
[class*="callout-info"],
[class*="CalloutNote"],
[class*="CalloutInfo"] {
  background-color: var(--callout-note-bg) !important;
  border-left-color: var(--callout-note-border) !important;
  color: inherit !important;
}

.fern-callout[data-type="note"] svg,
.fern-callout[data-intent="note"] svg,
.fern-callout[data-intent="info"] svg {
  color: var(--callout-note-border) !important;
  fill: var(--callout-note-border) !important;
}

/* ── Warning ─────────────────────────────────────────────────────────────── */
.fern-callout[data-type="warning"],
.fern-callout[data-intent="warning"],
[class*="callout-warning"],
[class*="CalloutWarning"] {
  background-color: var(--callout-warn-bg) !important;
  border-left-color: var(--callout-warn-border) !important;
  color: inherit !important;
}

.fern-callout[data-type="warning"] svg,
.fern-callout[data-intent="warning"] svg {
  color: var(--callout-warn-border) !important;
  fill: var(--callout-warn-border) !important;
}

/* ── Tip / Success / Check ───────────────────────────────────────────────── */
.fern-callout[data-type="tip"],
.fern-callout[data-type="check"],
.fern-callout[data-intent="tip"],
.fern-callout[data-intent="success"],
.fern-callout[data-intent="check"],
[class*="callout-tip"],
[class*="callout-success"],
[class*="CalloutTip"],
[class*="CalloutSuccess"] {
  background-color: var(--callout-tip-bg) !important;
  border-left-color: var(--callout-tip-border) !important;
  color: inherit !important;
}

.fern-callout[data-type="tip"] svg,
.fern-callout[data-intent="tip"] svg,
.fern-callout[data-intent="success"] svg {
  color: var(--callout-tip-border) !important;
  fill: var(--callout-tip-border) !important;
}

/* ── Error / Danger ──────────────────────────────────────────────────────── */
.fern-callout[data-type="error"],
.fern-callout[data-type="danger"],
.fern-callout[data-intent="error"],
.fern-callout[data-intent="danger"],
[class*="callout-error"],
[class*="callout-danger"],
[class*="CalloutError"],
[class*="CalloutDanger"] {
  background-color: var(--callout-error-bg) !important;
  border-left-color: var(--callout-error-border) !important;
  color: inherit !important;
}

.fern-callout[data-type="error"] svg,
.fern-callout[data-intent="error"] svg,
.fern-callout[data-intent="danger"] svg {
  color: var(--callout-error-border) !important;
  fill: var(--callout-error-border) !important;
}

/* ── 9. Links ────────────────────────────────────────────────────────────────*/
.fern-page-content a:not(.fern-card):not([class*="fern-"]) {
  color: var(--vlens-green);
  text-decoration: underline;
  text-decoration-color: rgba(61, 155, 71, 0.3);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.15s ease, color 0.15s ease;
}

.fern-page-content a:not(.fern-card):not([class*="fern-"]):hover {
  color: #388E3C;
  text-decoration-color: var(--vlens-green);
}
.fern-page-content a:not(.fern-card):not([class*="fern-"]):focus-visible {
  color: #388E3C;
  text-decoration-color: var(--vlens-green);
}

:root.dark .fern-page-content a:not(.fern-card):not([class*="fern-"]) {
  color: var(--vlens-green-light);
  text-decoration-color: rgba(92, 187, 103, 0.35);
}

/* ── 10. Navigation / Header ─────────────────────────────────────────────────*/
/* Filled navbar button (Stripe-style pill) */
.fern-navbar-link[data-type="filled"] {
  background-color: var(--vlens-green) !important;
  color: #fff !important;
  border-radius: 8px !important;
  font-weight: 500 !important;
  padding: 0.45rem 1.1rem !important;
  transition: background-color 0.15s ease, transform 0.1s ease !important;
}

.fern-navbar-link[data-type="filled"]:hover {
  background-color: #388E3C !important;
  transform: translateY(-1px) !important;
}
.fern-navbar-link[data-type="filled"]:focus-visible {
  background-color: #388E3C !important;
  transform: translateY(-1px) !important;
}

/* ── 11. Tabs ────────────────────────────────────────────────────────────────*/
/* Active tab indicator — green underline */
[role="tab"][aria-selected="true"],
.fern-tab[data-state="active"] {
  border-bottom-color: var(--vlens-green) !important;
  color: var(--vlens-green) !important;
  font-weight: 600 !important;
}

/* ── 12. Mermaid diagrams ────────────────────────────────────────────────────*/
.fern-page-content .mermaid,
.mermaid {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 1.5rem;
  overflow: visible !important;
  max-width: 100%;
}

.mermaid svg {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
}

:root.dark .mermaid {
  background: #111a12;
  border-color: #1e2820;
}

/* ── 13. Scrollbar (subtle, branded) ────────────────────────────────────────*/
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: rgba(61, 155, 71, 0.25);
  border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(61, 155, 71, 0.5);
}
::-webkit-scrollbar-thumb:focus-visible {
  background: rgba(61, 155, 71, 0.5);
}

/* ── 14. Selection highlight ─────────────────────────────────────────────────*/
::selection {
  background-color: rgba(61, 155, 71, 0.2);
  color: inherit;
}

/* ── 15. HR dividers ─────────────────────────────────────────────────────────*/
hr {
  border: none;
  border-top: 1px solid var(--gray-200);
  margin: 2.5rem 0;
}

:root.dark hr {
  border-top-color: #1e2820;
}

/* ── 16. Step / numbered list refinement ─────────────────────────────────────*/
ol {
  counter-reset: list-counter;
  list-style: none;
  padding-left: 0;
}

ol > li {
  counter-increment: list-counter;
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  margin-bottom: 0.6rem;
  line-height: 1.7;
}

ol > li::before {
  content: counter(list-counter);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.5rem;
  background: var(--vlens-green);
  color: white;
  border-radius: 50%;
  font-size: 0.75rem;
  font-weight: 700;
  margin-top: 0.15rem;
  flex-shrink: 0;
}

/* ── 17. Focus ring ──────────────────────────────────────────────────────────*/
:focus-visible {
  outline: 2px solid var(--vlens-green);
  outline-offset: 3px;
}

/* ── 18. Doc diagrams (SVG) ─────────────────────────────────────────────────*/
.fern-page-content img[src$=".svg"],
.fern-page-content p img {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  margin: 1.5rem auto;
  object-fit: contain;
}
