/* ============================================
   CLUB MAP · Styles prefixes cmap-
   Charte LeBonFlip : orange #F08A24, navy #3D3552,
   DM Sans + Cormorant Garamond, easing cubic-bezier(0.22, 1, 0.36, 1)
   ============================================ */
.club-map-app {
  --cmap-orange:        #F08A24;
  --cmap-orange-light:  #F5A858;
  --cmap-orange-glow:   #F5C78A;
  --cmap-orange-deep:   #D97706;
  --cmap-orange-gold:   #F5C78A;
  --cmap-orange-soft:   rgba(240, 138, 36, 0.08);

  --cmap-bg:            #FFFFFF;
  --cmap-surface:       #FAFAF7;
  --cmap-surface-2:     #F4F2EC;

  --cmap-ink:           #3D3552;
  --cmap-ink-soft:      rgba(61, 53, 82, 0.62);
  --cmap-ink-mute:      rgba(61, 53, 82, 0.42);

  --cmap-border:        rgba(61, 53, 82, 0.08);
  --cmap-border-strong: rgba(61, 53, 82, 0.14);

  --cmap-success:       #22C55E;
  --cmap-danger:        #EF4444;

  --cmap-r-card:        16px;
  --cmap-r-card-lg:     20px;
  --cmap-r-btn:         12px;
  --cmap-r-pill:        10px;

  --cmap-ease:          cubic-bezier(0.22, 1, 0.36, 1);

  --cmap-grad-orange:   linear-gradient(135deg, #F5A858 0%, #F08A24 55%, #D97706 100%);
  --cmap-shadow-orange: 0 6px 16px -6px rgba(240, 138, 36, 0.5);

  font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  color: var(--cmap-ink);
  background: var(--cmap-bg);
  border-radius: var(--cmap-r-card-lg);
  overflow: hidden;
  box-shadow: 0 12px 32px -12px rgba(61, 53, 82, 0.12);
  border: 1px solid var(--cmap-border);
  display: flex;
  flex-direction: column;
  height: var(--cmap-height, 700px);
}
.club-map-app *, .club-map-app *::before, .club-map-app *::after { box-sizing: border-box; }

/* ===== TOPBAR ===== */
.cmap-topbar {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--cmap-border);
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}
.cmap-brand {
  display: flex; align-items: center; gap: 10px;
  font-weight: 700; font-size: 17px;
  letter-spacing: -0.01em;
}
.cmap-brand-mark {
  width: 32px; height: 32px;
  border-radius: 9px;
  background: var(--cmap-grad-orange);
  display: grid; place-items: center;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    0 6px 14px -4px rgba(240, 138, 36, 0.45);
}
.cmap-brand-mark svg { width: 18px; height: 18px; color: #fff; }
.cmap-brand-text { color: var(--cmap-ink); }
.cmap-brand-text span {
  color: var(--cmap-orange);
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: 19px;
  margin-left: 1px;
}

.cmap-search {
  flex: 1;
  max-width: 380px;
  position: relative;
}
.cmap-search input {
  width: 100%;
  height: 40px;
  padding: 0 14px 0 40px;
  border-radius: var(--cmap-r-btn);
  border: 1px solid var(--cmap-border);
  background: var(--cmap-surface);
  color: var(--cmap-ink);
  font-family: inherit;
  font-size: 14px;
  transition: border-color .22s var(--cmap-ease), background .22s var(--cmap-ease), box-shadow .22s var(--cmap-ease);
}
.cmap-search input::placeholder { color: var(--cmap-ink-mute); }
.cmap-search input:focus {
  outline: none;
  border-color: var(--cmap-orange);
  background: #fff;
  box-shadow: 0 0 0 4px var(--cmap-orange-soft);
}
.cmap-search svg {
  position: absolute; left: 12px; top: 50%;
  transform: translateY(-50%);
  width: 18px; height: 18px;
  color: var(--cmap-ink-mute);
  pointer-events: none;
}

.cmap-btn {
  display: inline-flex; align-items: center; gap: 8px;
  height: 40px; padding: 0 16px;
  border-radius: var(--cmap-r-btn);
  font-family: inherit; font-size: 13px; font-weight: 500;
  letter-spacing: 0.01em;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform .22s var(--cmap-ease), border-color .22s var(--cmap-ease),
              background .22s var(--cmap-ease), color .22s var(--cmap-ease),
              box-shadow .22s var(--cmap-ease);
  white-space: nowrap;
}
.cmap-btn:active { transform: scale(0.98); }
.cmap-btn-ghost {
  background: transparent;
  border-color: var(--cmap-border-strong);
  color: var(--cmap-ink-soft);
}
.cmap-btn-ghost:hover {
  border-color: var(--cmap-orange);
  color: var(--cmap-ink);
  transform: translateY(-1px);
}
.cmap-btn-ghost svg { width: 14px; height: 14px; }

/* ===== LAYOUT ===== */
.cmap-layout {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(260px, 30%) 1fr;
  grid-template-rows: 1fr;
  align-items: stretch;
  gap: 16px;
  padding: 16px;
  overflow: hidden;
  background: var(--cmap-surface-2);
  min-height: 0;
}
.cmap-layout.cmap-no-sidebar { grid-template-columns: 1fr; }

/* ===== SIDEBAR ===== */
.cmap-sidebar {
  background: var(--cmap-bg);
  border: 1px solid var(--cmap-border);
  border-radius: var(--cmap-r-card);
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(61, 53, 82, 0.04);
  height: 100%;
  min-height: 0;
}
.cmap-sidebar-head {
  padding: 18px 18px 14px;
  border-bottom: 1px solid var(--cmap-border);
}
.cmap-sidebar-title {
  display: flex; align-items: baseline; gap: 8px;
  margin-bottom: 6px;
}
.cmap-sidebar-title h2 {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.015em;
  margin: 0;
  color: var(--cmap-ink);
  line-height: 1;
}
.cmap-sidebar-title em {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 600;
  color: var(--cmap-orange);
  font-size: 26px;
  letter-spacing: -0.015em;
  line-height: 1;
}
.cmap-sidebar-meta {
  font-size: 12.5px;
  color: var(--cmap-ink-mute);
  margin: 0;
  line-height: 1.5;
}
.cmap-sidebar-meta strong {
  color: var(--cmap-ink);
  font-weight: 600;
}

.cmap-tabs {
  display: flex; gap: 4px;
  margin-top: 14px;
  background: var(--cmap-surface);
  padding: 4px;
  border-radius: var(--cmap-r-pill);
  border: 1px solid var(--cmap-border);
}
.cmap-tab {
  flex: 1;
  padding: 7px 10px;
  border-radius: 7px;
  font-size: 12.5px; font-weight: 500;
  color: var(--cmap-ink-mute);
  text-align: center;
  cursor: pointer;
  border: none;
  background: transparent;
  font-family: inherit;
  transition: background .22s var(--cmap-ease), color .22s var(--cmap-ease), box-shadow .22s var(--cmap-ease);
}
.cmap-tab:hover { color: var(--cmap-ink); }
.cmap-tab.active {
  background: #fff;
  color: var(--cmap-ink);
  box-shadow: 0 1px 2px rgba(61, 53, 82, 0.06);
  font-weight: 600;
}

.cmap-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
  min-height: 0;
}
.cmap-list::-webkit-scrollbar { width: 8px; }
.cmap-list::-webkit-scrollbar-track { background: transparent; }
.cmap-list::-webkit-scrollbar-thumb {
  background: var(--cmap-border-strong);
  border-radius: 4px;
}

