/* loading-overlay.css — 页面加载遮罩样式 */
#page-loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
#page-loading-overlay.hide {
  opacity: 0;
  visibility: hidden;
}
.loading-logo-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}
.loading-logo-wrap img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}
.loading-logo-wrap span {
  font-family: 'Google Sans Flex', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #111827;
  letter-spacing: -0.3px;
}
.loading-spinner {
  width: 44px;
  height: 44px;
  border: 3px solid #EFF6FF;
  border-top-color: #2563EB;
  border-radius: 50%;
  animation: talkme-spin 0.8s linear infinite;
}
.loading-dots {
  display: flex;
  gap: 6px;
}
.loading-dots span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #2563EB;
  opacity: 0.3;
  animation: talkme-dot 1.2s ease-in-out infinite;
}
.loading-dots span:nth-child(2) { animation-delay: 0.2s; }
.loading-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes talkme-spin {
  to { transform: rotate(360deg); }
}
@keyframes talkme-dot {
  0%, 80%, 100% { opacity: 0.3; transform: scale(1); }
  40% { opacity: 1; transform: scale(1.3); }
}
