/* ForestHub SDK - Custom Doxygen Theme
 * Overrides doxygen-awesome-css with ForestHub branding colors
 * from the agent-builder design system (Glass Forest theme).
 *
 * Primary:   #32A676 (Forest Green, HSL 158 53% 42%)
 * Accent:    #82E4F8 (Tech Cyan,    HSL 191 89% 74%)
 * Tertiary:  #A8E6B3 (Light Moss,   HSL 137 60% 78%)
 */

/* ===== Light Mode ===== */
html {
    --primary-color: #32A676;
    --primary-dark-color: #28856F;
    --primary-light-color: #5BBFA0;
    --on-primary-color: #ffffff;

    --link-color: var(--primary-color);

    --page-background-color: #fafcfb;
    --page-foreground-color: #1a2e28;
    --page-secondary-foreground-color: #4a6a5e;

    --separator-color: #d4e6dd;

    --side-nav-background: #f3f8f6;
    --side-nav-foreground: var(--page-foreground-color);

    --menu-focus-foreground: var(--on-primary-color);
    --menu-focus-background: var(--primary-color);
    --menu-selected-background: rgba(50, 166, 118, 0.08);

    --header-background: var(--page-background-color);
    --header-foreground: var(--page-foreground-color);

    --searchbar-background: var(--side-nav-background);

    --code-background: #f0f6f3;
    --code-foreground: var(--page-foreground-color);

    --fragment-background: #f4f9f7;
    --fragment-foreground: #1a2e28;
    --fragment-keyword: #9b59b6;
    --fragment-keywordtype: #7b6fad;
    --fragment-keywordflow: #d67c3b;
    --fragment-token: #32A676;
    --fragment-comment: #8a9e95;
    --fragment-link: #32A676;
    --fragment-preprocessor: #46aaa5;

    --tablehead-background: #edf4f0;
    --tablehead-foreground: var(--page-foreground-color);

    --note-color: #e0f5ee;
    --note-color-dark: #32A676;
    --note-color-darker: #1a5c44;
    --warning-color: #faf3d8;
    --warning-color-dark: #e6a817;
    --warning-color-darker: #5f4204;
    --todo-color: #e0f0fa;
    --todo-color-dark: #3498db;
    --todo-color-darker: #1a5276;
    --deprecated-color: #ecf0f3;
    --deprecated-color-dark: #5b6269;
    --deprecated-color-darker: #43454a;
    --bug-color: #f8d1cc;
    --bug-color-dark: #b61825;
    --bug-color-darker: #75070f;
    --invariant-color: #d8f1e3;
    --invariant-color-dark: #32A676;
    --invariant-color-darker: #1a5c44;

    --font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
    --font-family-monospace: "JetBrains Mono", ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace;

    --border-radius-large: 12px;
    --border-radius-small: 6px;
    --border-radius-medium: 8px;
}

/* ===== Dark Mode (OS preference) ===== */
@media (prefers-color-scheme: dark) {
    html:not(.light-mode) {
        --primary-color: #3fbf8a;
        --primary-dark-color: #7dd4b0;
        --primary-light-color: #32A676;

        --page-background-color: #161a1d;
        --page-foreground-color: #e0e8e4;
        --page-secondary-foreground-color: #8ea69c;

        --separator-color: #2a3530;

        --side-nav-background: #1c2226;
        --side-nav-foreground: var(--page-foreground-color);

        --menu-selected-background: rgba(63, 191, 138, 0.12);

        --code-background: #1e2529;
        --code-foreground: var(--page-foreground-color);

        --fragment-background: #1e2529;
        --fragment-foreground: #d2e0d9;
        --fragment-keyword: #cc99cd;
        --fragment-keywordtype: #ab99cd;
        --fragment-keywordflow: #e08000;
        --fragment-token: #7ec699;
        --fragment-comment: #6d8a7f;
        --fragment-link: #82E4F8;
        --fragment-preprocessor: #65cabe;
        --fragment-linenumber-color: #6d8a7f;
        --fragment-linenumber-background: #1a2025;
        --fragment-linenumber-border: #141a1d;

        --tablehead-background: #1e2529;

        --blockquote-background: #1a2025;
        --blockquote-foreground: #6d8a7f;

        --note-color: #14302a;
        --note-color-dark: #3fbf8a;
        --note-color-darker: #a8e6c8;
        --warning-color: #3b2e04;
        --warning-color-dark: #f1b602;
        --warning-color-darker: #ceb670;
        --todo-color: #152030;
        --todo-color-dark: #82E4F8;
        --todo-color-darker: #b3edfb;
        --deprecated-color: #252a30;
        --deprecated-color-dark: #738396;
        --deprecated-color-darker: #abb0bd;
        --bug-color: #2e1917;
        --bug-color-dark: #e05545;
        --bug-color-darker: #f5b1aa;
        --invariant-color: #1a3028;
        --invariant-color-dark: #3fbf8a;
        --invariant-color-darker: #a8e6c8;

        --box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.4);
    }
}

