/* Pricetracker shared grouped search dropdown
   ----------------------------------------------------------------------------
   Theme isolation: Astra and similar themes inject hover underlines, :active
   red, :visited colors and button transforms via .entry-content rules. Every
   interactive selector below uses high-specificity overrides + !important for
   normal/hover/focus/active/visited so theme styles never leak in.
   ---------------------------------------------------------------------------- */

.pt-search-results {
	--c-bg: #fff;
	--c-text: #1b3152;
	--c-text-2: #4b5563;
	--c-muted: #6b7280;
	--c-border: #e5e7eb;
	--c-border-soft: #f1f3f7;
	--c-hover: #f6f8fc;
	--c-active: #eff6ff;
	--c-accent: #2563eb;
	--c-accent-soft: #eff6ff;
	--c-success: #047857;
	--c-amber: #f5a524;
	position: absolute !important;
	top: 100% !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 200 !important;
	margin-top: 8px !important;
	background: var(--c-bg) !important;
	border: 1px solid var(--c-border) !important;
	border-radius: 16px !important;
	box-shadow: 0 12px 32px rgba(27, 49, 82, 0.10) !important;
	overflow: hidden !important;
	text-align: left !important;
	color: var(--c-text) !important;
	font-family: inherit;
}

.pt-search-results[hidden] { display: none !important; }

/* Reset all themed link/button decoration inside the dropdown */
.pt-search-results,
.pt-search-results * { -webkit-tap-highlight-color: transparent !important; }
.pt-search-results a,
.pt-search-results a:link,
.pt-search-results a:visited,
.pt-search-results a:hover,
.pt-search-results a:focus,
.pt-search-results a:focus-visible,
.pt-search-results a:active,
.pt-search-results button,
.pt-search-results button:hover,
.pt-search-results button:focus,
.pt-search-results button:focus-visible,
.pt-search-results button:active {
	text-decoration: none !important;
	box-shadow: none !important;
	transform: none !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	font-family: inherit !important;
	text-shadow: none !important;
	-webkit-tap-highlight-color: transparent !important;
}
.pt-search-results a *,
.pt-search-results a:hover *,
.pt-search-results a:focus *,
.pt-search-results button *,
.pt-search-results button:hover *,
.pt-search-results button:focus * { text-decoration: none !important; }
.pt-search-results img {
	max-width: 100% !important;
	height: auto;
	border: 0 !important;
	box-shadow: none !important;
}
.pt-search-results .gd__price-old { text-decoration: line-through !important; }

.gd { max-height: 540px; overflow-y: auto; scrollbar-width: thin; }
.gd::-webkit-scrollbar { width: 10px; }
.gd::-webkit-scrollbar-thumb { background: rgba(100, 116, 139, .35); border-radius: 999px; border: 3px solid transparent; background-clip: content-box; }
.gd__section { padding: 8px 0; border-bottom: 1px solid var(--c-border-soft); }
.gd__section:last-of-type { border-bottom: 0; }
.gd__section-head { display: flex; align-items: center; justify-content: space-between; padding: 6px 16px 4px; }
.gd__section-title { font-size: 13px; font-weight: 500; color: var(--c-muted); }

.gd__section-link,
button.gd__section-link,
.gd__section-link:hover,
.gd__section-link:focus,
.gd__section-link:active,
.gd__section-link:visited {
	border: 0 !important;
	background: transparent !important;
	color: var(--c-accent) !important;
	cursor: pointer !important;
	font: inherit !important;
	font-size: 12px !important;
	padding: 0 !important;
	margin: 0 !important;
	text-decoration: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}
.gd__section-link:hover { text-decoration: underline !important; }

.gd__list { display: flex; flex-direction: column; }

.gd__row,
a.gd__row,
a.gd__row:link,
a.gd__row:visited {
	display: grid !important;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	gap: 12px !important;
	align-items: center !important;
	padding: 10px 16px !important;
	color: var(--c-text) !important;
	text-decoration: none !important;
	border: 0 !important;
	background: transparent !important;
	text-align: left !important;
}
.gd__row:hover,
.gd__row:focus,
.gd__row:focus-visible,
.gd__row--active,
.pt-search-results__item--active {
	background: var(--c-hover) !important;
	color: var(--c-text) !important;
}
.gd__row:hover .gd__title,
.gd__row:focus .gd__title,
.gd__row:hover .gd__cat-title,
.gd__row:focus .gd__cat-title { text-decoration: none !important; }

