/* --- Variables de Color y Tipografía --- */
:root {
    --riwi-dark-blue: #0A0E29;
    --riwi-green: #94C11F;
    --primary-font: 'Manrope', sans-serif;
    --background-color: #f0f2f5;
}

/* --- Estilos Generales y Animaciones --- */
body {
    background-color: var(--background-color);
    font-family: var(--primary-font);
    overflow: hidden; /* Evita el scroll en la página principal */
}

.left-panel {
    background: linear-gradient(rgba(10, 14, 41, 0.7), rgba(10, 14, 41, 0.7)), url('../img/img_login.jpg') no-repeat center center;
    background-size: cover;
}

.welcome-text, .logo-header, .footer-text {
    animation: fadeIn 1s ease-out forwards;
}

.form-container {
    overflow: hidden;
}

.form-signin {
    max-width: 400px;
    animation: fadeInSlideUp 0.8s ease-out forwards;
}

.form-signin.fade-out {
    animation: fadeOut 0.3s ease-in forwards;
}

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInSlideUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }

/* --- Estilos de Componentes --- */
.logo-img {
    max-width: 150px;
}

.icon-large {
    font-size: 3rem;
    color: var(--riwi-green);
}

/* --- Formularios --- */
.form-floating > .form-control {
    height: calc(3.5rem + 2px);
    padding: 1rem;
    border-radius: 0.5rem;
}
.form-control:focus {
    border-color: var(--riwi-green);
    box-shadow: 0 0 0 0.25rem rgba(148, 193, 31, 0.25);
}
.form-check-input:checked {
    background-color: var(--riwi-dark-blue);
    border-color: var(--riwi-dark-blue);
}

.password-toggle-btn {
    border-left: 0;
    border-radius: 0 0.5rem 0.5rem 0 !important;
}
.password-toggle-btn:focus {
    box-shadow: none;
}
.form-control:focus + .password-toggle-btn {
    border-color: var(--riwi-green);
}

/* --- Botones y Enlaces --- */
.btn-riwi-primary {
    background-color: var(--riwi-green);
    color: var(--riwi-dark-blue);
    font-weight: 800;
    border: none;
    transition: all 0.3s ease;
    border-radius: 50px;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
}
.btn-riwi-primary:hover {
    background-color: #82a81b;
    color: var(--riwi-dark-blue);
    transform: translateY(-3px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.forgot-link {
    color: var(--riwi-dark-blue);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
}
.forgot-link:hover {
    text-decoration: underline;
}