/* La Chaloupe – Gestion v2.0 — Flat design, lisible, accessible */

:root {
  --lcp-primary:      #2563eb;
  --lcp-success:      #16a34a;
  --lcp-danger:       #dc2626;
  --lcp-warning:      #d97706;
  --lcp-neutral:      #64748b;
  --lcp-border:       #e2e8f0;
  --lcp-bg:           #f8fafc;
  --lcp-card-bg:      #ffffff;
  --lcp-text:         #1e293b;
  --lcp-text-soft:    #64748b;
  --lcp-radius:       6px;
}

/* ── Base ─────────────────────────────────────────────────── */
#lcp-admin-root, #lcp-public-root {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 17px; line-height: 1.6; color: var(--lcp-text);
  max-width: 960px; margin: 0 auto; padding: 20px 16px;
}
#lcp-admin-root *, #lcp-public-root * { box-sizing: border-box; }
#lcp-admin-root h1, #lcp-admin-root h2, #lcp-admin-root h3 {
  font-family: inherit; text-transform: none; letter-spacing: normal;
}

/* ── Titre app ────────────────────────────────────────────── */
.lcp-app-titre {
  font-size: 1.3rem; font-weight: 700; margin: 0 0 20px;
  padding-bottom: 16px; border-bottom: 2px solid var(--lcp-border);
}

/* ── Onglets ──────────────────────────────────────────────── */
.lcp-tabs {
  display: flex; gap: 2px; flex-wrap: wrap;
  border-bottom: 2px solid var(--lcp-border); margin-bottom: 28px;
}
.lcp-tab {
  background: none; border: none; border-bottom: 3px solid transparent;
  margin-bottom: -2px; padding: 11px 18px; font-size: 15px; font-weight: 500;
  color: var(--lcp-text-soft); cursor: pointer; white-space: nowrap;
  font-family: inherit; transition: color .15s;
}
.lcp-tab:hover { color: var(--lcp-text); }
.lcp-tab--active { color: var(--lcp-primary); border-bottom-color: var(--lcp-primary); font-weight: 700; }

