/* SPDX-FileCopyrightText: 2026 Mattia Egloff <mattia.egloff@pm.me> */
/* SPDX-License-Identifier: GPL-3.0-or-later */

/* Vauchi theme overrides for mdBook — generated from themes/themes.json */

/* mdBook built-in themes: map to Vauchi defaults */
.coal {
    --bg: #1a1a2e;
    --fg: #eeeeee;
    --sidebar-bg: #16213e;
    --sidebar-fg: #eeeeee;
    --sidebar-non-existant: #a0a0a0;
    --sidebar-active: #4fc3f7;
    --links: #4fc3f7;
    --inline-code-color: #f44336;
    --theme-popup-bg: #0f3460;
    --theme-popup-border: #333333;
    --quote-bg: #0f3460;
    --quote-border: #333333;
    --table-border-color: #333333;
    --table-header-bg: #0f3460;
    --table-alternate-bg: #16213e;
    --searchbar-border-color: #333333;
    --searchbar-bg: #0f3460;
    --searchbar-fg: #eeeeee;
    --searchresults-header-fg: #a0a0a0;
    --searchresults-border-color: #333333;
    --icons: #a0a0a0;
    --icons-hover: #eeeeee;
}
.navy {
    --bg: #1a1a2e;
    --fg: #eeeeee;
    --sidebar-bg: #16213e;
    --sidebar-fg: #eeeeee;
    --sidebar-non-existant: #a0a0a0;
    --sidebar-active: #4fc3f7;
    --links: #4fc3f7;
    --inline-code-color: #f44336;
    --theme-popup-bg: #0f3460;
    --theme-popup-border: #333333;
    --quote-bg: #0f3460;
    --quote-border: #333333;
    --table-border-color: #333333;
    --table-header-bg: #0f3460;
    --table-alternate-bg: #16213e;
    --searchbar-border-color: #333333;
    --searchbar-bg: #0f3460;
    --searchbar-fg: #eeeeee;
    --searchresults-header-fg: #a0a0a0;
    --searchresults-border-color: #333333;
    --icons: #a0a0a0;
    --icons-hover: #eeeeee;
}
.ayu {
    --bg: #1e1e2e;
    --fg: #cdd6f4;
    --sidebar-bg: #181825;
    --sidebar-fg: #cdd6f4;
    --sidebar-non-existant: #a6adc8;
    --sidebar-active: #89b4fa;
    --links: #89b4fa;
    --inline-code-color: #f38ba8;
    --theme-popup-bg: #313244;
    --theme-popup-border: #45475a;
    --quote-bg: #313244;
    --quote-border: #45475a;
    --table-border-color: #45475a;
    --table-header-bg: #313244;
    --table-alternate-bg: #181825;
    --searchbar-border-color: #45475a;
    --searchbar-bg: #313244;
    --searchbar-fg: #cdd6f4;
    --searchresults-header-fg: #a6adc8;
    --searchresults-border-color: #45475a;
    --icons: #a6adc8;
    --icons-hover: #cdd6f4;
}
.light {
    --bg: #ffffff;
    --fg: #212121;
    --sidebar-bg: #f5f5f5;
    --sidebar-fg: #212121;
    --sidebar-non-existant: #757575;
    --sidebar-active: #1976d2;
    --links: #1976d2;
    --inline-code-color: #d32f2f;
    --theme-popup-bg: #e0e0e0;
    --theme-popup-border: #e0e0e0;
    --quote-bg: #e0e0e0;
    --quote-border: #e0e0e0;
    --table-border-color: #e0e0e0;
    --table-header-bg: #e0e0e0;
    --table-alternate-bg: #f5f5f5;
    --searchbar-border-color: #e0e0e0;
    --searchbar-bg: #e0e0e0;
    --searchbar-fg: #212121;
    --searchresults-header-fg: #757575;
    --searchresults-border-color: #e0e0e0;
    --icons: #757575;
    --icons-hover: #212121;
}
.rust {
    --bg: #ffffff;
    --fg: #212121;
    --sidebar-bg: #f5f5f5;
    --sidebar-fg: #212121;
    --sidebar-non-existant: #757575;
    --sidebar-active: #1976d2;
    --links: #1976d2;
    --inline-code-color: #d32f2f;
    --theme-popup-bg: #e0e0e0;
    --theme-popup-border: #e0e0e0;
    --quote-bg: #e0e0e0;
    --quote-border: #e0e0e0;
    --table-border-color: #e0e0e0;
    --table-header-bg: #e0e0e0;
    --table-alternate-bg: #f5f5f5;
    --searchbar-border-color: #e0e0e0;
    --searchbar-bg: #e0e0e0;
    --searchbar-fg: #212121;
    --searchresults-header-fg: #757575;
    --searchresults-border-color: #e0e0e0;
    --icons: #757575;
    --icons-hover: #212121;
}

