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

/* ------ for summary-list tables (layout) ------ */

div.summary-list {
    margin: 0 20px 16px 10px;
    font-size: 10pt;
    border-spacing: 0;
}

div.summary-list table {
    border-collapse: collapse;
    table-layout: fixed;
    empty-cells: show;
    margin: 0;
}

div.summary-list div.table-body {
    overflow-y: scroll;
}

div.summary-list div.table-body::-webkit-scrollbar {
    display: none;
}

div.summary-list tr.no-data td {
    text-align: center;
    font-style: italic;
}


/* highlighting */
div.summary-list tr {
    transition: background-color 500ms;
}

div.summary-list td {
    padding: 4px;
    text-align: left;
    word-wrap: break-word;
    font-size: 12pt;
}

div.summary-list td.table-icon {
    padding-left: 4px;
}

div.summary-list .table-header td {
    font-weight: bold;
    font-variant: small-caps;
    text-transform: uppercase;
    font-size: 11pt;
    padding-top: 14px;
    padding-bottom: 14px;

    letter-spacing: 0.02em;
    cursor: pointer;
}

/* rows are selectable */
div.summary-list .table-body td {
    cursor: pointer;
}

/* Tabular view upper right control buttons */

div.ctrl-btns {
    display: inline-block;
    float: right;
    height: 44px;
    margin-right: 24px;
    margin-top: 7px;
}

div.ctrl-btns div {
    display: inline-block;
    padding: 4px;
    cursor: pointer;
}

div.ctrl-btns div.separator  {
    cursor: auto;
    width: 24px;
    border: none;
}
