/* Базовые стили уведомлений */
.ntf {
	position: fixed;
	padding: 12px 26px 12px 20px;
	border-radius: 4px;
	border: 1px solid transparent;
	color: white;
	z-index: 9999;
	font-family: Arial, sans-serif;
	font-size: 14px;
	line-height: 1.4;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	min-width: 300px;
	max-width: 500px;
	word-wrap: break-word;
	overflow: hidden;
	transition: transform 0.3s ease;
}

/* Стили для типов уведомлений */
.ntf-success {
	background-color: #4a9d7e;
}

.ntf-error {
	background-color: #a73a3a;
}

.ntf-info {
	background-color: #17a2b8;
}

.ntf-warning {
	background-color: #ffc107;
	color: black;
}

.ntf-light {
	background-color: #f8f9fa;
	color: #212529;
	border: 1px solid #dee2e6;
}

.ntf-dark {
	background-color: #343a40;
	color: #f8f9fa;
}

.ntf-primary {
	background-color: #007bff;
	color: white;
}

/* Дефолтные иконки для типов уведомлений */
.ntf-icon-success::before {
	content: "✓";
	color: white;
}

.ntf-icon-error::before {
	content: "✕";
	color: white;
}

.ntf-icon-info::before {
	content: "ℹ";
	color: white;
}

.ntf-icon-warning::before {
	content: "⚠";
	color: black;
}

.ntf-icon-light::before {
	content: "☀";
	color: #f39c12;
}

.ntf-icon-dark::before {
	content: "🌙";
	color: #bdc3c7;
}

.ntf-icon-primary::before {
	content: "★";
	color: white;
}

/* Кнопка закрытия */
.ntf-close-btn {
	position: absolute;
	top: 8px;
	right: 12px;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
	opacity: 0.7;
}

/* Прогресс-бар */
.ntf-progress {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 4px;
	background-color: rgba(255, 255, 255, 0.3);
	width: 100%;
	transition: width linear;
}

.ntf-light .ntf-progress {
	background-color: #cad0d9;
}

/* Позиционирование */
.ntf-top-right {
	top: 20px;
	right: 20px;
}

.ntf-top-left {
	top: 20px;
	left: 20px;
}

.ntf-bottom-right {
	bottom: 20px;
	right: 20px;
}

.ntf-bottom-left {
	bottom: 20px;
	left: 20px;
}

.ntf-top-center {
	top: 20px;
	left: 50%;
	transform: translateX(-50%);
}

.ntf-bottom-center {
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
}

/* Базовые стили анимаций */
.ntf-animate {
	animation-duration: 0.4s;
	animation-fill-mode: both;
}

/* Fade анимация */
@keyframes ntfFadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@keyframes ntfFadeOut {
	from {
		opacity: 1;
	}
	to {
		opacity: 0;
	}
}

.ntf-fade-in {
	opacity: 0;
	animation-name: ntfFadeIn;
}

.ntf-fade-out {
	animation-name: ntfFadeOut;
}

/* Slide анимация */
@keyframes ntfSlideIn {
	from {
		transform: translateY(-100px);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

@keyframes ntfSlideOut {
	from {
		transform: translateY(0);
		opacity: 1;
	}
	to {
		transform: translateY(-100px);
		opacity: 0;
	}
}

.ntf-slide-in {
	opacity: 0;
	animation-name: ntfSlideIn;
}

.ntf-slide-out {
	animation-name: ntfSlideOut;
}

/* Scale анимация */
@keyframes ntfScaleIn {
	from {
		transform: scale(0.5);
		opacity: 0;
	}
	to {
		transform: scale(1);
		opacity: 1;
	}
}

@keyframes ntfScaleOut {
	from {
		transform: scale(1);
		opacity: 1;
	}
	to {
		transform: scale(0.5);
		opacity: 0;
	}
}

.ntf-scale-in {
	opacity: 0;
	animation-name: ntfScaleIn;
}

.ntf-scale-out {
	animation-name: ntfScaleOut;
}

/* Bounce анимация */
@keyframes ntfBounceIn {
	0% {
		transform: scale(0.3);
		opacity: 0;
	}
	50% {
		transform: scale(1.05);
		opacity: 1;
	}
	70% {
		transform: scale(0.9);
	}
	100% {
		transform: scale(1);
		opacity: 1;
	}
}

@keyframes ntfBounceOut {
	0% {
		transform: scale(1);
		opacity: 1;
	}
	20% {
		transform: scale(0.9);
		opacity: 1;
	}
	50% {
		transform: scale(1.05);
		opacity: 1;
	}
	100% {
		transform: scale(0.3);
		opacity: 0;
	}
}

.ntf-bounce-in {
	opacity: 0;
	animation-name: ntfBounceIn;
	animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.ntf-bounce-out {
	animation-name: ntfBounceOut;
	animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045);
}

/* Flip анимация */
@keyframes ntfFlipIn {
	from {
		transform: perspective(1000px) rotate3d(1, 0, 0, 90deg);
		opacity: 0;
	}
	to {
		transform: perspective(1000px) rotate3d(1, 0, 0, 0deg);
		opacity: 1;
	}
}

@keyframes ntfFlipOut {
	from {
		transform: perspective(1000px) rotate3d(1, 0, 0, 0deg);
		opacity: 1;
	}
	to {
		transform: perspective(1000px) rotate3d(1, 0, 0, 90deg);
		opacity: 0;
	}
}

.ntf-flip-in {
	opacity: 0;
	animation-name: ntfFlipIn;
	backface-visibility: visible !important;
}

.ntf-flip-out {
	animation-name: ntfFlipOut;
	backface-visibility: visible !important;
}

/* Стили для управления расположением уведомлений */
.ntf-container {
	position: fixed;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	pointer-events: none;
}

.ntf-top-right,
.ntf-top-left,
.ntf-top-center {
	align-items: flex-start;
}

.ntf-bottom-right,
.ntf-bottom-left,
.ntf-bottom-center {
	align-items: flex-end;
}

.ntf-top-center,
.ntf-bottom-center {
	align-items: center;
}

.ntf-top-right {
	top: 0;
	right: 0;
}

.ntf-top-left {
	top: 0;
	left: 0;
}

.ntf-bottom-right {
	bottom: 0;
	right: 0;
}

.ntf-bottom-left {
	bottom: 0;
	left: 0;
}

.ntf-top-center {
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}

.ntf-bottom-center {
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}

.ntf-container .ntf {
	position: relative;
	margin: 10px;
	pointer-events: auto;
}

/* Стили для заголовка уведомления */
.ntf-header {
	display: flex;
	align-items: center;
	margin-bottom: 8px;
	font-weight: bold;
}

.ntf-icon {
	margin-right: 8px;
	font-size: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
}

.ntf-title {
	flex-grow: 1;
	margin-right: 8px;
}

.ntf-note {
	font-size: 12px;
	opacity: 0.8;
	font-weight: normal;
}

.ntf-message {
color:white;
}