<!--
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 {
        margin-bottom: .1em;
      }
      .gr-form-styles fieldset {
        border: none;
        margin: 0 0 2em 2em;
      }
      .gr-form-styles section {
        margin-bottom: .5em;
      }
      .gr-form-styles .title,
      .gr-form-styles .value {
        display: inline-block;
        vertical-align: top;
      }
      .gr-form-styles .title {
        color: #666;
        font-weight: bold;
        padding-right: .5em;
        width: 11em;
      }
      .gr-form-styles input {
        font-size: 1em;
      }
      .gr-form-styles iron-autogrow-textarea {
        font-size: 1em;
      }
      .gr-form-styles th {
        color: #666;
        text-align: left;
      }
      .gr-form-styles tbody tr:nth-child(even) {
        background-color: #f4f4f4;
      }
      @media only screen and (max-width: 40em) {
        .gr-form-styles section {
          margin-bottom: 1em;
        }
        .gr-form-styles .title,
        .gr-form-styles .value {
          display: block;
        }
      }
    </style>
  </template>
</dom-module>
