.blink {
  -webkit-animation: blink 1.5s linear infinite;
  animation: blink 1.5s linear infinite;
}
@-webkit-keyframes blink {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}
@keyframes blink {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}

.error {
  color: red;
}

.ml-5 { margin-left: 5px; }
.mr-5 { margin-right: 5px; }
.mt-5 { margin-top: 5px; }
.mb-5 { margin-bottom: 5px; }
.m-5 { margin: 5px; }
.m-10 { margin: 10px; }

.hover-opacity {
  opacity: 0.5;
}
.hover-opacity:hover {
  opacity: 1;
}

.hide {
  display: none;
}

.el-link.el-link--primary.reverse {
  background-color: var(--color-primary-opacity50);
  color: white;
}

.icon-btn {
  cursor: pointer;
  color: var(--color-info);
}
.icon-btn:hover {
  color: var(--color-primary-1);
  transform: scale(1.05);
}
.cursor-pointer {
  cursor: pointer;
}
.hover-underline:hover {
  text-decoration: underline;
}
.text-info {
  color: var(--color-info);
  font-style: italic;
  font-size: 80%;
}
.flex {
  display: flex;
}
.bold, .bold > * {
  font-weight: bold !important;
}