.sh-wishlist-page {
	/* SKH-78: constrain to site content max-width (matches catalog/account). */
	max-width: 1360px;
	margin-inline: auto;
	padding-inline: var(--wp--preset--spacing--40, 24px);
	padding-bottom: var(--wp--preset--spacing--80, 80px);
}

/* Hero */
.sh-wishlist-page .wl-hero {
	position: relative;
	overflow: hidden;
	padding-block: var(--wp--preset--spacing--60, 48px) var(--wp--preset--spacing--40, 24px);
	border-bottom: 1px solid var(--wp--preset--color--neutral);
	margin-bottom: var(--wp--preset--spacing--50, 32px);
}
.sh-wishlist-page .wl-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 50% 70% at 90% 20%, var(--wp--preset--color--accent-1-soft), transparent 60%);
	pointer-events: none;
}
.sh-wishlist-page .wl-hero-grid {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: var(--wp--preset--spacing--50, 32px);
	align-items: end;
	position: relative;
	z-index: 1;
}
@media (max-width: 760px) {
	.sh-wishlist-page .wl-hero-grid { grid-template-columns: 1fr; }
}
.sh-wishlist-page .wl-eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	color: var(--wp--preset--color--contrast-faint);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin-bottom: 4px;
}
.sh-wishlist-page .wl-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(36px, 5vw, 56px);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.0;
	margin: 0;
}
.sh-wishlist-page .wl-title .count {
	color: var(--wp--preset--color--contrast-muted);
	font-weight: 500;
	font-size: 0.5em;
	margin-left: 12px;
	letter-spacing: -0.01em;
	vertical-align: middle;
}

/* Mini stats row */
.sh-wishlist-page .wl-stats {
	display: flex;
	gap: 0;
	background: var(--wp--preset--color--base-elevated);
	border: 1px solid var(--wp--preset--color--neutral);
	border-radius: var(--wp--custom--border--radius--md, 6px);
	overflow: hidden;
}
.sh-wishlist-page .wl-stat {
	padding: 14px 22px;
	border-right: 1px solid var(--wp--preset--color--neutral);
	min-width: 0;
}
.sh-wishlist-page .wl-stat:last-child { border-right: 0; }
.sh-wishlist-page .wl-stat .label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 9px;
	color: var(--wp--preset--color--contrast-faint);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 4px;
}
.sh-wishlist-page .wl-stat .num {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1;
	color: var(--wp--preset--color--contrast);
}
.sh-wishlist-page .wl-stat.alert .num { color: var(--wp--preset--color--accent-1); }
.sh-wishlist-page .wl-stat .num .arrow {
	display: inline-block;
	margin-left: 4px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 13px;
	transform: translateY(-2px);
	animation: bobArrow 1.8s ease-in-out infinite;
}
@keyframes bobArrow {
	0%, 100% { transform: translateY(-2px); }
	50%      { transform: translateY(-6px); }
}
.sh-wishlist-page .wl-stat .of {
	font-size: 12px;
	color: var(--wp--preset--color--contrast-faint);
	font-family: var(--wp--preset--font-family--mono);
	letter-spacing: 0.06em;
}

