/*
 * 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 {
  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_section   { text-align: center; font-size: 22pt;
                     margin: 20pt 0pt 5pt 0pt; }

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

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

h3, .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;
                }

/* 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; }
