*,:after,:before{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;color:#1a1a1a;background:#fff;font-size:15px}h1{font-size:1.5rem}h2{font-size:1.15rem;margin-top:2rem}a{color:#e60000}.page-centree{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f7f7f7}.contenu-interne{max-width:1100px;margin:0 auto;padding:1.5rem}.carte{background:#fff;border:1px solid #e3e3e3;border-radius:6px;padding:1.5rem}.entete-client,.entete-interne{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1.5rem;border-bottom:1px solid #e3e3e3}.entete-droite,.entete-gauche{display:flex;align-items:center;gap:1.25rem}.entete-interne nav{display:flex;gap:1rem}.entete-interne nav a{color:#1a1a1a;text-decoration:none}.entete-interne nav a:hover{color:#e60000}.logo-bureau{font-weight:700;letter-spacing:.02em}.tableau{width:100%;border-collapse:collapse;margin:.75rem 0}.tableau td,.tableau th{text-align:left;padding:.45rem .6rem;border-bottom:1px solid #ececec;vertical-align:top}.tableau th{font-weight:600;color:#555;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}.montant{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.formulaire{gap:.9rem}.formulaire,.formulaire label{display:flex;flex-direction:column}.formulaire label{gap:.3rem;font-size:.9rem;color:#444}.formulaire input,.formulaire select{padding:.5rem .6rem;border:1px solid #ccc;border-radius:4px;font:inherit}.bouton-principal{background:#e60000;color:#fff;border:none;border-radius:4px;padding:.55rem 1rem;font:inherit;font-weight:600;cursor:pointer}.bouton-principal:hover{background:#c50000}.bouton-discret{background:none;border:1px solid #ccc;border-radius:4px;padding:.25rem .6rem;font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}.bouton-discret:hover{border-color:#e60000;color:#e60000}.actions-ligne{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.actions-ligne input[type=password]{padding:.25rem .4rem;border:1px solid #ccc;border-radius:4px;font-size:.85rem}.badge{display:inline-block;padding:.1rem .5rem;border-radius:10px;font-size:.8rem;border:1px solid #ccc;color:#555}.badge-actif{border-color:#2e7d32;color:#2e7d32}.badge-archive,.badge-termine{border-color:#999;color:#777}.message-erreur{color:#c50000;background:#fdeeee;border:1px solid #f3c2c2;border-radius:4px;padding:.5rem .75rem;font-size:.9rem}.texte-secondaire{color:#777;font-size:.9rem}.lien-client{font-size:.8rem;word-break:break-all}.entete-projet{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap}.bloc-phase{text-align:right}.formulaire-en-ligne{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.formulaire-en-ligne label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:#666;text-align:left}.formulaire-en-ligne input,.formulaire-en-ligne select{padding:.35rem .5rem;border:1px solid #ccc;border-radius:4px;font:inherit;font-size:.9rem}.cartes-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:.75rem;gap:.75rem;margin:1rem 0}.carte-kpi{display:flex;flex-direction:column;gap:.3rem;padding:.9rem 1.1rem}.montant-kpi{font-size:1.15rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.fourchette{background:#f7f7f7;border-left:3px solid #e60000;padding:.5rem .9rem}.actions-page{display:flex;gap:.6rem;margin:1rem 0}.lien-bouton{text-decoration:none;display:inline-block}a.bouton-principal{color:#fff}.defilement-horizontal{overflow-x:auto}.tableau-budget{min-width:880px}.ligne-groupe td{font-weight:600;background:#fafafa}.ligne-reserve td{background:#fdf9f0}.ligne-total td{font-weight:700;border-top:2px solid #1a1a1a}.ecart-vert{color:#2e7d32}.ecart-orange{color:#b26a00}.ecart-rouge{color:#c50000;font-weight:600}.grille-postes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:.9rem;gap:.9rem}.carte-poste{gap:.6rem;padding:1rem}.entete-poste{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.champ-montant{display:flex;gap:.4rem}.champ-montant input{flex:1 1;text-align:right}.page-signature{max-width:640px}.pave-signature{display:flex;flex-direction:column;gap:.5rem}.canvas-signature{width:100%;height:220px;border:1.5px dashed #999;border-radius:6px;background:#fcfcfc;touch-action:none}.bouton-large{padding:.9rem 1.2rem;font-size:1.05rem;width:100%}@media (orientation:landscape) and (max-height:500px){.canvas-signature{height:55vh}}.galerie-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:.6rem;gap:.6rem;margin:.75rem 0}.galerie-photos img{width:100%;height:120px;object-fit:cover;border-radius:6px;border:1px solid #e3e3e3}.filtre-actif{border-color:#e60000;color:#e60000;font-weight:600}.visible-oui{border-color:#2e7d32;color:#2e7d32}.message-succes{color:#2e7d32;background:#eef7ee;border:1px solid #bfe3bf;border-radius:4px;padding:.5rem .75rem;font-size:.9rem}.fil-commentaire{border-top:1px solid #ececec;padding:.6rem 0}.commentaire{padding:.4rem .6rem;border-left:3px solid #ccc;margin-bottom:.4rem}.commentaire-client{border-left-color:#e60000}.commentaire-interne{border-left-color:#555;margin-left:1.25rem}.commentaire-nonlu{background:#fff6f6}.entete-commentaire{display:flex;gap:.6rem;align-items:center;font-size:.85rem}.badge-nonlu{border-color:#e60000;color:#e60000}.formulaire textarea{padding:.5rem .6rem;border:1px solid #ccc;border-radius:4px;font:inherit}.ligne-rdv{display:flex;gap:.75rem;align-items:flex-start;padding:.4rem 0;border-top:1px solid #ececec}.heure-rdv{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:3.2rem}.cellule-json{font-size:.75rem;word-break:break-word;max-width:220px}@media (max-width:640px){.contenu-interne{padding:.9rem}.entete-client,.entete-interne{flex-wrap:wrap;padding:.5rem .9rem}.cartes-kpi{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.montant-kpi{font-size:1rem}h1{font-size:1.25rem}.grille-postes{grid-template-columns:1fr}.formulaire-en-ligne{flex-direction:column;align-items:stretch}.actions-page{flex-wrap:wrap}}