/* ===== Dark Mode (toggle) ===== */
html.dark-mode {
    --primary-color: #3fbf8a;
    --primary-dark-color: #7dd4b0;
    --primary-light-color: #32A676;

    --page-background-color: #161a1d;
    --page-foreground-color: #e0e8e4;
    --page-secondary-foreground-color: #8ea69c;

    --separator-color: #2a3530;

    --side-nav-background: #1c2226;
    --side-nav-foreground: var(--page-foreground-color);

    --menu-selected-background: rgba(63, 191, 138, 0.12);

    --code-background: #1e2529;
    --code-foreground: var(--page-foreground-color);

    --fragment-background: #1e2529;
    --fragment-foreground: #d2e0d9;
    --fragment-keyword: #cc99cd;
    --fragment-keywordtype: #ab99cd;
    --fragment-keywordflow: #e08000;
    --fragment-token: #7ec699;
    --fragment-comment: #6d8a7f;
    --fragment-link: #82E4F8;
    --fragment-preprocessor: #65cabe;
    --fragment-linenumber-color: #6d8a7f;
    --fragment-linenumber-background: #1a2025;
    --fragment-linenumber-border: #141a1d;

    --tablehead-background: #1e2529;

    --blockquote-background: #1a2025;
    --blockquote-foreground: #6d8a7f;

    --note-color: #14302a;
    --note-color-dark: #3fbf8a;
    --note-color-darker: #a8e6c8;
    --warning-color: #3b2e04;
    --warning-color-dark: #f1b602;
    --warning-color-darker: #ceb670;
    --todo-color: #152030;
    --todo-color-dark: #82E4F8;
    --todo-color-darker: #b3edfb;
    --deprecated-color: #252a30;
    --deprecated-color-dark: #738396;
    --deprecated-color-darker: #abb0bd;
    --bug-color: #2e1917;
    --bug-color-dark: #e05545;
    --bug-color-darker: #f5b1aa;
    --invariant-color: #1a3028;
    --invariant-color-dark: #3fbf8a;
    --invariant-color-darker: #a8e6c8;

    --box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.4);
}

/* ===== Global Enhancements ===== */

/* Smoother transitions */
#side-nav, #nav-tree, .contents, .header, #MSearchBox {
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Project title styling */
#projectname {
    font-weight: 700 !important;
    letter-spacing: -0.02em;
}

#projectbrief {
    opacity: 0.7;
    font-size: 0.85em !important;
}

/* Sidebar tree: active item highlight */
#nav-tree .selected {
    background: var(--menu-selected-background) !important;
}

/* Member items: subtler borders */
.memitem {
    border: 1px solid var(--separator-color) !important;
    border-radius: var(--border-radius-large) !important;
    box-shadow: var(--box-shadow) !important;
}

.memproto {
    border-radius: var(--border-radius-large) var(--border-radius-large) 0 0 !important;
}

/* Code blocks: tighter, more polished */
div.fragment {
    border-radius: var(--border-radius-medium) !important;
    border: 1px solid var(--separator-color) !important;
    padding: 14px 16px !important;
}

/* Table styling */
table.markdownTable,
table.fieldtable {
    border-radius: var(--border-radius-medium) !important;
    overflow: hidden;
}

/* Increase sidebar header height for title + brief + search + toggle */
html {
    --top-height: 145px !important;
}

/* Search box: make room for dark mode toggle (33px + gap) */
#MSearchBox {
    border-radius: 20px !important;
    border: 1px solid var(--separator-color) !important;
    width: calc(var(--side-nav-fixed-width) - 2 * var(--spacing-medium) - 44px) !important;
}

/* Space between search box and nav tree */
#nav-tree {
    padding-top: 20px !important;
}

#MSearchBox:focus-within {
    border-color: var(--primary-color) !important;
    box-shadow: 0 0 0 3px rgba(50, 166, 118, 0.15) !important;
}

/* Links: accent color on hover */
a:hover {
    color: var(--primary-light-color) !important;
}

/* Scroll-to-top and dark mode toggle button styling */
doxygen-awesome-dark-mode-toggle {
    margin: 0 4px;
}

/* Top navigation bar: clean border */
#top {
    border-bottom: 1px solid var(--separator-color) !important;
}

/* Sidebar: rely on doxygen-awesome default border */

/* Main page title (README) */
.PageDoc .title,
.contents .title {
    font-weight: 700 !important;
    letter-spacing: -0.02em;
}

/* Breadcrumbs */
.navpath ul {
    background: var(--side-nav-background) !important;
    border: 1px solid var(--separator-color) !important;
    border-radius: var(--border-radius-small) !important;
}

/* Badge-style for @since, @version, etc. */
dl.section dd {
    margin-left: 12px;
}

/* Footer */
.footer {
    opacity: 0.5;
    font-size: 0.8em;
}
