/*
 * 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.
 */
/* This CSS file is used for all OFBiz applications EXCEPT ecommerce. */
/* See the "ecommain.css" file for ecommerce. */
/* ===== Resets/Browser Normalization ===== */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
    border: 0;
    margin: 0;
    outline: 0;
    padding: 0;
    font-size: 100%; /*add font size to reset */
    background: transparent;
    vertical-align: baseline;
}

body {
    line-height: 1.5em;
    color: black;
    _background-image: url:(. . /images/ header_top_bg . gif);
    background-color: black;
    font-size: 62.5%;
    position: relative;
}

blockquote, body, div, dl, dt, dd, fieldset, form, h1, h2, h3, h4, h5, h6, img, input, li, ol, p, select, span, td, textarea, th, ul {
    border-style: none;
    margin: 0;
    padding: 0;
}

a, address, body, caption, cite, code, dfn, em, strong, th, var {
    font-style: normal;
    font-weight: normal;
    text-decoration: none;
}

body, caption, th {
    text-align: left;
}

h1, h2, h3, h4, h5, h6 {
    font-size: 100%;
}

ol, ul {
    list-style: none;
}

/* ===== Basic Element Styles ===== */
a, a:visited {
    color: #140f0c;
    font-weight: bold;
}

a:hover, a:active {
    text-decoration: underline;
}

.disabled {
    color: #333366;
    text-decoration: none;
}

body, textarea, input, select {
    font-family: Verdana, Geneva, sans-serif;
}

hr {
    background-color: #999999;
    border: 0;
    height: 0.1em;
    margin: 0.5em 0 0.5em 0;
}

input[type="radio"], input[type="checkbox"] {
    font-size: 1.1em;
    margin: 0.2em;
    vertical-align: middle;
}

input[type="text"], input[type="password"] {
    background-color: #fffcea;
    border: 0.1em solid #999999;
    font-size: 1.1em;
    margin: 0.2em;
    padding: 0.4em 0;
    vertical-align: middle;
}

input[type="submit"], input[type="button"], input[type="reset"] {
    background-color: #FCF9E6;
    border-bottom: #999999 solid 0.1em;
    border-top: #f7e893 solid 0.1em;
    border-left: #f7e893 solid 0.1em;
    border-right: #999999 solid 0.1em;
    color: #262626;
    background-image: url(../images/button_whitegray.jpg);
    font-size: 1em;
    font-weight: bold;
    margin: 0.3em;
    padding: 0.4em 0.5em;
}

input[type="submit"]:hover {
    color: #000000;
    cursor: pointer;
    border-bottom: #999999 solid 0.1em;
    border-top: #333333 solid 0.1em;
    border-left: #333333 solid 0.1em;
    border-right: #999999 solid 0.1em;
    text-decoration: underline;
    background-image: url(../images/button_medgray_in.jpg);
}

input[type="file"] {
    border: 0.1em solid #999999;
    font-size: 1.1em;
    height: 2.1em; /* force ctrl to scale with text */
    margin: 0.2em;
    padding: 0.4em 0;
    vertical-align: middle;
}

select {
    background-color: #fffcea;
    border: #999999 solid 0.1em;
    font-size: 1.1em;
    height: 2.1em; /* force ctrl to scale with text */
    margin: 0.2em;
    padding: 0.1em;
    vertical-align: middle;
}

select[multiple="multiple"] {
    height: 5em;
}

h1, .h1 {
    font-size: 1.6em;
    font-weight: bold;
}

h2, .h2 {
    font-size: 1.7em;
    font-weight: bold;
}

h3, .h3 {
    font-size: 1.1em;
    font-weight: bold;
}

/* IE7 fix */
table {
    font-size: 1em;
}

/* IE7 fix */
table input {
    border: #999999 solid 0.1em;
}

textarea {
    background-color: #ffffff;
    border: #999999 solid 0.1em;
    font-size: 1.1em;
    margin: 0.2em;
    padding: 0.1em;
}

th, th a {
    color: #000000;
    font-weight: bold;
}

/* ===== Legacy Styles ===== */
/* The "smallSubmit" class can be used to decorate
links (A elements) and make them similar to form's buttons. */
.smallSubmit, .smallSubmit:visited {
    background-color: #ffffff;
    border: #999999 solid 0.1em;
    border-top: #f7e893 solid 0.1em;
    border-left: #f7e893 solid 0.1em;
    border-right: #999999 solid 0.1em;

    background-image: url(../images/button_whitegray.jpg);
    background-repeat: repeat-x;

    color: #000000;
    font-size: 1em;
    font-weight: bold;
    margin: 0.2em;
    padding: 0.1em 0.2em 0.1em 0.2em;
}

.smallSubmit:hover {
    color: #000000;
    border-bottom: #f7e893 solid 0.1em;
    border-top: #333333 solid 0.1em;
    border-left: #333333 solid 0.1em;
    border-right: #f7e893 solid 0.1em;
    background-image: url(../images/button_medgray_in.jpg);
    text-decoration: none;
}

.smallSubmit:active {
    background-color: #cccccc;
    color: #333366;
    text-decoration: none;
}

.info {
    color: #000000;
    font-style: normal;
}

.boxhead {
    color: #FFFFFF;
    font-size: 1.1em;
    font-weight: bold;
}

.boxlink {
    float: right;
}

DIV.boxtop {
    background-color: #000099;
    border-color: #999999;
    border-style: solid;
    margin: 0 auto 0 auto;
    padding: 0.1em 0.4em 0.1em 0.4em;
    text-align: center;
}

DIV.boxhead-left {
    border: none;
    color: #FFFFFF;
    float: left;
    font-size: 1.1em;
    font-weight: bold;
    width: auto;
}

DIV.boxhead-fill {
    border: none;
    color: #FFFFFF;
    font-size: 1.1em;
    font-weight: bold;
    text-align: center;
    width: 0;
}

DIV.boxhead-right {
    border: none;
    color: #FFFFFF;
    float: right;
    font-size: 1.1em;
    font-weight: bold;
    width: auto;
}

A.boxheadbutton {
    color: #FFFFFF;
    font-size: 1.1em;
}

A.boxheadbutton:hover {
    color: #ff0000;
    text-decoration: none;
}

.boxoutside {
    background-color: #FFFFFF;
    border: 0.1em solid #999999;
}

.boxtop {
    background-color: #000099;
    border: 0 solid #999999;
    padding: 0.1em 0.4em 0.1em 0.4em;
}

.boxbottom {
    background-color: #FFFFFF;
    border: 0 solid #999999;
    padding: 0.4em;
}

.button {
    background-color: #dddddd;
    border: 0.2em outset #9999CC;
    padding-right: 0.5em;
    padding-left: 0.5em;
}

.browsecategorylist {
    margin-left: 10px;
}

.browsecategorytext {
    color: #000099;
    font-weight: bold;
    padding-left: 15px;
    background: url(../images/bullet_pink.png) no-repeat;
}

/* Catalogs bullet */
.browsecategorylist .browsecategorytext {
    background: url(../images/bullet_green.png) no-repeat;
}

/* Categories bullet */
.browsecategorylist .browsecategorylist .browsecategorytext {
    background: url(../images/bullet_red.png) no-repeat;
}

A.browsecategorybutton {
    color: #181818;
}

.browsecategorybuttondisabled {
    color: #333333;
    font-weight: bold;
}

A.buttontext, .buttontextdisabled {
    border-bottom: #999999 solid 0.1em;
    border-top: #f7e893 solid 0.1em;
    border-left: #f7e893 solid 0.1em;
    border-right: #999999 solid 0.1em;
    background-image: url(../images/button_whitegray.jpg);
    background-repeat: repeat-x;
    font-weight: bold;
    line-height: 2.9em;
    margin-left: 0.0em;
    padding: 0.4em 0.6em 0.4em 0.6em;
    /*white-space: nowrap;*/
}

A.buttontext {
    color: #000000;
}

A.buttontext:hover {
    color: #000000;
    border-bottom: #f7e893 solid 0.1em;
    border-top: #333333 solid 0.1em;
    border-left: #333333 solid 0.1em;
    border-right: #f7e893 solid 0.1em;
    background-image: url(../images/button_medgray_in.jpg);
    text-decoration: none;
}

A.linktext {
    color: #000099;
}

A.linktext:hover {
    color: #ff0000;
}

.buttontextdisabled {
    color: #333333;
}

A.headerbuttontext {
    color: #000099;
}

A.headerbuttontext:hover {
    color: #000000;
}

.submenutextinfo {
    border-right: 0.1em solid #5886C6;
    color: #ffffff;
    font-size: 0.9em;
    font-weight: bold;
    padding-left: 0.5em;
    padding-right: 0.5em;
}

.submenutext, A.submenutext, A.submenutext:visited {
    border-right: 0.1em solid #5886C6;
    color: #ffff00;
    font-size: 0.9em;
    font-weight: bold;
    padding-left: 0.2em;
    padding-right: 0.5em;
}

A.submenutext:hover {
    color: #ffff00;
}

.submenutextdisabled, A.submenutextdisabled {
    border-right: 0.1em solid #5886C6;
    color: #CCCCCC;
    font-size: 0.9em;
    font-weight: bold;
    padding-left: 0.2em;
    padding-right: 0.5em;
}

A.submenutextdisabled:hover {
    color: #ffff00;
}

.submenutextinforight {
    color: #ffffff;
    font-size: 0.9em;
    font-weight: bold;
    padding-left: 0.2em;
}

.submenutextright, A.submenutextright {
    color: #ffff00;
    font-size: 0.9em;
    font-weight: bold;
    padding-left: 0.2em;
}

A.submenutextright:hover {
    color: #ffff00;
}

.submenutextrightdisabled, A.submenutextrightdisabled {
    color: #CCCCCC;
    font-size: 0.9em;
    font-weight: bold;
    padding-left: 0.2em;
}

A.submenutextrightdisabled:hover {
    color: #ffff00;
}

A.lightbuttontext {
    border: none;
    color: #ffff00;
}

A.lightbuttontext:hover {
    color: #ffff00;
}

A.lightbuttontextsmall {
    border: none;
    color: #ffff00;
    font-size: 0.8em;
}

A.lightbuttontextsmall:hover {
    color: #ffff00;
}

.lightbuttontextdisabled {
    color: #CCCCCC;
    font-weight: bold;
}

A.buttontextbig, .buttontextbigdisabled {
    background-color: #ffffff;
    border: #999999 solid 0.1em;
    font-size: 1.5em;
    font-weight: bold;
    margin: 0.2em;
    padding: 0.1em 0.4em 0.1em 0.4em;
}

A.buttontextbig {
    color: #000099;
}

.buttontextbigdisabled {
    color: #CCCCCC;
}

A.buttontextbig:hover {
    color: #ff0000;
}

A IMG.imageborder {
    border: 0.1em solid #999999;
}

/* ===== System messages rendering ===== */
.eventMessage,
.errorMessage {
    font-size: 1.3em;
    font-weight: bold;
    _margin: 5px 7px 0 7px;
    padding: 0 1em 0 50px;
}

.eventMessage {
    background: #105fa8 url(../images/information.png) no-repeat 5px 50%;
    color: #FFFFFF;
    border: solid 3px #f0f0f0;
}

.errorMessage {
    background: #820f05 url(../images/exclamation.png) no-repeat 5px 50%;
    color: #ffffff;
    border: solid 3px #f0f0f0;
}

.content-messages p {
    margin: 0.5em 0 0.5em 0;
}

.mediumSubmit, .largeSubmit, .loginButton {
    background-color: #ffffff;
    border: #999999 solid 0.1em;
    color: #000099;
    font-size: 1.4em;
    font-weight: bold;
    margin: 0.2em;
}

