body {
 background: #fff;
 color: #000;
 }

.contentBox h2 {
 color: #fff;
 background-color: #036;
 }

.contentBox h3 {
 color: #fff;
 background-color: #888;
 }

.a td { 
 background: #ddd;
 color: #000;
 }

.b td { 
 background: #efefef;
 color: #000;
 }

.contentBox th {
 background-color: #bbb;
 color: #fff;
 }

div#banner {
 border-top: 1px solid #fff;
 border-bottom: 1px solid #fff;
 }

#banner, #banner td { 
 background: #fff;
 color: #fff;
 }

#leftColumn {
 background: #fff;
 color: #000;
 border-right: 1px solid #aaa;
 border-bottom: 1px solid #aaa;
 border-top: 1px solid #fff;
}

#navcolumn {
/* bad for IE
 background: #fff;
*/
 color: #000;
 border-right: none;
 border-bottom: none;
 border-top: none;
 }

#breadcrumbs {
 background-color: #ddd;
 color: #000;
 border-top: 1px solid #fff;
 border-bottom: 1px solid #aaa;
 }

.source {
 background-color: #fff;
 color: #000;
 border-right: 1px solid #888; 
 border-left: 1px solid #888; 
 border-top: 1px solid #888; 
 border-bottom: 1px solid #888; 
 margin-right: 7px;
 margin-left: 7px;
 margin-top: 1em;
 }

.source pre {
 margin-right: 7px;
 margin-left: 7px;
 }

a[name]:hover, #leftColumn a[name]:hover {
 color: inherit !important;
 }

a:link, #breadcrumbs a:visited, #navcolumn a:visited, .contentBox a:visited, .tasknav a:visited {
 color: blue;
 }

a:active, a:hover, #leftColumn a:active, #leftColumn a:hover {
 color: #f30 !important;
 }

a:link.selfref, a:visited.selfref {
 color: #555 !important;
 }

a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
  background: url(../images/external-classic.png) right center no-repeat;
  padding-right: 15px;
}

a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {
  background: url(../images/newwindow-classic.png) right center no-repeat;
  padding-right: 18px;
}

h2, h3 {
 margin-top: 1em;
 margin-bottom: 0;
 }

img.handle {
 border: 0;
 padding-right: 2px;
}

#navcolumn div div  {
 background-image: none;
 background-repeat: no-repeat;
}

#navcolumn div div {
  padding-left: 10px;
}
/* $Id: maven-classic.css,v 1.3 2004/05/18 09:23:28 aheritier Exp $
	
	This file defines basic default formatting for HTML conforming to Tigris application style. To extend or override these rules for your instance, edit inst.css instead of this file. */

/* colors, backgrounds, borders, link indication */
.contentBox h2, .contentBox h3, .tabs td, .tabs th, .functnbar {
	background-image: url(../images/nw_maj_rond.gif);
	background-repeat: no-repeat;
}

.functnbar, .functnbar2 {
	background-color: #aaa;
}

.functnbar2, .functnbar3 {
	background-color: #aaa;
	background-image: url(../images/sw_maj_rond.gif);
	background-repeat: no-repeat;
	background-position: bottom left;
}

.functnbar3 {
	background-color: #ddd;
	background-image: url(../images/sw_med_rond.gif);
}

.functnbar, .functnbar2, .functnbar3 {
	color: #000;
}

.functnbar a, .functnbar2 a, .functnbar3 a {
	color: #000;
	text-decoration: underline;
}

#navcolumn .body div, body.docs #toc li li {
	background-image: url(../images/strich.gif);
	background-repeat: no-repeat;
	background-position: .5em .5em;
}

#searchbox .body div, #navcolumn .body .heading {
	background-image: none;
}

a:link.selfref, a:visited.selfref {
	text-decoration: none;
}

#leftColumn a, #breadcrumbs a {
	text-decoration: none;
}

/* Unsure of this. TODO */
.contentBox h2 a:link, .contentBox h2 a:visited, .contentBox h3 a:link, .contentBox h3 a:visited {
	color: #fff !important;
	text-decoration: underline;
}

table, th, td {
	border: none;
}

div.colbar {
	background: #eee;
	border-color: #999 #EEE #EEE #999;
	border-width: 1px;
	border-style: solid;
}