/* Toolbar */
.sh-wishlist-page .wl-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30, 16px);
	padding: var(--wp--preset--spacing--30, 16px) var(--wp--preset--spacing--40, 24px);
	margin-block: var(--wp--preset--spacing--50, 32px) var(--wp--preset--spacing--40, 24px);
	background: var(--wp--preset--color--base-elevated);
	border: 1px solid var(--wp--preset--color--neutral);
	border-radius: var(--wp--custom--border--radius--md, 6px);
}
.sh-wishlist-page .wl-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.sh-wishlist-page .wl-tab {
	padding: 8px 14px;
	border: 0;
	border-radius: var(--wp--custom--border--radius--sm, 3px);
	background: transparent;
	color: var(--wp--preset--color--contrast-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	cursor: pointer;
	transition: all 180ms;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.sh-wishlist-page .wl-tab:hover { color: var(--wp--preset--color--contrast); background: var(--wp--preset--color--base); }
.sh-wishlist-page .wl-tab.is-on {
	background: var(--wp--preset--color--accent-1-soft);
	color: var(--wp--preset--color--accent-1);
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent-1) inset;
}
.sh-wishlist-page .wl-tab .pill {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast-muted);
	padding: 2px 7px;
	border-radius: 9999px;
	font-size: 10px;
	letter-spacing: 0;
}
.sh-wishlist-page .wl-tab.is-on .pill {
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
}
.sh-wishlist-page .wl-tools-right {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.sh-wishlist-page .wl-sort {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--neutral);
	border-radius: var(--wp--custom--border--radius--sm, 3px);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	padding: 7px 30px 7px 12px;
	appearance: none;
	cursor: pointer;
	outline: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='rgba(255,255,255,.6)' d='M0 0h10L5 6z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 10px center;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.sh-wishlist-page .wl-sort:focus,
.sh-wishlist-page .wl-sort:hover {
	border-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--accent-1);
}
.sh-wishlist-page .wl-bulk {
	display: flex;
	gap: 6px;
	padding-left: 14px;
	margin-left: 4px;
	border-left: 1px solid var(--wp--preset--color--neutral);
}
.sh-wishlist-page .sh-btn-sm {
	font-size: 11px;
	padding: 7px 12px;
	letter-spacing: 0.06em;
}

/* Grid + cards */
/* SKH-82: .sh-wishlist-ssr-grid (logged-in SSR) and .sh-wishlist-ssr-grid--ls-only
   (guest, JS-rendered) must produce the same multi-column grid. Previously
   --ls-only had no display:grid rule so the 3 guest cards stacked as block. */
.sh-wishlist-page .wl-grid,
.sh-wishlist-page .sh-wishlist-ssr-grid,
.sh-wishlist-page .sh-wishlist-ssr-grid--ls-only {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--wp--preset--spacing--40, 24px);
}
.sh-wishlist-page .wl-card {
	--enter-delay: 0ms;
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--base-elevated);
	border: 1px solid var(--wp--preset--color--neutral);
	border-radius: var(--wp--custom--border--radius--md, 6px);
	overflow: hidden;
	transition:
		transform 320ms var(--wp--custom--transition--easing, ease-out),
		border-color 200ms,
		box-shadow 320ms,
		opacity 380ms,
		max-height 380ms,
		margin 380ms;
	animation: wlCardEnter 520ms var(--wp--custom--transition--easing, ease-out) backwards;
	animation-delay: var(--enter-delay);
}
@keyframes wlCardEnter {
	from { opacity: 0; transform: translateY(28px) scale(0.96); }
	to   { opacity: 1; transform: none; }
}
.sh-wishlist-page .wl-card:hover {
	border-color: var(--wp--preset--color--accent-1);
	transform: translateY(-6px);
	box-shadow:
		0 24px 50px -16px var(--wp--preset--color--accent-1-soft),
		0 0 0 1px var(--wp--preset--color--accent-1);
}
.sh-wishlist-page .wl-card.removing {
	opacity: 0;
	transform: scale(0.88) translateX(-30px) !important;
	max-height: 0;
	margin: -10px;
	pointer-events: none;
	overflow: hidden;
}
.sh-wishlist-page .wl-card-rarity {
	height: 3px;
	width: 100%;
	background: var(--rarity-color, var(--wp--preset--color--accent-1));
	box-shadow: 0 0 14px var(--rarity-color, var(--wp--preset--color--accent-1));
}
.sh-wishlist-page .wl-card-img {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--wp--preset--color--base);
	isolation: isolate;
}

/* BST-147: stock-state badge in card top-right corner — same visual language
   as the catalog skin-card stock badge (BST-140). */