.mediumSubmit:hover, .largeSubmit:hover, .loginButton:hover {
    color: #ff0000;
}

.smallAltSubmit, .mediumAltSubmit, .largeAltSubmit {
    font-size: 1.1em;
}

.basePrice {
    color: #000000;
}

.normalPrice {
    color: #008000;
}

.salePrice {
    color: #ff0000;
}

/* ===== Product Summary Styles ===== */
.product-prevnext {
    text-align: right;
}

.productsummary-container {
    border-top: #999 solid 0.1em;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}

.productsummary {
    border-bottom: #999 solid 0.1em;
    /* using min-height as an alternative to clear: both; because that, in some browsers, will clear the top-level columns and not just in this div (Mozilla based, namely) */
    min-height: 6em;
    overflow: auto;
    padding: 0.5em;
    position: relative;
}

.productsummary .smallimage {
    float: left;
    /* position: absolute; top: 5px; left: 5px; */
    margin: 0 0.5em 0.5em 0;
}

.productsummary .smallimage img {
    border: #CCC solid 0.1em;
    height: 5em;
}

.productsummary .productbuy {
    float: right;
    margin: 0.5em;
    text-align: right;
    width: 15em;
}

.productsummary .productinfo { /* margin-left: 60px; */
    text-align: left;
}

/* ===== Product Detail Styles ===== */
#productdetail #long-description {
    border-top: #999 solid 0.1em;
    margin-top: 1em;
    padding-top: 0.5em;
}

#productdetail #reviews {
    border-top: #999 solid 0.1em;
    margin-top: 1em;
    padding-top: 0.5em;
}

#productdetail #associated-products {
    border-top: #999 solid 0.1em;
    margin-top: 1em;
    padding-top: 0.5em;
}

.treeWrapper {
    background-color: #ffffff;
    border-top: 0.1em solid #000000;
    border-left: 0.1em solid #000000;
    color: #000000;
    font-size: 1.6em;
    font-weight: normal;
    margin-left: 1.2em;
    margin-top: 0.2em;
    text-align: left;
    text-decoration: none;
}

.lefthalf {
    float: left;
    height: 1%;
    left: 0;
    margin: 0% 1% 1% 0%;
    width: 49%;
}

.righthalf {
    float: right;
    height: 1%;
    margin: 0 0 1% 1%;
    right: 0;
    width: 49%;
}

.leftclear {
    clear: left;
    height: 1%;
}

/* ==== Styles For Form Widgets === */
.formTableBordered {
    border: 0.1em solid #999999;
    width: 100%;
}

/* ==== Styles For The Html Log === */
.DEBUG {
    color: #808080;
}

.WARN {
    color: #0000ff;
    font-weight: bold;
}

.INFO {
    color: #008000;
}

.ERROR {
    border: 0.2em solid #ff0000;
    color: #ff0000;
    font-weight: bold;
}

.treewrapper {
    margin-left: 1em;
}

.treeitem {
    border: #888888 solid 0.1em;
    color: #0000ff;
    font-size: 1.4em;
    font-weight: bold;
}

.appbar {
    background-color: #ffffff;
}

.whitearea {
    background-color: #FFFFFF;
}

.blackarea {
    background-color: #000000;
}

.page-title {
    color: #262626;
    font-size: 2em;
    font-weight: 700;
    clear: both;
    display: inline-block;
    margin: 5px 0 10px;
}

DIV.row {
    background-color: #B4B0AA;
    margin: 0 auto 0 auto;
    text-align: center;
}

DIV.col {
    border: none;
    float: left;
    width: auto;
}

DIV.col-fill {
    background-color: #B4B0AA;
    border: none;
    color: #000099;
    font-weight: bold;
    text-align: center;
    width: 0;
}

DIV.col-right {
    border: none;
    float: right;
    width: auto;
}

DIV.contentarea {
    background-color: #999999;
}

DIV.endcolumns { /* deprecated - use .clear */
    clear: both;
}

DIV.simple-right-small {
    float: right;
    width: 2em;
    text-align: right;
}

DIV.simple-right-half {
    float: right;
    width: 50%;
    text-align: right;
}

DIV.no-padding {
    padding: 0;
    border: none;
}

#column-container {
    margin: auto;
    padding: 0 5px 5px 5px;
    position: relative;
    background: #81817F url(../images/bkgd_page.gif) repeat-x scroll 0 0;
}

#column-container h1, #column-container .h1 {
    margin-bottom: 0.9em;
    _margin-top: .5em;
    padding-left: .3em;
    color: #251f16;
    font-weight: normal;
    font-size: 17px;
}

#column-container h2, #column-container .h2 {
    background-image: url(../images/bkgd_subheader.png);
    background-repeat: repeat-x;
    margin-bottom: 0px;
    _margin-top: 8px;
    padding-bottom: 8px;
    padding-left: 8px;
    padding-top: 4px;
    color: #111111;
    font-size: 14px;
    font-weight: normal;
}

#column-container .left {
    float: left;
    /* alt: position: absolute; top: 0px; left: 0px; */
    width: 22em;
    margin-right: 1em;
    padding-top: 8px;
}

#column-container .left-larger {
    float: left;
    /* alt: position: absolute; top: 0px; left: 0px; */
    width: 25em;
    margin-right: 1em;
}

.left-border {
    float: left;
    margin-right: 1em;
    width: 22em;
    border-right: 0.5px dotted #ccc;
    background-color: #eee;
    height: 100%;
}

#column-container .right {
    float: right;
    margin-left: 1em;
    width: 22em;
}

#column-container .leftonly {
    margin-left: 23em;
    width: auto;
}

#column-container .leftonly-larger {
    margin-left: 26em;
    width: auto;
}

#column-container .rightonly {
    margin-right: 23em;
    width: auto;
}

#column-container .center {
    margin-left: 23em;
    margin-right: 23em;
    width: auto;
}

#column-container .nocolumns {
    width: auto;
}

#content-main-section {
    padding-top: 8px;
}

DIV.column-left-wide {
    background-color: #CCCCCC;
    border: #000000 solid 0.2em;
    float: left;
    overflow: auto;
    width: 30em;
}

DIV.widget-container {
    margin-bottom: 2em;
}

/* ===== New Styles ===== */
/* ================================ */
/* ===== Used to clear floats ===== */
/* ================================ */

.clear {
    clear: both;
    height: 0;
    visibility: hidden;
}

.no-clear .clear {
    /* Used in container elements to override the clear class
in contained elements. */
    clear: none;
}

/* ================================= */
/* ===== Single Element Styles ===== */
/* ================================= */
.alert { /* Used for alert text */
    color: #ff0000;
}

.hidden {
    height: 0;
    display: none;
}

.label {
    /* Used for <input> element labels */
    font-weight: bold;
    height: 1.2em;
    /* Same as <input> height */
    padding-right: 1.1em;
    text-align: right;
    white-space: nowrap;
    width: 1%;
    vertical-align: middle;
}

.required, input.required {
    /* required style for <input> elements */
    background-color: #eeeeee;
}

.tooltip { /* tooltip style */
    background: url(../images/tooltip.png) scroll 0 0;
    _border: 0.1em solid #a3a3a1;
    color: #322209;
    font-size: 11px;
    font-style: italic;
    line-height: 15px;
    margin: 0.5em 0 0.7em 0;
    padding: 0.2em 0.8em 0.2em 0.5em;
}

.visible {
    height: auto;
    visibility: visible;
}

/* ================================== */
/* ===== Used to align elements ===== */
/* ================================== */
.align-float {
    float: right;
}

.align-text {
    text-align: right;
}

.align-top {
    vertical-align: top;
}

.centered {
    text-align: center;
}

/* ==================================== */
/* ===== Masthead (Header) Styles ===== */
/* ==================================== */
#logo-area {
    background: url(../images/ofbiz_logo.png) no-repeat;
    width: 385px;
    height: 50px;
}

#logo-area a {
    display: block;
    height: 100%;
}

#org-logo-area {
    width: auto;
    height: 50px;
}

#org-logo-area a {
    display: block;
    height: 100%;
}

#org-logo-area img {
    height: 50px;
}

#masthead {
    background: url(../images/header_top_bg.gif) repeat-x;
    font-weight: bold;
    height: 1%; /* IE fix */
}

#masthead ul li {
    float: left;
}

#masthead ul .opposed {
    float: right;
    text-align: right;
    padding-right: 10px;
}

ul#preferences-menu {
    font-size: 1.1em;
    float: right;
}

ul#preferences-menu li {
    border-left: solid 1px #BBBBBB;
    padding: 0 1em 0 1em;
}

ul#preferences-menu li.first,
ul#preferences-menu li.user,
ul#preferences-menu li.org {
    border: none;
}

ul#preferences-menu li.user,
ul#preferences-menu li.org {
    padding: 0;
    color: #AAAAAA;
}

ul#preferences-menu li.user a,
ul#preferences-menu li.org a {
    color: #AAAAAA;
}

ul#preferences-menu li a:hover {
    color: #FFFFFF;
    text-decoration: none;
}

ul#preferences-menu .expanded {
    background: url(../images/expand.png) no-repeat right;
    width: 22px;
    padding: 0;
}

ul#preferences-menu .collapsed {
    background: url(../images/collapse.png) no-repeat right;
    width: 32px;
    padding: 0;
}

ul#preferences-menu li.collapsed a {
    padding-left: 16px;
}

ul#preferences-menu li.expanded a {
    padding-left: 16px;
}

ul#preferences-menu li a {
    color: #F9E97F;
    padding: 0.2em;
    font-size: 11px;
    font-family: Verdana, Geneva, sans-serif;
    font-weight: normal;
}

ul#preferences-menu a:hover {
    color: #5CA3D7;
    text-decoration: none;
}

ul#preferences-menu li.collapsed a:hover {
    background: url(../images/collapse.png) no-repeat right;
}

ul#preferences-menu li.expanded a:hover {
    background: url(../images/expand.png) no-repeat right;
}

ul#preferences-menu li a.help-link {
    display: block;
    height: 16px;
    width: 19px;
    margin: 0 0 -5px 0;
    background: url(../images/help.png) no-repeat;
}

/* ========================================= */
/* ===== Footer Styles ===================== */
/* ========================================= */
#footer {
    background: #919191 url(../images/footer_bg.gif) repeat-x scroll 0% 0%;
    height: 80px;
    padding-left: 5px;
    color: #717069;
}

#footer li {
    float: left;
    padding: 10px;
}

#footer li.opposed {
    float: right;
}

#footer a {
    color: #aa9f63;
    font-weight: normal;
}

/* =========================================== */
/* ===== Main Navigation Bar Styles ========== */
/* =========================================== */
#navigation {
    background: url(../images/header_top_bg_btm.gif) repeat-x;
    height: 30px;
    width: 100%;
}

#main-navigation, #app-navigation {
    height: 30px;
    float: left;
    font-size: 130%;
}

#control-area {
    height: 30px;
    float: right;
    text-align: right;
    padding-right: 10px;
}

#control-area li {
    float: right;
}

#main-navigation {
    background: url(../images/appbar.png) no-repeat right -30px;
    overflow: hidden;
}

.menu_selected #main-navigation {
    background: url(../images/appbar.png) no-repeat right 0px;
}

#app-navigation {
    background: url(../images/appbar.png) no-repeat right -60px;
}

.menu_selected #app-navigation {
    background: url(../images/appbar.png) no-repeat right -30px;
}

#main-navigation h2, #app-navigation h2 {
    color: #FFFFFF;
    cursor: default;
    font-size: 14px;
    font-weight: normal;
    text-decoration: none;
    padding: 8px 45px 5px 10px;
    font-family: Verdana, Geneva, sans-serif;
}

