/* ==========================================================================
   bo-finance — Custom theme matching bolu.dev design language
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap');

/* --------------------------------------------------------------------------
   Light mode
   -------------------------------------------------------------------------- */
[data-md-color-scheme="default"] {
  --md-primary-fg-color: #1d4ed8;
  --md-primary-fg-color--light: #2563eb;
  --md-primary-fg-color--dark: #1e40af;
  --md-accent-fg-color: #4f46e5;
  --md-accent-fg-color--transparent: rgba(79, 70, 229, 0.1);

  --md-default-bg-color: #ffffff;
  --md-default-bg-color--light: #f8fafc;
  --md-default-fg-color: #1e293b;
  --md-default-fg-color--light: #475569;
  --md-default-fg-color--lighter: #94a3b8;
  --md-default-fg-color--lightest: rgba(30, 41, 59, 0.07);

  --md-typeset-a-color: #1d4ed8;
  --md-code-bg-color: #f1f5f9;
  --md-code-fg-color: #334155;
  --md-code-hl-color: rgba(37, 99, 235, 0.1);
  --md-admonition-bg-color: #f8fafc;

  --bof-border: #e2e8f0;
  --bof-surface: #f8fafc;
  --bof-glow: rgba(37, 99, 235, 0.04);
  --bof-header-bg: #1e293b;
  --bof-header-fg: #f1f5f9;
}

/* --------------------------------------------------------------------------
   Dark mode
   -------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] {
  --md-primary-fg-color: #60a5fa;
  --md-primary-fg-color--light: #93c5fd;
  --md-primary-fg-color--dark: #3b82f6;
  --md-accent-fg-color: #818cf8;
  --md-accent-fg-color--transparent: rgba(129, 140, 248, 0.1);

  --md-default-bg-color: #0f172a;
  --md-default-bg-color--light: #1e293b;
  --md-default-fg-color: #e2e8f0;
  --md-default-fg-color--light: #94a3b8;
  --md-default-fg-color--lighter: #64748b;
  --md-default-fg-color--lightest: rgba(226, 232, 240, 0.06);

  --md-typeset-a-color: #60a5fa;
  --md-code-bg-color: #1e293b;
  --md-code-fg-color: #e2e8f0;
  --md-code-hl-color: rgba(96, 165, 250, 0.1);
  --md-admonition-bg-color: #1e293b;

  --bof-border: #334155;
  --bof-surface: #1e293b;
  --bof-glow: rgba(96, 165, 250, 0.04);
  --bof-header-bg: #0f172a;
  --bof-header-fg: #e2e8f0;
}

/* --------------------------------------------------------------------------
   Typography
   -------------------------------------------------------------------------- */
:root {
  --md-text-font: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;
  --md-code-font: "JetBrains Mono", ui-monospace, "SF Mono", monospace;
}

.md-typeset {
  font-size: 0.85rem;
  line-height: 1.72;
  color: var(--md-default-fg-color);
}

.md-typeset h1 {
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--md-default-fg-color);
}

.md-typeset h2 {
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-top: 2.2em;
  padding-bottom: 0.3em;
  border-bottom: 1px solid var(--bof-border);
  color: var(--md-default-fg-color);
}

.md-typeset h3 {
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--md-default-fg-color);
}

/* Subtitle styling for italic lead-in */
.md-typeset > p:first-of-type > em:only-child {
  color: var(--md-default-fg-color--light);
  font-size: 1.08em;
}

.md-typeset strong {
  font-weight: 600;
  color: var(--md-default-fg-color);
}

/* --------------------------------------------------------------------------
   Header — dark bar in both modes for strong contrast
   -------------------------------------------------------------------------- */
.md-header {
  background: var(--bof-header-bg);
  color: var(--bof-header-fg);
  box-shadow: none;
}

.md-header__title {
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--bof-header-fg);
}

.md-header .md-header__button {
  color: var(--bof-header-fg);
}

.md-search__input {
  font-family: var(--md-text-font);
  font-size: 0.84rem;
}

[data-md-color-scheme="default"] .md-search__input {
  background: rgba(255, 255, 255, 0.12);
  color: var(--bof-header-fg);
}

[data-md-color-scheme="default"] .md-search__input::placeholder {
  color: rgba(241, 245, 249, 0.5);
}

/* --------------------------------------------------------------------------
   Navigation sidebar
   -------------------------------------------------------------------------- */
