/* Glassmorphism Theme Utility Classes */

.glass-card {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 1rem;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.glass-card-lg {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 1.5rem;
  box-shadow: 0 16px 64px rgba(0, 0, 0, 0.15);
}

.glass-button {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: all 0.3s ease;
}

.glass-button:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.glass-input {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
  transition: all 0.3s ease;
}

.glass-input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

.glass-input:focus {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgb(96, 165, 250);
  box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.3);
  outline: none;
}

.gradient-button {
  background: linear-gradient(to right, rgb(37, 99, 235), rgb(147, 51, 234));
  transition: all 0.3s ease;
}

.gradient-button:hover {
  background: linear-gradient(to right, rgb(29, 78, 216), rgb(126, 34, 206));
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 8px 32px rgba(37, 99, 235, 0.3);
}

/* Animation Classes */
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideIn {
  0% {
    opacity: 0;
    transform: translateX(-20px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-20px);
  }
}

.animate-fadeInUp {
  animation: fadeInUp 0.6s ease-out forwards;
}

.animate-slideIn {
  animation: slideIn 0.5s ease-out forwards;
}

.animate-float {
  animation: float 6s ease-in-out infinite;
}

/* Grid Pattern */
.bg-grid-pattern {
  background-image: 
    linear-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
  background-size: 20px 20px;
}

/* Text Utilities */
.text-glass-primary {
  color: white;
}

.text-glass-secondary {
  color: rgba(255, 255, 255, 0.8);
}

.text-glass-tertiary {
  color: rgba(255, 255, 255, 0.6);
}

.text-glass-accent {
  color: rgb(96, 165, 250);
}

/* Status Colors */
.text-success {
  color: rgb(52, 211, 153);
}

.text-warning {
  color: rgb(251, 191, 36);
}

.text-error {
  color: rgb(248, 113, 113);
}

.bg-success {
  background-color: rgba(52, 211, 153, 0.2);
}

.bg-warning {
  background-color: rgba(251, 191, 36, 0.2);
}

.bg-error {
  background-color: rgba(248, 113, 113, 0.2);
}

/* Responsive Glassmorphism */
@media (max-width: 768px) {
  .glass-card {
    backdrop-filter: blur(12px);
    border-radius: 0.75rem;
  }
  
  .glass-card-lg {
    backdrop-filter: blur(16px);
    border-radius: 1rem;
  }
}