#app-navigation h2 {
    color: #262626;
    font-weight: bold;
}

.menu_selected #app-navigation h2 {
    color: #FFFFFF;
    font-weight: normal;
}

#app-navigation .clear {
    clear: none;
}

#main-navigation ul li ul,
#app-navigation ul li ul {
    background-color: #131212;
    border-right: 4px solid #131212;
    position: absolute;
    opacity: 0.96;
    z-index: 9999;
    width: 200px;
    -moz-opacity: 0.96;
    -khtml-opacity: 0.96;
    -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=96);
}

#main-navigation ul li ul li ul.secondary {
    left: 204px;
    background-color: #1b1919;
}

#main-navigation ul li ul li a,
#app-navigation ul li ul li a {
    display: block;
    padding: 5px 16px;
    font-size: 12px;
    font-weight: normal;
    color: #FFFFFF;
}

#main-navigation ul li ul li a:hover,
#app-navigation ul li ul li a:hover {
    background-color: #8f7915;
    text-decoration: none;
}

#main-navigation ul li ul li a.disabled,
#app-navigation ul li ul li a.disabled {
    color: #999999;
}

#main-navigation ul li ul li.selected a,
#app-navigation ul li ul li.selected a {
    background-color: #edca2d;
    color: #000000;
}

#main-navigation ul li ul li.selected a:hover,
#app-navigation ul li ul li.selected a:hover {
    background-color: #403f40;
}

#main-navigation ul.main,
#app-navigation li ul {
    display: none;
}

#app-nav-selected-item {
    color: #262626;
    float: left;
    height: 22px;
    background: url(../images/appbar.png) no-repeat right -90px;
    padding: 8px 20px 0px 10px;
    font-size: 1.5em;
    font-weight: bold;
}

/* ============================ */
/* ===== Screenlet Styles ===== */
/* ============================ */
.screenlet {
    height: auto !important;
    height: 1%;
    padding-bottom: 10px;
    margin-bottom: 1em;
    background-color: #BFBFBF;
    overflow: auto;
}

/* Special Screenlet Handling for locals and timezone window */
DIV.lists.screenlet {
    margin-left: 25%;
    margin-right: 25%;
    margin-top: 1em;
}

DIV.lists.screenlet .basic-table tr td {
    text-align: center;
}

DIV.lists.screenlet .basic-table tr td a {
    display: block;
}

.screenlet-title-bar {
    background: url(../images/bkgd_header.gif) repeat-x;
    min-height: 21px;
    padding-top: 1px;
}

.screenlet-title-bar .h1,
.screenlet-title-bar .h2,
.screenlet-title-bar .h3,
.screenlet-title-bar h1,
.screenlet-title-bar h2,
.screenlet-title-bar h3 {
    color: #ffffff;
    font-weight: normal;
    font-size: 15px;
    padding: 0.1em 0.5em 0.2em 0.5em;
}

.screenlet-title-bar ul {
    display: inline; /* IE Fix */
}

.screenlet-title-bar ul li {
    border-left: 0.1em solid #BBBBBB;
    color: #ffffff;
    float: right;
    font-size: 1em;
    font-weight: bold;
    padding: 0.1em 0.5em 0.2em 0.5em;
}

.screenlet-title-bar ul h1,
.screenlet-title-bar ul h2,
.screenlet-title-bar ul h3,
.screenlet-title-bar ul .h1,
.screenlet-title-bar ul .h2,
.screenlet-title-bar ul .h3 {
    border-left: none;
    font-size: 12px;
    float: left;
}

.screenlet-title-bar .h1 {
    font-size: 1.6em;
}

.screenlet-title-bar .h2 {
    font-size: 1.3em;
}

.screenlet-title-bar .h3, .screenlet-title-bar .head4 {
    font-size: 15px;
}

.screenlet-title-bar .h3 a {
    color: #ffff66;
    display: inline;
}

.screenlet-title-bar ul a {
    color: #F9E97F;
    display: block;
}

.screenlet-title-bar ul a:hover {
    color: #ffffff;
    text-decoration: none;
}

.screenlet-title-bar ul .disabled {
    color: #CCCCCC;
}

.screenlet-title-bar ul .collapsed,
.screenlet-title-bar ul .collapsed:hover {
    background: url(../images/bullet_arrow_down.png) no-repeat right;
    width: 16px;
    border: none;
}

.screenlet-title-bar ul .expanded,
.screenlet-title-bar ul .expanded:hover {
    background: url(../images/bullet_arrow_up.png) no-repeat right;
    width: 16px;
    border: none;
}

.screenlet-title-bar ul .collapsed a,
.screenlet-title-bar ul .expanded a {
    cursor: pointer;
}

.screenlet-body {
    border-top: #ebe9db thin solid;
    border-left: #dad8cd thin solid;
    border-right: #9d9d9b thin solid;
    height: auto !important;
    padding: 5px;
}

.screenlet-body h1, .screenlet-body .h1 {
    margin-bottom: 0.5em;
    margin-top: .5em;
    padding-left: .5em;
    color: #f1f1f1;
    font-weight: normal;
    font-size: 18px;
}

.screenlet-body h2, .screenlet-body .h2 {
    margin-left: -5px;
    margin-right: -5px;
}

.no-padding h2, .no-padding .h2 {
    margin: 0;
}

/* login screenlet decorator */
.login-screenlet {
    width: 400px;
    margin: 100px auto 300px;
    padding: 0px;
}

.login-screenlet .screenlet-title-bar {
    text-align: center;
}

.login-screenlet form {
    padding: 20px;
}

.login-screenlet .screenlet-body {
    background-image: url(../images/login_bkgd.jpg);
    border: none;
    font-size: 12px;
}

/***********************************************
ajax auto complete
***********************************************/
div.autocomplete {
    position: absolute;
    width: auto !important;
    /* min-width:154px; */
    background-color: #f8f8f8;
    border: 1px solid #999999;
    margin: 0;
    padding: 0;
}

div.autocomplete ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}

div.autocomplete ul li.selected {
    background-color: #ffb;
}

div.autocomplete ul li {
    list-style-type: none;
    display: block;
    float: none;
    margin: 0;
    padding: 2px;
    /*height:32px;*/
    cursor: pointer;
}

.indicator img {
    background: url(/images/ajax-loader.gif) no-repeat 0 0;
    display: block;
    margin: 3px 10px 0px 34px;
    width: 16px;
    height: 16px;
    border: none;
}

.screenlet-title-bar .indicator img {
    float: right;
    margin: 0 3px;
    width: 16px;
    height: 16px;
    display: inline;
}

/* ======================================================= */
/* ===== Basic Navigation (Vertical Menu) Style ========== */
/* ======================================================= */
.basic-nav { /* indent menu - helpful for widgets */
    padding-left: 1em;
}

.basic-nav ul { /* placeholder */
}

.basic-nav ul li {
}

.basic-nav ul a {
    padding-left: 0.5em;
    padding-right: 0.5em;
    color: #000000;
    font-size: 1.1em;
    background-image: url(../images/button_whitegray.jpg);
}

.basic-nav ul .selected, .basic-nav ul .selected a {
    color: #000000;
}

.basic-nav ul a:hover {
    color: #000000;
}

.basic-nav ul .disabled, .basic-nav ul .disabled a {
    color: #D4D0C8;
}

/* ======================================== */
/* ===== Button Bar Navigation Styles ===== */
/* ======================================== */

.button-bar {
    margin: 10px 5px;
}

.button-bar ul {
    display: inline; /* IE Fix */
}

.button-bar ul li {
    float: left;
    font-weight: bold;
    text-transform: uppercase;
}

.button-bar ul li ul li {
    margin-right: 0.5em;
}

.button-bar ul .opposed {
    float: right;
}

.button-bar ul a, .button-bar a {
    background-image: url(../images/tab_normal1.png);
    color: #000000;
    padding: 6px 10px 6px;
    line-height: 19px;
    white-space: nowrap;
}

.button-bar a.buttontext {
    text-transform: uppercase;
}

.button-bar ul a.create, .button-bar a.create {
    background: url(../images/button_sprite.png) no-repeat 0px 0px;
    padding: 6px 10px 6px 30px;
}

.button-bar ul a.create:hover, .button-bar a.create:hover {
    background: url(../images/button_sprite.png) no-repeat 0px -26px;
}

.button-bar ul a.delete, .button-bar a.delete {
    background: url(../images/button_sprite.png) no-repeat 0px -52px;
    padding: 6px 10px 6px 30px;
}

.button-bar ul a.delete:hover, .button-bar a.delete:hover {
    background: url(../images/button_sprite.png) no-repeat 0px -78px;
}

.button-bar ul a.refresh, .button-bar a.refresh {
    background: url(../images/button_sprite.png) no-repeat 0px -156px;
    padding: 6px 10px 6px 30px;
}

.button-bar ul a.refresh:hover, .button-bar a.refresh:hover {
    background: url(../images/button_sprite.png) no-repeat 0px -182px;
}

.button-bar ul a.search, .button-bar a.search {
    background: url(../images/button_sprite.png) no-repeat 0px -104px;
    padding: 6px 10px 6px 30px;
}

.button-bar ul a.search:hover, .button-bar a.search:hover {
    background: url(../images/button_sprite.png) no-repeat 0px -130px;
}

.button-bar ul a:hover, .button-bar a:hover {
    color: #25292c;
    background-image: url(../images/ptrn_button_hover.gif);
    text-decoration: none;
}

.button-bar .opposed, .button-bar .opposed li, .button-bar ul .opposed {
    float: right;
}

/* ===== Button style decorator ===== */
.button-style-1 {
    padding-bottom: 20px;
}

.button-style-1 ul li, .tabContainer ul li {
    background-color: #ffffff;
    color: #000099;
}

.button-style-1 a, .button-style-1 ul a, a.button-style-1 {
    background-color: #D4D0C8;
    border: solid #000099 0.1em;
    color: #000099;
}

.button-style-1 .selected, .button-style-1 ul .selected, .button-style-1 ul .selected a {
    background-image: url(../images/tab_selected.png);
    color: #ffffff;
}

.button-style-1 a:hover, .button-style-1 ul a:hover, a.button-style-1:hover {
    background-color: #000099;
    color: #ffffff;
    text-decoration: none;
}

.button-style-1 a.disabled {
    color: #777777;
}

.button-style-1 a.disabled:hover {
    background-image: url(../images/tab_normal1.png);
    background-color: #D4D0C8;
    border: solid #000099 0.1em;
}

/* ===== Button style decorator ===== */
.button-style-2 ul li {
    background-color: #ffffff;
    color: #000099;
}

.button-style-2 ul a, .button-style-2 a, a.button-style-2 {
    color: #25292C;
    padding: 0.6em 1em;
    white-space: nowrap;
}

.button-style-2 ul .selected a, .button-style-2 .selected {
    background-image: url(../images/tab_selected.png);
    color: #ffffff;
}

.button-style-2 ul a:hover, .button-style-2 a:hover, a.button-style-2:hover {
    color: #25292c;
    text-decoration: none;
}

.button-style-2 a.disabled {
    color: #777777;
}

.button-style-2 a.disabled:hover {
    background-image: url(../images/tab_normal1.png);
    background-color: none;
}

/* ===== In line bar ===== */
.in-line-bar ul li ul {
    position: relative;
    top: 0em;
    left: 0;
    max-height: 0em;
    margin: 0;
    padding: 0;
    overflow: hidden;
    transition: 1.5s max-height 0.3s;
}

.in-line-bar > li li {
    position: relative;
    display: inline-block;
}

