/**
 * theme.css — generated at deploy time from the project's resolved theme
 * tokens. All site colors live here; src/css/custom.css is structural only.
 * Do not edit by hand: regenerated on every deploy.
 */

:root,
html[data-theme='light'] {
  /* Primary scale */
  --ifm-color-primary: #691FC4;
  --ifm-color-primary-dark: #5F1AB2;
  --ifm-color-primary-darker: #5617A0;
  --ifm-color-primary-darkest: #471382;

  --ifm-color-primary-light: #7A36CD;
  --ifm-color-primary-lighter: #8B4ED7;
  --ifm-color-primary-lightest: #A878E6;

  --ifm-background-color: #ffffff;
  --ifm-background-surface-color: #ffffff;

  /* Component tokens (consumed by the swizzled Footer / Navbar logo box) */
  --doc-footer-bg: #1D1128;
  --doc-footer-text: #C4B5CF;
  --doc-footer-muted: #6B5A78;
  --doc-surface-deep: #1D1128;
  --doc-surface-deep-text: #E5D4ED;
}

/* Light mode: subtle radial tint over white.
   Ported verbatim from the original custom.css — including its selectors,
   which can never match (data-theme is set ON the html element, so `html` is
   never a descendant). The wash is invisible today; fixing the selector would
   be a visible change and is a deliberate follow-up, not part of theming. */
[data-theme="light"] html,
:root html {
  min-height: 100%;
  background: radial-gradient(
    ellipse 105.15% 203.09% at 100.00% 100.00%,
    rgba(94, 193, 218, 0.04) 0%,
    rgba(186.63, 0, 3.11, 0.03) 95%,
    rgba(29, 17, 40, 0) 100%
  ) no-repeat fixed;
}

/* Dark mode h1 emphasis */
[data-theme="dark"] .markdown h1:first-child,
[data-theme="dark"] article header h1 {
  color: #66D9FF;
}

/* ─── Dark theme ─── */
html[data-theme="dark"] {
  --ifm-background-color: #22223B;
  --ifm-background-surface-color: #2A2B39;
  --ifm-font-color-base: #E3D5EE;
  --ifm-font-color-secondary: #bbb3cc;
  --ifm-heading-color: #F2F0FF;
  --ifm-link-color: #66D9FF;
  --ifm-link-hover-color: #8ae4ff;
  --ifm-menu-color: #E3D5EE;
  --ifm-menu-color-active: #66D9FF;
  --ifm-menu-color-background-active: rgba(102, 217, 255, 0.08);
  --ifm-menu-color-background-hover: rgba(102, 217, 255, 0.05);
  --ifm-color-emphasis-100: rgba(255,255,255,0.06);
  --ifm-color-emphasis-200: rgba(255,255,255,0.10);
  --ifm-color-emphasis-300: rgba(255,255,255,0.16);
  --ifm-toc-link-color: #bbb3cc;
  --ifm-toc-border-color: rgba(255,255,255,0.08);
  --ifm-hr-border-color: rgba(255,255,255,0.10);
  --ifm-color-content-secondary: #bbb3cc;
  --ifm-breadcrumb-color-active: #F2F0FF;

  /* Primary scale, lifted for dark backgrounds */
  --ifm-color-primary: #8B4ED7;
  --ifm-color-primary-dark: #7A36CD;
  --ifm-color-primary-darker: #691FC4;
  --ifm-color-primary-darkest: #5617A0;
  --ifm-color-primary-light: #9C66E0;
  --ifm-color-primary-lighter: #A878E6;
  --ifm-color-primary-lightest: #C4A5F0;

  /* Borders & dividers */
  --ifm-global-border-color: rgba(255,255,255,0.08);
  --ifm-navbar-shadow: 0 1px 0 rgba(255,255,255,0.06);

  /* Table */
  --ifm-table-stripe-background: rgba(255,255,255,0.03);
  --ifm-table-border-color: rgba(255,255,255,0.08);

  /* Alerts / admonitions */
  --ifm-alert-background-color: #2A2B39;
  --ifm-alert-border-color: rgba(255,255,255,0.10);
}

/* Left sidebar link color (light mode) */
.theme-doc-sidebar-menu .menu__link,
.theme-doc-sidebar-menu .menu__link--sublist {
  color: #1D1128;
}

.navbar {
  border-bottom: 1px solid #D9D9D9;
}

[data-theme="dark"] .sidebar-indexed-header {
  color: #bbb3cc;
}

/* Code block container colors (structure stays in custom.css) */
.theme-code-block,
pre[class*="language-"] {
  background: #242D60 !important;
  color: #E6ECFF !important;
}

/* Prism token colors */

