/* DocFX + Bootstrap overrides for Catppuccin (Ongenet site) */

html {
  scroll-behavior: smooth;
  background: var(--base);
  color: var(--text);
}

body.doc-page {
  background: var(--base) !important;
  color: var(--text) !important;
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system,
               "Segoe UI", Roboto, "Noto Sans", sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* Bootstrap / DocFX modern reads data-bs-theme — mirror Catppuccin there too */
[data-theme="mocha"] {
  --bs-body-bg: #1e1e2e;
  --bs-body-bg-rgb: 30, 30, 46;
  --bs-body-color: #cdd6f4;
  --bs-border-color: #313244;
  --bs-link-color: #89b4fa;
  --bs-link-hover-color: #74c7ec;
  --bs-secondary-color: #a6adc8;
  --bs-tertiary-bg: #181825;
  --bs-emphasis-color: #cdd6f4;
  --docfx-sidebar-bg: #181825;
  --docfx-card-bg: #181825;
}

[data-theme="macchiato"] {
  --bs-body-bg: #24273a;
  --bs-body-bg-rgb: 36, 39, 58;
  --bs-body-color: #cad3f5;
  --bs-border-color: #363a4f;
  --bs-link-color: #8aadf4;
  --bs-link-hover-color: #7dc4e4;
  --bs-secondary-color: #a5adcb;
  --bs-tertiary-bg: #1e2030;
  --bs-emphasis-color: #cad3f5;
  --docfx-sidebar-bg: #1e2030;
  --docfx-card-bg: #1e2030;
}

[data-theme="frappe"] {
  --bs-body-bg: #303446;
  --bs-body-bg-rgb: 48, 52, 70;
  --bs-body-color: #c6d0f5;
  --bs-border-color: #414559;
  --bs-link-color: #8caaee;
  --bs-link-hover-color: #85c1dc;
  --bs-secondary-color: #a5adce;
  --bs-tertiary-bg: #292c3c;
  --bs-emphasis-color: #c6d0f5;
  --docfx-sidebar-bg: #292c3c;
  --docfx-card-bg: #292c3c;
}

[data-theme="latte"] {
  --bs-body-bg: #eff1f5;
  --bs-body-bg-rgb: 239, 241, 245;
  --bs-body-color: #4c4f69;
  --bs-border-color: #ccd0da;
  --bs-link-color: #1e66f5;
  --bs-link-hover-color: #209fb5;
  --bs-secondary-color: #6c6f85;
  --bs-tertiary-bg: #e6e9ef;
  --bs-emphasis-color: #4c4f69;
  --docfx-sidebar-bg: #e6e9ef;
  --docfx-card-bg: #e6e9ef;
}

.docfx-main.container-xxl {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

@media (min-width: 768px) {
  /* DocFX expects a flex main; keep the sidebar sticky with its own scroll area. */
  body.doc-page:not([data-search]) > main.docfx-main > .toc-offcanvas {
    flex: 0 0 min(360px, 32%);
    max-width: 360px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body.doc-page:not([data-search]) > main.docfx-main > .content {
    flex: 1;
    min-width: 0;
    margin: 0 1.5rem;
  }

  body.doc-page:not([data-search]) > main.docfx-main > .affix {
    flex: 0 0 200px;
    width: 200px;
  }
}

@media (max-width: 992px) {
  body.doc-page:not([data-search]) > main.docfx-main > .content {
    margin: 0;
  }
}

.doc-content {
  min-width: 0;
}

.actionbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.doc-search .form-control,
.doc-search input {
  background: var(--surface0) !important;
  border: 1px solid var(--surface1) !important;
  color: var(--text) !important;
  border-radius: 8px;
  min-width: 200px;
}

.doc-toc-toggle {
  background: var(--surface0);
  color: var(--text);
  border-radius: 8px;
}

.toc-offcanvas .offcanvas-md,
.toc-offcanvas .offcanvas-body,
.toc-offcanvas .offcanvas-header {
  background: var(--mantle) !important;
  color: var(--text) !important;
  border-color: var(--surface0) !important;
}

.toc-offcanvas .offcanvas-title {
  color: var(--text);
}

.btn-close {
  filter: invert(0.85);
}

[data-theme="latte"] .btn-close {
  filter: none;
}

.toc .nav-link,
#affix .nav-link {
  color: var(--subtext0) !important;
}

.toc .nav-link.active,
#affix .nav-link.active {
  color: var(--mauve) !important;
}

#breadcrumb,
.breadcrumb-item,
.breadcrumb-item a {
  color: var(--subtext0) !important;
  font-size: 0.88rem;
}

.search-results,
.container-xxl.search-results {
  background: var(--mantle) !important;
  border: 1px solid var(--surface0);
  border-radius: 10px;
  color: var(--text) !important;
}

/* API reference typography */
article.doc-article,
article.doc-article .content,
article.doc-article main {
  color: var(--text);
}

article.doc-article h1,
article.doc-article h2,
article.doc-article h3,
article.doc-article h4,
article.doc-article h5 {
  color: var(--text) !important;
}

article.doc-article table {
  border-color: var(--surface0);
  background: transparent;
}

article.doc-article th {
  background: var(--mantle) !important;
  color: var(--text) !important;
}

article.doc-article td,
article.doc-article th {
  border-color: var(--surface0) !important;
  color: var(--subtext0) !important;
}

article.doc-article pre,
article.doc-article .lang-csharp,
article.doc-article .lang-cs {
  background: var(--crust) !important;
  border: 1px solid var(--surface0);
  border-radius: 8px;
  color: var(--text) !important;
}

article.doc-article code {
  background: var(--crust);
  color: var(--peach);
}

article.doc-article .hljs,
article.doc-article code {
  font-family: ui-monospace, "JetBrains Mono", "Fira Code", monospace;
}

.codewrapper, .declaration, .summary, .remarks {
  color: var(--subtext0) !important;
}

.alert, .note, .tip, .warning, .important {
  background: var(--mantle) !important;
  border-color: var(--surface1) !important;
  color: var(--subtext0) !important;
}

/* Hide DocFX default chrome (we use Ongenet topbar/footer) */
header.bg-body,
.navbar-brand img,
.navbar.bg-body,
footer.border-top.text-secondary {
  display: none !important;
}

.next-article {
  margin-top: 32px;
  padding-top: 20px;
  border-color: var(--surface0) !important;
  color: var(--subtext0) !important;
}

.next-article a {
  color: var(--blue) !important;
}

.topbar .brand {
  text-decoration: none;
  color: var(--text);
}

.topbar .brand:hover {
  text-decoration: none;
  color: var(--text);
}

/* DocFX API member lists */
article.doc-article .section {
  color: var(--subtext0);
}

article.doc-article .level0.summary {
  border-bottom-color: var(--surface0);
}

article.doc-article a {
  color: var(--blue);
}

article.doc-article a:hover {
  color: var(--sapphire);
}
