/*
 * doxygen-material.css
 *
 * Material Design restyling for the Doxygen HTML output. It is attached
 * through the HTML_EXTRA_STYLESHEET tag and therefore loaded after the
 * generated doxygen.css, so every rule in this file wins the cascade.
 *
 * Doxygen 1.18+ drives its look with CSS custom properties, which makes the
 * restyle a pure palette/font re-mapping: the teal brand palette and the
 * Roboto font stack of the MkDocs site (see mkdocs.yml) are applied to the
 * light scheme, and the same brand colors on the site's "slate" neutrals
 * are applied to the dark scheme (Doxygen follows the system color scheme
 * automatically).
 *
 * Palette reference (teal brand palette, distinct from the upstream
 * documentation theme):
 *   primary        #0e6b64 (deep teal: bars, links, labels, icons)
 *   primary dark   #0a4f4a (visited links, table headers, dark header bg)
 *   primary light  #17857c (center glow, dark-scheme emphasis)
 *   accent         #17978a (light-scheme accent / external links)
 *   accent glow    #4fb3a5 (decorative glow)
 *   accent light   #6fd0c2 (dark-scheme accent / links)
 *   soft tints     #f0f8f6 #d9ece8 #b7dcd4 #92c6bc (50/100/200/300 tints)
 */