/* All Vauchi themes via [data-vauchi-theme] */
[data-vauchi-theme="default-dark"] {
    --bg: #1a1a2e;
    --fg: #eeeeee;
    --sidebar-bg: #16213e;
    --sidebar-fg: #eeeeee;
    --sidebar-non-existant: #a0a0a0;
    --sidebar-active: #4fc3f7;
    --links: #4fc3f7;
    --inline-code-color: #f44336;
    --theme-popup-bg: #0f3460;
    --theme-popup-border: #333333;
    --quote-bg: #0f3460;
    --quote-border: #333333;
    --table-border-color: #333333;
    --table-header-bg: #0f3460;
    --table-alternate-bg: #16213e;
    --searchbar-border-color: #333333;
    --searchbar-bg: #0f3460;
    --searchbar-fg: #eeeeee;
    --searchresults-header-fg: #a0a0a0;
    --searchresults-border-color: #333333;
    --icons: #a0a0a0;
    --icons-hover: #eeeeee;
}
[data-vauchi-theme="default-light"] {
    --bg: #ffffff;
    --fg: #212121;
    --sidebar-bg: #f5f5f5;
    --sidebar-fg: #212121;
    --sidebar-non-existant: #757575;
    --sidebar-active: #1976d2;
    --links: #1976d2;
    --inline-code-color: #d32f2f;
    --theme-popup-bg: #e0e0e0;
    --theme-popup-border: #e0e0e0;
    --quote-bg: #e0e0e0;
    --quote-border: #e0e0e0;
    --table-border-color: #e0e0e0;
    --table-header-bg: #e0e0e0;
    --table-alternate-bg: #f5f5f5;
    --searchbar-border-color: #e0e0e0;
    --searchbar-bg: #e0e0e0;
    --searchbar-fg: #212121;
    --searchresults-header-fg: #757575;
    --searchresults-border-color: #e0e0e0;
    --icons: #757575;
    --icons-hover: #212121;
}
[data-vauchi-theme="catppuccin-mocha"] {
    --bg: #1e1e2e;
    --fg: #cdd6f4;
    --sidebar-bg: #181825;
    --sidebar-fg: #cdd6f4;
    --sidebar-non-existant: #a6adc8;
    --sidebar-active: #89b4fa;
    --links: #89b4fa;
    --inline-code-color: #f38ba8;
    --theme-popup-bg: #313244;
    --theme-popup-border: #45475a;
    --quote-bg: #313244;
    --quote-border: #45475a;
    --table-border-color: #45475a;
    --table-header-bg: #313244;
    --table-alternate-bg: #181825;
    --searchbar-border-color: #45475a;
    --searchbar-bg: #313244;
    --searchbar-fg: #cdd6f4;
    --searchresults-header-fg: #a6adc8;
    --searchresults-border-color: #45475a;
    --icons: #a6adc8;
    --icons-hover: #cdd6f4;
}
[data-vauchi-theme="catppuccin-latte"] {
    --bg: #eff1f5;
    --fg: #4c4f69;
    --sidebar-bg: #e6e9ef;
    --sidebar-fg: #4c4f69;
    --sidebar-non-existant: #6a6d82;
    --sidebar-active: #1e66f5;
    --links: #1e66f5;
    --inline-code-color: #d20f39;
    --theme-popup-bg: #ccd0da;
    --theme-popup-border: #9ca0b0;
    --quote-bg: #ccd0da;
    --quote-border: #9ca0b0;
    --table-border-color: #9ca0b0;
    --table-header-bg: #ccd0da;
    --table-alternate-bg: #e6e9ef;
    --searchbar-border-color: #9ca0b0;
    --searchbar-bg: #ccd0da;
    --searchbar-fg: #4c4f69;
    --searchresults-header-fg: #6a6d82;
    --searchresults-border-color: #9ca0b0;
    --icons: #6a6d82;
    --icons-hover: #4c4f69;
}
[data-vauchi-theme="catppuccin-frappe"] {
    --bg: #303446;
    --fg: #c6d0f5;
    --sidebar-bg: #292c3c;
    --sidebar-fg: #c6d0f5;
    --sidebar-non-existant: #a5adce;
    --sidebar-active: #8caaee;
    --links: #8caaee;
    --inline-code-color: #e78284;
    --theme-popup-bg: #414559;
    --theme-popup-border: #51576d;
    --quote-bg: #414559;
    --quote-border: #51576d;
    --table-border-color: #51576d;
    --table-header-bg: #414559;
    --table-alternate-bg: #292c3c;
    --searchbar-border-color: #51576d;
    --searchbar-bg: #414559;
    --searchbar-fg: #c6d0f5;
    --searchresults-header-fg: #a5adce;
    --searchresults-border-color: #51576d;
    --icons: #a5adce;
    --icons-hover: #c6d0f5;
}
[data-vauchi-theme="catppuccin-macchiato"] {
    --bg: #24273a;
    --fg: #cad3f5;
    --sidebar-bg: #1e2030;
    --sidebar-fg: #cad3f5;
    --sidebar-non-existant: #a5adcb;
    --sidebar-active: #8aadf4;
    --links: #8aadf4;
    --inline-code-color: #ed8796;
    --theme-popup-bg: #363a4f;
    --theme-popup-border: #494d64;
    --quote-bg: #363a4f;
    --quote-border: #494d64;
    --table-border-color: #494d64;
    --table-header-bg: #363a4f;
    --table-alternate-bg: #1e2030;
    --searchbar-border-color: #494d64;
    --searchbar-bg: #363a4f;
    --searchbar-fg: #cad3f5;
    --searchresults-header-fg: #a5adcb;
    --searchresults-border-color: #494d64;
    --icons: #a5adcb;
    --icons-hover: #cad3f5;
}
[data-vauchi-theme="dracula"] {
    --bg: #282a36;
    --fg: #f8f8f2;
    --sidebar-bg: #21222c;
    --sidebar-fg: #f8f8f2;
    --sidebar-non-existant: #8390b7;
    --sidebar-active: #bd93f9;
    --links: #bd93f9;
    --inline-code-color: #ff5555;
    --theme-popup-bg: #44475a;
    --theme-popup-border: #44475a;
    --quote-bg: #44475a;
    --quote-border: #44475a;
    --table-border-color: #44475a;
    --table-header-bg: #44475a;
    --table-alternate-bg: #21222c;
    --searchbar-border-color: #44475a;
    --searchbar-bg: #44475a;
    --searchbar-fg: #f8f8f2;
    --searchresults-header-fg: #8390b7;
    --searchresults-border-color: #44475a;
    --icons: #8390b7;
    --icons-hover: #f8f8f2;
}
[data-vauchi-theme="nord"] {
    --bg: #2e3440;
    --fg: #eceff4;
    --sidebar-bg: #3b4252;
    --sidebar-fg: #eceff4;
    --sidebar-non-existant: #d8dee9;
    --sidebar-active: #88c0d0;
    --links: #88c0d0;
    --inline-code-color: #bf616a;
    --theme-popup-bg: #434c5e;
    --theme-popup-border: #4c566a;
    --quote-bg: #434c5e;
    --quote-border: #4c566a;
    --table-border-color: #4c566a;
    --table-header-bg: #434c5e;
    --table-alternate-bg: #3b4252;
    --searchbar-border-color: #4c566a;
    --searchbar-bg: #434c5e;
    --searchbar-fg: #eceff4;
    --searchresults-header-fg: #d8dee9;
    --searchresults-border-color: #4c566a;
    --icons: #d8dee9;
    --icons-hover: #eceff4;
}
[data-vauchi-theme="solarized-dark"] {
    --bg: #002b36;
    --fg: #839496;
    --sidebar-bg: #073642;
    --sidebar-fg: #839496;
    --sidebar-non-existant: #7a9199;
    --sidebar-active: #268bd2;
    --links: #268bd2;
    --inline-code-color: #dc322f;
    --theme-popup-bg: #586e75;
    --theme-popup-border: #073642;
    --quote-bg: #586e75;
    --quote-border: #073642;
    --table-border-color: #073642;
    --table-header-bg: #586e75;
    --table-alternate-bg: #073642;
    --searchbar-border-color: #073642;
    --searchbar-bg: #586e75;
    --searchbar-fg: #839496;
    --searchresults-header-fg: #7a9199;
    --searchresults-border-color: #073642;
    --icons: #7a9199;
    --icons-hover: #839496;
}
[data-vauchi-theme="solarized-light"] {
    --bg: #fdf6e3;
    --fg: #586e75;
    --sidebar-bg: #eee8d5;
    --sidebar-fg: #586e75;
    --sidebar-non-existant: #60747c;
    --sidebar-active: #268bd2;
    --links: #268bd2;
    --inline-code-color: #dc322f;
    --theme-popup-bg: #93a1a1;
    --theme-popup-border: #eee8d5;
    --quote-bg: #93a1a1;
    --quote-border: #eee8d5;
    --table-border-color: #eee8d5;
    --table-header-bg: #93a1a1;
    --table-alternate-bg: #eee8d5;
    --searchbar-border-color: #eee8d5;
    --searchbar-bg: #93a1a1;
    --searchbar-fg: #586e75;
    --searchresults-header-fg: #60747c;
    --searchresults-border-color: #eee8d5;
    --icons: #60747c;
    --icons-hover: #586e75;
}
[data-vauchi-theme="gruvbox-dark"] {
    --bg: #282828;
    --fg: #ebdbb2;
    --sidebar-bg: #3c3836;
    --sidebar-fg: #ebdbb2;
    --sidebar-non-existant: #a89984;
    --sidebar-active: #83a598;
    --links: #83a598;
    --inline-code-color: #fb4934;
    --theme-popup-bg: #504945;
    --theme-popup-border: #504945;
    --quote-bg: #504945;
    --quote-border: #504945;
    --table-border-color: #504945;
    --table-header-bg: #504945;
    --table-alternate-bg: #3c3836;
    --searchbar-border-color: #504945;
    --searchbar-bg: #504945;
    --searchbar-fg: #ebdbb2;
    --searchresults-header-fg: #a89984;
    --searchresults-border-color: #504945;
    --icons: #a89984;
    --icons-hover: #ebdbb2;
}
[data-vauchi-theme="gruvbox-light"] {
    --bg: #fbf1c7;
    --fg: #3c3836;
    --sidebar-bg: #ebdbb2;
    --sidebar-fg: #3c3836;
    --sidebar-non-existant: #665c54;
    --sidebar-active: #458588;
    --links: #458588;
    --inline-code-color: #cc241d;
    --theme-popup-bg: #d5c4a1;
    --theme-popup-border: #d5c4a1;
    --quote-bg: #d5c4a1;
    --quote-border: #d5c4a1;
    --table-border-color: #d5c4a1;
    --table-header-bg: #d5c4a1;
    --table-alternate-bg: #ebdbb2;
    --searchbar-border-color: #d5c4a1;
    --searchbar-bg: #d5c4a1;
    --searchbar-fg: #3c3836;
    --searchresults-header-fg: #665c54;
    --searchresults-border-color: #d5c4a1;
    --icons: #665c54;
    --icons-hover: #3c3836;
}
[data-vauchi-theme="high-contrast"] {
    --bg: #000000;
    --fg: #ffffff;
    --sidebar-bg: #0a0a0a;
    --sidebar-fg: #ffffff;
    --sidebar-non-existant: #e0e0e0;
    --sidebar-active: #ffff00;
    --links: #ffff00;
    --inline-code-color: #ff0000;
    --theme-popup-bg: #1a1a1a;
    --theme-popup-border: #ffffff;
    --quote-bg: #1a1a1a;
    --quote-border: #ffffff;
    --table-border-color: #ffffff;
    --table-header-bg: #1a1a1a;
    --table-alternate-bg: #0a0a0a;
    --searchbar-border-color: #ffffff;
    --searchbar-bg: #1a1a1a;
    --searchbar-fg: #ffffff;
    --searchresults-header-fg: #e0e0e0;
    --searchresults-border-color: #ffffff;
    --icons: #e0e0e0;
    --icons-hover: #ffffff;
}
[data-vauchi-theme="high-contrast-light"] {
    --bg: #ffffff;
    --fg: #000000;
    --sidebar-bg: #f0f0f0;
    --sidebar-fg: #000000;
    --sidebar-non-existant: #1a1a1a;
    --sidebar-active: #0000cc;
    --links: #0000cc;
    --inline-code-color: #cc0000;
    --theme-popup-bg: #e0e0e0;
    --theme-popup-border: #000000;
    --quote-bg: #e0e0e0;
    --quote-border: #000000;
    --table-border-color: #000000;
    --table-header-bg: #e0e0e0;
    --table-alternate-bg: #f0f0f0;
    --searchbar-border-color: #000000;
    --searchbar-bg: #e0e0e0;
    --searchbar-fg: #000000;
    --searchresults-header-fg: #1a1a1a;
    --searchresults-border-color: #000000;
    --icons: #1a1a1a;
    --icons-hover: #000000;
}

