/*
 * Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

#ajaxPanel {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0px; 
    left: 0px;
}
.modalBackground {
    filter: Alpha(Opacity=40); -moz-opacity:0.4; opacity: 0.4;
    width: 100%; 
    height: 100%; 
    background-color: #999999;
    position: absolute;
    z-index: 500;
    top: 0px; left: 0px;
}
.modalContainer {
    position: absolute;
    width: 300px;
    left: 50%;
    top: 50%;
    z-index: 750;
}
.modal {
    background-color: white;
    border: solid 1px black; 
    position: relative;
    top: -17px;
    left: -150px;
    z-index: 1000;
    width: 300px;
    padding: 0px;
}
.modalTop {
    width: 292px;
    padding: 4px;
    text-align: right;
    border-bottom: solid 1px black;
    font-size: small;
}
.modalTop a, .modalTop a:visited {
    color: black;
    text-decoration: none;
}
.modalBody {
    padding: 10px;
    vertical-align: middle;
}