.gd__thumb,
.pt-search-results img.gd__thumb {
	width: 48px !important;
	height: 48px !important;
	min-width: 48px !important;
	max-width: 48px !important;
	border-radius: 8px !important;
	object-fit: cover !important;
	background: #f1f5f9 !important;
	flex-shrink: 0 !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}
.gd__thumb--guide,
.pt-search-results img.gd__thumb--guide {
	border-radius: 10px !important;
}
.gd__thumb--empty { display: block; }

.gd__main, .gd__cat-info { min-width: 0; display: block; text-align: left; }
.gd__title,
.gd__cat-title {
	display: block;
	color: var(--c-text) !important;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-decoration: none !important;
}
.gd__sub {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	margin-top: 3px;
	color: var(--c-muted) !important;
	font-size: 12px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.gd__rating { display: inline-flex; align-items: center; gap: 3px; color: var(--c-amber); font-weight: 600; }
.gd__rating svg { color: var(--c-amber); flex-shrink: 0; }

/* Store dot only renders when there's a sibling (rating) before it */
.gd__store { position: relative; }
.gd__sub > * + .gd__store { padding-left: 10px; }
.gd__sub > * + .gd__store::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 50%;
	width: 3px;
	height: 3px;
	background: #d1d5db;
	border-radius: 50%;
	transform: translateY(-50%);
}
.gd__sub > .gd__store:first-child { padding-left: 0 !important; }
.gd__sub > .gd__store:first-child::before { display: none !important; }

.gd__price { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; line-height: 1.2; }
.gd__price-old { color: var(--c-muted) !important; font-size: 11px; text-decoration: line-through !important; }
.gd__price-new { color: var(--c-text) !important; font-size: 14px; font-weight: 700; }

