body {
    font-family: sans-serif;
    margin: 1em 2em 1em 2em;
}

a {
    color: darkgreen;
    text-decoration: none;
}
a:visited {
    color: maroon;
}

div.toc {
}

h1, h2, h3, h4 {
    font-family: sans-serif;
}
h1, div.chapter * h2 {
    background-color: seagreen;
    padding: 0.2em 0.4em 0.2em 0.4em;
    color: white;
    border-radius: 0.3em;
}
div.sect1 * h2 {
    background-color: white;
    color: seagreen;
    padding: 0.1em 0em 0.1em 0em;
    /*border-bottom: 2px solid silver;*/
}
h3, h4 {
    color: seagreen;
}

div.sect1 {
    margin-top: 2em;
}

p code, .variablelist code {
    color: darkgreen;
}

.programlisting {
    color: black;
    background-color: #f4f4f4;
    padding: 0.5em;
    border: thin solid silver;
    border-radius: 0.3em;
}

.remark {
}
.remark:before {
    content: "[[";
}
.remark:after {
    content: "]]";
}

div.toc > dl > dt { /* chapter entry */
    margin-top: 0.75em;
    margin-bottom: 0.5em;
}
div.toc > dl > dd > dl { /* chapter block */
    margin-top: 0em;
    margin-bottom: 0.0em;
}
div.toc > dl > dd > dl > dt { /* sect1 entry */
    margin-top: 0.0em;
    margin-bottom: 0.25em;
}
div.toc > dl > dd > dl > dd > dl { /* sect2 block */
    margin-top: 0em;
    margin-bottom: 0.0em;
}
div.toc > dl > dd > dl > dd > dl > dt { /* sect2 entry */
    margin-top: 0.0em;
    margin-bottom: 0.25em;
}

/*
Problem: no way to tell continued paragraph after a figure, listing, etc.
p {
    text-indent: 2em;
    margin-top: 0.25em;
    margin-bottom: 0.25em;
}
p:first-of-type {
    text-indent: 0em;
}
*/
p > sup {
    font-size: 75%;
    vertical-align: top;
}
p > sup > a {
    vertical-align: top;
}
div.footnote > p {
    /* text-indent: 2em; */
    font-size: 75%;
}

div.authorgroup {
    margin-bottom: 1em;
}
div.author {
    margin-bottom: 0.5em;
}
h3.author {
    display:inline;
    font-size: 100%;
    color: black;
    margin: 0;
}

div.informaltable > table {
    width: 95%;
    margin-left: auto;
    margin-right: auto;
    border-collapse: collapse;
    border: none;
}
div.informaltable > table > thead > tr > th {
    border: none;
    border-top: 0.25mm solid black;
    border-bottom: 0.25mm solid black;
    padding: 0.25em 0.5em 0.25em 0.5em;
    background-color: seagreen;
    color: white;
    text-align: left;
}
div.informaltable > table > tbody > tr > td {
    border: none;
    border-top: 0.25mm solid gray;
    border-bottom: 0.25mm solid gray;
    vertical-align: top;
    text-align: left;
    padding: 0.25em 0.5em 0.25em 0.5em;
}

/* Pygments highlighting */
.hll { background-color: #ffffcc }
.c { color: #408080; font-style: italic } /* Comment */
.err { border: 1px solid #FF0000 } /* Error */
.k { color: #008000; font-weight: bold } /* Keyword */
.o { color: #666666 } /* Operator */
.cm { color: #408080; font-style: italic } /* Comment.Multiline */
.cp { color: #BC7A00 } /* Comment.Preproc */
.c1 { color: #408080; font-style: italic } /* Comment.Single */
.cs { color: #408080; font-style: italic } /* Comment.Special */
.gd { color: #f00080 } /* Generic.Deleted */
.ge { font-style: italic } /* Generic.Emph */
.gr { color: #FF0000 } /* Generic.Error */
.gh { color: #000080; font-weight: bold } /* Generic.Heading */
.gi { color: #008040 } /* Generic.Inserted */
.go { color: #808080 } /* Generic.Output */
.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.gs { font-weight: bold } /* Generic.Strong */
.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.gt { color: #0040D0 } /* Generic.Traceback */
.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.kp { color: #008000 } /* Keyword.Pseudo */
.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.kt { color: #B00040 } /* Keyword.Type */
.m { color: #666666 } /* Literal.Number */
.s { color: #BA2121 } /* Literal.String */
.na { color: #7D9029 } /* Name.Attribute */
.nb { color: #008000 } /* Name.Builtin */
.nc { color: #0000FF; font-weight: bold } /* Name.Class */
.no { color: #880000 } /* Name.Constant */
.nd { color: #AA22FF } /* Name.Decorator */
.ni { color: #999999; font-weight: bold } /* Name.Entity */
.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.nf { color: #0000FF } /* Name.Function */
.nl { color: #A0A000 } /* Name.Label */
.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.nt { color: #008000; font-weight: bold } /* Name.Tag */
.nv { color: #19177C } /* Name.Variable */
.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.w { color: #bbbbbb } /* Text.Whitespace */
.mf { color: #666666 } /* Literal.Number.Float */
.mh { color: #666666 } /* Literal.Number.Hex */
.mi { color: #666666 } /* Literal.Number.Integer */
.mo { color: #666666 } /* Literal.Number.Oct */
.sb { color: #BA2121 } /* Literal.String.Backtick */
.sc { color: #BA2121 } /* Literal.String.Char */
.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.s2 { color: #BA2121 } /* Literal.String.Double */
.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.sh { color: #BA2121 } /* Literal.String.Heredoc */
.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.sx { color: #008000 } /* Literal.String.Other */
.sr { color: #BB6688 } /* Literal.String.Regex */
.s1 { color: #BA2121 } /* Literal.String.Single */
.ss { color: #19177C } /* Literal.String.Symbol */
.bp { color: #008000 } /* Name.Builtin.Pseudo */
.vc { color: #19177C } /* Name.Variable.Class */
.vg { color: #19177C } /* Name.Variable.Global */
.vi { color: #19177C } /* Name.Variable.Instance */
.il { color: #666666 } /* Literal.Number.Integer.Long */
