/*
 * Copyright (c) 2005, 2006 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 *
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * IBM Corporation - initial implementation
 */

/*must add font type if class is being used as a link as well as no-link*/

a {	
	color: #336699;
}

a.toprightnav:active {
	color: #99CCCC;
}

a.toprightnavgrey:active {
	color: #CC0000;
}


/* action text usually located on top of page;ie., select all*/
a.actionlink
{ 
color: #336699;
font-size: 11px;
text-decoration : none;	
 }
 
 a.actionlink:active { 
 color: #336699;
 font-weight: bold;
  }

a.toprightnavgrey:hover {
	color: #CC0000;
} 
a.toprightnav:hover {
	color: #99CCCC;
} /* font for action on content page usually located on top of page ;ie., select all*/
a.action {  
	color: #333333;
	font-size: 16px;	
} 

a.actionselector {
   
	color: #000000;
	font-size: 16px;
}

 /* because of an intervening link tag, text options were attached to this element instead of the outermost cell */
a.activetab { 
 	color: #000000;
 	font-size: 18px;
  	text-decoration: none;
}

 /* because of an intervening link tag, text options were attached to this element instead of the outermost cell */
a.activetabselected { 
 	color: #2c2c2c;
 	font-size: 18px;
  	text-decoration: none;
}

a.basic { 	
    color: #000000;
}

/* for non-image buttons, for internationalization */
a.button {
	color: #333333;
	text-decoration: none;
}

a.button:active {
	color: 333333;
	text-decoration: none;
}

/* for non-image buttons, for internationalization */
a.button:hover {
	color: 333333;
}

/* for non-image buttons in Multisite, for internationalization */
a.button2 {
	color: #000000;
	font-size : 16px;
	text-decoration: none;	
}

/*main container  actions/links for editing*/
a.conlinkedit {
	text-decoration : none;
	font-size : 16px;
}

a.copyright { 	
	color: #336699;    
	font-size : 15px;
} 

a.formtblhead {
   background-color: #cccccc;
	color: #000000;
	font-size: 16px;
	font-weight : 600;
}

/* light coloured heading link for discussion and similar uses - was header_discussion_link in previous versions */
 a.headerlinklight {
	color: 	ffffff;
	font-size: 0.9em;
	text-decoration: none;
}	

/*bold link, ie, advanced search link in pe*/
a.linkfuncoption {  	
	font-size: 16px;
	font-weight: 600;
}

 a.navtree { 	
    color: #000000;
	font-size : 16px;
	font-weight: 600;
	text-decoration: none;
} 

/*navtree item or doc, nodes that don't expand*/
a.navtreeitem { 	
    color: #000000;
	font-size : 16px;
	text-decoration: none;
} 
 
 /* simple mechanism to turn text decoration off */  
a.noline {
 	text-decoration: none;
 }

a.popuptext {	
   color: #333333;
	font-size: 16px;	
	text-decoration: none;
}

a.poptext {
	color: #333333;
	font : 16px;
	text-decoration: none;
}

a.popuptext: active {
	color: #cc0000;
}


a.small {	
	font-size: 16px;	
}

a.smallb {	
   color: #000000;
	font-size: 16px;	
}

a.topbar {
  color: #666666;
  font-size: 16px;
  text-decoration: none;
}

/*used as highlighted description above tables*/
.accentcolor {
	color : #cc3300;
	font-weight : 600;
}

 /* bgcolor  for action text usually located on top of page;ie., select all*/
.actionbg { 
	background-color: #efefef;
}

/*actionbar appears on top and/or bottom of page*/
.actionselector {
   background-color: #e9e9e9;
	color: #000000;
	font-size: 16px;
}

/*actionbar on white background*/
.actionselect2 {   
	color: #000000;
	font-size: 16px;
}

.actionselectordis {
background-color: #e9e9e9;
	color: #cccccc;
	font-size: 16px;
	text-decoration: none;
}

