/*
 * Copyright 2018-present Open Networking Foundation
 *
 * 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 -- Flow View (layout) -- CSS file
 */

#ov-flow h2 {
    display: inline-block;
    margin-left: 10px;
}

#ov-flow div.ctrl-btns {
}

#ov-flow td {
    text-align: center;
}
#ov-flow td.right {
    text-align: right;
}

#ov-flow td.col8pct {
    width: 8%;
}
#ov-flow td.col10pct {
    width: 10%;
}


#ov-flow td.selector,
#ov-flow td.treatment {
    text-align: left;
    padding-left: 36px;
}

#ov-flow .tabular-header {
    text-align: left;
}
#ov-flow div.summary-list .table-header td {
    font-weight: bold;
    font-variant: small-caps;
    text-transform: uppercase;
    font-size: 10pt;
    padding-top: 8px;
    padding-bottom: 8px;
    letter-spacing: 0.02em;
    cursor: pointer;
    background-color: #e5e5e6;
    color: #3c3a3a;
}

/* More in generic panel.css */

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


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

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

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

#flow-details-panel h2 {
    display: inline-block;
    margin: 8px 0;
    font-size: 16pt;
    font-weight: lighter;
}

#flow-details-panel h3 {
    display: inline-block;
    margin: 8px 0;
    font-size: 11pt;
    font-variant: small-caps;
    text-transform: uppercase;
}

#flow-details-panel .top-content table {
    font-size: 10pt;
}

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