/*
 * LLVM documentation style sheet
 */

/* Common styles */
.body { color: black; background: white; margin: 0 0 0 0 }

/* No borders on image links */
a:link img, a:visited img { border-style: none }

address img { float: right; width: 88px; height: 31px; }
address     { clear: right; }

table       { text-align: center; border: 2px solid black;
              border-collapse: collapse; margin-top: 1em; margin-left: 1em;
              margin-right: 1em; margin-bottom: 1em; }
tr, td      { border: 2px solid gray; padding: 4pt 4pt 2pt 2pt; }
th          { border: 2px solid gray; font-weight: bold; font-size: 105%;
              background: url("img/lines.gif");
              font-family: "Georgia,Palatino,Times,Roman,SanSerif";
              text-align: center; vertical-align: middle; }
/*
 * Documentation
 */
/* Common for title and header */
.doc_title, .doc_section, .doc_subsection, h1, h2, h3 {
  color: black; background: url("img/lines.gif");
  font-family: "Georgia,Palatino,Times,Roman,SanSerif"; font-weight: bold;
  border-width: 1px;
  border-style: solid none solid none;
  text-align: center;
  vertical-align: middle;
  padding-left: 8pt;
  padding-top: 1px;
  padding-bottom: 2px
}

h1, .doc_title, .title { text-align: left;   font-size: 25pt }

h2, .doc_section   { text-align: center; font-size: 22pt;
                     margin: 20pt 0pt 5pt 0pt; }

h3, .doc_subsection { width: 75%;
                      text-align: left;  font-size: 12pt;
                      padding: 4pt 4pt 4pt 4pt;
                      margin: 1.5em 0.5em 0.5em 0.5em }

h4, .doc_subsubsection { margin: 2.0em 0.5em 0.5em 0.5em;
                         font-weight: bold; font-style: oblique;
                         border-bottom: 1px solid #999999; font-size: 12pt;
                         width: 75%; }

.doc_author     { text-align: left; font-weight: bold; padding-left: 20pt }
.doc_text       { text-align: left; padding-left: 20pt; padding-right: 10pt }

.doc_footer     { text-align: left; padding: 0 0 0 0 }

.doc_hilite     { color: blue; font-weight: bold; }

.doc_table      { text-align: center; width: 90%;
                  padding: 1px 1px 1px 1px; border: 1px; }

.doc_warning    { color: red; font-weight: bold }

/* <div class="doc_code"> would use this class, and <div> adds more padding */
.doc_code, .literal-block
                { border: solid 1px gray; background: #eeeeee;
                  margin: 0 1em 0 1em;
                  padding: 0 1em 0 1em;
                  display: table;
                }

blockquote pre {
        padding: 1em 2em 1em 1em;
        border: solid 1px gray;
        background: #eeeeee;
        margin: 0 1em 0 1em;
        display: table;
}

h2+div, h2+p {text-align: left; padding-left: 20pt; padding-right: 10pt;}
h3+div, h3+p {text-align: left; padding-left: 20pt; padding-right: 10pt;}
h4+div, h4+p {text-align: left; padding-left: 20pt; padding-right: 10pt;}

/* It is preferrable to use <pre class="doc_code"> everywhere instead of the
 * <div class="doc_code"><pre>...</ptr></div> construct.
 *
 * Once all docs use <pre> for code regions, this style can  be merged with the
 * one above, and we can drop the [pre] qualifier.
 */
pre.doc_code, .literal-block { padding: 1em 2em 1em 1em }

.doc_notes      { background: #fafafa; border: 1px solid #cecece;
                  display: table; padding: 0 1em 0 .1em }

table.layout    { text-align: left; border: none; border-collapse: collapse;
                  padding: 4px 4px 4px 4px; }
tr.layout, td.layout, td.left, td.right
                { border: none; padding: 4pt 4pt 2pt 2pt; vertical-align: top; }
td.left         { text-align: left }
td.right        { text-align: right }
th.layout       { border: none; font-weight: bold; font-size: 105%;
                  text-align: center; vertical-align: middle; }

/* Left align table cell */
.td_left        { border: 2px solid gray; text-align: left; }

/* ReST-specific */
.title { margin-top: 0 }
.topic-title{ display: none }
div.contents ul { list-style-type: decimal }
.toc-backref    { color: black; text-decoration: none; }
