/**
 * Lumo SmartChat AI — Widget Stylesheet (v3.0 "Edge")
 *
 * A squared, structural chat surface: hairline grids instead of soft bubbles,
 * larger type, tabular numerals for anything numeric, and geometry driven by a
 * single radius token (0 by default — corners stay sharp unless the store owner
 * dials a radius in Appearance).
 *
 * Everything is scoped to `.lsc-widget-container` so it never leaks into the
 * host theme, and every declaration carries `!important` because page builders
 * routinely reset third-party markup.
 *
 * Sections:
 *   1.  Design tokens
 *   2.  Scoped reset
 *   3.  Container & positioning
 *   4.  Launcher stack (label, toggle, badge, admin control)
 *   5.  Window shell
 *   6.  Header plate
 *   7.  Transcript viewport
 *   8.  Message rows (assistant slab, visitor slab, meta rule)
 *   9.  Welcome state
 *   10. Typing dots & staged progress meter
 *   11. Markdown internals
 *   12. Sources
 *   13. Product shelf
 *   14. Inline actions (CTA)
 *   15. Rating panel
 *   16. Lead capture
 *   17. Composer
 *   18. Footer
 *   19. Motion keyframes
 *   20. RTL
 *   21. Responsive
 *   22. Reduced motion / forced colors / print
 *   23. Paint guards
 */

/* =========================================================================
   1. DESIGN TOKENS
   ========================================================================= */
