:root {
	--hue: 223;
	--bg: hsl(var(--hue),10%,90%);
	--fg: hsl(var(--hue),10%,10%);
	--transDur: 0.15s;
}

.ceNotification {
	padding-bottom: 0.75em;
	position: fixed;
	top: 6.3em;
	right: 1.5em;
	width: 18.75em;
	max-width: calc(100% - 3em);
	transition: transform 0.15s ease-out;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
	font-size: calc(16px + (24 - 16) * (100vw - 320px) / (1280 - 320));
	z-index: 9900;
}

.ceNotification__box,
.ceNotification__content,
.ceNotification__btns {
	display: flex;
}

.ceNotification__box,
.ceNotification__content {
	align-items: center;
}

.ceNotification__box {
	animation: flyIn 0.3s ease-out;
	background-color: hsl(0,0%,100%);
	border-radius: 0.75em;
	box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
	height: 4em;
	transition: background-color var(--transDur), color var(--transDur);
}

.ceNotification--out .ceNotification__box {
	animation: flyOut 0.3s ease-out forwards;
}

.ceNotification__content {
	padding: 0.375em 1em;
	width: 100%;
	height: 100%;
}

.ceNotification__icon {
	flex-shrink: 0;
	margin-right: 0.75em;
	width: 2em;
	height: 2em;
}

.ceNotification__icon-svg {
	width: 100%;
	height: auto;
}

.ceNotification__text {
	line-height: 1.333;
}

.ceNotification__text-title {
	font-size: 0.75em;
	font-weight: bold;
}

.ceNotification__text-subtitle {
	font-size: 0.6em;
	opacity: 0.75;
}

.ceNotification__btns {
	box-shadow: -1px 0 0 hsla(var(--hue),10%,10%,0.15);
	flex-direction: column;
	flex-shrink: 0;
	min-width: 4em;
	height: 100%;
	transition: box-shadow var(--transDur);
}

.ceNotification__btn {
	border: 0;
	font-size: 0.6em;
	line-height: 1;
	font-weight: 500;
	height: 100%;
	padding: 0 0.5rem;
	-webkit-appearance: none;
	appearance: none;
	-webkit-tap-highlight-color: transparent;
}

	.ceNotification__btn.success {
		background-color: hsl(93,90%,40%);
	}
		.ceNotification__btn.success:hover {
			background-color: hsl(93, 90%, 32%);
		}

	.ceNotification__btn.error {
		background-color: hsl(13,90%,55%);
	}
		.ceNotification__btn.error:hover {
			background-color: hsl(13, 90%, 38%);
		}

	.ceNotification__btn.warning {
		background-color: hsl(33,90%,55%);
	}
		.ceNotification__btn.warning:hover {
			background-color: hsl(33, 90%, 42%);
		}

	.ceNotification__btn.action {
		background-color: #1486ff;
	}
		.ceNotification__btn.action:hover {
			background-color: #006ce0;
		}

	.ceNotification__btn.message {
		background-color: #727272;
	}
		.ceNotification__btn.message {
			background-color: #5c5c5c;
		}


.ceNotification__btn-text {
	display: inline-block;
	color: white;
	pointer-events: none;
}

.ceNotification__btn:first-of-type {
	border-radius: 0 0.75rem 0 0;
}

.ceNotification__btn:last-of-type {
	border-radius: 0 0 0.75rem 0;
}

.ceNotification__btn:only-child {
	border-radius: 0 0.75rem 0.75rem 0;
}

.ceNotification__btn + .ceNotification__btn {
	box-shadow: 0 -1px 0 hsla(var(--hue),10%,10%,0.15);
	font-weight: 400;
}

.ceNotification__btn:active,
.ceNotification__btn:focus {
	background-color: hsl(var(--hue),10%,95%);
}

.ceNotification__btn:focus {
	outline: transparent;
}

@supports selector(:focus-visible) {
	.ceNotification__btn:focus {
		background-color: transparent;
	}

	.ceNotification__btn:focus-visible,
	.ceNotification__btn:active {
		background-color: hsl(var(--hue),10%,95%);
	}
}

/* Animations */
@keyframes flyIn {
	from {
		transform: translateX(calc(100% + 1.5em));
	}

	to {
		transform: translateX(0);
	}
}

@keyframes flyOut {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(calc(100% + 1.5em));
	}
}