.gd__guide-icon {
	width: 48px;
	height: 48px;
	border-radius: 10px;
	background: var(--c-accent-soft);
	color: var(--c-accent);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.gd__guide-icon[data-kind="Guide"] { background: #fef3e8; color: #c2410c; }
.gd__badge { display: inline-block; padding: 2px 6px; border-radius: 4px; font-size: 11px; font-weight: 600; }
.gd__badge--soft { background: var(--c-accent-soft); color: var(--c-accent); }
.gd__verdict { color: var(--c-text-2); font-weight: 600; }
.gd__updated { color: var(--c-muted); }
.gd__arrow { color: #d1d5db; }

.gd__cats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; padding: 4px 12px 10px; }
.gd__cat,
a.gd__cat,
a.gd__cat:link,
a.gd__cat:visited {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	min-width: 0;
	padding: 8px !important;
	border: 1px solid transparent !important;
	border-radius: 10px !important;
	background: #fafbfd !important;
	color: var(--c-text) !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transform: none !important;
}
.gd__cat:hover,
.gd__cat:focus,
.gd__cat:focus-visible,
.gd__cat.pt-search-results__item--active {
	background: var(--c-hover) !important;
	border-color: var(--c-border) !important;
	color: var(--c-text) !important;
	text-decoration: none !important;
}
.gd__cat-img,
.pt-search-results img.gd__cat-img {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	max-width: 36px !important;
	flex-shrink: 0 !important;
	border-radius: 6px !important;
	object-fit: cover !important;
	background: #f1f5f9 !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}
.gd__cat-meta { color: var(--c-muted); font-size: 11px; margin-top: 1px; }

.gd__chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 16px 12px; }
.gd__chip,
button.gd__chip,
.gd__chip:link,
.gd__chip:visited {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	padding: 6px 12px !important;
	min-height: 0 !important;
	border: 1px solid transparent !important;
	border-radius: 999px !important;
	background: #f4f6fa !important;
	color: var(--c-text) !important;
	cursor: pointer !important;
	font: inherit !important;
	font-size: 12.5px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}
.gd__chip:hover,
button.gd__chip:hover,
.gd__chip:focus,
.gd__chip:focus-visible,
.gd__chip:active {
	background: var(--c-accent-soft) !important;
	color: var(--c-accent) !important;
	border-color: var(--c-accent-soft) !important;
	box-shadow: none !important;
	transform: none !important;
	text-decoration: none !important;
}
.gd__chip:hover svg,
.gd__chip:focus svg,
.gd__chip:active svg { color: var(--c-accent) !important; }
.gd__chip svg { color: var(--c-success); flex-shrink: 0; }

.gd__recent { display: flex; flex-direction: column; }
.gd__recent-item,
button.gd__recent-item,
.gd__recent-item:link,
.gd__recent-item:visited {
	display: grid !important;
	grid-template-columns: 18px minmax(0, 1fr) 18px !important;
	gap: 10px !important;
	align-items: center !important;
	padding: 8px 16px !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--c-text) !important;
	cursor: pointer !important;
	font: inherit !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	text-align: left !important;
	line-height: 1.3 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}
.gd__recent-item:hover,
button.gd__recent-item:hover,
.gd__recent-item:focus,
.gd__recent-item:focus-visible,
.gd__recent-item:active {
	background: var(--c-hover) !important;
	color: var(--c-text) !important;
	box-shadow: none !important;
	transform: none !important;
	text-decoration: none !important;
}
.gd__recent-item:hover span,
.gd__recent-item:focus span,
.gd__recent-item:active span,
.gd__recent-item:hover svg,
.gd__recent-item:focus svg,
.gd__recent-item:active svg { color: var(--c-text) !important; }

.gd__empty { padding: 36px 24px; text-align: center; }
.gd__empty-icon { width: 56px; height: 56px; border-radius: 50%; background: #f5f7fb; color: var(--c-muted); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.gd__empty-title { margin: 0 0 4px; font-size: 15px; font-weight: 600; color: var(--c-text); }
.gd__empty-hint { margin: 0 0 16px; color: var(--c-muted); font-size: 13px; }
.gd__empty-btn,
a.gd__empty-btn,
a.gd__empty-btn:hover,
a.gd__empty-btn:focus,
a.gd__empty-btn:visited {
	display: inline-block !important;
	padding: 8px 14px !important;
	border-radius: 8px !important;
	background: var(--c-accent-soft) !important;
	color: var(--c-accent) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transform: none !important;
}

.gd__footer,
a.gd__footer,
a.gd__footer:link,
a.gd__footer:visited {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 12px !important;
	padding: 12px 16px !important;
	position: sticky !important;
	bottom: 0 !important;
	background: #fafbfd !important;
	border-top: 1px solid var(--c-border-soft) !important;
	color: var(--c-text) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transform: none !important;
}
.gd__footer:hover,
.gd__footer:focus,
.gd__footer:focus-visible,
.gd__footer.pt-search-results__item--active {
	background: var(--c-active) !important;
	color: var(--c-accent) !important;
	text-decoration: none !important;
}
.gd__footer strong, .gd__mark { color: var(--c-accent); }
.pt-search-results mark.gd__mark { background: transparent !important; color: var(--c-accent) !important; padding: 0 !important; }

.pt-search-results__skeleton { display: flex; align-items: center; gap: .75rem; padding: .65rem .85rem; border-bottom: 1px solid var(--c-border); }
.pt-search-results__skeleton-thumb { width: 40px; height: 40px; border-radius: 6px; flex-shrink: 0; background: #e2e8f0; animation: ptPulse 1.2s ease-in-out infinite; }
.pt-search-results__skeleton-lines { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.pt-search-results__skeleton-line { height: 12px; border-radius: 4px; background: #e2e8f0; animation: ptPulse 1.2s ease-in-out infinite; }
.pt-search-results__skeleton-line--long { width: 75%; }
.pt-search-results__skeleton-line--short { width: 40%; animation-delay: .15s; }

/* Barcode scan trigger inside the search input.
   Hidden by default; only shown on touch devices (phone-first feature). */
button.pt-search-scan,
.pt-search-scan,
.pt-search-scan:link,
.pt-search-scan:visited {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	max-width: 36px !important;
	padding: 0 !important;
	margin: 0 6px 0 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--c-accent-soft, #eff6ff) !important;
	color: var(--c-accent, #2563eb) !important;
	display: none !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
	font-size: 0 !important;
	line-height: 1 !important;
	text-shadow: none !important;
	box-shadow: none !important;
	transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}
.pt-search-scan svg {
	display: block !important;
	width: 18px !important;
	height: 18px !important;
}
.pt-search-scan:hover,
button.pt-search-scan:hover,
.pt-search-scan:focus,
.pt-search-scan:focus-visible,
.pt-search-scan:active {
	background: #dbeafe !important;
	color: var(--c-accent, #2563eb) !important;
	transform: none !important;
	box-shadow: none !important;
}
/* Show only on touch devices or narrow viewports — keep matching specificity
   on the inline-flex rule so it overrides the display:none default above. */
@media (max-width: 768px), (pointer: coarse), (hover: none) {
	.pt-search-scan,
	button.pt-search-scan,
	.pt-search-scan:link,
	.pt-search-scan:visited {
		display: inline-flex !important;
	}
}

/* Smartcart-landing layout fix: that block keeps its submit button absolutely
   positioned at right: 10px, so the scan button needs to sit just inside of
   it instead of stacking after it. */
.wb24-scl__search-input-wrap .pt-search-scan,
.wb24-scl__search-input-wrap button.pt-search-scan {
	position: absolute !important;
	right: 70px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	margin: 0 !important;
	z-index: 2 !important;
}
.wb24-scl__search-input-wrap .wb24-scl__search-input,
.wb24-scl__search-input-wrap input.wb24-scl__search-input {
	padding-right: 124px !important;
}
.wb24-pt-landing__search .pt-search-scan,
.wb24-pt-landing__cta-search .pt-search-scan {
	margin: 0 4px 0 0 !important;
}

@media (max-width: 640px) {
	.pt-search-results { position: fixed !important; top: var(--pt-search-sheet-top, 96px) !important; left: 0 !important; right: 0 !important; bottom: 0 !important; max-height: none; margin: 0 !important; border-radius: 18px 18px 0 0 !important; transform: translateY(0); }
	.gd { max-height: calc(100vh - var(--pt-search-sheet-top, 96px)); }
	.gd__row { grid-template-columns: 52px minmax(0, 1fr) auto; padding: 12px 14px !important; }
	.gd__thumb,
	.gd__thumb--guide,
	.pt-search-results img.gd__thumb,
	.pt-search-results img.gd__thumb--guide,
	.gd__guide-icon {
		width: 52px !important;
		height: 52px !important;
		min-width: 52px !important;
		max-width: 52px !important;
	}
	.gd__cats { grid-template-columns: 1fr; }
}

/* Barcode scanner overlay */
.bs { position: fixed; inset: 0; z-index: 100000; display: flex; flex-direction: column; overflow: hidden; background: #000; color: #fff; }
.bs__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #111; }
.bs__overlay, .bs__vignette { position: absolute; inset: 0; pointer-events: none; }
.bs__vignette { background: radial-gradient(ellipse at center, transparent 32%, rgba(0, 0, 0, .65) 75%); }
.bs__reticle { position: absolute; top: 50%; left: 50%; width: 78%; max-width: 320px; aspect-ratio: 1.6 / 1; transform: translate(-50%, -50%); }
.bs__corner { position: absolute; width: 28px; height: 28px; border: 3px solid #fff; border-radius: 4px; }
.bs__corner--tl { top: -3px; left: -3px; border-right: 0; border-bottom: 0; }
.bs__corner--tr { top: -3px; right: -3px; border-left: 0; border-bottom: 0; }
.bs__corner--bl { bottom: -3px; left: -3px; border-right: 0; border-top: 0; }
.bs__corner--br { right: -3px; bottom: -3px; border-left: 0; border-top: 0; }
.bs__beam { position: absolute; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, transparent, #ef4444 50%, transparent); box-shadow: 0 0 12px #ef4444; animation: bsBeam 1.6s ease-in-out infinite; }
.bs__check { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; border-radius: 14px; background: rgba(22, 163, 74, .18); }
.bs__check svg { width: 64px; height: 64px; padding: 14px; border-radius: 999px; background: #047857; }
.bs__topbar { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; background: linear-gradient(180deg, rgba(0,0,0,.55), transparent); }
.bs__icon,
button.bs__icon,
.bs__icon:hover,
.bs__icon:focus,
.bs__icon:active {
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, .14) !important;
	color: #fff !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	box-shadow: none !important;
	transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}
.bs__title { font-size: 15px; font-weight: 700; color: #fff; }
.bs__bottom { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 12px; margin-top: auto; padding: 18px 18px calc(18px + env(safe-area-inset-bottom, 0px)); background: linear-gradient(0deg, rgba(0,0,0,.7), transparent); text-align: center; }
.bs__status { margin: 0; color: #fff; font-size: 13.5px; line-height: 1.4; }
.bs__manual { display: flex; flex-direction: column; gap: 8px; }
.bs__manual-row { display: flex; gap: 8px; }
.bs__manual-input {
	flex: 1 !important;
	min-width: 0 !important;
	padding: 12px 14px !important;
	border: 1px solid rgba(255, 255, 255, .25) !important;
	border-radius: 10px !important;
	background: rgba(255, 255, 255, .12) !important;
	color: #fff !important;
	font: inherit !important;
	font-size: 16px !important;
	outline: 0 !important;
	box-shadow: none !important;
}
.bs__manual-input::placeholder { color: rgba(255, 255, 255, .55) !important; }
.bs__manual-btn,
button.bs__manual-btn,
.bs__manual-btn:hover,
.bs__manual-btn:focus,
.bs__manual-btn:active {
	padding: 0 18px !important;
	min-width: 80px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: #2563eb !important;
	color: #fff !important;
	font: inherit !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	box-shadow: none !important;
	transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}

/* Manual mode is used when BarcodeDetector or camera is unavailable. We hide
   the live camera UI and elevate the manual EAN sheet so it does not look
   like the scanner is broken.
   Uses literal hex values: .bs is appended to <body> so CSS variables defined
   on .pt-search-results do not cascade here. */
.bs--manual { background: rgba(15, 23, 42, .78) !important; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.bs--manual .bs__video,
.bs--manual .bs__overlay { display: none !important; }
.bs--manual .bs__topbar { background: transparent !important; }
.bs--manual .bs__bottom,
.bs--manual form.bs__manual {
	margin: auto !important;
	max-width: 360px !important;
	width: calc(100% - 32px) !important;
	padding: 24px !important;
	background: #fff !important;
	color: #1b3152 !important;
	border-radius: 16px !important;
	box-shadow: 0 24px 60px rgba(15, 23, 42, .35) !important;
	text-align: left !important;
	gap: 14px !important;
}
.bs--manual form.bs__manual {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.bs--manual .bs__status,
.bs--manual .bs__manual p,
.bs--manual .bs__manual .bs__status {
	color: #1b3152 !important;
	margin: 0 !important;
	font-size: 14.5px !important;
	line-height: 1.45 !important;
	font-weight: 500 !important;
}
.bs--manual .bs__manual-input,
.bs--manual input.bs__manual-input,
.bs--manual input.bs__manual-input:focus {
	background: #fff !important;
	color: #1b3152 !important;
	border: 1px solid #e5e7eb !important;
	-webkit-text-fill-color: #1b3152 !important;
}
.bs--manual .bs__manual-input::placeholder,
.bs--manual input.bs__manual-input::placeholder { color: #6b7280 !important; opacity: 1 !important; }
.bs--manual .bs__manual-btn,
.bs--manual button.bs__manual-btn {
	background: #2563eb !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
.bs--manual .bs__icon { background: rgba(255, 255, 255, .18) !important; color: #fff !important; }
.bs--manual .bs__title { color: #fff !important; }

/* ============================================================
   Outcome screens (not_found, error, manual entry)
   ============================================================
   When the scanner has a result to communicate (EAN not in DB,
   camera failure, network error, polyfill failure) we hide the
   live camera UI and show a clean white card centered in a dim
   overlay. Same backdrop treatment as bs--manual but with icons,
   EAN chip, action buttons and an optional manual EAN input.

   Uses literal hex values throughout because .bs is appended to
   <body> and the CSS variables defined on .pt-search-results do
   not cascade to it. */
.bs--result {
	background: rgba(15, 23, 42, .78) !important;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.bs--result .bs__video,
.bs--result .bs__overlay { display: none !important; }
.bs--result .bs__topbar { background: transparent !important; }
.bs--result .bs__bottom {
	margin: auto !important;
	max-width: 380px !important;
	width: calc(100% - 32px) !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	display: block !important;
}
.bs--result .bs__icon { background: rgba(255, 255, 255, .18) !important; color: #fff !important; }
.bs--result .bs__title { color: #fff !important; }

.bs__sheet {
	background: #fff !important;
	color: #1b3152 !important;
	border-radius: 18px !important;
	padding: 28px 24px !important;
	box-shadow: 0 24px 60px rgba(15, 23, 42, .35) !important;
	text-align: center !important;
}

.bs__sheet-icon {
	width: 72px !important;
	height: 72px !important;
	margin: 0 auto 14px !important;
	border-radius: 999px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.bs__sheet-icon--info { background: #eff6ff !important; color: #2563eb !important; }
.bs__sheet-icon--warn { background: #fef3c7 !important; color: #b45309 !important; }
.bs__sheet-icon svg { display: block; }

.bs__sheet-title {
	margin: 0 0 8px !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	color: #1b3152 !important;
}
.bs__sheet-text {
	margin: 0 0 16px !important;
	font-size: 14.5px !important;
	line-height: 1.5 !important;
	color: #4b5563 !important;
	font-weight: 400 !important;
}

.bs__ean-chip {
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	padding: 10px 14px !important;
	margin: 0 auto 18px !important;
	background: #f4f6fa !important;
	border-radius: 10px !important;
	border: 1px solid #e5e7eb !important;
}
.bs__ean-label {
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	color: #6b7280 !important;
}
.bs__ean-value {
	font-family: 'SFMono-Regular', Menlo, Consolas, monospace !important;
	font-size: 15.5px !important;
	font-weight: 600 !important;
	color: #1b3152 !important;
	letter-spacing: .02em !important;
}

.bs__sheet-actions {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	margin-top: 4px !important;
}
.bs__sheet-actions--center { justify-content: center !important; }

/* Buttons inside outcome sheets — themed with literal hex so theme
   rules (Astra etc.) cannot bleed through. */
.bs__btn,
button.bs__btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 46px !important;
	padding: 12px 18px !important;
	border: 0 !important;
	border-radius: 12px !important;
	font: inherit !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	cursor: pointer !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transform: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	-webkit-tap-highlight-color: transparent !important;
}
.bs__btn--primary,
button.bs__btn--primary,
.bs__btn--primary:hover,
.bs__btn--primary:focus,
.bs__btn--primary:active {
	background: #2563eb !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
.bs__btn--primary:hover,
.bs__btn--primary:focus { background: #1d4ed8 !important; }

.bs__btn--ghost,
button.bs__btn--ghost,
.bs__btn--ghost:hover,
.bs__btn--ghost:focus,
.bs__btn--ghost:active {
	background: #eff6ff !important;
	color: #2563eb !important;
	-webkit-text-fill-color: #2563eb !important;
}
.bs__btn--ghost:hover,
.bs__btn--ghost:focus { background: #dbeafe !important; }

.bs__btn--text,
button.bs__btn--text,
.bs__btn--text:hover,
.bs__btn--text:focus,
.bs__btn--text:active {
	background: transparent !important;
	color: #6b7280 !important;
	-webkit-text-fill-color: #6b7280 !important;
	min-height: 38px !important;
	font-weight: 500 !important;
}
.bs__btn--text:hover,
.bs__btn--text:focus { color: #1b3152 !important; -webkit-text-fill-color: #1b3152 !important; }

/* Manual entry block inside outcome sheet (used as fallback in error
   states where the user can still enter an EAN). */
.bs__sheet .bs__manual {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	margin: 14px 0 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.bs__manual-label {
	display: block !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	text-align: left !important;
}
.bs__sheet .bs__manual-input,
.bs__sheet input.bs__manual-input,
.bs__sheet input.bs__manual-input:focus {
	background: #fff !important;
	color: #1b3152 !important;
	border: 1px solid #e5e7eb !important;
	-webkit-text-fill-color: #1b3152 !important;
	border-radius: 10px !important;
	padding: 12px 14px !important;
	font-size: 16px !important;
}
.bs__sheet .bs__manual-input::placeholder,
.bs__sheet input.bs__manual-input::placeholder {
	color: #6b7280 !important;
	opacity: 1 !important;
}
.bs__sheet .bs__manual-btn,
.bs__sheet button.bs__manual-btn {
	background: #2563eb !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border-radius: 10px !important;
}

.bs__sheet-divider {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	margin: 16px 0 8px !important;
	color: #6b7280 !important;
	font-size: 12px !important;
	text-transform: uppercase !important;
	letter-spacing: .08em !important;
}
.bs__sheet-divider::before,
.bs__sheet-divider::after {
	content: '' !important;
	flex: 1 !important;
	height: 1px !important;
	background: #e5e7eb !important;
}

@keyframes ptPulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
@keyframes bsBeam { 0%, 100% { top: 18%; opacity: .95; } 50% { top: 82%; opacity: 1; } }
