
/* Globals */

:root {
    --sidebar-target-width: 300px;
    --sidebar-width: min(var(--sidebar-target-width), 80vw);
    --sidebar-resize-indicator-width: 8px;
    --sidebar-resize-indicator-space: 2px;
    --page-padding: 15px;
    --content-max-width: 750px;
    --menu-bar-height: 50px;
    --mono-font: "IBMPlexMono", monospace;
    --code-font-size: 0.875em; /* please adjust the ace font size accordingly in editor.js */
    --searchbar-margin-block-start: 5px;
    --menu-number-font: "IosevkaCustomLight", monospace;
    --sidebar-code-bg: var(--hljs-inline-bg);
    --sidebar-code-border: var(--hljs-inline-border);
    --sidebar-code-fg: var(--inline-code-color);

    /* Header border colors */
    --h1-border-color: #00ffff;
    --h2-border-color: #00ff7f;
    --h3-border-color: #ff1493;
    --h4-border-color: #ff69b4;
    --h5-border-color: #bd90f8;

    /* Code background */
    --code-bg: #f0f0f0;

    --hljs-comment-color: #3a5a3f;
    --hljs-variable-color: #00ffff;
    --hljs-number-color: #8af0b1;
    --hljs-string-color: #fdaef0;
    --hljs-title-color: #7acff7;
    --hljs-keyword-color: #00ced1;
    --hljs-name-color: #ff6b6b;
    --hljs-addition-color: #00ff7f;
    --hljs-addition-bg: #081a0f;
    --hljs-deletion-color: #dc143c;
    --hljs-deletion-bg: #1a0f10;
}

/* Themes */

.ayu {
    --bg: hsl(210, 25%, 8%);
    --fg: #c5c5c5;

    --sidebar-bg: #14191f;
    --sidebar-fg: #c8c9db;
    --sidebar-non-existant: #5c6773;
    --sidebar-active: #ffb454;
    --sidebar-spacer: #2d334f;

    --scrollbar: var(--sidebar-fg);

    --icons: #737480;
    --icons-hover: #b7b9cc;

    --links: #0096cf;

    --inline-code-color: #ffb454;

    --theme-popup-bg: #14191f;
    --theme-popup-border: #5c6773;
    --theme-hover: #191f26;

    --quote-bg: hsl(226, 15%, 17%);
    --quote-border: hsl(226, 15%, 22%);

    --warning-border: #ff8e00;

    --table-border-color: hsl(210, 25%, 13%);
    --table-header-bg: hsl(210, 25%, 28%);
    --table-alternate-bg: hsl(210, 25%, 11%);

    --searchbar-border-color: #848484;
    --searchbar-bg: #424242;
    --searchbar-fg: #fff;
    --searchbar-shadow-color: #d4c89f;
    --searchresults-header-fg: #666;
    --searchresults-border-color: #888;
    --searchresults-li-bg: #252932;
    --search-mark-bg: #e3b171;

    --color-scheme: dark;

    /* Same as `--icons` */
    --copy-button-filter: invert(45%) sepia(6%) saturate(621%) hue-rotate(198deg) brightness(99%) contrast(85%);
    /* Same as `--sidebar-active` */
    --copy-button-filter-hover: invert(68%) sepia(55%) saturate(531%) hue-rotate(341deg) brightness(104%) contrast(101%);

    --footnote-highlight: #2668a6;

    --overlay-bg: rgba(33, 40, 48, 0.4);

    --blockquote-note-color: #74b9ff;
    --blockquote-tip-color: #09ca09;
    --blockquote-important-color: #d3abff;
    --blockquote-warning-color: #f0b72f;
    --blockquote-caution-color: #f21424;

    --sidebar-header-border-color: #c18639;

    /* Syntax highlighting blocks */
    --hljs-bg: #1e232b;
    --hljs-border: #2d334f;
    --hljs-inline-bg: #1e232b;
    --hljs-inline-border: #3d435f;
    --hljs-fg: #c5c5c5;
}

