/* =====================================================================
   BailSecurity - charte des écrans et des formulaires (chargée en dernier)
   Un seul langage visuel pour tout le logiciel : espace connecté, fiches,
   fenêtres, console d'administration, inscription.
   - Inter (chiffres réguliers, lisible en petit corps) ; Syne réservée au
     titre du bandeau
   - échelle : 12 (libellés, aides) · 13 (secondaire) · 14 (texte, champs)
     · 16 (sous-titres) · 20 (titres d'écran)
   - champs de 36 px, libellés au-dessus, rayon 8 px, focus pervenche
   ===================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
	--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
	--font-display: "Inter", "Segoe UI", system-ui, sans-serif;
	--font-marque: "Syne", "Inter", sans-serif;
	--t-xs: 12px; --t-sm: 13px; --t-base: 14px; --t-md: 16px; --t-lg: 20px;
	--ctl-h: 36px; --ctl-r: 8px; --ctl-bord: #CBD3E3; --ctl-fond-lecture: #F4F6FA;
	--ecart: 12px;
}
body, body.adm { font-family: var(--font) !important; font-size: var(--t-base); -webkit-font-smoothing: antialiased; }
#es-bandeau h1, .adm-marque span { font-family: var(--font-marque) !important; }
.es-chiffres b, .ap-sec dd, .es-table td, .adm-table td, .adm-kpi b { font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- titres */
.es-tete h2, .es-fiche-tete h2, .adm-tete h1 { font: 700 var(--t-lg)/1.25 var(--font) !important; letter-spacing: -.01em; color: var(--ink) !important; }
.es-tete p, .adm-tete p { font-size: var(--t-sm); color: var(--ink-3); }
.es-sous-titre, h3.es-sous-titre, .es-fiche-temoignage h3, .es-form h3, .adm-carte h2, fieldset.bs-multi legend, .es-modale h3, .es-portefeuille-tete h3 { font: 600 var(--t-md)/1.3 var(--font) !important; color: var(--ink); letter-spacing: 0; }
h4.es-sous-titre { font-size: var(--t-base) !important; }
.bs-rm-tete b { font: 600 18px/1.25 var(--font) !important; }
.es-chiffres b { font: 700 24px/1.1 var(--font) !important; }
.es-carte-txt b { font: 600 var(--t-base)/1.3 var(--font) !important; }
.ap-sec h4, .es-portefeuille-tete small, .bs-rm-tete small, .es-confirme .es-c-tete small, .es-tf-tete small, .es-fiche-sorte { font: 600 11px/1 var(--font) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-2); }
/* titres des anciens formulaires (Enregistrer un propriétaire…) */
#bsZone h2[style*="F5D0A9"], #bsZone .formulaire h2 { font: 600 var(--t-md)/1.3 var(--font) !important; color: var(--ink) !important; margin: 0 0 12px !important; text-align: left; }

/* ---------------------------------------------------------------- libellés */
.es-champ > span, .adm-fiche .es-champ > span, .es-ch > label, .es-ch > label .text-form, .es-tf-lib, .es-tf-lib2 {
	font: 600 var(--t-xs)/1.3 var(--font) !important; color: var(--ink-2) !important; letter-spacing: .01em; text-transform: none;
}
.es-champ { gap: 5px !important; }
#bsZone .text-form { font: 600 var(--t-xs)/1.3 var(--font) !important; color: var(--ink-2) !important; background: none !important; }
.es-mention, .es-aide-texte, .bs-ac-etat, .es-filtre span { font-size: var(--t-xs) !important; color: var(--ink-3); }

/* ---------------------------------------------------------------- champs */
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) :is(input:not([type]), input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number], input[type=search], input[type=date], select, textarea) {
	font: 400 var(--t-base)/1.35 var(--font) !important; color: var(--ink) !important;
	background: #fff !important; border: 1px solid var(--ctl-bord) !important; border-radius: var(--ctl-r) !important;
	padding: 7px 10px !important; min-height: var(--ctl-h); height: auto; box-sizing: border-box; box-shadow: none !important;
	transition: border-color .15s ease, box-shadow .15s ease;
}
/* spécificité égale à la règle des champs (:not) : la flèche et la marge l'emportent */
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) select:not([multiple]) { padding-right: 34px !important; cursor: pointer; -webkit-appearance: none; appearance: none;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5470' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center / 14px !important; }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) select:disabled { background-image: none !important; background-color: var(--ctl-fond-lecture) !important; color: var(--ink) !important; opacity: 1; cursor: default; }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) select[multiple] { background-image: none !important; padding-right: 10px !important; }
/* liste obligatoire encore vide : « Choisir… » en gris, comme un texte d'aide */
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) select:not([multiple]):invalid { color: #8C95AA !important; }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) select option { color: var(--ink); }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) :is(input, select, textarea):hover:not(:focus):not([readonly]):not(:disabled) { border-color: #AEB9D0 !important; }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) :is(input, select, textarea):focus { outline: none !important; border-color: var(--accent) !important; box-shadow: 0 0 0 3px var(--accent-soft) !important; }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) :is(input, textarea)::placeholder { color: #9AA3B8 !important; opacity: 1; }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) :is(input, textarea)[readonly] { background: var(--ctl-fond-lecture) !important; color: var(--ink-2) !important; }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page, .es-page-form) textarea:not([data-une-ligne]) { min-height: 84px; resize: vertical; }
#bsZone textarea[data-une-ligne] { height: auto !important; min-height: calc(2 * 1.35em + 16px) !important; }
:is(#bsZone, .es-panneau, .es-modale, main.adm-page) input:is([type=checkbox], [type=radio]) { accent-color: var(--accent); width: 16px; height: 16px; }
.bs-ac input[type=search], .es-filtre input, .bs-multi-filtre input { min-height: var(--ctl-h) !important; padding: 7px 10px 7px 32px !important;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A839C' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 10px center / 15px !important; }
.bs-ref-champ { min-height: var(--ctl-h) !important; border-radius: var(--ctl-r) !important; font: 500 var(--t-base)/1.3 var(--font) !important; padding: 4px 6px 4px 10px !important; }
.bs-ref-act { font: 600 11px/1 var(--font) !important; border-radius: 6px !important; padding: 6px 8px !important; }

/* ---------------------------------------------------------------- boutons */
.es-btn { min-height: var(--ctl-h) !important; padding: 0 16px !important; border-radius: var(--ctl-r) !important; font: 600 var(--t-sm)/1 var(--font) !important; box-shadow: 0 1px 2px rgba(30,38,64,.08) !important; }
.es-btn:hover { transform: none !important; }
.es-btn.petit { min-height: 30px !important; padding: 0 12px !important; font-size: var(--t-xs) !important; }
.es-btn.ligne, #bsZone .es-btn.ligne, main .es-btn.ligne { background: #fff !important; border: 1px solid var(--ctl-bord) !important; color: var(--ink) !important; box-shadow: none !important; }
.es-btn.ligne:hover { border-color: var(--accent) !important; color: var(--accent-2) !important; background: var(--accent-soft) !important; }
/* anciens boutons (Enregistrer, Effacer, Rechercher, BoutonBS) */
#bsZone :is(input[type=submit], input[type=button], input.BoutonBS, button.BoutonBS, span.BoutonBS) {
	min-height: var(--ctl-h) !important; height: var(--ctl-h) !important; padding: 0 16px !important; border-radius: var(--ctl-r) !important; width: auto !important;
	font: 600 var(--t-sm)/1 var(--font) !important; text-transform: none !important; letter-spacing: 0 !important; cursor: pointer;
	background: var(--accent) !important; color: #fff !important; border: 1px solid var(--accent) !important; box-shadow: 0 1px 2px rgba(30,38,64,.08) !important;
}
#bsZone :is(input[type=submit], input[type=button], input.BoutonBS, button.BoutonBS):hover { background: var(--accent-2) !important; }
#bsZone input[type=reset], #bsZone #Reset_i, #bsZone #Reset_p, #bsZone #Reset_l, #bsZone #Reset_p2 {
	min-height: var(--ctl-h) !important; height: var(--ctl-h) !important; padding: 0 14px !important; border-radius: var(--ctl-r) !important; width: auto !important; display: inline-flex !important; align-items: center;
	font: 600 var(--t-sm)/1 var(--font) !important; text-transform: none !important; cursor: pointer; background: #fff !important; color: var(--ink-2) !important; border: 1px solid var(--ctl-bord) !important;
}

/* ---------------------------------------------------------------- mise en page des formulaires */
#bsZone fieldset:not(.bs-multi) { border: 0 !important; background: none !important; padding: 4px 0 0 !important; margin: 0 !important; }
#bsZone fieldset:not(.bs-multi) > legend { font: 600 11px/1 var(--font) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3) !important; background: none !important; border: 0 !important; padding: 0 0 10px !important; }
#bsZone .formulaire, #bsZone :is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl, #ModColl, #ModAgence, #SearchProp, #SearchImm, #SearchLoc, #SearchProp-2, #ModifProp, #ModifImm, #ModifLoca) {
	background: #fff !important; border: 1px solid var(--line) !important; border-radius: 14px !important; box-shadow: 0 1px 2px rgba(30,38,64,.04), 0 8px 24px rgba(30,38,64,.05) !important; padding: 18px 20px !important;
}
#bsZone .formulaire { border: 0 !important; box-shadow: none !important; padding: 0 !important; }
/* libellé au-dessus du champ (groupes construits par js/espace-formulaires.js) */
.es-rang { gap: 10px 14px !important; margin: 0 0 var(--ecart) !important; align-items: flex-end !important; }
.es-ch { display: flex; flex-direction: column; gap: 5px; min-width: 0; flex: 0 1 auto; }
.es-ch > label { display: block !important; min-width: 0 !important; margin: 0 !important; }
.es-ch > label .text-form { display: inline !important; min-width: 0 !important; white-space: nowrap; }
.es-ch-ctl { display: flex; align-items: center; gap: 8px; min-width: 0; }
.es-ch-ctl > :is(input, textarea, select) { margin: 0 !important; }
.es-ch-ctl > span:not(.bs-ref-txt) { font-size: var(--t-xs); color: var(--ink-3); white-space: nowrap; }
.es-rang > label:first-child .text-form, .es-rang > label:first-child { min-width: 0; }
.es-rangee { gap: var(--ecart) 16px !important; margin: 0 0 var(--ecart) !important; }
.es-rang.es-espace { margin-top: 18px !important; }
.es-actions { gap: 8px !important; }
.es-retour { font-size: var(--t-sm); }
.es-retour.ok { color: #23744A; } .es-retour.erreur { color: #A23B30; }

/* ---------------------------------------------------------------- listes, fiches */
.es-ligne-ico, .es-c-ico, .bs-rm-ico { display: none !important; }
.es-ligne { padding: 12px 14px !important; border-radius: 12px !important; gap: 12px !important; }
.es-ligne-txt b { font: 600 var(--t-base)/1.3 var(--font) !important; }
.es-ligne-txt span { font-size: var(--t-sm) !important; }
.es-ligne-txt small { font-size: var(--t-xs) !important; }
.ap-sec { border-radius: 12px !important; padding: 12px 14px !important; }
.ap-sec dl { font-size: var(--t-sm) !important; }
.ap-liste li { font-size: var(--t-sm); }
.ap-liste li b { font-weight: 600; }

/* ---------------------------------------------------------------- témoignage de fin de bail */
.es-tf { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px 12px; margin-top: 12px; }
.es-tf-tete { display: grid; gap: 4px; padding-bottom: 12px; margin-bottom: 4px; border-bottom: 1px solid var(--line); }
.es-tf-tete b { font: 600 var(--t-md)/1.3 var(--font); color: var(--ink); }
.es-tf-tete > span { font-size: var(--t-sm); color: var(--ink-3); }
.es-tf-ligne { display: grid; grid-template-columns: minmax(140px, 190px) minmax(0, 1fr); gap: 6px 16px; align-items: center; padding: 9px 0; border-bottom: 1px solid #EEF1F7; }
.es-tf-champs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.es-tf-champs input { width: 130px; } .es-tf-champs select { min-width: 200px; }
.es-tf-lib2 { margin-left: 10px; }
.es-tf-curseur { display: flex; align-items: center; gap: 14px; }
.es-tf-curseur input[type=range] { -webkit-appearance: none; appearance: none; width: min(320px, 100%); height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--accent) var(--p, 0%), #E3E8F2 var(--p, 0%)); border: 0 !important; padding: 0 !important; min-height: 0 !important; box-shadow: none !important; }
.es-tf-curseur input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 2px solid var(--accent); box-shadow: 0 1px 3px rgba(30,38,64,.2); cursor: pointer; }
.es-tf-curseur input[type=range]::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 2px solid var(--accent); cursor: pointer; }
.es-tf-curseur output { font: 600 var(--t-sm)/1 var(--font); color: var(--ink); min-width: 110px; font-variant-numeric: tabular-nums; }
.es-tf-actions { justify-content: space-between; align-items: center; padding-top: 12px; }
.es-tf-actions .es-retour { margin: 0; flex: 1; }
.es-tf.es-tf-ok { border-color: #BFE3CD; }
@media (max-width: 760px) { .es-tf-ligne { grid-template-columns: 1fr; } .es-tf-lib2 { margin-left: 0; } }

/* ---------------------------------------------------------------- portefeuille de l'agence */
.es-ligne-proprio { padding: 11px 14px !important; }
.es-portefeuille-liste { position: static !important; max-height: none !important; overflow: visible !important; }
/* la fiche du propriétaire choisi commence à la hauteur du titre de la liste, toujours au même endroit (16/10/2026) */
.es-portefeuille-detail { padding: 16px 18px !important; border-radius: 14px !important; margin-top: 0 !important; }
.es-portefeuille-liste > h3.es-sous-titre { margin-top: 0 !important; }
.es-portefeuille-liste .bs-pl-filtre { margin: 0 0 10px; }
.es-portefeuille-liste .bs-pl-plus { margin: 10px 2px 0; }
.es-portefeuille-detail .ap { gap: 10px; }
.es-portefeuille-detail .ap-grille { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.es-badge { font-size: 11.5px !important; padding: 2px 8px !important; }
.es-carte-loc .es-ligne-txt small { gap: 6px; }

.es-portefeuille-barre { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin: 0 0 10px; }

/* fiche dans le portefeuille : colonne des libellés plus étroite, moins de retours à la ligne */
.es-portefeuille { grid-template-columns: minmax(250px, 0.75fr) minmax(0, 2fr) !important; }
.es-portefeuille-detail .ap-sec dl { grid-template-columns: 112px minmax(0, 1fr) !important; }
@media (max-width: 1000px) { .es-portefeuille { grid-template-columns: 1fr !important; } }

/* un seul cadre par formulaire ; légende « Formulaire à compléter » inutile */
#bsZone :is(form.contact-form, .contact-form, #voileSearchProp, #voileSearchImm, #voileSearchLoca) { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
#bsZone :is(#SaveProp, #SaveImm, #SaveLoc) legend { display: none !important; }
#bsZone :is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl, #ModColl, #ModAgence, #ModifProp, #ModifImm, #ModifLoca, #SearchProp, #SearchImm, #SearchLoc, #SearchProp-2) fieldset { box-shadow: none !important; background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; }
#bsZone :is(h1, h2, h3, legend)::first-letter { font: inherit !important; color: inherit !important; float: none !important; }
#bsZone .formulaire > span, #bsZone .formulaire > p, #bsZone fieldset span[style*="font-size: 1"] { font: 400 var(--t-sm)/1.45 var(--font) !important; color: var(--ink-3) !important; }

/* titres des anciens formulaires : jamais rognés */
#bsZone .formulaire h2, #bsZone h2[style*="F5D0A9"] { padding-left: 2px !important; overflow: visible !important; text-indent: 0 !important; }
/* écrans de recherche : alignés à gauche comme les autres formulaires */
#bsZone :is(#SearchProp, #SearchImm, #SearchLoc, #SearchProp-2), #bsZone :is(#SearchProp, #SearchImm, #SearchLoc, #SearchProp-2) :is(fieldset, legend, p, form) { text-align: left !important; }
#bsZone :is(#SearchProp, #SearchImm, #SearchLoc, #SearchProp-2) fieldset > legend, #bsZone :is(#SearchProp, #SearchImm, #SearchLoc, #SearchProp-2) .es-rang > legend { font: 600 var(--t-md)/1.3 var(--font) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--ink) !important; padding: 0 0 12px !important; }
#bsZone .es-ch-ctl > :is(input, textarea, select) { min-width: 0 !important; }
#bsZone :is(#result, #result-2, #result_i, #result_l, #result_c) { font: 400 var(--t-sm)/1.45 var(--font) !important; color: var(--ink-2) !important; border: 1px solid var(--line) !important; border-radius: 10px !important; padding: 10px 12px !important; background: #FBFCFE !important; }
#bsZone .ClasseTrie { font-size: var(--t-xs) !important; color: var(--ink-3) !important; text-align: left !important; margin: 4px 0 8px !important; }
#bsZone .BarreDeTrie { font: 600 var(--t-xs)/1 var(--font) !important; border-radius: 6px !important; padding: 5px 8px !important; }
/* « Créer (si non trouvé) » : action secondaire */
#bsZone :is(#SearchProp, #SearchImm, #SearchLoc) button.BoutonBS:not([id]) { background: #fff !important; color: var(--ink) !important; border: 1px solid var(--ctl-bord) !important; box-shadow: none !important; }
#bsZone :is(#SearchProp, #SearchImm, #SearchLoc) button.BoutonBS:not([id]):hover { border-color: var(--accent) !important; color: var(--accent-2) !important; }

/* deux questions sur une ligne : chacune au plus la moitié de la largeur */
.es-rang > .es-ch:not(:only-child) { max-width: calc(50% - 8px); }
.es-rang > .es-ch:not(:only-child) .es-ch-ctl > :is(input, select, textarea) { max-width: 100% !important; }
/* collaborateurs et fiche de l'agence : même présentation que les autres formulaires */
#bsZone :is(#SaveColl, #ModColl) > div[style], #bsZone #ModAgence > div[style] { width: 100% !important; height: auto !important; overflow: visible !important; padding: 0 !important; margin: 0 !important; text-align: left !important; }
#bsZone :is(#SaveColl, #ModColl, #ModAgence), #bsZone :is(#SaveColl, #ModColl, #ModAgence) :is(div, p, fieldset, form, h3, legend) { text-align: left !important; }
#bsZone :is(#SaveColl, #ModColl) h2, #bsZone #ModAgence h2 { font: 600 var(--t-md)/1.3 var(--font) !important; color: var(--ink) !important; margin: 0 0 12px !important; padding-left: 2px !important; }
#bsZone :is(#SaveColl, #ModColl, #ModAgence) legend { display: none !important; }
#bsZone #ModAgence h3 { font: 500 var(--t-sm)/1.45 var(--font) !important; color: var(--ink-2) !important; background: var(--butter) !important; border: 0 !important; border-radius: 10px !important; padding: 10px 12px !important; margin: 0 0 14px !important; }
#bsZone #ModColl h3 { font: 600 var(--t-sm)/1.3 var(--font) !important; color: var(--ink-2) !important; text-transform: none !important; margin: 0 0 8px !important; }
#bsZone #result_m span[style*="font-size"], #bsZone #result_m div[style*="font-size: 0.9em"], #bsZone #SaveColl div[style*="font-size: 0.9em"] { font: 400 var(--t-xs)/1.4 var(--font) !important; color: var(--ink-3) !important; padding: 0 !important; }

/* anciens boutons BoutonBS (champs <input> devenus de vrais <button>, C16) : largeur du texte ; Annuler et Supprimer en secondaire */
#bsZone :is(input, button).BoutonBS { flex: 0 0 auto !important; width: auto !important; max-width: none !important; text-align: center; cursor: pointer; caret-color: transparent; }
#bsZone button.BoutonBS:focus-visible { outline: 2px solid var(--accent) !important; outline-offset: 2px; }
#bsZone :is(#BoutonAnnulerOp, #BoutonSuppColl) { background: #fff !important; color: var(--ink) !important; border: 1px solid var(--ctl-bord) !important; box-shadow: none !important; }
#bsZone #BoutonSuppColl:hover { color: #A23B30 !important; border-color: #E2A196 !important; }

/* cases à cocher et boutons radio avec leur texte */
.es-coche, .es-coche * { font: 500 var(--t-sm)/1.45 var(--font) !important; color: var(--ink) !important; }
.es-choix-contact legend, .es-mdp legend { font: 600 11px/1 var(--font) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3) !important; }

/* listes sans limite : leur propre cadre, titre de section */
#bsZone fieldset.bs-multi, main fieldset.bs-multi { border: 1px solid var(--line) !important; border-radius: 12px !important; background: #fff !important; padding: 12px 14px 14px !important; margin: 6px 0 14px !important; box-shadow: none !important; }
fieldset.bs-multi > legend { font: 600 var(--t-base)/1.3 var(--font) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--ink) !important; padding: 0 !important; }
/* formulaires des fiches (espace et administration) : largeur selon la nature de la donnée */
:is(.es-rangee, .adm-champs) .es-champ > :is(input, select, textarea) { width: min(480px, 100%); }
:is(.es-rangee, .adm-champs) .es-champ > input:is([maxlength="2"], [maxlength="3"], [maxlength="5"], [maxlength="6"], [inputmode="numeric"]:not([maxlength])) { width: 110px; }
:is(.es-rangee, .adm-champs) .es-champ > input:is([maxlength="8"], [maxlength="9"], [maxlength="10"], [maxlength="12"], [maxlength="16"], [placeholder="jj/mm/aaaa"]) { width: 150px; }
:is(.es-rangee, .adm-champs) .es-champ > input:is([type=tel], [name=Tel], [maxlength="15"], [maxlength="20"]) { width: 200px; }
.es-rangee { grid-template-columns: minmax(0, 480px) !important; }
.es-rangee.paire { grid-template-columns: repeat(2, minmax(0, 320px)) !important; }
.es-rangee.paire .es-champ > :is(input, select) { width: 100%; }
.es-rangee .es-champ, .adm-champs .es-champ { justify-items: start; }
.es-mention { margin: 0 0 12px !important; }