.cmap-card {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border-radius: var(--cmap-r-btn);
  cursor: pointer;
  border: 1px solid transparent;
  transition: background .22s var(--cmap-ease), border-color .22s var(--cmap-ease), transform .22s var(--cmap-ease);
}
.cmap-card:hover {
  background: var(--cmap-surface);
  transform: translateX(2px);
}
.cmap-card.active {
  background: var(--cmap-orange-soft);
  border-color: rgba(240, 138, 36, 0.22);
}
.cmap-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cmap-grad-orange);
  color: #fff;
  display: grid; place-items: center;
  font-weight: 600; font-size: 14px;
  letter-spacing: 0.02em;
  flex-shrink: 0;
  box-shadow: 0 4px 10px -3px rgba(240, 138, 36, 0.4);
}
.cmap-avatar img { width: 100%; height: 100%; object-fit: cover; }
.cmap-card-info h3 {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--cmap-ink);
  margin: 0 0 2px;
  letter-spacing: -0.01em;
}
.cmap-card-info p {
  font-size: 11.5px;
  color: var(--cmap-ink-mute);
  margin: 0;
  display: flex; align-items: center; gap: 4px;
}
.cmap-card-info p svg { width: 11px; height: 11px; }
.cmap-badge {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--cmap-success);
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.18);
}

/* ===== MAP ===== */
.cmap-map-wrap {
  position: relative;
  border-radius: var(--cmap-r-card);
  overflow: hidden;
  border: 1px solid var(--cmap-border);
  box-shadow: 0 1px 2px rgba(61, 53, 82, 0.04);
  min-height: 0;
  height: 100%;
}
#cmap-map {
  width: 100%; height: 100%;
  background: var(--cmap-surface-2);
}

.cmap-stats {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 500;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: var(--cmap-r-card);
  padding: 12px 16px;
  box-shadow: 0 8px 24px -8px rgba(61, 53, 82, 0.18);
  border: 1px solid var(--cmap-border);
  display: flex; gap: 18px;
  transition: opacity .28s var(--cmap-ease), transform .28s var(--cmap-ease);
}
.cmap-stats.is-hidden,
.cmap-legend.is-hidden {
  opacity: 0 !important;
  pointer-events: none;
}
.cmap-stats.is-hidden { transform: translateY(-6px) !important; }
.cmap-legend.is-hidden { transform: translateY(6px) !important; }
.cmap-stat { display: flex; flex-direction: column; }
.cmap-stat-val {
  font-size: 20px;
  font-weight: 700;
  color: var(--cmap-ink);
  letter-spacing: -0.02em;
  line-height: 1;
}
.cmap-stat-lbl {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--cmap-ink-mute);
  font-weight: 500;
  margin-top: 5px;
}
.cmap-stat + .cmap-stat {
  padding-left: 18px;
  border-left: 1px solid var(--cmap-border);
}

.cmap-legend {
  position: absolute;
  bottom: 16px; left: 16px;
  z-index: 500;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: var(--cmap-r-pill);
  padding: 8px 12px;
  box-shadow: 0 1px 2px rgba(61, 53, 82, 0.06);
  border: 1px solid var(--cmap-border);
  display: flex; align-items: center; gap: 10px;
  font-size: 11.5px;
  color: var(--cmap-ink-soft);
  font-weight: 500;
  transition: opacity .28s var(--cmap-ease), transform .28s var(--cmap-ease);
}
.cmap-legend-pin {
  width: 10px; height: 10px;
  background: var(--cmap-orange);
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  box-shadow: 0 2px 5px rgba(240, 138, 36, 0.45);
}

/* ===== MARQUEUR ===== */
.cmap-marker {
  width: 44px; height: 44px;
  background: #fff;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  border: 2.5px solid var(--cmap-orange);
  box-shadow: 0 6px 14px -3px rgba(61, 53, 82, 0.28);
  display: grid; place-items: center;
  cursor: pointer;
  transition: transform .25s var(--cmap-ease), border-color .25s var(--cmap-ease), box-shadow .25s var(--cmap-ease);
}
.cmap-marker:hover {
  transform: rotate(-45deg) scale(1.15);
  border-color: var(--cmap-orange-deep);
  box-shadow: 0 8px 18px -4px rgba(240, 138, 36, 0.4);
}
.cmap-marker-inner {
  transform: rotate(45deg);
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--cmap-grad-orange);
  color: #fff;
  display: grid; place-items: center;
  font-weight: 600; font-size: 13px;
  letter-spacing: 0.02em;
  overflow: hidden;
}
.cmap-marker-inner img { width: 100%; height: 100%; object-fit: cover; }

/* Marqueur groupe : meme goutte mais avec badge compteur en haut a droite */
.cmap-marker-group-wrap {
  position: relative;
  width: 44px; height: 44px;
}
/* Photo dans le marker : positionnement absolute pour centrage parfait
   (l'<img> dans un parent rotate(45deg) avec object-fit a parfois des bugs de clip).
   object-position: center 30% favorise le haut de l'image ou se trouve generalement le visage. */
