/*
 * 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: 16px;
	text-decoration : none;
}
 
/* font for action;ie., select all*/
a.actionselector {
	color: #000000;
	font-size: 16px;
}

a.basic {
	color: #000000;
}

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

/* for non-image buttons, for internationalization */
a.button {
	color: #333333;
	font-family: verdana, helvetica, arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

/* Descoped, It's not used in current projects, to be archived after 6 months. Ali Rokni, 09/09/02 */
/* for context toolbar buttons in Multisite, for internationalization */
a.button2 {
	color: #000000;
	font-size: 16px;
	text-decoration: none;
}

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

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

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

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

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

/*column headings*/
a.formtblhead {
	background-color: #CCCCCC;
	color: #000000;
	font-size: 16px;
	font-weight: 600;
}

a.toprightnavgrey:hover {
	color: #CC0000;
} 
a.toprightnav:hover {
	color: #99CCCC;
} /*navtree item or doc*/
a.navtreeitem {
	color: #000000;
	font-size: 16px;
	text-decoration: none;
}

/*sitemap header*/
a.sitemaph {
	font-size: 25px;
	font-weight: 600;
}

/*used in forgot password, any other small text links*/
a.small {
	font-size: 16px;
}

b {
	font-weight: 600;
}

/*standard text*/
.basic {
	color: #000000;
	font-family: arial, helvetica, sans-serif;
	font-size: 18px;
	font-weight: 400;
}

.bgbasic {
	background-color: #FFFFFF;
}

/*descoped (remove after wa-lt release); use bgbasic */
.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;
	margin-left: 0px;
	margin-right: 0px;
	margin-top: 0px;
	text-decoration: none;
}

.bold {
	font-weight: 600;
}

.borderdrk {
	background-color: #000000;
}

/*use in popups as borders in Multisite*/ 
.borderpopup {
	background-color: #DEDEDE;
}

/*borders used around data*/
.bordertbl {
	background-color: #E9E9E9;
}

/*design element simulating a dimensional boundary to a table */ 
.bordertbl2{
	background-color: #BDBDBD;
}

/*used in content area as a horizontal div in Multisite*/
.bordertbl3 {
	background-color: #EDEDED;
}

.breadcrumbs{
font-size: 11px;
}

/*used in topnav , similar to context toolbar*/
.button {
	color: #000000;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 15px;
	text-decoration: none;
}

/*descped; use button instead; used in topnav , similar to context toolbar*/
.button3 {
	color: #000000;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 15px;
	text-decoration: none;
}

/*active state of navigation button in context toolbar*/ 
.buttonon {
	background-color: #DEDEDE;
	color: #000000;
	font-family: Verdana, Arial, Helvetica, sans-serif;	
	font-size: 15px;
	text-decoration: none;
}

/*navigation buttons in context toolbar*/
.buttons {
	background-color: #EFEFEF;
	color: #000000;
	font-family: Verdana, Arial, Helvetica, sans-serif;	
	font-size: 15px;
	text-decoration: none;	
}

/* descoped (remove after wa-lt release)--use a.button; these button styles are for the textual buttons intended to replace image constructs for internalization*/
.buttontxt {
	color: #333333;
	font-family: verdana, helvetica, arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

/* disabled state of non-image button*/ 
.buttontxtdsbl {
	color: #7E7E7E;
	font-family: verdana, helvetica, arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

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

/*defect page subhead , used in project console*/
.defectsubhd {
	color: #006699;
	font-weight: 600;
	text-decoration: none;
}

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

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-right: 7px;
	margin-top: 25px;
}

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

/*adds 10 px padding around text*/
div.pad10 {
	padding: 10px;
}

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

/*title for error messages*/
.error {
	color: #CC0000;
	font-family: arial, helvetica, sans-serif;
	font-size: 30px;
	font-weight: 800;
}

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

/*current sorted column*/
.formtblheadc {
	background-color: #E4E4E4;
	color: #000000;
	font-size: 16px;
	font-weight: 600;
}

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

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

/*usually used next to header1; for document root folder*/
.header3 {
	color: #999999;
	font-family: arial, helvetica, sans-serif;
	font-size: 33px;
	font-weight: 800;
}

i {
	font-style: italic;
}

.iconborder {
	background-color: #DEDEDE;
}

/*used in controlstrip*/
.iconoff {
	float: right;
	position: absolute;
	top: 1px;
	visibility: hidden;
	width: 100%;
}

/*used in controlstrip*/
.iconon {
	float: right;
	position: absolute;
	top: 1px;
	visibility:show;
	width: 100%;
}


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

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

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

input.radio { 

}

 /*used in treescripts, leftnav*/
.leftmenu {
	background-color: #999999;
}

.notes {
	font-size: 16px;
	font-weight : 400;
}

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

/*font for the numbers in pagination library*/
.pagenumber {
	color: #676767;
	font-size: 16px;
	font-weight : 400;
	text-decoration: none;
}

/*font for previous & next in pagination*/
.pagesteps {
	color: #000000;
	font-size: 16px;
	font-weight : 600;
}

/*popup header*/
.poph1 {
	font-size: 24px;
	font-weight: bold;
}

/*used in treescripts*/
.popleftmenu {
	background-color: #F0F0F0;
	border: thin solid #CCCCCC;
	left: 210px;	/* it's not working on ns 6.2, ie 5.5, ie 6 and ns 7, possibly can be removed safely, Ali Rokni, 09/18/02*/
	padding: 2px;
	position: absolute;
	top: 25px;	/* it's not working on ns 6.2, ie 5.5, ie 6 and ns 7, possibly can be removed safely, Ali Rokni, 09/18/02*/
	visibility: hidden; 
	width:75px;
	z-index:10;	
}

/*progressbar borders in Multisite*/
.progressbarbrd {
	background-color: #666666;
}

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

/*descoped (remove after wa-lt release)--use buttons3; used in topnav*/
.smalltext {
	color: #000000;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 15px;
	text-decoration: none;
}

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

 /* these button styles are for the textual buttons intended to replace image constructs for internationalization */ 
td.buttonbody {
	background-color: #D4D4D4;
}

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

/* descoped (remove after wa-lt release); use bgbasic */
td.buttonhighlight {
	background-color: #FFFFFF;
}

/*non-image button*/
td.buttonshadow {
	background-color: #6D6D6D;
}

/* non-image button--disabled version */
td.buttonshadowdsbl {
	background-color: #A2A2A2;
}

 /* data within a table highlighted in light gray*/
td.tblhighlt3 {
	background-color: #E9E9E9;
}

/*gray data highlight or page background*/ 
.tdlight1 {
	background-color: #EFEFEF;
}

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

/*global nav*/
.topbardivider {
	background-color: #3399CC;
}

/*global nav*/
.topframebg {
	background-color: #D2D2D2;
}

/*descoped (remove after wa-lt release)-use bordertbl3; used in content area as a horizontal div in Multisite*/
.topframebggreyed {
	background-color: #EDEDED;
}

/*global nav*/
.topframehighlight {
	background-color: #B6B5B5;
}

/*global nav*/
.topframehighlight2 {
	background-color: #EFEFEF;
}

/*global nav*/
.topframelogobg {
	background-color: #006699;
}

/*global nav*/
.topframeshadow {
	background-color: #848484;
}

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

/*global input operations toolbar*/
.topleftnavbold {
	font-family: verdana, brial, helvetica, sans-serif;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}

/*text on topnav, top right section*/
.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;
}

/*list-style-image: url(images/downbutton.gif); doesn't work for ns4*/
ul {
	list-style-type: square;
}