.coal {
    --bg: hsl(200, 7%, 8%);
    --fg: #98a3ad;

    --sidebar-bg: #292c2f;
    --sidebar-fg: #a1adb8;
    --sidebar-non-existant: #505254;
    --sidebar-active: #3473ad;
    --sidebar-spacer: #393939;

    --scrollbar: var(--sidebar-fg);

    --icons: #43484d;
    --icons-hover: #b3c0cc;

    --links: #2b79a2;

    --inline-code-color: #c5c8c6;

    --theme-popup-bg: #141617;
    --theme-popup-border: #43484d;
    --theme-hover: #1f2124;

    --quote-bg: hsl(234, 21%, 18%);
    --quote-border: hsl(234, 21%, 23%);

    --warning-border: #ff8e00;

    --table-border-color: hsl(200, 7%, 13%);
    --table-header-bg: hsl(200, 7%, 28%);
    --table-alternate-bg: hsl(200, 7%, 11%);

    --searchbar-border-color: #aaa;
    --searchbar-bg: #b7b7b7;
    --searchbar-fg: #000;
    --searchbar-shadow-color: #aaa;
    --searchresults-header-fg: #666;
    --searchresults-border-color: #98a3ad;
    --searchresults-li-bg: #2b2b2f;
    --search-mark-bg: #355c7d;

    --color-scheme: dark;

    /* Same as `--icons` */
    --copy-button-filter: invert(26%) sepia(8%) saturate(575%) hue-rotate(169deg) brightness(87%) contrast(82%);
    /* Same as `--sidebar-active` */
    --copy-button-filter-hover: invert(36%) sepia(70%) saturate(503%) hue-rotate(167deg) brightness(98%) contrast(89%);

    --footnote-highlight: #4079ae;

    --overlay-bg: rgba(33, 40, 48, 0.4);

    --blockquote-note-color: #4493f8;
    --blockquote-tip-color: #08ae08;
    --blockquote-important-color: #ab7df8;
    --blockquote-warning-color: #d29922;
    --blockquote-caution-color: #d91b29;

    --sidebar-header-border-color: #3473ad;

    /* Syntax highlighting blocks */
    --hljs-bg: #1a1d20;
    --hljs-border: #2a2e33;
    --hljs-inline-bg: #1a1d20;
    --hljs-inline-border: #3a3e44;
    --hljs-fg: #c5c8c6;
}

.light, html:not(.js) {
    --bg: hsl(0, 0%, 100%);
    --fg: hsl(0, 0%, 0%);

    --sidebar-bg: #fafafa;
    --sidebar-fg: hsl(0, 0%, 0%);
    --sidebar-non-existant: #aaaaaa;
    --sidebar-active: #1f1fff;
    --sidebar-spacer: #f4f4f4;

    --scrollbar: #8F8F8F;

    --icons: #747474;
    --icons-hover: #000000;

    --links: #20609f;

    --inline-code-color: #301900;

    --theme-popup-bg: #fafafa;
    --theme-popup-border: #cccccc;
    --theme-hover: #e6e6e6;

    --quote-bg: hsl(197, 37%, 96%);
    --quote-border: hsl(197, 37%, 91%);

    --warning-border: #ff8e00;

    --table-border-color: hsl(0, 0%, 95%);
    --table-header-bg: hsl(0, 0%, 80%);
    --table-alternate-bg: hsl(0, 0%, 97%);

    --searchbar-border-color: #aaa;
    --searchbar-bg: #fafafa;
    --searchbar-fg: #000;
    --searchbar-shadow-color: #aaa;
    --searchresults-header-fg: #666;
    --searchresults-border-color: #888;
    --searchresults-li-bg: #e4f2fe;
    --search-mark-bg: #a2cff5;

    --color-scheme: light;

    /* Same as `--icons` */
    --copy-button-filter: invert(45.49%);
    /* Same as `--sidebar-active` */
    --copy-button-filter-hover: invert(14%) sepia(93%) saturate(4250%) hue-rotate(243deg) brightness(99%) contrast(130%);

    --footnote-highlight: #7e7eff;

    --overlay-bg: rgba(200, 200, 205, 0.4);

    --blockquote-note-color: #0969da;
    --blockquote-tip-color: #008000;
    --blockquote-important-color: #8250df;
    --blockquote-warning-color: #9a6700;
    --blockquote-caution-color: #b52731;

    --sidebar-header-border-color: #6e6edb;

    /* Syntax highlighting blocks */
    --hljs-bg: #f6f7f6;
    --hljs-border: #e0e0e0;
    --hljs-inline-bg: #f0f0f0;
    --hljs-inline-border: #d0d0d0;
    --hljs-fg: #000000;

    --hljs-comment-color: #6a9955;
    --hljs-variable-color: #001080;
    --hljs-number-color: #098658;
    --hljs-string-color: #a31515;
    --hljs-title-color: #0000ff;
    --hljs-keyword-color: #0000ff;
    --hljs-name-color: #9cdcfe;
    --hljs-addition-color: #008000;
    --hljs-addition-bg: #e6ffed;
    --hljs-deletion-color: #c00;
    --hljs-deletion-bg: #ffeef0;
}

