#toc:before {
    content: '';
    background-image: url(../images/hibernate_logo_smaller.png);
    display: block;
    padding: 20px;
    background-size: contain;
    background-position: left;
    background-repeat: no-repeat;
    margin-bottom: 0.725em;
    margin-top: 0.725em;
}

#header {
    margin-top: 1em;
}
#header .details span.email a {
    color: var(--title);
}

:root {
    --bg: #ffffff;
    --text: #1f2937;
    --text-note: #193147;
    --title: #4a5d75;
    --title-selected: #193147;
    --highlight: #bcae79;
    --link: #115264;
    --toc-background: #f3f4f6;
    --inline-code-background: #f3f4f6;
    --inline-code-text: #00647e;

    --admonition-icon-shadow: rgba(0, 0, 0, .5);
    --admonition-icon-note: #00647e;
    --admonition-icon-tip: #e7e4a7;
    --admonition-icon-warning: #da9846;
    --admonition-icon-caution: #df3d00;
    --admonition-icon-important: #ef0000;

    --admonition-warn-shadow: #e0b4b4;
    --admonition-warn-bg: #fff6f6;
    --admonition-warn: #9f3a38;
    --admonition-caution-shadow: #c9ba9b;
    --admonition-caution-bg: #fffaf3;
    --admonition-caution: #573a08;
    --admonition-note-shadow: #a9d5de;
    --admonition-note-bg: #f8ffff;
    --admonition-note: #276f86;
    --admonition-important-shadow: #a9d5de;
    --admonition-important-bg: #f8ffff;
    --admonition-important: #276f86;
    --admonition-tip-shadow: #bfffce;
    --admonition-tip-bg: #f7fff9;
    --admonition-tip: #516c57;

    --code-background: #f3f4f6;
    --code-text: #1f2937;
    --code-string: #008201;
    --code-keyword: #3c529a;
    --code-meta: #999100;
    --code-type: #115264;
    --code-constant: #00647e;
    --code-package: #1f2937;
    --code-comment: #8d8d8d;
    --code-preprocessor: #579;
    --code-function: #00627A;

    &.dark-mode {
        --bg: #121820;
        --text: #d2dae4;
        --text-note: #8e939a;
        --title: #4a6f8e;
        --title-selected: #5783a8;
        --highlight: #a57e2b;
        --link: #58c0dc;
        --toc-background: #1a202c;
        --inline-code-background: #1a2b42;
        --inline-code-text: #0094a7;
        --admonition-icon-shadow: rgba(1, 1, 1, .5);
        --admonition-icon-note: #00647e;
        --admonition-icon-tip: #e7e4a7;
        --admonition-icon-warning: #da9846;
        --admonition-icon-caution: #df3d00;
        --admonition-icon-important: #730000;

        --admonition-warn-shadow: #fff6f6;
        --admonition-warn-bg: #4d1c1b;
        --admonition-warn: #e0b4b4;
        --admonition-caution-shadow: #fffaf3;
        --admonition-caution-bg: #573a08;
        --admonition-caution: #c9ba9b;
        --admonition-note-shadow: #f8ffff;
        --admonition-note-bg: #163f4d;
        --admonition-note: #a9d5de;
        --admonition-important-shadow: #f8ffff;
        --admonition-important-bg: #163f4d;
        --admonition-important: #a9d5de;
        --admonition-tip-shadow: #f7fff9;
        --admonition-tip-bg: #384d3f;
        --admonition-tip: #bfffce;

        --code-background: #17191d;
        --code-text: #BCBEC4;
        --code-string: #5F826B;
        --code-keyword: #CF8E6D;
        --code-meta: #999100;
        --code-type: #56A8F5;
        --code-constant: #2AACB8;
        --code-comment: #5F826B;

        .admonitionblock .content .colist table {
            box-shadow: none;
        }

        .admonitionblock td.icon .icon-note::before {
            content: url(../images/docbook/note-dark.svg);
        }

        .admonitionblock td.icon .icon-tip::before {
            content: url(../images/docbook/tip.svg);
            opacity: 0.7;
            text-shadow: none;
        }

        .admonitionblock td.icon .icon-warning::before {
            content: url(../images/docbook/warning-dark.svg);
        }

        .admonitionblock td.icon .icon-caution::before {
            content: url(../images/docbook/caution-dark.svg);
        }

        .admonitionblock td.icon .icon-important::before {
            content: url(../images/docbook/important-dark.svg);
        }
    }
}

