/*
 * The first part of this is the standard CSS generated by LaTeX2HTML,
 * with the "empty" declarations removed.
 */

/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
.math                   { font-family: "Century Schoolbook", serif; }
.math i                 { font-family: "Century Schoolbook", serif;
                          font-weight: bold }
.boldmath               { font-family: "Century Schoolbook", serif;
                          font-weight: bold }

/*
 * Implement both fixed-size and relative sizes.
 *
 * I think these can be safely removed, as it doesn't appear that
 * LaTeX2HTML ever generates these, even though these are carried
 * over from the LaTeX2HTML stylesheet.
 */
small.xtiny             { font-size : xx-small; }
small.tiny              { font-size : x-small; }
small.scriptsize        { font-size : smaller; }
small.footnotesize      { font-size : small; }
big.xlarge              { font-size : large; }
big.xxlarge             { font-size : x-large; }
big.huge                { font-size : larger; }
big.xhuge               { font-size : xx-large; }

/*
 * Document-specific styles come next;
 * these are added for the Python documentation.
 *
 * Note that the size specifications for the H* elements are because
 * Netscape on Solaris otherwise doesn't get it right; they all end up
 * the normal text size.
 */

body                    { color: #000000;
                          background-color: #ffffff; }

a:active                { color: #ff0000; }
a[href]:hover           { background-color: #bbeeff; }
a:visited               { color: #551a8b; }
a:link                  { color: #0000bb; }

h1, h2, h3, h4, h5, h6  { font-family: avantgarde, sans-serif;
                          font-weight: bold; }
h1                      { font-size: 180%; }
h2                      { font-size: 150%; }
h3, h4                  { font-size: 120%; }
code, tt                { font-family: lucida typewriter, lucidatypewriter,
                                       monospace; }
var                     { font-family: times, serif;
                          font-style: italic;
                          font-weight: normal; }

.typelabel              { font-family: lucida, sans-serif; }

.navigation td          { background-color: #99ccff;
                          font-weight: bold;
                          font-family: avantgarde, sans-serif;
                          font-size: 110%; }

div.warning             { background-color: #fffaf0;
                          border: thin solid black;
                          padding: 0.5em;
                          margin-left: 2em;
                          margin-right: 2em; }

div.warning .label      { font-family: sans-serif;
                          font-size: 110%;
                          margin-right: 0.5em; }

div.note                { background-color: #fffaf0;
                          border: thin solid black;
                          padding: 0.5em;
                          margin-left: 2em;
                          margin-right: 2em; }

div.note .label         { margin-right: 0.5em;
                          font-family: sans-serif; }

.release-info           { font-style: italic; }

.titlegraphic           { vertical-align: top; }

.verbatim pre           { color: #00008b;
                          font-family: lucida typewriter, lucidatypewriter,
                                       monospace;
                          font-size: 90%; }
.verbatim               { margin-left: 2em; }
.verbatim .footer       { padding: 0.05in;
                          font-size: 85%;
                          background-color: #99ccff;
                          margin-right: 0.5in; }

.grammar                { background-color: #99ccff;
                          margin-right: 0.5in;
                          padding: 0.05in; }
.productions            { background-color: #bbeeff; }
.productions a:hover    { background-color: #99ccff; }
.productions table      { vertical-align: baseline; }
.grammar-footer         { padding: 0.05in;
                          font-size: 85%; }

.email                  { font-family: avantgarde, sans-serif; }
.mailheader             { font-family: avantgarde, sans-serif; }
.mimetype               { font-family: avantgarde, sans-serif; }
.newsgroup              { font-family: avantgarde, sans-serif; }
.url                    { font-family: avantgarde, sans-serif; }
.file                   { font-family: avantgarde, sans-serif; }

.tableheader            { background-color: #99ccff;
                          font-family: avantgarde, sans-serif; }

.refcount-info          { font-style: italic; }
.refcount-info .value   { font-weight: bold;
                          color: #006600; }

/*
 * Some decoration for the "See also:" blocks, in part inspired by some of
 * the styling on Lars Marius Garshol's XSA pages.
 * (The blue in the navigation bars is #99CCFF.)
 */
.seealso                { background-color: #fffaf0;
                          border: thin solid black;
                          padding: 4pt; }

.seealso .heading       { font-size: 110%; }

/*
 * Class 'availability' is used for module availability statements at
 * the top of modules.
 */
.availability .platform { font-weight: bold; }