.navy {
    --bg: hsl(226, 23%, 11%);
    --fg: #bcbdd0;

    --sidebar-bg: #282d3f;
    --sidebar-fg: #c8c9db;
    --sidebar-non-existant: #505274;
    --sidebar-active: #2b79a2;
    --sidebar-spacer: #2d334f;

    --scrollbar: var(--sidebar-fg);

    --icons: #737480;
    --icons-hover: #b7b9cc;

    --links: #2b79a2;

    --inline-code-color: #c5c8c6;

    --theme-popup-bg: #161923;
    --theme-popup-border: #737480;
    --theme-hover: #282e40;

    --quote-bg: hsl(226, 15%, 17%);
    --quote-border: hsl(226, 15%, 22%);

    --warning-border: #ff8e00;

    --table-border-color: hsl(226, 23%, 16%);
    --table-header-bg: hsl(226, 23%, 31%);
    --table-alternate-bg: hsl(226, 23%, 14%);

    --searchbar-border-color: #aaa;
    --searchbar-bg: #aeaec6;
    --searchbar-fg: #000;
    --searchbar-shadow-color: #aaa;
    --searchresults-header-fg: #5f5f71;
    --searchresults-border-color: #5c5c68;
    --searchresults-li-bg: #242430;
    --search-mark-bg: #a2cff5;

    --color-scheme: dark;

    /* Same as `--icons` */
    --copy-button-filter: invert(51%) sepia(10%) saturate(393%) hue-rotate(198deg) brightness(86%) contrast(87%);
    /* Same as `--sidebar-active` */
    --copy-button-filter-hover: invert(46%) sepia(20%) saturate(1537%) hue-rotate(156deg) brightness(85%) contrast(90%);

    --footnote-highlight: #4079ae;

    --overlay-bg: rgba(33, 40, 48, 0.4);

    --blockquote-note-color: #4493f8;
    --blockquote-tip-color: #09ca09;
    --blockquote-important-color: #ab7df8;
    --blockquote-warning-color: #d29922;
    --blockquote-caution-color: #f21424;

    --sidebar-header-border-color: #2f6ab5;

    /* Syntax highlighting blocks */
    --hljs-bg: #1a1f29;
    --hljs-border: #2a3040;
    --hljs-inline-bg: #1a1f29;
    --hljs-inline-border: #3a4050;
    --hljs-fg: #c5c8c6;
}

