/*Openoffice branding AKA: clean up the mess from tigris.css*/

.h2 h2 {
	background-color: #06348C;
	margin-left: 2px; /* compensate table-border */
	margin-bottom: 0px;
	font-size: 1em !important;
	font-weight: bold !important; 
	background-image: url(../images/nw_maj_rond.gif);
	background-repeat: no-repeat;
}

/* imagine that in tigris.css h2 h3 and h4 have clear: both defined... */
h2, h3, h4 {
	clear: none;
}

div.h2 {
	margin: 0px;
}

div.h2 + div.h2 { /* if a div.h2 follows another div.h2 add some spacing at the top */
	margin-top: 1em;
}

.h2 {
	border-left: 0px solid #06348C;
	padding-left: 0px;
}
	
.h3 {
	border-top: 6px solid #06348C;
}

h3 {
	color: #06348C;
}

#login, #login a, #loginbox, #loginbox a {
	color: #000;
}

/*--------------------------- Global Layout ---------------------------*/
body,html {
    margin: 0px;
    padding: 0px;
    width: 100%;   
}

/*--------------------------- Global Elements ---------------------------*/
img {
    border: none;
}
a {
    color: #06348C;
}
a:hover {
    color: #698ed1 !important;
}
input.inputtext {
    border: 1px solid #698ed1;
    background: #f6f8fb;
}
input.inputtext:hover {
    background: #fff;
}
/*----------------Standard table design------------------------------------*/
table, th, td {
	border: none;
}
/* might move this to global styles? */
/*table {
  border-collapse: collapse;
	border-bottom: #f6f8fb;
	width: 98%;
}
td {
	background: #f6f8fb url("/branding/images/lightbluefadeout.gif") repeat-y top right;
  margin: 0px;
	clear: none;
	padding: 4px;	
	width: 74%;
	border-top: 3px #fff solid;
}
thead td {
  width: 100%;
	font-size: 1.2em;
	color: #06348C;
	margin-top: 0px;
	background: #DEE4EE url("/branding/images/lesslightbluefadeout.gif") repeat-y top right;
	border-bottom: solid 1px #e9edf4;
	font-weight: bold; 
}
td.headcol { 
	background: #ecf1f5;
	color: #698ed1;
	text-align: right;
	width: 24%;
	padding: 4px;
	font-weight: bold;
	border-bottom: #f6f8fb;
	margin-bottom: .4em;	
}
*/
.nonscreen { /* for commentary not meant for display on screen */ 
    display: block;
    overflow: hidden;
    width: 0px;
    height: 0px;
    margin: 0px;
    padding: 0px;
}
.nomarginnopadding { /*NOT SURE IF STILL IN USE */
  padding: 0px;
  margin: 0px;
}
.superscript {
    vertical-align:super;
    font-size:75%;
    line-height:110%;
}
.indent {
    margin-left:.25in;
}

/*--------------------------- Header ---------------------------*/
#banner {
    float: left;
    width: 100%;
    background-color: #fff;
    color: #000;
    border-top: none;
    padding:0px;
    margin:0px;
}
#banner img {
    float: left;
    clear: none;
    margin: 0.5em;    
}
#login, #loginbox, #searchboxbanner {
    float: right;
    clear: none;
    width: 50%;
    text-align: right;
    margin: 0.5em;
    font-size: .9em;
}
#login p, #loginbox p, #searchboxbanner p {
    margin: 0px;
    padding: 0px;
}



/*--------------------------- NavBar ---------------------------*/
/* modify the toptabs - want one single line without additional spacing*/
#toptabs {
	float: left;
    padding: 0px;
    margin: 0px;
    margin-top: 0.5em;
    background: #06348C;
    width: 100%;
    border-bottom:none;
    font-size: 1em;
    }
    
#toptabs ul {
    float: left;
    margin: 0px;
    padding: 0px;
    width: 100%;
    list-style: none;
    color: #fff;
    font-weight: bold;
    border-bottom: none; /* maybe we want this border for the whole bar?*/
   }
   
#toptabs li {
   float: left;
    color: #fff;
   }
   
#toptabs a, #toptabs a:hover {
    float: left;
    padding: 0.3em 1em;
    text-decoration: none;
    color: #fff;    
}

