/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License.
 */
body {
  font-family: Verdana, Helvetica, Arial, sans-serif;
  font-size: small;
  margin: 0;
}

div {
  /* line-height: 1.5em; */
}

a {
  color: #008800;
  text-decoration: none;
  font-weight: bold;
}

.navLink a {
  font-weight: normal;
}

.navLink {
  margin-left: 5px;
}

.navLink:first-line {
  margin-left: -5px;
}


a:link.selfref, a:visited.selfref {
}

a:link, a:visited {
}

a:active, a:hover {
  text-decoration: underline;
}

a.plain:active, a.plain:hover {
  text-decoration: none;
}

.sectionTitle a {
  text-decoration: underline;
}
.subsectionTitle a {
  text-decoration: underline;
}

span.highlight {
  font-weight: bold;
  color: #990000;
}

#layout {
  margin: 0px;
  padding: 0px;
}

#banner {
  padding: 8px;
}

#breadcrumbs {
  border-top: 1px solid #009900;
  border-bottom: 1px solid #009900;
  padding-left: 12px;
  padding-right: 12px;
  padding-top: 2px;
  padding-bottom: 2px;
  font-size: x-small;
  background-color: #dddddd;
}

#breadcrumbs td {
  font-size: x-small;
}

#breadcrumbs a {
  font-weight: bold;
}

#layout {
  /*border-top: 1px solid #009900;*/
  padding: 0px;
  margin: 0px;

}

.navSection {
  background-color: #ffffff;
  border: 1px solid #999999;
  border-top: none;
  padding: 0px;
  margin-bottom: 8px;
  font-size: small;
}

.navSection a {
  font-weight: normal;
}

.navSectionHead {
  border-top: 1px solid #999999;
  border-bottom: 1px solid #999999;
  color: #555555;
  padding: 4px;
  margin-left: 0px;
  margin-right: 0px;
  background-color: #eeeeee;
  font-weight: bold;
  font-size: x-small;
}

.navLink {
  padding-top: 2px;
  padding-bottom: 2px;
  padding-left: 14px;
  font-size: small;
}

.section {
  padding-bottom: 16px;
}

* + h1 {
  margin-top: 1.5em;
}

* + h2 {
  margin-top: 1.5em;
}

.sectionTitle, h1 {
  padding: 4px;
  border: 1px solid #aaaaaa;
  color: #007700;
  font-size: larger;
  background-color: #eee;
  color: #007700;
  font-weight: bold;
  margin-bottom: .5em;
  /* margin-top: 1em; */
}

.subsection {
  padding-left: 20px;
  margin-top: 10px;
  margin-bottom: 10px;
}

body:first-child {
  padding-top: 0px;
}

.subsectionTitle, h2 {
  padding-left: .2em;
  /* margin-top: 1em; */
  margin-bottom: .5em;
  border-bottom: 1px solid #999;
  border-left: 1px solid #999;
  background-color: white;
  font-weight: bold;
  font-size: larger;
}

.sectionTitle a {
  font-weight: normal;
}

.subsectionTitle a {
  font-weight: normal;
}

.subsubsection {
  padding-left: 30px;
}

.subsubsectionTitle, h3, .blogheading {
  font-weight: bold;
  border-bottom: 1px solid #bbb;
  padding: .1em;
  color: #555;
  margin-bottom: .5em;
}

h4 {
  margin-bottom: .5em;
  padding: .1em;
  border: 1px solid #ddd;

}

ins.inserted {
  text-decoration: none;
  font-weight: bold;
}

#leftColumn {
  width: 12em;
}

#leftColumn h3 {
  background-color: #ddd;
  border: 1px solid #ccc;
  border-bottom: 1px solid #070;
  margin-bottom: .5em;
}

#leftColumn a {
  font-weight: inherit;
}

#breadcrumbs a {
  font-weight: inherit;
}


p {
  margin: 0px;
  margin-bottom: .5em;
  line-height: 1.2em;
  padding-right: 20px;
  padding-left: 0px;
}

blockquote p {
  padding-left: 0px;
  padding-right: 0px;
}

ul {
  margin-top: 1em;
  margin-bottom: 1em;
  padding-left: 1.5em;
}

ul ul {
  margin: 0px;
  padding-left: 1em;
}

li {
  margin: 0px;
  margin-right: 15%;
  line-height: 1.2em;
}

#leftColumn {
  border-right: 1px solid #cccccc;
  background-color: #eeeeee;
  padding: 12px;
  font-size: small;
}

#leftColumn a {
  font-size: smaller;
}

#leftColumn tt a {
  font-size: inherit;
}

#leftColumn h3 a {
  font-size: inherit;
}

tt {
  font-size: larger;
}


#extraColumn {
  padding: 12px;
}

#navBox {
}

#rightColumn {
  padding: 12px;
  border-right: 1px solid #cccccc;
  font-size: small;
  padding-left: 16px;
  padding-right: 16px;
}

#contentBox {

}

table.bodyTable, table.wikitable {
  margin: 10px;
  border-collapse: collapse;
  border-spacing: 0pt;
  background-color: #eeeeee;
}

#Content table.grid {
  border: 1px solid #bbbbbb;
}

table.grid {
  padding: 0px;
  border-collapse: collapse;
  border-spacing: 0pt;
  margin-left: 1em;
  margin-right: 1em;
}

