<!--
@license
Copyright (C) 2017 The Android Open Source Project

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

<dom-module id="gr-table-styles">
  <template>
    <style>
      .genericList {
        border-collapse: collapse;
        width: 100%;
      }
      .genericList td {
        height: 2.25rem;
        padding: .3rem 0;
        vertical-align: middle;
      }
      .genericList tr {
        border-bottom: 1px solid var(--border-color);
      }
      .genericList th {
        white-space: nowrap;
      }
      .genericList th,
      .genericList td {
        padding-right: 1rem;
      }
      .genericList tr th:first-of-type,
      .genericList tr td:first-of-type {
        padding-left: 1rem;
      }
      .genericList tr:first-of-type {
        border-top: 1px solid var(--border-color);
      }
      .genericList tr th:last-of-type,
      .genericList tr td:last-of-type {
        border-left: 1px solid var(--border-color);
        text-align: center;
        padding: 0 1em;
      }
      .genericList tr th.delete,
      .genericList tr td.delete,
      .genericList tr.loadingMsg td {
        border-left: none;
      }
      .genericList .loading {
        border: none;
        display: none;
      }
      .genericList td {
        flex-shrink: 0;
      }
      .genericList .topHeader,
      .genericList .groupHeader {
        color: var(--primary-text-color);
        font-family: var(--font-family-bold);
        text-align: left;
        vertical-align: middle
      }
      .genericList .topHeader {
        background-color: var(--table-header-background-color);
        height: 3rem;
      }
      .genericList .groupHeader {
        background-color: var(--table-subheader-background-color);
        font-size: var(--font-size-large);
      }
      .genericList a {
        color: var(--primary-text-color);
        text-decoration: none;
      }
      .genericList a:hover {
        text-decoration: underline;
      }
      .genericList .description {
        width: 99%;
      }
      .genericList .loadingMsg {
        color: var(--deemphasized-text-color);
        display: block;
        padding: .3em var(--default-horizontal-margin);
      }
      .genericList .loadingMsg:not(.loading) {
        display: none;
      }
    </style>
  </template>
</dom-module>
