@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap');
:root{--color-primario:#5867dd;--color-secundario:#fff;--color-terciario:#79829c;--color-acento:#34d399;--color-navbar-bg:#fff;--color-navbar-text:#2d3748;--color-error-bg:#ffebee;--color-error-text:#c62828;--border-radius-main:10px;--shadow-main:0 10px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--text-primary:#2d3748;--text-secondary:#4a5568;--input-bg:#f3f4f6;--input-border:#d1d5db; --color-valid: #28a745; --color-invalid: #dc3545;}
body{font-family:'Nunito','Arial',sans-serif;line-height:1.6;margin:0;padding:0;background-color:#f0f4f8;color:var(--text-primary);display:flex;flex-direction:column;min-height:100vh;align-items:center;justify-content:center}
.auth-page-wrapper{width:100%;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}
.auth-container{max-width:420px;width:100%;margin:2rem auto;padding:2.5rem 2rem;background:var(--color-secundario);border-radius:var(--border-radius-main);box-shadow:var(--shadow-main);text-align:center}
.auth-logo-container{margin-bottom:1.5rem}
.logo-auth{font-size:2.8rem;color:var(--color-primario);font-weight:800;margin:0}
.auth-container h2{margin-bottom:2rem;color:var(--text-primary);font-size:1.8rem;font-weight:700}
.auth-form .form-group{margin-bottom:1.2rem;text-align:left}
.auth-form label{display:block;margin-bottom:.5rem;font-weight:600;font-size:.9rem;color:var(--text-secondary)}
.auth-form input{width:100%;padding:.8rem 1rem;border:1px solid var(--input-border);border-radius:6px;font-size:1rem;font-family:'Nunito',sans-serif;background-color:var(--input-bg);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}
.auth-form input:focus{outline:0;border-color:var(--color-primario);background-color:var(--color-secundario);box-shadow:0 0 0 3px rgba(88,103,221,.25)}

/* --- INICIO: ESTILOS PARA LA NUEVA CASILLA DE MARKETING --- */
.checkbox-group {
    margin-bottom: 1.5rem;
    text-align: left;
}

.checkbox-label {
    display: flex;
    align-items: flex-start; /* Alinear al inicio por si el texto ocupa varias líneas */
    cursor: pointer;
    font-size: 0.9rem;
    color: var(--text-secondary);
}

.custom-checkbox {
    display: none; /* Ocultamos el checkbox por defecto */
}

.custom-checkbox + .checkbox-text::before {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--input-border);
    border-radius: 4px;
    margin-right: 0.75rem;
    background-color: var(--input-bg);
    transition: all 0.2s ease;
    flex-shrink: 0; /* Evita que se encoja */
}

.custom-checkbox:checked + .checkbox-text::before {
    background-color: var(--color-primario);
    border-color: var(--color-primario);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 50%;
}

.checkbox-label:hover .custom-checkbox + .checkbox-text::before {
    border-color: var(--color-primario);
}
/* --- FIN: ESTILOS PARA LA NUEVA CASILLA DE MARKETING --- */

/* --- INICIO DE ESTILOS PARA REQUISITOS DE CONTRASEÑA --- */
.password-requirements {
    display: none;
    background-color: #f8f9fa;
    border-radius: 6px;
    padding: 0.8rem 1rem;
    margin-top: 0.8rem;
    border: 1px solid var(--input-border);
}
.password-requirements .req-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 0.5rem 0;
}
.password-requirements ul {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.85rem;
}
.password-requirements li {
    margin-bottom: 0.3rem;
    transition: color 0.3s ease;
}
.password-requirements li::before {
    content: '●';
    margin-right: 0.5rem;
    font-size: 0.9rem;
    transition: color 0.3s ease;
}
.password-requirements li.invalid {
    color: var(--color-invalid);
}
.password-requirements li.invalid::before {
    color: var(--color-invalid);
}
.password-requirements li.valid {
    color: var(--color-valid);
    text-decoration: line-through;
}
.password-requirements li.valid::before {
    content: '✔';
    color: var(--color-valid);
}
/* --- FIN DE ESTILOS --- */
.btn.btn-auth-submit{width:100%;background-color:var(--color-primario);color:#fff;border:none;padding:.9rem;border-radius:6px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:background-color .2s ease,transform .1s ease}
.btn.btn-auth-submit:hover{background-color:#4a58c0;transform:translateY(-2px)}
.btn.btn-auth-submit:active{transform:translateY(0)}
.social-auth-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:var(--color-terciario)}
.social-auth-divider::before,.social-auth-divider::after{content:'';flex:1;border-bottom:1px solid #e0e0e0}
.social-auth-divider span{padding:0 1rem;font-size:.9rem}
.btn.btn-social-auth{width:100%;display:flex;align-items:center;justify-content:center;padding:.8rem;margin-bottom:.8rem;font-size:1rem;font-weight:600;border-radius:6px;border:1px solid var(--input-border);background-color:var(--color-secundario);color:var(--text-primary);transition:background-color .2s ease,border-color .2s ease}
.btn.btn-social-auth:hover{background-color:var(--input-bg);border-color:#b0b3b8}
.social-icon{width:20px;height:20px;margin-right:.8rem}
.btn.google-btn:hover{border-color:#4285F4}
.auth-switch-link{margin-top:1.5rem;font-size:.95rem;color:var(--text-secondary)}
.auth-switch-link a{color:var(--color-primario);text-decoration:none;font-weight:600}
.auth-switch-link a:hover{text-decoration:underline}
.swal2-popup.swal2-toast{box-shadow:var(--shadow-main)!important;border-radius:var(--border-radius-main)!important}
.swal2-popup.swal2-toast .swal2-title{color:var(--color-secundario)!important;font-size:1em!important}
.swal2-popup.swal2-toast.swal2-success{background-color:var(--color-acento)!important}
.swal2-popup.swal2-toast.swal2-error{background-color:var(--color-error-bg)!important}
.swal2-popup.swal2-toast.swal2-error .swal2-title{color:var(--color-error-text)!important}
@media (max-width:480px){.auth-container{margin:1rem;padding:2rem 1.5rem}.auth-container h2{font-size:1.6rem}.logo-auth{font-size:2.4rem}.social-auth-divider{margin:1rem 0}}
