/* Reset */

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, code, pre,
del, dfn, em, img, q, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, input,
table, caption, tbody, tfoot, thead, tr, th, td {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

table { border-collapse: separate; border-spacing: 0; }
caption, th, td { text-align: left; font-weight: normal; }
table, td, th { vertical-align: middle; }

blockquote:before, blockquote:after, q:before, q:after { content: ""; }
blockquote, q { quotes: none; }

a img { border: none; }

input { border-width: 0px; }

/* Page */

body {
  font-family: Arial, sans-serif;
  font-size: 10pt;
}

#footer {
  font-size: 9pt;
  text-align: center;
  color: #858484;
  bottom: 0;
  width: 100%;
  height: 20px;
}

a[href] {
  text-decoration: underline;
  color: #315479;
}

a[href]:hover {
  text-decoration: none;
}

#types ol li > p {
  margin-top: 5px;
}

#types ol li:last-child {
  margin-bottom: 5px;
}

/*
#definition {
  padding: 6px 0 6px 6px;
  min-height: 59px;
  color: white;
}
*/

#definition {
  display: block-inline;
  padding: 5px 0px;
  height: 61px;
}

#definition > img {
  float: left;
  padding-right: 6px;
  padding-left: 5px;
}

#definition > a > img {
  float: left;
  padding-right: 6px;
  padding-left: 5px;
}

#definition p + h1 {
  margin-top: 3px;
}

#definition > h1 {
/*  padding: 12px 0 12px 6px;*/
  color: white;
  text-shadow: 3px black;
  text-shadow: black 0px 2px 0px;
  font-size: 24pt;
  display: inline-block;
  overflow: hidden;
  margin-top: 10px;
}

#definition h1 > a {
  color: #ffffff;
  font-size: 24pt;
  text-shadow: black 0px 2px 0px;
/*  text-shadow: black 0px 0px 0px;*/
text-decoration: none;
}

#definition #owner {
  color: #ffffff;
  margin-top: 4px;
  font-size: 10pt;
  overflow: hidden;
}

#definition #owner > a {
  color: #ffffff;
}

#definition #owner > a:hover {
  text-decoration: none;
}

#signature {
  background-image:url('signaturebg2.gif');
  background-color: #d7d7d7;
  min-height: 18px;
  background-repeat:repeat-x;
  font-size: 11.5pt;
/*  margin-bottom: 10px;*/
  padding: 8px;
}

#signature > span.modifier_kind {
  display: inline;
  float: left;
  text-align: left;
  width: auto;
  position: static;
  text-shadow: 2px white;
  text-shadow: white 0px 1px 0px;
}

#signature > span.symbol {
  text-align: left;
  display: inline;
  padding-left: 0.7em;
  text-shadow: 2px white;
  text-shadow: white 0px 1px 0px;
}

/* Linear super types and known subclasses */
.hiddenContent {
  display: none;
}

.toggleContainer .toggle {
  cursor: pointer;
  padding-left: 15px;
  background: url("arrow-right.png") no-repeat 0 3px transparent;
}

.toggleContainer .toggle.open {
  background: url("arrow-down.png") no-repeat 0 3px transparent;
}

.toggleContainer .hiddenContent {
  margin-top: 5px;
}

.value #definition {
  background-color: #2C475C; /* blue */
  background-image:url('defbg-blue.gif');
  background-repeat:repeat-x;
}

.type #definition {
  background-color: #316555; /* green */
  background-image:url('defbg-green.gif');
  background-repeat:repeat-x;
}

#template {
  margin-bottom: 50px;
}

h3 {
  color: white;
  padding: 5px 10px;
  font-size: 12pt;
  font-weight: bold;
  text-shadow: black 1px 1px 0px;
}

dl.attributes > dt {
  display: block;
  float: left;
  font-style: italic;
}

dl.attributes > dt.implicit {
  font-weight: bold;
  color: darkgreen;
}

dl.attributes > dd {
  display: block;
  padding-left: 10em;
  margin-bottom: 5px;
}

#template .values > h3 {
  background: #2C475C url("valuemembersbg.gif") repeat-x bottom left;  /* grayish blue */
  height: 18px;
}

#values ol li:last-child {
  margin-bottom: 5px;
}

#template .types > h3 {
  background: #316555 url("typebg.gif") repeat-x bottom left;  /* green */
  height: 18px;
}

