/* ─── Google Fonts ─────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300..800;1,14..32,300..800&family=JetBrains+Mono:wght@400;500&display=swap');

/* ─── Indigo color tokens ───────────────────────────────────────────── */
:root {
  --indigo-50:  #eef2ff;
  --indigo-100: #e0e7ff;
  --indigo-200: #c7d2fe;
  --indigo-300: #a5b4fc;
  --indigo-400: #818cf8;
  --indigo-500: #6366f1;
  --indigo-600: #4f46e5;
  --indigo-700: #4338ca;
  --indigo-800: #3730a3;
  --indigo-900: #312e81;
  --slate-50:   #f8fafc;
  --slate-100:  #f1f5f9;
  --slate-200:  #e2e8f0;
  --slate-300:  #cbd5e1;
  --slate-500:  #64748b;
  --slate-600:  #475569;
  --slate-700:  #334155;
  --slate-800:  #1e293b;
  --slate-900:  #0f172a;
  --slate-950:  #020617;
}

/* ─── Light scheme ──────────────────────────────────────────────────── */
[data-md-color-scheme="default"] {
  --md-primary-fg-color:        var(--indigo-600);
  --md-primary-fg-color--light: var(--indigo-400);
  --md-primary-fg-color--dark:  var(--indigo-800);
  --md-accent-fg-color:         var(--indigo-500);
  --md-default-bg-color:        #ffffff;
  --md-default-fg-color:        var(--slate-800);
  --md-default-fg-color--light: var(--slate-500);
  --md-default-fg-color--lighter: var(--slate-300);
  --md-typeset-a-color:         var(--indigo-600);
  --md-code-bg-color:           var(--slate-50);
  --md-code-fg-color:           var(--slate-800);
  --md-sidebar-bg-color:        var(--slate-50);
  --md-footer-bg-color:         var(--slate-900);
}

/* ─── Dark scheme ───────────────────────────────────────────────────── */
[data-md-color-scheme="slate"] {
  --md-primary-fg-color:        var(--indigo-400);
  --md-primary-fg-color--light: var(--indigo-300);
  --md-primary-fg-color--dark:  var(--indigo-600);
  --md-accent-fg-color:         var(--indigo-400);
  --md-default-bg-color:        var(--slate-900);
  --md-default-fg-color:        #e2e8f0;
  --md-default-fg-color--light: #94a3b8;
  --md-default-fg-color--lighter: rgba(148, 163, 184, 0.15);
  --md-code-bg-color:           var(--slate-800);
  --md-code-fg-color:           #e2e8f0;
  --md-sidebar-bg-color:        var(--slate-950);
}

/* ─── Header ────────────────────────────────────────────────────────── */
[data-md-color-scheme="default"] .md-header {
  background-color: var(--indigo-600);
  box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.15);
}

[data-md-color-scheme="slate"] .md-header {
  background-color: var(--slate-950);
  border-bottom: 1px solid rgba(129, 140, 248, 0.15);
}

/* ─── Navigation tabs ───────────────────────────────────────────────── */
[data-md-color-scheme="default"] .md-tabs {
  background-color: var(--indigo-700);
}

[data-md-color-scheme="slate"] .md-tabs {
  background-color: var(--slate-900);
  border-bottom: 1px solid rgba(129, 140, 248, 0.1);
}

.md-tabs__link {
  font-weight: 500;
  opacity: 0.82;
  transition: opacity 0.15s;
}

.md-tabs__link--active,
.md-tabs__link:hover {
  opacity: 1;
}

/* ─── Sidebar ───────────────────────────────────────────────────────── */
[data-md-color-scheme="default"] .md-sidebar {
  background-color: var(--slate-50);
}

[data-md-color-scheme="default"] .md-sidebar--primary {
  border-right: 1px solid var(--slate-200);
}

[data-md-color-scheme="slate"] .md-sidebar {
  background-color: var(--slate-950);
}

[data-md-color-scheme="slate"] .md-sidebar--primary {
  border-right: 1px solid rgba(129, 140, 248, 0.1);
}

.md-nav__link--active {
  font-weight: 600;
}

/* ─── Typography ────────────────────────────────────────────────────── */
.md-typeset {
  font-size: 0.95rem;
  line-height: 1.7;
}

.md-typeset h1 {
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.2;
  margin-bottom: 0.5em;
}

.md-typeset h2 {
  font-weight: 600;
  letter-spacing: -0.01em;
  padding-bottom: 0.3em;
  border-bottom: 1px solid var(--md-default-fg-color--lighter);
  margin-top: 2em;
}

.md-typeset h3 {
  font-weight: 600;
}

/* ─── Code ──────────────────────────────────────────────────────────── */
.md-typeset code {
  font-size: 0.875em;
  border-radius: 4px;
  padding: 0.1em 0.35em;
}

[data-md-color-scheme="default"] .md-typeset :not(pre) > code {
  background-color: var(--indigo-50);
  color: var(--indigo-700);
}

.md-typeset pre {
  border-radius: 8px;
}

/* ─── Horizontal rule ───────────────────────────────────────────────── */
hr {
  border-top-color: var(--md-default-fg-color--lighter);
  margin: 2rem 0;
}

/* ─── Buttons ───────────────────────────────────────────────────────── */
.md-typeset .md-button {
  font-weight: 500;
  border-radius: 6px;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

/* ─── Admonitions ───────────────────────────────────────────────────── */
[data-md-color-scheme="default"] .md-typeset .admonition,
[data-md-color-scheme="default"] .md-typeset details {
  background-color: var(--indigo-50);
  border-left-color: var(--indigo-500);
}

[data-md-color-scheme="slate"] .md-typeset .admonition,
[data-md-color-scheme="slate"] .md-typeset details {
  border-left-color: var(--indigo-400);
}

/* ─── Cards ─────────────────────────────────────────────────────────── */
[data-md-color-scheme="default"] .md-typeset .grid.cards > :is(ul, ol) > li {
  border: 1px solid var(--slate-200);
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.06);
  transition: box-shadow 0.2s, border-color 0.2s;
}

[data-md-color-scheme="default"] .md-typeset .grid.cards > :is(ul, ol) > li:hover {
  border-color: var(--indigo-300);
  box-shadow: 0 4px 12px 0 rgb(79 70 229 / 0.1);
}

[data-md-color-scheme="slate"] .md-typeset .grid.cards > :is(ul, ol) > li {
  border: 1px solid rgba(129, 140, 248, 0.15);
  border-radius: 8px;
  transition: border-color 0.2s;
}

[data-md-color-scheme="slate"] .md-typeset .grid.cards > :is(ul, ol) > li:hover {
  border-color: rgba(129, 140, 248, 0.4);
}

/* ─── Tables ─────────────────────────────────────────────────────────── */
.md-typeset table:not([class]) th {
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

[data-md-color-scheme="default"] .md-typeset table:not([class]) th {
  background-color: var(--indigo-50);
  color: var(--indigo-700);
}

/* ─── Footer ────────────────────────────────────────────────────────── */
[data-md-color-scheme="default"] .md-footer {
  background-color: var(--slate-900);
}

/* ─── Scrollbar ──────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-thumb {
  background: var(--slate-300);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--indigo-300);
}
[data-md-color-scheme="slate"] ::-webkit-scrollbar-thumb {
  background: var(--slate-700);
}
[data-md-color-scheme="slate"] ::-webkit-scrollbar-thumb:hover {
  background: var(--indigo-400);
}
