.flat-loading__container i:nth-child(4) {
          background: #F1C40F;
          -ms-transform: rotate(270deg) translate(0, 16px);
              transform: rotate(270deg) translate(0, 16px);
          animation: loading-child-4 3s ease-in-out infinite;
}.flat-loading__container i:nth-child(3) {
          background: #1ABC9C;
          -ms-transform: rotate(180deg) translate(0, 16px);
              transform: rotate(180deg) translate(0, 16px);
          animation: loading-child-3 3s ease-in-out infinite;
}.flat-loading__container i:nth-child(2) {
          background: #34495E;
          -ms-transform: rotate(90deg) translate(0, 16px);
              transform: rotate(90deg) translate(0, 16px);
          animation: loading-child-2 3s ease-in-out infinite;
}.flat-message__body span {
        padding: 0 12px;
        font-size: 14px;
}.flat-input input[disabled] {
        color: #D5DBDB;
        background-color: #F4F6F6;
        border-color: #D5DBDB;
        cursor: default;
}.flat-button.is-default[disabled]:active, .flat-button.is-default[disabled]:hover {
          background-color: #BDC3C7;
}.flat-button.is-default:hover {
        background-color: rgb(202, 207, 210);
}.flat-button.is-primary[disabled]:active, .flat-button.is-primary[disabled]:hover {
          background-color: #1ABC9C;
}.flat-button.is-primary:hover {
        background-color: rgb(72, 201, 176);
}.flat-button.is-warning[disabled]:active, .flat-button.is-warning[disabled]:hover {
          background-color: #F1C40F;
}.flat-button.is-warning:hover {
        background-color: rgb(244, 208, 63);
}.flat-button.is-danger[disabled]:active, .flat-button.is-danger[disabled]:hover {
          background-color: #E74C3C;
}.flat-button.is-danger:hover {
        background-color: rgb(236, 112, 99);
}.flat-button.is-success[disabled]:active, .flat-button.is-success[disabled]:hover {
          background-color: #2ECC71;
}.flat-button.is-success:hover {
        background-color: rgb(88, 214, 141);
}.flat-button.is-info[disabled]:active, .flat-button.is-info[disabled]:hover {
          background-color: #3498DB;
}.flat-button.is-info:hover {
        background-color: rgb(93, 173, 226);
}.flat-button.is-inverse[disabled]:active, .flat-button.is-inverse[disabled]:hover {
          background-color: #34495E;
}.flat-button.is-inverse:hover {
        background-color: rgb(93, 109, 126);
}.flat-button[disabled] {
      opacity: .7;
      cursor: not-allowed;
}.flat-icon {}

.flat-button {
    position: relative;
    padding: 0 15px;
    color: #FFF;
    font-weight: 400;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    border: none;
    display: inline-block;
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    transition: all .3s cubic-bezier(.645, .045, .355, 1);
}

.flat-button:active, .flat-button:focus {
      outline: 0;
}

.flat-button.is-inverse {
      background-color: #34495E;
}

.flat-button.is-inverse:active {
        background-color: rgb(44, 62, 80);
}

.flat-button.is-info {
      background-color: #3498DB;
}

.flat-button.is-info:active {
        background-color: rgb(44, 129, 186);
}

.flat-button.is-success {
      background-color: #2ECC71;
}

.flat-button.is-success:active {
        background-color: rgb(39, 173, 96);
}

.flat-button.is-danger {
      background-color: #E74C3C;
}

.flat-button.is-danger:active {
        background-color: rgb(196, 65, 51);
}

.flat-button.is-warning {
      background-color: #F1C40F;
}

.flat-button.is-warning:active {
        background-color: rgb(205, 167, 13);
}

.flat-button.is-primary {
      background-color: #1ABC9C;
}

.flat-button.is-primary:active {
        background-color: rgb(22, 160, 133);
}

.flat-button.is-default {
      background-color: #BDC3C7;
}

.flat-button.is-default:active {
        background-color: rgb(161, 166, 169);
}

.flat-button.is-round {
      border-radius: 20px;
}

.flat-button.is-square {
      border-radius: 4px;
}

.flat-button.is-sharp {
      border-radius: 0;
}

.flat-button.is-wide {
      min-width: 140px;
      padding-right: 30px;
      padding-left: 30px;
}

.flat-button.is-embossed {
      box-shadow: rgba(0, 0, 0, .15) 0px -2px 0px inset;
}

.flat-button.is-embossed:active {
        box-shadow: rgba(0, 0, 0, .15) 0px 2px 0px inset;
}

.flat-button.is-huge {
      height: 42px;
      font-size: 16px;
}