/* nom + prénom (et autres paires réunies) : deux colonnes de 300 px, sans débordement */
.es-rang.es-paire > .es-ch { flex: 0 1 300px !important; width: 300px; max-width: calc(50% - 8px) !important; }
.es-rang.es-paire > .es-ch .es-ch-ctl > :is(input, select, textarea) { width: 100% !important; flex: 1 1 auto !important; }
.es-portefeuille { grid-template-columns: minmax(290px, 0.85fr) minmax(0, 2fr) !important; }
@media (max-width: 1000px) { .es-portefeuille { grid-template-columns: 1fr !important; } }

/* petits champs descriptifs (pièces, chambres, surface, étage, dates…) : deux colonnes alignées */
.es-grille-courte { display: grid; grid-template-columns: repeat(2, minmax(0, 250px)); column-gap: 20px; row-gap: 0; margin: 0 0 2px; }
.es-grille-courte > .es-rang { margin: 0 0 var(--ecart) !important; }
.es-grille-courte > .es-champ { margin: 0 0 var(--ecart); }
.es-grille-courte .es-champ > :is(input, select) { width: 150px; max-width: 100%; }
.es-grille-courte .es-champ > input:is([inputmode="numeric"], [maxlength="3"], [maxlength="5"]) { width: 110px; }
.es-grille-courte .es-ch-ctl > span:not(.bs-ref-txt) { white-space: normal; }
#bsZone form div[style*="display: inline"]:has(> .es-grille-courte, > .es-rang) { display: block !important; }
@media (max-width: 560px) { .es-grille-courte { grid-template-columns: 1fr; } }

/* bouton présenté comme un lien (dans une phrase) */
button.es-lien { all: unset; cursor: pointer; color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
button.es-lien:hover { color: var(--accent-2); }
button.es-lien:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }

/* champ fixé par la fiche d'origine (administration : création depuis un volet) */
.adm-fige input[readonly], .adm-fige select[disabled], .adm-fige textarea[readonly] { background: var(--canvas-2) !important; color: var(--ink-2) !important; cursor: default; }
.adm-fixe { margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-2); font: 600 10.5px/1.6 var(--font); text-transform: uppercase; letter-spacing: .04em; vertical-align: 1px; }

/* ================================================================ fiche : consultation, puis modification sur place (.es-fe) */
.es-fe [hidden] { display: none !important; }
.es-fe-barre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 12px; }
.es-fe-g, .es-fe-d { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.es-fe-d { margin-left: auto; }
.es-fe-etat { display: inline-flex; align-items: center; gap: 7px; margin-right: 6px; font: 600 12px/1 var(--font); color: var(--accent-2); }
.es-fe-etat::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
/* en modification : la barre reste à portée de main pendant le défilement */
.es-fe-actif .es-fe-barre { position: sticky; top: 8px; z-index: 6; padding: 8px 10px; background: rgba(255,255,255,.94); backdrop-filter: blur(6px); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 6px 18px rgba(20,24,40,.08); }
.es-fe-masque { display: none !important; }
/* le formulaire prend la place des rubriques modifiables, dans la même grille que la fiche */
.es-fe .es-fe-form.es-form { display: grid; gap: 12px; margin: 0; padding: 0; background: none; border: 0; box-shadow: none; border-radius: 0; }
.es-fe-form .es-retour:empty { display: none; }
.es-fe-form .es-retour { padding: 9px 12px; border-radius: 8px; background: #FBEDEB; }
.es-fe-form .es-retour.ok { background: #E8F4EC; }
.es-fe-sec { background: #fff !important; border: 1px solid var(--accent-soft-2, #C9D2FF); box-shadow: 0 0 0 3px var(--accent-soft); }
.es-fe-sec h4 { margin-bottom: 12px !important; }
.es-fe-sec .es-champ { margin: 0 0 12px; gap: 5px !important; }
.es-fe-sec .es-champ > span { font-size: 12.5px !important; }
/* champs de la charte : 36 px, compacts mais lisibles */
.es-fe-sec .es-champ > :is(input, select) { width: 100% !important; max-width: 100%; height: 36px; padding: 6px 10px !important; font-size: 14px !important; border-radius: 8px !important; }
.es-fe-sec .es-rangee { display: grid; margin: 0 !important; grid-template-columns: 1fr !important; gap: 0 12px !important; }
.es-fe-sec .es-rangee.paire { grid-template-columns: minmax(64px, 30%) 1fr !important; }
.es-fe-sec .es-grille-courte { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 12px; }
.es-fe-sec .es-grille-courte > .es-champ { margin: 0; }
.es-fe-sec > :last-child { margin-bottom: 0 !important; }
.es-fe-sec fieldset.bs-multi { margin: 10px 0 0; padding: 0; border: 0; background: none; }
.es-fe-sec fieldset.bs-multi legend { padding: 0; margin-bottom: 6px; font-size: 13px !important; }
.es-fe-pile { display: grid; gap: 12px; align-content: start; }
.es-fe-requis { margin: 0; font-size: var(--t-xs, 12px); color: var(--ink-3); }
@media (max-width: 560px) { .es-fe-sec .es-rangee.paire { grid-template-columns: 1fr !important; } }

/* e-mail de connexion d'un titulaire au compte actif : consultation seule, avec la raison */
.es-champ.es-fige input[readonly], input.bs-fige[readonly] { background: var(--canvas-2) !important; color: var(--ink-2) !important; cursor: default; }
.es-fixe { margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-2); font: 600 10.5px/1.6 var(--font); text-transform: uppercase; letter-spacing: .04em; }
.es-aide-champ { display: block; margin-top: 4px; font-size: 12px; line-height: 1.35; color: var(--ink-3); }

/* ================================================================ écrans en colonnes (recherche · fiche · dossier)
   Les trois cartes démarrent à la même hauteur et ont la même hauteur que la fiche du milieu :
   variables --bs-col-decal et --bs-col-h posées par js/espace-formulaires.js (alignerColonnes). */
#bsZone .bs-cale { display: none !important; }
#bsZone #bsCol2 { margin-top: var(--bs-col-decal, 0px) !important; margin-left: 0 !important; }
#bsZone #bsCol3 { margin-top: var(--bs-col3-decal, 0px) !important; margin-left: 0 !important; }
#bsZone #bsCol2 { margin-right: 16px; }
/* la liste de résultats de la recherche est allongée à la hauteur de la fiche (js : alignerColonnes) */
/* ---------------------------------------------------------------- panneau latéral : dossier du propriétaire */
#bsZone #BTproprio.bs-panneau-lat { width: 290px; box-sizing: border-box; margin: 0 !important; padding: 16px 16px 14px !important; background: #fff !important; border: 1px solid var(--line) !important; border-radius: 14px !important;
	box-shadow: 0 1px 2px rgba(30,38,64,.04), 0 8px 24px rgba(30,38,64,.05) !important; height: var(--bs-col-h, auto); min-height: 440px; }
#bsZone #BTproprio.bs-panneau-lat[style*="block"] { display: flex !important; flex-direction: column; gap: 12px; }
.bs-pl-tete small { display: block; font: 600 11px/1 var(--font); letter-spacing: .08em; text-transform: uppercase; color: var(--accent-2); }
.bs-pl-tete b { display: block; margin-top: 6px; font: 600 var(--t-md)/1.3 var(--font); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bs-pl-tete b:empty { display: none; }
/* onglets segmentés */
#bsZone #Triplette.bs-onglets { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 2px; padding: 3px; margin: 0; background: var(--canvas-2); border-radius: 10px; }
#bsZone #Triplette.bs-onglets > span.BoutonBS { box-sizing: border-box; display: flex !important; align-items: center; justify-content: center; min-height: 32px !important; height: 32px !important; padding: 0 6px !important; margin: 0 !important;
	border-radius: 8px !important; border: 0 !important; cursor: pointer; background: transparent !important; box-shadow: none !important; width: auto !important;
	font: 600 12.5px/1 var(--font) !important; color: var(--ink-2) !important; text-align: center; white-space: nowrap; transition: background .15s, color .15s, box-shadow .15s; }
#bsZone #Triplette.bs-onglets > span.BoutonBS:hover { color: var(--ink) !important; background: rgba(255,255,255,.65) !important; }
#bsZone #Triplette.bs-onglets > span.BoutonBS[aria-selected="true"] { background: #fff !important; color: var(--accent-2) !important; box-shadow: 0 1px 2px rgba(30,38,64,.14) !important; }
#bsZone #Triplette.bs-onglets > span.BoutonBS:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
#bsZone #Triplette.bs-onglets > br { display: none; }
/* liste */
#bsZone #BTproprio #result_BTproprio { flex: 1 1 auto; width: auto !important; height: auto !important; min-height: 0; margin: 0 !important; padding: 0 !important; overflow-y: auto; overflow-x: hidden;
	background: none !important; color: var(--ink-2) !important; font: 400 var(--t-sm)/1.4 var(--font) !important; }
.bs-lp-tete { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; padding: 0 2px 8px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
.bs-lp-tete b { font: 600 13px/1.3 var(--font); color: var(--ink); }
.bs-lp-tete small { flex-basis: 100%; font-size: 12px; color: var(--ink-3); }
.bs-lp-nb { min-width: 20px; padding: 1px 7px; border-radius: 999px; background: var(--accent-soft); color: var(--accent-2); font: 600 11.5px/1.5 var(--font); text-align: center; }
.bs-lp-liste { display: flex; flex-direction: column; gap: 2px; }
.bs-lp-groupe { margin: 10px 2px 4px; font: 600 11px/1.2 var(--font); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
.bs-lp-groupe:first-child { margin-top: 2px; }
#bsZone a.bs-lp-item, a.bs-lp-item { display: block !important; max-width: none !important; padding: 8px 10px !important; border-radius: 8px; text-decoration: none !important; color: var(--ink-2) !important;
	background: transparent !important; border: 1px solid transparent; transition: background .12s, border-color .12s; }
a.bs-lp-item b { display: block; font: 600 13px/1.3 var(--font); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
a.bs-lp-item small { display: block; margin-top: 2px; font: 400 12px/1.35 var(--font); color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#bsZone a.bs-lp-item:hover { background: var(--canvas) !important; }
/* élément choisi (le code d'origine pose une couleur de fond en ligne) */
#bsZone a.bs-lp-item[style*="85, 86, 65"], #bsZone a.bs-lp-item[style*="#555641"] { background: var(--accent-soft) !important; border-color: #CBD3FF; }
#bsZone a.bs-lp-item[style*="85, 86, 65"] b, #bsZone a.bs-lp-item[style*="#555641"] b { color: var(--accent-2); }
.bs-lp-vide { margin: 6px 2px; font: 400 12.5px/1.45 var(--font); color: var(--ink-3); font-style: italic; }
/* ---------------------------------------------------------------- panneau latéral : dossier du locataire (mêmes règles) */
#bsZone #BTloc.bs-panneau-lat { width: 290px; box-sizing: border-box; margin: 0 !important; padding: 16px 16px 14px !important; background: #fff !important; border: 1px solid var(--line) !important; border-radius: 14px !important;
	box-shadow: 0 1px 2px rgba(30,38,64,.04), 0 8px 24px rgba(30,38,64,.05) !important; height: var(--bs-col-h, auto); min-height: 440px; }
#bsZone #BTloc.bs-panneau-lat[style*="block"] { display: flex !important; flex-direction: column; gap: 12px; }
/* onglets segmentés */
#bsZone #BTloc .bs-onglets { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 2px; padding: 3px; margin: 0; background: var(--canvas-2); border-radius: 10px; }
#bsZone #BTloc .bs-onglets > span.BoutonBS { box-sizing: border-box; display: flex !important; align-items: center; justify-content: center; min-height: 32px !important; height: 32px !important; padding: 0 6px !important; margin: 0 !important;
	border-radius: 8px !important; border: 0 !important; cursor: pointer; background: transparent !important; box-shadow: none !important; width: auto !important;
	font: 600 12.5px/1 var(--font) !important; color: var(--ink-2) !important; text-align: center; white-space: nowrap; transition: background .15s, color .15s, box-shadow .15s; }
#bsZone #BTloc .bs-onglets > span.BoutonBS:hover { color: var(--ink) !important; background: rgba(255,255,255,.65) !important; }
#bsZone #BTloc .bs-onglets > span.BoutonBS[aria-selected="true"] { background: #fff !important; color: var(--accent-2) !important; box-shadow: 0 1px 2px rgba(30,38,64,.14) !important; }
#bsZone #BTloc .bs-onglets > span.BoutonBS:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
#bsZone #BTloc .bs-onglets > br { display: none; }
/* liste */
#bsZone #BTloc #result_BTloc { flex: 1 1 auto; width: auto !important; height: auto !important; min-height: 0; margin: 0 !important; padding: 0 !important; overflow-y: auto; overflow-x: hidden;
	background: none !important; color: var(--ink-2) !important; font: 400 var(--t-sm)/1.4 var(--font) !important; }
/* élément choisi (le code d'origine pose une couleur de fond en ligne) */
/* actions (locataire choisi) */
#bsZone #BTliens.bs-pl-actions { margin: 0 !important; padding-top: 12px; border-top: 1px solid var(--line); }
#bsZone #BTliens.bs-pl-actions[style*="block"] { display: grid !important; gap: 8px; }
#bsZone #BTliens.bs-pl-actions > span.BoutonBS { display: flex !important; align-items: center; justify-content: center; width: 100% !important; box-sizing: border-box; }
#bsZone #BTliens.bs-pl-actions > span.bs-pl-second { background: #fff !important; color: var(--ink) !important; border-color: var(--ctl-bord) !important; box-shadow: none !important; }
#bsZone #BTliens.bs-pl-actions > span.bs-pl-second:hover { border-color: var(--accent) !important; color: var(--accent-2) !important; }
#bsZone #BTliens > br { display: none; }

/* ---------------------------------------------------------------- fiches d'actualisation (propriétaire, locataire, bien) */
#bsZone .bs-fa-tete { display: block; margin: 0 0 14px; padding: 0 140px 12px 0; border-bottom: 1px solid var(--line); }
#bsZone .bs-fa-tete small { display: block; font: 600 11px/1 var(--font); letter-spacing: .08em; text-transform: uppercase; color: var(--accent-2); }
#bsZone .bs-fa-tete b { display: block; margin-top: 6px; font: 600 var(--t-md)/1.3 var(--font); color: var(--ink); }
#bsZone :is(#ModifProp, #ModifLoca, #ModifImm) > .bs-fa-remplace { display: none !important; }
#bsZone .bs-fa-groupe { margin: 6px 0 12px; padding-top: 14px; border-top: 1px solid var(--line); font: 600 11px/1 var(--font); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); }
#bsZone .bs-fa-groupe.bs-premier { border-top: 0; padding-top: 0; margin-top: 0; }
/* boutons : Annuler (secondaire) puis Enregistrer, alignés à droite */
#bsZone :is(#BoutonsModifProprio, #BoutonsModifLoca, #BoutonsModifImmo) { display: flex !important; justify-content: flex-end; gap: 10px; margin: 8px 0 0 !important; padding-top: 14px; border-top: 1px solid var(--line); }
#bsZone :is(#BoutonsModifProprio, #BoutonsModifLoca, #BoutonsModifImmo) > :is(input, button) { margin: 0 !important; width: auto !important; min-width: 0 !important; overflow: visible !important; }
#bsZone :is(#BoutonsModifProprio, #BoutonsModifLoca, #BoutonsModifImmo) > :is(input, button):first-child { background: #fff !important; color: var(--ink) !important; border: 1px solid var(--ctl-bord) !important; box-shadow: none !important; }
#bsZone :is(#BoutonsModifProprio, #BoutonsModifLoca, #BoutonsModifImmo) > :is(input, button):first-child:hover { border-color: var(--accent) !important; color: var(--accent-2) !important; }
#bsZone :is(#ModifProp, #ModifLoca, #ModifImm) .bs-vide { display: none !important; }
#bsZone :is(#SearchProp, #SearchLoc, #SearchImm) { margin-top: 0 !important; }

/* adresse et complément : une seule ligne logique (Entrée bloquée, js/espace-formulaires.js) : hauteur d'un champ */
#bsZone textarea[data-une-ligne] { height: var(--ctl-h) !important; min-height: var(--ctl-h) !important; resize: none !important; overflow: hidden !important; white-space: nowrap; line-height: 22px !important; padding-top: 6px !important; padding-bottom: 6px !important; }
/* « Imprimer la fiche » dans l'angle de la carte, au niveau de l'en-tête */
#bsZone :is(#ModifProp, #ModifLoca, #ModifImm) { position: relative; }
#bsZone :is(#ModifProp, #ModifLoca, #ModifImm) > .es-fiche-outils { position: absolute; top: 16px; right: 20px; margin: 0; z-index: 1; }

/* dates : la largeur d'une date complète (jj/mm/aaaa) */
#bsZone input[placeholder="jj/mm/aaaa"] { width: 150px !important; min-width: 150px; flex: 0 0 auto !important; }

/* ---------------------------------------------------------------- témoignages consultés ou déposés depuis le dossier du propriétaire */
#bsZone :is(#Visu_Temoignage, #Save_Temoignage) { width: auto !important; height: auto !important; max-height: none !important; overflow: visible !important; box-sizing: border-box; margin: 16px 0 0 !important;
	background: #fff !important; border: 1px solid var(--line) !important; border-radius: 14px !important; padding: 18px 20px !important; box-shadow: 0 1px 2px rgba(30,38,64,.04), 0 8px 24px rgba(30,38,64,.05) !important; }
#bsZone :is(#Visu_Temoignage, #Save_Temoignage) > span:first-child { display: block !important; width: auto !important; margin: 0 0 14px !important; padding: 0 0 12px !important; background: none !important; color: var(--accent-2) !important;
	text-align: left !important; font: 600 11px/1 var(--font) !important; letter-spacing: .08em; text-transform: uppercase; border-bottom: 1px solid var(--line); }
