/* Custom styles beyond Tailwind */
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
    margin-top: 8px;
}

.calendar-day {
    @apply w-10 h-10 flex items-center justify-center rounded-md text-sm cursor-pointer transition-colors duration-200;
}

.calendar-day:hover {
    @apply bg-gray-100;
}

.calendar-day.cheap {
    @apply bg-green-400 text-white hover:bg-green-500;
}

.calendar-day.medium {
    @apply bg-yellow-400 text-white hover:bg-yellow-500;
}

.calendar-day.expensive {
    @apply bg-red-400 text-white hover:bg-red-500;
}

.calendar-day.selected {
    @apply bg-blue-600 text-white;
}

.flight-card {
    transition: all 0.3s ease-in-out;
}

.flight-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

/* Price badge animation */
.flight-card:hover .bg-green-50 {
    background-color: rgb(34, 197, 94);
}

.flight-card:hover .text-green-700 {
    color: white;
}

/* Button hover enhancement */
.book-btn {
    transition: all 0.2s ease-in-out;
}

.book-btn:hover {
    transform: translateY(-1px);
}

/* Loading animations */
@keyframes pulse-green {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: .5;
    }
}

.animate-pulse-green {
    animation: pulse-green 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Mobile optimizations */
@media (max-width: 768px) {
    .flight-card {
        padding: 16px;
    }
    
    .calendar-grid {
        font-size: 12px;
    }
    
    .calendar-day {
        @apply w-8 h-8 text-xs;
    }
}