:root{--bg:oklch(1 0 0);--surface:oklch(1 0 0);--surface-creuse:oklch(0.97 0 0);--text:oklch(0.145 0 0);--text-muted:oklch(0.556 0 0);--border:oklch(0.922 0 0);--accent:oklch(0.7 0.128 78);--accent-texte:oklch(0.18 0.015 75);--accent-doux:oklch(0.965 0.018 85);--accent-doux-texte:oklch(0.36 0.06 72);--success:oklch(0.52 0.13 152);--warning:oklch(0.62 0.14 62);--danger:oklch(0.577 0.245 27.325);--marine:oklch(0.27 0.03 250);--marine-texte:oklch(0.97 0 0);--sarcelle:oklch(0.55 0.08 195);--sarcelle-doux:oklch(0.94 0.02 195);--orange:oklch(0.66 0.19 38);--orange-doux:oklch(0.96 0.03 45);--donnee-fond:oklch(0.975 0.004 250);--barre:oklch(0.185 0 0);--barre-texte:oklch(0.78 0 0);--barre-texte-vif:oklch(0.97 0 0);--barre-accent:oklch(0.78 0.13 82);--barre-survol:oklch(1 0 0/7%);--barre-border:oklch(1 0 0/11%);--e1:4px;--e2:8px;--e3:12px;--e4:16px;--e5:24px;--e6:32px;--e7:48px;--r:0.45rem;--r-petit:calc(var(--r) * 0.6);--r-grand:calc(var(--r) * 1.8);--r-rond:999px;--r-fil:1px;--police:var(--police-sans),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--police-etiquette:var(--police-mono),ui-monospace,SFMono-Regular,Menlo,monospace;--ombre-bulle:0 12px 32px -12px rgb(0 0 0/55%);--l-bulle:280px;--colonne-lisible:720px;--t1:13px;--t2:15px;--t3:16px;--t4:20px;--t5:28px;--t6:36px;--t0:11px;--l-colonne:280px;--h-kanban:calc(100vh - 10rem);--h-graphique:9rem;--h-graphique-bureau:16rem;--l-lignes:20rem;--l-mode:28rem;--l-acces:30rem;--l-acces-volet:33rem;--l-seuil-corps:40rem;--l-verif-corps:48rem;--l-chantier:15rem;--l-planche:1200px;--h-deux-lignes:2.8em}@media (prefers-color-scheme:dark){:root{--bg:oklch(0.145 0 0);--surface:oklch(0.205 0 0);--surface-creuse:oklch(0.269 0 0);--text:oklch(0.985 0 0);--text-muted:oklch(0.708 0 0);--border:oklch(1 0 0/10%);--accent:oklch(0.78 0.13 82);--accent-texte:oklch(0.2 0.02 75);--accent-doux:oklch(0.32 0.035 78);--accent-doux-texte:oklch(0.93 0.03 85);--success:oklch(0.72 0.15 152);--warning:oklch(0.78 0.14 70);--danger:oklch(0.704 0.191 22.216);--marine:oklch(0.32 0.03 250);--marine-texte:oklch(0.97 0 0);--sarcelle:oklch(0.7 0.09 195);--sarcelle-doux:oklch(0.28 0.03 195);--orange:oklch(0.74 0.17 42);--orange-doux:oklch(0.3 0.05 45);--donnee-fond:oklch(0.235 0.005 250);--barre:oklch(0.205 0 0);--barre-texte:oklch(0.78 0 0);--barre-texte-vif:oklch(0.985 0 0);--barre-accent:oklch(0.78 0.13 82);--barre-survol:oklch(1 0 0/7%);--barre-border:oklch(1 0 0/10%)}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--police);font-size:var(--t3);line-height:1.5;-webkit-text-size-adjust:100%}a,button{font-family:inherit}.bandeau-changement a,.bandeau-validation a,.etat-vide a,.lien,p a{color:var(--accent-doux-texte);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.lien:hover,p a:hover{color:var(--text)}.page{max-width:var(--colonne-lisible);margin:0 auto;padding:var(--e5) var(--e4) var(--e7)}.titre-page{font-size:var(--t5);font-weight:700;margin:0 0 var(--e1)}.sous-titre{color:var(--text-muted);font-size:var(--t2);margin:0 0 var(--e5)}.bouton-primaire{display:inline-flex;align-items:center;justify-content:center;gap:var(--e2);min-height:var(--e7);padding:0 var(--e5);background:var(--accent);color:var(--accent-texte);border:none;border-radius:var(--r-petit);font-size:var(--t3);font-weight:500;cursor:pointer;text-decoration:none;transition:opacity .12s linear}.bouton-primaire:hover{opacity:.9}.bouton-primaire:disabled{opacity:.5;cursor:default}.bouton-secondaire{display:inline-flex;align-items:center;justify-content:center;padding:0 var(--e4);background:transparent;cursor:pointer;text-decoration:none}.bouton-secondaire,.champ{min-height:var(--e7);color:var(--text);border:1px solid var(--border);border-radius:var(--r-petit);font-size:var(--t3)}.champ{width:100%;padding:var(--e3);background:var(--surface)}.champ:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.champ-libelle{display:block;font-size:var(--t2);font-weight:600;margin-bottom:var(--e2)}.erreur-en-ligne{color:var(--danger);font-size:var(--t2);margin-top:var(--e2)}.carte-affaire{display:block;width:100%;text-align:left;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-grand);padding:var(--e4);margin-bottom:var(--e3);cursor:pointer}.carte-affaire-client{display:block;font-weight:700;font-size:var(--t3)}.carte-affaire-projet{display:block;color:var(--text-muted);font-size:var(--t2)}.carte-affaire-attente{display:block;margin-top:var(--e2);font-size:var(--t2)}.carte-affaire-quoi{font-weight:600}.carte-affaire-quoi[data-ton=a-toi]{color:var(--accent-doux-texte)}.carte-affaire-quoi[data-ton=attente]{color:var(--warning)}.carte-affaire-quoi[data-ton=valide]{color:var(--success)}.badge-statut{display:inline-block;padding:var(--e1) var(--e2);white-space:nowrap;border-radius:var(--r-petit);font-size:var(--t1);font-weight:600;border:1px solid var(--border);color:var(--text-muted)}.badge-statut[data-ton=attente]{color:var(--warning);border-color:var(--warning)}.badge-statut[data-ton=a-toi]{color:var(--accent);border-color:var(--accent)}.badge-statut[data-ton=valide]{color:var(--success);border-color:var(--success)}.pastille-version{display:inline-block;padding:var(--e1) var(--e2);font-size:var(--t1);font-weight:600;color:var(--text-muted)}.bandeau-changement,.pastille-version{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit)}.bandeau-changement{border-left:3px solid var(--accent);padding:var(--e3) var(--e4);margin-bottom:var(--e4);font-size:var(--t2)}.bandeau-changement[data-ton=rien]{border-left-color:var(--border);color:var(--text-muted)}.image-cadre{position:relative;border-radius:var(--r-grand);overflow:hidden;border:1px solid var(--border);background:var(--surface)}.image-planche{display:block;width:100%;height:auto}.epingle-annotation{position:absolute;transform:translate(-50%,-100%);min-width:var(--e6);height:var(--e6);padding:0 var(--e2);background:color-mix(in oklch,var(--accent) 62%,transparent);color:var(--accent-texte);border:2px solid var(--accent);border-radius:50%;font-size:var(--t1);font-weight:700;cursor:pointer}.epingle-annotation:after{content:"";position:absolute;left:50%;bottom:-5px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 1.5px var(--surface)}.etat-vide{border:1px dashed var(--border);border-radius:var(--r-grand);padding:var(--e6) var(--e4);text-align:center}.chargement,.etat-vide{color:var(--text-muted)}.chargement{font-size:var(--t2);padding:var(--e4) 0}.epingle-en-cours{background:color-mix(in oklch,var(--text-muted) 55%,transparent);border-color:var(--text-muted)}.epingle-en-cours:after{background:var(--text-muted)}.pastille-cartouche{display:inline-block;padding:var(--e1) var(--e2);
  /* ! Elle était le clone exact de `pastille-version` — donc « v2 · 14
     août » et « PL-04 IND. B » se ressemblaient, alors que l'un vient de
     nous et l'autre du dessin. Le cartouche prend le registre du plan :
     encadré net, sans arrondi, en capitales monospace, comme il apparaît
     dans le coin de la planche. */background:transparent;border:1px solid var(--text-muted);border-radius:0;font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.08em;color:var(--text)}.bandeau-validation{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:var(--r-petit);padding:var(--e3) var(--e4);margin-bottom:var(--e4);font-size:var(--t2)}.bloc-erreur{border:1px solid var(--danger);border-radius:var(--r-grand);padding:var(--e5) var(--e4);text-align:center}.bloc-erreur[data-ton=definitive]{border-color:var(--border)}.bloc-erreur-titre{margin:0;font-size:var(--t4);color:var(--text)}.bloc-erreur-suite{margin:var(--e3) 0 0;font-size:var(--t2);color:var(--text-muted)}.fil-phases{display:flex;gap:var(--e1);margin-bottom:var(--e4)}.fil-phases-etape{flex:1 1;height:var(--e1);border-radius:2px;background:var(--border)}.fil-phases-etape[data-statut=validee]{background:var(--success)}.fil-phases-etape[data-statut=en_cours]{background:var(--accent)}.carte-phase{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-grand);padding:var(--e4);margin-bottom:var(--e3)}.carte-phase[data-statut=en_cours]{border-color:var(--accent)}.carte-phase-titre{display:block;font-weight:700;font-size:var(--t3)}.carte-phase-attendu{display:block;color:var(--text-muted);font-size:var(--t2);margin-top:var(--e1)}.attendu-client{font-size:var(--t4);font-weight:700;line-height:1.35;margin:0 0 var(--e2)}.carte-remarque{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit);padding:var(--e3);margin-bottom:var(--e2);font-size:var(--t2);cursor:pointer;font-family:inherit;color:var(--text)}.carte-remarque[data-statut=resolue]{opacity:.6}.carte-remarque-numero{display:inline-block;min-width:var(--e5);font-weight:700;color:var(--accent)}.carte-remarque-reponse{margin-top:var(--e2);padding-left:var(--e5);color:var(--text-muted);border-left:2px solid var(--border)}.choix-decision{display:grid;grid-gap:var(--e3);gap:var(--e3)}.choix-decision button{width:100%}.message{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit);padding:var(--e3);margin-bottom:var(--e2);font-size:var(--t2)}.message[data-auteur=architecte]{border-left:3px solid var(--accent)}.message-entete{color:var(--text-muted);font-size:var(--t1);margin-bottom:var(--e1)}.ligne-action{display:block;width:100%;text-align:left;text-decoration:none;background:var(--surface);border-left:1px solid var(--border);border:1px solid var(--border);border-left-width:3px;border-radius:var(--r-petit);padding:var(--e3) var(--e4);margin-bottom:var(--e2);cursor:pointer;font-family:inherit;color:var(--text)}.ligne-action[data-ton=a-toi]{border-left-color:var(--accent)}.ligne-action[data-ton=attente]{border-left-color:var(--warning)}.ligne-action-quoi{display:block;font-weight:600;font-size:var(--t3)}.ligne-action-qui{display:block;color:var(--text-muted);font-size:var(--t2);margin-top:var(--e1)}.defile-horizontal{overflow-x:auto}.accroche{padding:var(--e7) 0 var(--e6)}.accroche h1{font-size:var(--t6);font-weight:700;line-height:1.15;margin:0 0 var(--e4);letter-spacing:-.02em}.accroche-sous{font-size:var(--t4);color:var(--text-muted);margin:0 0 var(--e5)}.section-produit{padding:var(--e6) 0;border-top:1px solid var(--border)}.section-produit h2{font-size:var(--t5);font-weight:700;margin:0 0 var(--e3);line-height:1.2}.section-produit p{color:var(--text-muted);margin:0 0 var(--e4)}.capture{border:1px solid var(--border);border-radius:var(--r-grand);overflow:hidden;background:var(--surface);margin-bottom:var(--e4)}.capture img{display:block;width:100%;height:auto}.epingle-architecte{background:color-mix(in oklch,var(--barre) 62%,transparent);color:var(--barre-accent);border-color:var(--barre);box-shadow:0 0 0 2px var(--surface)}.epingle-architecte:after{background:var(--barre)}.photo-jointe{display:block;width:100%;height:auto}.case,.photo-jointe{border:1px solid var(--border);border-radius:var(--r-petit)}.case{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:0 0 auto;width:var(--e5);height:var(--e5);margin:0;background:var(--surface);cursor:pointer;display:inline-grid;place-content:center;transition:background-color .12s linear,border-color .12s linear}.case[type=radio]{border-radius:50%}.case:hover{border-color:var(--text-muted)}.case:checked{background:var(--accent);border-color:var(--accent)}.case[type=checkbox]:after{content:"";width:6px;height:11px;border:solid var(--accent-texte);border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);opacity:0;transition:opacity .12s linear}.case[type=checkbox]:checked:after{opacity:1}.case[type=radio]:after{content:"";width:var(--e2);height:var(--e2);border-radius:50%;background:var(--accent-texte);opacity:0;transition:opacity .12s linear}.case[type=radio]:checked:after{opacity:1}.case:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.case:disabled{opacity:.5;cursor:default}.ligne-case{display:flex;gap:var(--e3);align-items:flex-start;padding:var(--e2) 0;cursor:pointer;font-size:var(--t2)}.ligne-case>.case{margin-top:2px}:root{--barre-h:64px;--entete-h:56px;--refuge-bas:env(safe-area-inset-bottom,0px)}.ecran{max-width:560px;margin:0 auto;padding:var(--e4) var(--e4) calc(var(--barre-h) + var(--refuge-bas) + var(--e6))}.entete-app{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--e3);min-height:var(--entete-h);margin:calc(var(--e4) * -1) calc(var(--e4) * -1) var(--e4);padding:0 var(--e4);background:var(--bg);border-bottom:1px solid var(--border)}.entete-app-titre{font-size:var(--t3);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entete-app-retour{display:inline-grid;place-content:center;width:var(--e7);height:var(--e7);margin-left:calc(var(--e3) * -1);border:none;background:transparent;color:var(--text);border-radius:var(--r-petit);cursor:pointer;text-decoration:none}.barre-basse,.entete-app-retour:hover{background:var(--surface)}.barre-basse{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;padding-bottom:var(--refuge-bas);border-top:1px solid var(--border)}.barre-basse a{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--barre-h);color:var(--text-muted);text-decoration:none;font-size:var(--t1);font-weight:600}.barre-basse a[data-actif=oui]{color:var(--accent)}.barre-basse svg,.entete-app-retour svg{width:var(--e5);height:var(--e5)}.pastille-compte{position:absolute;transform:translate(14px,-12px);min-width:18px;height:18px;padding:0 5px;background:var(--accent);color:var(--accent-texte);border-radius:9px;font-size:11px;font-weight:700;line-height:18px;text-align:center}.salutation{font-size:var(--t5);font-weight:700;margin:var(--e3) 0 var(--e1)}.salutation-jour{color:var(--text-muted);font-size:var(--t2);margin:0 0 var(--e5)}.coup-d-oeil{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--e2);gap:var(--e2)}.coup-d-oeil>*{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-grand);padding:var(--e3);text-align:center;text-decoration:none;color:inherit}.coup-d-oeil-nombre{display:block;font-size:var(--t5);font-weight:700;line-height:1.1}.coup-d-oeil-quoi{display:block;color:var(--text-muted);font-size:var(--t1);margin-top:var(--e1)}.liste-menu{border-top:1px solid var(--border)}.liste-menu a,.liste-menu button{display:flex;align-items:center;justify-content:space-between;gap:var(--e3);width:100%;min-height:var(--e7);padding:var(--e3) 0;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-decoration:none;font-family:inherit;font-size:var(--t3);text-align:left;cursor:pointer}.liste-menu-detail{color:var(--text-muted);font-size:var(--t2)}.action-flottante{position:fixed;right:var(--e4);bottom:calc(var(--barre-h) + var(--refuge-bas) + var(--e4));z-index:15;box-shadow:0 2px 12px rgb(0 0 0/18%)}@media (min-width:720px){.barre-basse{max-width:560px;margin:0 auto;border-radius:var(--r-grand) var(--r-grand) 0 0}}.etiquette{letter-spacing:.1em;font-weight:500;color:var(--text-muted)}.coup-d-oeil-quoi,.etiquette,.message-entete,.pastille-version{font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase}.coup-d-oeil-quoi,.message-entete,.pastille-version{letter-spacing:.08em}.barre-laterale{display:none}@media (min-width:1024px){.barre-basse{display:none}.coquille{display:grid;grid-template-columns:264px 1fr;min-height:100vh}
  /* ! `1fr` vaut `minmax(auto, 1fr)` : la colonne refuse de descendre sous
     la largeur minimale de son contenu, et un kanban de cinq colonnes
     fixes l'étirait à 1 448 px — l'en-tête d'écran sortait de la fenêtre
     et la page défilait en largeur. `min-width: 0` rend le défilement au
     kanban, qui est fait pour ça. */.coquille>div{min-width:0}.barre-laterale{display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;background:var(--barre);color:var(--barre-texte);padding:var(--e5) var(--e3);border-right:1px solid var(--barre-border)}.ecran{max-width:820px;margin:0;padding:var(--e6) var(--e6) var(--e7)}.action-flottante{position:static;box-shadow:none}.entete-app{margin-left:calc(var(--e6) * -1);margin-right:calc(var(--e6) * -1);padding:0 var(--e6)}.page--produit{max-width:1040px;padding:var(--e6) var(--e6) var(--e7)}.accroche{max-width:760px;padding:var(--e7) 0 var(--e6)}.accroche h1{font-size:52px}.section-produit>p{max-width:68ch}}.barre-laterale-marque{display:flex;align-items:center;gap:var(--e2);padding:0 var(--e3) var(--e4);border-bottom:1px solid var(--barre-border);margin-bottom:var(--e4)}.barre-laterale-marque strong{color:var(--barre-texte-vif);font-size:var(--t4);font-weight:700;letter-spacing:-.01em}.barre-laterale-marque span{letter-spacing:.14em;opacity:.6}.barre-laterale-marque span,.barre-laterale-titre{font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;color:var(--barre-texte)}.barre-laterale-titre{letter-spacing:.16em;opacity:.55;padding:var(--e4) var(--e3) var(--e2)}.barre-laterale a{display:flex;align-items:center;gap:var(--e3);padding:var(--e3);border-left:2px solid transparent;color:var(--barre-texte);text-decoration:none;font-size:var(--t2);border-radius:0 var(--r-petit) var(--r-petit) 0}.barre-laterale a:hover,.barre-laterale a[data-actif=oui]{background:var(--barre-survol);color:var(--barre-texte-vif)}.barre-laterale a[data-actif=oui]{border-left-color:var(--barre-accent)}.barre-laterale a[data-actif=oui] svg{color:var(--barre-accent)}.barre-laterale svg{width:var(--e5);height:var(--e5);flex:0 0 auto}.barre-laterale-compte{margin-left:auto;font-weight:700;background:var(--barre-accent);color:var(--accent-texte);border-radius:9px;padding:1px 7px}.barre-laterale-compte,.barre-laterale-pied{font-family:var(--police-etiquette);font-size:var(--t0)}.barre-laterale-pied{margin-top:auto;padding:var(--e4) var(--e3) 0;border-top:1px solid var(--barre-border);text-transform:uppercase;letter-spacing:.1em;color:var(--barre-texte);opacity:.55}.appareil{position:relative;width:288px;flex:0 0 auto;border-radius:40px;padding:10px;background:var(--barre);box-shadow:0 24px 48px -18px rgb(0 0 0/45%),0 0 0 1px var(--border)}.appareil-ecran{position:relative;border-radius:31px;overflow:hidden;background:var(--bg);padding:var(--e5) var(--e3) var(--e3)}.appareil:before{content:"";top:20px;width:76px;height:18px;border-radius:10px;background:var(--barre);z-index:2}.appareil-barre,.appareil:before{position:absolute;left:50%;transform:translateX(-50%)}.appareil-barre{bottom:18px;width:96px;height:4px;border-radius:2px;background:var(--text);opacity:.28}.appareil-plan{display:block;width:100%;height:auto;border-radius:var(--r-petit);border:1px solid var(--border);background:var(--surface-creuse)}.appareil-cadre{position:relative;margin-bottom:var(--e2)}.appareil-epingle{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--accent-texte);font-family:var(--police-etiquette);font-size:11px;font-weight:700;display:grid;place-content:center}.appareil-epingle[data-qui=architecte]{background:var(--barre);color:var(--barre-accent);box-shadow:0 0 0 2px var(--surface)}.accroche-duo{display:flex;flex-direction:column;gap:var(--e6)}@media (min-width:900px){.accroche-duo{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--e7)}.accroche-duo>.accroche-propos{max-width:560px}.appareil{width:320px}}@media (max-width:380px){.appareil{width:100%;max-width:288px;margin:0 auto}}.appareil-bloc{margin:0;display:flex;flex-direction:column;gap:var(--e3);align-items:center}.appareil-legende{max-width:288px;text-align:center;font-size:var(--t1);color:var(--text-muted);line-height:1.5}.public-cible{display:inline-block;font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.14em;color:var(--accent-doux-texte);background:var(--accent-doux);border-radius:var(--r-petit);padding:var(--e1) var(--e2);margin-bottom:var(--e3)}.cartes{display:grid;grid-gap:var(--e3);gap:var(--e3);margin:0 0 var(--e5);padding:0;list-style:none}.cartes li{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-grand);padding:var(--e4)}.cartes strong{display:block;font-size:var(--t3);margin-bottom:var(--e1)}.cartes span{color:var(--text-muted);font-size:var(--t2)}@media (min-width:760px){.cartes{grid-template-columns:repeat(3,1fr)}}.bloc-final{padding:var(--e7) 0;text-align:center}.bloc-final h2{font-size:var(--t5);margin:0 0 var(--e3)}.bloc-final p{color:var(--text-muted);margin:0 0 var(--e5)}.visionneuse{position:relative;aspect-ratio:4/3;min-height:260px;max-height:72vh;border:1px solid var(--border);border-radius:var(--r-grand);overflow:hidden;background:var(--surface-creuse)}.visionneuse-toile{width:100%;height:100%}