/* Typography */
code {
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
    font-size: 0.9em;
}

.content h1,
.content h2 {
    border-bottom: 1px solid var(--table-border-color);
    padding-bottom: 0.3em;
}

/* Admonish tweaks */
.admonition {
    border-radius: 8px;
}

.sidebar .sidebar-scrollbox {
    padding-top: 1em;
}

/* GitLab icon in header (next to GitHub) */
.gitlab-icon {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    color: var(--icons);
    text-decoration: none;
}
.gitlab-icon:hover {
    color: var(--icons-hover);
}
.gitlab-icon svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

/* Light/dark quick toggle */
#vauchi-mode-toggle {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 18px;
    padding: 4px 8px;
    margin-right: 4px;
    color: var(--icons);
    line-height: 1;
}
#vauchi-mode-toggle:hover {
    color: var(--icons-hover);
}

/* Links must be distinguishable by more than just color (WCAG 1.4.1) */
.content a {
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--links) 40%, transparent);
    text-underline-offset: 2px;
}
.content a:hover {
    text-decoration-color: var(--links);
}

/* Fix font-display for mdBook's bundled Open Sans (eliminates FOIT) */
@font-face { font-family: 'Open Sans'; font-display: swap; src: local('Open Sans'); }
@font-face { font-family: 'Source Code Pro'; font-display: swap; src: local('Source Code Pro'); }
