/*fern-site-stylesheet*/:root {
  --header-height: 64px;
  --header-height-real: 64px;
  --mobile-header-height-real: 64px;
  --content-width: 812px;
  --sidebar-width: 248px;
  --page-width: 1376px;
  --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: #fbfdf9;
  --accent-2: #f6fbf1;
  --accent-3: #e3fbcf;
  --accent-4: #d2f7b1;
  --accent-5: #c0ee95;
  --accent-6: #aee27b;
  --accent-7: #98d05b;
  --accent-8: #79bc0d;
  --accent-9: #76b900;
  --accent-10: #6bad00;
  --accent-11: #4d8100;
  --accent-12: #2c440f;

  --accent-a1: #55aa0006;
  --accent-a2: #5cb7000e;
  --accent-a3: #6bea0030;
  --accent-a4: #6ce5004e;
  --accent-a5: #68d7016a;
  --accent-a6: #63c70084;
  --accent-a7: #5fb600a4;
  --accent-a8: #72b800f2;
  --accent-a9: #76b900;
  --accent-a10: #6bad00;
  --accent-a11: #4d8100;
  --accent-a12: #1f3800f0;

  --accent-contrast: #fff;
  --accent-surface: #f4faeecc;
  --accent-indicator: #76b900;
  --accent-track: #76b900;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .light, :root {
      --accent-1: oklch(99.2% 0.006 130.8);
      --accent-2: oklch(98.2% 0.0141 130.8);
      --accent-3: oklch(95.9% 0.0624 130.8);
      --accent-4: oklch(93.2% 0.0993 130.8);
      --accent-5: oklch(89.7% 0.1254 130.8);
      --accent-6: oklch(85.3% 0.1432 130.8);
      --accent-7: oklch(79.5% 0.1596 130.8);
      --accent-8: oklch(72.4% 0.1942 130.8);
      --accent-9: oklch(71.3% 0.1942 130.8);
      --accent-10: oklch(67.6% 0.1942 130.8);
      --accent-11: oklch(54.4% 0.1604 130.8);
      --accent-12: oklch(35.4% 0.0827 130.8);

      --accent-a1: color(display-p3 0.349 0.6745 0.0235 / 0.024);
      --accent-a2: color(display-p3 0.3882 0.6941 0.0039 / 0.051);
      --accent-a3: color(display-p3 0.4824 0.8902 0.0039 / 0.173);
      --accent-a4: color(display-p3 0.4667 0.8745 0.0039 / 0.279);
      --accent-a5: color(display-p3 0.4392 0.8157 0.0039 / 0.377);
      --accent-a6: color(display-p3 0.4196 0.7529 0.0039 / 0.471);
      --accent-a7: color(display-p3 0.3843 0.6706 0 / 0.581);
      --accent-a8: color(display-p3 0.3922 0.6471 0 / 0.769);
      --accent-a9: color(display-p3 0.3882 0.6392 0 / 0.785);
      --accent-a10: color(display-p3 0.349 0.5882 0 / 0.8);
      --accent-a11: color(display-p3 0.2471 0.4235 0 / 0.863);
      --accent-a12: color(display-p3 0.1098 0.1882 0 / 0.906);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.9608 0.9804 0.9373 / 0.8);
      --accent-indicator: oklch(71.3% 0.1942 130.8);
      --accent-track: oklch(71.3% 0.1942 130.8);
    }
  }
}


