html {
    width: 100%;
    height: 100dvh; /* Ajusta dinámicamente el alto real al abrir el teclado */
    overflow: hidden; /* Evita cualquier desplazamiento vertical u horizontal */
    -webkit-text-size-adjust: 100%;
}

body {
    background: linear-gradient(135deg, #f8f9fa, #dee2e6);
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100dvh; /* Mantiene el fondo y contenido fijos en el área visible */
    overflow: hidden;
    position: fixed; /* Bloquea el rebote elástico en navegadores móviles como Safari */
    touch-action: none;
}

@media (max-width: 768px) {
    .form-control, .form-select {
        font-size: 16px !important;
    }
}

.card {
    border: none;
    transition: .3s;
    overflow: hidden
}

.card:hover {
    transform: translateY(-5px)
}

textarea {
    resize: none
}

.btn-danger {
    transition: .3s
}

.btn-danger:hover {
    transform: scale(1.02)
}

.form-select:focus,
.form-control:focus {
    border-color: #adb5bd !important;
    box-shadow: 0 0 0 .12rem rgb(173 181 189 / .25) !important
}

.form-select {
    border-color: #ced4da
}

.form-select:focus {
    border-color: #6c757d !important;
    box-shadow: none !important;
    outline: none !important
}

.form-select option:checked {
    background-color: #343a40;
    color: #fff
}

.form-check-input {
    cursor: pointer;
    accent-color: #343a40
}

.form-check-input:checked {
    background-color: #343a40;
    border-color: #343a40
}

.form-check-input:focus {
    box-shadow: 0 0 0 .15rem rgb(52 58 64 / .2)
}