.lsc-widget-container {
	/* Brand — `--lsc-widget-primary` is written at runtime from settings. */
	--lsc-widget-primary: #0f62fe;
	--lsc-widget-primary-dark: color-mix(in srgb, var(--lsc-widget-primary) 78%, #000);
	--lsc-widget-primary-deep: color-mix(in srgb, var(--lsc-widget-primary) 58%, #000);
	--lsc-widget-primary-soft: color-mix(in srgb, var(--lsc-widget-primary) 12%, #ffffff);
	--lsc-widget-primary-tint: color-mix(in srgb, var(--lsc-widget-primary) 6%, #ffffff);
	--lsc-widget-primary-ink: #ffffff;
	--lsc-widget-user-bubble: var(--lsc-widget-primary);
	--lsc-widget-on-brand: rgba(255, 255, 255, 0.86);

	/* Surfaces */
	--lsc-widget-surface: #ffffff;
	--lsc-widget-surface-elevated: #ffffff;
	--lsc-widget-surface-muted: #f4f5f7;
	--lsc-widget-surface-sunken: #eceef3;
	--lsc-widget-divider: rgba(11, 18, 32, 0.12);
	--lsc-widget-line-strong: rgba(11, 18, 32, 0.22);

	/* Ink */
	--lsc-widget-text: #0b1220;
	--lsc-widget-text-muted: #45506a;
	--lsc-widget-text-subtle: #5d6675;
	--lsc-widget-danger: #c81e1e;
	--lsc-widget-success: #157f3d;
	--lsc-widget-warning: #a15c07;

	/* Geometry — one radius token drives the whole system. */
	--lsc-widget-width: 460px;
	--lsc-widget-height: 640px;
	--lsc-widget-radius: 0px;
	--lsc-widget-radius-sm: min(var(--lsc-widget-radius), 6px);
	--lsc-widget-bubble-radius: min(var(--lsc-widget-radius), 14px);
	--lsc-widget-icon-size: 60px;
	--lsc-widget-gutter: 18px;
	--lsc-widget-hairline: 1px;
	/* Above sticky purchase bars (~99990); below LVMC purchase popup (~9999999). */
	--lsc-widget-z: 1000000;

	/* Type */
	--lsc-widget-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Roboto, "Helvetica Neue", Arial, sans-serif;
	--lsc-widget-font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	--lsc-widget-font-size: 15px;
	--lsc-widget-label-size: 10.5px;
	--lsc-widget-label-track: 0.09em;
	--lsc-widget-text-align: start;
	--lsc-widget-leading: 1.62;

	/* Elevation */
	--lsc-widget-shadow-window: 0 34px 68px -30px rgba(11, 18, 32, 0.46), 0 14px 26px -20px rgba(11, 18, 32, 0.28);
	--lsc-widget-shadow-pill: 0 12px 26px -16px rgba(11, 18, 32, 0.42);
	--lsc-widget-shadow-fab: 0 16px 34px -14px color-mix(in srgb, var(--lsc-widget-primary) 68%, transparent);

	/* Motion */
	--lsc-widget-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--lsc-widget-ease-snap: cubic-bezier(0.22, 1, 0.36, 1);
	--lsc-widget-dur-fast: 140ms;
	--lsc-widget-dur-base: 220ms;
	--lsc-widget-dur-slow: 320ms;
}

/* =========================================================================
   2. SCOPED RESET
   ========================================================================= */
.lsc-widget-container,
.lsc-widget-container *,
.lsc-widget-container *::before,
.lsc-widget-container *::after {
	box-sizing: border-box !important;
	-webkit-font-smoothing: antialiased !important;
	-moz-osx-font-smoothing: grayscale !important;
	text-rendering: optimizeLegibility !important;
}

.lsc-widget-container,
.lsc-widget-container div,
.lsc-widget-container span,
.lsc-widget-container p,
.lsc-widget-container a,
.lsc-widget-container strong,
.lsc-widget-container b,
.lsc-widget-container em,
.lsc-widget-container i,
.lsc-widget-container h1,
.lsc-widget-container h2,
.lsc-widget-container h3,
.lsc-widget-container h4,
.lsc-widget-container h5,
.lsc-widget-container h6,
.lsc-widget-container ul,
.lsc-widget-container ol,
.lsc-widget-container li,
.lsc-widget-container pre,
.lsc-widget-container code,
.lsc-widget-container blockquote,
.lsc-widget-container table,
.lsc-widget-container th,
.lsc-widget-container td,
.lsc-widget-container hr,
.lsc-widget-container img,
.lsc-widget-container svg,
.lsc-widget-container button,
.lsc-widget-container textarea,
.lsc-widget-container input,
.lsc-widget-container label {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	outline: none !important;
	font: inherit !important;
	color: inherit !important;
	text-align: inherit !important;
	text-decoration: none !important;
	line-height: var(--lsc-widget-leading) !important;
	letter-spacing: inherit !important;
	vertical-align: baseline !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.lsc-widget-container button {
	cursor: pointer !important;
	font-family: inherit !important;
	background: transparent !important;
}

/* Keyboard focus on controls only — fields use a quiet border, not a brand halo. */
.lsc-widget-container button:focus-visible,
.lsc-widget-container a:focus-visible {
	outline: 2px solid var(--lsc-widget-primary) !important;
	outline-offset: 2px !important;
}

.lsc-widget-container .lsc-chat-header button:focus-visible {
	outline-color: #ffffff !important;
}

/* =========================================================================
   3. CONTAINER & POSITIONING
   ========================================================================= */
html body .lsc-widget-container,
body .lsc-widget-container,
.lsc-widget-container {
	position: fixed !important;
	bottom: 20px !important;
	right: 20px !important;
	z-index: var(--lsc-widget-z, 1000000) !important;
	isolation: isolate !important;
	font-family: var(--lsc-widget-font) !important;
	font-size: var(--lsc-widget-font-size) !important;
	color: var(--lsc-widget-text) !important;
	line-height: var(--lsc-widget-leading) !important;
	text-align: var(--lsc-widget-text-align) !important;
	pointer-events: none !important; /* children re-enable per element */
}

.lsc-widget-container > * {
	pointer-events: auto !important;
}

.lsc-widget-container.lsc-position-left {
	right: auto !important;
	left: 20px !important;
}

.lsc-widget-container[dir="rtl"],
.lsc-widget-container.lsc-rtl {
	direction: rtl !important;
}

/* =========================================================================
   4. LAUNCHER STACK
   ========================================================================= */
.lsc-widget-container .lsc-widget-fab-stack {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-end !important;
	justify-content: flex-end !important;
	gap: 10px !important;
	pointer-events: auto !important;
	z-index: 2 !important;
	/* Physical right edge — do not inherit page RTL or flex-end flips. */
	direction: ltr !important;
}

.lsc-widget-container:not(.lsc-position-left) .lsc-widget-fab-stack > .lsc-widget-label,
.lsc-widget-container:not(.lsc-position-left) .lsc-widget-fab-stack > .lsc-widget-toggle {
	margin-left: auto !important;
	margin-right: 0 !important;
}

.lsc-widget-container.lsc-position-left .lsc-widget-fab-stack {
	align-items: flex-start !important;
}

.lsc-widget-container.lsc-position-left .lsc-widget-fab-stack > .lsc-widget-label,
.lsc-widget-container.lsc-position-left .lsc-widget-fab-stack > .lsc-widget-toggle {
	margin-left: 0 !important;
	margin-right: auto !important;
}

.lsc-widget-container .lsc-widget-toggle {
	width: var(--lsc-widget-icon-size) !important;
	height: var(--lsc-widget-icon-size) !important;
	min-width: var(--lsc-widget-icon-size) !important;
	border-radius: var(--lsc-widget-radius) !important;
	background: var(--lsc-widget-primary) !important;
	color: #fff !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	position: relative !important;
	transition: transform var(--lsc-widget-dur-fast) var(--lsc-widget-ease-snap),
				box-shadow var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
	box-shadow: var(--lsc-widget-shadow-fab) !important;
	overflow: visible !important;
}

/* Sonar ring — squared to match the launcher plate. */
.lsc-widget-container .lsc-widget-toggle::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	border-radius: inherit !important;
	border: 2px solid color-mix(in srgb, var(--lsc-widget-primary) 55%, transparent) !important;
	opacity: 0 !important;
	z-index: -1 !important;
	animation: lscLauncherSonar 2.8s var(--lsc-widget-ease) infinite !important;
}

.lsc-widget-container .lsc-widget-toggle:hover {
	transform: translateY(-3px) !important;
	box-shadow: 0 22px 40px -16px color-mix(in srgb, var(--lsc-widget-primary) 72%, transparent) !important;
}

.lsc-widget-container .lsc-widget-toggle:active {
	transform: translateY(0) scale(0.97) !important;
}

.lsc-widget-container .lsc-widget-toggle svg {
	display: block !important;
	fill: currentColor !important;
	transition: transform var(--lsc-widget-dur-base) var(--lsc-widget-ease),
				opacity var(--lsc-widget-dur-fast) var(--lsc-widget-ease-snap) !important;
}

/* Chat + close icons share the same geometric center (fixes off-center presets). */
.lsc-widget-container .lsc-widget-toggle .lsc-icon-chat,
.lsc-widget-container .lsc-widget-toggle .lsc-toggle-custom-img {
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	margin: 0 !important;
	flex: none !important;
	pointer-events: none !important;
}

.lsc-widget-container .lsc-widget-toggle .lsc-icon-chat {
	width: 30px !important;
	height: 30px !important;
}

.lsc-widget-container .lsc-widget-toggle .lsc-toggle-custom-img {
	width: 58% !important;
	height: 58% !important;
	max-width: 58% !important;
	max-height: 58% !important;
	object-fit: contain !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
}

.lsc-widget-container .lsc-widget-toggle .lsc-icon-close {
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 28px !important;
	height: 28px !important;
	transform: translate(-50%, -50%) rotate(-90deg) scale(0.5) !important;
	opacity: 0 !important;
}

.lsc-widget-container.lsc-open .lsc-widget-toggle .lsc-icon-chat,
.lsc-widget-container.lsc-open .lsc-widget-toggle .lsc-toggle-custom-img {
	transform: translate(-50%, -50%) rotate(90deg) scale(0.5) !important;
	opacity: 0 !important;
}

.lsc-widget-container.lsc-open .lsc-widget-toggle .lsc-icon-close {
	transform: translate(-50%, -50%) rotate(0deg) scale(1) !important;
	opacity: 1 !important;
}

.lsc-widget-container.lsc-open .lsc-widget-toggle::before {
	animation: none !important;
	opacity: 0 !important;
}

.lsc-widget-container .lsc-widget-badge {
	position: absolute !important;
	top: -7px !important;
	right: -7px !important;
	min-width: 22px !important;
	height: 22px !important;
	padding: 0 6px !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	background: #e11d48 !important;
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	font-variant-numeric: tabular-nums !important;
	display: none !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
	border: 2px solid #fff !important;
	box-shadow: none !important;
}

.lsc-widget-container.lsc-position-left .lsc-widget-badge {
	right: auto !important;
	left: -7px !important;
}

.lsc-widget-container .lsc-widget-badge.lsc-visible {
	display: inline-flex !important;
}

/* Floating invitation chip */
.lsc-widget-container .lsc-widget-label {
	position: relative !important;
	bottom: auto !important;
	right: auto !important;
	background: #fff !important;
	color: var(--lsc-widget-text) !important;
	padding: 11px 15px !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-line-strong) !important;
	border-radius: var(--lsc-widget-radius) !important;
	font-size: 13.5px !important;
	font-weight: 650 !important;
	letter-spacing: -0.01em !important;
	white-space: nowrap !important;
	box-shadow: var(--lsc-widget-shadow-pill) !important;
	animation: lscLabelFloat 3.4s ease-in-out infinite !important;
	pointer-events: none !important;
	max-width: 250px !important;
	overflow: visible !important;
	text-overflow: ellipsis !important;
	direction: rtl !important;
	unicode-bidi: isolate !important;
	transition: opacity var(--lsc-widget-dur-base) var(--lsc-widget-ease),
				transform var(--lsc-widget-dur-base) var(--lsc-widget-ease) !important;
}

.lsc-widget-container:not(.lsc-rtl):not([dir="rtl"]) .lsc-widget-label {
	direction: ltr !important;
}

.lsc-widget-container .lsc-widget-label::after {
	content: "" !important;
	position: absolute !important;
	top: 100% !important;
	right: calc((var(--lsc-widget-icon-size) / 2) - 5px) !important;
	left: auto !important;
	bottom: auto !important;
	width: 10px !important;
	height: 10px !important;
	background: #fff !important;
	border-right: var(--lsc-widget-hairline) solid var(--lsc-widget-line-strong) !important;
	border-bottom: var(--lsc-widget-hairline) solid var(--lsc-widget-line-strong) !important;
	transform: translateY(-50%) rotate(45deg) !important;
}

.lsc-widget-container.lsc-position-left .lsc-widget-label::after {
	right: auto !important;
	left: calc((var(--lsc-widget-icon-size) / 2) - 5px) !important;
}

.lsc-widget-container.lsc-open .lsc-widget-label,
.lsc-widget-container .lsc-widget-label.lsc-label-hidden {
	opacity: 0 !important;
	transform: translateY(8px) !important;
	pointer-events: none !important;
}

/* Admin quick-hide — corner control on the launcher (admins only) */
.lsc-widget-container .lsc-admin-hide-btn {
	position: absolute !important;
	top: -7px !important;
	right: -7px !important;
	width: 26px !important;
	height: 26px !important;
	min-width: 26px !important;
	max-width: 26px !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	background: #e11d48 !important;
	color: #fff !important;
	border: 2px solid #fff !important;
	cursor: pointer !important;
	display: none !important;
	align-items: center !important;
	justify-content: center !important;
	z-index: 5 !important;
	box-shadow: 0 6px 14px -6px rgba(225, 29, 72, 0.65) !important;
	padding: 0 !important;
	line-height: 1 !important;
	pointer-events: auto !important;
	transition: transform var(--lsc-widget-dur-fast) var(--lsc-widget-ease-snap),
				background var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-admin-hide-btn svg {
	fill: #fff !important;
	width: 14px !important;
	height: 14px !important;
}

.lsc-widget-container:not(.lsc-open):hover .lsc-admin-hide-btn {
	display: inline-flex !important;
}

.lsc-widget-container .lsc-admin-hide-btn:hover {
	transform: scale(1.08) !important;
	background: #be123c !important;
}

.lsc-widget-container .lsc-admin-hide-btn:disabled {
	opacity: 0.65 !important;
	cursor: wait !important;
}

.lsc-widget-container.lsc-position-left .lsc-admin-hide-btn {
	right: auto !important;
	left: -7px !important;
}

.lsc-widget-container .lsc-admin-hide-btn .lsc-spin {
	animation: lscSpin 0.9s linear infinite !important;
}

/* =========================================================================
   5. WINDOW SHELL
   ========================================================================= */
.lsc-widget-container .lsc-chat-window {
	position: absolute !important;
	bottom: calc(var(--lsc-widget-icon-size) + 18px) !important;
	right: 0 !important;
	width: var(--lsc-widget-width) !important;
	height: var(--lsc-widget-height) !important;
	max-width: calc(100vw - 32px) !important;
	max-height: calc(100vh - 110px) !important;
	background: var(--lsc-widget-surface) !important;
	border-radius: var(--lsc-widget-radius) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-line-strong) !important;
	outline: 0 !important;
	box-shadow: var(--lsc-widget-shadow-window) !important;
	display: flex !important;
	flex-direction: column !important;
	overflow: hidden !important;
	opacity: 0 !important;
	transform: translateY(18px) scale(0.985) !important;
	transform-origin: bottom right !important;
	pointer-events: none !important;
	visibility: hidden !important;
	transition: opacity var(--lsc-widget-dur-base) var(--lsc-widget-ease),
				transform var(--lsc-widget-dur-slow) var(--lsc-widget-ease),
				visibility 0s linear var(--lsc-widget-dur-slow) !important;
}

.lsc-widget-container .lsc-chat-window::before,
.lsc-widget-container .lsc-chat-window::after {
	display: none !important;
	content: none !important;
}

.lsc-widget-container.lsc-position-left .lsc-chat-window {
	right: auto !important;
	left: 0 !important;
	transform-origin: bottom left !important;
}

.lsc-widget-container.lsc-open .lsc-chat-window {
	opacity: 1 !important;
	transform: translateY(0) scale(1) !important;
	pointer-events: auto !important;
	visibility: visible !important;
	transition-delay: 0s !important;
}

/* =========================================================================
   6. HEADER PLATE
   ========================================================================= */
.lsc-widget-container .lsc-chat-header {
	position: relative !important;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 12px !important;
	min-height: 66px !important;
	padding: 12px var(--lsc-widget-gutter) !important;
	background: var(--lsc-widget-primary) !important;
	color: #ffffff !important;
	flex-shrink: 0 !important;
	z-index: 2 !important;
	border: none !important;
	/* Physical bottom edge instead of a rounded lip. */
	box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.22) !important;
}

.lsc-widget-container .lsc-chat-header::after {
	display: none !important;
}

.lsc-widget-container .lsc-chat-header > .lsc-chat-avatar {
	position: relative !important;
	width: 40px !important;
	height: 40px !important;
	flex: 0 0 40px !important;
	max-width: 40px !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	overflow: visible !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #ffffff !important;
	background: rgba(255, 255, 255, 0.16) !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3) !important;
	flex-shrink: 0 !important;
	border: none !important;
	z-index: 1 !important;
	isolation: isolate !important;
}

.lsc-widget-container .lsc-chat-header > .lsc-chat-avatar img,
.lsc-widget-container .lsc-chat-header > .lsc-chat-avatar svg {
	position: relative !important;
	z-index: 0 !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
}

/* Presence marker — a square tick, not a dot. */
.lsc-widget-container .lsc-chat-header > .lsc-chat-avatar::after {
	content: "" !important;
	position: absolute !important;
	inset-inline-end: -3px !important;
	inset-block-end: -3px !important;
	width: 10px !important;
	height: 10px !important;
	border-radius: 0 !important;
	background: #22c55e !important;
	box-shadow: 0 0 0 2px var(--lsc-widget-primary) !important;
	z-index: 2 !important;
	pointer-events: none !important;
	animation: lscPresence 2.6s ease-in-out infinite !important;
}

.lsc-widget-container .lsc-chat-header-info {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	align-items: flex-start !important;
	justify-content: center !important;
	gap: 2px !important;
	background: transparent !important;
	color: #ffffff !important;
	padding: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	z-index: 1 !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	max-width: none !important;
}

[dir="rtl"] .lsc-widget-container .lsc-chat-header-info {
	align-items: flex-end !important;
}

.lsc-widget-container .lsc-chat-avatar img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.lsc-widget-container .lsc-chat-avatar svg {
	width: 20px !important;
	height: 20px !important;
	fill: #fff !important;
	opacity: 0.95 !important;
}

.lsc-widget-container .lsc-chat-header-name {
	font-size: 16px !important;
	font-weight: 750 !important;
	letter-spacing: -0.015em !important;
	color: #fff !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	line-height: 1.2 !important;
	max-width: 100% !important;
}

.lsc-widget-container .lsc-chat-header-status {
	display: block !important;
	font-size: 11.5px !important;
	font-weight: 600 !important;
	letter-spacing: 0.01em !important;
	color: var(--lsc-widget-on-brand) !important;
	line-height: 1.25 !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	max-width: 100% !important;
}

.lsc-widget-container .lsc-chat-header-actions {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	gap: 2px !important;
	margin-inline-start: auto !important;
	flex-shrink: 0 !important;
	position: relative !important;
	z-index: 3 !important;
}

.lsc-widget-container .lsc-chat-header-btn {
	width: 36px !important;
	height: 36px !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	background: transparent !important;
	color: #fff !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: background var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				transform var(--lsc-widget-dur-fast) var(--lsc-widget-ease-snap) !important;
}

.lsc-widget-container .lsc-chat-header-btn:hover {
	background: rgba(255, 255, 255, 0.18) !important;
}

.lsc-widget-container .lsc-chat-header-btn:active {
	transform: scale(0.92) !important;
}

.lsc-widget-container .lsc-chat-header-btn svg {
	width: 17px !important;
	height: 17px !important;
	fill: currentColor !important;
	opacity: 0.92 !important;
}

/* =========================================================================
   7. TRANSCRIPT VIEWPORT
   ========================================================================= */
.lsc-widget-container .lsc-chat-messages {
	flex: 1 1 auto !important;
	min-height: 0 !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	padding: 18px var(--lsc-widget-gutter) 16px !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
	background: var(--lsc-widget-surface) !important;
	scroll-behavior: smooth !important;
	overscroll-behavior: contain !important;
	position: relative !important;
	z-index: 1 !important;
	scrollbar-width: thin !important;
	scrollbar-color: var(--lsc-widget-line-strong) transparent !important;
}

.lsc-widget-container .lsc-chat-messages::-webkit-scrollbar {
	width: 8px !important;
}

.lsc-widget-container .lsc-chat-messages::-webkit-scrollbar-track {
	background: transparent !important;
}

.lsc-widget-container .lsc-chat-messages::-webkit-scrollbar-thumb {
	background: var(--lsc-widget-divider) !important;
	border-radius: 0 !important;
	border: 2px solid var(--lsc-widget-surface) !important;
}

.lsc-widget-container .lsc-chat-messages::-webkit-scrollbar-thumb:hover {
	background: var(--lsc-widget-line-strong) !important;
}

/* Scroll state — the transcript gains a top shadow once content moves. */
.lsc-widget-container .lsc-chat-window.lsc-is-scrolled .lsc-chat-messages {
	box-shadow: inset 0 8px 12px -12px rgba(11, 18, 32, 0.55) !important;
}

/* =========================================================================
   8. MESSAGE ROWS
   ========================================================================= */
.lsc-widget-container .lsc-message {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	width: auto !important;
	max-width: 92% !important;
	min-width: 0 !important;
	margin: 10px 0 0 !important;
	animation: lscMsgIn var(--lsc-widget-dur-base) var(--lsc-widget-ease) backwards !important;
}

.lsc-widget-container .lsc-message-bot {
	align-self: flex-start !important;
}

.lsc-widget-container .lsc-message-user {
	align-self: flex-end !important;
	flex-direction: row !important;
	justify-content: flex-end !important;
	max-width: 84% !important;
}

/* Grouped follow-ups tuck under the previous message and drop the avatar. */
.lsc-widget-container .lsc-message.lsc-msg-tail {
	margin-top: 4px !important;
}

.lsc-widget-container .lsc-message.lsc-msg-tail .lsc-message-avatar {
	visibility: hidden !important;
}

.lsc-widget-container .lsc-message-avatar {
	width: 32px !important;
	height: 32px !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	background: var(--lsc-widget-primary) !important;
	color: #fff !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	margin-top: 20px !important;
	overflow: hidden !important;
	box-shadow: inset 0 0 0 1px rgba(11, 18, 32, 0.12) !important;
}

.lsc-widget-container .lsc-message.lsc-msg-tail .lsc-message-avatar,
.lsc-widget-container .lsc-message.lsc-msg-no-meta .lsc-message-avatar {
	margin-top: 0 !important;
}

.lsc-widget-container .lsc-message-avatar img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	border-radius: 0 !important;
}

