/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 *
 * This program and the accompanying materials 
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

BODY {
	font: <%=prefs.getViewFont()%>;
	font-size: .875rem;
	margin-top:5px;
	margin-<%=isRTL?"right":"left"%>:5px;
	padding:0;
	border:0;
}

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

#root {
	margin-top:0px;
	margin-<%=isRTL?"right":"left"%>:0px;
}
  
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;
}
 