/* Custom CSS for PlusLib Sphinx Documentation */

/* Use Read the Docs theme colors but customize primary color to match PlusLib branding */

/* Light/Dark Mode Variables */
:root {
    --pluslib-primary: #900000;
    --pluslib-primary-light: #a00000;
    --pluslib-primary-dark: #800000;
    --menu-bg: #fcfcfc;
    --menu-text: #404040;
    --menu-hover-bg: #f5f5f5;
    --sidebar-bg: #ffffff;
    --content-bg: #fcfcfc;
    --text-color: #404040;
    --border-color: #e1e4e5;
}

[data-theme="dark"] {
    --menu-bg: #1e1e1e;
    --menu-text: #d4d4d4;
    --menu-hover-bg: #2d2d2d;
    --sidebar-bg: #252526;
    --content-bg: #1e1e1e;
    --text-color: #d4d4d4;
    --border-color: #3e3e42;
}

/* Theme Toggle Button */
.theme-toggle {
    position: fixed;
    top: 10px;
    right: 10px;
    z-index: 1000;
    background-color: var(--pluslib-primary);
    color: white;
    border: none;
    padding: 8px 12px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
    transition: background-color 0.3s;
}

.theme-toggle:hover {
    background-color: var(--pluslib-primary-light);
}

/* Override RTD theme primary colors to match PlusLib dark red (#900000) */
.wy-side-nav-search {
    background-color: var(--pluslib-primary) !important;
}

/* Fix logo/title contrast against dark red background */
.wy-side-nav-search > a,
.wy-side-nav-search .wy-dropdown > a {
    color: #ffffff !important;
    font-weight: bold;
}

.wy-side-nav-search > a:hover,
.wy-side-nav-search .wy-dropdown > a:hover {
    color: #f0f0f0 !important;
    background-color: transparent !important;
}

/* Ensure icon is visible */
.wy-side-nav-search > a img,
.icon {
    opacity: 1;
    filter: brightness(0) invert(1); /* Make icon white */
}

.wy-side-nav-search input[type=text] {
    border-color: var(--pluslib-primary-dark);
    background-color: rgba(255, 255, 255, 0.9);
    color: #333;
}

.wy-side-nav-search input[type=text]:focus {
    border-color: var(--pluslib-primary-light);
}

/* Sidebar Navigation - Fix readability */
.wy-nav-side {
    background-color: var(--sidebar-bg);
}

.wy-menu-vertical {
    background-color: var(--menu-bg);
}

.wy-menu-vertical a {
    color: var(--menu-text);
}

.wy-menu-vertical a:hover {
    background-color: var(--menu-hover-bg);
    color: var(--pluslib-primary);
}

.wy-menu-vertical li.current a {
    color: var(--pluslib-primary);
    border-right: 2px solid var(--pluslib-primary);
    background-color: var(--menu-hover-bg);
}

.wy-menu-vertical li.current > a {
    background-color: var(--menu-hover-bg);
    font-weight: bold;
}

.wy-menu-vertical li.toctree-l1.current > a {
    border-bottom: none;
    border-top: none;
}

/* Main content area */
.wy-nav-content-wrap {
    background-color: var(--content-bg);
}

.wy-nav-content {
    background-color: var(--content-bg);
    color: var(--text-color);
}

.rst-content {
    color: var(--text-color);
}

/* Links */
a {
    color: var(--pluslib-primary);
}

a:hover {
    color: var(--pluslib-primary-light);
}

a:visited {
    color: var(--pluslib-primary-dark);
}

/* Dark mode link adjustments */
[data-theme="dark"] a:visited {
    color: #b84444;
}

/* Buttons */
.btn-neutral {
    background-color: var(--menu-hover-bg) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--border-color) !important;
}

.btn-neutral:hover {
    background-color: var(--pluslib-primary) !important;
    color: #ffffff !important;
}

.btn-neutral:visited {
    color: var(--text-color) !important;
}

/* Code blocks */
.highlight {
    background: var(--menu-hover-bg);
    border: 1px solid var(--border-color);
}

[data-theme="dark"] .highlight {
    background: #2d2d2d;
}

/* Ensure good contrast for code */
code,
.code,
pre {
    color: var(--text-color);
}

[data-theme="dark"] code,
[data-theme="dark"] .code,
[data-theme="dark"] pre {
    background-color: #2d2d2d;
}