.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: #000;
  --accent-2: #0f130a;
  --accent-3: #1b2611;
  --accent-4: #24370d;
  --accent-5: #2e4612;
  --accent-6: #395616;
  --accent-7: #436619;
  --accent-8: #4f7819;
  --accent-9: #76b900;
  --accent-10: #6bad00;
  --accent-11: #8cce37;
  --accent-12: #caf0a7;

  --accent-a1: #00000000;
  --accent-a2: #caff8713;
  --accent-a3: #b6ff7326;
  --accent-a4: #a7ff3d37;
  --accent-a5: #a8ff4246;
  --accent-a6: #aaff4256;
  --accent-a7: #a8ff3f66;
  --accent-a8: #a8ff3678;
  --accent-a9: #a3ff00b9;
  --accent-a10: #9eff00ad;
  --accent-a11: #adff44ce;
  --accent-a12: #d7ffb1f0;

  --accent-contrast: #fff;
  --accent-surface: #1e261480;
  --accent-indicator: #76b900;
  --accent-track: #76b900;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark {
      --accent-1: oklch(0% 0.0188 130.8);
      --accent-2: oklch(18% 0.0189 130.8);
      --accent-3: oklch(25.2% 0.0401 130.8);
      --accent-4: oklch(31.1% 0.0698 130.8);
      --accent-5: oklch(36.2% 0.0827 130.8);
      --accent-6: oklch(41.4% 0.0963 130.8);
      --accent-7: oklch(46.7% 0.1116 130.8);
      --accent-8: oklch(52.3% 0.13 130.8);
      --accent-9: oklch(71.3% 0.1942 130.8);
      --accent-10: oklch(67.6% 0.1942 130.8);
      --accent-11: oklch(78% 0.1898 130.8);
      --accent-12: oklch(91.1% 0.1042 130.8);

      --accent-a1: color(display-p3 0 0 0 / 0);
      --accent-a2: color(display-p3 0.8392 0.9961 0.5765 / 0.075);
      --accent-a3: color(display-p3 0.7608 0.9961 0.498 / 0.15);
      --accent-a4: color(display-p3 0.7412 1 0.3529 / 0.212);
      --accent-a5: color(display-p3 0.7412 1 0.3765 / 0.271);
      --accent-a6: color(display-p3 0.7412 1 0.3765 / 0.334);
      --accent-a7: color(display-p3 0.7412 1 0.3765 / 0.397);
      --accent-a8: color(display-p3 0.7412 1 0.3647 / 0.467);
      --accent-a9: color(display-p3 0.7255 1 0.302 / 0.718);
      --accent-a10: color(display-p3 0.7137 1 0.298 / 0.671);
      --accent-a11: color(display-p3 0.7569 1 0.4039 / 0.8);
      --accent-a12: color(display-p3 0.8745 1 0.7294 / 0.938);

      --accent-contrast: #fff;
      --accent-surface: color(display-p3 0.1255 0.149 0.0863 / 0.5);
      --accent-indicator: oklch(71.3% 0.1942 130.8);
      --accent-track: oklch(71.3% 0.1942 130.8);
    }
  }
}


.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(118, 185, 0, 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(118, 185, 0, 1);
  --background: rgba(0, 0, 0, 1);
  --border: initial;
  --sidebar-background: initial;
  --header-background: color-mix(in srgb, var(--background), transparent 30%);
  --card-background: initial;
  --theme-color: #000;
}

/*!
 * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
 * SPDX-License-Identifier: Apache-2.0
 */

:root {
  --nv-color-green: #76B900;
  --nv-color-green-2: #004b31;
  --nv-color-black: #000000;
  --nv-color-white: #ffffff;

  --nv-light-grey-1: #f7f7f7;
  --nv-light-grey-2: #eeeeee;
  --nv-light-grey-3: #dddddd;
  --nv-light-grey-4: #cccccc;
  --nv-light-grey-5: #999999;

  --nv-dark-grey-1: #111111;
  --nv-dark-grey-2: #1a1a1a;
  --nv-dark-grey-3: #222222;
  --nv-dark-grey-4: #333333;
  --nv-dark-grey-5: #666666;

  --nv-color-text: #000000;
  --nv-color-bg-default: #ffffff;
  --nv-color-bg-alt: #f7f7f7;
  --nv-color-success: #76b900;
  --nv-color-error: #f44336;

  --rounded: 999px;
}
main {
  min-height: calc(100vh - 200px);
}

