.contenedor-formulario {
    max-width: 800px;
    margin: 0 auto;
}

.tarjeta-formulario {
    background: $color-blanco;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.03);
    border: 1px solid $color-borde;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;

    .col-completa {
        grid-column: 1 / -1;
    }
}

.form-group {
    display: flex;
    flex-direction: column;

    label {
        font-size: 0.9rem;
        font-weight: 600;
        color: $color-texto-secundario;
        margin-bottom: 8px;
    }

    input, select, textarea {
        font-family: $fuente-base;
        font-size: 1rem;
        padding: 12px 16px;
        background-color: $color-input-bg;
        border: 1px solid $color-borde;
        border-radius: 8px;
        color: $color-texto-principal;
        transition: all 0.3s ease;

        &::placeholder {
            color: $color-texto-claro;
        }

        &:focus {
            outline: none;
            background-color: $color-blanco;
            border-color: $color-primario;
            box-shadow: 0 0 0 4px $color-focus;
        }
        
        &:invalid:not(:placeholder-shown) {
            border-color: $color-error;
            &:focus { 
                box-shadow: 0 0 0 4px $color-error-focus; 
            }
        }
    }
}

.acciones-formulario {
    margin-top: 35px;
    padding-top: 25px;
    border-top: 1px solid $color-borde;
    display: flex;
    justify-content: flex-end;
    gap: 15px;
}

// Alertas de error del servidor (Capa 2 MVC)
.alerta-errores {
    background: $color-error-bg;
    border-left: 4px solid $color-error;
    padding: 16px;
    border-radius: 8px;
    margin-bottom: 24px;

    h4 {
        margin: 0 0 8px 0;
        color: darken($color-error, 20%);
    }

    ul {
        margin: 0;
        color: darken($color-error, 15%);
        padding-left: 20px;
    }
}