.alert-container {
  position: fixed;
  bottom: 10px;
  left: 10px;
  z-index: 100;
}

.spinner {
  width: 22px;
  height: 22px;
  border: 3px solid #ccc;
  border-top-color: #333;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.btn-fixed-width-30 {
  width: 30%;
  .btn {
    width: 100%;
  }
}

tr.moved {
  animation: moved-fade 0.4s;
}

@keyframes moved-fade {
  0%   { background: #eee; }
  50%  { background: #eee; }
  100% { background: inherit; }
}


.jcc {
  justify-content: center !important;
}

.jcb {
  justify-content: space-between !important;
}

.jca {
  justify-content: space-around !important;
}

.jce {
  justify-content: flex-end !important;
}

.aic {
  align-items: center !important;
}

.ais {
  align-items: flex-start !important;
}

.aie {
  align-items: flex-end !important;
}

.df {
  display: flex !important;
}

.fc {
  flex-direction: column !important;
}