.lsc-widget-container .lsc-message-avatar svg {
	width: 16px !important;
	height: 16px !important;
	fill: currentColor !important;
}

.lsc-widget-container .lsc-message-user .lsc-message-avatar {
	display: none !important;
}

.lsc-widget-container .lsc-message-column {
	display: flex !important;
	flex-direction: column !important;
	gap: 5px !important;
	min-width: 0 !important;
	flex: 1 1 auto !important;
	max-width: 100% !important;
}

.lsc-widget-container .lsc-message-user .lsc-message-column {
	align-items: flex-end !important;
	flex: 0 1 auto !important;
}

/* Author line: name, a hairline rule that fills the row, then the timestamp. */
.lsc-widget-container .lsc-message-meta {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	min-width: 0 !important;
	width: 100% !important;
}

.lsc-widget-container .lsc-message-author {
	font-size: var(--lsc-widget-label-size) !important;
	font-weight: 800 !important;
	letter-spacing: var(--lsc-widget-label-track) !important;
	text-transform: uppercase !important;
	color: var(--lsc-widget-text-muted) !important;
	white-space: nowrap !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	max-width: 60% !important;
	line-height: 1.2 !important;
}

.lsc-widget-container .lsc-message-rule {
	flex: 1 1 auto !important;
	height: 1px !important;
	min-width: 8px !important;
	background: var(--lsc-widget-divider) !important;
}

