<!--
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-page-nav-styles">
  <template>
    <style>
      .navStyles ul {
        padding: 1em 0;
      }
      .navStyles li {
        border-bottom: 1px solid transparent;
        border-top: 1px solid transparent;
        display: block;
        padding: 0 2em;
      }
      .navStyles li  a {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      .navStyles .subsectionItem {
        padding-left: 3em;
      }
      .navStyles .hideSubsection {
        display: none;
      }
      .navStyles li.sectionTitle {
        padding: 0 2em 0 1.5em;
      }
      .navStyles li.sectionTitle:not(:first-child) {
        margin-top: 1em;
      }
      .navStyles .title {
        font-family: var(--font-family-bold);
        margin: .4em 0;
      }
      .navStyles .selected {
        background-color: #fff;
        border-bottom: 1px dotted #808080;
        border-top: 1px dotted #808080;
        font-family: var(--font-family-bold);
      }
      .navStyles a {
        color: black;
        display: inline-block;
        margin: .4em 0;
      }
    </style>
  </template>
</dom-module>
