/* Assistant IA du site : widget de discussion (préfixe aia-, aucune règle globale). */
.aia {
	--aia-fond: #ffffff;
	--aia-texte: #1d232a;
	--aia-doux: #5a6570;
	--aia-bord: #d9dee3;
	--aia-bulle: #f1f4f7;
	position: fixed;
	right: max(20px, calc(env(safe-area-inset-right, 0px) + 12px));
	bottom: max(20px, calc(env(safe-area-inset-bottom, 0px) + 12px));
	z-index: 99990;
	font: 15px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	color: var(--aia-texte);
}
.aia.aia-gauche { right: auto; left: max(20px, calc(env(safe-area-inset-left, 0px) + 12px)); }
/* Barre fixée en bas de l'écran par le site (appeler, devis…), détectée par le script : on passe au-dessus. */
.aia.aia-barre { bottom: calc(var(--aia-barre, 0px) + 12px); }
html.aia-verrou, html.aia-verrou body { overflow: hidden !important; }
.aia *, .aia *::before, .aia *::after { box-sizing: border-box; }
.aia [hidden] { display: none !important; }

.aia-masque {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.aia-pot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.aia-lanceur {
	position: relative;
	display: flex; align-items: center; justify-content: center;
	width: 58px; height: 58px; margin-left: auto;
	border: 0; border-radius: 50%;
	background: var(--aia-accent); color: var(--aia-sur-accent);
	box-shadow: 0 6px 20px rgba(0, 0, 0, .22);
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease;
}
.aia-gauche .aia-lanceur { margin-left: 0; }
.aia-lanceur svg {
	position: absolute; width: 28px; height: 28px; fill: currentColor;
	transition: opacity .18s ease, transform .22s ease;
}
.aia-lanceur .aia-ic-fermer { width: 24px; height: 24px; opacity: 0; transform: rotate(-90deg) scale(.6); }
.aia-ouvert .aia-lanceur .aia-ic-chat { opacity: 0; transform: rotate(90deg) scale(.6); }
.aia-ouvert .aia-lanceur .aia-ic-fermer { opacity: 1; transform: none; }
.aia-lanceur:hover { transform: translateY(-2px); box-shadow: 0 9px 24px rgba(0, 0, 0, .26); }
.aia-lanceur.aia-sonne { animation: aia-sonne 1.1s ease-in-out; }
@keyframes aia-sonne {
	0%, 100% { transform: none; }
	15% { transform: rotate(-12deg) scale(1.06); }
	30% { transform: rotate(10deg) scale(1.06); }
	45% { transform: rotate(-7deg); }
	60% { transform: rotate(5deg); }
	75% { transform: rotate(-2deg); }
}

/* Pastille de notification sur le lanceur. */
.aia-pastille {
	position: absolute; top: -3px; right: -3px;
	min-width: 21px; height: 21px; padding: 0 5px;
	border: 2px solid #ffffff; border-radius: 999px;
	background: #d93025; color: #ffffff;
	font-size: 11.5px; font-weight: 700; line-height: 17px; text-align: center;
	animation: aia-pop .35s cubic-bezier(.2, 1.4, .4, 1);
}
@keyframes aia-pop { from { transform: scale(0); } to { transform: none; } }

/* Bulle d'invitation (message local de l'assistant, au-dessus du lanceur). */
.aia-invitation {
	position: absolute; right: 0; bottom: 72px;
	width: max-content; max-width: min(290px, calc(100vw - 32px));
	background: var(--aia-fond); color: var(--aia-texte);
	border: 1px solid var(--aia-bord); border-radius: 14px; border-bottom-right-radius: 4px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .16);
	opacity: 0; transform: translateY(10px) scale(.94); transform-origin: bottom right;
	transition: opacity .22s ease, transform .3s cubic-bezier(.2, 1.2, .4, 1);
}
.aia-gauche .aia-invitation { right: auto; left: 0; border-bottom-right-radius: 14px; border-bottom-left-radius: 4px; transform-origin: bottom left; }
.aia-invitation.aia-visible { opacity: 1; transform: none; }
.aia-invitation-texte {
	display: block; width: 100%;
	padding: 11px 38px 12px 14px;
	border: 0; border-radius: inherit;
	background: transparent; color: inherit;
	font: inherit; font-size: 14px; line-height: 1.4; text-align: left;
	cursor: pointer;
}
.aia-invitation-nom { display: block; margin-bottom: 2px; font-size: 12.5px; font-weight: 600; color: var(--aia-doux); }
.aia-invitation-fermer {
	position: absolute; top: 2px; right: 2px;
	display: flex; padding: 9px;
	border: 0; border-radius: 6px;
	background: transparent; color: var(--aia-doux); cursor: pointer;
}
.aia-invitation-fermer svg { width: 14px; height: 14px; fill: currentColor; }
.aia-invitation-fermer:hover, .aia-invitation-texte:hover { background: var(--aia-bulle); }