.toolgroup {
	background: #efefef;
}

.toolgroup .label {
	border-bottom: 1px solid #666;
	border-right: 1px solid #666;
	background: #ddd;
	color: #555;
}

.toolgroup .body {
	border-right: 1px solid #aaa;
	border-bottom: 1px solid #aaa;
}

#main {
	border-top: 1px solid #999;
}

#rightcol div.www, #rightcol div.help {
	border: 1px solid #ddd;
}

body.docs div.docs {
	background-color: #fff;
	border-left: 1px solid #ddd;
	border-top: 1px solid #ddd;
}

#helptext .label {
	background-image: url(../images/icon_help_sml.gif);
	background-repeat: no-repeat;
	background-position: 97%;
}

body.docs {
	background: #eee url(../images/help_logo.gif) top right no-repeat !important;
}

.docs h2, .docs h3 {
	border-top: solid 1px #000;
}

#apphead h2 em {
	color: #777;
}

.tabs th {
	border-right: 1px solid #333;
	background-color: #ddd;
	color: #fff;
	border-left: 1px solid #fff;
}

.tabs td {
	background-color: #999;
	border-bottom: 1px solid #fff;
	border-right: 1px solid #fff;
	border-left: 1px solid #fff;
}

.tabs {
	border-bottom: 6px #ddd solid;
}

.tabs th, .tabs th a:link, .tabs th a:visited {
	color: #555;
}

.tabs td, .tabs td a:link, .tabs td a:visited {
	color: #fff;
}

.tabs a {
	text-decoration: none;
}

.axial th {
	background-color: #ddd;
	color: black;
}

.alert {
	background-color: #ff9;
}

.expandedwaste {
	background: url(../images/icon_arrowwaste2_sml.gif) no-repeat;
}

.collapsedwaste {
	background: url(../images/icon_arrowwaste1_sml.gif) no-repeat;
}

.filebrowse .expanded, .filebrowse-alt .expanded {
	background-image: url(../images/icon_arrowfolderopen2_sml.gif);
	background-repeat: no-repeat;
}

.filebrowse .collapsed, .filebrowse-alt .collapsed {
	background-image: url(../images/icon_arrowfolderclosed1_sml.gif);
	background-repeat: no-repeat;
}

.filebrowse .leafnode, .filebrowse-alt .leafnode {
	background-image: url(../images/icon_folder_sml.gif);
	background-repeat: no-repeat;
}

.filebrowse .leaf, .filebrowse-alt .leaf {
	background-image: url(../images/icon_doc_sml.gif);
	background-repeat: no-repeat;
}

.sortup {
	background: url(../images/icon_sortup.gif) no-repeat;
}

.sortdown {
	background: url(../images/icon_sortdown.gif) no-repeat;
}

.collapsedwaste {
	background: url(../images/icon_arrowwaste1_sml.gif) no-repeat;
}

body .grid td {
	border-top: 1px solid #ccc;
	border-left: 1px solid #ccc;
	background-color: transparent;
}

.confirm {
	color: #090;
}

.info {
	color: #069;
}

.errormessage, .warningmessage, .donemessage, .infomessage {
	border-top: 5px solid #900;
	border-left: 1px solid #900;
	background-image: url(../images/icon_error_lrg.gif);
	background-repeat: no-repeat;
	background-position: 5px 1.33em;
}

.warningmessage {
	background-image: url(../images/icon_warning_lrg.gif);
	border-color: #c60;
}

.donemessage {
	background-image: url(../images/icon_success_lrg.gif);
	border-color: #090;
}

.infomessage {
	background-image: url(../images/icon_info_lrg.gif);
	border-color: #069;
}

.docinfo {
	background: url(../images/icon_doc_lrg.gif) no-repeat;
}

.dirinfo {
	background: url(../images/icon_folder_lrg.gif) no-repeat;
}

.memberinfo {
	background: url(../images/icon_members_lrg.gif) no-repeat;
}

.usergroupinfo {
	background: url(../images/icon_usergroups_lrg.gif) no-repeat;
}

.errormark, .warningmark, .donemark, .infomark {
	background: url(../images/icon_error_sml.gif) no-repeat;
}

.warningmark {
	background-image: url(../images/icon_warning_sml.gif);
}

.donemark {
	background-image: url(../images/icon_success_sml.gif);
}

