@-webkit-keyframes ty-rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@keyframes ty-rotate {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@-webkit-keyframes ty-processing {
  0% {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0.5; }
  100% {
    -webkit-transform: scale(2.8);
            transform: scale(2.8);
    opacity: 0; } }

@keyframes ty-processing {
  0% {
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
    opacity: 0.5; }
  100% {
    -webkit-transform: scale(2.8);
            transform: scale(2.8);
    opacity: 0; } }

@-webkit-keyframes spin {
  from {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  to {
    -webkit-transform: rotate(-360deg);
            transform: rotate(-360deg); } }

@keyframes spin {
  from {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  to {
    -webkit-transform: rotate(-360deg);
            transform: rotate(-360deg); } }

.ty-btn {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border: 1px solid #d0d0d5;
  outline: none;
  border-radius: 3px;
  letter-spacing: 0;
  text-align: center;
  cursor: pointer;
  -webkit-transition: all 400ms;
  transition: all 400ms;
  font-family: "Open Sans", "Helvetica Neue", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", Helvetica, Arial, sans-serif;
  display: inline-block;
  min-width: 50px;
  background-color: #fff;
  color: #4c5161;
  text-decoration: none;
  white-space: nowrap;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .ty-btn > span {
    display: inline-block;
    pointer-events: none;
    line-height: 1.5;
    vertical-align: middle; }
  .ty-btn + .ty-btn {
    margin-left: 10px; }
  .ty-btn:hover {
    color: #4DBDB9;
    border-color: #4DBDB9; }
  .ty-btn:active {
    background-color: #f7f9fa;
    color: #3a9d99;
    border-color: #3a9d99; }
  .ty-btn__loader {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 50%;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(136, 136, 136, 0.2);
    border-top-color: #888;
    -webkit-animation: spin 600ms infinite linear;
            animation: spin 600ms infinite linear; }
    .ty-btn__loader + span {
      margin-left: 5px; }
  .ty-btn_primary {
    border-color: #4DBDB9;
    background-color: #4DBDB9;
    color: #fff; }
    .ty-btn_primary:hover {
      opacity: 0.85;
      color: #fff;
      border-color: #4DBDB9; }
    .ty-btn_primary:active {
      opacity: 1;
      border-color: #3a9d99;
      background-color: #3a9d99; }
  .ty-btn_blue {
    border-color: #1890ff;
    background-color: #1890ff;
    color: #fff; }
    .ty-btn_blue:hover {
      opacity: 0.85;
      color: #fff;
      border-color: #1890ff; }
    .ty-btn_blue:active {
      opacity: 1;
      border-color: #0076e4;
      background-color: #0076e4; }
  .ty-btn_green {
    border-color: #52c41a;
    background-color: #52c41a;
    color: #fff; }
    .ty-btn_green:hover {
      opacity: 0.85;
      color: #fff;
      border-color: #52c41a; }
    .ty-btn_green:active {
      opacity: 1;
      border-color: #3f9714;
      background-color: #3f9714; }
  .ty-btn_yellow {
    border-color: #ff9800;
    background-color: #ff9800;
    color: #fff; }
    .ty-btn_yellow:hover {
      opacity: 0.85;
      color: #fff;
      border-color: #ff9800; }
    .ty-btn_yellow:active {
      opacity: 1;
      border-color: #cc7a00;
      background-color: #cc7a00; }
  .ty-btn_red {
    border-color: #f44336;
    background-color: #f44336;
    color: #fff; }
    .ty-btn_red:hover {
      opacity: 0.85;
      color: #fff;
      border-color: #f44336; }
    .ty-btn_red:active {
      opacity: 1;
      border-color: #ea1c0d;
      background-color: #ea1c0d; }
  .ty-btn_primary .ty-btn__loader, .ty-btn_blue .ty-btn__loader, .ty-btn_green .ty-btn__loader, .ty-btn_yellow .ty-btn__loader, .ty-btn_red .ty-btn__loader {
    border-color: rgba(255, 255, 255, 0.2);
    border-top-color: #fff; }
  .ty-btn_lg {
    height: 42px;
    font-size: 16px;
    padding: 0 28px; }
    .ty-btn_lg .ty-btn__loader {
      width: 18px;
      height: 18px; }
  .ty-btn_md {
    height: 32px;
    font-size: 14px;
    padding: 0 15px; }
  .ty-btn_sm {
    height: 24px;
    font-size: 13px;
    padding: 0 10px; }
    .ty-btn_sm .ty-btn__loader {
      width: 12px;
      height: 12px; }
  .ty-btn_block {
    width: 100%; }
    .ty-btn_block + .ty-btn_block {
      margin: 0; }
  .ty-btn_round {
    border-radius: 30px; }
  .ty-btn_link {
    color: #4DBDB9;
    background-color: transparent;
    border: 0; }
    .ty-btn_link:active {
      background-color: transparent; }
    .ty-btn_link .ty-btn__loader {
      border-color: rgba(77, 189, 185, 0.2);
      border-top-color: #4DBDB9; }
  .ty-btn_loading {
    opacity: 0.85;
    pointer-events: none;
    cursor: progress; }
  .ty-btn_disabled {
    opacity: 0.4;
    cursor: not-allowed;
    pointer-events: none; }

.ty-btn-group {
  display: inline-block; }
  .ty-btn-group + .ty-btn-group {
    margin-left: 10px; }
  .ty-btn-group .ty-btn {
    position: relative;
    border-radius: 0;
    float: left; }
    .ty-btn-group .ty-btn + .ty-btn {
      margin-left: -1px; }
    .ty-btn-group .ty-btn:hover {
      z-index: 1; }
    .ty-btn-group .ty-btn:first-child {
      border-top-left-radius: 3px;
      border-bottom-left-radius: 3px; }
    .ty-btn-group .ty-btn:last-child {
      border-top-right-radius: 3px;
      border-bottom-right-radius: 3px; }
  .ty-btn-group_round .ty-btn:first-child {
    border-top-left-radius: 30px;
    border-bottom-left-radius: 30px; }
  .ty-btn-group_round .ty-btn:last-child {
    border-top-right-radius: 30px;
    border-bottom-right-radius: 30px; }
  .ty-btn-group_primary .ty-btn:not(:first-child), .ty-btn-group_blue .ty-btn:not(:first-child), .ty-btn-group_green .ty-btn:not(:first-child), .ty-btn-group_yellow .ty-btn:not(:first-child), .ty-btn-group_red .ty-btn:not(:first-child) {
    border-left-color: rgba(255, 255, 255, 0.2); }