.theme-code-block pre code .token.string, .token.attr-value, token.char { color: #A5FF90 !important; }
.theme-code-block pre code .token.function, .token.class-name { color: #C2D3FF !important; }
.theme-code-block pre code .token.number { color: #FFBF7A !important; }
.theme-code-block pre code .token.keyword { color: #A4CDFE !important; }
.theme-code-block pre code .token.builtin { color: #B4C6FF !important; }
.theme-code-block pre code .token.comment, .token.prolog,.token.doctype .token.cdata { color: #8A93C7 !important; }
.theme-code-block pre code .token.operator, .token.punctuation, .token.symbol  { color: #C0C8F2 !important; }


/* Keywords: def, import, class, return, etc. */
.token.keyword,
.token.builtin {
  color: #B4C6FF;
}

/* Function & method names */
.token.function {
  color: #C2D3FF;
}

/* Strings */
.token.string,
.token.char,
.token.attr-value {
  color: #A5FF90;
}

/* Numbers, booleans, constants */
.token.number,
.token.boolean,
.token.constant {
  color: #FFBF7A;
}

/* Operators, punctuation */
.token.operator,
.token.punctuation,
.token.symbol {
  color: #C0C8F2;
}

/* Variables / parameters (kept close to base color) */
.token.variable,
.token.parameter {
  color: #E6ECFF;
}

.token.plain {
 color: #ffffff;
}

/* Navbar logo text — dark mode */
[data-theme="dark"] .navbar-logo__title { color: #F2F0FF; }

/* ─── Dark theme component overrides ─── */

/* Navbar */
[data-theme="dark"] .navbar {
  background: #1A0F24;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
[data-theme="dark"] .navbar__title,
[data-theme="dark"] .navbar__link {
  color: #F2F0FF;
}
[data-theme="dark"] .navbar__link:hover {
  color: #66D9FF;
}
[data-theme="dark"] .navbar__link--active {
  color: #F2F0FF;
}

/* Sidebar */
[data-theme="dark"] .theme-doc-sidebar-container {
  background: #1A0F24;
  border-right: 1px solid rgba(255,255,255,0.06);
}
[data-theme="dark"] .theme-doc-sidebar-menu .menu__link,
[data-theme="dark"] .theme-doc-sidebar-menu .menu__link--sublist {
  color: #E3D5EE;
}
[data-theme="dark"] .theme-doc-sidebar-menu .menu__link:hover {
  color: #66D9FF;
}
[data-theme="dark"] .theme-doc-sidebar-menu .menu__link--active {
  color: #66D9FF;
}

/* Category headings */
[data-theme="dark"]
  .theme-doc-sidebar-item-category-level-1.menu__list-item
  > .menu__list-item-collapsible
  > .menu__link {
  color: #bbb3cc;
}

/* Breadcrumbs */
[data-theme="dark"] .breadcrumbs__link {
  color: #bbb3cc;
}
[data-theme="dark"] .breadcrumbs__item--active .breadcrumbs__link {
  color: #F2F0FF;
}

/* TOC (right sidebar) */
[data-theme="dark"] .table-of-contents__link {
  color: #bbb3cc;
}
[data-theme="dark"] .table-of-contents__link:hover,
[data-theme="dark"] .table-of-contents__link--active {
  color: #66D9FF;
}

/* Footer */
[data-theme="dark"] .footer {
  background: #1A0F24;
  border-top: 1px solid rgba(255,255,255,0.06);
}
[data-theme="dark"] .footer__title {
  color: #F2F0FF;
}
[data-theme="dark"] .footer__link-item {
  color: #bbb3cc;
}
[data-theme="dark"] .footer__link-item:hover {
  color: #66D9FF;
}

/* Pagination (prev/next) */
[data-theme="dark"] .pagination-nav__link {
  border-color: rgba(255,255,255,0.08);
  background: #2A2B39;
}
[data-theme="dark"] .pagination-nav__link:hover {
  border-color: rgba(102, 217, 255, 0.3);
}
[data-theme="dark"] .pagination-nav__sublabel {
  color: #bbb3cc;
}
[data-theme="dark"] .pagination-nav__label {
  color: #F2F0FF;
}

/* Cards & admonitions */
[data-theme="dark"] .alert {
  background: #2A2B39;
  border-color: rgba(255,255,255,0.10);
}

/* Tables */
[data-theme="dark"] table th {
  background: #2A2B39;
  color: #F2F0FF;
}
[data-theme="dark"] table td {
  border-color: rgba(255,255,255,0.08);
}

/* Search */
[data-theme="dark"] .DocSearch-Button {
  background: #2A2B39;
  color: #bbb3cc;
}

/* Scrollbar in dark mode */
[data-theme="dark"] ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
[data-theme="dark"] ::-webkit-scrollbar-track {
  background: transparent;
}
[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: rgba(227, 213, 238, 0.15);
  border-radius: 3px;
}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
  background: rgba(227, 213, 238, 0.3);
}