/* Landing — search app shell (relative units only) */

.landing-body {
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
}

.landing-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--m);
	padding: var(--m) var(--l);
	background: var(--layer-2-bg);
	border-bottom: var(--min) solid var(--border);
	flex-shrink: 0;
}

.landing-nav-brand {
	font-family: 'Carter One', cursive;
	font-size: 1.25rem;
	color: var(--fg);
	text-decoration: none;
}

.landing-nav-actions {
	display: flex;
	align-items: center;
	gap: var(--m);
}

/* App shell: sidebar + main */
.landing-app {
	flex: 1;
	display: flex;
	min-height: 0;
	border-top: var(--min) solid var(--border);
}

.landing-sidebar {
	width: min(18rem, 92vw);
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	background: var(--layer-2-bg);
	border-right: var(--min) solid var(--border);
	min-height: 0;
}

.landing-sidebar-toolbar {
	padding: var(--m);
	border-bottom: var(--min) solid var(--border);
	flex-shrink: 0;
}

.landing-new-search-btn {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--xs);
}

.landing-tab-list {
	flex: 1;
	overflow-y: auto;
	padding: var(--s);
	display: flex;
	flex-direction: column;
	gap: var(--xs);
}

.landing-tab-row {
	display: flex;
	align-items: stretch;
	gap: 2px;
	border-radius: var(--r-m);
	transition: background 0.12s, box-shadow 0.12s;
}

.landing-tab-row:hover {
	background: var(--layer-4-bg);
}

.landing-tab-row[data-active='true'] {
	background: var(--layer-3-bg);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent);
}

.landing-tab {
	flex: 1;
	min-width: 0;
	text-align: left;
	padding: var(--s) var(--m);
	border: none;
	border-radius: var(--r-m) 0 0 var(--r-m);
	background: transparent;
	color: var(--fg);
	font-size: 0.9375rem;
	line-height: 1.3;
	cursor: pointer;
}

.landing-tab-row[data-active='true'] .landing-tab {
	font-weight: 600;
}

.landing-tab-close {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	padding: 0;
	border: none;
	border-radius: 0 var(--r-m) var(--r-m) 0;
	background: transparent;
	color: var(--fg-muted);
	opacity: 0.85;
	cursor: pointer;
}

.landing-tab-close:hover {
	color: var(--fg);
}

.landing-workspace {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
	background: var(--layer-1-bg);
}

.landing-hero-panel {
	padding: var(--xl) var(--l) var(--l);
	flex-shrink: 0;
}

.landing-hero-panel h1 {
	font-family: 'Carter One', cursive;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	margin-bottom: var(--s);
}

.landing-hero-lead {
	color: var(--fg-muted);
	max-width: 36rem;
	margin-bottom: var(--xl);
	line-height: 1.5;
}

.landing-hero-form {
	max-width: 44rem;
	display: flex;
	flex-direction: column;
	gap: var(--l);
}

.landing-scope-toggle {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--m);
}

.landing-scope-label {
	font-size: 0.875rem;
	color: var(--fg-muted);
}

.landing-segmented {
	display: inline-flex;
	padding: 3px;
	border-radius: var(--r-l);
	background: var(--layer-3-bg);
	border: var(--min) solid var(--border);
	gap: 2px;
}

.landing-segment {
	padding: var(--s) var(--l);
	border: none;
	border-radius: var(--r-m);
	background: transparent;
	color: var(--fg-muted);
	font-size: 0.875rem;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
}

.landing-segment:hover {
	color: var(--fg);
}

.landing-segment[aria-pressed='true'] {
	background: var(--layer-4-bg);
	color: var(--fg);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.landing-price-sort {
	margin-bottom: var(--l);
}

.landing-search-bar {
	display: flex;
	gap: var(--s);
	align-items: stretch;
	flex-wrap: wrap;
}

.landing-search-input {
	flex: 1;
	min-width: 12rem;
	min-height: 3.25rem;
	padding: 0 var(--l);
	font-size: 1.0625rem;
	border-radius: var(--r-l);
	border: var(--min) solid var(--border);
	background: var(--layer-3-bg);
	color: var(--fg);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, 0.04) inset,
		var(--shadow-mid);
	transition: border-color 0.15s, box-shadow 0.15s;
}

.landing-search-input::placeholder {
	color: var(--fg-muted);
	opacity: 0.85;
}

.landing-search-input:hover {
	border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
}

.landing-search-input:focus {
	outline: none;
	border-color: color-mix(in srgb, var(--accent) 55%, var(--border));
	box-shadow:
		0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent),
		var(--shadow-mid);
}

