/* assets/css/style.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* Custom Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background-color: #cbd5e1; border-radius: 20px; }
.dark ::-webkit-scrollbar-thumb { background-color: #475569; }

/* Animation Utils */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fadeIn 0.5s ease-out forwards; }

/* Language Dropdown */
.lang-dropdown { 
    opacity: 0; visibility: hidden; transform: translateY(-10px); 
    transition: all 0.2s ease-in-out; 
}
.lang-group:hover .lang-dropdown { 
    opacity: 1; visibility: visible; transform: translateY(0); 
}


/* Toast Notification */
#toast-container {
            position: fixed;
            bottom: 2rem;
            right: 2rem;
            z-index: 100;
            display: flex;
            flex-direction: column;
            gap: 1rem;
            pointer-events: none;
        }
        .toast {
            pointer-events: auto;
            transform: translateX(100%);
            transition: all 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55);
            opacity: 0;
        }
        .toast.show {
            transform: translateX(0);
            opacity: 1;
        }

/* Captcha Shake Animation (Error state) */
@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}
.animate-shake {
    animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;
}
/* Add to assets/css/style.css */

/* Captcha Error Transition */
#captcha-container {
    transition: border-color 0.2s ease, background-color 0.2s ease;
}