/*
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.
*/

*,
*::after,
*::before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: none;
  /*
   * Default browser fonts are 16px. We want users with default settings to see
   * a base font of 14px. 14/16 = .875. This needs to be in html because
   * can use rems based on this font-size throughout the app.
   */
  font-size: .875em;
}
html,
body {
  height: 100%;
  transition: none; /* Override the default Polymer fade-in. */
}
body {
  /*
   * IE has shoddy support for the font shorthand property.
   * Work around this using font-size and font-family.
   */
  -webkit-text-size-adjust: none;
  font-family: var(--font-family, ''), 'Roboto', Arial, sans-serif;
  font-size: var(--font-size-normal, 1rem);
  line-height: var(--line-height-normal, 1.4);
  color: var(--primary-text-color, black);
}
