/* Alertas de estado — mismo patrón que un alert de Bootstrap (caja con color
   contextual), pero con los tokens del sistema de diseño, porque web-app ya no
   carga Bootstrap. Los íconos son de Tabler, que el layout ya incluye. */

.alerta {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.45;
  animation: fadeIn 0.3s ease;
}

.alerta__icono {
  flex-shrink: 0;
  font-size: 18px;
  line-height: 1.3;
}

.alerta__texto {
  flex: 1;
  min-width: 0;
}

.alerta__texto a {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
}

/* Informativo: estados vacíos y avisos neutros */
.alerta--info {
  background-color: #eef4f9;
  border-color: #c2d9e8;
  color: #1d4b66;
}

/* Éxito: la operación se completó */
.alerta--exito {
  background-color: #e9f6f0;
  border-color: #aeddc9;
  color: #10704f;
}

/* Advertencia: se puede seguir, pero hay algo para revisar */
.alerta--advertencia {
  background-color: #fdf5e6;
  border-color: #f0dbaa;
  color: #8a6100;
}

/* Error: la operación no se pudo completar */
.alerta--error {
  background-color: #fdedec;
  border-color: #f3c4c0;
  color: #9e2c22;
}

/* Dentro de una tabla sin resultados la alerta ocupa todo el ancho y no
   necesita el margen superior, porque ya viene separada por el encabezado. */
.alerta--sin-resultados {
  margin: 0;
}

@media (max-width: 600px) {
  .alerta {
    font-size: 13px;
    padding: 10px 12px;
  }
}

/* Acción dentro de una alerta, para reintentar sin recargar la página */
.btn-reintentar {
  display: inline-block;
  margin-left: 8px;
  padding: 3px 12px;
  border: 1px solid currentColor;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  font-family: inherit;
  font-size: 13px;
  cursor: pointer;
}

.btn-reintentar:hover {
  background: rgba(0, 0, 0, 0.06);
}
