body, html {
    background: white;
    color: black;
    font-family: sans-serif;
    font-size: 16px;
    margin: 0;
    padding: 0;
}

html {
    height: 100%;
}

body {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    scrollbar-gutter: stable;
}

pre, table {
    font-size: inherit;
}

table td {
    line-height: 1.25em;
}

a {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

#content {
    flex: auto;
}

form, #content, #navigation, .searchresults {
    position: relative;
    margin: 0 1em;
}

.header {
    position: relative;
    background-color: white;
    z-index: 1;
    padding: 1em 0 0 0;
}

#navigation {
    border-bottom: 1px solid #ccc;
    padding: 0.25em 0 0.5em 0;
}

#navigation > span + span::before {
    content: "»";
}

#serverstatus {
    padding: 1em;
    margin: 1em;
    box-sizing: border-box;
}

#serverstatus ul {
    padding: 0;
    margin: 0 0 0 1em;
}

#serverstatus li {
    padding: 0;
    margin: 0;
}

#serverstatus.fatal {
    background-color: #bf4545;
    color: white;
}

#serverstatus.warn {
    background-color: #bfa047;
    color: white;
}

#serverstatus a {
    font-size: 12px;
}

footer {
    margin: 0 1em;
}

ul.footer-versions {
    border-top: 1px solid #ccc;
    padding: 0.5em 0;
    list-style: none;
}

ul.footer-versions li {
    margin: 0;
    padding: 0;
    font-size: 12px;
    color: #888;
}

a.statusbadge {
    position: absolute;
    right: 1px;
    display: inline-block;
    color: white;
    font-size: 12px;
    padding: 3px 5px 3px 0;
    border-radius: 3px;
    text-shadow: 1px 1px 1px #555555;
}

a.statusbadge:before {
    position: relative;
    left: -1px;
    content: "server status";
    background-color: #555555;
    padding: 3px 5px;
    border-radius: 3px 0 0 3px;
    color: white;
}

a.statusbadge.ok {
    background-color: #45bf17;
    color: white;
    font-size: 12px;
}

a.statusbadge.warn {
    background-color: #bfa047;
    color: white;
    font-size: 12px;
}

a.statusbadge.fatal {
    background-color: #bf4545;
    color: white;
    font-size: 12px;
}

.query_doc.inline {
    text-align: left;
    background: #efefef;
    border: 1px solid #ccc;
    padding: 1em;
}

form#search h1 {
    font-family: sans-serif;
    display: inline-block;
    margin: 0 1em 0 0;
    vertical-align: middle;
}

form#search h1 a {
    text-decoration: none;
    color: inherit;
}

form#search {
    text-align: center;
}

form#search input {
    font-size: 24px;
    vertical-align: middle;
}

form#search input[type=submit] {
    -webkit-appearance: button;
}

form#search .help {
    margin-left: 0.5em;
    font-size: 14px;
    display: inline-block;
    vertical-align: middle;
}

.query_doc .help {
    position: absolute;
    right: 1em;
}

.docutils.literal {
    font-family: monospace;
}

h1.index_title span:before,
div.user_index_list dt span:before,
div.user_index_list ul a span:before {
    content: "(";
}

h1.index_title span:after,
div.user_index_list dt span:after,
div.user_index_list ul a span:after {
    content: ")";
}

div.user_index_list {
    position: relative;
    display: flex;
    flex-wrap: wrap;
}

div.user_index_list dl {
    margin: 0.25em 1em;
    width: 20em;
}

div.user_index_list dt {
    font-size: 18px;
    font-weight: bold;
}

div.user_index_list dt {
    margin: 0;
    padding: 0;
}

div.user_index_list dd {
    margin: 0 0 1em 0;
    padding: 0;
}

div.user_index_list dd.user_description {
    margin: 0.5em 0 0.5em 1em;
    padding: 0;
}

div.user_index_list ul {
    margin: 0 0 0 1.5em;
    padding: 0;
}

div.user_index_list li {
    margin: 0.25em 0;
    padding: 0;
}

table.files,
table.packages,
table.toxresults,
table.versions {
    margin: 0.5em 0;
    border-collapse: collapse;
    border: 1px solid #ccc;
}

table.files,
table.toxresults,
table.packages {
    width: 100%;
}

table.files th,
table.packages th,
table.toxresults th,
table.versions th {
    background: #ccc;
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
    padding: 0.15em 0.4em;
}

table.files td {
    padding: 0.15em 0.4em;
}

table.files td,
table.packages td,
table.toxresults td,
table.versions td {
    vertical-align: top;
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
    padding: 0.25em 0.4em;
}

table.files thead,
table.packages thead,
table.toxresults thead,
table.versions thead {
    text-align: left;
    font-weight: bold;
}

table.files tbody tr:nth-child(even),
table.packages tbody tr:nth-child(even),
table.toxresults tbody tr:nth-child(even),
table.versions tbody tr:nth-child(even) {
    background: #efefef;
}

table.files dl {
    margin: 0;
    padding: 0;
}
table.files dt {
    font-weight: bold;
    display: inline;
}
table.files dt:after {
    content: ": ";
}
table.files dd {
    margin: 0 1em 0 0;
    padding: 0;
    display: inline;
}

.packagename {
    font-weight: bold;
    font-size: 125%;
}

.packageinfo {
    margin: 0 0 1em 2em;
    padding: 0;
}

.packageinfo dl {
    vertical-align: top;
    width: 49%;
    max-width: 350px;
    display: inline-block;
    margin: 0.5em 0 0 0;
    padding: 0;
}