/* Inline code */
.rst-content code.literal,
.rst-content tt.literal {
    color: var(--pluslib-primary);
    background-color: var(--menu-hover-bg);
    border: 1px solid var(--border-color);
}

[data-theme="dark"] .rst-content code.literal,
[data-theme="dark"] .rst-content tt.literal {
    color: #ff6b6b;
    background-color: #2d2d2d;
    border: 1px solid var(--border-color);
}

/* Admonitions */
.admonition {
    margin: 1em 0;
    padding: 0.5em 1em;
    border-radius: 4px;
}

.admonition.tip {
    border-left: 4px solid #00a000;
    background-color: #f0f8f0;
}

[data-theme="dark"] .admonition.tip {
    background-color: #1a3a1a;
    color: #d4d4d4;
}

.admonition.note,
.admonition.info {
    border-left: 4px solid #0080c0;
    background-color: #e8f4f8;
}

[data-theme="dark"] .admonition.note,
[data-theme="dark"] .admonition.info {
    background-color: #1a2a3a;
    color: #d4d4d4;
}

.admonition.warning,
.admonition.attention {
    border-left: 4px solid #f0ad4e;
    background-color: #fcf8e3;
}

[data-theme="dark"] .admonition.warning,
[data-theme="dark"] .admonition.attention {
    background-color: #3a3020;
    color: #d4d4d4;
}

.admonition.danger,
.admonition.error {
    border-left: 4px solid #d9534f;
    background-color: #f9e8e8;
}

[data-theme="dark"] .admonition.danger,
[data-theme="dark"] .admonition.error {
    background-color: #3a1a1a;
    color: #d4d4d4;
}

/* Tables */
.wy-table-bordered-all,
.rst-content table.docutils {
    border-color: var(--border-color);
}

.wy-table-bordered-all td,
.wy-table-bordered-all th,
.rst-content table.docutils td,
.rst-content table.docutils th {
    border-color: var(--border-color);
    background-color: var(--content-bg);
    color: var(--text-color);
}

.wy-table-odd td,
.wy-table-striped tr:nth-child(2n-1) td,
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td {
    background-color: var(--menu-hover-bg);
}

.rst-content table.docutils thead,
.wy-table thead {
    background-color: var(--menu-bg);
}

/* Navigation breadcrumbs */
.wy-breadcrumbs {
    background-color: var(--content-bg);
}

.wy-breadcrumbs li a {
    color: var(--pluslib-primary);
}

.wy-breadcrumbs li a:hover {
    color: var(--pluslib-primary-light);
}

/* Footer links */
.rst-footer-buttons a {
    color: #ffffff;
    background-color: var(--pluslib-primary);
    border: none;
}

.rst-footer-buttons a:hover {
    background-color: var(--pluslib-primary-light);
}

/* Version selector */
.rst-versions {
    border-top: 2px solid var(--pluslib-primary);
    background-color: var(--sidebar-bg);
    color: var(--text-color);
}

.rst-versions .rst-current-version {
    background-color: var(--pluslib-primary-dark);
    color: #ffffff;
}

.rst-versions .rst-other-versions {
    background-color: var(--sidebar-bg);
    color: var(--text-color);
}

/* Search results highlighting */
.rst-content .highlighted {
    background-color: rgba(144, 0, 0, 0.2);
    padding: 0 2px;
}

[data-theme="dark"] .rst-content .highlighted {
    background-color: rgba(255, 107, 107, 0.3);
}

/* Headings in dark mode */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
    color: #ffffff;
}

/* Paragraphs and general text */
[data-theme="dark"] p,
[data-theme="dark"] li,
[data-theme="dark"] dd,
[data-theme="dark"] dt {
    color: #d4d4d4;
}

/* Horizontal rules */
[data-theme="dark"] hr {
    border-color: var(--border-color);
}

/* Mobile menu toggle */
.wy-nav-top {
    background-color: var(--pluslib-primary);
}

/* Search box in mobile */
[data-theme="dark"] .wy-side-nav-search > a,
[data-theme="dark"] .wy-side-nav-search .wy-dropdown > a {
    color: #ffffff;
}

/* Scrollbar styling for dark mode */
[data-theme="dark"] ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

[data-theme="dark"] ::-webkit-scrollbar-track {
    background: #1e1e1e;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: #555;
    border-radius: 5px;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: #777;
}
