body * {
  box-sizing: border-box;
  flex-shrink: 0;
}
body {
  --bs-body-bg: #F7F8FA;
  font-family: PingFangSC-Regular, Roboto, Helvetica Neue, Helvetica, Tahoma,
    Arial, PingFang SC-Light, Microsoft YaHei;
  min-height: 100vh;
}

[v-cloak] {
  display: none !important;
}

.view { width: 1190px; margin: 0 auto }

a:hover {
  color: #137AFFFF;
}

ol, ul { margin: 0 }

.breadcrumb .breadcrumb-item a, .breadcrumb .breadcrumb-item {
  color: #999999FF;
  font-size: 13px;
}

.divide {
  display: block;
  width: 100%;
  height: 1px;
  background: #F3F3F3FF;
}

.divide-dashed {
  display: block;
  width: 100%;
  height: 1px;
  border-bottom: 1px dashed #D8D8D8FF;
}

.pagination {
  column-gap: 12px;
}
.pagination .page-item:first-child .page-link { border-radius: 2px !important }
.pagination .page-item:last-child .page-link { border-radius: 2px !important }

select:invalid { color: #999999FF }

.el-loading-spinner .circular { display: inline-block }

.truncate-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

.loading {
  position: relative;
  background: #f0f0f0;
  overflow: hidden;
}
.loading::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 36px;
  height: 36px;
  border: 4px solid rgba(0, 0, 0, 0.1);
  border-left-color: #4a90e2;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: spin 1s linear infinite;
}
@keyframes spin {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
.loading > * {
  display: none;
}
.loading.loaded > * {
  display: block;
}
.loading.loaded::after {
  display: none;
}

.tox-promotion { display: none }
.tox-statusbar__right-container { display: none !important }

@keyframes slide-down {
  0% {
    opacity: 0;
    transform: translateY(-100%);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slide-up {
  0% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
    transform: translateY(-100%);
  }
}

.animate-slide-down {
  animation: slide-down 0.3s ease-out forwards
}

.animate-slide-up {
  animation: slide-up 0.3s ease-out forwards
}