/**
 * Custom theme overrides - OneByZero Neo brand colors
 * Extracted from neo-logo.jpg
 *
 * Primary Navy: #1A237E (dark navy from "obz" text)
 * Forest Green: #1B5E20 (darkest green)
 * Grass Green: #2E7D32 (medium-dark green)
 * Medium Green: #43A047 (medium green)
 * Light Green: #7CB342 (light green)
 * Lime: #9CCC65 (lime green)
 * Yellow-Green: #C5E063 (lightest yellow-green)
 */

:root {
    --neo-navy: #1A237E;
    --neo-navy-dark: #0D1442;
    --neo-forest: #1B5E20;
    --neo-grass: #2E7D32;
    --neo-medium: #43A047;
    --neo-light: #7CB342;
    --neo-lime: #9CCC65;
    --neo-yellow: #C5E063;
}

/* Full-width content */
.wy-nav-content {
    max-width: none;
}

/* Sidebar - dark navy background */
.wy-side-nav-search {
    background-color: var(--neo-navy);
}

.wy-nav-side {
    background-color: var(--neo-navy-dark);
}

.wy-menu-vertical header,
.wy-menu-vertical p.caption {
    color: var(--neo-lime);
}

.wy-menu-vertical a {
    color: #d4d4d4;
}

.wy-menu-vertical a:hover {
    background-color: var(--neo-navy);
    color: var(--neo-lime);
}

.wy-menu-vertical li.current > a,
.wy-menu-vertical li.on a,
.wy-menu-vertical li.current {
    background-color: var(--neo-navy);
    border-color: var(--neo-medium);
}

.wy-menu-vertical li.current > a {
    color: var(--neo-lime);
}

/* Second level navigation */
.wy-menu-vertical li.toctree-l2 > a {
    color: #c0c0c0 !important;
}

.wy-menu-vertical li.toctree-l2.current > a,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a {
    background-color: #151d4a;
    color: #ffffff !important;
}

/* Third and fourth level navigation */
.wy-menu-vertical li.toctree-l3 > a,
.wy-menu-vertical li.toctree-l4 > a {
    color: #e0e0e0 !important;
    background-color: var(--neo-navy-dark) !important;
}

.wy-menu-vertical li.toctree-l3 > a:hover,
.wy-menu-vertical li.toctree-l4 > a:hover {
    color: var(--neo-lime) !important;
    background-color: var(--neo-navy) !important;
}

.wy-menu-vertical li.toctree-l3.current > a,
.wy-menu-vertical li.toctree-l4.current > a {
    background-color: var(--neo-navy) !important;
    color: var(--neo-lime) !important;
}

/* Search box */
.wy-side-nav-search input[type="text"] {
    border-color: var(--neo-medium);
}

.wy-side-nav-search input[type="text"]:focus {
    border-color: var(--neo-lime);
    box-shadow: 0 0 5px rgba(156, 204, 101, 0.5);
}

/* Links - green accent */
a {
    color: var(--neo-forest);
}

a:hover {
    color: var(--neo-medium);
}

.wy-nav-content a {
    color: var(--neo-grass);
}

.wy-nav-content a:hover {
    color: var(--neo-medium);
}

/* Headings - navy with green accents */
h1 {
    color: var(--neo-navy);
    border-bottom: 3px solid var(--neo-medium);
    padding-bottom: 0.3em;
}

h2 {
    color: var(--neo-navy);
    border-bottom: 2px solid var(--neo-light);
    padding-bottom: 0.2em;
}

h3, h4, h5, h6 {
    color: var(--neo-forest);
}

/* Code blocks */
.highlight {
    background: #f8faf8;
    border-left: 4px solid var(--neo-light);
}

code.literal {
    background-color: #f1f8e9;
    color: var(--neo-forest);
    border: 1px solid #dcedc8;
    border-radius: 3px;
    padding: 2px 5px;
}

/* Admonitions */
.admonition.note {
    background-color: #e8eaf6;
    border-left-color: var(--neo-navy);
}

.admonition.note .admonition-title {
    background-color: var(--neo-navy);
    color: white;
}

.admonition.warning {
    background-color: #fff8e1;
    border-left-color: #f9a825;
}

.admonition.warning .admonition-title {
    background-color: #f9a825;
    color: white;
}

.admonition.tip {
    background-color: #e8f5e9;
    border-left-color: var(--neo-medium);
}

.admonition.tip .admonition-title {
    background-color: var(--neo-medium);
    color: white;
}

.admonition.important {
    background-color: #f1f8e9;
    border-left-color: var(--neo-grass);
}

.admonition.important .admonition-title {
    background-color: var(--neo-grass);
    color: white;
}

/* Tables */
.wy-table-responsive table {
    border-color: #c8e6c9;
}

.wy-table-responsive th {
    background: linear-gradient(135deg, var(--neo-navy) 0%, var(--neo-forest) 100%);
    color: white;
}

.wy-table-responsive tr:nth-child(even) {
    background-color: #f1f8e9;
}

/* Buttons and navigation */
.btn,
.btn-neutral {
    background-color: var(--neo-grass) !important;
    color: white !important;
    border-color: var(--neo-grass) !important;
    transition: all 0.3s ease;
}

.btn:hover,
.btn-neutral:hover {
    background-color: var(--neo-medium) !important;
    color: white !important;
    border-color: var(--neo-medium) !important;
}

/* Prev/Next navigation buttons */
.rst-footer-buttons .btn-neutral,
.rst-footer-buttons a {
    color: white !important;
}

.rst-footer-buttons .btn-neutral:hover,
.rst-footer-buttons a:hover {
    color: white !important;
}

/* Ensure button link text is visible */
.btn a,
.btn-neutral a,
a.btn,
a.btn-neutral {
    color: white !important;
}

.btn a:hover,
.btn-neutral a:hover,
a.btn:hover,
a.btn-neutral:hover {
    color: white !important;
}

/* Version selector (RTD theme) */
.rst-versions {
    background-color: var(--neo-navy);
}

.rst-versions a {
    color: #d4d4d4;
}

.rst-versions a:hover {
    color: var(--neo-lime);
}

.rst-versions .rst-current-version {
    background-color: var(--neo-navy-dark);
    color: var(--neo-lime);
}

/* Mobile nav toggle */
.wy-nav-top {
    background: linear-gradient(135deg, var(--neo-navy) 0%, var(--neo-forest) 100%);
}

/* Footer */
footer {
    color: #6b7280;
}

footer a {
    color: var(--neo-grass);
}

/* Breadcrumbs */
.wy-breadcrumbs li a {
    color: var(--neo-grass);
}

.wy-breadcrumbs li a:hover {
    color: var(--neo-medium);
}

/* Selection highlight */
::selection {
    background-color: var(--neo-lime);
    color: var(--neo-navy);
}

/* Scrollbar styling */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: #f1f8e9;
}

::-webkit-scrollbar-thumb {
    background: var(--neo-light);
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--neo-medium);
}

/* TOC tree active item highlight */
.wy-menu-vertical li.current > a:first-child {
    border-left: 3px solid var(--neo-lime);
    padding-left: calc(1.618em - 3px);
}

/* Image styling */
.figure img,
.content img {
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(26, 35, 126, 0.15);
}

/* Block quotes */
blockquote {
    border-left: 4px solid var(--neo-light);
    background-color: #f9fbe7;
    padding: 1em;
    margin: 1em 0;
}

/* Horizontal rule */
hr {
    border: none;
    height: 2px;
    background: linear-gradient(to right, var(--neo-forest), var(--neo-lime), var(--neo-yellow));
}
