/* Shared tokens follow design.md; mdBook keeps its explicit theme choice. */
@font-face {
    font-family: "IBM Plex Sans";
    src: url("/assets/fonts/ibm-plex-sans-latin-variable.woff2") format("woff2");
    font-weight: 400 600;
    font-display: swap;
}
@font-face {
    font-family: "Manrope";
    src: url("/assets/fonts/manrope-latin-variable.woff2") format("woff2");
    font-weight: 400 800;
    font-display: swap;
}
@font-face {
    font-family: "IBM Plex Mono";
    src: url("/assets/fonts/ibm-plex-mono-latin-400.woff2") format("woff2");
    font-weight: 400;
    font-display: swap;
}

:root {
    --sans: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
    --mono-font: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    --content-max-width: 850px;
}

.light, .rust, html:not(.js) {
    --bg: #F5F7FB;
    --fg: #142238;
    --muted: #526079;
    --line: #D3DBEA;
    --faint: #E8EDFF;
    --card: #ffffff;
    --accent: #304BCE;
    --accent-soft: #E8EDFF;
    --color-scheme: light;
}

.navy, .coal, .ayu {
    --bg: #101A2B;
    --fg: #EDF2FB;
    --muted: #B2BCD0;
    --line: #394963;
    --faint: #26365A;
    --card: #17243A;
    --accent: #A5B7FF;
    --accent-soft: #26365A;
    --color-scheme: dark;
}

/* Without JavaScript mdBook can't switch themes, so follow the system. */
@media (prefers-color-scheme: dark) {
    html:not(.js) {
        --bg: #101A2B;
        --fg: #EDF2FB;
        --muted: #B2BCD0;
        --line: #394963;
        --faint: #26365A;
        --card: #17243A;
        --accent: #A5B7FF;
        --accent-soft: #26365A;
        --color-scheme: dark;
    }
}

.light, .rust, html:not(.js), .navy, .coal, .ayu {
    --sidebar-bg: var(--card);
    --sidebar-fg: var(--muted);
    --sidebar-non-existant: var(--muted);
    --sidebar-active: var(--accent);
    --sidebar-spacer: var(--faint);
    --sidebar-header-border-color: var(--accent);
    --scrollbar: var(--line);
    --icons: var(--muted);
    --icons-hover: var(--fg);
    --links: var(--accent);
    --inline-code-color: var(--fg);
    --theme-popup-bg: var(--card);
    --theme-popup-border: var(--line);
    --theme-hover: var(--faint);
    --quote-bg: var(--card);
    --quote-border: var(--line);
    --table-border-color: var(--line);
    --table-header-bg: var(--faint);
    --table-alternate-bg: var(--card);
    --searchbar-border-color: var(--line);
    --searchbar-bg: var(--card);
    --searchbar-fg: var(--fg);
    --searchbar-shadow-color: var(--line);
    --searchresults-header-fg: var(--muted);
    --searchresults-border-color: var(--line);
    --searchresults-li-bg: var(--accent-soft);
    --search-mark-bg: var(--accent-soft);
    --footnote-highlight: var(--accent);
}

html {
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
}

.content h1, .content h2, .content h3 {
    font-family: "Manrope", var(--sans);
    letter-spacing: -0.02em;
    font-weight: 620;
}

.content a {
    text-decoration: underline;
    text-decoration-color: var(--line);
    text-underline-offset: 0.2em;
}

.content a:hover {
    text-decoration-color: currentColor;
}

.content :not(pre) > code {
    background: var(--faint);
    border-radius: 3px;
    padding: 0.1em 0.3em;
}

.menu-title {
    font-family: "Manrope", var(--sans);
    font-weight: 600;
    letter-spacing: -0.02em;
}

/* Notes for readers of docs/ on GitHub, such as docs/changelog.md's. */
.github-only {
    display: none;
}

:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