tr:hover td div.in-line-bar li ul {
    max-height: 20em;
}

/* ===== Button bar decorators ===== */
.tool-bar {
    background-color: #D4D0C8;
    border: 0.1em solid #000099;
    padding: 0.2em;
}

.tool-bar ul li {
    background-color: #D4D0C8;
    padding: 0.1em;
}

/* tab-bar decorator intended to be used at
the top of the main content area */
.tab-bar {
    background-color: #837f87;
    background-image: url(../images/tab_bar.gif);
    background-repeat: repeat-x;
    padding: 5px 10px 0px 10px;
    font-size: 1.1em;
    margin: 0px;
    min-height: 20px;
}

.tab-bar ul li {
    margin: 0 2px 0 2px;
    float: left;
    padding: 0;
}

.tab-bar ul a {
    display: block;
}

.tab-bar ul a, .tab-bar ul a:visited {
    color: #404040;
    padding: 2px 5px 2px 5px;
}

.tab-bar ul a:hover {
    background-color: #D0D0D0;
    color: #404040;
    text-decoration: none;
}

.tab-bar ul .selected, .tab-bar ul .selected a, .tab-bar ul .selected a:hover {
    _background-color: #ececec;
    color: #404040;
    background-image: url(../images/tab_selected.png);
    text-decoration: none;
}

.tab-bar ul .disabled {
    color: #D4D0C8;
    padding: 0.1em 0.4em 0.1em 0.4em;
}

.tab-bar .opposed, .tab-bar .opposed li, .tab-bar ul .opposed {
    border-left: 0.1em solid #5f9fcf;
    border-right: none;
}

.leftonly .tab-bar {
    margin-left: 0px;
    margin-right: -12px;
    padding-bottom: 4px;
}

/* ======================== */
/* ===== Table Styles ===== */
/* ======================== */
.basic-table {
    color: #000000;
    width: 100%;
}

form .basic-table, .screenlet-body .basic-table {
    margin-bottom: 0;
}

.basic-table tr td { /* Style for all cells */
    padding: 0.1em;
    vertical-align: middle;
}

.basic-table tr .label, .basic-table tr .group-label {
    /* field labels for forms */
    font-weight: bold;
    text-align: right;
    padding-right: 1.5em;
    white-space: nowrap;
    width: 1%;
}

.basic-table tr .group-label { /* "header" for field label groups */
    font-size: 1.2em;
    padding: 2em 1.5em 0 0;
}

.basic-table tr.header-row,
.basic-table tr.header-row-2 {
    background: url(../images/bkgd_subheader.gif) repeat-x bottom;
    text-transform: uppercase;
}

.basic-table tr th, .basic-table .header-row {
    font-weight: bold;
    text-align: left;
}

.basic-table .header-row td {
    border-bottom: 0.1em solid #000000;
}

.basic-table .header-row td a {
    color: #000000;
}

.basic-table .alternate-row { /* Alternating row style */
    background-color: #dfdfdf;
}

.basic-table .selected {
    background: #FFFCCF;
}

.basic-table .alternate-rowSelected {
    background: #FFF55F;
}

.basic-table .Validate { /*Style use by alt-row-style on list*/
    background: #A0D5F7;
}

.basic-table .alternate-rowValidate {
    /*Style use by alt-row-style on list*/
    background: #72A8F2;
}

.basic-table .Warn { /*Style use by alt-row-style on list*/
    background: #f55C5C;
}

.basic-table .alternate-rowWarn { /*Style use by alt-row-style on list*/
    background: #FC7455;
}

.basic-table tr .button-col {
    /* button column style - for the small
collection of buttons used in lists */
    vertical-align: top;
}

.basic-table tr .button-col a {
    background: transparent url(../images/ptrn_button.gif) repeat-x scroll left center;
    border: 2px solid #DDDDDD;
    color: #333333;
    float: left;
    font-weight: bold;
    margin: 0 0.1em;
    padding: 0.1em 0.4em;
    text-transform: uppercase;
    white-space: nowrap;
}

.basic-table tr .smallSubmit, .basic-table tr .smallSubmit:visited {
    background-color: #ffffff;
    border: #999999 solid 0.1em;
    color: #000099;
    font-size: 1em;
    font-weight: bold;
    margin: 0.2em;
    padding: 0.1em 0.2em 0.1em 0.2em;
    white-space: nowrap;
}

.basic-table tr .button-col a:hover, .basic-table tr .button-col a:active, .basic-table tr .smallSubmit:hover, .basic-table tr .smallSubmit:active {
    _color: #ff0000;
    text-decoration: none;
    background: transparent url(../images/ptrn_button_hover.gif) repeat-x scroll left center;
}

.basic-table .collapsed {
    visibility: collapse;
}

/* ===== Alternate table header style ===== */
.basic-table .header-row-2 th, .basic-table .header-row-2 td {
    background-color: #1e1e1d;
    background-image: url(../images/bkgd_header.gif);
    background-repeat: repeat-x;
    border-bottom: 0;
    padding-left: 5px;
    border-left: 0.1em solid #81817f;
    color: #fcfbf4;
    font-weight: normal;
    text-align: left;
}

.basic-table .header-row-2 th a, .basic-table .header-row-2 td a {
    background-color: #999999;
    border-bottom: 0;
    color: #ffffff;
    font-weight: bold;
    text-align: left;
    text-decoration: none;
}

/* ===== Sort field style ===== */
.basic-table .header-row-2 th .sort-order-asc, .basic-table .header-row-2 td .sort-order-asc {
    background: url(../images/arrow-gr-up.png) no-repeat right;
    padding-right: 20px;
}

.basic-table .header-row-2 th .sort-order-desc, .basic-table .header-row-2 td .sort-order-desc {
    background: url(../images/arrow-gr-dw.png) no-repeat right;
    padding-right: 20px;
}

.basic-table .header-row-2 th .sort-order, .basic-table .header-row-2 td .sort-order {
    background: transparent;
    padding-right: 20px;
}

/* ===== Table decorator - Hover bar ===== */
.hover-bar tr:hover {
    background-color: #cccccc;
    cursor: default;
}

.hover-bar .header-row:hover, .hover-bar tr th:hover {
    background-color: #ffffff;
    color: #000000;
}

/* ===== Table decorator - Grid ===== */
/* These decorators need an IE hack. IE7 does not
render borders around empty <td> elements */
.dark-grid { /* dark grid */
    border-right: 0.1em solid #000000;
    border-top: 0.1em solid #000000;
}

.dark-grid td, .dark-grid .header-row-2 th, .dark-grid .header-row-2 td {
    border-bottom: 0.1em solid #000000;
    border-left: 0.1em solid #000000;
}

.light-grid { /* light grid */
    border-right: 0.1em solid #cccccc;
    border-top: 0.1em solid #cccccc;
}

.light-grid td, .light-grid .header-row td {
    border-bottom: 0.1em solid #cccccc;
    border-left: 0.1em solid #cccccc;
}

/* ===== Table decorator - Calendar ===== */
.calendar {
    border-right: 0.1em solid #cccccc;
}

.calendar tr td {
    border-bottom: 0.1em solid #cccccc;
    border-left: 0.1em solid #cccccc;
    vertical-align: top;
    padding: 0.5em;
}

.calendar .header-row td {
    background-color: #69a9d9;
    border-bottom: 0.1em solid #cccccc;
    border-left: 0.1em solid #cccccc;
    color: #ffffff;
    height: auto;
    text-align: center;
}

.calendar tr td .add-new {
    float: right;
}

.calendar tr td .h1 {
    color: #000099;
    float: left;
}

.calendar .current-period {
    background-color: #ffffcc;
}

.calendar .active-period {
    background-color: #eeeeee;
}

/* ======================= */
/* ===== Tree Styles ===== */
/* ======================= */
.basic-tree { /* placeholder */

}

.basic-tree ul {
    padding-left: 1em;
}

.basic-tree li {
    padding-left: 1em;
    white-space: nowrap;
}

.basic-tree li .expanded {
    background: url(/images/collapse.gif) no-repeat left center;
    padding-right: 1em;
}

.basic-tree li .collapsed {
    background: url(/images/expand.gif) no-repeat left center;
    padding-right: 1em;
}

.basic-tree li .leafnode {
    background: url(/images/expand-collapse-placeholder.gif) no-repeat left center;
    padding-right: 1em;
}

.basic-tree li .treeitem { /* treeitem is deprecated */
    border-style: none;
    color: #000099;
    font-size: 1em;
}

.basic-tree li a:hover {
    color: #0000ff;
}

/* ======================== */
/* ===== Form Styles ===== */
/* ======================== */
.basic-form table {
    width: 100%;
}

.basic-form table .header-row:hover {
    background-color: #ffffff;
    color: #000000;
}

.basic-form table tr td {
    padding: 0.1em;
}

.basic-form table tr .label, .basic-form table tr .group-label {
    /* field labels for forms */
    font-weight: bold;
    text-align: right;
    padding-right: 1.5em;
    width: 1%;
}

.basic-form table tr .group-label {
    /* "header" for field label groups */
    font-size: 1.2em;
    padding: 2em 1.5em 0 0;
}

.basic-form table tr th, .basic-form table .header-row {
    font-weight: bold;
    text-align: left;
}

.basic-form table .header-row:hover, .basic-form table tr th:hover {
    background-color: #ffffff;
    color: #000000;
}

.basic-form table .header-row td {
    border-bottom: 0.1em solid #999999;
}

.basic-form table .viewManyTR1, .basic-form table .alternate-row {
    /* Alternating row style */
    /* .viewManyTR1 deprecated - use .alternate-row */
    background-color: #eeeeee;
}

.basic-form table tr td .smallSubmit, .basic-form table tr td .smallSubmit:visited {
    background-color: #ffffff;
    border: #999999 solid 0.1em;
    color: #262626;
    font-size: 1em;
    font-weight: bold;
    margin: 0.2em;
    padding: 0.1em 0.2em 0.1em 0.2em;
}

.basic-form table tr td .smallSubmit:hover, .basic-form table tr td .smallSubmit:active {
    color: #ff0000;
    text-decoration: none;
}

.basic-form table tr td .disabled {
    background-color: #cccccc;
    color: #333366;
    text-decoration: none;
}

.basic-form table.condensed-table {
    width: 0%;
}

/* ===== Form decorator - Form Widget ===== */
.form-widget table tr .label, .form-widget-table tr .label {
    /* Added for backward compatibility */
    width: 20%;
}

.form-widget table, .form-widget-table {
    width: auto;
}

.form-widget-table {
    margin-bottom: 1em;
}

/* Pager */
.nav-pager {
    background-color: #9F9F9F;
    padding: 2px 20px;
    height: 23px;
}

.nav-pager select {
    background-color: #ACABA9;
    margin-left: 10px;
    border: none;
    height: auto;
    margin-top: 0;
}

.nav-pager ul {
    display: inline; /* IE Fix */
}

.nav-pager ul li {
    float: left;
    line-height: 1.8em;
    margin: 0px 3px;
    color: #333333;
    font-size: 12px;
}

.nav-pager ul li.nav-displaying {
    float: right;
}

.nav-pager ul li a {
    display: block;
    text-indent: -2000px;
}

.nav-pager ul li span {
    visibility: hidden;
    display: block;
}

.nav-pager ul .nav-first a:hover {
    background: url(../images/navigation.png) no-repeat 0px -46px;
}

.nav-pager ul .nav-previous a:hover {
    background: url(../images/navigation.png) no-repeat -23px -46px;
}

.nav-pager ul .nav-next a:hover {
    background: url(../images/navigation.png) no-repeat -46px -46px;
}

