/* ===== 全局 Loading — 极简优雅风格 ===== */

#loader-wrapper {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #fff;
  z-index: 99999;
  transition: opacity 0.35s ease-out;
}

/* 三点跳动加载器 */
.loader-dots {
  display: flex;
  align-items: center;
  gap: 8px;
}

.loader-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #8B1A1A;
  animation: dotBounce 1.2s ease-in-out infinite;
}
.loader-dot:nth-child(2) { animation-delay: 0.15s; }
.loader-dot:nth-child(3) { animation-delay: 0.30s; }

@keyframes dotBounce {
  0%, 80%, 100% {
    transform: scale(0.6);
    opacity: 0.4;
  }
  40% {
    transform: scale(1);
    opacity: 1;
  }
}

/* 隐藏文字 */
.loader-title {
  display: none !important;
}

/* 加载完成淡出 */
#loader-wrapper.fade-out {
  opacity: 0;
  pointer-events: none;
}
