
:root {
	--dark: #34495e;
	--light: #fff;
	--success: #0abf30;
	--error: #f24d4c;
	--warning: #e9bd0c;
	--info: #3498db;
}

.notifications-toast {
	position: fixed;
	top: 30px;
	right: 20px;
}

.notifications-toast :where(.toast, .column) {
	display: flex;
	align-items: center;
}

.notifications-toast .toast {
	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;
	opacity: 1 !important;
}

@keyframes show_toast {
	0% {
		transform: translateX(100%);
	}
	40% {
		transform: translateX(-5%);
	}
	80% {
		transform: translateX(0%);
	}
	100% {
		transform: translateX(-10%);
	}
}

.notifications-toast .toast.hide {
	animation: hide_toast 0.3s ease forwards;
}

@keyframes hide_toast {
	0% {
		transform: translateX(-10%);
	}
	40% {
		transform: translateX(0%);
	}
	80% {
		transform: translateX(-5%);
	}
	100% {
		transform: translateX(calc(100% + 20px));
	}
}

.notifications-toast .toast::before {
	position: absolute;
	content: '';
	height: 3px;
	width: 100%;
	bottom: 0;
	left: 0;
	animation: progress 5s linear forwards;
}

@keyframes progress {
	100% {
		width: 0%;
	}
}

.notifications-toast .toast.success::before, .btn#success {
	background: var(--success);
}

.notifications-toast .toast.error::before, .btn#error {
	background: var(--error);
}

.notifications-toast .toast.warning::before, .btn#warning {
	background: var(--warning);
}

.notifications-toast .toast.info::before, .btn#info {
	background: var(--info);
}

.notifications-toast .toast .column i {
	font-size: 1.75rem;
}

.notifications-toast .toast.success .column i {
	color: var(--success);
}

.notifications-toast .toast.error .column i {
	color: var(--error);
}

.notifications-toast .toast.warning .column i {
	color: var(--warning);
}

.notifications-toast .toast.info .column i {
	color: var(--info);
}

.notifications-toast .toast .column span {
	font-size: 1.07rem;
	margin-left: 12px;
}

.notifications-toast .toast i:last-child {
	color: #aeb0d7;
	cursor: pointer;
}

.notifications-toast .toast i:last-child:hover {
	color: var(--dark);
}

@media screen and (max-width: 530px) {
	.notifications-toast  {
		width: 80%;
	}
	
	.notifications-toast .toast {
		width: 100%;
		font-size: 1rem;
		margin-left: 20px;
	}
}