:root{--nuit: #0C1A30;--marine: #17335F;--marine-clair: #1E4178;--orange: #FF6B1A;--creme: #FAF8F4;--creme-60: rgba(250, 248, 244, .6);--creme-30: rgba(250, 248, 244, .3);--creme-10: rgba(250, 248, 244, .08);--vert: #3DBE7B;--rouge: #E5484D;--radius: 14px}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--nuit);color:var(--creme);font-family:Archivo,system-ui,sans-serif;font-size:15px;line-height:1.45;min-height:100dvh}h1,h2,h3,.titre{font-family:Barlow Condensed,sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.02em}button{font-family:inherit;cursor:pointer;border:none}input,select,textarea{font-family:inherit;font-size:16px;background:var(--creme-10);border:1px solid var(--creme-30);border-radius:10px;color:var(--creme);padding:12px 14px;width:100%}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--orange);outline-offset:1px}select option{background:var(--marine);color:var(--creme)}label{display:block;font-size:13px;color:var(--creme-60);margin:12px 0 5px;font-weight:500}.page{padding:18px 16px calc(96px + env(safe-area-inset-bottom));max-width:640px;margin:0 auto;overflow-x:hidden}.bandeau-marque{display:flex;align-items:center;gap:11px;background:var(--creme);border-radius:var(--radius);padding:10px 16px;margin:-4px -4px 16px}.bandeau-marque .lockup{height:30px;width:auto;display:block;flex:0 0 auto}.bandeau-marque .mention-crm{font-family:Barlow Condensed,sans-serif;font-weight:800;font-size:19px;letter-spacing:.08em;color:var(--orange);line-height:1;padding-left:10px;margin-left:2px;border-left:1.5px solid rgba(12,26,48,.18)}.entete{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;gap:12px}.entete h1{font-size:30px;overflow-wrap:anywhere}.nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:space-around;align-items:center;background:var(--marine);border-top:1px solid var(--creme-10);padding:10px 8px calc(10px + env(safe-area-inset-bottom))}.nav a{color:var(--creme-60);text-decoration:none;font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:72px}.nav a.actif{color:var(--orange)}.nav .ico{width:23px;height:23px;display:block}.fab{position:fixed;right:18px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:20;width:60px;height:60px;border-radius:50%;background:var(--orange);color:var(--nuit);font-size:32px;font-weight:700;line-height:0;box-shadow:0 6px 18px #ff6b1a73}.fab:active{transform:scale(.94)}.groupe-statut{margin-bottom:18px}.groupe-statut h2{font-size:17px;color:var(--creme-60);display:flex;gap:8px;align-items:center;margin-bottom:8px}.groupe-statut h2 .compteur{background:var(--creme-10);border-radius:20px;padding:1px 9px;font-size:13px;color:var(--creme)}.carte{background:var(--marine);border-radius:var(--radius);padding:13px 15px;margin-bottom:8px;display:block;width:100%;text-align:left;color:var(--creme);border:1px solid transparent}.carte:active{border-color:var(--orange)}.carte .nom{font-weight:700;font-size:16px}.carte .sous{color:var(--creme-60);font-size:13px;margin-top:2px}.badge-fit{float:right;font-family:Barlow Condensed;font-weight:800;font-size:15px;border-radius:8px;padding:2px 8px;background:var(--creme-10)}.badge-fit.ok{background:#3dbe7b2e;color:var(--vert)}.badge-fit.ko{color:var(--creme-60)}.btn{display:block;width:100%;text-align:center;background:var(--orange);color:var(--nuit);font-weight:700;font-size:16px;border-radius:12px;padding:14px;margin-top:18px}.btn:disabled{opacity:.4}.btn-secondaire{background:var(--creme-10);color:var(--creme)}.btn-lien{background:none;color:var(--orange);font-weight:600;padding:10px;width:auto}.voile{position:fixed;top:0;right:0;bottom:0;left:0;background:#050a14b3;z-index:30}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:31;background:var(--marine);border-radius:22px 22px 0 0;padding:20px 16px calc(24px + env(safe-area-inset-bottom));max-height:88dvh;overflow-y:auto;max-width:640px;margin:0 auto}.sheet h2{font-size:22px;margin-bottom:4px}.grille-types{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.btn-type{background:var(--creme-10);color:var(--creme);border:2px solid transparent;border-radius:12px;padding:14px 8px;font-size:14px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:5px}.btn-type .emoji{font-size:24px}.btn-type.choisi{border-color:var(--orange);background:#ff6b1a1f}.onglets{display:flex;gap:6px;overflow-x:auto;margin:14px 0;padding-bottom:4px}.onglets button{background:var(--creme-10);color:var(--creme-60);border-radius:20px;padding:8px 15px;font-size:14px;font-weight:600;white-space:nowrap}.onglets button.actif{background:var(--orange);color:var(--nuit)}.ligne-ev{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--creme-10)}.ligne-ev .quoi{font-weight:600}.ligne-ev .quand{color:var(--creme-60);font-size:13px}.ligne-ev .combien{font-family:Barlow Condensed;font-weight:800;font-size:17px;color:var(--orange)}.grille-rapport{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.tuile{background:var(--marine);border-radius:var(--radius);padding:16px 14px}.tuile.pleine{grid-column:1 / -1;border:1px solid rgba(255,107,26,.4)}.tuile .chiffre{font-family:Barlow Condensed;font-weight:800;font-size:34px;line-height:1}.tuile.pleine .chiffre{color:var(--orange);font-size:42px}.tuile .quoi{color:var(--creme-60);font-size:13px;margin-top:6px}.tuile .delta{font-size:13px;font-weight:700;margin-top:4px}.delta.plus{color:var(--vert)}.delta.moins{color:var(--rouge)}.delta.egal{color:var(--creme-60)}.vide{text-align:center;color:var(--creme-60);padding:40px 20px}.erreur{background:#e5484d26;border:1px solid var(--rouge);border-radius:10px;padding:11px 14px;margin-top:12px;font-size:14px}.info{color:var(--creme-60);font-size:13px;margin-top:8px}.champ-double{display:grid;grid-template-columns:1fr 1fr;gap:10px}.champ-double>div{min-width:0}input,select,textarea{min-width:0;max-width:100%}input[type=date],input[type=month]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:48px;display:block}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}button.ligne-ev{width:100%;background:none;color:var(--creme);text-align:left}button.ligne-ev:active{background:var(--creme-10)}button.ligne-ev:after{content:"›";color:var(--creme-30);font-size:22px;margin-left:4px}.sous-titre{font-size:18px;color:var(--creme-60);margin:22px 0 10px;display:flex;align-items:center;gap:8px}.sous-titre .compteur{background:var(--creme-10);border-radius:20px;padding:1px 9px;font-size:13px;color:var(--creme)}.bandeau-fit,.bandeau-fuites,.bandeau-abo{background:var(--marine);border-radius:var(--radius);padding:16px;margin-bottom:16px;border:1px solid var(--creme-10)}.bandeau-fit.ok{border-color:var(--vert)}.bandeau-fit .note,.bandeau-fuites .note,.bandeau-abo .note{font-family:Barlow Condensed;font-weight:800;font-size:40px;line-height:1}.bandeau-fit.ok .note{color:var(--vert)}.bandeau-fuites .note,.bandeau-abo .note{color:var(--orange)}.bandeau-fit .note span,.bandeau-fuites .note span,.bandeau-abo .note span{font-size:20px;color:var(--creme-60)}.bandeau-fit .verdict,.bandeau-fuites .verdict,.bandeau-abo .verdict{font-size:14px;color:var(--creme-60);margin-top:4px}.bandeau-abo>div:first-child{font-size:13px;color:var(--creme-60);margin-bottom:4px}.critere{margin-bottom:16px}.critere-tete{display:flex;justify-content:space-between;align-items:baseline}.critere-nom{font-weight:600;font-size:15px}.critere-max{color:var(--creme-60);font-size:13px}.critere-choix{display:flex;gap:6px;margin-top:7px}.critere-choix button{flex:1 1 0;min-width:0;background:var(--creme-10);color:var(--creme);border-radius:10px;padding:12px 4px;font-size:16px;font-weight:700;font-family:Barlow Condensed;white-space:nowrap}.critere-choix button.choisi{background:var(--orange);color:var(--nuit)}.critere-aide{color:var(--creme-60);font-size:12px;margin-top:5px}.checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checklist button{background:var(--creme-10);color:var(--creme-60);border-radius:10px;padding:12px 10px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;text-align:left}.checklist button.coche{background:#3dbe7b26;color:var(--creme)}.checklist .case{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--creme-30);display:inline-flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0}.checklist button.coche .case{background:var(--vert);border-color:var(--vert);color:var(--nuit)}.carte.tache{display:flex;align-items:flex-start;gap:12px}.coche-tache{background:none;color:var(--creme-30);padding:0;flex-shrink:0;width:26px;height:26px}.coche-tache svg{width:26px;height:26px;display:block}.coche-tache:active{color:var(--vert)}.tache-corps{flex:1;min-width:0}.groupe-statut h2.alerte{color:var(--rouge)}.rappel-fuites{background:var(--creme-10);border-left:3px solid var(--orange);border-radius:8px;padding:12px 14px;margin-top:14px;font-size:14px}.entete-impression{display:none}@media print{body{background:#fff;color:#0c1a30}.nav,.fab,.btn,.btn-lien,label,input,select,.info{display:none!important}.page{padding:0;max-width:none}.entete{display:none}.entete-impression{display:block;margin-bottom:20px}.entete-impression .marque{color:var(--orange);font-family:Barlow Condensed;font-weight:800;letter-spacing:.1em}.entete-impression h2{font-size:24px}.entete-impression .mois-impression{color:#555;text-transform:capitalize}.tuile{background:#f4f2ee;border:1px solid #ddd;break-inside:avoid}.tuile .chiffre{color:#0c1a30}.tuile.pleine .chiffre{color:var(--orange)}.tuile .quoi{color:#555}.rappel-fuites{background:#f4f2ee;color:#333}}.mode-emploi{background:#ff6b1a14;border-left:3px solid var(--orange);border-radius:8px;padding:12px 14px;margin-bottom:16px;font-size:13.5px;line-height:1.5;color:var(--creme-60)}.mode-emploi strong{color:var(--creme)}.note-aide{color:var(--creme-60);font-size:12.5px;line-height:1.45;margin-top:6px;margin-bottom:4px}.note-aide strong{color:var(--creme)}.critere-question{font-size:14px;color:var(--orange);font-style:italic;margin:5px 0 8px}.critere-choix.vertical{flex-direction:column;gap:6px}.critere-choix.vertical button{display:flex;align-items:center;gap:10px;text-align:left;font-family:Archivo;font-size:14px;font-weight:500;padding:12px 13px}.critere-choix.vertical .pts{font-family:Barlow Condensed;font-weight:800;font-size:15px;background:var(--creme-10);border-radius:6px;min-width:24px;text-align:center;padding:1px 0;flex-shrink:0}.critere-choix.vertical button.choisi .pts{background:#0c1a3040}@media print{.mode-emploi,.note-aide{display:none!important}}.logo-entete{height:38px;width:auto;display:block;flex:0 0 auto;object-fit:contain}.entete>div{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.logo-impression{display:none}@media print{.logo-impression{display:block;height:46px;width:auto;margin-bottom:10px}}.logo-connexion{height:auto;width:200px;max-width:60%;margin-bottom:14px;align-self:flex-start;flex:0 0 auto;object-fit:contain}.ligne-devis{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--creme-10)}.ligne-devis .quoi{flex:1;min-width:0}.montant-devis{width:110px;flex:0 0 auto;text-align:right}.carte-ligne{background:var(--marine);border-radius:var(--radius);padding:13px 15px;margin:10px 0}.ligne-devis-tete{display:flex;justify-content:space-between;align-items:baseline}.montant-impression,.mention-impression{display:none}@media print{.no-print{display:none!important}.montant-impression{display:block;color:#333;margin-top:4px;font-size:14px}.mention-impression{display:block;color:#666;font-size:12px;margin-top:18px}.ligne-devis{border-color:#ddd}.carte-ligne{background:#f4f2ee;border:1px solid #ddd}.sous-titre{color:#333}}.limite-brique{font-size:13px;line-height:1.35;color:var(--creme-60);margin-top:8px}.montant-remise{color:var(--orange);font-weight:700;flex:0 0 auto}@media print{.limite-brique{display:block;color:#666;font-size:12px}.montant-remise{display:none}}.mention-ht{display:none}@media print{.mention-ht{display:block;color:#666;font-size:12px;margin-top:4px}}.tuile .ttc{font-size:13px;color:var(--creme-60);margin-top:4px}@media print{.tuile .ttc{color:#666}}.face-a-face{display:grid;gap:12px;margin-top:20px}.face-a-face .cote{border-radius:var(--radius);padding:15px 17px}.face-a-face .perte{background:#e5484d1f;border:1px solid rgba(229,72,77,.35)}.face-a-face .cout{background:var(--marine);border:1px solid var(--creme-10)}.face-a-face .etiquette{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--creme-60);margin-bottom:6px}.face-a-face .chiffre{font-family:Barlow Condensed,sans-serif;font-weight:800;font-size:32px;line-height:1}.face-a-face .perte .chiffre{color:var(--rouge)}.face-a-face .cout .chiffre{color:var(--orange)}.face-a-face .detail{font-size:13px;color:var(--creme-60);margin-top:4px}.liste-fuites{list-style:none;margin-top:10px;font-size:13px;color:var(--creme-60)}.liste-fuites li{padding:3px 0;border-top:1px solid var(--creme-10)}.verdict-fuite{margin-top:10px;font-size:14px;font-weight:600;color:var(--vert)}@media print{.face-a-face{grid-template-columns:1fr 1fr;page-break-inside:avoid}.face-a-face .perte{background:#fbeded;border-color:#e5b4b4}.face-a-face .cout{background:#f4f2ee;border-color:#ddd}.face-a-face .etiquette,.face-a-face .detail,.liste-fuites{color:#666}.liste-fuites li{border-color:#ddd}.verdict-fuite{color:#1d7a4c}}

.cle-ingestion{background:var(--marine);border-radius:var(--radius);padding:16px;margin-bottom:16px;border:1px solid var(--creme-10)}.cle-ingestion.active{border-color:var(--vert)}.cle-ingestion.fraiche{border-color:var(--orange);background:#ff6b1a14}.cle-etat{font-size:13px;color:var(--creme-60)}.cle-etat.ok{color:var(--vert);font-weight:600}.cle-valeur{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:14px;letter-spacing:.02em;word-break:break-all;background:var(--creme-10);border-radius:8px;padding:10px 12px;margin:8px 0;color:var(--creme)}.btn-danger{display:block;width:100%;text-align:center;background:none;border:1px solid var(--rouge);color:var(--rouge);font-weight:600;font-size:14px;border-radius:12px;padding:11px;margin-top:8px}.btn-danger:disabled{opacity:.4}

.bandeau-test{background:var(--marine);border:1px solid var(--creme-10);color:var(--creme);border-radius:var(--radius);padding:11px 14px;font-size:13px;font-weight:600;margin-bottom:12px}
.ligne-case{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:14px;font-weight:600;color:var(--creme);cursor:pointer}
.ligne-case input{width:18px;height:18px;flex:none;accent-color:var(--marine-clair);cursor:pointer}
.case-voir-test{margin:0 0 14px;color:var(--creme-60)}
.pastille-test{display:inline-block;background:var(--marine-clair);color:var(--creme);border:1px solid var(--creme-10);border-radius:99px;padding:2px 9px;font-size:11px;font-weight:700;margin-bottom:5px}

.bandeau-chiffres{display:flex;gap:8px;margin-bottom:18px}
.chiffre{flex:1;min-width:0;background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:11px 10px}
.chiffre .v{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:17px;font-weight:700;color:var(--creme);line-height:1.2;overflow-wrap:anywhere}
.chiffre .l{font-size:11px;color:var(--creme-60);margin-top:2px;line-height:1.3}
.decomposition{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:10.5px;color:var(--creme-60);margin-top:5px;line-height:1.35;overflow-wrap:anywhere}
.titre-alertes{font-size:19px;margin:0 0 10px}
.alerte{display:block;width:100%;text-align:left;background:var(--marine);border:1px solid var(--creme-10);border-left:4px solid var(--marine-clair);border-radius:var(--radius);padding:12px 14px;margin-bottom:8px;color:var(--creme)}
.alerte.g3{border-left-color:var(--rouge)}
.alerte.g2{border-left-color:var(--orange)}
.alerte.g1{border-left-color:var(--marine-clair)}
.alerte-haut{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.alerte-qui{font-weight:700;font-size:15px;overflow-wrap:anywhere}
.alerte-motif{font-size:12px;font-weight:700;color:var(--creme-60);white-space:nowrap}
.alerte.g3 .alerte-motif{color:var(--rouge)}
.alerte.g2 .alerte-motif{color:var(--orange)}
.alerte-detail{font-size:13px;color:var(--creme-60);margin-top:4px;line-height:1.4}
.carte-vide{background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:16px}
.carte-vide strong{font-size:15px}
.etat-ok{display:flex;align-items:center;gap:11px;background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:14px 16px;font-weight:600;color:var(--vert)}
.etat-ok-coche{flex:none;width:26px;height:26px;border-radius:50%;background:rgba(61,190,123,.15);color:var(--vert);font-size:15px;font-weight:700;line-height:26px;text-align:center}
@media (max-width:380px){.chiffre{padding:10px 8px}.chiffre .v{font-size:15px}.chiffre .l{font-size:10.5px}}

.bandeau-facturation{background:var(--marine-clair);border:1px solid var(--creme-10);border-radius:var(--radius);padding:11px 14px;font-size:13px;margin-bottom:10px;color:var(--creme)}
.bandeau-facturation.anomalie{background:rgba(255,107,26,.14);border-color:var(--orange);color:var(--orange)}
.bandeau-facturation .bandeau-sous{font-weight:500;font-size:12px;margin-top:4px;opacity:.9}
.autre-enseigne{font-size:12.5px;color:var(--creme-60);margin-bottom:10px}
.autre-enseigne a{color:var(--creme);text-decoration:underline}
.bloc-legal{background:var(--marine-clair);border:1px solid var(--creme-10);border-radius:var(--radius);padding:12px 14px;margin-top:16px}
.bloc-legal>summary{cursor:pointer;font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:18px;letter-spacing:.02em;color:var(--creme)}
.bloc-legal[open]>summary{margin-bottom:8px}
.champ-fixe{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;letter-spacing:.04em}
.champ-fixe.invalide{border-color:var(--rouge)}
.erreur-champ{color:var(--rouge);font-size:12.5px;font-weight:600;margin-top:5px}
.bloc-contacts{margin-top:20px}
.contact{background:var(--marine-clair);border:1px solid var(--creme-10);border-radius:var(--radius);padding:12px 14px;margin-bottom:8px}
.contact-haut{display:flex;flex-wrap:wrap;align-items:center;gap:6px 9px}
.contact-qui{font-weight:700;font-size:15px;overflow-wrap:anywhere}
.pastille-principal{background:rgba(61,190,123,.16);color:var(--vert);border:1px solid rgba(61,190,123,.35);border-radius:99px;padding:2px 9px;font-size:11px;font-weight:700;white-space:nowrap}
.contact-role{font-size:13px;color:var(--creme-60);margin-top:3px}
.contact-coord{font-size:13px;color:var(--creme-60);margin-top:3px;overflow-wrap:anywhere}
.contact-actions{display:flex;gap:14px;margin-top:6px}
.contact-actions .btn-lien{padding:4px 0;font-size:13px}
.contact-actions .btn-lien.danger{color:var(--rouge)}
.contact-form{background:var(--marine-clair);border:1px solid var(--creme-10);border-radius:var(--radius);padding:12px 14px;margin-bottom:8px}

.installation{margin-bottom:10px}
.installation .ligne-ev{margin-bottom:0}
.etat-config{background:var(--marine-clair);border:1px solid var(--creme-10);border-radius:10px;padding:9px 12px;margin-top:6px;font-size:13px;color:var(--creme)}
.etat-config.prete{background:rgba(61,190,123,.14);border-color:rgba(61,190,123,.35);color:var(--vert);font-weight:700}
.etat-config.anomalie{background:rgba(255,107,26,.14);border-color:var(--orange);color:var(--orange)}
.etat-config .etat-sous{font-weight:500;font-size:12px;margin-top:4px;opacity:.9}
.config-brique{background:var(--marine-clair);border:1px solid var(--creme-10);border-radius:10px;padding:10px 12px;margin-top:6px}
.config-brique>summary{cursor:pointer;font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:17px;letter-spacing:.02em;color:var(--creme)}
.config-brique[open]>summary{margin-bottom:8px}
.champ-parametre{margin-bottom:12px}
.champ-parametre .note-aide{margin-top:4px}
/* Le seul réglage dont une erreur s'entend au téléphone */
.champ-parametre.en-tete{border-left:3px solid var(--orange);padding-left:10px;margin-left:-2px}
.oblig{color:var(--orange)}

/* Cycle de vie commercial : cartouche du chiffrage, historique, résiliation.

   « Accepter » est en vert plein : c'est l'action qui fait vivre l'entreprise.
   « Refuser » et « Résilier » sont en contour rouge — destructrices, elles ne
   doivent jamais ressembler aux autres boutons. */

.cartouche-devis{background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:14px 15px;margin-bottom:16px}
.entete-devis{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ref-devis{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:14px;font-weight:700;letter-spacing:.02em;overflow-wrap:anywhere}
.etiquette-statut{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 9px;background:var(--creme-10);color:var(--creme-60);white-space:nowrap}
.etiquette-statut.presente{background:rgba(255,107,26,.16);color:var(--orange)}
.etiquette-statut.accepte{background:rgba(61,190,123,.16);color:var(--vert)}
.etiquette-statut.refuse{background:rgba(229,72,77,.16);color:var(--rouge)}
.etiquette-perime{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 9px;background:var(--marine-clair);color:var(--creme-60);white-space:nowrap}
.validite-devis{font-size:13px;color:var(--creme-60);margin-top:10px;line-height:1.4}
.validite-devis.perime{color:var(--creme);background:var(--marine-clair);border-radius:8px;padding:8px 10px}

.actions-devis{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.actions-devis button{flex:1 1 auto;min-width:130px;border-radius:12px;padding:12px 14px;font-size:15px;font-weight:700;text-align:center}
.actions-devis button:disabled{opacity:.4}
.btn-etape{background:var(--creme-10);color:var(--creme)}
.btn-accepter{background:var(--vert);color:var(--nuit)}
.btn-destructif{background:none;color:var(--rouge);border:1.5px solid var(--rouge)}

.panneau-refus{margin-top:14px;border-top:1px solid var(--creme-10);padding-top:6px}
.bandeau-accepte,.bandeau-refuse{margin-top:14px;border-radius:10px;padding:11px 13px}
.bandeau-accepte{background:rgba(61,190,123,.12);border:1px solid rgba(61,190,123,.4)}
.bandeau-refuse{background:rgba(229,72,77,.1);border:1px solid rgba(229,72,77,.35)}
.bandeau-accepte .quoi,.bandeau-refuse .quoi{font-weight:700;font-size:14.5px}
.bandeau-accepte .detail,.bandeau-refuse .detail{font-size:13px;color:var(--creme-60);margin-top:3px;line-height:1.4}
.erreur-devis{margin-top:12px;background:#e5484d26;border:1px solid var(--rouge);border-radius:10px;padding:10px 12px;font-size:14px}

.liste-devis{display:flex;flex-direction:column;gap:8px}
.ligne-hist{display:block;width:100%;text-align:left;background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:12px 14px;color:var(--creme)}
/* Périmé en marine clair : on ne le masque pas, on doit pouvoir dire au client
   « ce prix datait de mars ». */
.ligne-hist.perime{background:var(--marine-clair)}
.ligne-hist.courant{border-color:rgba(255,107,26,.45)}
.hist-haut{display:flex;flex-wrap:wrap;align-items:center;gap:6px 9px}
.hist-ref{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:13.5px;font-weight:700;overflow-wrap:anywhere}
.hist-bas{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:5px;font-size:13px;color:var(--creme-60)}
.hist-titre{color:var(--creme);font-weight:600;overflow-wrap:anywhere}
.hist-montant{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;margin-left:auto;white-space:nowrap}
.hist-courant{font-size:11.5px;color:var(--orange);font-weight:700;margin-top:5px}

.zone-resiliation{margin-top:18px}
.zone-resiliation.ouverte{background:var(--marine);border:1px solid rgba(229,72,77,.35);border-radius:var(--radius);padding:14px 15px}
.zone-resiliation>.btn-destructif{display:block;width:100%;border-radius:12px;padding:13px;font-size:15px;font-weight:700}
.avertissement-resiliation{font-size:14px;line-height:1.45;color:var(--creme-60)}
.avertissement-resiliation strong{color:var(--creme)}

@media (max-width:380px){
  .actions-devis button{min-width:100%}
  .hist-montant{margin-left:0}
}

/* Écran Abonnements + la place qu'il prend dans la barre de navigation.

   ⚠️ La barre passe de quatre à cinq entrées : à 375 px, cinq fois 72 px de
   largeur minimale débordent. On resserre plutôt que de tronquer un libellé. */
.nav a{min-width:58px}
@media (max-width:400px){
  .nav{padding-left:2px;padding-right:2px}
  .nav a{min-width:0;flex:1 1 0;font-size:11px}
}

.carte-abo{display:block;width:100%;text-align:left;background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:13px 15px;margin-bottom:8px;color:var(--creme)}
.abo-haut{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.abo-qui{font-weight:700;font-size:15.5px;overflow-wrap:anywhere}
.abo-total{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-weight:700;font-size:15px;color:var(--orange);margin-left:auto;white-space:nowrap}
.abo-detail{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:12px;color:var(--creme-60);margin-top:4px;overflow-wrap:anywhere}
.abo-briques{font-size:13px;color:var(--creme-60);margin-top:5px;line-height:1.4;overflow-wrap:anywhere}
.abo-depuis{font-size:12.5px;color:var(--creme-60);margin-top:6px}

.bloc-resilies{margin-top:22px;background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:4px 14px}
.bloc-resilies summary{cursor:pointer;padding:11px 0;font-weight:600;font-size:14px;color:var(--creme-60)}
.ligne-resilie{display:block;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--creme-10);padding:11px 0;color:var(--creme)}
.resilie-haut{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.resilie-fin{font-size:12.5px;color:var(--rouge);font-weight:700;margin-left:auto;white-space:nowrap}

@media (max-width:380px){
  .abo-total,.resilie-fin{margin-left:0}
}

/* Devis imprimable.

   ⚠️ Fond blanc, texte nuit, orange en accent. Aucun aplat de couleur sur toute
   la page : ça vide une cartouche d'encre et rend l'impression noir et blanc
   illisible. Les séparations sont des filets, pas des pavés.

   La feuille est déjà blanche à l'écran : ce qu'on voit est ce qui sortira. */

.page-devis{max-width:760px}
.barre-devis{margin-bottom:10px}
.avis-perime{background:var(--marine-clair);border-radius:10px;padding:10px 12px;font-size:13.5px;line-height:1.45;margin-top:4px}

.feuille-devis{background:#fff;color:var(--nuit);border-radius:10px;padding:26px 24px 22px;font-size:14px;line-height:1.5}

.devis-entete{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;border-bottom:2px solid var(--orange);padding-bottom:14px}
.devis-emetteur{flex:1 1 220px;font-size:12.5px;color:#555}
.devis-logo{height:44px;width:auto;display:block;margin-bottom:8px}
.devis-baseline{color:var(--nuit);font-weight:600;font-size:13px;margin-bottom:3px}
.devis-repere{flex:0 0 auto;text-align:right;font-size:12.5px;color:#555}
.devis-ref{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:16px;font-weight:700;color:var(--nuit);letter-spacing:.02em}

.devis-titre{font-size:25px;color:var(--nuit);margin:18px 0 14px;overflow-wrap:anywhere}

.devis-client{border-left:3px solid var(--orange);padding:2px 0 2px 12px;margin-bottom:22px;font-size:13.5px;color:#333}
.devis-etiquette{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#777;font-weight:700;margin-bottom:3px}
.devis-client-nom{font-size:16px;font-weight:700;color:var(--nuit);overflow-wrap:anywhere}
.devis-contact{margin-top:6px;color:var(--nuit)}

.devis-section{font-size:16px;color:var(--nuit);margin:22px 0 8px;padding-bottom:5px;border-bottom:1px solid #ddd}
.devis-ligne{display:flex;align-items:baseline;gap:14px;padding:8px 0;border-bottom:1px solid #eee}
.devis-quoi{flex:1;min-width:0;overflow-wrap:anywhere}
.devis-precision{color:#777}
.devis-combien{flex:0 0 auto;text-align:right;white-space:nowrap}
.devis-eur{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:14px}
.devis-eur.fort{font-size:17px;font-weight:700}
.devis-ligne.remise .devis-eur{color:var(--orange);font-weight:700}
.devis-note{font-size:12.5px;color:#777;padding:2px 0 6px;line-height:1.4}

.devis-total{display:flex;align-items:baseline;gap:14px;padding:12px 0 4px;border-top:2px solid var(--nuit);margin-top:6px;font-weight:700}
/* ⚠️ Le prix catalogue reste lisible, barré : on ne cache pas la valeur offerte. */
.devis-barre{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:14px;color:#888;text-decoration:line-through;margin-right:10px}
.devis-ttc{text-align:right;font-size:12.5px;color:#777;padding-bottom:4px}

.devis-validite{margin-top:24px;border:1px solid var(--orange);border-radius:8px;padding:10px 12px;font-weight:700;font-size:14px;color:var(--nuit)}
.devis-mot{margin-top:12px;font-size:13.5px;color:#333;font-style:italic}
.devis-mentions{margin-top:18px;font-size:11px;color:#666;line-height:1.5}

@media print{
  .page-devis{padding:0;max-width:none}
  .feuille-devis{background:none;border-radius:0;padding:0;font-size:12px}
  .devis-titre{font-size:22px}
  .devis-logo{display:block;height:42px;margin-bottom:8px}
  .devis-section,.devis-total,.devis-validite,.devis-client{break-inside:avoid}
  .devis-mentions{break-inside:avoid}
}

@media (max-width:420px){
  .feuille-devis{padding:18px 16px}
  .devis-repere{text-align:left}
  .devis-titre{font-size:21px}
}

/* Recherche du Pipeline.

   ⚠️ Le champ est volontairement discret : il est présent en permanence, il ne
   doit pas attirer l'œil. Pas de bordure épaisse, pas d'accent orange au repos —
   l'orange ne vient qu'au focus, comme partout ailleurs dans le CRM. */

.zone-recherche{margin-bottom:14px}
.boite-recherche{position:relative}
.champ-recherche{background:var(--creme-10);border:1px solid var(--creme-10);border-radius:10px;padding:11px 38px 11px 14px;font-size:16px}
.champ-recherche::placeholder{color:var(--creme-60)}
.champ-recherche::-webkit-search-cancel-button{display:none}
.vider-recherche{position:absolute;top:50%;right:6px;transform:translateY(-50%);background:none;color:var(--creme-60);font-size:22px;line-height:1;padding:4px 10px;border-radius:8px}
.compte-recherche{font-size:12.5px;color:var(--creme-60);margin-top:6px;padding-left:2px}

/* Recherche sans résultat : on dit pourquoi la liste est vide, on ne laisse pas
   croire que le fichier client a disparu. */
.aucun-resultat{background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:16px;text-align:center}
.aucun-resultat strong{display:block;font-size:15px;margin-bottom:4px}
.aucun-resultat .note-aide{margin:0}

/* Pose de plusieurs briques d'un coup.

   Le total est le seul élément mis en avant : c'est le chiffre que Jonathan
   annonce de vive voix pendant la visite. */

.pose-briques{margin-top:8px}
.lignes-pose{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.ligne-pose{display:flex;align-items:center;gap:10px;background:var(--marine);border:1px solid var(--creme-10);border-radius:10px;padding:10px 12px}
.pose-nom{flex:1;min-width:0;font-weight:600;font-size:14.5px;overflow-wrap:anywhere}
.pose-champ{flex:0 0 auto;display:flex;align-items:center;gap:6px}
.pose-champ input{width:88px;padding:9px 10px;text-align:right}
.pose-unite{font-size:12.5px;color:var(--creme-60);white-space:nowrap}

.total-pose{margin-top:14px;background:var(--marine);border:1px solid rgba(255,107,26,.35);border-radius:var(--radius);padding:12px 14px}
.total-ligne{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13.5px;color:var(--creme-60)}
.total-ligne+.total-ligne{margin-top:7px;padding-top:7px;border-top:1px solid var(--creme-10)}
.total-ligne.fort{color:var(--creme);font-weight:700;font-size:15px}
.total-chiffre{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;white-space:nowrap}
.total-ligne.fort .total-chiffre{color:var(--orange);font-size:17px}

@media (max-width:380px){
  .ligne-pose{flex-wrap:wrap}
  .pose-champ input{width:76px}
}

/* Journal des échanges.

   ⚠️ Pastilles de canal en marine clair, sobres : ce sont des repères, pas des
   alertes. L'orange est réservé à la case « prévoir un suivi » — elle est la
   seule chose ici qui engage une action future. */

.saisie-echange{background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:14px 15px;margin-bottom:20px}
.saisie-echange textarea{resize:vertical}
.saisie-echange .btn{margin-top:16px}

.ligne-case.case-suivi{display:flex;align-items:center;gap:10px;margin-top:16px;background:var(--creme-10);border:1px solid transparent;border-radius:10px;padding:11px 13px;cursor:pointer;font-size:14.5px;color:var(--creme)}
.ligne-case.case-suivi input{width:auto;flex:0 0 auto;accent-color:var(--orange)}
.ligne-case.case-suivi.active{border-color:var(--orange);background:rgba(255,107,26,.12)}
.bloc-suivi{margin-top:4px;border-left:3px solid var(--orange);padding-left:12px}

.fil-echanges{display:flex;flex-direction:column;gap:10px}
.echange{background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:12px 14px}
.echange-haut{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.pastille-canal{flex:0 0 auto;background:var(--marine-clair);color:var(--creme);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 9px;white-space:nowrap}
.echange-quand{font-size:12.5px;color:var(--creme-60);white-space:nowrap}
.echange-sens{font-size:11.5px;color:var(--creme-60);font-style:italic}
.echange-qui{font-size:13px;color:var(--creme-60);margin-top:5px}
.echange-resume{margin-top:6px;font-size:14.5px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}
.echange-suivi{margin-top:8px;font-size:13px;font-weight:600;color:var(--orange);background:rgba(255,107,26,.1);border-radius:8px;padding:6px 9px}
.echange-suivi.fait{color:var(--vert);background:rgba(61,190,123,.12)}
.echange-auteur{margin-top:7px;font-size:11.5px;color:var(--creme-60)}

@media (max-width:380px){
  .echange-quand{white-space:normal}
}

/* L'offre de lancement, désormais juste sous la ligne Fondations.

   Le liseré orange à gauche la rattache visuellement à la ligne qu'elle réduit :
   c'est tout l'intérêt de l'avoir remontée. */
.champ-remise{border-left:3px solid var(--orange);padding:2px 0 8px 12px;margin:4px 0 10px}
.champ-remise label{margin-top:6px}
.champ-remise input{max-width:180px}

/* La remise des Fondations : montant, pourcentage, libellé.

   Le liseré orange à gauche la rattache visuellement à la ligne qu'elle réduit —
   c'est tout l'intérêt de l'avoir remontée sous les Fondations. */
.champ-remise{border-left:3px solid var(--orange);padding:2px 0 10px 12px;margin:6px 0 12px}
.champ-remise label{margin-top:10px}
.champ-remise .champ-double{margin-top:0}
.champ-remise input:disabled{opacity:.45}
/* ⚠️ La version precedente de ce fichier est deja dans le CSS deploye et
   plafonnait les champs a 180 px — ce qui etranglerait le libelle. On annule
   explicitement plutot que de compter sur sa disparition. */
.champ-remise input{max-width:none}

/* Historique : la carte n'est plus un bouton, elle en contient. */
.hist-corps{display:block;width:100%;text-align:left;background:none;padding:0;color:inherit}
.hist-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:8px;padding-top:8px;border-top:1px solid var(--creme-10)}
.hist-actions .btn-lien{padding:2px 0;font-size:13px}
.hist-actions .btn-lien.danger{color:var(--rouge)}
/* ⚠️ Un chiffrage accepté ne se supprime pas : on dit pourquoi, à la place du bouton. */
.hist-verrou{font-size:12px;color:var(--creme-60);font-style:italic}

/* La case qui décide si l'argumentaire part sur le devis. */
.ligne-case.case-argumentaire{display:flex;align-items:center;gap:10px;margin:16px 0 4px;background:var(--creme-10);border:1px solid transparent;border-radius:10px;padding:11px 13px;cursor:pointer;font-size:14.5px;color:var(--creme)}
.ligne-case.case-argumentaire input{width:auto;flex:0 0 auto;accent-color:var(--orange)}
.ligne-case.case-argumentaire.active{border-color:var(--orange);background:rgba(255,107,26,.12)}

/* L'argumentaire sur le devis remis au client.

   ⚠️ Mêmes règles que le reste de la feuille : fond blanc, texte nuit, orange en
   accent. Le côté « ce que vous perdez » ne prend PAS un aplat rouge — à
   l'écran de travail il en porte un, mais sur un document imprimé un aplat vide
   la cartouche et rend le noir et blanc illisible. Ici, un filet suffit. */

.devis-argumentaire{margin-top:26px;break-inside:avoid}
.devis-faceaface{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}
.devis-cote{border:1px solid #ddd;border-radius:8px;padding:12px 14px}
.devis-cote.perte{border-left:3px solid #c0392b}
.devis-cote.cout{border-left:3px solid var(--orange)}
.devis-cote .devis-etiquette{margin-bottom:6px}
.devis-cote-chiffre{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;font-size:19px;font-weight:700;color:var(--nuit)}
.devis-cote-detail{font-size:12.5px;color:#777;margin-top:3px}
.devis-fuites{margin:9px 0 0;padding-left:17px;font-size:12.5px;color:#333;line-height:1.55}
.devis-verdict{margin-top:12px;border:1px solid var(--orange);border-radius:8px;padding:9px 12px;font-weight:700;font-size:13.5px;color:var(--nuit)}

@media print{
  .devis-faceaface{gap:12px}
  .devis-cote,.devis-verdict{break-inside:avoid}
}

@media (max-width:520px){
  .devis-faceaface{grid-template-columns:1fr}
}

/* Le CRM sur un écran de PC, et l'impression sans les annotations du navigateur.

   Le CRM a été dessiné pour un téléphone — Jonathan travaille debout, chez le
   client. Sur un écran de 1512 px, la fiche n'occupait que 42 % de la largeur
   (max-width 640), la barre d'onglets défilait alors qu'il restait 800 px de
   vide, et la barre du bas s'étalait sur toute la largeur pendant que le contenu
   restait au milieu.

   ⚠️ On n'élargit pas sans limite : un formulaire de chiffrage étalé sur 1400 px
   devient illisible, l'œil ne retrouve plus le début de la ligne suivante. On
   passe à 900 px, ce qui laisse respirer sans casser la colonne de lecture. */

@media screen and (min-width: 900px) {
  .page { max-width: 900px; padding-left: 24px; padding-right: 24px }
  /* La barre du bas suit le contenu au lieu de s'étaler d'un bord à l'autre. */
  .nav { justify-content: center; gap: 56px }
  .nav a { min-width: 84px }
}

@media screen and (min-width: 760px) {
  /* Il y a la place pour tous les onglets : on les enroule plutôt que de les
     faire défiler. Une barre de défilement sur huit onglets visibles est un
     réflexe de téléphone appliqué là où il ne sert plus. */
  .onglets { flex-wrap: wrap; overflow-x: visible; padding-bottom: 0 }
}

/* Le devis reste une feuille de papier : sa largeur ne suit pas celle de l'écran. */
@media screen and (min-width: 900px) {
  .page-devis { max-width: 800px }
}

/* ---------- Impression ----------

   ⚠️ Les « annotations » en haut et en bas de la page imprimée — date, titre de
   l'onglet, URL, numéro de page — ne sont pas du contenu de la page : c'est le
   navigateur qui les dessine dans les marges du papier. AUCUNE règle CSS ne les
   supprime. Le seul levier certain est la case « En-têtes et pieds de page » de
   la fenêtre d'impression, à décocher une fois — le navigateur s'en souvient.

   ⚠️ Le contournement tentant — , qui prive le navigateur
   de la place où les dessiner — a été essayé puis ABANDONNÉ : sur un devis qui
   déborde sur une deuxième page, cette page commencerait à 0 mm du bord, et la
   plupart des imprimantes ne savent pas imprimer si près du papier. Le texte y
   serait coupé. Une annotation est moins grave qu'une ligne perdue.

   ⚡ Ce qu'on fait à la place : de vraies marges de page, correctes sur TOUTES
   les pages, et un titre de document qui porte la référence du devis (voir
   ecran-devis.js) — si l'en-tête s'affiche quand même, il lit
   « Devis SON-2026-0001 — Sonalia » et non « CRM Sonalia ». */
@media print {
  @page { size: A4; margin: 12mm 14mm }
  /* La marge vient de la page : la feuille n'en rajoute pas. */
  .feuille-devis { padding: 0 }
}

/* ---------- Densité d'impression ----------

   ⚠️ Avec l'argumentaire, le devis mesurait 1330 px à la largeur d'une A4 : il
   débordait sur une seconde page qui, faute de marge de page, aurait commencé au
   bord du papier. On resserre l'interligne et les titres pour le ramener sur une
   feuille — un devis d'une page se lit et s'archive mieux qu'un devis de deux.

   Rien de tout ceci ne touche l'écran : ces règles ne valent qu'au papier. */
@media print {
  .feuille-devis { font-size: 11px }
  .devis-titre { font-size: 19px; margin: 12px 0 10px }
  .devis-client { margin-bottom: 14px }
  .devis-section { font-size: 14px; margin: 15px 0 5px }
  .devis-ligne { padding: 5px 0 }
  .devis-note { padding: 1px 0 4px; font-size: 10.5px }
  .devis-total { padding: 9px 0 3px }
  .devis-argumentaire { margin-top: 15px }
  .devis-cote { padding: 9px 11px }
  .devis-cote-chiffre { font-size: 16px }
  .devis-fuites { margin-top: 6px }
  .devis-verdict { margin-top: 9px; padding: 7px 10px }
  .devis-validite { margin-top: 15px; padding: 8px 11px }
  .devis-mentions { margin-top: 12px; font-size: 9.5px }
}
/* La remise, ligne par ligne.

   Le liseré orange rattache le contrôle à la ligne qu'il réduit. Discret : c'est
   un réglage d'appoint, pas le sujet principal de la ligne. */

.remise-ligne{border-left:2px solid rgba(255,107,26,.5);padding:0 0 4px 11px;margin:10px 0 2px}
.remise-ligne .champ-double{margin-top:0}
.remise-ligne label{margin-top:6px;font-size:12px}
.remise-ligne input{padding:9px 11px}
.remise-ligne input:disabled{opacity:.45}
.remise-net{font-size:12.5px;color:var(--vert);font-weight:600;margin-top:7px}
/* ⚠️ Une remise supérieure au prix catalogue se signale : le net est ramené à 0,
   mais le total, lui, deviendrait faux si on ne le disait pas. */
.remise-net.excessive{color:var(--rouge);font-weight:700}

.champ-libelle-remise{border-left:3px solid var(--orange);padding:2px 0 8px 12px;margin:18px 0 4px}
.champ-libelle-remise label{margin-top:0}

/* L'ancienne remise globale, encore appliquée aux chiffrages d'avant. */
.remise-heritee{margin-top:12px;background:var(--marine-clair);border-radius:10px;padding:11px 13px}
.remise-heritee .quoi{font-weight:700;font-size:14px}
.remise-heritee .detail{font-size:12.5px;color:var(--creme-60);margin-top:4px;line-height:1.4}

/* Sur le devis : le prix catalogue barré, puis le net. */
.devis-remise-ligne{display:inline-flex;align-items:baseline;gap:9px;white-space:nowrap}
.devis-remise-ligne .devis-barre{margin-right:0}

@media (max-width:380px){
  .remise-ligne{padding-left:8px}
  .remise-ligne input{padding:8px 9px}
}

/* La mention du devis n'est plus un verdict : c'est un avertissement de lecture.
   Elle perd son encadré orange, qui la mettait en avant comme un argument. */
.devis-verdict{border:none;border-top:1px solid #ddd;border-radius:0;padding:8px 0 0;margin-top:12px;font-weight:400;font-size:10.5px;color:#777;line-height:1.5}

/* Le garde-fou de saisie, sur l'écran de travail seulement. */
.alerte-fuite{background:#e5484d26;border:1px solid var(--rouge);border-radius:10px;padding:11px 13px;margin-top:12px;font-size:13.5px;line-height:1.45;color:var(--creme)}
.alerte-fuite strong{display:block;margin-bottom:3px}
/* ⚠️ Le face-à-face de l ecran de travail est une aide de vente INTERNE : il
   affirme « Rebouché dès le 1er mois : X récupérés ». Cette phrase se dit, elle
   ne s ecrit pas — et un Ctrl+P malencontreux sur l onglet Chiffrage la mettrait
   sur du papier. Le document client a sa propre version, requalifiee. */
@media print{.face-a-face{display:none!important}}


/* Les sept Fondations, chacune dépliable sur son formulaire.

   La case n'est plus un bouton : elle ne se clique pas, elle constate. Elle est
   verte quand la Fondation est complète — le vert dit « acquis », comme partout
   ailleurs dans le CRM. */

.liste-fondations{display:flex;flex-direction:column;gap:8px;margin-top:12px}

.fondation{background:var(--marine);border:1px solid var(--creme-10);border-radius:var(--radius);padding:2px 14px}
.fondation[open]{border-color:rgba(255,107,26,.35);padding-bottom:14px}
.fondation.complete{border-left:3px solid var(--vert)}

.fondation summary{display:flex;align-items:center;gap:11px;padding:12px 0;cursor:pointer;list-style:none}
.fondation summary::-webkit-details-marker{display:none}
.fondation-case{flex:0 0 auto;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--creme-30);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--nuit)}
.fondation.complete .fondation-case{background:var(--vert);border-color:var(--vert)}
.fondation-nom{flex:1;min-width:0;font-weight:700;font-size:15px;overflow-wrap:anywhere}
.fondation-etat{flex:0 0 auto;font-size:12px;color:var(--creme-60);white-space:nowrap}
.fondation.complete .fondation-etat{color:var(--vert)}

.fondation .champ-parametre{margin-top:12px}
.fondation .btn{margin-top:16px}

/* L'ancienne prise de notes libre : conservée, mais visiblement d'un autre temps. */
.notes-fondations{margin-top:16px;background:var(--marine-clair);border-radius:10px;padding:12px 14px}
.notes-fondations .quoi{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--creme-60);font-weight:700}
.notes-fondations .detail{margin-top:6px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}

@media (max-width:380px){
  .fondation-etat{font-size:11px}
}