.nav-pager ul .nav-last a:hover {
    background: url(../images/navigation.png) no-repeat -69px -46px;
}

.nav-pager ul .nav-first a {
    background: url(../images/navigation.png) no-repeat 0px -23px;
}

.nav-pager ul .nav-previous a {
    background: url(../images/navigation.png) no-repeat -23px -23px;
}

.nav-pager ul .nav-next a {
    background: url(../images/navigation.png) no-repeat -46px -23px;
}

.nav-pager ul .nav-last a {
    background: url(../images/navigation.png) no-repeat -69px -23px;
}

.nav-pager ul .nav-first-disabled {
    background: url(../images/navigation.png) no-repeat 0px 0px;
}

.nav-pager ul .nav-previous-disabled {
    background: url(../images/navigation.png) no-repeat -23px 0px;
}

.nav-pager ul .nav-next-disabled {
    background: url(../images/navigation.png) no-repeat -46px 0px;
}

.nav-pager ul .nav-last-disabled {
    background: url(../images/navigation.png) no-repeat -69px 0px;
}

.nav-pager ul .nav-first a,
.nav-pager ul .nav-previous a,
.nav-pager ul .nav-next a,
.nav-pager ul .nav-last a,
.nav-pager ul .nav-first-disabled,
.nav-pager ul .nav-previous-disabled,
.nav-pager ul .nav-next-disabled,
.nav-pager ul .nav-last-disabled {
    width: 23px;
    height: 23px;
}

.nav-pager ul .nav-pagesize {
    padding: 0 30px 0 30px;
}

.field-lookup a {
    background: url(../images/fieldlookup.png) no-repeat 0 0;
    display: inline-block;
    /* margin: 3px 10px 0px 4px; */
    vertical-align: top;
    margin-top: 3px;
    width: 35px;
    height: 22px;
}

.CalLookupImage {
    display: inline-block;
    background: url(../images/cal.png) no-repeat;
    width: 22px;
    height: 22px;
    vertical-align: middle;
}

.CalLookupImage img {
    display: none;
}

#masthead ul li.last-system-msg {
    color: #FFFFFF;
    padding-left: 10px;
    float: left;
    margin-right: 20px;
}

.last-system-msg a {
    color: #FFFFFF;
}

/* ============================= */
/* ===== FieldGroup Styles ===== */
/* ============================= */
.fieldgroup-title-bar {
    font-size: 1.2em;
    font-weight: bold;
    padding: 5px 0 5px 10px;
}

.fieldgroup-body {
    border-top: #999 solid thin;
    border-bottom: #F5F5F5 solid thin;
    background-color: #CCC;
    padding: 0.6em;
}

.fieldgroup-title-bar ul .collapsed, .fieldgroup-title-bar ul .collapsed:hover {
    background: url(../images/bullet_toggle_plus.png) no-repeat left center;
}

.fieldgroup-title-bar ul .expanded, .fieldgroup-title-bar ul .expanded:hover {
    background: url(../images/bullet_toggle_minus.png) no-repeat left center;
}

.fieldgroup-title-bar a {
    cursor: pointer;
    text-decoration: none;
    padding-left: 10px;
    color: #000000;
}

/* == Portlet configuration screenlet == */
.portlet-config {
    background-color: #FFFF99;
    margin-bottom: 5px;
}

.portlet-config-title-bar .title {
    float: left;
}

.portlet-config-title-bar select {
    margin: 0;
    border: none;
    font-size: 10px;
    height: auto;
    padding: 0;
    vertical-align: top;
}

.portlet-config-title-bar ul {
    display: inline; /* IE Fix */
}

.portlet-config-title-bar ul li {
    float: right;
    font-size: 1em;
    font-weight: bold;
    padding: 0.1em 0.5em 0.2em 0.5em;
}

.portlet-config-title-bar ul li.move-up {
    background: url(/images/arrow-single-up-green.png) no-repeat center center;
}

.portlet-config-title-bar ul li.move-down {
    background: url(/images/arrow-single-down-green.png) no-repeat center center;
}

.portlet-config-title-bar ul li.move-left {
    background: url(/images/arrow-single-left-green.png) no-repeat center center;
}

.portlet-config-title-bar ul li.move-right {
    background: url(/images/arrow-single-right-green.png) no-repeat center center;
}

.portlet-config-title-bar ul li.move-top {
    background: url(/images/arrow-end-up-green.png) no-repeat center center;
}

.portlet-config-title-bar ul li.move-bottom {
    background: url(/images/arrow-end-down-green.png) no-repeat center center;
}

.portlet-config-title-bar ul li.remove {
    background: url(/images/mini-trash.png) no-repeat center center;
}

.portlet-config-title-bar ul li.edit {
    background: url(/images/mini-edit.png) no-repeat center center;
}

/* == Portal Manager Toolbar == */
#manage-portal-toolbar {
    background-color: #D4D0C8;
    margin-bottom: 0.5em;
}

#manage-portal-toolbar ul li {
    float: left;
    padding: 0.1em 0.5em 0.2em 0.5em;
}

#manage-portal-toolbar #config-on-off, #manage-portal-toolbar #manage-portal-page, #manage-portal-toolbar #add-column {
    float: right;
}

#manage-portal-toolbar #portal-page-name {
    font-size: 1.5em;
    font-weight: bold;
}

.manage-portal-column-toolbar #add-portlet, .manage-portal-column-toolbar #delete-column, .manage-portal-column-toolbar #column-width {
    float: right;
}

.portal-column-config-title-bar {
    padding-left: 5px;
}

.portal-column-config-title-bar ul li {
    float: left;
}

.portal-column-config {
    background: #FFFFFF;
}

/***********************************************
Webtools
***********************************************/
.webToolList h3 {
    margin: 0.75em 0 0.09em 0;
    text-transform: uppercase;
}

/***********************************************
Lookups
***********************************************/
.fieldLookup {
    background: #ffffff;
    border-right: 2px solid #000;
    border-left: 2px solid #000;
    border-bottom: 3px solid #000;
    position: absolute;
    padding: 3px 1px 1px 1px;
    overflow: visible;
    z-index: 110000;
    visibility: visible;
}

.fieldLookupHeader {
    border-bottom: 1px solid #aaa;
    border-top: 1px solid #000;
    height: 18px;
    font-size: 12px;
    padding: 3px 0;
    color: #333;
    background-image: url(../images/header_top_bg.gif);
    cursor: move;
}

.fieldLookupHeader span {
    text-align: right;
    cursor: pointer;
}

.fieldLookupHeader span div {
    background-image: url(../images/header_close_button.png);
    float: right;
    width: 16px;
    height: 16px;
}

#fieldLookupContent {
    background-color: #ffffff;
    overflow: auto;
    width: 100%;
    height: 95%;
}

/* overwrite */
#fieldLookupContent ul li a {
    display: inherit;
    cursor: pointer;
    margin-top: 0px;
}

#fieldLookupContent td {
    padding-top: 5px;
    padding-bottom: 5px;
}

#fieldLookupContent td span a {
    background: url(../images/fieldlookup.png) no-repeat;
    display: inline-block;
}

.ui-dialog-content td button {
    cursor: pointer;
    color: #262626;
    border-color: #F7E893 #999999 #999999 #F7E893;
    background: #FCF9E6 url(../images/button_whitegray.jpg);
    font-weight: bold;
    border-style: solid;
    border-width: 0.1em;
    margin: 0.3em;
    padding: 0.4em 0.5em;
}

.ui-dialog-content td button:hover {
    color: #000000;
    cursor: pointer;
    border-bottom: #999999 solid 0.1em;
    border-top: #333333 solid 0.1em;
    border-left: #333333 solid 0.1em;
    border-right: #999999 solid 0.1em;
    text-decoration: underline;
    background-image: url(../images/button_medgray_in.jpg);
}

/* overwrite*/
#findScreenlet {
    margin-top: 0;
}

.row-level-one.alternate-row {
    background-color: #81817F;
}

.row-level-two {
    background-color: #D4D0C8;
}

.basic-table.order-items tr td {
    vertical-align: top;
}

.order-items .order-item-description {
    display: inline;
    font-size: 145%;
}

.basic-table.order-items .screenlet-body {
    background-color: #dfdfdf;
}

.basic-table.order-items .alternate-row .screenlet-body {
    background-color: #bfbfbf;
}

.order-info .current-status {
    font-size: 145%;
    padding: 10px;
}

.order-item-status-list .current-status {
    font-size: 145%;
}

.order-info .APPROVED, .order-list .APPROVED {
    background-color: #a9b996;
}

.order-info .REJECTED, .order-list .REJECTED {
    background-color: #b29898;
}

.order-item-status-list.APPROVED .screenlet-body, .alternate-row .order-item-status-list.APPROVED .screenlet-body {
    background-color: #a9b996;
}

.order-item-status-list.REJECTED .screenlet-body, .alternate-row .order-item-status-list.REJECTED .screenlet-body {
    background-color: #b29898;
}

#wait-spinner {
    z-index: 50000;
    position: absolute;
}

#wait-spinner-image {
    height: 45px;
    width: 45px;
    background-repeat: no-repeat;
    background-image: url(/images/spinner.gif);
}

.wait-spinner div {
    padding-top: 4px;
}

img.cssImgXLarge {
    /*border: 1px black solid;*/
    max-width: 200px;
    max-height: 150px;
}

img.cssImgLarge {
    /*border: 1px black solid;*/
    max-width: 100px;
    max-height: 75px;
}

img.cssImgStandard {
    /*border: 1px black solid;*/
    max-width: 70px;
    max-height: 52px;
}

img.cssImgSmall {
    /*border: 1px black solid;*/
    max-width: 50px;
    max-height: 37px;
}

/* ========================================================= */
/* ===== JavaScript jQuery widgets                      ===== */
/* ========================================================== */

/*! jQuery UI - v1.9.0 - 2012-10-05
* http://jqueryui.com
* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/
* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */

/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
    display: none;
}

.ui-helper-hidden-accessible {
    position: absolute !important;
    clip: rect(1px 1px 1px 1px);
    clip: rect(1px, 1px, 1px, 1px);
}

.ui-helper-reset {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    line-height: 1.3;
    text-decoration: none;
    font-size: 100%;
    list-style: none;
}

.ui-helper-clearfix:before, .ui-helper-clearfix:after {
    content: "";
    display: table;
    border-collapse: collapse;
}

.ui-helper-clearfix:after {
    clear: both;
}

.ui-helper-clearfix {
    zoom: 1;
    min-height: 0; /* support: IE7 */
}

.ui-helper-zfix {
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    position: absolute;
    opacity: 0;
    filter: Alpha(Opacity=0);
}

/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
    cursor: default !important;
}

/* Icons
----------------------------------*/

/* states and images */
.ui-icon {
    display: block;
    text-indent: -99999px;
    overflow: hidden;
    background-repeat: no-repeat;
}

/* Misc visuals
----------------------------------*/

/* Overlays */
.ui-widget-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.ui-accordion .ui-accordion-header {
    display: block;
    cursor: pointer;
    position: relative;
    margin-top: 2px;
    padding: .5em .5em .5em .7em;
    zoom: 1;
}

.ui-accordion .ui-accordion-icons {
    padding-left: 2.2em;
}

.ui-accordion .ui-accordion-noicons {
    padding-left: .7em;
}

.ui-accordion .ui-accordion-icons .ui-accordion-icons {
    padding-left: 2.2em;
}

.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
    position: absolute;
    left: .5em;
    top: 50%;
    margin-top: -8px;
}

.ui-accordion .ui-accordion-content {
    padding: 1em 2.2em;
    border-top: 0;
    overflow: auto;
    zoom: 1;
}

