/* AcqHome Tools — feuille commune (v2, 28/09/2026). Servie sur /apihome.css.
   Chargée par chaque écran APRÈS son <style> local : elle prime.
   Ordre : polices → jetons clairs → sombre → alias de migration → base → composants .ah-*
   Source des valeurs : design/jetons.json. Charte : design/CHARTE.md.
   Aucun rayon au-delà de 6 px. Champs à 16 px. Cibles de 44 px. */

/* ───────────────────────── 1. Polices (servies sur /polices/, jamais un CDN) ── */
@font-face{font-family:"Satoshi";font-weight:400;font-style:normal;font-display:swap;
  src:url("/polices/Satoshi-Regular.woff2?v=1acb4569") format("woff2")}
@font-face{font-family:"Satoshi";font-weight:500;font-style:normal;font-display:swap;
  src:url("/polices/Satoshi-Medium.woff2?v=1acb4569") format("woff2")}
@font-face{font-family:"Satoshi";font-weight:700;font-style:normal;font-display:swap;
  src:url("/polices/Satoshi-Bold.woff2?v=1acb4569") format("woff2")}
@font-face{font-family:"Chillax";font-weight:600;font-style:normal;font-display:swap;
  src:url("/polices/Chillax-Semibold.woff2?v=1acb4569") format("woff2")}

/* ───────────────────────── 2. Jetons, palette claire ────────────────────────── */
:root{
  color-scheme:light;
  /* surfaces */
  --surface:#FFFFFF; --blanc:var(--surface);
  --papier:#F5F6F9; --brume:#ECEEF3;
  /* texte */
  --encre:#292A39; --encre-2:#51566A; --encre-3:#646A7F;
  /* filets */
  --trait:#E3E5EB; --trait-2:#C9CCD6; --trait-champ:#7C8196;
  /* chevron des <select> : background-image ne lit pas de jeton de couleur, donc une image par thème (--encre-3) */
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23646A7F' stroke-width='1.8'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  --voile:rgba(41,42,57,.45);
  /* action */
  --action:#1F5BFF; --action-2:#1747D6; --action-f:#EEF3FF; --sur-action:#FFFFFF;
  /* marque */
  --marque-encre:var(--encre); --marque-accent:var(--action);
  /* niveaux d'adresse : les seules couleurs qui portent du sens */
  --certaine:#0F7A2E; --certaine-f:#E6FDE3; --certaine-t:#0A5C22; --certaine-b:#B5F0AC;
  --probable:#A85300; --probable-f:#FDECD2;
  --verifier:#C9191E; --verifier-f:#FFE9E9;
  --non-trouvee:var(--encre-3);
  --sur-sens:#FFFFFF;
  /* signaux Sentinelle : le losange porte le sens, pas seulement la couleur */
  --veille:#6D3FE0;
  /* danger : bouton de confirmation d'une suppression, nulle part ailleurs */
  --danger:#B42318; --sur-danger:#FFFFFF;
  /* statuts commerciaux : neutres, le libellé porte le sens */
  --statut-f:var(--brume); --statut-t:var(--encre);
  --focus:#1F5BFF;
  /* typographie */
  --sans:"Satoshi",-apple-system,"Segoe UI",system-ui,sans-serif;
  --titre:"Chillax","Satoshi",system-ui,sans-serif;
  --mono:ui-monospace,Menlo,monospace;
  /* rayons, espacements, cibles */
  --r-1:4px; --r-2:6px;
  --e-1:4px; --e-2:8px; --e-3:12px; --e-4:16px; --e-5:24px; --e-6:32px; --e-7:48px;
  --cible:44px; --cible-carte:48px;
  --c:clamp(16px,3vw,28px);
  /* coquille */
  --h-entete:56px;
  --h-onglets:calc(56px + env(safe-area-inset-bottom));
  --ombre-flottant:0 8px 24px rgba(41,42,57,.16),0 1px 2px rgba(41,42,57,.10);
  --duree:180ms;
}
@media(min-width:900px){:root{--h-entete:64px}}

