/*
 * Copyright 2014-present 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 (layout) -- CSS file
 */

#mast {
    height: 36px;
    padding: 4px;
    vertical-align: baseline;
}

html[data-platform='iPad'] #mast {
    padding-top: 16px;
}

#mast .nav-menu-button {
    width: 30px;
    height: 30px;
    margin-left: 8px;
    margin-bottom: 4px;
    cursor: pointer;
}

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

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


#mast-right {
    display: inline-block;
    float: right;
    position: relative;
    top: -4px;
    padding-right: 15px;
    line-height: 44px;
}


/*
    MAST HEAD DROPDOWN MENU
*/

#mast .dropdown-parent {
    position: relative;
}

#mast .dropdown-parent i.dropdown-icon {
    display: inline-block;
    height: 7px;
    width: 9px;
    margin-left: 10px;
    background: url('/onos/ui/data/img/dropdown-icon.png') no-repeat;
}

#mast .dropdown {
    position: absolute;
    top: 44px;
    right: 0;
    display: none;
    min-width: 100px;
    border-top: 1px solid #999;
    line-height: 16px;
    z-index: 1000;
}

#mast .dropdown a {
    text-decoration: none;
    font-size: 14px;
    display: block;
    padding: 8px 16px 6px 12px;
}

#mast .dropdown-parent:hover .dropdown {
    display: block;
}

#mast .dropdown-parent:hover i.dropdown-icon {
    background-position-x: -14px
}

html[data-platform='iPad'] #mast .dropdown {
    top: 57px;
}
