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