/* Global background dots utility */
.bg-dot {
  background-color: #ffffff;
  background-image: radial-gradient(rgba(209, 213, 219, 0.30) 1px, transparent 1px);
  background-size: 22px 22px;
  background-position: 0 0;
}

.bg-dot-dark {
  background-color: #0a0a0a;
  background-image: radial-gradient(rgba(148, 163, 184, 0.22) 1px, transparent 1px);
  background-size: 22px 22px;
  background-position: 0 0;
}

/* Ensure inputs remain readable on dark panels */
.input-light {
  background-color: #ffffff;
  color: #111827; /* gray-900 */
}
.input-light::placeholder {
  color: #9ca3af; /* gray-400 */
}

/* Scrollbar hide utility */
.scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.scrollbar-hide::-webkit-scrollbar {
  display: none;
}

/* Animations */
@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in {
  animation: fade-in 0.3s ease-out;
}

.animate-fade-in-up {
  animation: fade-in-up 0.4s ease-out;
}