.flat-button.is-large {
      height: 36px;
      font-size: 14px;
}

.flat-button.is-medium {
      height: 32px;
      font-size: 14px;
}

.flat-button.is-small {
      height: 28px;
      font-size: 12px;
}

.flat-input {
    position: relative;
    width: 180px;
    vertical-align: middle;
    display: inline-block;
}

.flat-input input {
      position: relative;
      width: 100%;
      padding: 4px 12px;
      color: #34495E;
      background-color: #FFF;
      font-size: 14px;
      line-height: 1;
      font-family: inherit;
      background-image: none;
      border: 2px solid #BDC3C7;
      border-radius: 4px;
      -webkit-appearance: none;
         -moz-appearance: none;
              appearance: none;
      box-sizing: border-box;
      display: inline-block;
      transition: all .2s;
      outline: none;
      cursor: text;
}

.flat-input input:focus {
        border-color: #1ABC9C;
}

.flat-input.is-huge {}

.flat-input.is-huge input {
        height: 42px;
        font-size: 16px;
}

.flat-input.is-large {}

.flat-input.is-large input {
        height: 38px;
        font-size: 14px;
}

.flat-input.is-medium {}

.flat-input.is-medium input {
        height: 36px;
        font-size: 14px;
}

.flat-input.is-small {}

.flat-input.is-small input {
        height: 32px;
        font-size: 12px;
}

.flat-switch {
    position: relative;
    width: 48px;
    height: 24px;
    line-height: 22px;
    vertical-align: middle;
    background-color: #BDC3C7;
    box-sizing: border-box;
    display: inline-block;
    cursor: pointer;
    transition: all .2s ease-in-out;
}

.flat-switch::after {
      content: "";
      position: absolute;
      top: 2px;
      width: 20px;
      height: 20px;
      background-color: #7F8C8D;
      border-radius: 20px;
      cursor: pointer;
      -ms-transform: translateX(2px);
          transform: translateX(2px);
      transition: all .2s ease-in-out;
}

.flat-switch.is-info {}

.flat-switch.is-info.is-checked {
        color: #FFF;
        background-color: #3498DB;
}

.flat-switch.is-info.is-checked::after {
          background-color: #FFF;
}

.flat-switch.is-success {}

.flat-switch.is-success.is-checked {
        color: #FFF;
        background-color: #2ECC71;
}

.flat-switch.is-success.is-checked::after {
          background-color: #FFF;
}

.flat-switch.is-danger {}

.flat-switch.is-danger.is-checked {
        color: #FFF;
        background-color: #E74C3C;
}

.flat-switch.is-danger.is-checked::after {
          background-color: #FFF;
}

.flat-switch.is-warning {}

.flat-switch.is-warning.is-checked {
        color: #FFF;
        background-color: #F1C40F;
}

.flat-switch.is-warning.is-checked::after {
          background-color: #FFF;
}

.flat-switch.is-round {
      border-radius: 20px;
}

.flat-switch.is-square {
      border-radius: 4px;
}

.flat-switch.is-square::after {
        top: 0;
        width: 24px;
        height: 24px;
        border-radius: 4px 0 0 4px;
        -ms-transform: translateX(0);
            transform: translateX(0);
}

.flat-switch.is-square.is-checked {}

.flat-switch.is-square.is-checked::after {
          border-radius: 0 4px 4px 0;
          -ms-transform: translateX(100%);
              transform: translateX(100%);
          background-color: #1ABC9C;
}

.flat-switch.is-disabled {
      opacity: .7;
      cursor: not-allowed;
}

.flat-switch.is-checked {
      color: #1ABC9C;
      background-color: #34495E;
}

.flat-switch.is-checked::after {
        -ms-transform: translateX(calc(100% + 5px));
            transform: translateX(calc(100% + 5px));
        background-color: #1ABC9C;
}

.flat-message {
    position: fixed;
    top: 0;
    left: 50%;
    opacity: 0;
    -ms-transform: translate(-50%, -100%);
        transform: translate(-50%, -100%);
    z-index: 100000;
    animation: messageenter 1.8s ease-in-out;
}

.flat-message__body {
      height: 36px;
      min-width: 140px;
      text-align: center;
      background: #FFF;
      border-radius: 4px;
      box-shadow: 0 0 2px 0 rgba(0, 0, 0, .15);
      display: -ms-flexbox;
      display: flex;
      -ms-flex-align: center;
          align-items: center;
      z-index: 1000;
}