.cmap-marker-inner { position: relative; overflow: hidden; }
.cmap-marker-img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  border-radius: 50%;
}
.cmap-marker-pile { background: var(--cmap-grad-orange); }
.cmap-marker-pile svg { width: 14px; height: 14px; color: #fff; }
.cmap-marker-count {
  position: absolute;
  top: -6px; right: -7px;
  min-width: 18px; height: 18px;
  padding: 0 5px;
  background: var(--cmap-orange-deep);
  color: #fff;
  border-radius: 100px;
  font-size: 10px; font-weight: 700;
  border: 1.5px solid #fff;
  display: grid; place-items: center;
  box-shadow: 0 2px 6px -1px rgba(61, 53, 82, 0.32);
  z-index: 2;
  letter-spacing: 0.02em;
  font-family: 'DM Sans', system-ui, sans-serif;
  pointer-events: none;
}

/* ===== POPUP ===== */
.club-map-app .leaflet-popup-content-wrapper {
  border-radius: var(--cmap-r-card);
  padding: 0;
  box-shadow: 0 24px 60px -12px rgba(61, 53, 82, 0.22);
  border: 1px solid var(--cmap-border);
  overflow: hidden;
}
.club-map-app .leaflet-popup-content {
  margin: 0;
  width: 280px !important;
  font-family: 'DM Sans', system-ui, sans-serif;
}
.club-map-app .leaflet-popup-tip { box-shadow: 0 24px 60px -12px rgba(61, 53, 82, 0.22); }
.cmap-popup-header {
  background: var(--cmap-grad-orange);
  padding: 18px;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.cmap-popup-header::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.22), transparent 55%);
  pointer-events: none;
}
.cmap-popup-avatar {
  width: 60px; height: 60px;
  border-radius: 50%;
  border: 3px solid rgba(255, 255, 255, 0.92);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.18);
  display: grid; place-items: center;
  font-weight: 700; font-size: 20px;
  color: #fff;
  margin-bottom: 12px;
  position: relative; z-index: 2;
  box-shadow: 0 6px 14px -4px rgba(0, 0, 0, 0.22);
}
.cmap-popup-avatar img { width: 100%; height: 100%; object-fit: cover; }
.cmap-popup-name {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.015em;
  position: relative; z-index: 2;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
}
.cmap-popup-city {
  font-size: 13px;
  opacity: 0.85;
  margin-top: 2px;
  position: relative; z-index: 2;
  font-weight: 500;
}
.cmap-popup-body { padding: 14px 18px; background: #fff; }
.cmap-popup-row {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 0;
  color: var(--cmap-ink-soft);
  font-size: 13px;
  text-decoration: none;
  transition: color .22s var(--cmap-ease);
}
.cmap-popup-row + .cmap-popup-row {
  border-top: 1px solid var(--cmap-border);
}
.cmap-popup-row svg {
  width: 15px; height: 15px;
  color: var(--cmap-orange);
  flex-shrink: 0;
}
a.cmap-popup-row:hover { color: var(--cmap-orange-deep); }

.club-map-app .leaflet-popup-close-button {
  width: 28px; height: 28px;
  font-size: 22px;
  color: #fff !important;
  opacity: 0.85;
  top: 8px !important; right: 8px !important;
  transition: opacity .22s var(--cmap-ease);
}
.club-map-app .leaflet-popup-close-button:hover { opacity: 1; }

/* ===== POPUP GROUPE (N membres a la meme adresse) ===== */
.club-map-app .leaflet-popup.cmap-popup-group .leaflet-popup-content {
  width: 320px !important;
}
.cmap-pg-header {
  background: var(--cmap-grad-orange);
  padding: 16px 20px;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.cmap-pg-header::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.20), transparent 55%);
  pointer-events: none;
}
.cmap-pg-count {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1;
  position: relative; z-index: 2;
}
.cmap-pg-city {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.88);
  margin-top: 4px;
  letter-spacing: 0.02em;
  font-weight: 500;
  position: relative; z-index: 2;
}
.cmap-pg-list {
  background: #fff;
  max-height: 320px;
  overflow-y: auto;
}
.cmap-pg-list::-webkit-scrollbar { width: 6px; }
.cmap-pg-list::-webkit-scrollbar-thumb { background: var(--cmap-border-strong); border-radius: 4px; }
.cmap-pg-item {
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px 18px;
  border-bottom: 1px solid var(--cmap-border);
}
.cmap-pg-item:last-child { border-bottom: none; }
.cmap-pg-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--cmap-grad-orange);
  color: #fff;
  display: grid; place-items: center;
  font-weight: 600; font-size: 12px;
  overflow: hidden;
  flex-shrink: 0;
  box-shadow: 0 3px 8px -2px rgba(240, 138, 36, 0.35);
}
.cmap-pg-avatar img { width: 100%; height: 100%; object-fit: cover; }
.cmap-pg-info { min-width: 0; }
.cmap-pg-name {
  font-size: 13.5px; font-weight: 600;
  color: var(--cmap-ink);
  letter-spacing: -0.01em;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cmap-pg-line {
  display: block;
  font-size: 11.5px;
  color: var(--cmap-ink-soft);
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color .22s var(--cmap-ease);
}
a.cmap-pg-line:hover { color: var(--cmap-orange-deep); }

/* ===== MODE PUBLIC (non-membres) ===== */
.cmap-public-blur {
  filter: blur(3px) saturate(0.85);
  letter-spacing: 0.18em;
}
.cmap-popup-body .cmap-public-msg {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--cmap-ink-soft);
  line-height: 1.5;
}
.cmap-popup-cta,
.cmap-popup-cta-group {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 16px;
  border-radius: var(--cmap-r-btn);
  background: var(--cmap-grad-orange);
  color: #fff !important;
  font-size: 13px; font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 6px 16px -6px rgba(240, 138, 36, 0.5);
  transition: transform .2s var(--cmap-ease), box-shadow .2s var(--cmap-ease);
}
.cmap-popup-cta:hover,
.cmap-popup-cta-group:hover {
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.32), 0 10px 22px -6px rgba(240, 138, 36, 0.6);
}
.cmap-popup-cta svg,
.cmap-popup-cta-group svg { width: 14px; height: 14px; flex-shrink: 0; }
.cmap-popup-cta-group {
  margin: 12px 18px 14px;
  width: calc(100% - 36px);
}

.cmap-card.is-public .cmap-card-info h3 {
  letter-spacing: 0.06em;
}
.cmap-card.is-public .cmap-badge { display: none; }

/* Banniere public flottante en bas a droite. */
.cmap-public-banner {
  position: absolute;
  bottom: 16px; right: 16px;
  z-index: 600;
  display: flex; align-items: center; gap: 14px;
  padding: 10px 14px 10px 16px;
  border-radius: 100px;
  background: rgba(61, 53, 82, 0.92);
  -webkit-backdrop-filter: blur(8px);
          backdrop-filter: blur(8px);
  border: 1px solid rgba(245, 169, 106, 0.35);
  color: #fff;
  font-size: 12.5px;
  letter-spacing: 0.02em;
  box-shadow: 0 12px 28px -10px rgba(0, 0, 0, 0.45);
  max-width: calc(100% - 32px);
}
.cmap-public-banner strong { color: var(--cmap-orange-glow); font-weight: 600; }
.cmap-public-banner a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  border-radius: 100px;
  background: var(--cmap-grad-orange);
  color: #fff !important;
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 4px 10px -3px rgba(240, 138, 36, 0.45);
  transition: transform .2s var(--cmap-ease);
}
.cmap-public-banner a:hover { transform: translateY(-1px); }
.cmap-public-banner a svg { width: 12px; height: 12px; }
@media (max-width: 920px) {
  .cmap-public-banner {
    top: auto; bottom: 12px; right: 12px; left: 12px;
    flex-direction: column; align-items: stretch; text-align: center;
    border-radius: var(--cmap-r-card);
  }
  .cmap-public-banner a { justify-content: center; }
}

/* Carte verrouillee (mode public_mode = off, et user non-membre) */
.cmap-locked {
  display: grid; place-items: center;
  height: 100%;
  background: var(--cmap-surface);
  padding: 32px;
}
.cmap-locked-inner {
  text-align: center;
  max-width: 420px;
}
.cmap-locked-inner h3 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-style: italic;
  font-weight: 600;
  font-size: 28px;
  color: var(--cmap-ink);
  margin: 0 0 12px;
}
.cmap-locked-inner p {
  font-size: 14.5px;
  color: var(--cmap-ink-soft);
  line-height: 1.55;
  margin: 0 0 22px;
}
.cmap-locked-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 24px;
  border-radius: var(--cmap-r-btn);
  background: var(--cmap-grad-orange);
  color: #fff !important;
  font-size: 14px; font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 8px 22px -8px rgba(240, 138, 36, 0.5);
  transition: transform .2s var(--cmap-ease);
}
.cmap-locked-cta:hover { transform: translateY(-2px); }