.rust {
    --bg: hsl(60, 9%, 87%);
    --fg: #262625;

    --sidebar-bg: #3b2e2a;
    --sidebar-fg: #c8c9db;
    --sidebar-non-existant: #505254;
    --sidebar-active: #e69f67;
    --sidebar-spacer: #45373a;

    --scrollbar: var(--sidebar-fg);

    --icons: #737480;
    --icons-hover: #262625;

    --links: #2b79a2;

    --inline-code-color: #4a4743;

    --theme-popup-bg: #e1e1db;
    --theme-popup-border: #b38f6b;
    --theme-hover: #99908a;

    --quote-bg: hsl(60, 5%, 75%);
    --quote-border: hsl(60, 5%, 70%);

    --warning-border: #ff8e00;

    --table-border-color: hsl(60, 9%, 82%);
    --table-header-bg: #b3a497;
    --table-alternate-bg: hsl(60, 9%, 84%);

    --searchbar-border-color: #aaa;
    --searchbar-bg: #fafafa;
    --searchbar-fg: #000;
    --searchbar-shadow-color: #aaa;
    --searchresults-header-fg: #666;
    --searchresults-border-color: #888;
    --searchresults-li-bg: #dec2a2;
    --search-mark-bg: #e69f67;

    /* Same as `--icons` */
    --copy-button-filter: invert(51%) sepia(10%) saturate(393%) hue-rotate(198deg) brightness(86%) contrast(87%);
    /* Same as `--sidebar-active` */
    --copy-button-filter-hover: invert(77%) sepia(16%) saturate(1798%) hue-rotate(328deg) brightness(98%) contrast(83%);

    --footnote-highlight: #d3a17a;

    --overlay-bg: rgba(150, 150, 150, 0.25);

    --blockquote-note-color: #023b95;
    --blockquote-tip-color: #007700;
    --blockquote-important-color: #8250df;
    --blockquote-warning-color: #603700;
    --blockquote-caution-color: #aa1721;

    --sidebar-header-border-color: #8c391f;

    /* Syntax highlighting blocks */
    --hljs-bg: #e8e4df;
    --hljs-border: #d0c8c0;
    --hljs-inline-bg: #e0dcd7;
    --hljs-inline-border: #c0b8b0;
    --hljs-fg: #262625;

    --hljs-comment-color: #6e6e50;
    --hljs-variable-color: #043863;
    --hljs-number-color: #2e5c1e;
    --hljs-string-color: #8f2626;
    --hljs-title-color: #1e4a8f;
    --hljs-keyword-color: #2e5c1e;
    --hljs-name-color: #4b69c6;
    --hljs-addition-color: #2e5c1e;
    --hljs-addition-bg: #d8e8d0;
    --hljs-deletion-color: #8f2626;
    --hljs-deletion-bg: #f0d8d8;

    --sidebar-code-fg: #4a4743;
    --sidebar-code-border: #4a4743;
}

