/* M2 — Pipeline et agenda. Règles préfixées par .m2 (CONTRAT.md § 8). */
.m2-filtres{display:flex;flex-wrap:wrap;gap:var(--sm);align-items:center;margin:var(--sm) 0}
.m2-filtres > label.champ{flex:1;min-width:150px;margin:0}
.m2-filtres > select{flex:1;min-width:150px}
.m2-case{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--texte-2);min-height:44px;white-space:nowrap}

/* Colonnes du pipeline : une seule visible à la fois au téléphone (étape active), toutes sur grand écran. */
.m2-colonnes{display:flex;gap:var(--sm);align-items:flex-start}
.m2-colonne{display:none;flex:0 0 100%;min-width:0;max-height:none}
.m2-colonne.actif{display:block}
.m2-colonne h3{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sm);flex-wrap:wrap}
@media (min-width:900px){
  .m2-colonnes{overflow-x:auto;padding-bottom:var(--sm)}
  .m2-colonne{display:block;flex:0 0 260px}
}

/* Barre des 8 étapes (sélecteur cliquable, pas de glisser-déposer : CONTRAT.md § 0 règle 4). */
.m2-etapes{margin:var(--sm) 0}

/* Boutons de résultat d'appel (compte rendu en un geste). */
.m2-resultats{display:flex;flex-wrap:wrap;gap:6px;margin:var(--xs) 0}
.btn.m2-resultat[aria-pressed="true"]{background:var(--primaire);border-color:var(--primaire);color:#fff}

/* Type d'offre : 3 gros boutons (feuille d'affaire), pièces à demander (installation seule). */
.m2-offres{display:grid;gap:var(--sm)}
.m2-offre{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;padding:var(--sm) var(--md);text-align:left;
  border:2px solid var(--bord-fort);border-radius:var(--r-sm);background:var(--surface)}
.m2-offre span{font-size:13px;color:var(--texte-2)}
.m2-offre[aria-pressed="true"]{border-color:var(--primaire);background:var(--primaire-clair)}
.m2-pieces{margin:var(--sm) 0;padding:var(--sm) var(--md);border:1px solid var(--bord);border-radius:var(--r-sm);background:var(--surface-2)}
.m2-pieces h3{margin:0 0 var(--xs)}
.m2-pieces .actions{margin:var(--xs) 0 var(--sm)}
