/* NeoAnabolics COA Library — all selectors are plugin-prefixed. */
.neo-coa-library,
.neo-coa-library *,
.neo-coa-product-box,
.neo-coa-product-box * {
	box-sizing: border-box;
}

.neo-coa-library {
	width: 100%;
	padding: clamp(24px, 4vw, 56px);
	background: var(--neo-coa-library-bg, #fff);
	font-family: var(--neo-coa-body-font, "Inter", Arial, sans-serif);
	font-size: var(--neo-coa-body-size, 14px);
	color: var(--neo-coa-text, #122746);
}

.neo-coa-library__heading {
	margin: 0 0 32px;
	font-family: var(--neo-coa-title-font, "Inter Tight", Arial, sans-serif);
	font-size: clamp(28px, 4vw, 48px);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.025em;
	color: var(--neo-coa-heading, #06152f);
}

.neo-coa-library__empty {
	padding: 30px;
	border: 1px solid var(--neo-coa-border, #c9d3d8);
	border-radius: var(--neo-coa-radius, 20px);
	background: var(--neo-coa-card-bg, #dfe4e6);
	color: var(--neo-coa-muted, #5d6d82);
}

.neo-coa-grid {
	display: grid;
	grid-template-columns: repeat(var(--neo-coa-shortcode-columns, var(--neo-coa-columns, 4)), minmax(0, 1fr));
	gap: var(--neo-coa-gap, 24px);
	align-items: stretch;
}

.neo-coa-card {
	display: flex;
	min-width: 0;
	min-height: 365px;
	flex-direction: column;
	padding: clamp(24px, 2.6vw, 32px);
	border: 1px solid var(--neo-coa-border, #c9d3d8);
	border-radius: var(--neo-coa-radius, 20px);
	background: var(--neo-coa-card-bg, #dfe4e6);
	box-shadow: 0 18px 40px -32px rgba(6, 21, 47, 0.36);
	color: var(--neo-coa-text, #122746);
	overflow: hidden;
}

.neo-coa-card__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	font-size: 0.78em;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--neo-coa-muted, #5d6d82);
}

.neo-coa-card__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 5px 13px;
	border-radius: 999px;
	background: var(--neo-coa-badge-bg, #eaf2f8);
	font-size: 1.05em;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--neo-coa-button-bg, #2858bd);
}

.neo-coa-card__count {
	margin-top: 18px;
	font-size: 0.82em;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--neo-coa-muted, #5d6d82);
}

.neo-coa-card__title {
	margin: 22px 0 26px;
	font-family: var(--neo-coa-title-font, "Inter Tight", Arial, sans-serif);
	font-size: var(--neo-coa-title-size, 26px);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.02em;
	text-transform: none;
	color: var(--neo-coa-heading, #06152f);
	overflow-wrap: anywhere;
}

.neo-coa-card__reports {
	margin-top: auto;
}

.neo-coa-report {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 17px 0;
	border-top: 1px solid var(--neo-coa-border, #c9d3d8);
	border-top: 1px solid color-mix(in srgb, var(--neo-coa-border, #c9d3d8) 82%, transparent);
}

.neo-coa-report:first-child {
	border-top: 0;
}

.neo-coa-report__details {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 4px;
}

.neo-coa-report__details strong {
	font-family: var(--neo-coa-title-font, "Inter Tight", Arial, sans-serif);
	font-size: 1.02em;
	font-weight: 750;
	line-height: 1.25;
	color: var(--neo-coa-heading, #06152f);
}

.neo-coa-report__details span,
.neo-coa-report__details small {
	display: block;
	font-size: 0.76em;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--neo-coa-muted, #5d6d82);
}

.neo-coa-report__button,
.neo-coa-product-button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: 40px;
	padding: 9px 17px;
	border: 1px solid var(--neo-coa-button-bg, #2858bd) !important;
	border-radius: 999px;
	background: var(--neo-coa-button-bg, #2858bd) !important;
	box-shadow: none !important;
	font-family: var(--neo-coa-body-font, "Inter", Arial, sans-serif);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	text-decoration: none !important;
	text-transform: none;
	white-space: nowrap;
	color: var(--neo-coa-button-text, #fff) !important;
	-webkit-text-fill-color: var(--neo-coa-button-text, #fff) !important;
	transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.neo-coa-report__button:hover,
.neo-coa-report__button:focus-visible,
.neo-coa-product-button:hover,
.neo-coa-product-button:focus-visible {
	border-color: var(--neo-coa-button-hover, #173e89) !important;
	background: var(--neo-coa-button-hover, #173e89) !important;
	color: var(--neo-coa-button-text, #fff) !important;
	-webkit-text-fill-color: var(--neo-coa-button-text, #fff) !important;
	transform: translateY(-1px);
}

.neo-coa-report__button--disabled {
	border-color: var(--neo-coa-border, #c9d3d8) !important;
	background: transparent !important;
	color: var(--neo-coa-muted, #5d6d82) !important;
	-webkit-text-fill-color: var(--neo-coa-muted, #5d6d82) !important;
	cursor: default;
}

/* Single-product panel */
.neo-coa-product-box {
	width: 100%;
	margin: 18px 0 20px;
	padding: 18px;
	border: 1px solid var(--neo-coa-border, #c9d3d8);
	border-radius: min(var(--neo-coa-radius, 20px), 16px);
	background: var(--neo-coa-card-bg, #dfe4e6);
	font-family: var(--neo-coa-body-font, "Inter", Arial, sans-serif);
	color: var(--neo-coa-text, #122746);
	clear: both;
}

.neo-coa-product-box__heading {
	margin: 0 0 12px;
	font-family: var(--neo-coa-title-font, "Inter Tight", Arial, sans-serif);
	font-size: 14px;
	font-weight: 750;
	line-height: 1.25;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--neo-coa-heading, #06152f);
}

.neo-coa-product-box__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.neo-coa-product-box__message {
	display: block;
	font-size: 13px;
	line-height: 1.5;
	color: var(--neo-coa-muted, #5d6d82);
}

@media (max-width: 1100px) {
	.neo-coa-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.neo-coa-library {
		padding: 22px 16px;
	}

	.neo-coa-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.neo-coa-card {
		min-height: 0;
		padding: 24px 20px;
	}

	.neo-coa-card__title {
		margin-bottom: 20px;
	}

	.neo-coa-report {
		align-items: flex-start;
	}

	.neo-coa-report__button {
		padding-right: 14px;
		padding-left: 14px;
	}
}