/* ===== LEAFLET ZOOM CONTROLS ===== */
.club-map-app .leaflet-control-zoom a {
  background: rgba(255, 255, 255, 0.95);
  color: var(--cmap-ink);
  border: 1px solid var(--cmap-border);
  font-weight: 500;
  transition: background .22s var(--cmap-ease), color .22s var(--cmap-ease);
}
.club-map-app .leaflet-control-zoom a:hover {
  background: #fff;
  color: var(--cmap-orange);
}

/* ===== ETAT VIDE ===== */
.cmap-empty {
  padding: 24px 18px;
  text-align: center;
  color: var(--cmap-ink-mute);
  font-size: 13px;
}

/* ===== MOBILE ===== */
@media (max-width: 920px) {
  .club-map-app { height: auto; }
  .cmap-layout {
    grid-template-columns: 1fr;
    padding: 12px;
    gap: 12px;
  }
  .cmap-sidebar {
    max-height: 42vh;
    order: 2;
  }
  .cmap-map-wrap {
    height: 60vh;
    order: 1;
  }
  .cmap-search { display: none; }
  .cmap-stats { padding: 10px 12px; gap: 12px; }
  .cmap-stat-val { font-size: 16px; }
  .cmap-stat-lbl { font-size: 9px; letter-spacing: 0.12em; }
  .cmap-stat + .cmap-stat { padding-left: 12px; }
  .cmap-legend { font-size: 10.5px; padding: 6px 10px; }
}

@media (max-width: 480px) {
  .cmap-topbar { padding: 12px 14px; gap: 10px; }
  .cmap-brand { font-size: 15px; }
  .cmap-brand-mark { width: 28px; height: 28px; }
  .cmap-brand-mark svg { width: 16px; height: 16px; }
  .cmap-btn-ghost { padding: 0 12px; font-size: 12px; }
}

/* ================ FORCE LAYOUT (override safety) ================ */
.club-map-app { height: var(--cmap-height, 700px) !important; max-height: var(--cmap-height, 700px) !important; }
.cmap-layout { height: calc(var(--cmap-height, 700px) - 69px) !important; max-height: calc(var(--cmap-height, 700px) - 69px) !important; }
.cmap-sidebar { height: 100% !important; max-height: 100% !important; min-height: 0 !important; overflow: hidden !important; }
.cmap-sidebar-head { flex-shrink: 0 !important; }
.cmap-list { flex: 1 1 auto !important; overflow-y: auto !important; min-height: 0 !important; max-height: 100% !important; -webkit-overflow-scrolling: touch; }
.cmap-map-wrap { height: 100% !important; max-height: 100% !important; min-height: 0 !important; }
#cmap-map { height: 100% !important; }

/* === SCROLLBAR MODERNE === */
.cmap-list { scrollbar-width: thin; scrollbar-color: rgba(240, 138, 36, 0.35) transparent; }
.cmap-list::-webkit-scrollbar { width: 6px; }
.cmap-list::-webkit-scrollbar-track { background: transparent; margin: 8px 0; }
.cmap-list::-webkit-scrollbar-thumb { background: rgba(240, 138, 36, 0.35); border-radius: 100px; transition: background 0.2s var(--cmap-ease); }
.cmap-list:hover::-webkit-scrollbar-thumb { background: rgba(240, 138, 36, 0.6); }
.cmap-list::-webkit-scrollbar-thumb:hover { background: var(--cmap-orange); }

