/* Custom styles for Tailwind CSS */

/* Active navigation link styles */
.nav-link.active {
    @apply bg-primary-50 text-primary-700 border-r-4 border-primary-600;
}

/* Content section visibility */
.content-section {
    @apply block;
}

.content-section.hidden {
    @apply hidden;
}

/* Loading spinner animation */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.animate-spin {
    animation: spin 1s linear infinite;
}

/* Toast notification animations */
@keyframes slideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.toast {
    animation: slideIn 0.3s ease-out;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}

/* Focus styles for better accessibility */
button:focus,
input:focus,
select:focus,
textarea:focus {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

/* Customer card hover effects */
.customer-card {
    transition: all 0.2s ease-in-out;
}

.customer-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

/* Status badges */
.status-badge {
    @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}

.status-badge.active {
    @apply bg-green-100 text-green-800;
}

.status-badge.trial {
    @apply bg-yellow-100 text-yellow-800;
}

.status-badge.inactive {
    @apply bg-red-100 text-red-800;
}

/* Form validation styles */
.form-error {
    @apply border-red-300 focus:ring-red-500 focus:border-red-500;
}

.form-success {
    @apply border-green-300 focus:ring-green-500 focus:border-green-500;
}

/* Loading states */
.loading-overlay {
    @apply absolute inset-0 bg-white bg-opacity-75 flex items-center justify-center;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .nav-link.active {
        @apply border-r-0 border-l-4 border-l-primary-600;
    }
}