/* ============================================================
   CPME-NC Adhésions — Frontend (public + espace adhérent)
   Look pro aligné sur le dashboard admin.
   ============================================================ */

:root {
  /* Valeurs par défaut — Theme_Customizer (admin) peut override --cpme-primary,
     --cpme-primary-dark et --cpme-secondary via injection dans wp_head priority 100. */
  --cpme-primary: #114d61;
  --cpme-primary-dark: #0d3e4f;
  --cpme-secondary: #a81815;
  --cpme-bg: #f5f7fa;
  --cpme-surface: #ffffff;
  --cpme-border: #e3e6ec;
  --cpme-border-strong: #cdd2db;
  --cpme-text: #1e2733;
  --cpme-text-soft: #5a6573;
  --cpme-text-muted: #8a93a1;
  --cpme-success: #21794a;
  --cpme-success-bg: #e8f8f0;
  --cpme-warning: #c0701f;
  --cpme-warning-bg: #fff4e3;
  --cpme-danger: #a81815;
  --cpme-danger-bg: #fdecea;
  --cpme-info: #1e6fb1;
  --cpme-info-bg: #eaf3fb;
  --cpme-radius: 14px;
  --cpme-radius-sm: 8px;
  --cpme-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
  --cpme-shadow: 0 1px 3px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);
  --cpme-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", system-ui, Roboto, sans-serif;
}

/* Scope global — on isole nos composants. */
.cpme-dashboard, .cpme-card, .cpme-preinscription, .cpme-dossier-wrap {
  font-family: var(--cpme-font);
  color: var(--cpme-text);
  line-height: 1.55;
}

/* ===== Cards génériques (préinscription) ===== */
.cpme-card {
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  padding: 28px 32px;
  margin: 24px 0;
  box-shadow: var(--cpme-shadow);
  font-family: var(--cpme-font);
}
.cpme-card-title {
  margin: 0 0 8px;
  color: var(--cpme-primary);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.2px;
}
.cpme-card-intro {
  margin: 0 0 24px;
  color: var(--cpme-text-soft);
  font-size: 15px;
  line-height: 1.6;
}

/* ===== Formulaires ===== */
.cpme-form { margin: 0; }
.cpme-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cpme-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.cpme-field-full { grid-column: 1 / -1; }
.cpme-field { display: flex; flex-direction: column; margin: 0 0 4px; }
.cpme-label {
  font-size: 13px; font-weight: 600;
  color: var(--cpme-text-soft); margin-bottom: 6px;
}
.cpme-required { color: var(--cpme-danger); margin-left: 2px; }
.cpme-optional { color: var(--cpme-text-muted); font-weight: 400; font-size: 0.92em; margin-left: 4px; font-style: italic; }
.cpme-field input, .cpme-field select, .cpme-field textarea {
  padding: 11px 14px;
  border: 1px solid var(--cpme-border-strong);
  border-radius: var(--cpme-radius-sm);
  font-size: 14px;
  background: #fff;
  font-family: inherit;
  color: var(--cpme-text);
  transition: border-color .15s, box-shadow .15s;
}
.cpme-field input:focus, .cpme-field select:focus, .cpme-field textarea:focus {
  outline: 0;
  border-color: var(--cpme-primary);
  box-shadow: 0 0 0 3px rgba(26, 61, 107, .15);
}
.cpme-field input[readonly] { background: var(--cpme-bg); cursor: not-allowed; }
.cpme-help { margin: 8px 0; font-size: 13px; color: var(--cpme-text-soft); font-style: italic; }

/* ===== RIDET autocomplete ===== */
.cpme-ridet-lookup { position: relative; }
.cpme-ridet-input-wrap { position: relative; }
.cpme-ridet-spinner {
  position: absolute; right: 12px; top: 50%;
  width: 16px; height: 16px; margin-top: -8px;
  border: 2px solid var(--cpme-border-strong);
  border-top-color: var(--cpme-primary);
  border-radius: 50%;
  opacity: 0; transition: opacity .15s;
}
.cpme-ridet-spinner.is-loading { opacity: 1; animation: cpme-spin .8s linear infinite; }
@keyframes cpme-spin { to { transform: rotate(360deg); } }
.cpme-ridet-suggestions {
  position: absolute; z-index: 10;
  top: calc(100% + 4px); left: 0; right: 0;
  margin: 0; padding: 6px;
  background: #fff;
  border: 1px solid var(--cpme-border-strong);
  border-radius: var(--cpme-radius-sm);
  box-shadow: 0 8px 24px rgba(15, 23, 42, .10);
  max-height: 280px; overflow-y: auto;
  list-style: none;
}
.cpme-ridet-suggestions li {
  padding: 10px 12px;
  border-radius: 6px;
  cursor: pointer;
  display: flex; flex-direction: column; gap: 2px;
  transition: background .12s;
}
.cpme-ridet-suggestions li:hover,
.cpme-ridet-suggestions li[aria-selected="true"] {
  background: var(--cpme-info-bg);
}
.cpme-ridet-suggestions strong {
  color: var(--cpme-text); font-size: 14px; font-weight: 600;
}
.cpme-ridet-suggestion-meta {
  color: var(--cpme-text-muted); font-size: 12px;
}
.cpme-ridet-source {
  display: block; margin-top: 6px;
  font-size: 12px; color: var(--cpme-text-muted);
}
.cpme-ridet-source a { color: var(--cpme-primary); }

