/*
:Author: David Goodger, Ian Bicking
:Contact: ianb@colorstudy.com
:date: $Date: 2003/11/01 20:35:45 $
:version: $Revision: 1.3 $
:copyright: This stylesheet has been placed in the public domain.

A modification of the default cascading style sheet (v.1.3) for the
HTML output of Docutils.  
*/

body {
  font-family: Arial, sans-serif;
  background-color: #fff;
}

em, i {
  /* Typically serif fonts have much nicer italics */
  font-family: Times New Roman, Times, serif;
}

li {
  list-style-type: circle;
}

a.target {
  color: blue;
}

a.toc-backref {
  text-decoration: none;
  color: black;
}

a.toc-backref:hover {
  background-color: inherit;
}

a:hover {
  background-color: #ccc;
}

h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6:hover { 
  background-color: inherit;
}

cite {
  font-style: normal;
  font-family: monospace;
  font-weight: bold;
}

dd {
  margin-bottom: 0.5em;
}

div.abstract {
  margin: 2em 5em;
}

div.abstract p.topic-title {
  font-weight: bold;
  text-align: center;
}

div.attention, div.caution, div.danger, div.error, div.hint,
div.important, div.note, div.tip, div.warning {
  background-color: #ccc;
  width: 40%;
  border: medium outset;
  padding: 3px;
  float: right
}

div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
  color: #c00;
  font-weight: bold;
  font-family: sans-serif;
  text-align: center;
  background-color: #999;
  display: block;
  margin: 0;
}

div.hint p.admonition-title, div.important p.admonition-title,
div.note p.admonition-title, div.tip p.admonition-title {
  font-weight: bold;
  font-family: sans-serif;
  text-align: center;
  background-color: #999;
  display: block;
  margin: 0;
}

div.dedication {
  margin: 2em 5em;
  text-align: center;
  font-style: italic;
}

div.dedication p.topic-title {
  font-weight: bold;
  font-style: normal;
}

div.figure {
  margin-left: 2em;
}

div.footer, div.header {
  font-size: smaller;
}

div.system-messages {
  margin: 5em;
}

div.system-messages h1 {
  color: red;
}

div.system-message {
  border: medium outset;
  padding: 1em;
}

div.system-message p.system-message-title {
  color: red;
  font-weight: bold;
}

div.topic {
  margin: 2em;
}

h1, h2, h3, h4, h5, h6 {
  font-family: Helvetica, Arial, sans-serif;
  border: thin solid black;
  /* This makes the borders rounded on Mozilla, which pleases me */
  -moz-border-radius: 8px;
  padding: 4px;
}

h1 {
  background-color: #449;
  color: #fff;
  border: medium solid black;
}

h1 a.toc-backref, h2 a.toc-backref { 
  color: #fff;
}

h2 {
  background-color: #666;
  color: #fff;
  border: medium solid black;
}

h3, h4, h5, h6 {
  background-color: #ccc;
  color: #000;
}

h3 a.toc-backref, h4 a.toc-backref, h5 a.toc-backref, 
h6 a.toc-backref { 
  color: #000;
}

h1.title {
  text-align: center;
  background-color: #449;
  color: #fff;
  border: thick solid black;
  -moz-border-radius: 20px;
}

h2.subtitle {
  text-align: center;
}

hr {
  width: 75%;
}

ol.simple, ul.simple {
  margin-bottom: 1em;
}

ol.arabic {
  list-style: decimal;
}

ol.loweralpha {
  list-style: lower-alpha;
}

ol.upperalpha {
  list-style: upper-alpha;
}

ol.lowerroman {
  list-style: lower-roman;
}

ol.upperroman {
  list-style: upper-roman;
}

p.caption {
  font-style: italic;
}

p.credits {
  font-style: italic;
  font-size: smaller;
}

p.first {
  margin-top: 0;
}

p.label {
  white-space: nowrap;
}

p.topic-title {
  font-weight: bold;
}

pre.address {
  margin-bottom: 0;
  margin-top: 0;
  font-family: serif;
  font-size: 100%;
}

pre.line-block {
  font-family: serif;
  font-size: 100%;
}

pre.literal-block, pre.doctest-block {
  margin-left: 2em;
  margin-right: 2em;
  background-color: #eee;
  border: thin black solid;
  padding: 5px;
}

span.classifier {
  font-family: sans-serif;
  font-style: oblique;
}

span.classifier-delimiter {
  font-family: sans-serif;
  font-weight: bold;
}

span.interpreted {
  font-family: sans-serif;
}

span.option-argument {
  font-style: italic;
}

span.pre {
  white-space: pre;
}

span.problematic {
  color: red;
}

table {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

table.citation {
  border-left: solid thin gray;
  padding-left: 0.5ex
}

table.docinfo {
  margin: 2em 4em;
}

table.footnote {
  border-left: solid thin black;
  padding-left: 0.5ex;
}

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

td > p:first-child, th > p:first-child {
  margin-top: 0em;
}

th.docinfo-name, th.field-name {
  font-weight: bold;
  text-align: left;
  white-space: nowrap;
}

h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
  font-size: 100%;
}

code, tt {
  color: #006;
}

ul.auto-toc {
  list-style-type: none;
}

/*****************************************
 * Doctest embedded examples
 *****************************************/

span.doctest-url { 
  background-color: #eee;
  border-top: 2px outset #666;
  border-left: 2px outset #666;
  border-right: 2px outset #666;
  padding: 0.25em;
}

div.doctest-example { 
  border: outset 5px #666;
  background-color: #eee;
  font-family: default;
  padding: 0.5em;
}

div.doctest-example h1 { 
  background-color: inherit;
  border: none;
  color: inherit;
  font-family: default;
}

div.doctest-example tt { 
  color: inherit;
}

div.doctest-status { 
  background-color: #060;
  color: #fff;
}

span.doctest-header { 
  background-color: #ccc;
  font-family: monospace;
}

pre.doctest-errors { 
  border: none;
  background-color: #333;
  color: #600;
}

div.source-code { 
  background-color: #000;
  border: inset #999 3px;
  overflow: auto;
}

pre.source-code { 
  background-color: #000;
  border: inset #999 3px;
  overflow: auto;
  font-family: monospace;
  color: #fff;
}

span.source-filename { 
  background-color: #000;
  border-top: 2px outset #999;
  border-left: 2px outset #999;
  border-right: 2px outset #999;
  padding: 0.25em;
  color: #fff
}