.infomark {
	background-image: url(../images/icon_info_sml.gif);
}

.cvsdiff, .cvsblame {
	background-color: #ccc;
}

.cvsdiffadd {
	background-color: #afa;
}

.cvsdiffremove {
	background-color: #faa;
}

.cvsdiffchanges1 {
	background-color: #ff7;
}

.cvsdiffchanges2 {
	background-color: #ff7;
}

li.selection ul a {
	background: #fff;
}

.band1 {
	color: #fff;
	background-color: #663;
}

.band2 {
	color: #fff;
	background-color: #66C;
}

.band3 {
	background-color: #C99;
}

.band4 {
	background-color: #CFF;
}

.band5 {
	color: #fff;
	background-color: #336;
}

.band6 {
	color: #fff;
	background-color: #966;
}

.band7 {
	background-color: #9CC;
}

.band8 {
	background-color: #FFC;
}

.band9 {
	color: #fff;
	background-color: #633;
}

.band10 {
	color: #fff;
	background-color: #699;
}

.band11 {
	background-color: #CC9;
}

.band12 {
	background-color: #CCF;
}

.band13 {
	color: #fff;
	background-color: #366;
}

.band14 {
	color: #fff;
	background-color: #996;
}

.band15 {
	background-color: #99C;
}

.band16 {
	background-color: #FCC;
}

.contentBox .helplink, #helptext .helplink {
	cursor: help;
}

.legend th, .bars th {
	background-color: #fff;
}

/* font and text properties, exclusive of link indication, alignment, text-indent */
body, th, td, input, select {
	font-family: Verdana, Helvetica, Arial, sans-serif;
}

code, pre {
	font-family: 'Andale Mono', Courier, monospace;
}

body, .contentBox h2, .contentBox h3, #rightcol h2, pre, code, #apphead h2 small, h3, th, td {
	font-size: x-small;
	voice-family: "\"}\"";
	voice-family: inherit;
	font-size: small;
}

small, div#footer, div#login, div.tabs th, div.tabs td, input, select, .paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs, .courtesylinks, #rightcol div.help, .colbar, .tasknav, body.docs div#toc, #leftColumn, .legend, .bars {
	font-size: xx-small;
	voice-family: "\"}\"";
	voice-family: inherit;
	font-size: x-small;
}

.tabs td, .tabs th, dt, .tasknav .selfref, #login .username, .selection {
	font-weight: bold;
}

li.selection ul {
	font-weight: normal;
}

#apphead h2 em {
	font-style: normal;
}

#banner h1 {
	font-size: 1.25em;
}

/* box properties (exclusive of borders), positioning, alignments, list types, text-indent */
#bodyColumn h2 {
	margin-top: .3em;
	margin-bottom: .5em;
}

p, ul, ol, dl, .bars table {
	margin-top: .67em;
	margin-bottom: .67em;
}

form {
	margin: 0;
}

#bodyColumn {
	padding-left: 12px;
	padding-right: 12px;
	width: 100%;
	voice-family: "\"}\"";
	voice-family: inherit;
	width: auto;
}

html>body #bodyColumn {
	width: auto;
}

.docs {
	line-height: 1.4;
}

ol ol {
	list-style-type: lower-alpha;
}

ol ol ol {
	list-style-type: lower-roman;
}

.contentBox h2, .contentBox h3 {
	padding: 5px;
	margin-right: 2px;
}

.contentBox td, .contentBox th {
	padding: 2px 3px;
}

.h2 p, .h3 p, .h2 dt, .h3 dt {
	margin-right: 7px;
	margin-left: 7px;
}

.tasknav {
	margin-bottom: 1.33em;
}

div.colbar {
	padding: 3px;
	margin: 2px 2px 0;
}

.tabs {
	margin-top: .67em;
	margin-right: 2px;
	margin-left: 2px;
	padding-left: 8px;
}

.tabs td, .tabs th {
	padding: 3px 9px;
}

#rightcol div.www, #rightcol div.help {
	padding: 0 .5em;
}

body.docs #toc {
	position: absolute;
	top: 15px;
	left: 0px;
	width: 120px;
	padding: 0 20px 0 0;
}

body.docs #toc ul, #toc ol {
	margin-left: 0;
	padding-left: 0;
}

