/* ==========================================================================
   Recette V9 — « Campagne de relance » (remplace « Opportunités »).
   Panneau de filtres repliable (<details>), tableau des clients et prospects
   qui devient une pile de cartes sur téléphone.
   ========================================================================== */

.campagne-eyebrow { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--v1); margin-bottom: .2rem; }

/* ---------- Filtres avancés ---------- */
.campagne-filtres { border-radius: var(--r-lg); box-shadow: var(--sh-sm); overflow: visible; }
.campagne-filtres__bandeau { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; padding: .8rem 1.15rem; cursor: pointer; list-style: none; }
.campagne-filtres__bandeau::-webkit-details-marker { display: none; }
.campagne-filtres__titre { font-weight: 700; color: var(--ink); white-space: nowrap; }
.campagne-filtres__titre i { color: var(--v1); }
.campagne-filtres__liste { display: flex; gap: .35rem; flex-wrap: wrap; flex: 1 1 14rem; }
.campagne-filtres__modifier { color: var(--v1); font-size: .85rem; font-weight: 600; white-space: nowrap; }
.campagne-filtres__modifier i { display: inline-block; transition: transform .16s; }
.campagne-filtres[open] .campagne-filtres__modifier i { transform: rotate(180deg); }
.campagne-filtres[open] .campagne-filtres__bandeau { border-bottom: 1px solid var(--line); }

.campagne-critere { border: 0; margin: 0; padding: 0; min-width: 0; }
.campagne-critere__mode { flex: 1 1 14rem; width: auto; min-width: 0; }
.campagne-critere__mois { flex: 0 0 8.5rem; width: 8.5rem; }
.campagne-critere__date { flex: 0 0 10.5rem; width: 10.5rem; }
/* Seul le champ utile au mode choisi s'affiche (sans JavaScript). */
.campagne-critere:has(.campagne-critere__mode option[value=""]:checked) :is(.campagne-critere__mois, .campagne-critere__date),
.campagne-critere:has(.campagne-critere__mode option[value="jamais"]:checked) :is(.campagne-critere__mois, .campagne-critere__date),
.campagne-critere:has(.campagne-critere__mode option[value="mois"]:checked) .campagne-critere__date,
.campagne-critere:has(.campagne-critere__mode option[value="avant"]:checked) .campagne-critere__mois,
.campagne-critere:has(.campagne-critere__mode option[value="apres"]:checked) .campagne-critere__mois { display: none; }

/* ---------- Liste ---------- */
.campagne-liste { border-radius: var(--r-lg); overflow: hidden; }
.campagne-table td { font-size: .9rem; }
.campagne-table__nom a { font-weight: 600; color: var(--ink); text-decoration: none; }
.campagne-table__nom a:hover { color: var(--v1); }
.campagne-table__numero { display: block; color: var(--ink-faint); font-size: .78rem; }
.campagne-table__mail { display: block; color: var(--ink-faint); font-size: .8rem; text-decoration: none; overflow-wrap: anywhere; }
.campagne-table__mail:hover { color: var(--v1); }
.campagne-table__contact { display: block; min-width: 0; }

/* Téléphone : chaque client devient une carte, libellé en face de chaque valeur. */
@media (max-width: 767.98px) {
    .campagne-table thead { display: none; }
    .campagne-table, .campagne-table tbody, .campagne-table tr, .campagne-table td { display: block; width: 100%; }
    .campagne-table tr { position: relative; padding: .75rem 1rem; border-bottom: 1px solid var(--line); }
    .campagne-table tr:last-child { border-bottom: 0; }
    .campagne-table > :not(caption) > * > * { padding: .12rem 0; border: 0; }
    .campagne-table td[data-label] { display: flex; gap: .75rem; justify-content: space-between; text-align: right; font-size: .86rem; }
    .campagne-table td[data-label]::before { content: attr(data-label); color: var(--ink-faint); font-weight: 600; text-align: left; flex: 0 0 auto; }
    .campagne-table td.campagne-table__nom { font-size: 1rem; margin-bottom: .3rem; }
    .campagne-filtres__modifier { margin-left: auto; }
}