.ui-autocomplete {
    position: absolute;
    cursor: default;
}

/* workarounds */
* html .ui-autocomplete {
    width: 1px;
}

/* without this, the menu expands to 100% in IE6 */
.ui-button {
    display: inline-block;
    position: relative;
    padding: 0;
    margin-right: .1em;
    cursor: pointer;
    text-align: center;
    zoom: 1;
    overflow: visible;
}

/* the overflow property removes extra width in IE */
.ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active {
    text-decoration: none;
}

.ui-button-icon-only {
    width: 2.2em;
}

/* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only {
    width: 2.4em;
}

/* button elements seem to need a little more width */
.ui-button-icons-only {
    width: 3.4em;
}

button.ui-button-icons-only {
    width: 3.7em;
}

/*button text element */
.ui-button .ui-button-text {
    display: block;
    line-height: 1.4;
}

.ui-button-text-only .ui-button-text {
    padding: .4em 1em;
}

.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text {
    padding: .4em;
    text-indent: -9999999px;
}

.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text {
    padding: .4em 1em .4em 2.1em;
}

.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text {
    padding: .4em 2.1em .4em 1em;
}

.ui-button-text-icons .ui-button-text {
    padding-left: 2.1em;
    padding-right: 2.1em;
}

/* no icon support for input elements, provide padding by default */
input.ui-button {
    padding: .4em 1em;
}

/*button icon element(s) */
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon {
    position: absolute;
    top: 50%;
    margin-top: -8px;
}

.ui-button-icon-only .ui-icon {
    left: 50%;
    margin-left: -8px;
}

.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary {
    left: .5em;
}

.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary {
    right: .5em;
}

.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary {
    right: .5em;
}

/*button sets*/
.ui-buttonset {
    margin-right: 7px;
}

.ui-buttonset .ui-button {
    margin-left: 0;
    margin-right: -.3em;
}

/* workarounds */
button.ui-button::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/* reset extra padding in Firefox */
.ui-datepicker {
    width: 17em;
    padding: .2em .2em 0;
    display: none;
}

.ui-datepicker .ui-datepicker-header {
    position: relative;
    padding: .2em 0;
}

.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next {
    position: absolute;
    top: 2px;
    width: 1.8em;
    height: 1.8em;
}

.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover {
    top: 1px;
}

.ui-datepicker .ui-datepicker-prev {
    left: 2px;
}

.ui-datepicker .ui-datepicker-next {
    right: 2px;
}

.ui-datepicker .ui-datepicker-prev-hover {
    left: 1px;
}

.ui-datepicker .ui-datepicker-next-hover {
    right: 1px;
}

.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span {
    display: block;
    position: absolute;
    left: 50%;
    margin-left: -8px;
    top: 50%;
    margin-top: -8px;
}

.ui-datepicker .ui-datepicker-title {
    margin: 0 2.3em;
    line-height: 1.8em;
    text-align: center;
}

.ui-datepicker .ui-datepicker-title select {
    font-size: 1em;
    margin: 1px 0;
}

.ui-datepicker select.ui-datepicker-month-year {
    width: 100%;
}

.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year {
    width: 49%;
}

.ui-datepicker table {
    width: 100%;
    font-size: .9em;
    border-collapse: collapse;
    margin: 0 0 .4em;
}

.ui-datepicker th {
    padding: .7em .3em;
    text-align: center;
    font-weight: bold;
    border: 0;
}

.ui-datepicker td {
    border: 0;
    padding: 1px;
}

.ui-datepicker td span, .ui-datepicker td a {
    display: block;
    padding: .2em;
    text-align: right;
    text-decoration: none;
}

.ui-datepicker .ui-datepicker-buttonpane {
    background-image: none;
    margin: .7em 0 0 0;
    padding: 0 .2em;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
}

.ui-datepicker .ui-datepicker-buttonpane button {
    float: right;
    margin: .5em .2em .4em;
    cursor: pointer;
    padding: .2em .6em .3em .6em;
    width: auto;
    overflow: visible;
}

.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
    float: left;
}

/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi {
    width: auto;
}

.ui-datepicker-multi .ui-datepicker-group {
    float: left;
}

.ui-datepicker-multi .ui-datepicker-group table {
    width: 95%;
    margin: 0 auto .4em;
}

.ui-datepicker-multi-2 .ui-datepicker-group {
    width: 50%;
}

.ui-datepicker-multi-3 .ui-datepicker-group {
    width: 33.3%;
}

.ui-datepicker-multi-4 .ui-datepicker-group {
    width: 25%;
}

.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header {
    border-left-width: 0;
}

.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
    border-left-width: 0;
}

.ui-datepicker-multi .ui-datepicker-buttonpane {
    clear: left;
}

.ui-datepicker-row-break {
    clear: both;
    width: 100%;
    font-size: 0em;
}

/* RTL support */
.ui-datepicker-rtl {
    direction: rtl;
}

.ui-datepicker-rtl .ui-datepicker-prev {
    right: 2px;
    left: auto;
}

.ui-datepicker-rtl .ui-datepicker-next {
    left: 2px;
    right: auto;
}

.ui-datepicker-rtl .ui-datepicker-prev:hover {
    right: 1px;
    left: auto;
}

.ui-datepicker-rtl .ui-datepicker-next:hover {
    left: 1px;
    right: auto;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane {
    clear: right;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane button {
    float: left;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current {
    float: right;
}

.ui-datepicker-rtl .ui-datepicker-group {
    float: right;
}

.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header {
    border-right-width: 0;
    border-left-width: 1px;
}

.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
    border-right-width: 0;
    border-left-width: 1px;
}

/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
    position: absolute; /*must have*/
    z-index: -1; /*must have*/
    filter: mask(); /*must have*/
    top: -4px; /*must have*/
    left: -4px; /*must have*/
    width: 200px; /*must have*/
    height: 200px; /*must have*/
}

.ui-dialog {
    position: absolute;
    top: 0;
    left: 0;
    padding: .2em;
    width: 300px;
    overflow: hidden;
    outline: 0;
}

.ui-dialog .ui-dialog-titlebar {
    padding: .4em 1em;
    height: 16px;
    position: relative;
}

.ui-dialog .ui-dialog-title {
    float: left;
    margin: .1em 0 .1em 0;
    white-space: nowrap;
    width: 90%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ui-dialog .ui-dialog-titlebar-close {
    position: absolute;
    right: .3em;
    top: 50%;
    width: 21px;
    margin: -10px 0 0 0;
    padding: 1px;
    height: 20px;
}

/*.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }*/
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus {
    padding: 0;
}

.ui-dialog .ui-dialog-content {
    position: relative;
    border: 0;
    padding: .5em 1em;
    background: none;
    overflow: auto;
    zoom: 1;
}

.ui-dialog .ui-dialog-buttonpane {
    text-align: left;
    border-width: 1px 0 0 0;
    background-image: none;
    margin: .5em 0 0 0;
    padding: .3em 1em .5em .4em;
}

.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
    float: right;
}

.ui-dialog .ui-dialog-buttonpane button {
    margin: .5em .4em .5em 0;
    cursor: pointer;
}

.ui-dialog .ui-resizable-se {
    width: 14px;
    height: 14px;
    right: 3px;
    bottom: 3px;
}

.ui-draggable .ui-dialog-titlebar {
    cursor: move;
}

.ui-menu {
    list-style: none;
    padding: 2px;
    margin: 0;
    display: block;
    outline: none;
}

.ui-menu .ui-menu {
    margin-top: -3px;
    position: absolute;
}

.ui-menu .ui-menu-item {
    margin: 0;
    padding: 0;
    zoom: 1;
    width: 100%;
    /* support: IE10, see #8844 */
    list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
}

.ui-menu .ui-menu-divider {
    margin: 5px -2px 5px -2px;
    height: 0;
    font-size: 0;
    line-height: 0;
    border-width: 1px 0 0 0;
}

.ui-menu .ui-menu-item a {
    text-decoration: none;
    display: block;
    padding: 2px .4em;
    line-height: 1.5;
    zoom: 1;
    font-weight: normal;
    min-height: 0; /* support: IE7 */
}

.ui-menu .ui-menu-item a.ui-state-focus,
.ui-menu .ui-menu-item a.ui-state-active {
    font-weight: normal;
    margin: -1px;
}

.ui-menu .ui-state-disabled {
    font-weight: normal;
    margin: .4em 0 .2em;
    line-height: 1.5;
}

.ui-menu .ui-state-disabled a {
    cursor: default;
}

/* icon support */
.ui-menu-icons {
    position: relative;
}

.ui-menu-icons .ui-menu-item a {
    position: relative;
    padding-left: 2em;
}

/* left-aligned */
.ui-menu .ui-icon {
    position: absolute;
    top: .2em;
    left: .2em;
}

/* right-aligned */
.ui-menu .ui-menu-icon {
    position: static;
    float: right;
}

.ui-progressbar {
    height: 2em;
    text-align: left;
    overflow: hidden;
}

.ui-progressbar .ui-progressbar-value {
    margin: -1px;
    height: 100%;
}

.ui-resizable {
    position: relative;
}

.ui-resizable-handle {
    position: absolute;
    font-size: 0.1px;
    display: block;
}

.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle {
    display: none;
}

.ui-resizable-n {
    cursor: n-resize;
    height: 7px;
    width: 100%;
    top: -5px;
    left: 0;
}

.ui-resizable-s {
    cursor: s-resize;
    height: 7px;
    width: 100%;
    bottom: -5px;
    left: 0;
}

.ui-resizable-e {
    cursor: e-resize;
    width: 7px;
    right: -5px;
    top: 0;
    height: 100%;
}

.ui-resizable-w {
    cursor: w-resize;
    width: 7px;
    left: -5px;
    top: 0;
    height: 100%;
}

.ui-resizable-se {
    cursor: se-resize;
    width: 12px;
    height: 12px;
    right: 1px;
    bottom: 1px;
}

.ui-resizable-sw {
    cursor: sw-resize;
    width: 9px;
    height: 9px;
    left: -5px;
    bottom: -5px;
}

.ui-resizable-nw {
    cursor: nw-resize;
    width: 9px;
    height: 9px;
    left: -5px;
    top: -5px;
}

.ui-resizable-ne {
    cursor: ne-resize;
    width: 9px;
    height: 9px;
    right: -5px;
    top: -5px;
}

.ui-selectable-helper {
    position: absolute;
    z-index: 100;
    border: 1px dotted black;
}

.ui-slider {
    position: relative;
    text-align: left;
}

.ui-slider .ui-slider-handle {
    position: absolute;
    z-index: 2;
    width: 1.2em;
    height: 1.2em;
    cursor: default;
}

.ui-slider .ui-slider-range {
    position: absolute;
    z-index: 1;
    font-size: .7em;
    display: block;
    border: 0;
    background-position: 0 0;
}

.ui-slider-horizontal {
    height: .8em;
}

.ui-slider-horizontal .ui-slider-handle {
    top: -.3em;
    margin-left: -.6em;
}

.ui-slider-horizontal .ui-slider-range {
    top: 0;
    height: 100%;
}

.ui-slider-horizontal .ui-slider-range-min {
    left: 0;
}

.ui-slider-horizontal .ui-slider-range-max {
    right: 0;
}

.ui-slider-vertical {
    width: .8em;
    height: 100px;
}

.ui-slider-vertical .ui-slider-handle {
    left: -.3em;
    margin-left: 0;
    margin-bottom: -.6em;
}

.ui-slider-vertical .ui-slider-range {
    left: 0;
    width: 100%;
}

.ui-slider-vertical .ui-slider-range-min {
    bottom: 0;
}

.ui-slider-vertical .ui-slider-range-max {
    top: 0;
}

.ui-spinner {
    position: relative;
    display: inline-block;
    overflow: hidden;
    padding: 0;
    vertical-align: middle;
}

.ui-spinner-input {
    border: none;
    background: none;
    padding: 0;
    margin: .2em 0;
    vertical-align: middle;
    margin-left: .4em;
    margin-right: 22px;
}

.ui-spinner-button {
    width: 16px;
    height: 50%;
    font-size: .5em;
    padding: 0;
    margin: 0;
    z-index: 100;
    text-align: center;
    position: absolute;
    cursor: default;
    display: block;
    overflow: hidden;
    right: 0;
}

.ui-spinner a.ui-spinner-button {
    border-top: none;
    border-bottom: none;
    border-right: none;
}

/* more specificity required here to overide default borders */
.ui-spinner .ui-icon {
    position: absolute;
    margin-top: -8px;
    top: 50%;
    left: 0;
}

/* vertical centre icon */
.ui-spinner-up {
    top: 0;
}

.ui-spinner-down {
    bottom: 0;
}

/* TR overrides */
span.ui-spinner {
    background: none;
}

.ui-spinner .ui-icon-triangle-1-s {
    /* need to fix icons sprite */
    background-position: -65px -16px;
}

.ui-tabs {
    position: relative;
    padding: .2em;
    zoom: 1;
}

/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav {
    margin: 0;
    padding: .2em .2em 0;
}

.ui-tabs .ui-tabs-nav li {
    list-style: none;
    float: left;
    position: relative;
    top: 0;
    margin: 1px .2em 0 0;
    border-bottom: 0;
    padding: 0;
    white-space: nowrap;
}

.ui-tabs .ui-tabs-nav li a {
    float: left;
    padding: .5em 1em;
    text-decoration: none;
}

.ui-tabs .ui-tabs-nav li.ui-tabs-active {
    margin-bottom: -1px;
    padding-bottom: 1px;
}

.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
    cursor: text;
}