.lsc-widget-container .lsc-message-time {
	font-size: 10.5px !important;
	font-weight: 600 !important;
	font-variant-numeric: tabular-nums !important;
	color: var(--lsc-widget-text-subtle) !important;
	white-space: nowrap !important;
	line-height: 1.2 !important;
}

.lsc-widget-container .lsc-message-bubble {
	display: block !important;
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	font-size: var(--lsc-widget-font-size) !important;
	line-height: var(--lsc-widget-leading) !important;
	word-wrap: break-word !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
	white-space: normal !important;
	color: var(--lsc-widget-text) !important;
	text-align: var(--lsc-widget-text-align) !important;
}

/* Assistant — flat slab on the panel tone. */
.lsc-widget-container .lsc-message-bot .lsc-message-bubble {
	background: var(--lsc-widget-surface-muted) !important;
	padding: 13px 15px !important;
	border-radius: var(--lsc-widget-bubble-radius) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	box-shadow: none !important;
}

/* Visitor — solid brand slab. */
.lsc-widget-container .lsc-message-user .lsc-message-bubble {
	flex: 0 1 auto !important;
	background: var(--lsc-widget-user-bubble) !important;
	color: var(--lsc-widget-primary-ink) !important;
	padding: 13px 15px !important;
	border-radius: var(--lsc-widget-bubble-radius) !important;
	border: none !important;
	box-shadow: none !important;
	max-width: 100% !important;
	font-weight: 500 !important;
}

/* Working state bubble */
.lsc-widget-container .lsc-message-bubble.lsc-bubble-typing {
	min-height: 42px !important;
	min-width: 64px !important;
	padding: 11px 14px !important;
	background: var(--lsc-widget-surface-muted) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	border-radius: var(--lsc-widget-bubble-radius) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
}

.lsc-widget-container .lsc-message-bubble.lsc-bubble-typing:has(.lsc-agent-progress) {
	width: min(300px, 74vw) !important;
	padding: 13px 14px !important;
}

/* =========================================================================
   9. WELCOME STATE
   ========================================================================= */
.lsc-widget-container .lsc-welcome-message {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	margin: 2px 0 14px !important;
	animation: lscMsgIn var(--lsc-widget-dur-slow) var(--lsc-widget-ease) backwards !important;
}

.lsc-widget-container .lsc-welcome-message .lsc-message-avatar {
	margin-top: 0 !important;
}

.lsc-widget-container .lsc-welcome-message .lsc-message-bubble {
	background: transparent !important;
	color: var(--lsc-widget-text) !important;
	padding: 4px 0 0 !important;
	font-size: calc(var(--lsc-widget-font-size) + 1px) !important;
	line-height: 1.55 !important;
	font-weight: 500 !important;
	max-width: calc(100% - 42px) !important;
}

/* =========================================================================
   10. TYPING DOTS & STAGED PROGRESS METER
   ========================================================================= */
.lsc-widget-container .lsc-typing-indicator {
	display: none !important;
	align-items: flex-start !important;
	gap: 10px !important;
	padding: 0 !important;
	margin: 10px 0 0 !important;
}

.lsc-widget-container .lsc-typing-indicator.lsc-visible {
	display: flex !important;
}

.lsc-widget-container .lsc-typing-indicator .lsc-message-avatar {
	margin-top: 0 !important;
}

.lsc-widget-container .lsc-typing-dots {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	padding: 14px 15px !important;
	background: var(--lsc-widget-surface-muted) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	border-radius: var(--lsc-widget-bubble-radius) !important;
}

.lsc-widget-container .lsc-typing-dots span {
	width: 6px !important;
	height: 6px !important;
	border-radius: 0 !important;
	background: var(--lsc-widget-primary) !important;
	opacity: 0.35 !important;
	animation: lscTypingTick 1.2s ease-in-out infinite !important;
}

.lsc-widget-container .lsc-typing-dots span:nth-child(2) { animation-delay: 0.14s !important; }
.lsc-widget-container .lsc-typing-dots span:nth-child(3) { animation-delay: 0.28s !important; }

.lsc-widget-container .lsc-agent-progress {
	--lsc-agent-progress: 0%;
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
	width: 100% !important;
	min-width: 0 !important;
}

.lsc-widget-container .lsc-agent-progress-head {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	gap: 10px !important;
	min-width: 0 !important;
}

.lsc-widget-container .lsc-agent-progress-label {
	font-size: 12.5px !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em !important;
	color: var(--lsc-widget-text) !important;
	line-height: 1.3 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	min-width: 0 !important;
}

.lsc-widget-container .lsc-agent-progress-value {
	font-size: 17px !important;
	font-weight: 800 !important;
	font-variant-numeric: tabular-nums !important;
	letter-spacing: -0.03em !important;
	color: var(--lsc-widget-primary) !important;
	line-height: 1 !important;
	flex: 0 0 auto !important;
}

/* Segmented meter: a repeating gradient makes the fill read as blocks. */
.lsc-widget-container .lsc-agent-progress-track {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	height: 10px !important;
	background-color: transparent !important;
	background-image: repeating-linear-gradient(90deg, var(--lsc-widget-surface-sunken) 0 12px, transparent 12px 15px) !important;
	background-position: left top !important;
	overflow: hidden !important;
}

.lsc-widget-container .lsc-agent-progress-fill {
	position: absolute !important;
	inset-block: 0 !important;
	inset-inline-start: 0 !important;
	display: block !important;
	width: var(--lsc-agent-progress, 0%) !important;
	background-image: repeating-linear-gradient(90deg, var(--lsc-widget-primary) 0 12px, transparent 12px 15px) !important;
	background-position: left top !important;
	transition: width 300ms var(--lsc-widget-ease) !important;
}

[dir="rtl"] .lsc-widget-container .lsc-agent-progress-track,
[dir="rtl"] .lsc-widget-container .lsc-agent-progress-fill {
	background-position: right top !important;
}

.lsc-widget-container .lsc-agent-progress-foot {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 10px !important;
	min-width: 0 !important;
}

.lsc-widget-container .lsc-agent-progress-hint {
	font-size: 11px !important;
	line-height: 1.35 !important;
	color: var(--lsc-widget-text-subtle) !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	min-width: 0 !important;
}

.lsc-widget-container .lsc-agent-progress-elapsed {
	font-size: 11px !important;
	font-weight: 700 !important;
	font-variant-numeric: tabular-nums !important;
	color: var(--lsc-widget-text-subtle) !important;
	flex: 0 0 auto !important;
	line-height: 1.35 !important;
}

/* =========================================================================
   11. MARKDOWN INTERNALS
   ========================================================================= */
.lsc-widget-container .lsc-message-bubble p {
	margin: 0 0 9px !important;
}

.lsc-widget-container .lsc-message-bubble p:last-child {
	margin-bottom: 0 !important;
}

.lsc-widget-container .lsc-message-bubble h1,
.lsc-widget-container .lsc-message-bubble h2,
.lsc-widget-container .lsc-message-bubble h3,
.lsc-widget-container .lsc-message-bubble h4 {
	font-weight: 750 !important;
	letter-spacing: -0.015em !important;
	margin: 14px 0 6px !important;
	line-height: 1.3 !important;
}

