<!--
@license
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 input {
        background-color: var(--view-background-color);
        color: var(--primary-text-color);
      }
      .gr-form-styles select {
        background-color: var(--select-background-color);
        color: var(--primary-text-color);
      }
      .gr-form-styles h1,
      .gr-form-styles h2 {
        margin-bottom: .3em;
      }
      .gr-form-styles h4 {
        font-weight: var(--font-weight-bold);
      }
      .gr-form-styles fieldset {
        border: none;
        margin-bottom: 2em;
      }
      .gr-form-styles section {
        display: flex;
        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: var(--deemphasized-text-color);
        font-weight: var(--font-weight-bold);
        padding-right: .5em;
        width: 15em;
      }
      .gr-form-styles iron-autogrow-textarea {
        font-size: var(--font-size-normal);
      }
      .gr-form-styles th {
        color: var(--deemphasized-text-color);
        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 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 var(--border-color);
        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 var(--border-color);
          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 var(--border-color);
          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>