/* ───────────────────────── 3. Palette sombre (deux blocs, mêmes valeurs) ────── */
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --surface:#1C1D29; --papier:#13141C; --brume:#262837;
  --encre:#ECEDF3; --encre-2:#B4B8C9; --encre-3:#8E93A8;
  --trait:#2E3040; --trait-2:#444759; --trait-champ:#6E7389;
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238E93A8' stroke-width='1.8'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  --voile:rgba(0,0,0,.6);
  --action:#6AA8FF; --action-2:#93C0FF; --action-f:#1A2A4A; --sur-action:#13141C;
  --certaine:#8AFB7F; --certaine-f:#12300F; --certaine-t:#C9FFC2; --certaine-b:#2C5527;
  --probable:#FFB35C; --probable-f:#33230D;
  --verifier:#FF8A8A; --verifier-f:#361113;
  --sur-sens:#13141C;
  --veille:#A98BFF;
  --danger:#FF6B6B; --sur-danger:#13141C; /* le blanc sur #FF6B6B tombe à 2,8:1 */
  --focus:#6AA8FF;
  --ombre-flottant:0 8px 24px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4);
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --surface:#1C1D29; --papier:#13141C; --brume:#262837;
  --encre:#ECEDF3; --encre-2:#B4B8C9; --encre-3:#8E93A8;
  --trait:#2E3040; --trait-2:#444759; --trait-champ:#6E7389;
  --chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238E93A8' stroke-width='1.8'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  --voile:rgba(0,0,0,.6);
  --action:#6AA8FF; --action-2:#93C0FF; --action-f:#1A2A4A; --sur-action:#13141C;
  --certaine:#8AFB7F; --certaine-f:#12300F; --certaine-t:#C9FFC2; --certaine-b:#2C5527;
  --probable:#FFB35C; --probable-f:#33230D;
  --verifier:#FF8A8A; --verifier-f:#361113;
  --sur-sens:#13141C;
  --veille:#A98BFF;
  --danger:#FF6B6B; --sur-danger:#13141C;
  --focus:#6AA8FF;
  --ombre-flottant:0 8px 24px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4);
}

/* ───────────────────────── 4. Alias de migration (à retirer écran par écran) ── */
:root{
  --encre2:var(--encre-2);
  --carte:var(--surface);
  --accent:var(--action); --acc:var(--action);
  --accent2:var(--action-f); --acc2:var(--action-f);   /* fonds pâles, pas --action-2 */
  --ok:var(--certaine); --ok-bg:var(--certaine-f); --okbg:var(--certaine-f);
  --prob:var(--probable); --probbg:var(--probable-f); --prob-bg:var(--probable-f);
  --ver:var(--verifier); --verbg:var(--verifier-f); --verif:var(--verifier); --verif-bg:var(--verifier-f);
  --violet:var(--action);
  --oui:var(--certaine);
  /* --non / --nonbg restent locaux : gris sur la Carte, rouge sur Résolution. */
}

/* ───────────────────────── 5. Base ──────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.5;font-weight:400;
  letter-spacing:-.01em;background:var(--papier);color:var(--encre);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
h1{font-family:var(--titre);font-weight:600;font-size:24px;line-height:1.15;letter-spacing:-.01em;margin:0 0 var(--e-3)}
@media(min-width:900px){h1{font-size:32px}}
h2{font-size:18px;font-weight:700;line-height:1.3;letter-spacing:-.01em;margin:0 0 var(--e-3);color:var(--encre)}
h3{font-size:16px;font-weight:700;line-height:1.35;margin:0 0 var(--e-2)}
p{margin:0 0 var(--e-3)}
a{color:var(--action);text-decoration-thickness:1px;text-underline-offset:2px}
button,[role="button"],a,label[for],summary,select{cursor:pointer}
button:disabled,[aria-disabled="true"]{cursor:not-allowed;opacity:.55}
/* Champs : 16 px partout, fin du zoom iOS à la saisie. */
input,select,textarea,button{font-family:inherit;font-size:16px;line-height:1.3;color:inherit}
code,kbd,pre{font-family:var(--mono);font-size:14px}
img,svg{vertical-align:middle}
:focus{outline:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-1)}
[id]{scroll-margin-top:calc(var(--h-entete) + var(--e-2))}
.ah-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ah-etiquette{font-size:12px;font-weight:500;line-height:1.3;color:var(--encre-3);letter-spacing:0;text-transform:none;margin:0 0 var(--e-2)}
.ah-num{font-variant-numeric:tabular-nums}
.ah-second{color:var(--encre-2);font-size:14px}
.ah-attenue{color:var(--encre-3);font-size:14px}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;
    animation-iteration-count:1!important;scroll-behavior:auto!important}
}

