/* Animação de Entrada Suave (Fade In) */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* Animação de Deslizar para Cima (Slide Up) */
@keyframes slideUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Animação das Listras da Barra de Progresso */
@keyframes stripes {
    from {
        background-position: 1rem 0;
    }

    to {
        background-position: 0 0;
    }
}

/* Classes utilitárias de animação */
.animate-fade-in {
    animation: fadeIn 0.5s ease-out forwards;
}

.animate-slide-up {
    animation: slideUp 0.5s ease-out forwards;
}

.animate-stripes {
    background-image: linear-gradient(45deg,
            rgba(255, 255, 255, .15) 25%,
            transparent 25%,
            transparent 50%,
            rgba(255, 255, 255, .15) 50%,
            rgba(255, 255, 255, .15) 75%,
            transparent 75%,
            transparent);
    background-size: 1rem 1rem;
    animation: stripes 1s linear infinite;
}

/* Ajustes de Inputs */
input:focus,
textarea:focus {
    box-shadow: 0 0 0 4px rgba(26, 115, 232, 0.1);
}

/* Esconder inputs nativos de radio/checkbox para usar os customizados */
input[type="radio"].hidden,
input[type="checkbox"].hidden {
    display: none;
}