@import "variable.scss";

/***********************
* Reset
***********************/
*, *:before, *:after {
  box-sizing: border-box;
}

html, body {
  width: 100%;
  height: 100%;
  /*overflow-x: hidden;
  overflow-y: auto;*/
  margin: 0;
  padding: 0;
}

body {
  background: $bg-white;
  // font-family: Exo,'-apple-system','Open Sans',HelveticaNeue-Light,'Helvetica Neue Light','Helvetica Neue','Hiragino Sans GB','Microsoft YaHei',Helvetica,Arial,sans-serif;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  // font-family: 'PingFang SC', 'Hiragino Sans GB', 'Microsoft Yahei', 'WenQuanYi Micro Hei',sans-serif;
  // font-size:62.5%;max-height:100%;
  font-size: 16px;
  line-height: 120%;
  color: $text-light-black;
  -webkit-tap-highlight-color: transparent;
}


@font-face {font-family: "iconfont";
  src: url('//at.alicdn.com/t/font_i0r1euwhok5oecdi.eot?t=1481812721653'); /* IE9*/
  src: url('//at.alicdn.com/t/font_i0r1euwhok5oecdi.eot?t=1481812721653#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('//at.alicdn.com/t/font_i0r1euwhok5oecdi.woff?t=1481812721653') format('woff'), /* chrome, firefox */
  url('//at.alicdn.com/t/font_i0r1euwhok5oecdi.ttf?t=1481812721653') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
  url('//at.alicdn.com/t/font_i0r1euwhok5oecdi.svg?t=1481812721653#iconfont') format('svg'); /* iOS 4.1- */
}

.iconfont {
  font-family:"iconfont" !important;
  font-size: 20px;
  font-style:normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-nav:before { content: "\e60c"; }

.icon-github:before { content: "\e69f"; }

.icon-search:before { content: "\e605"; }

.icon-arrow:before { content: "\e623"; }

.icon-close:before { content: "\e780"; }

.icon-arrow-small:before { content: "\e67c"; }

.icon-baichuan:before { content: "\e602"; }

.icon-back2top:before { content: "\e604"; }

a {
  cursor: pointer;
  color: $text-light-black;
  text-decoration: none;
  &:hover {
    color: $text-gray;
  }
}

img {
  max-width: 100%;
  vertical-align:middle;
}

p {
  font-weight: normal;
  margin: 0 0 1.4em;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  margin: 0 0 1em;
}

h1 { font-size: 2em; }
h2 { font-size: 1.75em; }
h3 { font-size: 1.5em; }
h4 { font-size: 1.25em; }
h5 { font-size: 1.1em; }

blockquote {
  margin: 1.3em;
  margin-left: 0;
  padding: 1em;
  border-left: 5px solid #C6C6C6;
  background-color: #F6F6F6;

  p {
    margin: 0;
  }
}

/***********************
* Common style
***********************/
.button {
  display: inline-block;
  font-size: 1.05em;
  width: 10em;
  height: 2.5em;
  line-height: 2.5em;
  text-align: center;
  color: #fff;
  background: #ff3e33;
  border: #ff3e33 1px solid;
  border-radius: 2em;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, .16);

  &:hover {
    background: #d63f36;
    border: #d63f36 1px solid;
  }
}

.clearfix {
  &:before, &:after {
    display: table;
    content: " "
  }

  &:after {
    clear: both
  }
}

.imgbox {
  width: 100%;
  height: 100%;

  img {
    width: 100%;
  }
}

.dropdown {
  position: relative;

  .dropdown-toggle {
    display: block;
    font-size: 14px;
    text-align: center;
    color: $text-light-black;
    text-decoration: none;
  }

  .dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 999;
    float: left;
    padding: 5px 0;
    margin: 0;
    font-size: 14px;
    text-align: left;
    list-style: none;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #999ba4;
    box-shadow: 0 4px 5px rgba(0, 0, 0, 0.1);

    & > li > a {
      display: block;
      padding: 3px 20px;
      clear: both;
      font-weight: 400;
      line-height: 1.42857143;
      color: $text-light-black;
      white-space: nowrap;

      &:hover {
        color: $text-light-black;
        text-decoration: none;
        background-color: #f5f5f5;
      }
    }
  }

  &:hover .dropdown-menu {
    display: block;
  }
}


a.current {
  border-bottom: .2em solid $text-blue;
}

.scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}

.show {
  display: block !important;
}

.hide {
  display: none !important;
}

table {
    display: table;
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    overflow: auto
}

table td, table th {
    padding: 6px 13px;
    border: 1px solid #ddd
}

table tr {
    background-color: #fff;
    border-top: 1px solid #ccc
}

table tr:nth-child(2n) {
    background-color: #f8f8f8
}

table th {
    font-weight: 700
}

.api-version {
  font-size: 12px;
  padding: 1px 7px;
  background: $text-blue;
  color: #fff;
  border-radius: 20px;
}
