/**
 * Lev AI Assistant — estilos de la tarjeta embebida en la página de producto.
 * Prefijo lev- en todas las clases, siguiendo la convención del proyecto.
 */

#lev-ai-widget-root {
	--lev-ai-primary: #e30613; /* Ajustar al color de marca real de Levapan si difiere */
	--lev-ai-primary-dark: #b8050f;
	--lev-ai-card-bg: #fdecea;
	--lev-ai-text: #2b2b2b;
	--lev-ai-radius: 20px;

	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	max-width: 640px;
	width: 100%;
	box-sizing: border-box;
}

#lev-ai-widget-root *,
#lev-ai-widget-root *::before,
#lev-ai-widget-root *::after {
	box-sizing: border-box;
}

/* Blindaje defensivo: el sitio corre sobre Elementor con estilos globales para
   <button> e <img> (bordes, texto centrado, color de tema, posicionamiento de
   lazy-load) que pueden filtrarse y pisar los estilos propios del widget.
   Se refuerzan aquí las propiedades visuales clave con !important. */
#lev-ai-widget-root img {
	max-width: 100% !important;
	height: auto !important;
	position: static !important;
	border: none !important;
}

#lev-ai-widget-root button {
	text-align: left;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.lev-ai-card {
	background: var(--lev-ai-card-bg);
	border-radius: var(--lev-ai-radius);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

/* --- Encabezado: título + mascota --- */
.lev-ai-card-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}

.lev-ai-header-text {
	flex: 1;
	min-width: 0;
}

.lev-ai-badge-title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 6px;
}

.lev-ai-badge-icon {
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	object-fit: contain;
}

.lev-ai-title {
	font-size: 20px;
	font-weight: 800;
	color: var(--lev-ai-text);
}

.lev-ai-subtitle {
	margin: 0;
	font-size: 14px;
	color: #5c5c5c;
	line-height: 1.4;
}

.lev-ai-mascot {
	width: 110px;
	height: auto;
	flex-shrink: 0;
	object-fit: contain;
}

/* --- Preguntas sugeridas --- */
.lev-ai-suggestions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.lev-ai-suggestion-chip {
	background: #ffffff !important;
	border: none !important;
	border-radius: 999px !important;
	padding: 14px 18px !important;
	text-align: left !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	color: var(--lev-ai-text) !important;
	cursor: pointer;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	font-family: inherit;
	line-height: 1.4;
}

.lev-ai-suggestion-chip:hover {
	transform: translateY(-1px);
	box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
}

/* --- Hilo de mensajes (oculto hasta que se envía la primera pregunta) --- */
.lev-ai-messages {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-height: 360px;
	overflow-y: auto;
	padding-right: 4px;
}

.lev-ai-message-row {
	display: flex;
	align-items: flex-end;
	gap: 8px;
}

.lev-ai-message-row--user {
	justify-content: flex-end;
}

.lev-ai-avatar {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	flex-shrink: 0;
	object-fit: contain;
	background: #ffffff;
	padding: 3px;
}

.lev-ai-message {
	max-width: 78%;
	padding: 10px 14px;
	border-radius: 16px;
	font-size: 14px;
	line-height: 1.4;
	white-space: pre-wrap;
	word-wrap: break-word;
}

.lev-ai-message--bot {
	background: #ffffff;
	color: var(--lev-ai-text);
	border-bottom-left-radius: 4px;
}

.lev-ai-message--bot a {
	color: var(--lev-ai-primary);
	font-weight: 600;
	text-decoration: underline;
	word-break: break-all;
}

.lev-ai-message--bot a:hover {
	color: var(--lev-ai-primary-dark);
}

.lev-ai-message--user {
	background: var(--lev-ai-primary);
	color: #fff;
	border-bottom-right-radius: 4px;
}

.lev-ai-message--typing {
	opacity: 0.6;
	font-style: italic;
}

/* --- Formulario de entrada --- */
.lev-ai-form {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #ffffff;
	border-radius: 999px;
	padding: 6px 6px 6px 20px;
}

.lev-ai-input {
	flex: 1;
	min-width: 0;
	border: none;
	outline: none;
	background: transparent;
	font-size: 14px;
	font-family: inherit;
}

.lev-ai-send {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: none;
	background: var(--lev-ai-primary);
	color: #fff;
	cursor: pointer;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lev-ai-send:hover {
	background: var(--lev-ai-primary-dark);
}

.lev-ai-send:disabled,
.lev-ai-input:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* --- Responsive --- */
@media (max-width: 600px) {
	/* El texto del encabezado ocupa toda la fila y la mascota cae a su propia
	   línea, centrada — evita que se monte encima de las preguntas sugeridas
	   cuando el contenedor es angosto (ver incidente de mascota superpuesta). */
	.lev-ai-header-text {
		flex-basis: 100%;
	}

	.lev-ai-mascot {
		margin: 0 auto;
	}
}

@media (max-width: 480px) {
	.lev-ai-card {
		padding: 18px;
		border-radius: 16px;
		gap: 14px;
	}

	.lev-ai-title {
		font-size: 17px;
	}

	.lev-ai-subtitle {
		font-size: 13px;
	}

	.lev-ai-mascot {
		width: 70px;
	}

	.lev-ai-suggestion-chip {
		padding: 12px 14px;
		font-size: 13px;
	}

	.lev-ai-messages {
		max-height: 280px;
	}

	.lev-ai-message {
		max-width: 85%;
		font-size: 13px;
	}
}

@media (max-width: 360px) {
	/* Pantallas muy angostas: la mascota estorba más de lo que aporta, se oculta. */
	.lev-ai-mascot {
		display: none;
	}
}