/* Reset */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,
blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u,
i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details,
embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
  margin: 0;
  border: 0;
  padding: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after {
  content: '';
  content: none;
}
table { border-collapse: collapse; border-spacing: 0; }

/* Layout */
html {
  min-height: 100%;
  background: #edf5fa;
  background: linear-gradient(top, #cbe2f1 5em, #edf5fa 30em);
  background: -moz-linear-gradient(top, #cbe2f1 5em, #edf5fa 30em);
  background: -ms-linear-gradient(top, #cbe2f1 5em, #edf5fa 30em);
  background: -o-linear-gradient(top, #cbe2f1 5em, #edf5fa 30em);
  background: -webkit-linear-gradient(top, #cbe2f1 5em, #edf5fa 30em);
}
body {
  max-width: 70em;
  margin: 0 auto;
  padding: 1em 2em;
}
#main {
  border-radius: 0.5em;
  box-shadow: 0 0 2em rgba(0, 0, 0, 0.4);
}
#header, #content, #footer { padding-left: 2em; padding-right: 2em; }
#header {
  border-top-left-radius: 0.5em;
  border-top-right-radius: 0.5em;
  padding-top: 1em;
  padding-bottom: 1em;
  background: #2486c2;
  background: linear-gradient(top, #2486c2 10%, #57b2ec 90%);
  background: -moz-linear-gradient(top, #2486c2 10%, #57b2ec 90%);
  background: -ms-linear-gradient(top, #2486c2 10%, #57b2ec 90%);
  background: -o-linear-gradient(top, #2486c2 10%, #57b2ec 90%);
  background: -webkit-linear-gradient(top, #2486c2 10%, #57b2ec 90%);
}
#header :link, #header :visited { border: none; }
#header :link:hover, #header :visited:hover { background-color: inherit; }
#header h1 {
  margin: 0 0 0.3em;
  color: #fff;
  font-size: 230%;
  text-shadow: #000 0 0 0.2em;
}
#header h2 {
  margin: 0;
  color: #fff;
  font-size: 140%;
  font-weight: normal;
  text-shadow: #000 0 0 0.5em;
}
#header img { float: right; margin-left: 2em; }
#header .clear { clear: both; }
#content {
  padding-top: 1px;
  padding-bottom: 1em;
  background: #fff;
}
#footer {
  border-bottom-left-radius: 0.5em;
  border-bottom-right-radius: 0.5em;
  padding-top: 1em;
  padding-bottom: 1em;
  background: #eee;
}
#footer div { font-size: 90%; }
#footer table {
  width: 100%;
  margin: 0;
  font-size: 90%;
}
#footer td { padding: 0; }
#footer .left { text-align: left; }
#footer .center {
  padding-left: 1em;
  padding-right: 1em;
  text-align: center;
}
#footer .right { text-align: right; }
#metadata { width: 100%; margin-top: 1.5em; }
#metadata table {
  width: 100%;
  margin: 0;
  padding-left: 1.5em;
}
#metadata th {
  width: 1px;
  padding-left: 2em;
  padding-right: 1em;
}
#toc { margin-top: 2em; text-align: center; }
#toc span:first-child:before { content: none; }
#toc span:before { content: " | "; }

/* Text styling */
body {
  font-size: 13px;
  font-family: Verdana, Arial, 'Deja Vu Sans', 'Bitstream Vera Sans', Helvetica, sans-serif;
}
code, kbd, pre, samp, tt, var {
  font-family: Consolas, 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
}
b, strong { font-weight: bold; }
code, kbd, pre, pre.highlight, samp, var {
  border: 1px solid #ddd;
  background: #fcfcfc;
}
code, kbd, samp, var {
  border-radius: 0.2em;
  padding: 0 0.1em;
}
em, i { font-style: oblique; }
sub { vertical-align: sub; font-size: 80%; }
sup { vertical-align: super; font-size: 80%; }
u { text-decoration: underline; }
:link, :visited {
  border-bottom: 1px dotted #bbb;
  color: #027ac6;
  text-decoration: none;
}
:link:hover, :visited:hover { background-color: #eee; }
code :link, kbd :link, samp :link, var :link, code :visited, kbd :visited,
samp :visited, var :visited {
  border-bottom: none;
}
.anchor:link, .anchor:visited {
  margin-left: 0.3em;
  border: none;
  padding: 0 0.2em;
  color: #bbb;
  vertical-align: text-top;
  visibility: hidden;
}
h1:hover > .anchor, h2:hover > .anchor, h3:hover > .anchor,
h4:hover > .anchor, h5:hover > .anchor, h6:hover > .anchor {
  visibility: visible;
}
dl, ol, p, pre, ul {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
  line-height: 1.4;
}
pre {
  margin-left: 1.5em;
  margin-right: 1.5em;
  border-radius: 0.5em;
  padding: 0.5em;
  overflow: auto;
  line-height: 1.3;
}
.def, .func { font-weight: bold; }
.func { display: block; }
.todo { color: red; font-weight: bold; }

/* Headings */
h1, h2, h3, h4, h5, h6 { font-weight: bold; }
h1 { font-size: 180%; }
h2 { font-size: 150%; }
h3 { font-size: 130%; }
h4, h5, h6 { font-size: 120%; }
h1 :link, h2 :link, h3 :link, h4 :link, h5 :link, h6 :link,
h1 :visited, h2 :visited, h3 :visited, h4 :visited, h5 :visited, h6 :visited {
  color: inherit;
}
#content h1, #content h2 {
  margin-top: 1.8em;
  margin-bottom: 0.8em;
  border-bottom: 1px solid #000;
  padding-bottom: 0.5em;
}
#content h3, #content h4, #content h5, #content h6 {
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  padding-bottom: 0.3em;
}

/* Lists */
li {
  margin-top: 0.3em;
  margin-bottom: 0.3em;
  margin-left: 2em;
}
ul li:before {
  position: absolute;
  margin-left: -1.2em;
  color: #bbb;
}
ol > li { list-style: decimal; }
ul > li:before { content: "•"; }
ul ul > li:before { margin-top: -0.1em; content: "o"; }
ul ul ul > li:before { margin-top: -0.1em; content: ">"; }
ul ul ul ul > li:before { margin-top: -0.1em; content: "»"; }
.section > ol, .section > ul { margin-left: 1em; }

/* Tables */
table { margin: 0.8em 1.5em; }
th, td { padding: 0.3em; }
th { text-align: left; font-weight: bold; }
/*table, th, td { border: 1px solid #000; }*/

/* Printing */
@media print {
  #main { box-shadow: none; }
  #header h1, #header h2 { color: #000; text-shadow: none; }
}