/* ! Elle visait `data-pointer`, un attribut que le composant ne rend
   plus depuis que le mode a disparu : la règle ne s'appliquait à rien, et
   rien ne signifiait que le plan se touche. Le curseur est le seul
   signifiant dont on dispose sur ordinateur — il ne peut pas être un
   attribut mort. */.visionneuse[data-actif=oui] .visionneuse-toile{cursor:crosshair}.visionneuse-attente{position:absolute;inset:0;display:grid;place-content:center;margin:0}.visionneuse-filigrane{position:absolute;inset:0;pointer-events:none;display:grid;place-content:center;font-size:var(--t4);letter-spacing:.3em;opacity:.07;transform:rotate(-24deg)}.outil,.visionneuse-filigrane{font-family:var(--police-etiquette);text-transform:uppercase;color:var(--text)}.outil{min-height:var(--e6);padding:0 var(--e3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit);font-size:var(--t0);letter-spacing:.08em;cursor:pointer}.outil:hover{border-color:var(--text-muted)}.outil[data-actif=oui]{background:var(--accent);color:var(--accent-texte);border-color:var(--accent)}.openseadragon-overlay-wrapper .epingle-annotation{position:relative;transform:none}.voix-illisible{margin:var(--e2) 0 0;font-size:var(--t1);color:var(--text-muted)}.voix-illisible a{color:var(--accent)}.feuilles{display:flex;gap:var(--e2);flex-wrap:wrap;margin-bottom:var(--e2)}.feuille{display:inline-flex;align-items:center;gap:var(--e2);min-height:var(--e6);padding:0 var(--e3);background:var(--surface);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--r-petit);font-size:var(--t1);font-weight:600;cursor:pointer}.feuille[data-active=oui]{color:var(--text);border-color:var(--text-muted);background:var(--surface-creuse)}.feuille-compte{min-width:var(--e4);height:var(--e4);padding:0 var(--e1);border-radius:var(--r-rond);background:var(--accent);color:var(--accent-texte);font-size:var(--t0);display:grid;place-content:center}.feuille-avis{width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.feuille-avis[data-sens=approuve]{background:var(--success)}.feuille-avis[data-sens=rejete]{background:var(--danger)}.avis-feuille{margin:var(--e3) 0}.avis-choix{display:flex;gap:var(--e2);flex-wrap:wrap;margin-top:var(--e2)}.avis-bouton{min-height:var(--e6);padding:0 var(--e3);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-rond);font:inherit;font-size:var(--t2);cursor:pointer}.avis-bouton[data-actif=oui]{background:var(--text);color:var(--bg);border-color:var(--text)}.visionneuse-toile{touch-action:none}.ancre-point{position:absolute;z-index:3;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:transparent;border:3px solid var(--accent);box-shadow:0 0 0 1.5px var(--surface),inset 0 0 0 1.5px var(--surface);animation:ancre-pose .26s cubic-bezier(.2,.9,.3,1.3)}@keyframes ancre-pose{0%{transform:scale(0)}to{transform:scale(1)}}.ancre-bulle{position:absolute;z-index:4;width:min(var(--l-bulle),78vw);transform:translate(-50%,var(--e3));animation:bulle-ouvre .16s cubic-bezier(.2,.9,.3,1.05)}.ancre-bulle[data-cote=haut]{transform:translate(-50%,calc(-100% - var(--e3)))}@keyframes bulle-ouvre{0%{opacity:0}to{opacity:1}}.bulle{background:var(--surface);border:1px solid var(--accent);border-radius:var(--r-grand);box-shadow:var(--ombre-bulle);padding:var(--e3);font-size:var(--t2);color:var(--text)}.bulle-champ{width:100%;resize:none;background:transparent;border:0;padding:0;color:var(--text);font:inherit;font-family:inherit}.bulle-champ:focus{outline:none}.bulle-champ::placeholder{color:var(--text-muted)}.bulle-pied{display:flex;align-items:center;gap:var(--e2);margin-top:var(--e2)}.bulle-pied>:nth-child(2){margin-left:auto}.bulle-texte{margin:0}.bulle-reponse{padding-left:var(--e3);border-left:2px solid var(--accent)}.bulle-effacer,.bulle-etat,.bulle-reponse{margin:var(--e2) 0 0;color:var(--text-muted)}.bulle-effacer,.bulle-etat{font-size:var(--t1)}.bulle-effacer{display:block;background:none;border:0;padding:0;cursor:pointer;font-family:inherit;text-decoration:underline}.bulle-envoyer,.bulle-fermer{width:var(--e6);height:var(--e6);flex:0 0 auto;display:grid;place-content:center;border-radius:50%;border:0;cursor:pointer;font-family:inherit;font-size:var(--t2)}.bulle-fermer{background:transparent;color:var(--text-muted)}.bulle-fermer-seul{float:right;margin:calc(var(--e2) * -1) calc(var(--e2) * -1) 0 0}.bulle-envoyer{background:var(--accent);color:var(--accent-texte)}.bulle-envoyer:disabled{background:var(--surface-creuse);color:var(--text-muted);cursor:default}.bulle-envoyer svg{width:18px;height:18px}.micro{width:var(--e6);height:var(--e6);flex:0 0 auto;display:grid;place-content:center;border-radius:50%;background:var(--surface-creuse);color:var(--text);border:1px solid var(--border);cursor:pointer;touch-action:none}.micro svg{width:20px;height:20px}.micro-actif{background:var(--accent);color:var(--accent-texte);border-color:var(--accent);transform:scale(1.08)}.micro-en-cours{gap:var(--e2)}.micro-en-cours,.onde{display:flex;align-items:center;flex:1 1}.onde{gap:2px;height:var(--e5);min-width:0;overflow:hidden}.onde-barre{flex:1 1;min-width:2px;border-radius:var(--r-fil);background:var(--text-muted);opacity:.45;transition:height 90ms linear}.onde-barre[data-passe=oui]{background:var(--accent);opacity:1}.onde[data-vif=oui] .onde-barre{background:var(--accent);opacity:.9}.onde[data-vif=oui] .onde-barre:last-child{opacity:1}.lecteur-voix{display:flex;align-items:center;gap:var(--e2);margin-top:var(--e2)}.lecteur-bouton{width:var(--e6);height:var(--e6);flex:0 0 auto;display:grid;place-content:center;border-radius:50%;background:var(--accent);color:var(--accent-texte);border:0;cursor:pointer}.lecteur-bouton svg{width:18px;height:18px}.lecteur-duree{font-family:var(--police-etiquette);font-size:var(--t0);color:var(--text-muted);flex:0 0 auto}.ligne-question{display:flex;align-items:baseline;gap:var(--e2);width:100%;text-align:left;cursor:pointer;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-petit);padding:var(--e3);margin-bottom:var(--e2);font-family:inherit;font-size:var(--t2)}.ligne-question[data-statut=resolue]{opacity:.6}.ligne-question-corps{flex:1 1;min-width:0}.ligne-question-voix{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent)}.ligne-question-etat{flex:0 0 auto;font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.decision-portee{margin:0 0 var(--e4);font-size:var(--t2);color:var(--text-muted)}.epingle-annotation[data-etat=repondue]{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--success)}.epingle-annotation[data-etat=resolue]{background:color-mix(in oklch,var(--surface) 70%,transparent);color:var(--text-muted);border-color:var(--border);opacity:.8}.epingle-annotation[data-etat=resolue]:after{background:var(--border)}.tampon-decision{display:flex;flex-direction:column;gap:2px;margin:calc(var(--e1) * -1) 0 var(--e3);padding:var(--e3);background:var(--surface);border-radius:0 0 var(--r-grand) var(--r-grand);border:1px solid var(--text);border-top:none;font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.06em;color:var(--text)}.tampon-decision strong{letter-spacing:.12em}.tampon-decision span{color:var(--text-muted);text-transform:none;letter-spacing:0}