#bsZone :is(#VisuTemoignage, #SaveTemoignage) { width: auto !important; height: auto !important; margin: 0 !important; font: 400 var(--t-sm)/1.45 var(--font) !important; color: var(--ink-2); }

/* ---------------------------------------------------------------- largeurs des écrans propriétaire et locataire
   recherche et fiche réduites d'un quart (540 px), dossier doublé (580 px) ; réduites ensemble si la fenêtre est étroite
   (variables posées par js/espace-formulaires.js, alignerColonnes) */
#bsZone.bs-largeurs :is(#SearchProp, #SearchLoc) { width: var(--bs-w1, 540px) !important; }
#bsZone.bs-largeurs :is(#ModifProp, #ModifLoca) { width: var(--bs-w2, 540px) !important; }
#bsZone.bs-largeurs .bs-panneau-lat { width: var(--bs-w3, 580px) !important; }
#bsZone.bs-largeurs #LeConteneur { margin-right: 16px !important; }
/* dossier passé sous les autres colonnes (fenêtre étroite) : hauteur naturelle, à sa place */
#bsZone .bs-panneau-lat.bs-hors-colonnes { height: auto !important; min-height: 0 !important; max-height: 640px; margin-top: 16px !important; }
#bsZone:not(.bs-dossier-aligne) #bsCol3 { margin-top: 0 !important; }

