/* Tchat du site (module 23) */
.cjtc { --t-encre: #14284b; --t-encre-2: #1d3766; --t-or: #c9a24e; --t-fond: #f3f1ec; --t-bord: #d6dce6; --t-gris: #5a6270; --t-texte: #1b2230; --t-vert: #1e7a46;
	position: fixed; right: 20px; bottom: 20px; z-index: 950; font: 15px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; color: var(--t-texte); }
.cjtc *, .cjtc *::before, .cjtc *::after { box-sizing: border-box; }
.cjtc-bouton { position: relative; display: inline-flex; align-items: center; gap: 10px; height: 56px; padding: 0 20px 0 16px; border: 0; border-radius: 28px; background: var(--t-encre); color: #fff; font: 600 15px/1 inherit; font-family: inherit; cursor: pointer; box-shadow: 0 6px 20px rgba(12, 26, 51, .3); transition: background .15s, transform .15s; }
.cjtc-bouton:hover { background: var(--t-encre-2); transform: translateY(-1px); }
.cjtc-bouton:focus-visible { outline: 3px solid var(--t-or); outline-offset: 3px; }
.cjtc-bouton svg { color: var(--t-or); }
.cjtc-badge { position: absolute; top: -4px; right: -4px; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: #c0392b; color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; }
.cjtc-badge[hidden] { display: none; }
.cjtc-ouvert .cjtc-libelle { display: none; }
.cjtc-ouvert .cjtc-bouton { width: 56px; padding: 0; justify-content: center; }

.cjtc-fenetre { position: absolute; right: 0; bottom: 72px; width: min(380px, calc(100vw - 32px)); height: min(600px, calc(100vh - 110px)); background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 18px 50px rgba(12, 26, 51, .32); display: flex; flex-direction: column; }
.cjtc-fenetre[hidden] { display: none; }
.cjtc-tete { flex: none; display: flex; align-items: center; gap: 10px; padding: 12px 12px 12px 14px; background: var(--t-encre); color: #fff; }
.cjtc-avatar { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--t-or); color: var(--t-encre); display: flex; align-items: center; justify-content: center; font: 700 17px/1 Georgia, serif; }
.cjtc-ident { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cjtc-ident strong { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cjtc-statut { font-size: 12.5px; color: #c9d3e6; }
.cjtc-statut::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: 1px; background: #8a93a3; }
.cjtc-statut.cjtc-on::before { background: #4ade80; }
.cjtc-wa { flex: none; font-size: 12px; font-weight: 600; color: #fff; text-decoration: none; border: 1px solid rgba(255,255,255,.4); border-radius: 12px; padding: 3px 8px; }
.cjtc-wa:hover { border-color: var(--t-or); color: #fff; }
.cjtc-fermer { flex: none; background: none; border: 0; color: #fff; font-size: 28px; line-height: 1; cursor: pointer; padding: 0 4px; }

.cjtc-corps { flex: 1; overflow-y: auto; padding: 14px; background: var(--t-fond); display: flex; flex-direction: column; gap: 8px; }
.cjtc-fil { display: flex; flex-direction: column; gap: 8px; }
.cjtc-msg { position: relative; max-width: 85%; padding: 8px 12px 18px; border-radius: 12px; font-size: 14.5px; line-height: 1.4; box-shadow: 0 1px 1px rgba(0,0,0,.06); white-space: pre-wrap; word-wrap: break-word; }
.cjtc-etude { align-self: flex-start; background: #fff; border-top-left-radius: 2px; }
.cjtc-moi { align-self: flex-end; background: #dfe8f6; border-top-right-radius: 2px; }
.cjtc-accueil { padding-bottom: 8px; }
.cjtc-auteur { display: block; font-size: 12px; font-weight: 700; color: var(--t-encre); margin-bottom: 2px; }
.cjtc-heure { position: absolute; right: 10px; bottom: 3px; font-size: 11px; color: var(--t-gris); }
.cjtc-alerte { flex: none; margin: 0; padding: 8px 14px; background: #fbeae8; color: #9b2c22; font-size: 13px; }
.cjtc-alerte[hidden] { display: none; }

.cjtc-depart { flex: none; padding: 12px 14px; background: #fff; border-top: 1px solid var(--t-bord); max-height: 62%; overflow-y: auto; }
.cjtc-depart[hidden] { display: none; }
.cjtc-champ { margin: 0 0 8px; }
.cjtc-champ label { display: block; font-size: 12.5px; font-weight: 600; color: var(--t-gris); margin-bottom: 2px; }
.cjtc-champ input, .cjtc-champ select, .cjtc-champ textarea { width: 100%; min-height: 38px; padding: 7px 10px; border: 1px solid var(--t-bord); border-radius: 8px; font: inherit; font-size: 14.5px; background: #fff; color: var(--t-texte); }
.cjtc-champ textarea { resize: vertical; min-height: 64px; }
.cjtc-champ :focus { outline: none; border-color: var(--t-encre); box-shadow: 0 0 0 2px rgba(20, 40, 75, .15); }
.cjtc-accord { font-size: 11.5px; color: var(--t-gris); margin: 2px 0 8px; }
.cjtc-accord a { color: var(--t-encre); }
.cjtc-principal { width: 100%; min-height: 42px; border: 0; border-radius: 8px; background: var(--t-encre); color: #fff; font: 600 15px/1 inherit; font-family: inherit; cursor: pointer; }
.cjtc-principal:disabled, .cjtc-envoyer:disabled { opacity: .6; cursor: wait; }
.cjtc-piege { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.cjtc-saisie { flex: none; display: flex; align-items: flex-end; gap: 8px; padding: 10px; background: #fff; border-top: 1px solid var(--t-bord); margin: 0; }
.cjtc-saisie[hidden] { display: none; }
.cjtc-saisie textarea { flex: 1; resize: none; min-height: 42px; max-height: 120px; padding: 10px 14px; border: 1px solid var(--t-bord); border-radius: 21px; font: inherit; font-size: 15px; color: var(--t-texte); background: #fff; }
.cjtc-saisie textarea:focus { outline: none; border-color: var(--t-encre); }
.cjtc-envoyer { flex: none; width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--t-encre); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.cjtc-envoyer:hover { background: var(--t-encre-2); }

@media (max-width: 600px) {
	.cjtc { right: 14px; bottom: 14px; }
	.cjtc-libelle { display: none; }
	.cjtc-bouton { width: 56px; padding: 0; justify-content: center; }
	.cjtc-fenetre { position: fixed; left: 0; right: 0; top: 0; bottom: 0; width: auto; height: auto; border-radius: 0; }
	.cjtc-ouvert .cjtc-bouton { display: none; }
}
@media print { .cjtc { display: none; } }