/* ! Ce bandeau existe parce qu'un dossier préparé et jamais envoyé est le
   pire état du produit : l'architecte croit avoir livré, le client n'a
   rien reçu, personne ne relance personne. Il prend donc le ton « à toi »
   et un bouton plein, pas un lien discret. */.bandeau-envoi-attente{display:flex;align-items:center;justify-content:space-between;gap:var(--e3);flex-wrap:wrap;padding:var(--e3) var(--e4);margin-bottom:var(--e4);background:var(--surface);border-left:1px solid var(--accent);border:1px solid var(--accent);border-left-width:3px;border-radius:var(--r-petit)}.liste-feuilles{list-style:none;margin:0 0 var(--e3);padding:0;display:grid;grid-gap:var(--e1);gap:var(--e1)}.liste-feuilles li{display:flex;align-items:center;gap:var(--e2);flex-wrap:wrap;font-size:var(--t2)}.feuille-indice{font-family:var(--police-etiquette);text-transform:uppercase;letter-spacing:.06em}.feuille-indice,.feuille-reprise{font-size:var(--t0);color:var(--text-muted)}.feuille-reprise{border:1px solid var(--border);border-radius:var(--r-petit);padding:0 var(--e1)}.historique{list-style:none;margin:0 0 var(--e5);padding:0;display:grid;grid-gap:var(--e2);gap:var(--e2)}.historique-bouton{display:block;width:100%;text-align:left;padding:var(--e3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit);color:inherit;font:inherit;cursor:pointer}.historique-bouton:hover{border-color:var(--text-muted)}.historique-bouton:disabled{opacity:.6;cursor:default}