#toptabs a:hover { 
    background: #fff;
    color: #698ed1;
}

#toptabs li.th a  {
    background: #fff;
    color: #06348C !important;
}

.tabs {
	margin-top:0px;
}




/*--------------------------- ContextInfo ---------------------------*/
/* meant for breadcrumbs, maybe hints etc., has a shadow as background... */

.contentpart#contextualinformation {
    display: block;
    font-size: .8em;
    width: 100%;
    float: left;
    margin: 0px;
    padding: 0px;
    background: url("../images/shadow.gif");
    background-repeat: repeat-x;
    text-align: right;
    height: 24px;
    margin-top: -1px;
   }
#breadcrumbs {
    text-align: left;
    /* compensate margin set for contextualinformation */
    background: none;
    margin-top: 4px; 
    border: none 0px;
    width: auto;
    float: left;
    position:absolute;
	
   }

/*--------------------------- Body Layout ---------------------------*/
#body {
    float: left;
    width: 100%;
    margin: 0px;
		padding: 0px;
		background: #fff;
		color: #000;
}
#main{
    	float:left;
    	border-top: none 0px;
		width: 100%;
		background: #fff;
		color: #000;
}
table#main {
	float: left;
    border-collapse: collapse;
		background: #fff;
		color: #000;
}

table#main + th, table#main + td {
	padding: 0px;
}
/* width for the communitynewscolumn */
td#communitynews {
    width: 20%;
}
#bodytd {
		background: #fff;
		color: #000;
    padding: 5px;
}
#bodycol {
		background: #fff;
		color: #000;
		padding-left: 0px;
		padding-bottom: 0px;
}
#navcol {
    margin-right: -4px; 
    /* width for the left navbar */
    width: 10%;
}



/*--------------------------- NavColumn Layout ---------------------------*/

.navgroup {
    background: #fff;
    background-image: none !important;
    font-size: 1.1em;
  }
  
.navgroup div.body{
    background-image: none !important;
    padding-left: 0px;
  }

.navgroup dt, .navgroup div.label {
    background-color: #DEE4EE;
	/* !important to override div-rules from tigris.css */
    background-image: url("../images/lesslightbluefadeout.gif") !important;
    background-repeat: repeat-y !important; 
    background-position: top right !important;
    padding-top: 4px;
    padding-left: 4px;
    color: #06348C;
    border: none;
   }

.navgroup dd {
    border-right: 0px none;
    border-bottom:none;
}

#mytools, #projecttools, #admintools, #communitytools, #almleftnav {
	padding: 0 0px 0px 0px;
	margin: 0px 0 6px 0px;
	border:none;
}

#mytools dt, #projecttools dt, #admintools dt, #communitytools dt, #almleftnav dt {
	background-color: #DEE4EE;
	border-bottom: 0px solid #f00;
}

#mytools dd, #projecttools dd, #admintools dd, #communitytools dd, #almleftnav dd {
	border-top: none;
	padding-top: 0px;
}

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

#helptext {
	background-color: #f6f8fb;
}

#helptext dt {
    margin-top: 1em;
    background-color: #f0f0fb;
    border: none 0px;
}

#helptext dd {
 border: none 0px;
}

/* ------------------------------------------------------------------------------------------------*/
/* font and text properties, exclusive of link indication, alignment, text-indent */

#bodycol a:link, #bodycol a:visited {
	color: #06348C;
}

#loginbox a:link, #loginbox a:visited, #tasknav a:link, #tasknav a:visited, #navcol a:link, #navcol a:visited, .application a:link, .application a:visited, .tasknav a:link, .tasknav a:visited, #breadcrumbs a:link, #breadcrumbs a:visited, .docs a:link, .docs a:visited {
	color: #06348C !important;
}

#loginbox a:hover, #loginbox a:active, #tasknav a:hover, #tasknav a:active, #navcol a:hover, #navcol a:active, .application a:hover, .application a:active, .tasknav a:hover, .tasknav a:active, #breadcrumbs a:hover, #breadcrumbs a:active, .docs a:hover, .docs a:active {
	color: #698ed1 !important; 
}

#bodycol, #bodycol table td, #bodycol table th {
	font-size: 100% !important;
	line-height:125%;
}

/* box properties (exclusive of borders), positioning, alignments, list types, text-indent */

