:root {
  --dark: #34495e;
  --light: #ffffff;
  --success: #0abf30;
  --error: #e24d4c;
  --warning: #e9bd0c;
  --info: #3498db;
}

.notifications {
  position: fixed;
  top: 30px;
  right: 20px;
}

.notifications :where(.notify, .column) {
  display: flex;
  align-items: center;
}

.notifications .notify {
  width: 400px;
  position: relative;
  overflow: hidden;
  list-style: none;
  border-radius: 4px;
  padding: 16px 17px;
  margin-bottom: 10px;
  background: var(--light);
  justify-content: space-between;
  animation: show_toast 0.3s ease forwards;
}

@keyframes show_toast {
  0% {
    transform: translateX(100%);
  }

  40% {
    transform: translateX(-5%);
  }

  80% {
    transform: translateX(0%);
  }

  100% {
    transform: translateX(-10px);
  }
}

.notifications .notify.hide {
  animation: hide_toast 0.3s ease forwards;
}

@keyframes hide_toast {
  0% {
    transform: translateX(-10px);
  }

  40% {
    transform: translateX(0%);
  }

  80% {
    transform: translateX(-5%);
  }

  100% {
    transform: translateX(calc(100% + 20px));
  }
}

.notify::before {
  position: absolute;
  content: "";
  height: 3px;
  width: 100%;
  bottom: 0px;
  left: 0px;
  animation: progress 5s linear forwards;
}

@keyframes progress {
  100% {
    width: 0%;
  }
}

.notify.success::before,
.btn#success {
  background: var(--success);
}

.notify.error::before,
.btn#error {
  background: var(--error);
}

.notify.warning::before,
.btn#warning {
  background: var(--warning);
}

.notify.info::before,
.btn#info {
  background: var(--info);
}

.notify .column i {
  font-size: 1.75rem;
}

.notify.success .column i {
  color: var(--success);
}

.notify.error .column i {
  color: var(--error);
}

.notify.warning .column i {
  color: var(--warning);
}

.notify.info .column i {
  color: var(--info);
}

.notify .column span {
  font-size: 1.07rem;
  margin-left: 12px;
}

.notify i:last-child {
  color: #aeb0d7;
  cursor: pointer;
}

.notify i:last-child:hover {
  color: var(--dark);
}

@media screen and (max-width: 530px) {
  .notifications {
    width: 95%;
  }

  .notifications .notify {
    width: 100%;
    font-size: 1rem;
    margin-left: 20px;
  }
}