body {
    font-family: 'Noto Serif', 'Lucida Grande', Geneva, Verdana, Arial, sans-serif;
    background-color: var(--bg);
    color: var(--text);
}

table {
    background-color: var(--bg);
    color: var(--text);

    tr th, tr td {
        color: var(--text);
    }

    tbody tr th, thead, tfoot {
        background-color: var(--toc-background);
    }

    tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p {
        color: var(--text);
    }
    thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td {
        color: var(--text);
    }
}

.conum[data-value] {
    color: var(--bg) !important;
    background: var(--text);
}

.toc-list-item > a {
    color: var(--title);
}

h1, h2, h3, h4, h5, h6, #toctitle {
    color: var(--title);
    font-weight: bold;
    font-family: 'Noto Serif', 'Lucida Grande', Geneva, Verdana, Arial, sans-serif;
}

h1 {
    font-size: 2.0em
}

h2 {
    font-size: 1.75em
}

h3 {
    font-size: 1.375em
}

h4, h5 {
    font-size: 1.125em
}

h6 {
    font-size: 1em
}

#header > h1:first-child {
    color: var(--title);
}

#header .details {
    color: var(--text);
}

.subheader, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title {
    color: var(--title);
    font-size: .95rem;
}

p.tableblock>code:only-child {
    background-color: var(--inline-code-background);
}

a:hover, a:focus {
    color: var(--highlight);
}

a.is-active-link {
    font-weight: bolder;
    color: var(--title-selected);
}

a {
    color: var(--link);
}

@media screen and (min-width: 768px) {
    #toc.toc2 {
        background: var(--toc-background);
        border-right: 1px solid var(--bg);
        scrollbar-color: var(--title) var(--toc-background);
        scrollbar-width: thin;
        scrollbar-gutter: stable;
    }
}

.paragraph.lead>p, #preamble>.sectionbody>[class=paragraph]:first-of-type p {
    color: var(--text);
}

.sidebarblock {
    background: var(--toc-background);
    border: 1px solid var(--toc-background);
    .content>.title {
        color: var(--title);
        font-weight: bold;
        h1, h2, h3, h4, h5, h6 {
            color: var(--title-color);
        }
    }
}

.admonitionblock .content .colist table {
    box-shadow: none;
}

.admonitionblock td.icon [class^="fa icon-"] {
    font-size: 3em;
    text-shadow: none;
    cursor: default;
    /* to compensate for the icons ... */
    margin-top: 10px;
}

.admonitionblock > table td.icon {
    width: 8em;

}

.admonitionblock > table {
    background-color: var(--toc-background);
}

.admonitionblock td.icon .icon-note::before {
    content: url(../images/docbook/note.svg);
}

.admonitionblock td.icon .icon-tip::before {
    content: url(../images/docbook/tip.svg);
    text-shadow: none;
}

.admonitionblock td.icon .icon-warning::before {
    content: url(../images/docbook/warning.svg);
}

.admonitionblock td.icon .icon-caution::before {
    content: url(../images/docbook/caution.svg);
}

.admonitionblock td.icon .icon-important::before {
    content: url(../images/docbook/important.svg);
}

.admonitionblock {
    table {
        border-radius: 0.285714rem;
        box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.22) inset, 0 0 0 0 rgba(0, 0, 0, 0);
        line-height: 1.4285em;
        min-height: 1em;
        padding: 1em 1.5em 1em 0;
    }

    &.tip table {
        box-shadow: 0 0 0 1px var(--admonition-tip-shadow) inset, 0 0 0 0 transparent;
        background-color: var(--admonition-tip-bg);
        td.content {
            color: var(--admonition-tip);
        }
    }

    &.note table {
        box-shadow: 0 0 0 1px var(--admonition-note-shadow) inset, 0 0 0 0 transparent;
        background-color: var(--admonition-note-bg);
        td.content {
            color: var(--admonition-note);
        }
    }

    &.important table {
        box-shadow: 0 0 0 1px var(--admonition-important-shadow) inset, 0 0 0 0 transparent;
        background-color: var(--admonition-important-bg);
        td.content {
            color: var(--admonition-important);
        }
    }

    &.caution table {
        box-shadow: 0 0 0 1px var(--admonition-caution-shadow) inset, 0 0 0 0 transparent;
        background-color: var(--admonition-caution-bg);
        td.content {
            color: var(--admonition-caution);
        }
    }

    &.warning table {
        box-shadow: 0 0 0 1px var(--admonition-warn-shadow) inset, 0 0 0 0 transparent;
        background-color: var(--admonition-warn-bg);
        td.content {
            color: var(--admonition-warn);
        }
    }

    .title {
        font-weight: bold;
        margin-bottom: .5em;
    }

    p {
        margin-bottom: 0;
    }
}

