/*
 * 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;
    z-index: 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 .name-div {
    height: 20px;
    padding: 8px 0 0 8px;
}

#device-details-panel .name-div span {
    display: inline-block;
}

#device-details-panel .name-div .label {
    font-style: italic;
    padding-right: 12px;
    /* works for both light and dark themes ... */
    color: #777;
}

#device-details-panel .name-div .value {
}

#device-details-panel .editable {
    cursor: pointer;
    border-bottom: 1px dashed darkgreen;
}

#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;
}
