.pr-vote-widget {
	position: relative;
	display: inline-flex;
	align-items: center;
	margin: 2px 0;
	vertical-align: middle;
	letter-spacing: 0;
}

.pr-vote-controls {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 2px;
	border: 1px solid var(--color-border, #d2dcdf);
	border-radius: var(--radius-sm, 4px);
	background: #f0f4f4;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .78);
	white-space: nowrap;
}

button.pr-vote {
	--pr-particle: #b96877;
	box-sizing: border-box;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-width: 34px;
	min-height: 22px;
	margin: 0;
	padding: 2px 5px;
	border: 1px solid transparent;
	border-radius: 3px;
	background: transparent;
	color: #627278;
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	line-height: 16px;
	white-space: nowrap;
	cursor: pointer;
	touch-action: manipulation;
	transition: color var(--transition, 160ms ease), background-color var(--transition, 160ms ease), border-color var(--transition, 160ms ease), box-shadow var(--transition, 160ms ease), transform var(--transition, 160ms ease);
}

button.pr-vote--like .pr-icon {
	color: #a75464;
}

button.pr-vote--dislike {
	--pr-particle: #806c7c;
}

button.pr-vote--dislike .pr-icon {
	color: #786878;
}

button.pr-vote--like:hover:not(:disabled):not([aria-disabled="true"]) {
	border-color: #dfb8c0;
	background: #f9e9ec;
	color: #92394b;
}

button.pr-vote--dislike:hover:not(:disabled):not([aria-disabled="true"]) {
	border-color: #cbbcc9;
	background: #eee8ee;
	color: #584854;
}

button.pr-vote[aria-pressed="true"] {
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65), 0 1px 2px rgba(31, 43, 54, .06);
}

button.pr-vote--like[aria-pressed="true"] {
	border-color: #d8a4ae;
	background: #f2dce1;
	color: #8c3043;
}

button.pr-vote--dislike[aria-pressed="true"] {
	border-color: #c1afbd;
	background: #e9e2e9;
	color: #554451;
}

button.pr-vote:active:not(:disabled):not([aria-disabled="true"]) {
	transform: translateY(1px) scale(.98);
}

button.pr-vote:focus-visible {
	outline: 2px solid var(--color-accent, #608385);
	outline-offset: 2px;
}

.pr-icon {
	width: 14px;
	height: 14px;
	flex: 0 0 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

button.pr-vote--like[aria-pressed="true"] .pr-icon {
	fill: currentColor;
	color: inherit;
}

button.pr-vote--dislike[aria-pressed="true"] .pr-icon {
	color: inherit;
}

.pr-count {
	min-width: 1ch;
	color: var(--color-text-muted, #5c6c73);
	font-variant-numeric: tabular-nums;
	line-height: 16px;
}

button.pr-vote[aria-pressed="true"] .pr-count {
	color: inherit;
}

button.pr-vote[aria-disabled="true"]:not([aria-pressed="true"]) {
	border-color: transparent;
	background: transparent;
	color: #98a4a9;
	cursor: help;
	transform: none;
}

button.pr-vote[aria-disabled="true"]:not([aria-pressed="true"]) .pr-icon {
	color: inherit;
}

button.pr-vote[aria-pressed="true"][aria-disabled="true"] {
	opacity: .68;
	cursor: help;
	filter: saturate(.55);
}

.pr-vote-widget[aria-busy="true"] button.pr-vote[data-pr-was-disabled="0"] {
	opacity: .58;
	cursor: progress;
}

.pr-toast {
	box-sizing: border-box;
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: 10020;
	max-width: min(360px, calc(100vw - 32px));
	padding: 8px 11px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--radius-sm, 4px);
	background: #334247;
	box-shadow: 0 6px 18px rgba(24, 35, 40, .18);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	line-height: 18px;
	letter-spacing: 0;
	opacity: 0;
	pointer-events: none;
	transform: translateY(6px);
	transition: opacity 160ms ease, transform 160ms ease;
}

.pr-toast--warning {
	border-left: 3px solid #d7a64a;
}

.pr-toast--error {
	border-left: 3px solid #c65d68;
}

.pr-toast--success {
	border-left: 3px solid var(--color-accent, #608385);
}

.pr-toast--visible {
	opacity: 1;
	transform: translateY(0);
}

.pr-particle {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 2;
	display: block;
	width: 10px;
	height: 10px;
	margin: -5px;
	color: var(--pr-particle);
	font-size: 9px;
	font-style: normal;
	font-weight: 700;
	line-height: 10px;
	text-align: center;
	opacity: .82;
	pointer-events: none;
	animation: pr-particle-fly 480ms cubic-bezier(.16, .84, .34, 1) both;
}

.pr-particle--dislike {
	font-size: 8px;
}

button.pr-vote.pr-is-burst .pr-icon {
	animation: pr-heart-pop 340ms cubic-bezier(.2, .9, .25, 1.35) both;
}

@keyframes pr-particle-fly {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(.35) rotate(0deg);
	}
	20% {
		opacity: .74;
	}
	100% {
		opacity: 0;
		transform: translate(calc(-50% + var(--pr-x)), calc(-50% + var(--pr-y))) scale(.72) rotate(var(--pr-rotate));
	}
}

@keyframes pr-heart-pop {
	0%, 100% {
		transform: scale(1);
	}
	48% {
		transform: scale(1.14) rotate(-4deg);
	}
}

.pr-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

@media (max-width: 600px) {
	.post_controls .pr-vote-widget {
		flex: 0 0 auto;
		margin: 0;
	}

	.pr-vote-controls {
		gap: 3px;
	}

	button.pr-vote {
		min-width: 38px;
		min-height: 30px;
		padding: 6px 7px;
	}

	.pr-icon {
		width: 15px;
		height: 15px;
		flex-basis: 15px;
	}

	.pr-toast {
		right: 50%;
		bottom: max(12px, env(safe-area-inset-bottom));
		width: max-content;
		transform: translate(50%, 6px);
	}

	.pr-toast--visible {
		transform: translate(50%, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	button.pr-vote,
	.pr-toast,
	.pr-particle,
	button.pr-vote.pr-is-burst .pr-icon {
		animation: none !important;
		transition: none;
	}
}
