: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}
}