/* ───────────────────────── 6. Marque ────────────────────────────────────────── */
/* Le logotype AcqHome Tools : symbole et étiquette en accent (.acc), ACQHOME en
   encre (.enc), les lettres TOOLS « sur accent » (.sur). Source : design/marque/acqhome-tools-logotype.svg. */
.ah-logotype .enc{fill:var(--marque-encre)}
.ah-logotype .acc,.ah-symbole .acc{fill:var(--marque-accent)}
.ah-logotype .sur{fill:var(--sur-action)}
.ah-symbole{fill:currentColor}

/* ───────────────────────── 7. En-tête ───────────────────────────────────────── */
.ah-entete{position:sticky;top:0;z-index:1100;background:var(--surface);border-bottom:1px solid var(--trait);
  padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.ah-entete--libre{position:relative} /* la Carte : l'en-tête défile avec la page */
.ah-entete__in{height:var(--h-entete);max-width:1360px;margin:0 auto;padding:0 var(--c);
  display:flex;align-items:center;gap:var(--e-3)}
/* Le logo de l'en-tête (06/10/2026) : 40 px de haut, soit 188 px de large
   (viewBox 413 × 88) — « TOOLS » ne se lit plus sous ~36 px. Quand la ligne
   manque de place, une fois le champ « Coller un lien » à son minimum
   (304 px : de quoi lire « Coller un lien d'annonce » en entier, 171 px de
   texte, plus l'icône et « Résoudre »), c'est le logo qui cède (flex-shrink 1000), avant la navigation
   et le bouton « Résoudre », jamais sous 96 px de large (l'encombrement de
   l'ancien logo). Mesuré le 06/10/2026 : 40 px à
   1 360 px et au-delà, 39,5 px à 1 280, 35,9 px à 1 100, 20,5 px (le
   plancher) entre 760 et ~1 060 ; au téléphone, 40 px dès 414 px, 38,1 à
   390, 34,9 à 375, 31,7 à 360, 23,2 à 320 — sans défilement horizontal. */
.ah-logo{display:inline-flex;align-items:center;height:var(--cible);flex:0 1000 188px;min-width:96px;color:var(--encre);text-decoration:none;border-radius:var(--r-1)}
.ah-logo svg{width:100%;height:auto;aspect-ratio:413/88;display:block}
/* LE SYMBOLE SEUL QUAND « TOOLS » NE SE LIRAIT PLUS (06/10/2026). Entre 760 et
   1 099 px, la navigation ne laissait au logo que 96 px de large (20 px de
   haut) : l'étiquette n'était plus qu'une tache bleue. Même chose sous 360 px.
   Là, l'en-tête montre les deux chevrons seuls (charte §2 : symbole seul sous
   32 px de haut) ; le lien garde son aria-label « AcqHome Tools, accueil ». */
.ah-logo .ah-symbole{display:none}
@media(min-width:760px) and (max-width:1099px),(max-width:359px){
  .ah-logo{flex:none;min-width:0}
  .ah-logo .ah-logotype{display:none}
  .ah-logo .ah-symbole{display:block;width:auto;height:36px;aspect-ratio:1}
}
.ah-via{font-size:14px;color:var(--encre-3);margin-left:auto}
/* champ « Coller un lien d'annonce » (ordinateur). 44 px UTILES à l'intérieur
   des bordures (charte : toute cible touchable fait 44 px) : la boîte mesure
   46 px, le champ et le bouton « Résoudre » occupent toute la hauteur. */
.ah-resoudre{flex:1;min-width:304px;max-width:460px;display:flex;align-items:center;gap:var(--e-2);
  height:calc(var(--cible) + 2px);padding:0 0 0 var(--e-3);overflow:hidden;background:var(--papier);
  border:1px solid var(--trait-champ);border-radius:var(--r-2);color:var(--encre-3);
  transition:border-color var(--duree),box-shadow var(--duree)}
.ah-resoudre:focus-within{border-color:var(--action);box-shadow:0 0 0 2px var(--action-f)}
.ah-resoudre svg{flex:none;width:16px;height:16px}
.ah-resoudre input{flex:1;min-width:0;border:0;background:none;color:var(--encre);outline:0;height:100%;min-height:var(--cible);padding:0}
.ah-resoudre input::placeholder{color:var(--encre-3)}
.ah-resoudre button{flex:none;height:100%;min-height:var(--cible);padding:0 var(--e-3);border:0;border-radius:0;
  background:var(--action);color:var(--sur-action);font-weight:700;font-size:14px}
.ah-resoudre button:active{background:var(--action-2)}
/* bouton « Résoudre » (mobile) : ouvre la feuille « Coller et résoudre » */
.ah-resoudre-m{display:none;height:var(--cible);padding:0 var(--e-3);margin-left:auto;border:1px solid var(--trait-2);
  border-radius:var(--r-2);background:var(--surface);color:var(--encre);font-weight:500;font-size:14px;
  align-items:center;gap:var(--e-2)}
.ah-resoudre-m svg{width:18px;height:18px}
.ah-resoudre-m:active{background:var(--brume)}
/* Sur /resolution, les deux « Résoudre » portent aria-current="page" (data-ecran="resolution") :
   c'est le repère de navigation de l'écran. Spécificité > :hover pour tenir sous le pointeur. */
.ah-entete .ah-resoudre:has(button[aria-current="page"]){border-color:var(--action)}
.ah-entete .ah-resoudre-m[aria-current="page"]{background:var(--encre);color:var(--papier);border-color:var(--encre)}
/* navigation haute */
.ah-nav{display:flex;gap:2px;margin-left:auto;overflow-x:auto;scrollbar-width:none;flex:none;max-width:60%}
.ah-nav::-webkit-scrollbar{display:none}
/* padding resserré à 8 px partout (06/10/2026) : le logo AcqHome Tools est
   plus large que l'ancien (188 px contre 96) et le lien « Équipe » s'est
   ajouté ; à 12 px, « Outils » était coupé à 1 280 px et le champ « Coller un
   lien d'annonce » tronquait son propre libellé. */
.ah-nav a{display:flex;align-items:center;height:var(--cible);padding:0 var(--e-2);border-radius:var(--r-2);
  font-size:14px;font-weight:500;color:var(--encre-2);text-decoration:none;white-space:nowrap;
  transition:background var(--duree),color var(--duree)}
.ah-nav a:active{background:var(--brume)}
.ah-nav a[aria-current="page"]{background:var(--encre);color:var(--papier)}
/* avatar : mène au compte, porte les initiales réelles ou une silhouette */
.ah-avatar{width:var(--cible);height:var(--cible);flex:none;display:grid;place-items:center;border-radius:var(--r-2);
  background:var(--encre);color:var(--papier);font-size:14px;font-weight:700;text-decoration:none;border:0}
.ah-avatar svg{width:18px;height:18px}
.ah-avatar[aria-current="page"]{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--action)}
/* variante publique (fiche vue par un client) : logo seul et « via AcqHome Tools », aucune navigation */
.ah-entete--public .ah-logo{cursor:default}
@media(hover:hover){
  .ah-nav a:hover{background:var(--brume);color:var(--encre)}
  .ah-nav a[aria-current="page"]:hover{background:var(--encre);color:var(--papier)}
  .ah-resoudre button:hover{background:var(--action-2)}
  .ah-resoudre-m:hover{background:var(--brume)}
  .ah-avatar:hover{background:var(--encre-2)}
}
@media(max-width:759px){
  .ah-resoudre,.ah-nav{display:none}
  .ah-resoudre-m{display:inline-flex}
  .ah-avatar{margin-left:0}
}
@media(min-width:760px){.ah-avatar{margin-left:var(--e-1)}}
/* ENTRE LE TÉLÉPHONE ET LE GRAND ÉCRAN (29/09/2026). Neuf liens depuis l'ajout
   de « Panneau » : à 1 000 px ils demandaient 684 px pour 566 disponibles, et
   « Cadastre » et « Outils » sortaient de l'écran sans que rien ne le signale.
   Sous 1 280 px, le champ « Coller un lien » cède la place au bouton
   « Résoudre » (même feuille de collage) et les liens se resserrent : tout
   tient à partir de ~950 px. */
