/*
 * Based off the Doxygen generated template stylesheet and trimmed/edited to
 * remove items that would conflict with codesite or other overlying
 * stylesheets while maintaining the desired look and feel.
 *
 * The #doxygen-ref is an id tag which encompasses code generated by doxygen
 * and allows override of standard html tags while not affecting the rest
 * of the page such as sidebars.
 */

A.qindex {
  text-decoration: none;
  font-weight: bold;
  color: #1A419D;
}
A.qindex:visited {
  text-decoration: none;
  font-weight: bold;
  color: #1A419D
}
A.qindex:hover {
  text-decoration: none;
  background-color: #ddf;
}
A.qindexHL {
  text-decoration: none;
  font-weight: bold;
  background-color: #66c;
  color: #fff;
  border: 1px double #9295C2;
}
A.qindexHL:hover,
A.qindexHL:visited {
  text-decoration: none;
  background-color: #66c;
  color: #fff;
}
A.el {
  text-decoration: none;
  font-weight: bold;
}
A.elRef {
  font-weight: bold;
}
A.code:link,
A.code:visited {
  text-decoration: none;
  font-weight: normal;
  color: #00F;
}
A.codeRef:link,
A.codeRef:visited {
  font-weight: normal;
  color: #00F;
}
A:hover {
  text-decoration: none;
  background-color: #f2f2ff;
}
DL.el {
  margin-left: -1cm;
}
.fragment {
  font-family: Fixed, monospace;
  font-size: 95%;
}
PRE.fragment {
  border: 1px solid #CCC;
  background-color: #f5f5f5;
  margin: 4px 8px 4px 2px
  padding: 4px 6px;
}
DIV.ah {
  background-color: black;
  font-weight: bold;
  color: #fff;
  margin-bottom: 3px;
  margin-top: 3px
}
TD.md {
  background-color: #e1e1e4;
  font-weight: bold;
  border: none;
}
TD.mdPrefix {
  background-color: #e1e1e4;
  color: #606060;
  font-size: 80%;
  border: none;
}
TD.mdname1 {
  background-color: #e1e1e4;
  font-weight: bold;
  color: #602020;
  border: none;
}
.memitem {
  padding: 4px;
  background-color: #ffff;
}
.memname {
  background-color: #e1e1e4;
  white-space: nowrap;
  font-weight: bold;
}
.memdoc{
  padding-left: 10px;
}
#doxygen-ref div.memproto td {
  background-color: #e1e1e4;
}
.memproto {
  background-color: #e1e1e4;
  width: 100%;
  border-width: 1px;
  border-style: solid;
  border-color: #e1e1f4;
  font-weight: bold;
  -moz-border-radius: 8px 8px 8px 8px;
}
.memproto .deprecated,
.memname .deprecated,
.summary .deprecated {
  color: red;
}
.paramkey {
  text-align: right;
}
.paramtype {
  white-space: nowrap;
}
.paramname {
  color: #602020;
  font-style: italic;
  white-space: nowrap;
}
DIV.groupHeader {
  margin: 12px 16px 6px auto;
  font-weight: bold;
}
DIV.groupText {
  margin-left: 16px;
  font-style: italic;
  font-size: 90%;
}
TR.memlist {
  background-color: #f0f0f0;
}
P.formulaDsp {
  text-align: center;
}
IMG.formulaInl {
  vertical-align: middle;
}
SPAN.keyword,
SPAN.keywordflow {
  color: #008000;
}
SPAN.keywordtyp {
  color: #604020;
}
SPAN.comment {
  color: #800000;
}
SPAN.preprocessor {
  color: #806020;
}
SPAN.stringliteral {
  color: #002080;
}
SPAN.charliteral {
  color: #008080;
}
.mdTable {
  background-color: #e1e1e4;
  border: none;
  padding: 0;
}
.mdRow {
  padding: 8px 10px;
  border: none;
}
.mdescLeft,
.mdescRight {
  padding: 0 8px 4px 8px;
  font-size: 80%;
  font-style: italic;
  background-color: #FAFAFA;
  border: 1px none #E0E0E0;
  margin: 0;
}
.search {
  color: #039;
  font-weight: bold;
}
FORM.search {
  margin: 0 auto;
}
INPUT.search {
  font-size: 75%;
  color: #000080;
  font-weight: normal;
  background-color: #e8eef2;
}
TD.tiny{
  font-size: 75%;
}
#doxygen-ref HR {
  height: 1px;
  border: none;
  border-top: 1px solid black;
}
#doxygen-ref table,
#doxygen-ref td,
#doxygen-ref tr {
  border:none;
}
#doxygen-ref .contents H1 {
  text-align: center;
  background-color: #ffffff;
  border: 0;
}
#doxygen-ref H2 {
  margin-left: 0;
  margin-bottom: 5px;
}
#doxygen-ref CAPTION {
  font-weight: bold;
}
#doxygen-ref .contents .summary {
  line-height: 1em;
}
#doxygen-ref .contents .summary TD {
}
#doxygen-ref .contents .summary .type {
  text-align: right;
}
.memdoc {
  padding-left: 30px;
}
.memitem {
  border-top:1px solid #E5ECF9;
}
.doxygen-global {
  background-color: #ffcc66;
}