/* =================================================================
// ARCHIVO: style.css (Validador de Formulario)
// OBJETIVO: Estilos claros para feedback de validación.
// ================================================================= */

:root {
    --color-primary: #007bff;
    --color-success: #28a745;
    --color-error: #dc3545;
    --color-bg: #f4f4f4;
    --color-card: #ffffff;
    --color-text: #333;
}

body {
    background-color: var(--color-bg);
    font-family: 'Roboto', sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    margin: 0;
}

.registration-form-container {
    background-color: var(--color-card);
    padding: 40px;
    border-radius: 10px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-width: 400px;
}

h1 {
    color: var(--color-primary);
    text-align: center;
    margin-bottom: 5px;
    font-size: 1.6em;
}

.subtitle {
    text-align: center;
    margin-bottom: 25px;
    color: #6c757d;
}

.form-group {
    margin-bottom: 20px;
    position: relative;
}

label {
    display: block;
    margin-bottom: 5px;
    font-weight: 700;
    color: var(--color-text);
}

input[type="text"], input[type="password"] {
    width: 100%;
    padding: 10px;
    border: 1px solid #ced4da;
    border-radius: 5px;
    box-sizing: border-box;
    font-size: 1em;
    transition: border-color 0.3s;
}

/* ---------------------------------
// ESTILOS CLAVE DE FEEDBACK
// --------------------------------- */

.feedback {
    display: block;
    font-size: 0.8em;
    margin-top: 4px;
    color: #6c757d;
    visibility: visible; /* Por defecto visible, el JS lo ocultará */
}

/* Clases que el JavaScript añadirá */

.is-invalid input {
    border-color: var(--color-error);
}

.is-invalid .feedback {
    color: var(--color-error);
    visibility: visible;
}

.is-valid input {
    border-color: var(--color-success) !important;
}

.is-valid .feedback {
    color: var(--color-success);
    visibility: visible;
}

/* Ocultar feedback por defecto (si no tiene estado) */
.form-group:not(.is-valid):not(.is-invalid) .feedback {
    visibility: hidden;
}

/* Botón de envío */
#submitBtn {
    width: 100%;
    padding: 12px;
    background-color: var(--color-primary);
    color: white;
    border: none;
    border-radius: 5px;
    font-size: 1.1em;
    cursor: pointer;
    transition: background-color 0.3s, opacity 0.3s;
}

#submitBtn:disabled {
    background-color: #a0c3e7;
    cursor: not-allowed;
}

.final-message {
    text-align: center;
    font-weight: 700;
    color: var(--color-success);
    margin-top: 20px;
}

.checkbox-group {
    display: flex;
    align-items: center;
}

.checkbox-group label {
    margin-bottom: 0;
    margin-left: 10px;
    font-weight: 400;
}