/* $Id$ */
	
body {
	background: #fff;
	color: #000;
}

.app h3, .app h4, .tabs td, .tabs th, .functnbar {
	background-image: url(../images/nw_maj.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, #navcolumn a:visited, .app a:visited, .tasknav a:visited {
	color: blue;
}

a:link.selfref, a:visited.selfref {
	color: #555 !important;
	text-decoration: none;
}

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

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

.app h3, .app h4 {
	color: #fff;
}

.app h3 {
	background-color: #333;
}

.app h3 a:link, .app h3 a:visited, .app h4 a:link, .app h4 a:visited {
	color: #fff !important;
	text-decoration: underline;
}

.app h4 {
	background-color: #888;
}

.a td {
	background: #ddd;
}

.b td {
	background: #efefef;
}

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;
}

#breadcrumbs {
	border-top: 1px solid #fff;
	background-color: #ccc;
}

#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 h3, .docs h4 {
	border-top: solid 1px #000;
}

#apphead h2 em {
	color: #777;
}

.app th {
	background-color: #bbb;
}

.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;
}

.app .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, .app h3, .app h4, #rightcol h3, pre, code, #apphead h2 small, h4, 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, #leftcol, .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 */
#bodycol h2 {
	margin-top: .3em;
	margin-bottom: .5em;
}

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

h3, h4 {
	margin-bottom: 0;
}

form {
	margin: 0;
}

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

html>body #bodycol {
	width: auto;
}

.docs {
	line-height: 1.4;
}

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

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

.app h3, .app h4 {
	padding: 5px;
	margin-right: 2px;
	margin-left: 2px;
}

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

.h3 p, .h4 p, .h3 dt, .h4 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 h3, .docs h4 {
	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;
}

.app .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 h3 {
	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;
}

#leftcol {
	width: 14em;
}

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

#breadcrumbs {
	padding: 2px 8px;
}

.app h3, .app h4, .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;
}