/* === RADIUS SELECT === */
.cmap-radius-row { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.cmap-radius-lbl { font-size: 11px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--cmap-ink-mute); }
.cmap-radius-select { width: 100%; height: 38px; padding: 0 32px 0 14px; border-radius: var(--cmap-r-btn); border: 1px solid var(--cmap-border); background: var(--cmap-surface); color: var(--cmap-ink); font-family: inherit; font-size: 13.5px; font-weight: 500; cursor: pointer; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23E8621A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat: no-repeat; background-position: right 12px center; transition: border-color .22s var(--cmap-ease), background-color .22s var(--cmap-ease), box-shadow .22s var(--cmap-ease); }
.cmap-radius-select:hover { border-color: var(--cmap-orange); background-color: #fff; }
.cmap-radius-select:focus { outline: none; border-color: var(--cmap-orange); box-shadow: 0 0 0 4px var(--cmap-orange-soft); background-color: #fff; }

/* === FORCE LIGHT BACKGROUND ON CARTE PAGE ===
   Tout body ou wrap de page WP qui contient la carte passe en fond clair,
   pour que le mode 'Full White' du theme se voit aussi sur cette page.
   Si tu veux dark mode partout, retire ce bloc. */
body:has(.club-map-app) {
  background: #FFFFFF !important;
}
body:has(.club-map-app) .kt-content-wrap,
body:has(.club-map-app) .entry-content,
body:has(.club-map-app) .site-content,
body:has(.club-map-app) main,
body:has(.club-map-app) article {
  background: transparent !important;
}
/* Fallback pour les vieux navigateurs qui ne supportent pas :has */
.club-map-app { background: #FFFFFF !important; padding-block: 24px; }

/* === PROFILE FORM (contraste fort + dark mode complet) === */
.cmap-profile { font-family: 'DM Sans', system-ui, sans-serif; max-width: 760px; margin: 24px auto; padding: 36px; background: #EFEAE0; border: 1px solid #D9D5CC; border-radius: 24px; color: var(--cmap-ink); box-shadow: 0 8px 32px -12px rgba(61,53,82,0.12); }
.cmap-profile-title { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(28px, 4vw, 38px); font-weight: 600; margin: 0 0 8px; line-height: 1.1; color: var(--cmap-ink); }
.cmap-profile-title em { font-style: italic; color: var(--cmap-orange); }
.cmap-profile-intro { font-size: 14.5px; color: var(--cmap-ink-soft); margin: 0 0 28px; line-height: 1.55; }
.cmap-profile-section { font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cmap-orange-deep); margin: 32px 0 14px; padding-bottom: 10px; border-bottom: 2px solid var(--cmap-orange); }
.cmap-profile-section span { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--cmap-ink-mute); font-size: 12px; margin-left: 6px; }
.cmap-profile-photo-row { display: flex; gap: 18px; align-items: center; padding: 18px; background: #fff; border: 1.5px solid #E5E1D6; border-radius: 14px; margin-bottom: 24px; box-shadow: 0 4px 16px -6px rgba(61,53,82,0.1); }
.cmap-profile-photo { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; border: 3px solid #fff; box-shadow: 0 4px 12px -2px rgba(240,138,36,0.35); flex-shrink: 0; }
.cmap-profile-photo-initials { display: grid; place-items: center; background: var(--cmap-grad-orange); color: #fff; font-weight: 600; font-size: 28px; letter-spacing: 0.04em; }
.cmap-profile-photo-hint { font-size: 13px; color: var(--cmap-ink-soft); margin: 0; line-height: 1.5; }
.cmap-profile-photo-hint a { color: var(--cmap-orange); text-decoration: underline; font-weight: 500; }
.cmap-profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.cmap-profile-row { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: center; padding: 16px 20px; background: #fff; border: 1.5px solid #E5E1D6; border-radius: 14px; margin-bottom: 10px; box-shadow: 0 2px 8px -4px rgba(61,53,82,0.08); transition: border-color .2s, box-shadow .2s, transform .15s; }
.cmap-profile-row:hover { border-color: var(--cmap-orange); box-shadow: 0 6px 18px -6px rgba(240,138,36,0.25); transform: translateY(-1px); }
.cmap-profile-field { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.cmap-profile-grid .cmap-profile-field { padding: 16px 20px; background: #fff; border: 1.5px solid #E5E1D6; border-radius: 14px; box-shadow: 0 2px 8px -4px rgba(61,53,82,0.08); transition: border-color .2s, box-shadow .2s; }
.cmap-profile-grid .cmap-profile-field:hover { border-color: var(--cmap-orange); box-shadow: 0 6px 18px -6px rgba(240,138,36,0.25); }
.cmap-profile-field label { font-size: 11.5px; font-weight: 700; color: var(--cmap-ink-mute); letter-spacing: 0.08em; text-transform: uppercase; }
.cmap-profile-field input, .cmap-profile-field textarea { width: 100%; padding: 6px 0 0; border: none; border-bottom: 1.5px solid transparent; font: 15px 'DM Sans', sans-serif; color: var(--cmap-ink); background: transparent; transition: border-color .2s; resize: vertical; }
.cmap-profile-field input:focus, .cmap-profile-field textarea:focus { outline: none; border-bottom-color: var(--cmap-orange); }
.cmap-profile-field input:disabled { color: var(--cmap-ink-soft); cursor: not-allowed; }
.cmap-profile-field input::placeholder, .cmap-profile-field textarea::placeholder { color: rgba(61,53,82,0.3); }
.cmap-profile-hint { font-size: 12px; color: var(--cmap-ink-mute); margin: 4px 0 0; }
.cmap-profile-global { background: var(--cmap-grad-orange) !important; border: none !important; box-shadow: 0 8px 24px -8px rgba(240,138,36,0.4) !important; margin-top: 24px; padding: 20px 24px !important; }
.cmap-profile-global label { color: rgba(255,255,255,0.85) !important; font-weight: 700; }
.cmap-profile-global .cmap-profile-hint { color: rgba(255,255,255,0.85); font-size: 12.5px; }
.cmap-profile-global .cmap-toggle::before { color: rgba(255,255,255,0.85); }
.cmap-profile-global .cmap-toggle:has(input:checked)::before { color: #fff; }
.cmap-profile-global .cmap-toggle-track { background: rgba(255,255,255,0.25) !important; }
.cmap-profile-global .cmap-toggle input:checked + .cmap-toggle-track { background: #fff !important; }
.cmap-profile-global .cmap-toggle input:checked + .cmap-toggle-track::after { background: var(--cmap-orange-deep); }
/* Toggle modernise : pill avec texte Visible / Prive */
.cmap-toggle { position: relative; display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; cursor: pointer; user-select: none; }
.cmap-toggle::before { content: 'Prive'; font-size: 11px; font-weight: 700; color: var(--cmap-ink); letter-spacing: 0.08em; text-transform: uppercase; min-width: 56px; text-align: right; transition: color .25s var(--cmap-ease); opacity: 0.85; }
.cmap-toggle:has(input:checked)::before { content: 'Visible'; color: var(--cmap-orange-deep); }
.cmap-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.cmap-toggle-track { display: block; width: 52px; height: 30px; background: #4D4360; border: 2px solid var(--cmap-ink); border-radius: 100px; cursor: pointer; transition: background .25s var(--cmap-ease), border-color .25s var(--cmap-ease), box-shadow .25s var(--cmap-ease); position: relative; box-shadow: inset 0 1px 2px rgba(0,0,0,0.35); }
.cmap-toggle-track::after { content: ''; position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; background: #fff; border: 1.5px solid var(--cmap-ink); border-radius: 50%; box-shadow: 0 2px 5px rgba(0,0,0,0.35); transition: transform .25s var(--cmap-ease), border-color .25s var(--cmap-ease); }
.cmap-toggle input:checked + .cmap-toggle-track { background: var(--cmap-orange); border-color: var(--cmap-orange-deep); box-shadow: inset 0 1px 2px rgba(0,0,0,0.18), 0 4px 10px -2px rgba(240,138,36,0.45); }
.cmap-toggle input:checked + .cmap-toggle-track::after { transform: translateX(22px); border-color: var(--cmap-orange-deep); box-shadow: 0 2px 6px rgba(240,138,36,0.5); }
.cmap-toggle:hover .cmap-toggle-track { box-shadow: inset 0 1px 2px rgba(0,0,0,0.4), 0 0 0 3px rgba(61,53,82,0.10); }
.cmap-toggle:hover input:checked + .cmap-toggle-track { box-shadow: inset 0 1px 2px rgba(0,0,0,0.18), 0 0 0 3px rgba(240,138,36,0.22), 0 6px 14px -2px rgba(240,138,36,0.55); }
.cmap-profile-save { display: inline-flex; align-items: center; gap: 10px; margin-top: 32px; padding: 18px 36px; background: var(--cmap-grad-orange); color: #fff !important; border: none; border-radius: 100px; font: 700 16px 'DM Sans', sans-serif; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,0.3), 0 12px 28px -8px rgba(240,138,36,0.55); transition: transform .2s, box-shadow .2s; width: 100%; justify-content: center; }
.cmap-profile-save:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,0.4), 0 16px 36px -8px rgba(240,138,36,0.7); }
.cmap-profile-save:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.cmap-profile-status { font-size: 14px; margin-top: 18px; min-height: 20px; text-align: center; font-weight: 500; }
.cmap-profile-status.is-ok { color: var(--cmap-success); }
.cmap-profile-status.is-err { color: var(--cmap-danger); }
.cmap-profile-locked, .cmap-profile-info { max-width: 600px; margin: 40px auto; padding: 28px; background: #EFEAE0; border: 1.5px solid #D9D5CC; border-radius: 16px; text-align: center; color: var(--cmap-ink-soft); font-family: 'DM Sans', sans-serif; line-height: 1.55; }
@media (prefers-color-scheme: dark) {
  .cmap-profile { background: #1a1924; border-color: #4D4360; color: #FDF8F1; box-shadow: 0 8px 32px -12px rgba(0,0,0,0.6); }
  .cmap-profile-title { color: #FDF8F1; }
  .cmap-profile-intro, .cmap-profile-hint { color: rgba(253,248,241,0.65); }
  .cmap-profile-photo-row, .cmap-profile-row, .cmap-profile-grid .cmap-profile-field { background: #4D4360; border-color: rgba(255,255,255,0.1); box-shadow: 0 2px 8px -4px rgba(0,0,0,0.4); }
  .cmap-profile-row:hover, .cmap-profile-grid .cmap-profile-field:hover { border-color: var(--cmap-orange); }
  .cmap-profile-field label { color: rgba(253,248,241,0.55); }
  .cmap-profile-field input, .cmap-profile-field textarea { color: #FDF8F1; }
  .cmap-profile-field input::placeholder, .cmap-profile-field textarea::placeholder { color: rgba(253,248,241,0.3); }
  .cmap-toggle-track { background: #4a4a5a; }
  .cmap-toggle::before { color: rgba(253,248,241,0.55); }
  .cmap-profile-locked, .cmap-profile-info { background: #1a1924; border-color: rgba(255,255,255,0.1); color: rgba(253,248,241,0.7); }
}
body.is-dark-mode .cmap-profile, body.full-dark .cmap-profile, body[data-theme='dark'] .cmap-profile, body.dark-mode .cmap-profile, body.kadence-dark-mode .cmap-profile { background: #1a1924 !important; border-color: #4D4360 !important; color: #FDF8F1 !important; }
body.is-dark-mode .cmap-profile-title, body.full-dark .cmap-profile-title, body[data-theme='dark'] .cmap-profile-title, body.dark-mode .cmap-profile-title, body.kadence-dark-mode .cmap-profile-title { color: #FDF8F1 !important; }
body.is-dark-mode .cmap-profile-intro, body.full-dark .cmap-profile-intro, body[data-theme='dark'] .cmap-profile-intro, body.dark-mode .cmap-profile-intro, body.kadence-dark-mode .cmap-profile-intro { color: rgba(253,248,241,0.65) !important; }
body.is-dark-mode .cmap-profile-photo-row, body.full-dark .cmap-profile-photo-row, body[data-theme='dark'] .cmap-profile-photo-row, body.dark-mode .cmap-profile-photo-row, body.kadence-dark-mode .cmap-profile-photo-row, body.is-dark-mode .cmap-profile-row, body.full-dark .cmap-profile-row, body[data-theme='dark'] .cmap-profile-row, body.dark-mode .cmap-profile-row, body.kadence-dark-mode .cmap-profile-row, body.is-dark-mode .cmap-profile-grid .cmap-profile-field, body.full-dark .cmap-profile-grid .cmap-profile-field, body[data-theme='dark'] .cmap-profile-grid .cmap-profile-field, body.dark-mode .cmap-profile-grid .cmap-profile-field, body.kadence-dark-mode .cmap-profile-grid .cmap-profile-field { background: #4D4360 !important; border-color: rgba(255,255,255,0.1) !important; }
body.is-dark-mode .cmap-profile-field input, body.full-dark .cmap-profile-field input, body[data-theme='dark'] .cmap-profile-field input, body.dark-mode .cmap-profile-field input, body.kadence-dark-mode .cmap-profile-field input, body.is-dark-mode .cmap-profile-field textarea, body.full-dark .cmap-profile-field textarea, body[data-theme='dark'] .cmap-profile-field textarea, body.dark-mode .cmap-profile-field textarea, body.kadence-dark-mode .cmap-profile-field textarea { color: #FDF8F1 !important; }
@media (max-width: 600px) { .cmap-profile { padding: 24px; margin: 16px; } .cmap-profile-grid { grid-template-columns: 1fr; } .cmap-profile-row { grid-template-columns: 1fr; gap: 12px; } .cmap-toggle { justify-content: flex-end; } }

/* === POPUP GROUP RICHE === */
.cmap-pg-pro { font-size: 11.5px; font-style: italic; color: var(--cmap-orange-deep); font-weight: 600; margin: 2px 0 4px; }
.cmap-pg-line svg { color: var(--cmap-orange); flex-shrink: 0; vertical-align: middle; margin-right: 4px; }
.cmap-pg-social { display: flex; gap: 6px; margin-top: 6px; }
.cmap-pg-icon { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 6px; background: var(--cmap-surface); color: var(--cmap-orange-deep); transition: background .2s, color .2s, transform .2s; }
.cmap-pg-icon:hover { background: var(--cmap-orange-soft); color: var(--cmap-orange); transform: translateY(-1px); }

.cmap-pg-private { font-size: 11.5px; color: var(--cmap-ink-mute); font-style: italic; margin-top: 4px; }
.cmap-pg-city { color: var(--cmap-ink-soft); font-size: 11.5px; margin-top: 4px; }
.cmap-pg-city svg { color: var(--cmap-orange); margin-right: 4px; vertical-align: middle; }

.cmap-popup-private { padding: 12px 0; color: var(--cmap-ink-mute); font-style: italic; font-size: 13px; text-align: center; border-bottom: 1px solid var(--cmap-border); }
.cmap-popup-edit { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; margin-top: 12px; background: var(--cmap-grad-orange); color: #fff !important; font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; text-decoration: none; border-radius: 100px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 4px 10px -3px rgba(240,138,36,0.45); transition: transform .2s; }
.cmap-popup-edit:hover { transform: translateY(-1px); }
.cmap-popup-edit svg { flex-shrink: 0; }
.cmap-pg-edit { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; margin-top: 6px; background: var(--cmap-orange-soft); color: var(--cmap-orange-deep) !important; font-size: 11.5px; font-weight: 600; text-decoration: none; border-radius: 100px; transition: background .2s, color .2s; }
.cmap-pg-edit:hover { background: var(--cmap-grad-orange); color: #fff !important; }

.cmap-stat-line { font-size: 13px; color: var(--cmap-ink-soft); margin: 0; padding: 4px 6px; line-height: 1.4; font-weight: 500; }
.cmap-stat-line strong { color: var(--cmap-orange); font-size: 18px; font-weight: 700; display: inline-block; margin-top: 2px; }

.cmap-pg-item-clickable { cursor: pointer; transition: background .2s, padding-left .2s; position: relative; }
.cmap-pg-item-clickable:hover { background: var(--cmap-orange-soft); padding-left: 22px; }
.cmap-pg-item-clickable .cmap-pg-arrow { display: flex; align-items: center; justify-content: center; color: var(--cmap-orange); opacity: 0; transition: opacity .2s, transform .2s; padding-right: 8px; }
.cmap-pg-item-clickable:hover .cmap-pg-arrow { opacity: 1; transform: translateX(2px); }
.cmap-pg-item.cmap-pg-item-clickable { display: grid; grid-template-columns: 36px 1fr auto; }

.cmap-popup-icons { display: flex; gap: 8px; padding: 14px 0; justify-content: center; flex-wrap: wrap; border-bottom: 1px solid var(--cmap-border); }
.cmap-popup-icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: var(--cmap-orange-soft); color: var(--cmap-orange-deep); transition: background .2s, color .2s, transform .2s; text-decoration: none; }
.cmap-popup-icon:hover { background: var(--cmap-grad-orange); color: #fff !important; transform: translateY(-2px); }

/* === CARTE PAGE LAYOUT TIGHT === */
/* La page de la carte n'a pas besoin du min-height: 100vh du theme. Le footer remonte naturellement sous le contenu. */
body:has(.club-map-app) .site-content, body:has(.club-map-app) .site-main, body:has(.club-map-app) .content-area { min-height: 0 !important; }
body:has(.club-map-app) .entry-content > *:last-child, body:has(.club-map-app) main > *:last-child { margin-bottom: 0 !important; padding-bottom: 0 !important; }

/* === FORCE PROFILE BUTTONS (override theme) === */
.cmap-profile .cmap-profile-global { background: #3D3552 !important; border: none !important; box-shadow: 0 8px 24px -8px rgba(61,53,82,0.4) !important; padding: 22px 26px !important; }
.cmap-profile .cmap-profile-global label { color: #FFFFFF !important; font-weight: 700 !important; font-size: 14px !important; letter-spacing: 0.04em !important; text-transform: uppercase !important; }
.cmap-profile .cmap-profile-global .cmap-profile-hint { color: rgba(255,255,255,0.65) !important; font-size: 12.5px !important; margin-top: 4px !important; }
.cmap-profile .cmap-profile-global .cmap-toggle::before { color: rgba(255,255,255,0.6) !important; }
.cmap-profile .cmap-profile-global .cmap-toggle:has(input:checked)::before { color: var(--cmap-orange-glow) !important; }
.cmap-profile .cmap-profile-global .cmap-toggle-track { background: rgba(255,255,255,0.18) !important; border-color: rgba(255,255,255,0.45) !important; }
.cmap-profile .cmap-profile-global .cmap-toggle input:checked + .cmap-toggle-track { background: var(--cmap-orange) !important; border-color: var(--cmap-orange-glow) !important; }
.cmap-profile .cmap-profile-save { background: linear-gradient(135deg, #F5A858 0%, #F08A24 55%, #D97706 100%) !important; background-color: #F08A24 !important; color: #FFFFFF !important; border: none !important; padding: 20px 36px !important; font-size: 16px !important; font-weight: 700 !important; letter-spacing: 0.08em !important; text-transform: uppercase !important; box-shadow: 0 12px 32px -8px rgba(240,138,36,0.5), inset 0 1px 0 rgba(255,255,255,0.3) !important; opacity: 1 !important; width: 100% !important; cursor: pointer !important; }
.cmap-profile .cmap-profile-save:hover { background: linear-gradient(135deg, #F5A858 0%, #D97706 55%, #A03A0A 100%) !important; transform: translateY(-2px) !important; box-shadow: 0 16px 40px -8px rgba(240,138,36,0.65), inset 0 1px 0 rgba(255,255,255,0.4) !important; }
.cmap-profile .cmap-profile-save:disabled { opacity: 0.6 !important; transform: none !important; cursor: not-allowed !important; }


/* === ADMIN VIEW TOGGLE (admin/member/public) === */
.cmap-view-toggle {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  background: rgba(61, 53, 82, 0.06);
  border: 1px solid var(--cmap-border);
  border-radius: 100px;
  margin-right: 8px;
}
.cmap-view-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 100px;
  border: none;
  background: transparent;
  font: 600 11.5px 'DM Sans', system-ui, sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--cmap-ink-mute);
  cursor: pointer;
  transition: background .22s var(--cmap-ease), color .22s var(--cmap-ease), transform .22s var(--cmap-ease);
}
.cmap-view-btn svg { flex-shrink: 0; opacity: 0.85; }
.cmap-view-btn:hover { color: var(--cmap-ink); transform: translateY(-1px); }
.cmap-view-btn.is-active {
  background: var(--cmap-grad-orange);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 4px 10px -3px rgba(240,138,36,0.45);
}
.cmap-view-btn.is-active svg { opacity: 1; }
@media (max-width: 720px) {
  .cmap-view-btn { padding: 5px 8px; font-size: 10px; }
  .cmap-view-btn span { display: none; }
}

/* === VIEW SWITCHER LABEL === */
.cmap-view-switcher {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: 6px;
}
.cmap-view-label {
  font: 700 9.5px 'DM Sans', system-ui, sans-serif;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cmap-ink-mute);
  user-select: none;
}

/* === MODE ANONYMOUS (membre non-opt-in vu par un autre membre) === */
.cmap-marker.cmap-marker-anonymous {
  background: var(--cmap-surface-2);
  border-color: var(--cmap-ink-mute);
  box-shadow: 0 4px 10px -2px rgba(61, 53, 82, 0.18);
}
.cmap-marker.cmap-marker-anonymous .cmap-marker-inner {
  background: linear-gradient(135deg, #6e6886 0%, #3d3552 100%);
  color: #fff;
}
.cmap-anonymous-avatar {
  background: linear-gradient(135deg, #6e6886 0%, #3d3552 100%) !important;
  color: #fff !important;
  display: grid !important;
  place-items: center;
}
.cmap-anonymous-avatar svg { opacity: 0.85; }

.cmap-avatar.cmap-avatar-anonymous {
  background: linear-gradient(135deg, #6e6886 0%, #3d3552 100%);
  color: #fff;
  box-shadow: 0 4px 10px -3px rgba(61, 53, 82, 0.45);
}
.cmap-card.is-anonymous .cmap-card-info h3 {
  font-style: italic;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 600;
  letter-spacing: 0;
  font-size: 15px;
}

/* === PROFILE FORM — harmonisation charte (cream + orange chaleureux #F08A24) === */
.cmap-profile {
  background: #FDF8F1 !important;
  border: 1px solid #F2EAD9 !important;
  box-shadow: 0 12px 40px -16px rgba(61, 53, 82, 0.10) !important;
  padding: 36px !important;
}
.cmap-profile-title em { color: #F08A24 !important; }
.cmap-profile-section {
  color: #C2701A !important;
  border-bottom: 2px solid #F08A24 !important;
}
.cmap-profile-photo-row,
.cmap-profile-row,
.cmap-profile-grid .cmap-profile-field {
  background: #FFFFFF !important;
  border: 1.5px solid #F2EAD9 !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 14px -6px rgba(61, 53, 82, 0.07) !important;
  transition: border-color .2s, box-shadow .2s, transform .15s !important;
}
.cmap-profile-row:hover,
.cmap-profile-grid .cmap-profile-field:hover {
  border-color: #F08A24 !important;
  box-shadow: 0 10px 28px -8px rgba(240, 138, 36, 0.22) !important;
  transform: translateY(-1px);
}
.cmap-profile-field label {
  color: #F08A24 !important;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.cmap-profile-field input,
.cmap-profile-field textarea {
  color: #3D3552 !important;
  font-weight: 500;
  background: transparent;
  border: none;
  font-size: 15px;
  padding: 4px 0;
}
.cmap-profile-field input::placeholder,
.cmap-profile-field textarea::placeholder {
  color: rgba(61, 53, 82, 0.30) !important;
  font-weight: 400;
}
.cmap-profile-field input:focus,
.cmap-profile-field textarea:focus {
  outline: none;
}
.cmap-profile-row:focus-within,
.cmap-profile-grid .cmap-profile-field:focus-within {
  border-color: #F08A24 !important;
  box-shadow: 0 0 0 3px rgba(240, 138, 36, 0.18), 0 6px 18px -6px rgba(240, 138, 36, 0.25) !important;
}
.cmap-profile-photo {
  box-shadow: 0 6px 18px -4px rgba(240, 138, 36, 0.35) !important;
  border: 3px solid #FFFFFF !important;
}
.cmap-profile-photo-initials {
  background: linear-gradient(135deg, #F08A24 0%, #F08A24 55%, #D97114 100%) !important;
}
.cmap-profile-photo-hint a { color: #F08A24 !important; }

/* Toggles harmonisés sur orange chaleureux */
.cmap-profile .cmap-toggle::before { color: rgba(61, 53, 82, 0.65) !important; }
.cmap-profile .cmap-toggle:has(input:checked)::before { color: #C2701A !important; }
.cmap-profile .cmap-toggle-track {
  background: #3D3552 !important;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.35), 0 0 0 1px rgba(61,53,82,0.06) !important;
}
.cmap-profile .cmap-toggle input:checked + .cmap-toggle-track {
  background: linear-gradient(135deg, #F08A24 0%, #F08A24 55%, #D97114 100%) !important;
  box-shadow: inset 0 1px 2px rgba(240, 138, 36, 0.20), 0 0 0 1px rgba(240, 138, 36, 0.18), 0 4px 10px -2px rgba(240, 138, 36, 0.45) !important;
}
.cmap-profile .cmap-toggle:hover input:checked + .cmap-toggle-track {
  box-shadow: inset 0 1px 2px rgba(240, 138, 36, 0.25), 0 0 0 3px rgba(240, 138, 36, 0.20), 0 6px 14px -2px rgba(240, 138, 36, 0.5) !important;
}

/* Section 'Apparaitre sur la carte' : variante cream-warm + accent orange,
   plus sobre que le navy mais qui reste distinctive (visibilite globale = important). */
.cmap-profile-row.cmap-profile-global {
  background: #FBEFE0 !important;
  border: 2px solid #F08A24 !important;
  color: #3D3552 !important;
  box-shadow: 0 8px 22px -10px rgba(240, 138, 36, 0.22) !important;
  position: relative;
}
.cmap-profile-row.cmap-profile-global::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #F08A24 0%, #F08A24 50%, #D97114 100%);
  border-radius: 16px 0 0 16px;
}
.cmap-profile .cmap-profile-global .cmap-profile-field label {
  color: #C2701A !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
}
.cmap-profile .cmap-profile-global .cmap-profile-hint {
  color: rgba(61, 53, 82, 0.62) !important;
  font-size: 12.5px !important;
  margin-top: 4px !important;
}
/* Toggle 'Apparaitre sur la carte' : renforcé sur fond cream-warm.
   Bordure marquée + ombre interne forte pour créer du contraste. */
.cmap-profile .cmap-profile-global .cmap-toggle::before {
  color: #3D3552 !important;
  font-weight: 800 !important;
  font-size: 12px !important;
  letter-spacing: 0.10em !important;
  opacity: 1 !important;
}
.cmap-profile .cmap-profile-global .cmap-toggle:has(input:checked)::before {
  color: #3D3552 !important;
}
.cmap-profile .cmap-profile-global .cmap-toggle-track {
  background: #3D3552 !important;
  border: 1.5px solid rgba(61, 53, 82, 0.85) !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(0, 0, 0, 0.10) !important;
  width: 52px !important;
  height: 28px !important;
}
.cmap-profile .cmap-profile-global .cmap-toggle-track::after {
  width: 22px !important;
  height: 22px !important;
  top: 2px !important;
  left: 2px !important;
  background: #FFFFFF !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.45) !important;
}
.cmap-profile .cmap-profile-global .cmap-toggle input:checked + .cmap-toggle-track {
  background: linear-gradient(135deg, #F08A24 0%, #F08A24 55%, #D97114 100%) !important;
  border: 1.5px solid #B05D0F !important;
  box-shadow: inset 0 1px 3px rgba(176, 93, 15, 0.30), 0 0 0 2px rgba(240, 138, 36, 0.25), 0 6px 14px -2px rgba(240, 138, 36, 0.55) !important;
}
.cmap-profile .cmap-profile-global .cmap-toggle input:checked + .cmap-toggle-track::after {
  transform: translateX(24px) !important;
  box-shadow: 0 2px 8px rgba(176, 93, 15, 0.55), 0 0 0 1px rgba(176, 93, 15, 0.20) !important;
}

/* Bouton 'ENREGISTRER MA FICHE' : pill orange chaleureux propre */
.cmap-profile-save {
  background: linear-gradient(135deg, #F08A24 0%, #F08A24 55%, #D97114 100%) !important;
  background-color: #F08A24 !important;
  color: #FFFFFF !important;
  border: none !important;
  padding: 18px 40px !important;
  font: 700 14px 'DM Sans', sans-serif !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  border-radius: 100px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.30), 0 14px 36px -10px rgba(240, 138, 36, 0.55) !important;
  margin-top: 28px !important;
  width: 100% !important;
  cursor: pointer !important;
  transition: transform .25s, box-shadow .25s !important;
}
.cmap-profile-save:hover {
  transform: translateY(-2px) !important;
  background: linear-gradient(135deg, #F08A24 0%, #D97114 55%, #B05D0F 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.40), 0 18px 44px -10px rgba(240, 138, 36, 0.70) !important;
}
.cmap-profile-status.is-ok { color: #15803D !important; }
.cmap-profile-status.is-err { color: #DC2626 !important; }

/* === Lien 'Retourner sur la carte sans enregistrer' === */
.cmap-profile-cancel {
  display: block;
  text-align: center;
  margin-top: 14px;
  padding: 6px 12px;
  font: 500 13.5px 'DM Sans', system-ui, sans-serif;
  color: rgba(61, 53, 82, 0.55);
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: color .2s var(--cmap-ease), text-decoration-color .2s;
  text-decoration: underline;
  text-decoration-color: rgba(61, 53, 82, 0.20);
  text-underline-offset: 4px;
}
.cmap-profile-cancel:hover {
  color: #C2701A;
  text-decoration-color: rgba(240, 138, 36, 0.55);
}

/* === MOBILE FIX : neutralise FORCE LAYOUT, sidebar en bas, map plein écran === */
@media (max-width: 920px) {
  .club-map-app {
    height: auto !important;
    max-height: none !important;
  }
  .cmap-layout {
    height: auto !important;
    max-height: none !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    padding: 10px !important;
    gap: 10px !important;
  }
  .cmap-map-wrap {
    height: 60vh !important;
    min-height: 380px !important;
    max-height: 60vh !important;
    order: 1 !important;
  }
  .cmap-sidebar {
    height: auto !important;
    max-height: 42vh !important;
    min-height: 200px !important;
    order: 2 !important;
  }
  .cmap-list { max-height: none !important; }
}

/* zindex-isolation : enferme les z-index Leaflet (jusqu'a 1000) pour qu'ils ne passent pas au-dessus des modales du site (Toolbox, popup builders, etc.) */
.cmap-layout { isolation: isolate; position: relative; z-index: 0; }
