/* Les campagnes et leur calendrier (ui/campagne-com.js, ui/campagne-calendrier.js).
   Jetons de la charte uniquement (app.css) ; les surcouches du thème HUD redéfinissent ces mêmes
   jetons, l'écran suit donc chaque ambiance sans règle de plus. Le texte reste `inherit`, les
   fonds neutres sont translucides : lisibles sur clair comme sur sombre.
   `!important` : le thème HUD range TOUS les boutons d'une carte dans une boîte grise par un sélecteur
   très spécifique (`.card button:not(.btn):not(.ghost)…`, theme-hud.css). Les jours de la grille ont
   leur propre dessin : ces quelques propriétés le tiennent, ici seulement (même choix que le
   calendrier de l'accueil, agenda-widget.css). */
.cc-liste,.cc-campagne,.cc-form{display:flex;flex-direction:column;gap:12px;min-width:0}
.cc-liste h3,.cc-campagne h3,.cc-form h3,.cc-campagne h4{margin:0}
/* Le titre d'une campagne est la phrase de la personne : ni capitales ni interlettrage. */
.cc-campagne>h3,.cc-campagne .cc-campagne>h3,.cc-fiche h4{text-transform:none;letter-spacing:normal;font-size:1.1rem;line-height:1.3;overflow-wrap:anywhere}
.cc-barre{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cc-ligne{margin:0;overflow-wrap:anywhere}
.cc-erreur{margin:0;padding:6px 10px;border-left:3px solid var(--rouge,#B3261E);background:rgba(179,38,30,.12);color:inherit;border-radius:6px;font-size:.9rem;min-height:0}
.cc-erreur:empty{display:none}
.cc-info{margin:0;font-size:.9rem;min-height:1.2em}
.cc-manque{font-weight:600}
.cc-modification{font-weight:600;border-left:3px solid var(--ambre,#8A5A00);padding-left:10px}
.cc-retard{color:inherit;border-left:3px solid var(--ambre,#8A5A00);padding-left:8px}

/* Mes campagnes */
.cc-cartes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.cc-fiche{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--border,#E3E0DA);border-radius:12px;min-width:0}
.cc-fiche h4{font-size:1rem;overflow-wrap:anywhere}
.cc-statut{display:inline-block;padding:1px 9px;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--border,#E3E0DA)}
.cc-statut-brouillon{border-color:var(--ambre,#8A5A00)}
.cc-statut-en_cours{border-color:var(--lagon-d,#0E8F82)}

/* Le formulaire en quatre écrans */
.cc-repere{display:flex;align-items:center;gap:10px;font-size:.85rem}
.cc-jauge{display:inline-flex;gap:4px}
.cc-jauge i{display:inline-block;width:22px;height:5px;border-radius:3px;background:var(--border,#E3E0DA)}
.cc-jauge i.on{background:var(--lagon-d,#0E8F82)}
.cc-jauge i.ici{background:var(--corail,#FF5A3C)}
.cc-form fieldset{border:1px solid var(--border,#E3E0DA);border-radius:10px;padding:10px 12px;margin:0;min-width:0}
/* Le cadre qui fige l'écran pendant un envoi (campagne-com.js, `fige`) : un fieldset sans aucun dessin. */
.cc-form fieldset.cc-cadre{border:0;border-radius:0;padding:0;display:flex;flex-direction:column;gap:12px}
.cc-form fieldset.cc-cadre:disabled{opacity:.7}
.cc-form legend{font-weight:600;padding:0 6px}
.cc-choix{display:flex;flex-wrap:wrap;gap:6px 14px}
.cc-choix label{display:inline-flex;align-items:center;gap:6px;min-height:32px}
.cc-dates{display:flex;flex-wrap:wrap;gap:12px}
.cc-dates .fld{flex:1;min-width:150px}
.cc-reseau{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid var(--border,#E3E0DA)}
.cc-reseau:last-child{border-bottom:0}
.cc-formats{display:flex;flex-wrap:wrap;gap:4px 12px;margin-left:26px}
.cc-formats label{display:inline-flex;align-items:center;gap:6px;min-height:28px}
.cc-formats[hidden]{display:none}
.cc-pilier{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.cc-pilier input[type=text]{flex:1;min-width:0}
.cc-pilier input[type=number]{width:64px}
.cc-apercu{margin:0;padding:8px 12px;border:1px dashed var(--border,#E3E0DA);border-radius:10px}

/* Le calendrier */
.cc-cal{display:flex;flex-direction:column;gap:10px;min-width:0}
/* Le cadre qui fige le calendrier pendant une opération (campagne-calendrier.js, `figer`) : un fieldset sans dessin. */
.cc-cal fieldset.cc-cadre{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:10px}
.cc-cal fieldset.cc-cadre:disabled{opacity:.7}
.cc-synthese{display:flex;flex-direction:column;gap:4px}
.cc-outils{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 14px}
.cc-nav{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.cc-periode{min-width:9.5em;text-align:center;font-weight:600}
.cc-periode::first-letter,.cc-jour-titre::first-letter{text-transform:uppercase}
.cc-vues{display:inline-flex;gap:0;border:1px solid var(--border,#E3E0DA);border-radius:999px;overflow:hidden}
.cc-vues .btn{border:0;border-radius:0;margin:0}
.cc-vues .btn[aria-pressed="true"]{background:var(--corail,#FF5A3C)!important;color:var(--sur-accent,#15181C)!important;font-weight:700}
.cc-grille{display:flex;flex-direction:column;gap:3px;min-width:0}
.cc-rangee{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.cc-entete{font-weight:600;font-size:.78rem;text-align:center;padding:2px 0;opacity:.75;text-transform:uppercase;letter-spacing:.04em}
.cc-jour{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;width:100%;min-height:52px;padding:4px 2px;border:1px solid transparent!important;border-radius:10px;background:transparent!important;color:inherit!important;font:inherit;cursor:pointer}
.cc-jour:hover{background:rgba(127,127,127,.12)!important}
.cc-hors{opacity:.45}
.cc-num{display:inline-block;min-width:26px;padding:1px 6px;border-radius:999px;font-size:.9rem;text-align:center}
.cc-auj .cc-num{background:var(--corail,#FF5A3C);color:var(--sur-accent,#15181C);font-weight:700}
.cc-choisi{border-color:var(--corail,#FF5A3C)!important;box-shadow:0 0 0 1px var(--corail,#FF5A3C)}
.cc-a-fournir .cc-num{text-decoration:underline;text-underline-offset:3px}
.cc-points{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px;min-height:12px;font-size:.7rem;line-height:1}
.cc-plus{font-weight:600}
.cc-point{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none;box-sizing:border-box}
.cc-p-prevu{border:2px solid var(--muted,#5B6675);background:transparent}
.cc-p-prepare{background:var(--ambre,#8A5A00)}
.cc-p-programme{background:var(--lagon,#17C3B2)}
.cc-p-publie{background:var(--lagon-d,#0E8F82)}
.cc-p-rate{background:var(--rouge,#B3261E)}
.cc-p-ignore{background:var(--muted,#5B6675);opacity:.45}
.cc-jour-liste{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.cc-jour-titre{font-size:.95rem;text-transform:none;letter-spacing:normal}
.cc-vide{margin:0}
.cc-semaine{display:flex;flex-direction:column;gap:10px}
.cc-carte{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--border,#E3E0DA);border-left-width:4px;border-radius:12px;min-width:0}
.cc-c-prevu{border-left-color:var(--muted,#5B6675)}
.cc-c-prepare{border-left-color:var(--ambre,#8A5A00)}
.cc-c-programme{border-left-color:var(--lagon,#17C3B2)}
.cc-c-publie{border-left-color:var(--lagon-d,#0E8F82)}
.cc-c-rate{border-left-color:var(--rouge,#B3261E)}
.cc-c-ignore{border-left-color:var(--muted,#5B6675);opacity:.75}
.cc-carte-tete{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.cc-carte-corps{display:flex;flex-direction:column;gap:2px;min-width:0}
.cc-etat{display:inline-block;padding:1px 9px;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--border,#E3E0DA)}
.cc-e-retard{border-color:var(--ambre,#8A5A00)}
.cc-e-rate{border-color:var(--rouge,#B3261E)}
.cc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.cc-formulaire{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding-top:8px;border-top:1px dashed var(--border,#E3E0DA)}
.cc-angles{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.cc-angle{text-align:left;white-space:normal}
.cc-legende{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.cc-cal button:focus-visible,.cc-form button:focus-visible,.cc-liste button:focus-visible{outline:2px solid var(--lagon-d,#0E8F82);outline-offset:2px}
/* Dans les campagnes, le parcours « Publier sur mes réseaux » s'efface devant l'écran qu'il héberge :
   ni son but, ni son repère d'étape, ni son titre, ni ses phrases d'introduction (elles parlent d'un fichier). */
.tunnel[data-vue="campagnes"] .tunnel-but,.tunnel[data-vue="campagnes"] .tunnel-repere,.tunnel[data-vue="campagnes"] .tunnel-titre,
.tunnel[data-vue="campagnes"] .tunnel-intro,.tunnel[data-vue="campagnes"] .tunnel-asavoir{display:none!important}
@media (max-width:650px){
  .cc-cal .btn.sm,.cc-liste .btn.sm,.cc-form .btn.sm,.cc-jour{min-height:44px}
  .cc-jour{min-height:46px;padding:3px 0}
  .cc-num{min-width:22px;padding:1px 4px;font-size:.85rem}
  .cc-periode{min-width:0;flex:1}
  .cc-formats{margin-left:0}
}
@media (prefers-reduced-motion:reduce){.cc-cal *{transition:none!important}}