h1 {
  font-size: 36px;
  font-weight: 700;
  line-height: 1.25em;
}

h2 {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.25em;
}

h3 {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25em;
}

h4 {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25em;
}

.prose {
  color: var(--nv-dark-grey-2) !important;
}
.dark .prose {
  color: var(--nv-light-grey-2) !important;
}
.fern-mdx-link {
  color: var(--tw-prose-body);
  text-decoration-color: var(--accent);
  font-weight: var(--font-weight-normal);
}

html:not([data-theme]),
html[data-theme="light"] {
  --pst-color-background: #fff;
  --pst-color-on-background: #fff;
  --pst-color-shadow: #ccc;
  --pst-color-heading: #000;
  --pst-color-text-base: #1a1a1a;
  --pst-color-text-muted: #666;
  --pst-color-surface: #f7f7f7;
  --pst-color-on-surface: #333;
  --pst-color-primary: var(--nv-color-green-2);
  --pst-color-table-row-hover-bg: var(--nv-color-green);
  --pst-color-link: var(--pst-color-text-base);
  --pst-color-link-hover: var(--pst-color-text-base);
  --pst-color-inline-code: var(--pst-color-primary);
  --pst-color-inline-code-links: var(--pst-color-primary);
  --pst-color-secondary: var(--pst-color-primary);
  --pst-color-secondary-bg: var(--nv-color-green);
  --pst-color-accent: var(--nv-color-green);
}

html[data-theme="dark"] {
  --pst-color-background: #111;
  --pst-color-on-background: #000;
  --pst-color-shadow: #000;
  --pst-color-heading: #fff;
  --pst-color-text-base: #eee;
  --pst-color-text-muted: #999;
  --pst-color-surface: #1a1a1a;
  --pst-color-on-surface: #ddd;
  --pst-color-primary: var(--nv-color-green);
  --pst-color-table-row-hover-bg: var(--nv-color-green-2);
  --pst-color-link: var(--pst-color-text-base);
  --pst-color-link-hover: var(--pst-color-text-base);
  --pst-color-inline-code: var(--pst-color-primary);
  --pst-color-inline-code-links: var(--pst-color-primary);
  --pst-color-secondary: var(--pst-color-primary);
  --pst-color-secondary-bg: var(--nv-color-green-2);
  --pst-color-accent: var(--nv-color-green);
}

.fern-sidebar-link:not(:hover) {
  background-color: transparent !important;
}
.fern-sidebar-link {

  padding-left: 1rem !important;
  padding-right: 1rem !important;
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
  border-radius: 0px !important;
  &.nested {
    padding-left: 1rem !important;
  }

}

.fern-sidebar-group > li > .fern-sidebar-link:has(+ .fern-sidebar-group) {
  padding-left: 0.25rem !important;
}
.fern-sidebar-group {
  padding: 0 !important;
}

.fern-header-content {
  padding-left: 18.5px;
  margin-top: -5px;
  margin-bottom: -5px;
}
#fern-header {
  border-color: var(--border, var(--grayscale-a5)) !important;
}

#fern-search-button {
  background-color: transparent !important;
  border-radius: var(--rounded);
  transition:
    box-shadow 0.3s ease,
    outline 0.3s ease;
}
#fern-search-button:hover {
  box-shadow: 0 0 0 1px var(--nv-color-green) !important;
}
#fern-search-button:focus-visible {
  box-shadow: 0 0 0 1px var(--nv-color-green) !important;
}

.fern-footer-nav {
  border-radius: var(--rounded);
  background-color: transparent !important;
  transition:
    box-shadow 0.3s ease,
    outline 0.3s ease;
}

