/*
 * Търсене и оценяване.
 */

.duk-search,
.duk-rating {
	--duk-accent: #3F5E43;
	--duk-line: color-mix(in srgb, var(--duk-accent) 28%, transparent);
	--duk-soft: color-mix(in srgb, var(--duk-accent) 7%, transparent);
	--duk-star: #d8a11f;
}

@supports not (color: color-mix(in srgb, red, blue)) {
	.duk-search,
	.duk-rating {
		--duk-line: rgba(63, 94, 67, .28);
		--duk-soft: rgba(63, 94, 67, .07);
	}
}

/* ---------- формата ---------- */

.duk-search {
	margin: 2rem 0;
}

.duk-search-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin: 0 0 .9rem;
}

.duk-search-text {
	flex: 1 1 14rem;
	min-width: 0;
	font: inherit;
	font-size: 1rem;
	min-height: 48px;
	padding: 0 .8rem;
	border: 1px solid var(--duk-line);
	border-radius: 6px;
	background: transparent;
	color: inherit;
}

.duk-search-go {
	font: inherit;
	font-size: .95rem;
	font-weight: 700;
	min-height: 48px;
	padding: 0 1.3rem;
	color: #fff;
	background: var(--duk-accent);
	border: 0;
	border-radius: 6px;
	cursor: pointer;
}

.duk-search-ingredients {
	display: block;
	position: relative;
}

.duk-search-ingredients > label,
.duk-search-filter label,
.duk-search-actions label {
	display: block;
	font-size: .68rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--duk-accent);
	margin-bottom: .3rem;
}

.duk-search-ing-input {
	width: 100%;
	font: inherit;
	font-size: .95rem;
	min-height: 44px;
	padding: 0 .7rem;
	border: 1px solid var(--duk-line);
	border-radius: 6px;
	background: transparent;
	color: inherit;
}

.duk-search-hint {
	margin: .3rem 0 0;
	font-size: .82rem;
	opacity: .7;
}

/* ---------- чиповете ---------- */

.duk-chips:not(:empty) {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin-bottom: .5rem;
}

.duk-chip {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .9rem;
	padding: .3rem .3rem .3rem .7rem;
	background: var(--duk-soft);
	border: 1px solid var(--duk-line);
	border-radius: 999px;
}

.duk-chip-remove {
	font: inherit;
	font-size: 1.1rem;
	line-height: 1;
	min-width: 28px;
	min-height: 28px;
	color: inherit;
	opacity: .6;
	background: none;
	border: 0;
	cursor: pointer;
}

.duk-chip-remove:hover {
	opacity: 1;
	color: #b32d2e;
}

/* ---------- подсказките ---------- */

.duk-search-suggest {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 20;
	list-style: none;
	margin: .2rem 0 0;
	padding: 0;
	max-height: 16rem;
	overflow-y: auto;
	background: #fff;
	border: 1px solid var(--duk-line);
	border-radius: 6px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .12);
}

.duk-search-suggest[hidden] {
	display: none;
}

.duk-search-suggest li {
	padding: .55rem .8rem;
	cursor: pointer;
	color: #111;
}

.duk-search-suggest li:hover {
	background: var(--duk-soft);
}

/* ---------- филтрите ---------- */

.duk-search-filters {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: .7rem;
	margin-bottom: .9rem;
}

.duk-search-filter {
	margin: 0;
}

.duk-search-filter select,
.duk-search-order {
	width: 100%;
	font: inherit;
	font-size: .9rem;
	min-height: 44px;
	padding: 0 .5rem;
	border: 1px solid var(--duk-line);
	border-radius: 6px;
	background: transparent;
	color: inherit;
}

.duk-search-actions {
	align-items: flex-end;
}

.duk-search-actions label {
	margin: 0;
}

.duk-search-order {
	width: auto;
	min-width: 12rem;
}

.duk-search-clear {
	font: inherit;
	font-size: .85rem;
	min-height: 44px;
	padding: 0 .9rem;
	color: inherit;
	background: transparent;
	border: 1px solid var(--duk-line);
	border-radius: 6px;
	cursor: pointer;
}

/* ---------- резултатите ---------- */

.duk-search-count:not(:empty) {
	margin: 0 0 .8rem;
	font-size: .9rem;
	opacity: .75;
}

.duk-search-results {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
	gap: 1.2rem;
}

.duk-search-results[aria-busy="true"] {
	opacity: .55;
}

.duk-result {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	color: inherit;
	text-decoration: none;
}

.duk-result img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 8px;
}

.duk-result-title {
	font-weight: 600;
	line-height: 1.3;
}

.duk-result:hover .duk-result-title {
	color: var(--duk-accent);
}

.duk-result-meta {
	font-size: .82rem;
	opacity: .7;
}

.duk-search-more {
	text-align: center;
	margin: 1.5rem 0 0;
}

.duk-search-more-button {
	font: inherit;
	font-size: .95rem;
	font-weight: 600;
	min-height: 48px;
	padding: 0 1.6rem;
	color: var(--duk-accent);
	background: transparent;
	border: 1px solid var(--duk-accent);
	border-radius: 999px;
	cursor: pointer;
}

/* ---------- звездите ---------- */

.duk-rating {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem;
	margin: 1.5rem 0;
}

.duk-rating-stars {
	display: inline-flex;
	gap: .1rem;
}

.duk-star {
	font-size: 1.6rem;
	line-height: 1;

	/*
	 * Звездите са едри и с разстояние: натискат се с палец, а грешен
	 * натиск тук значи грешна оценка, която остава.
	 */
	min-width: 44px;
	min-height: 44px;
	color: var(--duk-line);
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	transition: color .12s ease;
}

.duk-star:hover,
.duk-star.is-on {
	color: var(--duk-star);
}

.duk-star:focus-visible {
	outline: 2px solid var(--duk-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

.duk-rating-summary {
	font-size: .95rem;
}

.duk-rating-votes {
	opacity: .7;
	font-size: .88rem;
}

.duk-rating-status:not(:empty) {
	font-size: .85rem;
	color: var(--duk-accent);
}

/* ---------- фокус ---------- */

.duk-search input:focus-visible,
.duk-search select:focus-visible,
.duk-search button:focus-visible {
	outline: 2px solid var(--duk-accent);
	outline-offset: 2px;
}

/* ---------- тъмна тема ---------- */

@media (prefers-color-scheme: dark) {
	.duk-search,
	.duk-rating {
		--duk-line: rgba(255, 255, 255, .18);
		--duk-soft: rgba(255, 255, 255, .06);
		--duk-accent: #8fbe96;
	}

	.duk-search-go {
		color: #14150f;
	}

	.duk-search-suggest {
		background: #1d1e16;
		border-color: rgba(255, 255, 255, .18);
	}

	.duk-search-suggest li {
		color: #f4f2e9;
	}
}

@media (prefers-reduced-motion: reduce) {
	.duk-star {
		transition: none;
	}
}

/* ---------- печат ---------- */

@media print {
	.duk-search-form,
	.duk-search-more,
	.duk-rating-stars {
		display: none;
	}
}