table.grid th {
  background-color: #eeeeee;
  font-size: smaller;
  padding: 4px;
  border: 1px solid #bbbbbb;
}

table.grid td {
  font-size: x-small;
  border: 1px solid #bbbbbb;
  padding: 3px;
}

table.bodyTable th, table.bodyTable td, table.wikitable th, table.wikitable td {
  border: 1px solid #999999;
  font-size: smaller;
  padding: 4px;
}


table.bodyTable th, table.wikitable th {
  text-align: left;
  background-color: #dddddd;
  border: 2px solid #999999;
  padding: 4px;
}

.nobr
  white-space: nowrap;
}

table.bodyTable td {
  padding: 4px;
}

/*
table.bodyTable th, table.wikitable th {
  border-bottom: 2px solid #999999;
}

table.bodyTable tr.a {
  background-color: #dedede;
}

table.bodyTable tr.b {
  background-color: #efefef;
}
*/

.source, .code {
  padding: 12px;
  margin: 1em;
  border: 1px solid #007700;
  border-left: 2px solid #007700;
  border-right: 2px solid #007700;
  color: #555555;
}

pre {
  padding: 12px;
  font-size: larger;
}

.java-keyword {
  color: #009900;
}

.java-object {
  color: #000099;
}

.java-quote {
  color: #990000;
}


.source, .code pre {
  margin: 0px;
  margin-left: 8px;
  padding: 0px;
}

#footer {
  padding-left: 4px;
  border-top: 1px solid #009900;
  color: #888888;
  font-size: x-small;
}

blockquote {
  border-top: 1px solid #bbbbbb;
  border-bottom: 1px solid #bbbbbb;
  border-left: 3px solid #bbbbbb;
  border-right: 3px solid #bbbbbb;
  padding: 12px;
  margin-left: 3em;
  margin-right: 3em;
  color: #666666;
  background-color: white;
  line-height: 1.5em;
}

input[type="text"] {
  margin: 0px;
  border: 1px solid #999999;
  background-color: #dddddd;
}

input.required {
  margin: 0px;
  border: 1px solid #990000;
}

input {
  border: 1px solid #999999;
}

textarea {
  border: 1px solid #999999;
}

textarea.required {
  border: 1px solid #990000;
}

label {
  font-size: smaller;
}

label.required {
  color: #990000;
}

.searchResults {
  color: black;
}

.searchResults b {
  color: #007700;
}


.linecomment { color: #bbbbbbb; }
.blockcomment { color: #bbbbbbb; }
.prepro { color: #0000BB; }
.select {}
.quote { color: #770000; }
.category1 { color: #007700; }
.category2 { color: #0000BB; }
.category3 { color: #0000BB; }

#page_title {
  border-bottom: 1px solid black;
  font-weight: bold;
  font-size: x-large;
  margin-bottom: .5em;
}

.greenbar {
  background-color: green;
}

.redbar {
  background-color: red;
}

tr.testpassed td {
  padding: 0px;
  padding-left: 1px;
  padding-right: 1px;
  margin: 0px;
}

tr td.noformatting {
  border: none;
  padding: 0px;
  padding-left: 4px;
  padding-right: 4px;
  margin: 0px;
}

.greybox {
  font-style: italic;
  font-weight: bold;
  margin-top: .5em;
  margin-bottom: .5em;
  background-color: #ddd;
  border: 1px solid #bbb;
  padding: .3em;
}

.panelContent {
  border: 1px solid #999;
  padding: 1em;
  margin: 1em;
}

.header_name {
	font-size: smaller;
	padding: 2px;
	padding-right: 1ex;
	border-right: 1px solid #555;
	background-color: #ccc;
}

.header_value {
	font-size: smaller;
	background-color: #ddd;
	padding: 2px;
}

.header_fields {
	width: 100%;
	border: 1px solid #999;
	background-color: #fff;
}

.email_body {
	margin: 2ex;
	padding: 1ex;
	padding-left: 2ex;
	padding-right: 2ex;
	border: 1px solid #999;
	font-size: smaller;
}

.email_body pre {
	padding: 0px;
	margin: 0px;
}

.email_body blockquote {
	padding: 0px;
	margin: 0px;
	border: 1px solid #ccc;
}

.msg_navblock {
	margin-bottom: 2ex;
	border: 1px solid #999;
	background-color: #fff;
}

.msg_navblock th {
	border: 1px solid #ccc;
	font-size: smaller;
}

.msg_navblock td {
	border: 1px solid #ccc;
	font-size: smaller;
}

.single_entry {
	border: 1px solid #aaa;
	padding: .5ex;
	padding-left: 1ex;
	border-left: 1px solid #090;
	margin: 2px;
	background-color: #eee;
}

.root_entry {
	border: 1px solid #aaa;
	padding: .5ex;
	padding-left: 1ex;
	border-left: 1px solid #090;
	margin-top: 8px;
	margin-bottom: 8px;
	background-color: #eee;
}

.root_entry .sub_entry {
	padding: .5ex;
	padding-left: 1ex;
	margin: 2px;
	margin-left: 1ex;
	border-left: 1px solid #999;
}

.list_entry {
	border: 1px solid #aaa;
	padding: 1ex;
	margin-top: 1ex;
	margin-bottom: 1ex;
}

.list_entry td {
	border: 1px solid #999;
}

.project_entry {
	border: 1px solid #aaa;
	padding: 1ex;
	margin-top: 1ex;
	margin-bottom: 1ex;
}
