/* Dovix AI Chatbot - front-end styles */

.dacb-root {
	--dacb-primary: #2563eb;
	--dacb-bg: #ffffff;
	--dacb-text: #0f172a;
	--dacb-muted: #64748b;
	--dacb-border: #e2e8f0;
	--dacb-user-bg: var(--dacb-primary);
	--dacb-bot-bg: #f1f5f9;
	--dacb-radius: 16px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 15px;
	line-height: 1.45;
	color: var(--dacb-text);
	box-sizing: border-box;
}

.dacb-root *,
.dacb-root *::before,
.dacb-root *::after {
	box-sizing: border-box;
}

@media (prefers-color-scheme: dark) {
	.dacb-root {
		--dacb-bg: #0f172a;
		--dacb-text: #f1f5f9;
		--dacb-muted: #94a3b8;
		--dacb-border: #1e293b;
		--dacb-bot-bg: #1e293b;
	}
}

/* ---------- floating launcher ---------- */

.dacb-floating {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 99999;
}

.dacb-floating.dacb-pos-left {
	right: auto;
	left: 20px;
}

.dacb-launcher {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	border: 0;
	cursor: pointer;
	background: var(--dacb-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.25);
	transition: transform 0.15s ease;
}

.dacb-launcher:hover {
	transform: scale(1.05);
}

.dacb-launcher:focus-visible,
.dacb-root button:focus-visible,
.dacb-root input:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--dacb-primary) 45%, transparent);
	outline-offset: 2px;
}

.dacb-floating .dacb-panel {
	position: absolute;
	bottom: 74px;
	right: 0;
	width: 380px;
	height: min(600px, calc(100vh - 110px));
}

.dacb-floating.dacb-pos-left .dacb-panel {
	right: auto;
	left: 0;
}

/* ---------- panel ---------- */

.dacb-panel {
	display: flex;
	flex-direction: column;
	background: var(--dacb-bg);
	color: var(--dacb-text);
	border: 1px solid var(--dacb-border);
	border-radius: var(--dacb-radius);
	box-shadow: 0 16px 48px rgba(15, 23, 42, 0.22);
	overflow: hidden;
	min-height: 0;
}

.dacb-panel[hidden] {
	display: none;
}

.dacb-inline {
	max-width: 760px;
	margin: 24px auto;
}

.dacb-inline .dacb-panel {
	height: 560px;
	box-shadow: none;
}

.dacb-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 14px 16px;
	background: var(--dacb-primary);
	color: #fff;
}

.dacb-title {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.dacb-title strong {
	font-size: 16px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.dacb-dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: #4ade80;
	flex: 0 0 auto;
}

.dacb-header-actions {
	display: flex;
	align-items: center;
	gap: 6px;
}

.dacb-icon-btn {
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: 5px 10px;
	font-size: 13px;
	cursor: pointer;
	line-height: 1;
}

.dacb-icon-btn.dacb-close {
	font-size: 20px;
	padding: 2px 9px 4px;
}

.dacb-icon-btn:hover {
	background: rgba(255, 255, 255, 0.28);
}

.dacb-messages {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-height: 0;
	overscroll-behavior: contain;
}

.dacb-msg {
	display: flex;
	max-width: 100%;
}

.dacb-msg-user {
	justify-content: flex-end;
}

.dacb-bubble {
	max-width: 85%;
	padding: 10px 13px;
	border-radius: 14px;
	word-wrap: break-word;
	overflow-wrap: anywhere;
}

.dacb-msg-user .dacb-bubble {
	background: var(--dacb-user-bg);
	color: #fff;
	border-bottom-right-radius: 4px;
}

.dacb-msg-bot .dacb-bubble {
	background: var(--dacb-bot-bg);
	color: var(--dacb-text);
	border-bottom-left-radius: 4px;
}

.dacb-msg-error .dacb-bubble {
	background: #fef2f2;
	color: #991b1b;
}

@media (prefers-color-scheme: dark) {
	.dacb-msg-error .dacb-bubble {
		background: #3f1d1d;
		color: #fecaca;
	}
}

.dacb-bubble p {
	margin: 0 0 6px;
}

.dacb-bubble p:last-child {
	margin-bottom: 0;
}

.dacb-bubble ul {
	margin: 4px 0 6px;
	padding-left: 18px;
}

.dacb-bubble a {
	color: inherit;
	text-decoration: underline;
}

.dacb-msg-bot .dacb-bubble a {
	color: var(--dacb-primary);
}

/* typing indicator */
.dacb-dots {
	display: inline-flex;
	gap: 4px;
	padding: 4px 2px;
}

.dacb-dots i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--dacb-muted);
	animation: dacb-bounce 1.2s infinite ease-in-out;
}

