/* ════════════════════════════════════════════════════════════════
   Strahl Developer Docs — themed to match strahl-landing.
   Palette mirrors strahl-landing/css/v2.css [data-theme="spectrum"]
   (the landing is locked to Spectrum: light, clean fintech blue).
   Fonts: Spectral (display) · Libre Franklin (UI) · JetBrains Mono (code).
   ════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Spectral:wght@300;400;500&family=Libre+Franklin:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

:root,
[data-md-color-scheme="default"] {
  /* ── Strahl Spectrum tokens ── */
  --strahl-bg:        #F3F7FC;
  --strahl-surface:   #FFFFFF;
  --strahl-ink:       #0B1B33;
  --strahl-muted:     rgba(11, 27, 51, 0.60);
  --strahl-line:      rgba(11, 27, 51, 0.12);
  --strahl-primary:   #2563EB;
  --strahl-accent:    #38BDF8;
  --strahl-soft:      #E7F0FE;
  --strahl-soft-ink:  #1D4FBE;
  --strahl-shadow:    0 18px 50px -22px rgba(20, 60, 140, 0.34);
  --strahl-shadow-sm: 0 8px 26px -16px rgba(20, 60, 140, 0.30);

  --serif: 'Spectral', Georgia, serif;
  --ui:    'Libre Franklin', system-ui, sans-serif;
  --mono:  'JetBrains Mono', ui-monospace, monospace;

  /* ── Material backgrounds ── */
  --md-default-bg-color:           #F3F7FC;
  --md-default-bg-color--light:    rgba(11, 27, 51, 0.07);
  --md-default-bg-color--lighter:  rgba(11, 27, 51, 0.03);
  --md-default-bg-color--lightest: rgba(11, 27, 51, 0.02);

  /* ── Material foregrounds ── */
  --md-default-fg-color:           #0B1B33;
  --md-default-fg-color--light:    rgba(11, 27, 51, 0.70);
  --md-default-fg-color--lighter:  rgba(11, 27, 51, 0.45);
  --md-default-fg-color--lightest: rgba(11, 27, 51, 0.12);

  /* ── Header / tabs (kept light + glassy; see overrides below) ── */
  --md-primary-fg-color:           #FFFFFF;
  --md-primary-fg-color--light:    #FFFFFF;
  --md-primary-fg-color--dark:     #FFFFFF;
  --md-primary-bg-color:           #0B1B33;
  --md-primary-bg-color--light:    rgba(11, 27, 51, 0.60);

  /* ── Accent / interactive ── */
  --md-accent-fg-color:              #2563EB;
  --md-accent-fg-color--transparent: rgba(37, 99, 235, 0.10);
  --md-accent-bg-color:              #FFFFFF;

  --md-typeset-a-color:            #2563EB;

  /* ── Code ── */
  --md-code-bg-color:              #FFFFFF;
  --md-code-fg-color:              #0B1B33;
  --md-code-hl-color:              rgba(37, 99, 235, 0.12);

  /* ── Footer (light) ── */
  --md-footer-bg-color:            #FFFFFF;
  --md-footer-bg-color--dark:      #EAF1FB;
  --md-footer-fg-color:            rgba(11, 27, 51, 0.78);
  --md-footer-fg-color--light:     rgba(11, 27, 51, 0.50);
  --md-footer-fg-color--lighter:   rgba(11, 27, 51, 0.30);
}

/* ── Base typography ── */
body,
input,
.md-typeset,
.md-nav,
.md-tabs {
  font-family: var(--ui);
  -webkit-font-smoothing: antialiased;
}
code, pre, kbd,
.md-typeset code,
.md-typeset pre {
  font-family: var(--mono);
}
::selection { background: var(--strahl-primary); color: #fff; }

.md-main,
.md-container,
.md-sidebar { background: var(--strahl-bg); }

/* Serif display for top headings; Libre Franklin (semibold) for lower levels —
   mirrors the landing, where section heads are Spectral and card titles are sans. */
.md-typeset h1,
.md-typeset h2 {
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--strahl-ink);
}
.md-typeset h1 {
  font-size: 2.3em;
  margin-bottom: 0.6em;
}
.md-typeset h2 {
  border-bottom: 1px solid var(--strahl-line);
  padding-bottom: 0.3em;
}
.md-typeset h3,
.md-typeset h4,
.md-typeset h5 {
  font-family: var(--ui);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--strahl-ink);
}
.md-typeset p,
.md-typeset li {
  color: rgba(11, 27, 51, 0.82);
  line-height: 1.7;
}
.md-typeset a {
  color: var(--strahl-primary);
  text-decoration: none;
  text-underline-offset: 3px;
  text-decoration-color: rgba(37, 99, 235, 0.35);
  transition: color 0.15s, text-decoration-color 0.15s;
}
.md-typeset a:hover {
  text-decoration: underline;
  text-decoration-color: var(--strahl-primary);
}

