/* ============================================================
   Blue Mantis — CCA Documentation Theme
   Overrides for MkDocs Material (slate / dark + default / light)
   ============================================================ */

/* Import Inter from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ── Shared brand constants (scheme-independent) ────────────── */
:root {
  --bm-gold:     #f7a814;
  --bm-goldhov:  #ffc14d;
  --bm-blue:     #1578f8;
  --bm-navy:     #002b5e;
  --bm-white:    #ffffff;

  --md-text-font: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --md-code-font: 'JetBrains Mono', 'Fira Mono', 'Consolas', monospace;
}

/* ── DARK scheme (slate) ────────────────────────────────────── */
[data-md-color-scheme="slate"] {
  --bm-bg:       #000000;
  --bm-surface:  #141414;
  --bm-surface2: #1e1e1e;
  --bm-border:   #2e2e2e;
  --bm-muted:    #707070;
  --bm-subtle:   #cccccc;
  --bm-text:     #d9d9d9;
  --bm-heading:  #ffffff;

  /* Material variables */
  --md-default-bg-color:           var(--bm-bg);
  --md-default-fg-color:           var(--bm-text);
  --md-default-fg-color--light:    var(--bm-subtle);
  --md-default-fg-color--lighter:  var(--bm-muted);
  --md-default-fg-color--lightest: #3a3a3a;

  --md-primary-fg-color:           var(--bm-surface);
  --md-primary-fg-color--light:    var(--bm-surface2);
  --md-primary-fg-color--dark:     var(--bm-bg);
  --md-primary-bg-color:           var(--bm-white);
  --md-primary-bg-color--light:    var(--bm-subtle);

  --md-accent-fg-color:            var(--bm-gold);
  --md-accent-fg-color--transparent: rgba(247, 168, 20, 0.1);
  --md-accent-bg-color:            var(--bm-bg);

  --md-code-bg-color:              var(--bm-surface2);
  --md-code-fg-color:              var(--bm-subtle);
  --md-admonition-bg-color:        var(--bm-surface);

  --md-typeset-color:              var(--bm-text);
  --md-typeset-a-color:            var(--bm-blue);
  --md-typeset-mark-color:         rgba(247, 168, 20, 0.3);

  --md-footer-bg-color:            var(--bm-surface);
  --md-footer-bg-color--dark:      var(--bm-bg);
  --md-footer-fg-color:            var(--bm-muted);
  --md-footer-fg-color--light:     var(--bm-subtle);

  --md-sidebar-width: 240px;
}

/* ── LIGHT scheme (default) — Blue Mantis website principals ── */
[data-md-color-scheme="default"] {
  /* Light surface palette inspired by bluemantis.com */
  --bm-bg:       #f5f5f7;   /* light grey page background */
  --bm-surface:  #ffffff;   /* white cards / panels       */
  --bm-surface2: #eef0f3;   /* slightly off-white rows    */
  --bm-border:   #d4d8de;   /* soft grey borders          */
  --bm-muted:    #6b7280;   /* secondary text             */
  --bm-subtle:   #374151;   /* slightly emphasized text   */
  --bm-text:     #1f2937;   /* default body text          */
  --bm-heading:  #002b5e;   /* navy headings (BM brand)   */

  /* Material variables */
  --md-default-bg-color:           var(--bm-bg);
  --md-default-fg-color:           var(--bm-text);
  --md-default-fg-color--light:    var(--bm-subtle);
  --md-default-fg-color--lighter:  var(--bm-muted);
  --md-default-fg-color--lightest: #c8cdd4;

  /* Header / nav background → navy (matches BM website header) */
  --md-primary-fg-color:           var(--bm-navy);
  --md-primary-fg-color--light:    #003a7a;
  --md-primary-fg-color--dark:     #001d40;
  --md-primary-bg-color:           var(--bm-white);
  --md-primary-bg-color--light:    rgba(255,255,255,0.7);

  --md-accent-fg-color:            var(--bm-gold);
  --md-accent-fg-color--transparent: rgba(247, 168, 20, 0.12);
  --md-accent-bg-color:            var(--bm-white);

  --md-code-bg-color:              #f0f2f5;
  --md-code-fg-color:              #1f2937;
  --md-admonition-bg-color:        var(--bm-surface);

  --md-typeset-color:              var(--bm-text);
  --md-typeset-a-color:            var(--bm-blue);
  --md-typeset-mark-color:         rgba(247, 168, 20, 0.25);

  --md-footer-bg-color:            var(--bm-navy);
  --md-footer-bg-color--dark:      #001d40;
  --md-footer-fg-color:            rgba(255,255,255,0.6);
  --md-footer-fg-color--light:     rgba(255,255,255,0.85);

  --md-sidebar-width: 240px;
}