/* ------------------------------------------------------------------ */
/* Light scheme                                                        */
/* ------------------------------------------------------------------ */
html {
    /* page base */
    --page-background-color: #ffffff;
    --page-foreground-color: rgba(0, 0, 0, 0.87);
    --page-link-color: #0e6b64;
    --page-visited-link-color: #0a4f4a;
    --page-external-link-color: #17978a;

    /* index */
    --index-odd-item-bg-color: #f0f8f6;
    --index-even-item-bg-color: #ffffff;
    --index-header-color: #0a4f4a;
    --index-separator-color: #b7dcd4;

    /* header (top app bar) */
    --header-background-color: #ffffff;
    --header-separator-color: #d9ece8;
    --group-header-separator-color: #b7dcd4;
    --group-header-color: #0e6b64;
    --footer-foreground-color: #0e6b64;
    --citation-label-color: #0e6b64;
    --glow-color: #92c6bc;
    --title-background-color: #ffffff;
    --title-separator-color: #d9ece8;

    --blockquote-background-color: #f0f8f6;
    --blockquote-border-color: #b7dcd4;

    --scrollbar-thumb-color: #92c6bc;
    --scrollbar-background-color: #f0f8f6;

    /* icons */
    --icon-background-color: #0e6b64;
    --icon-foreground-color: #ffffff;
    --icon-folder-open-fill-color: #b7dcd4;
    --icon-folder-fill-color: #d9ece8;
    --icon-folder-border-color: #0e6b64;
    --icon-doc-fill-color: #d9ece8;
    --icon-doc-border-color: #0e6b64;

    /* brief member declaration list */
    --memdecl-background-color: #f0f8f6;
    --memdecl-foreground-color: rgba(0, 0, 0, 0.7);
    --memdecl-template-color: #0e6b64;
    --memdecl-border-color: #d9ece8;

    /* detailed member list */
    --memdef-border-color: #b7dcd4;
    --memdef-title-background-color: #d9ece8;
    --memdef-proto-background-color: #f0f8f6;
    --memdef-proto-text-color: #0a4f4a;
    --memdef-param-name-color: #4f736d;
    --memdef-template-color: #0e6b64;

    /* tables */
    --table-cell-border-color: #92c6bc;
    --table-header-background-color: #0e6b64;
    --table-header-foreground-color: #ffffff;

    /* labels */
    --label-background-color: #0e6b64;
    --label-left-top-border-color: #0a4f4a;
    --label-right-bottom-border-color: #92c6bc;
    --label-foreground-color: #ffffff;

    /* navigation bar / tree / menu */
    --nav-background-color: #f0f8f6;
    --nav-foreground-color: #0e6b64;
    --nav-border-color: #d9ece8;
    --nav-breadcrumb-separator-color: #b7dcd4;
    --nav-breadcrumb-active-bg: #d9ece8;
    --nav-breadcrumb-color: #0e6b64;
    --nav-splitbar-bg-color: #d9ece8;
    --nav-splitbar-handle-color: #92c6bc;
    --nav-text-normal-color: #0a4f4a;
    --nav-menu-button-color: #0e6b64;
    --nav-menu-background-color: #ffffff;
    --nav-menu-foreground-color: rgba(0, 0, 0, 0.7);
    --nav-menu-active-bg: #d9ece8;
    --nav-menu-active-color: #0e6b64;
    --nav-arrow-color: #b7dcd4;
    --nav-arrow-selected-color: #92c6bc;

    /* sync icon */
    --sync-icon-border-color: #d9ece8;
    --sync-icon-background-color: #f0f8f6;
    --sync-icon-selected-background-color: #d9ece8;
    --sync-icon-color: #b7dcd4;
    --sync-icon-selected-color: #0e6b64;

    /* table of contents */
    --toc-background-color: #f0f8f6;
    --toc-border-color: #d9ece8;
    --toc-header-color: #0e6b64;

    /* search field */
    --search-foreground-color: #909090;
    --search-active-color: rgba(0, 0, 0, 0.87);
    --search-box-border-color: #b7dcd4;
    --search-filter-highlight-bg-color: #0e6b64;
    --search-results-foreground-color: #0e6b64;

    /* code fragments */
    --fragment-foreground-color: rgba(0, 0, 0, 0.87);
    --fragment-background-color: #f0f8f6;
    --fragment-border-color: #b7dcd4;
    --fragment-lineno-background-color: #e6f4f1;
    --fragment-lineno-foreground-color: rgba(0, 0, 0, 0.54);
    --fragment-lineno-link-fg-color: #0e6b64;
    --fragment-lineno-link-bg-color: #d9ece8;
    --fragment-lineno-link-hover-fg-color: #0e6b64;
    --fragment-lineno-link-hover-bg-color: #b7dcd4;
    --fragment-copy-ok-color: #2e7d32;

    /* tooltips */
    --tooltip-foreground-color: rgba(0, 0, 0, 0.87);
    --tooltip-background-color: rgba(255, 255, 255, 0.95);
    --tooltip-arrow-background-color: #ffffff;
    --tooltip-border-color: rgba(209, 158, 138, 0.7);
    --tooltip-doc-color: #616161;
    --tooltip-declaration-color: #2e7d32;
    --tooltip-link-color: #0e6b64;

    /* fonts (same stack as the MkDocs site) */
    --font-family-normal: Roboto, system-ui, -apple-system, 'Segoe UI', Ubuntu, 'Noto Sans', sans-serif;
    --font-family-monospace: 'Roboto Mono', 'JetBrains Mono', Consolas, Monaco, monospace;
    --font-family-nav: Roboto, system-ui, sans-serif;
    --font-family-title: Roboto, system-ui, sans-serif;
    --font-family-toc: Roboto, system-ui, sans-serif;
    --font-family-search: Roboto, system-ui, sans-serif;
    --font-family-tooltip: Roboto, sans-serif;

/* ------------------------------------------------------------------ */
/* Dark scheme (the "slate" palette of the MkDocs site)                */
/* ------------------------------------------------------------------ */
@media (prefers-color-scheme: dark) {
    html:not(.dark-mode) {
        /* page base */
        --page-background-color: #1e2129;
        --page-foreground-color: rgba(255, 255, 255, 0.87);
        --page-link-color: #6fd0c2;
        --page-visited-link-color: #b8e0d8;
        --page-external-link-color: #92c6bc;

        /* index */
        --index-odd-item-bg-color: #262a35;
        --index-even-item-bg-color: #1e2129;
        --index-header-color: #b8e0d8;
        --index-separator-color: #3a4150;

        /* header (top app bar) */
        --header-background-color: #1a1d24;
        --header-separator-color: #2e3442;
        --group-header-separator-color: #3a4150;
        --group-header-color: #6fd0c2;
        --footer-foreground-color: #6fd0c2;
        --citation-label-color: #6fd0c2;
        --glow-color: #4fb3a5;
        --title-background-color: #1e2129;
        --title-separator-color: #2e3442;

        --blockquote-background-color: #262a35;
        --blockquote-border-color: #3a4150;

        --scrollbar-thumb-color: #4c5468;
        --scrollbar-background-color: #1e2129;

        /* icons */
        --icon-background-color: #0e6b64;
        --icon-foreground-color: #ffffff;
        --icon-folder-open-fill-color: #4c5468;
        --icon-folder-fill-color: #2e3442;
        --icon-folder-border-color: #6fd0c2;
        --icon-doc-fill-color: #2e3442;
        --icon-doc-border-color: #6fd0c2;

        /* brief member declaration list */
        --memdecl-background-color: #262a35;
        --memdecl-foreground-color: rgba(255, 255, 255, 0.7);
        --memdecl-template-color: #6fd0c2;
        --memdecl-border-color: #2e3442;

        /* detailed member list */
        --memdef-border-color: #3a4150;
        --memdef-title-background-color: #262a35;
        --memdef-proto-background-color: #1a1d24;
        --memdef-proto-text-color: #b8e0d8;
        --memdef-param-name-color: #a7e3d9;
        --memdef-template-color: #6fd0c2;

        /* tables */
        --table-cell-border-color: #4c5468;
        --table-header-background-color: #0a4f4a;
        --table-header-foreground-color: #ffffff;

        /* labels */
        --label-background-color: #0e6b64;
        --label-left-top-border-color: #0a4f4a;
        --label-right-bottom-border-color: #92c6bc;
        --label-foreground-color: #ffffff;

        /* navigation bar / tree / menu */
        --nav-background-color: #1a1d24;
        --nav-foreground-color: #6fd0c2;
        --nav-border-color: #2e3442;
        --nav-breadcrumb-separator-color: #3a4150;
        --nav-breadcrumb-active-bg: #262a35;
        --nav-breadcrumb-color: #6fd0c2;
        --nav-splitbar-bg-color: #262a35;
        --nav-splitbar-handle-color: #4c5468;
        --nav-text-normal-color: #b8e0d8;
        --nav-menu-button-color: #6fd0c2;
        --nav-menu-background-color: #1e2129;
        --nav-menu-foreground-color: rgba(255, 255, 255, 0.7);
        --nav-menu-active-bg: #262a35;
        --nav-menu-active-color: #6fd0c2;
        --nav-arrow-color: #3a4150;
        --nav-arrow-selected-color: #6fd0c2;

        /* sync icon */
        --sync-icon-border-color: #2e3442;
        --sync-icon-background-color: #1a1d24;
        --sync-icon-selected-background-color: #262a35;
        --sync-icon-color: #3a4150;
        --sync-icon-selected-color: #6fd0c2;

        /* table of contents */
        --toc-background-color: #1a1d24;
        --toc-border-color: #2e3442;
        --toc-header-color: #6fd0c2;

        /* search field */
        --search-foreground-color: #9aa3b5;
        --search-active-color: rgba(255, 255, 255, 0.87);
        --search-box-border-color: #3a4150;
        --search-filter-background-color: rgba(30, 33, 41, 0.85);
        --search-filter-foreground-color: rgba(255, 255, 255, 0.87);
        --search-filter-border-color: rgba(76, 84, 104, 0.6);
        --search-filter-highlight-bg-color: #0e6b64;
        --search-results-background-color: rgba(30, 33, 41, 0.95);
        --search-results-foreground-color: #6fd0c2;
        --search-results-border-color: rgba(76, 84, 104, 0.6);
        --search-close-icon-bg-color: #5c657a;

        /* code fragments */
        --fragment-foreground-color: rgba(255, 255, 255, 0.87);
        --fragment-background-color: #1a1d24;
        --fragment-border-color: #3a4150;
        --fragment-lineno-background-color: #262a35;
        --fragment-lineno-foreground-color: rgba(255, 255, 255, 0.54);
        --fragment-lineno-link-fg-color: #6fd0c2;
        --fragment-lineno-link-bg-color: #2e3442;
        --fragment-lineno-link-hover-fg-color: #6fd0c2;
        --fragment-lineno-link-hover-bg-color: #3a4150;
        --fragment-copy-ok-color: #4caf50;

        /* tooltips */
        --tooltip-foreground-color: rgba(255, 255, 255, 0.87);
        --tooltip-background-color: rgba(26, 29, 36, 0.95);
        --tooltip-arrow-background-color: #1a1d24;
        --tooltip-border-color: rgba(76, 84, 104, 0.7);
        --tooltip-doc-color: #b0bec5;
        --tooltip-declaration-color: #66bb6a;
        --tooltip-link-color: #6fd0c2;
        --tooltip-shadow: none;

        /* fonts (same stack as the MkDocs site) */
        --font-family-normal: Roboto, system-ui, -apple-system, 'Segoe UI', Ubuntu, 'Noto Sans', sans-serif;
        --font-family-monospace: 'Roboto Mono', 'JetBrains Mono', Consolas, Monaco, monospace;
        --font-family-nav: Roboto, system-ui, sans-serif;
        --font-family-title: Roboto, system-ui, sans-serif;
        --font-family-toc: Roboto, system-ui, sans-serif;
        --font-family-search: Roboto, system-ui, sans-serif;
        --font-family-tooltip: Roboto, sans-serif;
    }
}

/* ------------------------------------------------------------------ */
/* Small Material structural tweaks (both schemes)                     */
/* ------------------------------------------------------------------ */

/* elevation for the top app bar */
#top {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* medium-weight titles, like Material headlines */
#projectname {
    font-weight: 500;
}

#projectnumber {
    color: var(--memdecl-template-color);
}

h1.groupheader,
h2.groupheader,
h3.groupheader {
    font-weight: 500;
}

/* rounded search field and breadcrumb chip */
#MSearchField {
    border-radius: 4px;
}

#nav-path ul {
    border-radius: 4px;
}
}