/* Epydoc CSS Stylesheet
*
*  This is a massivley hacked stylesheet for epydoc, the very nice Python API
*  Documentation generator. The general look and feel is based on sphinx.
*
*  Feel free to tweak this some more to make the theme even more pleasing 
*  if you have the time to spare for such things. The typography in particular
*  could do with sorting out. Unless you like writing masocistic CSS however,
*  I'd recommend looking to refactor the markup generated by epydoc.
*
*/

/* Yahoo! Reset Styles
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.1
*/
html {
    color: #000;
    background: #FFF;
}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td {
    margin: 0;
    padding: 0;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
fieldset,img {
    border: 0;
}
address,caption,cite,code,dfn,em,strong,th,var {
    font-style: normal;
    font-weight: normal;
}
li {
    list-style: none;
}
caption,th {
    text-align: left;
}
h1,h2,h3,h4,h5,h6 {
    font-size: 100%;
    font-weight: normal;
}
q:before,q:after {
    content: '';
}
abbr,acronym {
    border: 0;
    font-variant: normal;
}
sup {
    vertical-align: text-top;
}
sub {
    vertical-align: text-bottom;
}
input,textarea,select {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
}
input,textarea,select {*font-size:100%;
}
legend {
    color: #000;
}
body {
    font: 13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;
}
table {
    font-size: inherit;
    font: 100%;
}
pre,code,kbd,samp,tt {
    font-family: monospace;*font-size:108%;
    line-height: 100%;
}



/* Default Colors & Styles
* - Set the default foreground & background color with 'body'; and
* link colors with 'a:link' and 'a:visited'.
* - Use bold for decision list terms.
* - The heading styles defined here are used for headings *within*
* docstring descriptions. All headings used by epydoc itself use
* either class='epydoc' or class='toc' (CSS styles for both
* defined below).
*/
body {
    background: #ffffff;
    color: #000000;
}
p {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}
a {
    color: #355f7c;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

dt {
    font-weight: bold;
}
h1, h2 {
    color: #20435C;
    background: #F2F2F2;
    border-bottom: 1px solid #CCC;
    padding: 10px;
}
center {
    display: none;
}
code {
    font-size: 100%;
}
/* N.B.: class, not pseudoclass */
a.link {
    font-family: monospace;
}

/* Page Header & Footer
* - The standard page header consists of a navigation bar (with
* pointers to standard pages such as 'home' and 'trees'); a
* breadcrumbs list, which can be used to navigate to containing
* classes or modules; options links, to show/hide private
* variables and to show/hide frames; and a page title (using
* <h1>). The page title may be followed by a link to the
* corresponding source code (using 'span.codelink').
* - The footer consists of a navigation bar, a timestamp, and a
* pointer to epydoc's homepage.
*/
h1.epydoc {
    margin: -14px 0 0;
    font-size: +140%;
    color: #20435C;
}
h2.epydoc {
    font-size: +130%;
}
h3.epydoc {
    font-size: +115%;
    margin-top: 0.2em;
    margin-left: 25px;
}
td h3.epydoc {
    font-size: +115%;
    font-weight: bold;
    margin-bottom: 0;
}
table.navbar {
    background: #133F52;
    color: #355f7c;
    border: 0;
}
table.navbar table {
    color: #355f7c;
}
th.navbar-select {
    background: #1C4E63;
    color: #FFF;
}
table.navbar table th {
    padding-left: 15px;
}
table.navbar a {
    text-decoration: none;
    color: #FFF;
    padding: 0 10px;
    display: block;
}
table td.footer {
    padding: 10px;
    color: #666;
    font-size: 90%;
}
/* Table Headers
* - Each summary table and details section begins with a 'header'
* row. This row contains a section title (marked by
* 'span.table-header') as well as a show/hide private link
* (marked by 'span.options', defined above).
* - Summary tables that contain user-defined groups mark those
* groups using 'group header' rows.
*/
td.table-header {
    background: #F2F2F2;
    color: #20435C;
    border: 1px solid #CCC;
    padding: 5px 10px;
}
td.table-header table a:visited {
    color: #204080;
}
span.table-header {
    font-size: 120%;
}
th.group-header {
    background: #c0e0f8;
    color: #000000;
    text-align: left;
    font-size: 115%;
    border: 1px solid #608090;
}

/* Summary Tables (functions, variables, etc)
* - Each object is described by a single row of the table with
* two cells. The left cell gives the object's type, and is
* marked with 'code.summary-type'. The right cell gives the
* object's name and a summary description.
* - CSS styles for the table's header and group headers are
* defined above, under 'Table Headers'
*/
table.summary {
    border-collapse: collapse;
    background: #FFF;
    color: #000000;
    border: 1px solid #CCC;
    margin: 0 0 20px;
}
td.summary {
    border: 1px solid #CCC;
    padding: 5px 10px;
}
code.summary-type {
    font-size: 85%;
}

/* Details Tables (functions, variables, etc)
* - Each object is described in its own div.
* - A single-row summary table w/ table-header is used as
* a header for each details section (CSS style for table-header
* is defined above, under 'Table Headers').
*/
table.details {
    border-collapse: collapse;
    background: #FFF;
    color: #000000;
    border: 0;
    margin: .2em 0 0 0;
}
table.details table {
    color: #000000;
}

/* Fields */
dl.fields {
    margin-left: 2em;
    margin-top: 1em;
    margin-bottom: 1em;
}
dl.fields dd ul {
    margin-left: 0em;
    padding-left: 0em;
}
dl.fields dd ul li ul {
    margin-left: 2em;
    padding-left: 0em;
}
div.fields {
    margin-left: 2em;
}
div.fields p {
    margin-bottom: 0.5em;
}

/* Index tables (identifier index, term index, etc)
* - link-index is used for indices containing lists of links
* (namely, the identifier index & term index).
* - index-where is used in link indices for the text indicating
* the container/source for each link.
* - metadata-index is used for indices containing metadata
* extracted from fields (namely, the bug index & todo index).
*/
table.link-index {
    border-collapse: collapse;
    background: #F2F2F2;
    color: #000000;
    border: 1px solid #CCC;
}
td.link-index {
    border-width: 0px;
    padding: 3px;
}
span.index-where {
    font-size: 70%;
}
table.metadata-index {
    border-collapse: collapse;
    background: #e8f0f8;
    color: #000000;
    border: 1px solid #608090;
    margin: .2em 0 0 0;
}
td.metadata-index {
    border-width: 1px;
    border-style: solid;
}
table.link-index h2.epydoc {
    border-width: 1px 0;
}

/* Function signatures
* - sig* is used for the signature in the details section.
* - .summary-sig* is used for the signature in the summary
* table, and when listing property accessor functions.
* */
.sig-name {
    color: #006080;
}
.sig-arg {
    color: #008060;
}
.sig-default {
    color: #602000;
}
.summary-sig {
    font-family: monospace;
}
.summary-sig-name {
    color: #006080;
    font-weight: bold;
}
table.summary a.summary-sig-name:link {
    color: #006080;
    font-weight: bold;
}
table.summary a.summary-sig-name:visited {
    color: #006080;
    font-weight: bold;
}
.summary-sig-arg {
    color: #006040;
}
.summary-sig-default {
    color: #501800;
}

/* Subclass list
*/
ul.subclass-list {
    display: inline;
}
ul.subclass-list li {
    display: inline;
}

/* To render variables, classes etc. like functions */
table.summary .summary-name {
    color: #006080;
    font-weight: bold;
    font-family: monospace;
}
table.summary
a.summary-name:link {
    color: #006080;
    font-weight: bold;
    font-family: monospace;
}
table.summary
a.summary-name:visited {
    color: #006080;
    font-weight: bold;
    font-family: monospace;
}

/* Variable values
* - In the 'variable details' sections, each varaible's value is
* listed in a 'pre.variable' box. The width of this box is
* restricted to 80 chars; if the value's repr is longer than
* this it will be wrapped, using a backslash marked with
* class 'variable-linewrap'. If the value's repr is longer
* than 3 lines, the rest will be ellided; and an ellipsis
* marker ('...' marked with 'variable-ellipsis') will be used.
* - If the value is a string, its quote marks will be marked
* with 'variable-quote'.
* - If the variable is a regexp, it is syntax-highlighted using
* the re* CSS classes.
*/
pre.variable {
    padding: .5em;
    margin: 0;
    background: #F2F2F2;
    color: #000000;
    border: 1px solid #CCC;
}
.variable-linewrap {
    color: #604000;
    font-weight: bold;
}
.variable-ellipsis {
    color: #604000;
    font-weight: bold;
}
.variable-quote {
    color: #604000;
    font-weight: bold;
}
.variable-group {
    color: #008000;
    font-weight: bold;
}
.variable-op {
    color: #604000;
    font-weight: bold;
}
.variable-string {
    color: #006030;
}
.variable-unknown {
    color: #a00000;
    font-weight: bold;
}
.re {
    color: #000000;
}
.re-char {
    color: #006030;
}
.re-op {
    color: #600000;
}
.re-group {
    color: #003060;
}
.re-ref {
    color: #404040;
}

/* Base tree
* - Used by class pages to display the base class hierarchy.
*/
pre.base-tree {
    font-size: 80%;
    margin: 0;
}


/* Syntax Highlighting for Source Code
* - doctest examples are displayed in a 'pre.py-doctest' block.
* If the example is in a details table entry, then it will use
* the colors specified by the 'table pre.py-doctest' line.
* - Source code listings are displayed in a 'pre.py-src' block.
* Each line is marked with 'span.py-line' (used to draw a line
* down the left margin, separating the code from the line
* numbers). Line numbers are displayed with 'span.py-lineno'.
* The expand/collapse block toggle button is displayed with
* 'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
* modify the font size of the text.)
* - If a source code page is opened with an anchor, then the
* corresponding code block will be highlighted. The code
* block's header is highlighted with 'py-highlight-hdr'; and
* the code block's body is highlighted with 'py-highlight'.
* - The remaining py-* classes are used to perform syntax
* highlighting (py-string for string literals, py-name for names,
* etc.)
*/
pre.py-doctest {
    padding: .5em;
    margin: 1em;
    background: #F2F2F2;
    color: #000000;
    border: 1px solid #CCC;
}
table pre.py-doctest {
    background: #F2F2F2;
    color: #000000;
}
pre.py-src {
    border: 1px solid #CCC;
    background: #FFF;
    color: #000000;
    margin: 20px 0;
}
.py-line {
    border-left: 1px solid #CCC;
    margin-left: .2em;
    padding-left: .4em;
}
.py-lineno {
    font-style: italic;
    font-size: 90%;
    padding-left: .5em;
}
a.py-toggle {
    text-decoration: none;
}
div.py-highlight-hdr {
    border-top: 1px solid #CCC;
    border-bottom: 1px solid #CCC;
    background: #F2F2F2;
}
div.py-highlight {
    border-bottom: 1px solid #CCC;
    background: #F2F2F2;
}
.py-prompt {
    color: #005050;
    font-weight: bold;
}
.py-more {
    color: #005050;
    font-weight: bold;
}
.py-string {
    color: #006030;
}
.py-comment {
    color: #003060;
}
.py-keyword {
    color: #600000;
}
.py-output {
    color: #404040;
}
.py-name {
    color: #000050;
}
.py-name:link {
    color: #000050 !important;
}
.py-name:visited {
    color: #000050 !important;
}
.py-number {
    color: #005000;
}
.py-defname {
    color: #000060;
    font-weight: bold;
}
.py-def-name {
    color: #000060;
    font-weight: bold;
}
.py-base-class {
    color: #000060;
}
.py-param {
    color: #000060;
}
.py-docstring {
    color: #006030;
}
.py-decorator {
    color: #804020;
}

/* Graphs & Diagrams
* - These CSS styles are used for graphs & diagrams generated using
* Graphviz dot. 'img.graph-without-title' is used for bare
* diagrams (to remove the border created by making the image
* clickable).
*/
img.graph-without-title {
    border: none;
}
img.graph-with-title {
    border: 1px solid #000000;
}
span.graph-title {
    font-weight: bold;
}

/* General-purpose classes
* - 'p.indent-wrapped-lines' defines a paragraph whose first line
* is not indented, but whose subsequent lines are.
* - The 'nomargin-top' class is used to remove the top margin (e.g.
* from lists). The 'nomargin' class is used to remove both the
* top and bottom margin (but not the left or right margin --
* for lists, that would cause the bullets to disappear.)
*/
p.indent-wrapped-lines {
    padding: 0 0 0 7em;
    text-indent: -7em;
    margin: 0;
}
.nomargin-top {
    margin: 20px;
}
.nomargin {
    margin-top: 0;
    margin-bottom: 0;
}

/* HTML Log */
div.log-block {
    padding: 0;
    margin: .5em 0 .5em 0;
    background: #e8f0f8;
    color: #000000;
    border: 1px solid #000000;
}
div.log-error {
    padding: .1em .3em .1em .3em;
    margin: 4px;
    background: #ffb0b0;
    color: #000000;
    border: 1px solid #000000;
}
div.log-warning {
    padding: .1em .3em .1em .3em;
    margin: 4px;
    background: #ffffb0;
    color: #000000;
    border: 1px solid #000000;
}
div.log-info {
    padding: .1em .3em .1em .3em;
    margin: 4px;
    background: #b0ffb0;
    color: #000000;
    border: 1px solid #000000;
}
h2.log-hdr {
    background: #70b0ff;
    color: #000000;
    margin: 0;
    padding: 0em 0.5em 0em 0.5em;
    border-bottom: 1px solid #000000;
    font-size: 110%;
}
p.log {
    font-weight: bold;
    margin: .5em 0 .5em 0;
}
tr.opt-changed {
    color: #000000;
    font-weight: bold;
}
tr.opt-default {
    color: #606060;
}
pre.log {
    margin: 0;
    padding: 0;
    padding-left: 1em;
}

/* Hacks
*  This section is reseerved for the really horrible bits. In reality the
*  markup generated by epydoc wants a good kickings but a CSS patch is 
*  better than nothing. Some of this does remove useful links or output
*  because finding somewhere to put them on the page wasn't easy. If your
*  favourite link has disappeared this is probably the reason.
*/

ul ul {
    margin-left: 1em;
}
ul ul ul {
    margin-left: 2em;
}
ul ul ul ul {
    margin-left: 3em;
}
a[target=mainFrame], a[target=moduleFrame] {
    margin: 0 10px;
}
h2.toc {
    margin-bottom: 10px;
}
h1.toc {
    display: none;
}
.options {
    display: none;
}
hr, br {
    display: none;
}
a[href="toc-everything.html"] {
    display: none;
}
.breadcrumbs {
    visibility: hidden;
}
.details p {
    margin-left: 25px;
}
body > p {
    margin: 20px;
}