/*
 * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

.dojoComboBoxOuter {
	border: 0px !important;
	margin: 0px !important;
	padding: 0px !important;
	background: transparent !important;
	white-space: nowrap !important;
}

.dojoComboBox {
	border: 1px inset #afafaf;
	margin: 0px;
	padding: 0px;
	vertical-align: middle !important;
	float: none !important;
	position: static !important;
	display: inline;
}

/* the input box */
input.dojoComboBox {
	border-right-width: 1px !important;
	margin-right: 0px !important;
	padding-right: 0px !important;
}

/* the down arrow */
img.dojoComboBox {
	border-left-width: 0px !important;
	padding-left: 0px !important;
	margin-left: 0px !important;
}

/* IE vertical-alignment calculations can be off by +-1 but these margins are collapsed away */
.dj_ie img.dojoComboBox {
	margin-top: 1px;
	margin-bottom: 1px;
}

/* the drop down */
.dojoComboBoxOptions {
	font-family: Verdana, Helvetica, Garamond, sans-serif;
	/* font-size: 0.7em; */
	background-color: white;
	border: 1px solid #afafaf;
	position: absolute;
	z-index: 1000;
	overflow: auto;
	cursor: default;
}

.dojoComboBoxItem {
	padding-left: 2px;
	padding-top: 2px;
	margin: 0px;
}

.dojoComboBoxItemEven {
	background-color: #f4f4f4;
}

.dojoComboBoxItemOdd {
	background-color: white;
}

.dojoComboBoxItemHighlight {
	background-color: #63709A;
	color: white;
}
