/*
 * 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.
 */

/* Javadoc style sheet */

/* Define colors, fonts and other style attributes here to override the defaults */

/* Page background color */
body 
{
  background-color: #FFFFFF; 
  font-family: Arial, Helvetica, sans-serif; 
  font-size: 12px;
}

li.spaced { 
   margin-bottom: 0.75em;	
}

a { color: blue; }

a:visited { color: blue; }

.red { color: red; }

.green { color: green }

.blue { color: blue }

.navy { color: navy }

.maroon { color: maroon }

.htmlHeader
{
  	border: 1px solid gray;
  	margin-top: 0.75em;
  	margin-left: 0em;
	margin-bottom: 1.25em;
  	padding: 0em;
    vertical-align: baseline; 
}

.htmlExample
{
  	border: 1px solid gray;
  	margin-top: 1em;
  	margin-left: 0em;
	  margin-bottom: 1em;
  	padding: 4px;
    vertical-align: baseline; 
}

/* Code examples */
.code, .codeConfig, .codeDtd, .codeJava, .codeHtml {
	font-family: Courier New, courier;
	font-size: 10pt;
	border: 1px solid #AAAAAA;
	background-color: #FAFAFA;
	padding: 1em;
	margin-top: 1em;
	margin-bottom: 1.5em;
	margin-left: 0em;
	margin-right: 1.5em;
	white-space: pre;
}

.codeConfig 
{
}

.codeDtd 
{
	border: 1px solid #8f8ecf;
	background-color: #fffcf7;
}

.codeJava 
{
	background-color: white;
}

.codeHtml 
{
	border: 1px solid #97A9FF;
	background-color: white;
}

/* Java keyword. */
.kw {
    color: #7f0055;
    font-weight: bold;
}

/* Javadoc */
.jd {
    color: #3f5fbf;
}

/* Java comment */
.cm {
    color: #3f7f5f;
}

/* Java String literal */
.st {
    color: #2a00ff;
}

/* Web resource */
.wr {
    font-family: Courier New, courier;
	color: navy;
}

/*  form.css */

a.external {
  background: url(../../images/external.png) center right no-repeat;
  padding-right: 14px;
}
a.error {
	color: red;
}
a:visited.error {
	color: red;
}
input.disabled {
	background: lightgray;
}
input.error {
	background: yellow;
}
select.error {
	background: yellow;
}
span.error {
	color: red;
}
table.fields {
	border-width: 1px;
	padding: 0;
	vertical-align: baseline;
}
table.errors {
	border-width: 1px;
	padding: 0;
	vertical-align: baseline;
}
table.buttons {
	border-width: 1px;
	padding: 0;
	vertical-align: baseline;
	margin-top: 1em;
}

dt {
	margin-left: 2em;
	margin-bottom: 0.25em;
	margin-top: 0.5em;
}

li {
	margin-bottom: 0.25em;
	margin-top: 0.25em;
}

/* Headings */
h1 { font-size: 18px }