.darkforest {
    /* Base Colors - Black background */
    --bg: #0a0a0a;
    --fg: #e0e0e0;

    /* Sidebar Colors */
    --sidebar-bg: #0a0a0a;
    --sidebar-fg: #dbdcf1;
    --sidebar-non-existant: #5d6c6e;
    --sidebar-active: #00ffff;
    --sidebar-spacer: #1a1a1a;
    --sidebar-separator: none;

    --scrollbar: var(--sidebar-fg);

    /* Icons */
    --icons: #50577b;
    --icons-hover: #ff69b4;

    /* Links */
    --links: #00ffff;
    --links-hover: #bd90f8;

    /* Inline Code */
    --inline-code-color: #57a2ce;

    /* Theme Popup */
    --theme-popup-bg: #0a0a0a;
    --theme-popup-border: #2a2a2a;
    --theme-hover: #1a1a1a;

    /* Blockquotes */
    --quote-bg: #051111;
    --quote-border: #361016;

    /* Warning Border */
    --warning-border: #ff4500;

    /* Tables - Deep Greens */
    --table-border-color: #1e4242; 
    --table-header-bg: #070935;
    --table-alternate-bg: none;

    /* Search Bar */
    --searchbar-border-color: #2a2a2a;
    --searchbar-bg: #0a0a0a;
    --searchbar-fg: #e0e0e0;
    --searchbar-shadow-color: #00ffff;
    --searchresults-header-fg: #888888;
    --searchresults-border-color: #3a3a3a;
    --searchresults-li-bg: #0f1a15;
    --search-mark-bg: #ff69b4;

    --color-scheme: dark;

    /* Copy Button Filters */
    --copy-button-filter: invert(65%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(50%);  /* Gray */
    --copy-button-filter-hover: invert(82%) sepia(84%) saturate(4585%) hue-rotate(300deg) brightness(101%) contrast(101%);  /* Hot Pink */

    --footnote-highlight: #00ced1;

    --overlay-bg: rgba(0, 20, 10, 0.4);

    /* Callout Colors */
    --blockquote-note-color: #00ffff;
    --blockquote-tip-color: #00ff7f;
    --blockquote-important-color: #ff1493;
    --blockquote-warning-color: #ff69b4;
    --blockquote-caution-color: #dc143c;

    --sidebar-header-border-color: #00ced1;

    /* Header border colors */
    --h1-border-color: #00ffff;
    --h2-border-color: #6a9eff;
    --h3-border-color: #c4003b;
    --h4-border-color: #ff69b4;
    --h5-border-color: #00ff7f;

    /* Navigation gradients */
    --nav-prev-gradient: linear-gradient(270deg,rgba(10, 10, 10, 0) 83%, rgba(38, 0, 16, 1) 98%);
    --nav-next-gradient: linear-gradient(90deg,rgba(10, 10, 10, 0) 37%, rgba(38, 0, 16, 1) 98%);

    /* Syntax highlighting blocks */
    --hljs-bg: #051313;
    --hljs-border: #41121c;
    --hljs-inline-bg: #0d1414;
    --hljs-inline-border: #41121c;
    --hljs-fg: #e0e0e0;

    --sidebar-code-bg: transparent;
    --sidebar-code-border: #5a5a66;
    --sidebar-code-fg: #dbdcf1;

}

@media (prefers-color-scheme: dark) {
    html:not(.js) {
        --bg: hsl(200, 7%, 8%);
        --fg: #98a3ad;

        --sidebar-bg: #292c2f;
        --sidebar-fg: #a1adb8;
        --sidebar-non-existant: #505254;
        --sidebar-active: #3473ad;
        --sidebar-spacer: #393939;

        --scrollbar: var(--sidebar-fg);

        --icons: #43484d;
        --icons-hover: #b3c0cc;

        --links: #2b79a2;

        --inline-code-color: #c5c8c6;

        --theme-popup-bg: #141617;
        --theme-popup-border: #43484d;
        --theme-hover: #1f2124;

        --quote-bg: hsl(234, 21%, 18%);
        --quote-border: hsl(234, 21%, 23%);

        --warning-border: #ff8e00;

        --table-border-color: hsl(200, 7%, 13%);
        --table-header-bg: hsl(200, 7%, 28%);
        --table-alternate-bg: hsl(200, 7%, 11%);

        --searchbar-border-color: #aaa;
        --searchbar-bg: #b7b7b7;
        --searchbar-fg: #000;
        --searchbar-shadow-color: #aaa;
        --searchresults-header-fg: #666;
        --searchresults-border-color: #98a3ad;
        --searchresults-li-bg: #2b2b2f;
        --search-mark-bg: #355c7d;

        --color-scheme: dark;

        /* Same as `--icons` */
        --copy-button-filter: invert(26%) sepia(8%) saturate(575%) hue-rotate(169deg) brightness(87%) contrast(82%);
        /* Same as `--sidebar-active` */
        --copy-button-filter-hover: invert(36%) sepia(70%) saturate(503%) hue-rotate(167deg) brightness(98%) contrast(89%);

        --footnote-highlight: #4079ae;

        --overlay-bg: rgba(33, 40, 48, 0.4);

        --blockquote-note-color: #4493f8;
        --blockquote-tip-color: #08ae08;
        --blockquote-important-color: #ab7df8;
        --blockquote-warning-color: #d29922;
        --blockquote-caution-color: #d91b29;

        --sidebar-header-border-color: #3473ad;

        /* Syntax highlighting blocks */
        --hljs-bg: #1a1d20;
        --hljs-border: #2a2e33;
        --hljs-inline-bg: #1a1d20;
        --hljs-inline-border: #3a3e44;
        --hljs-fg: #c5c8c6;
    }
}
