/* Common colours */
:root {
    --good-color: rgb(79 196 100);
    --good-border: var(--good-color);
    --middle-color: rgb(244, 227, 76);
    --middle-border: var(--middle-color);
    --bad-color: rgb(244, 76, 78);
    --bad-border: var(--bad-color);
}


/* Browser elements */
:root {
    scrollbar-color: #616161 transparent;
    color-scheme: dark;
}

html,
body {
    background-color: #222;
    color: rgba(255, 255, 255, 0.87);
}

div.related {
    color: rgba(255, 255, 255, 0.7); /* classic overwrite */
    border-color: #424242;
}

/* SIDEBAR */
div.sphinxsidebar, .menu-wrapper {
    background-color: #333;
    color: inherit;
}

#sidebarbutton {
    /* important to overwrite style attribute */
    background-color: #555 !important;
    color: inherit !important;
}

div.sidebar, aside.sidebar {
    background-color: #424242;
    border-color: #616161;
}

/* ANCHORS AND HIGHLIGHTS */
div.body a {
    color: #7af;
}

div.body a:visited {
    color: #09e;
}

a.headerlink:hover {
    background-color: #424242;
}

div.related a {
    color: currentColor;
}

div.footer,
div.footer a {
    color: currentColor; /* classic overwrites */
}

dt:target,
span.highlighted {
    background-color: #616161;
}

.footnote:target {
    background-color: #2c3e50;
}

/* Below for most things in text */

dl.field-list > dt {
    background-color: #434;
}

table.docutils td,
table.docutils th {
    border-color: #616161 !important;
}

table.docutils th {
    background-color: #424242;
}

.stableabi {
    color: #bbf;
}

div.body pre {
    border-color: #616161;
}

code {
    background-color: #424242;
}

div.body div.seealso {
    background-color: rgba(255, 255, 0, 0.1);
}

div.warning {
    background-color: rgba(255, 0, 0, 0.2);
}

.warning code {
    background-color: rgba(255, 0, 0, 0.5);
}

/* Admonitions */
:root {
    --admonition-background: #ffffff1a;
    --admonition-border: currentColor;
    --admonition-color: #ffffffde;
    --attention-background: #ffffff1a;
    --attention-border: currentColor;
    --caution-background: #ffff001a;
    --caution-border: #dd6;
    --danger-background: #f003;
    --danger-border: #f66;
    --error-background: #f003;
    --error-border: #f66;
    --hint-background: #0044117a;
    --hint-border: green;
    --seealso-background: #ffff001a;
    --seealso-border: #dd6;
    --tip-background: #0044117a;
    --tip-border: green;
    --warning-background: #ff000033;
    --warning-border: #ff6666;
}

aside.topic,
div.topic,
div.note,
nav.contents {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: currentColor;
}

.note code {
    background-color: rgba(255, 255, 255, 0.1);
}

.mobile-nav {
    box-shadow: rgba(255, 255, 255, 0.25) 0 0 2px 0;
}

.nav-content {
    background-color: black;
}

img.invert-in-dark-mode {
    filter: invert(1) hue-rotate(.5turn);
}

/* -- object description styles --------------------------------------------- */

/* C++ specific styling */

/* Override Sphinx's basic.css to fix colour contrast */
.sig.c   .k, .sig.c   .kt,
.sig.cpp .k, .sig.cpp .kt {
    color: #5283ff;
}

/* Version change directives */
:root {
    --versionadded: var(--good-color);
    --versionchanged: var(--middle-color);
    --deprecated: var(--bad-color);
}

.copybutton {
    color: #ac9; /* follows div.body pre */
    background-color: #222222; /* follows body */
}

.copybutton:hover {
    background-color: #434343;
}

.copybutton:active {
    background-color: #656565;
}
