custom.css

/* ================================================== */
/*                  ENHANCED DARK MODE CSS           */
/*                for Sphinx RTD Theme               */
/* ================================================== */

/* === LAYOUT OVERRIDES === */
.wy-nav-content {
    max-width: 100% !important;
}

/* === DARK MODE COLOR SCHEME === */
:root {
    /* Define color variables for consistency */
    --dark-bg: #1c1c1c;
    --dark-bg-alt: #282828;
    --dark-bg-hover: #333333;
    --light-text: #e0e0e0;
    --light-text-alt: #c0c0c0;
    --accent-blue: #40B4E8;
    --link-blue: #0567b8;
    --highlight-yellow: #f1c40f;
    --border-dark: #555555;
    --table-odd: #2e2e2e;
    --table-even: #262626;
}

/* === BODY AND MAIN CONTENT === */
body {
    background-color: var(--dark-bg);
    color: var(--light-text);
}

.wy-nav-content,
.wy-nav-content-wrap {
    background-color: var(--dark-bg);
}

/* === SIDEBAR AND NAVIGATION === */
.wy-side-nav-search, 
.wy-nav-top {
    background: var(--dark-bg-alt);
    border-color: var(--border-dark);
}

/* Navigation menu styling */
.wy-menu-vertical a {
    color: var(--light-text);
}

.wy-menu-vertical li.current > a {
    background: var(--dark-bg-hover);
}

.wy-menu-vertical li.toctree-l1.current > a {
    color: var(--accent-blue);
}

/* Simple, effective navigation hover for all levels */
.wy-menu-vertical a:hover {
    color: white;
    background-color: #404040;
}

/* Specific hover styles for nested navigation levels - maximum specificity */
.wy-nav-side .wy-menu-vertical li.toctree-l1 a:hover,
.wy-nav-side .wy-menu-vertical li.toctree-l2 a:hover,
.wy-nav-side .wy-menu-vertical li.toctree-l3 a:hover,
.wy-nav-side .wy-menu-vertical li.toctree-l4 a:hover {
    color: white !important;
    background-color: #404040 !important;
}

/* Ensure expanded sections also get hover effect */
.wy-nav-side .wy-menu-vertical li.current ul li a:hover {
    color: white !important;
    background-color: #404040 !important;
}

/* Additional fallback for any nested navigation */
.wy-nav-side .wy-menu-vertical ul li a:hover {
    color: white !important;
    background-color: #404040 !important;
}

/* === LINKS === */
/* General links - consolidated from duplicates */
a, 
a:link, 
a:visited {
    color: var(--accent-blue);
}

a:hover {
    color: #ffffff;
}

/* === CODE BLOCKS === */
/* Inline code */
code.docutils.literal {
    color: var(--light-text);
    background-color: var(--dark-bg-hover);
    border: 1px solid var(--border-dark);
    padding: 2px 4px;
    border-radius: 3px;
}

/* Code blocks with syntax highlighting */
div.highlight pre {
    background-color: var(--dark-bg-alt) !important;
    color: var(--light-text);
    border: 1px solid var(--border-dark);
}

/* === TABLES === */
/* Table headers */
table.docutils th {
    background-color: var(--dark-bg) !important;
    color: #ffffff !important;
    border-color: var(--border-dark) !important;
}

/* Table cells - inherit from rows */
table.docutils td {
    background-color: inherit !important;
    color: inherit !important;
    border-color: var(--border-dark) !important;
}

/* Table rows - improved contrast */
.row-odd {
    background: var(--table-odd) !important;
    color: var(--light-text) !important;
}

.row-even {
    background: var(--table-even) !important;
    color: var(--light-text-alt) !important;
}

/* === ADMONITIONS (Notes, Warnings, etc.) === */
div.admonition {
    background-color: var(--dark-bg-alt);
    border-color: var(--border-dark);
    color: var(--light-text);
}

div.admonition p {
    color: var(--light-text);
}

/* Specific admonition types */
div.admonition.note {
    border-left: 4px solid var(--accent-blue);
}

div.admonition.warning {
    border-left: 4px solid #f39c12;
}

div.admonition.danger {
    border-left: 4px solid #e74c3c;
}

/* === SEARCH HIGHLIGHTING === */
/* Consolidated and improved search highlights */
span.highlighted,
.rst-content .highlighted,
.wy-nav-content-wrap .highlighted,
article .highlighted {
    background-color: var(--highlight-yellow) !important;
    color: #333333 !important;
    box-shadow: 0 0 0 2px var(--highlight-yellow);
    font-weight: 700;
    padding: 1px 2px;
    border-radius: 2px;
}

/* === FORMS AND INPUTS === */
input[type="text"],
input[type="search"] {
    background-color: var(--dark-bg-alt);
    color: var(--light-text);
    border: 1px solid var(--border-dark);
}

input[type="text"]:focus,
input[type="search"]:focus {
    background-color: var(--dark-bg-hover);
    border-color: var(--accent-blue);
}

/* === CONTENT SECTIONS === */
/* Improve readability of content sections */
.rst-content div[class^="highlight"] {
    margin: 1em 0;
}

/* === RESPONSIVE IMPROVEMENTS === */
@media (max-width: 768px) {
    .wy-nav-content {
        padding: 1.618em 1em;
    }
}

/* === ACCESSIBILITY IMPROVEMENTS === */
/* Better focus indicators */
*:focus {
    outline: 2px solid var(--accent-blue);
    outline-offset: 2px;
}

/* Improve text selection */
::selection {
    background-color: var(--accent-blue);
    color: #ffffff;
}

/* === PRINT STYLES === */
@media print {
    body {
        background: white !important;
        color: black !important;
    }
}