.flat-message__body i {
        width: 36px;
        height: 100%;
        color: #FFF;
        line-height: 42px;
        border-top-left-radius: 4px;
        border-bottom-left-radius: 4px;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
            align-items: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.flat-message__icon {}

.flat-message__icon svg {
        width: 20px;
        height: 20px;
}

.flat-message__icon.is-error {
        background: #E74C3C;
}

.flat-message__icon.is-warning {
        background: #F1C40F;
}

.flat-message__icon.is-success {
        background: #1ABC9C;
}

.flat-message__icon.is-info {
        background: #3498DB;
}

@keyframes messageenter {
  0% { transform: translate(-50%, -100%); opacity: 0; }
  30% { transform: translate(-50%, 50%); opacity: 1; }
  70% { transform: translate(-50%, 50%); opacity: 1; }
  100% { transform: translate(-50%, -100%); opacity: 0; }
}

.flat-confirm {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    position: fixed;
    width: 100%;
    height: 100%;
    color: #34495E;
    background-color: rgba(0, 0, 0, .4);
    z-index: 500;
}

.flat-confirm.is-destroy {
      opacity: 0;
      animation: fadeOut .2s;
}

.flat-confirm.is-enter {
      animation: fadeIn .2s;
}

.flat-confirm__container {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 420px;
      padding: 20px;
      background: #FFF;
      border-radius: 4px;
      box-sizing: border-box;
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}

.flat-confirm__title {
      font-size: 16px;
}

.flat-confirm__content {
      margin: 12px 0;
      font-size: 14px;
}

.flat-confirm__footer {
      text-align: right;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

.flat-loading {
    background: rgba(255, 255, 255, .6);
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
    z-index: 10000;
}

.flat-loading__container {
      position: relative;
      width: 12px;
      height: 12px;
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
      animation: loading 3s ease-in-out infinite;
}

.flat-loading__container i {
        position: absolute;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        display: inline-block;
}

.flat-loading__container i:nth-child(1) {
          background: #E74C3C;
          -ms-transform: translate(0, 16px);
              transform: translate(0, 16px);
          animation: loading-child-1 3s ease-in-out infinite;
}

@keyframes loading {
  25% {
    transform: rotate(135deg);
  }
  50% {
    transform: rotate(225deg);
  }
  75% {
    transform: rotate(315deg);
  }
  100% {
    transform: rotate(405deg);
  }
}

@keyframes loading-child-1 {
  17.5%, 25%, 42.5%, 50%, 67.5%, 75%, 92.5%, 100% {
    transform:translate(0, 16px);
  }
  12.5%, 37.5%, 62.5%, 87.5% {
    transform:translate(0, 12px);
  }
}

@keyframes loading-child-2 {
  17.5%, 25%, 42.5%, 50%, 67.5%, 75%, 92.5%, 100% {
    transform:rotate(90deg) translate(0, 16px);
  }
  12.5%, 37.5%, 62.5%, 87.5% {
    transform:rotate(90deg) translate(0, 12px);
  }
}

@keyframes loading-child-3 {
  17.5%, 25%, 42.5%, 50%, 67.5%, 75%, 92.5%, 100% {
    transform:rotate(180deg) translate(0, 16px);
  }
  12.5%, 37.5%, 62.5%, 87.5% {
    transform:rotate(180deg) translate(0, 12px);
  }
}

@keyframes loading-child-4 {
  17.5%, 25%, 42.5%, 50%, 67.5%, 75%, 92.5%, 100% {
    transform:rotate(270deg) translate(0, 16px);
  }
  12.5%, 37.5%, 62.5%, 87.5% {
    transform:rotate(270deg) translate(0, 12px);
  }
}

.flat-loading-bar {
    position: fixed;
    top: 0;
    left: 0;
    height: 2px;
    opacity: 1;
    transition: all .2s linear;
    z-index: 100000;
}

.flat-loading-bar.is-fadeout {
      opacity: 0;
}

.flat-loading-bar.is-error {
      background-color: #E74C3C;
}

.flat-loading-bar.is-primary {
      background-color: #1ABC9C;
}

.flat-card {
    position: relative;
    color: #34495E;
    background-color: #FFF;
    font-size: 14px;
    border: 1px solid #ECF0F1;
    border-radius: 4px;
    box-sizing: border-box;
    transition: all .3s;
}

.flat-card:hover {
      box-shadow: 0 0 2px 0 rgba(0, 0, 0, .15);
}

.flat-card__header {
      height: 48px;
      padding: 0 24px;
      line-height: 48px;
      border-bottom: 1px solid #ECF0F1;
      box-sizing: border-box;
      display: -ms-flexbox;
      display: flex;
}

.flat-card__body {
      padding: 12px 24px;
      box-sizing: border-box;
}