.lsc-widget-container .lsc-message-bubble h1 { font-size: calc(var(--lsc-widget-font-size) + 4px) !important; }
.lsc-widget-container .lsc-message-bubble h2 { font-size: calc(var(--lsc-widget-font-size) + 2px) !important; }
.lsc-widget-container .lsc-message-bubble h3,
.lsc-widget-container .lsc-message-bubble h4 { font-size: calc(var(--lsc-widget-font-size) + 1px) !important; }

.lsc-widget-container .lsc-message-bubble h1:first-child,
.lsc-widget-container .lsc-message-bubble h2:first-child,
.lsc-widget-container .lsc-message-bubble h3:first-child {
	margin-top: 0 !important;
}

.lsc-widget-container .lsc-message-bubble strong,
.lsc-widget-container .lsc-message-bubble b {
	font-weight: 750 !important;
}

.lsc-widget-container .lsc-message-bubble em,
.lsc-widget-container .lsc-message-bubble i {
	font-style: italic !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble a:not(.lsc-product-card):not(.lsc-cta-btn) {
	color: var(--lsc-widget-primary) !important;
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 3px !important;
	font-weight: 600 !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble a:not(.lsc-product-card):not(.lsc-cta-btn):hover {
	text-decoration-thickness: 2px !important;
}

.lsc-widget-container .lsc-message-user .lsc-message-bubble a {
	color: #fff !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	font-weight: 650 !important;
}

.lsc-widget-container .lsc-message-bubble code {
	background: var(--lsc-widget-surface-sunken) !important;
	color: var(--lsc-widget-text) !important;
	padding: 2px 6px !important;
	border-radius: 0 !important;
	font-family: var(--lsc-widget-font-mono) !important;
	font-size: 0.88em !important;
}

.lsc-widget-container .lsc-message-user .lsc-message-bubble code {
	background: rgba(0, 0, 0, 0.22) !important;
	color: #fff !important;
}

.lsc-widget-container .lsc-message-bubble pre {
	background: var(--lsc-widget-text) !important;
	color: #e7ebf3 !important;
	padding: 13px 14px !important;
	border-radius: 0 !important;
	overflow-x: auto !important;
	margin: 10px 0 !important;
	font-family: var(--lsc-widget-font-mono) !important;
	font-size: 0.86em !important;
	line-height: 1.55 !important;
}

.lsc-widget-container .lsc-message-bubble pre code {
	background: transparent !important;
	color: inherit !important;
	padding: 0 !important;
	border-radius: 0 !important;
}

.lsc-widget-container .lsc-message-bubble ul,
.lsc-widget-container .lsc-message-bubble ol {
	margin: 8px 0 !important;
	padding-inline-start: 20px !important;
	padding-inline-end: 0 !important;
}

.lsc-widget-container .lsc-message-bubble ul { list-style: none !important; }
.lsc-widget-container .lsc-message-bubble ol { list-style: decimal !important; }

.lsc-widget-container .lsc-message-bubble li {
	margin: 5px 0 !important;
	position: relative !important;
}

/* Square bullets carry the geometry into running text. */
.lsc-widget-container .lsc-message-bubble ul > li::before {
	content: "" !important;
	position: absolute !important;
	inset-inline-start: -14px !important;
	top: calc(0.62em - 1px) !important;
	width: 5px !important;
	height: 5px !important;
	background: var(--lsc-widget-primary) !important;
}

.lsc-widget-container .lsc-message-user .lsc-message-bubble ul > li::before {
	background: rgba(255, 255, 255, 0.85) !important;
}

.lsc-widget-container .lsc-message-bubble ol > li::marker {
	font-variant-numeric: tabular-nums !important;
	font-weight: 700 !important;
	color: var(--lsc-widget-primary) !important;
}

.lsc-widget-container .lsc-message-bubble blockquote {
	margin: 10px 0 !important;
	padding: 10px 13px !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	background: var(--lsc-widget-surface) !important;
	border-radius: 0 !important;
	font-style: normal !important;
	color: var(--lsc-widget-text-muted) !important;
}

.lsc-widget-container .lsc-message-bubble hr {
	height: 1px !important;
	background: var(--lsc-widget-divider) !important;
	margin: 12px 0 !important;
}

.lsc-widget-container .lsc-message-bubble img {
	max-width: 100% !important;
	height: auto !important;
	border-radius: 0 !important;
	margin: 8px 0 !important;
}

/* =========================================================================
   12. SOURCES
   ========================================================================= */
.lsc-widget-container .lsc-sources {
	margin-top: 12px !important;
	padding-top: 10px !important;
	border-top: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
}

.lsc-widget-container .lsc-sources-title {
	font-size: var(--lsc-widget-label-size) !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: var(--lsc-widget-label-track) !important;
	color: var(--lsc-widget-text-subtle) !important;
	margin-bottom: 8px !important;
}

.lsc-widget-container .lsc-source-link {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	padding: 5px 10px !important;
	margin: 0 6px 6px 0 !important;
	background: var(--lsc-widget-surface) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	color: var(--lsc-widget-text-muted) !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	max-width: 100% !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	transition: border-color var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				color var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				background var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-source-link:hover {
	background: var(--lsc-widget-primary-tint) !important;
	border-color: var(--lsc-widget-primary) !important;
	color: var(--lsc-widget-primary) !important;
}

/* =========================================================================
   13. PRODUCT SHELF
   ========================================================================= */
.lsc-widget-container .lsc-product-cards {
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
	margin-top: 14px !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card:hover,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card:focus,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card:visited,
.lsc-widget-container a.lsc-product-card,
.lsc-widget-container a.lsc-product-card:hover,
.lsc-widget-container a.lsc-product-card:focus,
.lsc-widget-container a.lsc-product-card:visited,
.lsc-widget-container a.lsc-product-card:active,
.lsc-widget-container .lsc-product-card {
	display: grid !important;
	grid-template-columns: 112px minmax(0, 1fr) !important;
	grid-template-areas: "media body" "action action" !important;
	gap: 0 !important;
	background: var(--lsc-widget-surface-elevated) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	overflow: hidden !important;
	cursor: pointer !important;
	transition: border-color var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				box-shadow var(--lsc-widget-dur-base) var(--lsc-widget-ease) !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	-webkit-text-decoration: none !important;
	text-underline-offset: unset !important;
	border-bottom: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	color: inherit !important;
	animation: lscCardIn var(--lsc-widget-dur-base) var(--lsc-widget-ease) backwards !important;
}

.lsc-widget-container .lsc-product-cards.lsc-shelf-single a.lsc-product-card,
.lsc-widget-container .lsc-product-cards.lsc-shelf-single .lsc-product-card {
	grid-template-columns: 140px minmax(0, 1fr) !important;
}

.lsc-widget-container .lsc-product-card:nth-child(2) { animation-delay: 60ms !important; }
.lsc-widget-container .lsc-product-card:nth-child(3) { animation-delay: 120ms !important; }
.lsc-widget-container .lsc-product-card:nth-child(4) { animation-delay: 180ms !important; }

.lsc-widget-container a.lsc-product-card .lsc-product-name,
.lsc-widget-container a.lsc-product-card .lsc-product-body,
.lsc-widget-container a.lsc-product-card .lsc-product-body span,
.lsc-widget-container a.lsc-product-card .lsc-product-body div,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card * {
	text-decoration: none !important;
	text-decoration-line: none !important;
	-webkit-text-decoration: none !important;
	border-bottom: none !important;
}

.lsc-widget-container a.lsc-product-card:hover,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card:hover {
	border-color: var(--lsc-widget-primary) !important;
	box-shadow: 0 14px 28px -20px rgba(11, 18, 32, 0.55) !important;
}

.lsc-widget-container .lsc-product-media {
	grid-area: media !important;
	position: relative !important;
	background: var(--lsc-widget-surface-sunken) !important;
	aspect-ratio: 1 / 1 !important;
	min-height: 112px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	overflow: hidden !important;
	border-inline-end: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
}

.lsc-widget-container .lsc-product-media img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	border-radius: 0 !important;
	margin: 0 !important;
	transition: transform var(--lsc-widget-dur-slow) var(--lsc-widget-ease) !important;
}

.lsc-widget-container a.lsc-product-card:hover .lsc-product-media img {
	transform: scale(1.05) !important;
}

.lsc-widget-container .lsc-product-media svg {
	width: 30px !important;
	height: 30px !important;
	fill: var(--lsc-widget-text-subtle) !important;
	opacity: 0.5 !important;
}

.lsc-widget-container .lsc-product-badge {
	position: absolute !important;
	top: 0 !important;
	inset-inline-start: 0 !important;
	background: var(--lsc-widget-primary) !important;
	color: #fff !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	padding: 4px 8px !important;
	border-radius: 0 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.07em !important;
	line-height: 1.1 !important;
	z-index: 1 !important;
}

.lsc-widget-container .lsc-product-badge.lsc-badge-low_stock {
	background: var(--lsc-widget-warning) !important;
}

.lsc-widget-container .lsc-product-body {
	grid-area: body !important;
	padding: 12px 14px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	gap: 5px !important;
	min-width: 0 !important;
}

.lsc-widget-container .lsc-product-cat {
	font-size: var(--lsc-widget-label-size) !important;
	font-weight: 800 !important;
	letter-spacing: var(--lsc-widget-label-track) !important;
	text-transform: uppercase !important;
	color: var(--lsc-widget-text-subtle) !important;
	line-height: 1.2 !important;
	max-width: 100% !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble .lsc-product-name,
.lsc-widget-container .lsc-product-name {
	font-size: calc(var(--lsc-widget-font-size) - 1px) !important;
	font-weight: 700 !important;
	letter-spacing: -0.01em !important;
	color: var(--lsc-widget-text) !important;
	line-height: 1.35 !important;
	margin: 0 !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
	text-decoration: none !important;
	-webkit-text-decoration: none !important;
	max-width: 100% !important;
}

.lsc-widget-container .lsc-product-rating {
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	font-size: 11.5px !important;
	font-weight: 700 !important;
	font-variant-numeric: tabular-nums !important;
	color: var(--lsc-widget-text-muted) !important;
	line-height: 1.2 !important;
}

.lsc-widget-container .lsc-product-rating svg {
	width: 13px !important;
	height: 13px !important;
	fill: #e0a209 !important;
	flex: 0 0 auto !important;
}

.lsc-widget-container .lsc-product-rating span {
	color: var(--lsc-widget-text-subtle) !important;
	font-weight: 600 !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble .lsc-product-price,
.lsc-widget-container .lsc-product-price {
	font-size: calc(var(--lsc-widget-font-size) + 2px) !important;
	font-weight: 800 !important;
	letter-spacing: -0.02em !important;
	font-variant-numeric: tabular-nums !important;
	color: var(--lsc-widget-text) !important;
	display: flex !important;
	align-items: baseline !important;
	gap: 8px !important;
	flex-wrap: wrap !important;
	line-height: 1.2 !important;
}

.lsc-widget-container a.lsc-product-card .lsc-product-price,
.lsc-widget-container a.lsc-product-card .lsc-product-price a,
.lsc-widget-container a.lsc-product-card .lsc-product-price span,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card .lsc-product-price,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card .lsc-product-price a {
	text-decoration: none !important;
	text-decoration-line: none !important;
	-webkit-text-decoration: none !important;
	border-bottom: none !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble .lsc-product-price del,
.lsc-widget-container .lsc-product-price del {
	color: var(--lsc-widget-text-subtle) !important;
	font-weight: 600 !important;
	text-decoration: line-through !important;
	font-size: 0.76em !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble .lsc-product-price ins,
.lsc-widget-container .lsc-product-price ins {
	background: transparent !important;
	color: var(--lsc-widget-text) !important;
	text-decoration: none !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble .lsc-product-stock.lsc-out-of-stock,
.lsc-widget-container .lsc-product-stock.lsc-out-of-stock {
	color: var(--lsc-widget-danger) !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
}

/* Action row spans the card and inverts on hover. */
.lsc-widget-container .lsc-product-action {
	grid-area: action !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 8px !important;
	padding: 10px 14px !important;
	border-top: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	background: var(--lsc-widget-surface) !important;
	color: var(--lsc-widget-primary) !important;
	font-size: 11.5px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.07em !important;
	transition: background var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				color var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-product-action svg {
	width: 15px !important;
	height: 15px !important;
	fill: currentColor !important;
	flex: 0 0 auto !important;
	transition: transform var(--lsc-widget-dur-base) var(--lsc-widget-ease) !important;
}

[dir="rtl"] .lsc-widget-container .lsc-product-action svg {
	transform: scaleX(-1) !important;
}

.lsc-widget-container a.lsc-product-card:hover .lsc-product-action {
	background: var(--lsc-widget-primary) !important;
	color: #fff !important;
}

.lsc-widget-container a.lsc-product-card:hover .lsc-product-action svg {
	transform: translateX(4px) !important;
}

[dir="rtl"] .lsc-widget-container a.lsc-product-card:hover .lsc-product-action svg {
	transform: scaleX(-1) translateX(4px) !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble .lsc-product-btn {
	display: none !important; /* the whole card is the affordance */
}

/* Loading placeholders mirror the real card geometry. */
.lsc-widget-container .lsc-product-card.lsc-skeleton {
	pointer-events: none !important;
	animation: none !important;
}

.lsc-widget-container .lsc-product-card.lsc-skeleton .lsc-product-media,
.lsc-widget-container .lsc-product-card.lsc-skeleton .lsc-skeleton-line {
	background: linear-gradient(90deg, var(--lsc-widget-surface-muted) 0%, var(--lsc-widget-surface-sunken) 50%, var(--lsc-widget-surface-muted) 100%) !important;
	background-size: 200% 100% !important;
	animation: lscShimmer 1.5s linear infinite !important;
}

.lsc-widget-container .lsc-product-card.lsc-skeleton .lsc-skeleton-line {
	height: 11px !important;
	width: 100% !important;
	display: block !important;
}

.lsc-widget-container .lsc-product-card.lsc-skeleton .lsc-skeleton-title { width: 78% !important; }
.lsc-widget-container .lsc-product-card.lsc-skeleton .lsc-skeleton-price { width: 42% !important; height: 15px !important; }
.lsc-widget-container .lsc-product-card.lsc-skeleton .lsc-skeleton-btn { width: 30% !important; height: 9px !important; }

/* =========================================================================
   14. INLINE ACTIONS (CTA)
   ========================================================================= */
.lsc-widget-container .lsc-cta-buttons {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin-top: 14px !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-cta-btn,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-cta-btn:hover,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-cta-btn:focus,
.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-cta-btn:visited,
.lsc-widget-container a.lsc-cta-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	padding: 11px 16px !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	background: var(--lsc-widget-primary) !important;
	color: #fff !important;
	font-size: 12.5px !important;
	font-weight: 750 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.01em !important;
	text-decoration: none !important;
	border: none !important;
	box-shadow: none !important;
	transition: background var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				transform var(--lsc-widget-dur-fast) var(--lsc-widget-ease-snap) !important;
	cursor: pointer !important;
}

.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-cta-btn:hover,
.lsc-widget-container a.lsc-cta-btn:hover {
	background: var(--lsc-widget-primary-dark) !important;
	transform: translateY(-1px) !important;
	text-decoration: none !important;
	color: #fff !important;
}

/* =========================================================================
   15. RATING PANEL
   ========================================================================= */
.lsc-widget-container .lsc-rating-card {
	margin: 14px 0 4px !important;
	padding: 16px !important;
	background: var(--lsc-widget-surface) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 10px !important;
	animation: lscCardIn var(--lsc-widget-dur-base) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-rating-prompt {
	font-size: 12.5px !important;
	font-weight: 700 !important;
	color: var(--lsc-widget-text) !important;
	text-align: center !important;
}

.lsc-widget-container .lsc-rating-stars {
	display: flex !important;
	gap: 4px !important;
}

.lsc-widget-container .lsc-rating-star {
	width: 36px !important;
	height: 36px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	transition: transform var(--lsc-widget-dur-fast) var(--lsc-widget-ease-snap),
				background var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
	background: var(--lsc-widget-surface-muted) !important;
}

.lsc-widget-container .lsc-rating-star svg {
	width: 20px !important;
	height: 20px !important;
	fill: var(--lsc-widget-text-subtle) !important;
	opacity: 0.45 !important;
	transition: fill var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				opacity var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-rating-star:hover {
	transform: translateY(-2px) !important;
	background: var(--lsc-widget-surface-sunken) !important;
}

.lsc-widget-container .lsc-rating-star.lsc-star-active svg,
.lsc-widget-container .lsc-rating-star.lsc-star-chosen svg {
	fill: #e0a209 !important;
	opacity: 1 !important;
}

.lsc-widget-container .lsc-rating-star.lsc-star-chosen {
	animation: lscStarPop 0.36s var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-rating-star:disabled {
	cursor: default !important;
	opacity: 0.7 !important;
}

.lsc-widget-container .lsc-rating-thanks {
	font-size: 12px !important;
	font-weight: 600 !important;
	color: var(--lsc-widget-text-muted) !important;
	text-align: center !important;
}

/* =========================================================================
   16. LEAD CAPTURE
   ========================================================================= */
.lsc-widget-container .lsc-lead-overlay {
	position: absolute !important;
	inset: 0 !important;
	background: color-mix(in srgb, var(--lsc-widget-text) 62%, transparent) !important;
	z-index: 5 !important;
	display: none !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 22px !important;
	border-radius: var(--lsc-widget-radius) !important;
	opacity: 0 !important;
	transition: opacity var(--lsc-widget-dur-base) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-lead-overlay.lsc-visible {
	display: flex !important;
	opacity: 1 !important;
}

.lsc-widget-container .lsc-lead-card {
	background: var(--lsc-widget-surface) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-line-strong) !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	padding: 22px 20px !important;
	width: 100% !important;
	max-width: 330px !important;
	box-shadow: var(--lsc-widget-shadow-window) !important;
	animation: lscCardIn var(--lsc-widget-dur-base) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-lead-title {
	font-size: 17px !important;
	font-weight: 780 !important;
	letter-spacing: -0.02em !important;
	color: var(--lsc-widget-text) !important;
	margin: 0 0 6px !important;
}

.lsc-widget-container .lsc-lead-desc {
	font-size: 13px !important;
	color: var(--lsc-widget-text-muted) !important;
	margin: 0 0 16px !important;
	line-height: 1.55 !important;
}

.lsc-widget-container .lsc-lead-error {
	display: none !important;
	background: color-mix(in srgb, var(--lsc-widget-danger) 8%, #fff) !important;
	border: var(--lsc-widget-hairline) solid color-mix(in srgb, var(--lsc-widget-danger) 35%, #fff) !important;
	color: var(--lsc-widget-danger) !important;
	padding: 9px 12px !important;
	border-radius: 0 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	margin-bottom: 12px !important;
}

.lsc-widget-container .lsc-lead-error.lsc-visible {
	display: block !important;
}

.lsc-widget-container .lsc-lead-fields {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
	margin-bottom: 16px !important;
}

.lsc-widget-container .lsc-lead-label {
	font-size: var(--lsc-widget-label-size) !important;
	font-weight: 800 !important;
	letter-spacing: var(--lsc-widget-label-track) !important;
	text-transform: uppercase !important;
	color: var(--lsc-widget-text-muted) !important;
	margin: 0 0 6px !important;
	display: block !important;
}

.lsc-widget-container .lsc-lead-input {
	width: 100% !important;
	padding: 11px 13px !important;
	background: var(--lsc-widget-surface-muted) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	border-radius: 0 !important;
	font-size: 14px !important;
	color: var(--lsc-widget-text) !important;
	transition: background var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				border-color var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				box-shadow var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-lead-input::placeholder {
	color: var(--lsc-widget-text-muted) !important;
	opacity: 1 !important;
}

.lsc-widget-container .lsc-lead-input:focus {
	outline: none !important;
	background: #fff !important;
	border-color: var(--lsc-widget-text-muted) !important;
	box-shadow: none !important;
}

.lsc-widget-container .lsc-lead-actions {
	display: flex !important;
	justify-content: stretch !important;
}

.lsc-widget-container .lsc-lead-btn {
	background: var(--lsc-widget-primary) !important;
	color: #fff !important;
	padding: 12px 18px !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	font-size: 13.5px !important;
	font-weight: 750 !important;
	width: 100% !important;
	transition: background var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				transform var(--lsc-widget-dur-fast) var(--lsc-widget-ease-snap) !important;
}

.lsc-widget-container .lsc-lead-btn:hover:not(:disabled) {
	background: var(--lsc-widget-primary-dark) !important;
}

.lsc-widget-container .lsc-lead-btn:active:not(:disabled) {
	transform: scale(0.99) !important;
}

.lsc-widget-container .lsc-lead-btn:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed !important;
}

/* =========================================================================
   17. COMPOSER
   ========================================================================= */
.lsc-widget-container .lsc-chat-header,
.lsc-widget-container .lsc-chat-input-area,
.lsc-widget-container .lsc-chat-footer {
	flex-shrink: 0 !important;
}

.lsc-widget-container .lsc-chat-input-area {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 6px !important;
	padding: 12px var(--lsc-widget-gutter) 10px !important;
	background: var(--lsc-widget-surface) !important;
	border-top: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
	position: relative !important;
	z-index: 2 !important;
}

.lsc-widget-container .lsc-chat-input-wrap {
	display: flex !important;
	align-items: stretch !important;
	gap: 0 !important;
	background: var(--lsc-widget-surface-muted) !important;
	border: var(--lsc-widget-hairline) solid var(--lsc-widget-line-strong) !important;
	border-radius: var(--lsc-widget-radius-sm) !important;
	padding: 0 !important;
	overflow: hidden !important;
	transition: background var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				border-color var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				box-shadow var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-chat-input-wrap:focus-within {
	background: #fff !important;
	border-color: var(--lsc-widget-text-muted) !important;
	box-shadow: none !important;
}

.lsc-widget-container .lsc-chat-input,
.lsc-widget-container .lsc-chat-input:focus,
.lsc-widget-container .lsc-chat-input:focus-visible,
.lsc-widget-container .lsc-chat-input:active {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	min-height: 46px !important;
	max-height: 132px !important;
	width: 100% !important;
	background: transparent !important;
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
	resize: none !important;
	font-size: var(--lsc-widget-font-size) !important;
	color: var(--lsc-widget-text) !important;
	line-height: 22px !important;
	padding-block: 12px !important;
	padding-inline: 14px 10px !important;
	font-family: inherit !important;
	scrollbar-width: thin !important;
	scrollbar-color: var(--lsc-widget-line-strong) transparent !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	overflow-y: auto !important;
}

.lsc-widget-container .lsc-chat-input::-webkit-scrollbar {
	width: 5px !important;
}

.lsc-widget-container .lsc-chat-input::-webkit-scrollbar-track {
	background: transparent !important;
}

.lsc-widget-container .lsc-chat-input::-webkit-scrollbar-thumb {
	background: var(--lsc-widget-line-strong) !important;
	border-radius: 0 !important;
}

.lsc-widget-container .lsc-chat-input::placeholder {
	color: var(--lsc-widget-text-muted) !important;
	opacity: 1 !important;
}

.lsc-widget-container .lsc-chat-input:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed !important;
}

/* Send key sits flush inside the field frame. */
.lsc-widget-container .lsc-chat-send {
	width: 48px !important;
	min-width: 48px !important;
	height: auto !important;
	align-self: stretch !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-inline-start: var(--lsc-widget-hairline) solid color-mix(in srgb, var(--lsc-widget-primary) 55%, #fff) !important;
	border-radius: 0 !important;
	background: var(--lsc-widget-primary) !important;
	color: #fff !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	box-shadow: none !important;
	transition: background var(--lsc-widget-dur-fast) var(--lsc-widget-ease),
				opacity var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-chat-send svg {
	width: 18px !important;
	height: 18px !important;
	fill: currentColor !important;
	display: block !important;
	flex-shrink: 0 !important;
	transition: transform var(--lsc-widget-dur-fast) var(--lsc-widget-ease-snap) !important;
}

.lsc-widget-container .lsc-chat-send:hover:not(:disabled) {
	background: var(--lsc-widget-primary-dark) !important;
}

.lsc-widget-container .lsc-chat-send:hover:not(:disabled) svg {
	transform: translateX(2px) !important;
}

.lsc-widget-container .lsc-chat-send:active:not(:disabled) svg {
	transform: translateX(0) scale(0.92) !important;
}

.lsc-widget-container .lsc-chat-send:disabled {
	background: var(--lsc-widget-surface-sunken) !important;
	color: var(--lsc-widget-text-subtle) !important;
	border-inline-start-color: var(--lsc-widget-divider) !important;
	cursor: not-allowed !important;
	box-shadow: none !important;
}

[dir="rtl"] .lsc-widget-container .lsc-chat-send svg {
	transform: scaleX(-1) !important;
}

[dir="rtl"] .lsc-widget-container .lsc-chat-send:hover:not(:disabled) svg {
	transform: scaleX(-1) translateX(2px) !important;
}

.lsc-widget-container .lsc-chat-input-meta {
	display: none !important;
	align-items: center !important;
	justify-content: flex-end !important;
	padding-inline: 2px !important;
	min-height: 14px !important;
	pointer-events: none !important;
}

.lsc-widget-container .lsc-chat-input-meta.is-visible {
	display: flex !important;
}

.lsc-widget-container .lsc-char-count {
	position: static !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	font-variant-numeric: tabular-nums !important;
	color: var(--lsc-widget-text-subtle) !important;
	text-align: end !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 1 !important;
}

.lsc-widget-container .lsc-char-count.lsc-limit-near {
	color: var(--lsc-widget-warning) !important;
}

.lsc-widget-container .lsc-char-count.lsc-limit-reached {
	color: var(--lsc-widget-danger) !important;
}

/* Honeypot is always hidden */
.lsc-widget-container .lsc-hp-field {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* =========================================================================
   18. FOOTER
   ========================================================================= */
.lsc-widget-container .lsc-chat-footer {
	padding: 8px var(--lsc-widget-gutter) 10px !important;
	background: var(--lsc-widget-surface) !important;
	text-align: center !important;
	font-size: 10.5px !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
	color: var(--lsc-widget-text-subtle) !important;
	border-top: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
}

.lsc-widget-container .lsc-chat-footer a {
	color: var(--lsc-widget-text-muted) !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	transition: color var(--lsc-widget-dur-fast) var(--lsc-widget-ease) !important;
}

.lsc-widget-container .lsc-chat-footer a:hover {
	color: var(--lsc-widget-primary) !important;
}

/* =========================================================================
   19. MOTION KEYFRAMES
   ========================================================================= */
@keyframes lscLauncherSonar {
	0%   { transform: scale(1); opacity: 0.6; }
	70%  { transform: scale(1.28); opacity: 0; }
	100% { transform: scale(1.28); opacity: 0; }
}

@keyframes lscLabelFloat {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-3px); }
}

@keyframes lscPresence {
	0%, 100% { opacity: 1; }
	55%      { opacity: 0.55; }
}

@keyframes lscMsgIn {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}

@keyframes lscCardIn {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

@keyframes lscTypingTick {
	0%, 100% { opacity: 0.28; transform: translateY(0); }
	40%      { opacity: 1;    transform: translateY(-3px); }
}

@keyframes lscShimmer {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

@keyframes lscStarPop {
	0%   { transform: scale(1); }
	50%  { transform: scale(1.22); }
	100% { transform: scale(1); }
}

@keyframes lscSpin {
	to { transform: rotate(360deg); }
}

/* =========================================================================
   20. RTL
   ========================================================================= */
.lsc-widget-container[dir="rtl"] .lsc-chat-header-actions {
	margin-inline-start: auto !important;
}

.lsc-widget-container[dir="rtl"] .lsc-source-link {
	margin: 0 0 6px 6px !important;
}

/* =========================================================================
   21. RESPONSIVE
   ========================================================================= */
@media screen and (max-width: 560px) {
	html body .lsc-widget-container,
	body .lsc-widget-container,
	.lsc-widget-container {
		bottom: 16px !important;
		right: 16px !important;
		--lsc-widget-gutter: 15px;
	}

	.lsc-widget-container.lsc-position-left {
		left: 16px !important;
	}

	.lsc-widget-container .lsc-chat-window {
		position: fixed !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
		max-width: 100% !important;
		max-height: 100% !important;
		border-radius: 0 !important;
		border: 0 !important;
	}

	.lsc-widget-container .lsc-chat-header {
		min-height: 60px !important;
		padding-block: 10px !important;
	}

	.lsc-widget-container .lsc-message {
		max-width: 96% !important;
	}

	.lsc-widget-container .lsc-message-user {
		max-width: 90% !important;
	}

	/* Matches the base rule's specificity so the narrow media column wins. */
	.lsc-widget-container .lsc-message-bot .lsc-message-bubble a.lsc-product-card,
	.lsc-widget-container .lsc-message-bot .lsc-message-bubble .lsc-product-card,
	.lsc-widget-container .lsc-product-cards.lsc-shelf-single a.lsc-product-card,
	.lsc-widget-container a.lsc-product-card,
	.lsc-widget-container .lsc-product-card {
		grid-template-columns: 96px minmax(0, 1fr) !important;
	}

	.lsc-widget-container .lsc-product-media {
		min-height: 96px !important;
	}
}

@media screen and (max-width: 768px) {
	.lsc-widget-container .lsc-widget-label {
		display: none !important;
	}
}

/* Short viewports: never let the window outgrow the screen. */
@media screen and (max-height: 720px) and (min-width: 561px) {
	.lsc-widget-container .lsc-chat-window {
		height: min(var(--lsc-widget-height), calc(100vh - 110px)) !important;
	}
}

/* =========================================================================
   22. REDUCED MOTION / FORCED COLORS / PRINT
   ========================================================================= */
@media (prefers-reduced-motion: reduce) {
	.lsc-widget-container *,
	.lsc-widget-container *::before,
	.lsc-widget-container *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.lsc-widget-container .lsc-chat-window {
		transform: none !important;
	}
}

@media (forced-colors: active) {
	.lsc-widget-container .lsc-chat-window,
	.lsc-widget-container .lsc-product-card,
	.lsc-widget-container .lsc-chat-input-wrap,
	.lsc-widget-container .lsc-message-bot .lsc-message-bubble {
		border: 1px solid CanvasText !important;
	}

	.lsc-widget-container .lsc-agent-progress-fill {
		background: Highlight !important;
	}
}

@media print {
	.lsc-widget-container {
		display: none !important;
	}
}

/* =========================================================================
   23. PAINT GUARDS — beat the scoped reset plus aggressive theme/builder rules
   ========================================================================= */
.lsc-widget-container.lsc-widget-container .lsc-chat-window > .lsc-chat-header.lsc-chat-header {
	background: var(--lsc-widget-primary, #0f62fe) !important;
	color: #ffffff !important;
}

.lsc-widget-container.lsc-widget-container .lsc-chat-header .lsc-chat-header-name,
.lsc-widget-container.lsc-widget-container .lsc-chat-header .lsc-chat-header-info {
	color: #ffffff !important;
}

.lsc-widget-container.lsc-widget-container .lsc-chat-header .lsc-chat-header-status {
	color: var(--lsc-widget-on-brand) !important;
}

.lsc-widget-container.lsc-widget-container .lsc-chat-header.lsc-chat-header {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
}

.lsc-widget-container.lsc-widget-container .lsc-chat-window.lsc-chat-window {
	outline: 0 !important;
	box-shadow: var(--lsc-widget-shadow-window) !important;
}

/* Message layout guard — theme resets must not crush slab width. */
.lsc-widget-container.lsc-widget-container .lsc-message-user .lsc-message-bubble {
	display: block !important;
	width: auto !important;
	min-width: 2.5em !important;
	max-width: 100% !important;
	white-space: normal !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
}

.lsc-widget-container.lsc-widget-container .lsc-message-bot .lsc-message-bubble {
	display: block !important;
	width: auto !important;
	max-width: 100% !important;
	background: var(--lsc-widget-surface-muted) !important;
}

/* Legacy markup alias: older cached widget scripts render `.lsc-product-thumb`. */
.lsc-widget-container .lsc-product-thumb {
	grid-area: media !important;
	position: relative !important;
	background: var(--lsc-widget-surface-sunken) !important;
	min-height: 112px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	overflow: hidden !important;
	border-inline-end: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
}

.lsc-widget-container .lsc-product-thumb img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	margin: 0 !important;
}

/* Admin-only failure note: shown inside a failed bubble for users who can fix it. */
.lsc-widget-container .lsc-admin-error-note {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 8px !important;
	margin-block-start: 10px !important;
	padding-block-start: 8px !important;
	border-block-start: var(--lsc-widget-hairline) solid var(--lsc-widget-divider) !important;
}

.lsc-widget-container .lsc-admin-error-detail {
	flex: 1 1 100% !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
	font-size: 0.78em !important;
	line-height: 1.6 !important;
	color: var(--lsc-widget-text-muted) !important;
	background: transparent !important;
	padding: 0 !important;
	direction: ltr !important;
	unicode-bidi: plaintext !important;
	word-break: break-word !important;
}

.lsc-widget-container .lsc-admin-error-link {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important;
	font-size: 0.75em !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	color: var(--lsc-widget-primary) !important;
	text-decoration: underline !important;
	direction: ltr !important;
}