:root {
	--rt-star: #F7BA06;
}

.rt-reviews-wrapper {
	--rt-border: color-mix(in srgb, currentColor 14%, transparent);
	--rt-radius: 10px;
}

/* ---------- Buttons (self-contained, doesn't rely on account.css) ---------- */
.rt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .7rem 1.4rem;
	border: none;
	border-radius: var(--rt-radius);
	font-size: .9rem;
	font-weight: 600;
	cursor: pointer;
	transition: opacity .15s ease, transform .1s ease;
}

.rt-btn--primary {
	background: var(--rt-star);
	color: #1a1408;
}

.rt-btn--primary:hover {
	opacity: .9;
}

.rt-btn--primary:active {
	transform: scale(.98);
}

.rt-btn--secondary {
	background: transparent;
	border: 1px solid var(--rt-border);
	color: inherit;
}

.rt-btn--secondary:hover {
	border-color: var(--rt-star);
	color: var(--rt-star);
}

.rt-btn--small {
	padding: .45rem 1rem;
	font-size: .82rem;
}

/* ---------- Rating badge (used standalone via rt_rating_badge(), e.g. on archive cards) ---------- */
.rt-rating-badge {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .4rem .9rem;
	margin-bottom: .8rem;
	border-radius: 100px;
	background: color-mix(in srgb, var(--rt-star) 10%, transparent);
	font-size: .9rem;
}

.rt-rating-badge .rt-rating-stars {
	color: var(--rt-star);
	font-size: .85rem;
	letter-spacing: .12rem;
}

.rt-rating-badge .rt-rating-number {
	font-weight: 800;
	font-size: 1rem;
}

.rt-rating-badge .rt-rating-count {
	opacity: .6;
	font-weight: 500;
	font-size: .8rem;
}

/* ---------- ONLY the star icons for any post rating ---------- */
.rt-rating-stars-only {
    margin-bottom: .5rem;
    font-size: .9rem;
}

.rt-rating-stars-only .rt-rating-stars {
	color: var(--rt-star);
	font-size: .85rem;
	letter-spacing: .12rem;
}

.rt-rating-stars-only .rt-rating-number {
	font-weight: 800;
	font-size: 1rem;
}

.rt-rating-stars-only .rt-rating-count {
	opacity: .6;
	font-weight: 500;
	font-size: .8rem;
}

/* ---------- Summary ---------- */
.rt-reviews-summary {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin-bottom: 1.4rem;
	font-weight: 600;
	font-size: 1.05rem;
}

.rt-avg-stars {
	color: var(--rt-star);
	font-size: .95rem;
	letter-spacing: .15rem;
}

.rt-avg-total {
	opacity: .55;
	font-weight: 400;
	font-size: .85rem;
}

/* ---------- Review form card ---------- */
.rt-review-form {
	background: color-mix(in srgb, currentColor 3%, transparent);
	border: 1px solid var(--rt-border);
	border-radius: 14px;
	padding: 1.4rem;
	margin-bottom: 1.8rem;
}

.rt-star-input {
	display: inline-flex;
	flex-direction: row-reverse;
	gap: .25rem;
	font-size: 1.5rem;
	margin-bottom: 1rem;
}

.rt-star-input input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.rt-star-input label {
	cursor: pointer;
	color: color-mix(in srgb, currentColor 20%, transparent);
	transition: color .1s ease, transform .1s ease;
}

.rt-star-input label:hover {
	transform: scale(1.12);
}

.rt-star-input input:checked ~ label,
.rt-star-input label:hover,
.rt-star-input label:hover ~ label {
	color: var(--rt-star);
}

.rt-review-form textarea,
.rt-reply-form textarea {
	display: block;
	width: 100%;
	padding: .8rem .9rem;
	border: 1px solid var(--rt-border);
	border-radius: var(--rt-radius);
	color: inherit;
	resize: vertical;
	font-size: .95rem;
	font-family: inherit;
	line-height: 1.5;
	margin-bottom: 1rem;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.rt-review-form textarea:focus,
.rt-reply-form textarea:focus {
	outline: none;
	border-color: var(--rt-star);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--rt-star) 20%, transparent);
}

.rt-reviews-login-prompt {
	opacity: .8;
	font-size: .9rem;
	margin-bottom: 1.4rem;
}

.rt-reviews-login-prompt a {
	color: var(--rt-star);
	font-weight: 600;
}

/* ---------- Review list ---------- */
.rt-no-reviews {
	opacity: .55;
	font-size: .9rem;
}

.rt-review-item {
	padding: 1.4rem 0;
	border-top: 1px solid var(--rt-border);
}

.rt-review-item:first-child {
	border-top: none;
	padding-top: 0;
}

.rt-review-header {
	display: flex;
	align-items: center;
	gap: .9rem;
	margin-bottom: .7rem;
}

.rt-review-header img {
	border-radius: 50%;
	flex-shrink: 0;
}

.rt-review-meta {
	display: flex;
	flex-direction: column;
	gap: .15rem;
}

.rt-review-author {
	font-size: .95rem;
}

.rt-review-stars {
	color: var(--rt-star);
	font-size: .75rem;
	letter-spacing: .12rem;
}

.rt-review-date {
	font-size: .75rem;
	opacity: .5;
}

.rt-review-content {
	margin: 0 0 .7rem;
	line-height: 1.55;
	font-size: .95rem;
}

.rt-review-replies {
	margin: 1rem 0 .8rem 2.4rem;
	padding-left: 1.1rem;
	border-left: 2px solid var(--rt-border);
}

.rt-review-reply {
	margin-bottom: 1rem;
	font-size: .9rem;
}

.rt-review-reply p {
	margin: .3rem 0 0;
	line-height: 1.5;
}

.rt-reply-toggle {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .4rem .9rem;
	background: transparent;
	border: 1px solid var(--rt-border);
	border-radius: 6px;
	color: inherit;
	opacity: .75;
	font-size: .8rem;
	font-weight: 600;
	cursor: pointer;
	transition: opacity .15s ease, border-color .15s ease;
}

.rt-reply-toggle:hover {
	opacity: 1;
	border-color: currentColor;
}

.rt-reply-form {
	margin-top: .8rem;
}

/* ---------- Messages ---------- */
.rt-form-message {
	font-size: .85rem;
	margin: 0 0 .8rem;
	min-height: 1.1rem;
}

.rt-form-message.is-error {
	color: #e05252;
}

.rt-form-message.is-success {
	color: #4caf7d;
}