/* Base styles */
:root {
    --primary: #6366f1;
    --primary-light: #818cf8;
    --primary-dark: #4f46e5;
    --dark: #1e293b;
    --light: #f8fafc;
    --gray: #94a3b8;
    --danger: #ef4444;
    --success: #10b981;
}

@media (prefers-color-scheme: dark) {
    :root {
        --dark: #f8fafc;
        --light: #1e293b;
    }
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background-color: var(--light);
    color: var(--dark);
    transition: background-color 0.3s ease;
}

/* Sidebar animation */
#sidebar {
    transition: transform 0.3s ease;
}

@media (max-width: 767.98px) {
    #sidebar.collapse:not(.show) {
        transform: translateX(-100%);
    }
}

/* Card hover effect */
.card.hover-shadow {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card.hover-shadow:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

/* Button animations */
.btn {
    transition: all 0.2s ease;
}

.btn-primary {
    background-color: var(--primary);
    border-color: var(--primary);
}

.btn-primary:hover {
    background-color: var(--primary-dark);
    border-color: var(--primary-dark);
    transform: translateY(-1px);
}

/* Dark mode toggle */
[data-bs-theme="dark"] {
    color-scheme: dark;
    --body-bg: #1a1a1a;
    --body-color: #f8f9fa;
    /* Additional dark mode variables */
}

/* Floating animation */
.animate-float {
    animation: float 6s ease-in-out infinite;
}

@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
    100% { transform: translateY(0px); }
}

/* Form validation */
.is-invalid ~ .invalid-feedback {
    display: block;
}