body {
  box-sizing: border-box;
}

.dark {
  background-color: #1a1a1a;
  color: #ffffff;
}

.dark .bg-white {
  background-color: #2d2d2d !important;
}

.dark .text-gray-900 {
  color: #ffffff !important;
}

.dark .text-gray-600 {
  color: #cccccc !important;
}

.dark .border-gray-300 {
  border-color: #444444 !important;
}

.dark .bg-gray-50 {
  background-color: #333333 !important;
}

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

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.space-bg {
  background: linear-gradient(135deg, #000000 0%, #1e3a8a 50%, #00bcd4 100%);
  position: relative;
  overflow: hidden;
  cursor: none;
}

.interactive-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
      rgba(0, 188, 212, 0.15) 0%,
      rgba(30, 58, 138, 0.1) 25%,
      transparent 50%);
  transition: background 0.3s ease;
  z-index: 1;
}

.particles {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 2;
}

.particle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: rgba(0, 188, 212, 0.8);
  border-radius: 50%;
  pointer-events: none;
  animation: float 6s ease-in-out infinite;
}

.particle:nth-child(odd) {
  animation-delay: -2s;
  background: rgba(38, 198, 218, 0.6);
}

.particle:nth-child(3n) {
  animation-delay: -4s;
  background: rgba(255, 255, 255, 0.4);
}

.mouse-trail {
  position: absolute;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, rgba(0, 188, 212, 0.8) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 3;
  animation: pulse 1s ease-out infinite;
}

@keyframes float {

  0%,
  100% {
    transform: translateY(0px) translateX(0px) scale(1);
    opacity: 0.7;
  }

  25% {
    transform: translateY(-20px) translateX(10px) scale(1.1);
    opacity: 1;
  }

  50% {
    transform: translateY(-10px) translateX(-15px) scale(0.9);
    opacity: 0.8;
  }

  75% {
    transform: translateY(-30px) translateX(5px) scale(1.05);
    opacity: 0.9;
  }
}

@keyframes pulse {
  0% {
    transform: scale(0.8);
    opacity: 1;
  }

  100% {
    transform: scale(2);
    opacity: 0;
  }
}

.network-lines {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.network-line {
  position: absolute;
  height: 1px;
  background: linear-gradient(90deg,
      transparent 0%,
      rgba(0, 188, 212, 0.4) 50%,
      transparent 100%);
  animation: scan 4s linear infinite;
}

@keyframes scan {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    transform: translateX(100vw);
    opacity: 0;
  }
}

.login-card {
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.dark .login-card {
  background: rgba(45, 45, 45, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.1);
}