#topmodule {
    margin: -4px -4px 0 -4px;
	background-color: #fff !important;
	border-bottom: 0px none;
}
#topmodule #issueid {
	border-right: 0px none;
}

#topmodule td {
    vertical-align: middle;
    padding: 0px 0px;
}


/*--------------------------- Right Column Layout ---------------------------*/
#rightcol h3 {
    background-color: #036;
    color: #fff;
}
#rightcol div.www, #rightcol div.help {
    border: none;
}
#rightcol div.rightcollinks {
    border: 1px solid #036;
}
#rightcol a {
    color: #036;
    text-decoration: none;
}
.blue {
    background-color: #369;
    color: #fff;
    text-align: center;
}

/* IZ now uses the .blue class for features (insted of hard-formatting) */

#issuezilla.application .blue {
	color: #036;
	text-align: left;
}

.blue a {
    color: #fff; /* !important; */
}
hr {
    /* adding a zero to the color*/
    border: 1px solid #000080;
/*    height: 1px;*/
}
#rightcol div.help, #rightcol div.www, #rightcol div.www th, #rightcol div.www td {
    font-size: xx-small;
    voice-family: "\"}\"";
    voice-family: inherit;
    font-size: x-small;
}
/* box properties (exclusive of borders), positioning, alignments, list types, text-indent */
#rightcol div.www, #rightcol div.help {
    padding: 0px;
}
#rightcol .rightcollinks {
    padding-bottom: 2px;
}
#rightcol h3 {
    padding: 3px;
}
#quickdownload .body div {
    padding-left: 2em;
}
.blue {
     padding: 2px;
}
/* added from 1.1.3 OOo 2003-09-17 */
@page Acta1
    {
    margin:1.0in 1.25in 1.0in 1.25in;
    }
div.Acta1
    {
    page:Acta1;
    }
.alt1 {
     text-align:center; 
     vertical-align: top;
} 
.alt3 {
    font-weight:bold; 
    background-color:#CCCCCC;
    } 
.graybold {
    font-weight:bold;
    background-color:#CCCCCC;
    } 

.alt4 {
     font-weight:bold; 
     background-color:#99CCFF;
    } 
.alt2 {
    color:#FFFFFF; 
    background-color:#00315A; 
    text-align:left; 
    } 

.darkblueleftmiddle {
    color:#FFFFFF;
    background-color:#00315A;
    text-align:left; 
    vertical-align: middle;
} 

/* classes should not begin with a digit. if it does, the numbers have to be escaped */
.\3031centmidd {
    color:#FFFFFF;
    background-color:#00315A;
    text-align:center; 
    } 
    
.darkbluebold {
    font-weight:bold;
    color:#FFFFFF;
    background-color:#00315A; 
    text-align:left;
} 

.darkblueleft {
    font-weight:bold;
    color:#FFFFFF;
    background-color:#00315A; 
    text-align:left;
    } 

.alt5 {
    color:#333333; 
    font-weight:bold;  
    text-align: left; 
    white-space: normal; 
    padding: 3pt;
    } 
    
    
.alt6 {
    font-weight:bold; 
    text-align:left; 
    background-color:#F0F0F0;
    } 
    
    
.alt7 {
    font-weight:bold; 
    text-align:left; 
    background-color:#FFFFFF;
    }
    
    
.alt8 {
font-weight:bold;  text-align:left; vertical-align:top; background-color:#FFFFFF;
    
    }
.alt8b {
    font-weight:bold; 
    text-align:left; 
    vertical-align:top; 
    background-color:#F0F0F0;
    }    
    
    
.bigboldleft {
    font-weight:bold; 
    text-align: left; 
    vertical-align:top;
    }    

.alt9 {
     text-align:left; 
     vertical-align:top; 
     background-color:#FFFFFF;
    }    
    
    
.alt9b {
    text-align:left; 
    vertical-align:top; 
    background-color:#F0F0F0;
    }    
    
    
.tableF0 {
     background-color:#F0F0F0;
    }    
    
    
.alt10 {
    font-size:85%; 
    text-align:left;
    } 
    
.alt12 {
     text-align:center;
     font-weight: bold; 
     color:#0000FF;
    }
    
