body {
  margin: 0;
}

html {
  overflow-x: hidden;
  overflow-y: scroll;
}

/* Bootstrap splash — mirrors SamLoader (fullscreen / xl) before Vue mounts */
#loading-bg.sam-loader {
  --sam-loader-ring: 65px;
  --sam-loader-logo: 3.5rem;
  --sam-loader-ring-border: 3px;
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--initial-loader-bg, #fff);
  color: var(--initial-loader-color, #870d03);
}

#loading-bg .sam-loader__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

#loading-bg .sam-loader__logo {
  width: var(--sam-loader-logo);
  height: auto;
}

#loading-bg .sam-loader__rings {
  position: relative;
  width: var(--sam-loader-ring);
  height: var(--sam-loader-ring);
}

#loading-bg .sam-loader__ring {
  position: absolute;
  inset: 0;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  border: var(--sam-loader-ring-border) solid transparent;
  border-inline-start-color: currentColor;
  border-radius: 50%;
}

#loading-bg .sam-loader__ring--1 {
  animation: sam-loader-spin 1s ease infinite;
}

#loading-bg .sam-loader__ring--2 {
  animation: sam-loader-spin-opacity 1s ease infinite 0.1s;
}

#loading-bg .sam-loader__ring--3 {
  animation: sam-loader-spin-opacity 1s ease infinite 0.2s;
}

@keyframes sam-loader-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes sam-loader-spin-opacity {
  0% {
    opacity: 0.15;
    transform: rotate(0deg);
  }

  100% {
    opacity: 1;
    transform: rotate(360deg);
  }
}