.dacb-dots i:nth-child(2) { animation-delay: 0.15s; }
.dacb-dots i:nth-child(3) { animation-delay: 0.3s; }

@keyframes dacb-bounce {
	0%, 80%, 100% { transform: translateY(0); opacity: 0.4; }
	40% { transform: translateY(-4px); opacity: 1; }
}

/* suggestions */
.dacb-suggestions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0 16px 10px;
}

.dacb-suggestions:empty {
	display: none;
}

.dacb-chip {
	border: 1px solid var(--dacb-border);
	background: var(--dacb-bg);
	color: var(--dacb-primary);
	border-radius: 999px;
	padding: 6px 11px;
	font-size: 13px;
	cursor: pointer;
	text-align: left;
	max-width: 100%;
}

.dacb-chip:hover {
	border-color: var(--dacb-primary);
}

/* input */
.dacb-form {
	display: flex;
	gap: 8px;
	padding: 12px;
	border-top: 1px solid var(--dacb-border);
	background: var(--dacb-bg);
}

.dacb-input {
	flex: 1 1 auto;
	min-width: 0;
	border: 1px solid var(--dacb-border);
	border-radius: 999px;
	padding: 10px 14px;
	font-size: 15px;
	background: var(--dacb-bg);
	color: var(--dacb-text);
}

.dacb-input:disabled {
	opacity: 0.7;
}

.dacb-send {
	border: 0;
	border-radius: 999px;
	padding: 0 18px;
	background: var(--dacb-primary);
	color: #fff;
	font-weight: 600;
	cursor: pointer;
	font-size: 15px;
}

.dacb-send:disabled {
	opacity: 0.6;
	cursor: wait;
}

.dacb-hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.dacb-footnote {
	margin: 0;
	padding: 0 14px 10px;
	font-size: 11px;
	color: var(--dacb-muted);
	background: var(--dacb-bg);
}

.dacb-root .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
	white-space: nowrap;
}

/* ---------- phones: full-screen panel ---------- */

