/* DHI theme of the MIKE+ documentation (userdoc.mike-plus.mikepoweredbydhi.com),
   which is MkDocs Material with a custom palette. */

:root,
html.quarto-light {
  --dhi-primary-dark: #1c3a86;
  --dhi-accent: #0098db;
  --dhi-link: #004165;
  --dhi-fg: rgba(0, 0, 0, 0.87);
  --dhi-fg-light: rgba(0, 0, 0, 0.54);
  --dhi-bg: #fff;
  --dhi-code-bg: #f5f5f5;
  --dhi-code-fg: #36464e;
  --dhi-border: rgba(0, 0, 0, 0.07);
  --dhi-text-font: "Inter", Arial, sans-serif;
  --dhi-code-font: "JetBrains Mono", SFMono-Regular, Consolas, Menlo, monospace;

  --bs-body-font-family: var(--dhi-text-font);
  --bs-font-sans-serif: var(--dhi-text-font);
  --bs-font-monospace: var(--dhi-code-font);
  --bs-body-color: var(--dhi-fg);
  --bs-body-bg: var(--dhi-bg);
  --bs-link-color: var(--dhi-link);
  --bs-link-color-rgb: 0, 65, 101;
  --bs-link-hover-color: var(--dhi-accent);
  --bs-link-hover-color-rgb: 0, 152, 219;

  --gd-bg-primary: var(--dhi-bg);
  --gd-text-primary: var(--dhi-fg);
  --gd-text-muted: var(--dhi-fg-light);
  --gd-link-color: var(--dhi-link);
  --gd-code-bg: var(--dhi-code-bg);
  --gd-code-color: var(--dhi-code-fg);
  --gd-sidebar-bg: var(--dhi-bg);
  --gd-active-link: var(--dhi-accent);
  --gd-accent-blue: var(--dhi-accent);
  --gd-citation-color: var(--dhi-link);

  /* Material's Pygments palette */
  --gd-syn-class: #6e59d9;
  --gd-syn-name: var(--dhi-code-fg);
  --gd-syn-none: #6e59d9;
  --gd-syn-bool: #6e59d9;
  --gd-syn-operator: var(--dhi-fg-light);
  --gd-syn-keyword: #3f6ec6;
  --gd-syn-string: #1c7d4d;
  --gd-syn-number: #d52a2a;
  --gd-syn-comment: var(--dhi-fg-light);
  --gd-syn-function: #a846b9;
  --gd-syn-builtin: #3f6ec6;
}

/* Material's "slate" scheme, at its default hue of 225 */
html.quarto-dark,
body.quarto-dark {
  --dhi-link: #4a9fd4;
  --dhi-fg: hsla(225, 15%, 90%, 0.82);
  --dhi-fg-light: hsla(225, 15%, 90%, 0.56);
  --dhi-bg: hsl(225, 15%, 14%);
  --dhi-code-bg: hsl(225, 15%, 18%);
  --dhi-code-fg: hsla(225, 18%, 86%, 0.82);
  --dhi-border: hsla(225, 15%, 90%, 0.12);

  --bs-body-color: var(--dhi-fg);
  --bs-body-bg: var(--dhi-bg);
  --bs-link-color: var(--dhi-link);
  --bs-link-color-rgb: 74, 159, 212;

  --gd-bg-primary: var(--dhi-bg);
  --gd-bg-secondary: var(--dhi-code-bg);
  --gd-bg-tertiary: var(--dhi-code-bg);
  --gd-text-primary: var(--dhi-fg);
  --gd-text-secondary: var(--dhi-fg);
  --gd-text-muted: var(--dhi-fg-light);
  --gd-border-color: var(--dhi-border);
  --gd-border-light: var(--dhi-border);
  --gd-link-color: var(--dhi-link);
  --gd-code-bg: var(--dhi-code-bg);
  --gd-code-color: var(--dhi-code-fg);
  --gd-blockquote-bg: var(--dhi-code-bg);
  --gd-sidebar-bg: var(--dhi-bg);
  --gd-citation-color: var(--dhi-link);

  --gd-syn-class: #9383e2;
  --gd-syn-name: var(--dhi-code-fg);
  --gd-syn-none: #9383e2;
  --gd-syn-bool: #9383e2;
  --gd-syn-keyword: #6791e0;
  --gd-syn-string: #2fb170;
  --gd-syn-number: #e6695b;
  --gd-syn-function: #c973d9;
  --gd-syn-builtin: #6791e0;
}

/* --- Fonts: great-docs hard-codes Open Sans on many selectors --- */

body,
p, h1, h2, h3, h4, h5, h6,
#toc-title, #toc-function-reference,
.nav-link, .table, .table td,
.navbar-title,
#quarto-sidebar .sidebar-item-text,
#quarto-sidebar a.sidebar-item-text.sidebar-link.text-start > span,
.gd-ref-sidebar #quarto-sidebar a.sidebar-item-text[href$="/"],
.nav-footer {
  font-family: var(--dhi-text-font) !important;
}

