/*
 * Copyright 2019-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.
 */

/* More in generic panel.css */

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


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

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

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

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


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

#pipeconf-details-panel .top-tables {
    font-size: 10pt;
    white-space: nowrap;
}

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

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

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

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

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

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

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

