/**
 * Ratings CSS
 * Star rating widget and feedback modal styles
 *
 * @package WPBlogsAndPages
 * @since 1.0.0
 */

/* ==========================================================================
   RATINGS COLOR TOKENS
   These extend the theme's design tokens for rating-specific colors.
   Defined here as this component needs semantic colors not in the base theme.
   ========================================================================== */

:root {
	--color-rating-star: #fbbf24;
	--color-rating-star-empty: var(--color-neutral-300);
	--color-rating-success: #065f46;
	--color-rating-success-bg: #d1fae5;
	--color-rating-success-border: #6ee7b7;
	--color-rating-error: #dc2626;
	--color-rating-warning: #f59e0b;
	--color-rating-warning-bg: #fef3c7;
}

/* ==========================================================================
   STAR RATING WIDGET
   ========================================================================== */

.bap_give_review {
	margin: var(--spacing-10) 0;
}

.bap_give_review_wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-3);
}

.star-container {
	display: inline-flex;
	gap: var(--spacing-2);
}

.bap_give_review .bap_star {
	stroke-width: 1;
}

.bap_comment_response {
	min-height: 20px;
	font-size: var(--font-size-sm);
}

.bap_comment_response.fb-success {
	color: var(--color-rating-success);
}

.bap_comment_response.fb-error {
	color: var(--color-rating-error);
}

/* Success message */
.fb-rating-success {
	display: flex;
	align-items: center;
	gap: var(--spacing-2);
	padding: var(--spacing-3) var(--spacing-4);
	background: var(--color-rating-success-bg);
	border: 1px solid var(--color-rating-success-border);
	border-radius: var(--border-radius);
	color: var(--color-rating-success);
	font-size: var(--font-size-sm);
}

.fb-rating-success svg {
	flex-shrink: 0;
}

/* Responsive: horizontal layout on desktop */
@media (min-width: 768px) {
	.bap_give_review_wrapper {
		flex-direction: row;
		justify-content: center;
	}
}

/* ==========================================================================
   FEEDBACK MODAL
   ========================================================================== */

/* Overlay */
.fb-rating-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.fb-rating-modal-overlay.visible {
	opacity: 1;
	visibility: visible;
}

/* Prevent body scroll when modal is open */
body.fb-modal-open {
	overflow: hidden;
}

/* Modal container */
.fb-rating-modal {
	background: var(--color-white);
	border-radius: var(--border-radius-lg);
	padding: var(--spacing-8);
	max-width: 420px;
	width: 90%;
	position: relative;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
	transform: scale(0.95);
	transition: transform 0.2s ease;
}

.fb-rating-modal-overlay.visible .fb-rating-modal {
	transform: scale(1);
}

/* Close button */
.fb-modal-close {
	position: absolute;
	top: var(--spacing-4);
	right: var(--spacing-4);
	width: 32px;
	height: 32px;
	padding: 0;
	border: none;
	background: transparent;
	color: var(--color-neutral-500);
	cursor: pointer;
	border-radius: var(--border-radius);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.15s ease, background 0.15s ease;
}

.fb-modal-close:hover {
	color: var(--color-neutral-900);
	background: var(--color-neutral-200);
}

.fb-modal-close svg {
	width: 20px;
	height: 20px;
}

/* Modal icon */
.fb-modal-icon {
	width: 48px;
	height: 48px;
	background: var(--color-rating-warning-bg);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto var(--spacing-5);
}

.fb-modal-icon svg {
	width: 24px;
	height: 24px;
	color: var(--color-rating-warning);
}

/* Modal title and description */
.fb-rating-modal h3 {
	text-align: center;
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-semibold);
	margin-bottom: var(--spacing-2);
	color: var(--color-neutral-900);
}

.fb-rating-modal p {
	text-align: center;
	color: var(--color-neutral-500);
	margin-bottom: var(--spacing-5);
	font-size: var(--font-size-sm);
}

/* Modal stars display */
.fb-modal-stars {
	display: flex;
	justify-content: center;
	gap: var(--spacing-1);
	margin-bottom: var(--spacing-5);
}

.fb-modal-star {
	width: 20px;
	height: 20px;
	color: var(--color-rating-star-empty);
	cursor: default;
}

.fb-modal-star svg {
	width: 100%;
	height: 100%;
}

.fb-modal-star.fb-star-filled {
	color: var(--color-star);
}

/* Textarea */
.fb-modal-textarea {
	width: 100%;
	min-height: 100px;
	padding: var(--spacing-3);
	border: 1px solid var(--color-border);
	border-radius: var(--border-radius);
	font-family: inherit;
	font-size: var(--font-size-sm);
	resize: vertical;
	margin-bottom: var(--spacing-3);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.fb-modal-textarea:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px var(--color-ring-subtle);
}

.fb-modal-textarea::placeholder {
	color: var(--color-neutral-500);
}

.fb-modal-textarea.error {
	border-color: var(--color-rating-error);
}

.fb-modal-textarea.error:focus {
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}

/* Error message */
.fb-modal-error {
	font-size: var(--font-size-sm);
	color: var(--color-rating-error);
	text-align: center;
	min-height: 20px;
	margin-bottom: var(--spacing-3);
	opacity: 0;
	transition: opacity 0.15s ease;
}

.fb-modal-error.visible {
	opacity: 1;
}

/* Modal actions */
.fb-modal-actions {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-3);
}

/* Submit button */
.fb-modal-submit {
	background: var(--color-primary);
	color: var(--color-primary-foreground);
	border: none;
	padding: var(--spacing-3) var(--spacing-6);
	border-radius: var(--border-radius);
	font-size: var(--font-size-base);
	font-weight: var(--font-weight-medium);
	cursor: pointer;
	transition: background 0.15s ease;
}

.fb-modal-submit:hover {
	background: var(--color-primary-hover);
}

.fb-modal-submit:disabled {
	background: var(--color-neutral-400);
	cursor: not-allowed;
}