/* ! Aucun or ici. L'or est la couleur de l'engagement ; s'en servir pour
   marquer la version en cours l'apprendrait comme inoffensif douze
   secondes avant qu'il devienne irréversible (ADR-008). Le trait à
   gauche suffit à la désigner. */.historique-ligne[data-actif=oui] .historique-bouton{border-left:3px solid var(--text)}.historique-tete{display:flex;align-items:baseline;gap:var(--e2);flex-wrap:wrap;margin-bottom:var(--e1)}.historique-active,.historique-date{font-size:var(--t1);color:var(--text-muted)}.historique-active{font-weight:600;border:1px solid var(--border);border-radius:var(--r-petit);padding:0 var(--e2)}.historique-feuilles{font-size:var(--t2)}.historique-message,.historique-reprises{color:var(--text-muted)}.historique-message{font-size:var(--t2);margin-top:var(--e1)}.historique-pied{margin-top:var(--e2)}.historique-pied,.note-historique{font-size:var(--t1);color:var(--text-muted)}.note-historique{margin:0 0 var(--e5)}.bandeau-perime{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--text-muted);border-radius:var(--r-petit);padding:var(--e3);margin-bottom:var(--e3);font-size:var(--t2)}.pastille-versions{text-decoration:none;cursor:pointer;display:inline-flex;align-items:baseline;gap:var(--e2)}.pastille-versions:hover{border-color:var(--text-muted)}.pastille-versions-suite{font-weight:400;text-decoration:underline;text-underline-offset:2px}.lien-retour{display:inline-block;margin-bottom:var(--e3);background:none;border:0;padding:0;color:var(--text-muted);font:inherit;font-size:var(--t2);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.lien-retour:hover{color:var(--text)}.propose-verdict{margin:0 0 var(--e3);padding:var(--e2) var(--e3);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--text-muted);border-radius:var(--r-petit);font-size:var(--t2)}.suggere{display:block;margin-top:2px;font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.06em;opacity:.7;font-weight:400}.champ-montant{flex:1 1 14rem;min-width:12rem}.champ-montant label{display:block;font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--e1)}.champ-montant-saisie{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--r-petit);background:var(--surface);overflow:hidden}.champ-montant-saisie:focus-within{outline:2px solid var(--accent);outline-offset:1px}.champ-montant-saisie input{flex:1 1;min-width:0;padding:var(--e2) var(--e3);border:0;background:transparent;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--t3);font-weight:600}.champ-montant-saisie input:focus{outline:none}.champ-montant-unite{display:flex;align-items:center;padding:0 var(--e3);background:var(--surface-creuse);border-left:1px solid var(--border);font-family:var(--police-etiquette);font-size:var(--t0);letter-spacing:.08em;color:var(--text-muted)}.champ-montant-note{margin:var(--e1) 0 0;font-size:var(--t1);color:var(--text-muted);max-width:38ch}.pastille-montant{display:inline-block;padding:var(--e1) var(--e2);font-size:var(--t1);font-weight:600;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bandeau-montant,.pastille-montant{background:var(--surface-creuse);border:1px solid var(--border);border-radius:var(--r-petit)}.bandeau-montant{display:flex;flex-direction:column;gap:var(--e2);padding:var(--e3) var(--e4);margin-bottom:var(--e4)}.bandeau-montant>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--e3);flex-wrap:wrap}.bandeau-montant-libelle{font-size:var(--t1);color:var(--text-muted)}.bandeau-montant-somme{font-size:var(--t4);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.bandeau-montant p{margin:0;font-size:var(--t1);color:var(--text-muted);max-width:46ch}.plan-et-confirmation{position:relative}.confirmation{position:absolute;left:var(--e3);right:var(--e3);bottom:var(--e3);z-index:5;padding:var(--e4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-grand);box-shadow:0 12px 32px oklch(0 0 0/18%);max-height:calc(100% - var(--e5));overflow-y:auto}.confirmation-phrase{margin:0;font-weight:600;font-size:var(--t3)}.confirmation-portee{margin:var(--e1) 0 var(--e3);font-size:var(--t1);color:var(--text-muted)}.confirmation-libelle{display:block;margin:var(--e3) 0 var(--e1);font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.confirmation-libelle:first-of-type{margin-top:0}.confirmation .champ{min-height:var(--e6);font-size:var(--t2)}.confirmation-note{margin:var(--e1) 0 0;font-size:var(--t1);color:var(--text-muted);max-width:44ch}.confirmation-gestes{display:flex;gap:var(--e3);margin-top:var(--e4);flex-wrap:wrap}.confirmation-manque{margin:var(--e2) 0 0;font-size:var(--t2);color:var(--text-muted)}.choix-decision button[data-choisi=oui]{outline:2px solid var(--accent);outline-offset:2px}@media (min-width:720px){.confirmation{left:auto;right:var(--e4);width:min(30rem,60%)}}.bulle-transcription,.transcription-figee{margin:var(--e2) 0 0;padding-left:var(--e3);border-left:2px solid var(--border);font-size:var(--t2);color:var(--text)}.bulle-transcription-source,.transcription-source{display:block;margin-top:2px;font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.transcription{margin-top:var(--e2)}

/* ! Les champs d'une carte de question ont la MÊME taille. « Répondre
   sans corriger » portait la taille pleine (48 px, t3) et la
   transcription la petite (32 px, t2) : deux boîtes côte à côte, l'une
   plus grosse que l'autre sans raison — et une différence de taille se
   lit comme une différence d'importance. */.carte-remarque .champ,.transcription .champ{min-height:var(--e6);font-size:var(--t2)}.transcription-note{margin:var(--e1) 0 0;font-size:var(--t1);color:var(--text-muted);max-width:52ch}.ligne-question-source{display:block;text-transform:uppercase}.ligne-question-source,.ligne-question-voix{font-family:var(--police-etiquette);font-size:var(--t0);letter-spacing:.06em;color:var(--text-muted)}.ligne-question-voix{display:inline-flex;align-items:center;gap:4px;margin-left:var(--e2);vertical-align:middle}.ligne-question-voix:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.ligne-action-rangee{display:grid;grid-template-columns:1fr auto;align-items:start;grid-gap:var(--e2);gap:var(--e2);margin-bottom:var(--e2)}.ligne-action-rangee .ligne-action{margin-bottom:0}.ligne-action-rangee:has(.relance){grid-template-columns:1fr}.bouton-petit,.ligne-action-relance{align-self:start;padding:var(--e1) var(--e3);min-height:var(--e6);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit);color:var(--text);font:inherit;font-size:var(--t2);cursor:pointer;white-space:nowrap}.bouton-petit:hover,.ligne-action-relance:hover{border-color:var(--text-muted)}.relance{padding:var(--e3) var(--e4);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--warning);border-radius:var(--r-petit)}.relance-champ{min-height:auto;font-size:var(--t2);line-height:1.45;font-family:inherit;resize:vertical}.gestes,.relance-gestes{display:flex;align-items:center;gap:var(--e3);margin-top:var(--e3);flex-wrap:wrap}.note-limite{margin:var(--e2) 0 0;font-size:var(--t2);line-height:1.45;color:var(--text-muted);max-width:60ch}.note-limite a{color:var(--accent-doux-texte)}.cloture{margin-top:var(--e5);padding:var(--e4);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-petit)}.cloture-titre{margin:0;font-weight:600;font-size:var(--t3)}.cloture-choix{display:grid;grid-gap:var(--e2);gap:var(--e2);margin:var(--e3) 0}.cloture-proposition{text-align:left;padding:var(--e2) var(--e3);background:var(--surface-creuse);color:var(--text);border:1px solid var(--border);border-radius:var(--r-petit);font-family:inherit;font-size:var(--t2);cursor:pointer}.cloture-proposition:hover{border-color:var(--text-muted)}.cloture-proposition[data-choisi=oui]{border-color:var(--accent);outline:1px solid var(--accent)}.carte-affaire[data-role=titre]{border-left:3px solid var(--accent)}.piece-role{margin-left:var(--e2);padding:2px var(--e2);background:var(--accent-doux);color:var(--accent-doux-texte);border-radius:var(--r-petit);font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.06em;vertical-align:middle}.piece-fait{display:block;margin-top:var(--e1);font-size:var(--t1);color:var(--text-muted);max-width:52ch}