@media (max-width: 480px) {
	.dacb-floating,
	.dacb-floating.dacb-pos-left {
		right: 12px;
		bottom: 12px;
		left: auto;
	}

	.dacb-floating .dacb-panel,
	.dacb-floating.dacb-pos-left .dacb-panel {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		height: 100%;
		border-radius: 0;
		border: 0;
	}

	.dacb-floating .dacb-launcher {
		margin-left: auto;
		display: flex;
	}

	.dacb-inline .dacb-panel {
		height: 70vh;
		min-height: 420px;
	}

	.dacb-bubble {
		max-width: 92%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dacb-launcher,
	.dacb-dots i {
		transition: none;
		animation: none;
	}
}

/* ===== Dovix Premium Glass / Boat UI • v1.1 ===== */
.dacb-root {
 --dacb-bg:rgba(247,250,255,.68); --dacb-text:#14233e;
 --dacb-muted:#62748e; --dacb-border:rgba(255,255,255,.65);
 --dacb-bot-bg:rgba(255,255,255,.68); --dacb-radius:26px;
 font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme:dark){.dacb-root {--dacb-bg:rgba(247,250,255,.68);--dacb-text:#14233e;--dacb-muted:#62748e;--dacb-border:rgba(255,255,255,.65);--dacb-bot-bg:rgba(255,255,255,.68)}}
.dacb-floating {bottom:26px;right:26px;}
.dacb-floating.dacb-pos-left {left:26px;}
.dacb-launcher {height:68px;width:68px;position:relative;border:2px solid rgba(255,255,255,.75);background:linear-gradient(135deg,#1c3c84,var(--dacb-primary));box-shadow:0 14px 36px rgba(21,45,104,.27),inset 0 2px 3px rgba(255,255,255,.24);transition:transform .2s ease,box-shadow .2s ease;}
.dacb-launcher::after {content:"";position:absolute;right:2px;top:1px;width:12px;height:12px;border:3px solid white;background:#40d19a;border-radius:50%;}
.dacb-launcher:hover {transform:translateY(-4px) scale(1.03);box-shadow:0 19px 48px rgba(21,45,104,.32)}
.dacb-boat-svg {display:block;width:34px;height:34px;flex:none}
.dacb-floating .dacb-panel {bottom:84px;width:min(400px,calc(100vw - 40px));height:min(610px,calc(100dvh - 142px));}
.dacb-panel {position:relative;isolation:isolate;background:linear-gradient(145deg,rgba(255,255,255,.77),rgba(231,241,255,.48) 62%,rgba(235,246,255,.7));-webkit-backdrop-filter:blur(26px) saturate(165%);backdrop-filter:blur(26px) saturate(165%);border:1px solid rgba(255,255,255,.81);border-radius:26px;box-shadow:0 24px 72px rgba(15,38,83,.23),inset 0 1px 0 rgba(255,255,255,.8);}
.dacb-panel::before {content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 100% 0%,rgba(86,151,239,.17),transparent 42%),radial-gradient(circle at 5% 95%,rgba(150,196,241,.17),transparent 38%)}
.dacb-header {padding:19px 17px;background:linear-gradient(120deg,rgba(29,62,136,.93),rgba(42,100,184,.87));border-bottom:1px solid rgba(255,255,255,.3);gap:10px;}
.dacb-title {gap:11px}
.dacb-avatar {display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:16px;background:rgba(255,255,255,.19);border:1px solid rgba(255,255,255,.29);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.15)}
.dacb-avatar .dacb-boat-svg {width:29px;height:29px}
.dacb-title-copy {display:flex;flex-direction:column;min-width:0;gap:3px}
.dacb-title-copy strong {font-size:17px;letter-spacing:-.3px;line-height:1.2;font-weight:750;}
.dacb-title-copy small {display:flex;align-items:center;gap:6px;font-size:11px;opacity:.9;font-weight:500;white-space:nowrap}
.dacb-dot {height:7px;width:7px;background:#58f0ae;box-shadow:0 0 0 3px rgba(88,240,174,.13)}
.dacb-header-actions {gap:7px}
.dacb-icon-btn,.dacb-icon-btn.dacb-close {width:32px;height:32px;display:grid;place-items:center;padding:0;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.14);border-radius:11px;}
.dacb-icon-btn:hover {background:rgba(255,255,255,.27)}
.dacb-messages {padding:23px 17px 18px;gap:16px;scrollbar-width:thin;scrollbar-color:rgba(67,103,160,.3) transparent;}
.dacb-msg {gap:9px;align-items:flex-end}
.dacb-msg .dacb-message-avatar {height:30px;width:30px;min-width:30px;border-radius:11px;background:linear-gradient(135deg,#1e448e,#4984d3);border:1px solid rgba(255,255,255,.8);box-shadow:0 3px 10px rgba(24,70,137,.16)}
.dacb-message-avatar .dacb-boat-svg {height:19px;width:19px}
.dacb-bubble {max-width:82%;padding:12px 15px;border-radius:17px;font-size:13.5px;line-height:1.65;box-shadow:0 3px 14px rgba(38,68,115,.05)}
.dacb-msg-bot .dacb-bubble {background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.9);border-bottom-left-radius:6px;color:#263c59}
.dacb-msg-user .dacb-bubble {background:linear-gradient(135deg,#2856af,var(--dacb-primary));color:#fff;border-bottom-right-radius:6px;box-shadow:0 5px 15px rgba(42,85,164,.17)}
.dacb-msg-error .dacb-bubble {background:rgba(255,237,237,.9);color:#9c2424}
.dacb-suggestions {padding:0 16px 15px;gap:7px}
.dacb-chip {background:rgba(255,255,255,.75);border:1px solid rgba(76,116,185,.17);padding:8px 12px;border-radius:13px;color:#2353a3;font-size:12px;box-shadow:0 3px 9px rgba(52,81,131,.05);transition:transform .15s ease,background .15s ease;}
.dacb-chip:hover {transform:translateY(-2px);background:#fff}
.dacb-form {margin:0 13px;padding:9px 9px 9px 14px;align-items:center;gap:7px;border:1px solid rgba(102,139,190,.19);border-radius:18px;background:rgba(255,255,255,.76);box-shadow:0 4px 18px rgba(33,73,130,.08)}
.dacb-input {height:39px;border:0!important;border-radius:10px;background:transparent!important;padding:7px 3px;color:#14233e!important;box-shadow:none!important;font-size:13px;outline:none!important;}
.dacb-input::placeholder {color:#8290a6}
.dacb-send {flex:none;height:38px;width:41px;padding:0;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#1f4b9e,var(--dacb-primary));box-shadow:0 5px 13px rgba(40,88,170,.2);transition:transform .16s ease}
.dacb-send:hover:not(:disabled) {transform:translateY(-2px)}
.dacb-footnote {padding:10px 16px 13px;text-align:center;font-size:10px;letter-spacing:.05px;background:transparent;color:#778aa4}
.dacb-inline .dacb-panel {box-shadow:0 14px 44px rgba(15,38,83,.12)}
@media(max-width:480px) {
 .dacb-floating,.dacb-floating.dacb-pos-left {bottom:16px;right:16px;left:auto}
 .dacb-launcher {height:61px;width:61px}
 .dacb-floating .dacb-panel,.dacb-floating.dacb-pos-left .dacb-panel {position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;height:min(90dvh,750px);border-radius:26px 26px 0 0;border:1px solid rgba(255,255,255,.8)}
 .dacb-inline .dacb-panel {height:70dvh;min-height:420px}
 .dacb-bubble {max-width:88%}
}
@media(prefers-reduced-motion:reduce){.dacb-chip,.dacb-send {transition:none}}

/* Stable message paint layer: avoid backdrop-filter repaint loss on pointer entry. */
.dacb-root .dacb-panel{isolation:isolate;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:linear-gradient(145deg,#f7fbff,#e6effb 62%,#eef6ff)!important;}
.dacb-root .dacb-panel::before{display:none!important;}
.dacb-root .dacb-messages{position:relative;isolation:isolate;}
.dacb-root .dacb-msg,.dacb-root .dacb-bubble{opacity:1!important;visibility:visible!important;filter:none!important;mix-blend-mode:normal!important;transition:none!important;}
.dacb-root .dacb-msg-bot .dacb-bubble{background:#ffffff!important;color:#263c59!important;}
.dacb-root .dacb-msg-user .dacb-bubble{background:linear-gradient(135deg,#2856af,var(--dacb-primary))!important;color:#fff!important;}
.dacb-root .dacb-bubble p,.dacb-root .dacb-bubble li,.dacb-root .dacb-bubble strong{color:inherit!important;opacity:1!important;visibility:visible!important;}
/* Branded, strictly circular chatbot launcher and avatars. */
.dacb-root .dacb-launcher,.dacb-root .dacb-avatar,.dacb-root .dacb-message-avatar{border-radius:50%!important;aspect-ratio:1 / 1!important;flex-shrink:0!important;padding:0!important;background:#fff url('../images/dovix-chatbot-icon.png') center / 88% 88% no-repeat!important;box-sizing:border-box!important;}
.dacb-root .dacb-launcher{width:68px!important;height:68px!important;min-width:68px!important;max-width:68px!important;min-height:68px!important;max-height:68px!important;display:flex!important;align-items:center!important;justify-content:center!important;}
.dacb-root .dacb-avatar{width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;}
.dacb-root .dacb-message-avatar{width:30px!important;height:30px!important;min-width:30px!important;max-width:30px!important;}
.dacb-root .dacb-launcher .dacb-boat-svg,.dacb-root .dacb-avatar .dacb-boat-svg,.dacb-root .dacb-message-avatar .dacb-boat-svg{display:none!important;}
@media(max-width:480px){.dacb-root .dacb-launcher{width:61px!important;height:61px!important;min-width:61px!important;max-width:61px!important;min-height:61px!important;max-height:61px!important;}}
/* Explicit suggestion states prevent theme button hover colours hiding labels. */
.dacb-root button.dacb-chip{font-size:14px!important;line-height:1.5!important;font-weight:600!important;color:#16458b!important;background:#fff!important;-webkit-text-fill-color:#16458b!important;opacity:1!important;}
.dacb-root button.dacb-chip:hover,.dacb-root button.dacb-chip:focus,.dacb-root button.dacb-chip:focus-visible,.dacb-root button.dacb-chip:active{color:#123976!important;-webkit-text-fill-color:#123976!important;background:#e5efff!important;border-color:#6593dc!important;opacity:1!important;visibility:visible!important;filter:none!important;}
.dacb-root button.dacb-chip *{color:inherit!important;-webkit-text-fill-color:inherit!important;opacity:1!important;}
.dacb-root .dacb-bubble{font-size:15px!important;line-height:1.65!important;}
.dacb-root .dacb-input{font-size:16px!important;}
.dacb-root .dacb-footnote{font-size:11px!important;}
.dacb-root .dacb-teaser{position:absolute;right:0;bottom:84px;width:270px;max-width:calc(100vw - 44px);padding:15px 32px 15px 17px;background:#fff;border:1px solid #c9daf2;border-radius:18px 18px 5px 18px;box-shadow:0 10px 32px #13336424;animation:dacb-teaser-in .3s ease-out}
.dacb-root .dacb-teaser[hidden]{display:none!important}.dacb-root.dacb-pos-left .dacb-teaser{right:auto;left:0}
.dacb-root button.dacb-teaser-message,.dacb-root button.dacb-teaser-message:hover,.dacb-root button.dacb-teaser-message:focus{display:block;width:100%;border:0!important;background:transparent!important;color:#17365c!important;-webkit-text-fill-color:#17365c!important;font:600 15px/1.5 Inter,Arial,sans-serif!important;text-align:left;padding:0!important;text-transform:none!important;box-shadow:none!important;cursor:pointer}
.dacb-root button.dacb-teaser-close,.dacb-root button.dacb-teaser-close:hover{position:absolute;right:7px;top:6px;width:24px;height:24px;padding:0!important;border:0!important;border-radius:50%;background:#edf3fb!important;color:#335578!important;-webkit-text-fill-color:#335578!important;font:20px/24px Arial!important;cursor:pointer}
@keyframes dacb-teaser-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.dacb-root .dacb-teaser{animation:none}}