@media(min-width:760px) and (max-width:1279px){
  .ah-resoudre{display:none}
  .ah-resoudre-m{display:inline-flex;margin-left:var(--e-2)}
  .ah-nav{max-width:none;flex:0 1 auto;min-width:0}
  .ah-nav a{padding:0 var(--e-2)}
}

/* ───────────────────────── 8. Barre d'onglets (mobile) ──────────────────────── */
.ah-onglets{display:none}
@media(max-width:759px){
  .ah-onglets{position:fixed;left:0;right:0;bottom:0;z-index:1100;display:grid;grid-template-columns:repeat(5,1fr);
    height:var(--h-onglets);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
    background:var(--surface);border-top:1px solid var(--trait)}
  .ah-onglets a,.ah-onglets button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    min-height:var(--cible-carte);height:56px;padding:0;border:0;background:none;color:var(--encre-2);
    font-size:12px;font-weight:500;line-height:1.2;text-decoration:none;transition:color var(--duree)}
  .ah-onglets svg{width:24px;height:24px;flex:none}
  .ah-onglets a:active,.ah-onglets button:active{background:var(--brume)}
  .ah-onglets [aria-current="page"]{color:var(--action);font-weight:700}
  .ah-onglets [aria-current="page"] svg{stroke-width:2.2}
  body:has(.ah-onglets){padding-bottom:var(--h-onglets)}
}
/* feuille « Plus » : liste de liens à 48 px */
.ah-menu{display:grid;gap:2px;margin:0;padding:0;list-style:none}
.ah-menu a{display:flex;align-items:center;gap:var(--e-3);min-height:var(--cible-carte);padding:0 var(--e-3);
  border-radius:var(--r-2);color:var(--encre);text-decoration:none;font-weight:500}