.fig-caption {
  --callout-border: transparent !important;
  --callout-icon-color: var(--grayscale-a8) !important;

  background-color: var(--nv-light-grey-1) !important;
  font-size: 0.875rem;
}
.dark .fig-caption {
  background-color: var(--nv-dark-grey-2) !important;
}
.fig-caption p {
  font-style: italic;
  color: var(--tw-prose-body) !important;
}

.code-block-line-gutter {
  display: none !important;
}
.fern-footer-prev h4,
.fern-footer-next h4 {
  font-size: inherit !important;
}

.fern-button {
  border-radius: var(--rounded);
  font-weight: bold;
}
.fern-button.filled.primary {
  color: var(--nv-color-black);
}
.dark .fern-button.filled.primary {
  background-color: var(--nv-color-white);
}
.dark .fern-button.filled.primary:hover {
  background-color: var(--nv-light-grey-2);
}
.dark .fern-button.filled.primary:focus-visible {
  background-color: var(--nv-light-grey-2);
}
.fern-button.outlined.normal {
  background-color: transparent;
  --tw-ring-color: transparent;

  color: var(--nv-color-black);
}
.fern-button.outlined.normal:hover {
  color: var(--nv-color-green);
}
.fern-button.outlined.normal:focus-visible {
  color: var(--nv-color-green);
}
.dark .fern-button.outlined.normal {
  color: var(--nv-color-white);
}
.dark .fern-button.outlined.normal:hover {
  color: var(--nv-color-green);
}
.dark .fern-button.outlined.normal:focus-visible {
  color: var(--nv-color-green);
}

.fern-card {
  transition:
    box-shadow 0.3s ease,
    outline 0.3s ease;
}
svg.card-icon {
  height: 24px !important;
  width: 24px !important;
}
.card-icon {
  background-color: transparent !important;
}
.fern-card:hover {
  box-shadow: 0 0 0 1px var(--nv-color-green) !important;
}
.fern-card:focus-visible {
  box-shadow: 0 0 0 1px var(--nv-color-green) !important;
}

.diagram-dark,
.dark .diagram-light {
  display: none;
}
.dark .diagram-dark {
  display: block;
}

/* Size Fern's generated wrapper so sequence diagrams are visible. */
.sequence-diagram .fern-card > div > span {
  flex: 0 0 78%;
  width: 78%;
}

#builtwithfern,
#builtwithfern * {
  display: none !important;
}

.fern-scroll-area:has(.fern-table)
  .fern-scroll-area-scrollbar[data-orientation="horizontal"] {
  display: none !important;
}

div:has(> .code-block-root) {
  width: fit-content !important;
  max-width: 100%;
  min-width: 250px;
}

.code-block-root .code-block-inner {
  padding-right: 56px;
}

.code-block-root [data-radix-scroll-area-viewport] {
  overflow: auto !important;
  max-height: 1000px !important;
}

.code-block-root [data-radix-scroll-area-viewport] > div {
  min-width: unset !important;
}

.code-block-root .fern-scroll-area-scrollbar[data-orientation="horizontal"] {
  display: none !important;
}

.code-block-root {
  min-height: unset;
}
.prose pre {
  min-height: unset;
}

.fern-layout-content:has([role="tabpanel"]) ~ .fern-layout-right-sidebar {
  display: none !important;
}

.fern-layout-content:has([role="tabpanel"]) {
  max-width: 100%;
}

p {
  text-decoration-thickness: auto;
}

.prose h1 {
  margin-top: 2rem;
  margin-bottom: 1rem;
}
.prose h2 {
  margin-top: 1.75rem;
  margin-bottom: 0.75rem;
}
.prose h3 {
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}
.prose h4 {
  margin-top: 1.25rem;
  margin-bottom: 0.5rem;
}

.prose > h1:first-child,
.prose > h2:first-child {
  margin-top: 0;
}

.prose code:not(pre code) {
  font-size: 0.875em;
}

/*!
 * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
 * SPDX-License-Identifier: Apache-2.0
 */