/* ── Header (light, glassy — like the landing nav) ── */
.md-header {
  background: color-mix(in srgb, var(--strahl-bg) 82%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--strahl-ink);
  border-bottom: 1px solid var(--strahl-line);
  box-shadow: none;
}
.md-header__title {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 1.15rem;
  letter-spacing: -0.03em;
}
.md-header__button.md-logo img { height: 1.4rem; width: auto; }

/* ── Nav tabs (top) ── */
.md-tabs {
  background: color-mix(in srgb, var(--strahl-bg) 82%, transparent);
  color: var(--strahl-ink);
  border-bottom: 1px solid var(--strahl-line);
}
.md-tabs__link {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--strahl-muted);
  opacity: 1;
}
.md-tabs__link--active,
.md-tabs__link:hover { color: var(--strahl-ink); }

/* ── Sidebar nav ── */
.md-nav__title {
  font-family: var(--mono);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--strahl-muted);
  background: transparent;
}
.md-nav__item .md-nav__link {
  color: var(--strahl-muted);
  transition: color 0.15s;
}
.md-nav__item .md-nav__link:hover { color: var(--strahl-ink); }
.md-nav__item .md-nav__link--active,
.md-nav__link--active > .md-nav__link {
  color: var(--strahl-primary);
  font-weight: 600;
}

/* ── Inline + block code ── */
.md-typeset code {
  background: var(--strahl-soft);
  color: var(--strahl-soft-ink);
  border-radius: 6px;
  padding: 0.12em 0.38em;
  font-size: 0.84em;
}
.md-typeset .highlight,
.md-typeset pre {
  border: 1px solid var(--strahl-line);
  border-radius: 14px;
  background: var(--strahl-surface);
  box-shadow: var(--strahl-shadow-sm);
}
.md-typeset pre > code,
.md-typeset .highlight code {
  background: transparent;
  color: var(--strahl-ink);
  border: 0;
  box-shadow: none;
  border-radius: 0;
  font-size: 0.82em;
}
.md-typeset .highlight .md-clipboard { color: rgba(11, 27, 51, 0.40); }
.md-typeset .highlight .md-clipboard:hover { color: var(--strahl-primary); }

/* ── Tables ── */
.md-typeset table:not([class]) {
  border: 1px solid var(--strahl-line);
  border-radius: 12px;
  overflow: hidden;
  font-size: 0.78em;
}
.md-typeset table:not([class]) th {
  background: var(--strahl-soft);
  color: var(--strahl-soft-ink);
  font-family: var(--mono);
  font-size: 0.82em;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--strahl-line);
}
.md-typeset table:not([class]) td { border-color: var(--strahl-line); }
.md-typeset table:not([class]) tr:hover { background: rgba(37, 99, 235, 0.03); }

/* ── Admonitions / details (card style, primary accent) ── */
.md-typeset .admonition,
.md-typeset details {
  background: var(--strahl-surface);
  border: 1px solid var(--strahl-line);
  border-left: 3px solid var(--strahl-primary);
  border-radius: 14px;
  box-shadow: var(--strahl-shadow-sm);
  font-size: 0.76rem;
}
.md-typeset .admonition-title,
.md-typeset summary {
  background: var(--strahl-soft);
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* ── Buttons (pill, like the landing) ── */
.md-typeset .md-button {
  border-radius: 999px;
  border: 1px solid var(--strahl-line);
  font-family: var(--ui);
  font-weight: 500;
  color: var(--strahl-ink);
  transition: transform 0.15s, box-shadow 0.2s, background 0.2s;
}
.md-typeset .md-button:hover {
  transform: translateY(-2px);
  box-shadow: var(--strahl-shadow);
  border-color: var(--strahl-ink);
}
.md-typeset .md-button--primary {
  background: var(--strahl-primary);
  border-color: var(--strahl-primary);
  color: #fff;
}

/* ── Search ── */
.md-search__form {
  background: rgba(11, 27, 51, 0.06);
  border: 1px solid var(--strahl-line);
  border-radius: 999px;
}
.md-search__input { color: var(--strahl-ink); font-family: var(--ui); }
.md-search__input::placeholder { color: var(--strahl-muted); }
.md-search-result__article { background: var(--strahl-surface); }

/* ── mkdocstrings reference: symbol-type chips in brand colors ── */
.md-typeset .doc-symbol-class { color: var(--strahl-primary); }
.md-typeset .doc-symbol-function,
.md-typeset .doc-symbol-method { color: var(--strahl-soft-ink); }
.md-typeset .doc-symbol-attribute { color: var(--strahl-muted); }
.doc-heading code { background: transparent; color: var(--strahl-ink); }

/* ── Footer ── */
.md-footer-meta { background: var(--strahl-surface); border-top: 1px solid var(--strahl-line); }
.md-footer__link:hover { color: var(--strahl-primary); }

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--strahl-bg); }
::-webkit-scrollbar-thumb { background: rgba(11, 27, 51, 0.18); border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: rgba(11, 27, 51, 0.30); }