.aia button:focus-visible, .aia a:focus-visible, .aia textarea:focus-visible, .aia-fil:focus-visible {
	outline: 3px solid var(--aia-accent);
	outline-offset: 2px;
}

.aia-panneau {
	display: flex; flex-direction: column;
	width: min(380px, calc(100vw - 32px));
	height: min(580px, calc(100vh - 110px - var(--aia-barre, 0px)));
	height: min(580px, calc(100dvh - 110px - var(--aia-barre, 0px)));
	margin-bottom: 12px;
	background: var(--aia-fond);
	border: 1px solid var(--aia-bord);
	border-radius: 14px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, .18);
	overflow: hidden;
	opacity: 0; transform: translateY(16px) scale(.96); transform-origin: bottom right;
	transition: opacity .2s ease, transform .26s cubic-bezier(.2, 1, .4, 1);
}
.aia-gauche .aia-panneau { transform-origin: bottom left; }
.aia-panneau.aia-visible { opacity: 1; transform: none; }

.aia-entete {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	padding: 12px 14px;
	background: var(--aia-accent); color: var(--aia-sur-accent);
}
.aia-avatar {
	display: flex; align-items: center; justify-content: center; flex: none;
	width: 36px; height: 36px; border-radius: 50%;
	background: rgba(255, 255, 255, .18);
}
.aia-avatar svg { width: 21px; height: 21px; fill: currentColor; }
.aia-entete-texte { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.aia-titre { margin: 0; font-size: 16px; font-weight: 600; line-height: 1.2; color: inherit; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aia-statut { display: flex; align-items: center; gap: 5px; font-size: 12px; opacity: .88; white-space: nowrap; }
.aia-statut::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #3ccf6e; }
.aia-ecrit .aia-statut::before { animation: aia-pouls 1s ease-in-out infinite; }
@keyframes aia-pouls { 50% { opacity: .35; transform: scale(.75); } }
.aia-fermer {
	display: flex; flex: none; padding: 10px;
	border: 0; border-radius: 8px;
	background: transparent; color: inherit; cursor: pointer;
}
.aia-fermer svg { width: 20px; height: 20px; fill: currentColor; }

.aia-fil {
	flex: 1; min-height: 0; overflow-y: auto;
	padding: 14px;
	display: flex; flex-direction: column; gap: 10px;
	overscroll-behavior: contain;
}
.aia-bulle {
	max-width: 88%;
	padding: 9px 12px;
	border-radius: 12px;
	white-space: normal;
	overflow-wrap: anywhere;
}
.aia-entree { animation: aia-entree .28s ease-out; }
@keyframes aia-entree { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.aia-assistant { align-self: flex-start; background: var(--aia-bulle); border-bottom-left-radius: 4px; }
.aia-visiteur { align-self: flex-end; background: var(--aia-accent); color: var(--aia-sur-accent); border-bottom-right-radius: 4px; }
.aia-bulle a { color: inherit; text-decoration: underline; }
.aia-contact {
	display: block; width: max-content; max-width: 100%; margin-top: 8px; padding: 7px 12px;
	border-radius: 999px;
	background: var(--aia-accent); color: var(--aia-sur-accent) !important;
	text-decoration: none !important; font-size: 14px;
}

.aia-attente { display: flex; gap: 4px; align-items: center; min-height: 36px; animation: aia-entree .2s ease-out; }
.aia-point {
	width: 7px; height: 7px; border-radius: 50%;
	background: var(--aia-doux);
	animation: aia-saut 1.2s infinite ease-in-out;
}
.aia-point:nth-child(3) { animation-delay: .15s; }
.aia-point:nth-child(4) { animation-delay: .3s; }
@keyframes aia-saut { 0%, 80%, 100% { opacity: .3; transform: none; } 40% { opacity: 1; transform: translateY(-3px); } }

.aia-suggestions { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px 8px; }
.aia-suggestion {
	min-height: 36px; padding: 6px 12px;
	border: 1px solid var(--aia-accent); border-radius: 999px;
	background: transparent; color: var(--aia-texte);
	font: inherit; font-size: 13px; cursor: pointer;
}
.aia-suggestion:hover { background: var(--aia-bulle); }

.aia-formulaire { position: relative; padding: 10px 12px; border-top: 1px solid var(--aia-bord); }
.aia-saisie { display: flex; align-items: flex-end; gap: 8px; }
.aia-champ {
	display: block; flex: 1; min-width: 0; width: 100%;
	height: 44px; min-height: 44px; max-height: 120px;
	padding: 10px 12px;
	border: 1px solid var(--aia-bord); border-radius: 10px;
	background: #fff; color: var(--aia-texte);
	font: inherit; font-size: 16px; line-height: 1.3; resize: none;
}
.aia-compteur { display: block; margin-top: 4px; text-align: right; font-size: 12px; color: var(--aia-doux); }
.aia-envoyer {
	display: flex; flex: none; align-items: center; justify-content: center;
	width: 44px; height: 44px;
	border: 0; border-radius: 10px;
	background: var(--aia-accent); color: var(--aia-sur-accent); cursor: pointer;
}
.aia-envoyer svg { width: 20px; height: 20px; fill: currentColor; }
.aia-envoyer:disabled { opacity: .55; cursor: wait; }

.aia-mention { margin: 0; padding: 0 14px 10px; font-size: 11.5px; line-height: 1.35; color: var(--aia-doux); }
.aia-mention a { color: inherit; }

@media (max-width: 480px), (max-height: 520px) and (pointer: coarse) {
	.aia { right: max(12px, calc(env(safe-area-inset-right, 0px) + 8px)); bottom: max(12px, calc(env(safe-area-inset-bottom, 0px) + 8px)); }
	.aia.aia-gauche { left: max(12px, calc(env(safe-area-inset-left, 0px) + 8px)); }
	.aia.aia-barre { bottom: calc(var(--aia-barre, 0px) + 10px); }
	.aia-invitation { bottom: 68px; max-width: min(290px, calc(100vw - 24px)); }
	/* Hauteur : zone visible (visualViewport, clavier compris) posée par le script, sinon tout l'écran. */
	.aia-panneau {
		position: fixed; left: 0; right: 0; top: var(--aia-haut, 0px); bottom: 0;
		width: auto; height: var(--aia-hauteur, auto); max-height: none;
		margin: 0; border: 0; border-radius: 0; box-shadow: none;
		padding: 0 env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
		transform: translateY(24px); transform-origin: bottom center;
	}
	.aia-gauche .aia-panneau { transform-origin: bottom center; }
	.aia-entete { padding-top: max(12px, env(safe-area-inset-top, 0px)); }
	.aia-ouvert .aia-lanceur { display: none; }
	/* Suggestions sur une ligne qui défile : le fil garde la place. */
	.aia-suggestions { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; padding-top: 8px; }
	.aia-suggestions::-webkit-scrollbar { display: none; }
	.aia-suggestion { flex: none; white-space: nowrap; }
}
/* Téléphone à l'horizontale : en-tête sur une ligne, marges réduites, le fil garde la place. */
@media (max-height: 520px) {
	.aia-entete { padding-top: max(2px, env(safe-area-inset-top, 0px)); padding-bottom: 2px; }
	.aia-avatar { display: none; }
	.aia-entete-texte { flex-direction: row; align-items: center; gap: 12px; }
	.aia-fil { padding-top: 8px; padding-bottom: 8px; gap: 8px; }
	.aia-suggestions { padding-top: 4px; padding-bottom: 4px; }
	.aia-formulaire { padding-top: 6px; padding-bottom: 6px; }
	.aia-mention { padding-bottom: 4px; font-size: 11px; line-height: 1.3; }
}

@media (prefers-reduced-motion: reduce) {
	.aia-point { animation: none; opacity: .7; }
	.aia-attente { animation: none; }
	.aia-lanceur, .aia-lanceur svg, .aia-panneau, .aia-invitation { transition: none; }
	.aia-lanceur.aia-sonne, .aia-pastille, .aia-entree, .aia-ecrit .aia-statut::before { animation: none; }
	.aia-lanceur:hover { transform: none; }
}

@media print {
	.aia { display: none !important; }
}