.landing-search-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--s);
	padding: 0 var(--xl);
	min-height: 3.25rem;
	border-radius: var(--r-l);
	font-weight: 600;
	flex-shrink: 0;
}

.landing-search-submit x-icon {
	--icon-scale: 1.1;
}

.landing-session-view {
	flex: 1;
	overflow-y: auto;
	min-height: 0;
	padding: 0 var(--l) var(--xl);
}

.landing-session-inner {
	max-width: 52rem;
}

.landing-session-query {
	font-size: 1.125rem;
	font-weight: 600;
	margin-bottom: var(--l);
	color: var(--fg);
	word-break: break-word;
}

.landing-session-meta {
	font-size: 0.875rem;
	color: var(--fg-muted);
	margin-bottom: var(--m);
}

.landing-results-list {
	display: flex;
	flex-direction: column;
	gap: var(--m);
}

.landing-footnote {
	flex-shrink: 0;
	padding: var(--m) var(--l) var(--l);
	font-size: 0.8125em;
	color: var(--fg-muted);
	max-width: 52rem;
	margin: 0 auto;
}

.landing-footnote code {
	font-size: 1em;
	background: var(--layer-3-bg);
	padding: 0.125em 0.375em;
	border-radius: var(--r-s);
}

/* Loading block (same visual language as before) */
.landing-loading-block {
	border-radius: var(--r-m);
	padding: var(--xl) var(--l);
	background: var(--layer-3-bg);
	border: var(--min) solid var(--border);
	animation: landing-loading-pulse 1.4s ease-in-out infinite;
}

@keyframes landing-loading-pulse {
	0%,
	100% {
		border-color: var(--border);
		box-shadow: none;
	}
	50% {
		border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
		box-shadow: 0 0 1em color-mix(in srgb, var(--accent) 15%, transparent);
	}
}

.landing-loading-stage {
	display: flex;
	align-items: center;
	gap: var(--m);
	flex-wrap: wrap;
}

.landing-loading-dots {
	display: flex;
	align-items: center;
	gap: 0.35em;
}

.landing-loading-dots span {
	width: 0.65em;
	height: 0.65em;
	border-radius: 50%;
	background: var(--accent);
	animation: landing-dot-bounce 0.55s ease-in-out infinite;
}

.landing-loading-dots span:nth-child(2) {
	animation-delay: 0.12s;
	background: color-mix(in srgb, var(--accent) 70%, var(--fg-muted));
}

.landing-loading-dots span:nth-child(3) {
	animation-delay: 0.24s;
	background: color-mix(in srgb, var(--accent) 45%, var(--fg-muted));
}

@keyframes landing-dot-bounce {
	0%,
	100% {
		transform: translateY(0) scale(1);
		opacity: 0.65;
	}
	35% {
		transform: translateY(-0.45em) scale(1.15);
		opacity: 1;
	}
}

.landing-loading-caption {
	margin: 0;
	font-size: 0.9375em;
	color: var(--fg-muted);
}

.landing-loading-caption strong {
	color: var(--accent);
	font-weight: normal;
	animation: landing-shimmer 1.8s ease-in-out infinite;
}

@keyframes landing-shimmer {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.55;
	}
}

/* Deal cards */
.landing-deal {
	padding: var(--m) 0;
	border-top: var(--min) solid var(--border);
}

.landing-deal:first-child {
	border-top: none;
	padding-top: 0;
}

.landing-deal-title {
	font-weight: bold;
	margin-bottom: var(--xs);
}

.landing-deal-title a {
	color: var(--accent);
}

.landing-deal-line {
	font-size: 0.9375em;
	color: var(--fg-muted);
}

.landing-deal-line strong {
	color: var(--fg);
	font-weight: normal;
}

.landing-error-box {
	padding: var(--l);
	border-radius: var(--r-m);
	background: color-mix(in srgb, var(--danger) 12%, var(--layer-3-bg));
	border: var(--min) solid color-mix(in srgb, var(--danger) 35%, var(--border));
	color: var(--fg);
}

@media (max-width: 52rem) {
	.landing-app {
		flex-direction: column;
	}

	.landing-sidebar {
		width: 100%;
		max-height: 11rem;
		border-right: none;
		border-bottom: var(--min) solid var(--border);
	}

	.landing-tab-list {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		padding: var(--s) var(--m);
	}

	.landing-tab-row {
		flex: 0 0 auto;
		max-width: 14rem;
	}
}