/* Table colors */
.TableHeadingColor     { background: #CCCCFF } /* Dark mauve */
.TableSubHeadingColor  { background: #EEEEFF } /* Light mauve */
.TableRowColor         { background: #FFFFFF } /* White */

/* Font used in left-hand frame lists */
.FrameTitleFont   { font-size: 12px; }
.FrameHeadingFont { font-size: 12px; }
.FrameItemFont    { font-size: 12px; }

/* Navigation bar fonts and colors */
.NavBarCell1    { background-color:#EEEEFF;} /* Light mauve */
.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */
.NavBarFont1    { color:#000000;}
.NavBarFont1Rev { color:#FFFFFF;}

.NavBarCell2    { background-color:#FFFFFF;}
.NavBarCell3    { background-color:#FFFFFF;}

/*
 * Table CSS style
 * 
 * This CSS style sheet was adapted from DisplayTag 1.0 - screen.css
 * http://displaytag.sourceforge.net
 */

/** Global styles **/

td a, td a:visited, td a:hover {
    text-decoration: none; 
}
td a:hover {
    text-decoration: underline;
}
thead tr {
    background-color: #fc0;
}
th.sorted {
    background-color: orange;
}
th a, th a:visited {
    color: black;
}
th a:hover {
    text-decoration: underline;
    color: black;
}
th.sorted a, th.sortable a {
	background-position: right;
	display: block;
	width: 100%;
}
th.sortable a {
	background-image: url(../img/arrow_off.png);
}
th.order1 a {
	background-image: url(../img/arrow_down.png);
}
th.order2 a {
	background-image: url(../img/arrow_up.png);
}
tr.odd {
    background-color: #fff
}
tr.tableRowEven, tr.even {
    background-color: #fea
}

ul#showsource {
	float: right;
	background-color: #eee;
	border: 1px dotted #999;
	padding: 2px 4px 2px 4px;
	margin: 5px;
	width:100px;
	list-style-type: none;
}

/** Individual Styles **/

/* isi style */
table.isi, table.isi td, table.isi th {
    border: 1px solid #666;
    border-collapse: collapse;
}
table.isi th, table.isi td {
	padding: 2px 4px 2px 4px;
	text-align: left;
	vertical-align: top;
}

/* its style */
table.its thead tr {
    background-color: #69c;
}
table.its tr.even {
    background-color: #def;
}
table.its, table.its td, table.its th {
    border: 1px solid #666;
    border-collapse: collapse;
}
table.its th, table.its td {
	padding: 2px 4px 2px 4px;
	text-align: left;
	vertical-align: top;
}

/* mars style */
table.mars thead tr {
    background-color: #9c9;
}
table.mars tr.even {
    background-color: #ccb;
}
table.mars tr.odd {
    background-color: #eec;
}
table.mars, table.mars td, table.mars th {
    border: 1px solid #666;
    border-collapse: collapse;
}
table.mars th, table.mars td {
	padding: 2px 4px 2px 4px;
	text-align: left;
	vertical-align: top;
}

/* simple style */
table.simple thead tr {
    background-color: #eee;
}
table.simple tr.even {
    background-color: #fff;
}
table.simple td.textRed {
    color: #b11;
}
table.simple, table.simple td, table.simple th {
	border: 1px solid #ccc;
	border-collapse: collapse;
}
table.simple th, table.simple td {
	padding: 2px 4px 2px 4px;
	text-align: left;
	vertical-align: top;
}

/* nocol style */
table.nocol tbody td,table.nocol tbody th {
	border-left: none;
	border-right: none;
}
table.nocol th, table.nocol td {
	padding: 2px 4px 2px 4px;
	text-align: left;
	vertical-align: top;
}

/* report style */
table.report {
    border: 1px solid #666;
}
table.report td, table.report th {
	font: menu;
}
table.report th {
	background:   buttonface;
	border-width: 1px;
	border-style: solid;
	border-color: threedhighlight threedshadow threedshadow threedhighlight;
	cursor:       hand;
}
table.report idcol {
	background: buttonface;
}
table.report tr.even{
	background-color: #C2EFEF;
}
table.report tbody {
	height: 180px;
	overflow: auto;
}
table.report {
	height: 200px;
	overflow: auto;
}
table.report tbody tr{
	height: 10px;
}
table.report th, table.report td {
	padding: 2px 4px 2px 4px;
	text-align: left;
	vertical-align: top;
}


table.sublist {
	margin: 0 0 0 0;
	width: 100%;
}
table.sublist td, table.sublist th {
	width: 50%;
}

div.exportlinks {
	background-color: #eee;
	border: 1px dotted #999;
	padding: 2px 4px 2px 4px;
	margin: -10px 0 10px 0;
	width: 79%;
}

span.export {
	padding: 0 4px 1px 20px;
	display:inline; display:inline-block;
	cursor: pointer;
}

span.excel {
	background-image: url(../img/ico_file_excel.png);
}
span.csv {
	background-image: url(../img/ico_file_csv.png);
}
span.xml {
	background-image: url(../img/ico_file_xml.png);
}
span.pdf {
	background-image: url(../img/ico_file_pdf.png);
}

span.pagebanner {
	background-color: #eee;
	border: 1px dotted #999;
	padding: 2px 4px 2px 4px;
	width: 300px;
	margin-top: 10px;
	display: block;
	border-bottom: none;
}

span.pagebanner-nolinks {
	background-color: #eee;
	border: 1px dotted #999;
	padding: 2px 4px 2px 4px;
	width: 300px;
	margin-top: 10px;
	display: block;
}

span.pagelinks {
	background-color: #eee;
	border: 1px dotted #999;
	padding: 2px 4px 2px 4px;
	width: 300px;
	display: block;
	margin-bottom: -5px;
	border-top: none;
}

span.pagelinks-nobanner {
	background-color: #eee;
	border: 1px dotted #999;
	padding: 2px 4px 2px 4px;
	width: 150px;
	display: block;
	margin-top: 10px;
	margin-bottom: -5px;
}

/* Syntax Highlighter. */

.str{color:#2A00FF;}
.kwd{color:#7F0055;
    font-weight:bold;}
.com{color:#3F7F5F;}
.typ{color:#000;}
.lit{color:#066;}
.pun{color:#660;}
.pln{color:#000;}
.tag{color:#000099;
    font-weight:bold;}
.atn{color:#009900;}
.atv{color:#000;}
.dec{color:#606;}

pre.prettyprint{
    padding:1em;
    border:1px solid #888;
    overflow:auto;
}

@media print{
    .str{color:#2A00FF;}
    .kwd{color:#7F0055;
        font-weight:bold;}
    .com{color:#3F7F5F;
        font-style:italic;}
    .typ{color:#000;
        font-weight:bold;}
    .lit{color:#044;}
    .pun{color:#440;}
    .pln{color:#000;}
    .tag{color:#000099;
        font-weight:bold;}
    .atn{color:#009900;}
    .atv{color:#000;}
}