/* ── Boutons ──────────────────────────────────────────────── */
.lcp-btn {
  display: inline-block; padding: 10px 22px; border-radius: var(--lcp-radius);
  font-size: 15px; font-weight: 600; cursor: pointer; border: none;
  font-family: inherit; transition: opacity .15s; text-align: center; line-height: 1.4;
  margin: 0 6px 6px 0;
}
.lcp-btn:hover   { opacity: .87; }
.lcp-btn:active  { opacity: .72; }
.lcp-btn:disabled { opacity: .4; cursor: not-allowed; }
.lcp-btn--primary   { background: var(--lcp-primary); color: #fff; }
.lcp-btn--secondary { background: #fff; color: var(--lcp-text); border: 1px solid var(--lcp-border); }
.lcp-btn--secondary:hover { background: var(--lcp-bg); }
.lcp-btn--danger    { background: var(--lcp-danger);  color: #fff; }
.lcp-btn--ghost     { background: transparent; color: var(--lcp-text-soft); border: 1px solid var(--lcp-border); padding: 6px 14px; font-size: 13px; }
.lcp-btn--ghost:hover { background: var(--lcp-bg); color: var(--lcp-text); }

/* ── Barre du haut ────────────────────────────────────────── */
.lcp-top-bar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px; }

/* ── Sections ─────────────────────────────────────────────── */
.lcp-section__titre {
  font-size: 15px; font-weight: 700; text-transform: none;
  letter-spacing: 0; color: var(--lcp-text);
  margin: 24px 0 10px; padding-bottom: 8px; border-bottom: 2px solid var(--lcp-border);
}

/* ── Cartes ───────────────────────────────────────────────── */
.lcp-card {
  background: var(--lcp-card-bg); border: 1px solid var(--lcp-border);
  border-left: 4px solid var(--lcp-primary);
  border-radius: var(--lcp-radius); padding: 18px 20px; margin-bottom: 10px;
}
.lcp-card--past  { opacity: .55; }
.lcp-card--warn  { border-left-color: var(--lcp-warning); background: #fffbeb; }
.lcp-card--public { border-left-color: var(--lcp-primary); }

.lcp-card__head   { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.lcp-card__titre  { font-size: var(--lcp-taille-titre, 16px) !important; font-weight: 700; flex: 1 1 200px; }
.lcp-card__date   { font-size: var(--lcp-taille-date, 14px); color: var(--lcp-text-soft); flex: 1 1 200px; }
.lcp-card__detail { font-size: var(--lcp-taille-date, 14px); color: var(--lcp-text-soft); }
.lcp-card__nom    { font-weight: 700; font-size: 16px; }
.lcp-card__msg    { font-style: italic; color: var(--lcp-text-soft); font-size: 14px; margin: 4px 0; }
.lcp-card__actions { display: flex; flex-wrap: wrap; gap: 6px; }
.lcp-card__places { font-size: 14px; color: var(--lcp-success); font-weight: 600; margin: 4px 0; }
.lcp-cand-row    { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 0; border-top: 1px solid var(--lcp-border); margin-top: 8px; font-size: 15px; }

/* ── Badges ───────────────────────────────────────────────── */
.lcp-badge {
  display: inline-block; padding: 3px 10px; border-radius: 4px;
  font-size: 12px; font-weight: 700; color: #fff;
}
.lcp-badge--ok      { background: var(--lcp-success); }
.lcp-badge--warn    { background: var(--lcp-warning); }
.lcp-badge--danger  { background: var(--lcp-danger);  }
.lcp-badge--neutral { background: var(--lcp-neutral); }

/* ── États ────────────────────────────────────────────────── */
.lcp-loading { color: var(--lcp-text-soft); font-style: italic; padding: 20px 0; }
.lcp-error   { color: var(--lcp-danger); padding: 10px 0; }
.lcp-empty   {
  color: var(--lcp-text-soft); text-align: center; padding: 32px 20px;
  background: var(--lcp-bg); border: 1px solid var(--lcp-border);
  border-radius: var(--lcp-radius); font-size: 15px;
}
.lcp-success { color: var(--lcp-success); font-weight: 600; }
.lcp-hint    { color: var(--lcp-text-soft); font-size: 14px; margin: 0 0 14px; }
.lcp-sep     { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
  color: var(--lcp-text-soft); margin: 20px 0 12px; padding-top: 16px; border-top: 1px solid var(--lcp-border); }

/* ── Formulaires ──────────────────────────────────────────── */
.lcp-field    { margin-bottom: 16px; }
.lcp-label    { display: block; font-size: 13px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: var(--lcp-text-soft); margin-bottom: 6px; }
.lcp-input {
  display: block; width: 100%; padding: 11px 14px;
  border: 1px solid var(--lcp-border); border-radius: var(--lcp-radius);
  font-size: 16px; font-family: inherit; color: var(--lcp-text); background: #fff;
  transition: border-color .15s, box-shadow .15s; margin: 0;
}
.lcp-input:focus { outline: none; border-color: var(--lcp-primary); box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
select.lcp-input { height: auto; }
textarea.lcp-input { resize: vertical; min-height: 80px; }
.lcp-form-grid { display: grid; gap: 4px; }
.lcp-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.lcp-checkbox-wrap { display: flex; align-items: center; gap: 10px; padding: 10px 0; }
.lcp-checkbox      { width: 18px; height: 18px; accent-color: var(--lcp-primary); cursor: pointer; flex-shrink: 0; }
.lcp-color-input   { width: 46px; height: 40px; padding: 2px; border: 1px solid var(--lcp-border); border-radius: var(--lcp-radius); cursor: pointer; background: none; flex-shrink: 0; }
.lcp-hp { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }
.lcp-jours { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.lcp-jour-label { display: flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; padding: 6px 12px; border: 1px solid var(--lcp-border); border-radius: var(--lcp-radius); }

/* ── Inscrits ─────────────────────────────────────────────── */
.lcp-inscrits { list-style: none; padding: 0; margin: 0 0 16px; }
.lcp-inscrit {
  display: flex; align-items: center; gap: 8px; padding: 10px 0;
  border-top: 1px solid var(--lcp-border); font-size: 15px; flex-wrap: wrap;
}
.lcp-inscrit--ref   { font-weight: 700; }
.lcp-inscrit__nom   { font-weight: 600; flex: 1; }
.lcp-inscrit__detail { font-size: 13px; color: var(--lcp-text-soft); flex: 1 1 140px; }
.lcp-inscrits-pub   { list-style: none; padding: 0; margin: 10px 0; }
.lcp-inscrits-pub li { font-size: 15px; padding: 4px 0; color: var(--lcp-text-soft); }
.lcp-ref-btn  { background: none; border: none; font-size: 20px; cursor: pointer; padding: 0; line-height: 1; color: #cbd5e1; transition: color .15s; flex-shrink: 0; }
.lcp-ref-btn:hover   { color: #f59e0b; }
.lcp-ref-btn--on     { color: #f59e0b; }
.lcp-ref-label { font-size: 12px; background: #fffbeb; color: #92400e; padding: 2px 8px; border-radius: 4px; border: 1px solid #fde68a; font-weight: 600; }

/* ── Autocomplétion ───────────────────────────────────────── */
.lcp-suggest {
  background: #fff; border: 1px solid var(--lcp-border); border-radius: var(--lcp-radius);
  box-shadow: 0 4px 16px rgba(0,0,0,.1); margin-bottom: 10px; overflow: hidden;
}
.lcp-suggest__item { padding: 10px 14px; cursor: pointer; display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--lcp-border); }
.lcp-suggest__item:last-child { border-bottom: none; }
.lcp-suggest__item:hover { background: var(--lcp-bg); }
.lcp-suggest__nom    { font-weight: 600; }
.lcp-suggest__detail { font-size: 13px; color: var(--lcp-text-soft); }

/* ── Modale ───────────────────────────────────────────────── */
.lcp-modale-overlay {
  position: fixed; inset: 0; background: rgba(15,23,42,.5); z-index: 10000;
  display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px; overflow-y: auto;
}
.lcp-modale {
  background: #fff; border-radius: 8px; width: 100%; max-width: 520px; margin: auto;
  box-shadow: 0 20px 60px rgba(0,0,0,.2); overflow: hidden;
}
.lcp-modale__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 24px; border-bottom: 1px solid var(--lcp-border);
}
.lcp-modale__titre { font-size: 1.1rem; font-weight: 700; margin: 0; }
.lcp-modale__close { background: none; border: none; font-size: 24px; cursor: pointer; color: var(--lcp-text-soft); padding: 0; line-height: 1; }
.lcp-modale__body  { padding: 24px; }
.lcp-modale__footer { display: flex; gap: 10px; justify-content: flex-end; padding: 16px 24px; border-top: 1px solid var(--lcp-border); flex-wrap: wrap; }

/* ── Paramètres ───────────────────────────────────────────── */
.lcp-param-card { background: #fff; border: 1px solid var(--lcp-border); border-radius: var(--lcp-radius); padding: 24px; margin-bottom: 20px; }
.lcp-param-card__titre { font-size: 1.05rem; font-weight: 700; margin: 0 0 8px; }
.lcp-cat-row   { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px solid var(--lcp-border); font-size: 15px; }
.lcp-cat-row:last-child { border-bottom: none; }
.lcp-cat-row--add { padding-top: 16px; }
.lcp-cat-dot   { width: 14px; height: 14px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.lcp-cat-nom   { font-weight: 600; flex: 1; min-width: 80px; }
.lcp-res-list  { margin-top: 12px; }
.lcp-code { display: block; background: #1e293b; color: #7dd3fc; padding: 10px 16px; border-radius: var(--lcp-radius); font-family: monospace; font-size: 14px; margin: 4px 0 12px; user-select: all; }

/* ── Passés ───────────────────────────────────────────────── */
.lcp-past-toggle { margin: 12px 0; }

/* ── Vue publique ─────────────────────────────────────────── */
.lcp-form-pub { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--lcp-border); }

/* ── Toast ────────────────────────────────────────────────── */
.lcp-toast {
  position: fixed; bottom: 24px; right: 24px; padding: 14px 22px;
  border-radius: var(--lcp-radius); font-size: 15px; font-weight: 500;
  opacity: 0; transform: translateY(8px); transition: opacity .3s, transform .3s;
  z-index: 11000; max-width: 340px; box-shadow: 0 4px 20px rgba(0,0,0,.2);
}
.lcp-toast--visible  { opacity: 1; transform: translateY(0); }
.lcp-toast--success  { background: #15803d; color: #fff; }
.lcp-toast--error    { background: var(--lcp-danger); color: #fff; }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 600px) {
  #lcp-admin-root, #lcp-public-root { font-size: 16px; padding: 14px 12px; }
  .lcp-tab   { padding: 9px 12px; font-size: 14px; }
  .lcp-row-2 { grid-template-columns: 1fr; }
  .lcp-modale { max-width: 100%; }
  .lcp-card__head { flex-direction: column; }
}

/* ── Corrections v2.1 ─────────────────────────────────────── */

/* FIX #4 : Réduire les titres dans l'interface admin */
#lcp-admin-root h1, #lcp-admin-root h2, #lcp-admin-root h3 {
  margin-top: 0;
}
.lcp-app-titre { font-size: 1.1rem !important; }
.lcp-param-card__titre { font-size: .95rem !important; }
.lcp-modale__titre { font-size: 1rem !important; }
/* Neutraliser les h1/h2/h3 injectés par le thème Divi */
#lcp-admin-root h1 { font-size: 1.1rem; font-weight: 700; }
#lcp-admin-root h2 { font-size: .8rem; font-weight: 700; }
#lcp-admin-root h3 { font-size: .95rem; font-weight: 600; }

/* FIX #6 : Espace entre nom bénévole et badge "Réf." */
.lcp-inscrit { gap: 10px; }
.lcp-ref-label {
  margin-left: 4px;
  margin-right: 4px;
}
.lcp-inscrits-pub .lcp-ref-label {
  margin-right: 6px;
}

/* Onglets : ne pas utiliser la classe lcp-btn */
.lcp-tab {
  background: none !important;
  border: none !important;
  border-bottom: 3px solid transparent !important;
  padding: 11px 18px !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--lcp-text-soft) !important;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  margin: 0 !important;
  border-radius: 0 !important;
}
.lcp-tab:hover { color: var(--lcp-text) !important; opacity: 1 !important; }
.lcp-tab--active { color: var(--lcp-primary) !important; border-bottom-color: var(--lcp-primary) !important; font-weight: 700 !important; }

/* ── Vue agenda ───────────────────────────────────────────── */
.lcp-vue-bar {
  display: flex; gap: 2px; margin-left: auto;
  border: 1px solid var(--lcp-border); border-radius: var(--lcp-radius); overflow: hidden;
}
.lcp-vue-btn {
  background: #fff; border: none; padding: 8px 16px; font-size: 14px; font-weight: 500;
  cursor: pointer; color: var(--lcp-text-soft); font-family: inherit; white-space: nowrap;
  transition: background .15s;
}
.lcp-vue-btn:hover           { background: var(--lcp-bg); color: var(--lcp-text); }
.lcp-vue-btn--active         { background: var(--lcp-primary); color: #fff; font-weight: 700; }
.lcp-vue-btn + .lcp-vue-btn   { border-left: 1px solid var(--lcp-border); }

.lcp-top-bar { flex-wrap: wrap; align-items: center; }

.lcp-calendrier {
  background: #fff; border: 1px solid var(--lcp-border);
  border-radius: var(--lcp-radius); padding: 16px; margin-top: 8px;
}
/* FullCalendar overrides — 100% variables CSS, aucune couleur hardcodée */
/* Fallback pour navigateurs sans color-mix */
/* Case du jour actuel */
/* En-têtes de colonnes (lun, mar...) */
/* Bordures du calendrier */
.lcp-calendrier td, .lcp-calendrier th { border-color: var(--lcp-border) !important; }

/* ── FIX Divi : texte jaune dans FullCalendar ─────────────── */
/* Événements : toujours en bloc coloré, jamais en point */

/* ── Vue publique : sélecteur de vue ──────────────────────── */
.lcp-vue-bar--pub {
  margin-bottom: 18px;
  justify-content: flex-end;
}

/* ── Impression ───────────────────────────────────────────── */
@media print {
  .lcp-tabs, .lcp-top-bar, .lcp-vue-bar, .lcp-modale-overlay,
  .lcp-card__actions, .lcp-form-pub, .lcp-toast,
  button, .lcp-btn { display: none !important; }
  #lcp-admin-root, #lcp-public-root { max-width: 100%; padding: 0; }
  .lcp-card { break-inside: avoid; border: 1px solid #ccc !important; margin-bottom: 8px; }
  }

/* Sauvegardes */
.lcp-bak-list { margin-top: 8px; }

/* ── Panneau Apparence ────────────────────────────────────── */

/* Grille de couleurs */
.lcp-couleurs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}
.lcp-couleur-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px;
  background: var(--lcp-bg);
  border: 1px solid var(--lcp-border);
  border-radius: var(--lcp-radius);
}
.lcp-color-input--lg {
  width: 42px !important; height: 42px !important;
  padding: 2px !important; flex-shrink: 0;
}
.lcp-couleur-label  { flex: 1; }
.lcp-couleur-nom    { display: block; font-size: 13px; font-weight: 700; color: var(--lcp-text); }
.lcp-couleur-hint   { display: block; font-size: 11px; color: var(--lcp-text-soft); margin-top: 1px; }

/* Slider arrondi */
.lcp-radius-wrap    { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.lcp-radius-wrap .lcp-label { margin: 0; min-width: 140px; }
.lcp-range {
  flex: 1; min-width: 120px; max-width: 260px;
  accent-color: var(--lcp-primary);
  height: 4px; cursor: pointer;
}
.lcp-range-val { font-size: 14px; font-weight: 700; color: var(--lcp-primary); min-width: 36px; }

/* Aperçu */
.lcp-design-preview {
  border: 1px solid var(--lcp-border);
  border-radius: var(--lcp-radius);
  overflow: hidden;
  margin-bottom: 16px;
}
.lcp-design-preview__titre {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--lcp-text-soft);
  padding: 8px 14px; background: var(--lcp-bg);
  border-bottom: 1px solid var(--lcp-border);
}
.lcp-design-preview__body { padding: 16px; background: #fff; }

/* ── Guide d'utilisation ──────────────────────────────────── */
.lcp-aide-section {
  border-bottom: 1px solid var(--lcp-border);
  padding: 2px 0;
}
.lcp-aide-section:last-child { border-bottom: none; }
.lcp-aide-head {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 4px; user-select: none;
}
.lcp-aide-head:hover { background: var(--lcp-bg); border-radius: var(--lcp-radius); }
.lcp-aide-icone { font-size: 20px; flex-shrink: 0; width: 28px; text-align: center; }
.lcp-aide-titre {
  font-size: 15px; font-weight: 700; flex: 1; color: var(--lcp-text);
}
.lcp-aide-head::after {
  content: '›'; font-size: 18px; color: var(--lcp-text-soft);
  transform: rotate(90deg); display: inline-block; transition: transform .2s;
}
.lcp-aide-head--open::after { transform: rotate(270deg); }
.lcp-aide-texte {
  margin: 0 0 14px 38px;
  font-size: 14px; line-height: 1.6;
  color: var(--lcp-text-soft);
}

/* ── Image par catégorie ──────────────────────────────────── */

/* Layout interne de la carte publique */
.lcp-card-pub-inner {
  display: flex; align-items: flex-start; gap: 16px;
}
.lcp-card-pub-text { flex: 1; min-width: 0; }

/* Carré image à droite */
.lcp-card-pub-img {
  flex-shrink: 0;
  width: 90px; height: 90px;
  border-radius: var(--lcp-radius);
  overflow: hidden;
  border: 1px solid var(--lcp-border);
}
.lcp-card-pub-img__el {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}

/* Miniature dans Paramètres */
.lcp-cat-img-thumb {
  width: 36px; height: 36px; flex-shrink: 0;
  border-radius: var(--lcp-radius);
  border: 1px solid var(--lcp-border);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: var(--lcp-bg);
  transition: opacity .15s;
}
.lcp-cat-img-thumb:hover { opacity: .75; }
.lcp-cat-img-preview {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.lcp-cat-img-empty { font-size: 16px; line-height: 1; }

/* ═════════ v3.0 — calendrier maison, tableau « À valider », planning ═════════ */
.lcp-tab__badge { display:inline-block; margin-left:6px; min-width:20px; padding:1px 7px; border-radius:99px; background:var(--lcp-danger,#dc2626); color:#fff; font-size:12px; font-weight:700; line-height:1.5; vertical-align:middle; }

/* Grille mensuelle */
.lcp-mg__head { display:flex; align-items:center; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
.lcp-mg__titre { flex:1; margin:0; text-align:center; font-size:1.15em; font-weight:700; }
.lcp-mg__nav { min-width:42px; padding:6px 14px; font-size:20px; line-height:1; }
.lcp-mg__grid { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); border-top:1px solid var(--lcp-border); border-left:1px solid var(--lcp-border); background:var(--lcp-card-bg,#fff); }
.lcp-mg__dow { padding:6px 4px; text-align:center; font-weight:700; font-size:.8em; text-transform:uppercase; letter-spacing:.04em; color:var(--lcp-text-soft); background:var(--lcp-bg); border-right:1px solid var(--lcp-border); border-bottom:1px solid var(--lcp-border); }
.lcp-mg__cell { min-height:92px; padding:4px; border-right:1px solid var(--lcp-border); border-bottom:1px solid var(--lcp-border); display:flex; flex-direction:column; gap:3px; min-width:0; }
.lcp-mg__cell--hors { background:var(--lcp-bg); }
.lcp-mg__cell--cliq { cursor:pointer; }
.lcp-mg__cell--cliq:hover { background:color-mix(in srgb, var(--lcp-primary) 6%, white); }
.lcp-mg__cell--auj { box-shadow:inset 0 0 0 2px var(--lcp-primary); }
.lcp-mg__num { font-weight:700; font-size:.85em; color:var(--lcp-text-soft); }
.lcp-mg__cell--auj .lcp-mg__num { color:var(--lcp-primary); }
.lcp-mg__jlong { display:none; text-transform:capitalize; }
.lcp-mg__ev { display:block; width:100%; text-align:left; border:0 !important; border-left:4px solid var(--c,#64748b) !important; border-radius:3px; background:color-mix(in srgb, var(--c,#64748b) 12%, white); color:#1e293b !important; padding:2px 5px; font-family:inherit; font-weight:400; font-size:.8em; line-height:1.3; text-transform:none; letter-spacing:0; box-shadow:none; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lcp-mg__ev:hover { background:color-mix(in srgb, var(--c,#64748b) 24%, white); color:#0f172a !important; }
.lcp-mg__ev .lcp-mg__h, .lcp-mg__ev .lcp-mg__n { color:inherit; }
.lcp-mg__h { font-weight:700; }
.lcp-mg__n { font-weight:700; font-size:.92em; }
.lcp-mg__att, .lcp-legende .lcp-mg__att { display:inline-block; min-width:16px; padding:0 5px; border-radius:99px; background:#f59e0b; color:#fff; font-size:.85em; font-weight:700; text-align:center; font-style:normal; }

/* États de remplissage (planning) */
.lcp-st-complet { background:#dcfce7 !important; border-left-color:#16a34a !important; }
.lcp-st-partiel { background:#fef3c7 !important; border-left-color:#f59e0b !important; }
.lcp-st-vide    { background:#fee2e2 !important; border-left-color:#dc2626 !important; }
.lcp-st-libre   { background:color-mix(in srgb, var(--c,#64748b) 10%, white) !important; }
.lcp-st-resa    { background:#f1f5f9 !important; color:#475569 !important; font-style:italic; }
.lcp-plan-resume { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 14px; }
.lcp-plan-filtres { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 12px; }
.lcp-filtre { border:1px solid var(--c,#64748b); background:var(--c,#64748b); color:#fff; border-radius:99px; padding:3px 12px; font:inherit; font-size:.85em; cursor:pointer; }
.lcp-filtre--off { background:#fff; color:var(--lcp-text-soft); }
.lcp-plan-resa { margin-left:auto; }
.lcp-pill { display:inline-block; padding:3px 12px; border-radius:99px; font-size:.85em; font-weight:700; }
.lcp-pill--complet { background:#dcfce7; color:#166534; }
.lcp-pill--partiel { background:#fef3c7; color:#92400e; }
.lcp-pill--vide    { background:#fee2e2; color:#991b1b; }
.lcp-pill--libre   { background:#f1f5f9; color:#475569; }
.lcp-pill--att     { background:#fde68a; color:#78350f; }
.lcp-legende { display:flex; gap:14px; flex-wrap:wrap; margin-top:10px; font-size:.82em; color:var(--lcp-text-soft); }
.lcp-legende__i { display:inline-flex; align-items:center; gap:6px; }
.lcp-legende__p { display:inline-block; width:16px; height:12px; border-radius:3px; border-left:4px solid #64748b; background:#f1f5f9; }
.lcp-bar { height:10px; border-radius:99px; background:#e2e8f0; overflow:hidden; margin:8px 0 2px; }
.lcp-bar__v { display:block; height:100%; background:#f59e0b; }
.lcp-bar__v--complet { background:#16a34a; } .lcp-bar__v--vide { background:#dc2626; }

/* Tableau « À valider » */
.lcp-av-barre { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:0 0 12px; padding:10px; background:var(--lcp-card-bg,#fff); border:1px solid var(--lcp-border); border-radius:var(--lcp-radius,4px); }
.lcp-av-nbsel { color:var(--lcp-text-soft); font-size:.9em; flex:1; }
.lcp-av-filtre { max-width:240px; }
.lcp-tbl-wrap { overflow-x:auto; }
.lcp-tbl { width:100%; border-collapse:collapse; background:var(--lcp-card-bg,#fff); border:1px solid var(--lcp-border); }
.lcp-tbl th { text-align:left; padding:8px 10px; font-size:.8em; text-transform:uppercase; letter-spacing:.04em; color:var(--lcp-text-soft); background:var(--lcp-bg); border-bottom:1px solid var(--lcp-border); }
.lcp-tbl td { padding:10px; border-bottom:1px solid var(--lcp-border); vertical-align:top; }
.lcp-tbl__cb { width:34px; }
.lcp-tbl__nom, .lcp-tbl__titre { font-weight:700; }
.lcp-tbl__sous { color:var(--lcp-text-soft); font-size:.85em; word-break:break-word; }
.lcp-tbl__places { font-weight:700; }
.lcp-tbl__places--complet { color:#dc2626; }
.lcp-tbl__msg { font-style:italic; color:var(--lcp-text-soft); max-width:260px; }
.lcp-tbl__act { white-space:nowrap; }
.lcp-tbl__act .lcp-btn { margin-right:6px; }
.lcp-tbl__row--complet { background:#fff7ed; }
.lcp-btn:disabled { opacity:.45; cursor:not-allowed; }

/* Fiche */
.lcp-fiche__badges { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:6px; }
.lcp-fiche__quand { margin:6px 0 10px; font-weight:600; }
.lcp-fiche__besoin { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:10px 0 4px; }
.lcp-fiche__lib { flex:1 1 150px; font-weight:600; }
.lcp-fiche__nr { min-width:28px; text-align:center; font-size:1.3em; }
.lcp-fiche__cand { display:flex; gap:10px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; padding:8px 0; border-bottom:1px solid var(--lcp-border); }
.lcp-fiche__candinfo { flex:1 1 200px; min-width:0; }
.lcp-fiche__candact { display:flex; gap:6px; }
.lcp-fiche__outils { margin-top:14px; display:flex; gap:8px; flex-wrap:wrap; }
.lcp-fiche__outils a { text-decoration:none; }

/* Mobile : le mois devient une liste de jours */
@media (max-width: 720px) {
  .lcp-mg__grid { display:block; border:0; background:transparent; }
  .lcp-mg__dow, .lcp-mg__cell--hors { display:none; }
  .lcp-mg__cell { min-height:0; margin-bottom:8px; border:1px solid var(--lcp-border); border-radius:var(--lcp-radius,4px); background:var(--lcp-card-bg,#fff); }
  .lcp-mg__cell:not(.lcp-mg__cell--avec):not(.lcp-mg__cell--cliq) { display:none; }
  .lcp-mg__cell--cliq:not(.lcp-mg__cell--avec) { display:none; }
  .lcp-mg__jlong { display:inline; }
  .lcp-mg__ev { white-space:normal; font-size:.92em; padding:6px 8px; }
  .lcp-plan-resa { margin-left:0; }
  /* tableau en cartes */
  .lcp-tbl thead { display:none; }
  .lcp-tbl, .lcp-tbl tbody, .lcp-tbl tr, .lcp-tbl td { display:block; width:100%; box-sizing:border-box; }
  .lcp-tbl tr { border:1px solid var(--lcp-border); border-radius:var(--lcp-radius,4px); margin-bottom:10px; padding:6px; background:var(--lcp-card-bg,#fff); }
  .lcp-tbl td { border:0; padding:4px 6px; }
  .lcp-tbl td[data-label]::before { content:attr(data-label); display:block; font-size:.72em; text-transform:uppercase; letter-spacing:.04em; color:var(--lcp-text-soft); }
  .lcp-tbl__msg { max-width:none; }
  .lcp-tbl__act { display:flex; gap:8px; }
  .lcp-tbl__act .lcp-btn { flex:1; margin:0; padding:12px; }
}

/* Sélection multiple des créneaux */
.lcp-selbar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:6px 0 12px; padding:8px 12px; background:var(--lcp-card-bg,#fff); border:1px solid var(--lcp-border,#ddd); border-radius:var(--lcp-radius,4px); }
.lcp-selbar .lcp-checkbox-wrap { margin:0; }
.lcp-card { position:relative; }
.lcp-card > input.lcp-selcase { position:absolute; top:50%; left:14px; transform:translateY(-50%); margin:0; width:20px; height:20px; cursor:pointer; }
.lcp-card:has(> input.lcp-selcase) { padding-left:46px; }

/* Réservations individuelles */
.lcp-st-resa--att { background:#fef3c7 !important; color:#92400e !important; }
.lcp-resa-pub { margin-top: 22px; }
.lcp-occ { margin: 4px 0 10px; font-weight: 600; }

/* Planning de disponibilités (réservation en ligne) */
.lcp-wk-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:6px 0 10px; }
.lcp-wk { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; }
.lcp-wk-day { display:flex; flex-direction:column; gap:5px; min-width:0; }
.lcp-wk-dh { font-weight:700; text-align:center; font-size:.85em; padding:4px 0; border-bottom:2px solid var(--lcp-border); text-transform:capitalize; }
.lcp-wk-ferme { text-align:center; color:var(--lcp-text-soft); font-size:.8em; padding:6px 0; }
.lcp-wk-slot { font:inherit; font-size:.85em; padding:7px 2px; border-radius:var(--lcp-radius); border:1px solid var(--lcp-border); background:#fff; color:var(--lcp-text); cursor:pointer; }
.lcp-wk-slot--libre { background:#ecfdf5 !important; border:1px solid #86efac !important; color:#14532d !important; }
.lcp-wk-slot--libre:hover { background:#d1fae5 !important; }
.lcp-wk-slot--pris, .lcp-wk-slot--session { background:#f1f5f9 !important; color:#94a3b8 !important; border:1px solid #e2e8f0 !important; cursor:not-allowed; text-decoration:line-through; }
.lcp-wk-slot--session { background:#f5f3ff !important; color:#a78bfa !important; }
.lcp-wk-slot--sel { background:#1d4ed8 !important; color:#fff !important; border:1px solid #1d4ed8 !important; text-decoration:none !important; font-weight:700; }
.lcp-wk-s { display:inline-block; padding:1px 8px; border-radius:var(--lcp-radius); font-size:.85em; border:1px solid var(--lcp-border); }
.lcp-wk-s--libre { background:#ecfdf5; border-color:#86efac; } .lcp-wk-s--pris { background:#f1f5f9; } .lcp-wk-s--session { background:#f5f3ff; }
.lcp-wk-form { margin-top:12px; }
.lcp-wk-resume { font-weight:700; }
.lcp-ouv__row { display:flex; align-items:center; gap:8px; margin:4px 0; flex-wrap:wrap; }
.lcp-ouv__j { min-width:120px; display:inline-flex; align-items:center; gap:6px; }
.lcp-param-card__sous { font-size:.95rem; margin:10px 0 4px; }
@media (max-width: 720px) {
  .lcp-wk { grid-template-columns:1fr; }
  .lcp-wk-day { flex-direction:row; flex-wrap:wrap; align-items:center; gap:6px; border-bottom:1px solid var(--lcp-border); padding-bottom:8px; }
  .lcp-wk-dh { flex:0 0 100%; text-align:left; border:0; }
  .lcp-wk-slot { padding:8px 12px; }
}

/* Liste des créneaux pris */
.lcp-occ-list { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--lcp-border); }
.lcp-occ-titre { margin: 0 0 6px; font-size: 1rem; }
.lcp-occ-ul { list-style: none; margin: 0; padding: 0; }
.lcp-occ-ul li { padding: 3px 0; font-size: .92em; }
.lcp-occ-suite strong { display: inline-block; min-width: 0; }
.lcp-ouv__row input[type=time] { width:auto !important; min-width:0; flex:0 0 auto; }
.lcp-ouv__j { flex:0 0 130px; font-weight:600; }
.lcp-ouv__j .lcp-checkbox { margin:0; }

/* Nombre de places illimité */
.lcp-st-ouvert { background:#e0f2fe !important; border-left-color:#0284c7 !important; }
.lcp-pill--ouvert { background:#e0f2fe; color:#075985; }
