/* =====================================================================
   Bailsecurity - espace connecté, couche « expérience »
   Bandeau illustré par menu, écrans modernes, formulaires agrandis,
   notifications. Se charge après BS.css et pastel.css.
   ===================================================================== */

:root { --es-sidebar: 230px; --es-zoom: 1; }

/* ------------------------------------------------------------- mise à l'échelle (+20 %) des écrans historiques */
@media (min-width: 1180px) { :root { --es-zoom: 1.1; } }
@media (min-width: 1340px) { :root { --es-zoom: 1.2; } }
#bsZone { zoom: var(--es-zoom); }
#bsZone #factice { min-width: calc((var(--es-sidebar) + 18px) / var(--es-zoom)) !important; width: calc((var(--es-sidebar) + 18px) / var(--es-zoom)) !important; height: auto !important; }
#sidebar { width: var(--es-sidebar) !important; }
#panel, #flip { margin-left: var(--es-sidebar) !important; }
@media screen and (max-width: 670px) { :root { --es-sidebar: 0px; } #sidebar { width: 0; } }
/* téléphone (recette QA du 13/10/2026) : le menu fermé ne laisse plus de bande de 17 px sur le texte (marges intérieures de pastel.css),
   et le bouton ☰ (#BarreM, largeur posée en ligne) l'ouvre vraiment : la largeur « !important » ci-dessus l'en empêchait */
@media screen and (max-width: 670px) {
	#sidebar { padding: 0 !important; border-right: 0 !important; box-shadow: none !important; overflow: hidden !important; }
	#sidebar[style*="190px"] { width: min(84vw, 300px) !important; padding: 6px 8px 24px !important; border-right: 1px solid var(--line, #E3E7F0) !important;
		box-shadow: 6px 0 40px rgba(30,38,64,.22) !important; overflow-y: auto !important; z-index: 9000 !important; }
	#bsZone { padding-left: 12px !important; padding-right: 12px !important; }
	#flip { padding-left: 52px !important; }   /* le bouton ☰ ne masque plus le début du bandeau */
	/* le bandeau de l'écran recouvrait le bouton ☰ : menu impossible à ouvrir sur téléphone, donc aussi « Se déconnecter » (recette QA
	   du portail Locataire, L14) ; le bouton passe au premier plan, au-dessus du menu ouvert, et le bandeau commence après lui */
	#BarreM { z-index: 9100 !important; }
	#es-bandeau { margin-left: 52px !important; }
	#mydiv { display: none !important; }       /* la fenêtre d'aide recouvrait le bas de l'écran */
	.bs-qt-bloc table, #bsZone table.es-table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }   /* tableaux : défilement horizontal dans leur cadre */
}

/* les lignes et champs historiques respirent davantage */
#bsZone .text-form { font-size: 12.5px !important; }
#bsZone input[type=text], #bsZone input[type=email], #bsZone input[type=tel], #bsZone input[type=password], #bsZone input[type=number], #bsZone input:not([type]), #bsZone select { min-height: 24px; }
#bsZone h2 { font-family: var(--font-display); letter-spacing: -.02em; }

/* ------------------------------------------------------------- barre latérale avec icônes */
#sidebar a { display: flex !important; align-items: center; gap: 10px; }
#sidebar a .es-ico { flex: 0 0 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--canvas-2); transition: background-color .3s var(--ease), transform .3s var(--ease); }
#sidebar a .es-ico svg { width: 16px; height: 16px; stroke: var(--ink-2); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#sidebar a:hover .es-ico { transform: scale(1.06); background: #fff; }
#sidebar a[style*="orange"] .es-ico { background: var(--accent); }
#sidebar a[style*="orange"] .es-ico svg { stroke: #fff; }
#sidebar .es-titre-groupe { font: 500 10.5px/1 var(--mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); padding: 16px 12px 6px; }
#sidebar .es-nouveau { margin-left: auto; font-size: 10px; font-weight: 700; color: var(--sage-ink); background: var(--sage); border-radius: 999px; padding: 2px 7px; }