.md-nav__link {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--md-default-fg-color--light);
  transition: color 0.15s ease;
}

.md-nav__link:hover {
  color: var(--md-default-fg-color);
}

.md-nav__link--active {
  font-weight: 600;
  color: var(--md-primary-fg-color);
}

/* Section labels */
.md-nav--primary > .md-nav__list > .md-nav__item > .md-nav__link,
.md-nav__item--section > .md-nav__link {
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--md-default-fg-color);
}

/* --------------------------------------------------------------------------
   Links
   -------------------------------------------------------------------------- */
.md-typeset a {
  color: var(--md-typeset-a-color);
  text-decoration: none;
  transition: color 0.15s ease;
}

.md-typeset a:hover {
  color: var(--md-accent-fg-color);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Inline code
   -------------------------------------------------------------------------- */
.md-typeset code:not([class*="language-"]):not(.mermaid code) {
  padding: 0.15em 0.4em;
  font-size: 0.84em;
  font-weight: 500;
  border-radius: 4px;
  border: 1px solid var(--bof-border);
  background: var(--md-code-bg-color);
  color: var(--md-code-fg-color);
}

/* --------------------------------------------------------------------------
   Code blocks
   -------------------------------------------------------------------------- */
.md-typeset pre {
  border-radius: 8px;
  border: 1px solid var(--bof-border);
  overflow: hidden;
}

.md-typeset pre > code {
  font-size: 0.8rem;
  line-height: 1.6;
}

.md-clipboard {
  color: var(--md-default-fg-color--lighter);
  transition: color 0.15s ease;
}

.md-clipboard:hover {
  color: var(--md-primary-fg-color);
}

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

.md-typeset table:not([class]) th {
  background: var(--bof-surface);
  font-weight: 600;
  font-size: 0.76rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--md-default-fg-color--light);
  padding: 0.65em 1em;
  border-bottom: 2px solid var(--bof-border);
}

.md-typeset table:not([class]) td {
  padding: 0.55em 1em;
  border-bottom: 1px solid var(--bof-border);
  color: var(--md-default-fg-color);
}

.md-typeset table:not([class]) tr:last-child td {
  border-bottom: none;
}

.md-typeset table:not([class]) tbody tr:hover {
  background: var(--bof-glow);
}

/* --------------------------------------------------------------------------
   Admonitions
   -------------------------------------------------------------------------- */
.md-typeset .admonition,
.md-typeset details {
  border: 1px solid var(--bof-border);
  border-left: 3px solid;
  border-radius: 6px;
  background: var(--md-admonition-bg-color);
  font-size: 0.82rem;
}

.md-typeset .admonition-title,
.md-typeset summary {
  font-weight: 600;
  font-size: 0.8rem;
  border-bottom: 1px solid var(--bof-border);
}

/* --------------------------------------------------------------------------
   Mermaid diagrams
   -------------------------------------------------------------------------- */
.mermaid {
  margin: 1.5em 0;
  padding: 1.2em;
  background: var(--bof-surface);
  border: 1px solid var(--bof-border);
  border-radius: 8px;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.md-footer {
  border-top: 1px solid var(--bof-border);
}

/* --------------------------------------------------------------------------
   Content width
   -------------------------------------------------------------------------- */
.md-content__inner {
  max-width: 54rem;
}

/* --------------------------------------------------------------------------
   Scrollbars (webkit)
   -------------------------------------------------------------------------- */
.md-sidebar__scrollwrap::-webkit-scrollbar,
.md-typeset pre::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

.md-sidebar__scrollwrap::-webkit-scrollbar-thumb,
.md-typeset pre::-webkit-scrollbar-thumb {
  background: var(--md-default-fg-color--lightest);
  border-radius: 3px;
}

/* --------------------------------------------------------------------------
   Selection
   -------------------------------------------------------------------------- */
[data-md-color-scheme="default"] ::selection {
  background: rgba(29, 78, 216, 0.15);
}

[data-md-color-scheme="slate"] ::selection {
  background: rgba(96, 165, 250, 0.2);
}

/* --------------------------------------------------------------------------
   Smooth theme toggle
   -------------------------------------------------------------------------- */
body,
.md-header,
.md-footer,
.md-sidebar,
.md-typeset code,
.md-typeset pre,
.md-typeset table {
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