/* ! La carte ne doit pas couvrir ce qu'elle est censée laisser voir.
   Mesuré : 236 px de carte sur 260 px de plan — le plan restait à
   l'écran et devenait invisible, ce qui est la même défaite avec une
   étape de plus.

   Deux corrections, et la première compte davantage : le plan GRANDIT
   pendant qu'on décide. C'est le moment où on le regarde le plus. */.plan-et-confirmation:has(.confirmation) .visionneuse{min-height:min(62vh,460px);transition:min-height .18s ease-out}.confirmation{max-height:62%}.confirmation-ajouter{margin-top:var(--e3);padding:0;background:none;border:0;color:var(--text-muted);font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.06em;text-decoration:underline;cursor:pointer}.confirmation-ajouter:hover{color:var(--text)}.etape-argent{display:block;margin-top:var(--e2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.etape-argent strong{font-size:var(--t3)}.etape-argent-mot{display:inline-block;margin-left:var(--e2);font-size:var(--t1);color:var(--text-muted)}.etape-argent[data-nature=facture] strong{color:var(--text)}.etape-argent[data-nature=estime] strong{color:var(--text-muted);border-bottom:1px dashed var(--border)}.etape-argent[data-nature=vide] .etape-argent-mot{margin-left:0}.etape-argent-change{display:block;margin-top:var(--e1);font-size:var(--t2);color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.argent-projet{margin-top:var(--e6)}.argent-projet h2{font-size:var(--t4);margin:0 0 var(--e3)}.argent-natures{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--e3);gap:var(--e3)}.argent-natures>div{padding:var(--e3) var(--e4);border:1px solid var(--border);border-radius:var(--r-petit);background:var(--surface)}.argent-natures>div[data-nature=estime]{border-style:dashed;background:transparent}.argent-natures strong{display:block;margin-top:var(--e1);font-size:var(--t4);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.argent-natures>div[data-nature=estime] strong{color:var(--text-muted)}.argent-mot{font-size:var(--t1)}.argent-detail,.argent-mot{display:block;color:var(--text-muted)}.argent-detail{margin-top:var(--e1);font-size:var(--t2)}.argent-barre{height:8px;margin-top:var(--e3);background:var(--surface-creuse);border:1px solid var(--border);border-radius:var(--r-rond,999px);overflow:hidden}.argent-barre span{display:block;height:100%;background:var(--text-muted)}.argent-note{margin:var(--e3) 0 0;font-size:var(--t2);color:var(--text-muted);max-width:60ch}.etapes{display:grid;grid-gap:var(--e2);gap:var(--e2);margin:0 0 var(--e5)}.etape-ligne{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column-gap:var(--e3);column-gap:var(--e3);padding:var(--e3) var(--e4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit)}.etape-ligne[data-statut=validee]{background:var(--surface-creuse);border-color:transparent}.etape-ligne-titre{font-size:var(--t2);font-weight:600}.etape-ligne-etat{font-size:var(--t2);color:var(--text-muted);text-align:right}.etape-ligne[data-statut=validee] .etape-ligne-etat{color:var(--success)}.etape-ligne-detail{grid-column:1/-1;margin-top:var(--e1);font-size:var(--t2);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.carte-phase[data-courante=oui]{margin-bottom:0}.carte-phase[data-courante=oui] .carte-phase-titre{font-size:var(--t4);line-height:1.3}@media (max-width:480px){.argent-natures{grid-template-columns:1fr}}.chiffrage{margin-top:var(--e4);padding:var(--e4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit)}.chiffrage-lignes{display:grid;grid-gap:var(--e3);gap:var(--e3);margin:var(--e3) 0}.chiffrage-ligne{display:grid;grid-template-columns:1fr 11rem;grid-gap:var(--e2) var(--e3);gap:var(--e2) var(--e3);align-items:center}.chiffrage-nom{font-size:var(--t2)}.chiffrage-saisie{min-width:0}.chiffrage-saisie input{font-size:var(--t2);padding:var(--e2)}.chiffrage-fige{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-muted)}.chiffrage-change{grid-column:1/-1;font-size:var(--t1);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:480px){.chiffrage-ligne{grid-template-columns:1fr}.chiffrage-fige{text-align:left}}.confiee{margin-top:var(--e4);padding:var(--e3) var(--e4);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-petit);display:grid;grid-gap:var(--e2);gap:var(--e2)}.confiee>div:first-child{display:flex;align-items:baseline;gap:var(--e2);flex-wrap:wrap}.confiee strong{font-size:var(--t3)}.confiee-agence{color:var(--text-muted);font-size:var(--t2)}.confiee button{justify-self:start}.confiee-formulaire{display:block}

/* ! Ce qui est REÇU ne ressemble pas à ce qu'on produit. C'est une
   matière à travailler, pas un dossier à valider — et le distinguer
   d'un coup d'œil évite qu'un porteur croie devoir se prononcer. */.recues{margin-bottom:var(--e5);padding:var(--e3) var(--e4);background:var(--surface-creuse);border:1px dashed var(--border);border-radius:var(--r-petit)}.recues h2{font-size:var(--t3);margin:0 0 var(--e2)}.recue+.recue{margin-top:var(--e3);padding-top:var(--e3);border-top:1px solid var(--border)}.recue .liste-feuilles{margin-top:var(--e2)}.transmettre{margin-top:var(--e3);padding:var(--e3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit)}.transmettre select.champ{min-height:var(--e6);font-size:var(--t2)}.lien-feuille{padding:0;background:none;border:0;color:var(--text-muted);font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.lien-feuille:hover{color:var(--text)}.reception{margin-top:var(--e6)}.reception h2{font-size:var(--t4);margin:0 0 var(--e3)}.reception-note{margin:var(--e2) 0 0;font-size:var(--t1);color:var(--text-muted);max-width:52ch}.reception-fait{margin:0 0 var(--e3);padding:var(--e3) var(--e4);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--success);border-radius:var(--r-petit);font-size:var(--t2)}.reception-mot{display:block;margin-top:var(--e2);color:var(--text-muted)}.reception-reserves{list-style:none;margin:var(--e3) 0 0;padding:0;display:grid;grid-gap:var(--e3);gap:var(--e3)}.reception-reserves li{padding:var(--e3) var(--e4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit)}.reception-reserves li[data-statut=levee]{opacity:.6}.reception-reserve-texte{display:block;font-weight:600}.reception-reserve-detail{display:block;margin-top:var(--e1);font-size:var(--t1);color:var(--text-muted)}.reception-reserve-detail[data-ton=fait]{color:var(--success)}.reception-reserves li button{margin-top:var(--e3)}.reception-ajout{margin-top:var(--e4)}.message-fait{margin-left:var(--e2);padding:0 var(--e2);border:1px solid var(--border);border-radius:var(--r-petit);font-size:var(--t1);color:var(--text-muted)}.message[data-genre=arret],.message[data-genre=reprise]{opacity:.85}.carte-affaire[data-arretee=oui]{opacity:.65}.visite-entete{grid-template-columns:1fr 1fr}.visite-entete,.visite-observations{display:grid;grid-gap:var(--e3);gap:var(--e3)}.visite-observations{list-style:none;margin:var(--e4) 0 0;padding:0}.visite-observations li{padding:var(--e3) var(--e4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit)}.visite-observations li[data-etat=a_reprendre]{border-left:3px solid var(--accent)}.visite-lot{font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.visite-marque{margin-left:var(--e2);font-size:var(--t1);color:var(--text-muted)}.visite-photo,.visite-texte{display:block;margin-top:var(--e2)}.visite-photo{max-width:100%;border-radius:var(--r-petit);border:1px solid var(--border)}.visite-ajout{margin-top:var(--e4);padding-top:var(--e4);border-top:1px solid var(--border)}.visite-etat{display:flex;gap:var(--e2);margin-top:var(--e2)}.visite-etat .outil{flex:1 1}.devis-accepte{display:flex;flex-direction:column;gap:var(--e1);padding:var(--e4);border-radius:var(--r-petit);background:var(--surface);border:1px solid var(--accent)}.devis-accepte-total{font-size:var(--t5);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.devis-accepte-mot{font-size:var(--t1);color:var(--text-muted)}.devis-carte{margin-top:var(--e4);padding:var(--e4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-petit)}.devis-carte[data-etat=preparation]{border-style:dashed}.devis-carte[data-etat=accepte]{border-left:3px solid var(--accent)}.devis-carte[data-etat=refuse]{border-left:3px solid var(--danger)}.devis-tete{display:block;margin:0 0 var(--e3)}.devis-tete strong{display:block;font-size:var(--t5);font-weight:700;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.devis-tete>span{display:block;margin-top:var(--e1);font-size:var(--t2);color:var(--text-muted)}.devis-tete .etiquette{color:var(--text)}.devis-carte .chiffrage-ligne{grid-template-columns:1fr 9rem auto}.devis-retirer{justify-self:end;font:inherit;font-size:var(--t1);color:var(--text-muted)}.devis-remettre,.devis-retirer{background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}.devis-remettre{font:inherit;color:var(--accent)}.devis-total{display:flex;justify-content:space-between;align-items:baseline;padding:var(--e3) 0;margin-top:var(--e2);border-top:1px solid var(--border);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.devis-total strong{font-size:var(--t4)}.devis-taux{display:flex;gap:var(--e3);margin-top:var(--e3)}.devis-taux label{flex:1 1;display:block;min-width:0}.devis-taux .champ-montant-saisie{min-width:0}.devis-taux .champ-libelle{font-weight:400;color:var(--text-muted)}.devis-mot{margin:var(--e3) 0 0;padding-left:var(--e3);border-left:2px solid var(--border);font-size:var(--t2);color:var(--text)}.devis-client-gestes{margin-top:var(--e4)}.devis-client-gestes,.devis-lignes{display:grid;grid-gap:var(--e2);gap:var(--e2)}.devis-lignes{margin:var(--e3) 0}.devis-ligne{display:flex;justify-content:space-between;gap:var(--e3);font-size:var(--t2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.devis-ligne span:last-child{color:var(--text-muted);white-space:nowrap}.devis-calcul,.devis-ligne[data-hors=oui]{color:var(--text-muted)}.devis-calcul{margin:var(--e1) 0 0;font-size:var(--t2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.devis-decision{margin:var(--e3) 0 0;font-size:var(--t2)}.devis-decision .etiquette{color:var(--text)}@media (max-width:480px){.devis-taux{flex-direction:column}.devis-carte .chiffrage-ligne{grid-template-columns:1fr auto}.devis-retirer{justify-self:end}}.devis-carte[data-etat=emise]{border-left:3px solid var(--border)}.devis-mentions{margin-top:var(--e3);font-size:var(--t1);color:var(--text-muted)}.devis-mentions summary{cursor:pointer}.devis-mentions ul{margin:var(--e2) 0 0;padding-left:var(--e4)}.date-ligne{align-items:start}.date-champ{min-height:0;padding:var(--e2) var(--e3);font-size:var(--t2)}.date-gestes,.date-mot{grid-column:1/-1}.date-gestes{display:flex;gap:var(--e2);margin-top:var(--e2)}.date-mot,.etape-quand{display:block;margin-top:var(--e2)}.etape-quand{font-size:var(--t2);color:var(--text-muted)}.agence-mois{display:flex;gap:var(--e2);align-items:flex-end;height:var(--h-graphique);margin-top:var(--e3);padding:var(--e3);border:1px solid var(--border);border-radius:var(--r-petit);background:var(--surface)}.agence-mois-barre{flex:1 1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}.agence-mois-barre>span:first-child{width:100%;min-height:2px;background:var(--accent);border-radius:2px 2px 0 0}.agence-mois-nom{margin-top:var(--e2);font-size:var(--t1);color:var(--text-muted);white-space:nowrap}
/* ! Douze noms de mois à 13 px ne tiennent pas dans 295 px : le graphique
   débordait de la fenêtre du téléphone. Un nom sur deux, et le graphique
   tient — les barres restent toutes là. */@media (max-width:480px){.agence-mois{gap:var(--e1)}.agence-mois-barre:nth-child(2n) .agence-mois-nom{visibility:hidden}.analytique-graphique{padding:var(--e4)}}.bandeau-essai{position:-webkit-sticky;position:sticky;top:0;z-index:50;padding:var(--e2) var(--e4);background:var(--accent);color:var(--accent-texte);font-size:var(--t1);line-height:1.35;text-align:center}.bandeau-essai strong{font-weight:700}.reglages{margin-top:var(--e4);border-top:1px solid var(--border)}.reglage{padding:var(--e3) 0;border-bottom:1px solid var(--border)}.reglage-ligne{display:flex;align-items:center;justify-content:space-between;gap:var(--e4);min-height:var(--e7)}.reglage-quoi{min-width:0}.reglage-mot{display:block;font-size:var(--t1);color:var(--text-muted)}.reglage-valeur{display:block;font-size:var(--t3);overflow-wrap:anywhere}.reglage-detail{display:block;margin-top:2px;font-size:var(--t2);color:var(--text-muted)}.reglage-geste{flex:none}.reglage-mode{display:grid;grid-gap:var(--e3);gap:var(--e3);margin-top:var(--e3);max-width:var(--l-mode)}.reglage-mode .champ-libelle{margin-bottom:var(--e1)}@media (min-width:1024px){.ecran--large{max-width:none}.ecran:has(>.bureau-entete)>.action-flottante,.ecran:has(>.bureau-entete)>.entete-app,.ecran:has(>.bureau-entete)>.salutation,.ecran:has(>.bureau-entete)>.salutation-jour{display:none}.accueil{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-gap:var(--e6);gap:var(--e6);align-items:start}.accueil-titre-droite{margin-top:0}}.accueil-titre-droite{font-size:var(--t4);margin:var(--e6) 0 var(--e3)}.noter-appel{margin-bottom:var(--e4)}@media (max-width:1023px){.noter-appel{width:100%}}.bureau-entete{display:none}@media (min-width:1024px){.bureau-entete{display:flex;align-items:center;justify-content:space-between;gap:var(--e4);margin:0 0 var(--e5)}}.bureau-entete h1{margin:0;font-size:var(--t5)}.bureau-entete-droite{display:flex;align-items:center;gap:var(--e4);font-size:var(--t2);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bureau-entete-droite strong{color:var(--text)}.kanban{display:none}@media (min-width:1024px){.kanban{display:flex;gap:var(--e3);align-items:stretch;height:var(--h-kanban);overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:var(--e2)}.kanban~.liste-affaires{display:none}}.kanban-colonne{flex:0 0 var(--l-colonne);display:flex;flex-direction:column;min-height:0;background:var(--donnee-fond);border-radius:var(--r-grand);padding:var(--e3)}.kanban-colonne-entete{display:flex;align-items:baseline;justify-content:space-between;gap:var(--e2);padding:0 var(--e1)}.kanban-colonne-titre{font-weight:700;font-size:var(--t3)}.kanban-colonne-compte{font-size:var(--t2);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kanban-colonne-total{display:block;min-height:var(--h-deux-lignes);margin:0 0 var(--e3);padding:0 var(--e1);font-size:var(--t1);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kanban-cartes{flex:1 1;min-height:0;overflow-y:auto;display:grid;grid-gap:var(--e2);gap:var(--e2);align-content:start}.kanban-carte{display:block;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--border);border-left-width:3px;border-radius:var(--r-petit);padding:var(--e3) var(--e4)}.kanban-carte:hover{border-color:var(--sarcelle)}.kanban-carte-nom{display:block;font-weight:700;font-size:var(--t3);line-height:1.3}.kanban-carte-client{margin-top:2px}.kanban-carte-attente,.kanban-carte-client{display:block;font-size:var(--t2);color:var(--text-muted)}.kanban-carte-attente{margin-top:var(--e2);line-height:1.35}.kanban-carte-bas{display:flex;justify-content:space-between;align-items:baseline;gap:var(--e2);margin-top:var(--e2)}.kanban-carte-montant{font-size:var(--t2);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kanban-carte-montant[data-nature=estime]{color:var(--text-muted);font-weight:400;border-bottom:1px dashed var(--border)}.kanban-carte-jours{margin-left:auto;font-size:var(--t2);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.kanban-carte[data-immobile=oui] .kanban-carte-jours{color:var(--orange);font-weight:700}.kanban-carte[data-immobile=oui]{background:var(--orange-doux);border-color:var(--orange-doux)}.kanban-carte[data-ton=a-toi]{border-left-color:var(--orange)}.kanban-carte[data-ton=a-toi] .kanban-carte-attente{color:var(--text)}.kanban-carte[data-ton=valide]{border-left-color:var(--sarcelle)}.kanban-vide{padding:var(--e4) var(--e1);font-size:var(--t2);color:var(--text-muted)}.kanban-plus,.voir-plus{display:block;width:100%;padding:var(--e3);margin-top:var(--e3);background:none;border:1px dashed var(--border);border-radius:var(--r-petit);font:inherit;font-size:var(--t2);color:var(--text-muted);cursor:pointer;text-align:center;text-decoration:none}.kanban-plus:hover,.voir-plus:hover{border-color:var(--sarcelle);color:var(--sarcelle)}.chiffre-tete{display:block;margin:0 0 var(--e4)}.chiffre-tete strong{display:block;font-size:var(--t5);font-weight:700;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chiffre-tete span{display:block;margin-top:var(--e1);font-size:var(--t2);color:var(--text-muted)}.chiffres-lignes{display:grid;grid-template-columns:minmax(0,1fr);padding:var(--e1) var(--e4);background:var(--donnee-fond);border-radius:var(--r-grand)}.chiffre-ligne{display:flex;align-items:center;justify-content:space-between;gap:var(--e3);min-width:0;padding:var(--e3) 0;border-bottom:1px solid var(--border);font-size:var(--t3);color:inherit;text-decoration:none}.chiffre-ligne:last-child{border-bottom:0}.chiffre-ligne-mot{display:flex;align-items:center;gap:var(--e2);min-width:0}.chiffre-ligne strong{font-weight:600;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chiffre-ligne[data-ton=attente] strong{color:var(--orange)}.chiffre-ligne[data-ton=acquis] strong{color:var(--sarcelle)}a.chiffre-ligne:hover .chiffre-ligne-mot{text-decoration:underline}a.chiffre-ligne strong:after{content:" ›";color:var(--text-muted);font-weight:400}.jauge{display:inline-flex;align-items:center;gap:var(--e1);flex:none;font-size:var(--t2);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.jauge svg{width:var(--e4);height:var(--e4);flex:none;transform:rotate(-90deg)}.jauge circle{fill:none;stroke-width:16}.jauge circle:first-child{stroke:var(--border)}.jauge circle:last-child{stroke:var(--sarcelle)}.jauge[data-ton=attente] circle:last-child{stroke:var(--orange)}.analytique{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--e4);gap:var(--e4)}@media (min-width:1024px){.analytique{grid-template-columns:minmax(0,3fr) minmax(var(--l-lignes),2fr);gap:var(--e5);align-items:start}.analytique .agence-mois{height:var(--h-graphique-bureau)}}.analytique-graphique{background:var(--donnee-fond);border-radius:var(--r-grand);padding:var(--e4) var(--e5)}.agence-mois{border:0;background:transparent;padding:0}.agence-mois-barre>span:first-child{background:var(--sarcelle)}.tableau-dense{width:100%;border-collapse:collapse;font-size:var(--t2)}.tableau-dense th{background:var(--marine);color:var(--marine-texte);text-align:left;padding:var(--e2) var(--e3);font-size:var(--t1);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.tableau-dense th:first-child{border-radius:var(--r-petit) 0 0 var(--r-petit)}.tableau-dense th:last-child{border-radius:0 var(--r-petit) var(--r-petit) 0}.tableau-dense td{padding:var(--e3);border-bottom:1px solid var(--border)}.tableau-dense td.nombre,.tableau-dense th.nombre{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tableau-dense a{color:inherit;text-decoration:none;font-weight:700}.tableau-dense tfoot td{color:var(--text-muted);border-bottom:0}@media (max-width:1023px){.liste-mobile thead{display:none}.liste-mobile,.liste-mobile tbody,.liste-mobile tfoot{display:block}.liste-mobile tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column-gap:var(--e3);column-gap:var(--e3);padding:var(--e3) 0;border-bottom:1px solid var(--border)}.liste-mobile td{display:block;padding:0;border:0}.liste-mobile td:nth-child(2){grid-column:1;font-size:var(--t2);color:var(--text-muted)}.liste-mobile td.nombre{grid-column:2;grid-row:1;text-align:right}.liste-mobile td.nombre+td.nombre{grid-row:2;font-size:var(--t1);color:var(--text-muted)}.liste-mobile td[data-vide=oui]{display:none}}.seuil{min-height:100vh;display:grid;background:var(--bg)}.seuil-volet{display:contents}.seuil-marque{order:-1;display:flex;align-items:baseline;gap:var(--e2);padding:var(--e3) var(--e4);min-height:var(--entete-h);background:var(--barre);color:var(--barre-texte-vif);text-decoration:none}.seuil-marque strong{font-size:var(--t4);font-weight:700;letter-spacing:-.02em}.seuil-marque span{font-family:var(--police-etiquette);font-size:var(--t0);text-transform:uppercase;letter-spacing:.14em;color:var(--barre-texte);opacity:.7}.seuil-corps{order:0;display:grid;justify-items:center;align-content:start;padding:var(--e6) var(--e4) var(--e5)}
/* ! `justify-items: center` fait rétrécir les enfants à leur contenu. Le
   formulaire d'accès a sa propre largeur et s'en accommode ; un LIEU de
   dépôt, non — il est resté à 339 px dans une colonne de 704, et la
   cible qu'on ne doit pas manquer était deux fois trop petite. Un écran
   qui remplit sa colonne le déclare. */.seuil[data-corps=large] .seuil-corps{justify-items:stretch}.acces-sans-compte{order:1;display:grid;grid-gap:var(--e4);gap:var(--e4);padding:var(--e5) var(--e4) var(--e7);border-top:1px solid var(--border)}.acces-portes-menu{margin:0}

/* ! La trame n'existe pas sous 1024 px : la règle qui la charge vit
   dans le bloc bureau, et un navigateur ne va pas chercher l'image
   d'une règle qui ne s'applique pas. Zéro requête, zéro octet, zéro
   batterie sur le chemin du téléphone (`DOM-004`). */.seuil-trame{display:none}.acces-formulaire{width:100%;max-width:var(--l-acces)}.champ-facultatif{font-size:var(--t1);font-weight:400;color:var(--text-muted)}.acces-formulaire h1{margin:0 0 var(--e5);font-size:var(--t5)}.acces-champ{margin-bottom:var(--e4)}.acces-suite{margin:var(--e4) 0 0;font-size:var(--t2);color:var(--text-muted)}
/* ! 13 px de part et d'autre d'un lien de 18 px font 44 — la cible
   tactile minimale, qui est une constante physique et non un choix de
   design. Elle ne vient donc pas de l'échelle d'espacement. Sur bureau
   le pointeur n'en a pas besoin. */@media (max-width:1023px){.acces-suite .lien{display:inline-block;padding:13px 0}.acces-suite{margin-top:var(--e2)}}.acces-intention{margin:0 0 var(--e5);padding:var(--e3) var(--e4);border-left:3px solid var(--accent);border-radius:var(--r-petit);background:var(--accent-doux);font-size:var(--t2)}.acces-intention strong{font-weight:700}.acces-intention span{display:block;margin-top:var(--e1);color:var(--text-muted)}
/* ! Le geste remonte dans la ligne qu'il corrige, au bord droit — il ne
   descend pas d'un cran sous le bouton principal. Un primaire pleine
   largeur est seul, ou apparié sur SA ligne ; jamais empilé au-dessus
   d'un secondaire court. Et « ce n'est pas moi » ferme une session : le
   registre interdit `bouton-secondaire` pour une action destructrice. */.acces-moi{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:var(--e3);gap:var(--e3);min-height:var(--e7);margin-bottom:var(--e5);padding:var(--e4);border-radius:var(--r);background:var(--surface-creuse)}.acces-moi-qui{display:grid;grid-gap:var(--e1);gap:var(--e1);min-width:0}.acces-moi strong{font-size:var(--t4)}.acces-moi-qui span{font-size:var(--t2);color:var(--text-muted)}.acces-confirme{display:grid;grid-gap:var(--e3);gap:var(--e3);margin-bottom:var(--e5)}.acces-confirme .note-limite{margin:0}.bouton-texte{align-self:center;min-height:44px;padding:var(--e2) 0;background:none;border:0;color:var(--accent-doux-texte);font:inherit;font-size:var(--t2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;white-space:nowrap}.bouton-texte:hover{color:var(--text)}.bouton-retour{display:inline-flex;align-items:center;gap:var(--e2);min-height:44px;padding:0;background:none;border:0;color:var(--text-muted);font:inherit;font-size:var(--t2);text-decoration:none;cursor:pointer}.bouton-retour:hover{color:var(--text)}.bouton-retour svg{width:18px;height:18px;flex:none}.zone-depot{display:grid;grid-gap:var(--e2);gap:var(--e2);justify-items:center;align-content:center;padding:var(--e5) var(--e4);text-align:center;background:var(--surface-creuse);border:1px dashed var(--border);border-radius:var(--r-grand);cursor:pointer;transition:border-color .12s,background .12s}
/* ! Un LIEU, pas un champ. L'action principale de cet écran n'est pas un
   bouton : c'est une cible qu'on ne peut pas manquer. D'où l'absence de
   `bouton-primaire` au repos — l'or vit dans l'état de la zone. */.zone-depot[data-etat=repos]{min-height:352px}.zone-depot[data-etat=bande]{min-height:56px;padding:var(--e2) var(--e4);text-align:left;justify-items:start}.zone-depot:hover{border-color:var(--text-muted)}.zone-depot[data-survol]{border-color:var(--accent);border-style:solid;background:var(--accent-doux)}.zone-depot[data-rempli]{border-style:solid}.zone-depot-nom{font-size:var(--t3);color:var(--text)}
/* ! Le champ reste focalisable : `display: none` le retirerait de l'ordre
   de tabulation, et la zone deviendrait inatteignable au clavier. */.zone-depot-champ{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.zone-depot:has(.zone-depot-champ:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.verdict{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:var(--e4);gap:var(--e4);align-items:center;padding:var(--e4);border-radius:var(--r-grand);border:1px solid var(--border)}.verdict-marque{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--surface)}.verdict-marque svg{width:26px;height:26px}
/* ! Le fond reste NEUTRE dans les deux cas. Il portait une teinte de la
   couleur du verdict ; à pourcentage égal le rouge se voit bien plus que
   le vert, donc l'échec pesait deux fois plus lourd que le succès pour
   la même information. La bordure et le signe suffisent — et ils sont
   déjà deux canaux. */.verdict{background:var(--surface)}.verdict[data-sens=oui]{border-color:var(--success)}.verdict[data-sens=oui] .verdict-marque{background:var(--success)}.verdict[data-sens=non]{border-color:var(--danger)}.verdict[data-sens=non] .verdict-marque{background:var(--danger)}.verdict-titre{margin:0;font-size:var(--t4);font-weight:700;color:var(--text)}.verdict-suite{margin:var(--e1) 0 0;font-size:var(--t2);color:var(--text-muted)}.verif{display:grid;grid-gap:var(--e5);gap:var(--e5)}.verif-tete{margin-bottom:var(--e5)}.verif-tete .titre-page{margin-top:var(--e3)}
/* ! Le geste qui efface est POSÉ SUR la bande, pas à côté. Et il vit
   HORS du `<label>` : un bouton dans un label n'active pas le champ
   selon la norme, mais les navigateurs ne l'ont pas toujours respecté —
   un positionnement absolu ne dépend d'aucune subtilité. */.verif-depot{display:grid;grid-gap:var(--e2);gap:var(--e2);position:relative}.verif-effacer{position:absolute;top:50%;right:var(--e3);transform:translateY(-50%);display:grid;place-items:center;width:36px;height:36px;background:none;border:0;border-radius:50%;color:var(--text-muted);cursor:pointer}.verif-effacer:hover{background:var(--surface-creuse);color:var(--text)}.verif-effacer svg{width:18px;height:18px}.verif-effacer:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.zone-depot[data-etat=bande]{padding-right:var(--e7)}.verif-attente{margin:0;font-size:var(--t2);color:var(--text-muted)}.verif-reponse{display:grid;grid-gap:var(--e5);gap:var(--e5)}.verif-constat,.verif-piece{display:grid;align-content:start}.verif-piece{grid-gap:var(--e1);gap:var(--e1);padding:var(--e4);border-radius:var(--r-grand);background:var(--surface-creuse)}.verif-piece-nom{margin:0;font-size:var(--t2);color:var(--text)}.verif-piece-detail{margin:0;font-size:var(--t1);color:var(--text-muted)}
/* ! Jamais tronquée. Tronquée, elle n'est plus reproductible à la main —
   et c'est sa seule raison d'être : un vérificateur peut lancer
   `shasum -a 256` sur son fichier et comparer les soixante-quatre
   caractères sans avoir à nous croire.
   ! `--t0` ne sert qu'ici : c'est un code, jamais un mot. */.verif-piece-empreinte{margin:0 0 var(--e2);font-family:var(--police-etiquette);font-size:var(--t0);line-height:1.7;word-break:break-all;color:var(--text);-webkit-user-select:all;-moz-user-select:all;user-select:all}@media (min-width:1200px){.verif-reponse{grid-template-columns:3fr 2fr;align-items:start}.verif-verdict{grid-column:1/-1}.verif-reponse[data-seul]{grid-template-columns:minmax(0,1fr)}}.champ-rangee{display:flex;align-items:baseline;justify-content:space-between;gap:var(--e3);min-height:44px}.champ-rangee .champ-libelle{margin-bottom:0}.champ-rangee .lien{font-size:var(--t2);display:inline-flex;align-items:center;min-height:44px}
/* ! Le cadre n'est PAS un bouton : on ne peut pas imbriquer un `<input>`
   dans un `<button>` — le modèle de contenu l'interdit, et Entrée dans
   le champ déclencherait le bouton. Le cadre porte, la tête clique, et
   ce qui découle du toucher apparaît DANS le cadre touché. */
/* ! `display` est décidé ICI et nulle part ailleurs : la règle de la
   surface téléphone vivait plus haut dans la feuille et se faisait
   écraser par celle-ci — les deux formes s'affichaient ensemble. */.acces-portes{display:none;gap:var(--e2)}.acces-porte{display:grid;border:1px solid var(--border);border-radius:var(--r)}.acces-porte-tete{display:grid;grid-gap:var(--e1);gap:var(--e1);width:100%;min-height:var(--e7);padding:var(--e3) var(--e4);text-align:left;cursor:pointer;font:inherit;font-size:var(--t3);color:inherit;background:transparent;border:0}.acces-porte-tete span{font-size:var(--t1);color:var(--text-muted)}.acces-porte-vers{text-decoration:none;color:inherit}.acces-porte-vers .acces-porte-tete{position:relative;padding-right:var(--e6)}.acces-porte-vers .acces-porte-tete:after{content:"→";position:absolute;right:var(--e4);top:50%;transform:translateY(-50%);color:var(--text-muted)}.acces-porte-mode{display:grid;grid-gap:var(--e2);gap:var(--e2);padding:0 var(--e4) var(--e4)}.acces-porte-mode .champ{margin:0}
/* ! Les deux gestes partagent la largeur. `justify-self` sur un enfant
   de flex est inerte — la règle précédente ne faisait rien, et les deux
   boutons se tassaient à gauche en laissant le reste vide. Une sortie
   qui se tasse se lit comme un reste, et c'est le visiteur le moins sûr
   de lui qui la cherche. */.acces-porte-gestes{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--e2);gap:var(--e2)}.acces-porte-gestes>*{width:100%}.bouton-clair{display:inline-flex;align-items:center;justify-content:center;min-height:var(--e7);padding:0 var(--e4);cursor:pointer;font:inherit;font-size:var(--t3);font-weight:600;color:var(--barre);background:var(--barre-texte-vif);border:1px solid var(--barre-texte-vif);border-radius:var(--r-petit)}.bouton-clair:hover{background:var(--barre-texte);border-color:var(--barre-texte)}.champ-secret,.seuil .champ-secret{position:relative;display:block}.champ-secret .champ{padding-right:5.5rem}.champ-devoiler{position:absolute;top:50%;right:var(--e2);transform:translateY(-50%);min-height:44px;padding:0 var(--e3);cursor:pointer;font:inherit;font-size:var(--t1);font-weight:600;color:var(--accent-doux-texte);background:transparent;border:0}@media (min-width:1024px){
  /* ! QUATRE pistes, pas deux colonnes. Les deux `1fr` absorbent le
     surplus **à parts égales** : l'écart entre la couture et le
     formulaire reste constant à toute largeur, et le formulaire est
     vraiment centré dans sa colonne. Avec deux colonnes, plus l'écran
     grandissait, plus la bande morte de droite grandissait — 26,8 % à
     1280, 47,5 % à 1920, et la mesure « aucune zone morte > 1/3 »
     cassait de moitié. */.seuil{grid-template-columns:minmax(0,1fr) minmax(0,var(--l-acces-volet)) minmax(0,var(--l-seuil-corps)) minmax(0,1fr);align-items:stretch}.seuil-volet{grid-column:1/3;padding-left:max(var(--e6),calc(100% - var(--l-acces-volet)))}.seuil-corps{grid-column:3/4}
  /* ! Une colonne par USAGE, pas une valeur par écran. L'accès remplit un
     formulaire ; la vérification confronte deux blocs. Élargir `page`
     pour tout le monde est le défaut du 2026-09-08, déjà payé. */.seuil[data-corps=large]{--l-seuil-corps:var(--l-verif-corps)}
  /* ! `z-index: 0`, et ce n'est pas cosmétique. Un élément POSITIONNÉ
     peint au-dessus du contenu en flux, quelle que soit sa place dans le
     source : la trame passait donc par-dessus les deux cartes, à 6 %, et
     elles paraissaient translucides. Elles ne l'étaient pas — on
     regardait le motif à travers, et on a d'abord cherché la
     transparence dans leur fond. */.seuil-trame{display:block;position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.06}.seuil-trame:after,.seuil-trame:before{content:"";position:absolute;inset:-72px;-webkit-mask-size:64px 64px;mask-size:64px 64px;animation:seuil-trame-derive 28s linear infinite}.seuil-trame:before{background-image:repeating-linear-gradient(0deg,currentColor 0 1px,transparent 1px 8px);-webkit-mask-image:conic-gradient(#000 25%,#0000 0 50%,#000 0 75%,#0000 0);mask-image:conic-gradient(#000 25%,#0000 0 50%,#000 0 75%,#0000 0)}.seuil-trame:after{background-image:repeating-linear-gradient(90deg,currentColor 0 1px,transparent 1px 8px);-webkit-mask-image:conic-gradient(#0000 25%,#000 0 50%,#0000 0 75%,#000 0);mask-image:conic-gradient(#0000 25%,#000 0 50%,#0000 0 75%,#000 0)}@keyframes seuil-trame-derive{to{transform:translate3d(64px,0,0)}}.seuil-volet{order:-1;display:flex;flex-direction:column;gap:var(--e6);padding:var(--e7) var(--e6);background:var(--barre);color:var(--barre-texte-vif);position:relative;overflow:hidden}.acces-sans-compte,.seuil-marque{position:relative;z-index:1}.seuil-marque{order:0;padding:0;min-height:0;background:transparent}.seuil-marque strong{font-size:var(--t5)}.acces-sans-compte{order:0;margin-top:auto;padding:0;border-top:0;gap:var(--e4);color:var(--barre-texte-vif)}.acces-portes{display:grid}.acces-portes-menu{display:none}
  /* ! Les cartes sont PLEINES : posées sur la trame, on voyait le plan
     à travers, et l'œil lisait deux images superposées. Un fond opaque,
     à peine plus clair que le volet. */.acces-porte{background:color-mix(in oklch,var(--barre-texte) 10%,var(--barre));
    /* ! Aucune transparence, pas même sur la bordure : la trame passait
       à travers le trait et l'œil lisait deux dessins superposés. */border-color:color-mix(in oklch,var(--barre-texte) 26%,var(--barre))}.acces-porte-tete span{color:var(--barre-texte)}
  /* ! Et la sélection n'est PAS jaune. Le déploiement dit déjà qu'elle
     est ouverte, et le champ à l'intérieur porte l'or à la mise au
     point : deux ors dans un même cadre, c'est un de trop — l'or est
     réservé au geste qui engage. */.acces-porte:hover{background:color-mix(in oklch,var(--barre-texte) 14%,var(--barre))}.acces-porte[data-ouverte]{background:color-mix(in oklch,var(--barre-texte) 16%,var(--barre));border-color:color-mix(in oklch,var(--barre-texte) 40%,var(--barre))}.acces-porte-mode .champ{color:var(--text)}
  /* ! Le formulaire est centré dans SA piste, et la piste est bornée :
     l'écart couture ↔ formulaire vaut (40rem − 30rem) / 2 = 80 px, à
     toute largeur. Au-delà d'une centaine de pixels, l'œil ne fait plus
     le lien entre la promesse à gauche et le geste à droite. */.seuil-corps{align-content:center;justify-items:center;padding:var(--e7) var(--e6)}.seuil[data-corps=large] .seuil-corps{justify-items:stretch}.page.planche{max-width:var(--l-planche);display:grid;grid-template-columns:minmax(0,3fr) minmax(var(--l-lignes),2fr);grid-column-gap:var(--e6);column-gap:var(--e6);align-items:start}.planche-pied,.planche-tete{grid-column:1/-1}.planche-gauche{min-width:0}.planche-droite{position:-webkit-sticky;position:sticky;top:var(--e5)}}.planche-gauche{min-width:0}.planche-pied{margin-top:var(--e6)}.honoraires-tableau{display:none}.honoraires-detail{display:block;font-size:var(--t1);color:var(--text-muted)}.honoraires-gestes{display:flex;flex-wrap:wrap;gap:var(--e2);justify-content:flex-end}.honoraires-tableau td.nombre,.honoraires-tableau td:nth-child(3){white-space:nowrap}@media (min-width:1024px){.honoraires-tableau{display:table}.honoraires-cartes{display:none}}.dqe-lignes{grid-gap:var(--e2)}.dqe-ligne,.dqe-lignes{display:grid;gap:var(--e2)}.dqe-ligne{grid-template-columns:minmax(0,1fr) 5.5rem 6.5rem auto;grid-gap:var(--e2);align-items:center}.dqe-ligne .champ{margin:0;min-height:0;padding:var(--e2) var(--e3);font-size:var(--t2)}.dqe-ligne .champ:nth-child(3){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:1023px){.dqe-ligne{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.dqe-ligne>:first-child{grid-column:1/-1}}.dqe-lu{display:grid}.dqe-poste{display:flex;justify-content:space-between;gap:var(--e3);padding:var(--e2) 0;border-bottom:1px solid var(--border);font-size:var(--t2)}.dqe-poste span:last-child{white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-muted)}.liens-entreprises{display:grid;grid-gap:var(--e2);gap:var(--e2)}.lien-entreprise{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:var(--e2) var(--e3);gap:var(--e2) var(--e3);align-items:center;padding:var(--e3);border:1px solid var(--border);border-radius:var(--r)}
/* ! Une carte qui est un lien reste une CARTE : sans ça le navigateur
   la peint en bleu souligné, et c'est exactement le défaut que le
   propriétaire avait signalé sur les autres écrans. */a.lien-entreprise{color:inherit;text-decoration:none}a.lien-entreprise:hover{border-color:var(--sarcelle)}.lien-entreprise[data-revoque=oui]{color:var(--text-muted)}.lien-entreprise strong{font-size:var(--t3)}.lien-entreprise strong.nombre{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.lien-entreprise-etat{display:block;font-size:var(--t1);color:var(--text-muted)}.lien-entreprise-gestes{display:flex;gap:var(--e2);flex-wrap:wrap;justify-content:flex-end}.tableau-defile{overflow-x:auto}.comparaison td:first-child,.comparaison th:first-child{position:-webkit-sticky;position:sticky;left:0;background:var(--surface);min-width:12rem}.comparaison th:first-child{background:var(--marine)}.comparaison td.nombre{white-space:nowrap}.comparaison-montant{display:block;font-size:var(--t1);color:var(--text-muted);font-weight:400}.comparaison-retenue{display:block;font-size:var(--t0);letter-spacing:.04em;opacity:.8}.comparaison-anciennes{margin:var(--e3) 0 0;font-size:var(--t2);color:var(--text-muted)}.comparaison-cartes{display:grid;grid-gap:var(--e2);gap:var(--e2)}.comparaison-tableau{display:block}@media (min-width:1024px){.comparaison-cartes{display:none}}@media (max-width:1023px){.comparaison-tableau{display:none}}.reponse-postes{display:grid}.reponse-poste{display:grid;grid-template-columns:minmax(0,1fr) 9rem;grid-gap:var(--e1) var(--e3);gap:var(--e1) var(--e3);align-items:center;padding:var(--e2) 0;border-bottom:1px solid var(--border)}.reponse-poste-quoi{font-size:var(--t2)}.reponse-poste-quantite{display:block;font-size:var(--t1);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.reponse-poste .champ{margin:0;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.reponse-poste-montant{grid-column:1/-1;text-align:right;font-size:var(--t1);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.etude{display:none}.etude-telephone{display:block}@media (min-width:1024px){.etude{display:block}.etude-telephone,.reponse-directe[data-etude=oui]{display:none}.page.consultation:has(.etude){max-width:var(--l-planche)}}.etude-reglages{display:flex;gap:var(--e5);align-items:center;flex-wrap:wrap;margin:var(--e4) 0}.etude-reglages .champ{width:6rem;margin:0;min-height:0;padding:var(--e2) var(--e3)}.etude-reglages .champ-libelle{margin-bottom:var(--e1)}.etude-reglages .ligne-case{margin:0}.etude-regime{font-size:var(--t2);color:var(--text-muted)}.etude-tableau td{vertical-align:top}.etude-tableau td:last-child{white-space:nowrap}.etude-case{display:grid;grid-gap:var(--e1);gap:var(--e1);min-width:9rem}.etude-case .champ,.etude-pu .champ{margin:0;min-height:0;padding:var(--e1) var(--e2);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:var(--t2)}.etude-case select,.etude-porte{font:inherit;font-size:var(--t1);color:var(--text-muted);border:0;background:transparent;padding:0;max-width:100%}.etude-pu{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.etude-pu .champ{width:8rem}.planning{display:none}.planning-empile{display:grid;grid-gap:var(--e4);gap:var(--e4)}@media (min-width:1024px){.planning{display:block}.planning-empile{display:none}}.planning-ligne,.planning-tete{display:grid;grid-template-columns:var(--l-chantier) minmax(0,1fr);grid-gap:var(--e3);gap:var(--e3);align-items:start}.planning-tete{padding-bottom:var(--e2)}.planning-tete .planning-jours>span{font-size:var(--t1);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding-left:var(--e1)}.planning-tete .planning-jours>span[data-aujourdhui=oui]{color:var(--text);font-weight:700}.planning-ligne{padding:var(--e3) 0;border-top:1px solid var(--border)}.planning-chantier{display:grid;grid-gap:var(--e1);gap:var(--e1);min-width:0}.planning-chantier strong{font-size:var(--t3)}.planning-chantier>span{font-size:var(--t1);color:var(--text-muted)}.planning-annonce{font-size:var(--t1);color:var(--orange)}.planning-jours{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:var(--e1);gap:var(--e1);align-content:start}.planning-barre{position:relative;display:grid;grid-gap:2px;gap:2px;min-width:0;background:var(--donnee-fond);border-left:3px solid var(--sarcelle);border-radius:var(--r-petit);padding:var(--e2) var(--e5) var(--e2) var(--e2)}.planning-barre strong{font-size:var(--t1)}.planning-barre>span{font-size:var(--t1);color:var(--text-muted)}.planning-ailleurs{color:var(--orange)!important}.planning-retirer{position:absolute;top:2px;right:2px;border:0;background:transparent;color:var(--text-muted);cursor:pointer;font-size:var(--t2);line-height:1;padding:var(--e1)}.planning-jour-titre{margin:0 0 var(--e2);font-weight:700;display:flex;align-items:center;gap:var(--e2)}.planning-jour[data-aujourdhui=oui] .planning-jour-titre{color:var(--accent-doux-texte)}.planning-jour-rien,.semaine-rien{margin:0;font-size:var(--t2);color:var(--text-muted)}.semaine-gestes{display:flex;gap:var(--e2);flex-wrap:wrap;margin-bottom:var(--e4)}.terrain-champs{display:grid;grid-gap:var(--e3);gap:var(--e3);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.terrain-champs .champ{margin:0}.tournee{display:grid}.tournee-etape{display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;grid-gap:var(--e2) var(--e3);gap:var(--e2) var(--e3);align-items:start;padding:var(--e3) 0;border-bottom:1px solid var(--border)}.tournee-etape[data-etat=faite] .tournee-quoi strong{text-decoration:line-through}.tournee-etape[data-etat=annulee]{color:var(--text-muted)}.tournee-heure{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--t2)}.tournee-quoi{display:grid;grid-gap:var(--e1);gap:var(--e1);min-width:0}.tournee-annule,.tournee-ou{font-size:var(--t1);color:var(--text-muted)}.tournee-gestes{display:flex;gap:var(--e2);flex-wrap:wrap;justify-content:flex-end}.tournee-repere{justify-self:start;border:0;background:transparent;padding:0;cursor:pointer;font:inherit;font-size:var(--t1);color:var(--accent-doux-texte);text-align:left;text-decoration:underline;text-underline-offset:2px}.tournee-annulation,.tournee-repere-saisie{display:flex;gap:var(--e2);align-items:center;flex-wrap:wrap}.tournee-annulation{grid-column:1/-1}.tournee-annulation .champ,.tournee-repere-saisie .champ{margin:0;min-height:0;padding:var(--e2);font-size:var(--t2);flex:1 1 14rem}.tournee-annulation .note-limite{flex:1 1 100%;margin:0}@media (max-width:1023px){.tournee-etape{grid-template-columns:4rem minmax(0,1fr)}.tournee-gestes{grid-column:1/-1;justify-content:flex-start}}
/* ! La page du terrain ne s'élargit PAS sur bureau : « ma semaine » est
   un écran de téléphone, et l'ouvrir sur un ordinateur ne doit pas le
   transformer en tableau. */.page.semaine{max-width:var(--colonne-lisible)}.semaine-aujourdhui{background:var(--surface-creuse);border-radius:var(--r-grand);padding:var(--e4);margin-bottom:var(--e5)}.semaine-jour{margin-bottom:var(--e4)}.semaine-titre{margin:0 0 var(--e2);font-weight:700;font-size:var(--t3)}.semaine-chantier,.semaine-passage{display:grid;grid-gap:var(--e1);gap:var(--e1);padding:var(--e3) 0;border-top:1px solid var(--border)}.semaine-passage{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--e3)}.semaine-passage>span{display:grid;grid-gap:var(--e1);gap:var(--e1);min-width:0}.semaine-passage[data-etat=faite] strong{text-decoration:line-through}.semaine-chantier>span,.semaine-ou{font-size:var(--t2);color:var(--text-muted)}.semaine-repere{font-size:var(--t2);color:var(--text)}.semaine-borne{justify-self:start;font-size:var(--t1);font-weight:600;color:var(--accent-doux-texte)}.commandes-cartes{display:grid;grid-gap:var(--e2);gap:var(--e2)}.commandes-tableau{display:none}@media (min-width:1024px){.commandes-tableau{display:table}.commandes-cartes{display:none}}.commande-cartes{display:grid;grid-gap:var(--e2);gap:var(--e2);margin-top:var(--e5)}@media (min-width:1024px){.commande-cartes{display:none}}@media (max-width:1023px){.commande-tableau{display:none}}.commandes-tableau td:first-child{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.commande-tableau td.nombre{white-space:nowrap}.commande-ligne{display:grid;grid-template-columns:minmax(0,1fr) 5rem 6rem 7rem auto;grid-gap:var(--e2);gap:var(--e2);align-items:center}.commande-ligne .champ{margin:0;min-height:0;padding:var(--e2);font-size:var(--t2)}.commande-ligne .champ:nth-child(3),.commande-ligne .champ:nth-child(4){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:1023px){.commande-ligne{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.commande-ligne>:first-child{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.seuil-trame,.seuil-trame:after,.seuil-trame:before{animation:none}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}