/* Boot-time loader for the static markup in index.html.
 * This file was referenced but missing from public/ — every page load fetched an HTML
 * fallback for it and the boot spinner rendered unstyled. AntD's real styles are CSS-in-JS
 * and not present before the bundle runs, so the spinner is fully styled here. */

.loader {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}

.loader-spin {
  display: inline-block;
}

.loader .ant-spin-dot {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 36px;
  transform: rotate(45deg);
  animation: loaderRotate 1.2s infinite linear;
}

.loader .ant-spin-dot i {
  position: absolute;
  display: block;
  width: 14px;
  height: 14px;
  background-color: #0a8fdc; /* matches the theme-color meta tag */
  border-radius: 100%;
  opacity: 0.3;
  transform: scale(0.75);
  transform-origin: 50% 50%;
  animation: loaderFade 1s infinite linear alternate;
}

.loader .ant-spin-dot i:nth-child(1) { top: 0; left: 0; }
.loader .ant-spin-dot i:nth-child(2) { top: 0; right: 0; animation-delay: 0.4s; }
.loader .ant-spin-dot i:nth-child(3) { right: 0; bottom: 0; animation-delay: 0.8s; }
.loader .ant-spin-dot i:nth-child(4) { bottom: 0; left: 0; animation-delay: 1.2s; }

@keyframes loaderRotate {
  100% { transform: rotate(405deg); }
}

@keyframes loaderFade {
  100% { opacity: 1; }
}
