/* ========================================
   CUSTOM LOADER STYLES
   ======================================== */

/* From Uiverse.io by Juanes200122 - Modified with SmoothieBun colors */
.loader {
  width: 60px;
  aspect-ratio: 2;
  --_g: no-repeat radial-gradient(circle closest-side, #ffd700 90%, #0000); /* Yellow */
  background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;
  background-size: calc(100% / 3) 50%;
  animation: l3 1s infinite linear;
  margin: 0 auto;
}

/* Second loader variant with green */
.loader-green {
  width: 60px;
  aspect-ratio: 2;
  --_g: no-repeat radial-gradient(circle closest-side, #28a745 90%, #0000); /* Green */
  background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;
  background-size: calc(100% / 3) 50%;
  animation: l3 1s infinite linear;
  margin: 0 auto;
}

/* Mixed colors loader */
.loader-mixed {
  width: 60px;
  aspect-ratio: 2;
  background: 
    no-repeat radial-gradient(circle closest-side, #ffd700 90%, #0000) 0% 50%,    /* Yellow */
    no-repeat radial-gradient(circle closest-side, #28a745 90%, #0000) 50% 50%,  /* Green */
    no-repeat radial-gradient(circle closest-side, #ffd700 90%, #0000) 100% 50%; /* Yellow */
  background-size: calc(100% / 3) 50%;
  animation: l3 1s infinite linear;
  margin: 0 auto;
}

@keyframes l3 {
  20% {
    background-position: 0% 0%, 50% 50%, 100% 50%;
  }
  40% {
    background-position: 0% 100%, 50% 0%, 100% 50%;
  }
  60% {
    background-position: 0% 50%, 50% 100%, 100% 0%;
  }
  80% {
    background-position: 0% 50%, 50% 50%, 100% 100%;
  }
}

/* Loader container styles */
.loader-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.loader-container.hidden {
  opacity: 0;
  visibility: hidden;
}

/* Page-specific loader styles */
.page-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.loader-text {
  color: #ffd700;
  font-size: 1.2rem;
  font-weight: 600;
  text-align: center;
  font-family: 'Montserrat', sans-serif;
}

.loader-subtext {
  color: #28a745;
  font-size: 0.9rem;
  text-align: center;
  opacity: 0.8;
}

/* Responsive loader */
@media (max-width: 768px) {
  .loader,
  .loader-green,
  .loader-mixed {
    width: 50px;
  }
  
  .loader-text {
    font-size: 1rem;
  }
  
  .loader-subtext {
    font-size: 0.8rem;
  }
}

@media (max-width: 576px) {
  .loader,
  .loader-green,
  .loader-mixed {
    width: 40px;
  }
  
  .loader-text {
    font-size: 0.9rem;
  }
  
  .loader-subtext {
    font-size: 0.7rem;
  }
}
