@keyframes fadeIn {
    from {
        opacity: 0;
        transform: scale(0.95);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.animate-fadeIn {
    animation: fadeIn 0.3s ease-out;
}

/* Mobile-friendly modal styles for all modals */
@media (max-width: 768px) {

    /* Apply to all modals */
    #signupModal .bg-white,
    #loginModal .bg-white,
    #forgotPasswordModal .bg-white {
        max-height: 95vh;
        overflow-y: auto;
        margin: 10px;
        width: calc(100vw - 20px);
        max-width: none;
    }

    /* Reduce spacing on mobile for all forms */
    #signupModal .space-y-3>*+*,
    #loginModal .space-y-3>*+*,
    #forgotPasswordModal .space-y-3>*+* {
        margin-top: 0.5rem;
    }

    /* Single column layout for signup grid */
    #signupModal .grid-cols-1.md\\:grid-cols-2,
    #signupModal .grid-cols-1.md\\:grid-cols-3 {
        grid-template-columns: 1fr;
    }

    /* Reduce padding on mobile */
    #signupModal .bg-white,
    #loginModal .bg-white,
    #forgotPasswordModal .bg-white {
        padding: 1rem;
    }

    /* Adjust close button position */
    #signupModal .absolute.top-3.right-3,
    #loginModal .absolute.top-3.right-3,
    #forgotPasswordModal .absolute.top-3.right-3 {
        top: 0.5rem;
        right: 0.5rem;
    }

    /* Smaller font size for mobile */
    #signupModal h2,
    #loginModal h2,
    #forgotPasswordModal h2 {
        font-size: 1.5rem;
        margin-bottom: 1rem;
    }

    /* Input field adjustments */
    #signupModal input,
    #signupModal textarea,
    #loginModal input,
    #forgotPasswordModal input {
        padding: 0.625rem;
        font-size: 1rem;
    }

    /* Button adjustments */
    #signupModal button[type="submit"],
    #loginModal button[type="submit"],
    #forgotPasswordModal button[type="submit"] {
        padding: 0.75rem;
        font-size: 1rem;
    }
}

/* Additional improvements for very small screens */
@media (max-width: 480px) {

    #signupModal .bg-white,
    #loginModal .bg-white,
    #forgotPasswordModal .bg-white {
        margin: 5px;
        width: calc(100vw - 10px);
        padding: 0.75rem;
    }

    /* Stack all grid items on very small screens */
    #signupModal .grid {
        display: block;
    }

    #signupModal .grid>div {
        margin-bottom: 0.75rem;
    }
}

/* Reset any potential width/overflow issues */
html,
body {
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
}

/* Modal backdrop fix */
#signupModal,
#loginModal,
#forgotPasswordModal {
    position: fixed;
    inset: 0;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Prevent body scroll when modal is open */
body.modal-open {
    overflow: hidden;
    position: fixed;
    width: 100%;
}