b { 
   font-weight : bold;
 }
  
.baselineitalics {
	color: #666666;
	font-size: 16px;
	text-decoration: none;
}

.bgblack { 
	background-color: #000000;
 }
 
 /* basic column background colour for discussions, files, other such tabulated data */
.bgcolumnbasic { 
	background-color: #efefef;
 }
 
.bgwhite { 
	background-color: #ffffff;
 } 
 
/* size input for basic tags such as p and li that do not inherit from td */ 
body {
	background-color : #ffffff;   
	font-family: arial, helvetica, sans-serif;
	font-size: 18px;
	text-decoration : none;		
	margin-left: 0px;
	margin-top: 0px;	
	margin-right: 0px;
}

.bold { 
   font-weight : 600;
 }

.bordergray { 
	background-color: #e9e9e9;
 }

.bottombardark { 
	background-color: #003366;
 }
  
.bottombarlight { 
	background-color: #3399cc;
 }

.bottombarshadow { 
	background-color: #000000;
 }

.breadcrumbs{ 
color: #336699;
font-weight: 600;
 }

.breadcrumbs2{ 
color: #ffffff;
font-size: 16px;
 } 
 
/*active navigation button, not form buttons*/ 
.buttonon {
    background-color: #dedede;
    color: #000000;
	font-family: Verdana, Arial, Helvetica, sans-serif;	
	font-size: 15px;
	text-decoration: none;	
}
  
/*navigation buttons, not form buttons*/ 
.buttons {
    background-color: #efefef;
    color: #000000;
	font-family: Verdana, Arial, Helvetica, sans-serif;	
	font-size: 15px;
	text-decoration: none;	
}

