.irsf-push-bell {
	position: fixed;
	z-index: 999997;
	right: 20px;
	bottom: 20px;
	min-height: 48px;
	max-width: calc(100vw - 32px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 0 16px;
	color: #fff;
	background: #2f1c70;
	border: 0;
	border-radius: 999px;
	box-shadow: 0 8px 25px rgba(0, 0, 0, 0.24);
	font: 800 13px/1 Arial, sans-serif;
	cursor: pointer;
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.irsf-push-bell:hover {
	transform: translateY(-2px);
	box-shadow: 0 11px 29px rgba(0, 0, 0, 0.28);
}

.irsf-push-bell:focus-visible {
	outline: 3px solid rgba(47, 28, 112, 0.28);
	outline-offset: 3px;
}

.irsf-push-bell:disabled {
	opacity: 0.68;
	cursor: wait;
}

.irsf-push-bell.is-active {
	background: #16734a;
}

.irsf-push-bell svg {
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	fill: currentColor;
}

.irsf-push-bell span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.irsf-push-test {
	position: fixed;
	z-index: 999997;
	right: 20px;
	bottom: 76px;
	min-height: 38px;
	padding: 0 13px;
	color: #2f1c70;
	background: #fff;
	border: 1px solid #2f1c70;
	border-radius: 999px;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.16);
	font: 700 12px/1 Arial, sans-serif;
	cursor: pointer;
}

.irsf-push-test:hover,
.irsf-push-test:focus-visible {
	color: #fff;
	background: #2f1c70;
}

.irsf-push-test:disabled {
	opacity: 0.68;
	cursor: wait;
}

.irsf-push-prompt {
	position: fixed;
	z-index: 999998;
	right: 20px;
	bottom: 82px;
	width: min(430px, calc(100vw - 28px));
	display: grid;
	grid-template-columns: 48px 1fr auto;
	align-items: center;
	gap: 14px;
	padding: 18px;
	color: #17181b;
	background: #fff;
	border: 1px solid #ddd9e8;
	border-top: 4px solid #2f1c70;
	border-radius: 9px;
	box-shadow: 0 24px 70px rgba(20, 20, 25, 0.2);
	font-family: Arial, sans-serif;
}

.irsf-push-mark {
	width: 48px;
	height: 48px;
	display: grid;
	place-items: center;
	color: #fff;
	background: #2f1c70;
	border-radius: 50%;
	font-size: 11px;
	font-weight: 900;
}

.irsf-push-prompt strong {
	display: block;
	font: 700 16px/1.25 Georgia, serif;
}

.irsf-push-prompt p {
	margin: 5px 0 0;
	color: #5f6268;
	font-size: 12px;
	line-height: 1.45;
}

.irsf-push-allow {
	padding: 11px 14px;
	color: #fff;
	background: #2f1c70;
	border: 0;
	border-radius: 5px;
	font-size: 12px;
	font-weight: 750;
	cursor: pointer;
}

.irsf-push-allow:disabled {
	opacity: 0.65;
	cursor: wait;
}

.irsf-push-close {
	position: absolute;
	top: 2px;
	right: 5px;
	padding: 5px;
	color: #74777d;
	background: transparent;
	border: 0;
	font-size: 20px;
	cursor: pointer;
}

.irsf-push-status {
	position: fixed;
	z-index: 999999;
	right: 20px;
	bottom: 82px;
	width: min(360px, calc(100vw - 32px));
	padding: 13px 15px;
	color: #17181b;
	background: #fff;
	border: 1px solid #ddd9e8;
	border-left: 4px solid #2f1c70;
	border-radius: 7px;
	box-shadow: 0 12px 34px rgba(0, 0, 0, 0.22);
	font: 13px/1.45 Arial, sans-serif;
}

.irsf-push-status.is-success {
	border-left-color: #16734a;
}

.irsf-push-status.is-error {
	border-left-color: #b32d2e;
}

@media (max-width: 600px) {
	.irsf-push-prompt {
		left: 14px;
		right: 14px;
		bottom: 76px;
		grid-template-columns: 42px 1fr;
	}

	.irsf-push-mark {
		width: 42px;
		height: 42px;
	}

	.irsf-push-allow {
		grid-column: 1 / -1;
		width: 100%;
	}

	.irsf-push-bell {
		right: 14px;
		bottom: 14px;
		min-height: 46px;
	}

	.irsf-push-test {
		right: 14px;
		bottom: 70px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.irsf-push-bell {
		transition: none;
	}
}