/* ------------------------------------------------------------- bandeau illustré */
#es-bandeau {
	position: relative; margin: 12px 18px 6px calc(var(--es-sidebar) + 18px); height: clamp(150px, 21vh, 210px);
	border-radius: 22px; overflow: hidden; background: var(--canvas-2); box-shadow: var(--shadow);
	isolation: isolate;
}
#es-bandeau .es-b-img { position: absolute; inset: 0; background-size: cover; background-position: 70% 50%; opacity: 0; transform: scale(1.08); transition: opacity .9s var(--ease), transform 7s cubic-bezier(.2,.6,.2,1); }
#es-bandeau .es-b-img.on { opacity: 1; transform: scale(1); }
#es-bandeau::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(245,247,251,.97) 0%, rgba(245,247,251,.86) 32%, rgba(245,247,251,.15) 62%, rgba(245,247,251,0) 80%); }
#es-bandeau .es-b-txt { position: absolute; z-index: 2; left: clamp(20px, 3vw, 40px); top: 50%; transform: translateY(-50%); max-width: min(560px, 55%); }
#es-bandeau .es-b-sur { font: 500 11px/1 var(--mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-2); display: inline-flex; gap: 8px; align-items: center; }
#es-bandeau .es-b-sur::before { content: ""; width: 22px; height: 1.5px; background: currentColor; }
#es-bandeau h1 { font: 700 clamp(24px, 2.6vw, 38px)/1.05 var(--font-display); letter-spacing: -.03em; margin: 10px 0 8px; color: var(--ink); }
#es-bandeau p { margin: 0; color: var(--ink-2); font-size: 15px; line-height: 1.5; }
#es-bandeau .es-etapes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
#es-bandeau .es-etapes span { font-size: 12.5px; font-weight: 700; background: rgba(255,255,255,.85); border: 1px solid var(--line); border-radius: 999px; padding: 6px 11px; color: var(--ink-2); }
#es-bandeau .es-etapes span b { color: var(--accent); margin-right: 4px; }
#es-bandeau .es-m { display: inline-block; opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease), transform .7s var(--ease); }
#es-bandeau.entree .es-m { opacity: 1; transform: none; }
#es-bandeau .es-fil { position: absolute; z-index: 2; left: 0; bottom: 0; height: 3px; width: 100%; background: linear-gradient(90deg, var(--accent), var(--blue)); transform: scaleX(0); transform-origin: left; }
#es-bandeau.entree .es-fil { animation: es-fil 1.1s var(--ease) forwards; }
@keyframes es-fil { 0% { transform: scaleX(0); opacity: 1; } 80% { transform: scaleX(1); opacity: 1; } 100% { transform: scaleX(1); opacity: 0; } }
@media (max-width: 760px) { #es-bandeau { margin-left: 12px; margin-right: 12px; height: 150px; } #es-bandeau .es-b-txt { max-width: 80%; } #es-bandeau .es-etapes { display: none; } }

/* ------------------------------------------------------------- entrée des écrans */
.es-entree > * { animation: es-monte .6s var(--ease) both; }
.es-entree > *:nth-child(2) { animation-delay: .06s; } .es-entree > *:nth-child(3) { animation-delay: .12s; }
.es-entree > *:nth-child(4) { animation-delay: .18s; } .es-entree > *:nth-child(5) { animation-delay: .24s; }
.es-entree > *:nth-child(n+6) { animation-delay: .3s; }
@keyframes es-monte { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
#LeConteneur > div[id]:not(#Accueil) { transform-origin: top left; }

/* ------------------------------------------------------------- panneaux des nouveaux écrans */
.es-panneau { width: min(760px, calc(100vw - 340px)); max-width: 760px; text-align: left; margin: 6px 0 30px; color: var(--ink); font-size: 14.5px; line-height: 1.55; }
.es-panneau a { color: var(--accent-2); font-weight: 600; }
.es-tete h2 { font: 700 26px/1.1 var(--font-display) !important; letter-spacing: -.02em; margin: 0 0 6px; color: var(--ink) !important; }
.es-tete p { margin: 0 0 18px; color: var(--ink-2); }
.es-chargement { display: grid; gap: 10px; }
.es-chargement i { height: 18px; border-radius: 9px; background: linear-gradient(90deg, var(--canvas-2), #fff, var(--canvas-2)); background-size: 200% 100%; animation: es-reflet 1.2s linear infinite; }
.es-chargement i:nth-child(2) { width: 80%; } .es-chargement i:nth-child(3) { width: 60%; }
@keyframes es-reflet { to { background-position: -200% 0; } }

.es-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 0 0 18px; }
.es-chiffres > div { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; box-shadow: var(--shadow); }
.es-chiffres b { display: block; font: 700 28px/1 var(--font-display); color: var(--ink); }
.es-chiffres span { font-size: 12.5px; color: var(--ink-3); }
.es-chiffres.petit b { font-size: 21px; }
/* vignette cliquable : même aspect, ouvre la liste qu'elle compte (17/10/2026) */
.es-chiffres > .es-chiffre-lien { all: unset; box-sizing: border-box; display: block; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; box-shadow: var(--shadow); cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; }
.es-chiffres > .es-chiffre-lien:hover { border-color: rgba(91,108,240,.45); box-shadow: 0 10px 24px rgba(91,108,240,.16); transform: translateY(-1px); }
.es-chiffres > .es-chiffre-lien:focus-visible { outline: 2px solid var(--accent, #5B6CF0); outline-offset: 2px; }
.es-chiffres > .es-chiffre-lien span::after { content: " ›"; color: var(--accent, #5B6CF0); font-weight: 700; }

.es-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.es-carte { all: unset; box-sizing: border-box; cursor: pointer; position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .3s var(--ease); }
.es-carte:hover, .es-carte:focus-visible { box-shadow: var(--shadow-lg); border-color: var(--blue); }
.es-carte-img { height: 110px; background-size: cover; background-position: 70% 50%; transition: transform 1s var(--ease); }
.es-carte:hover .es-carte-img { transform: scale(1.06); }
.es-carte-txt { padding: 12px 40px 14px 14px; display: grid; gap: 2px; }
.es-carte-txt b { font: 700 16px/1.2 var(--font-display); color: var(--ink); }
.es-carte-txt small { color: var(--ink-3); font-size: 12.5px; }
.es-carte > i { position: absolute; right: 12px; bottom: 14px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-style: normal; background: var(--accent-soft); color: var(--accent-2); transition: transform .4s var(--ease), background-color .3s var(--ease), color .3s var(--ease); }
.es-carte:hover > i { transform: translateX(3px); background: var(--accent); color: #fff; }

.es-liste { display: grid; gap: 10px; }
.es-ligne { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; box-shadow: var(--shadow); transition: transform .35s var(--ease), border-color .3s var(--ease); }
.es-ligne:hover { transform: translateX(3px); border-color: var(--blue); }
.es-ligne-ico { flex: 0 0 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: var(--lilac); font-size: 19px; color: var(--ink); }
.es-ligne-txt { flex: 1; display: grid; gap: 2px; }
.es-ligne-txt b { font-size: 15px; }
.es-ligne-txt span { color: var(--ink-2); font-size: 13.5px; }
.es-ligne-txt small { color: var(--ink-3); font-size: 12.5px; }

.es-btn { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 0 18px; border-radius: 999px; font: 700 14px/1 var(--font); background: var(--accent); color: #fff !important; text-decoration: none !important; box-shadow: 0 6px 16px rgba(91,108,240,.25); transition: transform .25s var(--ease), background-color .25s var(--ease), box-shadow .25s var(--ease); white-space: nowrap; }
.es-btn:hover { background: var(--accent-2); }
.es-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.es-btn.ligne { background: #fff; color: var(--ink) !important; border: 1px solid var(--line-strong); box-shadow: none; }
.es-btn.ligne:hover { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-2) !important; }
.es-btn[disabled] { opacity: .6; pointer-events: none; }
.es-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

/* formulaires des nouveaux écrans */
.es-form, .es-recherche { display: grid; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 20px 22px; box-shadow: var(--shadow); }
.es-recherche { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); align-items: end; margin-bottom: 16px; }
.es-champ { display: grid; gap: 6px; }
.es-champ > span { font-size: 13px; font-weight: 700; color: var(--ink-2); display: flex; align-items: center; gap: 8px; }
.es-champ input, .es-champ textarea, .es-champ select { width: 100%; box-sizing: border-box; font-size: 15px !important; padding: 11px 13px !important; border-radius: 12px !important; }
.es-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 900px) { .es-duo { grid-template-columns: 1fr; } }
.es-echelle { border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0 !important; margin: 0; }
.es-echelle legend { all: unset; display: grid; gap: 2px; margin-bottom: 8px; font: 700 15px/1.25 var(--font-display); color: var(--ink); }
.es-echelle legend small { font: 400 12.5px/1.4 var(--font); color: var(--ink-3); }
.es-echelle > div { display: flex; flex-wrap: wrap; gap: 6px; }
.es-echelle label { cursor: pointer; }
.es-echelle input { position: absolute; opacity: 0; pointer-events: none; }
.es-echelle span { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line-strong); background: #fff; font-weight: 600; font-size: 13.5px; color: var(--ink-2); transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease); }
.es-echelle label:hover span { border-color: var(--accent); transform: translateY(-1px); }
.es-echelle input:checked + span { background: var(--accent); border-color: var(--accent); color: #fff; box-shadow: 0 6px 14px rgba(91,108,240,.25); }
.es-echelle input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.es-charte { background: var(--butter); border-radius: 16px; padding: 14px 16px; font-size: 13.5px; }
.es-charte ul { margin: 6px 0 10px 18px; padding: 0; color: var(--ink-2); }
.es-coche { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; cursor: pointer; }
.es-coche input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--accent); }
.es-mdp { border: 1px dashed var(--line-strong) !important; box-shadow: none !important; background: var(--canvas) !important; padding: 12px 14px 14px !important; }
.es-retour { margin: 0; min-height: 1.2em; font-weight: 600; }
.es-retour.ok { color: var(--sage-ink); }
.es-retour.erreur { color: var(--rose-ink); }

.es-aide { all: unset; cursor: pointer; width: 20px; height: 20px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--accent); color: #fff; font: 700 12px/1 var(--font); transition: transform .25s var(--ease); }
.es-aide:hover { color: var(--accent-2); }

.es-vide, .es-mention { color: var(--ink-3); }
.es-mention { font-size: 12.5px; margin-top: 12px; }
.es-alerte { background: var(--peach); border-radius: 14px; padding: 12px 14px; color: var(--ink); }

/* notes et synthèses */
.es-synthese { display: grid; gap: 8px; }
.es-critere { display: grid; grid-template-columns: 1fr 120px 34px; gap: 10px; align-items: center; font-size: 13.5px; color: var(--ink-2); }
.es-jauge { height: 8px; border-radius: 8px; background: var(--canvas-2); overflow: hidden; }
.es-jauge i { display: block; height: 100%; width: var(--p); border-radius: inherit; background: linear-gradient(90deg, var(--blue), var(--accent)); transform-origin: left; animation: es-jauge 1s var(--ease) both; }
@keyframes es-jauge { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.es-chiffre { font-weight: 700; color: var(--ink); text-align: right; }
.es-note.vide { grid-column: span 2; font-size: 12px; color: var(--ink-3); }
.es-bailleur, .es-avis, .es-enquete { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 16px 18px; box-shadow: var(--shadow); margin-bottom: 12px; }
.es-bailleur-tete { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin-bottom: 10px; }
.es-bailleur-tete b { font: 700 17px/1.2 var(--font-display); }
.es-bailleur-tete span { color: var(--ink-3); font-size: 13px; }
.es-bailleur-tete em { margin-left: auto; font-style: normal; font-weight: 700; font-size: 12.5px; padding: 5px 10px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-2); }
.es-enquete.favorable .es-bailleur-tete em { background: var(--sage); color: var(--sage-ink); }
.es-enquete.vigilance .es-bailleur-tete em { background: var(--rose); color: var(--rose-ink); }
.es-enquete.neutre .es-bailleur-tete em { background: var(--canvas-2); color: var(--ink-2); }
/* une seule colonne depuis le retrait de la note (14/10/2026) : la colonne de 140 px de la note recevait la synthèse ou l'encadré « Pièces vérifiables » */
.es-carte-synthese { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; background: linear-gradient(120deg, var(--blue), var(--lilac)); border-radius: 20px; padding: 18px 20px; margin-bottom: 14px; }
.es-carte-synthese > div:first-child b { font: 700 46px/1 var(--font-display); display: block; }
.es-carte-synthese .es-jauge { background: rgba(255,255,255,.6); }
.es-avis header { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; margin-bottom: 10px; }
.es-avis header span { color: var(--ink-3); font-size: 13px; }
.es-avis blockquote { margin: 12px 0; padding: 10px 14px; border-left: 3px solid var(--blue); background: var(--canvas); border-radius: 0 12px 12px 0; color: var(--ink-2); }
.es-reponse-form { padding: 12px 14px; box-shadow: none; background: var(--canvas); }
.es-reponse { background: var(--accent-soft); border-radius: 14px; padding: 12px 14px; }

.es-contacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.es-contact { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px; box-shadow: var(--shadow); display: grid; gap: 8px; justify-items: start; }
.es-contact b { font: 700 18px/1.2 var(--font-display); }
.es-contact p { margin: 0; color: var(--ink-2); }
.es-pastille { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--accent-2); background: var(--accent-soft); padding: 4px 9px; border-radius: 999px; }

.es-verifs { display: grid; gap: 8px; background: var(--canvas); border-radius: 16px; padding: 14px; }
.es-verif { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; background: #fff; border-radius: 12px; padding: 10px 12px; border-left: 4px solid var(--line-strong); }
.es-verif em { font-style: normal; font-weight: 700; font-size: 12.5px; }
.es-verif small { grid-column: 1 / -1; color: var(--ink-3); font-size: 12px; }
.es-verif.verifie { border-left-color: #3BB27A; } .es-verif.verifie em { color: var(--sage-ink); }
.es-verif.adresse_introuvable, .es-verif.non_verifie { border-left-color: #E9A3A3; }
.es-verif.adresse_introuvable em, .es-verif.non_verifie em { color: var(--rose-ink); }
.es-verif.indisponible { border-left-color: #F2C27A; }

.es-attestation { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 24px 26px; box-shadow: var(--shadow); }
.es-att-tete { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.es-att-tete svg { width: 42px; height: 42px; }
.es-att-tete b { display: block; font: 700 18px/1.1 var(--font-display); }
.es-att-tete small { color: var(--ink-3); }
.es-table { width: 100% !important; border-collapse: collapse !important; font-size: 13px; margin-top: 10px; table-layout: auto !important; white-space: normal !important; }
.es-table th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); padding: 8px 6px; border-bottom: 1px solid var(--line); }
.es-table td { padding: 8px 6px !important; border-bottom: 1px solid var(--line); white-space: normal !important; }

/* ------------------------------------------------------------- fenêtre modale */
.es-modale { position: fixed; inset: 0; z-index: 20000; display: grid; place-items: center; background: rgba(30,38,64,.32); backdrop-filter: blur(4px); animation: es-fondu .3s var(--ease); padding: 16px; }
.es-modale > div { width: min(560px, 100%); max-height: 90vh; overflow: auto; background: #fff; border-radius: 22px; box-shadow: var(--shadow-lg); padding: 24px 26px; animation: es-monte .45s var(--ease); color: var(--ink); font: 400 15px/1.55 var(--font); }
.es-modale h3 { font: 700 22px/1.15 var(--font-display); margin: 0 0 10px; }
.es-modale ol { padding-left: 20px; margin: 10px 0; }
.es-modale li { margin-bottom: 6px; }
.es-modale .es-exemple { display: flex; align-items: center; gap: 10px; background: var(--canvas); border: 1px dashed var(--line-strong); border-radius: 14px; padding: 12px 14px; font: 600 15px/1.3 var(--mono, monospace); margin: 10px 0; }
.es-modale .es-exemple small { font: 400 12px/1.3 var(--font); color: var(--ink-3); }
.es-modale .es-fermer { float: right; }
@keyframes es-fondu { from { opacity: 0; } to { opacity: 1; } }

/* ------------------------------------------------------------- notifications (messages historiques) */
#RetourAjax:not(:empty), #AffichageJava:not(:empty) {
	position: fixed !important; top: auto !important; bottom: 22px !important; right: 22px !important; left: auto !important; z-index: 15000;
	max-width: min(440px, calc(100vw - 44px)) !important; margin: 0 !important;
	background: #fff !important; color: var(--ink) !important; font: 600 14px/1.45 var(--font) !important;
	border-radius: 16px; border-left: 4px solid var(--accent); padding: 14px 16px !important; box-shadow: var(--shadow-lg);
	animation: es-monte .45s var(--ease);
}
#Affichage:empty, #MessageJava:empty { display: none; }

/* ------------------------------------------------------------- cartes d'accueil de l'agence */
#Accueil .CarteAccueil { height: auto !important; line-height: 1.2 !important; padding: 0 0 12px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); overflow: hidden; margin-bottom: 12px; width: 280px !important; }
#Accueil .CarteAccueil img { width: 100% !important; height: 120px !important; object-fit: cover; padding: 0 !important; border-radius: 0 !important; box-shadow: none; }
#Accueil .CarteAccueil span { display: block; padding: 10px 12px 0; text-align: left; font-family: var(--font-display); }
#Accueil .CarteAccueil:hover { width: 280px !important; }
#Accueil > br { display: none; }

/* ------------------------------------------------------------- impression de l'attestation */
@media print {
	body * { visibility: hidden !important; }
	#es-attestation, #es-attestation * { visibility: visible !important; }
	#es-attestation { position: absolute; left: 0; top: 0; width: 100%; box-shadow: none; border: 0; }
	#bsZone { zoom: 1; }
}

@media (prefers-reduced-motion: reduce) {
	#es-bandeau .es-b-img, #es-bandeau .es-m, .es-entree > *, .es-jauge i { transition: none !important; animation: none !important; opacity: 1; transform: none; }
}

/* ------------------------------------------------------------- correctifs de cohabitation avec pastel.css */
button.es-carte { border-radius: 18px !important; border: 1px solid var(--line) !important; font-weight: 400 !important; padding: 0 !important; text-align: left; box-shadow: var(--shadow) !important; }
button.es-carte:hover { border-color: var(--blue) !important; box-shadow: var(--shadow-lg) !important; }
button.es-aide { border-radius: 50% !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
/* fenêtre d'aide : au centre de l'écran (placée par espace.js), déplaçable ; contenu sur fond gris clair */
#mydiv { right: auto; width: 380px !important; max-width: calc(100vw - 16px); z-index: 9000 !important; background: #fff !important; }
#mydiv > div:not(#mydivheader) { background: #F1F3F8; margin: 10px; border-radius: 12px; padding: 12px 8px; }
/* en-tête historique (nom du compte) plus discret, le bandeau porte le titre */
#LeConteneur > div:first-child { height: auto !important; padding: 0 0 6px 2px !important; text-align: left; }
#LeConteneur > div:first-child p { font: 600 13px/1.3 var(--font) !important; color: var(--ink-3) !important; letter-spacing: .02em; }
#LeConteneur > div:first-child p::before { content: "● "; color: #3BB27A; }

/* =====================================================================
   Formulaires harmonisés : même largeur partout (+20 %), libellés sur une
   ligne, champs alignés en lignes souples, adresses sur 2 lignes.
   ===================================================================== */
:root { --es-form: 520px; --es-label: 138px; }

#bsZone :is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl, #ModColl, #ModAgence, #SearchProp, #SearchImm, #SearchLoc, #SearchProp-2, #ModifProp, #ModifImm, #ModifLoca) {
	width: var(--es-form) !important; max-width: none; box-sizing: border-box; height: auto !important; min-height: 0;
}
#bsZone :is(#SearchProp, #SearchImm, #SearchLoc, #SearchProp-2) { padding: 14px 16px 18px !important; }
#bsZone .es-panneau { width: var(--es-form); max-width: var(--es-form); }
#bsZone .formulaire { display: block !important; width: 100%; }
#bsZone :is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl, #ModColl, #ModAgence, #ModifProp, #ModifImm, #ModifLoca) fieldset { width: 100%; box-sizing: border-box; padding: 16px 18px 18px !important; margin: 0; }
#bsZone :is(#result, #result-2, #result_i, #result_l, #result_c) { width: 100% !important; box-sizing: border-box; border-radius: 12px; }
#bsZone #ModAgence > div[style*="width"] { width: 100% !important; box-sizing: border-box; overflow: visible !important; }
#bsZone #result_m { width: 100% !important; height: auto !important; overflow: visible !important; box-sizing: border-box; padding: 0 !important; border: 0 !important; background: transparent !important; }
#bsZone #result_m form, #bsZone #result_m .AuCentre { width: 100% !important; max-width: none !important; min-width: 0 !important; margin: 0 !important; }
#bsZone #result_m h3, #bsZone #ModAgence h3 { font-size: 12.5px; border-radius: 12px; border-color: var(--line) !important; }
#bsZone h2[style*="F5D0A9"] { font-size: 21px !important; text-align: left; margin: 0 0 10px !important; }

/* lignes construites par js/espace.js (aucun champ déplacé hors de son formulaire) */
.es-rang { display: flex; flex-wrap: wrap; align-items: center; column-gap: 10px; row-gap: 6px; margin: 0 0 9px; width: 100%; box-sizing: border-box; }
.es-rang.es-espace { margin-top: 14px; }
.es-rang > label { flex: 0 0 auto; margin: 0 !important; float: none !important; display: inline-flex !important; align-items: center; line-height: 1.2 !important; }
.es-rang .text-form { width: auto !important; height: auto !important; white-space: nowrap; padding: 0 !important; float: none !important; display: inline-flex !important; align-items: center; gap: 6px; }
.es-rang > label:first-child .text-form, .es-rang > label:first-child { min-width: var(--es-label); }
.es-rang > :is(input, textarea, select) { margin: 0 !important; min-width: 0; box-sizing: border-box; float: none !important; }
.es-rang > :is(input[type=checkbox], input[type=radio]) { flex: 0 0 auto; }
.es-rang > button { position: static !important; margin: 0 !important; height: auto !important; min-height: 38px; flex: 0 1 auto; }
.es-rang > :is(input[type=submit], input[type=reset], input[type=button]) { flex: 0 0 auto !important; width: auto !important; min-width: 120px; padding: 0 20px !important; height: 40px !important; }
.es-rang > span:not(.text-form) { flex: 0 1 auto; }
.es-rang.es-actions-rang { justify-content: flex-start; margin-top: 12px; }

/* adresses : zones de saisie sur 2 lignes, sans retour à la ligne possible */
textarea[data-une-ligne] { resize: none; line-height: 1.35 !important; min-height: 52px; padding: 7px 10px !important; overflow: hidden; font-size: inherit; vertical-align: middle; }

/* champ complété après une sélection : passage au jaune puis retour au blanc (1 s) */
@keyframes es-flash { 0% { background-color: #fff; } 40% { background-color: #FFE97A; box-shadow: 0 0 0 4px rgba(255,214,0,.25); } 100% { background-color: #fff; } }
:is(input, textarea, select).es-flash { animation: es-flash 1s ease-in-out both !important; }

/* popup de confirmation de sélection */
.es-confirme > div { width: min(480px, 100%); }
.es-confirme .es-c-tete { display: flex; gap: 14px; align-items: center; margin-bottom: 14px; }
.es-confirme .es-c-ico { flex: 0 0 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--accent-soft); font-size: 24px; }
.es-confirme .es-c-tete small { display: block; font: 500 11px/1 var(--mono, monospace); letter-spacing: .12em; text-transform: uppercase; color: var(--accent-2); margin-bottom: 6px; }
.es-confirme .es-c-tete b { font: 700 21px/1.15 var(--font-display); display: block; }
.es-confirme dl { display: grid; grid-template-columns: 140px 1fr; gap: 8px 14px; margin: 0 0 18px; padding: 14px 16px; background: var(--canvas); border-radius: 14px; font-size: 14px; }
.es-confirme dt { color: var(--ink-3); }
.es-confirme dd { margin: 0; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.es-confirme .es-actions { margin-top: 0; justify-content: flex-end; }
.es-modale.ferme { animation: es-fondu-sortie .28s var(--ease) forwards; }
.es-modale.ferme > div { animation: es-sortie .28s var(--ease) forwards; }
@keyframes es-fondu-sortie { to { opacity: 0; } }
@keyframes es-sortie { to { opacity: 0; transform: translateY(10px) scale(.98); } }

/* adresses : exactement 2 lignes */
#bsZone textarea[data-une-ligne], #es-zone textarea[data-une-ligne], textarea[data-une-ligne] { height: calc(2.7em + 16px) !important; min-height: 0 !important; max-height: none; }
/* fiche agence : conteneur « text-form » historique à pleine largeur */
#result_m div.text-form { width: 100% !important; display: block !important; height: auto !important; padding: 0 !important; background: transparent !important; white-space: normal !important; font-weight: 400 !important; }
#result_m fieldset { padding: 16px 18px !important; }
/* colonnes : la fiche passe sous la recherche quand la largeur manque (pas de débordement) */
#bsZone { flex-wrap: wrap; align-items: flex-start; column-gap: 0; padding-right: 12px; box-sizing: border-box; max-width: calc(100vw / var(--es-zoom)); }
#bsZone > div { max-width: 100%; }

#bsZone > #factice { display: none !important; }
#bsZone { padding-left: calc((var(--es-sidebar) + 18px) / var(--es-zoom)); }
@media screen and (max-width: 670px) { #bsZone { padding-left: 8px; } }

/* recherches : le calque de contenu reste dans le flux (hauteur réelle, pas de chevauchement) */
#bsZone :is(#voileSearchProp, #voileSearchImm, #voileSearchLoca) { position: relative !important; }

/* ----------------------------------------------- expérience adaptée au profil connecté */
/* outils propres à l'agence (liste des mandats, boutons de gestion) : jamais affichés ailleurs */
body:not(.es-genre-agence) :is(#Accueil2, #BTproprio, #BTliens) { display: none !important; }
/* la clause à insérer dans le bail concerne le bailleur, pas le locataire */
body.es-genre-locataire :is(#flip, #panel) { display: none !important; }
/* le propriétaire n'a pas à se choisir lui-même : ses biens lui sont rattachés d'office. Seule la rangée dont le champ est le
   contrôle direct est masquée : la mise en forme imbrique la rangée du propriétaire dans celle de la date d'achat (obligatoire),
   qu'un simple :has(#PropI) masquait aussi (envoi bloqué sans message : recette QA propriétaire du 13/10/2026, P11) */
body.es-genre-proprietaire #SaveImm .es-rang:has(> .es-ch > .es-ch-ctl > #PropI),
body.es-genre-proprietaire #SearchImm .es-rang:has(> .es-ch > .es-ch-ctl > #NomR_i),
body.es-genre-proprietaire #SearchImm .es-rang:has(> .es-ch > .es-ch-ctl > #LimitR_i) { display: none !important; }

.es-statut { display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: .86em; font-weight: 600; background: #eef0f6; color: #4a5068; }
.es-statut.verifie { background: #e3f4ea; color: #23744a; }
.es-statut.adresse_introuvable, .es-statut.non_verifie { background: #fdecea; color: #a23b30; }
.es-statut.indisponible { background: #fff4dc; color: #8a6418; }
.es-temoignage:not(:empty) { margin-top: 22px; padding: 18px 20px; border-radius: 18px; background: #fff; box-shadow: 0 10px 30px rgba(40,48,90,.08); }
.es-temoignage.es-entree { animation: es-monte .45s cubic-bezier(.2,.7,.2,1) both; }
@keyframes es-monte { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.es-liste .es-btn.ligne { border-color: rgba(91,108,240,.35); color: var(--accent-2) !important; }

/* ----------------------------------------------- import / export en masse (agences) */
.es-actions-haut { position: absolute; z-index: 4; top: 14px; right: 16px; }
.es-actions-haut[hidden] { display: none; }
.es-roue { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px 0 10px; border-radius: 999px;
	background: rgba(255,255,255,.92); border: 1px solid var(--line); box-shadow: 0 6px 18px rgba(30,38,64,.10); backdrop-filter: blur(8px);
	font: 700 13.5px/1 var(--font); color: var(--ink) !important; transition: transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease); }
.es-roue svg { width: 20px; height: 20px; stroke: var(--accent); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .6s cubic-bezier(.3,1.4,.5,1); }
.es-roue i { font-style: normal; font-size: 11px; color: var(--ink-3); transition: transform .3s var(--ease); }
.es-roue:hover { box-shadow: 0 10px 24px rgba(30,38,64,.14); }
.es-roue:hover svg { transform: rotate(60deg); }
.es-roue.ouvert svg { transform: rotate(180deg); }
.es-roue.ouvert i { transform: rotate(180deg); }
.es-roue:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

.es-menu-actions { position: fixed; z-index: 19000; width: 290px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-lg); font: 400 14px/1.4 var(--font); color: var(--ink); transform-origin: top right; }
.es-menu-actions.on { animation: es-deroule .28s cubic-bezier(.2,.8,.2,1); }
@keyframes es-deroule { from { opacity: 0; transform: translateY(-6px) scale(.96); } to { opacity: 1; transform: none; } }
.es-menu-tete { font: 500 10.5px/1 var(--mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); padding: 8px 10px 6px; }
.es-menu-actions button { all: unset; box-sizing: border-box; width: 100%; cursor: pointer; display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 12px; transition: background-color .2s var(--ease); }
.es-menu-actions button:hover, .es-menu-actions button:focus-visible { background: var(--accent-soft); }
.es-menu-actions svg, .es-ie-choix svg { flex: 0 0 auto; width: 34px; height: 34px; padding: 8px; box-sizing: border-box; border-radius: 10px; background: var(--canvas-2); stroke: var(--accent-2); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.es-menu-actions b, .es-ie-choix b { display: block; font-weight: 700; color: var(--ink); }
.es-menu-actions small, .es-ie-choix small { display: block; color: var(--ink-3); font-size: 12.5px; }

.es-ie > div { width: min(680px, 100%); }
.es-ie.sortie { animation: es-fondu .22s var(--ease) reverse forwards; }
.es-ie-sur { font: 500 11px/1 var(--mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-2); display: inline-flex; gap: 8px; align-items: center; }
.es-ie-sur::before { content: ""; width: 22px; height: 1.5px; background: currentColor; }
.es-ie h3 { margin-top: 8px !important; }
.es-ie-choix-liste { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 16px 0 10px; }
@media (max-width: 560px) { .es-ie-choix-liste { grid-template-columns: 1fr; } }
.es-ie-choix { all: unset; box-sizing: border-box; cursor: pointer; display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: 16px; border: 1px solid var(--line); background: #fff;
	transition: border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease), background-color .25s var(--ease); }
.es-ie-choix:hover, .es-ie-choix:focus-visible { border-color: var(--accent); box-shadow: 0 10px 24px rgba(91,108,240,.14); }
.es-ie-choix[disabled] { cursor: not-allowed; opacity: .55; transform: none; box-shadow: none; border-color: var(--line); }
.es-ie-choix.fait { border-color: var(--sage-ink); background: #f3faf6; }
.es-ie-depot { border-style: dashed; border-width: 1.5px; background: var(--canvas); }
.es-ie-depot.survol { border-color: var(--accent); background: var(--accent-soft); transform: scale(1.02); }
.es-ie-depot.refus { border-color: var(--rose-ink); }
.es-ie-depot.refus small { color: var(--rose-ink); }
.es-ie-note { font-size: 13px; color: var(--ink-3); margin: 6px 0 0; }
.es-ie-attente { display: grid; justify-items: center; gap: 6px; padding: 30px 0 16px; text-align: center; }
.es-ie-attente small { color: var(--ink-3); }
.es-ie-roue svg { width: 44px; height: 44px; stroke: var(--accent); fill: none; stroke-width: 1.6; animation: es-tourne 1.6s linear infinite; }
@keyframes es-tourne { to { transform: rotate(360deg); } }
.es-occupe .es-fermer { visibility: hidden; }
.es-ie-bilan.es-entree { animation: es-monte .4s var(--ease); }
.es-ie-resume { background: var(--accent-soft); border-radius: 14px; padding: 12px 16px; margin: 14px 0 6px; display: grid; gap: 3px; }
.es-ie-resume.fini { background: #eaf6ef; }
.es-ie-resume span { font-size: 12.5px; color: var(--ink-3); }
.es-ie-resume b { font: 700 18px/1.2 var(--font-display); }
.es-ie-resume small { color: var(--ink-2); font-size: 13px; }
.es-ie-alerte { background: var(--rose); color: var(--rose-ink); border-radius: 14px; padding: 14px 16px; margin: 14px 0; font-weight: 600; }
.es-ie-feuille { border-top: 1px solid var(--line); padding: 12px 0 4px; margin-top: 10px; }
.es-ie-feuille h4 { margin: 0 0 8px; font: 700 15px/1.2 var(--font-display); }
.es-ie-feuille h4 small { font: 400 12.5px/1 var(--font); color: var(--ink-3); margin-left: 6px; }
.es-ie-pastilles { display: flex; flex-wrap: wrap; gap: 6px; }
.es-ie-p { font-size: 12.5px; padding: 4px 10px; border-radius: 999px; background: var(--canvas-2); color: var(--ink-2); }
.es-ie-p.cree { background: #e3f4ea; color: #23744a; }
.es-ie-p.modifie { background: var(--accent-soft); color: var(--accent-2); }
.es-ie-p.existe { background: var(--butter); color: #7a5a12; }
.es-ie-p.erreur { background: var(--rose); color: var(--rose-ink); }
.es-ie-messages { list-style: none; margin: 10px 0 0; padding: 0; max-height: 220px; overflow: auto; border: 1px solid var(--line); border-radius: 12px; font-size: 13px; }
.es-ie-messages li { display: grid; grid-template-columns: 70px 1fr; gap: 8px; padding: 7px 10px; border-bottom: 1px solid var(--line); }
.es-ie-messages li:last-child { border-bottom: 0; }
.es-ie-messages li b { color: var(--ink-3); font-weight: 600; white-space: nowrap; }
.es-ie-messages li.erreur span { color: var(--rose-ink); }
.es-ie-messages li.existe span { color: #7a5a12; }
.es-ie-boutons { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.es-ie .es-btn.ligne { border-color: rgba(91,108,240,.35); }

/* ----------------------------------------------- confirmation de sélection : fiche complète */
.es-confirme > div { width: min(820px, 100%); display: flex; flex-direction: column; max-height: 88vh; padding-bottom: 18px; }
.es-confirme .es-c-corps { overflow: auto; flex: 1 1 auto; margin: 0 -6px; padding: 0 6px; min-height: 120px; }
.es-confirme .es-c-corps.es-entree { animation: es-monte .35s var(--ease); }
.es-confirme .es-c-corps > dl { margin-bottom: 12px; }
.es-confirme .es-c-pied { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 8px; }
.es-confirme .es-c-pied p { margin: 0 0 10px; color: var(--ink-2); }
.es-confirme .es-c-pied .es-actions { flex-wrap: wrap; }
.es-confirme .es-c-imprimer { margin-right: auto; }
.es-confirme .es-chargement { margin-top: 6px; }

/* fiche détaillée (écran) */
.ap { display: grid; gap: 12px; }
.ap-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.ap-sec { background: var(--canvas); border-radius: 14px; padding: 12px 14px; }
.ap-sec h4 { margin: 0 0 8px; font: 500 10.5px/1 var(--mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-2); }
.ap-sec dl, .es-confirme .ap-sec dl { display: grid; grid-template-columns: minmax(110px, 38%) 1fr; gap: 5px 12px; margin: 0; padding: 0; background: none; font-size: 13.5px; }
.ap-sec dt { color: var(--ink-3); }
.ap-sec dd { margin: 0; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.ap-sec dd small { display: block; font-weight: 400; color: var(--ink-3); }
.ap-large dl { grid-template-columns: minmax(150px, 30%) 1fr minmax(150px, 30%) 1fr !important; }
@media (max-width: 700px) { .ap-large dl { grid-template-columns: minmax(110px, 38%) 1fr !important; } }
.ap-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13.5px; }
.ap-liste li { display: grid; grid-template-columns: 1fr auto; gap: 0 10px; background: #fff; border-radius: 10px; padding: 8px 10px; }
.ap-liste li span { grid-column: 1; color: var(--ink-3); font-size: 12.5px; }
.ap-liste li .es-statut { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.ap-vide { margin: 0; color: var(--ink-3); font-style: italic; font-size: 13.5px; }
.ap .es-table { background: #fff; border-radius: 10px; }

/* boutons d'impression */
.es-btn.petit { min-height: 32px; padding: 0 12px; font-size: 12.5px; }
.es-fiche-outils { display: flex; justify-content: flex-end; margin: 4px 0 8px; }
#SaveT .es-fiche-outils { justify-content: flex-start; margin-top: 10px; }
.es-ligne-boutons { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.es-avis header .es-btn.petit { margin-left: auto; }

/* contacter mon bailleur */
.es-contact-bloc { margin-bottom: 18px; }
.es-contact-bloc h3 { font: 700 16px/1.3 var(--font-display); margin: 0 0 10px; color: var(--ink); }
.es-contact.discret { background: var(--canvas); box-shadow: none; }
.es-contact.large { grid-column: 1 / -1; justify-items: stretch; }
.es-contact.large > b, .es-contact.large > .es-pastille { justify-self: start; }
.es-message-form { box-shadow: none; padding: 14px 16px; }
.es-choix-contact { border: 1px solid var(--line); border-radius: 16px; padding: 12px 16px; display: grid; gap: 8px; }
.es-choix-contact legend { font-weight: 700; padding: 0 6px; }
.es-choix-contact small { color: var(--ink-3); }

/* recherche d'avis : 4 champs */
.es-recherche-4 { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }

/* ----------------------------------------------- mandats de gestion */
.es-bloc { margin: 0 0 22px; }
.es-bloc > h3 { font: 700 17px/1.25 var(--font-display); margin: 0 0 10px; color: var(--ink); }
.es-bloc-alerte { background: var(--butter); border-radius: 20px; padding: 14px 16px 6px; }
.es-aide-texte { color: var(--ink-2); margin: -4px 0 10px; font-size: 14px; }
.es-trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.es-mandat { flex-wrap: wrap; }
.es-mandat-actions { flex: 1 1 100%; }
.es-mandat-actions > summary { list-style: none; display: inline-flex; margin-left: 52px; }
.es-mandat-actions > summary::-webkit-details-marker { display: none; }
.es-mandat-actions[open] > summary { background: var(--accent-soft); }
.es-mandat-actions .es-form { margin-top: 10px; box-shadow: none; background: var(--canvas); }
.es-siret-info { min-height: 1.2em; font-size: 12.5px; color: var(--ink-3); margin-top: 4px; display: block; }
.es-siret-info.ok { color: var(--sage-ink); font-weight: 700; }
.es-siret-info.erreur { color: var(--rose-ink); }
.es-alerte-pastille { background: var(--rose) !important; color: var(--rose-ink) !important; }
.es-confirme-action > div { width: min(460px, 100%); }
.es-toast { position: fixed; z-index: 21000; right: 22px; bottom: 22px; max-width: min(420px, calc(100vw - 44px)); background: #fff; color: var(--ink); font: 600 14px/1.45 var(--font);
	border-radius: 16px; border-left: 4px solid var(--sage-ink); padding: 14px 16px; box-shadow: var(--shadow-lg); animation: es-monte .4s var(--ease); transition: opacity .4s var(--ease), transform .4s var(--ease); }
.es-toast.erreur { border-left-color: var(--rose-ink); }
.es-toast.sortie { opacity: 0; transform: translateY(10px); }

/* ----------------------------------------------- liste des propriétaires sous mandat (accueil agence) : +50 % */
#Accueil2 { width: 585px !important; max-width: calc(100vw - var(--es-sidebar) - 60px); padding: 14px 16px !important; }
#Accueil2 > span:first-child { width: auto !important; background: none !important; font: 700 15px/1.2 var(--font-display) !important; color: var(--ink) !important; padding: 0 0 8px !important; }
#result_mandats { height: 420px !important; color: var(--ink) !important; font-size: 13px !important; padding: 0 !important; }
#result_mandats table.es-mandats { width: 100%; border-collapse: collapse; table-layout: fixed; }
#result_mandats .es-mandats th { position: sticky; top: 0; background: var(--canvas-2); text-align: left; font: 700 11.5px/1.2 var(--font); text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); padding: 8px 8px; }
#result_mandats .es-mandats td { padding: 8px; border-bottom: 1px solid var(--line); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#result_mandats .es-mandats tr[id^=M] { cursor: pointer; transition: background-color .2s var(--ease); }
#result_mandats .es-mandats tr[id^=M]:hover { background: var(--accent-soft); }
#result_mandats .es-mandats .num { text-align: right; }
.es-ie-p.demande { background: #FFF1DE; color: #8A5A12; }
.es-ie-messages li.info span { color: var(--accent-2); }
/* la liste des propriétaires sous mandat n'accompagne que l'accueil et le dépôt de témoignage */
body.es-genre-agence[data-ecran]:not([data-ecran="Accueil"]):not([data-ecran="Témoignages"]) #Accueil2 { display: none !important; }
/* fenêtre d'aide au centre : elle informe sans bloquer — les clics traversent son contenu, seul le titre sert à la déplacer */
#mydiv { pointer-events: none; }
#mydiv #mydivheader { pointer-events: auto; }
/* espace ouvert par l'administrateur */
.es-mode-admin { position: sticky; top: 0; z-index: 9500; margin-left: var(--es-sidebar); background: var(--rose); color: var(--rose-ink); font: 700 13.5px/1.4 var(--font); padding: 8px 18px; display: flex; gap: 14px; align-items: center; }
.es-mode-admin a { color: var(--rose-ink); text-decoration: underline; }

/* ----------------------------------------------- listes cliquables, fiche complète, recherche dans les listes */
.es-ligne[data-fiche], .ap-liste li[data-fiche] { cursor: pointer; transition: border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease), background-color .2s var(--ease); }
.es-ligne[data-fiche]:hover { border-color: var(--accent); box-shadow: 0 10px 24px rgba(91,108,240,.12); }
.ap-liste li[data-fiche]:hover { background: var(--accent-soft); }
.es-confirme .ap-liste li[data-fiche] { cursor: default; }
.es-confirme .ap-liste li[data-fiche]:hover { background: #fff; }
.es-ligne-fleche { margin-left: auto; font-style: normal; font-size: 26px; color: var(--ink-3); }
.es-filtre { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; }
.es-filtre input { flex: 1; min-height: 42px; border-radius: 12px; border: 1px solid var(--line-strong); padding: 0 14px 0 38px; font: 400 14.5px var(--font); color: var(--ink);
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A90A8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") no-repeat 12px center / 17px; }
.es-filtre input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.es-filtre span { color: var(--ink-3); font-size: 13px; white-space: nowrap; }
.es-liste > [hidden] { display: none !important; }
.es-fiche-barre { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.es-fiche-lecture { margin: 14px 0 0; padding: 12px 16px; border-radius: 14px; background: var(--butter); color: #6b4f12; font-weight: 600; }
.es-fiche-form { margin-top: 16px; }
.es-fiche-form h3 { margin: 0; font: 700 17px/1.2 var(--font-display); }
.es-fiche-tete { margin-bottom: 10px; }
.es-fiche-sorte { font: 500 11px/1 var(--mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-2); }
.es-fiche-tete h2 { margin: 6px 0 0; }

/* vérifications du compte et journal des consultations (octobre 2026) */
.es-preuves .es-verifs { margin: 6px 0 10px; }
.es-email-a-confirmer button { margin-left: 8px; vertical-align: middle; }
.es-consultations .es-ligne-txt small { color: var(--ink-3); }

/* ------------------------------------------------------------- profil inactif : téléphone à certifier (php/php/Verifications.php) */
.es-profil-inactif > b { display: block; font: 700 15px/1.35 var(--font-display, var(--font)); margin-bottom: 4px; }
.es-profil-inactif p { margin: 4px 0 0; }
.es-profil-inactif small { display: block; margin-top: 8px; }
.es-profil-inactif .es-actions { margin-top: 12px; justify-content: flex-start; }

/* ------------------------------------------------------------- justificatif de domicile signé (2D-Doc, js/domicile.js) */
.es-domicile .bs-domicile-form { margin-top: 10px; }
.es-domicile .bs-domicile-fichier input[type=file] { padding: 10px; border: 1.5px dashed var(--line-strong, #C9CFDD); border-radius: 12px; background: #fff; cursor: pointer; }
.es-domicile .es-retour:not(:empty) { margin-top: 8px; }

/* ------------------------------------------------------------- nom d'une agence (php/php/Agences.php, décision P21 du 14/10/2026) :
   l'enseigne en avant, la dénomination sociale du registre à la suite, en petit et plus discrète */
.bs-agence-ens { font-weight: inherit; }
.bs-agence-denom { font-size: .78em; font-weight: 500; color: var(--ink-3, #7A839C); letter-spacing: .01em; margin-left: .25em; white-space: normal; }
.es-contact b .bs-agence-denom { display: block; margin: 2px 0 0; font-size: .72em; }

/* textes contractuels (14/10/2026) : liens discrets en bas de la barre latérale */
#sidebar .es-textes-legaux { margin: 12px 12px 18px; font-size: 11.5px; line-height: 1.5; color: var(--ink-3, #7A839C); }
#sidebar .es-textes-legaux a { display: inline !important; padding: 0 !important; color: var(--ink-2, #46506C); text-decoration: underline; text-underline-offset: 2px; background: none !important; }
#sidebar .es-textes-legaux a:hover { color: var(--accent, #5B6CF0); }

/* ------------------------------------------------------------- barre latérale : sous-menus repliables (php/php/Menu_plan.php, 17/10/2026) */
#sidebar .es-sm + .es-sm { margin-top: 2px; }
#sidebar .es-sm-tete { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 12px; border-radius: 10px; cursor: pointer;
	color: var(--ink, #1E2640); font-weight: 700; font-size: 13px; line-height: 1.25; transition: background-color .25s var(--ease); }
#sidebar .es-sm-tete:hover { background: var(--canvas-2); }
#sidebar .es-sm-tete:focus-visible { outline: 2px solid var(--accent, #5B6CF0); outline-offset: 1px; }
#sidebar .es-sm-tete .es-ico { flex: 0 0 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: var(--accent-soft, #EEF0FE); }
#sidebar .es-sm-tete .es-ico svg { width: 16px; height: 16px; stroke: var(--accent-2, #4453D6); fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#sidebar .es-sm-libelle { flex: 1 1 auto; min-width: 0; }
#sidebar .es-sm-tete::after { content: ""; flex: 0 0 7px; width: 7px; height: 7px; margin-right: 3px; border-right: 1.8px solid var(--ink-3, #7A839C); border-bottom: 1.8px solid var(--ink-3, #7A839C);
	transform: rotate(-45deg); transition: transform .25s var(--ease); }
#sidebar .es-sm[data-ouvert] > .es-sm-tete::after { transform: rotate(45deg); }
#sidebar .es-sm-compte { font-size: 10px; font-weight: 700; color: var(--sage-ink); background: var(--sage); border-radius: 999px; padding: 2px 7px; }
#sidebar .es-sm[data-ouvert] .es-sm-compte { display: none; }
#sidebar .es-sm-corps { display: grid; grid-template-rows: 1fr; }
#sidebar .es-sm-liens { min-height: 0; overflow: hidden; margin-left: 14px; padding-left: 6px; border-left: 1px solid var(--line, #E3E7F0); }
#sidebar.es-sm-pret .es-sm-corps { transition: grid-template-rows .28s var(--ease), visibility 0s linear .28s; }
#sidebar.es-sm-pret .es-sm:not([data-ouvert]) .es-sm-corps { grid-template-rows: 0fr; visibility: hidden; }
#sidebar.es-sm-pret .es-sm[data-ouvert] .es-sm-corps { visibility: visible; transition: grid-template-rows .28s var(--ease), visibility 0s; }
#sidebar .es-sm-liens a { padding: 7px 10px !important; font-size: 12.5px; }
#sidebar .es-sm-liens a .es-ico { flex-basis: 26px; height: 26px; }
@media (prefers-reduced-motion: reduce) { #sidebar.es-sm-pret .es-sm-corps { transition: none; } }

/* ------------------------------------------------------------- accueil : filtre des vignettes par rubrique (17/10/2026) */
.es-cartes-filtre { max-width: 420px; margin: 6px 0 14px; position: relative; z-index: 30; }   /* un seul champ : liste déroulante à cases (plus de pastilles) */
.es-cartes > .es-carte[hidden] { display: none !important; }
/* aucune vignette affichée (19/10/2026) : le message réserve la hauteur de la liste ouverte ; sans lui, la zone qui défile (#bsZone)
   devenait trop basse et coupait la liste des choix */
.es-cartes-filtre .bs-lm-menu { max-height: 480px; }   /* les deux choix d'ensemble et toutes les rubriques, sans défilement interne */
.es-cartes-filtre .es-cartes-vide { margin: 12px 0 0; min-height: 500px; }
.es-cartes-filtre .es-cartes-vide[hidden] { display: none; }
.es-carte-cat { font: 600 10.5px/1.25 var(--mono, monospace); font-style: normal; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-2, #4453D6); margin-bottom: 2px; }
@media (max-width: 670px) { .es-cartes-filtre { max-width: none; } }

/* locataire absent de la page des témoignages ; bailleur absent de la page des avis (17/10/2026) */
.bs-loc-absent { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 14px; }
/* barre « créer » en tête des listes que l'utilisateur peut alimenter (php/Espace.php barre_creer, php/php/Menu_plan.php bs_menu_creer) */
.es-creer { align-items: center; gap: 8px 10px; margin: 0 0 14px; }
.es-creer-txt { font-weight: 600; color: var(--ink-2, #3B4260); }
.es-creer-zone { justify-content: center; margin: 4px 0 12px; }
/* demande de mandat à une agence (php/php/Sollicitations.php) */
.bs-so .bs-pl-filtre { margin-bottom: 10px; }
.bs-so-absente, .bs-so-signe { margin-top: 14px; }
.bs-so-absente > summary, .bs-so-signe > summary { cursor: pointer; font-weight: 600; color: var(--ink-2, #3B4260); }
.bs-so-absente .es-grille2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 14px; }
.bs-so-recue .es-ligne-boutons { flex-direction: column; align-items: stretch; gap: 6px; }
.bs-so-confirmer { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.bs-so-confirmer .es-retour:empty { display: none; }
.bs-so-message > summary { cursor: pointer; font-size: .92em; }
.bs-so-message p { white-space: normal; margin: 6px 0 0; font-size: .92em; }
.bs-loc-absent > span { font-weight: 600; }
.bs-loc-absent > small { flex-basis: 100%; color: var(--ink-3, #6B7390); }
.bs-loc-absent-avis > summary { cursor: pointer; font-weight: 600; color: var(--accent-2, #3D4FD6); }
.bs-loc-absent-avis[open] > summary { margin-bottom: 10px; }
