/* L'espace foncier : un même plateau pour tous les onglets, et ce que règle src/foncier-carte.js (Henri, 13/10/2026 :
   « rends tous les onglets de la recherche foncière identiques avec sidebar à droite »).

   Au bureau (900 px et plus) : les filtres à gauche, la carte au centre sur toute la hauteur, les résultats dans une
   colonne à droite qui défile seule et se règle par son bord gauche (src/fenetres.js pose `data-colonne` sur le
   plateau de chaque onglet, double-clic sur la poignée : largeur d'origine). C'est la disposition de l'onglet
   Propriétaires (src/parc-colonne.css) étendue aux sept onglets. Au téléphone, rien ne change. */
@media (min-width: 900px) {
  .pg .fc-plateau[data-colonne] { grid-template-rows: minmax(0, 1fr); grid-template-columns: minmax(0, 1fr) var(--pg-colonne, clamp(400px, 34vw, 620px)); }
  .pg .fc-plateau[data-colonne] > .fc-carte { min-height: 0; }
  .pg .fc-plateau[data-colonne] > .fc-resultats { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
  /* un tableau large défile en largeur dans la colonne ; ses en-têtes restent collés */
  .pg .fc-plateau[data-colonne] > .fc-resultats > .fc-table-cadre { flex: none; max-height: none; overflow-x: auto; }
  .pg .fc-plateau[data-colonne] .pm-tete { flex-wrap: wrap; row-gap: 8px; }
  .pg .fc-plateau[data-colonne] .pm-tete .pg-seg { min-width: 0; flex: 1 1 220px; }
  /* les fenêtres qui n'avaient pas de carte (Valeur, Opérations) : leur appli reprend la grille des autres */
  .pg:is(.op, .vi) > .pg-appli { grid-template-columns: var(--pg-largeur, 320px) minmax(0, 1fr); grid-auto-rows: auto; overflow: hidden; }
  .pg:is(.op, .vi) .fc-plateau[data-colonne] { gap: 8px; min-height: 0; }
}
@media (max-width: 899px) {
  .pg:is(.op, .vi) .fc-plateau[data-colonne] { display: grid; grid-template-rows: 300px auto; }
}
.pg:is(.op, .vi) .fc-carte { position: relative; min-height: 260px; }
/* les boutons de zoom dans le coin de CETTE carte (la carte principale les décale pour son panneau, style.css) */
.pg .fc-carte .maplibregl-ctrl-bottom-right { right: 0; bottom: 0; }
.pg .fc-carte .maplibregl-ctrl-bottom-left { left: 0; right: auto; bottom: 0; }
/* les pastilles des légendes : la couleur pleine et le même liseré sombre que les points de la carte */
.pg .fc-legende i.rond.plein { width: 10px; height: 10px; border: 1.5px solid #10151C; box-shadow: none; }

/* Le repère de localisation : un point plein cerclé de blanc et un anneau qui s'élargit, au-dessus des données */
.fc-repere { width: 18px; height: 18px; border-radius: 50%; background: #10151C; box-shadow: 0 0 0 3px #fff, 0 1px 6px rgba(0, 0, 0, .35); pointer-events: none; }
.fc-repere::after { content: ''; position: absolute; inset: -3px; border-radius: 50%; border: 2px solid #10151C; animation: fc-repere 1.6s ease-out infinite; }
@keyframes fc-repere { from { transform: scale(1); opacity: .9; } to { transform: scale(3.2); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .fc-repere::after { animation: none; transform: scale(1.8); opacity: .5; } }

/* Les légendes cliquables : la pastille actionne le réglage du même nom */
.pg .fc-legende .fc-leg-clic { cursor: pointer; border-radius: var(--r-pastille); padding: 1px 4px; margin: -1px -4px; transition: opacity .15s, background-color .15s; }
.pg .fc-legende .fc-leg-clic:hover { background: rgba(127, 127, 127, .16); }
.pg .fc-legende .fc-leg-clic:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; }
.pg .fc-legende .fc-leg-off { opacity: .4; text-decoration: line-through; }
.pg .fc-legende .fc-leg-on { font-weight: 600; }

/* Les recherches enregistrées (src/foncier-memoire.js) : un panneau sous le bouton « Recherches » de la barre */
.og-droite { display: flex; gap: 8px; align-items: center; }
.pg .fm-panneau { position: absolute; top: 48px; right: 12px; z-index: 30; width: min(420px, calc(100vw - 24px)); max-height: min(70vh, 560px); overflow-y: auto; padding: 14px;
  border-radius: var(--r-panneau); background: var(--i-panneau, var(--fond, #fff)); color: var(--i-encre, var(--encre)); box-shadow: 0 12px 40px rgba(0, 0, 0, .28), var(--i-filet, 0 0 0 1px rgba(127, 127, 127, .2)); }
.pg .fm-tete { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.pg .fm-tete small, .pg .fm-liste small, .pg .fm-vide, .pg .fm-annuler { color: var(--i-lib, var(--encre-3)); font-size: var(--t-12); }
.pg .fm-garder { width: 100%; justify-content: center; }
.pg .fm-liste { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 4px; }
.pg .fm-liste li { display: grid; gap: 4px; padding: 10px 0; border-top: 1px solid var(--i-trait, var(--filet)); }
.pg .fm-nom { width: 100%; padding: 4px 6px; margin: 0 -6px; border: 1px solid transparent; border-radius: var(--r-pastille); background: transparent; color: inherit; font: inherit; font-weight: 600; }
.pg .fm-nom:hover, .pg .fm-nom:focus { border-color: var(--i-trait, var(--filet)); background: var(--i-seg, rgba(127, 127, 127, .08)); outline: none; }
.pg .fm-actions { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin-top: 2px; }
.pg .fm-actions a.lien { color: inherit; font-size: var(--t-13); }
/* la recherche rouverte (23/10/2026) : un filet à gauche, sans couleur de plus */
.pg .fm-liste li.fm-ouverte { padding-left: 10px; box-shadow: inset 2px 0 0 var(--i-encre, var(--encre)); }
/* ouverte par une adresse qui demande un autre onglet (src/foncier-url.js) : la recherche par hauteur reste voilée le
   temps que l'onglet voulu s'ouvre par-dessus, au lieu de se montrer puis de basculer */
body > .pg.fc.fu-voile > * { visibility: hidden; }
body > .pg.fc.fu-voile::after { content: 'Ouverture de la recherche…'; position: absolute; inset: 0; display: grid; place-items: center; color: var(--i-lib, var(--encre-3)); font-size: var(--t-14); }
.pg .fm-annuler { margin: 8px 0 0; }
.pg .fm-bouton { display: inline-flex; align-items: center; gap: 6px; }
.pg .fm-bouton svg { width: 15px; height: 15px; flex: none; }
/* au téléphone, l'icône seule : la barre garde la place du sélecteur d'onglet */
@media (max-width: 699px) {
  .pg .fm-bouton { min-width: 44px; justify-content: center; padding-inline: 0; }
  .pg .fm-libelle { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  /* la barre passe sur deux rangs : Fermer et le choix de l'onglet, puis les actions (Filtres, PDF · Excel, Recherches, Exporter) */
  .pg .og-barre { flex-wrap: wrap; row-gap: 6px; }
  .pg .og-barre > .og-droite { order: 3; flex: 1 0 100%; justify-content: flex-end; }
  /* Opérations : « Achat avant le permis », « après », « Les deux » passent à la ligne plutôt que de se chevaucher */
  .page-app .pg.op .pm-tete .pg-seg button { white-space: normal; line-height: 1.2; min-height: 44px; padding-block: 4px; }
}

/* ── src/foncier-zone.js : filtres à la carte, zone dessinée, exports ── */
.pg [data-fz-cache] { display: none !important; }
@media (min-width: 900px) {
  .pg.fz-sans-filtres > .pg-appli { grid-template-columns: 0 minmax(0, 1fr) !important; }
  .pg.fz-sans-filtres > .pg-appli > .pg-reglages, .pg.fz-sans-filtres > .pg-appli > .pg-poignee-x:not(.pg-poignee-droite) { display: none; }
}
.pg .fz-ligne { display: flex; align-items: center; gap: 10px; min-height: 36px; font-size: var(--t-14); cursor: pointer; }
.pg .fz-ligne input { width: 16px; height: 16px; accent-color: currentColor; }
.pg .fz-fort { font-weight: 600; border-bottom: 1px solid var(--i-trait, var(--filet)); margin-bottom: 4px; }
.pg .fz-blocs { display: grid; }
.pg .fz-panneau-x .fm-garder + .fm-garder { margin-top: 8px; }
.pg .fz-panneau-f .lien { margin-top: 10px; }
/* le bouton Zone dans les outils de la carte, à côté de « Couches » */
.pg .fc-outils { display: flex; gap: 8px; align-items: flex-start; }
.pg .fz-bouton-zone { display: inline-flex; align-items: center; gap: 6px; }
.pg .fz-bouton-zone svg { width: 15px; height: 15px; }
/* le tracé : une vitre au-dessus de la carte, qui prend les clics (les fenêtres ne voient rien) */
.fz-dessin { position: absolute; inset: 0; z-index: 4; cursor: crosshair; }
.fz-dessin .fz-aide { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); margin: 0; padding: 8px 12px; border-radius: var(--r-moyen); background: rgba(16, 21, 28, .88); color: #fff; font-size: var(--t-13); white-space: nowrap; pointer-events: none; }
@media (max-width: 699px) { .fz-dessin .fz-aide { white-space: normal; width: calc(100% - 24px); text-align: center; } }
/* Au doigt, le tracé se termine et s'annule par deux boutons (src/foncier-zone.js) ; la consigne du bureau (double-clic, Échap) n'y a
   pas de sens. Au bureau rien ne change : la barre et la consigne « au doigt » restent masquées. */
.fz-dessin :is(.fz-barre, .fz-aide-doigt) { display: none; }
@media (max-width: 699px), (pointer: coarse) {
  .fz-dessin { touch-action: none; }
  .fz-dessin .fz-aide-souris { display: none; }
  .fz-dessin .fz-aide-doigt { display: inline; }
  .fz-dessin .fz-barre { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px; border-radius: var(--r-carte); background: rgba(16, 21, 28, .88); color: #fff; font-size: var(--t-13); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
  .fz-dessin .fz-barre .bouton { flex: none; height: 44px; min-width: 96px; }
  .fz-dessin .fz-compte { flex: 1; min-width: 0; text-align: center; font-variant-numeric: tabular-nums; }
}
/* la recherche foncière au téléphone (src/foncier-mobile.css) : la consigne passe sous la capsule du mode, la barre au-dessus de la feuille */
@media (max-width: 699px) {
  .pg.fmt .fz-dessin { z-index: 6; }
  .pg.fmt .fz-dessin .fz-aide { top: calc(var(--fmt-haut) + 64px); }
  .pg.fmt .fz-dessin .fz-barre { bottom: calc(var(--fmt-bas) + 12px); }
  .pg.fmt:has(.fz-dessin) :is(.fmt-ronds, .fc-outils, .gl-bouton) { display: none; }
}
/* les lignes hors de la zone, et le bandeau qui le dit */
.pg [data-fz-hors] { display: none !important; }
.pg .fz-bandeau { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 12px; padding: 8px 12px; border-radius: var(--r-moyen); background: var(--i-seg, rgba(127, 127, 127, .12)); font-size: var(--t-13); }

/* ── Le rapport de la recherche, à la manière d'un journal (skill 91studio-journaliste) ── */
.fz-journal { font-family: 'Libre Franklin', system-ui, sans-serif; color: #2A303C; }
.fz-journal .rs-titre h1 { font-family: 'Source Serif 4', Georgia, serif; font-weight: 700; letter-spacing: -.01em; }
.fz-journal .fz-chapeau { font-family: 'Source Serif 4', Georgia, serif; font-size: var(--t-17); line-height: 1.55; color: #383F4E; margin: 14px 0 22px; }
.fz-journal .fz-figure { margin: 0 0 24px; padding: 16px; border: 1px solid #E2E4E9; border-radius: var(--r-pastille); break-inside: avoid; }
.fz-journal .fz-figure img { display: block; width: 100%; height: auto; max-height: 430px; object-fit: cover; border-radius: var(--r-fin); }
@media print { .fz-journal .fz-figure img { max-height: 105mm; } .fz-journal .fz-bloc { box-shadow: none; } }
.fz-journal .fz-figure figcaption { margin-top: 8px; font-size: var(--t-13); color: #565E70; }
.fz-journal .fz-bloc { padding: 22px 24px; border: 1px solid #E2E4E9; border-radius: var(--r-pastille); box-shadow: 0 8px 14px rgba(14, 39, 87, .06); }
.fz-journal .fz-bloc h2 { margin: 0; font-size: 20px; font-weight: 600; color: #464F5F; }
.fz-journal .fz-sous { margin: 4px 0 14px; font-size: var(--t-15); color: #565E70; }
.fz-journal .fz-table { width: 100%; border-collapse: collapse; font-size: var(--t-13); }
.fz-journal .fz-table th { text-align: left; font-weight: 600; padding: 6px 8px; border-bottom: 2px solid #2A303C; color: #2A303C; }
.fz-journal .fz-table td { padding: 6px 8px; border-bottom: 1px solid #E2E4E9; vertical-align: top; }
.fz-journal .fz-table .num { text-align: right; font-family: 'Barlow Semi Condensed', 'Libre Franklin', sans-serif; font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fz-journal .fz-table tr { break-inside: avoid; }
.fz-journal .fz-source { margin: 14px 0 0; font-size: var(--t-13); color: #565E70; }
