<!--
@license
Copyright (C) 2015 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.
-->
<style is="custom-style">
:root {
  /* Following vars have LTS for plugin API. */
  --primary-text-color: #000;
  --header-background-color: #eee;
  --header-title-content: 'Gerrit';
  --header-icon: none;
  --header-icon-size: 0em;
  --header-text-color: #000;
  --footer-background-color: var(--header-background-color);
  --border-color: #ddd;

  /* Following are not part of plugin API. */
  --selection-background-color: #f1f5fb;
  --hover-background-color: #e8effa;
  --expanded-background-color: #eee;
  --view-background-color: #fff;
  --default-horizontal-margin: 1rem;
  --deemphasized-text-color: #757575;
  --font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
  --font-family-bold: 'Roboto Medium', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
  --monospace-font-family: 'Roboto Mono', Menlo, 'Lucida Console', Monaco, monospace;
  --iron-overlay-backdrop: {
    transition: none;
  }
  --table-header-background-color: #fafafa;
  --table-subheader-background-color: #eaeaea;

  --dropdown-background-color: #fff;

  /* Font sizes */
  --font-size-normal: 1rem;
  --font-size-small: .92rem;
  --font-size-large: 1.076rem;

  --link-color: #2a66d9;
  --primary-button-background-color: var(--link-color);
  --primary-button-text-color: #fff;
  --secondary-button-background-color: #fff;
  --secondary-button-text-color: #212121;
  --default-button-background-color: #fff;
  --default-button-text-color: var(--link-color);

  /* Used for both the old patchset header and for indicating that a particular
    change message was selected. */
  --emphasis-color: #fff9c4;

  --error-text-color: red;

  --diff-highlight-range-color: rgba(255, 213, 0, 0.5);
  --diff-highlight-range-hover-color: rgba(255, 255, 0, 0.5);

  --syntax-default-color: var(--primary-text-color);
  --syntax-meta-color: #FF1717;
  --syntax-keyword-color: #9E0069;
  --syntax-number-color: #164;
  --syntax-selector-class-color: #164;
  --syntax-variable-color: black;
  --syntax-template-variable-color: #0000C0;
  --syntax-comment-color: #3F7F5F;
  --syntax-string-color: #2A00FF;
  --syntax-selector-id-color: #2A00FF;
  --syntax-built_in-color: #30a;
  --syntax-tag-color: #170;
  --syntax-link-color: #219;
  --syntax-meta-keyword-color: #219;
  --syntax-type-color: var(--color-link);
  --syntax-title-color: #0000C0;
  --syntax-attr-color: #219;
  --syntax-literal-color: #219;
  --syntax-selector-pseudo-color: #FA8602;
  --syntax-regexp-color: #FA8602;
  --syntax-selector-attr-color: #FA8602;
  --syntax-template-tag-color: #FA8602;
}
@media screen and (max-width: 50em) {
  :root {
    --default-horizontal-margin: .7rem;
  }
}
</style>
