/**
 * Hilaal Reactions.
 *
 * Every value is a custom property with a fallback, so the strip inherits the
 * host theme's palette where one is exposed — Hilaal's tokens are picked up
 * automatically — and still looks deliberate on a theme that exposes nothing.
 */

.chrreact {
	--chrreact-text: var(--chr-text, #2b3646);
	--chrreact-heading: var(--chr-heading, #0b1524);
	--chrreact-muted: var(--chr-muted, #596980);
	--chrreact-surface: var(--chr-surface, #fff);
	--chrreact-alt: var(--chr-bg-alt, #f4f6f8);
	--chrreact-border: var(--chr-border, #e3e7ec);
	--chrreact-radius: var(--chr-radius, 10px);
	--chrreact-accent: var(--chr-primary, #c8102e);

	margin: 2.5em 0;
	padding: 20px;
	border: 1px solid var(--chrreact-border);
	border-radius: var(--chrreact-radius);
	background: var(--chrreact-surface);
	color: var(--chrreact-text);
}

.chrreact *,
.chrreact *::before,
.chrreact *::after {
	box-sizing: border-box;
}

.chrreact__heading {
	margin: 0 0 14px;
	color: var(--chrreact-heading);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
}

/* The buttons -------------------------------------------------------------- */

.chrreact__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.chrreact__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 8px 14px;
	border: 1px solid var(--chrreact-border);
	border-radius: 999px;
	background: var(--chrreact-alt);
	color: var(--chrreact-text);
	font: inherit;
	font-size: 0.9375rem;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease, transform 0.15s ease;
}

.chrreact__button:hover:not( [disabled] ) {
	border-color: var(--chrreact-accent);
	background: var(--chrreact-surface);
}

.chrreact__button:focus-visible {
	outline: 2px solid var(--chrreact-accent);
	outline-offset: 2px;
}

.chrreact__button:active:not( [disabled] ) {
	transform: translateY(1px);
}

.chrreact__button[disabled] {
	opacity: 0.55;
	cursor: not-allowed;
}

.chrreact__button.is-picked {
	border-color: var(--chrreact-accent);
	background: color-mix( in srgb, var(--chrreact-accent) 10%, transparent );
	font-weight: 600;
}

.chrreact__icon {
	display: inline-flex;
	color: var(--chrreact-muted);
	transition: color 0.15s ease, transform 0.2s ease;
}

.chrreact__button:hover:not( [disabled] ) .chrreact__icon,
.chrreact__button.is-picked .chrreact__icon {
	color: var(--chrreact-accent);
}

.chrreact__button.is-picked .chrreact__icon {
	transform: scale(1.1);
}

.chrreact__count {
	color: var(--chrreact-muted);
	font-variant-numeric: tabular-nums;
	font-size: 0.875em;
}

.chrreact__button.is-picked .chrreact__count {
	color: var(--chrreact-accent);
}

/* The minimal style keeps the icon and the figure and drops the rest. */

.chrreact--minimal {
	padding: 0;
	border: 0;
	background: none;
}

.chrreact--minimal .chrreact__heading {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--chrreact-muted);
}

.chrreact--minimal .chrreact__button {
	padding: 6px 10px;
	background: none;
}

/* The breakdown ------------------------------------------------------------ */

.chrreact__bars {
	display: grid;
	gap: 8px;
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--chrreact-border);
}

.chrreact__bar {
	display: grid;
	grid-template-columns: minmax(70px, 1fr) 3fr auto;
	align-items: center;
	gap: 12px;
	font-size: 0.875rem;
}

.chrreact__bar-label {
	color: var(--chrreact-muted);
}

.chrreact__bar-track {
	height: 8px;
	border-radius: 999px;
	background: var(--chrreact-alt);
	overflow: hidden;
}

.chrreact__bar-fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--chrreact-accent);
	transition: width 0.4s ease;
}

.chrreact__bar-share {
	color: var(--chrreact-muted);
	font-variant-numeric: tabular-nums;
}

/* Footnotes ---------------------------------------------------------------- */

.chrreact__total,
.chrreact__locked,
.chrreact__status {
	margin: 12px 0 0;
	color: var(--chrreact-muted);
	font-size: 0.875rem;
}

.chrreact__status:empty {
	display: none;
}

.chrreact.is-busy .chrreact__list {
	opacity: 0.6;
	pointer-events: none;
}

/* The archive summary ------------------------------------------------------ */

.chrreact-summary {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 8px 0 0;
	color: var(--chr-muted, #596980);
	font-size: 0.8125rem;
}

.chrreact-summary__icon {
	display: inline-flex;
}

.chrreact-summary__icon svg {
	width: 16px;
	height: 16px;
}

/* Narrow columns ----------------------------------------------------------- */

@media (max-width: 480px) {
	.chrreact {
		padding: 16px;
	}

	.chrreact__button {
		flex: 1 1 auto;
		justify-content: center;
		padding: 8px 10px;
	}

	.chrreact__label {
		display: none;
	}

	.chrreact__bar {
		grid-template-columns: minmax(60px, 1fr) 2fr auto;
		gap: 8px;
	}
}

/* Readers who have asked for less movement --------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.chrreact__button,
	.chrreact__icon,
	.chrreact__bar-fill {
		transition: none;
	}

	.chrreact__button.is-picked .chrreact__icon {
		transform: none;
	}
}
