/*
 * 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 -- Cluster View -- CSS file
 */

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

#ov-cluster div.ctrl-btns {
    width: 45px;
}


/* More in generic panel.css */

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


#cluster-details-panel .container {
    padding: 8px 12px;
}

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

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

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

#cluster-details-panel .top-content table {
    font-size: 12pt;
}

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