/* Ultimate Push Notifications — opt-in surfaces. Kept minimal and theme-neutral. */

.upn-prompt {
	position: fixed;
	left: 50%;
	transform: translateX(-50%);
	z-index: 99998;
	max-width: 520px;
	width: calc(100% - 32px);
	box-sizing: border-box;
	background: #fff;
	color: #1d2327;
	border-radius: 10px;
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
	padding: 16px 18px;
	font: 15px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	display: flex;
	gap: 14px;
	align-items: flex-start;
	animation: upn-prompt-in 0.25s ease-out;
}
.upn-prompt--bottom { bottom: 20px; }
.upn-prompt--top    { top: 20px; }
.upn-prompt__icon {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #f0f0f1;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
}
.upn-prompt__body { flex: 1 1 auto; min-width: 0; }
.upn-prompt__title { font-weight: 600; margin: 0 0 4px; font-size: 16px; }
.upn-prompt__text { margin: 0 0 12px; color: #50575e; }
.upn-prompt__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.upn-prompt__btn {
	appearance: none;
	border: 0;
	border-radius: 6px;
	padding: 8px 16px;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.upn-prompt__btn--allow { background: #2271b1; color: #fff; }
.upn-prompt__btn--allow:hover { background: #135e96; }
.upn-prompt__btn--later { background: transparent; color: #50575e; }
.upn-prompt__btn--later:hover { color: #1d2327; text-decoration: underline; }

@keyframes upn-prompt-in {
	from { opacity: 0; transform: translate(-50%, 12px); }
	to   { opacity: 1; transform: translate(-50%, 0); }
}

.upn-bell {
	position: fixed;
	z-index: 99997;
	bottom: 20px;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 0;
	cursor: pointer;
	color: #fff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.22);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.15s ease;
}
.upn-bell:hover { transform: scale(1.06); }
.upn-bell--bottom-right { right: 20px; }
.upn-bell--bottom-left  { left: 20px; }
.upn-bell svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.upn-bell--on::after {
	content: "";
	position: absolute;
	top: 10px;
	right: 10px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #00a32a;
	border: 2px solid #fff;
}

.upn-subscribe-button[data-upn-state="on"] { opacity: 0.85; }

@media (prefers-reduced-motion: reduce) {
	.upn-prompt { animation: none; }
	.upn-bell { transition: none; }
}
