
.sh-search {
	
	--sh-space-1: 0.25rem;
	--sh-space-2: 0.5rem;
	--sh-space-3: 0.75rem;
	--sh-space-4: 1rem;

	
	--sh-color-surface: #ffffff;
	--sh-color-surface-hover: #f0f4f8;
	--sh-color-border: #dcdcde;
	--sh-color-text: #1e1e1e;
	--sh-color-text-muted: #646970;
	--sh-color-accent: #2271b1;

	--sh-radius: var(--sh-space-1);
	--sh-shadow-panel: 0 var(--sh-space-2) var(--sh-space-4) rgba(0, 0, 0, 0.14);

	
	--sh-z-panel: 900;

	--sh-panel-max-height: 26rem;
	--sh-duration: 120ms;
	--sh-ease: ease-out;

	position: relative;
	display: block;
}

.sh-search__panel {
	position: absolute;
	z-index: var(--sh-z-panel);
	top: calc(100% + var(--sh-space-1));
	left: 0;
	right: 0;

	max-height: var(--sh-panel-max-height);
	overflow-y: auto;
	
	overflow-x: hidden;

	background: var(--sh-color-surface);
	border: 1px solid var(--sh-color-border);
	border-radius: var(--sh-radius);
	box-shadow: var(--sh-shadow-panel);

	text-align: left;
}


.sh-search__panel[hidden] {
	display: none;
}

.sh-search__result {
	display: block;
	padding: var(--sh-space-2) var(--sh-space-3);
	border-bottom: 1px solid var(--sh-color-border);

	color: var(--sh-color-text);
	text-decoration: none;
}

.sh-search__result:last-child {
	border-bottom: 0;
}


.sh-search__result:hover,
.sh-search__result:focus {
	background: var(--sh-color-surface-hover);
	color: var(--sh-color-text);
}

.sh-search__result:focus-visible {
	outline: 2px solid var(--sh-color-accent);
	outline-offset: -2px;
}

.sh-search__result-title {
	display: block;
	font-weight: 600;
	line-height: 1.3;
}

.sh-search__result-excerpt {
	margin-top: var(--sh-space-1);

	color: var(--sh-color-text-muted);
	font-size: 0.8125rem;
	line-height: 1.4;

	
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.sh-search__empty {
	padding: var(--sh-space-3);
	color: var(--sh-color-text-muted);
}

.sh-search__all {
	display: block;
	padding: var(--sh-space-2) var(--sh-space-3);
	border-top: 1px solid var(--sh-color-border);

	color: var(--sh-color-accent);
	font-size: 0.8125rem;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
}

.sh-search__all:focus-visible {
	outline: 2px solid var(--sh-color-accent);
	outline-offset: -2px;
}


@media (prefers-color-scheme: dark) {
	.sh-search {
		--sh-color-surface: #1e1e1e;
		--sh-color-surface-hover: #2c3338;
		--sh-color-border: #3c434a;
		--sh-color-text: #f0f0f1;
		--sh-color-text-muted: #a7aaad;
		--sh-color-accent: #72aee6;
		--sh-shadow-panel: 0 var(--sh-space-2) var(--sh-space-4) rgba(0, 0, 0, 0.5);
	}
}


.sh-form {
	display: flex;
	gap: var(--sh-space-2, 0.5rem);
}

.sh-form .sh-field {
	flex: 1 1 auto;
	min-width: 0;
}