.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a {
    cursor: pointer;
}

/* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel {
    display: block;
    border-width: 0;
    padding: 1em 1.4em;
    background: none;
}

.ui-tooltip {
    padding: 8px;
    position: absolute;
    z-index: 9999;
    -o-box-shadow: 0 0 5px #aaa;
    -moz-box-shadow: 0 0 5px #aaa;
    -webkit-box-shadow: 0 0 5px #aaa;
    box-shadow: 0 0 5px #aaa;
}

/* Fades and background-images don't work well together in IE6, drop the image */
* html .ui-tooltip {
    background-image: none;
}

body .ui-tooltip {
    border-width: 2px;
}

/* Component containers
----------------------------------*/
.ui-widget {
    font-family: Verdana, Arial, sans-serif;
    font-size: 1.1em;
}

.ui-widget .ui-widget {
    font-size: 1em;
}

.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button {
    font-family: Verdana, Arial, sans-serif;
    font-size: 1em;
}

.ui-widget-content {
    border: 1px solid #aaaaaa;
    background: #ffffff url(../images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;
    color: #222222;
}

.ui-widget-content a {
    color: #222222;
}

.ui-widget-header {
    border: 1px solid #aaaaaa;
    background: #cccccc url(../images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;
    color: #222222;
    font-weight: bold;
}

.ui-widget-header a {
    color: #222222;
}

/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
    border: 1px solid #d3d3d3;
    background: #e6e6e6 url(../images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;
    font-weight: normal;
    color: #555555;
}

.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
    color: #555555;
    text-decoration: none;
}

.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus {
    border: 1px solid #999999;
    background: #dadada url(../images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;
    font-weight: normal;
    color: #212121;
}

.ui-state-hover a, .ui-state-hover a:hover {
    color: #212121;
    text-decoration: none;
}

.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
    border: 1px solid #aaaaaa;
    background: #ffffff url(../images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;
    font-weight: normal;
    color: #212121;
}

.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
    color: #212121;
    text-decoration: none;
}

/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {
    border: 1px solid #fcefa1;
    background: #fbf9ee url(../images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;
    color: #363636;
}

.ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a {
    color: #363636;
}

.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {
    border: 1px solid #cd0a0a;
    background: #fef1ec url(../images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;
    color: #cd0a0a;
}

.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a {
    color: #cd0a0a;
}

.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text {
    color: #cd0a0a;
}

.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary {
    font-weight: bold;
}

.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary {
    opacity: .7;
    filter: Alpha(Opacity=70);
    font-weight: normal;
}

.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled {
    opacity: .35;
    filter: Alpha(Opacity=35);
    background-image: none;
}

/* Icons
----------------------------------*/

/* states and images */
.ui-icon {
    width: 16px;
    height: 16px;
    background-image: url(../images/ui-icons_222222_256x240.png);
}

.ui-widget-content .ui-icon {
    background-image: url(../images/ui-icons_222222_256x240.png);
}

.ui-widget-header .ui-icon {
    background-image: url(../images/ui-icons_222222_256x240.png);
}

.ui-state-default .ui-icon {
    background-image: url(../images/ui-icons_888888_256x240.png);
}

.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {
    background-image: url(../images/ui-icons_454545_256x240.png);
}

.ui-state-active .ui-icon {
    background-image: url(../images/ui-icons_454545_256x240.png);
}

.ui-state-highlight .ui-icon {
    background-image: url(../images/ui-icons_2e83ff_256x240.png);
}

.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {
    background-image: url(../images/ui-icons_cd0a0a_256x240.png);
}

/* positioning */
.ui-icon-carat-1-n {
    background-position: 0 0;
}

.ui-icon-carat-1-ne {
    background-position: -16px 0;
}

.ui-icon-carat-1-e {
    background-position: -32px 0;
}

.ui-icon-carat-1-se {
    background-position: -48px 0;
}

.ui-icon-carat-1-s {
    background-position: -64px 0;
}

.ui-icon-carat-1-sw {
    background-position: -80px 0;
}

.ui-icon-carat-1-w {
    background-position: -96px 0;
}

.ui-icon-carat-1-nw {
    background-position: -112px 0;
}

.ui-icon-carat-2-n-s {
    background-position: -128px 0;
}

.ui-icon-carat-2-e-w {
    background-position: -144px 0;
}

.ui-icon-triangle-1-n {
    background-position: 0 -16px;
}

.ui-icon-triangle-1-ne {
    background-position: -16px -16px;
}

.ui-icon-triangle-1-e {
    background-position: -32px -16px;
}

.ui-icon-triangle-1-se {
    background-position: -48px -16px;
}

.ui-icon-triangle-1-s {
    background-position: -64px -16px;
}

.ui-icon-triangle-1-sw {
    background-position: -80px -16px;
}

.ui-icon-triangle-1-w {
    background-position: -96px -16px;
}

.ui-icon-triangle-1-nw {
    background-position: -112px -16px;
}

.ui-icon-triangle-2-n-s {
    background-position: -128px -16px;
}

.ui-icon-triangle-2-e-w {
    background-position: -144px -16px;
}

.ui-icon-arrow-1-n {
    background-position: 0 -32px;
}

.ui-icon-arrow-1-ne {
    background-position: -16px -32px;
}

.ui-icon-arrow-1-e {
    background-position: -32px -32px;
}

.ui-icon-arrow-1-se {
    background-position: -48px -32px;
}

.ui-icon-arrow-1-s {
    background-position: -64px -32px;
}

.ui-icon-arrow-1-sw {
    background-position: -80px -32px;
}

.ui-icon-arrow-1-w {
    background-position: -96px -32px;
}

.ui-icon-arrow-1-nw {
    background-position: -112px -32px;
}

.ui-icon-arrow-2-n-s {
    background-position: -128px -32px;
}

.ui-icon-arrow-2-ne-sw {
    background-position: -144px -32px;
}

.ui-icon-arrow-2-e-w {
    background-position: -160px -32px;
}

.ui-icon-arrow-2-se-nw {
    background-position: -176px -32px;
}

.ui-icon-arrowstop-1-n {
    background-position: -192px -32px;
}

.ui-icon-arrowstop-1-e {
    background-position: -208px -32px;
}

.ui-icon-arrowstop-1-s {
    background-position: -224px -32px;
}

.ui-icon-arrowstop-1-w {
    background-position: -240px -32px;
}

.ui-icon-arrowthick-1-n {
    background-position: 0 -48px;
}

.ui-icon-arrowthick-1-ne {
    background-position: -16px -48px;
}

.ui-icon-arrowthick-1-e {
    background-position: -32px -48px;
}

.ui-icon-arrowthick-1-se {
    background-position: -48px -48px;
}

.ui-icon-arrowthick-1-s {
    background-position: -64px -48px;
}

.ui-icon-arrowthick-1-sw {
    background-position: -80px -48px;
}

.ui-icon-arrowthick-1-w {
    background-position: -96px -48px;
}

.ui-icon-arrowthick-1-nw {
    background-position: -112px -48px;
}

.ui-icon-arrowthick-2-n-s {
    background-position: -128px -48px;
}

.ui-icon-arrowthick-2-ne-sw {
    background-position: -144px -48px;
}

.ui-icon-arrowthick-2-e-w {
    background-position: -160px -48px;
}

.ui-icon-arrowthick-2-se-nw {
    background-position: -176px -48px;
}

.ui-icon-arrowthickstop-1-n {
    background-position: -192px -48px;
}

.ui-icon-arrowthickstop-1-e {
    background-position: -208px -48px;
}

.ui-icon-arrowthickstop-1-s {
    background-position: -224px -48px;
}

.ui-icon-arrowthickstop-1-w {
    background-position: -240px -48px;
}

.ui-icon-arrowreturnthick-1-w {
    background-position: 0 -64px;
}

.ui-icon-arrowreturnthick-1-n {
    background-position: -16px -64px;
}

.ui-icon-arrowreturnthick-1-e {
    background-position: -32px -64px;
}

.ui-icon-arrowreturnthick-1-s {
    background-position: -48px -64px;
}

.ui-icon-arrowreturn-1-w {
    background-position: -64px -64px;
}

.ui-icon-arrowreturn-1-n {
    background-position: -80px -64px;
}

.ui-icon-arrowreturn-1-e {
    background-position: -96px -64px;
}

.ui-icon-arrowreturn-1-s {
    background-position: -112px -64px;
}

.ui-icon-arrowrefresh-1-w {
    background-position: -128px -64px;
}

.ui-icon-arrowrefresh-1-n {
    background-position: -144px -64px;
}

.ui-icon-arrowrefresh-1-e {
    background-position: -160px -64px;
}

.ui-icon-arrowrefresh-1-s {
    background-position: -176px -64px;
}

.ui-icon-arrow-4 {
    background-position: 0 -80px;
}

.ui-icon-arrow-4-diag {
    background-position: -16px -80px;
}

.ui-icon-extlink {
    background-position: -32px -80px;
}

.ui-icon-newwin {
    background-position: -48px -80px;
}

.ui-icon-refresh {
    background-position: -64px -80px;
}

.ui-icon-shuffle {
    background-position: -80px -80px;
}

.ui-icon-transfer-e-w {
    background-position: -96px -80px;
}

.ui-icon-transferthick-e-w {
    background-position: -112px -80px;
}

.ui-icon-folder-collapsed {
    background-position: 0 -96px;
}

.ui-icon-folder-open {
    background-position: -16px -96px;
}

.ui-icon-document {
    background-position: -32px -96px;
}

.ui-icon-document-b {
    background-position: -48px -96px;
}

.ui-icon-note {
    background-position: -64px -96px;
}

