body {
 background: #fff;
 color: #000;
  padding: 0px 0px 10px 0px;
 }

.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 #369;
 border-bottom: 1px solid #003;
 }

#banner, #banner td { 
 background: #036;
 color: #fff;
 }
#banner {
  border-bottom: 1px solid #fff;
}

#leftColumn {
 background: #eee;
 color: #000;
 border-right: 1px solid #aaa;
 border-bottom: 1px solid #aaa;
 border-top: 1px solid #fff;
}

#navcolumn {
/* bad for IE
 background: #eee;
*/
 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;
 }

#legend li.externalLink {
  background: url(../images/external-classic.png) left top no-repeat;
  padding-left: 18px;
}
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: 18px;
}

#legend li.newWindow {
  background: url(../images/newwindow-classic.png) left top no-repeat;
  padding-left: 18px;
}
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$
  
  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;
}
#organizationLogo img, #projectLogo img, #projectLogo span{
  margin: 8px;
}