/* colonne du nombre d'avis disponibles */
#bsZone .bs-lp-item.avec-compte, .bs-lp-item.avec-compte { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 14px; }
.bs-lp-txt { display: block; min-width: 0; }
.bs-lp-compte { justify-self: end; padding: 4px 10px; border-radius: 999px; background: var(--canvas-2); color: var(--ink-3); font: 600 12px/1.2 var(--font); white-space: nowrap; }
.bs-lp-compte.plein { background: var(--accent-soft); color: var(--accent-2); }
.bs-lp-colonnes { display: flex; justify-content: space-between; gap: 14px; padding: 2px 10px 6px; font: 600 10.5px/1.2 var(--font); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); }
span.bs-lp-item.sans-lien { cursor: default; }
#bsZone span.bs-lp-item { display: block; padding: 8px 10px; border-radius: 8px; }
span.bs-lp-item b { display: block; font: 600 13px/1.3 var(--font); color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
span.bs-lp-item small { display: block; margin-top: 2px; font: 400 12px/1.35 var(--font); color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* cartes rétrécies : chaque rangée, chaque champ et le tableau de résultats restent dans leur carte */
#bsZone.bs-largeurs :is(#SearchProp, #SearchLoc, #ModifProp, #ModifLoca) :is(.es-rang, .es-ch, .es-ch-ctl, fieldset, form) { max-width: 100%; min-width: 0; box-sizing: border-box; }
#bsZone.bs-largeurs :is(#SearchProp, #SearchLoc, #ModifProp, #ModifLoca) .es-rang.es-paire > .es-ch { flex: 1 1 0 !important; width: auto !important; }
#bsZone.bs-largeurs :is(#SearchProp, #SearchLoc, #ModifProp, #ModifLoca) .es-ch-ctl > :is(input, textarea, select) { max-width: 100% !important; min-width: 0 !important; flex-shrink: 1 !important; }
#bsZone.bs-largeurs :is(#SearchProp, #SearchLoc) :is(#result, #result_l) { overflow-x: auto !important; }
#bsZone.bs-largeurs :is(#SearchProp, #SearchLoc) .es-rang.es-actions-rang { flex-wrap: wrap; }

/* ---------------------------------------------------------------- témoignage factuel : sections, choix, engagement */
.es-tf-principe { margin: 10px 0 2px; padding: 10px 12px; border-radius: 10px; background: var(--canvas); color: var(--ink-2); font: 400 var(--t-sm)/1.45 var(--font); }
.es-tf-section { margin-top: 18px; padding: 4px 18px 6px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.es-tf-section > h3 { margin: 12px 0 0 !important; font: 600 var(--t-md)/1.3 var(--font) !important; color: var(--ink); }
.es-tf-section > p { margin: 3px 0 6px; font: 400 12.5px/1.4 var(--font); color: var(--ink-3); }
.es-tf-ligne { grid-template-columns: minmax(190px, 300px) minmax(0, 1fr); gap: 8px 28px; align-items: center; padding: 13px 0; }
.es-tf-section .es-tf-ligne:last-child { border-bottom: 0; }
.es-tf-liste { width: 100%; max-width: 540px; }
.es-tf-ligne .bs-lm { max-width: 540px; }
.es-tf-ligne.es-tf-multi { align-items: start; }
.es-tf-ligne.es-manquant :is(.es-tf-liste, .bs-lm > summary) { border-color: #E9A3A3 !important; box-shadow: 0 0 0 3px #FBE3DF !important; }
@media (max-width: 640px) { .es-tf-ligne { grid-template-columns: minmax(0, 1fr); } }
.es-tf-lib small { display: block; margin-top: 3px; font: 400 12px/1.35 var(--font); color: var(--ink-3); text-transform: none; letter-spacing: 0; }
.es-tf-ligne.es-manquant .es-tf-lib { color: #A23B30; }
.es-tf-agence textarea { width: 100%; box-sizing: border-box; margin-top: 6px; }
.es-tf-certifie { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #FBFCFE; font: 500 var(--t-sm)/1.45 var(--font); color: var(--ink-2); }
.es-tf-certifie input { margin-top: 2px; flex: 0 0 auto; }
/* fiche : réponses de la grille, points de vigilance, commentaire réservé aux agences */
.ap-sec dd.ap-alerte { color: #A23B30; }
.ap-sec dd.ap-alerte::before { content: "● "; font-size: 10px; vertical-align: 1px; }
.ap-vigilance { margin: 0; padding-left: 18px; font: 500 var(--t-sm)/1.5 var(--font); color: #A23B30; }
.ap-commentaire-agence { margin: 0 0 4px; padding: 10px 12px; border-left: 3px solid var(--accent); background: var(--accent-soft); border-radius: 0 8px 8px 0; font: 400 var(--t-sm)/1.5 var(--font); color: var(--ink); }
.ap-alerte-txt { color: #A23B30; font-weight: 600; }
.es-fe-multi { border: 0 !important; padding: 0 !important; margin: 0 0 12px !important; } .es-fe-multi legend { font: 600 12.5px/1.3 var(--font) !important; color: var(--ink-2) !important; padding: 0 0 6px !important; }

/* ---------------------------------------------------------------- étoiles : note sur 5 calculée sur les réponses (php/php/Avis.php, bs_etoiles_html)
   5 étoiles grises, recouvertes d'étoiles dorées à hauteur de la note ; gris clair et inactives sans avis */
.bs-etoiles { display: inline-flex; align-items: center; gap: 8px; vertical-align: middle; white-space: nowrap; line-height: 1; --et: 15px; --et-gap: 2px; }
.bs-et-fond { position: relative; display: inline-flex; gap: var(--et-gap); }
.bs-et-fond svg { width: var(--et); height: var(--et); flex: 0 0 auto; fill: #E4E7EF; stroke: #D3D8E4; stroke-width: .8; stroke-linejoin: round; }
.bs-et-plein { position: absolute; inset: 0 auto 0 0; display: inline-flex; gap: var(--et-gap); overflow: hidden; white-space: nowrap; }
.bs-et-plein svg { fill: #F5B70A; stroke: #E09A00; filter: drop-shadow(0 1px 1px rgba(196, 128, 0, .25)); }
.bs-etoiles-vide .bs-et-fond svg { fill: #EEF0F5; stroke: #E1E5EE; }
.bs-etoiles-vide { opacity: .9; }
.bs-et-nb { font: 600 11.5px/1 var(--font, inherit); color: var(--ink-3, #6B7280); }
.bs-etoiles-moyen { --et: 20px; }
.bs-etoiles-fiche { --et: 34px; --et-gap: 4px; gap: 14px; }
.bs-et-chiffre { font: 700 26px/1 var(--font-display, var(--font, inherit)); color: var(--ink, #1E2640); letter-spacing: -.02em; }
.bs-et-chiffre small { font-size: 14px; font-weight: 600; color: var(--ink-3, #6B7280); }
.bs-etoiles-moyen .bs-et-chiffre { font-size: 17px; }
.bs-etoiles-moyen .bs-et-chiffre small { font-size: 12px; }
/* bloc de note d'une fiche : étoiles, explication, ce qui fait baisser la note */
.bs-note-bloc { display: grid; gap: 10px; padding: 16px 18px; border: 1px solid #F2E3B8; border-radius: 14px; background: linear-gradient(135deg, #FFFBEF 0%, #FFF6DC 100%); }
.bs-note-bloc > p { margin: 0; font: 400 12.5px/1.45 var(--font, inherit); color: var(--ink-2, #4B5563); }
.bs-note-bloc ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.bs-note-bloc li { display: flex; justify-content: space-between; gap: 12px; font: 400 12.5px/1.4 var(--font, inherit); color: var(--ink-2, #4B5563); }
.bs-note-bloc li b { font-weight: 600; color: #A15C00; white-space: nowrap; }
.bs-note-bloc.vide { border-color: var(--line, #E5E7EB); background: var(--canvas, #F7F8FB); }
/* note en direct dans le formulaire de dépôt */
.es-tf-note { position: sticky; bottom: 10px; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 14px 0 6px; padding: 10px 14px; border-radius: 12px;
	border: 1px solid #F2E3B8; background: rgba(255, 249, 232, .96); box-shadow: 0 6px 18px rgba(30, 38, 64, .08); backdrop-filter: blur(4px); }
.es-tf-note span { font: 600 12.5px/1.3 var(--font, inherit); color: var(--ink-2, #4B5563); }
.es-tf-note span small { display: block; font-weight: 400; color: var(--ink-3, #6B7280); }
/* journal des avis (super administrateur, responsables d'agence) */
.bs-journal { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.bs-journal li { display: grid; gap: 3px; padding: 9px 12px; border: 1px solid var(--line, #E5E7EB); border-left: 3px solid #C9B37A; border-radius: 10px; background: #fff; font: 400 12.5px/1.45 var(--font, inherit); color: var(--ink-2, #4B5563); overflow-wrap: anywhere; }
.bs-journal li b { font-weight: 600; color: var(--ink, #1E2640); font-variant-numeric: tabular-nums; }
.bs-journal li i { font-style: normal; font: 600 10.5px/1 var(--font, inherit); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-3, #6B7280); margin-left: 6px; }
.bs-journal li i:first-child { margin-left: 0; }
.bs-journal li small { color: #A15C00; }
.bs-note-ligne { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; }
.bs-note-ligne > span:last-child { font: 400 12.5px/1.4 var(--font, inherit); color: var(--ink-3, #6B7280); }
/* étoiles dans les listes et écrans */
.bs-td-note { white-space: nowrap; padding-left: 8px !important; }
.bs-lp-note { display: inline-flex; align-items: center; gap: 8px; }
.bs-lp-note .bs-et-nb { display: none; }
.es-ligne-note { margin-left: auto; align-self: center; padding-left: 12px; }
.es-synthese-note { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin: 8px 0 10px; }
.es-synthese-note > span:last-child:not(.bs-etoiles) { font: 400 12.5px/1.4 var(--font, inherit); color: var(--ink-3, #6B7280); }
.es-reponses { display: grid; grid-template-columns: minmax(160px, 260px) 1fr; gap: 4px 14px; margin: 6px 0 0; font: 400 12.5px/1.4 var(--font, inherit); }
.es-reponses dt { color: var(--ink-3, #6B7280); }
.es-reponses dd { margin: 0; color: var(--ink, #1E2640); font-weight: 500; }
.es-reponses dd.ap-alerte { color: #A23B30; }
@media (max-width: 640px) { .es-reponses { grid-template-columns: 1fr; } .es-reponses dd { margin-bottom: 6px; } }

/* ---------------------------------------------------------------- navigation en colonnes (js/colonnes.js)
   Les panneaux ouverts sont les colonnes d'une rangée : même hauteur de départ, défilement vertical propre
   à chaque colonne, défilement horizontal de la rangée, croix de fermeture en haut à droite. */
#bsZone.bs-rail { display: flex !important; flex-wrap: nowrap !important; align-items: flex-start !important; column-gap: 16px !important; overflow-x: auto; overflow-y: visible;
	scroll-behavior: smooth; padding-bottom: 14px; scrollbar-width: none; }
#bsZone.bs-rail::-webkit-scrollbar { display: none; }   /* l'ascenseur horizontal est celui de la page, fixé en bas de l'écran (.bs-defil-h) */
#bsZone.bs-rail > :is(#LeConteneur, #bsCol2, #bsCol3) { display: contents !important; }
#bsZone.bs-rail > :not(#LeConteneur):not(#bsCol2):not(#bsCol3):not(.bs-popup) { display: none !important; }
#bsZone.bs-rail :is(#LeConteneur, #bsCol2, #bsCol3) > :not(.bs-colonne):not(.bs-vide) { order: 1000; flex: 0 0 auto; }
#bsZone.bs-rail :is(#LeConteneur, #bsCol2, #bsCol3) > :is(.bs-vide, br, .bs-cale) { display: none !important; }
#bsZone.bs-rail #LeConteneur > div:first-child:not(.bs-colonne) { display: none !important; }
#bsZone.bs-rail :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-colonne { position: relative; flex: 0 0 auto; box-sizing: border-box; margin: 0 !important; transform: none !important; min-width: 0; }
/* une seule colonne : les écrans gardent leur largeur ; plusieurs : largeur de colonne et défilement propre */
#bsZone.bs-rail:not(.bs-rail-multi) :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-colonne.es-zone, #bsZone.bs-rail:not(.bs-rail-multi) :is(#LeConteneur, #bsCol2, #bsCol3) > #Accueil.bs-colonne { flex: 1 1 auto; width: auto !important; max-width: 100%; }
#bsZone.bs-rail-multi :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-colonne { width: var(--bs-col-w, 540px) !important; min-width: 0 !important; height: auto !important; max-width: none !important; max-height: var(--bs-col-h, calc(100vh - 24px)); overflow-y: auto; overflow-x: hidden; overscroll-behavior: auto;
	scrollbar-width: thin; }
#bsZone.bs-rail-multi .bs-colonne .es-panneau { width: 100% !important; max-width: none !important; }
#bsZone.bs-rail-multi .bs-colonne :is(fieldset, form, .es-rang, .es-ch, .es-ch-ctl) { max-width: 100%; min-width: 0; box-sizing: border-box; }
#bsZone.bs-rail-multi .bs-colonne .es-ch-ctl > :is(input, textarea, select) { max-width: 100% !important; min-width: 0 !important; }
#bsZone.bs-rail-multi .bs-colonne :is(#result, #result-2, #result_l, #result_i) { overflow-x: auto !important; }
#bsZone.bs-rail-multi :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-panneau-lat.bs-colonne { height: auto !important; min-height: 0 !important; }
#bsZone.bs-rail .bs-colonne [data-retour-fiche] { display: none !important; }
/* barre de la colonne et croix de fermeture */
.bs-col-barre { position: sticky; top: 0; z-index: 6; display: flex; justify-content: flex-end; height: 0; margin: 0; pointer-events: none; }
.bs-col-barre[hidden] { display: none; }
.bs-col-fermer { pointer-events: auto; position: relative; top: 8px; right: 8px; display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border-radius: 50%;
	border: 1px solid var(--line, #E3E6EE); background: rgba(255, 255, 255, .92); color: var(--ink-2, #4B5563); cursor: pointer; box-shadow: 0 2px 8px rgba(30, 38, 64, .10);
	transition: background-color .15s ease, color .15s ease, transform .15s ease; }
.bs-col-fermer svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
.bs-col-fermer:hover { background: #FDECEA; color: #B4232A; border-color: #F5C2BE; }
.bs-col-fermer:focus-visible { outline: 3px solid var(--accent, #5B6CF0); outline-offset: 2px; }
/* la croix ne recouvre pas les boutons du haut des fiches */
#bsZone.bs-rail .bs-colonne :is(.es-fiche-tete, .es-tete, .es-fiche-outils, h2:first-of-type) { padding-right: 34px; }
/* ligne choisie : en surbrillance, la liste reste active */
#bsZone .bs-actif, #bsZone tr.bs-actif td { background: var(--accent-soft, #EEF0FE) !important; }
#bsZone .bs-lp-item.bs-actif, #bsZone .es-ligne.bs-actif, #bsZone .es-carte-loc.bs-actif { box-shadow: inset 3px 0 0 var(--accent, #5B6CF0); }
#bsZone tr.bs-actif td:first-child { box-shadow: inset 3px 0 0 var(--accent, #5B6CF0); }
/* notification d'enregistrement automatique */
.bs-auto-notif { position: fixed; right: 20px; bottom: 20px; z-index: 9999; padding: 10px 14px; border-radius: 10px; background: #1E2640; color: #fff; font: 600 13px/1.3 var(--font, inherit);
	box-shadow: 0 8px 24px rgba(30, 38, 64, .25); transition: opacity .35s ease, transform .35s ease; }
.bs-auto-notif.ferme { opacity: 0; transform: translateY(8px); }
@media (max-width: 760px) {
	#bsZone.bs-rail-multi :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-colonne { width: min(var(--bs-col-w, 540px), calc(100vw - 32px)) !important; scroll-snap-align: start; }
	#bsZone.bs-rail { scroll-snap-type: x proximity; }
}
/* la rangée commence après la barre latérale : rien ne défile dessous */
#bsZone.bs-rail { padding-left: 0 !important; margin-left: calc((var(--es-sidebar) + 18px) / var(--es-zoom)) !important; max-width: calc((100vw - var(--es-sidebar) - 18px) / var(--es-zoom)) !important; box-sizing: border-box; }
@media screen and (max-width: 670px) { #bsZone.bs-rail { margin-left: 8px !important; max-width: calc((100vw - 8px) / var(--es-zoom)) !important; } }
/* « Imprimer la fiche » dans les colonnes : à gauche de la croix ; le titre passe dessous si la place manque */
#bsZone.bs-rail :is(#ModifProp, #ModifLoca, #ModifImm).bs-colonne > .es-fiche-outils { right: 46px; top: 12px; }
#bsZone.bs-rail :is(#ModifProp, #ModifLoca, #ModifImm).bs-colonne > .bs-fa-tete { padding-right: 190px; }
/* colonnes étroites : chaque question au-dessus de ses réponses, fiches sur une colonne */
#bsZone.bs-rail-multi :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-colonne { container-type: inline-size; }
@container (max-width: 680px) {
	.es-tf-ligne { grid-template-columns: minmax(0, 1fr) !important; }
	.es-tf, .es-tf-tete, .es-tf-principe, .es-tf-section { text-align: left !important; }
	.es-reponses { grid-template-columns: minmax(0, 1fr); }
	.es-reponses dd { margin-bottom: 6px; }
}
@container (max-width: 600px) {
	.ap-grille { grid-template-columns: minmax(0, 1fr) !important; }
	.ap dl { grid-template-columns: minmax(110px, 40%) minmax(0, 1fr); }
}
#bsZone.bs-rail .bs-colonne :is(#Visu_Temoignage, #Save_Temoignage) > *, #bsZone.bs-rail :is(#Visu_Temoignage, #Save_Temoignage).bs-colonne { text-align: left; }
/* note proposée, ajustable par l'auteur (js/notes.js) */
.es-tf-note-txt { display: grid; gap: 2px; }
.es-tf-note-txt b { font: 600 13.5px/1.3 var(--font, inherit); color: var(--ink, #1E2640); }
.es-tf-note-txt b i { font-style: normal; }
.es-tf-note-txt small { display: block; font: 400 12px/1.4 var(--font, inherit); color: var(--ink-3, #6B7280); }
.es-tf-note-txt small[data-note-ajustee] { color: #A15C00; font-weight: 600; }
.es-tf-note-txt small[data-note-ajustee][hidden] { display: none; }
.es-tf-note-txt .es-lien { border: 0; background: none; padding: 0 0 0 4px; font: inherit; font-weight: 600; color: var(--accent, #5B6CF0); text-decoration: underline; cursor: pointer; }
.es-tf-note:not(.lecture) .es-tf-note-etoiles { cursor: pointer; border-radius: 8px; padding: 4px 6px; outline-offset: 2px; }
.es-tf-note:not(.lecture) .es-tf-note-etoiles:hover, .es-tf-note .es-tf-note-etoiles:focus-visible { background: rgba(245, 183, 10, .12); }
.es-tf-note-etoiles .bs-etoiles-moyen { --et: 24px; }
.es-tf-note.ajustee { border-color: #F0C46A; background: rgba(255, 243, 214, .97); }
.bs-note-ajustee { color: #A15C00 !important; }
.bs-et-chiffre { white-space: nowrap; }
/* espace locataire : état des baux, contestation */
.es-location .es-ligne-txt small + small { margin-top: 2px; }
.es-attente { display: grid; justify-items: end; gap: 6px; max-width: 280px; text-align: right; }
.es-attente small { font: 400 12px/1.4 var(--font, inherit); color: var(--ink-3, #6B7280); }
.es-info { margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: #EEF0FE; color: var(--ink, #1E2640); font: 500 13px/1.45 var(--font, inherit); }
.es-conteste { display: block; color: #A15C00; font-weight: 600; }
.es-contester { margin-top: 18px; }
.es-contester-tem { border: 1px solid var(--line, #E5E7EB); border-radius: 10px; padding: 8px 12px; margin-top: 8px; background: #fff; }
.es-contester-tem summary { cursor: pointer; font: 500 13px/1.4 var(--font, inherit); }
.es-fige-note { color: #A15C00 !important; }
@media (max-width: 640px) { .es-attente { justify-items: start; text-align: left; max-width: none; } }
/* contestations : transmises à l'auteur, qui corrige ou maintient (php/php/Contestations.php) */
.bs-ct { display: grid; gap: 8px; padding: 12px 14px; border-radius: 12px; font: 400 13.5px/1.55 var(--font, inherit); color: var(--ink, #1E2640); }
.bs-ct p { margin: 0 !important; }
.bs-ct-ouverte { background: #FFF8EB; border: 1px solid #F0C27A; }
.bs-ct-close { background: var(--canvas, #F5F7FB); border: 1px solid var(--line, #DCE2EE); color: var(--ink-2, #4A5470); }
.bs-ct-titre b { color: #8A4B00; }
.bs-ct-texte { margin: 0; padding: 10px 14px; background: #fff; border-left: 3px solid #F0B44C; border-radius: 0 8px 8px 0; color: var(--ink-2, #4A5470); }
.bs-ct-mail a { font-weight: 600; color: var(--accent-2, #3B4BD8); }
.bs-ct-choix { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.bs-ct .bs-ct-form { margin: 4px 0 0; padding: 12px 0 0 !important; border: 0 !important; border-top: 1px dashed #F0C27A !important; background: transparent !important; box-shadow: none !important; }
.bs-ct-rappel { font-size: 12.5px; color: var(--ink-3, #7A839C); }
.es-tf-contestation { margin: 0 0 14px; }
.es-conteste-txt { color: #A15C00; font-weight: 600; }
.es-contestations { margin: 0 0 16px; padding: 12px 16px; border: 1px solid #F0C27A; border-radius: 12px; background: #FFF8EB; }
.es-contestations h3 { margin: 0 0 6px; font: 700 14px/1.3 var(--font, inherit); color: #8A4B00; }
.es-contestations ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.es-contestations li { display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; font-size: 13.5px; }
.es-contestations li a { font-weight: 600; color: var(--ink, #1E2640); }
.es-contestations li span { color: var(--ink-3, #7A839C); font-size: 12.5px; }
/* invitation du locataire, un témoignage par personne (php/php/Invitations.php, Avis.php) */
.bs-invit { margin: 0 0 8px !important; font-size: 13.5px; color: var(--ink-2, #4A5470); }
.bs-invit.ok { color: var(--sage-ink, #2D7253); font-weight: 600; }
.bs-invit-aide { margin: 6px 0 0 !important; font-size: 12.5px; color: var(--ink-3, #7A839C); }
.es-tf-personne b { color: var(--ink, #1E2640); }
.bs-propager { margin-top: 14px; border: 1px solid var(--accent-soft, #E6E9FF); background: #FAFBFF; }
.bs-propager h3 { margin: 0 0 4px; font: 700 15px/1.3 var(--font, inherit); }
.bs-propager > p { margin: 0 0 10px; color: var(--ink-2, #4A5470); font-size: 13.5px; }
/* signalement d'usurpation (php/Signalement.php) */
.reinit-carte.bs-signalement { width: min(640px, 100%); }
.bs-signalement input[type=file] { padding: 8px; border: 1px dashed var(--line, #DCE2EE); border-radius: 10px; background: #fff; width: 100%; box-sizing: border-box; }
/* messages préremplis (php/php/Messages.php) */
.bs-ecrire-bloc { margin-top: 12px; }
.bs-ecrire-bloc > summary { list-style: none; display: inline-flex; cursor: pointer; }
.bs-ecrire-bloc > summary::-webkit-details-marker { display: none; }
.bs-ecrire-bloc[open] > summary { margin-bottom: 10px; }
.bs-ecrire { display: grid; gap: 10px; padding: 16px 18px; border: 1px solid var(--line, #DCE2EE); border-radius: 14px; background: #fff; }
.bs-ecrire-titre { margin: 0; font: 700 15px/1.3 var(--font, inherit); }
.bs-ecrire-dest { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; background: var(--canvas, #F5F7FB); }
.bs-ecrire-dest > span { flex: 0 0 auto; font: 700 11px/22px var(--font, inherit); letter-spacing: .5px; text-transform: uppercase; color: var(--ink-3, #7A839C); }
.bs-ecrire-dest b { display: block; font-size: 14px; color: var(--ink, #1E2640); }
.bs-ecrire-dest small { display: block; font-size: 12.5px; color: var(--ink-3, #7A839C); }
.bs-ecrire textarea[name=Message] { font: 400 14px/1.55 var(--font, inherit); min-height: 320px; white-space: pre-wrap; }
.bs-ecrire .es-actions { justify-content: flex-start; gap: 10px; }
.bs-ecrire-aide { margin: 0 !important; }
.ap-sec.bs-ecrire-sec .bs-ecrire { border: 0; padding: 0; }
/* quittances (php/php/Quittances.php) */
.bs-qt-demande { display: grid; gap: 10px; padding: 14px 16px; margin-top: 10px; border: 1px solid var(--line, #DCE2EE); border-radius: 14px; background: #fff; }
.bs-qt-demande header { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.bs-qt-demande header b { font-size: 15px; }
.bs-qt-demande header span { font-size: 13px; color: var(--ink-2, #4A5470); }
.bs-qt-demande header em { font-style: normal; font-size: 12.5px; color: var(--ink-3, #7A839C); margin-left: auto; }
.bs-qt-demande blockquote { margin: 0; padding: 8px 12px; border-left: 3px solid var(--accent, #5B6CF0); background: #F5F6FE; border-radius: 0 8px 8px 0; font-size: 13.5px; }
.bs-qt-form { border: 0; padding: 0; box-shadow: none; }
.bs-qt-apercu:empty { display: none; }
.bs-qt-apercu { margin-top: 4px; }
.bs-qt-table td, .bs-qt-table th { vertical-align: middle; }
.bs-qt-table code { font-size: 12px; letter-spacing: .3px; }
.bs-qt-table tfoot td { font-weight: 600; border-top: 2px solid var(--line, #DCE2EE); }
.bs-qt-actions { white-space: nowrap; }
.bs-qt-actions .es-btn + .es-btn { margin-left: 6px; }
.bs-qt-annulee td { color: var(--ink-3, #7A839C); text-decoration: line-through; }
.bs-qt-annulee td:nth-last-child(-n+2) { text-decoration: none; }
.bs-qt-verif-resultat:empty { display: none; }
.bs-qt-verif { margin-top: 10px; padding: 14px 16px; border-radius: 12px; border: 1px solid; }
.bs-qt-verif.ok { border-color: #9DD2B6; background: #F1FAF5; }
.bs-qt-verif.ko { border-color: #E9A39A; background: #FDF3F1; }
.bs-qt-verif header { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.bs-qt-verif.ok header b { color: var(--sage-ink, #2D7253); }
.bs-qt-verif.ko header b { color: #A23B30; }
.bs-qt-verif dl { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 0 0 6px; font-size: 13.5px; }
.bs-qt-verif dt { color: var(--ink-3, #7A839C); }
.bs-qt-verif dd { margin: 0; font-weight: 600; }
@media (max-width: 640px) { .bs-qt-demande header em { margin-left: 0; } .bs-qt-table { display: block; overflow-x: auto; } }
/* quittances : formulaire d'émission en grille régulière, recherche du bail */
.bs-qt-form { display: grid; gap: 14px; }
.bs-qt-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: 12px 16px; align-items: end; }
.bs-qt-grille .es-champ { margin: 0; }
.bs-qt-grille .es-champ input, .bs-qt-grille .es-champ select { width: 100% !important; max-width: none !important; box-sizing: border-box; }
.bs-qt-grille .es-champ span small, .bs-qt-cible .es-champ span small { font-weight: 400; color: var(--ink-3, #7A839C); margin-left: 4px; }
.bs-qt-cible { margin: 0; padding: 12px 14px; border: 1px solid var(--line, #DCE2EE); border-radius: 12px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 16px; }
.bs-qt-cible legend { padding: 0 6px; font: 700 13px/1.3 var(--font, inherit); color: var(--ink-2, #4A5470); }
.bs-qt-cible .bs-ac { position: relative; min-width: 0; }
.bs-qt-cible .bs-qt-ac-bail:only-of-type, .bs-qt-cible .bs-qt-ac-bail:first-of-type:last-of-type { grid-column: 1 / -1; }
.bs-qt-cible .bs-ac input { width: 100%; box-sizing: border-box; }
.bs-qt-cible .bs-ac-liste { max-height: 320px; overflow: auto; }
.bs-qt-choisi { grid-column: 1 / -1; display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; padding: 10px 12px; border-radius: 10px; background: #F1FAF5; border: 1px solid #9DD2B6; }
.bs-qt-choisi[hidden] { display: none; }
.bs-qt-choisi b { display: block; font-size: 15px; }
.bs-qt-choisi span { display: block; white-space: pre-line; font-size: 13px; color: var(--ink-2, #4A5470); }
@media (max-width: 760px) { .bs-qt-grille, .bs-qt-cible { grid-template-columns: 1fr; } }
#bsZone .bs-qt-grille input[placeholder="jj/mm/aaaa"], .bs-qt-grille input[placeholder="jj/mm/aaaa"] { width: 100% !important; min-width: 0; flex: 1 1 auto !important; }
/* messages envoyés */
.bs-envois-filtre { margin: 0 0 12px; max-width: 520px; }
.bs-envois-table td b { display: block; font-weight: 600; }
.bs-envois-table td small { display: block; color: var(--ink-3, #7A839C); font-size: 12px; }
.bs-envois-table td:first-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.bs-envois-pages { display: flex; gap: 12px; align-items: center; justify-content: center; margin-top: 10px; font-size: 13px; color: var(--ink-3, #7A839C); }
/* référence du compte dans le bandeau : discrète */
.bs-ref-moi { font-size: 13px; color: #8a93a6; font-weight: 400; letter-spacing: .02em; }
.bs-ref-doc { color: #8a93a6; font-size: .86em; font-weight: 400; white-space: nowrap; }
/* ---------------------------------------------------------------- cadres, défilement, formulaires à la suite, fenêtre centrée (js/colonnes.js)
   Chaque formulaire ou fiche ouvert est un cadre : liseré fin tout autour, ombre très légère ; deux cadres voisins sont
   séparés par l'espace de la rangée et leurs liserés verticaux. */
#bsZone.bs-rail-multi :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-colonne {
	background: #fff !important; border: 1px solid var(--line, #E3E6EE) !important; border-radius: 16px !important;
	box-shadow: 0 1px 2px rgba(30, 38, 64, .04), 0 6px 20px rgba(30, 38, 64, .045) !important; padding: 4px 14px 16px !important; }
#bsZone.bs-rail-multi :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-colonne > .es-panneau { margin: 6px 0 8px !important; }
/* les anciens formulaires avaient déjà leur propre cadre : un seul liseré suffit */
#bsZone.bs-rail-multi .bs-colonne:is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl, #ModColl, #ModAgence, #SearchProp, #SearchImm, #SearchLoc, #SearchProp-2, #ModifProp, #ModifImm, #ModifLoca) { padding: 16px 18px 18px !important; }
#bsZone.bs-rail-multi .bs-colonne.bs-panneau-lat { padding: 16px 16px 14px !important; }
/* une colonne seule (écran du menu) : même cadre */
#bsZone.bs-rail:not(.bs-rail-multi) :is(#LeConteneur, #bsCol2, #bsCol3) > .bs-colonne:is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl, #ModColl, #ModAgence, #SearchProp, #SearchImm, #SearchLoc, #SearchProp-2) {
	border: 1px solid var(--line, #E3E6EE) !important; border-radius: 16px !important; box-shadow: 0 1px 2px rgba(30, 38, 64, .04), 0 6px 20px rgba(30, 38, 64, .045) !important; }

/* formulaire de création ouvert en fenêtre (« + Bien », « + Locataire ») : la fenêtre fait le cadre */
#bsZone .bs-dans-popup:is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl) { display: block !important; position: static !important; width: auto !important; max-width: none !important; min-width: 0 !important;
	height: auto !important; max-height: none !important; overflow: visible !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important;
	background: none !important; transform: none !important; }
#bsZone .bs-dans-popup :is(fieldset, form, .es-rang, .es-ch, .es-ch-ctl) { max-width: 100%; min-width: 0; box-sizing: border-box; }
#bsZone .bs-dans-popup .closeX, #bsZone .bs-dans-popup > .bs-col-barre { display: none !important; }
.bs-popup-retour { margin: 14px 0 0; padding: 10px 14px; border-radius: 10px; font: 600 13px/1.45 var(--font, inherit); }
.bs-popup-retour.ok { background: #EAF7EF; color: #1E6B3A; border: 1px solid #BFE3CC; }
.bs-popup-retour.erreur { background: #FDECEA; color: #8F2A22; border: 1px solid #F5C2BE; }
/* mentions des formulaires : interligne explicite, les lignes ne se chevauchent jamais */
#bsZone .es-mention, .bs-popup .es-mention, #bsZone :is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl) p { line-height: 1.5 !important; height: auto !important; }
#bsZone :is(#SaveProp, #SaveImm, #SaveLoc, #SaveColl) p.es-mention { display: block; margin: 0 0 10px !important; white-space: normal !important; }

/* ascenseur horizontal de la page : fixé en bas de l'écran, aligné sur la rangée de colonnes */
.bs-defil-h { position: fixed; bottom: 0; z-index: 900; height: 14px; overflow-x: scroll; overflow-y: hidden; background: rgba(245, 247, 251, .92);
	border-top: 1px solid var(--line, #E3E6EE); scrollbar-width: thin; scrollbar-color: #AEB9D0 transparent; }
.bs-defil-h[hidden] { display: none; }
.bs-defil-h > div { height: 1px; }
.bs-defil-h::-webkit-scrollbar { height: 12px; }
.bs-defil-h::-webkit-scrollbar-thumb { background: #AEB9D0; border-radius: 8px; border: 3px solid transparent; background-clip: padding-box; }
.bs-defil-h::-webkit-scrollbar-thumb:hover { background-color: #7F8BA6; }
body.bs-defil-h-actif { padding-bottom: 16px; }

/* anciens panneaux de témoignage : jamais en colonne, leur contenu s'ouvre dans la fenêtre centrée */
#bsZone :is(#Visu_Temoignage, #Save_Temoignage) { display: none !important; }

/* fenêtre centrée : dépôt, lecture et modification des témoignages et des avis */
html.bs-popup-ouverte { overflow: hidden; }
.es-modale.bs-popup { padding: 24px 16px; }
/* même agrandissement que l'espace (--es-zoom) : largeur et hauteur ramenées à l'écran */
.es-modale.bs-popup > .bs-popup-boite { display: flex; flex-direction: column; width: min(940px, calc((100vw - 32px) / var(--es-zoom, 1)));
	max-height: calc(min(92vh, 1100px) / var(--es-zoom, 1)); padding: 0; overflow: hidden; border-radius: 20px; border: 1px solid var(--line, #E3E6EE); }
body > .es-modale.bs-popup > .bs-popup-boite { zoom: var(--es-zoom, 1); }   /* hors de l'espace (#bsZone, déjà agrandi) */
#bsZone > .es-modale.bs-popup { max-width: none !important; }
.bs-popup-tete { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px 14px 26px; border-bottom: 1px solid var(--line, #E3E6EE); background: #fff; }
.bs-popup-tete b { font: 600 13px/1.2 var(--font, inherit); letter-spacing: .06em; text-transform: uppercase; color: var(--accent-2, #3F4FD8); }
.bs-popup-fermer { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border-radius: 50%; border: 1px solid var(--line, #E3E6EE); background: #fff; color: var(--ink-2, #4B5563);
	cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.bs-popup-fermer svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
.bs-popup-fermer:hover { background: #FDECEA; color: #B4232A; border-color: #F5C2BE; }
.bs-popup-fermer:focus-visible { outline: 3px solid var(--accent, #5B6CF0); outline-offset: 2px; }
.bs-popup-corps.es-panneau { flex: 1 1 auto; width: auto !important; max-width: none !important; margin: 0 !important; padding: 22px 28px 26px; overflow-y: auto; overscroll-behavior: contain; }
.bs-popup-corps > .es-chargement { margin: 40px auto; }
.bs-popup-corps [data-retour-fiche], .bs-popup-corps .bs-col-barre { display: none !important; }
.bs-popup-corps :is(fieldset, form, .es-rang, .es-ch, .es-ch-ctl) { max-width: 100%; min-width: 0; box-sizing: border-box; }
@media (max-width: 640px) {
	.es-modale.bs-popup { padding: 8px; }
	.es-modale.bs-popup > .bs-popup-boite { max-height: 96vh; border-radius: 16px; }
	.bs-popup-corps.es-panneau { padding: 16px; }
}
/* listes de biens et de locataires : témoignages et avis de chaque ligne, à droite (php/php/Fiches.php, liste_refs) */
.ap-liste li.ap-avec-compteurs { grid-template-columns: minmax(0, 1fr) auto; }
.ap-liste li.ap-avec-compteurs > :is(b, span) { grid-column: 1; }
.ap-compteurs { grid-column: 2; grid-row: 1 / span 2; align-self: center; display: grid; justify-items: end; gap: 2px; padding-left: 12px; margin-left: 4px; border-left: 1px solid var(--line, #E3E6EE);
	font: 600 11.5px/1.3 var(--font, inherit); font-style: normal; color: var(--ink-2, #4B5563); white-space: nowrap; }
.ap-compteurs i { font-style: normal; }
.ap-compteurs i[data-temoignages="0"], .ap-compteurs i[data-avis="0"] { color: var(--ink-3, #7A839C); font-weight: 500; }
/* ---------------------------------------------------------------- écran Quittances (agence, propriétaire) : chiffres clés, cartes illustrées */
.bs-qt { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 6px; container-type: inline-size; }   /* une colonne à la largeur de l'écran : sans elle, les chiffres débordaient sur téléphone */
.bs-qt-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.bs-qt-chiffre { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 14px 16px;
	background: #fff; border: 1px solid var(--line, #E3E6EE); border-radius: 16px; box-shadow: 0 1px 2px rgba(30, 38, 64, .04), 0 6px 18px rgba(30, 38, 64, .045);
	color: var(--ink, #1E2640); text-decoration: none !important; transition: transform .2s ease, box-shadow .2s ease; }
a.bs-qt-chiffre:hover { box-shadow: 0 2px 4px rgba(30, 38, 64, .05), 0 10px 24px rgba(30, 38, 64, .08); }
.bs-qt-ico { grid-row: 1 / span 2; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--accent-soft, #EEF0FE); }
.bs-qt-ico svg { width: 21px; height: 21px; fill: none; stroke: var(--accent, #5B6CF0); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bs-qt-chiffre b { font: 700 24px/1.05 var(--font-display, var(--font, inherit)); color: var(--ink, #1E2640); }
.bs-qt-chiffre span { font: 500 12.5px/1.35 var(--font, inherit); color: var(--ink-3, #6B7280); }
.bs-qt-chiffre.alerte { background: #FFF8EC; border-color: #F3D19B; }
.bs-qt-chiffre.alerte .bs-qt-ico { background: #FDEBC8; }
.bs-qt-chiffre.alerte .bs-qt-ico svg { stroke: #B26A00; }
/* cartes : illustration d'un côté, explication et action de l'autre */
.bs-qt-carte { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); background: #fff; border: 1px solid var(--line, #E3E6EE); border-radius: 20px; overflow: hidden;
	box-shadow: 0 1px 2px rgba(30, 38, 64, .04), 0 8px 24px rgba(30, 38, 64, .05); }
.bs-qt-carte.inverse { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
.bs-qt-carte.inverse .bs-qt-visuel { order: 2; }
.bs-qt-visuel { min-height: 270px; background-size: cover; background-position: center; }
.bs-qt-texte { display: grid; align-content: center; gap: 10px; padding: 26px 28px; }
.bs-qt-texte small { font: 600 11px/1 var(--font, inherit); letter-spacing: .1em; text-transform: uppercase; color: var(--accent-2, #3F4FD8); }
.bs-qt-texte h3 { margin: 0 !important; font: 650 21px/1.2 var(--font-display, var(--font, inherit)) !important; color: var(--ink, #1E2640); letter-spacing: -.01em; }
.bs-qt-texte p { margin: 0; font: 400 14px/1.6 var(--font, inherit); color: var(--ink-2, #4B5563); }
.bs-qt-points { list-style: none; margin: 2px 0 4px; padding: 0; display: grid; gap: 6px; }
.bs-qt-points li { position: relative; padding-left: 24px; font: 500 13.5px/1.45 var(--font, inherit); color: var(--ink-2, #4B5563); }
.bs-qt-points li::before { content: ""; position: absolute; left: 0; top: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--accent-soft, #EEF0FE)
	url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='%235B6CF0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat; }
.bs-qt-texte > .es-btn { justify-self: start; margin-top: 4px; }
.bs-qt-texte .bs-qt-verif-form { margin: 4px 0 0; padding: 0; border: 0; box-shadow: none; background: none; }
/* formulaire d'émission et résultat de vérification : sous la carte, sur toute sa largeur */
.bs-qt-carte > .bs-qt-emission, .bs-qt-carte > .bs-qt-verif-resultat { grid-column: 1 / -1; }
.bs-qt-emission > summary { display: none; }
.bs-qt-emission[open] { padding: 20px 24px 24px; border-top: 1px solid var(--line, #E3E6EE); background: var(--canvas, #F7F8FB); }
.bs-qt-verif-resultat:not(:empty) { padding: 0 24px 24px; }
.bs-qt-bloc { background: #fff; border: 1px solid var(--line, #E3E6EE); border-radius: 18px; padding: 18px 20px 20px; margin: 0 !important; box-shadow: 0 1px 2px rgba(30, 38, 64, .04), 0 6px 18px rgba(30, 38, 64, .04); }
.bs-qt-bloc > h3 { margin-top: 0 !important; }
.bs-qt-bloc.es-bloc-alerte { border-color: #F3D19B; }
@container (max-width: 640px) {
	.bs-qt-carte, .bs-qt-carte.inverse { grid-template-columns: minmax(0, 1fr); }
	.bs-qt-carte.inverse .bs-qt-visuel { order: 0; }
	.bs-qt-visuel { min-height: 190px; }
	.bs-qt-texte { padding: 20px; }
}

/* ---------------------------------------------------------------- illustrations sous les formulaires de recherche et du nouveau collaborateur */
.bs-illus { display: block; margin: 16px 0 2px; border-radius: 16px; overflow: hidden; border: 1px solid var(--line, #E3E6EE); background: var(--canvas, #F7F8FB);
	box-shadow: 0 1px 2px rgba(30, 38, 64, .04), 0 6px 18px rgba(30, 38, 64, .045); }
.bs-illus img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.bs-illus figcaption { padding: 10px 14px 12px; font: 400 12.5px/1.5 var(--font, inherit); color: var(--ink-3, #6B7280); background: #fff; }
.bs-illus figcaption b { color: var(--ink-2, #4B5563); font-weight: 600; }
/* « Activer les aides » : déplacé dans le menu Actions (js/espace-import.js) ; la case historique reste, masquée */
#Helpsx0y0 { display: none !important; }
.es-menu-sep { height: 1px; margin: 6px 8px; background: var(--line, #E3E6EE); }
/* l'écran Quittances utilise la largeur disponible (cartes illustrées côte à côte) */
#bsZone #Quittances .es-panneau { width: min(1120px, calc((100vw - var(--es-sidebar) - 60px) / var(--es-zoom))); max-width: none; }
/* bandeau illustré de chaque menu (js/espace.js, illustrer) : largeur du formulaire, 150 px de haut à l'écran, avant le formulaire */
.bs-bandeau { display: block; position: relative; margin: 0 0 16px; padding: 0; height: calc(150px / var(--es-zoom, 1)); border-radius: 14px; overflow: hidden;
	border: 1px solid var(--line, #E3E6EE); background: var(--canvas-2, #EEF1F7); box-shadow: 0 1px 2px rgba(30, 38, 64, .04); }
.bs-bandeau img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
body > .es-modale .bs-bandeau { height: 150px; }
#bsZone .bs-dans-popup > .bs-bandeau { margin-bottom: 18px; }
/* biens archivés (fin de possession) : section repliable, lignes atténuées */
.bs-archives { margin-top: 18px !important; }
.bs-archives > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--line, #E3E6EE); border-radius: 999px;
	background: #fff; font: 600 13.5px/1.2 var(--font, inherit); color: var(--ink-2, #4B5563); }
.bs-archives > summary::-webkit-details-marker { display: none; }
.bs-archives > summary::before { content: "▸"; color: var(--ink-3, #7A839C); transition: transform .2s ease; }
.bs-archives[open] > summary::before { transform: rotate(90deg); }
.bs-archives > summary:hover { border-color: var(--accent, #5B6CF0); color: var(--accent-2, #3F4FD8); }
.bs-archives > .es-mention { margin: 12px 0 10px !important; }
.es-ligne.bs-archive { background: #FAFBFD; }
.es-ligne.bs-archive .es-ligne-txt b { color: var(--ink-2, #4B5563); }
.ap-liste .bs-fin-possession { color: #8A5A00; font-style: normal; }
/* ---------------------------------------------------------------- écran États des lieux (propriétaires) */
#bsZone #EtatsDesLieux .es-panneau { width: min(1120px, calc((100vw - var(--es-sidebar) - 60px) / var(--es-zoom))); max-width: none; }
.bs-edl-form { display: grid; gap: 12px; margin: 4px 0 8px; padding: 18px 22px 16px !important; background: #fff; border: 1px solid var(--line, #E3E6EE); border-radius: 18px;
	box-shadow: 0 1px 2px rgba(30, 38, 64, .04), 0 6px 18px rgba(30, 38, 64, .045); }
.bs-edl-form h3 { margin: 0 !important; font: 650 16px/1.3 var(--font-display, var(--font, inherit)) !important; color: var(--ink, #1E2640); }
.bs-edl-form h3 small { margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: var(--canvas-2, #EEF1F7); font: 600 11px/1.4 var(--font, inherit); color: var(--ink-3, #6B7280); vertical-align: 2px; }
.bs-edl-choix { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 26px; }
/* logement et bail cherchés au fil de la frappe (P29) : la liste flotte sous le champ, sans pousser le formulaire */
.bs-edl-ac { min-width: 0; }
.bs-edl-ac .bs-ac-liste { position: absolute; z-index: 40; left: 0; right: 0; margin-top: 4px; box-shadow: 0 18px 40px rgba(30,38,64,.16); }
.bs-edl-date { width: 200px; margin: 0 !important; display: grid !important; gap: 4px; }
.bs-edl-cat { margin: 26px 0 0; }
.bs-edl-cat-tete { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 22px; align-items: center; margin-bottom: 14px; }
.bs-edl-visuel { height: 170px; border-radius: 16px; background: var(--canvas-2, #EEF1F7) center / cover no-repeat; border: 1px solid var(--line, #E3E6EE);
	box-shadow: 0 1px 2px rgba(30, 38, 64, .04), 0 6px 18px rgba(30, 38, 64, .05); }
.bs-edl-cat-texte small { font: 600 11px/1 var(--font, inherit); letter-spacing: .1em; text-transform: uppercase; color: var(--accent-2, #3F4FD8); }
.bs-edl-cat-texte h3 { margin: 8px 0 6px !important; font: 650 20px/1.2 var(--font-display, var(--font, inherit)) !important; color: var(--ink, #1E2640); }
.bs-edl-cat-texte p { margin: 0; font: 400 14px/1.6 var(--font, inherit); color: var(--ink-2, #4B5563); }
.bs-edl-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.bs-edl-carte { position: relative; display: grid; align-content: start; gap: 6px; padding: 18px 18px 16px; background: #fff; border: 1px solid var(--line, #E3E6EE); border-radius: 16px;
	box-shadow: 0 1px 2px rgba(30, 38, 64, .04); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.bs-edl-carte:hover { box-shadow: 0 2px 4px rgba(30, 38, 64, .05), 0 10px 24px rgba(30, 38, 64, .08); }
.bs-edl-carte b { font: 650 17px/1.25 var(--font-display, var(--font, inherit)); color: var(--ink, #1E2640); }
.bs-edl-carte > span:not(.bs-edl-conseil) { font: 400 13px/1.5 var(--font, inherit); color: var(--ink-2, #4B5563); }
.bs-edl-carte em { font: 500 12px/1.4 var(--font, inherit); font-style: normal; color: var(--ink-3, #6B7280); }
.bs-edl-carte .es-btn { justify-self: start; margin-top: 6px; }
.bs-edl-conseil { display: none; position: absolute; top: -10px; right: 14px; padding: 3px 10px; border-radius: 999px; background: var(--accent, #5B6CF0); color: #fff; font: 600 11px/1.4 var(--font, inherit); }
.bs-edl-carte.conseille { border-color: var(--accent, #5B6CF0); box-shadow: 0 0 0 3px var(--accent-soft, #EEF0FE); }
.bs-edl-carte.conseille .bs-edl-conseil { display: block; }
@container (max-width: 700px) { .bs-edl-cat-tete { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) { .bs-edl-cat-tete { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------- vérifier un document (php/php/Documents.php)
   bouton dédié en haut de chaque écran, lien du menu, formulaire de référence, statut, document reconstitué,
   bloc « Référence de vérification » imprimé sur chaque document émis */
.es-actions-haut { display: flex; align-items: center; gap: 8px; }
.es-verifier-haut { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px 0 12px; border-radius: 999px;
	background: var(--accent, #5B6CF0); color: #fff !important; font: 700 13.5px/1 var(--font); box-shadow: 0 8px 20px rgba(91,108,240,.30);
	transition: transform .25s var(--ease, ease), box-shadow .25s var(--ease, ease), background-color .25s var(--ease, ease); }
.es-verifier-haut svg { width: 20px; height: 20px; fill: none; stroke: #fff; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.es-verifier-haut:hover { background: var(--accent-2, #4453D6); box-shadow: 0 12px 26px rgba(91,108,240,.38); }
.es-verifier-haut:focus-visible { outline: 2px solid var(--accent, #5B6CF0); outline-offset: 3px; }
/* petit écran : boutons ronds, l'un sous l'autre, à droite du titre du bandeau (qui leur laisse la place) */
@media (max-width: 760px) {
	.es-actions-haut { top: 10px; right: 10px; flex-direction: column; gap: 6px; }
	.es-verifier-haut span, .es-roue span, .es-roue i { display: none; }
	.es-verifier-haut, .es-roue { width: 40px; padding: 0; justify-content: center; }
	#es-bandeau .es-b-txt { max-width: calc(100% - 76px); }
}
#sidebar a.es-lien-verifier .es-ico { background: var(--accent-soft, #E6E9FF); }
#sidebar a.es-lien-verifier .es-ico svg { stroke: var(--accent-2, #4453D6); }

.bs-verif-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; padding: 18px 20px; background: #fff; border: 1px solid var(--line, #E3E6EE); border-radius: 16px; box-shadow: 0 1px 2px rgba(30,38,64,.04), 0 8px 22px rgba(30,38,64,.06); }
.bs-verif-champ { margin: 0 !important; }
.bs-verif-champ input { font: 600 17px/1 "DM Mono", Consolas, "Courier New", monospace !important; letter-spacing: .06em; text-transform: uppercase; height: 46px !important; }
.bs-verif-champ input::placeholder { text-transform: none; letter-spacing: .02em; font-weight: 400; color: #9AA3B8; }
.bs-verif-form .es-btn { min-height: 46px; padding: 0 26px; }
.bs-verif-resultat:not(:empty) { margin-top: 16px; }
.bs-verif-resultat.es-entree { animation: es-monte .45s cubic-bezier(.2,.7,.2,1) both; }
.bs-verif-statut { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: 14px; border: 1px solid; }
.bs-verif-statut b { display: block; font: 700 16px/1.3 var(--font); }
.bs-verif-statut p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--ink-2, #46506C); }
.bs-verif-ico { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; }
.bs-verif-ico svg { width: 24px; height: 24px; fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.bs-verif-statut.ok { border-color: #9DD2B6; background: #F1FAF5; } .bs-verif-statut.ok b { color: #23744A; } .bs-verif-statut.ok .bs-verif-ico { background: #DDF2E6; } .bs-verif-statut.ok svg { stroke: #23744A; }
.bs-verif-statut.maj { border-color: #EBC77A; background: #FFF8E8; } .bs-verif-statut.maj b { color: #8A6418; } .bs-verif-statut.maj .bs-verif-ico { background: #FCEBC4; } .bs-verif-statut.maj svg { stroke: #8A6418; }
.bs-verif-statut.ko { border-color: #E9A39A; background: #FDF3F1; } .bs-verif-statut.ko b { color: #A23B30; } .bs-verif-statut.ko .bs-verif-ico { background: #F9DCD7; } .bs-verif-statut.ko svg { stroke: #A23B30; }
.bs-verif-doc { margin-top: 14px; padding: 18px 20px; background: #fff; border: 1px solid var(--line, #E3E6EE); border-radius: 16px; box-shadow: 0 1px 2px rgba(30,38,64,.04), 0 10px 26px rgba(30,38,64,.06); }
.bs-verif-entete { border-bottom: 1px solid var(--line, #E3E6EE); padding-bottom: 10px; margin-bottom: 14px; }
.bs-verif-entete small { font: 600 11px/1 var(--font); letter-spacing: .1em; text-transform: uppercase; color: var(--accent-2, #4453D6); }
.bs-verif-entete h3 { margin: 6px 0 4px !important; font: 700 19px/1.25 var(--font) !important; color: var(--ink); }
.bs-verif-entete p { margin: 0; font-size: 12.5px; color: var(--ink-3, #6E7792); }
.bs-verif-resultat > .es-actions { margin-top: 10px; }
.bs-verif-corps .es-table td small.bs-ref-doc { display: block; margin-top: 2px; }
.bs-verif-etapes { list-style: none; counter-reset: v; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.bs-verif-etapes li { counter-increment: v; position: relative; padding: 14px 14px 14px 52px; background: var(--canvas-2, #EEF1F7); border-radius: 14px; font-size: 13px; line-height: 1.5; color: var(--ink-2, #46506C); }
.bs-verif-etapes li::before { content: counter(v); position: absolute; left: 14px; top: 14px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--accent-2, #4453D6); font: 700 13px/1 var(--font); }
.bs-verif-etapes b { display: block; color: var(--ink, #1B2340); font-size: 13.5px; margin-bottom: 2px; }
@media (max-width: 760px) { .bs-verif-form { grid-template-columns: minmax(0, 1fr); } .bs-verif-etapes { grid-template-columns: minmax(0, 1fr); } }

.bs-doc-ref { display: flex; gap: 12px; align-items: flex-start; margin: 14px 0 0; padding: 12px 14px; border: 1.5px solid rgba(91,108,240,.45); border-radius: 12px; background: #F6F7FF; }
.bs-doc-ref-ico svg { width: 26px; height: 26px; fill: none; stroke: var(--accent-2, #4453D6); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bs-doc-ref b { display: block; font: 600 11px/1.2 var(--font); letter-spacing: .08em; text-transform: uppercase; color: var(--accent-2, #4453D6); }
.bs-doc-ref code { display: block; margin: 4px 0 2px; font: 700 16px/1.35 "DM Mono", Consolas, "Courier New", monospace; letter-spacing: .05em; color: var(--ink, #1B2340); user-select: all; word-break: break-all; }
.bs-doc-ref small { display: block; font-size: 12px; line-height: 1.5; color: var(--ink-3, #6E7792); }
.es-avis .bs-doc-ref, .es-bailleur .bs-doc-ref { margin-top: 10px; }
/* document reconstitué : un seul cadre (celui du document), pas de carte dans la carte */
.bs-verif-corps.es-attestation { padding: 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; margin: 0 !important; }
.bs-verif-doc > .es-mention { margin: 12px 0 0; }


/* ---------------------------------------------------------------- liste déroulante à choix multiples (details.bs-lm, js/listes.js)
   fermée : résumé de la sélection et nombre de réponses ; ouverte : une case par réponse */
.bs-lm { position: relative; width: 100%; }
.bs-lm[open] { z-index: 60; }   /* ouverte : au-dessus des blocs voisins (vignettes, cartes animées), 17/10/2026 */
/* bloc animé à l'entrée d'un écran (.es-entree > *, calque propre) qui contient une liste ouverte : au-dessus des blocs suivants */
.es-entree > *:has(.bs-lm[open]) { position: relative; z-index: 50; }
.bs-lm > summary { list-style: none; display: flex; align-items: center; gap: 8px; min-height: var(--ctl-h); box-sizing: border-box; padding: 7px 34px 7px 10px; cursor: pointer;
	border: 1px solid var(--ctl-bord); border-radius: var(--ctl-r); font: 400 var(--t-base)/1.35 var(--font); color: var(--ink); transition: border-color .15s ease, box-shadow .15s ease;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5470' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center / 14px; }
.bs-lm > summary::-webkit-details-marker { display: none; }
.bs-lm > summary:hover { border-color: #AEB9D0; }
.bs-lm > summary:focus-visible { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.bs-lm[open] > summary { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234453D6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 15l6-6 6 6'/%3E%3C/svg%3E"); }
.bs-lm-val { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bs-lm-val.vide { color: #9AA3B8; }
.bs-lm-nb { flex: 0 0 auto; min-width: 20px; height: 20px; padding: 0 6px; box-sizing: border-box; border-radius: 999px; background: var(--accent); color: #fff; font: 700 11.5px/20px var(--font); text-align: center; }
.bs-lm-nb[hidden] { display: none; }
.bs-lm-menu { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 4px); max-height: 320px; overflow: auto; padding: 6px; box-sizing: border-box;
	background: #fff; border: 1px solid var(--ctl-bord); border-radius: 10px; box-shadow: 0 14px 34px rgba(30,38,64,.16); }
.bs-lm-menu label { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: 8px; cursor: pointer; font: 400 var(--t-sm)/1.4 var(--font); color: var(--ink-2); }
.bs-lm-menu label[hidden] { display: none; }
.bs-lm-menu label:hover { background: #F4F6FB; }
.bs-lm-menu label:has(input:checked) { background: var(--accent-soft); color: var(--ink); }
/* « Tout sélectionner » (18/10/2026) puis « Tout désélectionner » (19/10/2026) : premiers choix, séparés des autres */
.bs-lm-menu label.bs-lm-tout, .bs-lm-menu label.bs-lm-rien { font-weight: 600; }
.bs-lm-menu label.bs-lm-rien { margin-bottom: 6px; position: relative; }
.bs-lm-menu label.bs-lm-rien::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -4px; border-bottom: 1px solid #E3E7F0; }
.bs-lm-menu input { flex: 0 0 auto; width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--accent); cursor: pointer; }
.bs-lm-menu .bs-lm-seul { font-weight: 600; margin-bottom: 4px; box-shadow: 0 1px 0 var(--line); border-radius: 8px 8px 0 0; }
.bs-lm[data-lecture] > summary { background-color: var(--ctl-fond-lecture); }
.bs-lm[data-lecture] .bs-lm-menu label { cursor: default; }
.es-champ > .bs-lm { margin-top: 0; }
.bs-propager .es-champ { margin-bottom: 10px; }

/* ---------------------------------------------------------------- état des lieux : deux listes côte à côte */
.bs-edl-choix .es-champ { min-width: 200px; margin: 0; }

/* ------------------------------------------------------------- dossiers (attestation, relevé) : référence de vérification de chaque pièce */
.bs-ref-piece { display: block; margin-top: 4px; font: 600 11.5px/1.3 "DM Mono", Consolas, "Courier New", monospace; letter-spacing: .03em; color: var(--ink, #1B2340); white-space: nowrap; user-select: all; }
.bs-doc-dossier small { margin-top: 2px; }
.bs-doc-ref-lib { display: block; margin-top: 6px; font-size: 12.5px; color: var(--ink-2, #3A4252); }
/* changement vérifié par code (Mon profil, Mon accès : php/php/Changements.php) : saisie du ou des codes, le bouton du formulaire masqué */
.es-codes { margin: 14px 0 0; padding: 12px 14px; border: 1.5px solid rgba(91,108,240,.45); border-radius: 12px; background: #F6F7FF; }
.es-codes legend { padding: 0 6px; font-weight: 600; color: var(--accent-2, #4453D6); }
.es-codes input { font: 600 16px/1.3 "DM Mono", Consolas, monospace; letter-spacing: .2em; }
form.es-en-code > .es-actions { display: none; }

/* ---------------------------------------------------------------- coffre-fort commun (php/php/Coffre.php), 15/10/2026 */
.bs-cf-intro p, .bs-ech-intro p { color: var(--ink-2, #3A4252); }
.bs-cf-recherche { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; margin: 0 0 14px; }
.bs-cf-recherche .es-champ { flex: 1 1 260px; margin: 0; }
.bs-cf-tete { margin: 6px 0 14px; }
.bs-cf-tete small { color: var(--accent-2, #4453D6); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 11px; }
.bs-cf-tete h3 { margin: 4px 0; }
.bs-cf-tete p { margin: 0; color: var(--ink-3, #6E7792); font-size: 13px; }
.bs-cf-section { margin: 0 0 16px; padding: 12px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; }
.bs-cf-section h4 { margin: 0 0 8px; font-size: 13.5px; color: var(--ink, #1B2340); }
.bs-cf-doc { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; padding: 9px 0; border-top: 1px solid var(--line, #E3E7F0); }
.bs-cf-doc:first-of-type { border-top: 0; }
.bs-cf-doc-txt { display: grid; gap: 2px; min-width: 0; flex: 1 1 320px; }
.bs-cf-doc-txt span { color: var(--ink-2, #3A4252); font-size: 13px; }
.bs-cf-doc-txt small { color: var(--ink-3, #6E7792); font-size: 12px; }
.bs-cf-doc .es-statut { margin-left: 6px; }
.bs-cf-depot { margin: 18px 0 8px; padding: 14px 16px; border: 1.5px dashed rgba(91,108,240,.45); border-radius: 12px; background: #F8F9FF; }
.bs-cf-depot h3 { margin: 0 0 8px; }
.bs-cf-extra [hidden] { display: none !important; }

/* ---------------------------------------------------------------- demandes d'intervention (php/php/Interventions.php) */
.bs-iv-urgence-info { margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: #FFF4E5; border: 1px solid #F3D19C; color: #6B4A00; font-size: 13px; }
.bs-iv { margin: 0 0 10px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; }
.bs-iv > summary { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; cursor: pointer; list-style: none; }
.bs-iv > summary::-webkit-details-marker { display: none; }
.bs-iv-etat { flex: 0 0 auto; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; background: var(--accent-soft, #E9ECFE); color: var(--accent-2, #4453D6); }
.bs-iv.nouvelle .bs-iv-etat { background: #FFF4E5; color: #8A5A00; }
.bs-iv.resolue .bs-iv-etat, .bs-iv.cloturee .bs-iv-etat { background: #E3F4EC; color: #1F7A54; }
.bs-iv.refusee .bs-iv-etat, .bs-iv.annulee .bs-iv-etat { background: #F1F3F8; color: #6E7792; }
.bs-iv.urgente { border-color: #E9A3A3; }
.bs-iv-urg { font-style: normal; color: #B4233C; font-weight: 700; }
.bs-iv-txt { display: grid; gap: 2px; min-width: 0; }
.bs-iv-txt small { color: var(--ink-3, #6E7792); font-size: 12.5px; }
.bs-iv[open] > summary { border-bottom: 1px solid var(--line, #E3E7F0); }
.bs-iv > :not(summary) { margin-left: 14px; margin-right: 14px; }
.bs-iv-fiche { display: grid; grid-template-columns: minmax(110px, 26%) minmax(0, 1fr); gap: 4px 12px; margin: 12px 0; }
.bs-iv-fiche dt { color: var(--ink-3, #6E7792); }
.bs-iv-fiche dd { margin: 0; }
.bs-iv-suivi { margin: 8px 0 12px; padding-left: 18px; }
.bs-iv-suivi li { margin: 0 0 6px; }
.bs-iv-suivi li span { display: block; color: var(--ink-2, #3A4252); white-space: pre-line; }
.bs-iv-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; margin-bottom: 12px; }
.bs-iv-act { flex: 0 0 auto; max-width: 100%; }
.bs-iv-act[open] { flex: 1 0 100%; }
.bs-iv-act > summary { display: inline-flex; align-items: center; padding: 7px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 999px; background: #fff; color: var(--ink, #1B2340); font-weight: 600; font-size: 13px; cursor: pointer; list-style: none; }
.bs-iv-act > summary::-webkit-details-marker { display: none; }
.bs-iv-act.principale > summary { border-color: rgba(91,108,240,.55); color: var(--accent-2, #4453D6); }
.bs-iv-act[open] > summary { background: var(--accent-soft, #E9ECFE); border-color: transparent; color: var(--accent-2, #4453D6); }
.bs-iv-act > form { margin-top: 8px; }
.bs-iv-etape { font-style: normal; font-size: 12px; font-weight: 600; padding: 1px 8px; margin-left: 4px; border-radius: 999px; background: var(--accent-soft, #E9ECFE); color: var(--accent-2, #4453D6); }
.bs-iv-form { padding: 10px 12px; border: 1px solid var(--line, #E3E7F0); border-radius: 10px; background: #FAFBFD; }
.bs-iv-nouvelle { margin: 0 0 18px; }
.bs-iv-signaler { margin: 0 0 18px; }
.bs-iv-signaler > summary { list-style: none; display: inline-flex; margin: 0 0 12px; }
.bs-iv-signaler > summary::-webkit-details-marker { display: none; }
.bs-iv-signaler[open] > summary { display: none; }

/* ---------------------------------------------------------------- échéances et rappels (php/php/Echeances.php) */
.bs-ech-liste { display: grid; gap: 8px; margin: 12px 0 18px; }
.bs-ech { border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; }
.bs-ech > summary { display: flex; gap: 12px; align-items: center; padding: 10px 14px; cursor: pointer; list-style: none; }
.bs-ech > summary::-webkit-details-marker { display: none; }
.bs-ech-date { flex: 0 0 92px; font: 600 13px/1.2 "DM Mono", Consolas, monospace; color: var(--ink, #1B2340); }
.bs-ech-txt { flex: 1 1 auto; display: grid; gap: 2px; min-width: 0; }
.bs-ech-txt small { color: var(--ink-3, #6E7792); font-size: 12.5px; }
.bs-ech-etat { flex: 0 0 auto; font-style: normal; font-size: 12px; padding: 3px 9px; border-radius: 999px; background: #F1F3F8; color: #4A5470; }
.bs-ech.proche .bs-ech-etat { background: #FFF4E5; color: #8A5A00; }
.bs-ech.depassee .bs-ech-etat { background: #FBE5E9; color: #B4233C; }
.bs-ech.a_venir .bs-ech-etat { background: #E3F4EC; color: #1F7A54; }
.bs-ech.inactive { opacity: .7; }
.bs-ech > :not(summary) { margin-left: 14px; margin-right: 14px; }
.bs-ech-perso { padding: 14px 16px; border: 1.5px dashed rgba(91,108,240,.45); border-radius: 12px; background: #F8F9FF; }
.bs-pv-fait { margin: 0 0 16px; }

/* ---------------------------------------------------------------- suivi des charges et dépôts de garantie (php/php/Charges.php, Depots.php), 16/10/2026 */
.bs-ch-guide { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: #F8F9FF; border: 1px solid rgba(91,108,240,.25); color: var(--ink-2, #3A4252); font-size: 13.5px; }
.bs-ch-guide p { margin: 0; }
.bs-ch-baux { display: grid; gap: 8px; }
.bs-ch-bail { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; padding: 11px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; cursor: pointer; }
.bs-ch-bail:hover, .bs-ch-bail:focus-visible { border-color: rgba(91,108,240,.55); box-shadow: 0 2px 10px rgba(30,38,64,.06); outline: none; }
.bs-ch-bail > div { display: grid; gap: 2px; min-width: 0; flex: 1 1 320px; }
.bs-ch-bail small { color: var(--ink-3, #6E7792); font-size: 12.5px; }
.bs-ch-bail > span, .bs-ch-periode > span:first-child { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.bs-ch-tete { display: grid; gap: 2px; margin: 0 0 14px; }
.bs-ch-tete > button { justify-self: start; margin-bottom: 8px; }
.bs-ch-tete small { color: var(--accent-2, #4453D6); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: 11px; }
.bs-ch-tete h3 { margin: 2px 0; }
.bs-ch-tete p { margin: 0; color: var(--ink-3, #6E7792); font-size: 13px; }
.bs-ch-periode { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding: 9px 0; border-top: 1px solid var(--line, #E3E7F0); }
.bs-ch-periode:first-of-type { border-top: 0; }
.bs-ch-periode small { color: var(--ink-3, #6E7792); font-size: 12.5px; }
.bs-ch-decompte { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; margin: 0 0 10px; padding: 12px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; }
.bs-ch-decompte > div { display: grid; gap: 3px; min-width: 0; flex: 1 1 340px; }
.bs-ch-decompte small { color: var(--ink-3, #6E7792); font-size: 12.5px; }
.bs-ch-decompte.sans-objet { background: #FAFBFD; }
.bs-ch-versions { flex: 1 0 100%; font-size: 13px; }
.bs-ch-versions ul { margin: 6px 0 0; padding-left: 18px; }
.bs-ch-editeur { margin: 0 0 18px; }
.bs-ch-table { width: 100%; overflow-x: auto; margin: 8px 0; }
.bs-ch-table table { width: 100%; border-collapse: collapse; min-width: 560px; }
.bs-ch-table th { text-align: left; font-size: 12px; color: var(--ink-3, #6E7792); font-weight: 600; padding: 6px 6px; border-bottom: 1px solid var(--line, #E3E7F0); }
.bs-ch-table td { padding: 5px 6px; vertical-align: middle; }
.bs-ch-table td:nth-child(1) { width: 34%; }
.bs-ch-table td:nth-child(3) { width: 140px; }
.bs-ch-table td:nth-child(4) { width: 36px; text-align: center; }
.bs-ch-table select, .bs-ch-table input { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--line, #E3E7F0); border-radius: 9px; font: inherit; font-size: 14px; background: #fff; }
.bs-ch-table input[data-ch-montant], .bs-ch-table input[data-dg-montant] { text-align: right; }
.bs-ch-retirer { width: 30px; height: 30px; border: 1px solid var(--line, #E3E7F0); border-radius: 50%; background: #fff; color: #8A93A8; cursor: pointer; font-size: 17px; line-height: 1; }
.bs-ch-retirer:hover { color: #B4233C; border-color: #E9A3A3; }
.bs-ch-total { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 12px 0; padding: 12px 14px; border-radius: 12px; background: #F1F3FB; font-size: 14px; }
.bs-ch-total span { color: var(--ink-2, #3A4252); }
.bs-ch-total b { color: var(--ink, #1B2340); }
.bs-ch-total .du b { color: #B4233C; }
.bs-ch-total .rendu b { color: #1F7A54; }
.bs-ch-total:empty { display: none; }
.bs-ch-sans { margin: 8px 0 0; }
.bs-ch-sans > summary { cursor: pointer; color: var(--accent-2, #4453D6); font-weight: 600; font-size: 13.5px; }
.bs-ch-sans > form { margin-top: 10px; }
.bs-ch-loc { margin-bottom: 18px; }
.bs-ch-alerte { margin: 8px 0 12px; }
.bs-ch-alerte p { margin: 0 0 8px; }
.bs-ch-demande { margin: 0; }
.bs-dg-form h3 { margin: 18px 0 8px; }
.bs-dg-form h3:first-of-type { margin-top: 4px; }
/* ---------------------------------------------------------------- gestion locative du bailleur et de l'agence (16/10/2026) */
.bs-gl-mandat { margin: 0 0 12px; }
.bs-gl-chiffres > div.alerte b { color: #B4233C; }
.bs-gl-resume { margin: 0 0 14px; padding: 10px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; }
.bs-gl-resume > summary { cursor: pointer; font-weight: 600; color: var(--ink, #1B2340); }
.bs-gl-resume .bs-iv-fiche { margin: 10px 0; }
.bs-gl-tableau { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.bs-gl-tableau th { text-align: left; font-size: 12px; color: var(--ink-3, #6E7792); font-weight: 600; padding: 7px 8px; border-bottom: 1px solid var(--line, #E3E7F0); white-space: nowrap; }
.bs-gl-tableau td { padding: 7px 8px; border-bottom: 1px solid #EEF1F6; vertical-align: top; }
.bs-gl-tableau .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bs-gl-tableau .es-statut { white-space: nowrap; }
.bs-gl-tableau td.bs-gl-ind span { display: block; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bs-gl-tableau td.bs-gl-ind small { display: block; color: var(--ink-3, #6E7792); }
/* les largeurs de l'éditeur des charges (.bs-ch-table td:nth-child) ne valent pas pour les tableaux de gestion */
.bs-ch-table .bs-gl-tableau td:nth-child(n) { width: auto; text-align: left; vertical-align: top; padding: 7px 8px; }
.bs-ch-table .bs-gl-tableau td.num { text-align: right; }
.bs-ch-table .bs-fi-synthese td:first-child, .bs-fi-synthese th:first-child { width: 92px; white-space: nowrap; }
.bs-ch-table .bs-fi-saisies td.bs-fi-date { white-space: nowrap; width: 96px; }
.bs-fi-saisies td small { display: block; margin-top: 2px; color: var(--ink-3, #6E7792); font-size: 12.5px; }
.bs-ch-table .bs-fi-saisies td.bs-fi-actions { width: 1%; white-space: nowrap; }
.bs-fi-saisies td.bs-fi-actions .es-ligne-boutons { flex-wrap: nowrap; }
.bs-gl-paiement + p { margin-top: 12px; }
.bs-gl-tableau tr.T td, .bs-gl-tableau tr.R td { font-weight: 700; background: #F4F6FE; }
.bs-gl-tableau tr.R td { background: #E9ECFE; }
.bs-gl-graphe { margin: 6px 0 18px; padding: 12px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 14px; background: #fff; }
.bs-gl-graphe svg { display: block; width: 100%; height: auto; }
.bs-gl-graphe .grille { stroke: #EEF1F6; stroke-width: 1; }
.bs-gl-graphe .axe { fill: #8A93A8; font: 11px/1 "Inter", system-ui, sans-serif; }
.bs-gl-graphe .aire { fill: rgba(91,108,240,.10); }
.bs-gl-graphe .courbe { fill: none; stroke: #5B6CF0; stroke-width: 2.2; stroke-linejoin: round; }
.bs-gl-graphe .repere line { stroke: #F0A15A; stroke-width: 1; stroke-dasharray: 3 3; }
.bs-gl-graphe .repere circle { fill: #fff; stroke: #E07B24; stroke-width: 2.4; }
.bs-gl-graphe .dernier { fill: #5B6CF0; }
.bs-gl-graphe figcaption { margin-top: 8px; font-size: 12.5px; color: var(--ink-3, #6E7792); }
.bs-gl-valeurs { margin-top: 8px; font-size: 13px; }
.bs-gl-valeurs > summary { cursor: pointer; color: var(--accent-2, #4453D6); font-weight: 600; }
.bs-gl-decision { margin: 12px 0; padding: 14px 16px; border: 1.5px solid rgba(91,108,240,.45); border-radius: 12px; background: #F8F9FF; }
.bs-gl-decision h4 { margin: 0 0 6px; }
.bs-co-types { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.bs-co-type { display: grid; gap: 4px; text-align: left; padding: 12px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; cursor: pointer; font: inherit; color: var(--ink, #1B2340); position: relative; }
.bs-co-type:hover, .bs-co-type:focus-visible { border-color: rgba(91,108,240,.55); box-shadow: 0 2px 10px rgba(30,38,64,.06); outline: none; }
.bs-co-type small { color: var(--ink-3, #6E7792); font-size: 12.5px; }
.bs-co-type em { order: -1; justify-self: start; font-style: normal; font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 999px; background: #FFF4E5; color: #8A5A00; }
/* le style global des boutons (css/pastel.css : pilule, gras, bordure transparente) ne s'applique pas à ces cartes */
button.bs-co-type { border-radius: 14px !important; border: 1px solid var(--line, #E3E7F0) !important; font-weight: 400 !important; align-content: start; }
button.bs-co-type:hover, button.bs-co-type:focus-visible { border-color: rgba(91,108,240,.55) !important; }
.bs-co-type b { font-weight: 700; font-size: 14.5px; }
/* fin du mandat (16/10/2026, soir) : reprise de la gestion par le propriétaire, à la fin du mandat ou forcée */
.bs-mandat-fin { margin: 12px 0 0; }
form.bs-mandat-retrait, div.bs-mandat-retrait { margin-top: 14px; display: grid; gap: 10px; }
form.bs-mandat-retrait h4 { margin: 0; font: 700 15px/1.3 var(--font-display, inherit); color: var(--ink, #1E2640); }
form.bs-mandat-retrait .es-alerte, div.bs-mandat-retrait p { margin: 0; }
.bs-mandat-retrait fieldset.es-choix { border: 0 !important; padding: 0 !important; margin: 0; display: grid; gap: 6px; }
div.bs-mandat-retrait { padding: 14px 16px; border-radius: 14px; }
.bs-mandat-retrait .es-actions { margin: 0; }
/* enquête (16/10/2026, soir) : attestation de parcours locatif, puis détail des témoignages à la demande */
.es-enquete-att { display: grid; gap: 12px; }
.es-enquete-att > .es-actions { margin: 0; }
.es-enquete-att .es-attestation { box-shadow: none; padding: 18px 20px; }
.es-enq-details { display: grid; gap: 14px; padding-top: 6px; border-top: 1px dashed var(--line, #E3E7F0); }
.es-enq-details > .es-mention { margin: 0; }
.es-enq-tem { border: 1px solid var(--line, #E3E7F0); border-radius: 16px; background: var(--canvas, #F7F8FC); overflow: hidden; }
.es-enq-tem > header { display: grid; gap: 2px; padding: 12px 16px; background: #fff; border-bottom: 1px solid var(--line, #E3E7F0); box-shadow: inset 4px 0 0 var(--accent, #5B6CF0); }
.es-enq-tem > header small { font: 600 10.5px/1.3 var(--mono, monospace); letter-spacing: .08em; text-transform: uppercase; color: var(--accent-2, #4453D6); }
.es-enq-tem > header b { font: 700 15px/1.3 var(--font-display, inherit); color: var(--ink, #1E2640); }
.es-enq-tem > header span { font-size: 13px; color: var(--ink-3, #6E7792); }
.es-enq-tem > .ap { padding: 12px 14px 14px; display: grid; gap: 10px; }
@media print { .es-enq-details, [data-enq-details] { display: none !important; } }
/* formulaire d'un courrier (php/php/Courriers.php, 16/10/2026 soir) : destinataire, blocs titrés, lignes de sommes dues */
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
#bsZone .bs-co-form { display: grid; gap: 14px; width: auto !important; max-width: 880px !important; }
.bs-co-form > h3 { margin: 0; }
.bs-co-dest { margin: 0; padding: 10px 14px; border-radius: 12px; background: var(--canvas, #F5F7FB); border: 1px solid var(--line, #E3E7F0); font-size: 13.5px; color: var(--ink-2, #3A4252); }
.bs-co-dest span { display: block; font: 600 10.5px/1.4 var(--mono, monospace); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3, #6E7792); }
#bsZone fieldset.bs-co-bloc { margin: 0 !important; padding: 14px 16px 16px !important; border: 1px solid var(--line, #E3E7F0) !important; border-radius: 14px !important; background: #fff !important; display: grid; gap: 10px; min-width: 0; box-shadow: none !important; }
#bsZone fieldset.bs-co-bloc > legend { float: none; width: auto; margin: 0 0 2px -6px; padding: 0 6px !important; font: 600 11px/1.2 var(--mono, monospace) !important; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-2, #4453D6) !important; background: #fff; }
fieldset.bs-co-bloc .es-aide-texte, fieldset.bs-co-bloc .es-mention { margin: 0; }
.bs-co-lignes { width: 100%; border-collapse: collapse; font-size: 13.5px; table-layout: fixed; }
.bs-co-lignes col.c1 { width: 34px; } .bs-co-lignes col.c3 { width: 130px; } .bs-co-lignes col.c4 { width: 130px; }
.bs-co-lignes th { text-align: left; font: 600 10.5px/1.3 var(--mono, monospace); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3, #6E7792); padding: 0 6px 6px; }
.bs-co-lignes td { padding: 4px 6px; border-top: 1px solid var(--canvas-2, #EEF2F9); vertical-align: middle; }
.bs-co-lignes td:first-child { text-align: center; padding-left: 0; padding-right: 0; }
.bs-co-lignes input:not([type=checkbox]) { width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box; min-height: 34px; border-radius: 9px; border: 1px solid var(--line-strong, #CDD3E1); padding: 0 9px; font: inherit; }
.bs-co-lignes td:nth-child(4) input { text-align: right; font-variant-numeric: tabular-nums; }
.bs-co-lignes tr.bs-co-libre input:not([type=checkbox]) { background: var(--canvas, #F8F9FC); }
.bs-co-total { margin: 0; text-align: right; font-size: 13.5px; color: var(--ink-2, #3A4252); }
@media (max-width: 640px) { .bs-co-lignes col.c3 { width: 0; } .bs-co-lignes td:nth-child(3), .bs-co-lignes th:nth-child(3) { display: none; } .bs-co-lignes col.c4 { width: 96px; } }
.bs-ch-decompte > div > .es-statut { justify-self: start; }
.bs-ch-sans + .es-bloc, .bs-ch-sans + section { margin-top: 18px; }
.bs-ea-themes { max-width: 420px; margin: 0 0 14px; }   /* thèmes de l'échéancier : un seul champ (17/10/2026) */
.bs-ea { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 6px 14px; align-items: start; padding: 11px 0; border-top: 1px solid var(--line, #E3E7F0); }
.bs-ea:first-of-type { border-top: 0; }
.bs-ea-date { font: 600 13px/1.3 "DM Mono", Consolas, monospace; color: var(--ink, #1B2340); }
.bs-ea small { display: block; color: var(--ink-3, #6E7792); font-size: 12px; }
.bs-ea p { margin: 3px 0 0; font-size: 13px; color: var(--ink-2, #3A4252); }
.bs-ea-groupe.retard h3 { color: #B4233C; }
.bs-ea-groupe.proche h3 { color: #8A5A00; }
.bs-pr-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.bs-pr { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; }
.bs-pr span { color: var(--ink-2, #3A4252); font-size: 13px; }
.bs-pr small { color: var(--ink-3, #6E7792); font-size: 12.5px; }
.bs-pr.inactif { opacity: .65; }
.bs-pr .es-ligne-boutons { margin-top: 6px; }
@media screen and (max-width: 560px) { .bs-ea { grid-template-columns: minmax(0, 1fr); } .bs-ea .es-btn { justify-self: start; } }
.es-lien { background: none; border: 0; padding: 0; color: var(--accent-2, #4453D6); text-decoration: underline; cursor: pointer; font: inherit; }
@media screen and (max-width: 560px) { .bs-ch-total { flex-direction: column; gap: 4px; } .bs-ch-decompte .es-ligne-boutons { width: 100%; } }
.bs-pv-form [hidden], .bs-iv-nouvelle [hidden] { display: none !important; }
@container (max-width: 560px) { .bs-iv-fiche { grid-template-columns: minmax(0, 1fr); } .bs-ech-date { flex-basis: 80px; } }
@media screen and (max-width: 560px) { .bs-iv-fiche { grid-template-columns: minmax(0, 1fr); } .bs-ech > summary { flex-wrap: wrap; } }
.bs-doc-ref > div { min-width: 0; flex: 1 1 auto; }
.bs-doc-pieces { list-style: none; margin: 12px 0 0; padding: 0; border-top: 1px solid var(--line, #E3E7F0); }
.bs-doc-pieces li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 14px; padding: 8px 0; border-bottom: 1px solid var(--line, #E3E7F0); font-size: 13px; color: var(--ink-2, #3A4252); }
.bs-doc-pieces li .bs-ref-piece { margin-top: 0; }
/* listes longues du portefeuille : filtre et pages (php/Espace.php pl_*, js/espace.js listePl) */
.bs-pl-filtre { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px 14px; margin: 0 0 12px; }
.bs-pl-filtre .es-champ { flex: 1 1 260px; max-width: 520px; margin: 0; }
.bs-pl-total { color: var(--ink-3, #7A839C); font-size: 12.5px; padding-bottom: 10px; }
.bs-pl-pages { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; justify-content: center; margin: 12px 0 4px; font-size: 13px; color: var(--ink-3, #7A839C); }
.bs-pl-corps[aria-busy="true"] { opacity: .55; transition: opacity .15s; }
/* listes historiques : nombre total quand la liste est tronquée (php/Requetes.php rq_bilan) */
.es-bilan-liste { margin: 10px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--ink-2, #4A5470); }
.es-bilan-liste b { color: var(--ink, #1B2340); }
/* quittance annulée sur place (js/espace.js data-ligne-seule) */
tr.es-ligne-annulee td { color: var(--ink-3, #7A839C); text-decoration: line-through; }
tr.es-ligne-annulee td:last-child { text-decoration: none; }
/* fiche du collaborateur : redéfinition du mot de passe (php/Menu.php) */
#ReinitCBloc[hidden] { display: none !important; }
.bs-reinit-collab { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0; font-size: 12.5px; text-align: left; cursor: pointer; }
.bs-acces-collab { text-align: left; }

/* ------------------------------------------------------------- cartes de liste sur téléphone (décision P30 du 14/10/2026)
   « Mes biens » et les autres listes à boutons : l'adresse (ou le nom) prend toute la largeur, la case de sélection reste à gauche
   sans marge superflue, les boutons passent dessous, alignés à gauche ; avant, quatre boutons à droite réduisaient l'adresse à 76 px */
@media screen and (max-width: 670px) {
	.es-ligne { flex-wrap: wrap !important; align-items: flex-start !important; gap: 8px 10px !important; padding: 12px !important; }
	.es-ligne > .es-ligne-coche { margin: 2px 0 0 !important; align-self: flex-start !important; }
	.es-ligne > .es-ligne-txt { flex: 1 1 calc(100% - 40px) !important; min-width: 0; }
	.es-ligne > .es-ligne-boutons { flex: 1 1 100% !important; justify-content: flex-start !important; gap: 6px !important; }
	.es-ligne > .es-ligne-boutons .es-btn { padding: 7px 11px; font-size: 13px; }
	.es-ligne > .es-ligne-note { margin-left: 0 !important; padding-left: 0 !important; flex: 1 1 100%; }
}
/* même présentation dans une colonne étroite, quand une fiche est ouverte à côté de la liste (15/10/2026 : l'adresse d'un bien
   s'écrasait sur 90 px à gauche de « Imprimer » et « Voir et modifier ») */
@container (max-width: 720px) {
	.es-ligne { flex-wrap: wrap !important; align-items: flex-start !important; gap: 8px 10px !important; }
	.es-ligne > .es-ligne-coche { margin: 2px 0 0 !important; align-self: flex-start !important; }
	.es-ligne > .es-ligne-txt { flex: 1 1 calc(100% - 40px) !important; min-width: 0; }
	.es-ligne > .es-ligne-boutons { flex: 1 1 100% !important; justify-content: flex-start !important; gap: 6px !important; }
	.es-ligne > .es-ligne-boutons .es-btn { padding: 7px 11px; font-size: 13px; }
	.es-ligne > .es-ligne-note { margin-left: 0 !important; padding-left: 0 !important; flex: 1 1 100%; }
}
/* tableaux de gestion au téléphone : contenu jamais rogné, indices sur deux lignes au besoin */
@media screen and (max-width: 560px) {
	.bs-ch-table .bs-gl-tableau, .bs-ch-table .bs-gl-tableau td { overflow: visible !important; }
	.bs-gl-tableau td.bs-gl-ind span { white-space: normal; }
}
/* ===================================================================== tableau de bord de l'agence (php/php/TableauBord.php, 16/10/2026)
   Lecture en trois temps : tuiles du portefeuille, puis « à faire » et alertes par thème, puis argent et incidents. L'état se lit à la
   pastille (retard, bientôt, à surveiller) autant qu'au chiffre ; chaque élément mène à l'écran où agir. */
@media (min-width: 1100px) { #bsZone .es-panneau:has(> section.tb) { width: min(980px, calc((100vw - var(--es-sidebar) - 60px) / var(--es-zoom))); max-width: min(980px, calc((100vw - var(--es-sidebar) - 60px) / var(--es-zoom))); } }
.tb { --tb-retard: #B4233C; --tb-retard-fond: #FBE5E9; --tb-proche: #8A5A00; --tb-proche-fond: #FFF2DC; --tb-info: #4A5470; --tb-info-fond: #EEF0F6; --tb-ok: #1F7A54;
      display: grid; gap: 16px; margin: 0 0 22px; transition: opacity .25s; }
.tb.tb-calcul { opacity: .72; }
.tb-tuiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
button.tb-tuile { display: grid; gap: 4px; align-content: start; text-align: left; padding: 13px 14px 12px !important; border: 1px solid var(--line, #E3E7F0) !important; border-radius: 14px !important;
                  background: #fff; box-shadow: var(--shadow); font-weight: 400 !important; color: var(--ink, #1E2640); cursor: pointer; min-width: 0; position: relative; }
button.tb-tuile:hover, button.tb-tuile:focus-visible { border-color: rgba(91,108,240,.55) !important; outline: none; }
.tb-tuile .tb-lib { font: 600 11px/1.2 var(--mono, monospace); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3, #6E7792); }
.tb-tuile b { font: 700 24px/1.1 var(--font-display, inherit); font-variant-numeric: tabular-nums; letter-spacing: -.01em; overflow-wrap: anywhere; }
.tb-tuile small { color: var(--ink-3, #6E7792); font-size: 12.5px; line-height: 1.35; }
.tb-tuile.attention small { color: var(--tb-proche); font-weight: 600; }
.tb-tuile.critique b, .tb-tuile.critique small { color: var(--tb-retard); }
.tb-tuile.critique small { font-weight: 600; }
.tb-tuile.attention::after, .tb-tuile.critique::after { content: ""; position: absolute; top: 12px; right: 12px; width: 8px; height: 8px; border-radius: 50%; background: var(--tb-proche); }
.tb-tuile.critique::after { background: var(--tb-retard); }
.tb-jauge { display: block; height: 6px; border-radius: 6px; background: var(--canvas-2, #EEF2F9); overflow: hidden; margin: 2px 0 1px; }
.tb-jauge i { display: block; height: 100%; border-radius: 6px; background: var(--tb-ok); }
/* deux rangées de deux cartes sur les mêmes colonnes ; les deux cartes d'une rangée commencent et finissent à la même hauteur (16/10/2026) */
.tb-grille { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; align-items: stretch; }
@media (max-width: 900px) { .tb-grille { grid-template-columns: minmax(0, 1fr); } }
.tb-carte { background: #fff; border: 1px solid var(--line, #E3E7F0); border-radius: 16px; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.tb-carte > .tb-pied { margin-top: auto; }
.tb-carte > header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.tb-carte h3 { margin: 0; font: 700 16px/1.25 var(--font-display, inherit); color: var(--ink, #1E2640); }
.tb-carte header small, .tb-pied { color: var(--ink-3, #6E7792); font-size: 12.5px; }
.tb-pied { margin: 0; }
.tb-vide { margin: 0; color: var(--ink-3, #6E7792); }
.tb-liste { list-style: none; margin: 0; padding: 0; display: grid; }
.tb-liste li { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "theme bouton" "titre bouton" "detail bouton"; column-gap: 12px; align-items: center;
               padding: 9px 0 9px 12px; border-top: 1px solid var(--canvas-2, #EEF2F9); border-left: 3px solid var(--tb-info-fond); }
.tb-liste li:first-child { border-top: 0; }
.tb-liste li.retard { border-left-color: var(--tb-retard); }
.tb-liste li.proche { border-left-color: #E2A53A; }
.tb-liste .tb-theme { grid-area: theme; font: 600 10.5px/1.3 var(--mono, monospace); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3, #6E7792); }
.tb-liste b { grid-area: titre; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.tb-liste small { grid-area: detail; color: var(--ink-3, #6E7792); font-size: 12.5px; line-height: 1.35; overflow-wrap: anywhere; }
.tb-liste button { grid-area: bouton; }
.tb-themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); grid-auto-rows: minmax(92px, 1fr); gap: 10px; flex: 1 1 auto; }
button.tb-theme-carte { display: flex; flex-direction: column; justify-content: space-between; gap: 6px; text-align: left; padding: 10px 12px !important; border: 1px solid var(--line, #E3E7F0) !important; border-radius: 12px !important;
                        background: var(--canvas, #F5F7FB); font-weight: 400 !important; color: var(--ink, #1E2640); cursor: pointer; min-width: 0; }
button.tb-theme-carte:hover, button.tb-theme-carte:focus-visible { border-color: rgba(91,108,240,.55) !important; outline: none; background: #fff; }
.tb-theme-carte > span { font-size: 12.5px; font-weight: 600; color: var(--ink-2, #3A4252); }
.tb-theme-carte > b { font: 700 26px/1.1 var(--font-display, inherit); font-variant-numeric: tabular-nums; }
.tb-theme-carte.critique > b { color: var(--tb-retard); }
.tb-theme-carte small { display: flex; flex-wrap: wrap; gap: 4px; }
.tb-n { display: inline-block; font-style: normal; font-size: 11.5px; font-weight: 600; line-height: 1.6; padding: 0 7px; border-radius: 999px; background: var(--tb-info-fond); color: var(--tb-info);
        font-variant-numeric: tabular-nums; white-space: nowrap; }
.tb-n.retard { background: var(--tb-retard-fond); color: var(--tb-retard); }
.tb-n.proche { background: var(--tb-proche-fond); color: var(--tb-proche); }
/* encaissements : barres en HTML qui occupent toute la hauteur disponible de la carte */
.tb-graphe { margin: 0; flex: 1 1 auto; display: flex; flex-direction: column; min-height: 190px; }
.tb-barres { flex: 1 1 auto; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 6px; padding-top: 22px; border-bottom: 1px solid var(--line, #E3E7F0);
             background: linear-gradient(var(--canvas-2, #EEF2F9) 1px, transparent 1px) 0 22px / 100% calc(50% - 11px) repeat-y; }
.tb-col { position: relative; display: flex; align-items: flex-end; justify-content: center; min-height: 0; }
.tb-col i { display: block; width: 64%; max-width: 46px; min-height: 0; border-radius: 4px 4px 0 0; background: #C9CEF8; }
.tb-col.courant i { background: var(--accent, #5B6CF0); }
.tb-col:hover i { background: var(--accent-2, #4453D6); }
.tb-valeur { position: absolute; left: 50%; transform: translateX(-50%); white-space: nowrap; font: 700 11.5px/1 var(--mono, monospace); font-style: normal; color: var(--ink, #1E2640); }
.tb-axes { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 6px; padding-top: 6px; }
.tb-axes small { text-align: center; color: var(--ink-3, #6E7792); font: 500 10.5px/1 var(--mono, monospace); overflow: hidden; text-overflow: clip; }
.tb-axes small.courant { color: var(--accent-2, #4453D6); font-weight: 700; }
.tb-graphe-vide { flex: 1 1 auto; display: flex; align-items: center; }
/* demandes et incidents : deux colonnes titrées */
.tb-etat-groupes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 22px; flex: 1 1 auto; }
.tb-etat-groupes h4 { margin: 0 0 2px; font: 600 10.5px/1.3 var(--mono, monospace); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3, #6E7792); }
@media (max-width: 1100px) and (min-width: 901px), (max-width: 480px) { .tb-etat-groupes { grid-template-columns: minmax(0, 1fr); } }
.tb-etat { list-style: none; margin: 0; padding: 0; display: grid; }
.tb-etat li + li { border-top: 1px solid var(--canvas-2, #EEF2F9); }
button.tb-ligne { all: unset; font-weight: 500 !important; border: 0 !important; border-radius: 6px !important; box-sizing: border-box; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 2px; cursor: pointer; font-size: 13.5px; color: var(--ink-2, #3A4252); }
button.tb-ligne:hover span, button.tb-ligne:focus-visible span { color: var(--accent-2, #4453D6); }
button.tb-ligne:focus-visible { outline: 2px solid var(--accent, #5B6CF0); outline-offset: 2px; border-radius: 6px; }
@media (max-width: 560px) { .tb-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tb-tuile b { font-size: 20px; } .tb-liste li { grid-template-areas: "theme theme" "titre titre" "detail bouton"; } }
@media (prefers-reduced-motion: reduce) { .tb { transition: none; } }
/* ===================================================================== bandeau « Clause BailSecurity » déplié (php/Menu.php, 16/10/2026)
   Le texte de la simulation de signature de la page d'accueil, sur deux feuillets : dans le bail, ou sur une quittance contresignée. */
#panel .cl-panneau { max-width: 1060px; margin: 0 auto; padding: 18px clamp(14px, 3vw, 28px) 22px; display: grid; gap: 14px; text-align: left; }
#panel .cl-tete { display: grid; gap: 4px; max-width: 70ch; }
#panel .cl-sur { font: 500 11px/1.2 var(--mono, monospace); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-2, #4453D6); }
#panel .cl-tete h3 { margin: 0; font: 700 clamp(18px, 2vw, 22px)/1.2 var(--font-display, inherit); letter-spacing: -.01em; color: var(--ink, #1E2640); }
#panel .cl-tete p { margin: 0; color: var(--ink-2, #4A5470); font-size: 14px; line-height: 1.5; }
#panel .cl-feuillets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 760px) { #panel .cl-feuillets { grid-template-columns: minmax(0, 1fr); } }
#panel .cl-feuillet { position: relative; display: grid; grid-template-rows: auto auto 1fr auto; gap: 8px; background: #fff; border-radius: 14px; padding: 20px 22px 16px; box-shadow: var(--shadow); }
#panel .cl-feuillet::before { content: ""; position: absolute; inset: 7px; border: 1px dashed var(--line, #E3E7F0); border-radius: 10px; pointer-events: none; }
#panel .cl-lieu { font: 500 11px/1.2 var(--mono, monospace); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3, #7A839C); }
#panel .cl-feuillet h4 { margin: 0; font: 700 15.5px/1.35 var(--font-display, inherit); color: var(--ink, #1E2640); }
#panel .cl-feuillet p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ink, #1E2640); }
#panel .cl-feuillet footer { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding-top: 10px; margin-top: 4px; border-top: 1px solid var(--line, #E3E7F0); }
#panel .cl-paraphe { font-size: 12.5px; color: var(--ink-3, #7A839C); font-style: italic; }
#panel .cl-feuillet button.fait { color: var(--accent-2, #4453D6) !important; border-color: rgba(91,108,240,.55) !important; }

/* =====================================================================
   Grands écrans (16/10/2026) : jusqu'à 1 920 px de large, le contenu occupe la place disponible au lieu de laisser du vide
   à droite (avant : 1 120 px CSS au plus pour l'accueil de l'agence, 720 px pour les outils, soit 1 344 et 864 px à l'écran).
   --es-large : écrans « de bureau » (accueil, témoignages, quittances, états des lieux, outils de gestion, coffre-fort,
   mandats) ; toute la largeur disponible, 1 400 px CSS au plus. Les formulaires de ces écrans gardent une largeur de lecture.
   Une seule colonne seulement : en navigation à plusieurs colonnes, chaque colonne garde sa largeur (js/colonnes.js).
   ===================================================================== */
:root { --es-large: min(1400px, calc((100vw - var(--es-sidebar) - 60px) / var(--es-zoom))); }
@media (min-width: 1100px) {
	body.es-genre-agence #bsZone:not(.bs-rail-multi) :is(#Accueil, #Témoignages) .es-panneau,
	#bsZone:not(.bs-rail-multi) :is(#Quittances, #EtatsDesLieux, #Coffre, #Interventions, #Charges, #Depots, #EcheancesBail, #Loyers, #Revision, #Courriers, #Prestataires, #Fiscal, #Mandats) > .es-panneau,
	#bsZone:not(.bs-rail-multi) .es-panneau:has(> section.tb) { width: var(--es-large) !important; max-width: var(--es-large) !important; }
	/* formulaires de saisie dans ces écrans : largeur de lecture, alignés à gauche */
	#bsZone:not(.bs-rail-multi) :is(#Quittances, #EtatsDesLieux, #Coffre, #Interventions, #Charges, #Depots, #EcheancesBail, #Loyers, #Revision, #Courriers, #Prestataires, #Fiscal, #Mandats) > .es-panneau :is(form.es-form, .es-form-carte) { max-width: 860px; }
	#bsZone:not(.bs-rail-multi) .es-panneau :is(form.bs-cf-recherche, form.bs-pl-filtre) { max-width: 760px; }
}

/* menu (16/10/2026, nuit) : lignes clés en bleu et un peu plus grasses (vérifier un document, vérifier un candidat, avis sur les bailleurs) */
#sidebar a.es-lien-cle { color: var(--accent-2, #4453D6) !important; font-weight: 700 !important; }
#sidebar a.es-lien-cle .es-ico { background: var(--accent-soft, #EEF0FE); }
#sidebar a.es-lien-cle .es-ico svg { stroke: var(--accent-2, #4453D6); }

/* messages envoyés : ligne dépliée, détail complet et message tel que reçu (16/10/2026, nuit) */
.bs-envois-table tr[data-deplier] { cursor: pointer; }
.bs-envoi-detail { display: grid; gap: 10px; padding: 6px 2px 10px; }
.bs-envoi-detail dl { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 4px 12px; margin: 0; font-size: 13.5px; }
.bs-envoi-detail dt { color: var(--ink-3, #6E7792); } .bs-envoi-detail dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.bs-envoi-cadre { width: 100%; height: 560px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; }
@media (max-width: 640px) { .bs-envoi-detail dl { grid-template-columns: 1fr; } .bs-envoi-cadre { height: 70vh; } }

/* signature électronique des quittances (17/10/2026) : demande au locataire, clause, état dans les listes, accord du bailleur */
.bs-sig { border-left: 4px solid var(--accent-2, #4453D6); }
.bs-sig .es-coche { align-items: flex-start; line-height: 1.5; }
.bs-sig-clause { margin: 12px 0; padding: 12px 14px; border-radius: 12px; background: var(--accent-soft, #EEF0FE); }
.bs-sig-clause p { margin: 6px 0; font-style: italic; } .bs-sig-clause small { color: var(--ink-3, #6E7792); }
.bs-sig-etat { display: block; margin-top: 3px; font-size: 12px; color: var(--ink-3, #6E7792); }
.bs-sig-etat.ok { color: #1E7A4C; font-weight: 700; }
.bs-sig-docs { margin: 0; padding-left: 18px; } .bs-sig-hash { font-size: 11.5px; overflow-wrap: anywhere; }
.bs-qt-sig { display: grid; gap: 8px; margin: 12px 0; padding: 12px 14px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; }
.bs-qt-sig legend { padding: 0 6px; font-weight: 700; } .bs-qt-sig q { font-style: italic; } .bs-qt-sig small { color: var(--ink-3, #6E7792); }
.bs-qt-clause { display: grid; gap: 8px; margin: 12px 0 18px; padding: 14px 16px; border-radius: 12px; background: var(--accent-soft, #EEF0FE); }
.bs-qt-clause blockquote { margin: 0; font-style: italic; }

/* courriers : recherche et un seul champ « Courrier » (liste groupée par catégorie, 17/10/2026) */
.bs-co-filtre { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 12px; max-width: 980px; margin: 0 0 12px; }
@media (max-width: 760px) { .bs-co-filtre { grid-template-columns: 1fr; } }
.bs-co-filtre select { width: 100%; }
.bs-co-avert { margin: 0 0 12px; }
/* signature électronique des documents finalisés (17/10/2026, php/php/Signature_documents.php) */
.bs-sig-mention { flex-basis: 100%; display: block; margin-top: 4px; font-size: 12px; color: var(--muted, #6B7280); }
.bs-docp-liens { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 0; }
.bs-docp-liens .es-statut { white-space: normal; }

/* signature manuscrite (17/10/2026) : nom du signataire en police manuscrite (Dancing Script Bold, SIL OFL 1.1), bleu, en gras, deux
   points de plus que le texte ; dessous, en petit, noir, italique, le numéro d'authentification (php/php/Signature_documents.php) */
@font-face { font-family: "BS Manuscrite"; src: url("../assets/polices/DancingScript-Bold.ttf") format("truetype"); font-weight: 700; font-style: normal; font-display: swap; }
.bs-sig-manuscrite-bloc { display: inline-flex; flex-direction: column; vertical-align: middle; margin: 2px 10px 2px 0; line-height: 1.1; }
.bs-sig-manuscrite { font-family: "BS Manuscrite", "Segoe Script", cursive; font-weight: 700; font-size: calc(1em + 2px); color: #1F3FBF; }
.bs-sig-numero { font-size: 10.5px; font-style: italic; color: #000; letter-spacing: .01em; }

/* baux types (php/php/BauxTypes.php, 17/10/2026) : questionnaire en sections, relecture article par article */
.bs-bt-choix { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; align-items: start; }
.bs-bt-choix .es-ligne-boutons { grid-column: 1 / -1; }
.bs-bt-section { border: 1px solid var(--line, #E3E7F0); border-radius: 14px; padding: 12px 16px 16px; margin: 0 0 14px; background: #fff; }
.bs-bt-section legend { padding: 0 8px; font-weight: 700; color: var(--accent-2, #4453D6); }
.bs-bt-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px 14px; }
.bs-bt-grille .bs-bt-large { grid-column: 1 / -1; }
.bs-bt-grille [hidden] { display: none !important; }
/* intertitre d'un bloc d'identité (bailleur 2, locataire 3…) : désignation complète des parties, 18/10/2026 */
.bs-bt-grille .bs-bt-sous { margin: 10px 0 0; padding-top: 10px; border-top: 1px dashed var(--line, #E3E7F0); font-weight: 700; font-size: 14px; color: var(--ink, #1E2640); }
.bs-bt-grille .bs-bt-sous:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.bs-bt-relecture .bs-bt-article { display: block; margin: 0 0 12px; }
.bs-bt-relecture .bs-bt-article span { font-weight: 700; color: var(--accent-2, #4453D6); }
.bs-bt-relecture textarea { width: 100%; box-sizing: border-box; font: 400 13.5px/1.55 var(--font, system-ui); }
.bs-bt-validation { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line, #E3E7F0); }
.bs-bt-points { margin: 0 0 12px; padding-left: 28px; }
.bs-bt-etat { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 10px 0 0; }
.bs-bt-etat dt { font-weight: 600; } .bs-bt-etat dd { margin: 0; }

/* annulation d'un document certifié : motif obligatoire et public (php/php/Annulations.php, 17/10/2026) */
.bs-an-form { display: flex; flex-direction: column; gap: 12px; max-width: 560px; }
.bs-an-resume { margin: 0; line-height: 1.5; }
.bs-an-public { margin: 0; }
.bs-an-form .es-actions { justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.bs-an-form .bs-an-valider { background: #B4412F; border-color: #B4412F; }
.bs-an-form .bs-an-valider:hover { background: #9A3526; }
.bs-an-motif { color: #A23B30; font-weight: 600; }
/* ---------------------------------------------------------------- « Mes courriers » : trois onglets de même présentation, sur une
   ligne (19/10/2026) : écrire, consulter, messages envoyés ; l'un sous l'autre dans une colonne étroite. Pastille : brouillons à finaliser */
.bs-co-tete { container-type: inline-size; margin: 2px 0 20px; }
.bs-co-onglets { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; padding-top: 6px; }   /* deux ou trois cartes, de même largeur */
/* quatre ou cinq cartes (20/10/2026) : sur une ligne si la place le permet, sinon deux par deux (quatre) ou trois puis deux (cinq) */
.bs-co-onglets:has(> :nth-child(4)) { grid-auto-flow: row; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bs-co-onglets:has(> :nth-child(5)) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
/* cinq cartes : un peu plus serrées, pour que titres et sous-titres tiennent sans couper un mot seul à la ligne */
.bs-co-onglets:has(> :nth-child(5)) > :is(button, a).bs-co-onglet { padding: 12px 13px !important; gap: 10px; }
.bs-co-onglets:has(> :nth-child(5)) .bs-co-onglet-ico { flex-basis: 34px; height: 34px; border-radius: 9px; }
@container (max-width: 1100px) { .bs-co-onglets:has(> :nth-child(5)) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (max-width: 880px) { .bs-co-onglets:has(> :nth-child(4)):not(:has(> :nth-child(5))) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (max-width: 680px) { .bs-co-onglets, .bs-co-onglets:has(> :nth-child(4)) { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: minmax(0, 1fr); gap: 14px; } }
:is(button, a).bs-co-onglet { position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-width: 0; box-sizing: border-box; text-align: left; padding: 14px 16px !important; border-radius: 14px !important; border: 1px solid var(--line, #E3E6EE) !important;
	background: #fff !important; color: var(--ink, #1E2640) !important; font-weight: 400 !important; min-height: 0 !important; height: auto !important; box-shadow: 0 1px 2px rgba(30,38,64,.05); transition: border-color .15s, background-color .15s; }
:is(button, a).bs-co-onglet:hover { border-color: var(--accent, #5B6CF0) !important; background: #FAFBFF !important; }
:is(button, a).bs-co-onglet:focus-visible { outline: 2px solid var(--accent, #5B6CF0); outline-offset: 2px; }
:is(button, a).bs-co-onglet.actif { border-color: var(--accent, #5B6CF0) !important; background: var(--accent-soft, #EEF0FE) !important; box-shadow: inset 0 0 0 1px var(--accent, #5B6CF0); cursor: default; }
.bs-co-onglet-ico { flex: 0 0 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--canvas-2, #EEF1F7); color: var(--accent-2, #3B4A9E); }
.bs-co-onglet-ico svg { display: block; }
:is(button, a).bs-co-onglet.actif .bs-co-onglet-ico { background: #fff; color: var(--accent, #5B6CF0); }
.bs-co-onglet-texte { min-width: 0; }
:is(button, a).bs-co-onglet b { display: block; font: 650 15px/1.3 var(--font, inherit); color: var(--ink, #1E2640); }
:is(button, a).bs-co-onglet small { display: block; margin-top: 3px; font-size: 12.5px; line-height: 1.35; color: var(--ink-3, #6B7280); font-weight: 400; }
:is(button, a).bs-co-onglet em { position: absolute; top: -10px; right: 14px; font-style: normal; font-size: 11.5px; font-weight: 600; line-height: 1.5; padding: 1px 9px; border-radius: 999px; background: #FFF4E5; color: #8A5A00; border: 1px solid #F1D7A6; }
/* contenu de l'onglet : blocs espacés régulièrement, sans marges propres */
.bs-co-vue { display: grid; gap: 18px; min-width: 0; container-type: inline-size; }
@container (max-width: 620px) { .bs-co-vue .bs-co-filtre { grid-template-columns: 1fr; } }
.bs-co-vue > * { margin-top: 0 !important; margin-bottom: 0 !important; min-width: 0; }

.bs-co-brouillons .bs-ch-decompte { border-color: #F1D7A6; background: #FFFCF6; }
/* écran « Messages envoyés » : lien vers « Mes courriers » */
.bs-co-messages { margin: 0 2px 14px; font-size: 13px; color: var(--ink-3, #6B7280); }
.bs-co-messages a { font-weight: 600; }
/* onglet « Messages envoyés » de « Mes courriers » : même barre de recherche que l'onglet « Consulter » (sans cadre) */
.bs-co-vue .bs-envois-filtre { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; max-width: 760px; margin: 0 0 14px; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.bs-co-vue .bs-envois-filtre .es-champ { flex: 1 1 260px; margin: 0; }
.bs-co-vue .bs-envois-filtre .es-champ:has(select) { flex: 0 1 200px; }
/* « Nouveau courrier » (19/10/2026) : thème et recherche, puis la liste repliée (« Courrier ») ou dépliée en cartes (thème choisi, ou moins de
   six courriers trouvés) ; blocs espacés par la grille du bloc */
.bs-co-choix { display: grid; gap: 12px; }
.bs-co-choix > * { margin: 0 !important; }
.bs-co-choix [hidden] { display: none !important; }
.bs-co-replie { display: grid; max-width: 980px; }
.bs-co-replie select { width: 100%; }
.bs-co-propositions { display: grid; gap: 10px; max-width: 980px; }
.bs-co-prop-tete { margin: 0; font-size: 13px; font-weight: 600; color: var(--ink-2, #3A4252); }
.bs-co-propositions .bs-co-types, .bs-cf-demandes { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
button.bs-co-type:focus-visible { outline: 2px solid var(--accent, #5B6CF0); outline-offset: 2px; }
.bs-co-propositions .bs-co-type em, .bs-cf-demandes .bs-co-type em { order: 2; margin-top: 2px; }   /* « recommandé » sous la description : les intitulés restent alignés */
/* coffre-fort en trois onglets (20/10/2026) : portée sous les cartes, formulaire de dépôt sans marge propre */
.bs-cf-portee { margin: 0; color: var(--ink-3, #6E7792); font-size: 13px; }
.bs-co-vue > .bs-cf-depot { max-width: 980px; }
/* sélecteur de fichier du dépôt et de la console : même allure que les boutons secondaires */
:is(.bs-cf-depot, body.adm main) input[type=file] { font: inherit; font-size: 14px; color: var(--ink-2, #3A4252); }
:is(.bs-cf-depot, body.adm main) input[type=file]::file-selector-button { margin-right: 12px; padding: 8px 14px; border: 1px solid var(--line-strong, #CDD3E1); border-radius: 10px; background: #fff; color: var(--ink, #1E2640); font: inherit; font-weight: 600; cursor: pointer; }
:is(.bs-cf-depot, body.adm main) input[type=file]::file-selector-button:hover { border-color: var(--accent, #5B6CF0); }
/* « Mes locations » (20/10/2026) : statut du bail en pastille, bailleur / agence / bail en libellés courts ; mes informations */
.es-location .es-ligne-txt > b .es-statut { margin-left: 8px; vertical-align: 2px; font-size: 11.5px; }
.bs-loc-meta { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 8px 0 4px; }
.bs-loc-meta > div, .bs-loc-moi > div { display: grid; gap: 1px; min-width: 0; }
.bs-loc-meta dt, .bs-loc-moi dt { font: 600 10.5px/1.3 var(--mono, monospace); letter-spacing: .07em; text-transform: uppercase; color: var(--ink-3, #6E7792); }
.bs-loc-meta dd { margin: 0; font-size: 13.5px; color: var(--ink, #1E2640); }
.bs-loc-tem { display: block; margin-top: 4px; }
.bs-loc-moi { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 12px; margin: 0; padding: 14px 16px; border: 1px solid var(--line, #E3E7F0); border-radius: 12px; background: #fff; max-width: 980px; }
.bs-loc-moi dd { margin: 0; font-size: 15px; font-weight: 600; color: var(--ink, #1E2640); }
.bs-co-vue > .bs-demande-bail { display: grid; gap: 14px; }
.bs-co-vue > .bs-demande-bail > * { margin: 0; }
.es-location.bs-loc-carte { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 10px !important; }   /* grille : les règles d'écran étroit des .es-ligne (flex-wrap, base de 100 %) ne s'y appliquent pas */
.es-location.bs-loc-carte > .es-ligne-txt { min-width: 0; }
.bs-loc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid var(--canvas-2, #EEF1F7); }
.bs-loc-actions .es-attente { display: inline-flex; align-items: center; max-width: none; text-align: left; }
a.bs-co-onglet { text-decoration: none !important; }   /* onglets de la console : des liens */