code, pre, kbd, samp,
pre code, .sourceCode,
.gd-ref-sidebar #quarto-sidebar .sidebar-item a:not(.text-start):not([style]) .menu-text {
  font-family: var(--dhi-code-font) !important;
}

body {
  background-color: var(--dhi-bg);
  color: var(--dhi-fg);
  -webkit-font-smoothing: antialiased;
}

/* --- Headings: light weights as in Material --- */

h1, h1.title {
  font-weight: 300 !important;
  color: var(--dhi-fg-light) !important;
  letter-spacing: -0.01em;
}

h2 {
  font-weight: 300 !important;
  color: var(--dhi-fg) !important;
  border-bottom: none !important;
}

h3 {
  font-weight: 400 !important;
  color: var(--dhi-fg) !important;
}

h4, h5, h6 {
  font-weight: 700 !important;
  color: var(--dhi-fg) !important;
}

/* --- Links --- */

.quarto-body-content a,
main a,
#quarto-margin-sidebar a {
  color: var(--dhi-link);
  text-decoration: none !important;
}

.quarto-body-content a:hover,
main a:hover,
#quarto-margin-sidebar a:hover {
  color: var(--dhi-accent);
}

/* --- Navbar: navbar_color sets its colours, this matches Material's details --- */

#quarto-header .navbar {
  border-bottom: none !important;
  box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2);
}

#quarto-header .navbar .nav-link {
  text-decoration: none !important;
}

/* great-docs gives hovered links a translucent background, which Material does not */
#quarto-header .navbar .nav-link:hover {
  background-color: transparent !important;
}

.navbar .menu-text {
  color: rgba(255, 255, 255, 0.7) !important;
  font-weight: 500;
}

.navbar .nav-link:hover .menu-text,
.navbar .nav-link.active .menu-text {
  color: #fff !important;
}

.navbar .nav-link.active .menu-text {
  font-weight: 700;
}

/* --- Tabsets --- */

.panel-tabset .nav-tabs .nav-link {
  color: var(--dhi-fg-light) !important;
  text-decoration: none !important;
}

.panel-tabset .nav-tabs .nav-link.active,
.panel-tabset .nav-tabs .nav-link:hover {
  color: var(--dhi-accent) !important;
}

/* --- Sidebar and table of contents --- */

#quarto-sidebar,
.sidebar.sidebar-navigation {
  background-color: var(--dhi-bg) !important;
  border-right: none !important;
}

#quarto-sidebar .sidebar-link,
#quarto-sidebar .sidebar-item-text,
#TOC a,
nav[role="doc-toc"] a {
  color: var(--dhi-fg) !important;
  text-decoration: none !important;
  border-left-color: transparent !important;
}

#quarto-sidebar .sidebar-link:hover,
#quarto-sidebar .sidebar-link:hover .menu-text,
#TOC a:hover,
nav[role="doc-toc"] a:hover {
  color: var(--dhi-accent) !important;
}

#quarto-sidebar .sidebar-link.active,
#quarto-sidebar .sidebar-link.active .menu-text,
#TOC a.active,
nav[role="doc-toc"] a.active {
  color: var(--dhi-accent) !important;
  font-weight: 400;
  background: none !important;
}

#toc-title,
#quarto-sidebar a.sidebar-item-text.sidebar-link.text-start > span {
  color: var(--dhi-fg-light) !important;
  font-weight: 700 !important;
  text-transform: none !important;
}

/* --- Code --- */

pre,
div.sourceCode,
pre.sourceCode {
  background-color: var(--dhi-code-bg) !important;
  border: none !important;
  border-radius: 0.1rem;
}

:not(pre) > code {
  background-color: var(--dhi-code-bg) !important;
  color: var(--dhi-code-fg) !important;
  border-radius: 0.1rem;
  padding: 0.1em 0.3em;
}

/* --- Callouts: Material's admonition look --- */

.callout {
  border-radius: 0.2rem !important;
  border: 0.05rem solid var(--dhi-accent) !important;
  border-left-width: 0.2rem !important;
  box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.05rem rgba(0, 0, 0, 0.1);
}

.callout-note { --dhi-callout: #448aff; }
.callout-tip { --dhi-callout: #00bfa5; }
.callout-important { --dhi-callout: #ff1744; }
.callout-warning { --dhi-callout: #ff9100; }
.callout-caution { --dhi-callout: #ff9100; }

.callout[class*="callout-"] {
  border-color: var(--dhi-callout, var(--dhi-accent)) !important;
}

/* --- Footer --- */

.nav-footer {
  background-color: var(--dhi-primary-dark) !important;
  border-top: none !important;
  color: rgba(255, 255, 255, 0.7) !important;
}

.nav-footer *,
.nav-footer a {
  color: rgba(255, 255, 255, 0.7) !important;
}

.nav-footer a:hover {
  color: #fff !important;
}

a code {
  color: inherit !important;
}