.ah-menu a svg{width:24px;height:24px;flex:none;color:var(--encre-2)}
.ah-menu a:active{background:var(--brume)}
.ah-menu a[aria-current="page"]{background:var(--action-f);color:var(--action)}
.ah-menu a[aria-current="page"] svg{color:var(--action)}
@media(hover:hover){.ah-menu a:hover{background:var(--brume)}}

/* ───────────────────────── 9. Boutons ───────────────────────────────────────── */
.ah-b{display:inline-flex;align-items:center;justify-content:center;gap:var(--e-2);min-height:var(--cible);
  padding:0 var(--e-4);border:1px solid transparent;border-radius:var(--r-2);
  background:var(--action);color:var(--sur-action);font-size:16px;font-weight:700;line-height:1.2;
  text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;
  transition:background var(--duree),border-color var(--duree),color var(--duree),transform 120ms}
.ah-b svg{width:20px;height:20px;flex:none}
.ah-b:active{background:var(--action-2);transform:translateY(1px)}
.ah-b--second{background:var(--surface);color:var(--encre);border-color:var(--trait-2)}
.ah-b--second:active{background:var(--brume)}
.ah-b--lien{background:none;color:var(--action);border-color:transparent;padding:0 var(--e-2);font-weight:500}
.ah-b--lien:active{background:var(--action-f)}
.ah-b--danger{background:var(--danger);color:var(--sur-danger)}
.ah-b--danger:active{filter:brightness(.92)}
/* « Petit » par le corps et les marges, jamais par la hauteur : la cible reste 44 px. */
.ah-b--petit{min-height:var(--cible);padding:0 var(--e-3);font-size:14px}
.ah-b--large{width:100%}
@media(hover:hover){
  .ah-b:hover{background:var(--action-2)}
  .ah-b--second:hover{background:var(--brume)}
  .ah-b--lien:hover{background:var(--action-f)}
  .ah-b--danger:hover{filter:brightness(.92);background:var(--danger)}
}
/* Sous 560 px, le primaire prend toute la largeur ; .ah-b--ligne le garde en ligne. */
@media(max-width:559px){
  .ah-b:not(.ah-b--second):not(.ah-b--lien):not(.ah-b--ligne):not(.ah-b--petit){width:100%}
  .ah-actions{display:flex;flex-direction:column;gap:var(--e-2)}
  .ah-actions .ah-b{width:100%}
}
.ah-actions{display:flex;gap:var(--e-2);flex-wrap:wrap;align-items:center}

/* ───────────────────────── 10. Niveau d'adresse ─────────────────────────────── */
/* Texte, forme et couleur : l'accent et le vert ont presque la même luminance en gris. */
.ah-niveau{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;line-height:1.2;
  letter-spacing:0;text-transform:none;color:var(--niv,var(--encre-2));white-space:nowrap;vertical-align:middle}
.ah-niveau::before{content:"";width:12px;height:12px;flex:none;border-radius:50%;background:var(--niv);
  -webkit-mask:var(--forme) center/12px 12px no-repeat;mask:var(--forme) center/12px 12px no-repeat}