#constructors > h3 {
  background: #4f504f url("constructorsbg.gif") repeat-x bottom left; /* gray */
  height: 18px;
}

#inheritedMembers > div.parent > h3 {
  background: #dadada url("constructorsbg.gif") repeat-x bottom left; /* gray */
  height: 17px;
  font-style: italic;
  font-size: 12pt;
}

#inheritedMembers > div.parent > h3 * {
  color: white;
}

#inheritedMembers > div.conversion > h3 {
  background: #dadada url("conversionbg.gif") repeat-x bottom left; /* gray */
  height: 17px;
  font-style: italic;
  font-size: 12pt;
}

#inheritedMembers > div.conversion > h3 * {
  color: white;
}

#groupedMembers > div.group > h3 {
  background: #dadada url("typebg.gif") repeat-x bottom left; /* green */
  height: 17px;
  font-size: 12pt;
}

#groupedMembers > div.group > h3 * {
  color: white;
}


/* Member cells */

div.members > ol {
  background-color: white;
  list-style: none
}

div.members > ol > li {
  display: block;
  border-bottom: 1px solid gray;
  padding: 5px 0 6px;
  margin: 0 10px;
  position: relative;
}

div.members > ol > li:last-child {
  border: 0;
  padding: 5px 0 5px;
}

/* Member signatures */

#tooltip {
  background: #EFD5B5;
  border: 1px solid gray;
  color: black;
  display: none;
  padding: 5px;
  position: absolute;
}

.signature {
  font-family: monospace;
  font-size: 10pt;
  line-height: 18px;
  clear: both;
  display: block;
  text-shadow: 2px white;
  text-shadow: white 0px 1px 0px;
}

.signature .modifier_kind {
  position: absolute;
  text-align: right;
  width: 14em;
}

.signature > a > .symbol > .name {
  text-decoration: underline;
}

.signature > a:hover > .symbol > .name {
  text-decoration: none;
}

.signature > a {
  text-decoration: none;
}

.signature > .symbol {
  display: block;
  padding-left: 14.7em;
}

.signature .name {
  display: inline-block;
  font-weight: bold;
}

.signature .symbol > .implicit {
  display: inline-block;
  font-weight: bold;
  text-decoration: underline;
  color: darkgreen;
}

.signature .symbol .shadowed {
  color: darkseagreen;
}

.signature .symbol .params > .implicit {
  font-style: italic;
}

.signature .symbol .deprecated {
  text-decoration: line-through;
}

.signature .symbol .params .default {
  font-style: italic;
}

#template .signature.closed {
  background: url("arrow-right.png") no-repeat 0 5px transparent;
  cursor: pointer;
}

#template .signature.opened {
  background: url("arrow-down.png") no-repeat 0 5px transparent;
  cursor: pointer;
}

#template .values .signature .name {
  color: darkblue;
}

#template .types .signature .name {
  color: darkgreen;
}

.full-signature-usecase h4 span {
  font-size: 10pt;
}

.full-signature-usecase > #signature {
  padding-top: 0px;
}

#template .full-signature-usecase > .signature.closed {
  background: none;
}

#template .full-signature-usecase > .signature.opened {
  background: none;
}

.full-signature-block {
  padding: 5px 0 0;
  border-top: 1px solid #EBEBEB;
  margin-top: 5px;
  margin-bottom: 5px;
}

#definition .morelinks {
  text-align: right;
  position: absolute;
  top: 40px;
  right: 10px;
  width: 450px;
}

#definition .morelinks a {
  color: #EBEBEB;
}

#template .members li .permalink {
  position: absolute;
  top: 5px;
  right: 5px;
}

#definition .permalink {
  position: absolute;
  top: 10px;
  right: 15px;
}

#definition .permalink a {
  color: #EBEBEB;
}

#template .members li .permalink,
#definition .permalink a {
  display: none;
}

#template .members li:hover .permalink,
#definition:hover .permalink a {
  display: block;
}

#template .members li .permalink a,
#definition .permalink a {
  text-decoration: none;
  font-weight: bold;
}

/* Comments text formating */

.cmt {}

.cmt p {
  margin: 0.7em 0;
}

.cmt p:first-child {
  margin-top: 0;
}

.cmt p:last-child {
  margin-bottom: 0;
}

