.aicb-root, .aicb-root *, .aicb-root *::before, .aicb-root *::after {
	box-sizing: border-box !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

.aicb-root {
	position: fixed !important;
	right: 20px !important;
	bottom: 20px !important;
	z-index: 2147483000 !important;
	color: #1f2937 !important;
	margin: 0 !important;
	padding: 0 !important;
	all: revert;
}
.aicb-root { --aicb-accent: #6011EE; --aicb-accent-dark: #4e0dbe; --aicb-accent-soft: #a78bfa; }

.aicb-bubble {
	width: 60px !important; height: 60px !important;
	border-radius: 50% !important;
	background: var(--aicb-accent) !important;
	color: #fff !important;
	border: none !important;
	box-shadow: 0 10px 24px rgba(0,0,0,0.18), 0 2px 6px rgba(0,0,0,0.08) !important;
	cursor: pointer !important;
	display: flex !important; align-items: center !important; justify-content: center !important;
	transition: transform .18s ease, box-shadow .18s ease !important;
	position: relative !important;
	padding: 0 !important;
	margin: 0 !important;
	outline: none !important;
}
.aicb-bubble:hover { transform: translateY(-2px) !important; box-shadow: 0 14px 30px rgba(0,0,0,0.22) !important; background: var(--aicb-accent-dark) !important; }
.aicb-bubble svg { width: 28px !important; height: 28px !important; stroke: #fff !important; fill: none !important; }
.aicb-bubble .aicb-pulse {
	position: absolute !important; inset: 0 !important; border-radius: 50% !important;
	box-shadow: 0 0 0 0 var(--aicb-accent) !important;
	animation: aicb-pulse 2.4s infinite !important;
	opacity: .6 !important;
	pointer-events: none !important;
}
@keyframes aicb-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(96,17,238,.55); }
	70%  { box-shadow: 0 0 0 18px rgba(96,17,238,0); }
	100% { box-shadow: 0 0 0 0 rgba(96,17,238,0); }
}

.aicb-panel {
	position: absolute !important;
	right: 0 !important; bottom: 76px !important;
	width: 380px !important;
	max-width: calc(100vw - 32px) !important;
	height: 560px !important;
	max-height: calc(100vh - 110px) !important;
	background: #fff !important;
	border-radius: 16px !important;
	box-shadow: 0 24px 60px rgba(0,0,0,0.22), 0 6px 20px rgba(0,0,0,0.12) !important;
	display: none !important;
	flex-direction: column !important;
	overflow: hidden !important;
	transform-origin: bottom right !important;
	color: #1f2937 !important;
}
.aicb-root.is-open .aicb-panel {
	display: flex !important;
	animation: aicb-pop .18s ease both !important;
}
@keyframes aicb-pop {
	from { opacity: 0; transform: scale(.96) translateY(6px); }
	to   { opacity: 1; transform: none; }
}

.aicb-header {
	background: linear-gradient(135deg, var(--aicb-accent), var(--aicb-accent-dark)) !important;
	color: #fff !important;
	padding: 14px 16px !important;
	display: flex !important; align-items: center !important; gap: 10px !important;
	border: none !important;
}
.aicb-avatar {
	width: 36px !important; height: 36px !important; border-radius: 50% !important;
	background: rgba(255,255,255,.25) !important;
	color: #fff !important;
	display: flex !important; align-items: center !important; justify-content: center !important;
	font-weight: 700 !important; font-size: 15px !important;
	flex-shrink: 0 !important;
}
.aicb-titles { flex: 1 !important; min-width: 0 !important; }
.aicb-title { font-weight: 700 !important; font-size: 15px !important; line-height: 1.2 !important; color: #fff !important; margin: 0 !important; }
.aicb-status { font-size: 12px !important; opacity: .9 !important; display: flex !important; align-items: center !important; gap: 6px !important; color: #fff !important; margin: 0 !important; }
.aicb-status::before {
	content: '' !important; width: 7px !important; height: 7px !important; border-radius: 50% !important;
	background: #34d399 !important;
	box-shadow: 0 0 0 2px rgba(52,211,153,.25) !important;
}
.aicb-close {
	background: transparent !important; border: 0 !important; color: #fff !important; cursor: pointer !important;
	padding: 6px !important; border-radius: 8px !important;
	display: flex !important; align-items: center !important; justify-content: center !important;
}
.aicb-close:hover { background: rgba(255,255,255,.18) !important; }
.aicb-close svg { width: 18px !important; height: 18px !important; stroke: #fff !important; fill: none !important; }

.aicb-body {
	flex: 1 !important;
	overflow-y: auto !important;
	padding: 14px 14px 8px !important;
	background: #f9fafb !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
}
.aicb-msg {
	max-width: 84% !important;
	padding: 10px 12px !important;
	border-radius: 14px !important;
	font-size: 14px !important;
	line-height: 1.45 !important;
	word-wrap: break-word !important;
	margin: 0 !important;
	color: #1f2937 !important;
}
.aicb-msg.bot { background: #fff !important; border: 1px solid #e5e7eb !important; align-self: flex-start !important; border-bottom-left-radius: 4px !important; }
.aicb-msg.user { background: var(--aicb-accent) !important; color: #fff !important; align-self: flex-end !important; border-bottom-right-radius: 4px !important; border: none !important; }
.aicb-msg p { margin: 0 0 6px !important; color: inherit !important; }
.aicb-msg p:last-child { margin-bottom: 0 !important; }
.aicb-msg ul { margin: 6px 0 !important; padding-left: 18px !important; color: inherit !important; }
.aicb-msg li { color: inherit !important; }
.aicb-msg a { color: inherit !important; text-decoration: underline !important; }
.aicb-msg.user a { color: #fff !important; }
.aicb-msg strong, .aicb-msg em { color: inherit !important; }
.aicb-sources { font-size: 11px !important; opacity: .7 !important; margin-top: 6px !important; color: #6b7280 !important; }
.aicb-sources a { color: var(--aicb-accent) !important; }

.aicb-typing {
	align-self: flex-start !important;
	background: #fff !important; border: 1px solid #e5e7eb !important;
	padding: 10px 14px !important; border-radius: 14px !important; border-bottom-left-radius: 4px !important;
	display: flex !important; gap: 4px !important;
}
.aicb-typing span { width: 6px !important; height: 6px !important; border-radius: 50% !important; background: #9ca3af !important; animation: aicb-blink 1.2s infinite !important; }
.aicb-typing span:nth-child(2) { animation-delay: .2s !important; }
.aicb-typing span:nth-child(3) { animation-delay: .4s !important; }
@keyframes aicb-blink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }

.aicb-quick {
	display: flex !important; flex-wrap: wrap !important; gap: 6px !important;
	padding: 0 14px 10px !important; background: #f9fafb !important;
}
.aicb-quick button {
	font: inherit !important; font-size: 12px !important;
	background: #fff !important; border: 1px solid #e5e7eb !important; color: #374151 !important;
	padding: 6px 10px !important; border-radius: 999px !important; cursor: pointer !important;
	margin: 0 !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.aicb-quick button:hover { border-color: var(--aicb-accent) !important; color: var(--aicb-accent) !important; background: #fff !important; }

.aicb-form {
	display: flex !important; align-items: flex-end !important; gap: 8px !important;
	padding: 10px !important; border-top: 1px solid #e5e7eb !important; background: #fff !important;
	margin: 0 !important;
}
.aicb-input {
	flex: 1 !important;
	resize: none !important;
	max-height: 120px !important;
	min-height: 40px !important;
	padding: 10px 12px !important;
	border: 1px solid #d1d5db !important;
	border-radius: 12px !important;
	font: inherit !important; font-size: 14px !important; line-height: 1.4 !important;
	outline: none !important;
	transition: border-color .15s, box-shadow .15s !important;
	background: #fff !important;
	color: #1f2937 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
.aicb-input:focus { border-color: var(--aicb-accent) !important; box-shadow: 0 0 0 3px rgba(96,17,238,.22) !important; }
.aicb-send {
	background: var(--aicb-accent) !important; color: #fff !important; border: 0 !important;
	width: 40px !important; height: 40px !important;
	border-radius: 50% !important;
	display: flex !important; align-items: center !important; justify-content: center !important;
	cursor: pointer !important; padding: 0 !important; margin: 0 !important;
	flex-shrink: 0 !important;
	box-shadow: none !important;
}
.aicb-send:hover:not(:disabled) { background: var(--aicb-accent-dark) !important; }
.aicb-send:disabled { opacity: .4 !important; cursor: not-allowed !important; }
.aicb-send svg { width: 18px !important; height: 18px !important; stroke: #fff !important; fill: none !important; }

.aicb-choices {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin: 4px 0 !important;
	align-self: flex-start !important;
}
.aicb-choice {
	font: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	padding: 8px 14px !important;
	border-radius: 999px !important;
	cursor: pointer !important;
	transition: transform .12s ease, background .15s ease !important;
	margin: 0 !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.aicb-choice.yes {
	background: var(--aicb-accent) !important;
	color: #fff !important;
	border: 1px solid var(--aicb-accent) !important;
}
.aicb-choice.yes:hover { background: var(--aicb-accent-dark) !important; border-color: var(--aicb-accent-dark) !important; transform: translateY(-1px) !important; }
.aicb-choice.no {
	background: #fff !important;
	color: #6b7280 !important;
	border: 1px solid #e5e7eb !important;
}
.aicb-choice.no:hover { border-color: #9ca3af !important; color: #1f2937 !important; }

.aicb-leadcard {
	background: #fff !important; border: 1px solid #e5e7eb !important; border-radius: 14px !important;
	padding: 12px !important;
	align-self: stretch !important; display: flex !important; flex-direction: column !important; gap: 8px !important;
	color: #1f2937 !important;
	margin: 0 !important;
}
.aicb-leadcard .aicb-lead-title { font-weight: 600 !important; font-size: 14px !important; color: #1f2937 !important; }
.aicb-leadcard input {
	width: 100% !important; padding: 8px 10px !important;
	border: 1px solid #d1d5db !important; border-radius: 8px !important;
	font: inherit !important; font-size: 13px !important;
	background: #fff !important; color: #1f2937 !important;
	margin: 0 !important; box-shadow: none !important;
}
.aicb-leadcard input:focus { outline: none !important; border-color: var(--aicb-accent) !important; box-shadow: 0 0 0 3px rgba(96,17,238,.18) !important; }
.aicb-leadcard .aicb-row { display: flex !important; gap: 6px !important; }
.aicb-leadcard .aicb-row input { flex: 1 !important; }
.aicb-leadcard button {
	background: var(--aicb-accent) !important; color: #fff !important; border: 0 !important;
	padding: 8px 12px !important; border-radius: 8px !important;
	font: inherit !important; font-weight: 600 !important; cursor: pointer !important;
	margin: 0 !important; box-shadow: none !important;
	text-transform: none !important; letter-spacing: normal !important;
}
.aicb-leadcard button:hover { background: var(--aicb-accent-dark) !important; }
.aicb-leadcard .aicb-skip { background: transparent !important; color: #6b7280 !important; padding: 6px !important; }
.aicb-leadcard .aicb-leadnote { font-size: 12px !important; color: #6b7280 !important; }

.aicb-foot { font-size: 10px !important; text-align: center !important; color: #9ca3af !important; padding: 4px 0 6px !important; background: #fff !important; border-top: 1px solid #f3f4f6 !important; margin: 0 !important; }

/* Body scroll lock when chat is open on mobile */
body.aicb-locked { overflow: hidden !important; position: fixed !important; width: 100% !important; }

@media (max-width: 640px) {
	.aicb-root { right: 14px !important; bottom: 14px !important; }
	.aicb-root.is-open { right: 0 !important; bottom: 0 !important; left: 0 !important; top: 0 !important; }

	.aicb-root.is-open .aicb-bubble { display: none !important; }

	.aicb-panel {
		position: fixed !important;
		inset: 0 !important;
		right: 0 !important;
		left: 0 !important;
		top: 0 !important;
		bottom: 0 !important;
		width: 100vw !important;
		height: 100vh !important;
		height: 100dvh !important;
		max-width: 100vw !important;
		max-height: 100vh !important;
		max-height: 100dvh !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	.aicb-header {
		padding: 14px 16px !important;
		padding-top: max(14px, env(safe-area-inset-top)) !important;
	}
	.aicb-form {
		padding-bottom: max(10px, env(safe-area-inset-bottom)) !important;
	}
	.aicb-body { padding-bottom: 12px !important; }
	.aicb-msg { max-width: 88% !important; font-size: 15px !important; }
	.aicb-input { font-size: 16px !important; } /* prevent iOS zoom on focus */
	.aicb-leadcard input { font-size: 16px !important; }
}
