/* L'analyse environnementale : mise en page de l'atlas (src/analyse-env.js). Polices libres, servies par le site. */
@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 700 800; font-display: swap; src: url('/polices/bricolage-grotesque.woff2') format('woff2'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('/polices/hanken-grotesk.woff2') format('woff2'); }
:is(html, html[data-theme]) .ae-vert.ae-vert { display: inline-flex; align-items: center; gap: 6px; width: auto; height: var(--h-bouton); min-height: 0; margin: 6px 12px 0; padding: 0 10px; border: 0; border-radius: var(--r-bouton); background: #1F8A47; color: #fff; font-family: inherit; font-size: var(--t-12); font-weight: 600; cursor: pointer; }
:is(html, html[data-theme]) .ae-vert.ae-vert:hover { background: #17733A; }
:is(html, html[data-theme]) .ae-vert.ae-vert.ae-vert-pied { width: var(--h-bouton); height: var(--h-bouton); margin: 0; padding: 0; justify-content: center; flex: none; }
.ae-vert:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
:is(html, html[data-theme]) .d2-actions-tel .ae-vert.ae-vert { height: 44px; margin: 0 0 8px; flex: 0 0 auto; font-size: var(--t-13); }
.ae-fond { position: fixed; inset: 0; z-index: 2400; overflow: auto; background: #5d6660; }
.ae-barre { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 4px 12px; padding-top: calc(env(safe-area-inset-top, 0px) + 4px); background: #12462E; color: #fff; font: 500 14px "Hanken Grotesk", sans-serif; }
.ae-barre .fermer { width: 44px; height: 44px; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; }
.ae-barre .fermer svg { width: 16px; height: 16px; }
/* la croix reste blanche sur la barre verte, quel que soit le thème : la règle commune (src/instrument.css) lui donnait l'encre atténuée du thème */
html[data-theme] :is(.page-app, body) .ae-barre .fermer { width: 44px; height: 44px; color: #fff; }
.ae-barre span { flex: 1; min-width: 0; opacity: .85; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ae-impr { min-height: 44px; padding: 0 14px; border: 0; border-radius: var(--r-bouton); background: #1F8A47; color: #fff; font: inherit; font-weight: 600; cursor: pointer; white-space: nowrap; }
.ae-doc { margin: 0 auto; width: 215mm; padding: 4px 0; color: #1d2b20; font: 400 9.6pt/1.42 "Hanken Grotesk", sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.ae-doc .p { position: relative; width: 215mm; height: 310mm; margin-bottom: 8px; overflow: hidden; padding: 17mm 16mm 22mm; background: #fff; box-sizing: border-box; }
.ae-doc *, .ae-doc *::before { box-sizing: border-box; }
.ae-doc h1, .ae-doc h2 { margin: 0; font-family: "Bricolage Grotesque", sans-serif; font-weight: 800; color: #12462E; letter-spacing: -.01em; }
.ae-doc h2 { font-size: 24pt; line-height: 1.06; padding-bottom: 3mm; border-bottom: 1.4pt solid #12462E; margin-bottom: 3.5mm; }
.ae-doc h2.sb { border: 0; margin: 0; }
.ae-doc .chap { margin: 0 0 6mm; font-weight: 700; color: #12462E; font-size: 10.5pt; line-height: 1.35; }
.ae-doc h3 { margin: 0 0 2.5mm; padding-bottom: 1.6mm; border-bottom: .8pt solid #12462E; font: 700 9.8pt/1.2 "Hanken Grotesk"; text-transform: uppercase; color: #12462E; }
.ae-doc p { margin: 0 0 2.2mm; }
.ae-doc .petit { margin-top: 2mm; font-size: 7.4pt; }
.ae-doc footer { position: absolute; left: 16mm; right: 16mm; bottom: 8mm; display: grid; grid-template-columns: 38mm 40mm 1fr 40mm; font: 700 6.4pt/1.25 "Hanken Grotesk"; }
.ae-doc .f3 { text-align: right; font: 500 9pt "Hanken Grotesk"; padding-right: 6mm; }
.ae-doc .f4 { text-align: right; text-transform: uppercase; }
.ae-doc .lgp { width: auto; height: 8.5mm; float: left; margin: -1.5mm 2mm 0 0; }
.ae-doc .ae-lg { display: block; width: 34mm; height: auto; }
.ae-doc .lg-g .ae-lg { width: 40mm; }
.ae-doc .garde { padding: 0; background: #6FBBD6; }
.ae-doc .garde > img { position: absolute; inset: 0; width: 100%; height: 100%; }
.ae-doc .lg-g { position: absolute; right: 16mm; top: 15mm; }
.ae-doc .tt { position: absolute; left: 16mm; top: 15mm; right: 62mm; color: #fff; }
.ae-doc .garde h1 { color: #fff; font-size: 42pt; line-height: 1; text-shadow: 0 1px 14px rgba(12, 60, 90, .35); }
.ae-doc .ss { margin-top: 4mm; font: 700 13pt "Hanken Grotesk"; }
.ae-doc .bas { position: absolute; left: 16mm; right: 16mm; bottom: 13mm; display: flex; justify-content: space-between; font: 700 7.6pt/1.3 "Hanken Grotesk"; color: #fff; text-transform: uppercase; }
.ae-doc .dr { text-align: right; }
.ae-doc .rep { position: absolute; width: 0; height: 0; }
.ae-doc .rep i { position: absolute; left: -11px; top: -11px; width: 22px; height: 22px; border: 2.4px solid #E8552B; border-radius: 50%; background: rgba(255, 255, 255, .2); }
.ae-doc .rep b { position: absolute; left: 16px; top: -30px; padding: 2px 5px; background: #E8552B; color: #fff; font: 700 8.2pt/1.1 "Hanken Grotesk"; white-space: nowrap; }
.ae-doc .nb { font: 800 28pt/1 "Bricolage Grotesque"; color: #C8760F; letter-spacing: -.01em; }
.ae-doc .nbt { margin-top: 1mm; font-weight: 700; color: #C8760F; font-size: 9.2pt; line-height: 1.22; }
.ae-doc .nbs { margin-top: 1mm; font-size: 7pt; color: #C8760F; line-height: 1.25; }
.ae-doc .grille4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 5mm; margin-bottom: 7mm; }
.ae-doc .grille4 > div { border-right: .8pt solid #12462E; padding-right: 4mm; }
.ae-doc .grille4 > div:last-child { border: 0; }
.ae-doc .deux { display: grid; grid-template-columns: 1.25fr 1fr; gap: 8mm; }
.ae-doc .deux.eg { grid-template-columns: .85fr 1fr; }
.ae-doc .boite { padding: 5mm; background: #EEF5E3; }
.ae-doc .boite.ec { margin-top: 10mm; }
.ae-doc .enj { display: grid; grid-template-columns: 11px 1fr; gap: 6px; margin-bottom: 2.4mm; break-inside: avoid; }
.ae-doc .enj > i, .ae-doc .fe { display: inline-block; flex: none; width: 13px; height: 13px; border-radius: 0 72% 0 72%; }
.ae-doc .enj > i { width: 11px; height: 11px; margin-top: 2px; }
.ae-doc .enj b { font-size: 9.2pt; color: #12462E; }
.ae-doc .enj p { margin: 0; font-size: 8.6pt; line-height: 1.34; }
.ae-doc .carte { padding: 0; }
.ae-doc .plein { position: relative; width: 215mm; height: 238mm; overflow: hidden; background: #6FBBD6; }
.ae-doc .plein > img, .ae-doc .pl .plan { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.ae-doc .pl { background: #fff; }
.ae-doc .nonlu { padding: 20mm; color: #fff; font-weight: 700; }
.ae-doc .leg-bas { display: grid; grid-template-columns: 61mm 1fr; gap: 7mm; padding: 6mm 16mm 0; font-size: 8.8pt; line-height: 1.38; }
.ae-doc .cart h4 { margin: 0 0 1mm; font: 700 8.6pt/1.2 "Hanken Grotesk"; text-transform: uppercase; }
.ae-doc .lieu { margin: 0 0 1.6mm; font-size: 8pt; }
.ae-doc .src { margin: 0 0 1mm; font-size: 6.8pt; line-height: 1.3; }
.ae-doc .leg { position: absolute; left: 22mm; bottom: 9mm; display: grid; gap: 1.3mm; max-width: 72mm; padding: 3.5mm 4.5mm; background: rgba(255, 255, 255, .92); font: 500 8pt/1.15 "Hanken Grotesk"; }
.ae-doc .leg span { display: flex; align-items: center; gap: 6px; }
.ae-doc .leg.statique { position: static; max-width: none; padding: 0; background: none; margin-top: 2mm; }
.ae-doc .leg.trois { grid-template-columns: repeat(3, auto); }
.ae-doc .ech { position: absolute; right: 22mm; top: 8mm; width: 30%; text-align: right; color: #12462E; font: 600 7.6pt "Hanken Grotesk"; }
.ae-doc .ech i { display: block; height: 2.4px; margin-left: auto; background: #E8552B; }
.ae-doc .nord { position: absolute; right: 8mm; top: 8mm; width: 9mm; height: 9mm; border: .8pt solid #12462E; border-radius: 50%; background: #fff; text-align: center; font: 800 9pt/8.4mm "Bricolage Grotesque"; color: #12462E; }
.ae-doc .ech2 { position: absolute; right: 8mm; bottom: 7mm; width: 62mm; padding: 1mm 2mm; background: rgba(255, 255, 255, .88); text-align: right; font: 700 7.6pt "Hanken Grotesk"; color: #12462E; }
.ae-doc .ech2 i { display: block; height: 2.6px; margin-left: auto; background: #E8552B; }
.ae-doc .ch { display: block; width: 100%; }
.ae-doc .ax { font: 500 8.2px "Hanken Grotesk"; fill: #34423a; }
.ae-doc .vl { font: 700 8.6px "Hanken Grotesk"; }
.ae-doc .ronds { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4mm; padding: 0 8mm; }
.ae-doc .rond { position: relative; text-align: center; }
.ae-doc .rond img { display: block; width: 100%; aspect-ratio: 1; border: 1.2pt solid #12462E; border-radius: 50%; object-fit: cover; }
.ae-doc .rond b { display: block; margin-top: 1.5mm; color: #12462E; font-size: 9pt; }
.ae-doc .rond em { position: absolute; right: 2mm; top: 0; width: 7mm; height: 7mm; border-radius: 50%; background: #E8552B; color: #fff; font: 700 8.6pt/7mm "Hanken Grotesk"; text-align: center; font-style: normal; }
.ae-doc .panneau { align-self: start; padding: 5mm; background: linear-gradient(115deg, #C9CDD0, #C9E1BD 62%); }
.ae-doc .ita { margin: 1.5mm 0 3mm; color: #D9502A; font-size: 8.6pt; font-style: italic; text-align: center; }
.ae-doc .ae-tc { position: static; margin: 0; color: #5d9630; font-weight: 500; font-size: 9pt; text-align: center; }
.ae-doc .esp { height: 3mm; }
.ae-doc .a2 { display: grid; grid-template-columns: 1fr 62mm; gap: 5mm; }
.ae-doc ol.rec { margin: 0; padding: 0; list-style: none; counter-reset: r; }
.ae-doc ol.rec li { counter-increment: r; display: grid; grid-template-columns: 7mm 1fr; margin-bottom: 2.6mm; }
.ae-doc ol.rec li::before { content: counter(r); width: 5.6mm; height: 5.6mm; border-radius: 50%; background: #E8552B; color: #fff; font: 700 8pt/5.6mm "Hanken Grotesk"; text-align: center; }
.ae-doc .tete-s { display: grid; grid-template-columns: 1fr 34mm; gap: 8mm; }
.ae-doc .fil { height: 1.4pt; margin: 3mm 0 6mm; background: #12462E; }
.ae-doc .som { display: grid; grid-template-columns: 12mm 1fr 10mm; gap: 2.1mm 3mm; align-items: baseline; font-size: 10.5pt; }
.ae-doc .som i { font: 800 19pt "Bricolage Grotesque"; color: #C8760F; font-style: normal; }
.ae-doc .som b { color: #12462E; }
.ae-doc .som small { display: block; font-size: 8pt; color: #5a665e; }
.ae-doc .som em { font-style: normal; text-align: right; font-weight: 500; }
.ae-doc .fl { height: auto; min-height: 310mm; padding-bottom: 14mm; overflow: visible; }
.ae-doc .col2 { column-count: 2; column-gap: 8mm; font-size: 8.8pt; line-height: 1.36; }
.ae-doc .col2 h2 { font-size: 12pt; margin-top: 3mm; padding-bottom: 1mm; border-bottom: .8pt solid #12462E; break-after: avoid; }
.ae-doc .col2 h3 { font-size: 8.6pt; border: 0; padding: 0; margin: 2mm 0 1mm; break-after: avoid; }
.ae-doc .col2 p, .ae-doc .col2 li { break-inside: avoid; color: #1d2b20; font-size: 8.8pt; }
.ae-doc .col2 .rs-prose, .ae-doc .col2 small { color: #1d2b20; }
.ae-doc .plan .c1 { fill: none; stroke: #5a4a30; stroke-width: .7; stroke-opacity: .6; }
.ae-doc .plan .c5 { fill: none; stroke: #3a2c18; stroke-width: 1.5; }
.ae-doc .plan .c5g { fill: none; stroke: #888; stroke-width: .8; }
.ae-doc .tal circle { fill: #1C7FC4; fill-opacity: .85; }
.ae-doc .cot { font: 600 11px "Hanken Grotesk"; fill: #3a2c18; }
.ae-doc .cote { font: 500 9px "Hanken Grotesk"; fill: #1d2b20; }
.ae-doc .gr { stroke: #000; stroke-opacity: .14; stroke-width: .7; }
.ae-doc .grt { font: 500 8px "Hanken Grotesk"; fill: #333; }
.ae-doc .parc { fill: none; stroke: #E8552B; stroke-width: 3.4; }
.ae-doc .prop { fill: none; stroke: #1F8A47; stroke-width: 3.4; stroke-dasharray: 10 6; }
.ae-doc .pn { font: 800 13px "Bricolage Grotesque"; fill: #fff; stroke: #E8552B; stroke-width: 3; paint-order: stroke; }
.ae-doc .rup rect { fill: #8A5AA8; fill-opacity: .6; }
.ae-doc .oro { fill: none; stroke: #C8760F; stroke-width: 2; }
.ae-doc .bh { font: 700 10px "Hanken Grotesk"; fill: #1d1208; }
.ae-doc .nd { fill: none; stroke: #D23A63; stroke-width: 2.4; }
.ae-doc .apx { fill: none; stroke: #0b2e1a; stroke-width: 1; }
.ae-doc .cb { fill: none; stroke: #E8552B; stroke-width: 1.6; }
.ae-doc .coupe { margin-bottom: 1mm; }
.ae-doc .coupe .cg { stroke: #000; stroke-opacity: .13; stroke-width: 1; }
.ae-doc .coupe .cn { stroke: #1d2b20; stroke-width: 1; }
.ae-doc .coupe .ca { font: 500 11px "Hanken Grotesk"; fill: #34423a; }
.ae-doc .coupe .cz { fill: #E8552B; fill-opacity: .08; }
.ae-doc .coupe .cl { stroke: #E8552B; stroke-width: 2; stroke-dasharray: 8 5; }
.ae-doc .coupe .cs { fill: none; stroke: #5C4A30; stroke-width: 2.4; }
.ae-doc .coupe .ct { fill: none; stroke: #1C7FC4; stroke-width: 3; }
.ae-doc .coupe .ctx { font: 700 12px "Hanken Grotesk"; fill: #1C7FC4; }
.ae-doc .coupe .cp { font: 700 12px "Hanken Grotesk"; fill: #E8552B; }
@media print {
  @page { size: 215mm 310mm; margin: 0; }
  /* style.css cache tout ce qui n'est pas .rapport à l'impression : sans cette exception, une page blanche */
  html body.ae-ouvert > :not(.ae-fond) { display: none !important; }
  html body.ae-ouvert.ae-ouvert > .ae-fond { position: static; display: block !important; overflow: visible; background: #fff; }
  .ae-barre { display: none; }
  .ae-doc { zoom: 1 !important; padding: 0; }
  .ae-doc .p { margin: 0; break-after: page; }
  .ae-doc .fl { min-height: 0; }
}
/* La fenêtre « Préparer l'analyse » (src/analyse-env-choix.js) : le dessin de « Envoyer par e-mail » (envoi.css), les cases de « Préparer le rapport »
   (rapports.css) aux couleurs du thème ; boutons communs (.bouton, .bouton-primaire). Au téléphone : une feuille en bas, lignes de 44 px au doigt. */
.aec-fond { position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center; padding: 16px; background: rgba(0, 0, 0, 0.45); }
.aec { box-sizing: border-box; width: min(430px, 100%); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; display: grid; gap: 12px; margin: 0; padding: 18px 20px 20px; border: 0; border-radius: var(--r-panneau); background: var(--surface-panneau, var(--panneau, #FFFFFF)); color: var(--texte, #1d1d1f); box-shadow: inset 0 0 0 1px var(--filet, transparent), 0 18px 50px rgba(0, 0, 0, 0.35); font-size: var(--t-14); line-height: 1.35; text-align: left; }
.aec-tete { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.aec-tete h2 { margin: 0; font-size: var(--t-17); font-weight: 600; letter-spacing: 0; }
.aec-x { display: grid; place-items: center; width: 44px; height: 44px; margin: -12px -12px -12px 0; padding: 0; border: 0; border-radius: var(--r-bouton); background: none; color: var(--attenue, inherit); cursor: pointer; }
.aec-x:hover { color: var(--texte, inherit); }
.aec-x svg { width: 14px; height: 14px; }
.aec-quoi { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; margin: 0; }
.aec-quoi b { font-weight: 600; }
.aec-quoi span { color: var(--attenue, #6e6e73); font-size: var(--t-13); font-variant-numeric: tabular-nums; }
.aec-cases { min-width: 0; margin: 0; padding: 0; border: 0; }
.aec-cases legend { float: left; width: 100%; margin: 0; padding: 0 0 6px; border-bottom: 1px solid var(--filet-fort, rgba(0, 0, 0, .12)); color: var(--discret, #86868b); font-size: var(--t-12); }
.aec-case { clear: both; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 4px 0; box-sizing: border-box; border-bottom: 1px solid var(--filet, rgba(0, 0, 0, .08)); cursor: pointer; }
.aec-case > span { display: grid; gap: 1px; min-width: 0; }
.aec-case b { font-weight: 500; }
.aec-case small { color: var(--attenue, #6e6e73); font-size: var(--t-12); }
.aec-fixe { cursor: default; }
.aec .aec-case input[type="checkbox"] { flex: none; display: grid; place-content: center; width: 18px; height: 18px; min-height: 0; margin: 0 1px; padding: 0; border: 1.5px solid var(--discret, #86868b); border-radius: var(--r-pastille, 5px); background: transparent; box-shadow: none; -webkit-appearance: none; appearance: none; cursor: pointer; }
.aec .aec-case input[type="checkbox"]:checked { border-color: var(--plein, #1d1d1f); background: var(--plein, #1d1d1f); }
.aec .aec-case input[type="checkbox"]:checked::after { content: ""; width: 9px; height: 5px; margin-top: -2px; border: solid var(--plein-texte, #FFFFFF); border-width: 0 0 1.7px 1.7px; transform: rotate(-45deg); }
.aec .aec-case input[type="checkbox"]:disabled { opacity: 0.4; cursor: default; }
.aec .aec-case input[type="checkbox"]:focus-visible, .aec-x:focus-visible { outline: 2px solid var(--texte, #1d1d1f); outline-offset: 2px; }
.aec-note { margin: 0; color: var(--attenue, #6e6e73); font-size: var(--t-12); }
.aec-note:empty { display: none; }
.aec-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
@media (max-width: 560px) {
  .aec-fond { place-items: end center; padding: 0; }
  .aec { width: 100%; max-height: calc(100dvh - 24px); padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); border-radius: var(--r-panneau) var(--r-panneau) 0 0; }
  .aec-actions > * { flex: 1; }
}
@media print { .aec-fond { display: none; } }
