@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap');



/* Remove hardcoded colors and let them be defined by the app.blade.php */

:root {

    --error-color: #FF5252;

    --text-color: #333;

}



* {

    margin: 0;

    padding: 0;

    box-sizing: border-box;

}



body {

    font-family: 'Poppins', sans-serif;

    background-color: var(--background-color);

    color: var(--text-color);

    display: flex;

    justify-content: center;

    align-items: center;

    min-height: 100vh;

}



.container {

    width: 100%;

    max-width: 400px;

    padding: 2rem;

}



.form {

    background-color: white;

    padding: 2rem;

    border-radius: 15px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);

}



h1 {

    text-align: center;

    margin-bottom: 2rem;

    color: var(--primary-color);

}



.form-group {

    position: relative;

    margin-bottom: 2rem;

}



input[type="text"],

input[type="email"] {

    width: 100%;

    padding: 10px 0;

    font-size: 1rem;

    border: none;

    border-bottom: 2px solid #ddd;

    outline: none;

    transition: border-color 0.3s;

}



input[type="text"]:focus,

input[type="email"]:focus {

    border-color: var(--primary-color);

}



label {

    position: absolute;

    top: 10px;

    left: 0;

    font-size: 1rem;

    color: #999;

    transition: all 0.3s ease;

    pointer-events: none;

}



input[type="text"]:focus ~ label,

input[type="email"]:focus ~ label,

input[type="text"]:valid ~ label,

input[type="email"]:valid ~ label {

    top: -20px;

    font-size: 0.8rem;

    color: var(--primary-color);

}



.gender-label {

    position: static;

    display: block;

    margin-bottom: 10px;

    color: var(--text-color);

}



.radio-group {

    display: flex;

    justify-content: space-between;

    margin-bottom: 10px;

}



.radio-option {

    position: relative;

    padding-left: 30px;

    cursor: pointer;

}



.radio-option input[type="radio"] {

    position: absolute;

    opacity: 0;

    cursor: pointer;

    width: 100%;

    height: 100%;

    left: 0;

    top: 0;

    z-index: 1;

}



.radio-option label {

    position: relative;

    cursor: pointer;

    font-size: 1rem;

    color: var(--text-color);

    pointer-events: none;

}



.radio-option label:before {

    content: '';

    position: absolute;

    left: -30px;

    top: 0;

    width: 20px;

    height: 20px;

    border: 2px solid var(--primary-color);

    border-radius: 50%;

    transition: all 0.3s ease;

}



.radio-option input[type="radio"]:checked + label:before {

    background-color: var(--primary-color);

}



.radio-option input[type="radio"]:checked + label:after {

    content: '';

    position: absolute;

    left: -25px;

    top: 5px;

    width: 10px;

    height: 10px;

    border-radius: 50%;

    background-color: white;

}



.error-message {

    position: absolute;

    bottom: -20px;

    left: 0;

    font-size: 0.8rem;

    color: var(--error-color);

    opacity: 0;

    transform: translateY(-10px);

    transition: all 0.3s ease;

}



.error-message.show {

    opacity: 1;

    transform: translateY(0);

}



.submit-btn {

    width: 100%;

    padding: 10px;

    background-color: var(--primary-color);

    color: white;

    border: none;

    border-radius: 5px;

    font-size: 1rem;

    cursor: pointer;

    transition: background-color 0.3s ease;

}



.submit-btn:hover {

    background-color: #5753D9;

}

.btn-primary:hover {
    color: white !important;
}





@keyframes spin {

    0% { transform: translate(-50%, -50%) rotate(0deg); }

    100% { transform: translate(-50%, -50%) rotate(360deg); }

}



.success-card {

    background-color: white;

    padding: 2rem;

    border-radius: 15px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);

    text-align: center;

    opacity: 0;

    transform: translateY(20px);

    transition: all 0.5s ease;

}



.success-card.show {

    opacity: 1;

    transform: translateY(0);

}



.success-card h2 {

    color: var(--secondary-color);

    margin-bottom: 1rem;

}



.hidden {

    display: none !important;

}



@media (max-width: 480px) {

    .container {

        padding: 1rem;

    }



    .form {

        padding: 1.5rem;

    }



    .radio-group {

        flex-direction: column;

        align-items: flex-start;

    }



    .radio-option {

        margin-bottom: 10px;

    }

}