/* MBF V4 — Profil indépendant, Cycle renforcé, lisibilité rose velours */
:root{
  --mbf-v4-ink:#2e1730;
  --mbf-v4-muted:#6f5269;
  --mbf-v4-soft:#fff3fa;
  --mbf-v4-card:rgba(255,255,255,.94);
  --mbf-v4-line:rgba(190,91,151,.25);
  --mbf-v4-pink:#d91b80;
  --mbf-v4-purple:#9c13b8;
  --mbf-v4-shadow:0 24px 70px rgba(89,22,70,.16);
}
/* lisibilité globale des zones demandées */
body, input, select, textarea, button{ text-rendering:geometricPrecision; }
#contentCard, .content-card, .card, .left-card, .right-card{ color:var(--mbf-v4-ink)!important; }
.content-text,.modal-text,.sub,.muted,.field-inline-note{ color:var(--mbf-v4-muted)!important; opacity:1!important; }
.field-label,.section-label,.settings-label{ color:#7d2a66!important; opacity:1!important; font-weight:800!important; }
/* -------- Profil V4 indépendant -------- */
#mbfProfileV4Backdrop{
  position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center;
  padding:22px; background:rgba(46,23,48,.42); backdrop-filter:blur(14px) saturate(1.08);
}
#mbfProfileV4Backdrop.is-open{display:flex;}
#mbfProfileV4Modal{
  width:min(980px, calc(100vw - 28px)); max-height:min(92vh, 860px); overflow:auto;
  border-radius:28px; border:1px solid var(--mbf-v4-line);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,243,250,.92));
  box-shadow:var(--mbf-v4-shadow); color:var(--mbf-v4-ink);
}
.mbfv4-profile-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-bottom:1px solid var(--mbf-v4-line);background:linear-gradient(135deg,#fff7fc,#f8ecff)}
.mbfv4-brand{display:flex;align-items:center;gap:10px;font-weight:900;color:#b01b8d;font-size:18px;letter-spacing:.01em}.mbfv4-brand small{display:block;color:var(--mbf-v4-muted);font-size:12px;font-weight:600;margin-top:2px}.mbfv4-heart{width:34px;height:34px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--mbf-v4-pink),var(--mbf-v4-purple));color:white;box-shadow:0 10px 28px rgba(217,27,128,.22)}
.mbfv4-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.mbfv4-btn{min-height:44px;border-radius:16px;border:1px solid var(--mbf-v4-line);background:#fff;color:var(--mbf-v4-ink);font-weight:800;padding:10px 16px;cursor:pointer}.mbfv4-btn.primary{background:linear-gradient(135deg,var(--mbf-v4-pink),var(--mbf-v4-purple));color:#fff;border-color:transparent}.mbfv4-btn.danger{color:#b31542;border-color:rgba(179,21,66,.28);background:#fff7f8}.mbfv4-btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(176,27,141,.13)}
.mbfv4-profile-body{padding:20px 22px 22px;display:grid;grid-template-columns:minmax(280px,.94fr) minmax(300px,1.06fr);gap:18px}.mbfv4-card{border:1px solid var(--mbf-v4-line);border-radius:22px;background:var(--mbf-v4-card);box-shadow:0 12px 35px rgba(117,39,88,.08);padding:18px}.mbfv4-card h3{margin:0 0 13px;color:#b01b8d;font-size:15px;letter-spacing:.06em;text-transform:uppercase}.mbfv4-user{display:flex;align-items:center;gap:14px;margin-bottom:14px}.mbfv4-avatar{width:64px;height:64px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#b01b8d,#e13692);color:white;font-size:26px;font-weight:900;overflow:hidden}.mbfv4-avatar img{width:100%;height:100%;object-fit:cover}.mbfv4-user strong{font-size:22px}.mbfv4-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#fdebf6;color:#b01b8d;border:1px solid rgba(190,91,151,.16);padding:5px 9px;font-size:12px;font-weight:800;margin:4px 4px 0 0}.mbfv4-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mbfv4-field{display:flex;flex-direction:column;gap:6px}.mbfv4-field label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#7d2a66;font-weight:900}.mbfv4-field input,.mbfv4-field select{width:100%;min-height:44px;border-radius:14px;border:1px solid var(--mbf-v4-line);padding:10px 12px;background:#fff;color:var(--mbf-v4-ink);box-sizing:border-box}.mbfv4-field.full{grid-column:1/-1}.mbfv4-modules{display:grid;gap:10px}.mbfv4-module-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(190,91,151,.18);border-radius:16px;background:linear-gradient(180deg,#fff,#fff8fc);padding:10px 12px}.mbfv4-module-row .label{display:flex;align-items:center;gap:9px;font-weight:800;color:var(--mbf-v4-ink)}.mbfv4-switch{width:50px;height:28px;border-radius:999px;background:#ead8e6;position:relative;cursor:pointer;flex:0 0 auto}.mbfv4-switch::after{content:'';position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.18);transition:.18s}.mbfv4-switch.on{background:linear-gradient(135deg,#b01b8d,#e13692)}.mbfv4-switch.on::after{left:26px}.mbfv4-switch.locked{opacity:.75;cursor:not-allowed}.mbfv4-save-grid{display:grid;grid-template-columns:1fr;gap:10px}.mbfv4-save-item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;border:1px solid rgba(190,91,151,.18);border-radius:18px;background:#fff;padding:12px}.mbfv4-save-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#f8e9f4}.mbfv4-save-item strong{display:block;font-size:14px}.mbfv4-save-item small{display:block;color:var(--mbf-v4-muted);line-height:1.35}.mbfv4-status-ok{border-radius:999px;padding:5px 9px;background:#e9f8ee;color:#18733c;font-weight:900;font-size:12px}.mbfv4-status-warn{border-radius:999px;padding:5px 9px;background:#fff2dd;color:#a85b00;font-weight:900;font-size:12px}.mbfv4-note{border:1px solid rgba(50,140,75,.22);background:#f2fff6;border-radius:18px;padding:12px;color:#315b3f;font-size:13px;line-height:1.45;margin-top:12px}.mbfv4-security-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.mbfv4-close-x{min-width:46px}
/* ancien profil : neutralise le panneau infodc injecté quand on utilise la nouvelle modale */
#profileModalBackdrop:not(.visible){display:none!important;}
/* -------- Cycle V4 -------- */
.mbfv4-cycle{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(340px,1.05fr);gap:16px;padding:2px}.mbfv4-cycle-card{background:rgba(255,255,255,.94);border:1px solid var(--mbf-v4-line);border-radius:22px;box-shadow:0 12px 35px rgba(117,39,88,.08);padding:18px}.mbfv4-cycle-card h3{margin:0 0 13px;color:#9f1a8b;font-size:15px;letter-spacing:.06em;text-transform:uppercase}.mbfv4-cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;text-transform:capitalize}.mbfv4-cal-head strong{color:#9f1a8b}.mbfv4-cal-week,.mbfv4-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;text-align:center}.mbfv4-cal-week{font-size:12px;color:#7d6174;margin-bottom:7px}.mbfv4-day{min-height:42px;border-radius:999px;border:1px solid rgba(190,91,151,.16);background:#fff;color:var(--mbf-v4-ink);font-weight:800;cursor:pointer}.mbfv4-day.empty{opacity:0;pointer-events:none}.mbfv4-day.rules{background:#ffd7e9}.mbfv4-day.fertile{background:#ffe8d2}.mbfv4-day.ovulation{background:#ffd28e}.mbfv4-day.next{background:#eee2ff}.mbfv4-day.today{box-shadow:0 0 0 2px rgba(176,27,141,.22) inset}.mbfv4-day.sel{background:linear-gradient(135deg,#b01b8d,#e13692)!important;color:#fff!important}.mbfv4-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:#6f5269}.mbfv4-legend span{display:inline-flex;align-items:center;gap:6px}.mbfv4-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.mbfv4-dot.rules{background:#ffd7e9}.mbfv4-dot.fertile{background:#ffe8d2}.mbfv4-dot.ovulation{background:#ffd28e}.mbfv4-dot.next{background:#eee2ff}.mbfv4-current{margin-top:14px}.mbfv4-phase-badge{display:inline-flex;align-items:center;gap:6px;background:#fdebf6;color:#b01b8d;border-radius:999px;padding:8px 12px;font-weight:900}.mbfv4-bar{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:14px 0 9px}.mbfv4-bar span{height:7px;border-radius:99px;background:#ead8e6}.mbfv4-bar span.is-on{background:linear-gradient(135deg,#b01b8d,#e13692)}.mbfv4-current-pills{display:flex;gap:8px;flex-wrap:wrap}.mbfv4-current-pills span{border-radius:999px;background:#f7eaf4;color:#8d2877;font-weight:800;font-size:12px;padding:7px 10px}.mbfv4-cycle-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mbfv4-cycle-form label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:#7d2a66}.mbfv4-cycle-form input,.mbfv4-cycle-form select,.mbfv4-cycle-form textarea{width:100%;box-sizing:border-box;margin-top:6px;border:1px solid var(--mbf-v4-line);border-radius:15px;min-height:44px;background:#fff;color:var(--mbf-v4-ink);padding:10px}.mbfv4-cycle-form .full{grid-column:1/-1}.mbfv4-cycle-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.mbfv4-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.mbfv4-kpi{border:1px solid rgba(190,91,151,.18);border-radius:18px;background:#fff;padding:12px}.mbfv4-kpi small{display:block;color:#6f5269;font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.mbfv4-kpi strong{display:block;font-size:20px;color:#b01b8d;margin-top:4px}.mbfv4-history{display:grid;gap:10px}.mbfv4-history-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid rgba(190,91,151,.18);border-radius:17px;background:#fff;padding:11px 12px}.mbfv4-history-item .sub{font-size:12px}.mbfv4-history-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.mbfv4-empty{color:#6f5269;border:1px dashed rgba(190,91,151,.24);border-radius:16px;padding:12px;background:#fff}
/* -------- Page 4/7/8/9 : style carte façon PJ -------- */
.module-card,.simple-module-card,.nutrition-card,.wellbeing-card,.game-panel,.mbf-game-shell,.mbf-simple-panel{background:rgba(255,255,255,.94)!important;border:1px solid var(--mbf-v4-line)!important;border-radius:22px!important;box-shadow:0 12px 35px rgba(117,39,88,.08)!important;color:var(--mbf-v4-ink)!important}.module-card h3,.simple-module-card h3,.nutrition-card h3,.wellbeing-card h3,.game-panel h3{color:#9f1a8b!important;letter-spacing:.06em}.content-header{border-bottom:1px solid rgba(190,91,151,.15);padding-bottom:10px;margin-bottom:12px}.content-actions .btn-small,.content-header .btn-small{border-radius:14px!important;min-height:44px!important}
@media(max-width:920px){#mbfProfileV4Backdrop{align-items:flex-start;padding:12px}.mbfv4-profile-body,.mbfv4-cycle{grid-template-columns:1fr}.mbfv4-grid2,.mbfv4-kpis{grid-template-columns:1fr}.mbfv4-security-row,.mbfv4-cycle-actions{grid-template-columns:1fr}.mbfv4-profile-head{align-items:flex-start;flex-direction:column}.mbfv4-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.mbfv4-close-x{grid-column:1/-1}.mbfv4-day{min-height:44px}.mbfv4-save-item{grid-template-columns:38px 1fr}.mbfv4-save-item .mbfv4-status-ok,.mbfv4-save-item .mbfv4-status-warn{grid-column:1/-1;justify-self:start}}

/* MBF V6 — Profil Google : badge clair + récupération date de naissance */
.mbfv4-pill.mbfv4-google-badge{
  font-weight:900!important;
  border-width:1px!important;
  letter-spacing:.01em!important;
}
.mbfv4-pill.mbfv4-google-badge.is-google{
  color:#12723a!important;
  background:linear-gradient(135deg,#e8f9ef,#f5fff8)!important;
  border-color:#9de1b8!important;
}
.mbfv4-pill.mbfv4-google-badge.is-local{
  color:#b42318!important;
  background:linear-gradient(135deg,#fff0f0,#fff7f7)!important;
  border-color:#ffb4ab!important;
}
.mbfv4-birth-field .mbfv4-source{
  display:inline-flex;
  align-items:center;
  margin-left:7px;
  padding:2px 8px;
  border-radius:999px;
  background:rgba(199,31,139,.08);
  color:#b01b8d;
  font-size:10px;
  font-weight:900;
  text-transform:none;
  letter-spacing:0;
}
.mbfv4-input-with-action{
  display:flex;
  align-items:stretch;
  gap:8px;
}
.mbfv4-input-with-action input{
  min-width:0;
  flex:1 1 auto;
}
.mbfv4-mini-btn{
  flex:0 0 auto;
  min-height:42px;
  padding:0 13px;
  border-radius:14px;
  border:1px solid rgba(34,128,78,.22);
  background:linear-gradient(135deg,#eafaf1,#ffffff);
  color:#137044;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(42,118,74,.08);
}
.mbfv4-mini-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(34,128,78,.42);
  box-shadow:0 12px 26px rgba(42,118,74,.14);
}
.mbfv4-mini-btn:disabled{
  opacity:.65;
  cursor:wait;
  transform:none;
}
.mbfv4-birth-field small{
  display:block;
  margin-top:6px;
  color:#74556d;
  font-weight:650;
  line-height:1.35;
}
@media (max-width:720px){
  .mbfv4-input-with-action{flex-direction:column;}
  .mbfv4-mini-btn{width:100%;}
}