.cmt h3,
.cmt h4,
.cmt h5,
.cmt h6 {
  margin-bottom: 0.7em;
  margin-top: 1.4em;
  display: block;
  text-align: left;
  font-weight: bold;
}

.cmt h3 {
  font-size: 14pt;
}

.cmt h4 {
  font-size: 13pt;
}

.cmt h5 {
  font-size: 12pt;
}

.cmt h6 {
  font-size: 11pt;
}

.cmt pre {
  padding: 5px;
  border: 1px solid #ddd;
  background-color: #eee;
  margin: 5px 0;
  display: block;
  font-family: monospace;
}

.cmt pre span.ano {
  color: blue;
}

.cmt pre span.cmt {
  color: green;
}

.cmt pre span.kw {
  font-weight: bold;
}

.cmt pre span.lit {
  color: #c71585;
}

.cmt pre span.num {
  color: #1e90ff; /* dodgerblue */
}

.cmt pre span.std {
  color: #008080; /* teal */
}

.cmt ul {
  display: block;
  list-style: circle;
  padding-left: 20px;
}

.cmt ol {
  display: block;
  padding-left:20px;
}

.cmt ol.decimal {
  list-style: decimal;
}

.cmt ol.lowerAlpha {
  list-style: lower-alpha;
}

.cmt ol.upperAlpha {
  list-style: upper-alpha;
}

.cmt ol.lowerRoman {
  list-style: lower-roman;
}

.cmt ol.upperRoman {
  list-style: upper-roman;
}

.cmt li {
  display: list-item;
}

.cmt code {
  font-family: monospace;
}

.cmt a {
  font-style: bold;
}

.cmt em, .cmt i {
  font-style: italic;
}

.cmt strong, .cmt b {
  font-weight: bold;
}

/* Comments structured layout */

.group > div.comment {
  padding-top: 5px;
  padding-bottom: 5px;
  padding-right: 5px;
  padding-left: 5px;
  border: 1px solid #ddd;
  background-color: #eeeee;
  margin-top:5px;
  margin-bottom:5px;
  margin-right:5px;
  margin-left:5px;
  display: block;
}

p.comment {
  display: block;
  margin-left: 14.7em;
  margin-top: 5px;
}

.shortcomment {
  display: block;
  margin: 5px 10px;
}

div.fullcommenttop {
  padding: 10px 10px;
  background-image:url('fullcommenttopbg.gif');
  background-repeat:repeat-x;
}

div.fullcomment {
  margin: 5px 10px;
}

#template div.fullcommenttop,
#template div.fullcomment {
  display:none;
  margin: 5px 0 0 14.7em;
}

#template .shortcomment {
  margin: 5px 0 0 14.7em;
  padding: 0;
}

div.fullcomment .block {
  padding: 5px 0 0;
  border-top: 1px solid #EBEBEB;
  margin-top: 5px;
  overflow: hidden;
}

div.fullcommenttop .block {
  padding: 5px 0 0;
  border-top: 1px solid #EBEBEB;
  margin-top: 5px;
  margin-bottom: 5px
}

div.fullcomment div.block ol li p,
div.fullcomment div.block ol li {
  display:inline
}

div.fullcomment .block > h5 {
  font-style: italic;
  font-weight: normal;
  display: inline-block;
}

div.fullcomment .comment {
  margin: 5px 0 10px;
}

div.fullcommenttop .comment:last-child,
div.fullcomment .comment:last-child {
  margin-bottom: 0;
}

div.fullcommenttop dl.paramcmts {
  margin-bottom: 0.8em;
  padding-bottom: 0.8em;
}

div.fullcommenttop dl.paramcmts > dt,
div.fullcomment dl.paramcmts > dt {
  display: block;
  float: left;
  font-weight: bold;
  min-width: 70px;
}

div.fullcommenttop dl.paramcmts > dd,
div.fullcomment dl.paramcmts > dd {
  display: block;
  padding-left: 10px;
  margin-bottom: 5px;
  margin-left: 70px;
}

/* Members filter tool */

#textfilter {
  position: relative;
  display: block;
    height: 20px;
  margin-bottom: 5px;
}

#textfilter > .pre {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    height: 23px;
    width: 21px;
    background: url("filter_box_left.png");
}

#textfilter > .input {
  display: block;
    position: absolute;
    top: 0;
    right: 20px;
    left: 20px;
}