.blueboldcenter {
    text-align:center;
     font-weight:bold; 
     color:#0000FF;
    }
    
.alt14 {
     text-align:right;
    }

.textcenter {
     text-align:center;
    }
.alt15 {
     text-align:center;
    }
.boldcenter {
    font-weight:bold; 
    text-align:center;
    }
.fontwhite {
    color:#FFFFFF;
    }
.fontwhite {    
     color:#FFFFFF;
    }
.fontwhitesmall {
    color:#FFFFFF; 
     text-align:left; 
    font-weight:bold;
    }
    
.fontredochre {
    text-align:left;
    color: #cc3300;
    }
    
.small {
    font-size:85%;
    }

.smaller {
    font-size:75%;
    }
    
/* h2 { */
/*     color:#c30; */
/*     } */
    
.subp1em {
    text-indent:1em;
    }
.subp2em {
    text-indent:2em;
    }
.subp3em {
    text-indent:3em;
    }
.subp4em {
    text-indent:4em;
    }
    
.it_nav {
    color:#ffffff; background-color:#000080; font-weight:bold;
}
.liteblue {
    background-color:#99CCFF; 
    font-weight:bold;
    }

.liteblue-back {
    background-color:#99CCFF;
    }

.spaced {
    font-style: normal;
    line-height: 160%;
}

p.spaced, th.spaced, td.spaced, div.spaced, li.spaced, dd.spaced, dt.spaced
 {
    font-style: normal;
    line-height: 160%;
}


p.spaced13, th.spaced13, td.spaced13, div.spaced13, li.spaced13, dd.spaced13, dt.spaced13
 {
    font-style: normal;
    line-height: 140%;
}

.Header 
{
    font-weight:bold;
    font-size:105%;
    }
		
.app h3, .application .h2 h2 {
	background-color: #06348c;  /* b3c7d4 */
	color:#fff;
}

.app h3 a, .application h2 a {
  color: #ddd;
}

.app h3 a:hover, .application h2 a:hover {
  color: #fff;
}

/*font styles for h1,h2, div, table and a  */

h2 {
	font-size: 1.5em;
	font-weight: normal;
	margin-bottom: 0.5em;
}
h1 {
	font-weight: bold;
	font-size: 2em;
	line-height: normal;
}
#apphead h1 {
	/* issuezilla, etc. - used to be h2, now h1 */
	font-size: 1.5em;
}

/* 
#longdescription h1 {
	font-size: 2em;
	font-weight: bold;
	font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
}
			
#longdescription h2 {
	background-color: #fff;
	color: #000;
	font-weight:normal;
	font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
	font-size:1.3em;
	
}

#longdescription table  {
	background-color: #fff;
	color: #000;
	font-weight:normal;
	}

#longdescription th {
	background-color: #99CCFF;
}

#longdescription div {
	font-size:1em;
	margin-right: 0px;
	margin-left: 0px;
}

*/
div#longdescription {
	border: 1px solid white; /* this is a workaround - if not given, that div adds some top-spacing*/
}
#domainfaq h2, #domainfeedback h2 {
	background-color: #fff;
	color: #000;
	font-weight:normal;
	font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif;
	font-size:1.5em;
}

#main, #main dd a {
	font-size:1em;	
}

/*end headings*/


/*--------------------------- Footer ---------------------------*/

#footer {
   float: left;
    display: block;
    margin: 0px;
    padding: 0px;
    width: 100%;
    margin-top: -1px;
    color: #777;
    text-align: center;
    border-top: solid 1px #ddd;
    margin-top: 1em;
    font-size: .8em;
}
#footer .horizontalmenu {
    padding-top: 10px;
    font-size: 1.2em;    
}
#footer li {
    display: inline;
    /* spacing between the links */
    padding: 0em 1em;
}
#sponsorsun {
   float: left;
    margin:.5em;
    margin-bottom: 20px;
}
#sponsorcollabnet {
    vertical-align: middle;
   float: right;
    margin: 0.5em;
    margin-bottom: 20px;
}

/* fixes */

/* hiding CollabNet top banner*/

#cnlogo, #collabnet{
	display: none;
	height: 0px;
	width: 0px;
	background: none;
	border-bottom: none;
	vertical-align: top;
	}
/* vim: set ts=4 sw=4: */
