<!--
Copyright (C) 2016 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-form-styles">
  <template>
    <style>
      .gr-form-styles h1,
      .gr-form-styles h2 {
        margin-bottom: .3em;
      }
      .gr-form-styles fieldset {
        border: none;
        margin-bottom: 2em;
      }
      .gr-form-styles section {
        margin: .25em 0;
        min-height: 2em;
      }
      .gr-form-styles section * {
        vertical-align: middle;
      }
      .gr-form-styles .title,
      .gr-form-styles .value {
        display: inline-block;
      }
      .gr-form-styles .title {
        color: #666;
        font-family: var(--font-family-bold);
        padding-right: .5em;
        width: 15em;
      }
      .gr-form-styles iron-autogrow-textarea {
        font-size: var(--font-size-normal);
      }
      .gr-form-styles th {
        color: #666;
        text-align: left;
        vertical-align: bottom;
      }
      .gr-form-styles td,
      .gr-form-styles tfoot th {
        height: 2em;
        padding: .25em 0;
        vertical-align: middle;
      }
      .gr-form-styles .emptyHeader {
        text-align: right;
      }
      .gr-form-styles tbody tr:nth-child(even):not(.loading) {
        background-color: #f4f4f4;
      }
      .gr-form-styles table {
        width: 50em;
      }
      .gr-form-styles th:first-child,
      .gr-form-styles td:first-child {
        width: 15em;
      }
      .gr-form-styles th:first-child input,
      .gr-form-styles td:first-child input {
        width: 14em;
      }
      .gr-form-styles input:not([type="checkbox"]),
      .gr-form-styles select,
      .gr-form-styles textarea {
        border: 1px solid #d1d2d3;
        border-radius: 2px;
        font-size: var(--font-size-normal);
        height: 2em;
        padding: 0 .15em;
      }
      .gr-form-styles td:last-child {
        width: 5em;
      }
      .gr-form-styles th:last-child gr-button,
      .gr-form-styles td:last-child gr-button {
        width: 100%;
      }
      .gr-form-styles iron-autogrow-textarea {
        border: none;
        height: auto;
        min-height: 2em;
        --iron-autogrow-textarea: {
          border: 1px solid #d1d2d3;
          border-radius: 2px;
          box-sizing: border-box;
          font-size: var(--font-size-normal);
          padding: .25em .15em 0 .15em;
        }
      }
      .gr-form-styles gr-autocomplete {
        border: none;
        --gr-autocomplete: {
          border: 1px solid #d1d2d3;
          border-radius: 2px;
          font-size: var(--font-size-normal);
          height: 2em;
          padding: 0 .15em;
          width: 14em;
        }
      }
      @media only screen and (max-width: 40em) {
        .gr-form-styles section {
          margin-bottom: 1em;
        }
        .gr-form-styles .title,
        .gr-form-styles .value {
          display: block;
        }
        .gr-form-styles table {
          width: 100%;
        }
      }
    </style>
  </template>
</dom-module>
