.toast-notifications {
	position: fixed;
	top: 20px;
	right: 20px;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 280px;
	max-width: min(350px, calc(100vw - 40px));
	pointer-events: none;
}

.toast-notification {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 10px 14px;
	border: 1px solid;
	border-radius: 6px;
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
	backdrop-filter: blur(8px);
	font-size: 14px;
	pointer-events: auto;
	animation: toast-notification-slide-in 0.3s ease-out;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.toast-notification--leaving {
	opacity: 0;
	transform: translateX(100%);
}

.toast-notification--success {
	background-color: rgba(240, 253, 244, 0.95);
	border-color: #22c55e;
	color: #15803d;
}

.toast-notification--error {
	background-color: rgba(254, 242, 242, 0.95);
	border-color: #ef4444;
	color: #dc2626;
}

.toast-notification--warning {
	background-color: rgba(255, 251, 235, 0.95);
	border-color: #f59e0b;
	color: #d97706;
}

.toast-notification--info,
.toast-notification--debug {
	background-color: rgba(239, 246, 255, 0.95);
	border-color: #3b82f6;
	color: #2563eb;
}

.toast-notification__icon {
	flex-shrink: 0;
	font-size: 1.125rem;
}

.toast-notification--success .toast-notification__icon {
	color: #16a34a;
}

.toast-notification--error .toast-notification__icon {
	color: #dc2626;
}

.toast-notification--warning .toast-notification__icon {
	color: #ca8a04;
}

.toast-notification--info .toast-notification__icon,
.toast-notification--debug .toast-notification__icon {
	color: #2563eb;
}

.toast-notification__text {
	flex: 1;
	margin: 0;
	font-weight: 500;
	white-space: pre-line;
}

.toast-notification__close {
	flex-shrink: 0;
	padding: 0 0.25rem;
	border: 0;
	background: none;
	color: #9ca3af;
	line-height: 1;
	cursor: pointer;
	transition: color 0.2s ease, transform 0.2s ease;
}

.toast-notification__close:hover {
	color: #4b5563;
	transform: scale(1.1);
}

@keyframes toast-notification-slide-in {
	from {
		opacity: 0;
		transform: translateX(100%);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}