#textfilter > .input > input {
  height: 20px;
  padding: 1px;
  font-weight: bold;
  color: #000000;
        background: #ffffff url("filterboxbarbg.png") repeat-x top left;
        width: 100%;
}

#textfilter > .post {
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    height: 23px;
    width: 21px;
    background: url("filter_box_right.png");
}

#mbrsel {
  padding: 5px 10px;
  background-color: #ededee; /* light gray */
  background-image:url('filterboxbg.gif');
  background-repeat:repeat-x;
  font-size: 9.5pt;
  display: block;
  margin-top: 1em;
/*  margin-bottom: 1em; */
}

#mbrsel > div {
  margin-bottom: 5px;
}

#mbrsel > div:last-child {
  margin-bottom: 0;
}

#mbrsel > div > span.filtertype {
  padding: 4px;
  margin-right: 5px;
  float: left;
  display: inline-block;
  color: #000000;
  font-weight: bold;
  text-shadow: white 0px 1px 0px;
  width: 4.5em;
}

#mbrsel > div > ol {
  display: inline-block;
}

#mbrsel > div > a {
  position:relative;
  top: -8px;
  font-size: 11px;
  text-shadow: #ffffff 0 1px 0;
}

#mbrsel > div > ol#linearization {
  display: table;
  margin-left: 70px;
}

#mbrsel > div > ol#linearization > li.in {
  text-decoration: none;
  float: left;
  padding-right: 10px;
  margin-right: 5px;
  background: url(selected-right.png) no-repeat;
  background-position: right 0px;
}

#mbrsel > div > ol#linearization > li.in > span{
  color: #404040;
  float: left;
  padding: 1px 0 1px 10px;
  background: url(selected.png) no-repeat;
  background-position: 0px 0px;
  text-shadow: #ffffff 0 1px 0;
}

#mbrsel > div > ol#implicits {
  display: table;
  margin-left: 70px;
}

#mbrsel > div > ol#implicits > li.in {
  text-decoration: none;
  float: left;
  padding-right: 10px;
  margin-right: 5px;
  background: url(selected-right-implicits.png) no-repeat;
  background-position: right 0px;
}

#mbrsel > div > ol#implicits > li.in > span{
  color: #404040;
  float: left;
  padding: 1px 0 1px 10px;
  background: url(selected-implicits.png) no-repeat;
  background-position: 0px 0px;
  text-shadow: #ffffff 0 1px 0;
}

#mbrsel > div > ol > li {
/*  padding: 3px 10px;*/
  line-height: 16pt;
  display: inline-block;
  cursor: pointer;
}

#mbrsel > div > ol > li.in {
  text-decoration: none;
  float: left;
  padding-right: 10px;
  margin-right: 5px;
  background: url(selected-right.png) no-repeat;
  background-position: right 0px;
}

#mbrsel > div > ol > li.in > span{
  color: #404040;
  float: left;
  padding: 1px 0 1px 10px;
  background: url(selected.png) no-repeat;
  background-position: 0px 0px;
  text-shadow: #ffffff 0 1px 0;
}

#mbrsel > div > ol > li.out {
  text-decoration: none;
  float: left;
  padding-right: 10px;
  margin-right: 5px;
}

#mbrsel > div > ol > li.out > span{
  color: #747474;
/*  background-color: #999; */
  float: left;
  padding: 1px 0 1px 10px;
/*  background: url(unselected.png) no-repeat;*/
  background-position: 0px -1px;
  text-shadow: #ffffff 0 1px 0;
}
/*
#mbrsel .hideall {
  color: #4C4C4C;
  line-height: 16px;
  font-weight: bold;
}

#mbrsel .hideall span {
  color: #4C4C4C;
  font-weight: bold;
}

#mbrsel .showall {
  color: #4C4C4C;
  line-height: 16px;
  font-weight: bold;
}

#mbrsel .showall span {
  color: #4C4C4C;
  font-weight: bold;
}*/

.badge {
  display: inline-block;
  padding: 2px 4px;
  font-size: 11.844px;
  font-weight: bold;
  line-height: 14px;
  color: #ffffff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  white-space: nowrap;
  vertical-align: baseline;
  background-color: #999999;
  padding-right: 9px;
  padding-left: 9px;
  -webkit-border-radius: 9px;
     -moz-border-radius: 9px;
          border-radius: 9px;
}

.badge-red {
  background-color: #b94a48;
}