.sh-wishlist-page .wl-card-stock-badge {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	display: inline-block;
	padding: 4px 8px;
	border-radius: 4px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1;
	pointer-events: none;
}
.sh-wishlist-page .wl-card-stock-badge--in {
	background: var(--wp--preset--color--accent-1-soft, rgba(179, 224, 0, 0.18));
	color: var(--wp--preset--color--accent-1, #b3e000);
	border: 1px solid var(--wp--preset--color--accent-1, #b3e000);
}
.sh-wishlist-page .wl-card-stock-badge--oos {
	background: rgba(229, 72, 77, 0.14);
	color: #ff6b6b;
	border: 1px solid rgba(229, 72, 77, 0.55);
}
.sh-wishlist-page .wl-card-img-link {
	position: absolute;
	inset: 0;
	display: block;
	transition: transform 540ms var(--wp--custom--transition--easing, ease-out);
}
.sh-wishlist-page .wl-card:hover .wl-card-img-link { transform: scale(1.06); }
.sh-wishlist-page .wl-card-img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 18px;
}
.sh-wishlist-page .wl-trend-chip {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
	padding: 4px 10px 4px 8px;
	background: rgba(0, 0, 0, 0.55);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-radius: 9999px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.04em;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.sh-wishlist-page .wl-trend-chip.down { color: var(--wp--preset--color--success, #4ade80); border: 1px solid rgba(74, 222, 128, 0.4); }
.sh-wishlist-page .wl-trend-chip.up   { color: var(--wp--preset--color--accent-1); border: 1px solid var(--wp--preset--color--accent-1); }
.sh-wishlist-page .wl-trend-chip.flat { color: var(--wp--preset--color--contrast-muted); border: 1px solid var(--wp--preset--color--neutral-strong); }
.sh-wishlist-page .wl-trend-chip .arrow { font-size: 11px; font-weight: 700; }

/* ── BST-87 wishlist v3: bell button (price-drop alerts) ───────────────── */
.sh-wishlist-page .wl-bell {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--neutral-strong);
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	color: var(--wp--preset--color--contrast-muted);
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 180ms ease;
}
.sh-wishlist-page .wl-bell:hover,
.sh-wishlist-page .wl-bell:focus-visible {
	color: var(--wp--preset--color--accent-1);
	border-color: var(--wp--preset--color--accent-1);
}
.sh-wishlist-page .wl-bell.on {
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--accent-1);
	animation: wlBellShake 0.5s ease-out;
}
@keyframes wlBellShake {
	0%, 100% { transform: rotate(0); }
	20%      { transform: rotate(-18deg); }
	40%      { transform: rotate(14deg); }
	60%      { transform: rotate(-8deg); }
	80%      { transform: rotate(4deg); }
}
@media (prefers-reduced-motion: reduce) {
	.sh-wishlist-page .wl-bell.on { animation: none; }
}

/* ── BST-87 wishlist v3: meta strip + spec subline above price block ──── */
.sh-wishlist-page .wl-card-title {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	color: var(--wp--preset--color--contrast-muted);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
.sh-wishlist-page .wl-card-title .sep {
	color: var(--wp--preset--color--contrast-faint);
	opacity: 0.5;
}
.sh-wishlist-page .wl-card-title .rarity {
	color: var(--wp--preset--color--contrast);
}
/* Per-rarity color tokens — fall through to neutral if a slug lacks a token */
.sh-wishlist-page .wl-card-title .rarity-covert         { color: var(--wp--preset--color--rarity-covert, var(--wp--preset--color--contrast)); }
.sh-wishlist-page .wl-card-title .rarity-classified     { color: var(--wp--preset--color--rarity-classified, var(--wp--preset--color--contrast)); }
.sh-wishlist-page .wl-card-title .rarity-restricted     { color: var(--wp--preset--color--rarity-restricted, var(--wp--preset--color--contrast)); }
.sh-wishlist-page .wl-card-title .rarity-mil-spec       { color: var(--wp--preset--color--rarity-mil-spec, var(--wp--preset--color--contrast)); }
.sh-wishlist-page .wl-card-title .rarity-industrial-grade { color: var(--wp--preset--color--rarity-industrial-grade, var(--wp--preset--color--contrast)); }
.sh-wishlist-page .wl-card-title .rarity-consumer-grade { color: var(--wp--preset--color--rarity-consumer-grade, var(--wp--preset--color--contrast)); }
.sh-wishlist-page .wl-card-title .rarity-contraband     { color: var(--wp--preset--color--rarity-contraband, var(--wp--preset--color--contrast)); }
.sh-wishlist-page .wl-card-title .rarity-extraordinary  { color: var(--wp--preset--color--rarity-extraordinary, var(--wp--preset--color--contrast)); }

.sh-wishlist-page .wl-card-title .badge {
	padding: 1px 6px;
	border-radius: 3px;
	border: 1px solid currentColor;
	font-size: 9px;
	letter-spacing: 0.04em;
}
.sh-wishlist-page .wl-card-title .badge.st {
	color: var(--wp--preset--color--accent-1);
}
.sh-wishlist-page .wl-card-title .badge.sv {
	color: var(--wp--preset--color--warning, #f59e0b);
}

.sh-wishlist-page .wl-card-name small {
	display: block;
	font-family: var(--wp--preset--font-family--body, var(--wp--preset--font-family--mono));
	font-size: 12px;
	font-weight: 500;
	color: var(--wp--preset--color--contrast-muted);
	letter-spacing: 0;
	margin-top: 4px;
	text-transform: none;
}

/* BST-81: Sparkline — 30-day price history overlay on card image.
   Ported from deliverables/design/wishlist.html lines 264-271.
   The mask gradient produces the "fades into image" effect at the top.
   `aspect-ratio: 16/10` on .wl-card-img already pins the container height,
   so CLS = 0 whether or not the sparkline is present. */
.sh-wishlist-page .wl-card-img .wl-spark {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	height: 36px;
	pointer-events: none;
	mask-image: linear-gradient( 180deg, transparent, black 30%, black );
	-webkit-mask-image: linear-gradient( 180deg, transparent, black 30%, black );
}

/* BST-81: "history building…" caption — shown when the price-history
   endpoint returned data for the product but fewer than 3 non-null
   snapshots exist (product recently imported, history still accumulating).
   Mono, dim, no layout impact. */
.sh-wishlist-page .wl-spark-pending {
	display: inline-block;
	margin-left: 8px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 9px;
	letter-spacing: 0.06em;
	opacity: 0.5;
	vertical-align: middle;
}

/* HUD corners reveal on hover */
.sh-wishlist-page .wl-hud-corner {
	position: absolute;
	width: 12px;
	height: 12px;
	border: 2px solid var(--wp--preset--color--accent-1);
	z-index: 2;
	opacity: 0;
	transition: opacity 240ms;
	pointer-events: none;
}
.sh-wishlist-page .wl-card:hover .wl-hud-corner { opacity: 1; }
.sh-wishlist-page .wl-hud-corner.tl { top: 8px;    left: 8px;   border-right: 0; border-bottom: 0; }
.sh-wishlist-page .wl-hud-corner.tr { top: 8px;    right: 8px;  border-left:  0; border-bottom: 0; }
.sh-wishlist-page .wl-hud-corner.bl { bottom: 8px; left: 8px;   border-right: 0; border-top:    0; }
.sh-wishlist-page .wl-hud-corner.br { bottom: 8px; right: 8px;  border-left:  0; border-top:    0; }

/* Card body */
.sh-wishlist-page .wl-card-body {
	padding: var(--wp--preset--spacing--40, 24px);
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
}
.sh-wishlist-page .wl-card-name {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
}
.sh-wishlist-page .wl-card-name-link {
	color: inherit;
	text-decoration: none;
}
.sh-wishlist-page .wl-card-name-link:hover { color: var(--wp--preset--color--accent-1); }
.sh-wishlist-page .wl-card-foot {
	margin-top: auto;
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 10px;
	align-items: end;
	padding-top: var(--wp--preset--spacing--30, 16px);
	border-top: 1px solid var(--wp--preset--color--neutral);
}
.sh-wishlist-page .wl-price-block .added {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 9px;
	color: var(--wp--preset--color--contrast-faint);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 2px;
}
.sh-wishlist-page .wl-price-now {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--wp--preset--color--contrast);
}
.sh-wishlist-page .wl-price-then {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	color: var(--wp--preset--color--contrast-faint);
	margin-top: 3px;
}
.sh-wishlist-page .wl-price-then.muted { font-size: 10px; opacity: 0.7; }
.sh-wishlist-page .wl-price-then .strike { text-decoration: line-through; opacity: 0.6; margin-right: 6px; }
.sh-wishlist-page .wl-price-then .delta-down { color: var(--wp--preset--color--success, #4ade80); }
.sh-wishlist-page .wl-price-then .delta-up   { color: var(--wp--preset--color--accent-1); }

/* Actions */
.sh-wishlist-page .wl-actions { display: flex; gap: 6px; align-items: center; }
.sh-wishlist-page .wl-act {
	width: 38px;
	height: 38px;
	border-radius: var(--wp--custom--border--radius--sm, 3px);
	background: transparent;
	border: 1px solid var(--wp--preset--color--neutral-strong);
	color: var(--wp--preset--color--contrast-muted);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 180ms;
}
.sh-wishlist-page .wl-act:hover {
	color: var(--wp--preset--color--accent-1);
	border-color: var(--wp--preset--color--accent-1);
}
.sh-wishlist-page .wl-act.danger:hover {
	color: var(--wp--preset--color--error, #ef4444);
	border-color: var(--wp--preset--color--error, #ef4444);
}
.sh-wishlist-page .wl-act.cart {
	width: auto;
	padding: 0 14px;
	background: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--accent-1);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	gap: 6px;
	min-width: 110px;
}
.sh-wishlist-page .wl-act.cart:hover {
	background: var(--wp--preset--color--accent-1-hover, var(--wp--preset--color--accent-1));
	color: var(--wp--preset--color--base);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px -4px var(--wp--preset--color--accent-1-soft);
}
.sh-wishlist-page .wl-act.cart:active { transform: translateY(0); }
.sh-wishlist-page .wl-act.cart:disabled {
	opacity: 0.7;
	cursor: progress;
}
.sh-wishlist-page .wl-act.cart .plus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.18);
	font-size: 13px;
	transition: transform 220ms;
}
.sh-wishlist-page .wl-act.cart:hover .plus { transform: rotate(180deg); }
.sh-wishlist-page .wl-act.cart.confirm {
	animation: wlConfirmPulse 600ms ease-out;
}
@keyframes wlConfirmPulse {
	0%   { transform: scale(1); }
	35%  { transform: scale(1.06); box-shadow: 0 0 0 0 var(--wp--preset--color--success, #4ade80); }
	100% { transform: scale(1); box-shadow: 0 0 0 16px transparent; }
}
/* BST-161: OOS is now a DISABLED button sitting in the bottom-right action
   row, matching the "TO CART" button's height/footprint (38px tall, min 110px
   wide). The old top-right corner badge that overlapped the price-alert bell
   has been removed in wishlist.js. Text never wraps; dashed border + muted
   palette + not-allowed cursor read as "unavailable". */
.sh-wishlist-page .wl-act.oos {
	width: auto;
	height: 38px;
	padding: 0 14px;
	min-width: 110px;
	white-space: nowrap;
	color: var(--wp--preset--color--contrast-faint);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	border: 1px dashed var(--wp--preset--color--neutral-strong);
	background: transparent;
	cursor: not-allowed;
}
.sh-wishlist-page .wl-act.oos:hover {
	/* override the generic .wl-act:hover lime — a disabled control stays muted */
	color: var(--wp--preset--color--contrast-faint);
	border-color: var(--wp--preset--color--neutral-strong);
}

/* Empty state */
.sh-wishlist-page .wl-empty {
	padding: var(--wp--preset--spacing--80, 80px) var(--wp--preset--spacing--50, 32px);
	background:
		radial-gradient(ellipse 60% 60% at 50% 30%, var(--wp--preset--color--accent-1-soft), transparent 70%),
		var(--wp--preset--color--base-elevated);
	border: 1px dashed var(--wp--preset--color--neutral-strong);
	border-radius: var(--wp--custom--border--radius--lg, 8px);
	text-align: center;
	margin-block: var(--wp--preset--spacing--50, 32px) var(--wp--preset--spacing--80, 80px);
	position: relative;
	overflow: hidden;
}
.sh-wishlist-page .wl-empty[hidden] { display: none; }
.sh-wishlist-page .wl-empty .glyph {
	width: 100px;
	height: 100px;
	margin: 0 auto var(--wp--preset--spacing--40, 24px);
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--neutral);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	box-shadow: inset 0 0 24px var(--wp--preset--color--accent-1-soft);
}
.sh-wishlist-page .wl-empty .glyph::after {
	content: '';
	position: absolute;
	inset: -16px;
	border: 1px dashed var(--wp--preset--color--accent-1-soft);
	border-radius: 50%;
	animation: wlEmptyRotate 12s linear infinite;
}
@keyframes wlEmptyRotate { to { transform: rotate(360deg); } }
.sh-wishlist-page .wl-empty .glyph svg { color: var(--wp--preset--color--accent-1); }
.sh-wishlist-page .wl-empty h2 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 28px;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 8px;
}
.sh-wishlist-page .wl-empty p {
	color: var(--wp--preset--color--contrast-muted);
	max-width: 460px;
	margin: 0 auto var(--wp--preset--spacing--50, 32px);
	line-height: 1.6;
}

/* Filter empty (sub-state when wishlist has items but current tab doesn't) */
.sh-wishlist-page .wl-filter-empty {
	padding: var(--wp--preset--spacing--60, 48px);
	text-align: center;
	color: var(--wp--preset--color--contrast-muted);
	background: var(--wp--preset--color--base-elevated);
	border: 1px dashed var(--wp--preset--color--neutral-strong);
	border-radius: var(--wp--custom--border--radius--md, 6px);
	margin-bottom: var(--wp--preset--spacing--60, 48px);
}
.sh-wishlist-page .wl-filter-empty[hidden] { display: none; }
.sh-wishlist-page .wl-filter-empty .t {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px;
	color: var(--wp--preset--color--contrast);
	margin-bottom: 6px;
}
.sh-wishlist-page .wl-filter-empty .s {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Toast */
.sh-wishlist-page .wl-toast {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%) translateY(20px);
	z-index: 50;
	padding: 14px 22px;
	background: var(--wp--preset--color--base-elevated);
	border: 1px solid var(--wp--preset--color--accent-1);
	border-radius: 9999px;
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.4), 0 0 0 1px var(--wp--preset--color--accent-1);
	display: flex;
	align-items: center;
	gap: 12px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 240ms, transform 240ms var(--wp--custom--transition--easing, ease-out);
}
.sh-wishlist-page .wl-toast[hidden] { display: none; }
.sh-wishlist-page .wl-toast.show {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
	pointer-events: auto;
}
.sh-wishlist-page .wl-toast .ico {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--wp--preset--color--success, #4ade80);
	color: var(--wp--preset--color--base);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	flex-shrink: 0;
}
.sh-wishlist-page .wl-toast .undo {
	color: var(--wp--preset--color--accent-1);
	cursor: pointer;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding-left: 12px;
	margin-left: 4px;
	border-left: 1px solid var(--wp--preset--color--neutral);
	background: transparent;
	border-top: 0;
	border-right: 0;
	border-bottom: 0;
}
.sh-wishlist-page .wl-toast .undo:hover { color: var(--wp--preset--color--accent-1-hover, var(--wp--preset--color--accent-1)); }
.sh-wishlist-page .wl-toast .undo[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
	.sh-wishlist-page .wl-card,
	.sh-wishlist-page .wl-empty .glyph::after,
	.sh-wishlist-page .wl-stat .num .arrow,
	.sh-wishlist-page .wl-act.cart.confirm,
	.sh-wishlist-page .wl-toast {
		animation: none !important;
		transition: none !important;
	}
}

@media (max-width: 600px) {
	.sh-wishlist-page .wl-toolbar { flex-direction: column; align-items: stretch; }
	.sh-wishlist-page .wl-tools-right { justify-content: space-between; }
	.sh-wishlist-page .wl-bulk { padding-left: 0; margin-left: 0; border-left: 0; }
	.sh-wishlist-page .wl-card-foot { grid-template-columns: 1fr; }
	.sh-wishlist-page .wl-actions { justify-content: flex-start; }
}