.ah-niveau--certaine{--niv:var(--certaine);
  --forme:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill-rule='evenodd' d='M6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0Zm2.9 4.2-.9-.9L5.2 6.1 4 4.9l-.9.9 2.1 2.1Z'/%3E%3C/svg%3E")}
.ah-niveau--probable{--niv:var(--probable);
  --forme:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill-rule='evenodd' d='M6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0Zm0 2.2a3.8 3.8 0 1 0 0 7.6 3.8 3.8 0 0 0 0-7.6Z'/%3E%3C/svg%3E")}
.ah-niveau--verifier{--niv:var(--verifier);
  --forme:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill-rule='evenodd' d='M6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0Zm-.7 2.6h1.4v4.2H5.3Zm0 5.2h1.4v1.4H5.3Z'/%3E%3C/svg%3E")}
.ah-niveau--non-trouvee{--niv:var(--non-trouvee);
  --forme:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill-rule='evenodd' d='M6 0a6 6 0 1 0 0 12A6 6 0 0 0 6 0ZM3.2 5.3h5.6v1.4H3.2Z'/%3E%3C/svg%3E")}
/* variante sur fond pâle (contre une adresse dans une liste dense) */
.ah-niveau--fond{padding:3px 8px 3px 6px;border-radius:var(--r-1);background:var(--niv-f,var(--brume))}
.ah-niveau--certaine.ah-niveau--fond{--niv-f:var(--certaine-f)}
.ah-niveau--probable.ah-niveau--fond{--niv-f:var(--probable-f)}
.ah-niveau--verifier.ah-niveau--fond{--niv-f:var(--verifier-f)}

/* signal Sentinelle : un losange (la forme porte le sens, pas seulement la couleur) */
.ah-veille{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--veille);white-space:nowrap;vertical-align:middle}
.ah-veille::before{content:"";width:10px;height:10px;flex:none;background:var(--veille);transform:rotate(45deg);border-radius:1px}

/* ───────────────────────── 11. Statut neutre, filtre ────────────────────────── */
.ah-statut{display:inline-block;padding:2px 6px;border-radius:var(--r-1);background:var(--statut-f);color:var(--statut-t);
  font-size:12px;font-weight:500;line-height:1.4;letter-spacing:0;text-transform:none;white-space:nowrap;vertical-align:middle}
.ah-filtre{display:inline-flex;align-items:center;gap:var(--e-2);min-height:var(--cible);padding:0 var(--e-3);
  border:1px solid var(--trait-2);border-radius:var(--r-2);background:var(--surface);color:var(--encre);
  font-size:14px;font-weight:500;white-space:nowrap;transition:background var(--duree),border-color var(--duree),color var(--duree)}
.ah-filtre .n{font-variant-numeric:tabular-nums;color:var(--encre-3);font-weight:400}
.ah-filtre:active{background:var(--brume)}
.ah-filtre[aria-pressed="true"]{background:var(--action);border-color:var(--action);color:var(--sur-action)}
.ah-filtre[aria-pressed="true"] .n{color:inherit;opacity:.85}
.ah-filtres{display:flex;gap:var(--e-2);overflow-x:auto;scrollbar-width:none;padding:2px;margin:0 -2px}
.ah-filtres::-webkit-scrollbar{display:none}
@media(hover:hover){.ah-filtre:hover{background:var(--brume)} .ah-filtre[aria-pressed="true"]:hover{background:var(--action-2)}}

/* ───────────────────────── 12. Champ ────────────────────────────────────────── */
.ah-champ{display:flex;flex-direction:column;gap:var(--e-1);margin:0 0 var(--e-4)}
.ah-champ label,.ah-champ__lib{font-size:14px;font-weight:500;color:var(--encre)}
.ah-champ input,.ah-champ select,.ah-champ textarea{width:100%;min-height:var(--cible);padding:0 var(--e-3);
  border:1px solid var(--trait-champ);border-radius:var(--r-2);background:var(--surface);color:var(--encre);
  font-size:16px;transition:border-color var(--duree),box-shadow var(--duree)}
.ah-champ textarea{padding:var(--e-2) var(--e-3);min-height:96px;resize:vertical;line-height:1.45}
.ah-champ select{-webkit-appearance:none;appearance:none;padding-right:36px;
  background-image:var(--chevron);
  background-repeat:no-repeat;background-position:right 10px center;background-size:16px}
.ah-champ input::placeholder,.ah-champ textarea::placeholder{color:var(--encre-3)}
.ah-champ input:focus-visible,.ah-champ select:focus-visible,.ah-champ textarea:focus-visible{
  outline:none;border-color:var(--action);box-shadow:0 0 0 2px var(--action-f)}
.ah-champ [aria-invalid="true"]{border-color:var(--verifier)}
.ah-champ__aide{font-size:14px;color:var(--encre-3)}
.ah-champ__erreur{font-size:14px;color:var(--verifier);font-weight:500}
.ah-champ--ligne{flex-direction:row;align-items:center;gap:var(--e-3)}
.ah-champ--ligne label{flex:none}
/* case et bouton radio : la ligne entière est la cible */
.ah-case{display:flex;align-items:center;gap:var(--e-3);min-height:var(--cible);padding:0 var(--e-1);cursor:pointer;font-size:16px}
.ah-case input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--action);flex:none}

/* ───────────────────────── 13. Annonce (toast) ──────────────────────────────── */
.ah-annonces{position:fixed;left:0;right:0;bottom:calc(var(--e-3) + env(safe-area-inset-bottom));z-index:1300;
  display:flex;flex-direction:column;align-items:center;gap:var(--e-2);padding:0 var(--c);pointer-events:none}
@media(max-width:759px){body:has(.ah-onglets) .ah-annonces{bottom:calc(var(--h-onglets) + var(--e-3))}}
.ah-annonce{pointer-events:auto;display:flex;align-items:center;gap:var(--e-3);max-width:560px;width:100%;
  min-height:var(--cible);padding:var(--e-1) var(--e-1) var(--e-1) var(--e-3);border-radius:var(--r-2);
  background:var(--encre);color:var(--papier);box-shadow:var(--ombre-flottant);font-size:14px;
  animation:ah-monte var(--duree) ease-out}
.ah-annonce svg{width:20px;height:20px;flex:none}
.ah-annonce__t{flex:1;min-width:0}
/* « Annuler » dans le toast : 44 px comme tout ce qui se touche */
.ah-annonce button{min-height:var(--cible);padding:0 var(--e-2);border:0;border-radius:var(--r-1);background:none;
  color:inherit;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.ah-annonce button:active{background:rgba(255,255,255,.12)}
.ah-annonce--erreur{border-left:3px solid var(--verifier)}
@keyframes ah-monte{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ───────────────────────── 14. Feuille (basse sur mobile, latérale sur ordinateur) */
.ah-voile{position:fixed;inset:0;z-index:1200;background:var(--voile);animation:ah-fondu var(--duree) ease-out}
.ah-feuille{position:fixed;z-index:1210;display:flex;flex-direction:column;background:var(--surface);color:var(--encre);
  box-shadow:var(--ombre-flottant);outline:none;
  left:0;right:0;bottom:0;max-height:min(92vh,92dvh);border-radius:var(--r-2) var(--r-2) 0 0;
  padding-bottom:env(safe-area-inset-bottom);animation:ah-glisse-haut 220ms ease-out}
.ah-feuille__tete{display:flex;align-items:center;gap:var(--e-3);min-height:var(--h-entete);padding:0 var(--e-2) 0 var(--e-4);
  border-bottom:1px solid var(--trait);flex:none}
.ah-feuille__tete h2{flex:1;margin:0;font-size:18px}
.ah-feuille__x{width:var(--cible);height:var(--cible);display:grid;place-items:center;border:0;border-radius:var(--r-2);
  background:none;color:var(--encre-2)}
.ah-feuille__x svg{width:20px;height:20px}
.ah-feuille__x:active{background:var(--brume)}
.ah-feuille__corps{flex:1;min-height:0;overflow:auto;padding:var(--e-4);-webkit-overflow-scrolling:touch}
.ah-feuille__pied{display:flex;flex-direction:column;gap:var(--e-2);padding:var(--e-3) var(--e-4);border-top:1px solid var(--trait);flex:none}
.ah-feuille__pied .ah-b{width:100%}
.ah-feuille__pied .ah-b--second{order:2}
@media(min-width:760px){
  .ah-feuille{left:auto;top:0;bottom:0;width:min(440px,100%);max-height:none;border-radius:0;animation:ah-glisse-gauche 220ms ease-out}
  .ah-feuille--centre{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:min(480px,calc(100% - 2*var(--c)));
    max-height:90vh;border-radius:var(--r-2);animation:ah-fondu var(--duree) ease-out}
  .ah-feuille__pied{flex-direction:row-reverse;justify-content:flex-start}
  .ah-feuille__pied .ah-b{width:auto}
  .ah-feuille__pied .ah-b--second{order:0}
}
@keyframes ah-fondu{from{opacity:0}to{opacity:1}}
@keyframes ah-glisse-haut{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes ah-glisse-gauche{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
body.ah-figee{overflow:hidden}
[inert]{pointer-events:none;-webkit-user-select:none;user-select:none} /* repli si le navigateur ignore inert */
@media(hover:hover){.ah-feuille__x:hover{background:var(--brume);color:var(--encre)}}
/* formulaire « Coller et résoudre » (feuille de l'en-tête) */
.ah-coller .ah-champ:last-of-type{margin-bottom:var(--e-4)}
.ah-coller textarea{min-height:120px}

/* ───────────────────────── 15. Barre de lot (sélection multiple) ────────────── */
.ah-lot{position:fixed;left:var(--c);right:var(--c);bottom:calc(var(--e-3) + env(safe-area-inset-bottom));z-index:1150;
  display:flex;align-items:center;gap:var(--e-3);min-height:var(--cible);padding:var(--e-2) var(--e-3);
  border-radius:var(--r-2);background:var(--encre);color:var(--papier);box-shadow:var(--ombre-flottant);
  max-width:720px;margin:0 auto;animation:ah-monte var(--duree) ease-out}
.ah-lot__n{font-weight:700;font-variant-numeric:tabular-nums;flex:1;font-size:14px}
.ah-lot .ah-b{min-height:var(--cible);padding:0 var(--e-3);font-size:14px;width:auto}
/* Le filet suit le thème : la barre est en --encre, donc claire en sombre — un blanc
   translucide y disparaissait. --trait-2 contraste avec --encre dans les deux thèmes. */
.ah-lot .ah-b--second{background:transparent;color:var(--papier);border-color:var(--trait-2)}
@media(max-width:759px){body:has(.ah-onglets) .ah-lot{bottom:calc(var(--h-onglets) + var(--e-3))}}

/* ───────────────────────── 16. États : vide, chargement, erreur ─────────────── */
.ah-vide{padding:var(--e-6) var(--e-4);text-align:center;color:var(--encre-2);font-size:14px;
  border:1px dashed var(--trait-2);border-radius:var(--r-2)}
.ah-vide h3{color:var(--encre);margin-bottom:var(--e-1)}
.ah-vide .ah-b{margin-top:var(--e-3)}
.ah-charge{position:relative;min-height:var(--h,96px);border-radius:var(--r-2);overflow:hidden;background:var(--brume)}
.ah-charge::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.35) 50%,transparent 100%);
  transform:translateX(-100%);animation:ah-balaie 1.4s infinite}
:root[data-theme="dark"] .ah-charge::after{background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.06) 50%,transparent 100%)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .ah-charge::after{
  background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.06) 50%,transparent 100%)}}