.theme-toggle-button {
    width: 2.5rem;
    padding: 0.5rem;
    border: none;
    border-radius: 9999px;
    box-shadow: 0 0 10px -5px var(--text), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    background-color: var(--toc-background);
    color: var(--text);
    transition: all 0.3s ease;
    cursor: pointer;
}

.hidden {
    display: none !important;
}

#titlewrapper {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    justify-content: center;
}

#toggleContainer {
    justify-self: right;
}

#versionSelect {
    grid-column: span 2 / span 2;
}

:not(pre):not([class^=L]) > code {
    background: var(--inline-code-background);
    color: var(--inline-code-text);
}

/* code examples :*/
.exampleblock > .content {
    padding: 0;
    background-color: var(--code-background);
    border: none;
    box-shadow: none;
}

.literalblock pre, .listingblock>.content>pre:not(.highlight), .listingblock>.content>pre[class=highlight], .listingblock>.content>pre[class^="highlight "]{
    padding: 0;
    background-color: var(--code-background);
    color: var(--code-text);
}

.quoteblock blockquote, .quoteblock p {
    color: var(--code-text);
}

pre {
    color: var(--text);
    scrollbar-color: var(--bg) var(--toc-background);
    scrollbar-width: thin;
    scrollbar-gutter: stable;
}

/* prettyprint highlighter: */
pre .str, code .str {
    color: var(--code-string);
}

pre .kwd, code .kwd {
    color: var(--code-keyword);
    font-weight: bold;
}

pre .com, code .com {
    color: var(--code-comment);
    font-style: italic
}

pre .typ, code .typ {
    color: var(--code-type);
    font-weight: bold;
}

pre .lit, code .lit {
    color: var(--code-constant);
}

pre .pun, code .pun {
    color: var(--code-text);
}

pre .pln, code .pln {
    color: var(--code-text);
}

pre .tag, code .tag {
    color: var(--code-keyword);
}

pre .atn, code .atn {
    color: var(--code-constant);
    font-weight: bold;
}

pre .atv, code .atv {
    color: var(--code-constant);
}

pre .dec, code .dec {
    color: var(--code-constant);
}

pre.prettyprint, code.prettyprint {
    background-color: var(--code-background);
    border-radius: 8px;
}

pre.prettyprint {
    width: 95%;
    margin: 1em auto;
    padding: 1em;
    white-space: pre-wrap;
}

/* highlight js highlighter: */

.hljs {
    display: block;
    overflow-x: auto;
    padding: .5em;
    background: var(--code-background);
    color: var(--code-text);
}

.hljs-tag,.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-strong,.hljs-name {
    color: var(--code-keyword);
}

.hljs-keyword {
    font-weight: bold;
}

.hljs-code {
    color: var(--code-text);
}

.hljs-class .hljs-title {
    color: var(--code-type);
    font-weight: bold;
}

.hljs-string {
    color: var(--code-string);
}

.hljs-attribute,.hljs-symbol,.hljs-regexp,.hljs-link {
    color: var(--code-constant);
}

.hljs-bullet,.hljs-subst,.hljs-title,.hljs-section,.hljs-emphasis,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-tag,.hljs-template-variable {
    color: var(--code-constant);
}

.hljs-number {
    color: var(--code-constant);
}

.hljs-comment,.hljs-quote,.hljs-deletion {
    color: var(--code-comment);
    font-style: italic
}

.hljs-meta {
    color: var(--code-meta);
}

.hljs-meta,.hljs-selector-tag,.hljs-literal,.hljs-doctag,.hljs-title,.hljs-section,.hljs-type,.hljs-selector-id {
    font-weight: normal;
}



/* version select */

#versionSelect {
    margin-bottom: 1em;
}

