/*
 * Copyright 2015-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 -- Device View (layout) -- CSS file
 */

#ov-device h2 {
    display: inline-block;
}

#ov-device div.ctrl-btns {
}


/* More in generic panel.css */

#device-details-panel.floatpanel {
    z-index: 0;
}


#device-details-panel .container {
    padding: 0 12px;
}

#device-details-panel .close-btn {
    position: absolute;
    right: 6px;
    top: 6px;
    cursor: pointer;
}

#device-details-panel .dev-icon {
    display: inline-block;
    padding: 0 6px 0 0;
    vertical-align: middle;
}

#device-details-panel h2 {
    display: inline-block;
    margin: 8px 0;
}


#device-details-panel h2 input {
    font-size: 0.90em;
    width: 106%;
}

#device-details-panel .top div.left {
    float: left;
    padding: 0 18px 0 0;
}
#device-details-panel .top div.right {
    display: inline-block;
}

#device-details-panel td.label {
    font-weight: bold;
    text-align: right;
    padding-right: 6px;
}

#device-details-panel .actionBtns div {
    padding: 12px 6px;
}

#device-details-panel hr {
    width: 100%;
    margin: 2px auto;
}

#device-details-panel .bottom table {
    border-spacing: 0;
}

#device-details-panel .bottom th {
    letter-spacing: 0.02em;
}

#device-details-panel .bottom th,
#device-details-panel .bottom td {
    padding: 6px 12px;
    text-align: center;
}

