html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.fade-slide-in {
    opacity: 0;
    transform: translateY(-10px);
    animation: fadeSlideIn 0.3s ease-out forwards;
}

@keyframes fadeSlideIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.card.border-danger {
    transition: border 0.3s ease;
}

/* === Semáforo de calidad === */
.semaforo-verde {
    color: #28a745;
    font-weight: bold;
}

.semaforo-amarillo {
    color: #ffc107;
    font-weight: bold;
}

.semaforo-rojo {
    color: #dc3545;
    font-weight: bold;
}

/* === Miniatura de imagen === */
.img-thumbnail {
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease-in-out;
}

    .img-thumbnail:hover {
        transform: scale(1.03);
    }

/* === Borde visual al seleccionar === */
.card.borde-activo {
    border: 2px solid #007bff;
}

/* === Animación de aparición (para mensajes o imágenes) === */
.fade-slide-in {
    opacity: 0;
    transform: translateY(-10px);
    animation: fadeSlideIn 0.3s ease-out forwards;
}

@keyframes fadeSlideIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}