.frp-toast {
	--frp-accent: #34d399;
	--frp-bg: #10161d;
	--frp-border: #1f2b36;
	--frp-text: #e6edf3;
	--frp-text-dim: #8b98a5;

	position: fixed;
	right: 1em;
	bottom: 1em;
	left: auto;
	z-index: 999999;
	width: min(360px, calc(100vw - 2em));
	background: var(--frp-bg);
	color: var(--frp-text);
	border: 1px solid var(--frp-border);
	border-radius: 14px;
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
	padding: 1em 2.5em 1em 1.1em;
	font-family: inherit;
	box-sizing: border-box;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.25s ease, transform 0.25s ease;
	pointer-events: none;
}

.frp-toast * {
	box-sizing: border-box;
}

.frp-toast--visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

:is(html[data-theme="light"],body[data-theme="light"],html.light-mode,body.light-mode,html.is-light,body.is-light,html.rb-light-mode,body.rb-light-mode,html.tsnfi-force-light,body.tsnfi-force-light) .frp-toast {
	--frp-accent: #059669 !important;
	--frp-bg: #ffffff !important;
	--frp-border: #dde3e8 !important;
	--frp-text: #10161d !important;
	--frp-text-dim: #5b6572 !important;
}

.frp-toast__title {
	display: block;
	font-size: 1.05em;
	font-weight: 800;
	font-style: italic;
	color: var(--frp-accent);
	margin-bottom: 0.25em;
}

.frp-toast__text {
	margin: 0 0 0.75em;
	font-size: 0.88em;
	color: var(--frp-text-dim);
	line-height: 1.4;
}

.frp-toast__cta {
	display: inline-block;
	background: linear-gradient(180deg, var(--frp-accent), #059669);
	color: #04150e !important;
	text-decoration: none;
	font-weight: 800;
	font-size: 0.9em;
	padding: 0.55em 1.1em;
	border-radius: 10px;
}

.frp-toast__close {
	position: absolute;
	top: 0.4em;
	right: 0.5em;
	background: none;
	border: none;
	color: var(--frp-text-dim);
	font-size: 1.4em;
	line-height: 1;
	cursor: pointer;
	padding: 0.2em 0.4em;
}

@media (max-width: 480px) {
	.frp-toast {
		right: 0.6em;
		bottom: 0.6em;
		left: 0.6em;
		width: auto;
	}
}
