body {
	margin: 5em;
}

div.wrapper {
	max-width: 60em;
	margin: auto;
}

ul {
	list-style-type: none;
	padding-left: 2em;
}

a { text-decoration: none; }

a.hidden_link {
	text-decoration: none;
	color: inherit;
}

ul > li:before {
	content: "\2014";
	position: absolute;
	margin-left: -1.5em; 
}

:target { background-color: #C9FBC9; }

.tocHeader { text-align: center; }

div.tocChapter { display: none; }
:target > div.tocChapter { display: block; }

.abbr_ref { float: right; }

.folded_abbr_ref { float: right; }
:target .folded_abbr_ref { display: none; }

:target .unfolded_abbr_ref { float: right; display: inherit; }
.unfolded_abbr_ref { display: none; }

.secnum { display: inline-block; }
.annexnum { display: block; }

div.marginalizedparent {
	position: relative;
	left: -5em;
}

div.footnoteNumberParent {
	position: relative;
	left: -4.7em;
}

a.marginalized {
	position: absolute;
	font-size: smaller;
	text-align: right;
	width: 4em;
}

a.enumerated_item_num {
	position: absolute;
	text-align: right;
	width: 4em;
}

div.para { text-align: justify; }

span.indexparent {
	display: inline;
	position: relative;
	float: right;
	right: -1em;
}

a.index {
	position: absolute;
	display: none;
}

a.index:before { content: "⟵"; }
	/* this way the content is not selectable */

a.index:target {
	display: inline;
}

.indexitems {
	margin-left: 2em;
	text-indent: -2em;
}

div.itemdescr {
	margin-left: 3em;
}

.bnf {
	font-style: italic;
	margin: 1.2em;
	margin-left: 4em;
}

span.textnormal {
	font-style: normal;
	font-family: serif;
	white-space: normal;
	display: inline-block;
}

span.descr { font-style: normal; font-family: serif; }
span.grammarterm { font-style: italic; }
span.term { font-style: italic; }
span.terminal { font-family: monospace; font-style: normal; }
span.nonterminal { font-style: italic; }
span.tcode { font-family: monospace; font-style: normal; }
span.textbf { font-weight: bold; }
span.textsc { font-variant: small-caps; }
span.nontermdef { font-style: italic; }
span.emph { font-style: italic; }
span.techterm { font-style: italic; }
span.mathit { font-style: italic; }
span.mathsf { font-family: sans-serif; }
span.mathrm { font-family: serif; font-style: normal; }
span.mathtt { font-family: monospace; font-style: normal; }
span.mathscr { font-style: normal; }
span.mbox { font-family: serif; font-style: normal; }
span.ungap { display: inline-block; width: 2pt; }
span.texttt { font-family: monospace; }

span.phantom { color: white; }
	/* Unfortunately, this way the text is still selectable. Another
	option is display:none, but then we lose the nice layout.
	Todo: find proper solution. */

span.math { }

span.mathblock {
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-top: 1.2em;
	margin-bottom: 1.2em;
	text-align: center;
}

span.mathalpha {
	font-style: italic;
}

img.mathinlineimg {
	display: inline;
	vertical-align: middle;
}

img.mathblockimg {
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-top: 1.2em;
	margin-bottom: 1.2em;
}

span.synopsis {
	font-weight: bold;
	margin-top: 0.5em;
	display: block;
}

span.definition {
	font-weight: bold;
	display: block;
}

span.minipage {
	display: block;
}

.codeblock {
	margin: 1.2em;
}

code {
	font-family: monospace;
	font-style: normal;
}

code.itemdecl {
	white-space: pre;
	display: block;
}

.comment {
	font-style: italic;
}

.footnotenum { vertical-align: super; font-size: smaller; }
.footnote { font-size: small; margin: 2em; }

div.minipage {
	display: inline-block;
	margin-right: 3em;
}

div.numberedTable {
	text-align: center;
	margin: 2em;
}

div.figure {
	text-align: center;
	margin: 2em;
}

table {
	border: 1px solid black;
	border-collapse: collapse;
	margin-left: auto;
	margin-right: auto;
	margin-top: 0.8em;
	text-align: left;
}

td, th {
	padding-left: 1em;
	padding-right: 1em;
	vertical-align: top;
}

td.left {
	text-align: left;
}

td.right {
	text-align: right;
}

td.center {
	text-align: center;
}

td.justify {
	text-align: justify;
}

td.border {
	border-left: 1px solid black;
}

tr.rowsep, td.cline {
	border-top: 1px solid black;
}

tr.capsep {
	border-top: 3px solid black;
	border-top-style: double;
}

th {
	border-bottom: 1px solid black;
}

span.centry {
	font-weight: bold;
}

div.table {
	display: block;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	width: 90%;
}

div.indented {
	margin-left: 2em;
	margin-bottom: 1em;
	margin-top: 1em;
}

ol.enumeratea { list-style-type: lower-alpha; }

ol.enumerate { list-style-type: none; }