body.docs #toc li {
	margin-top: 7px;
	padding-left: 10px;
	list-style-type: none;
}

body.docs div.docs {
	margin: 61px 0 0 150px;
	padding: 1em 2em 1em 1em !important;
}

.docs p+p {
	text-indent: 5%;
	margin-top: -.67em;
}

.docs h2, .docs h3 {
	margin-bottom: .1em;
	padding-top: .3em;
}

.functnbar, .functnbar2, .functnbar3 {
	padding: 5px;
	margin: .67em 2px;
}

.functnbar3 {
	margin-top: 0;
}

body {
	padding: 1em;
}

body.composite, body.docs {
	margin: 0;
	padding: 0;
}

th, td {
	text-align: left;
	vertical-align: top;
}

.right {
	text-align: right !important;
}

.center {
	text-align: center !important;
}

.axial th, .axial th .strut {
	text-align: right;
}

.contentBox .axial td th {
	text-align: left;
}

body .stb {
	margin-top: 1em;
	text-indent: 0;
}

body .mtb {
	margin-top: 2em;
	text-indent: 0;
}

.courtesylinks {
	margin-top: 1em;
	padding-top: 1em;
}

dd {
	margin-bottom: .67em;
}

.toolgroup {
	margin-bottom: 6px;
}

.toolgroup .body {
	padding: 4px 4px 4px 0;
}

.toolgroup .label {
	padding: 4px;
}

.toolgroup .body div {
	padding-bottom: .3em;
	padding-left: 1em;
}

.toolgroup .body div div {
	margin-top: .3em;
	padding-bottom: 0;
}

.tier1 {
	margin-left: 0;
}

.tier2 {
	margin-left: 1.5em;
}

.tier3 {
	margin-left: 3em;
}

.tier4 {
	margin-left: 4.5em;
}

.tier5 {
	margin-left: 6em;
}

.tier6 {
	margin-left: 7.5em;
}

.tier7 {
	margin-left: 9em;
}

.tier8 {
	margin-left: 10.5em;
}

.tier9 {
	margin-left: 12em;
}

.tier10 {
	margin-left: 13.5em;
}

.filebrowse .expanded, .filebrowse .collapsed {
	padding-left: 34px;
}

.filebrowse .leafnode, .filebrowse .leaf {
	padding-left: 20px;
}

.messagechild {
	padding-left: 34px;
}

.filebrowse-alt .expanded, .filebrowse-alt .collapsed, .filebrowse-alt .leaf, .filebrowse-alt .leafnode, .expandedwaste, .collapsedwaste, .sortup, .sortdown {
	/* hide from macie5\*/
	float: left;
	/* resume */
	display: inline-block;
	height: 15px;
	width: 34px;
	padding-left: 0 !important;
}

.filebrowse-alt .leaf, .filebrowse-alt .leafnode, .sortup, .sortdown {
	width: 20px;
}

.filebrowse ul, .filebrowse-alt ul {
	list-style-type: none;
	padding-left: 0;
	margin-left: 0;
}

.filebrowse ul ul, .filebrowse-alt ul ul {
	margin-left: 1.5em;
	margin-top: 0;
	padding-top: .67em;
}

.filebrowse li, .filebrowse-alt li {
	margin-bottom: .67em;
}

td.filebrowse h2 {
	margin-top: 0;
}

.errormessage, .warningmessage, .donemessage, .infomessage, .docinfo, .dirinfo, .memberinfo, .usergroupinfo {
	margin: .67em 0;
	padding: .33em 0 .67em 42px;
	min-height: 32px;
}

.errormark, .warningmark, .donemark, .infomark {
	padding-left: 20px;
	min-height: 15px;
}

.alt {
	display: none;
}

#banner h1 {
	margin: 0;
}

.axial th, .axial th .strut, #leftColumn .strut {
	width: 12em;
}

#breadcrumbs {
	padding: 2px 8px;
}

/* Bad for IE
.contentBox h2, .contentBox h3, .bars {
	clear: both;
}
*/

.legend {
	float: right;
}

.legend th, .bars th {
	text-align: right;
	padding-left: 1em;
}

.bars table {
	table-layout: fixed;
}

.bars th {
	width: 12em;
}

#projectdocumentlist td.filebrowse-alt {
	padding-right: .75em;
}
