<!--
@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 tr:hover {
        background-color: var(--hover-background-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-weight: var(--font-weight-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>
