/**
 * @copyright chuzhixin 1204505056@qq.com
 * @description 全局样式
 */

@charset "utf-8";

@import "./transition.scss";
@import "./loading.scss";
@import "./quill.scss";
@import "./dict.scss";

$base: ".vab";

@mixin scrollbar {
  max-height: 88vh;
  margin-bottom: 0.5vh;
  overflow-y: auto;

  &::-webkit-scrollbar {
    width: 6px;
    height: 6px;
    background: transparent;
  }

  &::-webkit-scrollbar-thumb {
    background-color: rgba(144, 147, 153, 0.3);
    border-radius: 10px;
  }

  &::-webkit-scrollbar-thumb:hover {
    background-color: rgba(144, 147, 153, 0.3);
  }
}

@mixin base-scrollbar {
  &::-webkit-scrollbar {
    width: 13px;
    height: 13px;
  }

  &::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.4);
    background-clip: padding-box;
    border: 3px solid transparent;
    border-radius: 7px;
  }

  &::-webkit-scrollbar-thumb:hover {
    background-color: rgba(0, 0, 0, 0.5);
  }

  &::-webkit-scrollbar-track {
    background-color: transparent;
  }

  &::-webkit-scrollbar-track:hover {
    background-color: #f8fafc;
  }
}

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

#{$base}-clearfix::after {
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
  content: ".";
}

img {
  object-fit: cover;
}

a {
  color: $base-color-blue;
  text-decoration: none;
  cursor: pointer;
}

html {
  body {
    position: relative;
    height: 100vh;
    padding: 0;
    margin: 0;
    font-size: $base-font-size-default;
    font-weight: 400;
    background: #f6f8f9;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    overflow-y: overlay;
    overflow-x: hidden;
    @include base-scrollbar;

    div {
      @include base-scrollbar;
    }

    .empty {
      text-align: center;
      line-height: 200px;
    }

    svg,
    i {
      &:hover {
        opacity: 0.8;
      }
    }

    /* markdown编辑器开始 */
    .editor-toolbar {
      .no-mobile,
      .fa-question-circle {
        display: none;
      }
    }

    /* markdown编辑器结束 */

    /* 大图展示开始 */
    .el-image-viewer {
      &__close {
        .el-icon-circle-close {
          color: $base-color-white;
        }
      }
    }

    /* 大图展示结束 */

    .vue-admin-beautiful-wrapper {
      .app-main-container {
        @include base-scrollbar;

        > [class*="-container"] {
          padding: $base-padding;
          background: $base-color-white;
        }
      }
    }

    /* 进度条开始 */
    #nprogress {
      .bar {
        background: $base-color-blue !important;
      }

      .peg {
        box-shadow: 0 0 10px $base-color-blue, 0 0 5px $base-color-blue !important;
      }
    }

    /* 进度条结束 */

    /* 表格开始 */

    .el-table {
      .el-table__body-wrapper {
        @include base-scrollbar;
      }

      th {
        background: #f5f7fa;
      }

      td,
      th {
        position: relative;
        box-sizing: border-box;
        padding: 7.5px 0;
        text-align: center;
        text-overflow: ellipsis;
        vertical-align: middle;

        .cell {
          overflow: hidden;
          // font-size: $base-font-size-default;
          font-weight: normal;
          color: #606266;
          text-overflow: ellipsis;
          // white-space: nowrap;
          .el-radio-group,
          .el-checkbox-group {
            text-align: left;
          }
          .el-image {
            width: 50px;
            height: 50px;
            border-radius: $base-border-radius;
          }
        }
      }
    }

    /* 表格结束 */

    /* 分页开始 */
    .el-pagination {
      padding: 2px 5px;
      margin: 15px 0 0 0;
      font-weight: normal;
      color: $base-color-black;
      text-align: center;
      white-space: nowrap;
    }

    /* 分页结束 */

    /* 菜单开始 */
    .el-menu.el-menu--popup.el-menu--popup-right-start {
      @include scrollbar;
    }

    .el-menu.el-menu--popup.el-menu--popup-bottom-start {
      @include scrollbar;
    }

    .el-menu--vertical {
      .el-menu-item {
        height: 46px !important;
        line-height: 46px !important;

        &.is-active {
          background-color: $base-menu-background-active !important;
        }
      }
    }

    /* 菜单结束 */

    /* tag开始 */
    .el-tag {
      &--small {
        // height: $base-input-height;
        // margin-right: 10px;
        // line-height: $base-input-height;
        // border-radius: $base-border-radius;
      }
    }

    /* tag结束 */

    /* 弹窗开始 */

    .el-dialog,
    .el-message-box {
      &__body {
        border-top: 1px solid $base-border-color;

        .el-form {
          padding-right: 30px;
        }
      }

      &__footer {
        padding: $base-padding;
        text-align: right;
        border-top: 1px solid $base-border-color;
      }

      &__content {
        padding: 20px 20px 20px 20px;
      }
    }

    /* 弹窗结束 */
    #{$base}-form-main {
      width: $base-form-width;
      margin-right: auto;
      margin-left: auto;
    }

    #{$base}-pull-left {
      float: left;
    }

    #{$base}-pull-right {
      float: right;
    }

    .el-submenu__title i {
      color: $base-color-white;
    }

    /* 卡片开始 */
    .el-card {
      margin-bottom: 15px;
      box-shadow: none;

      // &:hover {
      //   box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
      // }

      &__header {
        padding: $base-padding;

        & > div > span {
          width: 60%;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
        }
      }

      &__body {
        padding: $base-padding;
      }
    }

    /* 卡片结束 */

    /* 下拉树样式-----------开始 */
    .select-tree-popper {
      .el-scrollbar {
        .el-scrollbar__view {
          .el-select-dropdown__item {
            height: auto;
            max-height: 274px;
            padding: 0;
            overflow-y: auto;
            line-height: 26px;
          }
        }
      }
    }

    /* 下拉树样式----------- */

    /* 按钮样式-----------开始 */

    .el-button--small {
      border-radius: 2px;
    }
    /* 按钮样式-----------结束 */
  }
}

.flex {
  display: flex;
}
.flex-column {
  display: flex;
  flex-direction: column;
}

.flex-between {
  display: flex;
  justify-content: space-between;
}

.flex-end {
  display: flex;
  justify-content: flex-end;
}
.flex-wrap {
  flex-wrap: wrap;
}

.fl {
  float: left;
}

.fr {
  float: right;
}
