/*
   Copyright 2014 The Charles Stark Draper Laboratory

   Licensed 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.
*/

#map-container {
    height: 300px;
}

.grp {
    margin-bottom: 30px;
}

.output {
    position: fixed;
    height: 80%;
    width: 700px;
    /* padding: 20px; */
    font-size: 10px;
    overflow: hidden;
    /* right: 20px; */
    /* left: 0px; */
    background-color: #e5e5e5;
    font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
}

/*td, th{*/
    /*width: 30%;*/
/*}*/
thead {
    background-color: #5A5A5A;
    color: white;
    border-bottom: 1px solid rgb(39, 39, 39);
}

tbody:before {
    line-height:0.5em;
    content:"-";
    color:white; /* to hide text */
    display:block;
}


th {
    text-align: left;
    padding: 4px 2px 1px 5px;

}

td {
    padding: 0 5px;
    overflow: hidden;
}


table {
    width: 100%;
    table-layout:fixed;
}


.ui-widget-header {
    /*border: 1px solid #e78f08;*/
    background: #448CB5;
    /*color: #fff;*/
    /*font-weight: bold;*/
}


/*.a {*/
    /*width: 15%;*/
/*}*/

/*.b {*/
    /*width: 20%;*/
/*}*/

/*.c {*/
    /*width: 20%;*/
/*}*/

/*.d {*/
    /*width: 20%;*/
/*}*/

/*.e {*/
    /*width: 20%;*/
/*}*/

/*.f {*/
    /*width: 5%;*/
/*}*/
