/**
 * PeptiderPro design system — interaction tokens & state patterns.
 *
 * @package PeptiderPro
 */

:root {
	--pp-primary-soft: color-mix(in srgb, var(--pp-primary) 12%, transparent);
	--pp-accent-soft: color-mix(in srgb, var(--pp-accent) 14%, transparent);
	--pp-active-bg: color-mix(in srgb, var(--pp-primary) 10%, var(--pp-surface));
	--pp-active-border: color-mix(in srgb, var(--pp-primary) 42%, var(--pp-border));
	--pp-hover-bg: color-mix(in srgb, var(--pp-primary) 6%, var(--pp-surface));
	--pp-focus-ring: 0 0 0 3px color-mix(in srgb, var(--pp-accent) 35%, transparent);
	--pp-radius-sm: 8px;
	--pp-radius-lg: 16px;
	--pp-radius-xl: 22px;
	--pp-shadow-soft: 0 12px 32px color-mix(in srgb, var(--pp-dark) 6%, transparent);
	--pp-shadow-card: 0 1px 2px color-mix(in srgb, var(--pp-dark) 4%, transparent), 0 8px 24px color-mix(in srgb, var(--pp-dark) 6%, transparent);
	--pp-transition-fast: 0.18s cubic-bezier(0.16, 1, 0.3, 1);
	--pp-transition-base: 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Global focus visibility */
:where(a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
	outline: none;
	box-shadow: var(--pp-focus-ring);
}

/* Primary button states */
.pp-btn--primary:focus-visible {
	box-shadow: var(--pp-focus-ring), 0 8px 20px color-mix(in srgb, var(--pp-primary) 28%, transparent);
}

.pp-btn--primary:active {
	transform: translateY(0);
	background: color-mix(in srgb, var(--pp-primary) 88%, #000);
}

.pp-btn--ghost.is-active,
.pp-btn--ghost[aria-current="page"] {
	border-color: var(--pp-active-border);
	background: var(--pp-active-bg);
	color: var(--pp-primary);
	font-weight: 700;
}

.pp-btn--ghost:focus-visible {
	border-color: color-mix(in srgb, var(--pp-primary) 50%, var(--pp-border-strong));
}

/* Pagination & filter chips */
.page-numbers.current,
.lsc-reviews__page.is-current {
	background: var(--pp-primary) !important;
	color: #fff !important;
	border-color: var(--pp-primary) !important;
	box-shadow: 0 4px 14px color-mix(in srgb, var(--pp-primary) 28%, transparent);
	font-weight: 700;
}

.page-numbers:hover:not(.current),
.lsc-reviews__page:hover:not(.is-current) {
	background: var(--pp-hover-bg);
	border-color: var(--pp-active-border);
	color: var(--pp-primary);
}

/* Form controls */
:where(.pp-community-hub, .pp-community-panel, .pp-community-surface) :is(input, select, textarea) {
	min-height: 44px;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--pp-border-strong);
	border-radius: var(--pp-radius-sm);
	background: var(--pp-input-bg);
	color: var(--pp-text);
	font: inherit;
	transition: border-color var(--pp-transition-fast), box-shadow var(--pp-transition-fast), background var(--pp-transition-fast);
}

:where(.pp-community-hub, .pp-community-panel, .pp-community-surface) :is(input, select, textarea):focus-visible {
	border-color: color-mix(in srgb, var(--pp-primary) 55%, var(--pp-border-strong));
	box-shadow: var(--pp-focus-ring);
}
