/* Flow Immo — mise en page de l'application. Uniquement des jetons Flow (couleurs, espaces, typo) : le mode nuit suit tout seul. */

/* ---------- Coquille ---------- */
body { background: var(--bg); min-height: 100vh; }
a.fl-btn { text-decoration: none; }
.coquille { display: flex; min-height: 100vh; }
.coquille .fl-sidebar { position: sticky; top: 0; height: 100vh; }
.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.principal > .fl-toolbar { position: sticky; top: 0; z-index: 5; }
.coquille-tel { min-height: 100vh; display: flex; flex-direction: column; }
.coquille-tel > .contenu { flex: 1; min-width: 0; }
.coquille-tel > .fl-tabbar { z-index: 5; }
.tel .fl-toasts { bottom: calc(var(--h-tabbar) + 18px + env(safe-area-inset-bottom)); width: calc(100vw - 24px); }
.ic { display: inline-flex; flex: none; vertical-align: middle; }
.ic svg { width: 100%; height: 100%; display: block; }

/* Barre latérale */
.fl-sidebar .fl-wordmark { font-size: 24px; color: var(--app-nav-fg); }
.fl-sidebar .theme { margin-top: auto; margin-bottom: 10px; justify-content: flex-start; padding: 0; color: var(--app-nav-fg-2); }
.fl-sidebar .theme .ic { width: 18px !important; height: 18px !important; }
.fl-sidebar .theme + .fl-sidebar-pied { margin-top: 0; }
.fl-sidebar .signature { margin-top: 10px; color: var(--app-nav-fg-2); }
.avatar { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--app-nav-actif); color: var(--app-nav-bg); font-weight: var(--w-semibold); text-transform: uppercase; }
.qui { display: flex; flex-direction: column; min-width: 0; }
.qui > span { font-weight: var(--w-semibold); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lien-discret { border: 0; background: none; padding: 0; text-align: left; font-size: var(--t-xs); color: var(--app-nav-fg-2); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1279px) {
  .fl-sidebar .theme { justify-content: center; }
  .fl-sidebar-pied .avatar { display: grid; }
}
.signature { font-size: 11px; color: var(--fg-3); text-align: center; }
.coeur { color: var(--coeur); }

/* Connexion */
.connexion { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: var(--app-nav-bg); }
.connexion form { width: min(380px, 100%); padding: 28px; gap: 16px; box-shadow: var(--ombre-md); }
.connexion .fl-wordmark { font-size: 28px; }
.connexion h1 { font-size: var(--t-3xl); margin-top: 6px; }
.erreur { color: var(--erreur-fg); font-size: var(--t-sm); margin: 0; }

/* ---------- Page ---------- */
.page { padding: 20px 28px 48px; display: flex; flex-direction: column; gap: 22px; max-width: 1480px; width: 100%; }
.tete { display: flex; flex-direction: column; gap: 8px; }
.fil { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: var(--t-sm); color: var(--fg-3); }
.fil a { color: var(--fg-2); text-decoration: none; display: inline-flex; align-items: center; gap: 4px; }
.fil a:hover { color: var(--fg); }
.fil a .ic, .barre-doc a .ic, .entete-tel .retour .ic { transform: rotate(180deg); }
.fil b { color: var(--fg); font-weight: var(--w-semibold); }
.titre { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.titre h1 { font-size: 34px; }
.titre > .fl-muted { font-size: var(--t-sm); color: var(--fg-3); }
.titre .fl-kicker { display: inline-flex; align-items: center; gap: 8px; }
.pastille { display: inline-block; flex: none; width: 12px; height: 12px; border-radius: 2px; vertical-align: middle; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.titre .pastille { width: 14px; height: 14px; }
.fl-kicker.fort { color: var(--fg); font-weight: 700; }
.ligne-titre { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: var(--t-sm); }
.ligne-titre .fl-muted { font-size: var(--t-xs); color: var(--fg-3); }
.plus { color: var(--succes-fg); font-weight: 700; }
.moins { color: var(--erreur-fg); font-weight: 700; }

/* Chiffres clés : une seule valeur « forte » par écran */
.grille-kpi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.kpi { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 14px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-carte); }
.kpi > small { font-size: var(--t-sm); font-weight: var(--w-semibold); color: var(--fg-2); }
.kpi > .fl-chiffre { text-align: right; font-size: var(--t-3xl); font-weight: var(--w-medium); line-height: 1.15; }
.kpi > .fl-chiffre.plus { color: var(--succes-fg); } .kpi > .fl-chiffre.moins { color: var(--erreur-fg); }
.kpi > .sous { text-align: right; font-size: var(--t-xs); color: var(--fg-3); }
.kpi.fort { border-bottom: 2px solid var(--lien); }
.kpi.fort > small, .kpi.fort > .fl-chiffre { color: var(--lien); }
.kpi.petit { padding: 10px 16px; }
.kpi.petit > .fl-chiffre { font-size: var(--t-2xl); }
.kpi.grand > .fl-chiffre { font-size: 36px; }
.kpi .sous.duo { display: flex; justify-content: space-between; gap: 10px; }
.kpi .courbe { margin-top: 6px; }
.grille-courbe { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr); gap: 14px; }
.colonne { display: grid; grid-auto-rows: max-content; gap: 10px; }
.grille-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.bloc-courbe, .detail-imm { padding: 16px 20px; gap: 10px; }
.courbe { display: flex; flex-direction: column; gap: 6px; }
.courbe svg { width: 100%; display: block; }
.courbe-axe { display: flex; justify-content: space-between; font-size: 11px; color: var(--fg-3); }
.courbe-vide { flex: 1; display: block; min-height: 120px; padding: 44px 20px; text-align: center; font-size: var(--t-sm); color: var(--fg-3); border: 1px dashed var(--line-strong); border-radius: var(--r-carte); }

/* Loyers du mois */
.loyers-mois { padding: 10px 16px; gap: 6px; font-size: var(--t-xs); }
.loyers-mois .ligne-titre { justify-content: space-between; }
span.barre { display: block; height: 8px; background: var(--line); border-radius: 4px; overflow: hidden; }
span.barre > span { display: block; height: 100%; background: var(--alerte); }
span.barre > span.ok { background: var(--succes); }

/* Prêts */
.prets { display: flex; flex-direction: column; gap: 10px; }
.prets > .fl-btn { align-self: flex-start; }
.carte-pret { flex-direction: row; align-items: center; gap: 14px; padding: 14px 18px; text-decoration: none; color: var(--fg); }
.carte-pret:hover { border-color: var(--fg-3); opacity: 1; }
.carte-pret .txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.carte-pret .txt .fl-muted { font-size: var(--t-sm); }
.carte-pret .lien { color: var(--lien); font-weight: var(--w-semibold); font-size: var(--t-sm); }
.ic-carre { flex: none; width: 36px; height: 36px; display: grid; place-items: center; border-radius: var(--r-carte); background: var(--app-tint); color: var(--lien); }

/* Enfants : tableau ou cartes */
.enfants { display: flex; flex-direction: column; gap: 10px; }
.table-wrap { padding: 4px 8px; overflow-x: auto; gap: 0; }
.table-haute { max-height: 520px; overflow: auto; }
.table-patrimoine { width: 100%; border-collapse: collapse; font-size: var(--t-md); }
.table-patrimoine th { padding: 10px 12px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-3); border-bottom: 1px solid var(--fg); text-align: right; white-space: nowrap; background: var(--surface); }
.table-haute .table-patrimoine thead th { position: sticky; top: 0; z-index: 1; }
.table-patrimoine th[data-tri] { cursor: pointer; user-select: none; }
.table-patrimoine th.actif, .table-patrimoine th[data-tri]:hover { color: var(--fg); }
.table-patrimoine td { padding: 0 12px; height: 54px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.table-patrimoine .g { text-align: left; }
.table-patrimoine .fort { font-weight: 700; }
.table-patrimoine td.g.fort .fl-badge { margin-left: 8px; }
.table-patrimoine tbody tr[data-lien] { cursor: pointer; }
.table-patrimoine tbody tr[data-lien]:hover, .table-patrimoine tr.courant { background: var(--app-tint); }
.table-patrimoine tr.passe td { color: var(--fg-3); }
.table-patrimoine tbody tr:last-child td { border-bottom: 0; }
.table-patrimoine.mini { font-size: var(--t-sm); }
.table-patrimoine.mini td { height: 36px; }
.table-patrimoine .centre { text-align: center; }
.nom-cell { display: flex; align-items: center; gap: 10px; }
.nom-cell > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.nom-cell b { font-size: 15px; }
.nom-cell small { font-size: var(--t-xs); color: var(--fg-3); }
.grille-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.carte-enfant { gap: 10px; padding: 16px 18px; text-decoration: none; color: var(--fg); }
.carte-enfant:hover { border-color: var(--fg-3); opacity: 1; }
.carte-enfant .haut { display: flex; align-items: flex-start; gap: 8px; }
.carte-enfant .haut > span:first-child { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.carte-enfant .haut b { font-size: var(--t-lg); }
.carte-enfant small { font-size: var(--t-xs); color: var(--fg-3); }
.carte-enfant > .fl-chiffre { text-align: right; font-size: 26px; font-weight: var(--w-medium); }
.carte-enfant .bas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; font-size: var(--t-xs); color: var(--fg-3); border-top: 1px solid var(--line); padding-top: 8px; }
.carte-enfant .bas b { color: var(--fg); font-size: var(--t-sm); }
.carte-enfant .bas .d { text-align: right; }

/* ---------- Téléphone ---------- */
.entete-tel { display: flex; flex-direction: column; gap: 8px; padding: calc(10px + env(safe-area-inset-top)) 18px 14px; background: var(--app-nav-bg); color: var(--app-nav-fg); }
.entete-tel .barre { display: flex; align-items: center; min-height: 44px; height: auto; background: none; border-radius: 0; overflow: visible; }
.entete-tel .fl-wordmark { font-size: 22px; }
.entete-tel .fl-btn-texte { color: inherit; width: var(--hit); min-height: var(--hit); }
.entete-tel .retour { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; color: inherit; text-decoration: none; font-size: 15px; font-weight: var(--w-semibold); }
.entete-tel h1 { font-size: 30px; line-height: 1.1; display: flex; align-items: center; gap: 10px; }
.entete-tel .sous { font-size: var(--t-sm); color: var(--app-nav-fg-2); }
.page-tel { padding: 16px 16px 28px; gap: 14px; }
.page-tel .kpi.petit { padding: 12px 14px; }
.page-tel .kpi.petit > small { font-size: var(--t-xs); }
.page-tel .kpi.petit > .fl-chiffre { font-size: 20px; }
.liste-tel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-carte); overflow: hidden; }
.ligne-tel { display: flex; align-items: center; gap: 10px; min-height: 64px; padding: 10px 14px; border-bottom: 1px solid var(--line); color: var(--fg); text-decoration: none; }
.ligne-tel:last-child { border-bottom: 0; }
.ligne-tel:active { background: var(--app-tint); }
.ligne-tel .txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ligne-tel .txt b { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ligne-tel .txt small { font-size: var(--t-xs); color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ligne-tel .val { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; font-size: var(--t-xs); }
.ligne-tel .val b { font-size: var(--t-md); }
.ligne-tel .val .fl-badge { font-size: 11px; padding: 1px 8px; }
.ligne-tel > .ic { color: var(--fg-3); }
.page-tel .carte-pret { padding: 12px 14px; }
.page-tel .carte-pret .lien { display: none; }

/* ---------- Fiche lot : sections repliables ---------- */
.fiche-lot { display: flex; flex-direction: column; gap: 10px; }
.section-rep { padding: 0; gap: 0; }
.section-rep > .entete { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 60px; padding: 0 18px; border: 0; background: transparent; color: var(--fg); text-align: left; cursor: pointer; border-radius: var(--r-carte); }
.section-rep > .entete:hover { background: var(--surface-2); }
.section-rep > .entete b { font-size: var(--t-lg); white-space: nowrap; }
.section-rep > .entete .resume { flex: 1; min-width: 0; font-size: var(--t-sm); color: var(--fg-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.section-rep > .entete .chevron { color: var(--fg-3); display: inline-flex; transition: transform var(--duree-2) var(--ease); margin-left: auto; }
.section-rep > .entete[aria-expanded="true"] .chevron { transform: rotate(90deg); }
.section-rep > .corps { display: flex; flex-direction: column; gap: 14px; padding: 16px 18px 18px; border-top: 1px solid var(--line); }
.section-rep > .corps > .fl-btn, .section-rep > .corps > .fl-seg { align-self: flex-start; }
.g1, .g3, .g4 { display: grid; gap: 12px; align-items: end; }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.case-gli { min-height: var(--ctrl); }
.fl-ligne .d { display: inline-flex; align-items: center; gap: 8px; }
.g-valeur { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.g-valeur .col { display: flex; flex-direction: column; gap: 10px; }
.g-valeur .ok { display: inline-flex; align-items: center; gap: 8px; color: var(--succes-fg); font-weight: var(--w-semibold); }
.saisie { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.saisie .fl-field { flex: 1; min-width: 130px; }
.saisie .fl-input { min-height: var(--hit); }
.fl-input.grand { font-family: var(--font-display); font-size: 22px; min-height: var(--hit); }
.dpe { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.dpe [role="radiogroup"] { display: flex; gap: 4px; }
.dpe button { width: 36px; height: 36px; border: 0; border-radius: var(--r-btn); color: #fff; font-weight: 700; font-size: 15px; cursor: pointer; opacity: .4; transition: opacity var(--duree-1), transform var(--duree-1); }
.dpe button:hover { opacity: .75; }
.dpe button[aria-checked="true"] { opacity: 1; transform: scale(1.12); box-shadow: 0 0 0 2px var(--surface), 0 0 0 4px var(--fg); }

/* ---------- Réglages ---------- */
.reglages { max-width: 860px; }
.reglages .fl-carte > .fl-btn, .reglages > .fl-btn, .reglages .fl-seg { align-self: flex-start; }

/* ---------- Modales ---------- */
.fl-modale-titre > span { flex: 1; font-family: var(--font-display); font-size: var(--t-xl); font-weight: var(--w-medium); letter-spacing: var(--ls-display); }

/* ---------- Prêt ---------- */
.grille-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.grille-pret { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 14px; }
.svg-crd { width: 100%; height: auto; display: block; }
.supprimer { align-self: flex-start; margin-top: 8px; }
.depot { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 32px 20px; border: 1.5px dashed var(--line-strong); border-radius: var(--r-carte); text-align: center; cursor: pointer; transition: background var(--duree-1), border-color var(--duree-1); }
.depot:hover, .depot.survol { border-color: var(--app-fonce); background: var(--app-tint); }
.depot .rond { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--app-tint); color: var(--lien); }
.lecture { display: flex; flex-direction: column; gap: 10px; padding: 24px 0; }
.lecture .barre { height: 4px; }
.lecture span.barre > span { width: 40%; background: var(--lien); animation: fi-lecture 1.1s var(--ease) infinite alternate; }
@keyframes fi-lecture { from { transform: translateX(-10%); } to { transform: translateX(160%); } }
.apercu { display: flex; flex-direction: column; gap: 12px; }
.ligne-fichier { display: flex; align-items: center; gap: 8px; font-size: var(--t-sm); }
.champs-detectes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.champs-detectes > div { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--r-carte); }
.champs-detectes span { display: inline-flex; align-items: center; gap: 5px; font-size: var(--t-xs); color: var(--fg-2); }
.champs-detectes span .ic { color: var(--succes-fg); }
.avertissement { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: var(--r-carte); background: var(--alerte-bg); color: var(--alerte-fg); font-size: var(--t-sm); }
.avertissement .ic { margin-top: 2px; }
.avertissement.erreur { background: var(--erreur-bg); color: var(--erreur-fg); }

/* ---------- Bilan PDF (document A4, toujours noir sur blanc) ---------- */
.barre-doc { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 24px; background: var(--surface); border-bottom: 1px solid var(--line); }
.doc-a4 { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 24px 12px 48px; overflow-x: auto; }
.doc-a4 .page { width: 210mm; max-width: none; min-height: 297mm; padding: 18mm 18mm 14mm; gap: 7mm; background: #fff; color: #111; box-shadow: var(--ombre-md); font-family: var(--font-ui); font-size: 9pt; line-height: 1.4; }
.doc-a4 .fl-wordmark { color: #111; }
.doc-a4 .fl-wordmark.grand { font-size: 22pt; }
.doc-a4 .entete { display: flex; align-items: flex-start; }
.doc-a4 .kick { font-size: 7.5pt; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #6b6b6b; }
.doc-a4 .kick.droite { text-align: right; }
.doc-a4 .titre-doc { display: flex; flex-direction: column; gap: 2mm; margin-top: 10mm; }
.doc-a4 h1 { font-size: 30pt; font-weight: 300; line-height: 1.05; color: #111; }
.doc-a4 .sous-titre { font-size: 11pt; color: #444; }
.doc-a4 .trio { display: grid; grid-template-columns: repeat(3, 1fr); border: .6pt solid #111; }
.doc-a4 .trio > div { padding: 5mm; }
.doc-a4 .trio > div + div { border-left: .6pt solid #111; }
.doc-a4 .trio > .fort { background: #F1F4FB; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.doc-a4 .trio b { display: block; margin-top: 3mm; text-align: right; font-family: var(--font-display); font-size: 19pt; font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }
.doc-a4 .quatuor { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4mm; }
.doc-a4 .quatuor > div { border-top: .6pt solid #111; padding-top: 2.5mm; }
.doc-a4 .quatuor span, .doc-a4 .duo span { font-size: 8pt; color: #6b6b6b; }
.doc-a4 .quatuor b { display: block; text-align: right; font-size: 12pt; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.doc-a4 .bloc { display: flex; flex-direction: column; gap: 3mm; }
.doc-a4 .garder { break-inside: avoid; gap: 1.5mm; }
.doc-a4 .nom-struct { font-size: 10pt; }
.doc-a4 .repartition { display: flex; height: 4mm; gap: .6mm; }
.doc-a4 .repartition span { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.doc-a4 .pastille { width: 2.6mm; height: 2.6mm; border-radius: .4mm; margin-right: 2mm; }
.doc-a4 table { width: 100%; border-collapse: collapse; }
.doc-a4 th { padding: 2.2mm 2mm; font-size: 7pt; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #6b6b6b; border-bottom: .6pt solid #111; text-align: right; white-space: nowrap; }
.doc-a4 td { padding: 2mm; font-size: 8.5pt; border-bottom: .4pt solid #ddd; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.doc-a4 .g { text-align: left; }
.doc-a4 td.g { white-space: normal; }
.doc-a4 .fort { font-weight: 700; }
.doc-a4 .gris { color: #444; }
.doc-a4 tr.total td { font-weight: 700; border-bottom: 0; }
.doc-a4 .note { font-size: 8pt; color: #6b6b6b; line-height: 1.5; margin: 0; }
.doc-a4 .duo { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; }
.doc-a4 .duo > div { border: .6pt solid #111; padding: 4mm; }
.doc-a4 .duo b { display: block; margin-top: 2mm; font-family: var(--font-display); font-size: 16pt; font-weight: 500; }
.doc-a4 .attestation { margin-top: 8mm; display: flex; flex-direction: column; gap: 3mm; font-size: 9pt; line-height: 1.55; }
.doc-a4 .attestation p { margin: 0; }
.doc-a4 .signature-doc { display: grid; grid-template-columns: 1fr 1fr; gap: 10mm; margin-top: 6mm; font-size: 8pt; color: #6b6b6b; }
.doc-a4 .signature-doc > div { position: relative; height: 22mm; border-bottom: .6pt solid #111; }
.doc-a4 .pied { margin-top: auto; display: flex; justify-content: space-between; gap: 6mm; font-size: 7pt; color: #8a8a8a; border-top: .4pt solid #ddd; padding-top: 3mm; }
@media screen and (max-width: 860px) { .doc-a4 .page { zoom: .8; } .barre-doc { padding: 8px 12px; } }
@media screen and (max-width: 640px) { .doc-a4 .page { zoom: .58; } }
@media screen and (max-width: 440px) { .doc-a4 .page { zoom: .45; } }
@media print {
  @page { size: A4; margin: 0; }
  html, body { background: #fff; }
  .fl-no-print { display: none !important; }
  .doc-a4 { display: block; padding: 0; overflow: visible; }
  .doc-a4 .page { zoom: 1; box-shadow: none; min-height: 296mm; break-after: page; }
  .doc-a4 .page:last-child { break-after: auto; }
}

/* ---------- Adaptations ---------- */
@media (max-width: 1180px) {
  .grille-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
  .grille-courbe, .grille-pret, .g-valeur { grid-template-columns: minmax(0, 1fr); }
  .page { padding: 18px 18px 40px; }
}
@media (max-width: 760px) {
  .page { padding: 16px; }
  .grille-kpi { gap: 10px; }
  .grille-kpi .kpi { padding: 12px 14px; }
  .grille-kpi .kpi > .fl-chiffre { font-size: var(--t-2xl); }
  .grille-form, .g3 { grid-template-columns: minmax(0, 1fr); }
  .grille-form > span:empty { display: none; }
  .champs-detectes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .section-rep > .entete { padding: 0 14px; gap: 10px; }
  .section-rep > .entete .resume { display: none; }
  .section-rep > .corps { padding: 14px; }
  .fl-modale { padding: 18px 16px; }
  .fl-modale-actions .fl-btn { flex: 1; }
  .table-patrimoine td { height: 44px; }
}

/* Champ d'adresse à suggestions (adresse.js) */
.champ-adresse .fl-suggestions { max-height: 280px; overflow-y: auto; }
.champ-adresse .fl-suggestions button > span:last-child { min-width: 0; }
.champ-adresse .fl-suggestions .ic { flex: none; color: var(--fg-3); }
.etat-adresse { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-xs); }
.etat-adresse.ok { color: var(--succes-fg); }
