/*
 * Copyright 2015 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 -- CSS file
 */

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

#ov-device div.ctrl-btns {
    width: 240px;
}

/* More in generic panel.css */

#device-details-panel.floatpanel {
    -moz-border-radius: 0;
    border-radius: 0;
}

.light #device-details-panel.floatpanel {
    background-color: rgb(229, 234, 237);
}
.dark #device-details-panel.floatpanel {
    background-color: #3A4042;
}

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

#device-details-panel .close-btn {
    position: absolute;
    right: 10px;
    top: 0;
    cursor: pointer;
}
.light .close-btn svg.embeddedIcon .icon.plus .glyph {
    fill: #aaa;
}
.dark .close-btn svg.embeddedIcon .icon.plus .glyph {
    fill: #ccc;
}

#device-details-panel .dev-icon {
    display: inline-block;
    padding: 0 6px 0 0;
    vertical-align: middle;
}
.light .dev-icon svg.embeddedIcon .glyph {
    fill: rgb(0, 172, 229);
}
.dark .dev-icon svg.embeddedIcon .glyph {
    fill: #486D91;
}

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

#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-style: italic;
    padding-right: 12px;
    /* works for both light and dark themes ... */
    color: #777;
}

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

#device-details-panel .top hr {
    width: 95%;
    margin: 0 auto;
}

.light #device-details-panel hr {
    opacity: .5;
    border-color: #FFF;
}
.dark #device-details-panel hr {
    border-color: #666;
}

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

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

.light #device-details-panel .bottom th {
    background-color: #CCC;
    /* default text color */
}
.dark #device-details-panel .bottom th {
    background-color: #131313;
    color: #ccc;
}

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

.light #device-details-panel .bottom tr:nth-child(odd) {
    background-color: #f9f9f9;
}
.light #device-details-panel .bottom tr:nth-child(even) {
    background-color: #EBEDF2;
}
.dark #device-details-panel .bottom tr:nth-child(odd) {
    background-color: #333;
}
.dark #device-details-panel .bottom tr:nth-child(even) {
    background-color: #555;
}