.packageinfo dt {
    margin: 0;
    padding: 0.125em;
}

.packageinfo dd {
    margin: 0;
    padding: 0.125em 0.125em 0.125em 0.125em;
    line-height: 1.25em;
    height: 2.5em;
    overflow: hidden;
    text-overflow: ellipsis;
}

.packagedetails {
    font-size: 85%;
    color: #202020;
}

.whitelist {
    list-style: none;
    margin: 0;
    padding: 0;
}

.whitelist li {
    display: inline;
    margin: 0;
    padding: 0;
}

.whitelist li:after {
    content: ', ';
}

.whitelist li:last-child:after {
    content: '';
}

.batch_links {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: center;
}

.batch_links li {
    margin: 0;
    padding: 0;
    display: inline-block;
    width: 1.25em;
    overflow: hidden;
}

.batch_links li.current {
    font-weight: bold;
}

.batch_links li.prev,
.batch_links li.next {
    width: 3em;
}

table.projectinfos .key {
    vertical-align: top;
    font-weight: bold;
}

table.projectinfos ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

table.projectinfos .opened .value,
table.projectinfos .closed .value {
    position: relative;
    cursor: pointer;
}

table.projectinfos .closed .value ul {
    position: relative;
    height: 3.25em;
    overflow: hidden;
}

table.projectinfos .closed .value ul:after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2em;
    background: -moz-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,1));
    background: -webkit-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,1));
    background: linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,1));
}

table.projectinfos .opened .value:after,
table.projectinfos .closed .value:after {
    position: absolute;
    top: 0;
    right: 0;
    background: white;
}

table.projectinfos .closed .value:after {
    content: "+";
}

table.projectinfos .opened .value:after {
    content: "-";
}

a.passed:after,
.toxresult.passed h2:before {
    content: "✔";
    color: green;
    font-weight: bold;
}

a.failed:after,
.toxresult.failed h2:before {
    content: "!";
    color: red;
    font-weight: bold;
}

a.unknown:after,
.toxresult.unknown h2:before {
    content: "⚠︎";
    color: #fde2b2;
    font-weight: bold;
}

a.passed:after {
    content: " ✔";
}

a.failed:after {
    content: " !";
}

a.unknown:after {
    content: " ⚠︎";
}

.toxresult .command.passed h3:first-child:before {
    content: "✔ ";
    color: green;
    font-weight: bold;
}

.toxresult .command.failed h3:first-child:before {
    content: "! ";
    color: red;
    font-weight: bold;
}

.toxresult.opened h2,
.toxresult.closed h2 {
    cursor: pointer;
}

.toxresult.opened h2:after {
    content: "-";
}

.toxresult.closed h2:after {
    content: "+";
}

.projectnavigation span + span::before {
    content: " | ";
}

.projectnavigation a {
    display: inline-block;
}

.projectnavigation .warning:before,
.projectnavigation .severe:before {
    content: " ⚠️ ";
}

.projectnavigation .warning,
.projectnavigation .severe {
    padding: 2px 4px;
    margin: -2px;
    border-radius: 3px;
}

.projectnavigation .severe {
    background-color: #bf4545;
    color: white;
}

.projectnavigation .warning {
    background-color: #bfa047;
    color: white;
}


table.projectinfos .opened .value:after,
table.projectinfos .closed .value:after,
.toxresult.opened h2:after,
.toxresult.closed h2:after {
    display: inline-block;
    text-align: center;
    vertical-align: center;
    line-height: 0.9em;
    height: 0.9em;
    width: 0.9em;
    color: rgb(0, 0, 238);
    border: 1px solid #ccc;
}

.toxresult.closed .command {
    display: none;
}

.toxresult pre {
    margin-left: 1.5em;
    white-space: pre-wrap;
    overflow: scroll;
}

div.iframe {
    flex: auto;
    margin: 0;
    display: flex;
}

div.iframe iframe {
    flex: auto;
}

div.iframe, div.iframe iframe {
    width: 100%;
    border: 0;
}

table .file_history {
    list-style: none;
    margin: 0;
    padding: 0;
}

table .file_history li {
    margin: 0 0 0.25em 0;
    padding: 0;
}

table .file_history li:last-child {
    margin: 0;
}

.infonote {
    border: 1px solid #ffa500;
    background: #fde2b2;
    padding: 0.4em;
}

table.status th {
    text-align: left;
    vertical-align: top;
}

table.status th, table.status td {
    padding-bottom: 4px;
}

dl.status dt {
    font-weight: bold;
}

dl.status dd {
    margin-bottom: 0.5em;
}

@media (max-width:1199px) {
    form#search input {
        font-size: 18px;
    }
    #content,
    .searchresults {
        font-size: 14px;
    }
}

@media (max-width:999px) {
    form#search input[type=text] {
        width: 20em;
    }
}

@media (max-width:779px) {
    form#search h1 {
        display: block;
    }
    .packageinfo dl {
        width: 100%;
    }
}

@media (min-width:780px) {
    form#search input[type=text] {
        width: 420px;
    }

    form, #content, #navigation, #serverstatus, .searchresults, footer {
        width: 740px;
    }
}

@media (min-width:1000px) {
    form#search input[type=text] {
        width: 600px;
    }

    form, #content, #navigation, #serverstatus, .searchresults, footer {
        width: 960px;
    }
}

@media (min-width:1200px) {
    form#search input[type=text] {
        width: 800px;
    }

    form, #content, #navigation, #serverstatus, .searchresults, footer {
        width: 1160px;
    }
}
