/*******************************************************************************
 * Copyright (c) 2007 Eclipse Foundation 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:
 *    Paul Colton (Aptana)- initial API and implementation

*******************************************************************************/
body {
  min-width: 640px;
  font-family: verdana,arial;
  margin: 0;
  padding: 0;
  background: #FFFFFF;
  font-size:12px;
}

.babel-container{
	margin-right: 20px;
  	background-color: #dddddd;
}

.logout{
	float: right;
	}

input {
	font-family: verdana,arial;
	font-size:11px;
	margin: 2px 2px 2px 2px;
}


a {
  text-decoration: none;
	color: #3E71FA;
	font-weight: bold;
	font-size: 14;
}



tr { vertical-align:top; }

#title {
  color:#405066;
  font-size:16pt;
  border-bottom:solid 1px #800000;
  margin: 20px 0px 20px 0px;
}


#formLbl {
  text-align:right;
  color:#555599;
  vertical-align:top;
}

#formLblSmall {
  text-align:right;
  color:#555599;
  vertical-align:top;
  font-size:7pt;
}

#formEdt {
  width:100px;
  vertical-align:top;
}

#formNote {
  font-size:8pt;
  color:#888888;
  padding-bottom: 8px;
  font-family: arial;
}

#formErr {
  font-size:8pt;
  font-weight:bold;
  color:#882222;
  width:90%;
}





#newshead {
  font-family:Verdana;
  font-size:14px;
}

#newsuser {
  padding:0px 10px 1px 10px;
  font-family:tahoma,arial; 
  color:#666688;
  font-size:11px;
  vertical-align:top;
}
#newsuserTxt {
  display:inline;
  vertical-align:top;
}
#newsuserImg {
  border:solid 1px #ccccdd;
}


#newspost {
  padding:0px 10px 0px 10px;
  color:#333333;
  font-family:tahoma,tahoma,arial;
  font-size:13px;
  text-align:justify;
}

#newslink {
  padding:6px 10px 0px 10px;
  color:#777777;
  font-family:tahoma,arial;
  font-size:11px;
}

#newsrow1 {
  background-color:#f8f8f8;
  border-bottom:solid 1px #eeeeee;
  padding:4px;
}

#newsrow2 {
  background-color:#f8f8f8;
  border-bottom:solid 1px #eeeeee;
  padding:4px;
}

.graph {
 position:relative;
 top:0px;
 left:0px;
 background-color:#aaccaa;
 height:14px;
 width:0px;
 padding:0px;
 }


.graphOut {
 position:relative;
 top:0px;
 left:0px;
 height:14px;
 width:0px;
 padding:0px;
 }
 
 
.projSel {
 position:relative;
 top:0px;
 left:0px;
 height:14px;
 width:220px;
 padding:0px;
 color:#fffc0d;
 background-image: url(imgs/selected.gif);
 }
 
 .entryDone {
 top:0px;
 left:0px;
 background-color:#aaccaa;
 height:14px;
 padding:0px;
 padding-left:4px;
 width:100%;
 overflow:hidden
 }
 .entryUnDone {
 top:0px;
 left:0px;
 background-color:#ffffff;
 height:14px;
 padding:0px;
 padding-left:4px;
 width:100%;
 overflow:hidden
 }
 
 
 .entryHi1 {
  left:0px;
  height:14px;
  padding-left:4px;
  overflow:hidden;
 }
 
 .entryHi2 {
  left:0px;
  height:14px;
  padding-left:4px;
  overflow:hidden;
 }
 
 .entrySel1 {
 position:relative;
 top:0px;
 left:0px;
 height:14px;
 width:100%;
 padding:0px;
 padding-left:4px;
 color:#fffc0d;
 background-image: url(imgs/selected.gif);
 overflow:hidden;
 }
 
 .entrySel2 {
 position:relative;
 top:0px;
 left:0px;
 height:14px;
 width:100%x;
 padding:0px;
 color:#fffc0d;
 background-image: url(imgs/selected.gif);
 overflow:hidden;
 }
 
 .ss {
	color:#333333;
  text-decoration: none;
  display:block;
  width:100%;
  height:100%;
	padding: 2 0 0 0;
	border-right: solid 1px #f0f0f0;
	border-bottom: solid 1px #f0f0f0;
	font-weight:normal;
}
:hover.ss {
  background-image: url(imgs/rollover.gif);
	color:#444444;
	border-right: solid 1px #cccccc;
	border-bottom: solid 1px #cccccc;
}
:visited.ss {
	color:#333333;
}



.userPanel {
text-align: right;
padding-top:14px;
width: 100%;
height: 49px;
font-size: 14px;
color: #ffffff;
background-image: url(imgs/background-header-tile.gif);
background-repeat: repeat-x;
background-attachment: scroll;
background-x-position: 0%;
background-y-position: 0%;
}

