/*
 * Copyright 2014 Open Networking 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.
 */

/*
 ONOS GUI -- Masthead -- CSS file

 @author Simon Hunt
 */

#mast {
    height: 36px;
    padding: 4px;
    background-color: #bbb;
    vertical-align: baseline;
    box-shadow: 0px 2px 8px #777;
}

#mast img#logo {
    height: 38px;
    padding-left: 8px;
    padding-right: 8px;
}

#mast span.title {
    color: #369;
    font-size: 14pt;
    font-style: italic;
    vertical-align: 12px;
}

#mast span.right {
    padding-top: 8px;
    padding-right: 16px;
    float: right;
}

#mast span.radio {
    font-size: 10pt;
    margin: 4px 2px;
    border: 1px dotted #222;
    padding: 1px 6px;
    color: #eee;
    cursor: pointer;
}

#mast span.radio.active {
    background-color: #bbb;
    border: 1px solid #eee;
    padding: 1px 6px;
    color: #666;
    font-weight: bold;
}