/* ── Global body ────────────────────────────────────────────── */
body {
  font-family: var(--md-text-font);
  -webkit-font-smoothing: antialiased;
  background-color: var(--bm-bg);
  color: var(--bm-text);
}

/* ── Header ─────────────────────────────────────────────────── */
.md-header {
  background-color: var(--md-primary-fg-color) !important;
  border-bottom: 1px solid var(--bm-border);
  box-shadow: none;
}

.md-header__title {
  color: var(--bm-white) !important;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.md-header__button.md-logo img,
.md-header__button.md-logo svg {
  height: 2rem;
  width: auto;
}

/* Toggle button icon colour */
.md-header__button {
  color: rgba(255,255,255,0.75) !important;
}
.md-header__button:hover {
  color: var(--bm-gold) !important;
}

/* ── Navigation tabs ────────────────────────────────────────── */
[data-md-color-scheme="slate"] .md-tabs {
  background-color: #000000 !important;
  border-bottom: 1px solid var(--bm-border);
}

[data-md-color-scheme="default"] .md-tabs {
  background-color: #001d40 !important;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.md-tabs__link {
  color: rgba(255,255,255,0.55) !important;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  transition: color 0.2s;
}

.md-tabs__link:hover,
.md-tabs__link--active {
  color: var(--bm-gold) !important;
}

.md-tabs__link--active::after {
  background-color: var(--bm-gold) !important;
  height: 2px;
}

/* ── Sidebar / nav ──────────────────────────────────────────── */
.md-nav {
  background-color: var(--bm-bg);
}

.md-nav__title {
  color: var(--bm-heading) !important;
  font-weight: 700;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background-color: var(--bm-surface);
  border-bottom: 1px solid var(--bm-border);
}

.md-nav__link {
  color: var(--bm-muted) !important;
  font-size: 0.8rem;
  transition: color 0.2s;
}

.md-nav__link:hover,
.md-nav__link--active,
.md-nav__link[data-md-state="blur"] {
  color: var(--bm-gold) !important;
}

.md-nav__item--active > .md-nav__link {
  color: var(--bm-gold) !important;
  font-weight: 600;
}

/* ── Sidebar backgrounds ────────────────────────────────────── */
.md-sidebar,
.md-sidebar__scrollwrap {
  background-color: var(--bm-bg);
}

/* ── Main content area ──────────────────────────────────────── */
.md-main,
.md-content {
  background-color: var(--bm-bg);
}

/* ── Typography ─────────────────────────────────────────────── */
.md-typeset h1 {
  color: var(--bm-heading);
  font-weight: 700;
  border-bottom: 1px solid var(--bm-border);
  padding-bottom: 0.4em;
}

.md-typeset h2 {
  color: var(--bm-heading);
  font-weight: 700;
  border-bottom: 1px solid var(--bm-border);
  padding-bottom: 0.3em;
}

.md-typeset h3,
.md-typeset h4,
.md-typeset h5,
.md-typeset h6 {
  color: var(--bm-subtle);
  font-weight: 600;
}

.md-typeset p,
.md-typeset li {
  color: var(--bm-text);
}

.md-typeset strong {
  color: var(--bm-heading);
}

.md-typeset a {
  color: var(--bm-blue) !important;
  text-decoration: none;
  transition: color 0.2s;
}

.md-typeset a:hover {
  color: var(--bm-gold) !important;
  text-decoration: underline;
}

/* ── Code ────────────────────────────────────────────────────── */
.md-typeset code {
  background-color: var(--md-code-bg-color);
  color: var(--bm-gold);
  border: 1px solid var(--bm-border);
  border-radius: 0;
  font-size: 0.82em;
  padding: 0.1em 0.35em;
}

/* Light mode: inline code text darker for contrast on white */
[data-md-color-scheme="default"] .md-typeset code {
  color: #b45309;  /* amber-700 — readable gold on light bg */
}

.md-typeset pre > code {
  background-color: transparent;
  border: none;
  color: var(--md-code-fg-color);
  padding: 0;
}

.highlight,
.md-typeset pre {
  background-color: var(--md-code-bg-color) !important;
  border: 1px solid var(--bm-border);
  border-radius: 0 !important;
}

/* ── Tables ──────────────────────────────────────────────────── */
.md-typeset table:not([class]) {
  border: 1px solid var(--bm-border);
  border-radius: 0;
  font-size: 0.82rem;
}

.md-typeset table:not([class]) th {
  background-color: var(--bm-surface);
  color: var(--bm-heading);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-bottom: 1px solid var(--bm-border);
  padding: 0.65em 1em;
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) th {
  background-color: #141414;
}

.md-typeset table:not([class]) td {
  background-color: var(--bm-surface2);
  color: var(--bm-text);
  border-bottom: 1px solid var(--bm-border);
  padding: 0.6em 1em;
}

[data-md-color-scheme="default"] .md-typeset table:not([class]) tr:hover td {
  background-color: #e8eaed;
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) tr:hover td {
  background-color: #252525;
}

/* ── Admonitions ─────────────────────────────────────────────── */
.md-typeset .admonition,
.md-typeset details {
  background-color: var(--bm-surface) !important;
  border: 1px solid var(--bm-border) !important;
  border-left-width: 3px !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.md-typeset .admonition-title,
.md-typeset summary {
  background-color: var(--bm-surface2) !important;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 0 !important;
}

/* Info */
.md-typeset .admonition.info,
.md-typeset .admonition.note {
  border-left-color: var(--bm-blue) !important;
}
.md-typeset .admonition.info > .admonition-title,
.md-typeset .admonition.note > .admonition-title {
  color: var(--bm-blue) !important;
}

/* Warning */
.md-typeset .admonition.warning,
.md-typeset .admonition.caution {
  border-left-color: var(--bm-gold) !important;
}
.md-typeset .admonition.warning > .admonition-title,
.md-typeset .admonition.caution > .admonition-title {
  color: var(--bm-gold) !important;
}

/* Danger */
.md-typeset .admonition.danger {
  border-left-color: #ef4444 !important;
}
.md-typeset .admonition.danger > .admonition-title {
  color: #ef4444 !important;
}

/* Tip / success */
.md-typeset .admonition.tip,
.md-typeset .admonition.success {
  border-left-color: #22c55e !important;
}
.md-typeset .admonition.tip > .admonition-title,
.md-typeset .admonition.success > .admonition-title {
  color: #22c55e !important;
}

/* ── Horizontal rules ────────────────────────────────────────── */
.md-typeset hr {
  border-color: var(--bm-border);
}

/* ── Search ──────────────────────────────────────────────────── */
.md-search__form {
  background-color: var(--bm-surface2) !important;
  border: 1px solid var(--bm-border);
  border-radius: 0 !important;
}

[data-md-color-scheme="default"] .md-search__form {
  background-color: rgba(255,255,255,0.15) !important;
  border-color: rgba(255,255,255,0.2);
}

.md-search__input {
  color: var(--bm-text) !important;
}

[data-md-color-scheme="default"] .md-search__input {
  color: var(--bm-white) !important;
}

.md-search__input::placeholder {
  color: var(--bm-muted) !important;
}

[data-md-color-scheme="default"] .md-search__input::placeholder {
  color: rgba(255,255,255,0.5) !important;
}

.md-search-result {
  background-color: var(--bm-surface) !important;
  border: 1px solid var(--bm-border);
}

.md-search-result__article,
.md-search-result__title {
  color: var(--bm-heading) !important;
}

.md-search-result__teaser {
  color: var(--bm-muted) !important;
}

.md-search-result__item:hover {
  background-color: var(--bm-surface2) !important;
}

/* ── Footer ──────────────────────────────────────────────────── */
.md-footer {
  background-color: var(--md-footer-bg-color) !important;
  border-top: 1px solid var(--bm-border);
}

.md-footer-meta {
  background-color: var(--md-footer-bg-color--dark) !important;
}

.md-footer__link {
  color: var(--md-footer-fg-color) !important;
  transition: color 0.2s;
}

.md-footer__link:hover {
  color: var(--bm-gold) !important;
}

.md-footer-copyright {
  color: var(--md-footer-fg-color) !important;
  font-size: 0.72rem;
}

/* ── Table of Contents (right sidebar) ───────────────────────── */
.md-nav--secondary .md-nav__title {
  color: var(--bm-muted) !important;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: transparent;
  border-bottom: 1px solid var(--bm-border);
}

.md-nav--secondary .md-nav__link {
  color: var(--bm-muted) !important;
  font-size: 0.75rem;
}

.md-nav--secondary .md-nav__link:hover,
.md-nav--secondary .md-nav__link--active {
  color: var(--bm-gold) !important;
}

/* ── "Back to top" button ────────────────────────────────────── */
.md-top {
  background-color: var(--bm-surface) !important;
  border: 1px solid var(--bm-border);
  border-radius: 0 !important;
  color: var(--bm-muted) !important;
  box-shadow: none !important;
}

.md-top:hover {
  color: var(--bm-gold) !important;
  border-color: var(--bm-gold);
}

/* ── Tag chips / badges ──────────────────────────────────────── */
.md-tag {
  background-color: var(--bm-surface2) !important;
  color: var(--bm-muted) !important;
  border: 1px solid var(--bm-border);
  border-radius: 0 !important;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* ── Tabs (pymdownx.tabbed) ──────────────────────────────────── */
.md-typeset .tabbed-labels > label {
  color: var(--bm-muted);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 0 !important;
}

.md-typeset .tabbed-labels > label:hover {
  color: var(--bm-subtle);
}

.md-typeset .tabbed-labels > label[for]:has(+ input:checked),
.md-typeset .tabbed-set > input:checked ~ .tabbed-labels > .tabbed-label--active {
  color: var(--bm-gold) !important;
  border-bottom-color: var(--bm-gold) !important;
}

/* ── Images / lightbox ───────────────────────────────────────── */
.md-typeset img {
  border: 1px solid var(--bm-border);
  display: block;
  margin: 1.2em auto;
}

/* ── Scrollbar ───────────────────────────────────────────────── */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: var(--bm-bg);
}

::-webkit-scrollbar-thumb {
  background: var(--bm-border);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--bm-muted);
}

/* ── Copy button ─────────────────────────────────────────────── */
.md-clipboard {
  color: var(--bm-muted) !important;
}

.md-clipboard:hover {
  color: var(--bm-gold) !important;
}

/* ── Announce banner ─────────────────────────────────────────── */
.md-banner {
  background-color: var(--bm-surface) !important;
  border-bottom: 1px solid var(--bm-border);
  color: var(--bm-muted) !important;
}

