/**
 * 与 Element Plus el-loading 全屏样式对齐，供 index.html 在 JS 未执行前展示。
 * 变量与 node_modules/element-plus/theme-chalk/el-var.css、el-loading.css 保持一致。
 */
:root {
  --el-color-primary: #1546f2;
  --el-mask-color: rgba(255, 255, 255, 0.9);
  --el-transition-duration: 0.3s;
  --el-loading-spinner-size: 42px;
  --el-loading-fullscreen-spinner-size: 50px;
}

.el-loading-mask {
  background-color: var(--el-mask-color);
  bottom: 0;
  left: 0;
  margin: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: opacity var(--el-transition-duration);
  z-index: 2000;
}

.el-loading-mask.is-fullscreen {
  position: fixed;
}

.el-loading-mask.is-fullscreen .el-loading-spinner {
  margin-top: calc((0px - var(--el-loading-fullscreen-spinner-size)) / 2);
}

.el-loading-mask.is-fullscreen .el-loading-spinner .circular {
  height: var(--el-loading-fullscreen-spinner-size);
  width: var(--el-loading-fullscreen-spinner-size);
}

.el-loading-spinner {
  margin-top: calc((0px - var(--el-loading-spinner-size)) / 2);
  position: absolute;
  text-align: center;
  top: 50%;
  width: 100%;
}

.el-loading-spinner .circular {
  animation: loading-rotate 2s linear infinite;
  display: inline;
  height: var(--el-loading-spinner-size);
  width: var(--el-loading-spinner-size);
}

.el-loading-spinner .path {
  animation: loading-dash 1.5s ease-in-out infinite;
  stroke-dasharray: 90, 150;
  stroke-dashoffset: 0;
  stroke-width: 2;
  stroke: var(--el-color-primary);
  stroke-linecap: round;
}

@keyframes loading-rotate {
  to {
    transform: rotate(1turn);
  }
}

@keyframes loading-dash {
  0% {
    stroke-dasharray: 1, 200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -40px;
  }
  to {
    stroke-dasharray: 90, 150;
    stroke-dashoffset: -120px;
  }
}