/* ===== Multi-checkbox pills ===== */
.cpme-multi-field { border: 0; padding: 0; margin: 0 0 4px; }
.cpme-multi-field legend { padding: 0; margin-bottom: 8px; }
.cpme-label-hint {
  display: inline-block; margin-left: 6px;
  color: var(--cpme-text-muted); font-size: 12px; font-weight: 400; font-style: italic;
}
.cpme-checkbox-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px;
}
.cpme-checkbox-pill {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid var(--cpme-border-strong);
  border-radius: var(--cpme-radius-sm);
  font-size: 14px;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.cpme-checkbox-pill:hover { border-color: var(--cpme-primary); background: var(--cpme-bg); }
.cpme-checkbox-pill input[type="checkbox"] {
  margin: 0; cursor: pointer; flex-shrink: 0;
  accent-color: var(--cpme-primary);
}
.cpme-checkbox-pill:has(input:checked) {
  background: var(--cpme-info-bg);
  border-color: var(--cpme-primary);
  color: var(--cpme-primary);
  font-weight: 600;
}

.cpme-checkbox {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 20px 0; font-size: 14px; line-height: 1.5;
  color: var(--cpme-text-soft);
}
.cpme-checkbox input { margin-top: 3px; flex-shrink: 0; }
.cpme-checkbox a { color: var(--cpme-primary); }

/* ===== Boutons ===== */
.cpme-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px;
  border: 0;
  border-radius: var(--cpme-radius-sm);
  font-size: 15px;
  font-weight: 600;
  font-family: var(--cpme-font);
  cursor: pointer;
  text-decoration: none;
  transition: background .15s, transform .1s, box-shadow .15s;
  line-height: 1.2;
}
.cpme-btn:hover { transform: translateY(-1px); }
.cpme-btn:active { transform: translateY(0); }
.cpme-btn-primary { background: var(--cpme-primary); color: #fff; }
.cpme-btn-primary:hover { background: var(--cpme-primary-dark); box-shadow: 0 4px 12px rgba(26, 61, 107, .25); }
.cpme-btn-secondary {
  background: #fff;
  color: var(--cpme-primary);
  border: 1px solid var(--cpme-border-strong);
}
.cpme-btn-secondary:hover { background: var(--cpme-bg); border-color: var(--cpme-primary); }
.cpme-btn-pay {
  background: var(--cpme-success); color: #fff;
  font-size: 17px; padding: 14px 28px;
}
.cpme-btn-pay:hover { background: #1a6740; box-shadow: 0 4px 12px rgba(33, 121, 74, .25); }
.cpme-btn-block { display: flex; width: 100%; justify-content: center; margin-top: 16px; }
.cpme-btn:disabled { opacity: .5; cursor: wait; transform: none; }
.cpme-btn-link {
  background: none; border: 0; padding: 0;
  color: var(--cpme-primary); font-size: 14px; font-weight: 600;
  text-decoration: none; cursor: pointer;
}
.cpme-btn-link:hover { text-decoration: underline; }
.cpme-link {
  color: var(--cpme-text-soft); text-decoration: none;
  font-size: 14px; font-weight: 500;
}
.cpme-link:hover { color: var(--cpme-primary); text-decoration: underline; }

/* ===== Feedback formulaire ===== */
.cpme-form-feedback {
  margin-top: 16px; padding: 14px 16px;
  border-radius: var(--cpme-radius-sm);
  display: none; font-size: 14px;
}
.cpme-form-feedback.is-success {
  display: block;
  background: var(--cpme-success-bg);
  color: var(--cpme-success);
  border: 1px solid #b6e2c8;
}
.cpme-form-feedback.is-error {
  display: block;
  background: var(--cpme-danger-bg);
  color: var(--cpme-danger);
  border: 1px solid #f1a8a3;
}

/* ============================================================
   ESPACE ADHÉRENT — Layout sidebar + sections (SaaS moderne)
   ============================================================ */

.cpme-account {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  max-width: 1200px;
  margin: 24px auto 64px;
  padding: 0 16px;
  font-family: var(--cpme-font);
  color: var(--cpme-text);
  min-height: 600px;
}

/* Sidebar */
.cpme-account-sidebar {
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  padding: 20px 14px;
  display: flex; flex-direction: column;
  position: sticky; top: 24px; align-self: flex-start;
  box-shadow: var(--cpme-shadow-sm);
  height: fit-content;
}
.cpme-account-brand {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 8px 16px;
  border-bottom: 1px solid var(--cpme-border);
  margin-bottom: 14px;
}
.cpme-account-brand-icon {
  width: 36px; height: 36px; border-radius: 10px;
  background: var(--cpme-primary); color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.cpme-account-brand-icon .dashicons { font-size: 20px; width: 20px; height: 20px; }
.cpme-account-brand-text { font-size: 17px; font-weight: 700; color: var(--cpme-primary); }

.cpme-account-user {
  display: flex; gap: 12px; align-items: center;
  padding: 12px 8px 18px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--cpme-border);
}
.cpme-account-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  background: linear-gradient(135deg, var(--cpme-primary), #2c5990);
  color: #fff; font-weight: 700; font-size: 16px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.cpme-account-user-info { min-width: 0; line-height: 1.3; }
.cpme-account-user-info strong { display: block; font-size: 14px; color: var(--cpme-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cpme-account-user-info span { display: block; font-size: 12px; color: var(--cpme-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.cpme-account-nav {
  display: flex; flex-direction: column; gap: 2px;
  flex: 1;
}
.cpme-tab-link {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: var(--cpme-radius-sm);
  text-decoration: none; color: var(--cpme-text-soft);
  font-size: 14px; font-weight: 500;
  transition: background .12s, color .12s;
}
.cpme-tab-link:hover { background: var(--cpme-bg); color: var(--cpme-text); }
.cpme-tab-link.is-active {
  background: var(--cpme-info-bg);
  color: var(--cpme-primary); font-weight: 600;
}
.cpme-tab-link .dashicons { font-size: 18px; width: 18px; height: 18px; color: var(--cpme-text-muted); }
.cpme-tab-link.is-active .dashicons { color: var(--cpme-primary); }
.cpme-tab-external { border-top: 1px solid var(--cpme-border); margin-top: 8px; padding-top: 14px; }

.cpme-account-sidebar-footer {
  padding-top: 14px; margin-top: auto;
  border-top: 1px solid var(--cpme-border);
}
.cpme-account-logout {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: var(--cpme-radius-sm);
  color: var(--cpme-text-muted); font-size: 13px;
  text-decoration: none;
}
.cpme-account-logout:hover { color: var(--cpme-danger); background: var(--cpme-danger-bg); }
.cpme-account-logout .dashicons { font-size: 16px; width: 16px; height: 16px; }

/* Main content */
.cpme-account-main { min-width: 0; }
.cpme-tab-pane { display: none; }
.cpme-tab-pane.is-active { display: block; }

.cpme-page-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 16px; margin-bottom: 24px;
  flex-wrap: wrap;
}
.cpme-page-header h1 {
  margin: 0 0 4px;
  font-size: 28px; font-weight: 700;
  color: var(--cpme-primary); letter-spacing: -0.3px;
}
.cpme-page-sub { margin: 0; color: var(--cpme-text-soft); font-size: 14px; }
.cpme-status-pill {
  display: inline-flex; align-items: center;
  padding: 6px 14px; border-radius: 999px;
  color: #fff; font-size: 12px; font-weight: 600;
  white-space: nowrap;
}

/* Carte CTA principale */
.cpme-card-cta {
  display: flex; gap: 18px; align-items: flex-start;
  padding: 24px;
  border-left: 4px solid var(--cpme-primary);
  background: var(--cpme-surface);
  border-radius: var(--cpme-radius);
  box-shadow: var(--cpme-shadow);
  margin-bottom: 24px;
}
.cpme-card-cta.cpme-card-warn   { border-left-color: var(--cpme-warning); background: linear-gradient(180deg, var(--cpme-warning-bg) 0%, #fff 40%); }
.cpme-card-cta.cpme-card-info   { border-left-color: var(--cpme-info);    background: linear-gradient(180deg, var(--cpme-info-bg) 0%, #fff 40%); }
.cpme-card-cta.cpme-card-pay    { border-left-color: var(--cpme-success); background: linear-gradient(180deg, var(--cpme-success-bg) 0%, #fff 40%); }
.cpme-card-cta-icon {
  width: 48px; height: 48px; border-radius: 12px;
  background: rgba(255,255,255,.6); display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.cpme-card-cta-icon .dashicons { font-size: 24px; width: 24px; height: 24px; color: var(--cpme-primary); }
.cpme-card-warn .cpme-card-cta-icon .dashicons { color: var(--cpme-warning); }
.cpme-card-info .cpme-card-cta-icon .dashicons { color: var(--cpme-info); }
.cpme-card-pay .cpme-card-cta-icon .dashicons  { color: var(--cpme-success); }
.cpme-card-cta-body { flex: 1; min-width: 0; }
.cpme-card-cta-body h3 { margin: 0 0 6px; font-size: 18px; color: var(--cpme-text); font-weight: 700; }
.cpme-card-cta-body p { margin: 0 0 14px; color: var(--cpme-text-soft); font-size: 14px; line-height: 1.5; }

.cpme-correction-quote {
  background: rgba(255,255,255,.7);
  padding: 12px 14px; border-radius: var(--cpme-radius-sm);
  margin: 0 0 14px;
  border: 1px dashed rgba(192, 112, 31, .35);
}
.cpme-correction-quote strong { display: block; color: var(--cpme-warning); font-size: 12px; margin-bottom: 4px; text-transform: uppercase; letter-spacing: .4px; }
.cpme-correction-quote em { font-style: italic; color: var(--cpme-text); }

/* Carte progress (adhérent actif) */
.cpme-card-progress {
  background: linear-gradient(135deg, var(--cpme-primary, #114d61) 0%, #2c5990 100%);
  color: #fff;
  padding: 24px;
  border-radius: var(--cpme-radius);
  box-shadow: 0 10px 30px rgba(26, 61, 107, .2);
  margin-bottom: 24px;
}
.cpme-card-progress-header {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; margin-bottom: 20px; flex-wrap: wrap;
}
.cpme-card-progress h3 { margin: 0 0 4px; font-size: 20px; font-weight: 700; color: #fff; }
.cpme-card-progress p { margin: 0; opacity: .85; font-size: 14px; }
.cpme-card-progress p strong { color: #fff; }
.cpme-card-progress-stat { text-align: right; }
.cpme-card-progress-stat strong { display: block; font-size: 36px; font-weight: 700; line-height: 1; }
.cpme-card-progress-stat span { font-size: 12px; opacity: .85; text-transform: uppercase; letter-spacing: .5px; }

.cpme-progress-bar {
  height: 10px; background: rgba(255,255,255,.2);
  border-radius: 999px; overflow: hidden;
}
.cpme-progress-fill {
  height: 100%; background: #fff;
  border-radius: 999px;
  transition: width .4s ease;
}
.cpme-progress-labels {
  display: flex; justify-content: space-between;
  margin-top: 8px; font-size: 12px; opacity: .8;
}

/* KPI Tiles */
.cpme-tile-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px; margin-bottom: 24px;
}
.cpme-tile {
  background: var(--cpme-surface); border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius); padding: 16px 18px;
  box-shadow: var(--cpme-shadow-sm);
}
.cpme-tile-label {
  display: block; font-size: 11px; text-transform: uppercase;
  letter-spacing: .5px; color: var(--cpme-text-muted); font-weight: 600; margin-bottom: 6px;
}
.cpme-tile-value {
  display: block; font-size: 22px; font-weight: 700;
  color: var(--cpme-text); line-height: 1.2;
}
.cpme-tile-value small { font-size: 12px; font-weight: 500; color: var(--cpme-text-muted); }

/* Form cards */
.cpme-form-card {
  margin-bottom: 24px;
}
.cpme-form-card h3 {
  margin: 0 0 12px; font-size: 16px; font-weight: 600;
  color: var(--cpme-primary); padding-bottom: 10px;
  border-bottom: 1px solid var(--cpme-border);
}
.cpme-form-actions {
  margin-top: 20px; padding-top: 16px;
  border-top: 1px solid var(--cpme-border);
}
.cpme-form-actions .cpme-btn { display: inline-flex; align-items: center; gap: 6px; }
.cpme-form-actions .cpme-btn .dashicons { font-size: 16px; width: 16px; height: 16px; }

/* Orders table */
.cpme-orders-table {
  background: var(--cpme-surface); border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius); overflow: hidden;
  box-shadow: var(--cpme-shadow-sm);
}
.cpme-orders-table table { width: 100%; border-collapse: collapse; }
.cpme-orders-table th, .cpme-orders-table td { padding: 12px 14px; text-align: left; font-size: 13px; border-bottom: 1px solid var(--cpme-border); }
.cpme-orders-table th { font-weight: 600; color: var(--cpme-text-muted); text-transform: uppercase; letter-spacing: .4px; font-size: 11px; background: var(--cpme-bg); }
.cpme-orders-table tr:last-child td { border-bottom: 0; }
.cpme-orders-table tr:hover td { background: var(--cpme-bg); }
.cpme-orders-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.cpme-orders-table code { background: var(--cpme-bg); padding: 2px 8px; border-radius: 4px; font-size: 12px; }
.cpme-order-status {
  display: inline-block; padding: 3px 9px; border-radius: 999px;
  font-size: 11px; font-weight: 600; text-transform: capitalize;
}
.cpme-order-status-completed { background: var(--cpme-success-bg); color: var(--cpme-success); }
.cpme-order-status-processing { background: var(--cpme-info-bg); color: var(--cpme-info); }
.cpme-order-status-on-hold { background: var(--cpme-warning-bg); color: var(--cpme-warning); }
.cpme-order-status-failed, .cpme-order-status-cancelled { background: var(--cpme-danger-bg); color: var(--cpme-danger); }

.cpme-history-list { margin: 12px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.cpme-history-list li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: var(--cpme-bg); border-radius: var(--cpme-radius-sm); font-size: 13px; }
.cpme-history-list li > span:last-child { margin-left: auto; color: var(--cpme-text-muted); font-size: 12px; }

/* Empty states */
.cpme-card-empty {
  text-align: center; padding: 60px 32px;
  background: var(--cpme-surface); border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius); box-shadow: var(--cpme-shadow-sm);
}
.cpme-card-icon-large {
  width: 72px; height: 72px; border-radius: 50%;
  background: var(--cpme-info-bg); color: var(--cpme-primary);
  margin: 0 auto 18px; display: flex; align-items: center; justify-content: center;
}
.cpme-card-icon-large .dashicons { font-size: 36px; width: 36px; height: 36px; }
.cpme-card-empty h2 { margin: 0 0 8px; font-size: 22px; font-weight: 700; color: var(--cpme-text); }
.cpme-card-empty p { margin: 0 0 24px; color: var(--cpme-text-soft); }
.cpme-card-empty-small {
  background: var(--cpme-bg); border: 1px dashed var(--cpme-border-strong);
  padding: 20px 24px; border-radius: var(--cpme-radius);
  text-align: center; color: var(--cpme-text-soft);
  margin-bottom: 24px;
}
.cpme-card-empty-small .dashicons { font-size: 20px; width: 20px; height: 20px; color: var(--cpme-info); margin-right: 6px; vertical-align: middle; }
.cpme-card-empty-small p { margin: 0; font-size: 14px; }
.cpme-card-empty-small h3 { margin: 0 0 10px; font-size: 14px; color: var(--cpme-text); font-weight: 600; text-transform: uppercase; letter-spacing: .5px; text-align: left; }

.cpme-info-banner {
  display: flex; gap: 10px; align-items: center;
  padding: 14px 18px; margin-bottom: 24px;
  background: var(--cpme-warning-bg); border: 1px solid #f0c890;
  border-radius: var(--cpme-radius-sm); color: var(--cpme-warning); font-size: 14px;
}
.cpme-info-banner p { margin: 0; }

/* Variante "verrouillé" : feature réservée aux adhérents actifs.
   Icône cadenas alignée en haut, body en colonne, CTA "Finaliser mon adhésion". */
.cpme-info-banner--locked {
  align-items: flex-start;
  background: linear-gradient(180deg, #f0f7ff 0%, #e7f0fc 100%);
  border-color: var(--cpme-primary);
  color: var(--cpme-text);
  padding: 18px 22px;
}
.cpme-info-banner--locked .dashicons-lock {
  font-size: 22px; width: 22px; height: 22px;
  color: var(--cpme-primary); margin-top: 2px; flex-shrink: 0;
}
.cpme-info-banner-body { display: flex; flex-direction: column; gap: 8px; flex: 1; }
.cpme-info-banner-body p:first-child { color: var(--cpme-primary); font-size: 15px; }
.cpme-info-banner-body p { color: var(--cpme-text-soft); line-height: 1.5; }
.cpme-info-banner-body .cpme-btn { align-self: flex-start; margin-top: 4px; }
.cpme-info-banner-body .cpme-btn .dashicons {
  font-size: 16px; width: 16px; height: 16px; vertical-align: middle; margin-left: 4px;
}

.cpme-btn-lg { padding: 14px 28px; font-size: 16px; }

@media (max-width: 900px) {
  .cpme-account { grid-template-columns: 1fr; }
  .cpme-account-sidebar { position: static; }
  .cpme-account-nav { flex-direction: row; flex-wrap: wrap; }
  .cpme-tab-link { flex: 1; min-width: 140px; }
  .cpme-tab-external { border-top: 0; margin-top: 0; padding-top: 10px; }
}

/* Anciens styles dashboard supprimés (cpme-dashboard, cpme-state-card, etc.)
   remplacés par cpme-account.* ci-dessus. */
.cpme-dashboard {
  max-width: 920px;
  margin: 0 auto;
  padding: 24px 16px 64px;
}

/* ============================================================
   GATING page Appels d'Offres (accès réservé adhérents actifs)
   ============================================================ */

.cpme-ao-gate {
  max-width: 720px;
  margin: 40px auto;
  padding: 0 16px;
  font-family: var(--cpme-font);
}
.cpme-ao-gate-card {
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  padding: 48px 40px;
  text-align: center;
  box-shadow: var(--cpme-shadow);
}
.cpme-ao-gate-icon {
  width: 80px; height: 80px;
  margin: 0 auto 24px;
  border-radius: 50%;
  background: var(--cpme-info-bg);
  color: var(--cpme-primary);
  display: flex; align-items: center; justify-content: center;
}
.cpme-ao-gate-icon .dashicons { font-size: 40px; width: 40px; height: 40px; }
.cpme-ao-gate-card h2 {
  margin: 0 0 12px;
  font-size: 26px; font-weight: 700;
  color: var(--cpme-primary); letter-spacing: -0.3px;
}
.cpme-ao-gate-card p {
  margin: 0 0 24px;
  color: var(--cpme-text-soft);
  font-size: 16px; line-height: 1.6;
  max-width: 520px; margin-left: auto; margin-right: auto;
}
.cpme-ao-gate-actions {
  display: flex; gap: 12px; justify-content: center; flex-wrap: wrap;
  margin-bottom: 28px;
}
.cpme-ao-gate-info {
  margin-top: 24px !important;
  padding: 14px 18px;
  background: var(--cpme-bg);
  border-radius: var(--cpme-radius-sm);
  font-size: 13px !important;
  color: var(--cpme-text-muted) !important;
}
.cpme-ao-gate-info .dashicons { color: var(--cpme-info); margin-right: 4px; }

/* Couleur d'icône selon l'état (urgence visuelle) */
.cpme-ao-gate[data-state="a_payer"] .cpme-ao-gate-icon { background: var(--cpme-success-bg); color: var(--cpme-success); }
.cpme-ao-gate[data-state="correction"] .cpme-ao-gate-icon,
.cpme-ao-gate[data-state="expire"] .cpme-ao-gate-icon { background: var(--cpme-warning-bg); color: var(--cpme-warning); }
.cpme-ao-gate[data-state="refuse"] .cpme-ao-gate-icon { background: var(--cpme-danger-bg); color: var(--cpme-danger); }

/* ============================================================
   OVERRIDE WooCommerce My-Account
   Layout sidebar + content, look pro aligné avec admin CPME.
   ============================================================ */

.woocommerce-account .woocommerce {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 16px 64px;
  font-family: var(--cpme-font);
  color: var(--cpme-text);
}

.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none !important;
  width: 260px !important;
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  padding: 18px 12px;
  box-shadow: var(--cpme-shadow-sm);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li {
  margin: 0 !important; padding: 0 !important;
  list-style: none !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li::before,
.woocommerce-account .woocommerce-MyAccount-navigation ul li::marker { content: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: flex !important;
  align-items: center;
  gap: 10px;
  padding: 11px 14px !important;
  border-radius: var(--cpme-radius-sm) !important;
  text-decoration: none !important;
  color: var(--cpme-text-soft) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  font-family: var(--cpme-font) !important;
  background: transparent !important;
  border: 0 !important;
  transition: background .15s, color .15s;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
  background: var(--cpme-bg) !important;
  color: var(--cpme-text) !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--cpme-info-bg) !important;
  color: var(--cpme-primary) !important;
  font-weight: 600 !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
  font-family: dashicons !important;
  font-size: 18px;
  width: 18px; height: 18px;
  color: var(--cpme-text-muted);
  font-weight: 400;
  vertical-align: middle;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a::before { color: var(--cpme-primary); }

/* Icônes Dashicons pour chaque endpoint */
.woocommerce-account .woocommerce-MyAccount-navigation-link--mon-adhesion a::before        { content: "\f226"; }   /* dashboard */
.woocommerce-account .woocommerce-MyAccount-navigation-link--mon-dossier a::before         { content: "\f338"; }   /* id-alt */
.woocommerce-account .woocommerce-MyAccount-navigation-link--mon-annuaire a::before        { content: "\f307"; }   /* groups */
.woocommerce-account .woocommerce-MyAccount-navigation-link--cpme-appels-offres a::before  { content: "\f488"; }   /* megaphone */
.woocommerce-account .woocommerce-MyAccount-navigation-link--orders a::before              { content: "\f174"; }   /* cart */
.woocommerce-account .woocommerce-MyAccount-navigation-link--edit-address a::before        { content: "\f217"; }   /* location-alt */
.woocommerce-account .woocommerce-MyAccount-navigation-link--edit-account a::before        { content: "\f336"; }   /* id */
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a::before     { content: "\f332"; color: var(--cpme-text-muted); }
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a:hover       { color: var(--cpme-danger) !important; background: var(--cpme-danger-bg) !important; }
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a:hover::before { color: var(--cpme-danger); }

.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important;
  width: calc(100% - 290px) !important;
  margin-left: 290px !important;
}

/* Conteneur global en grid + zones nommées pour garantir l'ordre (nav à gauche). */
@supports (display: grid) {
  .woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 260px 1fr;
    grid-template-areas: "nav main";
    gap: 24px;
    align-items: start;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation {
    grid-area: nav;
    position: sticky; top: 24px;
  }
  .woocommerce-account .woocommerce-MyAccount-content { grid-area: main; }
}

/* Titre principal au-dessus du content */
.woocommerce-account .woocommerce-MyAccount-content > h2,
.woocommerce-account .woocommerce-MyAccount-content > h1 {
  margin: 0 0 16px;
  font-size: 24px; font-weight: 700; color: var(--cpme-primary);
}

/* Notice "Hello User" WC = on cache et on utilise nos titres */
.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
  color: var(--cpme-text-soft); margin: 0 0 18px;
}

/* Table commandes WC */
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-orders-table--orders {
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  overflow: hidden;
  border-collapse: collapse !important;
  width: 100%;
  box-shadow: var(--cpme-shadow-sm);
}
.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .woocommerce-orders-table td {
  padding: 12px 14px !important;
  border-bottom: 1px solid var(--cpme-border) !important;
  font-size: 13px;
}
.woocommerce-account .woocommerce-orders-table thead th {
  background: var(--cpme-bg);
  color: var(--cpme-text-muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .4px;
  font-weight: 600;
}

/* Forms WC (édition compte, adresses) */
.woocommerce-account form .woocommerce-FormRow {
  margin-bottom: 14px;
}
.woocommerce-account form input[type="text"],
.woocommerce-account form input[type="email"],
.woocommerce-account form input[type="tel"],
.woocommerce-account form input[type="password"],
.woocommerce-account form select,
.woocommerce-account form textarea {
  padding: 10px 12px !important;
  border: 1px solid var(--cpme-border-strong) !important;
  border-radius: var(--cpme-radius-sm) !important;
  font-size: 14px !important;
  font-family: var(--cpme-font) !important;
  background: #fff !important;
}
.woocommerce-account form input:focus,
.woocommerce-account form select:focus,
.woocommerce-account form textarea:focus {
  outline: 0 !important;
  border-color: var(--cpme-primary) !important;
  box-shadow: 0 0 0 3px rgba(26, 61, 107, .15) !important;
}
.woocommerce-account form .button,
.woocommerce-account .woocommerce-Button {
  background: var(--cpme-primary) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: var(--cpme-radius-sm) !important;
  padding: 12px 24px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  font-family: var(--cpme-font) !important;
  cursor: pointer;
  transition: background .15s;
}
.woocommerce-account form .button:hover,
.woocommerce-account .woocommerce-Button:hover {
  background: var(--cpme-primary-dark) !important;
}

.cpme-page-h1 {
  margin: 0 0 4px !important;
  font-size: 28px; font-weight: 700;
  color: var(--cpme-primary); letter-spacing: -0.3px;
}

@media (max-width: 900px) {
  .woocommerce-account .woocommerce {
    grid-template-columns: 1fr !important;
    grid-template-areas: "nav" "main" !important;
  }
  .woocommerce-account .woocommerce-MyAccount-navigation { position: static; }
}

.cpme-dash-header {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 28px; gap: 16px; flex-wrap: wrap;
}
.cpme-dash-header-left h1 {
  margin: 0 0 4px;
  font-size: 28px; font-weight: 700;
  color: var(--cpme-primary); letter-spacing: -0.3px;
}
.cpme-dash-sub { margin: 0; color: var(--cpme-text-soft); font-size: 14px; }
.cpme-dash-header-right { display: flex; gap: 18px; }

/* Carte d'état principal */
.cpme-state-card {
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-left: 5px solid var(--cpme-state-color, var(--cpme-primary));
  border-radius: var(--cpme-radius);
  box-shadow: var(--cpme-shadow);
  margin-bottom: 20px;
  overflow: hidden;
}
.cpme-state-card-header {
  padding: 16px 24px 0;
  display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
}
.cpme-state-pill {
  display: inline-block;
  padding: 4px 12px; border-radius: 999px;
  background: var(--cpme-state-color, var(--cpme-primary));
  color: #fff; font-size: 12px; font-weight: 600;
}
.cpme-state-entity {
  font-size: 15px; color: var(--cpme-text);
}
.cpme-state-card-body { padding: 16px 24px 24px; }
.cpme-state-card-body h2 {
  margin: 0 0 8px;
  font-size: 22px; font-weight: 700;
  color: var(--cpme-text); letter-spacing: -0.2px;
}
.cpme-state-card-body p { margin: 8px 0 16px; color: var(--cpme-text-soft); font-size: 15px; }
.cpme-state-card-body p:last-child { margin-bottom: 0; }

.cpme-state-info { --cpme-state-color: var(--cpme-info); }

/* Correction message dans carte d'état */
.cpme-correction-message {
  background: var(--cpme-warning-bg);
  border: 1px solid #f0c890;
  border-radius: var(--cpme-radius-sm);
  padding: 14px 16px; margin: 8px 0 16px;
  font-size: 14px; line-height: 1.55;
}
.cpme-correction-message strong { display: block; margin-bottom: 4px; color: var(--cpme-warning); }
.cpme-correction-message em { font-style: normal; color: var(--cpme-text); }

/* KPI bar */
.cpme-kpis {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px; margin-bottom: 20px;
}
.cpme-kpi {
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  padding: 16px 18px;
  display: flex; gap: 12px; align-items: center;
  box-shadow: var(--cpme-shadow-sm);
}
.cpme-kpi-icon {
  width: 40px; height: 40px; border-radius: 10px;
  background: var(--cpme-info-bg);
  color: var(--cpme-primary);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.cpme-kpi-icon .dashicons { font-size: 22px; width: 22px; height: 22px; }
.cpme-kpi-body { min-width: 0; }
.cpme-kpi-label {
  display: block;
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--cpme-text-muted); font-weight: 600;
}
.cpme-kpi-value {
  display: block; font-size: 16px; font-weight: 600;
  color: var(--cpme-text);
}

/* Récap card */
.cpme-recap-card,
.cpme-payment-card,
.cpme-account-card {
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  padding: 24px 28px;
  margin-bottom: 20px;
  box-shadow: var(--cpme-shadow-sm);
}
.cpme-recap-header, .cpme-payment-card header, .cpme-account-card header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 18px; gap: 12px; flex-wrap: wrap;
}
.cpme-recap-header h2,
.cpme-payment-card h2,
.cpme-account-card h2 {
  margin: 0; font-size: 18px; font-weight: 600;
  color: var(--cpme-primary);
}
.cpme-recap-locked {
  color: var(--cpme-text-muted); font-size: 12px; font-style: italic;
  max-width: 50%; text-align: right;
}
.cpme-recap-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
}
.cpme-recap-section h3 {
  margin: 0 0 10px;
  font-size: 12px; font-weight: 600;
  color: var(--cpme-text-muted);
  text-transform: uppercase; letter-spacing: .6px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--cpme-border);
}
.cpme-recap-section dl {
  margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 6px 16px;
}
.cpme-recap-section dt {
  font-size: 13px; color: var(--cpme-text-soft); font-weight: 500;
}
.cpme-recap-section dd {
  margin: 0; font-size: 13px; color: var(--cpme-text); font-weight: 600;
}
.cpme-recap-empty { color: var(--cpme-text-muted); font-style: italic; font-weight: 400; }

/* Payment card */
.cpme-payment-detail {
  display: grid; grid-template-columns: auto 1fr; gap: 8px 24px; margin: 0;
}
.cpme-payment-detail dt {
  font-size: 12px; color: var(--cpme-text-muted); text-transform: uppercase;
  letter-spacing: .5px; font-weight: 600; padding-top: 2px;
}
.cpme-payment-detail dd { margin: 0; color: var(--cpme-text); font-size: 14px; }
.cpme-payment-detail dd code {
  background: var(--cpme-bg); padding: 2px 8px; border-radius: 4px;
  font-size: 13px; border: 1px solid var(--cpme-border);
}

.cpme-account-card p {
  margin: 0 0 16px;
  font-size: 14px; color: var(--cpme-text-soft); line-height: 1.6;
}

/* ============================================================
   FORMULAIRE DOSSIER MULTI-ÉTAPES
   ============================================================ */
.cpme-dossier-wrap {
  max-width: 920px; margin: 0 auto; padding: 24px 16px 64px;
}

/* Stepper */
.cpme-stepper {
  display: flex; gap: 4px;
  margin-bottom: 28px;
  overflow-x: auto; padding-bottom: 6px;
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  padding: 8px;
  box-shadow: var(--cpme-shadow-sm);
}
.cpme-step {
  flex: 1; min-width: 110px;
  padding: 12px 14px;
  background: transparent;
  border: 0; border-radius: var(--cpme-radius-sm);
  font-size: 13px; font-weight: 600;
  color: var(--cpme-text-muted);
  cursor: pointer; text-align: left;
  font-family: var(--cpme-font);
  transition: background .15s, color .15s;
}
.cpme-step:hover { background: var(--cpme-bg); color: var(--cpme-text); }
.cpme-step.active {
  background: var(--cpme-primary); color: #fff;
  box-shadow: 0 2px 6px rgba(26, 61, 107, .25);
}
.cpme-step.completed { background: var(--cpme-success); color: #fff; }

/* Step pane */
.cpme-step-pane {
  display: none;
  background: var(--cpme-surface);
  border: 1px solid var(--cpme-border);
  border-radius: var(--cpme-radius);
  padding: 28px 32px;
  box-shadow: var(--cpme-shadow);
}
.cpme-step-pane.active { display: block; }
.cpme-step-pane h3 {
  margin: 0 0 20px;
  font-size: 20px; font-weight: 700;
  color: var(--cpme-primary); letter-spacing: -0.2px;
}
.cpme-step-pane > .cpme-grid-2,
.cpme-step-pane > .cpme-grid-3 { gap: 18px; }

.cpme-step-nav {
  display: flex; justify-content: space-between; gap: 12px;
  margin-top: 28px; padding-top: 20px;
  border-top: 1px solid var(--cpme-border);
}

/* Preview cotisation */
.cpme-cotisation-preview {
  margin: 20px 0;
  padding: 18px 20px;
  background: var(--cpme-info-bg);
  border: 1px solid #b9d2ec;
  border-radius: var(--cpme-radius);
}
.cpme-preview-label {
  display: block;
  font-size: 12px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--cpme-text-soft); font-weight: 600;
}
.cpme-preview-amount {
  font-size: 28px; font-weight: 700;
  color: var(--cpme-primary); line-height: 1.2;
  display: block; margin: 6px 0 4px;
}
.cpme-preview-detail {
  display: block; font-size: 12px; color: var(--cpme-text-muted);
}

/* Récap final */
.cpme-recap {
  background: var(--cpme-bg);
  padding: 20px 22px;
  border-radius: var(--cpme-radius-sm);
  margin-bottom: 20px;
  border: 1px solid var(--cpme-border);
}
.cpme-recap dl {
  display: grid; grid-template-columns: auto 1fr;
  gap: 8px 20px; margin: 0;
}
.cpme-recap dt {
  font-weight: 600; color: var(--cpme-text-soft);
  font-size: 13px;
}
.cpme-recap dd {
  margin: 0; color: var(--cpme-text); font-size: 14px;
}

/* États génériques (info/warning/success) */
.cpme-info {
  background: var(--cpme-info-bg);
  border-color: #b9d2ec;
}
.cpme-warning { background: var(--cpme-warning-bg); border-color: #f0c890; }
.cpme-success { background: var(--cpme-success-bg); border-color: #b6e2c8; }
.cpme-cta { background: var(--cpme-bg); }
.cpme-pill {
  display: inline-block; padding: 4px 12px;
  border-radius: 999px; color: #fff;
  font-size: 12px; font-weight: 600;
}

/* Responsive */
@media (max-width: 700px) {
  .cpme-grid-2, .cpme-grid-3 { grid-template-columns: 1fr; }
  .cpme-stepper { flex-wrap: wrap; }
  .cpme-step { min-width: auto; }
  .cpme-recap-grid { grid-template-columns: 1fr; }
  .cpme-card, .cpme-step-pane { padding: 20px 22px; }
  .cpme-recap-card, .cpme-payment-card, .cpme-account-card { padding: 20px; }
  .cpme-state-card-body { padding: 16px 20px 20px; }
  .cpme-state-card-header { padding: 14px 20px 0; }
  .cpme-recap-header { flex-direction: column; align-items: flex-start; }
  .cpme-recap-locked { text-align: left; max-width: 100%; }
}


/* === Pré-inscription : bloc effectifs payment_first === */
.cpme-effectifs-block {
  background:#f8f9fb; border:1px solid #e1e5ed; border-radius:8px;
  padding:16px; margin:14px 0 8px;
}
.cpme-effectifs-block legend {
  font-weight:600; padding:0 6px; color:var(--cpme-primary, #114d61);
}
.cpme-effectifs-block .cpme-hint-warn {
  background:#fff8e1; border-left:3px solid #f0c93a;
  padding:8px 12px; margin:0 0 12px; font-size:12px; color:#6b4f00;
  border-radius:0 4px 4px 0;
}
.cpme-effectifs-empty { color:#999; font-size:12px; font-style:italic; padding:6px 0; }

/* Bouton renvoi mail paiement adhérent */
.cpme-btn-resend-payment { display:inline-flex; align-items:center; gap:6px; margin-left:8px; }
.cpme-btn-resend-payment .dashicons { font-size:16px; width:16px; height:16px; }
.cpme-resend-feedback { margin-top:8px; font-size:13px; color:#666; min-height:20px; }
.cpme-resend-feedback.is-success { color:#1b5e20; }
.cpme-resend-feedback.is-error { color:var(--cpme-secondary, #a81815); }


/* === Correction partielle : champs verrouillés === */
.cpme-correction-fields-list {
  margin: 8px 0 4px 16px;
  padding: 0;
  list-style: disc;
}
.cpme-correction-fields-list li {
  margin: 0 0 3px;
  font-size: 14px;
  color: #444;
}
.cpme-field-locked {
  opacity: 0.55;
  position: relative;
}
.cpme-field-locked input,
.cpme-field-locked select,
.cpme-field-locked textarea {
  background: #f4f5f7 !important;
  color: #888 !important;
  cursor: not-allowed !important;
  border-style: dashed !important;
}
.cpme-field-locked::after {
  content: "🔒";
  position: absolute;
  right: 8px;
  top: 30px;
  font-size: 14px;
  opacity: 0.7;
  pointer-events: none;
}
.cpme-admin-correction-section .cpme-correction-fields {
  margin: 10px 0;
}


/* === Page /my-account/ login : layout 2 colonnes + CTA adhésion === */
.cpme-login-wrap {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 28px;
  max-width: 980px;
  margin: 0 auto;
  padding: 24px 0;
  align-items: start;
}
.cpme-login-col { min-width: 0; }
.cpme-login-form-col { background: #fff; padding: 28px 32px; border-radius: 12px; box-shadow: 0 1px 3px rgba(15,23,42,.05); }
.cpme-login-title { color: var(--cpme-primary, #114d61); font-size: 22px; margin: 0 0 6px; }
.cpme-login-sub { color: #5a6573; margin: 0 0 20px; font-size: 14px; line-height: 1.5; }

/* WC form login : améliore l'allure (champs, bouton, hauteurs) */
.cpme-login-form-col .woocommerce-form-login__rememberme { display: block; margin: 12px 0; }
.cpme-login-form-col .woocommerce-form-row { margin-bottom: 14px; }
.cpme-login-form-col .woocommerce-form-row > label { display: block; font-size: 13px; color: var(--cpme-primary, #114d61); font-weight: 500; margin-bottom: 4px; }
.cpme-login-form-col input[type="text"],
.cpme-login-form-col input[type="email"],
.cpme-login-form-col input[type="password"] {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  font-size: 14px;
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
}
.cpme-login-form-col input[type="text"]:focus,
.cpme-login-form-col input[type="email"]:focus,
.cpme-login-form-col input[type="password"]:focus {
  outline: none;
  border-color: var(--cpme-primary, #114d61);
  box-shadow: 0 0 0 3px rgba(26, 61, 107, .12);
}
.cpme-login-form-col button[type="submit"],
.cpme-login-form-col .woocommerce-button {
  background: var(--cpme-primary, #114d61);
  color: #fff;
  border: 0;
  padding: 12px 24px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: background .15s;
}
.cpme-login-form-col button[type="submit"]:hover { background: var(--cpme-primary-dark, #0d3e4f); }
.cpme-login-form-col .lost_password a { color: #5a6573; font-size: 13px; text-decoration: underline; }

/* Encart CTA "Pas encore adhérent ?" */
.cpme-login-cta-card {
  background: linear-gradient(180deg, #f8f9fb 0%, #fff 100%);
  border: 1px solid #e1e5ed;
  border-radius: 12px;
  padding: 24px;
  text-align: center;
}
.cpme-login-cta-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--cpme-primary, #114d61); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  margin: 0 auto 12px;
}
.cpme-login-cta-icon .dashicons { font-size: 28px; width: 28px; height: 28px; }
.cpme-login-cta-card h3 { color: var(--cpme-primary, #114d61); font-size: 18px; margin: 0 0 8px; }
.cpme-login-cta-card p { color: #5a6573; font-size: 13px; line-height: 1.55; margin: 0 0 14px; }
.cpme-login-cta-bullets {
  list-style: none; padding: 0; margin: 0 0 18px;
  text-align: left;
}
.cpme-login-cta-bullets li {
  padding: 4px 0 4px 22px;
  position: relative;
  color: var(--cpme-primary, #114d61);
  font-size: 13px;
}
.cpme-login-cta-bullets li::before {
  content: "✓";
  position: absolute; left: 0; top: 4px;
  color: #2ecc71;
  font-weight: 700;
}
.cpme-btn-block { display: block; width: 100%; text-align: center; }
.cpme-login-cta-hint {
  font-size: 11px; color: #888;
  font-style: italic;
  margin: 12px 0 0 !important;
  padding-top: 12px;
  border-top: 1px dashed #d1d5db;
}

@media (max-width: 820px) {
  .cpme-login-wrap { grid-template-columns: 1fr; }
}

/* Override WC : cache le titre H2 standard "Connexion" (notre wrap a son propre H2) */
.cpme-login-form-col + .cpme-login-form-col h2,
.cpme-login-form-col > h2:first-child { display: none; }
.u-columns > .col-2 { display: none !important; }  /* cache colonne register WC */


/* === Écran de confirmation post pré-inscription === */
.cpme-preinscription-success {
  max-width: 560px;
  margin: 16px auto;
  padding: 40px 32px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 6px 20px rgba(15,23,42,.08);
  text-align: center;
  animation: cpme-success-pop .4s ease-out;
}
@keyframes cpme-success-pop {
  0%   { opacity: 0; transform: translateY(10px) scale(.98); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
.cpme-success-icon { margin-bottom: 14px; }
.cpme-success-icon svg { display: inline-block; }
.cpme-success-title {
  color: var(--cpme-primary, #114d61);
  font-size: 26px;
  margin: 0 0 12px;
  font-weight: 700;
}
.cpme-success-lead {
  font-size: 16px;
  color: var(--cpme-primary, #114d61);
  margin: 0 0 8px;
  line-height: 1.5;
}
.cpme-success-lead strong { color: var(--cpme-primary, #114d61); }
.cpme-success-step {
  font-size: 14px;
  color: #5a6573;
  margin: 0 0 24px;
  line-height: 1.5;
}
.cpme-success-info {
  background: #f8f9fb;
  border-radius: 10px;
  padding: 18px 22px;
  margin: 0 0 24px;
  text-align: left;
}
.cpme-success-info-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid #e1e5ed;
}
.cpme-success-info-row:last-child { border-bottom: 0; }
.cpme-success-info-row .dashicons {
  flex-shrink: 0;
  font-size: 18px;
  width: 18px;
  height: 18px;
  color: var(--cpme-primary, #114d61);
  margin-top: 2px;
}
.cpme-success-info-row strong {
  display: block;
  color: var(--cpme-primary, #114d61);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 2px;
}
.cpme-success-info-row span {
  display: block;
  color: #5a6573;
  font-size: 13px;
  line-height: 1.4;
}
.cpme-success-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.cpme-success-actions .cpme-btn { min-width: 240px; }
.cpme-success-contact {
  color: #5a6573;
  font-size: 13px;
  text-decoration: underline;
  margin-top: 4px;
}
.cpme-success-contact:hover { color: var(--cpme-primary, #114d61); }

@media (max-width: 600px) {
  .cpme-preinscription-success { padding: 28px 20px; margin: 8px; }
  .cpme-success-title { font-size: 22px; }
}


/* === RIDET lookup : états visibles === */
.cpme-ridet-status {
  margin-top: 6px;
  font-size: 13px;
  border-radius: 6px;
  padding: 8px 12px;
  background: #f8f9fb;
  border: 1px solid #e1e5ed;
  display: flex;
  align-items: center;
  gap: 8px;
}
.cpme-ridet-status-loading { display: flex; align-items: center; gap: 8px; color: var(--cpme-primary, #114d61); }
.cpme-ridet-status-found { display: flex; align-items: center; gap: 8px; color: #2e7d32; }
.cpme-ridet-status-found .dashicons { color: #2ecc71; }
.cpme-ridet-status-empty { display: flex; align-items: center; gap: 8px; color: #6b4f00; flex-wrap: wrap; }
.cpme-ridet-status-empty .dashicons { color: #f0c93a; }

.cpme-ridet-spin {
  width: 14px; height: 14px;
  border: 2px solid #cdd3dc;
  border-top-color: var(--cpme-primary, #114d61);
  border-radius: 50%;
  animation: cpme-spin 0.8s linear infinite;
  display: inline-block;
}
@keyframes cpme-spin { to { transform: rotate(360deg); } }

/* Lien "Saisir manuellement" */
.cpme-ridet-link {
  background: transparent;
  border: 0;
  color: var(--cpme-primary, #114d61);
  text-decoration: underline;
  font-size: 13px;
  cursor: pointer;
  padding: 0;
  font-weight: 500;
}
.cpme-ridet-link:hover { color: var(--cpme-primary-dark, #0d3e4f); }

.cpme-ridet-source-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 6px;
  gap: 8px;
}

/* Spinner intégré au champ texte */
.cpme-ridet-input-wrap { position: relative; }
.cpme-ridet-spinner {
  position: absolute;
  right: 12px;
  top: 50%;
  width: 16px;
  height: 16px;
  margin-top: -8px;
  border: 2px solid #cdd3dc;
  border-top-color: var(--cpme-primary, #114d61);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.cpme-ridet-spinner.is-loading {
  opacity: 1;
  animation: cpme-spin 0.8s linear infinite;
}

/* Hint sous le champ RIDET manuel */
.cpme-field-hint {
  display: block;
  color: #6b7280;
  font-size: 12px;
  margin-top: 4px;
  font-style: italic;
  line-height: 1.4;
}

/* Mode "saisie manuelle" : grise le bandeau source */
.cpme-ridet-manual-mode .cpme-ridet-status { display: none; }
.cpme-ridet-manual-mode .cpme-ridet-suggestions { display: none; }


/* === RIDET : champ + bouton "Rechercher" === */
.cpme-ridet-search-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
}
.cpme-ridet-search-row input[type="text"] {
  flex: 1;
  min-width: 0;
}
.cpme-btn-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 18px;
  background: var(--cpme-primary, #114d61);
  color: #fff;
  border: 0;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s, opacity .15s;
  min-width: 130px;
}
.cpme-btn-search:hover:not(:disabled) { background: var(--cpme-primary-dark, #0d3e4f); }
.cpme-btn-search:disabled { cursor: wait; opacity: .85; }
.cpme-btn-search .dashicons { font-size: 16px; width: 16px; height: 16px; }
.cpme-btn-search-default,
.cpme-btn-search-loading {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.cpme-ridet-status-selected {
  display: flex; align-items: center; gap: 8px;
  color: #2e7d32;
  flex-wrap: wrap;
}
.cpme-ridet-status-selected .dashicons { color: #2ecc71; }

@media (max-width: 600px) {
  .cpme-ridet-search-row { flex-direction: column; }
  .cpme-btn-search { width: 100%; padding: 10px 18px; }
}


/* === Notice "login required" : 2 cartes côte à côte === */
.cpme-login-required {
  max-width: 880px;
  margin: 20px auto;
  padding: 30px 24px;
  text-align: center;
}
.cpme-login-required-icon {
  width: 64px; height: 64px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: #f0f4f9;
  display: flex; align-items: center; justify-content: center;
  color: var(--cpme-primary, #114d61);
}
.cpme-login-required-icon .dashicons { font-size: 32px; width: 32px; height: 32px; }
.cpme-login-required-title { color: var(--cpme-primary, #114d61); font-size: 24px; margin: 0 0 8px; font-weight: 700; }
.cpme-login-required-sub { color: #5a6573; font-size: 15px; margin: 0 auto 28px; max-width: 560px; line-height: 1.55; }

.cpme-login-required-cards {
  display: grid; gap: 20px;
  grid-template-columns: repeat(2, 1fr);
  max-width: 720px; margin: 0 auto;
}
.cpme-login-card {
  background: #fff; border: 1px solid #e1e5ed;
  border-radius: 12px; padding: 26px 22px;
  text-align: center;
  transition: box-shadow .15s, transform .15s;
}
.cpme-login-card:hover { box-shadow: 0 8px 20px rgba(15,23,42,.08); transform: translateY(-1px); }
.cpme-login-card-primary { border-color: var(--cpme-primary, #114d61); box-shadow: 0 2px 6px rgba(26,61,107,.08); }
.cpme-login-card-icon {
  width: 48px; height: 48px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: #f0f4f9; color: var(--cpme-primary, #114d61);
  display: flex; align-items: center; justify-content: center;
}
.cpme-login-card-icon .dashicons { font-size: 24px; width: 24px; height: 24px; }
.cpme-login-card h3 { color: var(--cpme-primary, #114d61); font-size: 17px; margin: 0 0 8px; font-weight: 600; }
.cpme-login-card p { color: #5a6573; font-size: 13px; margin: 0 0 18px; line-height: 1.5; }

/* Boutons : couleurs lisibles, primary plein bleu, outline = bordure bleue */
.cpme-btn {
  display: inline-block;
  padding: 11px 22px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none !important;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all .15s;
  line-height: 1.2;
  text-align: center;
}
.cpme-btn-primary,
a.cpme-btn-primary {
  background: var(--cpme-primary, #114d61) !important;
  color: #fff !important;
  border-color: var(--cpme-primary, #114d61);
}
.cpme-btn-primary:hover,
a.cpme-btn-primary:hover { background: var(--cpme-primary-dark, #0d3e4f) !important; border-color: var(--cpme-primary-dark, #0d3e4f); }
.cpme-btn-outline,
a.cpme-btn-outline {
  background: #fff !important;
  color: var(--cpme-primary, #114d61) !important;
  border: 2px solid var(--cpme-primary, #114d61) !important;
}
.cpme-btn-outline:hover,
a.cpme-btn-outline:hover { background: #f0f4f9 !important; }
.cpme-btn-secondary,
a.cpme-btn-secondary {
  background: #f4f6f8 !important;
  color: var(--cpme-primary, #114d61) !important;
  border-color: #e1e5ed;
}
.cpme-btn-secondary:hover,
a.cpme-btn-secondary:hover { background: #e1e5ed !important; }

@media (max-width: 700px) {
  .cpme-login-required-cards { grid-template-columns: 1fr; }
  .cpme-login-required-title { font-size: 20px; }
}


/* === Native inputs (date picker, checkbox, radio) aux couleurs CPME === */
.cpme-form,
.cpme-dossier-wrap,
.cpme-preinscription,
.cpme-account,
.cpme-login-form-col {
  accent-color: var(--cpme-primary);
}
/* Le date picker natif Chrome/Safari prend la couleur via color-scheme.
   On force light scheme pour éviter le mode sombre par défaut sur certains OS. */
.cpme-form input[type="date"],
.cpme-form input[type="datetime-local"],
.cpme-form input[type="time"] {
  color-scheme: light;
}


/* === My-account login (nouvelle version, layout vertical robuste) === */
/* Désactive les anciennes règles grid 2-col qui cassaient le layout */
.cpme-login-wrap { display: block !important; grid-template-columns: none !important; }
.cpme-login-col { display: block !important; }

/* Intro + CTA injectés via hooks WC */
.cpme-myaccount-intro {
  max-width: 520px;
  margin: 16px auto 18px;
  text-align: center;
}
.cpme-myaccount-title {
  color: var(--cpme-primary, #114d61);
  font-size: 26px;
  font-weight: 700;
  margin: 0 0 8px;
}
.cpme-myaccount-sub {
  color: #5a6573;
  font-size: 15px;
  line-height: 1.55;
  margin: 0;
}

/* Form WC standard, restylé */
.woocommerce-form-login,
form.login {
  max-width: 520px !important;
  margin: 0 auto 28px !important;
  background: #fff;
  padding: 28px 32px;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(15,23,42,.06);
  border: 1px solid #e1e5ed;
}
.woocommerce-form-login input[type="text"],
.woocommerce-form-login input[type="email"],
.woocommerce-form-login input[type="password"] {
  width: 100% !important;
  padding: 10px 12px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 6px !important;
  font-size: 14px;
}
.woocommerce-form-login input:focus {
  outline: none !important;
  border-color: var(--cpme-primary, #114d61) !important;
  box-shadow: 0 0 0 3px rgba(17, 77, 97, .12) !important;
}
.woocommerce-form-login .woocommerce-button,
.woocommerce-form-login button[type="submit"] {
  background: var(--cpme-primary, #114d61) !important;
  color: #fff !important;
  border: 0 !important;
  padding: 12px 24px !important;
  border-radius: 6px !important;
  font-weight: 600;
  cursor: pointer;
}
.woocommerce-form-login .woocommerce-button:hover {
  background: var(--cpme-primary-dark, #0d3e4f) !important;
}
.woocommerce-form-login .lost_password a {
  color: #5a6573;
  text-decoration: underline;
  font-size: 13px;
}

/* CTA "Pas encore adhérent" en dessous, pleine largeur */
.cpme-myaccount-cta {
  max-width: 520px;
  margin: 0 auto 24px;
}
.cpme-myaccount-cta-card {
  background: linear-gradient(180deg, #f8f9fb 0%, #fff 100%);
  border: 1px solid #e1e5ed;
  border-radius: 12px;
  padding: 24px 28px;
  text-align: center;
}
.cpme-myaccount-cta-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--cpme-primary, #114d61); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  margin: 0 auto 14px;
}
.cpme-myaccount-cta-icon .dashicons {
  font-size: 28px; width: 28px; height: 28px;
}
.cpme-myaccount-cta-card h3 {
  color: var(--cpme-primary, #114d61);
  font-size: 18px;
  margin: 0 0 8px;
  font-weight: 700;
}
.cpme-myaccount-cta-card p {
  color: #5a6573;
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 14px;
}
.cpme-myaccount-cta-bullets {
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
  text-align: left;
  max-width: 320px;
  margin-left: auto;
  margin-right: auto;
}
.cpme-myaccount-cta-bullets li {
  padding: 4px 0 4px 22px;
  position: relative;
  color: var(--cpme-primary, #114d61);
  font-size: 13px;
}
.cpme-myaccount-cta-bullets li::before {
  content: "✓";
  position: absolute; left: 0; top: 4px;
  color: #2ecc71;
  font-weight: 700;
}

/* On cache la colonne "Register" WC (notre tunnel CPME prend le relais) */
.u-columns .col-2,
.woocommerce-form-register,
.woocommerce-account .u-columns .col-2 {
  display: none !important;
}
.u-columns .col-1,
.woocommerce-account .u-columns .col-1 {
  width: 100% !important;
  max-width: 520px !important;
  margin: 0 auto !important;
  float: none !important;
}


/* ================================================================
   My-account login (V2) — header centré + grid 2 col égales
   Override de toutes les règles précédentes (ordre de cascade gagne).
   ================================================================ */
/* Cache le titre H1 par défaut WC/theme sur la page my-account déconnectée */
body.woocommerce-account:not(.logged-in) .page-title,
body.woocommerce-account:not(.logged-in) .entry-title,
body.woocommerce-account:not(.logged-in) h1.entry-title,
body.woocommerce-account:not(.logged-in) header.entry-header { display: none !important; }

/* Wrapper pleine largeur centré */
.cpme-myaccount-page {
  max-width: 980px;
  margin: 24px auto;
  padding: 0 16px;
}

/* Header centré */
.cpme-myaccount-header {
  text-align: center;
  margin: 0 auto 28px;
  max-width: 640px;
}
.cpme-myaccount-header .cpme-myaccount-title {
  color: var(--cpme-primary, #114d61);
  font-size: 26px;
  font-weight: 700;
  margin: 0 0 8px;
  line-height: 1.2;
}
.cpme-myaccount-header .cpme-myaccount-sub {
  color: #5a6573;
  font-size: 15px;
  line-height: 1.55;
  margin: 0;
}

/* Grid 2 colonnes égales */
.cpme-myaccount-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: stretch;
}
.cpme-myaccount-col {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* Col login : form WC dedans, fond blanc, padding */
.cpme-myaccount-col-login form.woocommerce-form-login,
.cpme-myaccount-col-login form.login {
  background: #fff !important;
  padding: 28px !important;
  border-radius: 12px !important;
  border: 1px solid #e1e5ed !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.06) !important;
  margin: 0 !important;
  max-width: none !important;
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* Hide WC default "Connexion" h2 inside form (we have our own header above) */
.cpme-myaccount-col-login form.login > h2:first-child,
.cpme-myaccount-col-login .u-column1 > h2,
.cpme-myaccount-col-login .col-1 > h2 { display: none !important; }

/* Col CTA : carte */
.cpme-myaccount-cta-card {
  background: linear-gradient(180deg, #f8f9fb 0%, #fff 100%);
  border: 1px solid #e1e5ed;
  border-radius: 12px;
  padding: 28px;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.cpme-myaccount-cta-icon {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--cpme-primary, #114d61);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  margin: 0 auto 14px;
}
.cpme-myaccount-cta-icon .dashicons {
  font-size: 28px; width: 28px; height: 28px;
}
.cpme-myaccount-cta-card h3 {
  color: var(--cpme-primary, #114d61);
  font-size: 18px;
  margin: 0 0 8px;
  font-weight: 700;
}
.cpme-myaccount-cta-card p {
  color: #5a6573;
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 18px;
}
.cpme-myaccount-cta-bullets {
  list-style: none;
  padding: 0;
  margin: 0 0 auto;
  text-align: left;
  display: inline-block;
  max-width: 280px;
}
.cpme-myaccount-cta-bullets li {
  padding: 5px 0 5px 24px;
  position: relative;
  color: var(--cpme-primary, #114d61);
  font-size: 13.5px;
  line-height: 1.4;
}
.cpme-myaccount-cta-bullets li::before {
  content: "✓";
  position: absolute; left: 0; top: 5px;
  color: #2ecc71;
  font-weight: 700;
  font-size: 14px;
}
.cpme-myaccount-cta-card .cpme-btn {
  margin-top: 20px;
}

/* Responsive : 1 col sur mobile */
@media (max-width: 760px) {
  .cpme-myaccount-grid { grid-template-columns: 1fr; }
  .cpme-myaccount-header .cpme-myaccount-title { font-size: 22px; }
}

/* On annule les anciennes règles qui imposaient max-width:520px sur le form */
.woocommerce-account .cpme-myaccount-page form.login,
.woocommerce-account .cpme-myaccount-page .woocommerce-form-login {
  max-width: none !important;
  margin: 0 !important;
}


/* === FIX layout my-account v3 — neutralise la grid du theme ===
   Le theme du site fait `.woocommerce { display: grid; grid-template-columns: 260px 824px; }`
   ce qui coince notre wrapper dans la cell sidebar 260px. On force block quand
   l'user n'est PAS loggué (= page login affichée). */
body.woocommerce-account:not(.logged-in) .woocommerce {
  display: block !important;
  grid-template-columns: none !important;
}
/* Si le theme ne met PAS logged-in class : cible la presence de notre wrapper */
.woocommerce:has(> .cpme-myaccount-page) {
  display: block !important;
  grid-template-columns: none !important;
}
.cpme-myaccount-page {
  width: 100% !important;
  max-width: 980px !important;
  margin: 24px auto !important;
  grid-column: 1 / -1 !important;  /* fallback si :has non supporté + parent reste grid */
}


/* === Mode "correction simplifiée" : 1 page, uniquement les champs concernés === */
.cpme-correction-only {
  max-width: 680px;
  margin: 16px auto;
  background: #fff;
  border: 1px solid #e1e5ed;
  border-radius: 12px;
  padding: 28px 32px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
}
.cpme-correction-only-title {
  color: var(--cpme-primary, #114d61);
  font-size: 22px;
  margin: 0 0 6px;
  font-weight: 700;
}
.cpme-correction-only-sub {
  color: #5a6573;
  font-size: 14px;
  margin: 0 0 22px;
  line-height: 1.5;
}
.cpme-correction-only-fields {
  display: grid;
  gap: 16px;
  margin-bottom: 20px;
}
.cpme-correction-only-fields .cpme-field-full {
  grid-column: 1 / -1;
}
.cpme-correction-only-engagement {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  padding: 14px;
  background: #f8f9fb;
  border: 1px solid #e1e5ed;
  border-radius: 8px;
  margin: 16px 0;
  font-size: 14px;
  line-height: 1.45;
}
.cpme-correction-only-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 18px;
}
.cpme-correction-only-actions .cpme-btn { padding: 12px 28px; }
.cpme-btn-link {
  color: #5a6573;
  text-decoration: underline;
  font-size: 14px;
}
.cpme-btn-link:hover { color: var(--cpme-primary, #114d61); }


/* === Encart "staff CPME sur page adhérent" === */
.cpme-staff-notice {
  max-width: 580px;
  margin: 30px auto;
  padding: 32px 28px;
  background: #fff;
  border: 1px solid #e1e5ed;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(15,23,42,.06);
  text-align: center;
}
.cpme-staff-notice-icon {
  width: 64px; height: 64px;
  margin: 0 auto 16px;
  background: var(--cpme-primary, #114d61);
  color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.cpme-staff-notice-icon .dashicons { font-size: 32px; width: 32px; height: 32px; }
.cpme-staff-notice h2 {
  color: var(--cpme-primary, #114d61);
  font-size: 20px; font-weight: 700; margin: 0 0 10px;
}
.cpme-staff-notice p {
  color: #5a6573; font-size: 14px; line-height: 1.55; margin: 0 0 22px;
}
.cpme-staff-notice-actions {
  display: flex; gap: 14px; align-items: center; justify-content: center; flex-wrap: wrap;
}
.cpme-staff-notice-actions .cpme-btn { padding: 12px 28px; }
.cpme-staff-notice-actions .cpme-btn-link { color: #5a6573; text-decoration: underline; font-size: 13px; }


/* ================================================================
   Page WC "Payer la commande" (/checkout/order-pay/) — refonte
   ================================================================ */

/* Wrapper centré + padding propre */
body.woocommerce-order-pay .woocommerce {
  max-width: 760px;
  margin: 24px auto;
  padding: 0 16px;
}

/* Titre de page */
body.woocommerce-order-pay .entry-title,
body.woocommerce-order-pay h1.entry-title {
  color: var(--cpme-primary, #114d61);
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 24px;
}

/* Tableau récap "Produit / Qté / Totaux" → carte moderne */
body.woocommerce-order-pay table.shop_table,
body.woocommerce-order-pay table.order_details {
  background: #fff !important;
  border: 1px solid #e3e6ec !important;
  border-radius: 12px !important;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15,23,42,.05) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  width: 100%;
  margin-bottom: 24px !important;
}
body.woocommerce-order-pay table.shop_table thead th,
body.woocommerce-order-pay table.order_details thead th {
  background: #f8fafc !important;
  color: var(--cpme-primary, #114d61) !important;
  font-weight: 600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  padding: 14px 18px !important;
  border-bottom: 1px solid #e3e6ec !important;
}
body.woocommerce-order-pay table.shop_table tbody td,
body.woocommerce-order-pay table.order_details tbody td {
  padding: 16px 18px !important;
  border-top: 1px solid #f0f2f5 !important;
  font-size: 14px;
  color: #1e2733;
}
body.woocommerce-order-pay table.shop_table tfoot th,
body.woocommerce-order-pay table.shop_table tfoot td,
body.woocommerce-order-pay table.order_details tfoot th,
body.woocommerce-order-pay table.order_details tfoot td {
  padding: 14px 18px !important;
  border-top: 1px solid #e3e6ec !important;
  font-size: 14px;
}
body.woocommerce-order-pay table.shop_table tfoot tr:last-child th,
body.woocommerce-order-pay table.shop_table tfoot tr:last-child td {
  font-size: 16px;
  font-weight: 700;
  color: var(--cpme-primary, #114d61);
  background: #f8fafc !important;
}
body.woocommerce-order-pay .product-name strong { font-weight: 600; }
body.woocommerce-order-pay .product-name .wc-item-meta,
body.woocommerce-order-pay .product-name dl {
  font-size: 12px;
  color: #6b7280;
  margin: 4px 0 0;
  display: block;
}
body.woocommerce-order-pay .product-name .wc-item-meta li,
body.woocommerce-order-pay .product-name dt,
body.woocommerce-order-pay .product-name dd {
  display: inline; margin: 0;
}
body.woocommerce-order-pay .product-name .wc-item-meta strong,
body.woocommerce-order-pay .product-name dt { font-weight: 500; }

/* Section "Méthodes de paiement" */
body.woocommerce-order-pay #payment {
  background: #fff !important;
  border: 1px solid #e3e6ec !important;
  border-radius: 12px !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.05);
  padding: 0 !important;
}
body.woocommerce-order-pay #payment ul.payment_methods {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
}
body.woocommerce-order-pay #payment ul.payment_methods li {
  background: transparent !important;
  padding: 18px 22px !important;
  margin: 0 !important;
  border-bottom: 1px solid #f0f2f5;
  list-style: none;
}
body.woocommerce-order-pay #payment ul.payment_methods li:last-of-type { border-bottom: 0; }
body.woocommerce-order-pay #payment ul.payment_methods li label {
  font-weight: 600;
  color: var(--cpme-primary, #114d61);
  font-size: 15px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
body.woocommerce-order-pay #payment ul.payment_methods li input[type="radio"] {
  accent-color: var(--cpme-primary, #114d61);
  width: 18px; height: 18px;
  margin-right: 4px;
}
body.woocommerce-order-pay #payment ul.payment_methods li img {
  max-height: 22px;
  margin: 0 2px;
  vertical-align: middle;
}
body.woocommerce-order-pay #payment ul.payment_methods .payment_box {
  background: #f8fafc !important;
  border-radius: 8px !important;
  padding: 14px 16px !important;
  margin-top: 12px !important;
  font-size: 13.5px;
  color: #5a6573;
  line-height: 1.55;
  border: 0 !important;
}
body.woocommerce-order-pay #payment ul.payment_methods .payment_box::before {
  display: none !important;
}

/* Bouton "Payer la commande" → couleurs CPME */
body.woocommerce-order-pay #payment .form-row.place-order,
body.woocommerce-order-pay .woocommerce-checkout-payment .place-order {
  padding: 20px 22px !important;
  margin: 0 !important;
  background: transparent !important;
  border-top: 1px solid #f0f2f5;
  display: flex;
  justify-content: flex-end;
}
body.woocommerce-order-pay #place_order,
body.woocommerce-order-pay button[name="woocommerce_pay"],
body.woocommerce-order-pay .button[name="woocommerce_pay"],
body.woocommerce-order-pay .place-order button {
  background: var(--cpme-primary, #114d61) !important;
  background-color: var(--cpme-primary, #114d61) !important;
  background-image: none !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 8px !important;
  padding: 14px 32px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1px;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(17, 77, 97, .25);
  transition: background .15s, transform .12s, box-shadow .15s;
  text-shadow: none !important;
  text-transform: none !important;
}
body.woocommerce-order-pay #place_order:hover,
body.woocommerce-order-pay button[name="woocommerce_pay"]:hover,
body.woocommerce-order-pay .place-order button:hover {
  background: var(--cpme-primary-dark, #0d3e4f) !important;
  background-color: var(--cpme-primary-dark, #0d3e4f) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(17, 77, 97, .35);
}

@media (max-width: 600px) {
  body.woocommerce-order-pay table.shop_table thead { display: none; }
  body.woocommerce-order-pay table.shop_table tbody td { display: block; padding: 12px 16px !important; }
  body.woocommerce-order-pay table.shop_table tfoot th,
  body.woocommerce-order-pay table.shop_table tfoot td { padding: 10px 16px !important; }
  body.woocommerce-order-pay #payment .form-row.place-order { justify-content: stretch; }
  body.woocommerce-order-pay #place_order { width: 100%; }
}


/* ================================================================
   Page WC "Commande reçue" (/checkout/order-received/) — refonte
   ================================================================ */
/* Wrapper centré */
body.woocommerce-order-received .woocommerce {
  max-width: 720px;
  margin: 32px auto;
  padding: 0 16px;
}
/* Cache les blocs WC standards (notice "Commande reçue", détails order)
   qui doublonnent avec notre encart custom. On garde uniquement notre carte. */
body.woocommerce-order-received .woocommerce-notice--success,
body.woocommerce-order-received .woocommerce-order-overview,
body.woocommerce-order-received .woocommerce-order-details,
body.woocommerce-order-received .woocommerce-customer-details,
body.woocommerce-order-received .woocommerce-thankyou-order-received,
body.woocommerce-order-received .woocommerce-order > h2,
body.woocommerce-order-received .woocommerce-order > p.woocommerce-thankyou-order-received { display: none; }
/* Le titre H1 par défaut WC est aussi masqué (on a notre propre titre) */
body.woocommerce-order-received .entry-title,
body.woocommerce-order-received h1.entry-title { display: none; }

/* Notre carte thank-you */
.cpme-thankyou {
  background: #fff;
  border-radius: 16px;
  padding: 44px 36px;
  text-align: center;
  box-shadow: 0 4px 24px rgba(15, 23, 42, .08);
  border: 1px solid #e3e6ec;
  animation: cpmeThxIn .5s cubic-bezier(.16,1,.3,1) both;
}
@keyframes cpmeThxIn {
  from { opacity: 0; transform: translateY(12px) scale(.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.cpme-thankyou-icon { margin-bottom: 18px; }
.cpme-thankyou-title {
  color: var(--cpme-primary, #114d61);
  font-size: 28px;
  font-weight: 700;
  margin: 0 0 12px;
  letter-spacing: -0.3px;
  line-height: 1.2;
}
.cpme-thankyou-sub {
  color: #5a6573;
  font-size: 15px;
  line-height: 1.6;
  margin: 0 auto 32px;
  max-width: 520px;
}
.cpme-thankyou-summary {
  background: #f8fafc;
  border: 1px solid #e3e6ec;
  border-radius: 12px;
  padding: 20px 24px;
  margin: 0 auto 28px;
  display: grid;
  gap: 14px;
  text-align: left;
  max-width: 460px;
}
.cpme-thankyou-summary-row {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.cpme-thankyou-summary-row .dashicons {
  font-size: 22px;
  width: 22px;
  height: 22px;
  color: var(--cpme-primary, #114d61);
  flex-shrink: 0;
  margin-top: 2px;
}
.cpme-thankyou-summary-row > div { flex: 1; min-width: 0; }
.cpme-thankyou-summary-row strong {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #6b7280;
  font-weight: 600;
  margin-bottom: 2px;
}
.cpme-thankyou-summary-row span {
  color: var(--cpme-primary, #114d61);
  font-size: 15px;
  font-weight: 500;
}
.cpme-thankyou-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin: 0 0 18px;
}
.cpme-btn-lg {
  padding: 13px 24px;
  font-size: 14.5px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 8px;
  text-decoration: none;
  transition: all .15s;
  border: 2px solid transparent;
}
.cpme-btn-lg .dashicons { font-size: 18px; width: 18px; height: 18px; }
.cpme-btn-lg.cpme-btn-primary {
  background: var(--cpme-primary, #114d61);
  color: #fff !important;
  border-color: var(--cpme-primary, #114d61);
  box-shadow: 0 2px 6px rgba(17, 77, 97, .25);
}
.cpme-btn-lg.cpme-btn-primary:hover {
  background: var(--cpme-primary-dark, #0d3e4f);
  border-color: var(--cpme-primary-dark, #0d3e4f);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(17, 77, 97, .35);
}
.cpme-btn-lg.cpme-btn-outline {
  background: #fff;
  color: var(--cpme-primary, #114d61) !important;
  border: 2px solid var(--cpme-primary, #114d61);
}
.cpme-btn-lg.cpme-btn-outline:hover {
  background: #f0f4f9;
  transform: translateY(-1px);
}
.cpme-thankyou-back {
  margin: 12px 0 0;
  font-size: 13px;
}
.cpme-thankyou-back a {
  color: #6b7280;
  text-decoration: underline;
}
.cpme-thankyou-back a:hover { color: var(--cpme-primary, #114d61); }

@media (max-width: 600px) {
  .cpme-thankyou { padding: 32px 22px; }
  .cpme-thankyou-title { font-size: 22px; }
  .cpme-thankyou-actions { flex-direction: column; }
  .cpme-btn-lg { width: 100%; justify-content: center; }
}


/* === Thank-you : variants succès / échec / en attente === */
.cpme-thankyou--failed { border-color: #fca5a5; }
.cpme-thankyou--failed .cpme-thankyou-title { color: #991b1b; }
.cpme-thankyou--pending { border-color: #fcd34d; }
.cpme-thankyou--pending .cpme-thankyou-title { color: #92400e; }

.cpme-thankyou-error-detail {
  background: #fef2f2;
  border: 1px solid #fca5a5;
  border-radius: 8px;
  padding: 12px 16px;
  margin: 0 auto 22px;
  max-width: 480px;
  text-align: left;
  font-size: 13.5px;
  line-height: 1.5;
}
.cpme-thankyou-error-detail strong {
  display: block;
  color: #991b1b;
  margin-bottom: 4px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.cpme-thankyou-error-detail span { color: #5a6573; }

/* ============ RIDET PREFILL BANNER (form-dossier) ============ */
.cpme-ridet-prefill-banner {
  background: linear-gradient(135deg, #f0f7fa 0%, #e6f0f5 100%);
  border: 1px solid #c4dbe5;
  border-radius: 10px;
  padding: 14px 18px;
  margin: 0 0 18px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  position: relative;
}
.cpme-ridet-prefill-info {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex: 1;
  min-width: 240px;
}
.cpme-ridet-prefill-info .dashicons {
  font-size: 28px;
  width: 28px;
  height: 28px;
  color: #114d61;
  flex-shrink: 0;
  margin-top: 2px;
}
.cpme-ridet-prefill-info strong { color: #114d61; font-size: 14px; margin-right: 6px; }
.cpme-ridet-prefill-info code {
  background: #fff; border: 1px solid #c4dbe5; border-radius: 4px;
  padding: 2px 8px; font-size: 13px; color: #114d61; font-weight: 600;
}
.cpme-ridet-prefill-hint {
  display: block; margin-top: 6px; color: #5a6573; font-size: 12.5px; line-height: 1.45;
}
.cpme-ridet-prefill-banner button[data-cpme-ridet-prefill] {
  display: inline-flex; align-items: center; gap: 6px;
  white-space: nowrap;
}
.cpme-ridet-prefill-banner button[data-cpme-ridet-prefill]:disabled {
  opacity: 0.6; cursor: progress;
}
.cpme-ridet-prefill-banner button .dashicons {
  font-size: 16px; width: 16px; height: 16px;
}
.cpme-ridet-prefill-source {
  flex-basis: 100%;
  margin: 0;
  font-size: 11px;
  color: #7a8694;
  font-style: italic;
}
/* Champ fraichement pré-rempli : flash subtle */
.cpme-form input.cpme-prefilled,
.cpme-form select.cpme-prefilled {
  background: #f0fdf4;
  border-color: #86efac;
  animation: cpmePrefillFlash 1.4s ease-out 1;
}
@keyframes cpmePrefillFlash {
  0% { background: #d1fae5; box-shadow: 0 0 0 4px rgba(134,239,172,.4); }
  100% { background: #f0fdf4; box-shadow: 0 0 0 0 rgba(134,239,172,0); }
}
/* Spinner inline pour bouton */
.cpme-spinner {
  display: inline-block;
  width: 12px; height: 12px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: cpmeSpin 0.6s linear infinite;
  vertical-align: -2px;
  margin-right: 4px;
}
@keyframes cpmeSpin { to { transform: rotate(360deg); } }

@media (max-width: 600px) {
  .cpme-ridet-prefill-banner { padding: 12px 14px; }
  .cpme-ridet-prefill-banner button[data-cpme-ridet-prefill] { width: 100%; justify-content: center; }
}

/* ============ ALERTES — message d'info contextualisé sur un champ ============ */
.cpme-alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 8px;
  margin: 8px 0 16px;
  font-size: 13.5px;
  line-height: 1.5;
  border: 1px solid transparent;
}
.cpme-alert .dashicons {
  font-size: 22px;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  margin-top: 1px;
}
.cpme-alert p { margin: 0; }
.cpme-alert-info {
  background: #fff8e6;
  border-color: #f5d76b;
  color: #7a5b00;
}
.cpme-alert-info .dashicons { color: #c79100; }
.cpme-alert-warn {
  background: #fef2f2;
  border-color: #fca5a5;
  color: #991b1b;
}
.cpme-alert-warn .dashicons { color: #b91c1c; }
.cpme-alert-success {
  background: #f0fdf4;
  border-color: #86efac;
  color: #166534;
}
.cpme-alert-success .dashicons { color: #15803d; }

/* ============ JOURNEY — Parcours d'adhésion moderne ============ */
.cpme-journey {
  background: linear-gradient(135deg, #f8fbfd 0%, #eef5f9 100%);
  border: 1px solid #d4e3ec;
  border-radius: 16px;
  padding: 28px 24px 32px;
  margin: 0 0 28px;
  position: relative;
}
.cpme-journey::before {
  /* halo décoratif coin haut-droit */
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 140px; height: 140px;
  background: radial-gradient(circle at top right, rgba(168, 24, 21, 0.06), transparent 70%);
  border-radius: 16px;
  pointer-events: none;
}
.cpme-journey-header {
  text-align: center;
  margin-bottom: 28px;
  position: relative;
}
.cpme-journey-header h3 {
  margin: 0 0 6px;
  font-size: 19px;
  font-weight: 700;
  color: #114d61;
  letter-spacing: -0.01em;
}
.cpme-journey-header p {
  margin: 0;
  font-size: 13px;
  color: #5a6573;
  font-weight: 400;
}

.cpme-journey-track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: flex-start;
  gap: 0;
  position: relative;
}

.cpme-journey-step {
  flex: 1 1 0;
  position: relative;
  padding: 0 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-width: 0;
}

/* ligne de connexion entre les markers (timeline horizontale) */
.cpme-journey-step:not(.is-last)::after {
  content: '';
  position: absolute;
  top: 30px;           /* aligné au centre du marker (60/2 = 30) */
  left: calc(50% + 32px);  /* part juste après le marker */
  right: calc(-50% + 32px);
  height: 2px;
  background: linear-gradient(90deg, #c4dbe5 0%, #c4dbe5 50%, #d4e3ec 100%);
  z-index: 0;
}

.cpme-journey-marker {
  position: relative;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, #114d61 0%, #0d3e4f 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow:
    0 6px 18px rgba(17, 77, 97, .22),
    0 0 0 6px #fff,
    0 0 0 7px rgba(17, 77, 97, .12);
  margin-bottom: 14px;
  flex-shrink: 0;
  z-index: 1;
  transition: transform .25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow .25s ease;
}
.cpme-journey-step:hover .cpme-journey-marker {
  transform: translateY(-3px) scale(1.03);
  box-shadow:
    0 10px 24px rgba(17, 77, 97, .28),
    0 0 0 6px #fff,
    0 0 0 7px rgba(168, 24, 21, .25);
}
.cpme-journey-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  color: #fff;
}
.cpme-journey-icon svg {
  width: 26px;
  height: 26px;
  display: block;
}
.cpme-journey-num {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #a81815;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2.5px solid #fff;
  box-shadow: 0 2px 6px rgba(168, 24, 21, .35);
  z-index: 2;
}

.cpme-journey-content {
  min-width: 0;
  padding: 0 4px;
}
.cpme-journey-content strong {
  display: block;
  font-size: 13.5px;
  color: #114d61;
  font-weight: 700;
  margin-bottom: 4px;
  line-height: 1.3;
}
.cpme-journey-content p {
  margin: 0;
  font-size: 12px;
  color: #5a6573;
  line-height: 1.45;
}

/* === Responsive : timeline verticale sur tablette/mobile === */
@media (max-width: 880px) {
  .cpme-journey { padding: 24px 18px 28px; }
  .cpme-journey-track {
    flex-direction: column;
    gap: 0;
  }
  .cpme-journey-step {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
    gap: 16px;
    padding: 0;
    margin-bottom: 18px;
  }
  .cpme-journey-step:last-child { margin-bottom: 0; }
  .cpme-journey-step:not(.is-last)::after {
    /* ligne verticale à gauche au lieu d'horizontale */
    top: 60px;
    left: 30px;
    right: auto;
    bottom: -18px;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, #c4dbe5, #d4e3ec);
  }
  .cpme-journey-marker { margin-bottom: 0; }
  .cpme-journey-content {
    flex: 1;
    padding-top: 8px;
  }
}

@media (max-width: 480px) {
  .cpme-journey-marker { width: 52px; height: 52px; box-shadow: 0 4px 14px rgba(17,77,97,.22), 0 0 0 4px #fff, 0 0 0 5px rgba(17,77,97,.12); }
  .cpme-journey-icon svg { width: 22px; height: 22px; }
  .cpme-journey-step:not(.is-last)::after { top: 52px; left: 26px; }
  .cpme-journey-num { width: 20px; height: 20px; font-size: 10px; }
}

/* ============ MARKETPLACE ADHÉRENTS ============ */
.cpme-marketplace { padding: 24px; }
.cpme-marketplace-header h2 { color: #114d61; margin: 0 0 6px; font-size: 22px; }
.cpme-marketplace-intro { color: #5a6573; margin: 0 0 20px; font-size: 14px; }
.cpme-marketplace-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  flex-wrap: wrap;
  padding: 14px 16px;
  background: #f6f9fb;
  border: 1px solid #c4dbe5;
  border-radius: 8px;
  margin-bottom: 20px;
}
.cpme-marketplace-filters { display: flex; gap: 14px; flex-wrap: wrap; }
.cpme-marketplace-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #5a6573; }
.cpme-marketplace-filters select { padding: 8px 10px; border-radius: 6px; border: 1px solid #c4dbe5; background: #fff; font-size: 14px; min-width: 160px; }

.cpme-marketplace-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
}
.cpme-marketplace-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 40px 20px;
  color: #5a6573;
  background: #f9fafb;
  border-radius: 8px;
}
.cpme-offer-card {
  background: #fff;
  border: 1px solid #e1e5ed;
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: box-shadow .15s ease;
}
.cpme-offer-card:hover { box-shadow: 0 4px 18px rgba(15,23,42,.08); }
.cpme-offer-card header { display: flex; gap: 8px; align-items: center; font-size: 12px; flex-wrap: wrap; }
.cpme-offer-kind { padding: 3px 10px; border-radius: 999px; font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: .4px; }
.cpme-offer-kind-offer  { background: #ecfeff; color: #155e75; }
.cpme-offer-kind-demand { background: #fef3c7; color: #92400e; }
.cpme-offer-category { color: #114d61; font-weight: 500; }
.cpme-offer-date { color: #94a3b8; margin-left: auto; }
.cpme-offer-card h3 { font-size: 16px; color: #114d61; margin: 0; line-height: 1.3; }
.cpme-offer-body { font-size: 13.5px; color: #1f2937; line-height: 1.5; max-height: 150px; overflow: hidden; position: relative; }
.cpme-offer-body::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 30px;
  background: linear-gradient(180deg, transparent, #fff);
  pointer-events: none;
}
.cpme-offer-card footer { display: flex; justify-content: space-between; align-items: center; padding-top: 8px; border-top: 1px solid #f1f5f9; font-size: 12px; }
.cpme-offer-author { color: #5a6573; font-style: italic; }

/* Modale dialog */
.cpme-modal {
  border: 0;
  border-radius: 12px;
  padding: 24px;
  max-width: 520px;
  width: 90%;
  box-shadow: 0 16px 48px rgba(15,23,42,.25);
}
.cpme-modal::backdrop { background: rgba(15,23,42,.55); backdrop-filter: blur(2px); }
.cpme-modal h3 { color: #114d61; margin: 0 0 14px; font-size: 18px; }
.cpme-modal .cpme-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.cpme-modal .cpme-label { font-size: 12px; font-weight: 600; color: #5a6573; }
.cpme-modal input, .cpme-modal select, .cpme-modal textarea {
  padding: 10px 12px; border: 1px solid #c4dbe5; border-radius: 6px; font-size: 14px; font-family: inherit;
}
.cpme-modal textarea { resize: vertical; min-height: 120px; }
.cpme-modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.cpme-form-feedback { margin: 10px 0 0; min-height: 18px; font-size: 13px; color: #5a6573; }

/* ============ PLACEHOLDERS : tons clairs et discrets ============
 * Spécificité haute (body + classe + élément + pseudo) pour battre les
 * styles du thème actif (Kubi etc.) qui force souvent du noir foncé.
 */
body .cpme-card input::placeholder,
body .cpme-card textarea::placeholder,
body .cpme-form input::placeholder,
body .cpme-form textarea::placeholder,
body .cpme-preinscription input::placeholder,
body .cpme-preinscription textarea::placeholder,
body .cpme-dossier-wrap input::placeholder,
body .cpme-dossier-wrap textarea::placeholder {
  color: #b0b8c4 !important;
  opacity: 1 !important;
  font-weight: 400 !important;
  font-style: italic !important;
}
body .cpme-card input::-webkit-input-placeholder,
body .cpme-form input::-webkit-input-placeholder,
body .cpme-preinscription input::-webkit-input-placeholder,
body .cpme-dossier-wrap input::-webkit-input-placeholder {
  color: #b0b8c4 !important;
  font-style: italic !important;
  opacity: 1 !important;
}
body .cpme-card input::-moz-placeholder,
body .cpme-form input::-moz-placeholder,
body .cpme-preinscription input::-moz-placeholder,
body .cpme-dossier-wrap input::-moz-placeholder {
  color: #b0b8c4 !important;
  opacity: 1 !important;
  font-style: italic !important;
}
body .cpme-card input:-ms-input-placeholder,
body .cpme-form input:-ms-input-placeholder {
  color: #b0b8c4 !important;
  font-style: italic !important;
}

/* ============ PANEL FÉDÉRATION (dashboard adhérent) ============ */
.cpme-federation-panel {
  background: linear-gradient(135deg, #f6f9fb 0%, #eaf2f6 100%);
  border: 1px solid #c4dbe5;
  border-radius: 12px;
  padding: 22px 24px;
  margin: 0 0 24px;
}
.cpme-federation-panel h3 {
  margin: 0 0 6px;
  color: #114d61;
  display: flex; align-items: center; gap: 10px;
  font-size: 18px;
}
.cpme-federation-panel h3 .dashicons { font-size: 22px; width: 22px; height: 22px; color: #a81815; }
.cpme-federation-intro { color: #5a6573; margin: 0 0 18px; font-size: 14px; line-height: 1.55; }
.cpme-federation-steps {
  list-style: none;
  counter-reset: fedstep;
  margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.cpme-federation-steps li {
  position: relative;
  background: #fff;
  border: 1px solid #d9e3ea;
  border-radius: 10px;
  padding: 14px 16px 14px 56px;
  counter-increment: fedstep;
}
.cpme-federation-steps li::before {
  content: counter(fedstep);
  position: absolute;
  top: 16px; left: 14px;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: #cbd5e1;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 13px;
}
.cpme-federation-steps li.is-current::before { background: #114d61; box-shadow: 0 0 0 4px rgba(17,77,97,.15); }
.cpme-federation-steps li.is-done::before { background: #16a34a; content: '✓'; font-size: 16px; }
.cpme-federation-steps strong { display: block; color: #114d61; font-size: 14.5px; margin-bottom: 4px; }
.cpme-federation-steps span { display: block; color: #5a6573; font-size: 13px; line-height: 1.45; }
.cpme-federation-state {
  display: inline-block;
  margin-top: 8px;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 12.5px;
  font-style: normal;
  background: #ecfdf5;
  color: #166534;
}
.cpme-federation-state-todo { background: #fef3c7; color: #92400e; }
.cpme-federation-help { margin: 14px 0 0; font-size: 13px; color: #5a6573; text-align: center; }
.cpme-federation-help a { color: #114d61; font-weight: 500; }

/* ─── Annuaire public CPME-NC ─────────────────────────────────────────── */
.cpme-annuaire { margin: 0 auto; max-width: 1200px; }
.cpme-annuaire-header { margin-bottom: 24px; }
.cpme-annuaire-header h2 {
  margin: 0 0 8px;
  color: var(--cpme-primary, #114d61);
  font-size: 26px;
  font-weight: 700;
}
.cpme-annuaire-intro { color: #5a6573; margin: 0; font-size: 15px; line-height: 1.55; max-width: 760px; }
.cpme-annuaire-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px;
  margin-bottom: 20px;
  padding: 16px;
  background: var(--cpme-bg, #f5f7fa);
  border: 1px solid var(--cpme-border, #e3e6ec);
  border-radius: 10px;
}
.cpme-annuaire-toolbar label { display: flex; flex-direction: column; gap: 6px; flex: 1 1 220px; }
.cpme-annuaire-toolbar select,
.cpme-annuaire-toolbar input[type="search"] {
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--cpme-border-strong, #cdd2db);
  background: #fff;
  font-size: 14px;
  min-height: 42px;
}
.cpme-annuaire-toolbar select:focus,
.cpme-annuaire-toolbar input[type="search"]:focus {
  outline: 2px solid var(--cpme-primary, #114d61);
  outline-offset: 1px;
}
.cpme-annuaire-count {
  margin: 0;
  align-self: flex-end;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid var(--cpme-border, #e3e6ec);
  border-radius: 8px;
  color: var(--cpme-primary, #114d61);
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
}
.cpme-annuaire-empty {
  text-align: center;
  padding: 48px 24px;
  background: #fff;
  border: 1px dashed var(--cpme-border-strong, #cdd2db);
  border-radius: 10px;
  color: #5a6573;
}
.cpme-annuaire-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 1024px) {
  .cpme-annuaire-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .cpme-annuaire-grid { grid-template-columns: 1fr; }
  .cpme-annuaire-toolbar { flex-direction: column; align-items: stretch; }
  .cpme-annuaire-count { align-self: flex-start; }
}
.cpme-annuaire-card {
  background: #fff;
  border: 1px solid var(--cpme-border, #e3e6ec);
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.cpme-annuaire-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(17, 77, 97, .08);
  border-color: var(--cpme-primary, #114d61);
}
.cpme-annuaire-card-head { display: flex; align-items: center; gap: 14px; }
.cpme-annuaire-logo {
  width: 64px;
  height: 64px;
  border-radius: 12px;
  object-fit: cover;
  background: var(--cpme-bg, #f5f7fa);
  border: 1px solid var(--cpme-border, #e3e6ec);
  flex-shrink: 0;
}
.cpme-annuaire-logo--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 22px;
  color: var(--cpme-primary, #114d61);
  letter-spacing: 1px;
}
.cpme-annuaire-id { min-width: 0; flex: 1; }
.cpme-annuaire-name {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 700;
  color: var(--cpme-primary, #114d61);
  line-height: 1.3;
  word-break: break-word;
}
.cpme-annuaire-secteur {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--cpme-bg, #f5f7fa);
  border: 1px solid var(--cpme-border, #e3e6ec);
  color: #5a6573;
  font-size: 12px;
  font-weight: 500;
}
.cpme-annuaire-desc {
  margin: 0;
  color: #4a5260;
  font-size: 14px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cpme-annuaire-contact {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-top: 1px solid var(--cpme-border, #e3e6ec);
  padding-top: 14px;
  margin-top: auto;
}
.cpme-annuaire-contact li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  color: #4a5260;
}
.cpme-annuaire-contact .dashicons {
  color: var(--cpme-primary, #114d61);
  flex-shrink: 0;
  font-size: 18px;
  width: 18px;
  height: 18px;
}
.cpme-annuaire-contact a {
  color: var(--cpme-primary, #114d61);
  text-decoration: none;
  word-break: break-word;
}
.cpme-annuaire-contact a:hover { text-decoration: underline; }

/* ─── Annuaire : page profil My-Account ───────────────────────────────── */
.cpme-annuaire-account .cpme-annuaire-form { display: flex; flex-direction: column; gap: 18px; margin-top: 18px; }
.cpme-annuaire-form .cpme-field-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 16px;
  background: var(--cpme-bg, #f5f7fa);
  border: 1px solid var(--cpme-border, #e3e6ec);
  border-radius: 10px;
  font-weight: 500;
  color: var(--cpme-primary, #114d61);
}
.cpme-annuaire-form .cpme-field-checkbox input { margin-top: 3px; }
.cpme-annuaire-form .cpme-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 640px) {
  .cpme-annuaire-form .cpme-field-row { grid-template-columns: 1fr; }
}
.cpme-annuaire-form .cpme-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cpme-annuaire-form input[type="text"],
.cpme-annuaire-form input[type="url"],
.cpme-annuaire-form input[type="tel"],
.cpme-annuaire-form input[type="email"],
.cpme-annuaire-form input[type="number"],
.cpme-annuaire-form textarea {
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--cpme-border-strong, #cdd2db);
  font-size: 14px;
  font-family: inherit;
}
.cpme-annuaire-form input[readonly] {
  background: #f7f8fa;
  color: #5a6573;
  cursor: not-allowed;
}
.cpme-annuaire-form fieldset.cpme-annuaire-fields {
  border: 0;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cpme-annuaire-form fieldset.cpme-annuaire-fields[disabled] { opacity: .55; }
.cpme-annuaire-actions { display: flex; align-items: center; gap: 14px; }
.cpme-annuaire-actions .cpme-form-feedback { margin: 0; font-size: 13.5px; color: #5a6573; }
.cpme-annuaire-actions .cpme-form-feedback--ok { color: #16a34a; font-weight: 600; }
.cpme-annuaire-actions .cpme-form-feedback--err { color: #b91c1c; font-weight: 600; }
.cpme-annuaire-logo-preview img {
  max-width: 140px;
  max-height: 140px;
  border-radius: 10px;
  border: 1px solid var(--cpme-border, #e3e6ec);
  display: block;
}
.cpme-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* cache-buster 1779286473 */