/* Diagram container and top-level layers */
.nixl-stack-diagram {
    max-width: 100%;
    padding: 12px;
    border: 1px solid var(--nv-light-grey-3);
    border-radius: 8px;
    background: var(--nv-color-bg-default);
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.dark .nixl-stack-diagram {
    border-color: var(--nv-dark-grey-4);
    background: var(--nv-dark-grey-1);
    color: var(--nv-light-grey-2);
}

.nixl-stack-layer {
    background: var(--pst-color-surface);
    border: 1px solid var(--nv-light-grey-3);
    border-radius: 6px;
    padding: 16px;
    text-align: center;
}
.dark .nixl-stack-layer {
    border-color: var(--nv-dark-grey-4);
    background: var(--nv-dark-grey-2);
}

/* Backend categories, cards, and tooltips */
.nixl-stack-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
}

.nixl-stack-category {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

.nixl-stack-category-header {
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    min-height: 2.5em;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.nixl-stack-category:nth-child(1) .nixl-stack-category-header { color: #0077B6 !important; }
.nixl-stack-category:nth-child(2) .nixl-stack-category-header { color: #CC5500 !important; }
.nixl-stack-category:nth-child(3) .nixl-stack-category-header { color: #6A4C93 !important; }
.nixl-stack-category:nth-child(4) .nixl-stack-category-header { color: #1B7A6D !important; }
.nixl-stack-category:nth-child(5) .nixl-stack-category-header { color: #A4243B !important; }

.dark .nixl-stack-category:nth-child(1) .nixl-stack-category-header { color: #48CAE4 !important; }
.dark .nixl-stack-category:nth-child(2) .nixl-stack-category-header { color: #E07A1C !important; }
.dark .nixl-stack-category:nth-child(3) .nixl-stack-category-header { color: #B185DB !important; }
.dark .nixl-stack-category:nth-child(4) .nixl-stack-category-header { color: #52B69A !important; }
.dark .nixl-stack-category:nth-child(5) .nixl-stack-category-header { color: #E5383B !important; }

.nixl-stack-plugin {
    background: var(--pst-color-surface);
    border: 1px solid var(--nv-light-grey-3);
    border-radius: 4px;
    padding: 6px 2px;
    min-height: 34px;
    font-size: 12px;
    line-height: 1.25;
    width: 90%;
    text-align: center;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 150ms ease, border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}
.dark .nixl-stack-plugin {
    border-color: var(--nv-dark-grey-4);
    background: var(--nv-dark-grey-2);
}

.nixl-stack-memrow {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

.nixl-stack-memtype {
    background: var(--pst-color-surface);
    border: 1px solid var(--nv-light-grey-3);
    border-radius: 4px;
    padding: 8px 16px;
    min-height: 36px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 150ms ease, border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}
.dark .nixl-stack-memtype {
    border-color: var(--nv-dark-grey-4);
    background: var(--nv-dark-grey-2);
}

.nixl-stack-tooltip {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    padding: 8px 12px;
    border-radius: 6px;
    background: var(--pst-color-surface);
    border: 1px solid var(--nv-color-green);
    color: var(--pst-color-text-base);
    font-size: 12px;
    max-width: 500px;
    width: max-content;
    white-space: nowrap;
    word-wrap: break-word;
    pointer-events: none;
    z-index: 9999;
    opacity: 0;
    transition: opacity 150ms ease;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.dark .nixl-stack-tooltip {
    background: var(--nv-dark-grey-2);
    color: var(--nv-light-grey-2);
}
.nixl-stack-tooltip-title {
    font-weight: 700;
}
.nixl-stack-tooltip-desc {
    color: var(--pst-color-text-muted);
}
.dark .nixl-stack-tooltip-desc {
    color: var(--nv-light-grey-5);
}
.nixl-stack-tooltip-mem {
    color: var(--nv-color-green);
    margin-top: 2px;
}

.nixl-stack-plugin:hover > .nixl-stack-tooltip,
.nixl-stack-plugin:focus > .nixl-stack-tooltip {
    opacity: 1;
}
.nixl-stack-plugin:focus-within > .nixl-stack-tooltip {
    opacity: 1;
}

.nixl-stack-plugin,
.nixl-stack-memtype,
.nixl-stack-compute-type {
    box-sizing: border-box;
    box-shadow: 0 0 0 0 transparent;
}

.nixl-stack-plugin:focus {
    cursor: default;
}

.nixl-stack-plugin:hover,
.nixl-stack-plugin:focus,
.nixl-stack-memtype:hover,
.nixl-stack-memtype:focus {
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
    opacity: 1;
}
.nixl-stack-plugin:focus-visible,
.nixl-stack-memtype:focus-visible {
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
    opacity: 1;
}

/* Backend and memory cross-highlighting */
.nixl-stack-diagram:has(.nixl-stack-plugin:hover) .nixl-stack-memtype,
.nixl-stack-diagram:has(.nixl-stack-plugin:focus) .nixl-stack-memtype {
    opacity: 0.3;
}

.nixl-stack-diagram:has(.nixl-stack-memtype:hover) .nixl-stack-plugin,
.nixl-stack-diagram:has(.nixl-stack-memtype:focus) .nixl-stack-plugin {
    opacity: 0.3;
}

.nixl-stack-diagram:has([data-mem-dram]:hover) [data-type="DRAM"],
.nixl-stack-diagram:has([data-mem-dram]:focus) [data-type="DRAM"],
.nixl-stack-diagram:has([data-mem-vram]:hover) [data-type="VRAM"],
.nixl-stack-diagram:has([data-mem-vram]:focus) [data-type="VRAM"],
.nixl-stack-diagram:has([data-mem-file]:hover) [data-type="FILE"],
.nixl-stack-diagram:has([data-mem-file]:focus) [data-type="FILE"],
.nixl-stack-diagram:has([data-mem-obj]:hover) [data-type="OBJ"],
.nixl-stack-diagram:has([data-mem-obj]:focus) [data-type="OBJ"],
.nixl-stack-diagram:has([data-mem-blk]:hover) [data-type="BLK"],
.nixl-stack-diagram:has([data-mem-blk]:focus) [data-type="BLK"] {
    opacity: 1;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-diagram:has([data-type="DRAM"]:hover) [data-mem-dram],
.nixl-stack-diagram:has([data-type="DRAM"]:focus) [data-mem-dram],
.nixl-stack-diagram:has([data-type="VRAM"]:hover) [data-mem-vram],
.nixl-stack-diagram:has([data-type="VRAM"]:focus) [data-mem-vram],
.nixl-stack-diagram:has([data-type="FILE"]:hover) [data-mem-file],
.nixl-stack-diagram:has([data-type="FILE"]:focus) [data-mem-file],
.nixl-stack-diagram:has([data-type="OBJ"]:hover) [data-mem-obj],
.nixl-stack-diagram:has([data-type="OBJ"]:focus) [data-mem-obj],
.nixl-stack-diagram:has([data-type="BLK"]:hover) [data-mem-blk],
.nixl-stack-diagram:has([data-type="BLK"]:focus) [data-mem-blk] {
    opacity: 1;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-section-label {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
    margin-bottom: 8px;
}

.nixl-stack-subtitle {
    font-size: 13px;
    font-weight: 400;
    color: var(--pst-color-text-muted);
    display: block;
}
.dark .nixl-stack-subtitle {
    color: var(--nv-light-grey-5);
}

.nixl-stack-layer-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
}

.nixl-stack-layer {
    display: block;
}

.nixl-stack-diagram a {
    color: inherit;
    text-decoration: none;
}
.nixl-stack-diagram a:hover {
    color: inherit;
    text-decoration: none;
}
.nixl-stack-diagram a:focus-visible {
    color: inherit;
    text-decoration: none;
}

@media (max-width: 811px) {

    .nixl-stack-grid {
        grid-template-columns: repeat(3, 1fr);
    }

}

@media (max-width: 480px) {

    .nixl-stack-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .nixl-stack-memrow {
        flex-direction: column;
        align-items: center;
    }

}

/* Agent layers and core capability chips */
.nixl-stack-agent-box {
    border: 1px solid var(--nv-light-grey-3);
    border-radius: 6px;
    overflow: hidden;
    background: var(--pst-color-surface);
}
.dark .nixl-stack-agent-box {
    border-color: var(--nv-dark-grey-4);
    background: var(--nv-dark-grey-2);
}

.nixl-stack-agent-layer {
    padding: 12px 16px;
    text-align: center;
    border-bottom: 1px solid var(--nv-light-grey-3);
}
.nixl-stack-agent-layer:last-child {
    border-bottom: none;
}
.dark .nixl-stack-agent-layer {
    border-bottom-color: var(--nv-dark-grey-4);
}
.dark .nixl-stack-agent-layer:last-child {
    border-bottom: none;
}

.nixl-stack-agent-layer-title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
}

.nixl-stack-agent-layer-sub {
    font-size: 12px;
    font-weight: 400;
    color: var(--pst-color-text-muted);
    display: block;
    margin-top: 2px;
}
.dark .nixl-stack-agent-layer-sub {
    color: var(--nv-light-grey-5);
}
.nixl-stack-agent-layer-sub a {
    color: inherit;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.nixl-stack-agent-core {
    background: rgba(116, 185, 0, 0.04);
}
.dark .nixl-stack-agent-core {
    background: rgba(116, 185, 0, 0.06);
}

.nixl-stack-agent-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin-top: 8px;
}

.nixl-stack-chip {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
    border-radius: 999px;
    background: rgba(116, 185, 0, 0.1);
    color: var(--pst-color-text-base);
    border: 1px solid rgba(116, 185, 0, 0.3);
    white-space: nowrap;
}
.dark .nixl-stack-chip {
    background: rgba(116, 185, 0, 0.12);
    border-color: rgba(116, 185, 0, 0.25);
    color: var(--nv-light-grey-2);
}

/* Backend-to-compute cross-highlighting */
.nixl-stack-diagram:has([data-backend-compute-nvidia]:hover) [data-compute-nvidia],
.nixl-stack-diagram:has([data-backend-compute-nvidia]:focus) [data-compute-nvidia] {
    opacity: 1 !important;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-diagram:has([data-backend-compute-aws]:hover) [data-compute-aws],
.nixl-stack-diagram:has([data-backend-compute-aws]:focus) [data-compute-aws] {
    opacity: 1 !important;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

/* Memory and compute type controls */
.nixl-stack-bottom-row {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.nixl-stack-bottom-section {
    flex: 1;
    min-width: 0;
    text-align: center;
}

.nixl-stack-compute-row {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

.nixl-stack-compute-type {
    background: var(--pst-color-surface);
    border: 1px solid var(--nv-light-grey-3);
    border-radius: 4px;
    padding: 8px 16px;
    min-height: 36px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 150ms ease, border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
}
.dark .nixl-stack-compute-type {
    border-color: var(--nv-dark-grey-4);
    background: var(--nv-dark-grey-2);
}

.nixl-stack-mem-tooltip {
    position: absolute;
    top: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 10px;
    border-radius: 6px;
    background: var(--pst-color-surface);
    border: 1px solid var(--nv-color-green);
    color: var(--pst-color-text-base);
    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
    pointer-events: none;
    z-index: 9999;
    opacity: 0;
    transition: opacity 150ms ease;
}

.dark .nixl-stack-mem-tooltip {
    background: var(--nv-dark-grey-2);
    color: var(--nv-light-grey-2);
}

.nixl-stack-memtype {
    position: relative;
}

.nixl-stack-memtype:hover > .nixl-stack-mem-tooltip,
.nixl-stack-memtype:focus > .nixl-stack-mem-tooltip {
    opacity: 1;
}
.nixl-stack-memtype:focus-within > .nixl-stack-mem-tooltip {
    opacity: 1;
}

.nixl-stack-compute-type:hover,
.nixl-stack-compute-type:focus {
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
    opacity: 1;
}
.nixl-stack-compute-type:focus-visible {
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
    opacity: 1;
}

/* Compute-to-backend and memory cross-highlighting */
.nixl-stack-diagram:has(.nixl-stack-compute-type:hover) .nixl-stack-plugin,
.nixl-stack-diagram:has(.nixl-stack-compute-type:focus) .nixl-stack-plugin,
.nixl-stack-diagram:has(.nixl-stack-compute-type:hover) .nixl-stack-memtype,
.nixl-stack-diagram:has(.nixl-stack-compute-type:focus) .nixl-stack-memtype,
.nixl-stack-diagram:has(.nixl-stack-compute-type:hover) .nixl-stack-compute-type,
.nixl-stack-diagram:has(.nixl-stack-compute-type:focus) .nixl-stack-compute-type {
    opacity: 0.3;
}

.nixl-stack-diagram:has([data-compute-nvidia]:hover) [data-mem-vram],
.nixl-stack-diagram:has([data-compute-nvidia]:focus) [data-mem-vram] {
    opacity: 1;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-diagram:has([data-compute-nvidia]:hover) [data-type="VRAM"],
.nixl-stack-diagram:has([data-compute-nvidia]:focus) [data-type="VRAM"],
.nixl-stack-diagram:has([data-compute-nvidia]:hover) [data-type="DRAM"],
.nixl-stack-diagram:has([data-compute-nvidia]:focus) [data-type="DRAM"],
.nixl-stack-diagram:has([data-compute-nvidia]:hover) [data-type="FILE"],
.nixl-stack-diagram:has([data-compute-nvidia]:focus) [data-type="FILE"] {
    opacity: 1;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-diagram:has([data-compute-nvidia]:hover) [data-compute-nvidia],
.nixl-stack-diagram:has([data-compute-nvidia]:focus) [data-compute-nvidia] {
    opacity: 1;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-diagram:has([data-compute-aws]:hover) .nixl-stack-plugin[data-backend-compute-aws],
.nixl-stack-diagram:has([data-compute-aws]:focus) .nixl-stack-plugin[data-backend-compute-aws] {
    opacity: 1;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-diagram:has([data-compute-aws]:hover) [data-type="VRAM"],
.nixl-stack-diagram:has([data-compute-aws]:focus) [data-type="VRAM"],
.nixl-stack-diagram:has([data-compute-aws]:hover) [data-type="DRAM"],
.nixl-stack-diagram:has([data-compute-aws]:focus) [data-type="DRAM"] {
    opacity: 1;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-diagram:has([data-compute-aws]:hover) [data-compute-aws],
.nixl-stack-diagram:has([data-compute-aws]:focus) [data-compute-aws] {
    opacity: 1;
    border-color: #74B900;
    box-shadow: 0 0 0 1px #74B900;
    background-color: rgba(116, 185, 0, 0.1);
}

.nixl-stack-diagram:has(.nixl-stack-plugin:hover) .nixl-stack-compute-type,
.nixl-stack-diagram:has(.nixl-stack-plugin:focus) .nixl-stack-compute-type {
    opacity: 0.3;
}

.nixl-stack-diagram:has(.nixl-stack-memtype:hover) .nixl-stack-compute-type,
.nixl-stack-diagram:has(.nixl-stack-memtype:focus) .nixl-stack-compute-type {
    opacity: 0.3;
}

@media (max-width: 811px) {

    .nixl-stack-bottom-row {
        flex-direction: column;
    }

}
