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

BODY {
	background-color: <%=prefs.getViewBackground()%>;
	font: <%=prefs.getViewFont()%>;
	margin:0;
	padding:0;
	border:0;
}

UL { 
	border-width:0; 
	margin-<%=isRTL?"right":"left"%>:20px; 
}

#root {
	margin-top:5px;
	margin-<%=isRTL?"right":"left"%>:5px;
}
  
UL.expanded {
	display:block; 
}

UL.collapsed { 
	display: none;
}

LI { 
	margin-top:3px; 
	list-style-image:none;
	list-style-type:none;
		white-space: nowrap;
}

IMG {
	border:0px;
	margin:0px;
	padding:0px;
	margin-<%=isRTL?"left":"right"%>:4px;
}


A {
	text-decoration:none; 
	color:WindowText;
	padding-<%=isRTL?"left":"right"%>:2px;
	/* this works in ie5.5, but not in ie5.0  */
	white-space: nowrap;
}

A:hover{
	text-decoration:underline; 
}

A.active{ 
	background:Highlight;
	color:HighlightText;
	width:100%;
}

A.active:hover{
	text-decoration:underline; 
	background:Highlight;
	color:HighlightText;
	width:100%;
}

<% 
if (data.isMozilla()){
%>
UL { 
	margin-<%=isRTL?"right":"left"%>:-20px;
} 
#root{ 
	margin-<%=isRTL?"right":"left"%>:-35px; 
	margin-top:5px;
} 
 
<%
}
%>

.h {
	visibility:hidden;
}
 