.version-dropdown-button {
    width: 100%;
    padding: 0.5rem 1rem;
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    background-color: var(--toc-background);
    color: var(--title-selected);
    cursor: pointer;
    transition-property: background-color, border-color, color;
    transition-duration: 0.15s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    text-align: left;
}
.version-dropdown-button:focus {
    outline: none;
    border-color: var(--highlight);
}
.version-dropdown-list {
    display: none;
    position: absolute;
    z-index: 10;
    width: 90%;
    margin-top: 0.25rem;
    background-color: var(--toc-background);
    color: var(--title-selected);
    border: 1px solid var(--bg);
    border-radius: 0.375rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    max-height: 12.5rem;
    overflow-y: auto;

    a {
        display: block;
        &:focus, &:hover {
            color: var(--toc-background);
        }
    }
}
.version-dropdown-item {
    padding: 0.5rem;
    cursor: pointer;
}
.version-dropdown-item:hover {
    background-color: var(--highlight);
}


/* This file was generated using `pygmentize -S dracula -f html -a .highlight` */
pre.rouge { line-height: 125%; }
/*pre.rouge td.linenos .normal { color: #f1fa8c; background-color: #44475a; padding-left: 5px; padding-right: 5px; }*/
/*pre.rouge span.linenos { color: #f1fa8c; background-color: #44475a; padding-left: 5px; padding-right: 5px; }*/
/*pre.rouge td.linenos .special { color: #50fa7b; background-color: #6272a4; padding-left: 5px; padding-right: 5px; }*/
/*pre.rouge span.linenos.special { color: #50fa7b; background-color: #6272a4; padding-left: 5px; padding-right: 5px; }*/
/*pre.rouge.highlight .hll { background-color: #44475a }*/
pre.rouge.highlight {
    background: var(--code-background);
    color: var(--code-text);
    border-radius: 5px;
}
/* Comment */
pre.rouge.highlight .c { color: var(--code-comment); }
/* Error */
pre.rouge.highlight .err { color: var(--code-text); }
/* Generic */
pre.rouge.highlight .g { color: var(--code-text); }
/* Keyword */
pre.rouge.highlight .k { color: var(--code-keyword); }
/* Literal */
pre.rouge.highlight .l { color: var(--code-text); }
/* Name */
pre.rouge.highlight .n { color: var(--code-text); }
/* Operator */
pre.rouge.highlight .o {  color: var(--code-text); }
/* Other */
pre.rouge.highlight .x { color: var(--code-text); }
/* Punctuation */
pre.rouge.highlight .p { color: var(--code-text); }
/* Comment.Hashbang */
pre.rouge.highlight .ch { color: var(--code-comment); }
/* Comment.Multiline */
pre.rouge.highlight .cm { color: var(--code-comment); }
/* Comment.Preproc */
pre.rouge.highlight .cp {  color: var(--code-keyword); }
/* Comment.PreprocFile */
pre.rouge.highlight .cpf { color: var(--code-comment); }
/* Comment.Single */
pre.rouge.highlight .c1 { color: var(--code-comment); }
/* Comment.Special */
pre.rouge.highlight .cs { color: var(--code-comment); }
/* Generic.Deleted */
pre.rouge.highlight .gd { color: #8b080b }
/* Generic.Emph */
pre.rouge.highlight .ge { color: var(--code-text);; text-decoration: underline }
/* Generic.EmphStrong */
pre.rouge.highlight .ges { color: var(--code-text);; text-decoration: underline }
/* Generic.Error */
pre.rouge.highlight .gr { color: var(--code-text); }
/* Generic.Heading */
pre.rouge.highlight .gh { color: var(--code-text);; font-weight: bold }
/* Generic.Inserted */
pre.rouge.highlight .gi { color: var(--code-text);; font-weight: bold }
/* Generic.Output */
pre.rouge.highlight .go { color: #44475a }
/* Generic.Prompt */
pre.rouge.highlight .gp { color: var(--code-text); }
/* Generic.Strong */
pre.rouge.highlight .gs { color: var(--code-text); }
/* Generic.Subheading */
pre.rouge.highlight .gu { color: var(--code-text);; font-weight: bold }
/* Generic.Traceback */
pre.rouge.highlight .gt { color: var(--code-text); }
/* Keyword.Constant */
pre.rouge.highlight .kc { color: var(--code-keyword); }
/* Keyword.Declaration */
pre.rouge.highlight span.kd { color: var(--code-keyword) }
/* Keyword.Namespace */
pre.rouge.highlight .kn { color: var(--code-keyword); }
/* Keyword.Pseudo */
pre.rouge.highlight .kp { color: var(--code-keyword); }
/* Keyword.Reserved */
pre.rouge.highlight .kr { color: var(--code-keyword); }
/* Keyword.Type */
pre.rouge.highlight .kt { color: var(--code-keyword) }
/* Literal.Date */
pre.rouge.highlight .ld { color: var(--code-text); }
/* Literal.Number */
pre.rouge.highlight .m { color: #ffb86c }
/* Literal.String */
pre.rouge.highlight .s { color: var(--code-string); }
/* Name.Attribute */
pre.rouge.highlight .na { color: var(--code-function) }
/* Name.Builtin */
pre.rouge.highlight .nb { color: var(--code-keyword); font-style: italic }
/* Name.Class */
pre.rouge.highlight .nc { color: var(--code-text); }
/* Name.Constant */
pre.rouge.highlight .no { color: var(--code-text); }
/* Name.Decorator */
pre.rouge.highlight .nd { color: var(--code-meta); }
/* Name.Entity */
pre.rouge.highlight .ni { color: var(--code-text); }
/* Name.Exception */
pre.rouge.highlight .ne { color: var(--code-text); }
/* Name.Function */
pre.rouge.highlight .nf { color: var(--code-function); }
/* Name.Label */
pre.rouge.highlight .nl { color: var(--code-text); }
/* Name.Namespace */
pre.rouge.highlight .nn { color: var(--code-text); }
/* Name.Other */
pre.rouge.highlight .nx { color: var(--code-text); }
/* Name.Property */
pre.rouge.highlight .py { color: var(--code-function); }
/* Name.Tag */
pre.rouge.highlight .nt { color: var(--code-keyword) }
/* Name.Variable */
pre.rouge.highlight .nv { color: var(--code-text); font-style: italic }
/* Operator.Word */
pre.rouge.highlight .ow { color: var(--code-keyword) }
/* Punctuation.Marker */
pre.rouge.highlight .pm { color: var(--code-text); }
/* Text.Whitespace */
pre.rouge.highlight .w { color: var(--code-text); }
/* Literal.Number.Bin */
pre.rouge.highlight .mb { color: var(--code-constant); }
/* Literal.Number.Float */
pre.rouge.highlight .mf { color: var(--code-constant); }
/* Literal.Number.Hex */
pre.rouge.highlight .mh { color: var(--code-constant); }
/* Literal.Number.Integer */
pre.rouge.highlight .mi { color: var(--code-constant); }
/* Literal.Number.Oct */
pre.rouge.highlight .mo { color: var(--code-constant); }
/* Literal.String.Affix */
pre.rouge.highlight .sa { color: var(--code-string); }
/* Literal.String.Backtick */
pre.rouge.highlight .sb { color: var(--code-string); }
/* Literal.String.Char */
pre.rouge.highlight .sc { color: var(--code-string); }
/* Literal.String.Delimiter */
pre.rouge.highlight .dl { color: var(--code-string); }
/* Literal.String.Doc */
pre.rouge.highlight .sd { color: var(--code-string); }
/* Literal.String.Double */
pre.rouge.highlight .s2 { color: var(--code-string); }
/* Literal.String.Escape */
pre.rouge.highlight .se { color: var(--code-string); }
/* Literal.String.Heredoc */
pre.rouge.highlight .sh { color: var(--code-string); }
/* Literal.String.Interpol */
pre.rouge.highlight .si { color: var(--code-string); }
/* Literal.String.Other */
pre.rouge.highlight .sx { color: var(--code-string); }
/* Literal.String.Regex */
pre.rouge.highlight .sr { color: var(--code-string); }
/* Literal.String.Single */
pre.rouge.highlight .s1 { color: var(--code-string); }
/* Literal.String.Symbol */
pre.rouge.highlight .ss { color: var(--code-string); }
/* Name.Builtin.Pseudo */
pre.rouge.highlight .bp { color: var(--code-text); font-style: italic }
/* Name.Function.Magic */
pre.rouge.highlight .fm { color: var(--code-constant) }
/* Name.Variable.Class */
pre.rouge.highlight .vc { color: var(--code-constant); font-style: italic }
/* Name.Variable.Global */
pre.rouge.highlight .vg { color: var(--code-constant); font-style: italic }
/* Name.Variable.Instance */
pre.rouge.highlight .vi { color: var(--code-constant); font-style: italic }
/* Name.Variable.Magic */
pre.rouge.highlight .vm { color: var(--code-constant); font-style: italic }
/* Literal.Number.Integer.Long */
pre.rouge.highlight .il { color: var(--code-constant); }

pre.highlight .btn-copy {
    color: var(--text);
}