/* disabled state */ 
.buttontxt {
	color: #333333;
	font-family: verdana, helvetica, arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

/* these button styles are for the textual buttons intended to replace image constructs for internationalization - this is for the disabled state */ 
.buttontxtdsbl {
	color: #7E7E7E;
	font-family: verdana, helvetica, arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

.code { 
   font-family: Courier New, Courier, mono;   
   font-size: 18px;
 }
 
  /* font for regular content text */
.comments { 	
	font-size: 16px;	
	background-color: #efefef;
}

/*main container header*/
.conhead { 
color: #cc3300;
font-weight: 600;
text-decoration : none;
 }
 
 /*main container data labels*/
.conlabel { 
background-color: #efefef;
 } 
 
/*main container data labels in bold*/
.conlabelbold { 
background-color: #e1e1e1;
font-weight: bold;
 }  
 
/*replacing sidemenu_boldright moving forward*/
.conrbold {
	color: #000000;
	font-family: arial, helvetica, sans-serif;
	font-size: 16px;
	font-weight : 600;
	text-decoration : none;
}

/*header for right hand container*/
.conrhead {
	color: 000000;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 18px;
	font-weight: 800;
}

/*main container table header*/
.contblhead {  
   background-color: #cccccc;
	color: #333333;	
	font-size: 16px;	
    font-weight: 600;
}

.content{ 
font-family: arial, helvetica, sans-serif;
	font-size: 18px;	
 }

 /*medium grey cell background*/
.contentborder {
	background-color: #dedede;
}

/* added for text representing disabled functions. */
.contentdisabled {
	color: #cccccc;
}

/* font for bold text */
.contentemphasis {
	color: #000000;
	font-weight : 600;
}

/* used text reminding user that there is required content */
.contentrequired {
	color: #b4b4b4;
	font-weight: 500;
}

.copyright { 
	color : #999999;
	font-size : 15px;
}

/*black copyright*/
.copyrightb { 
color : #000000;
	font-size : 15px;
}

dd { 
font-family: arial, helvetica, sans-serif;
	font-size: 18px;	
margin-left: -1px;
 }
 
.dialgbxshadow2 {  
	background-color: #848484;
}

.dialogueboxbg {  
	background-color: #d2d2d2;
}

/*background for login pages*/
.dialogueboxbg2 {  
	background-color: #999999;
}

.dialogueboxborder { 
	background-color: #333333;
 }
 
.dialogueboxhighlight {
	background-color: #efefef;
}

 .dialogueboxmedium { 
	background-color: #8b8b8b;
 }
 
 .dialogueboxtitle {	   
	font-size: 21px;
	font-weight : bold;
}

/*text for disabled buttons*/
.disable{ 
color: #999999;
font-family: verdana, helvetica, arial, sans-serif;
font-size: 16px;  
	font-weight: 600;
	text-decoration: none;
 }
 
div{ 
font-family: arial, helvetica, sans-serif;
 } 
 
/*used to affect right margin*/ 
div.marginrt{ 
	clear: right;
	float: right;
	width: 7px;
 }  
 
div.margins { 
float: left;
margin-left: 7px;
margin-top: 25px;	
margin-right: 7px;
 }   

/*for pages with button navigation on top*/ 
div.margins20 { 
float: left;
margin-left: 7px;
margin-top: 20px;	
margin-right: 7px;
 }    
 
 /*adds 10 px padding*/
 div.pad10{ 
 padding: 10px; 
  }

.divider {
	background-color: #f6f9f0;
}

dl{  
font-family: arial, helvetica, sans-serif;
font-size: 18px;   
	}

/*removes default bottom margin, doesn't work in NS4.7x */ 
dl.data { 
margin-bottom: -1px;
 }  

.docbold {
	color: #000000;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 16px;       
	font-weight : 600;
}

/*for applet download splash page*/
.download{ 
background-color: #efeeee;
 }

 .errormsg {
	color : #cc0000;	
} 

/*
colored font
description about the user status. eq. "subscriptions are updated"
it's usually on the upper part of the pages
*/
.footerbold {
	color : #a4a4a4;
	font-size: 90%;
	font-weight: 600;
}

/*the * symbol indicate the required field */
.footerboldcolored {
	color : #ff6500;
	font-size: 90%;
	font-weight: 600;
}

.footindicator {
	color: #999999;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 16px;       
	text-decoration: none;
}

/*the * symbol indicate the required field */
.footstarindex {
	color : #cc0000;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 12pt;
	font-weight: bold;
}

/*move to design_pe*/
.formlabel {
	color: #000000;
	font-size: 16px;
	font-weight : 600;
	text-decoration : none;
}

.formtblhead {
   background-color: #cccccc;
	color: #000000;
	font-size: 16px;
	font-weight : 600;
}

.greymedium {
	background-color: #dedede;
}

.grayfold {
	color: #cccccc;	
	text-decoration: none;
	font-size: 22px;
}

/*Note: remove this note if using this style or will be deleted*/
	/* Currently used in cq_deflect_login_err.html - should be renamed to something that has less descriptive name */
.headerblue {
	color: #006699;	
	font-weight : 600;
	text-decoration: none;
}

/*used in cc for frameset display*/ 
.headerinframes {  
	color: #333333;
	font-family: arial, helvetica, sans-serif;
	font-size: 15px;	
	font-weight: 600;
	margin-bottom: 2px;
	margin-top: 0px;
}

 /*font for page header except for article pages, (see header_of_article)*/
.headerlarge {
	color: #333333;
	font-size: 160%;
	font-weight : 400;
	text-decoration: none;
}

/*main header for frame navigation, ie, clearcase merge files*/
.headermain {  
	color: #333333;
	font-family: arial, helvetica, sans-serif;
	font-size: 25px;	
	font-weight: 600;
}

/* header element for form tables containing mid-size fixed height text */
.headermedlist {
	font-size: 16px;
}

/*fornt for steps title in forms*/
.headerofsteps { 
	color: #666666;
	font-size: 25px;
	font-weight: bold;
}

.headerofstepsnon { 
	color: #666666;
	font-size: 25px;
	font-weight: bold;
	text-decoration: none;
}


/*use header1 instead*/
.h1 {  

	font-family: arial, helvetica, sans-serif;
	font-size: 33px;	
	font-weight: 800;
}

/*to replace h1 and contentheader large*/
.header1 {  
	font-family: arial, helvetica, sans-serif;
	font-size: 33px;	
	font-weight: 800;
}

/*use subhead1 instead*/
.h1root{  
	color: #999999;
	font-family: arial, helvetica, sans-serif;
	font-size: 33px;	
	font-weight: 400;
}


/*used in cc, cq, sl*/ 
h1 {  
	color: #333333;
	font-family: arial, helvetica, sans-serif;
	font-size: 25px;	
	font-weight: 600;
}

/*use header2 instead*/
.h2 { 
	font-family: arial, helvetica, sans-serif;
	font-size: 28px;
	font-weight: 400;	 	
}

/*headers within page*/
.header2 { 
	font-family: arial, helvetica, sans-serif;
	font-size: 28px;
	font-weight: 400;	 	
}


i {
	font-style : italic;
}

.iconborder { 
	background-color: #dedede;
}

/*font size setup shown in the input box which is inherited by inputXX*/
input {
	font-family: arial, helvetica, sans-serif;	
	font-size: 16px;
} 

input.input135 {
	width: 135px
} 

/* 1,business standard multiline input box 
2,this style only activate in IE */
input.max50 {
	width: 360px;
}

input.px25 {
    width: 25px;
}

input.px45 {
    width: 45px;
}

/*
1,business standard multiline input box 
2,this style only activate in IE
*/
input.px85 {
    width: 85px;
}

input.px135 {
    width: 135px;
}

input.px155 {
    width: 155px;
}

input.px230 {
    width: 230px;
}

input.px305 {
    width: 305px;
}

.leftmenu {
	background-color: #999999;
}

.leftmenubullet { 
background-color: #999999;
 }

.leftmenubulletactive { 
background-color: #cd3301;
 }
	

.leftnavhead {
	color: #000000;
	font-size: 19px;	
	font-weight: bold;	
} 

.leftnavlabel {
color: #000000;
font-weight : 600;
font-size: 16px;
 }

.lightgray { 
background-color: #e4e4e4;
 }
 
.menubar {
  color: #ffffff;
  font-family: arial, helvetica, sans-serif;
  font-size: 16px;
  font-weight: 400;
  text-decoration: none
}

/*menubar within top of content page  */
.menubarmid{ 
font-size: 16px;
  font-weight: 600;
  text-decoration: none
 }

/*
1,bold font for the last item of the breadcrumbs
2,bold font of table header with menubar_bg(blue) as background color 
3,bold text on colored background eg. Logged In
*/
.menubaremphasis {
  color: #ffffff;
  font-family: arial, helvetica, sans-serif;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none
}

.menubar:hover {
  color: #ffffff
} 
 
.midbarbg { 
	background-color: #ffffff;
 } 
 
/*topnav*/ 
.midbarlight { 
	background-color: #3399cc;
 }
 
/*dark color between tabs*/
 .midbardark { 
	background: #003366;
 }
 
 /*topnav*/ 
 .midbarmed { 
	background-color: #006699;
 }
 
 /*background  of  tabs*/ 
 .midbarmedium { 
	background: #006699;
 }
 
 .midbarshadow { 
	background-color: #666666;
 } 
  
/*replacing sidemenu_boldleft moving forward*/
.navleftbold {
	color: #000000;
	font-family: arial, helvetica, sans-serif;
	font-size: 16px;
	font-weight : 600;
	text-decoration : none;
}

/*left nav submenu*/
.navleftsub {
	color: #676767;
	font-family: arial, helvetica, sans-serif;
	font-size: 16px;
	font-weight : 400;
	line-height : 135%;
	text-decoration : none;
}
 
/* because of an intervening link tag, text options were attached to this element instead of the outermost cell */
.nonactivetab {
	color: #b4b4b4;
	font-size: 18px;
	text-decoration: none;
}

/*notes/ description of icon */
.notes{  
 font-size: 16px;
 font-weight : 400;	
}

p {
	font-family: arial, helvetica, sans-serif;
	font-size: 18px;	
}

.pagebold { 
	color: #000000;
	font-weight : 600;	
 }
 
/*font for the numbers in pagination library*/
 .pagenumber {
	color: #676767;
	font-weight : 400;
}

 /*font for previous & next in pagination*/
.pagesteps { 
	color: #676767;	
	font-size: 16px;
	text-decoration: none;
 }

.pop {
	font-family: arial, helvetica, sans-serif; 
	font-size : 18px;
	font-weight : 200;
	text-decoration: none;
}

.popbackground {

	background: #d6d3ce;
}

.poph1 {
	font-size: 24px;
	font-weight : bold;
}

.popleftmenu {
	background: #f0f0f0;
	border: thin solid cccccc; 
	left: 210px; 
	padding: 2px;
	position:absolute; 
	top: 25px;
	visibility: hidden; 
	width:75px;
	z-index:10;	
 }

 /* use popleftmenu instead of this one*/
.popupborder {
	background: #f0f0f0;
	border : thin solid cccccc;
	padding : 2px;
}

.popuptext {	
   color: #333333;
	font-size: 16px;	
	text-decoration: none;
}

.projectatt { 
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 18px; 
	font-weight: 600;
	text-decoration: none; 
	color: #cd3301;
}

/*date associated with article ratings*/
.ratingsdate
{
	color: #336699;
	font-size : 16px;
	text-decoration : none;
	text-align: right;
}

select {
    font-family: arial, helvetica, sans-serif;	
	font-size: 16px;
}

select.selpx144 {
    width: 144px;
}

/* .sidemenu_boldleft replace with .leftmenubold*/ 

/* .sidemenu_boldleft_selected replace with .leftmenuactive*/

/* .sidemenu_bullet_colored replace with .leftmenubulletactive*/
 
/*.sidemenu_bullet_grey replace with leftmenubullet*/

.sidemenuboldleft {
	color: #000000;	
	font-size: 16px;
	font-weight : 600;
	text-decoration : none;
} 

.sidemenuboldleftselected {
	color: #cc0000;
	font-family: arial, helvetica, sans-serif;
	font-size: 16px;
	font-weight : 600;
	text-decoration : none;
}

.sidemenustandard {
	color: #676767;
	font-size: 16px;
	font-weight : 400;
	line-height : 135%;
	text-decoration : none;
}

.sidemenustandardselected {
	color: #cc0000;
	font-size: 16px;
	font-weight : 400;
	line-height : 135%;
	text-decoration : none;
}

.smalltext {
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 15px;
	text-decoration: none;
	color: #000000;
}

/*to replace h1root,  for document root folder*/
.subhead1 {  
	font-family: arial, helvetica, sans-serif;
	font-size: 33px;	
	font-weight: 800;
}

.tableheader { 

	color: #000000;	
	font-size: 19px;	
    font-weight: bold
}

/* font for regular content text */
td {
	font-family: arial, helvetica, sans-serif;
	font-size: 18px;	
}

/* because of an intervening link tag, text options were attached to a similar element for links */
td.activetab { 
 	background-color: #c4c4c4;
  }
 
/* because of an intervening link tag, text options were attached to a similar element for links */
td.activetabselected { 
 	background-color: #dddddd;
  }
  
 /* these button styles are for the textual buttons intended to replace image constructs for internationalization */ 
td.buttonbody {
	background-color: #DADADA;
}

 /* disabled version */ 
td.buttonbodydsbl {
	background-color: #DADADA;
}

/* this style is descoped and will be removed in future */
td.buttonhighlight {
	background-color: #ffffff;
}

td.buttonshadow {
	background-color: #6d6d6d;
}

/* disabled version */
td.buttonshadowdsbl {
	background-color: #A2A2A2;
}
 
/* design element rarely used for line colour in certain decorative tables */
td.design1 {
	background-color: #d4d4d4;
}
 
/*design element simulating a dimensional boundary to a table */
td.dividerdimens {
	background-color: #bdbdbd;
}
 
 /* because of an intervening link tag, text options were attached to a similar element for links */
td.nonactivetab {
	background-color: #efefef;
}

/* data within a table highlighted in gray*/
td.tblhighlt { 
   background-color: #dedede;
   padding: 2px;
 }
 
 td.tblhighlt1 { 
   background-color: #dedede;
 }
 
/* data within a table highlighted in light gray*/
td.tblhighlt2 { 
   background-color: #efefef;
 } 

 /* data within a table highlighted in light gray*/
td.tblhighlt3 { 
   background-color: #e9e9e9;
 }  
 
/*dark grey cell background and bold text */
.tddarkbold {
	background-color: #cccccc;	
	font-weight : 600;
}

.tdlight {
	background-color: #efefef;
	padding: 2px;
}

.tdlight1 {
	background-color: #efefef;
}
 
 
textarea {
    font-family: arial, helvetica, sans-serif;	
	font-size: 16px;
}

textarea.px380{
 width: 380px; 
 }

.texterrormsg {
	color : cc0000;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 110%;
	font-weight: bold;
}

.textgray {  
	color: #999999;	
}

.topbardivider { 
	background: #3399cc 
}

.topbardividergreyed { 
	background: #add6eb
 }  

.topbarseparator {
  color: #cc3300;  
  font-size: 16px;
  text-decoration: none;
} 
 
.topframebg {
	background-color: #d2d2d2;
}

.topframebggreyed {
	background-color: #ededed;
}

.topframehighlight {  
	background-color: #b6b5b5;
}

.topframehighlightgreyed {  
	background-color: #e1e1e1;
}

.topframehighlight2 { 
	background-color: #efefef;
}

.topframehighlight2greyed { 
	background-color: #f9f9f9;
 } 
 
.topframelogobg {  
	background-color: #006699;
}

.topframelogobggreyed {  
	background-color: #99c2d6;
}

.topframeshadow {  
	background-color: #848484;
}

.topframeshadowgreyed {  
background-color: #cecece;
}

.topleftnav {	
    color: #000000;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 15px;
	text-decoration: none;
}

.topleftnavbold { 
	font-family: verdana, brial, helvetica, sans-serif;
	font-size: 15px; 
	font-weight: 600;
	text-decoration: none; 
}

.topleftnavboldgreyed { 
	color: #999999;
	font-family: verdana, arial, helvetica, sans-serif; 
	font-size: 15px; 
	font-weight: bold;
	text-decoration: none; 
}

.topleftnavgreyed {	
	color: #999999;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 15px;
	text-decoration: none;
	}

.toplinecolor { 
	background-color: #006699;
 }	
	
.toprightnav {
	color: #ffffff;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 14px;
	text-decoration: none;
}

.toprightnavgrey
{
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	color: #000000;
	text-decoration: none;
}


 /* this was initially declared the same colour as the class topframe bg but because it lies in a different functional area, has been recreated here  */
tr.bgmidframe {
	background-color: #d2d2d2;
}

td.sidemenubulletgrey {
	background-color: #999999;
}


td.sidemenubulletcolored {
	background-color: #cd3301;
}

/*list-style-image: url(images/downbutton.gif);*/
ul {	

	list-style-type: square;
}
 

.vob {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 150%;
	color: #006699;
	text-decoration: none;
	font-weight: 400;
}

.vobbottom {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 21px;
	text-decoration: none;
}