.ui-icon-mail-closed {
    background-position: -80px -96px;
}

.ui-icon-mail-open {
    background-position: -96px -96px;
}

.ui-icon-suitcase {
    background-position: -112px -96px;
}

.ui-icon-comment {
    background-position: -128px -96px;
}

.ui-icon-person {
    background-position: -144px -96px;
}

.ui-icon-print {
    background-position: -160px -96px;
}

.ui-icon-trash {
    background-position: -176px -96px;
}

.ui-icon-locked {
    background-position: -192px -96px;
}

.ui-icon-unlocked {
    background-position: -208px -96px;
}

.ui-icon-bookmark {
    background-position: -224px -96px;
}

.ui-icon-tag {
    background-position: -240px -96px;
}

.ui-icon-home {
    background-position: 0 -112px;
}

.ui-icon-flag {
    background-position: -16px -112px;
}

.ui-icon-calendar {
    background-position: -32px -112px;
}

.ui-icon-cart {
    background-position: -48px -112px;
}

.ui-icon-pencil {
    background-position: -64px -112px;
}

.ui-icon-clock {
    background-position: -80px -112px;
}

.ui-icon-disk {
    background-position: -96px -112px;
}

.ui-icon-calculator {
    background-position: -112px -112px;
}

.ui-icon-zoomin {
    background-position: -128px -112px;
}

.ui-icon-zoomout {
    background-position: -144px -112px;
}

.ui-icon-search {
    background-position: -160px -112px;
}

.ui-icon-wrench {
    background-position: -176px -112px;
}

.ui-icon-gear {
    background-position: -192px -112px;
}

.ui-icon-heart {
    background-position: -208px -112px;
}

.ui-icon-star {
    background-position: -224px -112px;
}

.ui-icon-link {
    background-position: -240px -112px;
}

.ui-icon-cancel {
    background-position: 0 -128px;
}

.ui-icon-plus {
    background-position: -16px -128px;
}

.ui-icon-plusthick {
    background-position: -32px -128px;
}

.ui-icon-minus {
    background-position: -48px -128px;
}

.ui-icon-minusthick {
    background-position: -64px -128px;
}

.ui-icon-close {
    background-position: -80px -128px;
}

.ui-icon-closethick {
    background-position: -96px -128px;
}

.ui-icon-key {
    background-position: -112px -128px;
}

.ui-icon-lightbulb {
    background-position: -128px -128px;
}

.ui-icon-scissors {
    background-position: -144px -128px;
}

.ui-icon-clipboard {
    background-position: -160px -128px;
}

.ui-icon-copy {
    background-position: -176px -128px;
}

.ui-icon-contact {
    background-position: -192px -128px;
}

.ui-icon-image {
    background-position: -208px -128px;
}

.ui-icon-video {
    background-position: -224px -128px;
}

.ui-icon-script {
    background-position: -240px -128px;
}

.ui-icon-alert {
    background-position: 0 -144px;
}

.ui-icon-info {
    background-position: -16px -144px;
}

.ui-icon-notice {
    background-position: -32px -144px;
}

.ui-icon-help {
    background-position: -48px -144px;
}

.ui-icon-check {
    background-position: -64px -144px;
}

.ui-icon-bullet {
    background-position: -80px -144px;
}

.ui-icon-radio-on {
    background-position: -96px -144px;
}

.ui-icon-radio-off {
    background-position: -112px -144px;
}

.ui-icon-pin-w {
    background-position: -128px -144px;
}

.ui-icon-pin-s {
    background-position: -144px -144px;
}

.ui-icon-play {
    background-position: 0 -160px;
}

.ui-icon-pause {
    background-position: -16px -160px;
}

.ui-icon-seek-next {
    background-position: -32px -160px;
}

.ui-icon-seek-prev {
    background-position: -48px -160px;
}

.ui-icon-seek-end {
    background-position: -64px -160px;
}

.ui-icon-seek-start {
    background-position: -80px -160px;
}

/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first {
    background-position: -80px -160px;
}

.ui-icon-stop {
    background-position: -96px -160px;
}

.ui-icon-eject {
    background-position: -112px -160px;
}

.ui-icon-volume-off {
    background-position: -128px -160px;
}

.ui-icon-volume-on {
    background-position: -144px -160px;
}

.ui-icon-power {
    background-position: 0 -176px;
}

.ui-icon-signal-diag {
    background-position: -16px -176px;
}

.ui-icon-signal {
    background-position: -32px -176px;
}

.ui-icon-battery-0 {
    background-position: -48px -176px;
}

.ui-icon-battery-1 {
    background-position: -64px -176px;
}

.ui-icon-battery-2 {
    background-position: -80px -176px;
}

.ui-icon-battery-3 {
    background-position: -96px -176px;
}

.ui-icon-circle-plus {
    background-position: 0 -192px;
}

.ui-icon-circle-minus {
    background-position: -16px -192px;
}

.ui-icon-circle-close {
    background-position: -32px -192px;
}

.ui-icon-circle-triangle-e {
    background-position: -48px -192px;
}

.ui-icon-circle-triangle-s {
    background-position: -64px -192px;
}

.ui-icon-circle-triangle-w {
    background-position: -80px -192px;
}

.ui-icon-circle-triangle-n {
    background-position: -96px -192px;
}

.ui-icon-circle-arrow-e {
    background-position: -112px -192px;
}

.ui-icon-circle-arrow-s {
    background-position: -128px -192px;
}

.ui-icon-circle-arrow-w {
    background-position: -144px -192px;
}

.ui-icon-circle-arrow-n {
    background-position: -160px -192px;
}

.ui-icon-circle-zoomin {
    background-position: -176px -192px;
}

.ui-icon-circle-zoomout {
    background-position: -192px -192px;
}

.ui-icon-circle-check {
    background-position: -208px -192px;
}

.ui-icon-circlesmall-plus {
    background-position: 0 -208px;
}

.ui-icon-circlesmall-minus {
    background-position: -16px -208px;
}

.ui-icon-circlesmall-close {
    background-position: -32px -208px;
}

.ui-icon-squaresmall-plus {
    background-position: -48px -208px;
}

.ui-icon-squaresmall-minus {
    background-position: -64px -208px;
}

.ui-icon-squaresmall-close {
    background-position: -80px -208px;
}

.ui-icon-grip-dotted-vertical {
    background-position: 0 -224px;
}

.ui-icon-grip-dotted-horizontal {
    background-position: -16px -224px;
}

.ui-icon-grip-solid-vertical {
    background-position: -32px -224px;
}

.ui-icon-grip-solid-horizontal {
    background-position: -48px -224px;
}

.ui-icon-gripsmall-diagonal-se {
    background-position: -64px -224px;
}

.ui-icon-grip-diagonal-se {
    background-position: -80px -224px;
}

/* Misc visuals
----------------------------------*/

/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl {
    -moz-border-radius-topleft: 4px;
    -webkit-border-top-left-radius: 4px;
    -khtml-border-top-left-radius: 4px;
    border-top-left-radius: 4px;
}

.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {
    -moz-border-radius-topright: 4px;
    -webkit-border-top-right-radius: 4px;
    -khtml-border-top-right-radius: 4px;
    border-top-right-radius: 4px;
}

.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl {
    -moz-border-radius-bottomleft: 4px;
    -webkit-border-bottom-left-radius: 4px;
    -khtml-border-bottom-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br {
    -moz-border-radius-bottomright: 4px;
    -webkit-border-bottom-right-radius: 4px;
    -khtml-border-bottom-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

/* Overlays */
.ui-widget-overlay {
    background: #aaaaaa url(../images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
    opacity: .3;
    filter: Alpha(Opacity=30);
}

.ui-widget-shadow {
    margin: -8px 0 0 -8px;
    padding: 8px;
    background: #aaaaaa url(../images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
    opacity: .3;
    filter: Alpha(Opacity=30);
    -moz-border-radius: 8px;
    -khtml-border-radius: 8px;
    -webkit-border-radius: 8px;
    border-radius: 8px;
}

/* Calendar Button and Image */
.view-calendar button {
    background: url(../images/cal.png) no-repeat !important;
    display: inline-block;
    border: none !important;
    vertical-align: top;
    margin-top: 3px;
    width: 22px;
    height: 22px;
}

/* css for timepicker */
.ui-timepicker-div .ui-widget-header {
    margin-bottom: 8px;
}

.ui-timepicker-div dl {
    text-align: left;
}

.ui-timepicker-div dl dt {
    height: 25px;
    margin-bottom: -25px;
}

.ui-timepicker-div dl dd {
    margin: 0 10px 10px 65px;
}

.ui-timepicker-div td {
    font-size: 90%;
}

.ui-tpicker-grid-label {
    background: none;
    border: none;
    margin: 0;
    padding: 0;
}

/*=================== For the quickadd page =================================*/
.quickaddall {
    float: right;
    padding-bottom: 1em;
    padding-top: 1em;
}

.quickaddtable {
    display: inline-block;
    clear: both;
}

.quickaddtable span {
    display: inline;
    float: left;
    border-right: 1px solid #999999;
    border-top: 1px solid #999999;
    margin: 0px;
    padding: 3px;
}

.quickaddtable p {
    clear: left;
    height: 100% !important;
    height: 1em;
}

.quickaddtable span.pid {
    width: 10%;
}

.quickaddtable span.name {
    width: 50%;
    text-align: left;
}

.quickaddtable span.listPrice {
    width: 10%
}

.quickaddtable span.totalPrice {
    width: 10%
}

.quickaddtable span.qty {
    width: 10%
}

/*set Jgrowl css here to avoid side effect with other class*/
.errorMessageJGrowl {
    background: url("/tomahawk/images/exclamation.png") no-repeat scroll 5px 50% #820f05;
    border: 3px solid #f0f0f0;
    color: #ffffff;
    font-size: 1.3em;
    font-weight: bold;
    padding: 10px 10px 10px 50px;
    line-height: 1.3em;
    min-width: 350px;
    word-wrap: break-word;
    box-shadow: -0px -0px 20px 5px #888888;
    text-overflow: ellipsis;
}

.eventMessageJGrowl {
    background: url("/tomahawk/images/information.png") no-repeat scroll 5px 50% #105fa8;
    border: 3px solid #f0f0f0;
    color: #ffffff;
    font-size: 1.3em;
    font-weight: bold;
    padding: 10px 10px 10px 50px;
    line-height: 1.3em;
    min-width: 350px;
    word-wrap: break-word;
    box-shadow: -0px -0px 20px 5px #888888;
}

.closeAllJGrowl {
    min-width: 350px;
    padding: 5px 5px 5px 50px;
    border: 1px solid #f0f0f0;
}

.content-messages p {
    display: none;
}

/* From http://jqueryui.com/demos/autocomplete/maxheight.html */
/* When displaying a long list of options, you can simply set the max-height for the autocomplete menu to prevent the menu from growing too large */
.ui-autocomplete {
    max-height: 250px;
    overflow-y: auto;
    /* prevent horizontal scrollbar */
    overflow-x: hidden;
    /* add padding to account for vertical scrollbar */
    padding-right: 20px;
}

/* IE 6 doesn't support max-height
 * we use height instead, but this forces the menu to always be this tall
 */
* html .ui-autocomplete {
    height: 250px;
}

/* The custom CSS for adjust the JsTree */
.jstree-default .jstree-leaf > ins {
    background-position: -36px 0;
    vertical-align: top;
}

html > /**/ body .jstree-default a {
    white-space: normal !important;
    height: auto;
}

/* IE6 and below */
* html .jstree-default a {
    white-space: normal;
    height: auto;
}

/* IE7 */
* + html .jstree-default a {
    white-space: normal;
    height: auto;
}
