html,
body {
  margin: 0;
  min-height: 100%;
  background: #f4f8ff;
}

body {
  min-width: 320px;
  font-family:
    "PingFang SC",
    "Microsoft YaHei",
    Inter,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    sans-serif;
}

#app {
  min-height: 100vh;
}

#boot-loading {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at top, rgba(83, 132, 255, 0.12) 0%, rgba(255, 255, 255, 0) 34%),
    linear-gradient(180deg, #f6f9ff 0%, #edf3fb 100%);
  transition: opacity 0.22s ease, visibility 0.22s ease;
}

.boot-loading-card {
  width: min(220px, calc(100vw - 40px));
  min-height: 148px;
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border: 1px solid rgba(61, 102, 182, 0.16);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow:
    0 0 0 1px rgba(106, 146, 220, 0.08) inset,
    0 10px 24px rgba(41, 76, 143, 0.08);
}

.boot-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(106, 144, 231, 0.22);
  border-top-color: #2f57b3;
  border-radius: 50%;
  animation: boot-spin 0.78s linear infinite;
}

.boot-loading-text {
  color: #1f3771;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
}

.boot-loading-subtitle {
  color: #7f90ac;
  font-size: 12px;
  line-height: 1.2;
}

body.app-ready #boot-loading {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@keyframes boot-spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}