@keyframes ah-balaie{to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.ah-charge::after{display:none}}
.ah-erreur{padding:var(--e-4);border:1px solid var(--trait-2);border-left:3px solid var(--verifier);border-radius:var(--r-2);
  background:var(--surface);color:var(--encre);font-size:14px}
.ah-erreur h3{font-size:16px;margin-bottom:var(--e-1)}
.ah-erreur p{margin:0 0 var(--e-2);color:var(--encre-2)}
.ah-erreur p:last-of-type{margin-bottom:0}
.ah-erreur .ah-b{margin-top:var(--e-3)}

/* ───────────────────────── 17. Bandeau de session (unique) ──────────────────── */
.ah-session{position:sticky;top:0;z-index:1250;display:flex;align-items:center;gap:var(--e-3);flex-wrap:wrap;
  min-height:var(--cible);padding:var(--e-2) var(--c);background:var(--encre);color:var(--papier);font-size:14px}
.ah-session a{color:inherit;font-weight:700}

/* ───────────────────────── 18. Carte, encadré, ligne ────────────────────────── */
.ah-bloc{background:var(--surface);border:1px solid var(--trait);border-radius:var(--r-2);padding:var(--e-4)}
.ah-ligne{display:flex;align-items:center;gap:var(--e-3);min-height:var(--cible);padding:var(--e-2) 0;border-bottom:1px solid var(--trait)}
.ah-ligne:last-child{border-bottom:0}
.ah-ligne__t{flex:1;min-width:0}
.ah-ligne__t b{display:block;font-weight:700}
.ah-ligne__t small{display:block;font-size:14px;color:var(--encre-3)}
.ah-ligne--lien{color:inherit;text-decoration:none;cursor:pointer}
.ah-ligne--lien:active{background:var(--brume)}
@media(hover:hover){.ah-ligne--lien:hover{background:var(--brume)}}
