/* Objectif Sport v5.78 — cascade consolidée.
   Les sources historiques sont conservées dans leur ordre exact pour éviter toute régression.
   Toute correction v5.78+ doit modifier la règle canonique concernée, sans ajouter un bloc de surcharge. */

/* Source consolidée : legacy-001 */
:root{
      --bg:#0f172a; --panel:#111827; --panel2:#1f2937; --text:#f8fafc;
      --muted:#94a3b8; --accent:#22c55e; --accent2:#38bdf8;
      --warn:#f59e0b; --danger:#ef4444; --border:#334155;
    }
    *{box-sizing:border-box}
    body{
      margin:0; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
      background:linear-gradient(180deg,#0f172a,#111827); color:var(--text); min-height:100vh;
    }
    .app{max-width:820px;margin:0 auto;padding:18px 16px 90px}
    .hero,.card{
      border:1px solid var(--border); background:rgba(17,24,39,.92);
      border-radius:20px; box-shadow:0 16px 40px rgba(0,0,0,.2);
    }
    .hero{padding:20px}
    h1{font-size:28px;margin:0 0 6px}
    .subtitle{margin:0;color:var(--muted)}
    .deadline{display:inline-block;margin-top:12px;padding:7px 10px;border-radius:999px;background:#172554;color:#bfdbfe;font-size:13px}
    .section-title{margin:24px 0 10px;font-size:18px}
    .grid{display:grid;gap:14px;margin-top:16px}
    @media(min-width:620px){.grid-3{grid-template-columns:repeat(3,1fr)}}
    .card{padding:16px}
    .metric-top{display:flex;justify-content:space-between;align-items:end;gap:10px}
    .metric-name{font-size:15px;color:var(--muted)}
    .metric-value{font-size:26px;font-weight:800}
    .goal{font-size:13px;color:var(--muted)}
    .progress{height:10px;background:#0b1220;border-radius:999px;overflow:hidden;margin-top:10px}
    .bar{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:999px}
    form{display:grid;gap:12px}
    .fields{display:grid;gap:10px}
    @media(min-width:620px){.fields{grid-template-columns:repeat(3,1fr)}}
    label{display:grid;gap:6px;font-size:13px;color:var(--muted)}
    input{
      width:100%; padding:13px 12px; border-radius:12px; border:1px solid var(--border);
      background:#0b1220; color:var(--text); font-size:16px; outline:none;
    }
    input:focus{border-color:var(--accent2)}
    button{
      border:0; border-radius:13px; padding:13px 16px; font-size:15px; font-weight:700; cursor:pointer;
    }
    .primary{background:var(--accent);color:#052e16}
    .secondary{background:#1e293b;color:var(--text);border:1px solid var(--border)}
    .danger{background:#3f1d1d;color:#fecaca;border:1px solid #7f1d1d}
    .actions{display:flex;gap:10px;flex-wrap:wrap}
    .muted{color:var(--muted)} .small{font-size:13px}
    canvas{width:100%;height:240px;background:#0b1220;border-radius:14px;display:block}
    .history-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid #253244}
    .history-item:last-child{border-bottom:none}
    .history-date{font-weight:700}
    .history-stats{font-size:13px;color:var(--muted);margin-top:3px}
    .badge{font-size:12px;padding:4px 8px;border-radius:999px;background:#1e293b;color:#cbd5e1}
    .challenge{background:linear-gradient(135deg,#172554,#0f3b2f);border:1px solid #27516b}
    .challenge strong{display:block;margin-bottom:6px}
    .objective-row{
      display:grid;grid-template-columns:1fr 105px 95px 115px auto;gap:8px;align-items:end;
      padding:10px 0;border-bottom:1px solid #253244
    }
    .objective-row:last-child{border-bottom:none}
    @media(max-width:560px){.objective-row{grid-template-columns:1fr 90px}.objective-row .remove{grid-column:1/-1}}
    .legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
    .legend-item{font-size:12px;color:var(--muted)}
    .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
  
    .objective-list{display:grid;gap:10px}
    .objective-card{
      border:1px solid var(--border);
      background:#0b1220;
      border-radius:16px;
      padding:14px;
    }
    .objective-summary{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
    }
    .objective-main{min-width:0}
    .objective-title{
      font-size:17px;
      font-weight:800;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .objective-target{
      margin-top:4px;
      color:var(--muted);
      font-size:14px;
    }
    .objective-actions{
      display:flex;
      gap:8px;
      flex-shrink:0;
    }
    .objective-actions button{
      padding:8px 10px;
      font-size:12px;
    }
    .edit-panel{
      display:none;
      margin-top:14px;
      padding-top:14px;
      border-top:1px solid #253244;
    }
    .edit-panel.open{display:block}
    .edit-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:10px;
    }
    .edit-grid .wide{grid-column:1/-1}
    .compact-select{
      width:100%;
      padding:13px 10px;
      border-radius:12px;
      border:1px solid var(--border);
      background:#0b1220;
      color:var(--text);
      font-size:15px;
    }
    @media(max-width:520px){
      .objective-summary{align-items:flex-start}
      .objective-actions{flex-direction:column}
      .edit-grid{grid-template-columns:1fr 1fr}
    }

  
    .app-version{
      font-size:12px;
      color:#cbd5e1;
      background:#1e293b;
      border:1px solid var(--border);
      border-radius:999px;
      padding:5px 8px;
      white-space:nowrap;
    }
    .tab-page{display:none}
    .tab-page.active{display:block}
    .bottom-nav{
      position:fixed;
      left:50%;
      bottom:0;
      transform:translateX(-50%);
      width:min(820px,100%);
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:8px;
      padding:8px 12px calc(8px + env(safe-area-inset-bottom));
      background:rgba(15,23,42,.97);
      border-top:1px solid var(--border);
      z-index:900;
      backdrop-filter:blur(12px);
    }
    .nav-item{
      background:transparent;
      color:var(--muted);
      border:0;
      border-radius:14px;
      padding:8px 10px;
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:3px;
      font-size:12px;
      font-weight:700;
    }
    .nav-item.active{
      background:#1e293b;
      color:var(--text);
    }
    .nav-icon{font-size:21px;line-height:1.1}


    .workout-exercises{display:grid;gap:16px}
    .workout-exercise{
      padding-bottom:14px;
      border-bottom:1px solid #253244;
    }
    .workout-exercise:last-child{border-bottom:0;padding-bottom:0}
    .workout-exercise-head{
      display:flex;align-items:baseline;justify-content:space-between;gap:10px;
      margin-bottom:9px;
    }
    .workout-exercise-name{font-size:17px;font-weight:800}
    .workout-unit{font-size:12px;color:var(--muted)}
    .sets-row{
      display:flex;
      gap:9px;
      flex-wrap:wrap;
      align-items:flex-end;
    }
    .set-compact{
      display:grid;
      gap:4px;
      width:76px;
      color:var(--muted);
      font-size:12px;
    }
    .set-compact input{
      width:76px;
      min-width:0;
      padding:10px 8px;
      text-align:center;
      font-size:18px;
      font-weight:700;
      border-radius:11px;
    }
    .unit-after{font-size:12px;color:var(--muted);padding-bottom:11px}
    @media(max-width:380px){
      .set-compact,.set-compact input{width:68px}
      .sets-row{gap:7px}
    }


    .goal-options{display:grid;gap:10px;margin-top:10px}
    .goal-option{
      display:grid;grid-template-columns:auto 1fr 92px;gap:10px;align-items:center;
      padding:10px;border:1px solid #253244;border-radius:12px;background:#0f172a;
    }
    .goal-option input[type="checkbox"]{width:20px;height:20px}
    .goal-option input[type="number"]{padding:9px 8px;font-size:15px;text-align:center}
    .goal-lines{display:grid;gap:7px;margin-top:10px}
    .goal-line{font-size:13px;color:var(--muted)}
    .goal-line strong{color:var(--text)}


    .saved-workout{
      border:1px solid #27516b;
      background:linear-gradient(135deg,rgba(23,37,84,.55),rgba(15,59,47,.45));
      border-radius:14px;
      padding:12px;
      margin-bottom:12px;
    }
    .saved-workout-head{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:10px;
      margin-bottom:10px;
    }
    .saved-workout-title{
      font-weight:800;
      font-size:15px;
    }
    .saved-value{
      width:76px;
      min-height:43px;
      display:flex;
      align-items:center;
      justify-content:center;
      border:1px solid var(--border);
      background:#0b1220;
      border-radius:11px;
      font-size:18px;
      font-weight:800;
      color:var(--text);
    }
    .saved-note{
      color:var(--muted);
      font-size:12px;
      margin-top:8px;
    }


    .history-toggle{
      width:100%;
      margin-top:12px;
    }


/* v2.78 — Orange doux */
:root{
  --bg:#fffaf3 !important;
  --panel:#fffdf9 !important;
  --panel2:#fff6ec !important;
  --text:#2b211b !important;
  --muted:#8a7769 !important;
  --accent:#ff7a2f !important;
  --accent2:#ff9a5c !important;
  --warn:#f59e0b !important;
  --danger:#c94a3f !important;
  --border:#ead9c9 !important;
}
html,body{
  background:#fffaf3 !important;
  color:#2b211b !important;
}
body{
  background:
    radial-gradient(circle at top right,rgba(255,154,92,.12),transparent 34%),
    linear-gradient(180deg,#fffaf3 0%,#fff7ed 100%) !important;
}
.hero,.card,.objective-card,.saved-workout{
  background:#fffdf9 !important;
  border-color:#ead9c9 !important;
  box-shadow:0 8px 24px rgba(135,76,35,.06) !important;
}
.hero{
  background:linear-gradient(135deg,#fffdf9,#fff3e7) !important;
}
.subtitle,.muted,.metric-name,.goal,.history-stats,.legend-item,.workout-unit,.saved-note,.goal-line{
  color:#8a7769 !important;
}
input,select,.compact-select,.saved-value{
  background:#fffaf6 !important;
  color:#2b211b !important;
  border-color:#e5cdb9 !important;
}
input::placeholder{color:#b8a79a !important}
.progress{background:#f3e8dd !important}
.bar{background:linear-gradient(90deg,#ff9a5c,#ff7a2f) !important}
.primary{
  background:linear-gradient(90deg,#ff8b45,#ff7627) !important;
  color:#fff !important;
}
.secondary{
  background:#fff5ea !important;
  color:#a94d18 !important;
  border-color:#efc5a7 !important;
}
.danger{
  background:#fff0ed !important;
  color:#b43d34 !important;
  border-color:#e8b2ac !important;
}
.badge,.app-version{
  background:#fff0e3 !important;
  color:#b9551d !important;
  border-color:#efc5a7 !important;
}
.deadline{
  background:#fff0e3 !important;
  color:#b9551d !important;
}
.bottom-nav{
  background:rgba(255,250,243,.97) !important;
  border-top-color:#ead9c9 !important;
  box-shadow:0 -8px 24px rgba(135,76,35,.08) !important;
}
.nav-item{color:#8a7769 !important}
.nav-item.active{
  background:#fff0e3 !important;
  color:#d95d18 !important;
}
.workout-exercise,.history-item{border-bottom-color:#eee0d3 !important}
.edit-panel{border-top-color:#eee0d3 !important}
.goal-option{
  background:#fffaf6 !important;
  border-color:#ead9c9 !important;
}
.saved-workout{
  background:linear-gradient(135deg,#fff8ef,#fff1e2) !important;
  border-color:#efc5a7 !important;
}
.challenge{
  background:linear-gradient(135deg,#fff1e4,#ffe2c7) !important;
  border-color:#efc5a7 !important;
  color:#2b211b !important;
}
canvas{background:#fffaf6 !important}


/* v2.78 — Orange doux, refonte UI */
:root{
  --bg:#f7efe5 !important;
  --panel:#fffaf4 !important;
  --panel2:#fce9d6 !important;
  --text:#2d2119 !important;
  --muted:#8c7869 !important;
  --accent:#ee6b2f !important;
  --accent2:#f39a62 !important;
  --danger:#b94a3f !important;
  --border:#ead7c5 !important;
}
html,body{background:#f7efe5 !important;color:#2d2119 !important}
body{
  background:linear-gradient(180deg,#f8eee3 0%,#f4e8dc 100%) !important;
}
.app{
  max-width:760px !important;
  padding:18px 16px 105px !important;
}
.hero{
  padding:20px 20px 18px !important;
  border:0 !important;
  border-radius:24px !important;
  background:linear-gradient(135deg,#f47c3c 0%,#ee652c 100%) !important;
  box-shadow:0 12px 30px rgba(157,78,35,.16) !important;
}
.hero h1{color:white !important;font-size:30px !important;line-height:1.05 !important}
.hero .subtitle{color:rgba(255,255,255,.82) !important;font-size:15px !important}
.hero .deadline{
  display:inline-flex !important;
  background:rgba(255,255,255,.17) !important;
  color:white !important;
  border:1px solid rgba(255,255,255,.2) !important;
  padding:7px 11px !important;
  border-radius:999px !important;
}
.app-version{
  background:rgba(255,255,255,.16) !important;
  color:white !important;
  border-color:rgba(255,255,255,.25) !important;
}
#metrics{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:11px !important;
  margin-top:16px !important;
}
#metrics .card{
  padding:15px !important;
  min-height:145px !important;
  border:0 !important;
  border-radius:20px !important;
  background:#fffaf4 !important;
  box-shadow:0 5px 16px rgba(113,72,43,.07) !important;
}
.metric-name{font-size:14px !important;color:#8c7869 !important}
.metric-value{font-size:31px !important;line-height:1 !important;margin-top:4px !important}
.goal{font-size:12px !important;color:#9a8677 !important}
.progress{height:7px !important;background:#efe2d6 !important;margin-top:12px !important}
.bar{background:linear-gradient(90deg,#f49a62,#ee6b2f) !important}
.goal-lines{margin-top:8px !important}
.goal-line{font-size:11.5px !important;line-height:1.35 !important}
.section-title{
  font-size:22px !important;
  margin:25px 2px 12px !important;
}
.challenge{
  border:0 !important;
  border-radius:20px !important;
  padding:17px !important;
  background:#f9dfc8 !important;
  box-shadow:none !important;
}
.challenge h3,.challenge strong{color:#7e3b18 !important}
.card{
  border:0 !important;
  border-radius:22px !important;
  background:#fffaf4 !important;
  box-shadow:0 5px 18px rgba(113,72,43,.07) !important;
}
#workoutForm.card{padding:16px !important}
#workoutForm > label:first-child{
  display:grid !important;
  grid-template-columns:auto 1fr !important;
  align-items:center !important;
  gap:12px !important;
}
#workoutForm > label:first-child input{
  margin-top:0 !important;
  padding:10px 12px !important;
}
.workout-exercise{padding:12px 0 !important}
.workout-exercise-head{margin-bottom:7px !important}
.workout-exercise-name{font-size:16px !important}
.set-compact,.set-compact input{width:64px !important}
.set-compact input{
  padding:9px 5px !important;
  background:#fff !important;
  border:1px solid #e6d2bf !important;
  border-radius:12px !important;
}
.saved-workout{
  padding:14px !important;
  border:0 !important;
  border-radius:18px !important;
  background:#fff2e6 !important;
  box-shadow:none !important;
}
.saved-value{
  width:64px !important;
  min-height:42px !important;
  background:#fff !important;
}
.primary{
  border:0 !important;
  border-radius:14px !important;
  background:#ee6b2f !important;
  box-shadow:none !important;
}
.secondary{
  background:#f8e8d9 !important;
  color:#9c4b22 !important;
  border-color:#ead0ba !important;
}
.objective-card{
  padding:13px !important;
  border:0 !important;
  border-radius:18px !important;
  background:#fffaf4 !important;
  box-shadow:0 4px 14px rgba(113,72,43,.06) !important;
}
.history-item{padding:14px 0 !important}
.history-date{font-size:17px !important}
.badge{
  background:#f7e4d3 !important;
  color:#a44d20 !important;
  border:0 !important;
}
.bottom-nav{
  width:min(760px,100%) !important;
  padding:8px 14px calc(8px + env(safe-area-inset-bottom)) !important;
  background:rgba(255,250,244,.96) !important;
  border-top:0 !important;
  box-shadow:0 -5px 22px rgba(94,61,37,.09) !important;
}
.nav-item{
  min-height:58px !important;
  border-radius:17px !important;
  color:#8b796c !important;
}
.nav-item.active{
  background:#f8dfca !important;
  color:#c95724 !important;
}
.nav-icon{font-size:20px !important}
canvas{
  background:#fffaf4 !important;
  border-radius:16px !important;
}
@media(max-width:420px){
  .app{padding-left:14px !important;padding-right:14px !important}
  .hero h1{font-size:27px !important}
  #metrics{gap:9px !important}
  #metrics .card{padding:13px !important;min-height:138px !important}
}

/* v6.18 — multi-objectifs, planning souple et séances supplémentaires */
.session-program-zone{margin:16px 0 4px;padding:15px;border:1px solid #eadfd8;border-radius:16px;background:#fffaf6}
.session-program-label{margin-bottom:10px;color:#554941;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.session-program-selector{display:flex;flex-wrap:wrap;gap:10px;overflow:visible;padding:2px 0 12px}
.session-program-selector::-webkit-scrollbar{display:none}
.session-program-selector button{flex:1 1 145px;min-width:0;min-height:48px;margin:0;padding:9px 14px;border:1px solid #dfd3c8;border-radius:999px;background:#fffaf5;color:#796d64;font:inherit;font-weight:800;white-space:normal;line-height:1.15;text-align:center;box-shadow:none}
.session-program-selector button.active{border-color:var(--objective-color,#f56a25);background:var(--objective-color,#f56a25);color:#fff;box-shadow:0 7px 16px color-mix(in srgb,var(--objective-color,#f56a25) 24%,transparent)}
.session-program-selector button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}
.session-program-hint{margin-top:8px;font-size:11px;font-weight:800}
.session-program-hint.is-planned{color:#16835d}
.session-program-hint.is-extra{color:#a45b22}
.multi-objective-card{margin-top:15px;padding:15px;border:1px solid #e7ddd7;border-left:6px solid var(--objective-color);border-radius:17px;background:#fff}
.multi-objective-card-head{display:grid;grid-template-columns:18px minmax(0,1fr) 38px;align-items:end;gap:10px}
.multi-objective-color{width:16px;height:44px;border-radius:8px;background:var(--objective-color)}
.multi-objective-card-head label{margin:0!important;color:#766960;font-size:11px;font-weight:800}
.multi-objective-card-head input{margin-top:5px!important;min-height:44px!important;font-size:15px!important;font-weight:850!important}
.multi-objective-remove{width:38px;height:38px;margin:0 0 3px;padding:0;border:1px solid #efc8c2;border-radius:12px;background:#fff7f6;color:#c34134;font-size:24px;font-weight:800}
.multi-objective-subtitle{margin:15px 0 8px;color:#4d423b;font-size:12px;font-weight:900}
.multi-objective-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.multi-objective-weekdays button{aspect-ratio:1/1;min-width:0;margin:0;padding:0;border:1px solid #e0d5cf;border-radius:50%;background:#fff;color:#766961;font-size:10px;font-weight:850}
.multi-objective-weekdays button.active{border-color:var(--objective-color);background:var(--objective-color);color:#fff}
.multi-objective-exercises{display:flex;flex-wrap:wrap;gap:7px}
.multi-objective-exercises label{position:relative;margin:0!important}
.multi-objective-exercises input{position:absolute;opacity:0;pointer-events:none}
.multi-objective-exercises span{display:block;padding:9px 12px;border:1px solid #e2d8d1;border-radius:12px;background:#fff;color:#665b54;font-size:11px;font-weight:800}
.multi-objective-exercises input:checked+span{border-color:var(--objective-color);background:color-mix(in srgb,var(--objective-color) 12%,white);color:#382f2a}
.multi-objective-card-foot{margin-top:12px;padding-top:11px;border-top:1px solid #eee7e2;color:#897a71;font-size:10px;font-weight:750}
.program-add-btn{width:100%;margin-top:14px}
.program-test-note{margin-top:10px;color:#92745e;font-size:10px;text-align:center}
.session-objective-empty{display:grid;gap:5px;padding:18px;color:#6f625a}
.session-objective-empty span{font-size:12px}
.programs-settings-card:not(.editing) .multi-objective-exercises{pointer-events:none}
@media(max-width:380px){
  .multi-objective-weekdays{gap:3px}
  .multi-objective-weekdays button{font-size:9px}
}


/* v2.78 — identité visuelle avec logo bras */
.brand-row{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand-logo{
  width:46px;
  height:46px;
  flex:0 0 46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.25);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}
.brand-logo svg{
  width:30px;
  height:30px;
  display:block;
}
.brand-copy{
  min-width:0;
  flex:1;
}
.nav-icon svg{
  width:22px;
  height:22px;
  display:block;
}
.nav-icon{
  display:grid;
  place-items:center;
}


/* v2.78 — biceps clairement identifiable */
.biceps-logo{
  font-size:29px !important;
  line-height:1 !important;
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif !important;
  background:rgba(255,255,255,.20) !important;
  border:1px solid rgba(255,255,255,.30) !important;
}


/* v2.78 — logo original de la maquette choisie */
.original-logo{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
}
.original-logo img{
  width:48px;
  height:52px;
  object-fit:contain;
  display:block;
}


/* v2.78 — logo fidèle au Style B */
.style-b-logo{
  width:58px !important;
  height:58px !important;
  flex:0 0 58px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.style-b-logo img{
  width:58px;
  height:58px;
  object-fit:contain;
  display:block;
}


/* v2.78 — logo extrait directement de la maquette Style B */
.reference-logo{
  width:62px !important;height:62px !important;flex:0 0 62px !important;
  border-radius:50% !important;overflow:hidden !important;
  background:#fffaf4 !important;border:0 !important;box-shadow:none !important;
}
.reference-logo img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.08);
}


/* v2.78 — historique simplifié */
.history-item > div:first-child{width:100% !important;}


/* v2.78 — auto-évaluation de la charge du jour */

/* v3.37 — État du jour intégré à Ajouter ma séance */

/* v3.38 — État du jour repliable */
.session-load-embedded{
  padding:0 !important;
  overflow:hidden;
}
.session-load-toggle{
  width:100%;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px 18px;
  text-align:left;
  color:#33261f;
  cursor:pointer;
}
.session-load-toggle > span:first-child{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.session-load-toggle strong{
  font-size:22px;
  font-weight:900;
  line-height:1.1;
}
.session-load-toggle small{
  font-size:12px;
  color:#8b7a70;
  font-weight:700;
}
.session-load-chevron{
  flex:0 0 auto;
  font-size:20px;
  font-weight:900;
  color:#c95b26;
  transition:transform .18s ease;
}
.session-load-content{
  padding:0 16px 18px;
}
.session-load-embedded.collapsed .session-load-content{
  display:none;
}
.session-load-embedded.collapsed .session-load-chevron{
  transform:rotate(180deg);
}

.session-load-embedded{
  margin:16px 0 22px;
  padding:18px 16px;
  border:1px solid #eadfd7;
  border-radius:18px;
  background:#fffdfb;
}
.session-load-title{
  margin:0 0 6px;
  font-size:22px;
  font-weight:900;
  color:#33261f;
}
.session-load-embedded .load-intro{
  margin-bottom:14px;
}
.session-load-embedded .load-result{
  margin-top:14px;
}

.load-card{margin-bottom:18px}
.load-title{font-size:20px;font-weight:800;margin-bottom:5px}
.load-intro{font-size:13px;color:var(--muted);margin-bottom:14px}
.load-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #eee0d3}
.load-row:last-of-type{border-bottom:0}
.load-label{font-weight:650;font-size:14px}
.load-scale{display:flex;gap:6px}
.load-btn{width:38px;height:38px;padding:0;border-radius:12px;border:1px solid #e2cdbb;background:#fffaf4;color:#6f6257;font-weight:800}
.load-btn.selected{background:#ee6b2f;color:white;border-color:#ee6b2f}
.load-result{margin-top:14px;padding:12px 14px;border-radius:16px;background:#fff4e8;border:1px solid #f0d5bd;display:none}
.load-result.show{display:block}
.load-score{font-weight:800;font-size:16px}
.load-advice{font-size:13px;color:#765f4e;margin-top:3px}
.load-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:10px}
.history-load{font-size:12px;color:#a45b32;margin-top:5px;font-weight:650}


/* v2.78 — respiration entre Défi du jour, Charge et Ajouter ma séance */
#dailyLoadCard{
  margin-top:28px !important;
  margin-bottom:30px !important;
}


/* v2.78 — échelle explicite + charge bien visible dans l'historique */
.load-scale{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:7px !important;
  width:100% !important;
}
.load-btn{
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  padding:9px 8px !important;
  display:grid !important;
  gap:2px !important;
  text-align:center !important;
  line-height:1.1 !important;
}
.load-btn .load-number{
  font-size:16px !important;
  font-weight:800 !important;
}
.load-btn .load-word{
  font-size:10px !important;
  font-weight:650 !important;
  opacity:.82 !important;
}
.load-row{
  grid-template-columns:1fr !important;
  gap:8px !important;
}
.load-legend{display:none !important}
.history-load-card{
  margin-top:8px;
  padding:8px 10px;
  border-radius:12px;
  background:#fff2e6;
  border:1px solid #efd5bf;
  font-size:12px;
  color:#7b5339;
}
.history-load-card strong{color:#9a4b22}
.history-load-details{
  margin-top:4px;
  color:#8a7769;
  line-height:1.45;
}


/* v2.78 — séparation plus nette Défi / Charge */
#dailyLoadCard{
  margin-top:42px !important;
  margin-bottom:30px !important;
}


/* v2.78 — durée min/sec + brouillon automatique */
.duration-set{
  display:flex;
  align-items:flex-end;
  gap:5px;
}
.duration-part{
  display:grid;
  gap:4px;
  width:58px;
  color:var(--muted);
  font-size:11px;
}
.duration-part input{
  width:58px !important;
  padding:9px 5px !important;
  text-align:center;
  font-size:17px !important;
  font-weight:700;
}
.duration-sep{
  font-size:12px;
  color:var(--muted);
  padding-bottom:11px;
}
.draft-note{
  display:none;
  margin-top:8px;
  font-size:11px;
  color:#a85a2c;
}
.draft-note.show{display:block}


/* v2.78 — Accueil plus compact : Charge + Ajouter ma séance */
#dailyLoadCard{
  padding:20px 22px !important;
  margin-top:30px !important;
  margin-bottom:24px !important;
}
#dailyLoadCard h2,
#dailyLoadCard h3{
  margin-top:0 !important;
  margin-bottom:4px !important;
}
#dailyLoadCard .load-intro,
#dailyLoadCard > p{
  margin-top:2px !important;
  margin-bottom:12px !important;
  line-height:1.25 !important;
}
.load-row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 205px !important;
  align-items:center !important;
  gap:10px !important;
  padding:9px 0 !important;
}
.load-row + .load-row{
  border-top:1px solid rgba(130,95,70,.14);
}
.load-row > div:first-child,
.load-label{
  margin:0 !important;
  font-size:14px !important;
  line-height:1.15 !important;
}
.load-scale{
  gap:5px !important;
}
.load-btn{
  min-height:43px !important;
  padding:6px 4px !important;
  border-radius:12px !important;
}
.load-btn .load-number{
  font-size:15px !important;
}
.load-btn .load-word{
  font-size:9px !important;
}
.load-summary,
#loadSummary{
  margin-top:12px !important;
  padding:12px 14px !important;
  border-radius:14px !important;
}
.load-summary p,
#loadSummary p{
  margin:3px 0 0 !important;
  line-height:1.25 !important;
  font-size:12px !important;
}

/* Séance : moins d'espace vertical sans réduire les zones tactiles */
#workoutForm{
  padding-top:18px !important;
}
#workoutForm > label:first-child{
  margin-bottom:12px !important;
}
.workout-exercise{
  padding:12px 0 !important;
}
.workout-exercise-head{
  margin-bottom:8px !important;
}
.workout-exercise-name{
  font-size:17px !important;
}
.workout-unit{
  font-size:11px !important;
}
.sets-row{
  gap:8px !important;
}
.set-compact{
  gap:4px !important;
  font-size:11px !important;
}
.set-compact input{
  width:70px !important;
  min-height:48px !important;
  padding:7px !important;
}
.duration-set{
  gap:4px !important;
}
.duration-part{
  width:54px !important;
  font-size:10px !important;
}
.duration-part input{
  width:54px !important;
  min-height:46px !important;
  padding:7px 4px !important;
}
.duration-sep{
  padding-bottom:10px !important;
}
#workoutForm button[type="submit"]{
  margin-top:12px !important;
}

/* Sur les écrans très étroits, garder une ligne lisible */
@media (max-width:390px){
  .load-row{
    grid-template-columns:minmax(0,1fr) 190px !important;
    gap:7px !important;
  }
  #dailyLoadCard{
    padding-left:18px !important;
    padding-right:18px !important;
  }
}


/* v2.78 — statut séance du jour dans l'en-tête */
.today-status{
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 11px;
  border-radius:999px;
  font-size:12px;
  font-weight:750;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.24);
  color:white;
}
.today-status.done{
  background:rgba(255,255,255,.24);
}
.today-status .status-dot{
  font-size:14px;
  line-height:1;
}


/* v2.78 — statut séance visible dans le bandeau orange */
#todayWorkoutStatus.today-status{
  display:flex !important;
  width:max-content;
  max-width:100%;
  margin-top:12px !important;
  padding:8px 12px !important;
  align-items:center;
  gap:7px;
  border-radius:999px;
  background:rgba(255,255,255,.20) !important;
  border:1px solid rgba(255,255,255,.34) !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:750 !important;
  visibility:visible !important;
  opacity:1 !important;
}


/* v2.78 — objectif personnalisable multiligne + statut séance renforcé */
#todayWorkoutStatus.today-status{
  width:100% !important;
  justify-content:center !important;
  margin-top:14px !important;
  padding:11px 14px !important;
  border-radius:16px !important;
  background:rgba(255,255,255,.18) !important;
  border:2px solid rgba(255,255,255,.45) !important;
  color:#fff !important;
  font-size:14px !important;
  font-weight:850 !important;
  letter-spacing:.1px;
  box-shadow:0 6px 18px rgba(106,48,19,.12);
}
#todayWorkoutStatus.done{
  background:#fff7ef !important;
  color:#b44d1d !important;
  border-color:#fff !important;
}
#todayWorkoutStatus.done .status-dot{
  color:#d75d22 !important;
}
#todayWorkoutStatus .status-dot{
  font-size:17px !important;
}
#currentObjectiveText{
  max-width:100%;
  white-space:normal;
  line-height:1.25;
}


/* v2.78 — objectif et statut séance uniquement sur Accueil */
body:has(#tab-suivi.active) #currentObjectiveText,
body:has(#tab-suivi.active) #todayWorkoutStatus,
body:has(#tab-parametres.active) #currentObjectiveText,
body:has(#tab-parametres.active) #todayWorkoutStatus{
  display:none !important;
}


/* v2.78 — règle d'espacement entre blocs principaux */
#tab-parametres.active{
  padding-top:22px !important;
}
#tab-suivi.active{
  padding-top:22px !important;
}
/* Évite que le premier cadran d'un onglet touche le bandeau supérieur */
.tab-page.active > .card:first-child,
.tab-page.active > section.card:first-child{
  margin-top:0 !important;
}


/* v2.78 — statut positif de la séance du jour en vert */
#todayWorkoutStatus.done{
  background:#eaf8ee !important;
  color:#237a3b !important;
  border-color:#b9e4c5 !important;
  box-shadow:0 6px 18px rgba(35,122,59,.12) !important;
}
#todayWorkoutStatus.done .status-dot{
  color:#237a3b !important;
}


/* v2.78 — correction visuelle fidèle à la maquette */
.objective-textarea{
  width:100%;
  min-height:92px;
  resize:vertical;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid #e4cdb8;
  background:#fffaf6;
  color:#2d2119;
  font:inherit;
  font-size:16px;
  line-height:1.35;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
}
.objective-textarea:focus{
  border-color:#ee6b2f;
  box-shadow:0 0 0 3px rgba(238,107,47,.12);
}
#todayWorkoutStatus.today-status{
  width:max-content !important;
  max-width:100% !important;
  display:inline-flex !important;
  justify-content:flex-start !important;
  margin-top:12px !important;
  padding:8px 14px !important;
  border-radius:999px !important;
  font-size:13px !important;
  font-weight:800 !important;
  box-shadow:none !important;
}
#todayWorkoutStatus.done{
  background:#35b957 !important;
  color:#fff !important;
  border:1px solid #2da44b !important;
}
#todayWorkoutStatus.done .status-dot{
  color:#fff !important;
}


/* v2.78 — sections cohérentes sur tous les onglets */
:root{
  --space-card:16px;
  --space-section:28px;
}
/* Le header reste riche sur Accueil, mais devient compact sur Suivi/Paramètres. */
body:has(#tab-suivi.active) .hero,
body:has(#tab-parametres.active) .hero{
  padding:14px 18px !important;
  border-radius:22px !important;
  margin-bottom:18px !important;
}

body:has(#tab-suivi.active) .hero .brand-logo,
body:has(#tab-parametres.active) .hero .brand-logo{width:40px;height:40px;flex-basis:40px}
body:has(#tab-suivi.active) .hero h1,
body:has(#tab-parametres.active) .hero h1{font-size:24px !important}
#tab-suivi.active,#tab-parametres.active{padding-top:0 !important}
#tab-suivi .section-title{margin:0 2px 12px !important}
#tab-suivi .card + .section-title{margin-top:var(--space-section) !important}
/* Accueil : le titre Défi du jour vit dans la carte, sans doublon. */
.home-first-section{margin-top:var(--space-section) !important}
.challenge strong{font-size:18px !important;margin-bottom:7px !important}
/* Règle v2.78 : tous les grands titres de section vivent hors des cartes. */
.settings-section{margin:0 !important}
.settings-section + .settings-section{margin-top:var(--space-section) !important}
#tab-parametres .section-title{margin:0 2px 12px !important}
#tab-parametres .settings-section > .card{margin:0 !important}
.objective-textarea{min-height:84px}
@media(max-width:420px){
  .home-first-section{margin-top:24px !important}
  .settings-section + .settings-section{margin-top:24px !important}
}


/* v2.78 — règle UI globale : chaque nom de section est intégré dans sa carte */
.card-section-title{font-size:22px !important;line-height:1.15;margin:0 0 16px !important;color:var(--text);font-weight:800}
.section-card{margin-top:28px !important}
#tab-suivi .section-card:first-child,#tab-parametres .settings-section:first-child .section-card{margin-top:0 !important}
#tab-suivi .section-card + .section-card{margin-top:28px !important}
.settings-section + .settings-section{margin-top:28px !important}
.settings-section > .card{margin:0 !important}
.challenge .card-section-title{color:#7e3b18 !important;margin-bottom:8px !important}
#dailyLoadCard .card-section-title{margin-bottom:6px !important}
#tab-accueil > .section-card{margin-top:28px !important}
@media(max-width:420px){.card-section-title{font-size:21px !important}.section-card,#tab-suivi .section-card + .section-card,.settings-section + .settings-section,#tab-accueil > .section-card{margin-top:24px !important}}

/* v2.78 — identité d'application commune aux 3 onglets */
.hero .subtitle{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
/* Le nom, le logo, la version et la baseline sont invariants sur Accueil / Suivi / Paramètres.
   Seuls l'objectif du moment et le statut de séance sont spécifiques à Accueil. */


/* v2.78 — micro-ajustements validés + chronomètre pour exercices en durée */
.hero .subtitle{ margin-top:7px !important; }

.app-owner{
  text-align:center;
  font-size:11px;
  color:#9a8577;
  padding:18px 12px 86px;
}

.duration-set{
  align-items:flex-end !important;
  flex-wrap:wrap;
}
.chrono-btn{
  min-height:46px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid #e4cdb8;
  background:#fffaf6;
  color:#b44d1d;
  font-weight:800;
  font-size:12px;
  cursor:pointer;
}
.chrono-overlay{
  position:fixed;
  inset:0;
  z-index:2000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(45,33,25,.66);
}
.chrono-card{
  width:min(390px,100%);
  border-radius:24px;
  background:#fffaf6;
  padding:22px;
  box-shadow:0 20px 60px rgba(45,33,25,.25);
  text-align:center;
}
.chrono-title{
  font-size:18px;
  font-weight:850;
  margin-bottom:6px;
}
.chrono-subtitle{
  color:#8c7869;
  font-size:12px;
  margin-bottom:18px;
}
.chrono-display{
  font-variant-numeric:tabular-nums;
  font-size:46px;
  line-height:1;
  font-weight:900;
  letter-spacing:1px;
  margin:16px 0 22px;
  color:#2d2119;
}
.chrono-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.chrono-actions button{
  min-height:48px;
}
.chrono-actions .chrono-stop{
  grid-column:1 / -1;
}


/* v2.78 — bouton Chrono visible pour chaque série en durée */
.duration-set{
  display:grid !important;
  grid-template-columns:54px auto 54px !important;
  column-gap:6px !important;
  row-gap:8px !important;
  align-items:end !important;
  width:max-content;
}
.duration-set .chrono-btn{
  grid-column:1 / -1 !important;
  width:100% !important;
  min-height:42px !important;
  border-radius:12px !important;
  border:1px solid #efc5a7 !important;
  background:#fff2e6 !important;
  color:#b44d1d !important;
  font-weight:800 !important;
  font-size:12px !important;
}


/* v2.78 — minuteur séries + chronomètre global de séance */
.duration-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  grid-column:1 / -1;
}
.duration-actions button{
  min-height:42px;
  border-radius:12px;
  font-weight:800;
  font-size:12px;
}
.timer-btn{
  border:1px solid #e7d2bd;
  background:#fffaf6;
  color:#7b6658;
}
.session-timer-bar{
  position:relative;
  top:auto;
  z-index:90;
  margin:12px 0 18px;
  padding:10px 12px;
  border-radius:16px;
  background:#fffaf4;
  border:1px solid #ecd7c3;
  box-shadow:0 6px 18px rgba(85,55,34,.08);
  display:flex;
  align-items:center;
  gap:10px;
}

/* v3.46 — le chrono ne reste épinglé que lorsqu’une séance est en cours ou en pause */
#sessionTimerBar.is-active{
  position:sticky;
  top:8px;
  z-index:90;
}

.session-timer-display{
  font-variant-numeric:tabular-nums;
  font-size:22px;
  font-weight:900;
  min-width:78px;
}
.session-timer-label{
  flex:1;
  min-width:0;
}
.session-timer-label strong{display:block;font-size:13px}
.session-timer-label span{font-size:11px;color:#8c7869}
.session-timer-bar button{
  min-height:40px;
  padding:8px 10px;
  border-radius:12px;
  font-size:12px;
  font-weight:800;
}
.session-timer-start{background:#ee6b2f;color:#fff;border:0}
.session-timer-stop{background:#eef8f0;color:#2c7a43;border:1px solid #c5e7cf}

.rest-timer-wrap{
  margin:-8px 0 18px;
}
.rest-timer-bar{
  position:relative;
  top:auto;
  z-index:1;
  margin:0;
  background:#fffdf8;
}
.rest-timer-presets{
  display:flex;
  gap:7px;
  justify-content:flex-start;
  padding:8px 10px 0;
}
.rest-timer-presets button{
  min-height:32px;
  padding:5px 12px;
  border-radius:999px;
  border:1px solid #e5d2bf;
  background:#fffaf4;
  color:#806b5d;
  font-size:11px;
  font-weight:800;
}
.rest-timer-presets button.active{
  background:#fff0e3;
  border-color:#ff9c66;
  color:#c95520;
}
.rest-timer-presets button:disabled{
  opacity:.5;
}
.rest-timer-bar.done{
  background:#f1faf3;
  border-color:#bfe1c8;
}
@media(max-width:480px){
  .rest-timer-bar{
    gap:7px;
    padding:9px 10px;
  }
  .rest-timer-bar .session-timer-display{
    min-width:66px;
    font-size:20px;
  }
  .rest-timer-bar button{
    padding:7px 8px;
    font-size:11px;
  }
}

/* v6.06 — proposition 3 : choix adaptatif du type d’objectif. */
.v553-measure-tabs.v606-retired-tabs{display:none!important}
.v606-adaptive-measure{grid-column:1/-1;margin:0;padding:18px 0 4px;border-top:1px solid #eee4dc}
.v606-field-title{margin:0 0 9px;color:#30241d;font-size:16px;font-weight:900}
.v606-type-tabs{display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;margin-bottom:17px;border:1px solid #e8dcd4;border-radius:15px;background:#fff}
.v606-type-tabs button{min-width:0;min-height:48px;padding:8px 6px;border:0;border-right:1px solid #e8dcd4;border-radius:0;background:#fff;color:#352820;font-size:14px;font-weight:850}
.v606-type-tabs button:last-child{border-right:0}
.v606-type-tabs button.active{background:#f56a25;color:#fff;box-shadow:0 6px 14px rgba(238,107,47,.2)}
.v606-measure-title{margin-top:2px}
.v606-measure-chips{display:flex;flex-wrap:wrap;gap:9px}
.v606-measure-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:46px;padding:9px 14px;border:1px solid #e4d8d0;border-radius:15px;background:#fff;color:#352820;font-size:14px;font-weight:850}
.v606-measure-chip span{color:#f56a25;font-size:18px}
.v606-measure-chip.active{border-color:#f56a25;background:#f56a25;color:#fff;box-shadow:0 6px 14px rgba(238,107,47,.18)}
.v606-measure-chip.active span{color:#fff}
.v606-measure-help{margin:10px 2px 2px;color:#8a7a70;font-size:13px}
.v607-goal-mount{position:relative;margin-top:18px}
.v607-goal-mount:empty{display:none}
.v607-goal-mount .standard-goal{display:grid!important;gap:10px!important;margin:0!important;color:#30241d;font-size:16px!important;font-weight:900!important}
.v607-goal-mount .standard-goal input{width:100%!important;min-height:62px!important;margin:0!important;padding:12px 70px 12px 18px!important;border:2px solid #f56a25!important;border-radius:17px!important;background:#fff!important;color:#2d211a!important;font-size:31px!important;font-weight:950!important;text-align:center!important;box-shadow:none!important}
.v607-goal-unit{position:absolute;right:24px;bottom:19px;z-index:2;color:#f56a25;font-size:17px;font-weight:900;pointer-events:none}
.v606-series-choice{display:flex!important;align-items:center;justify-content:space-between;gap:14px;margin-top:17px;padding:15px 0 6px;border-top:1px solid #eee5df;font-weight:850}
.v606-series-choice[hidden]{display:none!important}
.v606-series-toggle{appearance:none;width:52px!important;height:30px!important;min-height:30px!important;margin:0!important;padding:0!important;border:0!important;border-radius:99px!important;background:#ddd7d3!important;box-shadow:none!important;transition:.2s}
.v606-series-toggle:before{content:"";display:block;width:24px;height:24px;margin:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.2s}
.v606-series-toggle:checked{background:#f56a25!important}
.v606-series-toggle:checked:before{transform:translateX(22px)}
.v607-series-panel{margin-top:14px;padding:17px;border:1px solid #eadfd8;border-radius:17px;background:#fff}
.v607-series-panel-title{color:#30241d;font-size:17px;font-weight:900}
.v607-series-panel-help{margin-top:4px;color:#897a70;font-size:13px;line-height:1.4}
.v607-series-controls{display:grid;gap:12px;margin-top:14px}
.v607-series-controls>label{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin:0!important;padding:0!important;font-size:16px;font-weight:850}
.v607-series-controls .ex-sets{width:116px!important;margin:0!important}
.v607-series-panel.is-disabled{background:#faf8f6;color:#aaa19b}
.v607-series-panel.is-disabled .v607-series-panel-title,.v607-series-panel.is-disabled .v607-series-panel-help{color:#aaa19b}
.v607-series-panel.is-disabled .v607-series-controls{display:none!important}
.objective-card .goal-options{display:none!important}
.objective-card.v606-series-disabled .ex-sets,.objective-card.v606-series-disabled .v592-validation-box{pointer-events:none}
.objective-card.v606-series-disabled .v592-validation-box{display:none!important}
.v606-adaptive-measure~.target-compact-zone,.v606-adaptive-measure~.edit-grid.v562-empty-grid{display:none!important}
@media(max-width:430px){
  .v606-type-tabs button{font-size:12px;padding-inline:4px}
  .v606-measure-chip{flex:1 1 calc(50% - 9px);padding-inline:8px}
  .v607-goal-mount .standard-goal input{font-size:28px!important}
}

/* v6.02 — dialogues, notifications et erreurs de saisie harmonisés. */
.app-dialog-modal .progress-modal-dialog{
  width:min(450px,100%);
  padding:30px 24px 24px;
  text-align:center;
  border:1px solid #f2d5c4;
}
.app-dialog-modal .home-section-title{
  margin:14px 34px 8px;
  padding:0;
  font-size:24px;
}
.app-dialog-modal p{
  margin:0 auto 24px;
  max-width:360px;
  color:#766961;
  font-size:16px;
  line-height:1.5;
}
.app-dialog-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  margin:0 auto;
  border:2px solid #f4b28d;
  border-radius:50%;
  background:#fff0e6;
  color:#ee6b2f;
  font-size:30px;
  font-weight:900;
}
.app-dialog-modal[data-type="danger"] .app-dialog-icon,
.app-dialog-modal[data-type="error"] .app-dialog-icon{
  border-color:#efb5b1;
  background:#fff1f0;
  color:#c73b34;
}
.app-dialog-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.app-dialog-actions button{min-height:52px;margin:0}
.app-dialog-modal[data-type="danger"] #appDialogConfirm,
.app-dialog-modal[data-type="error"] #appDialogConfirm{
  border-color:#c73b34;
  background:#c73b34;
  color:#fff;
}
.app-dialog-actions #appDialogCancel[hidden]{display:none!important}
.app-dialog-actions #appDialogCancel[hidden] + #appDialogConfirm{grid-column:1/-1}

.app-toast-region{
  position:fixed;
  z-index:9500;
  left:50%;
  bottom:calc(96px + env(safe-area-inset-bottom,0px));
  width:min(420px,calc(100% - 32px));
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,14px);
  transition:opacity .2s ease,transform .2s ease;
}
.app-toast-region.show{opacity:1;transform:translate(-50%,0)}
.app-toast{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 16px;
  border:1px solid #cfe8d8;
  border-radius:16px;
  background:#fff;
  color:#2e4938;
  box-shadow:0 12px 32px rgba(31,22,18,.2);
  font-weight:800;
}
.app-toast-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:50%;
  background:#22c55e;
  color:#fff;
  font-size:17px;
}
.field-invalid{border-color:#c73b34!important;box-shadow:0 0 0 3px rgba(199,59,52,.12)!important}
.app-field-error{
  margin-top:7px;
  color:#b53630;
  font-size:13px;
  font-weight:750;
  line-height:1.35;
}
@media(max-width:480px){
  .app-dialog-modal{padding:18px}
  .app-dialog-modal .progress-modal-dialog{padding:28px 20px 20px;border-radius:24px}
  .app-dialog-modal .home-section-title{font-size:22px}
  .app-dialog-actions{grid-template-columns:1fr}
  .app-dialog-actions #appDialogCancel[hidden] + #appDialogConfirm{grid-column:auto}
}


/* v3.36 — harmonisation Chrono / Minuteur */
#sessionTimerBar,
#restTimerBar{
  display:grid;
  grid-template-columns:92px minmax(0,1fr) 110px 72px;
  align-items:center;
  gap:10px;
  padding:10px 14px;
}
#sessionTimerBar .session-timer-display,
#restTimerBar .session-timer-display{
  min-width:0;
  width:92px;
  margin:0;
  text-align:left;
  font-size:24px;
  line-height:1;
}
#sessionTimerBar .session-timer-label,
#restTimerBar .session-timer-label{
  min-width:0;
  width:auto;
  margin:0;
  align-self:center;
}
#sessionTimerBar .session-timer-label strong,
#restTimerBar .session-timer-label strong{
  display:block;
  margin:0 0 3px;
  line-height:1.15;
}
#sessionTimerBar .session-timer-label span,
#restTimerBar .session-timer-label span{
  display:block;
  line-height:1.15;
}
#sessionTimerBar .session-timer-start,
#restTimerBar .session-timer-start{
  width:110px;
  min-width:110px;
  height:54px;
  padding:0 8px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
}
#sessionTimerBar .session-timer-stop,
#restTimerBar .session-timer-stop{
  width:72px;
  min-width:72px;
  height:54px;
  padding:0 8px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
}
@media(max-width:480px){
  #sessionTimerBar,
  #restTimerBar{
    grid-template-columns:82px minmax(0,1fr) 100px 66px;
    gap:7px;
    padding:9px 10px;
  }
  #sessionTimerBar .session-timer-display,
  #restTimerBar .session-timer-display{
    width:82px;
    font-size:22px;
  }
  #sessionTimerBar .session-timer-start,
  #restTimerBar .session-timer-start{
    width:100px;
    min-width:100px;
    height:52px;
    padding:0 6px;
    font-size:11px;
  }
  #sessionTimerBar .session-timer-stop,
  #restTimerBar .session-timer-stop{
    width:66px;
    min-width:66px;
    height:52px;
    padding:0 6px;
    font-size:11px;
  }
}

.session-duration-history{
  margin-top:5px;
  font-size:12px;
  font-weight:700;
  color:#9b5a32;
}
.timer-presets{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin:12px 0;
}
.timer-presets button{
  min-height:40px;
  border-radius:12px;
  border:1px solid #e7d2bd;
  background:#fffaf6;
  font-weight:750;
}
.timer-inputs{
  display:flex;
  justify-content:center;
  align-items:flex-end;
  gap:8px;
  margin:14px 0 18px;
}
.timer-inputs label{
  display:flex;
  flex-direction:column;
  gap:5px;
  color:#8c7869;
  font-size:12px;
}
.timer-inputs input{
  width:76px;
  min-height:52px;
  text-align:center;
  border:1px solid #e2cdb9;
  border-radius:14px;
  font-size:22px;
  background:#fff;
}
.timer-done{
  font-weight:850;
  color:#b44d1d;
  min-height:22px;
  margin-top:10px;
}


/* v2.78 — Chrono/Minuteur plus compacts + minuteur enregistré dans la série */
.duration-actions{
  grid-template-columns:1fr 1fr !important;
  gap:6px !important;
  margin-top:6px;
}
.duration-actions button{
  min-height:36px !important;
  padding:6px 8px !important;
  border-radius:10px !important;
  font-size:11px !important;
}
.chrono-card{
  width:min(340px,94vw) !important;
  padding:18px !important;
  border-radius:20px !important;
}
.chrono-title{
  font-size:17px !important;
  margin-bottom:4px !important;
}
.chrono-subtitle{
  font-size:11px !important;
  margin-bottom:12px !important;
}
.chrono-display{
  font-size:40px !important;
  margin:12px 0 16px !important;
}
.timer-presets{
  gap:6px !important;
  margin:8px 0 10px !important;
}
.timer-presets button{
  min-height:36px !important;
  border-radius:10px !important;
}
.timer-inputs{
  gap:6px !important;
  margin:10px 0 12px !important;
}
.timer-inputs input{
  width:68px !important;
  min-height:46px !important;
  font-size:20px !important;
  border-radius:12px !important;
}
.chrono-actions{
  gap:8px !important;
}
.chrono-actions button{
  min-height:42px !important;
  border-radius:11px !important;
}
.timer-done{
  margin-top:8px !important;
  font-size:13px !important;
}


/* v2.78 — hiérarchie Accueil : Défi du jour puis Mon challenge */
.challenge-summary-card{
  padding:18px !important;
  margin-top:18px !important;
}
.challenge-summary-card .card-section-title{
  margin:0 0 14px !important;
}
.challenge-summary-card .grid{
  margin-top:0 !important;
}
.challenge-summary-card .metric{
  box-shadow:none !important;
}
/* Le Défi du jour conserve le même rythme visuel que les autres rubriques. */
.home-first-section{
  margin-top:18px !important;
}


/* v2.78 — chrono flottant */
.session-timer-floating{position:fixed;left:50%;transform:translateX(-50%);bottom:78px;z-index:190;display:flex;align-items:center;gap:7px;padding:7px 9px 7px 12px;border-radius:999px;background:#2d2119;color:#fff;box-shadow:0 8px 24px rgba(45,33,25,.25)}
.session-timer-floating[hidden]{display:none!important}
#sessionTimerFloatingDisplay{min-width:58px;font-variant-numeric:tabular-nums;font-size:15px;font-weight:900}
.session-timer-floating button{min-height:32px;padding:5px 9px;border:0;border-radius:999px;font-size:11px;font-weight:850}
#sessionTimerFloatingPause{background:#fff3e8;color:#b44d1d}
#sessionTimerFloatingStop{background:#eaf8ee;color:#28713d}
#saveWorkoutBtn:disabled{opacity:.45;cursor:not-allowed}


/* v2.78 — animation de victoire lorsqu’un objectif est atteint */
.victory-overlay{
  position:fixed;
  inset:0;
  z-index:3000;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.victory-message{
  position:relative;
  z-index:2;
  padding:16px 22px;
  border-radius:18px;
  background:rgba(255,250,244,.97);
  color:#b44d1d;
  border:2px solid #ee6b2f;
  box-shadow:0 14px 40px rgba(45,33,25,.20);
  font-size:18px;
  font-weight:900;
  animation:victoryPop 3s ease forwards;
}
.confetti-piece{
  position:absolute;
  top:-20px;
  width:9px;
  height:16px;
  border-radius:3px;
  opacity:.95;
  animation:confettiFall 2.6s linear forwards;
}
@keyframes victoryPop{
  0%{transform:scale(.55);opacity:0}
  20%{transform:scale(1.08);opacity:1}
  35%{transform:scale(1)}
  88%{opacity:1}
  100%{transform:scale(.98);opacity:0}
}
@keyframes confettiFall{
  0%{transform:translateY(0) rotate(0deg)}
  100%{transform:translateY(110vh) rotate(760deg)}
}
.metric.goal-complete{
  animation:goalGlow 1.2s ease;
}
@keyframes goalGlow{
  0%{box-shadow:0 0 0 0 rgba(238,107,47,.0)}
  40%{box-shadow:0 0 0 8px rgba(238,107,47,.18)}
  100%{box-shadow:0 0 0 0 rgba(238,107,47,.0)}
}


/* v2.78 — célébration spéciale challenge complet */
.challenge-victory-overlay{
  position:fixed;
  inset:0;
  z-index:4000;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  background:radial-gradient(circle at center, rgba(255,244,232,.18), rgba(45,33,25,.35));
  animation:challengeOverlayFade 5s ease forwards;
}
.challenge-victory-card{
  position:relative;
  z-index:3;
  width:min(360px,88vw);
  padding:26px 22px 24px;
  border-radius:28px;
  background:linear-gradient(180deg,#fffaf4 0%,#fff0df 100%);
  border:3px solid #ee6b2f;
  box-shadow:
    0 0 0 10px rgba(238,107,47,.11),
    0 20px 70px rgba(45,33,25,.30);
  text-align:center;
  animation:challengeVictoryPop 4.8s cubic-bezier(.18,.85,.22,1) forwards;
}
.challenge-victory-trophy{
  font-size:56px;
  line-height:1;
  margin-bottom:10px;
  animation:trophyBounce 1s ease-in-out 2;
}
.challenge-victory-title{
  font-size:27px;
  font-weight:950;
  color:#b44d1d;
  letter-spacing:.4px;
}
.challenge-victory-subtitle{
  margin-top:8px;
  font-size:14px;
  font-weight:750;
  color:#765c4b;
  line-height:1.35;
}
.challenge-ring{
  position:absolute;
  left:50%;
  top:50%;
  width:120px;
  height:120px;
  border:4px solid rgba(238,107,47,.42);
  border-radius:50%;
  transform:translate(-50%,-50%);
  animation:ringBurst 2.2s ease-out forwards;
}
.challenge-confetti{
  position:absolute;
  top:-30px;
  border-radius:4px;
  opacity:.98;
  animation:challengeConfettiFall linear forwards;
}
.challenge-star{
  position:absolute;
  font-size:24px;
  animation:starBurst 2.8s ease-out forwards;
}
.challenge-summary-card.challenge-complete-glow{
  animation:challengeCardGlow 2.4s ease;
}
@keyframes challengeVictoryPop{
  0%{transform:scale(.35) rotate(-3deg);opacity:0}
  12%{transform:scale(1.10) rotate(1deg);opacity:1}
  22%{transform:scale(.98)}
  75%{transform:scale(1);opacity:1}
  100%{transform:scale(.96);opacity:0}
}
@keyframes challengeOverlayFade{
  0%,78%{opacity:1}
  100%{opacity:0}
}
@keyframes trophyBounce{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-10px) scale(1.13)}
}
@keyframes ringBurst{
  0%{transform:translate(-50%,-50%) scale(.3);opacity:.9}
  100%{transform:translate(-50%,-50%) scale(5);opacity:0}
}
@keyframes challengeConfettiFall{
  0%{transform:translateY(0) rotate(0deg)}
  100%{transform:translateY(115vh) rotate(1080deg)}
}
@keyframes starBurst{
  0%{transform:translate(0,0) scale(.4) rotate(0);opacity:0}
  20%{opacity:1}
  100%{transform:translate(var(--dx),var(--dy)) scale(1.2) rotate(320deg);opacity:0}
}
@keyframes challengeCardGlow{
  0%{box-shadow:0 0 0 0 rgba(238,107,47,0)}
  35%{box-shadow:0 0 0 12px rgba(238,107,47,.20)}
  100%{box-shadow:0 0 0 0 rgba(238,107,47,0)}
}


/* v2.78 — onglet Aide / achats / CGV */
.bottom-nav{
  grid-template-columns:repeat(4,1fr) !important;
}
.help-card{
  margin-top:16px;
}
.help-card:first-child{
  margin-top:22px;
}
.help-title{
  font-size:18px;
  font-weight:850;
  margin:0 0 8px;
}
.help-text{
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}
.restore-box{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.restore-box input{
  width:100%;
}
.restore-status{
  display:none;
  padding:10px 12px;
  border-radius:12px;
  background:#fff4e8;
  border:1px solid #efd2b7;
  color:#8a5b3d;
  font-size:12px;
  line-height:1.4;
}
.restore-status.show{display:block}
.faq-item{
  border-top:1px solid #eee0d3;
}
.faq-item:first-of-type{
  border-top:0;
}
.faq-question{
  width:100%;
  padding:13px 0;
  border:0;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:14px;
  font-weight:800;
  text-align:left;
  display:flex;
  justify-content:space-between;
  gap:12px;
}
.faq-answer{
  display:none;
  padding:0 0 13px;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
}
.faq-item.open .faq-answer{display:block}
.legal-block{
  font-size:12.5px;
  line-height:1.52;
  color:#665548;
}
.legal-block h3{
  margin:18px 0 6px;
  font-size:14px;
  color:var(--text);
}
.legal-block h3:first-child{margin-top:0}
.legal-note{
  margin-top:14px;
  padding:11px 12px;
  border-radius:12px;
  background:#fff3e7;
  color:#8b5a39;
  font-size:11.5px;
  line-height:1.45;
}


/* v2.78 — graphique par exercice */
.chart-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:none}
.chart-tabs::-webkit-scrollbar{display:none}
.chart-tab{flex:0 0 auto;border:1px solid #e4d3c4;background:#fffaf5;color:#79685c;border-radius:999px;padding:8px 12px;font-weight:800;font-size:12px}
.chart-tab.active{background:#ee6b2f;color:white;border-color:#ee6b2f}
.chart-summary{display:flex;justify-content:space-between;gap:10px;align-items:flex-end;margin:0 0 10px}
.chart-summary-main{font-size:13px;color:#8c7869}
.chart-summary-main strong{display:block;color:#2d2119;font-size:18px;margin-bottom:2px}
.chart-change{font-size:13px;font-weight:900;color:#4a8f60;text-align:right}


/* v2.78 — choix de période du graphique */
.chart-period-wrap{margin:0 0 12px}
.chart-period-label{font-size:12px;font-weight:850;color:#8c7869;margin:0 0 7px}
.chart-periods{display:flex;gap:7px;overflow-x:auto;padding:1px 0 3px;scrollbar-width:none}
.chart-periods::-webkit-scrollbar{display:none}
.chart-period{flex:0 0 auto;border:1px solid #e4d3c4;background:#fffaf5;color:#79685c;border-radius:999px;padding:7px 11px;font-weight:800;font-size:11px}
.chart-period.active{background:#2d2119;color:#fff;border-color:#2d2119}
.chart-period:disabled{opacity:.38;cursor:not-allowed;background:#f4f1ee;color:#a79b92;border-color:#e6dfd9}
.chart-period:disabled.active{background:#f4f1ee;color:#a79b92;border-color:#e6dfd9}
.chart-period-empty{font-size:13px;color:#8c7869;padding:22px 0;text-align:center}


/* v2.78 — exercices Charge + répétitions */
.weight-set{
  display:flex;
  align-items:flex-end;
  gap:6px;
  flex-wrap:wrap;
}
.weight-part{
  display:grid;
  gap:4px;
  width:72px;
  color:var(--muted);
  font-size:10px;
}
.weight-part input{
  width:72px !important;
  min-height:46px !important;
  padding:7px 5px !important;
  text-align:center;
  font-size:16px !important;
  font-weight:800;
}
.weight-sep{
  padding-bottom:10px;
  color:var(--muted);
  font-size:11px;
}
.weight-summary{
  font-size:11px;
  color:#8a7769;
  margin-top:5px;
}


.weight-goal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.weight-goal-grid label{min-width:0}
.weight-goal-note{grid-column:1/-1;font-size:11px;color:var(--muted);margin-top:-3px}
@media(max-width:420px){.weight-goal-grid{grid-template-columns:1fr 1fr}}

/* v2.78 — POINT 1 : véritable dashboard d'accueil */
.home-dashboard{margin:16px 0 18px;padding:20px;border-radius:22px;background:#fffaf4;box-shadow:0 5px 18px rgba(113,72,43,.07)}
.home-kicker{font-size:13px;color:#8c7869;margin-bottom:3px}
.home-dashboard-title{font-size:24px;font-weight:900;line-height:1.1;color:#2d2119}
.home-day-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;font-size:13px;color:#765f4e}
.home-day-row strong{color:#2d2119}.home-progress{height:7px;border-radius:999px;background:#eadfd5;overflow:hidden;margin-top:8px}
.home-progress>span{display:block;height:100%;border-radius:999px;background:#ee6b2f}
.home-today{margin-top:20px;padding-top:17px;border-top:1px solid #eadfd5}
.home-today-label{font-size:13px;font-weight:850;color:#2d2119;margin-bottom:6px}
.home-targets{font-size:14px;line-height:1.55;color:#5f5147}
.home-start-btn{width:100%;min-height:52px;margin-top:15px;border:0;border-radius:14px;background:#ee6b2f;color:#fff;font-size:15px;font-weight:900;letter-spacing:.02em}
.home-load-compact{margin-top:14px;padding-top:13px;border-top:1px solid #eadfd5}
.home-load-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;color:#765f4e}.home-load-line strong{color:#2d2119}
.home-load-dot{width:8px;height:8px;border-radius:50%;background:#ee6b2f;display:inline-block}
.home-load-details{margin-top:5px;font-size:11px;color:#9a8577;line-height:1.45}
.home-load-edit{margin-left:auto;border:0;background:transparent;color:#b44d1d;font-weight:800;padding:3px 0;font-size:11px}
#dailyLoadCard.home-load-editor{display:none;margin-top:10px!important}#dailyLoadCard.home-load-editor.open{display:block}
#tab-accueil>.session-timer-bar,#tab-accueil>.home-first-section,#tab-accueil>#challengeSummaryCard{display:none!important}
#tab-accueil>.section-card{margin-top:18px!important}


/* v2.78 — POINT 2 UNIQUEMENT : cartes blanches, fond très clair, orange en accent */
:root{
  --bg:#f5f5f3 !important;
  --panel:#ffffff !important;
  --panel2:#ffffff !important;
  --border:#e9e7e4 !important;
}
html,body{background:#f5f5f3 !important}

/* Les surfaces principales deviennent blanches, sans changer leur structure */
.card,
.section-card,
.challenge,
.home-dashboard,
.objective-card,
.saved-workout,
.load-result,
.history-load-card,
.help-card{
  background:#ffffff !important;
  border-color:#e9e7e4 !important;
  box-shadow:0 2px 10px rgba(25,25,25,.035) !important;
}

/* Le dashboard du point 1 reste identique dans sa structure */
.home-dashboard{background:#fff !important}
.home-progress{background:#eceae7 !important}
.home-today,.home-load-compact{border-color:#eceae7 !important}

/* Les champs et sous-surfaces restent très légèrement différenciés */
input,textarea,select,.compact-select,
.set-compact input,.weight-part input,.duration-part input{
  background:#fafafa !important;
  border-color:#e3e0dc !important;
}
#metrics .card{
  background:#fff !important;
  border:1px solid #ece9e6 !important;
  box-shadow:none !important;
}

/* L'orange reste réservé aux actions, progression et états actifs */
.primary,.home-start-btn,.session-timer-start{background:#ee6b2f !important}
.bar,.home-progress>span{background:#ee6b2f !important}
.nav-item.active{color:#ee6b2f !important}
.load-option.active{border-color:#ee6b2f !important}


/* v2.78 — POINT 3 UNIQUEMENT : résultats présentés comme données sportives */
.performance-kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:12px 0 14px;
}
.performance-kpi{
  background:#fff;
  border:1px solid #e9e7e4;
  border-radius:14px;
  padding:13px 12px;
  min-width:0;
}
.performance-kpi-label{
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#8c8680;
  margin-bottom:5px;
}
.performance-kpi-value{
  font-size:22px;
  line-height:1;
  font-weight:900;
  color:#1f1f1f;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.performance-kpi-sub{
  margin-top:5px;
  font-size:10px;
  color:#8c8680;
}
.performance-change{color:#2f8a50}
.performance-sequence{
  margin:2px 0 12px;
  padding:11px 12px;
  border-radius:12px;
  background:#fafafa;
  border:1px solid #ece9e6;
  font-size:12px;
  color:#6f6964;
  white-space:nowrap;
  overflow-x:auto;
}
.performance-sequence strong{color:#2d2119}
@media(max-width:480px){
  .performance-kpis{gap:7px}
  .performance-kpi{padding:11px 9px}
  .performance-kpi-value{font-size:19px}
}


/* v2.78 — POINT 4 UNIQUEMENT : champs de séance compacts */
.workout-exercises{
  display:grid !important;
  gap:0 !important;
}
.workout-exercise{
  padding:16px 0 !important;
  border-bottom:1px solid #ece9e6 !important;
}
.workout-exercise:first-child{padding-top:4px !important}
.workout-exercise:last-child{border-bottom:0 !important;padding-bottom:4px !important}

.workout-exercise-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin-bottom:10px !important;
}
.workout-exercise-name{
  font-size:16px !important;
  font-weight:850 !important;
  color:#24211f !important;
}
.workout-objective{
  margin-top:3px;
  font-size:11px;
  color:#837b75;
  line-height:1.3;
}
.workout-goal-badge{
  flex:0 0 auto;
  min-height:28px;
  padding:6px 9px;
  border-radius:999px;
  border:1px solid #e8e4e0;
  background:#fafafa;
  color:#827b75;
  font-size:10px;
  font-weight:850;
  white-space:nowrap;
}
.workout-goal-badge.reached{
  border-color:#bfe0c8;
  background:#eef8f1;
  color:#287440;
}

/* Répétitions : série + valeur dans des cases compactes */
.reps-compact-row{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.reps-compact{
  width:58px;
  display:grid;
  grid-template-rows:auto 38px;
  gap:3px;
}
.reps-compact span{
  font-size:10px;
  font-weight:800;
  color:#8a837d;
  text-align:center;
}
.reps-compact input{
  width:58px !important;
  min-width:0 !important;
  min-height:38px !important;
  padding:5px 4px !important;
  border-radius:9px !important;
  text-align:center !important;
  font-size:16px !important;
  font-weight:850 !important;
}

/* Charge : vraie mini-table série / kg / reps */
.weight-table{
  width:100%;
  max-width:330px;
  display:grid;
  grid-template-columns:40px 1fr 1fr;
  gap:6px 7px;
  align-items:center;
}
.weight-table-head{
  font-size:10px;
  font-weight:850;
  color:#8a837d;
  text-align:center;
}
.weight-table-series{
  font-size:11px;
  font-weight:850;
  color:#6f6862;
  text-align:center;
}
.weight-table input{
  width:100% !important;
  min-height:38px !important;
  padding:5px 6px !important;
  border-radius:9px !important;
  text-align:center !important;
  font-size:15px !important;
  font-weight:850 !important;
}

/* Durée : mini-table série / min / sec + outils */
.duration-table{
  width:100%;
  max-width:360px;
  display:grid;
  grid-template-columns:40px 64px 64px 1fr;
  gap:6px 7px;
  align-items:center;
}
.duration-table-head{
  font-size:10px;
  font-weight:850;
  color:#8a837d;
  text-align:center;
}
.duration-table-series{
  font-size:11px;
  font-weight:850;
  color:#6f6862;
  text-align:center;
}
.duration-table input{
  width:64px !important;
  min-height:38px !important;
  padding:5px 5px !important;
  border-radius:9px !important;
  text-align:center !important;
  font-size:15px !important;
  font-weight:850 !important;
}
.duration-tools{
  display:flex;
  gap:5px;
}
.duration-tools button{
  min-height:34px !important;
  padding:5px 7px !important;
  border-radius:8px !important;
  font-size:10px !important;
  font-weight:800 !important;
  white-space:nowrap;
}

/* Séance déjà enregistrée : même densité */
.saved-workout .workout-exercise{
  padding:12px 0 !important;
}
.saved-compact-row{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.saved-compact-value{
  min-width:58px;
  padding:7px 8px;
  border:1px solid #e7e3df;
  border-radius:9px;
  background:#fafafa;
  text-align:center;
  font-size:12px;
  font-weight:850;
  color:#2d2926;
}
.saved-compact-value span{
  display:block;
  margin-bottom:3px;
  font-size:9px;
  color:#8b847e;
  font-weight:800;
}

@media(max-width:380px){
  .duration-table{grid-template-columns:34px 58px 58px 1fr;gap:5px}
  .duration-table input{width:58px !important}
  .duration-tools{flex-direction:column}
}


/* v2.78 — POINT 5 UNIQUEMENT : navigation basse plus premium */
.bottom-nav{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  z-index:1000 !important;
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:0 !important;
  padding:4px 10px calc(6px + env(safe-area-inset-bottom)) !important;
  background:rgba(255,255,255,.97) !important;
  border-top:1px solid #e8e5e1 !important;
  box-shadow:0 -4px 16px rgba(25,25,25,.035) !important;
  backdrop-filter:blur(18px) !important;
}

.nav-item{
  position:relative !important;
  min-height:54px !important;
  padding:7px 4px 4px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:3px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#918b85 !important;
  font-size:10px !important;
  font-weight:750 !important;
  box-shadow:none !important;
}

.nav-item .nav-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:22px !important;
  height:22px !important;
  color:inherit !important;
}

.nav-item .nav-icon svg{
  width:20px !important;
  height:20px !important;
  stroke-width:1.9 !important;
}

.nav-item.active{
  background:transparent !important;
  color:#ee6b2f !important;
  box-shadow:none !important;
}

.nav-item.active::before{
  content:"" !important;
  position:absolute !important;
  top:-5px !important;
  left:31% !important;
  right:31% !important;
  height:2px !important;
  border-radius:999px !important;
  background:#ee6b2f !important;
}

.nav-item:active{
  transform:none !important;
  opacity:.75 !important;
}

/* Plus de gros fond beige / capsule autour de l'onglet actif */
.nav-item.active,
.nav-item:hover,
.nav-item:focus{
  background:transparent !important;
}

/* Réserve juste ce qu'il faut pour la barre plus fine */
.app{
  padding-bottom:82px !important;
}


/* v2.78 — correctif navigation premium */
.bottom-nav{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  z-index:1000 !important;
  width:100% !important;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  align-items:stretch !important;
  justify-items:stretch !important;
  gap:0 !important;
  margin:0 !important;
  padding:4px 8px calc(6px + env(safe-area-inset-bottom)) !important;
  background:rgba(255,255,255,.98) !important;
  border-top:1px solid #e8e5e1 !important;
  box-shadow:0 -4px 16px rgba(25,25,25,.035) !important;
  backdrop-filter:blur(18px) !important;
}

.bottom-nav .nav-item{
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  min-height:54px !important;
  margin:0 !important;
  padding:7px 2px 4px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:3px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:#918b85 !important;
  box-shadow:none !important;
  font-size:10px !important;
  font-weight:750 !important;
  text-align:center !important;
  overflow:visible !important;
}

.bottom-nav .nav-item .nav-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:22px !important;
  height:22px !important;
  color:inherit !important;
}

.bottom-nav .nav-item .nav-icon svg{
  display:block !important;
  width:20px !important;
  height:20px !important;
  stroke-width:1.9 !important;
}

.bottom-nav .nav-item.active{
  background:transparent !important;
  color:#ee6b2f !important;
  box-shadow:none !important;
}

.bottom-nav .nav-item.active::before{
  content:"" !important;
  position:absolute !important;
  top:-5px !important;
  left:30% !important;
  right:30% !important;
  height:2px !important;
  border-radius:999px !important;
  background:#ee6b2f !important;
}

.bottom-nav .nav-item:hover,
.bottom-nav .nav-item:focus,
.bottom-nav .nav-item:active{
  background:transparent !important;
}

.app{
  padding-bottom:82px !important;
}


/* v2.78 — correctif définitif du décalage horizontal de la navigation */
.bottom-nav{
  left:0 !important;
  right:0 !important;
  width:100% !important;
  transform:none !important;
}


/* v2.78 — 5 onglets : Accueil / Ma séance / Suivi / Paramètres / Aide */
.bottom-nav{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  transform:none !important;
}
.bottom-nav .nav-item{
  padding-left:1px !important;
  padding-right:1px !important;
  font-size:9px !important;
}
.bottom-nav .nav-item span:last-child{white-space:nowrap !important}


/* v2.78 — Accueil proposition 3 + Etat du jour dans Ma séance */
.home-dashboard{padding:0!important;overflow:hidden;background:#fff!important}
.home-motivation-hero{min-height:180px;padding:24px 22px;display:flex;align-items:flex-end;background:radial-gradient(circle at 78% 28%,rgba(255,180,91,.9),transparent 24%),linear-gradient(120deg,#4f372a 0%,#8b4e33 44%,#f08a3d 100%);color:#fff}
.home-motivation-copy{max-width:260px;font-size:25px;line-height:1.13;font-weight:900;letter-spacing:-.02em;text-shadow:0 2px 10px rgba(0,0,0,.18)}
.home-challenge-panel{position:relative;margin-top:-18px;padding:22px 20px 18px;border-radius:24px 24px 0 0;background:#fff}
.home-challenge-panel .home-dashboard-title{font-size:23px!important;margin-bottom:12px}
.home-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:17px;padding-top:16px;border-top:1px solid #ece9e6}
.home-stat{text-align:center;padding:4px 7px;border-right:1px solid #ece9e6}
.home-stat:last-child{border-right:0}
.home-stat-icon{font-size:21px;line-height:1;margin-bottom:7px}
.home-stat-value{font-size:20px;font-weight:900;color:#2d2119}
.home-stat-label{margin-top:4px;font-size:10px;line-height:1.25;color:#8c837c}
.home-progress-section,.home-goals-section,.home-quote-section,.home-today{margin-top:18px;padding-top:18px;border-top:1px solid #ece9e6}
.home-section-title{font-size:16px;font-weight:900;color:#2d2119;margin-bottom:10px}
.home-progress-list{display:grid;gap:10px}
.home-progress-row{display:grid;grid-template-columns:82px 1fr auto;gap:9px;align-items:center}
.home-progress-name{font-size:12px;font-weight:800;color:#38312c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-progress-track{height:6px;background:#eceae7;border-radius:999px;overflow:hidden}
.home-progress-track span{display:block;height:100%;background:#ee6b2f;border-radius:999px}
.home-progress-value{font-size:11px;font-weight:900;color:#8a5140;white-space:nowrap}
.home-goals-list{display:grid;gap:8px}
.home-goal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #f0eeeb}
.home-goal-row:last-child{border-bottom:0}
.home-goal-name{font-size:13px;font-weight:800;color:#2d2119}
.home-goal-target{font-size:12px;font-weight:800;color:#ee6b2f;white-space:nowrap}
.home-quote{padding:13px 14px;border-radius:13px;background:#fff5ed;color:#79513b;font-size:12px;line-height:1.45;text-align:center}
#tab-seance #dailyLoadCard{display:block!important;margin:0 0 16px!important}
@media(max-width:420px){.home-motivation-hero{min-height:160px;padding:20px}.home-motivation-copy{font-size:22px;max-width:235px}.home-progress-row{grid-template-columns:74px 1fr auto;gap:7px}.home-stat-value{font-size:18px}}


/* v2.78 — calendrier mensuel des séances dans Suivi */
.training-calendar-card{
  margin-bottom:18px;
}
.training-calendar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:14px;
}
.training-calendar-title{
  font-size:18px;
  font-weight:900;
  color:#2d2119;
}
.training-calendar-nav{
  display:flex;
  align-items:center;
  gap:8px;
}
.training-calendar-nav button{
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid #e7e3df;
  background:#fff;
  color:#6f665f;
  font-size:18px;
  font-weight:800;
}
.training-calendar-month{
  min-width:118px;
  text-align:center;
  font-size:13px;
  font-weight:850;
  color:#3a342f;
}
.training-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:6px;
}
.training-calendar-weekday{
  text-align:center;
  font-size:10px;
  font-weight:850;
  color:#9a918a;
  padding-bottom:2px;
}
.training-calendar-day{
  aspect-ratio:1/1;
  border:1px solid transparent;
  border-radius:11px;
  background:#fafafa;
  color:#5f5852;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  font-size:12px;
  font-weight:800;
}
.training-calendar-day.empty{
  background:transparent;
}
.training-calendar-day.has-session{
  background:#fff5ed;
  color:#b44d1d;
  border-color:#f2d3c0;
}
.training-calendar-day.has-session::after{
  content:"";
  position:absolute;
  bottom:5px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#ee6b2f;
}
.training-calendar-day.today{
  box-shadow:inset 0 0 0 1px #ee6b2f;
}
.training-calendar-day.selected{
  background:#ee6b2f;
  color:#fff;
  border-color:#ee6b2f;
}
.training-calendar-day.selected::after{
  background:#fff;
}
.training-calendar-summary{
  margin-top:12px;
  padding:11px 12px;
  border-radius:12px;
  background:#fafafa;
  border:1px solid #ece9e6;
  font-size:12px;
  color:#6e665f;
  line-height:1.45;
}
.training-calendar-summary strong{
  color:#2d2119;
}


/* v2.78 — calendrier compact sur Accueil + objectifs explicités */
.home-training-calendar{
  margin:18px 0 0!important;
  padding:16px 0 18px!important;
  border-top:1px solid #ece9e6;
  border-bottom:1px solid #ece9e6;
}
.home-training-calendar .training-calendar-title{font-size:16px!important}
.home-training-calendar .training-calendar-head{margin-bottom:10px!important}
.home-training-calendar .training-calendar-nav button{width:29px!important;height:29px!important;font-size:16px!important}
.home-training-calendar .training-calendar-month{min-width:105px!important;font-size:12px!important}
.home-training-calendar .training-calendar-grid{gap:4px!important}
.home-training-calendar .training-calendar-day{border-radius:8px!important;font-size:11px!important}
.home-training-calendar .training-calendar-day.has-session{
  background:#ee6b2f!important;color:#fff!important;border-color:#ee6b2f!important;
}
.home-training-calendar .training-calendar-day.has-session::after{
  width:4px!important;height:4px!important;bottom:3px!important;background:#fff!important;
}
.home-training-calendar .training-calendar-summary{margin-top:9px!important;padding:8px 10px!important;font-size:11px!important}
.home-goal-detailed{align-items:flex-start!important}
.home-goal-detailed>div:first-child{min-width:0}
.home-goal-rule{margin-top:4px;font-size:10.5px;line-height:1.35;color:#938a83;font-weight:600}


/* v2.78 — accueil affiné : calendrier compact, icônes lisibles, progrès en % */
.home-stats-grid{
  margin-top:14px!important;
  padding-top:14px!important;
}
.home-stat-icon{
  width:30px;
  height:30px;
  margin:0 auto 7px!important;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px!important;
}
.home-stat-icon-ring{
  border:2px solid #ee6b2f;
  border-radius:50%;
  color:#ee6b2f;
  font-size:15px!important;
  font-weight:950;
}
.home-stat-icon-star{color:#ee6b2f}

.home-training-calendar{
  padding:15px 0 16px!important;
}
.home-training-calendar .training-calendar-head{
  margin-bottom:8px!important;
}
.home-training-calendar .training-calendar-title{
  font-size:15px!important;
  line-height:1.15;
}
.home-training-calendar .training-calendar-grid{
  gap:2px!important;
}
.home-training-calendar .training-calendar-weekday{
  font-size:9px!important;
  padding:3px 0 5px!important;
}
.home-training-calendar .training-calendar-day{
  aspect-ratio:auto!important;
  height:34px!important;
  min-height:34px!important;
  background:transparent!important;
  border:0!important;
  border-radius:50%!important;
  font-size:11px!important;
  box-shadow:none!important;
}
.home-training-calendar .training-calendar-day.today{
  box-shadow:inset 0 0 0 1px #ee6b2f!important;
}
.home-training-calendar .training-calendar-day.has-session{
  width:30px!important;
  height:30px!important;
  min-height:30px!important;
  justify-self:center;
  align-self:center;
  background:#fff3ea!important;
  color:#c95420!important;
  font-weight:900!important;
  box-shadow:inset 0 0 0 1.5px #ee6b2f!important;
}
.home-training-calendar .training-calendar-day.has-session::after{
  content:"✓"!important;
  position:absolute!important;
  right:-1px!important;
  bottom:-2px!important;
  width:13px!important;
  height:13px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  background:#ee6b2f!important;
  color:#fff!important;
  font-size:8px!important;
  font-weight:950!important;
}
.home-training-calendar .training-calendar-day.selected{
  background:#ee6b2f!important;
  color:#fff!important;
  box-shadow:none!important;
}
.home-training-calendar .training-calendar-day.selected::after{
  background:#fff!important;
  color:#ee6b2f!important;
}
.home-training-calendar .training-calendar-summary{
  margin-top:7px!important;
  padding:7px 9px!important;
  border:0!important;
  background:#faf8f6!important;
  font-size:10px!important;
}

.home-progress-list{
  gap:0!important;
}
.home-progress-row{
  display:block!important;
  padding:12px 0!important;
  border-bottom:1px solid #f0eeeb;
}
.home-progress-row:last-child{border-bottom:0}
.home-progress-main{width:100%}
.home-progress-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.home-progress-name{
  font-size:14px!important;
  font-weight:900!important;
  color:#2d2119!important;
}
.home-progress-percent{
  font-size:14px;
  font-weight:950;
  color:#ee6b2f;
  white-space:nowrap;
}
.home-progress-detail{
  margin-top:3px;
  font-size:11px;
  color:#8f867f;
  font-weight:650;
}
.home-progress-track{
  margin-top:8px;
  height:6px!important;
}


/* v2.78 — tableau progrès/objectifs + prénom + calendrier en bas */
.home-welcome{
  margin:0 0 14px;
  font-size:15px;
  line-height:1.35;
  color:#655e58;
}
.home-welcome strong{color:#2d2119;font-weight:900}

.home-progress-goals-table{width:100%;border-collapse:collapse;margin-top:4px}
.home-progress-goals-table th{
  padding:8px 5px;border-bottom:1px solid #e9e6e2;text-align:left;
  font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#958d87;font-weight:900
}
.home-progress-goals-table td{
  padding:11px 5px;border-bottom:1px solid #f0eeeb;vertical-align:middle;
  font-size:11px;color:#5f5852
}
.home-progress-goals-table tr:last-child td{border-bottom:0}
.home-progress-goals-table .exercise{font-size:13px;font-weight:900;color:#2d2119}
.home-progress-goals-table .current{font-weight:800;color:#4c4641}
.home-progress-goals-table .goal{font-weight:850;color:#ee6b2f}
.home-progress-goals-table .pct{text-align:center;font-size:13px;font-weight:950;color:#2f8a50;white-space:nowrap}
.home-progress-goals-table .mini-progress{
  height:5px;margin-top:6px;border-radius:999px;overflow:hidden;background:#ece9e6
}
.home-progress-goals-table .mini-progress span{
  display:block;height:100%;border-radius:999px;background:#ee6b2f
}
.home-training-calendar{margin-top:22px!important;padding-top:18px!important;border-top:1px solid #ece9e6!important;border-bottom:0!important}
.profile-settings-card{margin-bottom:18px}
.profile-settings-card label{display:block;font-size:12px;font-weight:800;color:#5e5751}
.profile-settings-card input{margin-top:7px;width:100%}
.profile-settings-note{margin-top:7px;font-size:10px;color:#948b84}


/* v2.78 — Accueil aéré + calendrier sobre + règles de challenge */

/* Suppression visuelle de toute trace du bandeau retiré */
.home-motivation-hero,
.home-motivation-copy{
  display:none !important;
}

/* Le panneau Challenge ne chevauche plus aucun visuel */
.home-challenge-panel{
  margin-top:0 !important;
  border-radius:22px !important;
  padding:22px 20px 20px !important;
}

/* Même respiration verticale que dans Suivi */
.home-challenge-panel > .home-welcome,
.home-challenge-panel > .home-day-row,
.home-challenge-panel > .home-progress,
.home-challenge-panel > .home-stats-grid,
.home-challenge-panel > .home-progress-section,
.home-challenge-panel > .home-quote-section,
.home-challenge-panel > .home-training-calendar{
  margin-top:18px !important;
}

.home-challenge-panel > .home-welcome{
  margin-top:8px !important;
}
.home-challenge-panel > .home-day-row{
  margin-top:18px !important;
}
.home-challenge-panel > .home-progress{
  margin-top:8px !important;
}

/* Séparation propre entre les grands blocs */
.home-stats-grid,
.home-progress-section,
.home-quote-section,
.home-training-calendar{
  padding-top:18px !important;
  border-top:1px solid #ece9e6 !important;
}

/* Règle de challenge sous chaque exercice */
.exercise-rule{
  margin-top:3px;
  font-size:9.5px;
  line-height:1.3;
  font-weight:700;
  color:#938b84;
}

/* Calendrier : navigation de mois plus discrète */
.home-training-calendar .training-calendar-head{
  display:grid !important;
  grid-template-columns:1fr auto !important;
  align-items:center !important;
  gap:10px !important;
}
.home-training-calendar .training-calendar-nav{
  display:grid !important;
  grid-template-columns:28px auto 28px !important;
  align-items:center !important;
  gap:5px !important;
}
.home-training-calendar .training-calendar-nav button{
  width:28px !important;
  height:28px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:50% !important;
  background:transparent !important;
  color:#8b837c !important;
  font-size:20px !important;
  font-weight:500 !important;
  box-shadow:none !important;
}
.home-training-calendar .training-calendar-nav button:active{
  background:#f3f1ef !important;
}
.home-training-calendar .training-calendar-month{
  min-width:100px !important;
  font-size:12px !important;
  font-weight:900 !important;
  color:#3d3732 !important;
  text-align:center !important;
}

/* Tableau un peu plus lisible sur petit écran */
@media(max-width:420px){
  .home-progress-goals-table th{
    font-size:8px !important;
    padding-left:4px !important;
    padding-right:4px !important;
  }
  .home-progress-goals-table td{
    padding-left:4px !important;
    padding-right:4px !important;
  }
  .home-progress-goals-table .exercise{
    font-size:12px !important;
  }
  .exercise-rule{
    font-size:9px !important;
  }
}


/* v2.78 — Accueil en vrais blocs séparés */
.home-dashboard{
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.home-challenge-panel{
  background:transparent !important;
  padding:0 !important;
  border-radius:0 !important;
}

/* Chaque grande section de l'accueil devient une carte indépendante */
.home-challenge-panel > .home-dashboard-title,
.home-challenge-panel > .home-welcome,
.home-challenge-panel > .home-day-row,
.home-challenge-panel > .home-progress{
  margin-left:20px !important;
  margin-right:20px !important;
}

.home-challenge-panel{
  display:block !important;
}

/* Carte challenge */
.home-challenge-panel::before{
  content:"";
  display:block;
}
.home-challenge-panel > .home-dashboard-title{
  padding-top:20px !important;
}
.home-challenge-panel > .home-dashboard-title,
.home-challenge-panel > .home-welcome,
.home-challenge-panel > .home-day-row,
.home-challenge-panel > .home-progress,
.home-challenge-panel > .home-stats-grid{
  background:#fff !important;
}
.home-challenge-panel > .home-stats-grid{
  margin:0 !important;
  padding:18px 20px 20px !important;
  border-top:1px solid #ece9e6 !important;
  border-radius:0 0 20px 20px !important;
}
.home-challenge-panel > .home-dashboard-title{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-left:20px !important;
  padding-right:20px !important;
  border-radius:20px 20px 0 0 !important;
}
.home-challenge-panel > .home-welcome{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding:10px 20px 0 !important;
}
.home-challenge-panel > .home-day-row{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding:18px 20px 0 !important;
}
.home-challenge-panel > .home-progress{
  margin-top:0 !important;
  margin-bottom:0 !important;
  margin-left:20px !important;
  margin-right:20px !important;
  position:relative;
  top:-1px;
}

/* Progrès/objectifs = vraie carte */
.home-progress-section{
  margin:18px 0 0 !important;
  padding:20px !important;
  background:#fff !important;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:0 2px 10px rgba(25,25,25,.035) !important;
}

/* Bouton = bloc autonome */
.home-start-section{
  margin:18px 0 0 !important;
  padding:18px 20px !important;
  background:#fff !important;
  border-radius:20px !important;
  box-shadow:0 2px 10px rgba(25,25,25,.035) !important;
}
.home-start-section .home-start-btn{
  margin:0 !important;
}

/* Calendrier = vraie carte distincte */
.home-training-calendar{
  margin:18px 0 0 !important;
  padding:20px !important;
  background:#fff !important;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:0 2px 10px rgba(25,25,25,.035) !important;
}

/* Suppression de la citation */
.home-quote-section{display:none !important}

/* Objectif compact */
.exercise-rule{
  margin-top:3px !important;
  font-size:9.5px !important;
  color:#948b84 !important;
  font-weight:750 !important;
}
.home-progress-goals-table .goal strong{
  color:#ee6b2f !important;
  font-weight:950 !important;
}

/* Un peu d'air sous le header orange */
#tab-accueil .hero{
  margin-bottom:18px !important;
}


/* v2.78 — correctif Challenge : un seul bloc continu, sans décalage */
.home-dashboard{margin-top:18px!important;}
.home-challenge-panel{
  background:#fff!important;
  border-radius:22px!important;
  padding:22px 20px 20px!important;
  box-shadow:0 2px 10px rgba(25,25,25,.035)!important;
  overflow:hidden!important;
}
.home-challenge-panel > .home-dashboard-title,
.home-challenge-panel > .home-welcome,
.home-challenge-panel > .home-day-row,
.home-challenge-panel > .home-progress,
.home-challenge-panel > .home-stats-grid{
  background:transparent!important;
  margin-left:0!important; margin-right:0!important;
  padding-left:0!important; padding-right:0!important;
  border-radius:0!important;
}
.home-challenge-panel > .home-dashboard-title{padding-top:0!important;}
.home-challenge-panel > .home-welcome{padding-top:10px!important;}
.home-challenge-panel > .home-day-row{padding-top:18px!important;}
.home-challenge-panel > .home-progress{margin-top:8px!important;top:0!important;width:100%!important;}
.home-challenge-panel > .home-stats-grid{margin-top:18px!important;padding:18px 0 0!important;}
.home-progress-section,.home-start-section,.home-training-calendar{margin-left:-20px!important;margin-right:-20px!important;}
.home-progress-section{margin-top:32px!important;}
.home-start-section,.home-training-calendar{margin-top:18px!important;}
.home-progress-goals-table .exercise + .mini-progress{margin-top:8px!important;}


/* v2.78 — cohérence Accueil / Paramètres */
.home-progress-goals-table .mini-progress{display:none!important}
.home-progress-goals-table td:first-child{width:27%}


/* v2.78 — Accueil découpé en cartes indépendantes comme Suivi */
#tab-accueil .home-dashboard{
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  margin:16px 0 18px!important;
}
#tab-accueil .home-challenge-panel,
#tab-accueil .home-separate-card{
  margin-left:0!important;
  margin-right:0!important;
  background:#fff!important;
  border-radius:22px!important;
  box-shadow:0 5px 18px rgba(113,72,43,.07)!important;
}
#tab-accueil .home-challenge-panel{
  margin-top:0!important;
  padding:22px 20px 20px!important;
}
#tab-accueil .home-progress-section,
#tab-accueil .home-start-section,
#tab-accueil .home-training-calendar{
  margin-top:18px!important;
  border:0!important;
}
#tab-accueil .home-progress-section{padding:20px!important}
#tab-accueil .home-start-section{padding:16px 20px!important}
#tab-accueil .home-start-btn{margin-top:0!important}
#tab-accueil .home-training-calendar{padding:18px 20px!important}


/* v2.78 — durée du challenge configurable */
.challenge-duration-card{margin-bottom:18px}
.challenge-duration-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:10px;
}
.challenge-duration-option{
  min-height:46px;
  border:1px solid #e4dfda;
  border-radius:11px;
  background:#fff;
  color:#5f5751;
  font-size:12px;
  font-weight:850;
}
.challenge-duration-option.active{
  border-color:#ee6b2f;
  background:#fff4ec;
  color:#c65320;
}
.challenge-custom-dates{
  display:none;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:12px;
}
.challenge-custom-dates.show{display:grid}
.challenge-custom-dates label{
  font-size:11px;
  font-weight:800;
  color:#625a54;
}
.challenge-custom-dates input{margin-top:6px;width:100%}
.challenge-duration-summary{
  margin-top:10px;
  padding:10px 12px;
  border-radius:10px;
  background:#faf8f6;
  border:1px solid #ece8e4;
  font-size:11px;
  color:#716860;
  line-height:1.4;
}
@media(max-width:420px){
  .challenge-duration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .challenge-custom-dates{grid-template-columns:1fr}
}


/* v2.78 — rôle de chaque onglet mis en évidence */
.tab-role-header{
  margin:0 0 18px;
  padding:16px 18px;
  background:#fff;
  border:1px solid #ebe8e4;
  border-radius:18px;
  box-shadow:0 2px 10px rgba(25,25,25,.035);
}
.tab-role-kicker{
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#ee6b2f;
  margin-bottom:4px;
}
.tab-role-title{
  font-size:22px;
  line-height:1.08;
  font-weight:950;
  color:#211d1a;
  letter-spacing:-.025em;
}
.tab-role-subtitle{
  margin-top:5px;
  font-size:13px;
  line-height:1.4;
  color:#817970;
}
#tab-seance .tab-role-header,
#tab-suivi .tab-role-header{
  margin-top:0;
}


/* v2.78 — harmonisation en-têtes des onglets */

/* Respiration sous le grand en-tête orange de l'Accueil */
#tab-accueil > .tab-role-header{
  margin-top:18px !important;
  margin-bottom:18px !important;
}

/* Ma séance : même logique visuelle que les onglets standards */
#tab-seance > .tab-role-header{
  margin-top:0 !important;
  margin-bottom:18px !important;
  padding:0 2px 12px !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  border-bottom:1px solid #ece9e6 !important;
}

#tab-seance > .tab-role-header .tab-role-kicker{
  display:none !important;
}

#tab-seance > .tab-role-header .tab-role-title{
  font-size:24px !important;
  line-height:1.13 !important;
  font-weight:900 !important;
  color:#2d2119 !important;
}

#tab-seance > .tab-role-header .tab-role-subtitle{
  margin-top:5px !important;
  font-size:13px !important;
  color:#817970 !important;
}

/* Suivi reste sur le même langage visuel simple */
#tab-suivi > .tab-role-header{
  padding:0 2px 12px !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  border-bottom:1px solid #ece9e6 !important;
}

#tab-suivi > .tab-role-header .tab-role-kicker{
  display:none !important;
}


/* v2.78 — harmonisation stricte Accueil / Ma séance / Suivi */

/* Les trois blocs de rôle ont exactement le même rendu */
#tab-accueil > .tab-role-header,
#tab-seance > .tab-role-header,
#tab-suivi > .tab-role-header{
  margin-top:18px !important;
  margin-bottom:18px !important;
  padding:16px 18px !important;
  background:#fff !important;
  border:1px solid #ebe8e4 !important;
  border-radius:18px !important;
  box-shadow:0 2px 10px rgba(25,25,25,.035) !important;
}

/* Le petit nom d'onglet est visible sur les trois cartes */
#tab-accueil > .tab-role-header .tab-role-kicker,
#tab-seance > .tab-role-header .tab-role-kicker,
#tab-suivi > .tab-role-header .tab-role-kicker{
  display:block !important;
  margin-bottom:4px !important;
  font-size:10px !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  letter-spacing:.06em !important;
  color:#ee6b2f !important;
}

/* Même typographie pour les trois titres */
#tab-accueil > .tab-role-header .tab-role-title,
#tab-seance > .tab-role-header .tab-role-title,
#tab-suivi > .tab-role-header .tab-role-title{
  font-size:22px !important;
  line-height:1.08 !important;
  font-weight:950 !important;
  color:#211d1a !important;
  letter-spacing:-.025em !important;
}

/* Même sous-titre pour les trois */
#tab-accueil > .tab-role-header .tab-role-subtitle,
#tab-seance > .tab-role-header .tab-role-subtitle,
#tab-suivi > .tab-role-header .tab-role-subtitle{
  margin-top:5px !important;
  font-size:13px !important;
  line-height:1.4 !important;
  color:#817970 !important;
}

/* Dans Ma séance, le bandeau orange doit être identique à Suivi :
   pas d'objectif ni de statut séance dans le bandeau. */
body:has(#tab-seance.active) #currentObjectiveText,
body:has(#tab-seance.active) #todayWorkoutStatus{
  display:none !important;
}

/* Même respiration sous le bandeau orange pour Ma séance et Suivi */
#tab-seance.active,
#tab-suivi.active{
  padding-top:0 !important;
}


/* v2.78 — dimensions d'en-tête strictement identiques */
#tab-seance > .tab-role-header,
#tab-suivi > .tab-role-header{
  box-sizing:border-box !important;
  min-height:126px !important;
  height:126px !important;
  margin-top:18px !important;
  margin-bottom:18px !important;
  padding:16px 18px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  background:#fff !important;
  border:1px solid #ebe8e4 !important;
  border-radius:18px !important;
  box-shadow:0 2px 10px rgba(25,25,25,.035) !important;
}

#tab-seance > .tab-role-header .tab-role-kicker,
#tab-suivi > .tab-role-header .tab-role-kicker{
  display:block !important;
  margin:0 0 4px !important;
  font-size:10px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
}

#tab-seance > .tab-role-header .tab-role-title,
#tab-suivi > .tab-role-header .tab-role-title{
  margin:0 !important;
  font-size:22px !important;
  line-height:1.08 !important;
  font-weight:950 !important;
}

#tab-seance > .tab-role-header .tab-role-subtitle,
#tab-suivi > .tab-role-header .tab-role-subtitle{
  margin:5px 0 0 !important;
  font-size:13px !important;
  line-height:1.4 !important;
}


/* v2.78 — grand en-tête strictement identique hors Accueil */
body.compact-app-hero .hero{
  height:auto !important;
  min-height:auto !important;
  max-height:auto !important;
  padding:20px 28px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

/* Hors Accueil, objectif et statut ne prennent aucune place */
body.compact-app-hero #currentObjectiveText,
body.compact-app-hero #todayWorkoutStatus{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
}

/* Même métrique interne sur Ma séance / Suivi / Paramètres / Aide */
body.compact-app-hero .hero > div:first-of-type{
  margin:0 !important;
  padding:0 !important;
}
body.compact-app-hero .hero .subtitle{
  margin:10px 0 0 !important;
  line-height:1.25 !important;
}

/* Les cartes de rôle Ma séance et Suivi restent identiques */
#tab-seance > .tab-role-header,
#tab-suivi > .tab-role-header{
  min-height:126px !important;
  height:126px !important;
  max-height:126px !important;
  padding:16px 18px !important;
  margin:18px 0 !important;
  box-sizing:border-box !important;
}


/* v2.78 — taille naturelle identique à Suivi / Paramètres */
body.compact-app-hero .hero{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  padding:20px 28px !important;
  box-sizing:border-box !important;
}
body.compact-app-hero #currentObjectiveText,
body.compact-app-hero #todayWorkoutStatus{display:none !important;}

/* v2.78 — même bloc orange pour Ma séance / Suivi / Paramètres / Aide */
body.compact-app-hero .hero{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  padding:20px 28px !important;
  box-sizing:border-box !important;
}
body.compact-app-hero #currentObjectiveText,
body.compact-app-hero #todayWorkoutStatus{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
}

/* v2.89 — correction ciblée : le bloc orange de Ma séance sert de référence
   et Suivi / Paramètres / Aide utilisent exactement les mêmes métriques. */
body.compact-app-hero .hero{
  padding:20px 28px !important;
  border-radius:24px !important;
  box-sizing:border-box !important;
}
body.compact-app-hero .hero .brand-logo{
  width:62px !important;
  height:62px !important;
  flex:0 0 62px !important;
}
body.compact-app-hero .hero h1{
  font-size:30px !important;
  line-height:1.05 !important;
}
body.compact-app-hero .hero .subtitle{
  margin:10px 0 0 !important;
  font-size:15px !important;
  line-height:1.25 !important;
}


/* v2.89 — harmonisation réelle : Suivi/Paramètres sont la référence */
body.compact-app-hero .hero{
  padding:14px 18px !important;
  border-radius:22px !important;
  margin-bottom:18px !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  box-sizing:border-box !important;
  display:block !important;
}

body.compact-app-hero .hero .brand-logo{
  width:40px !important;
  height:40px !important;
  flex:0 0 40px !important;
}

body.compact-app-hero .hero h1{
  font-size:24px !important;
  line-height:1.05 !important;
}

body.compact-app-hero .hero .subtitle{
  margin:8px 0 0 !important;
  font-size:15px !important;
  line-height:1.25 !important;
}

body.compact-app-hero #currentObjectiveText,
body.compact-app-hero #todayWorkoutStatus{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
}

/* Le propriétaire reste toujours en bas de l'application */
.app-owner{
  margin:34px 20px 92px !important;
  text-align:center !important;
}


/* v2.89 — aperçu visuel du changement d'onglet */
.swipe-preview{
  position:fixed;
  inset:0;
  z-index:9998;
  pointer-events:none;
  overflow:hidden;
  display:none;
  perspective:1200px;
}
.swipe-preview.active{display:block}
.swipe-preview-page{
  position:absolute;
  inset:0;
  background:#f6f4f2;
  box-shadow:0 0 28px rgba(25,20,16,.18);
  transform-origin:left center;
  will-change:transform,opacity;
  overflow:hidden;
}

/* v2.89 — Paramètres compacts et dépliables */
#tab-parametres .settings-collapsible{
  margin-bottom:14px !important;
  padding:15px 17px !important;
}
.settings-collapsible-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.settings-collapsible-head .card-section-title{
  margin:0 !important;
  font-size:17px !important;
}
.settings-collapsible-summary{
  margin-top:4px;
  font-size:11px;
  line-height:1.3;
  color:#8d857e;
}
.settings-edit-toggle{
  flex:0 0 auto;
  min-height:34px;
  padding:7px 11px;
  border:1px solid #e4dfda;
  border-radius:10px;
  background:#fff;
  color:#b84f20;
  font-size:11px;
  font-weight:900;
}
.settings-collapsible-content{
  display:none;
  margin-top:15px;
  padding-top:15px;
  border-top:1px solid #ece9e6;
}
.settings-collapsible.open .settings-collapsible-content{
  display:block;
}
.settings-collapsible.open .settings-edit-toggle{
  color:#6f6862;
  background:#f7f5f3;
}


/* v2.89 — Modifier + Enregistrer visibles dans chaque bloc Paramètres */
.settings-head-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
}
.settings-head-save{
  min-height:34px;
  padding:7px 10px;
  border:0;
  border-radius:10px;
  background:#f36b2b;
  color:#fff;
  font-size:11px;
  font-weight:900;
}
@media(max-width:390px){
  .settings-head-actions{gap:5px}
  .settings-edit-toggle,.settings-head-save{padding:7px 8px;font-size:10px}
}

/* v1.49 — correctif fidèle à la maquette Proposition 3. */
#tab-accueil .home-dashboard{
  position:relative!important;
  padding-bottom:0!important;
  background:linear-gradient(145deg,#ff6d2b 0%,#ff963d 34%,#ffc28f 53%,#fff 74%)!important;
}
#tab-accueil .home-challenge-panel{
  position:relative!important;
  isolation:isolate!important;
  padding:22px 16px 18px!important;
  overflow:hidden!important;
}
#tab-accueil .home-challenge-panel::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:-1!important;
  left:50%!important;
  top:154px!important;
  width:154%!important;
  height:480px!important;
  transform:translateX(-50%)!important;
  border-radius:50% 50% 0 0!important;
  background:linear-gradient(180deg,rgba(255,255,255,.97),#fff 58%)!important;
  box-shadow:0 -12px 38px rgba(255,255,255,.38)!important;
  pointer-events:none!important;
}
#tab-accueil .home-card-heading{
  grid-template-columns:40px minmax(0,1fr) 139px!important;
  gap:8px!important;
}
#tab-accueil .home-card-heading-icon,#tab-accueil .home-card-heading-icon svg{width:37px!important;height:37px!important}
#tab-accueil .home-card-heading .home-dashboard-title{font-size:14px!important;letter-spacing:-.2px!important;overflow:visible!important}
#tab-accueil .home-card-heading .home-objective-description{margin-top:5px!important;font-size:9.5px!important;overflow:visible!important}
#tab-accueil .home-card-cta{min-height:40px!important;padding:0 11px!important;font-size:10.5px!important}
#tab-accueil .home-challenge-ring-wrap{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  height:244px!important;
  margin:12px auto 8px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
}
#tab-accueil .home-challenge-ring-wrap::before{display:none!important}
#tab-accueil .home-challenge-ring-wrap::after{opacity:0!important;display:none!important}
#tab-accueil #homeChallengeRing.home-challenge-ring{
  --ring-size:232px!important;
  position:relative!important;
  width:232px!important;
  height:232px!important;
  min-width:232px!important;
  min-height:232px!important;
  margin:0!important;
  border-radius:50%!important;
  filter:drop-shadow(0 11px 17px rgba(255,96,18,.16))!important;
}
#tab-accueil #homeChallengeRing.home-challenge-ring::before{
  position:absolute!important;
  inset:18px!important;
  border-radius:50%!important;
  background:#fff!important;
}
#tab-accueil #homeChallengeRing .home-challenge-ring-inner{
  position:absolute!important;
  inset:26px!important;
  z-index:20!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  transform:none!important;
  -webkit-mask:none!important;
  mask:none!important;
  filter:none!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:inset 0 0 0 1px #efe6df,0 3px 11px rgba(76,48,30,.07)!important;
}
#tab-accueil #homeChallengePct{
  width:auto!important;
  margin:0 0 13px!important;
  transform:none!important;
  font-size:50px!important;
  line-height:.88!important;
  letter-spacing:-2px!important;
}
#tab-accueil #homeChallengeRing .home-challenge-ring-inner > span{
  width:105px!important;
  max-width:105px!important;
  margin:0!important;
  transform:none!important;
  font-size:10.5px!important;
  line-height:1.08!important;
}
#tab-accueil #homeChallengeRing .home-challenge-ring-inner::after{
  content:"❯❯❯"!important;
  margin:12px 0 0!important;
  transform:translateX(-2px)!important;
  font-size:19px!important;
  line-height:1!important;
  letter-spacing:-5px!important;
}
#tab-accueil #homeChallengeRing .home-ring-start{top:-17px!important;height:13px!important}
#tab-accueil #homeChallengeRing .home-ring-end{
  width:17px!important;height:17px!important;border-width:5px!important;
  transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-116px) rotate(calc(var(--challenge-pct)*-3.6deg))!important;
}
#tab-accueil .home-stats-grid{position:relative!important;z-index:2!important;gap:8px!important;margin:0!important}
#tab-accueil .home-stat{min-height:112px!important;padding:12px 5px 10px!important;border-radius:14px!important}
#tab-accueil .home-stat-icon{height:24px!important;margin-bottom:6px!important;font-size:19px!important;line-height:24px!important}
#tab-accueil .home-stat-value{font-size:22px!important}
#tab-accueil .home-stat-label{margin-top:7px!important;font-size:9.5px!important}
#tab-accueil .home-motivation-card{min-height:78px!important;margin:18px 0 0!important;padding:10px 15px!important;grid-template-columns:52px minmax(0,1fr) 18px!important;border-radius:18px!important}
#tab-accueil .home-motivation-icon{width:48px;height:48px;font-size:25px}
#tab-accueil .home-motivation-copy strong{font-size:14px!important}
#tab-accueil .home-motivation-copy small{font-size:10.5px!important}

/* v1.50 — composant autonome Proposition 3. Aucun style historique de l’accueil ne s’y applique. */
#tab-accueil>.p3-dashboard{width:100%;margin:0;padding:0 0 18px;background:#f7f7f7;box-sizing:border-box}
.p3-dashboard,.p3-dashboard *{box-sizing:border-box}
.p3-card{position:relative;width:100%;height:442px;overflow:hidden;border-radius:22px;background:linear-gradient(135deg,#ff6728 0%,#ff9039 34%,#ffbc82 51%,#fff 75%);box-shadow:0 10px 25px rgba(57,38,26,.10)}
.p3-heading{position:relative;z-index:5;height:96px;padding:18px 14px 23px;display:grid;grid-template-columns:40px minmax(0,1fr) 130px;gap:8px;align-items:center;color:#fff}
.p3-heading-icon{width:38px;height:38px;display:grid;place-items:center}
.p3-heading-icon svg{width:37px;height:37px;fill:none;stroke:#fff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.p3-heading-copy{min-width:0;align-self:center}
.p3-title{font-size:14px;font-weight:900;line-height:1.12;letter-spacing:-.25px;white-space:nowrap}
.p3-subtitle{margin-top:5px;font-size:9.5px;font-weight:500;line-height:1.1;color:rgba(255,255,255,.88);white-space:nowrap}
.p3-cta{width:130px;height:40px;padding:0 10px;border:0;border-radius:22px;background:#fff;color:#d95e22;box-shadow:0 4px 12px rgba(104,49,17,.12);font:800 10.5px/1 inherit;white-space:nowrap}
.p3-cta span{margin-left:5px;font-size:16px;vertical-align:-1px}
.p3-body{position:absolute;z-index:1;inset:96px 0 0;padding:0 14px 14px;background:#fff}
.p3-body::before{content:"";position:absolute;left:50%;top:-45px;width:142%;height:92px;transform:translateX(-50%);border-radius:50% 50% 0 0;background:#fff;box-shadow:0 -9px 24px rgba(255,255,255,.35)}
.p3-ring-wrap{position:relative;z-index:2;width:222px;height:222px;margin:-22px auto 4px;display:grid;place-items:center}
.p3-ring{--ring-size:218px;position:relative;width:var(--ring-size);height:var(--ring-size);border-radius:50%;background:conic-gradient(from 0deg,#ff5300 0,#ff6900 calc(var(--challenge-pct)*1%),#efefed calc(var(--challenge-pct)*1%),#efefed 100%);box-shadow:0 10px 24px rgba(255,93,15,.12);isolation:isolate}
.p3-ring::before{content:"";position:absolute;inset:18px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #eee5df,0 3px 10px rgba(66,43,28,.06)}
.p3-ring-inner{position:absolute;z-index:3;inset:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;background:#fff;text-align:center}
.p3-ring-inner strong{display:block;margin:0 0 11px;color:#080706;font-size:48px;font-weight:950;line-height:.88;letter-spacing:-2.5px;white-space:nowrap}
.p3-ring-inner>span{display:block;width:102px;color:#4f4945;font-size:10px;font-weight:900;line-height:1.08;text-transform:uppercase}
.p3-ring-inner>i{display:block;margin-top:10px;color:#ff620d;font-size:18px;font-style:normal;font-weight:950;line-height:1;letter-spacing:-5px}
.p3-ring-start{position:absolute;z-index:4;left:50%;top:-16px;width:4px;height:13px;transform:translateX(-50%);border-radius:4px;background:#ff6500}
.p3-ring-end{position:absolute;z-index:5;left:50%;top:50%;width:17px;height:17px;border:5px solid #fff;border-radius:50%;background:#ff6500;box-shadow:0 0 0 2px rgba(255,101,0,.16),0 3px 9px rgba(64,40,24,.22);transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-109px) rotate(calc(var(--challenge-pct)*-3.6deg))}
.p3-stats{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:0}
.p3-stat{height:104px;padding:11px 5px 8px;border-radius:13px;text-align:center;box-shadow:0 5px 14px rgba(61,40,27,.05)}
.p3-stat-orange{background:linear-gradient(145deg,#fff7f1,#fff)}
.p3-stat-blue{background:linear-gradient(145deg,#f1fbff,#fff)}
.p3-stat-red{background:linear-gradient(145deg,#fff3f4,#fff)}
.p3-stat-icon{height:22px;margin-bottom:5px;font-size:18px;line-height:22px}
.p3-stat-orange .p3-stat-icon{display:inline-grid;width:24px;height:24px;place-items:center;border:2px solid #eb692b;border-radius:50%;color:#eb692b;font-size:14px;font-weight:900;transform:rotate(-12deg)}
.p3-stat-blue .p3-stat-icon{color:#369caf;font-size:21px}
.p3-stat-value{margin-top:2px;color:#090807;font-size:22px;font-weight:950;line-height:1;white-space:nowrap}
.p3-stat-label{max-width:92px;margin:7px auto 0;color:#76706c;font-size:9.5px;line-height:1.22}
.p3-motivation{width:100%;height:78px;margin:18px 0 0;padding:10px 15px;display:grid;grid-template-columns:48px minmax(0,1fr) 18px;align-items:center;gap:12px;border:0;border-radius:18px;background:#fff;color:#15110f;text-align:left;box-shadow:0 8px 22px rgba(55,38,27,.08)}
.p3-motivation-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#fff3bd;font-size:25px}
.p3-motivation-copy{display:flex!important;min-width:0;flex-direction:column;gap:5px;visibility:visible!important;opacity:1!important}
.p3-motivation-copy strong{display:block!important;color:#15110f!important;font-size:14px!important;font-weight:900!important;line-height:1.12!important;visibility:visible!important}
.p3-motivation-copy small{display:block!important;color:#79726e!important;font-size:10.5px!important;font-weight:500!important;line-height:1.2!important;visibility:visible!important}
.p3-motivation-arrow{justify-self:end;color:#e86e2a;font-size:28px;line-height:1}
#tab-accueil .native-ad-home{display:none!important}
@media(max-width:360px){.p3-heading{grid-template-columns:35px minmax(0,1fr) 116px;padding-left:11px;padding-right:11px;gap:6px}.p3-heading-icon,.p3-heading-icon svg{width:33px;height:33px}.p3-title{font-size:12.5px}.p3-subtitle{font-size:8.5px}.p3-cta{width:116px;font-size:9.5px}.p3-card{height:432px}.p3-stat-label{font-size:9px}}

/* v1.51 — proportions mesurées sur la proposition 3. */
.p3-card{height:560px!important}
.p3-heading{height:112px!important;padding:18px 14px 30px!important;grid-template-columns:39px minmax(0,1fr) 118px!important}
.p3-title{font-size:14.5px!important}
.p3-subtitle{font-size:10px!important;color:rgba(255,255,255,.92)!important}
.p3-cta{width:118px!important;height:39px!important;padding:0 8px!important;font-size:9.5px!important}
.p3-body{inset:166px 0 0!important;padding:0 14px 18px!important}
.p3-body::before{top:-61px!important;width:150%!important;height:124px!important;border-radius:50% 50% 0 0!important}
.p3-ring-wrap{width:258px!important;height:258px!important;margin:-60px auto 8px!important}
.p3-ring{--ring-size:250px!important;background:conic-gradient(from 0deg,#ff5200 0,#ff6500 calc(var(--challenge-pct)*1%),#ff8a3d calc(var(--challenge-pct)*1% + 1%),#ffad72 38%,#ffd8bd 58%,#efefed 78%,#efefed 100%)!important;box-shadow:0 11px 25px rgba(255,91,10,.14)!important}
.p3-ring::before{inset:26px!important}
.p3-ring-inner{inset:32px!important}
.p3-ring-inner strong{font-size:52px!important;margin-bottom:13px!important}
.p3-ring-inner>span{font-size:10.5px!important}
.p3-ring-inner>i{margin-top:12px!important;font-size:20px!important}
.p3-ring-start{top:-17px!important;width:5px!important;height:15px!important}
.p3-ring-end{width:18px!important;height:18px!important;border-width:6px!important;box-shadow:0 0 0 2px rgba(255,101,0,.17),0 4px 11px rgba(64,40,24,.24)!important;transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-125px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}
.p3-stats{gap:8px!important;margin-top:2px!important}
.p3-stat{height:112px!important;padding-top:12px!important}
.p3-stat-value{font-size:23px!important}
.p3-motivation{margin-top:18px!important}
#tab-accueil .native-ad-card{display:none!important}
@media(max-width:360px){.p3-card{height:540px!important}.p3-ring-wrap{width:244px!important;height:244px!important}.p3-ring{--ring-size:238px!important}.p3-ring-end{transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-119px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}}

/* v1.52 — vague, fondu, marqueur et centre conformes à la référence. */
.p3-card{height:508px!important;background:linear-gradient(135deg,#ff6728 0%,#ff913a 28%,#ffb56f 44%,#ffd7b9 57%,#fff 78%)!important}
.p3-body{inset:166px 0 0!important;isolation:isolate!important;background:transparent!important}
.p3-body::before{z-index:-1!important;top:-72px!important;width:150%!important;height:430px!important;border-radius:50% 50% 0 0!important;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.99) 0 54%,#fff 73%)!important;box-shadow:0 -18px 34px rgba(255,245,236,.55),0 -7px 22px rgba(255,255,255,.76)!important}
.p3-body::after{content:"";position:absolute;z-index:-2;left:50%;top:-92px;width:128%;height:150px;transform:translateX(-50%);border-radius:50%;background:rgba(255,218,191,.42);filter:blur(15px);pointer-events:none}
.p3-ring-wrap{width:270px!important;height:270px!important;margin:-32px auto 17px!important}
.p3-ring{--ring-size:264px!important;background:conic-gradient(from 0deg,#ff5200 0,#ff6500 calc(var(--challenge-pct)*1%),#ff8840 calc(var(--challenge-pct)*1% + .8%),#ffad76 39%,#ffd7bd 60%,#f0efed 82%,#f0efed 100%)!important;box-shadow:0 13px 28px rgba(255,95,18,.15)!important}
.p3-ring::before{inset:29px!important;box-shadow:inset 0 0 0 1px #eee3dc,0 5px 14px rgba(78,48,29,.08)!important}
.p3-ring-inner{inset:35px!important;justify-content:center!important;padding-top:3px!important}
.p3-ring-inner strong{margin:0 0 16px!important;font-size:59px!important;line-height:.86!important;letter-spacing:-3.4px!important}
.p3-ring-inner>span{width:112px!important;font-size:11.5px!important;line-height:1.08!important}
.p3-ring-inner>i{margin-top:15px!important;font-size:22px!important;letter-spacing:-6px!important}
.p3-ring-start{top:-18px!important;width:5px!important;height:16px!important}
.p3-ring-end{width:36px!important;height:36px!important;border:7px solid #fff!important;background:#ff6500!important;box-shadow:0 0 0 2px rgba(255,101,0,.16),0 5px 13px rgba(64,40,24,.23)!important;transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-116px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}
.p3-stats{margin-top:0!important}
@media(max-width:360px){.p3-card{height:492px!important}.p3-ring-wrap{width:254px!important;height:254px!important}.p3-ring{--ring-size:248px!important}.p3-ring-end{width:34px!important;height:34px!important;transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-109px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}.p3-ring-inner strong{font-size:56px!important}}

/* v1.53 — séparation orange/blanc concentrique au cadran. */
.p3-body::before{left:50%!important;top:-72px!important;width:126%!important;height:430px!important;transform:translateX(-50%)!important;border-radius:50% 50% 0 0!important;background:#fff!important;box-shadow:0 -17px 30px rgba(255,238,225,.65),0 -6px 18px rgba(255,255,255,.82)!important}
.p3-body::after{left:50%!important;top:-94px!important;width:126%!important;height:170px!important;transform:translateX(-50%)!important;border-radius:50%!important;background:radial-gradient(ellipse at 50% 100%,rgba(255,188,137,.52) 0%,rgba(255,203,166,.36) 48%,rgba(255,222,197,0) 76%)!important;filter:blur(12px)!important}
.p3-ring-wrap{left:50%!important;transform:translateX(-50%)!important;margin-left:0!important;margin-right:0!important}

/* v1.54 — courbe guidée par le tracé utilisateur et centrage optique du contenu. */
.p3-body::before{top:-72px!important;width:108%!important;height:430px!important;border-radius:50% 50% 0 0 / 32% 32% 0 0!important;box-shadow:0 -20px 34px rgba(255,232,214,.68),0 -7px 19px rgba(255,255,255,.85)!important}
.p3-body::after{top:-94px!important;width:110%!important;height:190px!important;border-radius:50% 50% 42% 42% / 45% 45% 55% 55%!important;background:radial-gradient(ellipse at 50% 100%,rgba(255,178,118,.52) 0%,rgba(255,202,163,.34) 48%,rgba(255,222,197,0) 76%)!important;filter:blur(13px)!important}
.p3-ring-inner{padding-top:22px!important}
.p3-ring-inner strong,.p3-ring-inner>span,.p3-ring-inner>i{position:relative!important;left:-9px!important}
.p3-ring-inner strong{font-size:68px!important;line-height:.84!important;letter-spacing:-4px!important;margin-bottom:17px!important}
.p3-ring-inner>span{width:122px!important;font-size:13px!important;line-height:1.06!important}
.p3-ring-inner>i{margin-top:16px!important;font-size:25px!important;letter-spacing:-7px!important}
@media(max-width:360px){.p3-ring-inner{padding-top:18px!important}.p3-ring-inner strong{font-size:63px!important}.p3-ring-inner>span{font-size:12px!important}.p3-ring-inner>i{font-size:23px!important}}

/* v1.55 — vraie courbe vectorielle, sans arc elliptique CSS. */
.p3-body::before,.p3-body::after{display:none!important;content:none!important}
.p3-wave{position:absolute;z-index:-1;left:0;top:-110px;width:100%;height:500px;overflow:visible;pointer-events:none}
.p3-wave-fill{fill:url(#p3WaveFill)}
.p3-wave-glow{fill:none;stroke:rgba(255,189,141,.48);stroke-width:28;filter:url(#p3WaveBlur)}
.p3-ring-inner{padding-top:26px!important}
.p3-ring-inner strong{font-size:74px!important;line-height:.82!important;margin-bottom:18px!important}
.p3-ring-inner>span{width:128px!important;font-size:14px!important;line-height:1.05!important}
.p3-ring-inner>i{margin-top:17px!important;font-size:28px!important;letter-spacing:-8px!important}
@media(max-width:360px){.p3-ring-inner strong{font-size:68px!important}.p3-ring-inner>span{font-size:13px!important}.p3-ring-inner>i{font-size:25px!important}}

/* v1.56 — placement vertical de la courbe conforme au tracé fourni. */
.p3-wave{top:-161px!important}

/* v1.58 — profil relevé sur l’annotation utilisateur. */
.p3-wave-halo{fill:rgba(255,196,151,.34);filter:url(#p3WaveBlur)}
.p3-wave-glow{stroke:rgba(255,202,164,.30)!important;stroke-width:18!important}

/* v1.59 — fondu orange vertical et symétrique. */
.p3-card{background:linear-gradient(180deg,#ff6b2c 0%,#ff7f31 29%,#ff9d50 48%,#ffc496 66%,#fff4ec 82%,#fff 100%)!important}
.p3-wave-halo{fill:rgba(255,190,142,.42)!important;filter:url(#p3WaveBlur)!important}
.p3-wave-glow{stroke:rgba(255,190,142,.38)!important;stroke-width:22!important}

/* v1.60 — dégradé descendant rapide, clair avant la courbe. */
.p3-card{background:linear-gradient(180deg,#ff6b2c 0%,#ff7d31 13%,#ff9d55 23%,#ffc18f 34%,#ffddc6 43%,#fff0e5 52%,#fffaf7 61%,#fff 72%)!important}
.p3-wave-halo{fill:rgba(255,211,178,.22)!important}
.p3-wave-glow{stroke:rgba(255,218,191,.24)!important;stroke-width:20!important}

/* v1.61 — centrage réel du groupe et trois chevrons séparés. */
.p3-ring-inner{padding:0!important}
.p3-ring-inner strong,.p3-ring-inner>span,.p3-ring-inner>i{left:0!important;transform:none!important}
.p3-ring-inner strong{margin:0 0 16px!important}
.p3-ring-inner>span{margin:0!important}
.p3-ring-inner>.p3-chevrons{display:flex!important;align-items:center!important;justify-content:center!important;gap:1px!important;width:43px!important;height:24px!important;margin:15px 0 0!important;font-size:0!important;line-height:1!important}
.p3-chevrons b{display:block!important;width:14px!important;height:14px!important;margin:0!important;border-right:5px solid #ff620d!important;border-bottom:5px solid #ff620d!important;transform:rotate(-45deg)!important}


/* v2.92 — état des blocs Paramètres : Modifier reste visible même bloc ouvert */
.settings-collapsible.open .settings-edit-toggle{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
}
.settings-collapsible:not(.open) .settings-collapsible-content{
  display:none !important;
}
.settings-collapsible.open .settings-collapsible-content{
  display:block !important;
}
.settings-collapsible.open .settings-collapsible-summary{
  display:none !important;
}
.settings-head-save,
.settings-head-actions{
  display:none !important;
}


/* v2.92 — structure exacte des blocs Paramètres */
.settings-collapsible-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.settings-edit-toggle{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
}
.settings-collapsible.open .settings-edit-toggle{
  display:inline-flex !important;
}
.settings-collapsible-content{
  display:none !important;
}
.settings-collapsible.open .settings-collapsible-content{
  display:block !important;
}
.settings-collapsible.open .settings-collapsible-summary{
  display:none !important;
}

.settings-bottom-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:14px;
}
.settings-bottom-actions .secondary,
.settings-bottom-actions .primary{
  width:auto !important;
  min-width:104px;
  margin:0 !important;
}
.settings-modify-btn.active{
  border-color:#f36b2b !important;
  color:#b84f20 !important;
  background:#fff4ec !important;
}
.settings-save-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

/* Lecture seule tant que Modifier n'a pas été pressé */
.settings-collapsible:not(.editing) input[readonly],
.settings-collapsible:not(.editing) textarea[readonly],
.settings-collapsible:not(.editing) select:disabled{
  background:#f8f7f5 !important;
  color:#6f6862 !important;
}


/* v2.92 — Objectif du moment + exercices dans un seul bloc */
.settings-objective-section h3,.settings-exercises-section h3{margin:0 0 12px;font-size:1.18rem}
.settings-section-divider{height:1px;background:#ece7e2;margin:22px 0}

/* v3.04 — bloc Mes objectifs plus compact */
.objectives-settings-card .settings-collapsible-content{padding-top:4px}
.objectives-settings-card .settings-objective-section h3,.objectives-settings-card .settings-exercises-section h3{margin:0 0 8px;font-size:1.05rem}
.objectives-settings-card .objective-textarea{min-height:72px;padding:10px 12px;border-radius:14px}
.objectives-settings-card .settings-section-divider{margin:14px 0}
.objectives-settings-card .objective-list{gap:7px}
.objectives-settings-card .objective-card{padding:9px 11px;border-radius:14px}
.objectives-settings-card .objective-title{font-size:16px}
.objectives-settings-card .objective-target{margin-top:2px;font-size:13px}
.objectives-settings-card .objective-actions{gap:5px}
.objectives-settings-card .objective-actions button{padding:6px 9px;font-size:11px}
.objectives-settings-card .settings-bottom-actions{margin-top:10px}

/* v3.04 — Mes objectifs : commandes par exercice uniquement */
#tab-parametres [data-settings-block="mes-objectifs"] > .settings-collapsible-content > .settings-bottom-actions{
  display:none !important;
}

/* Les actions Modifier / Supprimer de chaque exercice restent cliquables. */
#tab-parametres #objectivesEditor .toggle-edit,
#tab-parametres #objectivesEditor .remove{
  pointer-events:auto !important;
  touch-action:manipulation !important;
}

/* Aucun changement de z-index/navigation/planning : comportement v2.93 conservé. */


/* v3.04 — accueil : salutation hors bloc, en-tête Accueil conservé dans sa carte */
#tab-accueil > .home-welcome-standalone{
  margin:18px 2px 18px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
#tab-accueil > .home-welcome-standalone .home-welcome-title{
  font-size:21px !important;
  line-height:1.15 !important;
  font-weight:950 !important;
  color:#211d1a !important;
}
#tab-accueil > .home-welcome-standalone .home-welcome-subtitle{
  margin-top:7px !important;
  font-size:13px !important;
  line-height:1.4 !important;
  color:#817970 !important;
}
#tab-accueil > .tab-role-header{
  margin-top:0 !important;
}
.home-challenge-panel > .home-challenge-subtitle{
  margin-top:8px !important;
  font-size:13px !important;
  line-height:1.4 !important;
  color:#817970 !important;
}


/* v3.15 — progression du challenge en jauge circulaire */
.home-challenge-panel > .home-day-row,.home-challenge-panel > .home-progress{display:none!important}
.home-challenge-ring-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:20px 0 4px}
.home-challenge-ring{--challenge-pct:0;width:178px;height:178px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(from 0deg,#ff5a0a 0%,#ff7a00 calc(var(--challenge-pct)*1%),#eceae7 calc(var(--challenge-pct)*1%),#eceae7 100%);box-shadow:0 10px 24px rgba(238,107,47,.10)}
.home-challenge-ring::before{content:"";position:absolute;inset:14px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(45,33,25,.025)}
.home-challenge-ring::after{content:"";position:absolute;inset:-13px;border-radius:50%;background:repeating-conic-gradient(from -1deg,rgba(116,108,101,.30) 0deg 1.2deg,transparent 1.2deg 9deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));opacity:.72;pointer-events:none}
.home-challenge-ring-inner{position:relative;z-index:1;text-align:center;display:flex;flex-direction:column;align-items:center;line-height:1}
.home-challenge-ring-inner strong{font-size:38px!important;font-weight:950!important;color:#2d2119!important;margin:0 0 9px!important}
.home-challenge-ring-inner span{font-size:14px;font-weight:700;color:#938b84}
.home-challenge-day{font-size:20px!important;font-weight:900!important;color:#2d2119!important;margin-top:12px}
@media(max-width:420px){.home-challenge-ring{width:160px;height:160px}.home-challenge-ring::before{inset:13px}.home-challenge-ring-inner strong{font-size:34px!important}}



/* v3.52 — anneau sportif premium : départ à 12 h, lecture horaire, repère terminal */
.home-challenge-ring-wrap{margin:20px 0 4px!important}
.home-challenge-ring{
  --challenge-pct:0;
  width:190px!important;height:190px!important;
  background:conic-gradient(from 0deg,#ff6200 0%,#ff7a00 calc(var(--challenge-pct)*1%),#ece9e4 calc(var(--challenge-pct)*1%),#ece9e4 100%)!important;
  box-shadow:0 12px 28px rgba(63,42,28,.10),inset 0 0 0 1px rgba(255,255,255,.65)!important;
}
.home-challenge-ring::before{inset:15px!important;background:#fff!important;box-shadow:0 5px 18px rgba(56,38,27,.08),inset 0 0 0 1px #f3e8df!important}
.home-challenge-ring::after{inset:-18px!important;background:repeating-conic-gradient(from -1deg,rgba(108,103,98,.32) 0deg 1.15deg,transparent 1.15deg 9deg)!important;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px))!important;mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px))!important;opacity:.62!important}
.home-challenge-ring-inner strong{font-size:42px!important;letter-spacing:-1.5px!important;margin-bottom:10px!important}
.home-challenge-ring-inner span{font-size:11px!important;font-weight:900!important;letter-spacing:.25px!important;text-transform:uppercase!important;color:#77716c!important;white-space:nowrap!important}
.home-ring-start{position:absolute;z-index:4;left:50%;top:-16px;width:3px;height:11px;border-radius:3px;background:#ff6500;transform:translateX(-50%);box-shadow:0 1px 4px rgba(255,101,0,.22)}
.home-ring-end{position:absolute;z-index:5;left:50%;top:50%;width:16px;height:16px;border-radius:50%;background:#ff6a00;border:5px solid #fff;box-sizing:content-box;box-shadow:0 2px 8px rgba(55,39,29,.24);transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-95px) rotate(calc(var(--challenge-pct)*-3.6deg));pointer-events:none}
@media(max-width:420px){.home-challenge-ring{width:184px!important;height:184px!important}.home-ring-end{transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-92px) rotate(calc(var(--challenge-pct)*-3.6deg))}.home-challenge-ring-inner strong{font-size:40px!important}}

/* v3.15 — encarts publicitaires natifs, deux emplacements uniquement */
.native-ad-card{
  background:linear-gradient(135deg,#fff7f0,#ffffff);
  border:1px solid #f1dfd1;
  border-radius:24px;
  box-shadow:0 10px 28px rgba(43,33,28,.06);
  padding:18px;
  margin:20px 0 24px;
  box-sizing:border-box;
}
.native-ad-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.native-ad-badge{
  display:inline-flex;
  align-items:center;
  font-size:12px;
  font-weight:700;
  color:#a96a3c;
  background:#f8e9dd;
  padding:6px 9px;
  border-radius:999px;
}
.native-ad-brand{
  font-size:13px;
  font-weight:700;
  color:#6d625b;
}
.native-ad-title{
  font-size:22px;
  line-height:1.15;
  font-weight:800;
  margin:0 0 8px;
  color:#2c211c;
}
.native-ad-text{
  font-size:15px;
  line-height:1.45;
  color:#756b65;
  margin:0 0 14px;
}
.native-ad-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.native-ad-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 16px;
  border-radius:14px;
  background:#f46c2f;
  color:#fff;
  font-weight:800;
  text-decoration:none;
}
.native-ad-note{
  font-size:12px;
  color:#a79d96;
}


/* v3.15 — séparation visuelle des encarts publicitaires */
#tab-accueil .native-ad-home,
#tab-ma-seance .native-ad-session{
  margin-top:32px !important;
  margin-bottom:32px !important;
}


/* v3.15 — publicité = bloc autonome, séparé comme les autres cartes */
#tab-accueil .native-ad-home,
#tab-ma-seance .native-ad-session{
  display:block !important;
  position:relative !important;
  width:calc(100% - 0px) !important;
  margin:32px 0 !important;
  padding:26px 24px !important;
  background:#ffffff !important;
  border:1px solid rgba(62,45,36,.06) !important;
  border-radius:28px !important;
  box-shadow:0 8px 24px rgba(43,33,28,.06) !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}

/* L'intérieur garde le style sponsorisé, mais sans créer une carte imbriquée */
#tab-accueil .native-ad-home::before,
#tab-ma-seance .native-ad-session::before{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:22px;
  background:linear-gradient(135deg,#fff8f2,#fffdfb);
  border:1px solid #f1dfd1;
  z-index:0;
  pointer-events:none;
}
#tab-accueil .native-ad-home > *,
#tab-ma-seance .native-ad-session > *{
  position:relative;
  z-index:1;
}

/* Espace net entre le bloc précédent, la pub et le bloc suivant */
#tab-accueil #homeStartWorkout,
#tab-ma-seance #saveWorkoutBtn{
  margin-bottom:0 !important;
}



/* v3.15 — vraie séparation STRUCTURELLE entre boutons et publicités */
#tab-accueil .native-ad-home,
#tab-ma-seance .native-ad-session{
  display:block !important;
  position:relative !important;
  width:auto !important;
  margin:28px 0 32px !important;
  padding:24px !important;
  background:#ffffff !important;
  border:1px solid rgba(62,45,36,.07) !important;
  border-radius:28px !important;
  box-shadow:0 8px 24px rgba(43,33,28,.06) !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}

/* L'encart sponsorisé intérieur reste visuellement distinct sans fusionner avec le bloc précédent */
#tab-accueil .native-ad-home::before,
#tab-ma-seance .native-ad-session::before{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:22px;
  background:linear-gradient(135deg,#fff8f2,#fffdfb);
  border:1px solid #f1dfd1;
  z-index:0;
  pointer-events:none;
}
#tab-accueil .native-ad-home > *,
#tab-ma-seance .native-ad-session > *{
  position:relative;
  z-index:1;
}

/* v3.20 — éditeur d’objectif compact et homogène */
.target-compact-zone{margin-top:12px;padding:12px;border:1px solid #ead7c7;border-radius:18px;background:#fffaf6}
.target-compact-title{font-size:13px;font-weight:800;color:#8a7568;margin-bottom:9px}
.target-compact-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:10px;align-items:end}
.target-compact-grid label{margin:0;min-width:0}
.target-compact-grid input,.target-compact-grid select{width:100%;box-sizing:border-box}
.target-compact-grid .target-values{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.target-compact-grid .target-values.single{grid-template-columns:1fr}
.target-compact-grid .target-values label{font-size:12px}
.target-compact-grid .target-series{grid-column:2}
.target-compact-zone .weight-goal-note{grid-column:1/-1;margin-top:2px}
@media(max-width:420px){.target-compact-grid{grid-template-columns:1.2fr 1fr;gap:8px}.target-compact-zone{padding:10px}}
.objective-text-actions{display:flex;justify-content:flex-end;margin-top:10px}.objective-text-actions .secondary{min-width:130px}
/* v3.30 — simplification définitive du bloc Mes objectifs */
.objectives-settings-card > .settings-collapsible-content > .settings-bottom-actions,
.objectives-settings-card .settings-exercises-section > .settings-bottom-actions{
  display:none !important;
}
.objective-text-actions{
  margin-top:8px !important;
}
.objective-text-actions #editObjectiveTextInlineBtn{
  min-width:0 !important;
  width:auto !important;
  padding:9px 16px !important;
  font-size:.92rem !important;
  border-radius:13px !important;
}


/* v3.30 — sauvegarde par exercice */
.exercise-inline-save-wrap{
  display:flex;
  justify-content:flex-end;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid rgba(132,105,85,.16);
}
.exercise-inline-save{
  width:auto !important;
  min-width:138px;
  padding:11px 18px !important;
  border-radius:14px !important;
}


/* v3.39 — statut de séance enregistré placé en bas du bloc */
.saved-workout-head-bottom{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid #eadfd7;
}


/* v4.35 — aperçu publicitaire réaliste (maquette locale, aucune régie connectée) */
.demo-ad-creative{
  display:flex; align-items:center; gap:14px; margin:4px 0 16px;
}
.demo-ad-logo{
  width:58px; height:58px; flex:0 0 58px; border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(145deg,#173a2a,#2f7653);
  color:#fff; font-size:27px; font-weight:900;
  box-shadow:0 7px 18px rgba(31,91,62,.18);
}
.demo-ad-copy{min-width:0}
.demo-ad-kicker{font-size:12px;font-weight:800;color:#7b716a;margin-bottom:3px}
.demo-ad-copy .native-ad-title{font-size:20px;margin-bottom:4px}
.demo-ad-copy .native-ad-text{font-size:14px;margin:0}
.demo-ad-disclaimer{
  font-size:11px; line-height:1.35; color:#9a9089; margin-top:12px;
}


/* v4.49 — graphique validé : lisible avec 20+ séances */
.chart-session-caption{
  margin:8px 2px 0;
  color:#9a8b80;
  font-size:11px;
}
.performance-sequence{
  overflow:hidden !important;
}
#chart{
  touch-action:manipulation;
}
.chart-tooltip{z-index:6;
  position:fixed;
  z-index:5000;
  min-width:112px;
  padding:10px 12px;
  border-radius:10px;
  background:rgba(255,255,255,.98);
  border:1px solid #eee5dc;
  box-shadow:0 8px 24px rgba(45,33,25,.14);
  color:#2d2119;
  pointer-events:none;
  transform:translate(-50%,-115%);
  font-size:12px;
  line-height:1.35;
}
.chart-tooltip strong{
  display:block;
  font-size:15px;
  margin-bottom:2px;
}
.chart-tooltip .chart-tooltip-date{color:#756b64}
.chart-tooltip .chart-tooltip-session{
  margin-top:3px;
  color:#ee6b2f;
  font-weight:800;
}

/* v4.49 — visuel validé appliqué à toutes les séries */
.performance-sequence{font-size:13px!important}
.chart-session-caption{margin:8px 2px 0!important;font-size:11px!important;color:#9a8b80!important}

/* Source consolidée : legacy-002 */
/* v3.30 — Charge + répétitions aligné sur une seule ligne */
.target-compact-zone .target-compact-grid.weight-mode{grid-template-columns:1.55fr .58fr .58fr;align-items:end}
.target-compact-zone .target-compact-grid.weight-mode .measure-slot{grid-column:1;grid-row:1}
.target-compact-zone .target-compact-grid.weight-mode .weight-goals{display:contents!important}
.target-compact-zone .target-compact-grid.weight-mode .weight-goal-grid{display:contents!important}
.target-compact-zone .target-compact-grid.weight-mode .weight-goal-grid>label:nth-child(1){grid-column:2;grid-row:1}
.target-compact-zone .target-compact-grid.weight-mode .weight-goal-grid>label:nth-child(2){grid-column:3;grid-row:1}
.target-compact-zone .target-compact-grid.weight-mode .weight-goal-note{display:none}
.target-compact-zone .target-compact-grid.weight-mode .series-slot{grid-column:1;grid-row:2}
.target-compact-zone .target-compact-grid.weight-mode .target-values{display:none!important}
@media(max-width:420px){.target-compact-zone .target-compact-grid.weight-mode{grid-template-columns:1.5fr .58fr .58fr;gap:8px}}

/* Source consolidée : legacy-003 */
/* v3.52 — anneau sportif validé : proposition 1 */
.home-challenge-panel{
  overflow:hidden!important;
}
.home-challenge-ring-wrap{
  margin:18px 0 10px!important;
  padding:10px 0 6px!important;
}
.home-challenge-ring{
  --ring-size:224px;
  width:var(--ring-size)!important;
  height:var(--ring-size)!important;
  border-radius:50%!important;
  background:
    conic-gradient(from 0deg,
      #ff5600 0%,
      #ff7900 calc(var(--challenge-pct)*1%),
      #eeeae5 calc(var(--challenge-pct)*1%),
      #eeeae5 100%)!important;
  box-shadow:
    0 14px 28px rgba(238,91,20,.12),
    0 0 0 1px rgba(255,255,255,.9),
    inset 0 0 0 1px rgba(255,255,255,.7)!important;
}
.home-challenge-ring::before{
  inset:18px!important;
  background:
    radial-gradient(circle at 70% 30%,#fff 0%,#fff 66%,#fffaf6 100%)!important;
  box-shadow:
    0 8px 22px rgba(67,43,27,.08),
    inset 0 0 0 1px #f2e7df!important;
}
.home-challenge-ring::after{
  inset:-23px!important;
  background:repeating-conic-gradient(
    from -1deg,
    rgba(106,101,96,.30) 0deg 1.15deg,
    transparent 1.15deg 8deg
  )!important;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px))!important;
  mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px))!important;
  opacity:.58!important;
}
.home-challenge-ring-inner strong{
  font-size:52px!important;
  line-height:.92!important;
  font-weight:950!important;
  letter-spacing:-2px!important;
  color:#211914!important;
  margin:0 0 12px!important;
}
.home-challenge-ring-inner span{
  font-size:12px!important;
  line-height:1.13!important;
  font-weight:950!important;
  letter-spacing:.25px!important;
  text-transform:uppercase!important;
  color:#665f5a!important;
  max-width:105px;
  white-space:normal!important;
}
.home-ring-start{
  top:-19px!important;
  width:4px!important;
  height:14px!important;
  border-radius:4px!important;
  background:#ff5d00!important;
  box-shadow:0 2px 5px rgba(255,93,0,.25)!important;
}
.home-ring-end{
  width:18px!important;
  height:18px!important;
  border:6px solid #fff!important;
  background:#ff6500!important;
  box-shadow:
    0 0 0 2px rgba(255,101,0,.18),
    0 4px 12px rgba(63,39,24,.26)!important;
  transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-112px) rotate(calc(var(--challenge-pct)*-3.6deg))!important;
}
.home-challenge-ring-inner::after{
  content:"›››";
  display:block;
  margin-top:12px;
  color:#ff6500;
  font-size:25px;
  line-height:.7;
  font-weight:950;
  letter-spacing:-4px;
  transform:translateX(-2px);
}
.home-challenge-day{display:none!important}
@media(max-width:420px){
  .home-challenge-ring{--ring-size:210px}
  .home-ring-end{
    transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-105px) rotate(calc(var(--challenge-pct)*-3.6deg))!important;
  }
  .home-challenge-ring-inner strong{font-size:49px!important}
}

/* Source consolidée : legacy-004 */
/* v3.53 — cercle uniquement : rendu sportif identique à l’exemple 1 */
.home-challenge-ring-wrap{margin:22px 0 14px!important;padding:12px 0 8px!important}
.home-challenge-ring{--ring-size:224px;width:var(--ring-size)!important;height:var(--ring-size)!important}
.home-challenge-ring::before{inset:18px!important}
.home-challenge-ring::after{inset:-23px!important;opacity:.58!important}
.home-ring-start{top:-19px!important;width:4px!important;height:14px!important}
.home-ring-end{width:18px!important;height:18px!important;border-width:6px!important;transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-112px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}
.home-challenge-ring-inner strong{font-size:52px!important;line-height:.92!important;margin-bottom:12px!important}
.home-challenge-ring-inner span{font-size:12px!important;line-height:1.13!important;max-width:105px!important}
.home-challenge-ring-inner::after{content:"›››"!important;display:block!important;margin-top:12px!important;color:#ff6500!important;font-size:25px!important;line-height:.7!important;font-weight:950!important;letter-spacing:-4px!important;transform:translateX(-2px)!important}
.home-challenge-day{display:none!important}
@media(max-width:420px){.home-challenge-ring{--ring-size:210px}.home-ring-end{transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-105px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}.home-challenge-ring-inner strong{font-size:49px!important}}

/* Source consolidée : legacy-005 */
/* v3.54 — anneau Exemple 1 : plus fin, dynamique et multi-couches */
.home-challenge-ring-wrap{position:relative!important;margin:26px 0 18px!important;padding:18px 0 14px!important;overflow:visible!important}
.home-challenge-ring-wrap::before{
  content:"";position:absolute;z-index:0;left:50%;top:50%;width:300px;height:190px;
  transform:translate(-25%,-48%) rotate(-8deg);pointer-events:none;opacity:.58;
  background:repeating-linear-gradient(164deg,transparent 0 11px,rgba(255,103,20,.10) 11px 14px,transparent 14px 22px);
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 36%,#000 76%,transparent 100%);
  mask:linear-gradient(90deg,transparent 0,#000 36%,#000 76%,transparent 100%);
}
.home-challenge-ring{
  --ring-size:246px;width:var(--ring-size)!important;height:var(--ring-size)!important;z-index:1!important;
  background:conic-gradient(from 0deg,#ff5b00 0%,#ff7600 calc(var(--challenge-pct)*1%),#efede9 calc(var(--challenge-pct)*1%),#efede9 100%)!important;
  box-shadow:0 15px 28px rgba(238,91,20,.08)!important;
}
.home-challenge-ring::before{
  inset:20px!important;background:#fff!important;
  box-shadow:0 0 0 2px rgba(255,255,255,.98),0 0 0 7px rgba(241,239,236,.92),0 0 0 10px rgba(255,255,255,.96),0 0 0 13px rgba(255,111,35,.16),0 10px 24px rgba(68,44,28,.07)!important;
}
.home-challenge-ring::after{inset:-27px!important;opacity:.48!important;background:repeating-conic-gradient(from -1deg,rgba(115,111,107,.38) 0deg 1.05deg,transparent 1.05deg 8deg)!important}
.home-ring-start{top:-22px!important;height:15px!important;background:#ff6500!important}
.home-ring-end{width:20px!important;height:20px!important;border:6px solid #fff!important;background:#ff6500!important;box-shadow:0 0 0 2px rgba(255,101,0,.14),0 4px 12px rgba(63,39,24,.22)!important;transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-123px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}
.home-challenge-ring-inner strong{font-size:58px!important;letter-spacing:-2.5px!important;margin-bottom:13px!important;color:#17120f!important}
.home-challenge-ring-inner span{font-size:12px!important;line-height:1.08!important;font-weight:950!important;color:#615b57!important}
.home-challenge-ring-inner::after{font-size:28px!important;margin-top:13px!important;color:#ff6500!important;letter-spacing:-5px!important}
@media(max-width:420px){
 .home-challenge-ring{--ring-size:232px!important}
 .home-ring-end{transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-116px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}
 .home-challenge-ring-inner strong{font-size:55px!important}
 .home-challenge-ring-wrap::before{width:270px;height:175px}
}

/* Source consolidée : legacy-006 */
/* v3.55 — cercle Exemple 1 : proportions et profondeur fidèles */
.home-challenge-ring-wrap{margin:20px 0 12px!important;padding:14px 0 10px!important}
.home-challenge-ring-wrap::before{width:260px!important;height:170px!important;opacity:.42!important;transform:translate(-20%,-45%) rotate(-8deg)!important}
.home-challenge-ring{--ring-size:224px!important;background:conic-gradient(from 0deg,#ff5b00 0%,#ff7200 calc(var(--challenge-pct)*1%),#efede9 calc(var(--challenge-pct)*1%),#efede9 100%)!important;box-shadow:0 10px 22px rgba(238,91,20,.08)!important}
.home-challenge-ring::before{inset:18px!important;box-shadow:0 0 0 2px #fff,0 0 0 6px #f1efec,0 0 0 9px #fff,0 0 0 11px rgba(255,104,25,.18),0 9px 20px rgba(68,44,28,.06)!important}
.home-challenge-ring::after{inset:-22px!important;opacity:.50!important;background:repeating-conic-gradient(from -1deg,rgba(105,101,97,.34) 0deg 1deg,transparent 1deg 9deg)!important}
.home-ring-start{top:-18px!important;width:4px!important;height:13px!important}
.home-ring-end{width:17px!important;height:17px!important;border-width:5px!important;transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-112px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}
.home-challenge-ring-inner strong{font-size:56px!important;line-height:.9!important;letter-spacing:-2.8px!important;margin-bottom:13px!important}
.home-challenge-ring-inner span{font-size:11px!important;line-height:1.08!important;max-width:100px!important}
.home-challenge-ring-inner::after{content:"❯❯❯"!important;font-size:20px!important;letter-spacing:-5px!important;margin-top:13px!important;line-height:1!important}
@media(max-width:420px){.home-challenge-ring{--ring-size:218px!important}.home-ring-end{transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-109px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}.home-challenge-ring-inner strong{font-size:54px!important}}

/* Source consolidée : legacy-007 */
/* v3.56 — cercle Exemple 1 : reproduction graphique fidèle */
.home-challenge-ring-wrap{position:relative!important;margin:26px 0 22px!important;padding:28px 0 28px!important;overflow:visible!important}
.home-challenge-ring-wrap::before{content:""!important;position:absolute!important;z-index:0!important;left:50%!important;top:50%!important;width:330px!important;height:220px!important;transform:translate(-16%,-49%) rotate(-8deg)!important;opacity:.62!important;pointer-events:none!important;background:repeating-linear-gradient(164deg,transparent 0 12px,rgba(255,105,18,.10) 12px 15px,transparent 15px 24px)!important;-webkit-mask:linear-gradient(90deg,transparent 0,#000 25%,#000 78%,transparent 100%)!important;mask:linear-gradient(90deg,transparent 0,#000 25%,#000 78%,transparent 100%)!important}
.home-challenge-ring{--ring-size:274px!important;width:var(--ring-size)!important;height:var(--ring-size)!important;z-index:1!important;background:conic-gradient(from 0deg,#ff5700 0%,#ff6a00 calc(var(--challenge-pct)*1%),#efefed calc(var(--challenge-pct)*1%),#efefed 100%)!important;box-shadow:0 14px 30px rgba(255,92,0,.08)!important}
.home-challenge-ring::before{inset:23px!important;background:#fff!important;box-shadow:0 0 0 2px #fff,0 0 0 8px #f1f1ef,0 0 0 11px #fff,0 0 0 14px rgba(255,103,18,.16),0 12px 25px rgba(55,42,32,.07)!important}
.home-challenge-ring::after{inset:-31px!important;opacity:.60!important;background:repeating-conic-gradient(from -1deg,rgba(111,108,105,.42) 0deg 1.15deg,transparent 1.15deg 9deg)!important;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px))!important;mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px))!important}
.home-ring-start{top:-25px!important;width:4px!important;height:17px!important;border-radius:4px!important;background:#ff6500!important;box-shadow:0 0 6px rgba(255,101,0,.28)!important}
.home-ring-end{width:22px!important;height:22px!important;border:7px solid #fff!important;background:#ff6500!important;box-shadow:0 0 0 2px rgba(255,101,0,.18),0 4px 13px rgba(63,39,24,.25),0 0 18px rgba(255,101,0,.18)!important;transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-137px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}
.home-challenge-ring-inner strong{font-size:72px!important;line-height:.86!important;font-weight:950!important;letter-spacing:-4px!important;color:#0c0b0a!important;margin:0 0 17px!important}
.home-challenge-ring-inner span{font-size:14px!important;line-height:1.13!important;font-weight:950!important;letter-spacing:.2px!important;text-transform:uppercase!important;color:#5f5b58!important;max-width:130px!important;white-space:normal!important}
.home-challenge-ring-inner::after{content:"❯❯❯"!important;display:block!important;margin-top:18px!important;color:#ff6500!important;font-size:25px!important;line-height:1!important;font-weight:950!important;letter-spacing:-6px!important;transform:translateX(-2px)!important}
@media(max-width:420px){.home-challenge-ring-wrap{padding:25px 0 25px!important}.home-challenge-ring{--ring-size:258px!important}.home-challenge-ring::before{inset:22px!important}.home-ring-end{transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-129px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}.home-challenge-ring-inner strong{font-size:68px!important}.home-challenge-ring-wrap::before{width:305px!important;height:205px!important}}

/* Source consolidée : legacy-008 */
/* v3.67 — quart d’anneau dynamique flouté, fidèle à la référence */
.home-challenge-ring-wrap::after{
  content:""!important;position:absolute!important;z-index:2!important;left:50%!important;top:50%!important;
  width:274px!important;height:274px!important;border-radius:50%!important;transform:translate(-50%,-50%)!important;
  background:conic-gradient(from 0deg,transparent 0deg 82deg,rgba(255,101,0,.04) 82deg,rgba(255,101,0,.28) 108deg,rgba(255,122,42,.20) 145deg,rgba(255,139,69,.08) 176deg,transparent 190deg 360deg)!important;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 24px),#000 calc(100% - 18px),#000 calc(100% - 4px),transparent 100%)!important;
  mask:radial-gradient(farthest-side,transparent calc(100% - 24px),#000 calc(100% - 18px),#000 calc(100% - 4px),transparent 100%)!important;
  filter:blur(7px)!important;opacity:.95!important;pointer-events:none!important;
}
.home-ring-end{z-index:6!important}
@media(max-width:420px){.home-challenge-ring-wrap::after{width:258px!important;height:258px!important}}

/* Source consolidée : legacy-009 */
/* v3.67 — cercle référence : traînée dynamique sur ~1/4 de cercle */
.home-challenge-ring-wrap{
  position:relative!important;
  overflow:visible!important;
}
.home-challenge-ring{
  --ring-size:274px!important;
  width:var(--ring-size)!important;
  height:var(--ring-size)!important;
  isolation:isolate!important;
  background:
    conic-gradient(
      from 0deg,
      #ff5400 0%,
      #ff6500 calc(var(--challenge-pct)*1%),
      #eeeeec calc(var(--challenge-pct)*1%),
      #eeeeec 100%
    )!important;
  box-shadow:0 10px 24px rgba(43,31,22,.06)!important;
}
.home-challenge-ring::before{
  inset:23px!important;
  background:#fff!important;
  box-shadow:
    0 0 0 2px #fff,
    0 0 0 8px #f0f0ee,
    0 0 0 11px #fff,
    0 0 0 13px rgba(255,105,25,.12),
    0 10px 22px rgba(49,38,29,.055)!important;
  z-index:4!important;
}
.home-challenge-ring::after{
  inset:-31px!important;
  opacity:.44!important;
  background:
    repeating-conic-gradient(
      from -1deg,
      rgba(116,113,110,.43) 0deg 1.2deg,
      transparent 1.2deg 9deg
    )!important;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px))!important;
  mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px))!important;
  z-index:0!important;
}

/* La vraie traînée : démarre au curseur et s'efface sur environ 1/4 de tour */
.home-ring-motion-tail{
  position:absolute!important;
  inset:-3px!important;
  border-radius:50%!important;
  pointer-events:none!important;
  z-index:2!important;
  background:
    conic-gradient(
      from 0deg,
      transparent 0 calc(var(--challenge-pct)*1% - .2%),
      rgba(255,104,20,.48) calc(var(--challenge-pct)*1%),
      rgba(255,119,35,.31) calc(var(--challenge-pct)*1% + 7%),
      rgba(255,132,49,.18) calc(var(--challenge-pct)*1% + 15%),
      rgba(255,145,65,.08) calc(var(--challenge-pct)*1% + 24%),
      transparent calc(var(--challenge-pct)*1% + 31%) 100%
    )!important;
  -webkit-mask:
    radial-gradient(farthest-side,
      transparent calc(100% - 26px),
      #000 calc(100% - 23px),
      #000 calc(100% - 12px),
      transparent calc(100% - 8px)
    )!important;
  mask:
    radial-gradient(farthest-side,
      transparent calc(100% - 26px),
      #000 calc(100% - 23px),
      #000 calc(100% - 12px),
      transparent calc(100% - 8px)
    )!important;
  filter:blur(7px)!important;
  opacity:.95!important;
}

/* Lignes de vitesse uniquement à droite, comme la référence */
.home-ring-speed-streaks{
  position:absolute!important;
  z-index:1!important;
  pointer-events:none!important;
  width:225px!important;
  height:245px!important;
  right:-114px!important;
  top:31px!important;
  transform:rotate(-8deg)!important;
  background:
    repeating-linear-gradient(
      156deg,
      transparent 0 17px,
      rgba(255,113,29,.105) 17px 20px,
      transparent 20px 31px
    )!important;
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 28%,#000 72%,transparent 100%)!important;
  mask:linear-gradient(90deg,transparent 0,#000 28%,#000 72%,transparent 100%)!important;
  opacity:.72!important;
  filter:blur(.15px)!important;
}

/* Neutralise l'ancien halo uniforme du wrapper */
.home-challenge-ring-wrap::after{
  opacity:0!important;
}

/* Repère de départ / curseur */
.home-ring-start{
  z-index:7!important;
  top:-25px!important;
  width:6px!important;
  height:19px!important;
  border-radius:5px!important;
  background:#ff6200!important;
  box-shadow:0 0 7px rgba(255,98,0,.28)!important;
}
.home-ring-end{
  z-index:8!important;
  width:28px!important;
  height:28px!important;
  border:8px solid #fff!important;
  background:#ff6500!important;
  box-shadow:
    0 0 0 2px rgba(255,112,33,.22),
    0 5px 15px rgba(82,46,24,.22)!important;
  transform:
    translate(-50%,-50%)
    rotate(calc(var(--challenge-pct)*3.6deg))
    translateY(-137px)
    rotate(calc(var(--challenge-pct)*-3.6deg))!important;
}

/* Typo interne fidèle au modèle */
.home-challenge-ring-inner{
  z-index:9!important;
}
.home-challenge-ring-inner strong{
  font-size:74px!important;
  line-height:.85!important;
  letter-spacing:-4.2px!important;
  color:#090807!important;
  margin:0 0 18px!important;
}
.home-challenge-ring-inner span{
  font-size:14px!important;
  line-height:1.14!important;
  font-weight:950!important;
  color:#5e5a57!important;
  max-width:132px!important;
}
.home-challenge-ring-inner::after{
  content:"❯❯❯"!important;
  margin-top:20px!important;
  font-size:25px!important;
  color:#ff6500!important;
  letter-spacing:-6px!important;
}

@media(max-width:420px){
  .home-challenge-ring{--ring-size:258px!important}
  .home-ring-end{
    transform:
      translate(-50%,-50%)
      rotate(calc(var(--challenge-pct)*3.6deg))
      translateY(-129px)
      rotate(calc(var(--challenge-pct)*-3.6deg))!important;
  }
  .home-challenge-ring-inner strong{font-size:69px!important}
  .home-ring-speed-streaks{
    width:210px!important;height:232px!important;right:-108px!important;top:28px!important;
  }
}

/* Source consolidée : legacy-010 */
/* v3.67 — flou dynamique après le rond de progression */
.home-ring-after-marker-blur{
  position:absolute!important;
  inset:-4px!important;
  border-radius:50%!important;
  pointer-events:none!important;
  z-index:3!important;
  background:
    conic-gradient(
      from 0deg,
      transparent 0 calc(var(--challenge-pct)*1% - .15%),
      rgba(255,101,0,.42) calc(var(--challenge-pct)*1% + .2%),
      rgba(255,117,24,.30) calc(var(--challenge-pct)*1% + 5%),
      rgba(255,132,46,.18) calc(var(--challenge-pct)*1% + 11%),
      rgba(255,146,70,.09) calc(var(--challenge-pct)*1% + 18%),
      transparent calc(var(--challenge-pct)*1% + 24%) 100%
    )!important;
  -webkit-mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - 30px),
      #000 calc(100% - 27px),
      #000 calc(100% - 10px),
      transparent calc(100% - 6px)
    )!important;
  mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - 30px),
      #000 calc(100% - 27px),
      #000 calc(100% - 10px),
      transparent calc(100% - 6px)
    )!important;
  filter:blur(11px)!important;
  opacity:.96!important;
}

/* Marker exactly centered on the progress arc */
.home-ring-end{
  transform:
    translate(-50%,-50%)
    rotate(calc(var(--challenge-pct)*3.6deg))
    translateY(calc(var(--ring-size) / -2))
    rotate(calc(var(--challenge-pct)*-3.6deg))!important;
}

/* Keep the blur visually behind the marker */
.home-ring-end{z-index:9!important}
.home-ring-after-marker-blur{z-index:4!important}
.home-ring-motion-tail{z-index:2!important}
.home-ring-speed-streaks{z-index:1!important}

/* Source consolidée : legacy-011 */
/* v3.67 — flou à épaisseur constante + curseur verrouillé sur l'axe */

/* Géométrie commune : le curseur suit exactement le rayon médian de l'arc */
.home-challenge-ring{
  --ring-thickness: 24px;
  --marker-radius: calc((var(--ring-size) - var(--ring-thickness)) / 2);
}

/* Le rond ne sort jamais de l'axe, quel que soit le pourcentage */
.home-ring-end{
  left:50%!important;
  top:50%!important;
  transform:
    translate(-50%,-50%)
    rotate(calc(var(--challenge-pct) * 3.6deg))
    translateY(calc(var(--marker-radius) * -1))
    rotate(calc(var(--challenge-pct) * -3.6deg))!important;
  transform-origin:center center!important;
}

/* La traînée conserve exactement la même largeur que l'arc orange.
   Seule l'opacité diminue progressivement. */
.home-ring-after-marker-blur{
  inset:0!important;
  border-radius:50%!important;
  background:
    conic-gradient(
      from 0deg,
      transparent 0 calc(var(--challenge-pct)*1% - .05%),
      rgba(255,101,0,.46) calc(var(--challenge-pct)*1%),
      rgba(255,110,8,.38) calc(var(--challenge-pct)*1% + 6%),
      rgba(255,119,17,.29) calc(var(--challenge-pct)*1% + 12%),
      rgba(255,130,29,.20) calc(var(--challenge-pct)*1% + 18%),
      rgba(255,142,43,.11) calc(var(--challenge-pct)*1% + 24%),
      transparent calc(var(--challenge-pct)*1% + 29%) 100%
    )!important;

  /* masque annulaire à largeur CONSTANTE */
  -webkit-mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--ring-thickness)),
      #000 calc(100% - var(--ring-thickness)),
      #000 100%
    )!important;
  mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--ring-thickness)),
      #000 calc(100% - var(--ring-thickness)),
      #000 100%
    )!important;

  filter:blur(9px)!important;
  opacity:1!important;
  z-index:8!important;
}

/* La traînée passe DEVANT le cercle blanc, mais le rond reste au-dessus */
.home-challenge-ring::before{ z-index:4!important; }
.home-ring-motion-tail{ z-index:5!important; }
.home-ring-speed-streaks{ z-index:3!important; }
.home-ring-after-marker-blur{ z-index:8!important; }
.home-ring-end{ z-index:10!important; }
.home-challenge-ring-inner{ z-index:11!important; }

/* Neutralise l'ancienne traînée qui pouvait créer un effet de largeur décroissante */
.home-ring-motion-tail{
  opacity:0!important;
}

/* Sur petits écrans, conserver exactement la même logique géométrique */
@media(max-width:420px){
  .home-challenge-ring{
    --ring-thickness: 22px;
    --marker-radius: calc((var(--ring-size) - var(--ring-thickness)) / 2);
  }
}

/* Source consolidée : legacy-012 */
/* v3.67 — ruban circulaire unique : orange net et flou de même épaisseur */
.home-challenge-ring{
  --ring-thickness:24px!important;
  --ring-inner-radius:calc(50% - (var(--ring-thickness) / 2))!important;
  --marker-radius:calc((var(--ring-size) - var(--ring-thickness)) / 2)!important;

  /* Arc net : épaisseur définie uniquement par le masque commun ci-dessous */
  background:
    conic-gradient(
      from 0deg,
      #ff5700 0%,
      #ff6900 calc(var(--challenge-pct)*1%),
      #eeeeec calc(var(--challenge-pct)*1%),
      #eeeeec 100%
    )!important;
}

/* Le disque blanc intérieur est positionné pour laisser exactement
   --ring-thickness de ruban visible. */
.home-challenge-ring::before{
  inset:var(--ring-thickness)!important;
}

/* Traînée : même anneau géométrique, sans élargissement par le blur.
   Le flou est contenu dans le ruban grâce au mask identique. */
.home-ring-after-marker-blur{
  inset:0!important;
  border-radius:50%!important;
  padding:0!important;
  background:
    conic-gradient(
      from 0deg,
      transparent 0 calc(var(--challenge-pct)*1% - .01%),
      rgba(255,101,0,.72) calc(var(--challenge-pct)*1%),
      rgba(255,105,3,.60) calc(var(--challenge-pct)*1% + 5%),
      rgba(255,112,10,.48) calc(var(--challenge-pct)*1% + 10%),
      rgba(255,121,20,.36) calc(var(--challenge-pct)*1% + 15%),
      rgba(255,132,33,.25) calc(var(--challenge-pct)*1% + 20%),
      rgba(255,145,48,.14) calc(var(--challenge-pct)*1% + 25%),
      transparent calc(var(--challenge-pct)*1% + 30%) 100%
    )!important;

  /* STRICTEMENT la même largeur annulaire que l'arc principal */
  -webkit-mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--ring-thickness)),
      #000 calc(100% - var(--ring-thickness) + .5px),
      #000 100%
    )!important;
  mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--ring-thickness)),
      #000 calc(100% - var(--ring-thickness) + .5px),
      #000 100%
    )!important;

  /* Pas de blur CSS externe : il gonflait la largeur.
     Le rendu doux vient uniquement du dégradé d'opacité dans le même ruban. */
  filter:none!important;
  opacity:1!important;
  z-index:8!important;
}

/* Un halo très léger, séparé et moins opaque, ne change jamais
   la largeur visible du ruban principal. */
.home-ring-after-marker-blur::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:50%!important;
  background:inherit!important;
  -webkit-mask:inherit!important;
  mask:inherit!important;
  filter:blur(4px)!important;
  opacity:.28!important;
}

/* Rond verrouillé sur le rayon médian du même ruban */
.home-ring-end{
  left:50%!important;
  top:50%!important;
  transform:
    translate(-50%,-50%)
    rotate(calc(var(--challenge-pct)*3.6deg))
    translateY(calc(var(--marker-radius)*-1))
    rotate(calc(var(--challenge-pct)*-3.6deg))!important;
  transform-origin:center!important;
  z-index:10!important;
}

/* Neutralisation de toutes les anciennes traînées concurrentes */
.home-ring-motion-tail{opacity:0!important}
.home-challenge-ring-wrap::after{opacity:0!important}

@media(max-width:420px){
  .home-challenge-ring{
    --ring-thickness:22px!important;
    --marker-radius:calc((var(--ring-size) - var(--ring-thickness)) / 2)!important;
  }
}

/* Source consolidée : legacy-013 */
/* v3.67 — CORRECTION STRICTE :
   arc net + prolongement = UN SEUL RUBAN, même rayon et même épaisseur. */
.home-challenge-ring{
  --track-width:24px!important;
  --track-r:calc((var(--ring-size) - var(--track-width))/2)!important;

  /* fond uniquement ; les arcs sont désormais portés par deux calques
     partageant LE MÊME masque radial exact */
  background:#efefed!important;
  border-radius:50%!important;
}

/* intérieur blanc : fixe exactement la largeur du ruban à --track-width */
.home-challenge-ring::before{
  inset:var(--track-width)!important;
  border-radius:50%!important;
  background:#fff!important;
  z-index:4!important;
}

/* ARC ORANGE NET — même masque que le prolongement */
.home-challenge-ring::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:50%!important;
  background:
    conic-gradient(
      from 0deg,
      #ff5a00 0,
      #ff6800 calc(var(--challenge-pct)*1%),
      transparent calc(var(--challenge-pct)*1%) 100%
    )!important;
  -webkit-mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--track-width)),
      #000 calc(100% - var(--track-width)) 100%
    )!important;
  mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--track-width)),
      #000 calc(100% - var(--track-width)) 100%
    )!important;
  z-index:7!important;
}

/* PROLONGEMENT — EXACTEMENT le même masque radial.
   Aucun filter:blur : donc aucune augmentation de largeur possible.
   L'effet doux vient seulement de la baisse d'opacité le long de l'arc. */
.home-ring-after-marker-blur{
  position:absolute!important;
  inset:0!important;
  border-radius:50%!important;
  background:
    conic-gradient(
      from 0deg,
      transparent 0 calc(var(--challenge-pct)*1% - .001%),
      rgba(255,104,0,.72) calc(var(--challenge-pct)*1%),
      rgba(255,108,4,.62) calc(var(--challenge-pct)*1% + 5%),
      rgba(255,114,10,.52) calc(var(--challenge-pct)*1% + 10%),
      rgba(255,121,18,.42) calc(var(--challenge-pct)*1% + 15%),
      rgba(255,130,28,.32) calc(var(--challenge-pct)*1% + 20%),
      rgba(255,140,40,.22) calc(var(--challenge-pct)*1% + 25%),
      rgba(255,152,55,.11) calc(var(--challenge-pct)*1% + 30%),
      transparent calc(var(--challenge-pct)*1% + 34%) 100%
    )!important;
  -webkit-mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--track-width)),
      #000 calc(100% - var(--track-width)) 100%
    )!important;
  mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--track-width)),
      #000 calc(100% - var(--track-width)) 100%
    )!important;
  filter:none!important;
  opacity:1!important;
  z-index:8!important;
}

/* Supprime tout pseudo-calque de halo qui pouvait élargir le prolongement */
.home-ring-after-marker-blur::before,
.home-ring-after-marker-blur::after{
  content:none!important;
  display:none!important;
}

/* Supprime les anciennes traînées concurrentes */
.home-ring-motion-tail,
.home-ring-speed-streaks{
  opacity:0!important;
}

/* Rond : centre géométrique exactement sur le rayon médian du ruban */
.home-ring-end{
  left:50%!important;
  top:50%!important;
  transform:
    translate(-50%,-50%)
    rotate(calc(var(--challenge-pct)*3.6deg))
    translateY(calc(var(--track-r)*-1))
    rotate(calc(var(--challenge-pct)*-3.6deg))!important;
  transform-origin:center center!important;
  z-index:10!important;
}

.home-challenge-ring-inner{z-index:11!important}

@media(max-width:420px){
  .home-challenge-ring{
    --track-width:22px!important;
    --track-r:calc((var(--ring-size) - var(--track-width))/2)!important;
  }
}

/* Source consolidée : legacy-014 */
/* v3.67 — l'orange NET prend la largeur VISUELLE du flou validé.
   On ne réduit plus le flou : on épaissit l'orange principal. */
.home-challenge-ring{
  --fade-visible-width:34px!important;
  --marker-radius:calc((var(--ring-size) - var(--fade-visible-width))/2)!important;
}

/* Le fond de piste suit lui aussi cette largeur pour éviter une marche. */
.home-challenge-ring{
  background:#efefed!important;
}
.home-challenge-ring::before{
  inset:var(--fade-visible-width)!important;
}

/* ARC ORANGE NET : largeur augmentée jusqu'à celle du flou actuel. */
.home-challenge-ring::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:50%!important;
  background:
    conic-gradient(
      from 0deg,
      #ff5700 0,
      #ff6800 calc(var(--challenge-pct)*1%),
      transparent calc(var(--challenge-pct)*1%) 100%
    )!important;
  -webkit-mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--fade-visible-width)),
      #000 calc(100% - var(--fade-visible-width)) 100%
    )!important;
  mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--fade-visible-width)),
      #000 calc(100% - var(--fade-visible-width)) 100%
    )!important;
  z-index:7!important;
}

/* FLOU : on conserve sa largeur validée et on l'aligne sur la même valeur. */
.home-ring-after-marker-blur{
  -webkit-mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--fade-visible-width)),
      #000 calc(100% - var(--fade-visible-width)) 100%
    )!important;
  mask:
    radial-gradient(
      farthest-side,
      transparent calc(100% - var(--fade-visible-width)),
      #000 calc(100% - var(--fade-visible-width)) 100%
    )!important;
  filter:none!important;
}

/* Rond recalé au milieu de la NOUVELLE largeur commune. */
.home-ring-end{
  left:50%!important;
  top:50%!important;
  transform:
    translate(-50%,-50%)
    rotate(calc(var(--challenge-pct)*3.6deg))
    translateY(calc(var(--marker-radius)*-1))
    rotate(calc(var(--challenge-pct)*-3.6deg))!important;
  transform-origin:center center!important;
  z-index:10!important;
}

@media(max-width:420px){
  .home-challenge-ring{
    --fade-visible-width:32px!important;
    --marker-radius:calc((var(--ring-size) - var(--fade-visible-width))/2)!important;
  }
}

/* Source consolidée : legacy-015 */
/* v3.67 — base v3.63 conservée.
   Orange AVANT le rond : net et opaque.
   Flou APRÈS le rond : conservé exactement comme en v3.63. */
.home-challenge-ring::after{
  opacity:1!important;
  filter:none!important;
}

/* Source consolidée : legacy-016 */
/* v3.67 — uniquement la composition du pourcentage.
   Cercle, orange, rond et flou inchangés. */
.home-ring-center,
.home-challenge-ring .ring-center,
.home-challenge-ring .progress-center{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}

/* Bloc valeur : centré, plus compact et légèrement descendu. */
.home-ring-percent,
.home-ring-value,
.home-challenge-percent,
.home-challenge-ring .percent,
.home-challenge-ring .percentage{
  width:100%!important;
  text-align:center!important;
  line-height:.88!important;
  letter-spacing:-2px!important;
  transform:translateY(10px)!important;
  white-space:nowrap!important;
}

/* Si nombre et signe % sont des spans séparés. */
.home-ring-percent .value,
.home-ring-value .value,
.home-challenge-percent .value,
.home-challenge-ring .percent .value,
.home-challenge-ring .percentage .value{
  font-size:clamp(68px,19vw,104px)!important;
  font-weight:900!important;
  line-height:.88!important;
  vertical-align:baseline!important;
}
.home-ring-percent .unit,
.home-ring-percent .symbol,
.home-ring-value .unit,
.home-ring-value .symbol,
.home-challenge-percent .unit,
.home-challenge-percent .symbol,
.home-challenge-ring .percent .unit,
.home-challenge-ring .percent .symbol,
.home-challenge-ring .percentage .unit,
.home-challenge-ring .percentage .symbol{
  font-size:.48em!important;
  font-weight:900!important;
  margin-left:5px!important;
  vertical-align:baseline!important;
  position:relative!important;
  top:-.04em!important;
}

/* Fallback quand "88 %" est un seul nœud texte : taille globale réduite. */
.home-ring-percent,
.home-ring-value,
.home-challenge-percent,
.home-challenge-ring .percent,
.home-challenge-ring .percentage{
  font-size:clamp(66px,18vw,100px)!important;
  font-weight:900!important;
}

/* Libellé et chevrons légèrement descendus pour garder une composition équilibrée. */
.home-ring-label,
.home-ring-subtitle,
.home-challenge-ring .progress-label{
  transform:translateY(15px)!important;
}
.home-ring-chevrons,
.home-ring-arrows,
.home-challenge-ring .chevrons{
  transform:translateY(20px)!important;
}

/* Source consolidée : legacy-017 */
/* v3.67 — uniquement le contenu central du cadran.
   Anneau, orange, flou, repère et géométrie inchangés. */
.home-challenge-ring-inner{
  width:72%!important;
  height:72%!important;
  position:relative!important;
  z-index:20!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  transform:translate(0, 5px)!important;
}
#homeChallengePct{
  width:100%!important;
  display:block!important;
  text-align:center!important;
  white-space:nowrap!important;
  transform:none!important;
  margin:0!important;
  font-size:clamp(54px,15vw,82px)!important;
  line-height:.9!important;
  letter-spacing:-2.5px!important;
  font-weight:950!important;
}
.home-challenge-ring-inner > span{
  display:block!important;
  width:100%!important;
  text-align:center!important;
  transform:translateY(25px)!important;
  margin:0!important;
  line-height:1.15!important;
  font-size:clamp(14px,3.8vw,20px)!important;
  font-weight:800!important;
  text-transform:uppercase!important;
}

/* Source consolidée : legacy-018 */
/* v3.67 — finition cadran pour production.
   Aucun changement sur l'anneau, le flou, le rond ou sa géométrie. */
.home-challenge-ring-inner{
  transform:translate(0, 14px)!important;
}
#homeChallengePct{
  transform:translateY(7px)!important;
}
.home-challenge-ring-inner > span{
  transform:translateY(32px)!important;
  margin-bottom:0!important;
}
/* Espace net entre PROGRESSION GLOBALE et les chevrons. */
.home-ring-chevrons,
.home-ring-arrows,
.home-challenge-ring .chevrons,
.home-challenge-ring .arrows,
.home-challenge-ring-inner .chevrons,
.home-challenge-ring-inner .arrows{
  transform:translateY(42px)!important;
  margin-top:16px!important;
}

/* Source consolidée : legacy-019 */
/* v3.69 — ajustement vertical du contenu central du cadran.
   Le pourcentage est légèrement abaissé et un espace réel est réservé
   entre le libellé PROGRESSION GLOBALE et les chevrons. */
.home-challenge-ring-inner{
  transform:translate(0, 18px)!important;
}
#homeChallengePct{
  transform:translateY(10px)!important;
}
.home-challenge-ring-inner > span{
  transform:none!important;
  margin-top:30px!important;
  margin-bottom:24px!important;
}
/* v3.71 — correction production : remonte légèrement uniquement les chevrons,
   sans toucher au pourcentage ni au libellé PROGRESSION GLOBALE. */
.home-challenge-ring-inner::after{
  margin-top:-20px!important;
}

/* Source consolidée : legacy-020 */
/* v3.72 — production : version affichée à jour et léger recentrage vertical
   du libellé + chevrons. Pourcentage inchangé. */
.home-challenge-ring-inner > span{
  transform:translateY(-8px)!important;
}
.home-challenge-ring-inner::after{
  transform:translate(-2px,-8px)!important;
}

/* Source consolidée : legacy-021 */
/* v3.75 — nouveau header compact persistant + navigation principale à 3 onglets. */
.hero{display:none!important;}
.compact-topbar{
  position:sticky;
  top:0;
  z-index:500;
  min-height:58px;
  display:grid;
  grid-template-columns:48px 1fr auto;
  align-items:center;
  gap:8px;
  padding:calc(7px + env(safe-area-inset-top)) 16px 7px;
  margin:0 -2px;
  background:rgba(255,255,255,.97);
  border-bottom:2px solid #ee6b2f;
  box-shadow:0 4px 14px rgba(45,33,25,.06);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.topbar-menu-btn{
  width:42px;height:42px;padding:9px 8px!important;
  border:0!important;background:transparent!important;box-shadow:none!important;
  display:flex;flex-direction:column;justify-content:center;gap:5px;
  border-radius:10px!important;cursor:pointer;
}
.topbar-menu-btn span{display:block;width:26px;height:3px;border-radius:999px;background:#2d2119;}
.topbar-menu-btn:active{background:#f6f1ed!important;}
.topbar-title{font-size:21px;font-weight:900;letter-spacing:-.35px;color:#2d2119;white-space:nowrap;}
.topbar-build{margin-left:6px;color:#9a887b;font-size:10px;font-weight:800;letter-spacing:0;vertical-align:2px;}
.topbar-version{font-size:11px;font-weight:800;color:#9a887b;padding:5px 8px;border:1px solid #eadfd7;border-radius:999px;background:#fff;}
.topbar-objectives-btn{
  width:auto!important;min-height:36px;padding:7px 12px!important;
  color:#d95d18!important;background:#fff!important;border:1px solid #efc5a7!important;
  border-radius:999px!important;box-shadow:none!important;white-space:nowrap;cursor:pointer;
}
.topbar-objectives-btn span,.header-objectives-btn span{font-size:16px;line-height:0;vertical-align:-1px;}
.topbar-objectives-btn:active{background:#fff5ee!important;}
.header-objectives-btn{cursor:pointer;white-space:nowrap;}
.topbar-menu{
  position:absolute;left:14px;top:calc(100% + 8px);width:min(230px,calc(100vw - 28px));
  padding:7px;background:#fff;border:1px solid #eadfd7;border-radius:14px;
  box-shadow:0 16px 40px rgba(45,33,25,.18);z-index:520;
}
.topbar-menu[hidden]{display:none!important;}
.topbar-menu button{
  width:100%;display:flex;align-items:center;gap:11px;padding:12px 13px!important;
  border:0!important;background:transparent!important;box-shadow:none!important;border-radius:10px!important;
  color:#2d2119!important;font-size:15px!important;font-weight:800!important;text-align:left;
}
.topbar-menu button:active{background:#f7f2ee!important;}
.topbar-menu button span:first-child{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#fff1e9;color:#ee6b2f;font-weight:900;}
/* Retire tout espace réservé à l'ancien grand bandeau orange. */
.compact-app-hero .hero{display:none!important;}
.tab-page{padding-top:18px!important;}
#tab-accueil{padding-top:18px!important;}
/* Navigation basse : exactement trois onglets. */
.bottom-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
.bottom-nav .nav-item{min-width:0!important;}
@media (max-width:390px){
  .compact-topbar{grid-template-columns:44px 1fr auto;padding-left:10px;padding-right:10px;}
  .topbar-title{font-size:19px;}
  .topbar-build{margin-left:4px;font-size:9px;}
  .topbar-version{font-size:10px;padding:4px 7px;}
  .topbar-objectives-btn{min-height:34px;padding:6px 9px!important;}
}

/* Source consolidée : legacy-022 */
/* v3.75 — CTA central de séance, plus visible */
.bottom-nav .nav-item[data-tab="seance"]{
  position:relative!important;
  overflow:visible!important;
  color:#fff!important;
  background:linear-gradient(180deg,#ff6a18,#ee5b13)!important;
  border-radius:22px!important;
  min-height:64px!important;
  max-width:150px!important;
  width:calc(100% - 12px)!important;
  margin:-18px auto 5px!important;
  padding:8px 10px!important;
  box-shadow:0 8px 22px rgba(238,91,19,.28)!important;
  border:4px solid #fff!important;
  z-index:3!important;
}
.bottom-nav .nav-item[data-tab="seance"] .nav-icon{color:#fff!important;}
.bottom-nav .nav-item[data-tab="seance"] span:last-child{
  color:#fff!important;font-weight:900!important;font-size:12px!important;
}
.bottom-nav .nav-item[data-tab="seance"].active,
.bottom-nav .nav-item[data-tab="seance"]:hover,
.bottom-nav .nav-item[data-tab="seance"]:focus{color:#fff!important;}
.bottom-nav .nav-item[data-tab="seance"].active::before{display:none!important;}
.bottom-nav .nav-item[data-tab="seance"]::after{
  content:"ENREGISTRER";position:absolute;top:-9px;right:-7px;
  background:#2fbf67;color:#fff;border:2px solid #fff;border-radius:999px;
  padding:3px 6px;font-size:7px;font-weight:900;letter-spacing:.25px;
  box-shadow:0 3px 8px rgba(0,0,0,.12);
}

/* Source consolidée : legacy-023 */
/* v3.77 — bouton central rond abaissé + pictogramme validation clair */
.bottom-nav .nav-item[data-tab="seance"]{
  position:relative!important;
  overflow:visible!important;
  width:68px!important;
  height:68px!important;
  min-height:68px!important;
  max-width:68px!important;
  margin:-12px auto 0!important;
  padding:0!important;
  border-radius:50%!important;
  border:5px solid #fff!important;
  background:linear-gradient(180deg,#ff6a18,#ee5b13)!important;
  box-shadow:0 7px 18px rgba(238,91,19,.26)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  z-index:4!important;
}
.bottom-nav .nav-item[data-tab="seance"] .nav-icon{
  width:32px!important;height:32px!important;margin:0!important;color:#fff!important;
}
.bottom-nav .nav-item[data-tab="seance"] .nav-icon svg{display:none!important;}
.bottom-nav .nav-item[data-tab="seance"] .nav-icon::before{
  content:"+";display:block;color:#fff;font-size:42px;line-height:32px;font-weight:500;
}
.bottom-nav .nav-item[data-tab="seance"] span:last-child{
  position:absolute!important;top:69px!important;left:50%!important;transform:translateX(-50%)!important;
  width:100px!important;color:#ee5b13!important;font-size:11px!important;font-weight:900!important;
  white-space:nowrap!important;text-align:center!important;
}
.bottom-nav .nav-item[data-tab="seance"]::after{display:none!important;content:none!important;}
.bottom-nav .nav-item[data-tab="seance"].active::before{display:none!important;}
.bottom-nav{overflow:visible!important;}

/* Source consolidée : legacy-024 */
/* v3.77 — navigation basse sans cadre blanc autour d’Accueil et Suivi.
   Seul le CTA rond central conserve son anneau blanc. */
.bottom-nav{
  background:transparent!important;
  border-top:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  pointer-events:none!important;
}
.bottom-nav .nav-item{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:auto!important;
}
.bottom-nav .nav-item[data-tab="accueil"],
.bottom-nav .nav-item[data-tab="suivi"]{
  border-radius:0!important;
  outline:0!important;
}
.bottom-nav .nav-item[data-tab="seance"]{
  border:5px solid #fff!important;
  box-shadow:0 7px 18px rgba(238,91,19,.26)!important;
}

/* Source consolidée : legacy-025 */
/* v3.78 — navigation basse restaurée : bande blanche continue, sans cadres individuels ni marqueurs orange supérieurs. */
.bottom-nav{
  background:rgba(255,255,255,.98)!important;
  border-top:1px solid #e8e5e1!important;
  box-shadow:0 -4px 16px rgba(25,25,25,.035)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  pointer-events:auto!important;
}
.bottom-nav .nav-item{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.bottom-nav .nav-item[data-tab="accueil"],
.bottom-nav .nav-item[data-tab="suivi"]{
  color:#918b85!important;
  border-radius:0!important;
}
.bottom-nav .nav-item[data-tab="accueil"].active,
.bottom-nav .nav-item[data-tab="suivi"].active{
  color:#ee6b2f!important;
}
.bottom-nav .nav-item[data-tab="accueil"]::before,
.bottom-nav .nav-item[data-tab="suivi"]::before{
  display:none!important;
  content:none!important;
}
.bottom-nav .nav-item[data-tab="seance"]{
  border:5px solid #fff!important;
  box-shadow:0 7px 18px rgba(238,91,19,.26)!important;
}

/* Source consolidée : legacy-026 */
/* v3.86 — l’ancien bandeau orange reste réservé à Accueil uniquement.
   Ma séance, Suivi, Paramètres et Aide utilisent seulement le header compact. */
body.compact-app-hero .app > .hero{display:none!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important;}

/* Source consolidée : legacy-027 */
/* v3.81 — header compact réellement fixe sur tous les onglets. */
.compact-topbar{
  position:fixed!important;
  top:0!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  width:min(760px,100%)!important;
  box-sizing:border-box!important;
  margin:0!important;
  z-index:5000!important;
}
.app{padding-top:calc(76px + env(safe-area-inset-top))!important;}
@media (max-width:760px){
  .compact-topbar{left:0!important;right:0!important;transform:none!important;width:100%!important;}
}

/* Source consolidée : legacy-028 */
/* v3.81 — réduit la compensation sous le header fixe pour rapprocher le contenu. */
.app{padding-top:calc(58px + env(safe-area-inset-top))!important;}
.tab-page{padding-top:12px!important;}
#tab-accueil{padding-top:12px!important;}

/* Source consolidée : legacy-029 */
/* v3.86 — bandeau fixe légèrement plus haut (+8 px environ), contenu interne inchangé. */
.compact-topbar{
  min-height:66px!important;
  padding:calc(11px + env(safe-area-inset-top)) 16px 11px!important;
}
/* Compensation adaptée pour conserver le même petit espace sous le bandeau. */
.app{padding-top:calc(66px + env(safe-area-inset-top))!important;}

/* Source consolidée : legacy-030 */
/* v3.86 — bandeau fixe visiblement plus haut (+14 px), éléments internes centrés. */
.compact-topbar{
  min-height:80px!important;
  padding:calc(18px + env(safe-area-inset-top)) 16px 18px!important;
}
/* Garde une petite respiration sous le bandeau, sans recréer un grand vide. */
.app{padding-top:calc(80px + env(safe-area-inset-top))!important;}

/* Source consolidée : legacy-031 */
/* v3.86 — respiration sous le header fixe dans l’onglet Suivi. */
#tab-suivi.active{padding-top:24px!important;}
#tab-suivi.active > .section-card:first-child{margin-top:0!important;}

/* Source consolidée : legacy-032 */
/* v3.89 — le CTA central devient vert lorsqu’une séance est enregistrée aujourd’hui. */
.bottom-nav .nav-item[data-tab="seance"].workout-done-today{
  background:#22c55e!important;
  box-shadow:0 7px 20px rgba(34,197,94,.38)!important;
}
.bottom-nav .nav-item[data-tab="seance"].workout-done-today .nav-icon::before{
  content:"✓"!important;
  color:#fff!important;
  font-size:31px!important;
  font-weight:900!important;
}
.bottom-nav .nav-item[data-tab="seance"].workout-done-today span:last-child{
  color:#16a34a!important;
}

/* Source consolidée : legacy-033 */
/* v3.90 — tableau des progrès dans une modale ouverte à la demande. */
.home-progress-launch{padding:16px!important;}
.home-progress-open-btn{width:100%;border:0;border-radius:18px;background:#ff5a0a;color:#fff;font:inherit;font-weight:800;font-size:18px;padding:17px 20px;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 8px 20px rgba(255,90,10,.18);cursor:pointer;}
.home-progress-open-icon{font-size:22px;line-height:1;}
.progress-modal[hidden]{display:none!important;}
.progress-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px;}
.progress-modal-backdrop{position:absolute;inset:0;background:rgba(31,22,18,.48);backdrop-filter:blur(2px);}
.progress-modal-dialog{position:relative;z-index:1;width:min(680px,100%);max-height:82vh;overflow:auto;background:#fff;border-radius:26px;padding:28px 22px 24px;box-shadow:0 22px 60px rgba(0,0,0,.22);}
.progress-modal-close{position:absolute;top:12px;right:14px;width:40px;height:40px;border:0;border-radius:50%;background:#f4f1ee;color:#34241d;font-size:30px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;text-align:center;}
.progress-modal-dialog .home-section-title{padding-right:46px;margin-bottom:18px;}
body.progress-modal-open{overflow:hidden;}
.completed-objectives-section{margin-top:18px!important;margin-bottom:20px!important;padding:0!important;overflow:hidden;}
.completed-objectives-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 22px!important;border:0!important;background:#fff!important;color:#2b211d!important;box-shadow:none!important;text-align:left;}
.completed-objectives-heading{display:flex;align-items:center;gap:10px;min-width:0}.completed-objectives-heading>span{font-size:23px}.completed-objectives-heading strong{font-size:19px;font-weight:950}.completed-objectives-heading small{color:#94877f;font-size:12px;font-weight:800}
.completed-objectives-chevron{font-size:24px;color:#ef6b2e;transition:transform .2s ease}.completed-objectives-section:not(.is-collapsed) .completed-objectives-chevron{transform:rotate(180deg)}
.completed-objectives-section.is-collapsed .completed-objectives-list{display:none}
.completed-objectives-list{display:grid;gap:11px;padding:0 18px 18px}
.completed-objective-card{--completed-color:#f56a25;position:relative;padding:13px 14px 12px 16px;border:1px solid color-mix(in srgb,var(--completed-color) 22%,#e9e2de);border-left:5px solid var(--completed-color);border-radius:17px;background:#fffaf7}
.completed-objective-top{display:block;min-height:0;padding-right:62px}.completed-objective-top strong{font-size:16px;font-weight:950;color:#2b211d}.completed-objective-status{position:absolute;top:12px;right:13px;width:52px;height:52px;display:grid;place-items:center;padding:0;border:2px solid color-mix(in srgb,var(--completed-color) 35%,white);border-radius:50%;background:color-mix(in srgb,var(--completed-color) 11%,white);color:var(--completed-color);font-size:14px;font-weight:950;line-height:1;text-align:center;box-shadow:0 4px 10px color-mix(in srgb,var(--completed-color) 12%,transparent)}
.completed-objective-meta{margin-top:5px;padding-right:62px;color:#80746d;font-size:12px;font-weight:700}.completed-objective-result{margin-top:3px;padding-right:62px;color:#4d443f;font-size:13px;font-weight:800}
.completed-objective-review{margin-top:9px;width:100%;padding:9px 14px!important;border:0!important;border-radius:18px!important;background:var(--completed-color)!important;color:#fff!important;font-size:12px!important;font-weight:900!important;box-shadow:none!important}
.completed-celebration{position:fixed;inset:0;z-index:14000;display:flex;align-items:center;justify-content:center;padding:18px}.completed-celebration[hidden]{display:none!important}.completed-celebration-backdrop{position:absolute;inset:0;background:rgba(31,22,18,.5);backdrop-filter:blur(3px)}.completed-celebration-dialog{position:relative;z-index:1;width:min(430px,100%);padding:30px 22px 22px;border-radius:28px;background:#fff;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.25)}.completed-celebration-icon{font-size:54px}.completed-celebration-dialog h2{margin:10px 0 7px;font-size:27px}.completed-celebration-dialog p{margin:0;color:#756a64;line-height:1.45}.completed-celebration-dialog strong{display:block;margin-top:14px;color:#ef6428;font-size:18px}.completed-celebration-close{margin-top:20px;width:100%;padding:13px!important;border:0!important;border-radius:22px!important;background:#f56528!important;color:#fff!important;font-weight:900!important}
@media(max-width:420px){.completed-objectives-toggle{padding:17px 16px!important}.completed-objectives-heading strong{font-size:17px}.completed-objectives-list{padding:0 12px 12px}}
@media(max-width:420px){.completed-objective-status{top:11px;right:11px;width:50px;height:50px;font-size:13px}.completed-objective-top strong{padding-top:0}}
.completed-report-list{display:grid;gap:8px;margin-top:18px;text-align:left}
.completed-report-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:11px 12px;border-radius:13px;background:#fff6f1}
.completed-report-row span{font-weight:850;color:#3d332e}.completed-report-row b{color:#ef6428}
.completed-report-meta{margin-top:8px!important;font-size:13px}
.completed-report-close-x{position:absolute;top:10px;right:12px;width:38px;height:38px;border:0!important;background:#f6f1ee!important;border-radius:50%!important;font-size:26px!important;color:#392e28!important;padding:0!important}

.today-objectives-modal .progress-modal-dialog{width:min(620px,100%);padding:28px 20px 20px;}
.today-objectives-modal .home-section-title{padding:0 44px 18px;text-align:center;font-size:25px;font-weight:950;color:#171310;}
.today-objectives-modal-content .home-daily-list{display:grid;gap:14px;}
.today-objectives-modal-content .home-daily-feature{position:relative!important;inset:auto!important;transform:none!important;opacity:1!important;visibility:visible!important;}
.today-objectives-empty{padding:28px 16px;text-align:center;color:#746d68;font-weight:750;}
@media(max-width:420px){.today-objectives-modal{padding:10px!important}.today-objectives-modal .progress-modal-dialog{max-height:90vh;padding:25px 13px 13px;border-radius:25px}.today-objectives-modal .home-section-title{font-size:22px;padding-bottom:16px}}

/* v3.37 — présentation mobile structurée de « À faire aujourd’hui ». */
.home-daily-exercise-list{display:grid;gap:5px;margin-top:8px}
.home-daily-exercise{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}
.home-daily-exercise b{font-size:12px;line-height:1.25;color:#342b26}
.home-daily-exercise small{margin:0!important;font-size:12px!important;line-height:1.25!important;color:#756b65;text-align:right}
.today-objectives-modal-content .home-daily-feature{
  width:100%;padding:18px 16px 16px;border:1px solid #f2d9ca;border-radius:22px;
  background:#fffdfb;box-shadow:0 8px 22px rgba(91,51,25,.08);box-sizing:border-box;text-align:left;
}
.today-objectives-modal-content .home-daily-feature-top{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;align-items:start;padding-bottom:20px}
.today-objectives-modal-content .home-daily-feature-icon{
  width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#fff0e7;color:#f45f20;font-size:26px;font-weight:900;
}
.today-objectives-modal-content .home-daily-session-copy{display:block;min-width:0}
.today-objectives-modal-content .home-daily-session-copy>strong{display:block;font-size:18px;line-height:1.2;color:#2b211d}
.today-objectives-modal-content .home-daily-exercise-list{margin-top:10px;gap:7px}
.today-objectives-modal-content .home-daily-exercise{padding-bottom:6px;border-bottom:1px solid #f1e7e1}
.today-objectives-modal-content .home-daily-exercise:last-child{padding-bottom:0;border-bottom:0}
.today-objectives-modal-content .home-daily-exercise b{font-size:13px}
.today-objectives-modal-content .home-daily-exercise small{font-size:13px!important}
.today-objectives-modal-content .home-daily-progress{display:none!important}
.today-objectives-modal-content .home-daily-feature>.home-daily-deadline{display:block;margin:0 0 14px;color:#766d67;font-size:11px;font-weight:750;line-height:1.35}
.today-objectives-modal-content .home-daily-session{display:block;width:100%;min-height:48px;padding:0;border:0;border-radius:24px;background:linear-gradient(90deg,#ff5d15,#ff711d);color:#fff;text-align:center;box-shadow:0 8px 18px rgba(238,91,24,.2)}
.today-objectives-modal-content .home-daily-session b{display:block;padding:14px 16px;font-size:14px}
@media(max-width:380px){
  .today-objectives-modal-content .home-daily-feature-top{grid-template-columns:44px minmax(0,1fr);gap:11px}
  .today-objectives-modal-content .home-daily-feature-icon{width:44px;height:44px;font-size:22px}
  .today-objectives-modal-content .home-daily-exercise{display:grid;gap:2px}
  .today-objectives-modal-content .home-daily-exercise small{text-align:left}
}
.home-calendar-launch{padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;}
.calendar-modal-dialog{padding:18px!important;}
.calendar-modal-dialog .home-training-calendar{margin:0!important;padding:18px!important;border:0!important;box-shadow:none!important;}
.calendar-modal-dialog .progress-modal-close{z-index:3;}

/* Source consolidée : legacy-034 */
/* v3.94 — actions Accueil regroupées dans une seule carte cohérente. */
#tab-accueil .home-actions-card{padding:16px!important;display:flex!important;flex-direction:column!important;gap:12px!important;background:#fff!important;border-radius:22px!important;}
#tab-accueil .home-actions-card .home-progress-open-btn{width:100%!important;min-height:68px!important;margin:0!important;}

/* Source consolidée : legacy-035 */
/* v3.99 — séparation structurelle entre le challenge et les actions rapides. */
#tab-accueil .home-major-section-separator{
  display:block!important;
  width:100%!important;
  height:28px!important;
  flex:0 0 28px!important;
  pointer-events:none!important;
}
@media (max-width:420px){
  #tab-accueil .home-major-section-separator{height:24px!important;flex-basis:24px!important;}
}

/* Source consolidée : legacy-036 */
/* v4.00 — accès rapide à la dernière séance depuis l’Accueil. */
/* v4.18 — dernière séance : contenu entièrement visible et défilable sur petits écrans. */
.last-workout-modal-dialog{
  padding:24px 22px 34px!important;
  max-height:calc(100dvh - 120px)!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scroll-padding-bottom:34px;
}
#lastWorkoutModalContent{padding-bottom:8px;}
/* v4.18 — dernière séance : vraie zone de défilement tactile indépendante. */
.last-workout-modal-dialog{
  padding:24px 22px 20px!important;
  max-height:calc(100vh - 80px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
}
#lastWorkoutModalContent{
  min-height:0!important;
  max-height:58vh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  padding:0 2px 30px 0!important;
  scrollbar-gutter:stable;
}
.last-workout-modal-dialog .home-section-title{margin-bottom:6px!important;}
.last-workout-date{font-size:14px;font-weight:700;color:#8c7869;margin:0 48px 18px 0;}
.last-workout-empty{padding:18px;border-radius:16px;background:#f8f6f3;color:#6f625a;text-align:center;}
.last-workout-duration{display:flex;align-items:center;gap:8px;padding:12px 14px;margin-bottom:14px;border-radius:14px;background:#fff5ef;color:#9a3e0c;font-weight:800;}
.last-workout-exercises{display:grid;gap:10px;}
.last-workout-exercise{padding:13px 14px;border:1px solid #eee7e1;border-radius:15px;background:#fff;}
.last-workout-exercise-name{font-weight:800;color:#34241d;margin-bottom:5px;}
.last-workout-exercise-values{font-size:14px;line-height:1.45;color:#6f625a;}
.last-workout-load{margin-top:14px;padding:13px 14px;border-radius:15px;background:#f7f5f2;color:#5f5149;font-size:13px;line-height:1.5;}

/* Source consolidée : v4181-workout-collapsible */
/* v4.35 — Ma séance : exercices agrandissables/réductibles */
.workout-exercise-head{
  align-items:center!important;
}
.workout-exercise-title-wrap{
  min-width:0;
  flex:1 1 auto;
}
.workout-exercise-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.workout-exercise-toggle{
  cursor:pointer;
  user-select:none;
  border-radius:12px;
}
.workout-exercise-toggle:focus-visible{
  outline:2px solid #ff6a1a;
  outline-offset:3px;
}
.workout-chevron{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  font-size:22px;
  line-height:1;
  color:#a84c1c;
  font-weight:800;
}
.workout-exercise-content{
  display:none;
  padding-top:2px;
}
.workout-exercise.is-expanded .workout-exercise-content{
  display:block;
}
.workout-exercise:not(.is-expanded){
  padding-bottom:14px!important;
}
.workout-exercise:not(.is-expanded) .workout-exercise-head{
  margin-bottom:0!important;
}
.workout-exercise.is-expanded .workout-exercise-head{
  margin-bottom:9px!important;
}
@media(max-width:390px){.workout-exercise-actions{gap:6px}}

/* Source consolidée : v419-settings-orange-clickable-final */
#tab-parametres .settings-collapsible{
  position:relative!important;
  overflow:hidden!important;
  border:1px solid #ead8cc!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:none!important;
  padding:18px 20px 18px 28px!important;
}
#tab-parametres .settings-collapsible::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  background:#ff681f;
  border-radius:20px 0 0 20px;
}
#tab-parametres .settings-collapsible-head{
  cursor:pointer!important;
  user-select:none;
  min-height:48px;
}
#tab-parametres .settings-collapsible-head:focus-visible{
  outline:2px solid #ff681f;
  outline-offset:4px;
  border-radius:10px;
}
#tab-parametres .settings-hidden-toggle{
  display:none!important;
}
#tab-parametres .settings-block-chevron{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  min-height:30px;
  color:#a84c1c;
  font-size:23px;
  line-height:1;
  font-weight:900;
}
#tab-parametres .settings-collapsible.open .settings-block-chevron{
  transform:none;
}
#tab-parametres .settings-collapsible.open .settings-collapsible-summary{
  display:none!important;
}

/* Source consolidée : v419-settings-layout-final */
/* Paramètres : respiration sous le bandeau */
#tab-parametres{
  padding-top:18px!important;
}

/* Même largeur et même espacement vertical pour les 4 cartes */
#tab-parametres > .settings-collapsible,
#tab-parametres > .daily-load-preference-card{
  margin-left:24px!important;
  margin-right:24px!important;
  margin-top:0!important;
  margin-bottom:14px!important;
}

/* Profil / Durée / Mes objectifs : on conserve exactement leur taille précédente */
#tab-parametres > .settings-collapsible{
  position:relative!important;
  overflow:hidden!important;
  border:1px solid #ead8cc!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:none!important;
}

/* État du jour : même langage visuel que les trois autres blocs */
#tab-parametres > .daily-load-preference-card{
  position:relative!important;
  overflow:hidden!important;
  border:1px solid #ead8cc!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:none!important;
  padding:15px 17px 15px 28px!important;
  min-height:0!important;
}

#tab-parametres > .settings-collapsible::before,
#tab-parametres > .daily-load-preference-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  background:#ff681f;
  border-radius:20px 0 0 20px;
}

/* État du jour : même rythme interne que les cartes fermées */
#tab-parametres .daily-load-preference-row{
  min-height:0!important;
  align-items:center!important;
  gap:14px!important;
}
#tab-parametres .daily-load-preference-card .card-section-title{
  margin:0 0 4px!important;
  font-size:17px!important;
  line-height:1.15!important;
}
#tab-parametres .daily-load-preference-card .small.muted{
  font-size:11px!important;
  line-height:1.3!important;
}
#tab-parametres .daily-load-preference-card .settings-collapsible-summary{
  margin-top:4px!important;
  font-size:11px!important;
  line-height:1.3!important;
}

/* Aucun espace supplémentaire après le dernier bloc */
#tab-parametres > .daily-load-preference-card:last-child{
  margin-bottom:0!important;
}

/* Source consolidée : v419-parametres-large-final */
/* Respiration nette sous le bandeau */
#tab-parametres{
  padding-top:30px!important;
}

/* Cartes nettement plus larges, tout en gardant une petite marge écran */
#tab-parametres > .settings-collapsible,
#tab-parametres > .daily-load-preference-card{
  width:auto!important;
  max-width:none!important;
  margin-left:12px!important;
  margin-right:12px!important;
  margin-top:0!important;
  margin-bottom:14px!important;
  box-sizing:border-box!important;
}

/* Aucun chevron / V visible : le bloc entier reste cliquable */
#tab-parametres .settings-collapsible-toggle,
#tab-parametres .settings-collapsible-chevron,
#tab-parametres .settings-chevron,
#tab-parametres .collapse-chevron{
  display:none!important;
}

/* Cas où le chevron est injecté via pseudo-élément */
#tab-parametres .settings-collapsible-header::after,
#tab-parametres .settings-collapsible-trigger::after{
  display:none!important;
  content:none!important;
}

/* Même largeur pour État du jour */
#tab-parametres > .daily-load-preference-card{
  padding-left:28px!important;
}

/* Source consolidée : v419-parametres-correction-1514 */
#tab-parametres > .settings-collapsible:first-child{
  margin-top:24px!important;
}
#tab-parametres > .settings-collapsible,
#tab-parametres > .daily-load-preference-card{
  margin-left:6px!important;
  margin-right:6px!important;
  margin-bottom:14px!important;
  width:calc(100% - 12px)!important;
  max-width:none!important;
}
#tab-parametres .settings-block-chevron{
  display:none!important;
}

/* Source consolidée : v419-parametres-header-accent-final */
/* Aucun chevron visible */
#tab-parametres .settings-block-chevron,
#tab-parametres .settings-collapsible-toggle,
#tab-parametres .settings-collapsible-chevron,
#tab-parametres .settings-chevron,
#tab-parametres .collapse-chevron{
  display:none!important;
}

/* Bloc fermé : liseré orange sur toute la hauteur */
#tab-parametres > .settings-collapsible{
  position:relative!important;
}
#tab-parametres > .settings-collapsible::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  height:auto;
  background:#ff681f;
  border-radius:20px 0 0 20px;
  z-index:1;
}

/* Bloc ouvert : le liseré reste uniquement au niveau de l'en-tête */
#tab-parametres > .settings-collapsible.open::before{
  top:16px!important;
  bottom:auto!important;
  height:58px!important;
  border-radius:0 6px 6px 0!important;
}

/* État du jour : même style de bloc fermé */
#tab-parametres > .daily-load-preference-card{
  position:relative!important;
  overflow:hidden!important;
  border:1px solid #ead8cc!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:none!important;
}
#tab-parametres > .daily-load-preference-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  background:#ff681f;
  border-radius:20px 0 0 20px;
}

/* Largeur et respiration */
#tab-parametres > .settings-collapsible:first-child{
  margin-top:24px!important;
}
#tab-parametres > .settings-collapsible,
#tab-parametres > .daily-load-preference-card{
  margin-left:6px!important;
  margin-right:6px!important;
  margin-bottom:14px!important;
  width:calc(100% - 12px)!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

/* Source consolidée : v419-workout-like-settings-final */
/* Aucun indicateur de type V / chevron / bouton */
#tab-seance .workout-chevron,
#tab-seance .workout-collapse-toggle,
#tab-seance .workout-exercise-actions .workout-chevron{
  display:none!important;
}

/* Bloc exercice */
#tab-seance .workout-exercise{
  position:relative!important;
  overflow:hidden!important;
}

/* Fermé : liseré orange sur toute la hauteur */
#tab-seance .workout-exercise::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  background:#ff681f;
  border-radius:20px 0 0 20px;
  z-index:1;
}

/* Ouvert : liseré court uniquement au niveau de l'en-tête */
#tab-seance .workout-exercise.is-expanded::before{
  top:16px!important;
  bottom:auto!important;
  height:58px!important;
  border-radius:0 6px 6px 0!important;
}

/* Même logique d'ouverture/fermeture que Paramètres */
#tab-seance .workout-exercise-content{
  display:none;
}
#tab-seance .workout-exercise.is-expanded .workout-exercise-content{
  display:block;
}
#tab-seance .workout-exercise-head{
  cursor:pointer!important;
  user-select:none!important;
}
#tab-seance .workout-exercise-head:focus-visible{
  outline:2px solid #ff681f;
  outline-offset:3px;
  border-radius:12px;
}

/* Conserver les cartes fermées compactes */
#tab-seance .workout-exercise:not(.is-expanded){
  padding-bottom:14px!important;
}
#tab-seance .workout-exercise:not(.is-expanded) .workout-exercise-head{
  margin-bottom:0!important;
}
#tab-seance .workout-exercise.is-expanded .workout-exercise-head{
  margin-bottom:9px!important;
}

/* Source consolidée : v425-workout-complete-green */
#tab-seance .workout-exercise.is-completed::before{
  background:#18c76f!important;
}
#tab-seance .workout-exercise.is-completed{
  border-color:#cfeedd!important;
}

/* Source consolidée : v426-free-session */
.session-type-selector{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:14px 0 18px;
  padding:5px;
  border-radius:14px;
  background:#f6f3f0;
  border:1px solid #e8e1dc;
}
.session-type-btn{
  min-height:44px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#7c736d;
  font-weight:800;
  font-size:13px;
}
.session-type-btn.active{
  background:#fff;
  color:#b44d1d;
  box-shadow:0 2px 8px rgba(70,45,30,.08);
}
.session-type-btn[data-session-type="free"].active{
  color:#1673b8;
}
.free-session-card{
  display:grid;
  gap:13px;
  margin:0 0 18px;
  padding:16px;
  border:1px solid #cfe3f3;
  border-left:6px solid #2c8ed6;
  border-radius:18px;
  background:#f8fcff;
}
.free-session-card[hidden]{display:none!important}
.free-session-badge{
  justify-self:start;
  padding:5px 9px;
  border-radius:999px;
  background:#e6f3fc;
  color:#1673b8;
  font-size:11px;
  font-weight:900;
}
.free-session-card label{margin:0}
.free-session-card textarea{resize:vertical}
.free-session-info{
  padding:10px 11px;
  border-radius:11px;
  background:#edf7fe;
  color:#547487;
  font-size:11px;
  line-height:1.4;
}

/* Calendrier : séance libre en bleu, objectif en orange */
.training-calendar-day.has-free-session{
  background:#edf7fe;
  color:#1673b8;
  border-color:#b9dcf3;
}
.training-calendar-day.has-free-session::after{
  background:#2c8ed6;
}
.training-calendar-day.has-both{
  background:linear-gradient(135deg,#fff3e9 0 50%,#edf7fe 50% 100%);
  color:#4d5360;
  border-color:#d9cfc8;
}
.training-calendar-day.has-both::after{
  background:linear-gradient(90deg,#ee6b2f 0 50%,#2c8ed6 50% 100%);
  width:10px;
}
.training-calendar-day.selected.has-free-session{
  background:#2c8ed6;
  color:#fff;
  border-color:#2c8ed6;
}
.training-calendar-day.selected.has-both{
  background:linear-gradient(135deg,#ee6b2f 0 50%,#2c8ed6 50% 100%);
  color:#fff;
}
.calendar-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
  font-size:10px;
  color:#756d67;
}
.calendar-legend span{display:inline-flex;align-items:center;gap:5px}
.calendar-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.calendar-dot.objective{background:#ee6b2f}
.calendar-dot.free{background:#2c8ed6}
.free-session-summary{
  display:block;
  margin-top:6px;
  color:#1673b8;
  font-weight:700;
}

/* Source consolidée : v427-free-session-hide-objective */
#workoutForm.session-free #dailyLoadCard,
#workoutForm.session-free #workoutFields{
  display:none!important;
}
#workoutForm.session-free .free-session-card{
  display:grid!important;
}

/* Source consolidée : v428-calendar-free-blue-circle */
.training-calendar-day.has-free-session:not(.has-session){
  background:#edf7fe!important;
  color:#1673b8!important;
  border:2px solid #2c8ed6!important;
  border-radius:50%!important;
  font-weight:900!important;
}
.training-calendar-day.has-free-session:not(.has-session)::after{
  content:"✓"!important;
  position:absolute!important;
  right:-3px!important;
  bottom:-3px!important;
  left:auto!important;
  width:16px!important;
  height:16px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  background:#2c8ed6!important;
  color:#fff!important;
  border:2px solid #fff!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
}
.training-calendar-day.has-session:not(.has-free-session){
  border:2px solid #ee6b2f!important;
  border-radius:50%!important;
  background:#fff5ed!important;
  color:#b44d1d!important;
  font-weight:900!important;
}
.training-calendar-day.has-session:not(.has-free-session)::after{
  content:"✓"!important;
  position:absolute!important;
  right:-3px!important;
  bottom:-3px!important;
  left:auto!important;
  width:16px!important;
  height:16px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  background:#ee6b2f!important;
  color:#fff!important;
  border:2px solid #fff!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
}
.training-calendar-day.selected.has-free-session:not(.has-session){
  background:#dff1fd!important;
  color:#1267a3!important;
}
.home-training-calendar .training-calendar-day.has-free-session:not(.has-session){
  background:#edf7fe!important;
  color:#1673b8!important;
  border:2px solid #2c8ed6!important;
}

/* Source consolidée : v429-calendar-equal-circle-size */
.home-training-calendar .training-calendar-day.has-free-session:not(.has-session){
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  justify-self:center!important;
  align-self:center!important;
  border:0!important;
  border-radius:50%!important;
  background:#edf7fe!important;
  color:#1673b8!important;
  font-weight:900!important;
  box-shadow:inset 0 0 0 1.5px #2c8ed6!important;
}
.home-training-calendar .training-calendar-day.has-free-session:not(.has-session)::after{
  content:"✓"!important;
  position:absolute!important;
  right:-1px!important;
  bottom:-2px!important;
  width:13px!important;
  height:13px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  background:#2c8ed6!important;
  color:#fff!important;
  border:0!important;
  font-size:8px!important;
  font-weight:950!important;
  line-height:1!important;
}

/* Source consolidée : v430-delete-session */
.calendar-session-detail{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-radius:12px;
  margin-top:8px;
}
.calendar-session-detail.objective{
  background:#fff4ec;
  color:#6f3a1e;
}
.calendar-session-detail.free{
  background:#edf7fe;
  color:#225b82;
}
.calendar-delete-session{
  flex:0 0 auto;
  border:1px solid #e7a8a8;
  background:#fff7f7;
  color:#b33a3a;
  border-radius:10px;
  padding:8px 10px;
  font-size:11px;
  font-weight:800;
}

/* Source consolidée : v431-delete-confirm */
.calendar-delete-session.confirming{
  background:#b83a3a!important;
  border-color:#b83a3a!important;
  color:#fff!important;
}

/* Source consolidée : v435-daily-load-like-exercises */
#tab-seance #dailyLoadCard{
  position:relative!important;
  overflow:hidden!important;
  margin:16px 0!important;
  padding:0!important;
  border:1px solid #eadfd7!important;
  border-radius:18px!important;
  background:#fff!important;
}

/* Liseré orange complet quand le bloc est fermé */
#tab-seance #dailyLoadCard::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:6px;
  background:#ff681f;
  border-radius:18px 0 0 18px;
  z-index:2;
}

/* Comme les exercices : bloc ouvert = liseré court au niveau de l'en-tête */
#tab-seance #dailyLoadCard:not(.collapsed)::before{
  top:16px!important;
  bottom:auto!important;
  height:58px!important;
  border-radius:0 6px 6px 0!important;
}

#tab-seance #dailyLoadCard .session-load-toggle{
  min-height:96px!important;
  padding:20px 28px!important;
  cursor:pointer!important;
  user-select:none!important;
}

#tab-seance #dailyLoadCard .session-load-toggle strong{
  font-size:18px!important;
  line-height:1.15!important;
}

#tab-seance #dailyLoadCard .session-load-toggle small{
  font-size:12px!important;
  margin-top:3px!important;
}

/* Aucun symbole d'ouverture, comme les exercices */
#tab-seance #dailyLoadCard .session-load-chevron{
  display:none!important;
}

#tab-seance #dailyLoadCard.collapsed .session-load-content{
  display:none!important;
}

#tab-seance #dailyLoadCard:not(.collapsed) .session-load-content{
  display:block!important;
  padding:0 28px 22px!important;
}

/* Source consolidée : v436-avant-ma-seance */
/* v4.36 — « Avant ma séance » compact, cohérent avec les exercices */
#tab-seance #dailyLoadCard .session-load-toggle{padding:18px 22px 18px 28px!important;}
#tab-seance #dailyLoadCard .session-load-heading{display:flex!important;align-items:center!important;gap:12px!important;min-width:0!important;}
#tab-seance #dailyLoadCard .session-load-icon{width:30px;height:30px;border:2px solid #ff681f;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#ff681f;font-size:19px;font-weight:900;flex:0 0 30px;}
#tab-seance #dailyLoadCard .session-load-copy{display:flex;flex-direction:column;gap:3px;min-width:0;}
#tab-seance #dailyLoadCard .session-load-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto;}
#tab-seance #dailyLoadCard .session-load-status{padding:7px 11px;border:1px solid #e5ddd7;border-radius:999px;background:#fff;color:#756a63;font-size:11px;font-weight:800;white-space:nowrap;}
#tab-seance #dailyLoadCard .session-load-arrow{font-size:28px;line-height:1;color:#8c817a;transform:rotate(0deg);transition:transform .18s ease;}
#tab-seance #dailyLoadCard:not(.collapsed) .session-load-arrow{transform:rotate(90deg);}
#tab-seance #dailyLoadCard.load-complete::before{background:#22a65a!important;}
#tab-seance #dailyLoadCard.load-complete .session-load-icon{border-color:#22a65a;color:#22a65a;}
#tab-seance #dailyLoadCard.load-complete .session-load-status{border-color:#bfe7ce;background:#f7fcf9;color:#168a48;}
@media(max-width:390px){#tab-seance #dailyLoadCard .session-load-icon{display:none;}#tab-seance #dailyLoadCard .session-load-toggle{padding-left:28px!important;}#tab-seance #dailyLoadCard .session-load-actions{gap:6px;}}

/* Source consolidée : v439-free-session-blue-save */
#saveWorkoutBtn.free-session-save{
  background:#188ed8!important;
  border-color:#188ed8!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(24,142,216,.18)!important;
}
#saveWorkoutBtn.free-session-save:active{
  background:#1178ba!important;
  border-color:#1178ba!important;
}

/* Source consolidée : v440-saved-workout-layout-fix */
/* v4.49 — Une séance enregistrée conserve exactement la géométrie des cartes normales. */
#tab-seance .saved-workout{
  display:grid!important;
  gap:14px!important;
  padding:14px!important;
  overflow:visible!important;
}
#tab-seance .saved-workout .workout-exercise{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:14px 16px 14px 28px!important;
  box-sizing:border-box!important;
  border:1px solid #cfeedd!important;
  border-radius:18px!important;
  background:#fff!important;
  overflow:hidden!important;
}
#tab-seance .saved-workout .workout-exercise-head{
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
}
#tab-seance .saved-workout .workout-exercise-title-wrap{
  min-width:0!important;
  padding:0!important;
  margin:0!important;
}
#tab-seance .saved-workout .workout-exercise-name,
#tab-seance .saved-workout .workout-objective{
  margin-left:0!important;
  padding-left:0!important;
  overflow:visible!important;
}
#tab-seance .saved-workout .workout-exercise.is-completed::before{
  left:0!important;
  top:0!important;
  bottom:0!important;
  height:auto!important;
  width:7px!important;
  background:#18c76f!important;
  border-radius:18px 0 0 18px!important;
}
#tab-seance .saved-workout-head-bottom{
  margin-top:2px!important;
}

/* Source consolidée : v441-free-duration-hours-minutes */
.free-session-duration-group{display:grid;gap:8px}
.free-session-duration-label{color:#82786f;font-size:14px;font-weight:500}
.free-session-duration-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.free-session-duration-fields label{display:grid;gap:6px;margin:0!important;color:#82786f;font-size:12px;font-weight:700}
.free-session-duration-fields input{width:100%;box-sizing:border-box}

/* Source consolidée : v442-free-note-style */
/* v4.49 — champ Note harmonisé avec les autres champs de saisie */
#freeSessionNote{
  display:block!important;
  width:100%!important;
  min-height:112px!important;
  box-sizing:border-box!important;
  padding:16px 18px!important;
  border:1px solid #ded7d1!important;
  border-radius:16px!important;
  background:#f8f5f2!important;
  color:#2d2824!important;
  font:inherit!important;
  font-size:16px!important;
  line-height:1.4!important;
  resize:vertical!important;
  outline:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
#freeSessionNote::placeholder{color:#8b8580!important;opacity:1!important}
#freeSessionNote:focus{border-color:#b9dff3!important;box-shadow:0 0 0 2px rgba(20,153,216,.08)!important}

/* Source consolidée : v443-history-menu */
body:has(#tab-historique.active) .hero{display:none!important}#tab-historique.active{padding-top:0!important}#tab-historique .section-card{margin-top:0!important}

/* Source consolidée : v444-suivi-ad */
#tab-suivi .native-ad-suivi{
  display:block!important;position:relative!important;width:auto!important;
  margin:28px 0 32px!important;padding:24px!important;background:#fff!important;
  border:1px solid rgba(62,45,36,.07)!important;border-radius:28px!important;
  box-shadow:0 8px 24px rgba(43,33,28,.06)!important;box-sizing:border-box!important;overflow:hidden!important;
}
#tab-suivi .native-ad-suivi::before{
  content:"";position:absolute;inset:12px;border-radius:22px;
  background:linear-gradient(135deg,#fff8f2,#fffdfb);border:1px solid #f1dfd1;z-index:0;pointer-events:none;
}
#tab-suivi .native-ad-suivi>*{position:relative;z-index:1}

/* Source consolidée : v452-chart-drag */
#chart{
  touch-action:pan-y;
}

/* Source consolidée : v466-chart-finger-guide */
.chart-finger-guide{
  position:fixed;
  width:1px;
  transform:translateX(-50%);
  opacity:.65;
  border-radius:999px;
  pointer-events:none;
  z-index:9998;
}

/* Source consolidée : v468-touch-guide */
.chart-touch-guide{
  width:1px!important;
  opacity:.32!important;
  background:rgba(105,105,105,.32)!important;
  z-index:2!important;
}
.chart-tooltip{
  z-index:6!important;
}

/* Source consolidée : v469-touch-fix */
.chart-touch-guide{
  background:rgba(105,105,105,.20)!important;
  opacity:1!important;
  width:1px!important;
  z-index:2!important;
}
.chart-tooltip{
  background:#fff!important;
  z-index:6!important;
}

/* Source consolidée : v472-history-separation */
body:has(#tab-historique.active) .hero{display:none!important}
#tab-historique.active{
  padding-top:24px!important;
}
#tab-historique .section-card{
  margin-top:0!important;
}
@media (max-width:420px){
  #tab-historique.active{padding-top:24px!important;}
}

/* Source consolidée : v473-help-spacing */
#tab-aide.active{
  padding-top:28px!important;
}
#tab-aide > .help-card{
  margin-top:0!important;
}
#tab-aide > .help-card + .help-card{
  margin-top:28px!important;
}
@media(max-width:420px){
  #tab-aide.active{
    padding-top:24px!important;
  }
  #tab-aide > .help-card + .help-card{
    margin-top:24px!important;
  }
}

/* Source consolidée : v479-chart-tabs-two-rows */
#chartTabs{
  display:block!important;
  width:100%!important;
  overflow:visible!important;
  padding:2px 0 10px!important;
  position:relative!important;
}
#chartTabs .chart-tabs-row{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  min-height:42px!important;
  position:relative!important;
  pointer-events:auto!important;
}
#chartTabs .chart-tabs-row + .chart-tabs-row{
  margin-top:2px!important;
}
#chartTabs .chart-tab{
  flex:0 0 auto!important;
  white-space:nowrap!important;
  position:relative!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent;
}
#tab-suivi .chart-period-wrap{
  position:relative!important;
  margin-top:0!important;
  clear:both!important;
}

/* Source consolidée : v487-exercise-label-style */
#v487-exercise-label{
  font-weight:700;
  color:#8b7768;
  font-size:14px;
  margin:8px 0 8px;
}

/* Source consolidée : v490-last-workout-session */
#tab-seance .session-last-workout-action{
  margin:14px 0 22px;
}
#tab-seance .session-last-workout-action .home-progress-open-btn{
  width:100%!important;
  margin:0!important;
}

/* Source consolidée : v494-last-workout-fix-style */
#openLastWorkoutModal{
  pointer-events:auto!important;
  touch-action:manipulation!important;
}
#lastWorkoutModal{z-index:9999!important;}

/* Source consolidée : v500-objectives-clean-ui */
/* Objectifs — présentation épurée */
#settingsExercisesList .exercise-config-card{
  border:1px solid #eadfd4!important;
  border-radius:18px!important;
  background:#fff!important;
  padding:0!important;
  margin:0 0 14px!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
#settingsExercisesList .exercise-config-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:16px 18px!important;
}
#settingsExercisesList .exercise-config-summary{
  min-width:0!important;
  flex:1 1 auto!important;
}
#settingsExercisesList .exercise-config-summary h4{
  margin:0 0 2px!important;
  font-size:18px!important;
  line-height:1.2!important;
}
#settingsExercisesList .exercise-config-summary .exercise-meta{
  margin:0!important;
  color:#8c7869!important;
  font-size:14px!important;
}
#settingsExercisesList .exercise-config-actions{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex:0 0 auto!important;
}
#settingsExercisesList .exercise-config-actions .delete-exercise{
  display:none!important;
}
#settingsExercisesList .exercise-config-card:has(.exercise-edit-panel.open) .exercise-config-actions .delete-exercise{
  display:none!important;
}
#settingsExercisesList .toggle-edit{
  min-width:94px!important;
  margin:0!important;
}
#settingsExercisesList .exercise-edit-panel{
  display:none!important;
  border-top:1px solid #f0e6dc!important;
  padding:14px 18px 18px!important;
  background:#fff!important;
}
#settingsExercisesList .exercise-edit-panel.open{
  display:block!important;
}
#settingsExercisesList .exercise-edit-panel .exercise-target-card,
#settingsExercisesList .exercise-edit-panel .best-rule,
#settingsExercisesList .exercise-edit-panel .all-rule{
  margin-top:10px!important;
}
#settingsExercisesList .exercise-edit-footer{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-top:14px!important;
  padding-top:14px!important;
  border-top:1px solid #f0e6dc!important;
}
#settingsExercisesList .exercise-edit-footer .delete-exercise-inline{
  background:#fff7f5!important;
  color:#c0392b!important;
  border:1px solid #e5b2aa!important;
  border-radius:14px!important;
  padding:12px 18px!important;
  font-weight:700!important;
}
#settingsExercisesList .exercise-edit-footer .save-exercise{
  margin-left:auto!important;
}
#settingsExercisesList .exercise-config-card.is-collapsed .exercise-edit-panel{
  display:none!important;
}

/* Source consolidée : v501-objectives-clean-ui-correct */
/* v5.07 — présentation épurée des objectifs */
#objectivesEditor .objective-list{
  display:flex!important;
  flex-direction:column!important;
  gap:14px!important;
}
#objectivesEditor .objective-card{
  background:#fff!important;
  border:1px solid #eadfd4!important;
  border-radius:18px!important;
  padding:0!important;
  overflow:hidden!important;
  box-shadow:0 5px 18px rgba(62,42,28,.035)!important;
}
#objectivesEditor .objective-summary{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  padding:16px 18px!important;
}
#objectivesEditor .objective-main{
  min-width:0!important;
  flex:1 1 auto!important;
}
#objectivesEditor .objective-title{
  font-size:18px!important;
  font-weight:800!important;
  line-height:1.2!important;
  margin:0 0 3px!important;
}
#objectivesEditor .objective-target{
  font-size:14px!important;
  color:#8b786a!important;
  line-height:1.3!important;
}
#objectivesEditor .objective-actions{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
}
#objectivesEditor .objective-actions .remove{
  display:none!important;
}
#objectivesEditor .toggle-edit{
  min-width:92px!important;
  margin:0!important;
}
#objectivesEditor .exercise-edit-panel{
  display:none!important;
  padding:16px 18px 18px!important;
  border-top:1px solid #eee4db!important;
  background:#fffaf6!important;
}
#objectivesEditor .exercise-edit-panel.open{
  display:block!important;
}
#objectivesEditor .edit-grid{
  gap:10px 12px!important;
}
/* v5.12 — Objectif et Séries de même largeur, Mesure légèrement plus large */
#objectivesEditor .edit-grid{
  grid-template-columns:minmax(0,42fr) minmax(0,58fr)!important;
  width:100%!important;
  max-width:390px!important;
  justify-content:start!important;
}
#objectivesEditor .edit-grid .standard-goal,
#objectivesEditor .edit-grid label:has(.ex-sets){
  width:100%!important;
}
@media(max-width:420px){
  #objectivesEditor .edit-grid{max-width:100%!important;}
}
/* v5.11 — champs de saisie plus compacts dans les objectifs */
#objectivesEditor .edit-grid label{
  gap:5px!important;
}
#objectivesEditor .edit-grid input,
#objectivesEditor .edit-grid select,
#objectivesEditor .edit-grid .compact-select{
  height:46px!important;
  min-height:46px!important;
  box-sizing:border-box!important;
  padding:8px 12px!important;
  border-radius:11px!important;
  font-size:16px!important;
}
#objectivesEditor .goal-options{
  margin-top:14px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
}
#objectivesEditor .goal-option{
  margin:0!important;
  border-radius:14px!important;
}
#objectivesEditor .exercise-inline-save-wrap{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-top:14px!important;
  padding-top:14px!important;
  border-top:1px solid #eadfd4!important;
}
#objectivesEditor .objective-delete-inline{
  appearance:none!important;
  border:1px solid #e6b4ac!important;
  background:#fff7f5!important;
  color:#c23d32!important;
  border-radius:14px!important;
  padding:11px 16px!important;
  font-weight:750!important;
  font-size:14px!important;
}
#objectivesEditor .exercise-inline-save{
  margin-left:auto!important;
  min-width:132px!important;
}

/* Source consolidée : v502-objective-chevron */
#objectivesEditor .toggle-edit{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
}
#objectivesEditor .toggle-edit-chevron{
  display:inline-block!important;
  font-size:21px!important;
  line-height:1!important;
  font-weight:800!important;
  transform:rotate(0deg);
  transition:transform .18s ease;
}
#objectivesEditor .toggle-edit.is-open .toggle-edit-chevron{
  transform:rotate(90deg);
}

/* Source consolidée : v503-simple-validation */
#objectivesEditor .goal-options{position:relative!important;padding:16px!important;border:1px solid #ead8c8!important;border-radius:16px!important;background:#fffaf6!important;display:block!important}
#objectivesEditor .goal-options:before,#objectivesEditor .goal-options:after{content:none!important;display:none!important}
#objectivesEditor .goal-option{display:none!important}
#objectivesEditor .v503-validation-select{display:block!important;width:100%!important;min-height:50px!important;padding:0 14px!important;border:1px solid #ddd7d1!important;border-radius:13px!important;background:#fff!important;font-size:16px!important;color:#33271f!important}
#objectivesEditor .v503-validation-note{margin-top:9px;font-size:12.5px;color:#8b786a}

/* Source consolidée : v505-validation-adaptive-style */
.v505-validation-box{margin-top:12px;padding:14px 14px 13px;border:1px solid #ead9ca;border-radius:16px;background:#fffaf6}
.v505-validation-title{font-weight:800;font-size:16px;color:#352820;margin-bottom:3px}
.v505-validation-help,.v505-validation-note{font-size:13px;line-height:1.35;color:#6f6259}
.v505-compact-stepper{display:flex;align-items:center;gap:8px;margin:10px 0 9px;width:max-content;max-width:100%}
.v505-compact-stepper button{flex:0 0 40px;width:40px;height:40px;padding:0;border:1px solid #ddd4cd;border-radius:10px;background:#fff;color:#342a25;font-size:22px;line-height:1;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.v505-compact-stepper button:active{transform:scale(.96)}
.v505-required-input{width:66px;height:40px;box-sizing:border-box;text-align:center;border:1.5px solid #ff6414;border-radius:10px;background:#fff;color:#342a25;font-size:17px;font-weight:800;outline:none;-moz-appearance:textfield;padding:0 6px}
.v505-required-input::-webkit-outer-spin-button,.v505-required-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.v505-required-input:focus{box-shadow:0 0 0 3px rgba(255,100,20,.12)}
.v505-sur{font-size:14px;color:#4d443e;white-space:nowrap;margin-left:1px}
.v505-validation-note{margin-top:1px}
.v505-validation-note strong{color:#f05b16}
#objectivesEditor .goal-options.v505-legacy-hidden{display:none!important;padding:0!important;margin:0!important;border:0!important;min-height:0!important;height:0!important;overflow:hidden!important}
@media(max-width:420px){.v505-validation-box{padding:13px}.v505-compact-stepper{gap:7px}.v505-compact-stepper button{flex-basis:38px;width:38px;height:38px}.v505-required-input{height:38px;width:62px}.v505-sur{font-size:13px}}

/* Source consolidée : v510-save-feedback-style */
#objectivesEditor .exercise-inline-save.is-saved{background:#2f8f5b!important;border-color:#2f8f5b!important;color:#fff!important}
.v510-save-toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%) translateY(10px);z-index:9999;max-width:calc(100vw - 32px);padding:11px 16px;border-radius:999px;background:#2f302d;color:#fff;font-size:14px;font-weight:750;box-shadow:0 8px 24px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;white-space:nowrap}
.v510-save-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Source consolidée : legacy-075 */
/* v4.04 — chrono et minuteur accessibles au pouce */
#tab-seance > #sessionTimerBar,
#tab-seance > .rest-timer-wrap{display:none!important}
.thumb-timer-tools{position:fixed;left:0;right:0;bottom:82px;z-index:205;pointer-events:none}
.thumb-timer-tools[hidden]{display:none!important}
.thumb-tool{position:absolute;bottom:0;width:68px;height:68px;border-radius:50%;background:#fff;border:1.5px solid;box-shadow:0 8px 24px rgba(45,33,25,.16);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:10px;font-weight:800;pointer-events:auto}
.thumb-tool-icon{font-size:24px;line-height:1}
.thumb-tool-chrono{left:calc(50% - 120px);color:#079447;border-color:#a9dfc1}
.thumb-tool-rest{right:calc(50% - 120px);color:#1677d2;border-color:#b8d9f7}
.timer-popover-backdrop{position:fixed;inset:0;z-index:206;background:rgba(45,33,25,.18)}
.timer-popover-backdrop[hidden]{display:none!important}
#tab-seance > #sessionTimerBar.thumb-popover-open,
#tab-seance > .rest-timer-wrap.thumb-popover-open{display:block!important;position:fixed!important;left:18px!important;right:18px!important;bottom:164px!important;z-index:207!important;margin:0!important;max-width:620px!important;margin-left:auto!important;margin-right:auto!important}
#tab-seance > #sessionTimerBar.thumb-popover-open{display:grid!important}
#tab-seance > .rest-timer-wrap.thumb-popover-open #restTimerBar{display:grid!important}
#tab-seance > .rest-timer-wrap.thumb-popover-open .rest-timer-presets{background:#fffaf6;padding:10px 12px;border-radius:0 0 18px 18px;box-shadow:0 12px 24px rgba(45,33,25,.12)}
@media(max-width:420px){.thumb-tool{width:64px;height:64px}.thumb-tool-chrono{left:calc(50% - 112px)}.thumb-tool-rest{right:calc(50% - 112px)}}

/* Source consolidée : legacy-076 */
/* v4.07 — panneaux Chrono / Minuteur compacts au-dessus des commandes flottantes */
#tab-seance > #sessionTimerBar.thumb-popover-open,
#tab-seance > #sessionTimerBar.thumb-popover-open.is-active{
  top:auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  align-self:auto!important;
}
#tab-seance > .rest-timer-wrap.thumb-popover-open{
  top:auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
}
#tab-seance > #sessionTimerBar.thumb-popover-open,
#tab-seance > .rest-timer-wrap.thumb-popover-open{
  bottom:158px!important;
}

/* Source consolidée : legacy-077 */
/* v4.08 — un chrono/minuteur lancé reste visible pendant la saisie */
#tab-seance > #sessionTimerBar.is-active,
#tab-seance > #sessionTimerBar.is-active.thumb-popover-open {
  display:grid!important;
  position:fixed!important;
  left:18px!important; right:18px!important; bottom:158px!important;
  z-index:207!important; margin:0 auto!important; max-width:620px!important;
  top:auto!important; height:auto!important; min-height:0!important; max-height:none!important;
}
#tab-seance > .rest-timer-wrap:has(#restTimerBar.timer-active) {
  display:block!important;
  position:fixed!important;
  left:18px!important; right:18px!important; bottom:158px!important;
  z-index:207!important; margin:0 auto!important; max-width:620px!important;
  top:auto!important; height:auto!important; min-height:0!important; max-height:none!important;
}
#tab-seance > .rest-timer-wrap:has(#restTimerBar.timer-active) #restTimerBar {display:grid!important}
#tab-seance > .rest-timer-wrap:has(#restTimerBar.timer-active) .rest-timer-presets {display:none!important}

/* Source consolidée : legacy-078 */
/* v4.09 — chrono/minuteur actifs en bandeau haut, sans assombrir la saisie */
.timer-popover-backdrop{background:transparent!important;pointer-events:none!important}
#tab-seance > #sessionTimerBar.is-active,
#tab-seance > #sessionTimerBar.is-active.thumb-popover-open {
  display:grid!important; position:fixed!important;
  left:18px!important; right:18px!important; top:86px!important; bottom:auto!important;
  z-index:207!important; margin:0 auto!important; max-width:620px!important;
  height:auto!important; min-height:0!important; max-height:none!important;
}
#tab-seance > .rest-timer-wrap:has(#restTimerBar.timer-active) {
  display:block!important; position:fixed!important;
  left:18px!important; right:18px!important; top:86px!important; bottom:auto!important;
  z-index:207!important; margin:0 auto!important; max-width:620px!important;
  height:auto!important; min-height:0!important; max-height:none!important;
}
#tab-seance > .rest-timer-wrap:has(#restTimerBar.timer-active) #restTimerBar{display:grid!important}
#tab-seance > .rest-timer-wrap:has(#restTimerBar.timer-active) .rest-timer-presets{display:none!important}

/* Source consolidée : legacy-079 */
/* v4.10 — clic extérieur ferme uniquement un panneau non démarré */
.timer-popover-backdrop{pointer-events:none!important}

/* Source consolidée : legacy-080 */
/* v4.18 — Objectif global atteint : anneau vert cohérent avec la séance validée */
.home-challenge-ring.is-complete{
  background:#18c76f !important;
  box-shadow:0 14px 30px rgba(24,199,111,.14)!important;
}
.home-challenge-ring.is-complete .home-ring-start{
  background:#18c76f!important;
  box-shadow:0 0 6px rgba(24,199,111,.28)!important;
}
.home-challenge-ring.is-complete .home-ring-end{
  background:#18c76f!important;
  box-shadow:0 0 0 2px rgba(24,199,111,.18),0 4px 13px rgba(38,84,60,.22),0 0 18px rgba(24,199,111,.16)!important;
}
.home-challenge-ring.is-complete .home-challenge-ring-inner::after{
  color:#18c76f!important;
}

/* Source consolidée : legacy-081 */
/* v4.18 — à 100 %, l’anneau complet devient vert */
.home-challenge-ring.is-complete{
  background:conic-gradient(
    from 0deg,
    #18c76f 0deg,
    #18c76f 360deg
  )!important;
}

/* Source consolidée : v514-inline-steppers */
/* v5.15 — groupe − / saisie / + plus compact et champ central clairement éditable */
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label:has(.v514-stepper){
  grid-template-columns:1fr auto!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label:has(.v514-stepper)::after{display:none!important}
#objectivesEditor .v514-stepper{
  display:grid;
  grid-template-columns:40px 72px 40px;
  gap:8px;
  align-items:center;
  width:auto;
  justify-self:end;
}
#objectivesEditor .v514-stepper button{
  width:40px;height:40px;padding:0;
  border:1px solid #ded5ce;border-radius:11px;
  background:#fff;color:#332a25;
  font-size:22px;font-weight:800;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
#objectivesEditor .v514-stepper button:active{background:#fff1e7;border-color:#ff9a5f;transform:scale(.97)}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper input{
  width:72px!important;height:40px!important;min-height:40px!important;
  box-sizing:border-box!important;
  border:1.5px solid #d9d0c9!important;border-radius:11px!important;
  background:#f8f6f4!important;color:#2d2119!important;
  text-align:center!important;padding:4px 6px!important;
  font-size:17px!important;font-weight:800!important;
  box-shadow:inset 0 1px 2px rgba(60,40,25,.04)!important;
  -moz-appearance:textfield;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper input:focus{
  outline:none!important;border-color:#ff6a1a!important;background:#fff!important;
  box-shadow:0 0 0 3px rgba(255,106,26,.12)!important;
}
#objectivesEditor .v514-stepper input::-webkit-outer-spin-button,#objectivesEditor .v514-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:390px){
 #objectivesEditor .v514-stepper{grid-template-columns:36px 64px 36px;gap:6px}
 #objectivesEditor .v514-stepper button{width:36px;height:36px}
 #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper input{width:64px!important;height:36px!important;min-height:36px!important;font-size:16px!important}
}

/* Source consolidée : v525-empty-objective-home */
/* v5.27 — Accueil : espacement harmonisé entre le titre Challenge et l’encart information */
#homeObjectiveEmptyState{display:none;margin:12px 0 14px;padding:12px 13px;border:1px solid #f4c7aa;border-radius:14px;background:#fff7f1;align-items:center;gap:11px}
#homeObjectiveEmptyState.is-visible{display:flex}
#homeObjectiveEmptyState .v525-empty-icon{flex:0 0 34px;width:34px;height:34px;border:1.5px solid #ff6a1a;border-radius:50%;display:grid;place-items:center;color:#ff6414;font-size:19px;font-weight:900;background:#fff}
#homeObjectiveEmptyState .v525-empty-copy{min-width:0;flex:1}
#homeObjectiveEmptyState .v525-empty-title{font-size:13px;line-height:1.2;font-weight:900;color:#2d2119;margin-bottom:3px}
#homeObjectiveEmptyState .v525-empty-text{font-size:11.5px;line-height:1.35;color:#756a63}
#homeObjectiveEmptyState .v525-empty-action{flex:0 0 auto;border:1px solid #ff6a1a;border-radius:999px;background:#fff;color:#e85b14;padding:8px 11px;font-size:11px;font-weight:850;white-space:normal;text-align:center}
@media(max-width:390px){#homeObjectiveEmptyState{padding:10px;gap:8px;flex-wrap:wrap}#homeObjectiveEmptyState .v525-empty-icon{width:30px;height:30px;flex-basis:30px}#homeObjectiveEmptyState .v525-empty-action{flex:1 0 100%;width:100%;padding:9px 11px!important}}

/* Source consolidée : v532-session-empty-objective */
#sessionEmptyObjective{display:none}
#workoutForm .session-empty-objective{
  min-height:300px; margin:16px 0 8px; padding:28px 24px; box-sizing:border-box;
  border-radius:24px; background:#fffaf5; align-items:center; justify-content:center;
  flex-direction:column; text-align:center;
}
#workoutForm .session-empty-objective-title{color:#2d2119;font-size:22px;line-height:1.2;font-weight:850;margin-bottom:10px}
#workoutForm .session-empty-objective-text{max-width:390px;color:#7d6d62;font-size:16px;line-height:1.45;font-weight:550}
@media(max-width:420px){
 #workoutForm .session-empty-objective{min-height:280px;padding:24px 18px}
 #workoutForm .session-empty-objective-title{font-size:20px}
 #workoutForm .session-empty-objective-text{font-size:15px}
}

/* Source consolidée : v535-exercise-name-cleanup */
/* v5.35 — nom d’exercice modifiable + suppression des conteneurs vides */
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-name-editor{
  margin:0 -16px!important; padding:12px 16px!important; border-top:1px solid #eee5de!important;
  border-bottom:1px solid #f0e8e2!important; background:#fff!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-name-editor label{
  display:grid!important; grid-template-columns:1fr minmax(160px,55%)!important; align-items:center!important;
  gap:12px!important; color:#332a25!important; font-size:14px!important; font-weight:700!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-name-editor input{
  width:100%!important; height:40px!important; box-sizing:border-box!important; border:1.5px solid #ff6a1a!important;
  border-radius:11px!important; background:#fff!important; color:#2d2119!important; padding:6px 10px!important;
  font-size:15px!important; font-weight:700!important; text-align:center!important; outline:none!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-name-editor input:focus{
  box-shadow:0 0 0 3px rgba(255,100,20,.13)!important;
}
#objectivesEditor .v505-validation-box:empty,
#objectivesEditor .v508-validation-box:empty{display:none!important;margin:0!important;padding:0!important;border:0!important;min-height:0!important;height:0!important;}
@media(max-width:390px){
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-name-editor label{grid-template-columns:1fr minmax(135px,56%)!important;}
}

/* Source consolidée : v536-remove-empty-validation-space */
/* v5.36 — aucun emplacement résiduel sous la ligne Séries */
#objectivesEditor .objective-card .v505-validation-box,
#objectivesEditor .objective-card .v508-validation-box{display:none!important;margin:0!important;padding:0!important;border:0!important;height:0!important;min-height:0!important;}

/* Source consolidée : v538-duration-hms-style */
#objectivesEditor .v538-duration-label{display:block!important}
#objectivesEditor .v538-duration-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:7px}
#objectivesEditor .v538-duration-part{display:flex;flex-direction:column;gap:5px;min-width:0}
#objectivesEditor .v538-duration-part span{font-size:11px;font-weight:700;color:#81746b;text-align:center}
#objectivesEditor .v538-duration-part input{width:100%!important;height:40px!important;box-sizing:border-box!important;text-align:center!important;border:1.5px solid #ff6a1a!important;border-radius:11px!important;background:#fff!important;color:#2d2119!important;font-size:15px!important;font-weight:800!important;padding:4px!important}
#objectivesEditor .v538-duration-part input:focus{outline:none!important;box-shadow:0 0 0 3px rgba(255,100,20,.12)!important}
#objectivesEditor .v538-hidden-goal{display:none!important}

/* Source consolidée : v553-inline-measure-tabs-style */
/* v5.54 — choix de la mesure directement dans le formulaire, sans modale. */
#objectivesEditor .measure-slot > label{display:block!important;width:100%!important}
#objectivesEditor .measure-slot .ex-unit{display:none!important}
#objectivesEditor .v553-measure-tabs{
  display:grid;grid-template-columns:1fr .78fr 1.35fr;width:100%;margin-top:8px;
  border:1px solid #ead9cc;border-radius:13px;overflow:hidden;background:#fff;
  box-shadow:0 1px 2px rgba(45,33,25,.04)
}
#objectivesEditor .v553-measure-tab{
  appearance:none;-webkit-appearance:none;border:0;border-right:1px solid #ead9cc;
  min-width:0;min-height:48px;padding:8px 6px;background:#fff;color:#332a25;
  font:inherit;font-size:13px;font-weight:800;line-height:1.13;text-align:center;
  cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  user-select:none;-webkit-user-select:none
}
#objectivesEditor .v553-measure-tab:last-child{border-right:0}
#objectivesEditor .v553-measure-tab.active{
  background:#fff7f0;color:#c95213;box-shadow:inset 0 0 0 2px #f26a21
}
#objectivesEditor .v553-measure-tab:focus-visible{outline:2px solid #f26a21;outline-offset:-3px}

/* v5.84 — l'ancien sélecteur natif reste la source de données mais sa ligne
   visuelle est remplacée par les trois boutons de mesure. */
#objectivesEditor .measure-slot > label.v584-native-measure-hidden{
  display:none!important;
}
html body #objectivesEditor label.v584-native-measure-hidden[hidden]{
  display:none!important;
  visibility:hidden!important;
}

/* v5.90 — le toucher sur l'objectif reste réservé à la saisie et ne peut pas
   être capturé par la navigation gestuelle de l'application. */
#objectiveTextInput{
  touch-action:manipulation!important;
  -webkit-user-select:text!important;
  user-select:text!important;
}
@media (max-width:380px){
  #objectivesEditor .v553-measure-tab{font-size:12px;padding-left:4px;padding-right:4px}
}

/* Source consolidée : v560-charge-row-visibility-style */
/* v5.62 — la ligne Charge (kg) n'existe visuellement qu'en mode Charge + répétitions. */
#objectivesEditor .weight-goals{display:none!important}
#objectivesEditor .charge-goal-simple{
  display:none!important;
  grid-template-columns:1fr auto!important;
  align-items:center!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  padding:12px 12px!important;
  margin:0!important;
  border-top:1px solid #eee5de!important;
  color:#332a25!important;
  font-weight:800!important;
}
#objectivesEditor .objective-card.v560-weight-selected .charge-goal-simple{display:grid!important}
#objectivesEditor .charge-goal-simple > input[type="hidden"]{display:none!important}
#objectivesEditor .charge-goal-simple .v514-stepper{justify-self:end!important}

/* Neutralise les anciens sélecteurs weight-mode : ils ne doivent jamais forcer
   l'affichage de Charge (kg) quand l'onglet actif est Répétitions ou Durée. */
#objectivesEditor .objective-card:not(.v560-weight-selected) .target-compact-grid.weight-mode .charge-goal-simple,
#objectivesEditor .objective-card:not(.v560-weight-selected) .charge-goal-simple{display:none!important}

#objectivesEditor .objective-card.v560-weight-selected .target-compact-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
  align-items:stretch!important;
}
#objectivesEditor .objective-card.v560-weight-selected .target-compact-grid .measure-slot{grid-column:1!important;grid-row:1!important}
#objectivesEditor .objective-card.v560-weight-selected .target-compact-grid .target-values{display:block!important;grid-column:1!important;grid-row:2!important}
#objectivesEditor .objective-card.v560-weight-selected .target-compact-grid .standard-goal{display:grid!important}
#objectivesEditor .objective-card.v560-weight-selected .target-compact-grid .series-slot{grid-column:1!important;grid-row:3!important}
#objectivesEditor .objective-card.v560-weight-selected .target-compact-grid .charge-goal-simple{grid-column:1!important;grid-row:4!important}

/* Source consolidée : v574-calendar-modal-responsive */
/* La modale du calendrier doit toujours rester dans le viewport, même avec
   le zoom d'affichage Android ou un écran CSS très étroit. */
#calendarModal{
  box-sizing:border-box!important;
  padding:
    max(8px, env(safe-area-inset-top))
    max(8px, env(safe-area-inset-right))
    max(8px, env(safe-area-inset-bottom))
    max(8px, env(safe-area-inset-left))!important;
}
#calendarModal .calendar-modal-dialog{
  width:min(680px,100%)!important;
  max-width:100%!important;
  max-height:calc(100dvh - 16px)!important;
  margin:0!important;
  padding:14px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  box-sizing:border-box!important;
}
#calendarModal .home-training-calendar{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:14px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
#calendarModal .training-calendar-head,
#calendarModal .training-calendar-nav,
#calendarModal .training-calendar-grid,
#calendarModal .calendar-legend,
#calendarModal .training-calendar-summary{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#calendarModal .training-calendar-grid{
  width:100%!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:4px!important;
}
#calendarModal .training-calendar-weekday,
#calendarModal .training-calendar-day{
  min-width:0!important;
  width:auto!important;
  box-sizing:border-box!important;
}
#calendarModal .training-calendar-day{
  aspect-ratio:1 / 1!important;
}
#calendarModal .calendar-legend{
  display:flex!important;
  flex-wrap:wrap!important;
  row-gap:6px!important;
  column-gap:10px!important;
}

@media (max-width:480px){
  #calendarModal{align-items:center!important;padding:8px!important;}
  #calendarModal .calendar-modal-dialog{
    width:100%!important;
    max-width:100%!important;
    border-radius:22px!important;
    padding:10px!important;
  }
  #calendarModal .home-training-calendar{
    padding:12px 10px 10px!important;
    border-radius:18px!important;
  }
  /* Sur mobile, le titre et les flèches ne se disputent plus la même ligne. */
  #calendarModal .training-calendar-head{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;
    padding-right:42px!important;
    margin-bottom:12px!important;
  }
  #calendarModal .training-calendar-title{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    font-size:17px!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }
  #calendarModal .training-calendar-nav{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr) 30px!important;
    gap:6px!important;
  }
  #calendarModal .training-calendar-nav button{
    width:30px!important;
    min-width:30px!important;
    height:30px!important;
  }
  #calendarModal .training-calendar-month{
    min-width:0!important;
    width:100%!important;
    font-size:13px!important;
    white-space:nowrap!important;
  }
  #calendarModal .training-calendar-grid{gap:3px!important;}
  #calendarModal .training-calendar-day{
    border-radius:9px!important;
    font-size:11px!important;
  }
  #calendarModal .training-calendar-day.has-session::after{
    bottom:3px!important;
    width:4px!important;
    height:4px!important;
  }
  #calendarModal .calendar-legend{
    font-size:10px!important;
    line-height:1.3!important;
  }
  #calendarModal .training-calendar-summary{
    margin-top:10px!important;
    padding:10px!important;
    font-size:11px!important;
  }
}

@media (max-width:350px){
  #calendarModal{padding:5px!important;}
  #calendarModal .calendar-modal-dialog{padding:7px!important;border-radius:18px!important;}
  #calendarModal .home-training-calendar{padding:10px 6px 8px!important;}
  #calendarModal .training-calendar-head{padding-right:38px!important;}
  #calendarModal .training-calendar-title{font-size:15px!important;}
  #calendarModal .training-calendar-grid{gap:2px!important;}
  #calendarModal .training-calendar-weekday{font-size:9px!important;}
  #calendarModal .training-calendar-day{font-size:10px!important;border-radius:8px!important;}
  #calendarModal .calendar-legend{gap:5px 8px!important;font-size:9px!important;}
}

/* Source consolidée : v575-calendar-session-markers */
/* La v5.74 réduisait involontairement le pseudo-élément ::after à 4 px
   dans la modale, ce qui masquait presque totalement la coche.
   On garde la grille responsive, mais on restaure l'apparence des jours validés. */
#calendarModal .training-calendar-day.has-session:not(.has-free-session),
#calendarModal .training-calendar-day.has-free-session:not(.has-session){
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  justify-self:center!important;
  align-self:center!important;
  border-radius:50%!important;
}
#calendarModal .training-calendar-day.has-session:not(.has-free-session)::after,
#calendarModal .training-calendar-day.has-free-session:not(.has-session)::after{
  content:"✓"!important;
  position:absolute!important;
  right:-2px!important;
  bottom:-2px!important;
  left:auto!important;
  width:14px!important;
  height:14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  color:#fff!important;
  border:1.5px solid #fff!important;
  font-size:8px!important;
  font-weight:950!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
#calendarModal .training-calendar-day.has-session:not(.has-free-session)::after{background:#ee6b2f!important;}
#calendarModal .training-calendar-day.has-free-session:not(.has-session)::after{background:#2c8ed6!important;}
#calendarModal .training-calendar-day.has-both{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  justify-self:center!important;
  align-self:center!important;
  border-radius:50%!important;
}
#calendarModal .training-calendar-day.has-both::after{
  content:"✓"!important;
  right:-2px!important;
  bottom:-2px!important;
  left:auto!important;
  width:14px!important;
  height:14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  background:linear-gradient(90deg,#ee6b2f 0 50%,#2c8ed6 50% 100%)!important;
  color:#fff!important;
  border:1.5px solid #fff!important;
  font-size:8px!important;
  font-weight:950!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
@media(max-width:350px){
  #calendarModal .training-calendar-day.has-session:not(.has-free-session),
  #calendarModal .training-calendar-day.has-free-session:not(.has-session),
  #calendarModal .training-calendar-day.has-both{
    width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important;
  }
}

/* Source consolidée : legacy-092 */
/* Les champs restent légèrement grisés pour structurer l'écran,
   mais leur contenu foncé indique clairement qu'ils sont modifiables. */
.set-compact input,
#workoutForm input[type="number"],
#workoutForm input[type="text"] {
  background:#f7f4f1 !important;
  color:#2d2119 !important;
  border:1px solid #ded5ce !important;
  opacity:1 !important;
  -webkit-text-fill-color:#2d2119 !important;
}
.set-compact input:focus,
#workoutForm input[type="number"]:focus,
#workoutForm input[type="text"]:focus {
  background:#fffaf6 !important;
  border-color:#ee6b2f !important;
  box-shadow:0 0 0 2px rgba(238,107,47,.10) !important;
}

/* v4.12 — préférence État du jour */
.daily-load-preference-row{display:flex;align-items:center;justify-content:space-between;gap:18px}
.daily-load-preference-row>div{flex:1;min-width:0}
.daily-load-preference-row .card-section-title{margin-bottom:6px!important}
.preference-switch{position:relative;display:inline-flex;width:54px;height:32px;flex:0 0 54px;cursor:pointer}
.preference-switch input{position:absolute;opacity:0;pointer-events:none}
.preference-slider{position:absolute;inset:0;border-radius:999px;background:#d9d5d1;transition:.2s;border:1px solid #cec8c2}
.preference-slider:before{content:"";position:absolute;width:26px;height:26px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.16);transition:.2s}
.preference-switch input:checked + .preference-slider{background:#ff6200;border-color:#ff6200}
.preference-switch input:checked + .preference-slider:before{transform:translateX(22px)}
.daily-load-preference-card .settings-collapsible-summary{margin-top:10px}

/* Source consolidée : v417-complete-ring-final-override */
/* v4.18 — priorité finale : à 100 %, tout le grand anneau est vert */
#homeChallengeRing.home-challenge-ring.is-complete{
  background:#18c76f!important;
  background-image:none!important;
  box-shadow:0 14px 30px rgba(24,199,111,.14)!important;
}
#homeChallengeRing.home-challenge-ring.is-complete .home-ring-start,
#homeChallengeRing.home-challenge-ring.is-complete .home-ring-end{
  background:#18c76f!important;
}
#homeChallengeRing.home-challenge-ring.is-complete .home-challenge-ring-inner::after{
  color:#18c76f!important;
}

/* Source consolidée : v418-complete-ring-real-layers */
/* v4.18 — 100 % : recoloration des calques qui dessinent réellement l’anneau */
#homeChallengeRing.home-challenge-ring.is-complete::after{
  background:conic-gradient(
    from 0deg,
    #18c76f 0,
    #18c76f 100%
  )!important;
  opacity:1!important;
}
#homeChallengeRing.home-challenge-ring.is-complete .home-ring-after-marker-blur{
  background:conic-gradient(
    from 0deg,
    #18c76f 0,
    #18c76f 100%
  )!important;
  opacity:1!important;
}
#homeChallengeRing.home-challenge-ring.is-complete .home-ring-start,
#homeChallengeRing.home-challenge-ring.is-complete .home-ring-end{
  background:#18c76f!important;
}
#homeChallengeRing.home-challenge-ring.is-complete .home-challenge-ring-inner::after{
  color:#18c76f!important;
}

/* Source consolidée : v418-workout-orange-blocks-only */
/* Modification validée : uniquement les blocs d'exercices de Ma séance. */
.workout-exercises{
  gap:12px !important;
}
.workout-exercise{
  position:relative !important;
  padding:14px 14px 14px 18px !important;
  border:1px solid #f2d8c6 !important;
  border-bottom:1px solid #f2d8c6 !important;
  border-radius:16px !important;
  background:#fff !important;
  overflow:hidden !important;
}
.workout-exercise:first-child,
.workout-exercise:last-child{
  padding:14px 14px 14px 18px !important;
  border-bottom:1px solid #f2d8c6 !important;
}
.workout-exercise::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background:#ff6418;
  border-radius:16px 0 0 16px;
}

/* Source consolidée : v531-progression-empty-state */
#tab-suivi #chartEmptyObjective{display:none}
#tab-suivi #progressionCard.no-objective-state .chart-filter-label,
#tab-suivi #progressionCard.no-objective-state #chartTabs,
#tab-suivi #progressionCard.no-objective-state .chart-period-wrap,
#tab-suivi #progressionCard.no-objective-state #chartSummary,
#tab-suivi #progressionCard.no-objective-state #performanceKpis,
#tab-suivi #progressionCard.no-objective-state #performanceSequence,
#tab-suivi #progressionCard.no-objective-state #chart,
#tab-suivi #progressionCard.no-objective-state #chartSessionCaption{display:none!important}
#tab-suivi #progressionCard.no-objective-state #chartEmptyObjective{
  display:flex!important;
  min-height:300px;
  margin-top:12px;
  padding:28px 24px;
  box-sizing:border-box;
  border-radius:24px;
  background:#fffaf5;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center;
}
#tab-suivi #progressionCard.no-objective-state .chart-empty-objective-title{
  color:#2d2119;
  font-size:22px;
  line-height:1.2;
  font-weight:850;
  margin-bottom:10px;
}
#tab-suivi #progressionCard.no-objective-state .chart-empty-objective-text{
  max-width:390px;
  color:#7d6d62;
  font-size:16px;
  line-height:1.45;
  font-weight:550;
}
@media(max-width:420px){
  #tab-suivi #progressionCard.no-objective-state #chartEmptyObjective{min-height:280px;padding:24px 18px}
  #tab-suivi #progressionCard.no-objective-state .chart-empty-objective-title{font-size:20px}
  #tab-suivi #progressionCard.no-objective-state .chart-empty-objective-text{font-size:15px}
}

/* Source consolidée : v485-hide-redundant-chart-summary */
#tab-suivi #chartSummary{display:none!important;}

/* Source consolidée : v513-objective-compact-test */
/* v5.13 — test visuel proposition 2 : fiche exercice compacte */
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .objective-summary{
  display:flex!important; flex-direction:column!important; justify-content:center!important;
  text-align:center!important; padding:18px 18px 14px!important; gap:8px!important;
  background:linear-gradient(180deg,#fff3e9 0%,#fffaf6 100%)!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .objective-main{
  width:100%!important; display:flex!important; flex-direction:column!important; align-items:center!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .objective-main::before{
  content:"⌁"; display:grid; place-items:center; width:54px; height:54px; margin:0 0 8px;
  border-radius:50%; background:#ff6414; color:#fff; font-size:31px; font-weight:900;
  transform:rotate(-12deg); box-shadow:0 7px 16px rgba(255,100,20,.18);
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .objective-title{font-size:20px!important;margin-bottom:2px!important}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .objective-target{font-size:14px!important}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .objective-actions{position:absolute!important;right:14px!important;top:14px!important}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .toggle-edit{min-width:auto!important;padding:7px 10px!important;background:rgba(255,255,255,.72)!important}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .toggle-edit-label{font-size:12px!important}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-edit-panel{
  padding:0 16px 16px!important; background:#fff!important; border-top:0!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid{
  display:block!important; max-width:none!important; margin:0 -16px!important; width:auto!important;
  border-top:1px solid #eee5de!important; border-bottom:1px solid #eee5de!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label{
  display:grid!important; grid-template-columns:1fr minmax(135px,55%) 18px!important; align-items:center!important;
  min-height:58px!important; padding:0 16px!important; margin:0!important; gap:8px!important;
  border-bottom:1px solid #f0e8e2!important; color:#332a25!important; font-size:14px!important; font-weight:700!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label:last-child{border-bottom:0!important}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label::after{
  content:"›"; color:#a58d7d; font-size:24px; font-weight:400; line-height:1;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid input,
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid select{
  width:100%!important; height:40px!important; min-height:40px!important; padding:6px 8px!important;
  border:0!important; background:transparent!important; box-shadow:none!important; text-align:right!important;
  font-size:15px!important; font-weight:650!important; color:#2f2824!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid select{text-align-last:right!important}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v505-validation-box{
  margin-top:14px!important; border:0!important; border-radius:14px!important; background:#fffaf6!important;
  padding:14px!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-inline-save-wrap{margin-top:14px!important}
@media(max-width:390px){
 #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label{grid-template-columns:1fr minmax(120px,54%) 14px!important;padding:0 12px!important}
}

/* Source consolidée : v516-visible-number-inputs */
/* v5.16 — zones numériques clairement identifiables et valeurs centrées */
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label:has(.v514-stepper){
  grid-template-columns:1fr auto!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper{
  grid-template-columns:40px 112px 40px!important;
  gap:10px!important;
  justify-self:end!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper input{
  width:112px!important;height:40px!important;min-height:40px!important;
  display:block!important;box-sizing:border-box!important;
  border:1.5px solid #ff6a1a!important;border-radius:11px!important;
  background:#fff!important;color:#2d2119!important;
  text-align:center!important;text-align-last:center!important;
  padding:4px 10px!important;font-size:17px!important;font-weight:800!important;
  box-shadow:inset 0 1px 2px rgba(60,40,25,.04)!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper input:focus{
  outline:none!important;border-color:#ff6414!important;
  box-shadow:0 0 0 3px rgba(255,100,20,.13)!important;
}
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v505-required-input{
  text-align:center!important;text-align-last:center!important;
  border:1.5px solid #ff6a1a!important;background:#fff!important;
}
@media(max-width:390px){
 #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper{grid-template-columns:36px 96px 36px!important;gap:8px!important}
 #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper input{width:96px!important;height:36px!important;min-height:36px!important}
}

/* Source consolidée : v539-duration-simple-inputs-style */
/* v5.40 — durée simple : trois vraies zones de saisie Heures / Minutes / Secondes */
#objectivesEditor .v539-duration-row{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  align-items:center;
  gap:14px;
  padding:12px 0;
  border-top:1px solid #eee5de;
}
#objectivesEditor .v539-duration-title{font-weight:800;color:#332a25;font-size:15px}
#objectivesEditor .v539-duration-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}
#objectivesEditor .v539-duration-field{display:flex;flex-direction:column;gap:5px;min-width:0}
#objectivesEditor .v539-duration-field span{font-size:11px;font-weight:700;color:#81746b;text-align:center;white-space:nowrap}
#objectivesEditor .v539-duration-field input{
  width:100%!important;height:46px!important;min-height:46px!important;box-sizing:border-box!important;
  border:2px solid #ff6a1a!important;border-radius:12px!important;background:#fff!important;color:#2d2119!important;
  text-align:center!important;padding:4px 6px!important;font-size:18px!important;font-weight:800!important;
  -moz-appearance:textfield;appearance:textfield;
}
#objectivesEditor .v539-duration-field input:focus{outline:none!important;box-shadow:0 0 0 3px rgba(255,106,26,.12)!important}
#objectivesEditor .v539-duration-field input::-webkit-outer-spin-button,#objectivesEditor .v539-duration-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
#objectivesEditor .objective-card.v539-is-duration .standard-goal{display:none!important}
@media(max-width:430px){
  #objectivesEditor .v539-duration-row{grid-template-columns:1fr;gap:8px}
  #objectivesEditor .v539-duration-inputs{gap:7px}
  #objectivesEditor .v539-duration-field input{height:44px!important;min-height:44px!important;font-size:17px!important}
  #objectivesEditor .v539-duration-field span{font-size:10px}
}

/* Source consolidée : v541-measure-picker-style */
/* v5.41 — sélecteur de mesure : ouverture immédiate au simple toucher */
#objectivesEditor .ex-unit{position:relative!important;z-index:3!important;pointer-events:auto!important;touch-action:manipulation!important;cursor:pointer!important}
.v540-measure-backdrop{position:fixed;inset:0;z-index:10020;background:rgba(45,33,25,.28);display:flex;align-items:flex-end;justify-content:center;padding:16px;box-sizing:border-box}
.v540-measure-sheet{width:min(520px,100%);background:#fff;border-radius:22px;padding:18px;box-shadow:0 18px 50px rgba(45,33,25,.22)}
.v540-measure-sheet h3{margin:0 0 14px;color:#2d2119;font-size:20px}
.v540-measure-option{width:100%;min-height:54px;margin:7px 0;padding:10px 14px;border:1px solid #ead9cc;border-radius:14px;background:#fff;color:#332a25;font-size:16px;font-weight:750;text-align:left}
.v540-measure-option.active{border:2px solid #ff6a1a;background:#fff7f0;color:#a84d1d}
.v540-measure-cancel{width:100%;min-height:50px;margin-top:10px;border:0;border-radius:14px;background:#f4efeb;color:#665b54;font-size:15px;font-weight:750}

/* Source consolidée : v549-measure-touch-fix */
.v540-measure-backdrop{z-index:2147483000!important;touch-action:none!important}
.v540-measure-sheet{pointer-events:auto!important;touch-action:manipulation!important}
.v540-measure-option,.v540-measure-cancel{pointer-events:auto!important;touch-action:manipulation!important;-webkit-tap-highlight-color:transparent}

/* Source consolidée : v561-charge-row-no-gap-style */
/* Cette règle est volontairement en toute fin de fichier afin de passer après
   les anciens styles de .edit-grid qui forçaient display:grid !important. */
html body #objectivesEditor .objective-card .exercise-edit-panel .edit-grid .charge-goal-simple[hidden],
html body #objectivesEditor .objective-card:not(.v561-weight-selected) .exercise-edit-panel .edit-grid .charge-goal-simple{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  overflow:hidden!important;
}
html body #objectivesEditor .objective-card.v561-weight-selected .exercise-edit-panel .edit-grid .charge-goal-simple{
  display:grid!important;
  visibility:visible!important;
  height:auto!important;
  min-height:58px!important;
  max-height:none!important;
  padding:0 16px!important;
  margin:0!important;
  border-top:1px solid #f0e8e2!important;
  overflow:visible!important;
}

/* Source consolidée : v562-empty-edit-grid-fix */
#objectivesEditor .objective-card .exercise-edit-panel .edit-grid.v562-empty-grid{
  display:none!important;
  height:0!important;min-height:0!important;max-height:0!important;
  margin:0!important;padding:0!important;border:0!important;overflow:hidden!important;
}
/* La ligne Charge est masquée en entier hors du mode Charge + répétitions,
   quel que soit le parent dans lequel un ancien script l'a déplacée. */
#objectivesEditor .objective-card:not(.v562-weight-selected) .charge-goal-simple{
  display:none!important;height:0!important;min-height:0!important;max-height:0!important;
  margin:0!important;padding:0!important;border:0!important;overflow:hidden!important;
}

/* Source consolidée : v563-remove-empty-validation-band */
#objectivesEditor .objective-card .v505-validation-box,
#objectivesEditor .objective-card .v508-validation-box,
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v505-validation-box,
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v508-validation-box{
  display:none!important;
  height:0!important;min-height:0!important;max-height:0!important;
  margin:0!important;padding:0!important;border:0!important;
  background:transparent!important;overflow:hidden!important;
}

/* Source consolidée : v564-remove-empty-target-compact-zone */
#objectivesEditor .objective-card .target-compact-zone.v564-empty-target-zone{
  display:none!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:hidden!important;
}

/* Source consolidée : v565-remove-goal-options-band */
#objectivesEditor .objective-card .exercise-edit-panel .goal-options,
#objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-edit-panel .goal-options{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:hidden!important;
}

/* Source consolidée : v566-duration-clean-style */
/* En mode Durée, l'ancien champ objectif numérique est conservé uniquement comme stockage interne. */
#objectivesEditor .objective-card.v566-duration-mode .exercise-edit-panel .edit-grid > .standard-goal{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
}
/* Neutralise aussi les anciens rendus de durée. */
#objectivesEditor .objective-card.v566-duration-mode .v539-duration-row,
#objectivesEditor .objective-card.v566-duration-mode .v538-duration-fields{
  display:none!important;
}
#objectivesEditor .v566-duration-row{
  grid-column:1 / -1!important;
  width:100%!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:9px!important;
  padding:13px 0!important;
  margin:0!important;
  border-top:1px solid #eee5de!important;
  border-bottom:1px solid #eee5de!important;
  background:#fff!important;
}
#objectivesEditor .v566-duration-title{
  color:#332a25!important;
  font-size:15px!important;
  font-weight:800!important;
  line-height:1.2!important;
}
#objectivesEditor .v566-duration-inputs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:9px!important;
  width:100%!important;
  min-width:0!important;
}
#objectivesEditor .v566-duration-field{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  min-width:0!important;
  margin:0!important;
  color:#81746b!important;
  font-size:11px!important;
  font-weight:700!important;
  text-align:center!important;
}
#objectivesEditor .v566-duration-field span{display:block!important;white-space:nowrap!important}
#objectivesEditor .v566-duration-field input{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  min-width:0!important;
  height:46px!important;
  min-height:46px!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:6px!important;
  border:2px solid #ff6a1a!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#2d2119!important;
  -webkit-text-fill-color:#2d2119!important;
  font-size:18px!important;
  font-weight:800!important;
  line-height:1!important;
  text-align:center!important;
  appearance:textfield!important;
  -moz-appearance:textfield!important;
}
#objectivesEditor .v566-duration-field input:focus{
  outline:none!important;
  box-shadow:0 0 0 3px rgba(255,106,26,.12)!important;
}
#objectivesEditor .v566-duration-field input::-webkit-inner-spin-button,
#objectivesEditor .v566-duration-field input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important}
@media(max-width:390px){
  #objectivesEditor .v566-duration-inputs{gap:7px!important}
  #objectivesEditor .v566-duration-field{font-size:10px!important}
  #objectivesEditor .v566-duration-field input{height:44px!important;min-height:44px!important;font-size:17px!important}
}

/* Source consolidée : v567-duration-fields-final-style */
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-row{
  display:block!important; padding:16px 16px 14px!important; border-top:1px solid #eee5de!important; border-bottom:1px solid #eee5de!important;
}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-title{margin:0 0 12px!important;font-size:15px!important;font-weight:800!important;color:#332a25!important;}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-inputs{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;width:100%!important;
}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;
}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field::before,
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field::after{content:none!important;display:none!important;}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field span{
  display:block!important;text-align:center!important;color:#81746b!important;font-size:11px!important;font-weight:750!important;line-height:1.2!important;white-space:nowrap!important;
}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field input{
  position:static!important;display:block!important;visibility:visible!important;opacity:1!important;
  width:100%!important;height:48px!important;min-height:48px!important;margin:0!important;padding:6px 4px!important;box-sizing:border-box!important;
  border:2px solid #ff6a1a!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important;
  color:#2d2119!important;-webkit-text-fill-color:#2d2119!important;text-align:center!important;text-align-last:center!important;
  font-size:18px!important;font-weight:800!important;line-height:1!important;appearance:textfield!important;-moz-appearance:textfield!important;
}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field input:focus{outline:none!important;box-shadow:0 0 0 3px rgba(255,106,26,.12)!important;}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field input::-webkit-inner-spin-button,
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field input::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important;}
@media(max-width:390px){
  #objectivesEditor .objective-card.v566-duration-mode .v566-duration-row{padding-left:12px!important;padding-right:12px!important;}
  #objectivesEditor .objective-card.v566-duration-mode .v566-duration-inputs{gap:7px!important;}
  #objectivesEditor .objective-card.v566-duration-mode .v566-duration-field span{font-size:10px!important;}
  #objectivesEditor .objective-card.v566-duration-mode .v566-duration-field input{height:46px!important;min-height:46px!important;font-size:17px!important;}
}

/* Source consolidée : v568-duration-orange-boxes */
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field input{
  display:block!important;visibility:visible!important;opacity:1!important;
  width:100%!important;height:52px!important;min-height:52px!important;
  padding:6px 8px!important;margin:0!important;box-sizing:border-box!important;
  border:2px solid #ff6a1a!important;border-radius:13px!important;
  background:#fff!important;color:#2d2119!important;-webkit-text-fill-color:#2d2119!important;
  text-align:center!important;font-size:18px!important;font-weight:800!important;
  box-shadow:none!important;-webkit-appearance:none!important;appearance:none!important;
}
#objectivesEditor .objective-card.v566-duration-mode .v566-duration-field input:focus{
  outline:none!important;border-color:#ff6a1a!important;box-shadow:0 0 0 3px rgba(255,106,26,.12)!important;
}

/* Source consolidée : v569-duration-inputs-force */
#objectivesEditor .objective-card.v566-duration-mode:has(.exercise-edit-panel.open) .exercise-edit-panel.open .edit-grid .v566-duration-row .v566-duration-inputs .v566-duration-field input.v566-h,
#objectivesEditor .objective-card.v566-duration-mode:has(.exercise-edit-panel.open) .exercise-edit-panel.open .edit-grid .v566-duration-row .v566-duration-inputs .v566-duration-field input.v566-m,
#objectivesEditor .objective-card.v566-duration-mode:has(.exercise-edit-panel.open) .exercise-edit-panel.open .edit-grid .v566-duration-row .v566-duration-inputs .v566-duration-field input.v566-s{
  display:block!important; visibility:visible!important; opacity:1!important;
  position:static!important; width:100%!important; height:52px!important; min-height:52px!important;
  margin:0!important; padding:6px 8px!important; box-sizing:border-box!important;
  border:2px solid #ff6a1a!important; border-radius:13px!important;
  background:#fff!important; box-shadow:none!important;
  color:#2d2119!important; -webkit-text-fill-color:#2d2119!important;
  text-align:center!important; text-align-last:center!important;
  font-size:18px!important; font-weight:800!important; line-height:1!important;
  -webkit-appearance:none!important; appearance:none!important;
}
#objectivesEditor .objective-card.v566-duration-mode:has(.exercise-edit-panel.open) .exercise-edit-panel.open .edit-grid .v566-duration-field::after{display:none!important;content:none!important;}
#objectivesEditor .objective-card.v566-duration-mode:has(.exercise-edit-panel.open) .exercise-edit-panel.open .edit-grid .v566-duration-field input:focus{
  outline:none!important; border-color:#ff6a1a!important; box-shadow:0 0 0 3px rgba(255,106,26,.12)!important;
}

/* Source consolidée : v572-responsive-all-phones */
/* Le viewport reste la seule largeur de référence, quelle que soit la densité
   d'écran ou la taille d'affichage choisie dans Android/iOS. */
html,body{
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}
body,.app,.tab-page,.section-card,.card,
#objectivesEditor,#objectivesEditor .objective-list,
#objectivesEditor .objective-card,
#objectivesEditor .exercise-edit-panel,
#objectivesEditor .target-compact-zone,
#objectivesEditor .target-compact-grid{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.app{
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
img,svg,canvas{max-width:100%!important}

/* Dans l'éditeur d'objectif, aucun contrôle ne peut imposer une largeur
   supérieure à la carte. */
#objectivesEditor .objective-summary,
#objectivesEditor .objective-main,
#objectivesEditor .objective-actions,
#objectivesEditor .exercise-name-editor,
#objectivesEditor .edit-grid,
#objectivesEditor .measure-slot,
#objectivesEditor .target-values,
#objectivesEditor .series-slot,
#objectivesEditor .charge-goal-simple{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
#objectivesEditor input,
#objectivesEditor select,
#objectivesEditor button{
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* Les trois choix de mesure se partagent toujours la largeur disponible. */
#objectivesEditor .v553-measure-tabs{
  width:100%!important;
  max-width:100%!important;
  grid-template-columns:minmax(0,1fr) minmax(0,.78fr) minmax(0,1.35fr)!important;
}
#objectivesEditor .v553-measure-tab{
  min-width:0!important;
  overflow-wrap:anywhere!important;
}

/* Steppers adaptatifs : l'ancienne largeur fixe pouvait couper le bouton +
   sur certains Samsung avec un viewport CSS étroit ou un zoom d'affichage. */
@media (max-width:480px){
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label:has(.v514-stepper),
  #objectivesEditor .charge-goal-simple{
    grid-template-columns:minmax(0,1fr) minmax(0,156px)!important;
    gap:8px!important;
  }
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper,
  #objectivesEditor .v514-stepper{
    width:100%!important;
    max-width:156px!important;
    grid-template-columns:34px minmax(0,76px) 34px!important;
    gap:6px!important;
    justify-self:end!important;
  }
  #objectivesEditor .v514-stepper button{
    width:34px!important;
    min-width:34px!important;
    height:38px!important;
  }
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper input,
  #objectivesEditor .v514-stepper input{
    width:100%!important;
    min-width:0!important;
    height:38px!important;
    min-height:38px!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }
  #objectivesEditor .exercise-name-editor label,
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-name-editor label{
    grid-template-columns:minmax(0,1fr) minmax(108px,52%)!important;
    gap:8px!important;
  }
}

/* Sur les écrans vraiment étroits, le libellé passe au-dessus du stepper au
   lieu de pousser le bouton + hors de l'écran. */
@media (max-width:350px){
  .app{padding-left:10px!important;padding-right:10px!important}
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-edit-panel{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid{
    margin-left:-10px!important;
    margin-right:-10px!important;
  }
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .edit-grid label:has(.v514-stepper),
  #objectivesEditor .charge-goal-simple{
    grid-template-columns:1fr!important;
    gap:7px!important;
    padding-top:9px!important;
    padding-bottom:9px!important;
  }
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .v514-stepper,
  #objectivesEditor .v514-stepper{
    justify-self:stretch!important;
    max-width:100%!important;
    grid-template-columns:36px minmax(0,1fr) 36px!important;
  }
  #objectivesEditor .exercise-name-editor label,
  #objectivesEditor .objective-card:has(.exercise-edit-panel.open) .exercise-name-editor label{
    grid-template-columns:1fr!important;
    padding-top:9px!important;
    padding-bottom:9px!important;
  }
  #objectivesEditor .v553-measure-tab{
    font-size:11px!important;
    padding-left:2px!important;
    padding-right:2px!important;
  }
}

/* Les textes longs ne doivent jamais élargir leurs cartes. */
#objectivesEditor .objective-title,
#objectivesEditor .objective-target,
#objectivesEditor label,
#objectivesEditor .exercise-meta{
  min-width:0!important;
  overflow-wrap:anywhere;
}

/* Source consolidée : v576-calendar-identical-markers */
/* Les règles responsive de v5.74 donnaient width:auto aux jours puis, sous 480 px,
   border-radius:9px. Selon la largeur CSS du téléphone, le jour courant (31) devenait
   donc un rectangle. On fixe ici la géométrie des cellules, sans toucher aux données. */
#calendarModal .training-calendar-day:not(.empty){
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  max-width:34px!important;
  padding:0!important;
  aspect-ratio:1 / 1!important;
  justify-self:center!important;
  align-self:center!important;
  border-radius:50%!important;
}
#calendarModal .training-calendar-day.today{
  border-radius:50%!important;
  box-shadow:inset 0 0 0 1px #ee6b2f!important;
}
#calendarModal .training-calendar-day.has-session:not(.has-free-session),
#calendarModal .training-calendar-day.has-free-session:not(.has-session),
#calendarModal .training-calendar-day.has-both{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  max-width:30px!important;
  border-radius:50%!important;
}
#calendarModal .training-calendar-day.has-session:not(.has-free-session)::after,
#calendarModal .training-calendar-day.has-free-session:not(.has-session)::after,
#calendarModal .training-calendar-day.has-both::after{
  width:14px!important;
  height:14px!important;
  right:-2px!important;
  bottom:-2px!important;
  border-radius:50%!important;
  font-size:8px!important;
}
@media(max-width:350px){
  #calendarModal .training-calendar-day:not(.empty){
    width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;max-width:32px!important;
    border-radius:50%!important;
  }
  #calendarModal .training-calendar-day.has-session:not(.has-free-session),
  #calendarModal .training-calendar-day.has-free-session:not(.has-session),
  #calendarModal .training-calendar-day.has-both{
    width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important;max-width:27px!important;
  }
}

/* Source consolidée : v577-stability-accessibility */
.import-data-panel{
  display:grid;
  gap:9px;
  margin-top:14px;
  padding:14px;
  border:1px solid #ead7c5;
  border-radius:14px;
  background:#fffaf4;
}
.import-data-panel[hidden]{display:none!important}
.import-data-panel label{font-weight:750;color:#5f493a}
.import-data-panel select,
.import-data-panel input[type="file"]{
  width:100%;
  min-height:44px;
  padding:10px;
  border:1px solid #d9c4b1;
  border-radius:11px;
  background:#fff;
  color:#2d2119;
  font:inherit;
}
:focus-visible{
  outline:3px solid rgba(238,107,47,.45)!important;
  outline-offset:2px!important;
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

/* v5.92 — choix explicite du nombre de séries qui valident l'objectif. */
#objectivesEditor .objective-card .v592-validation-box{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:14px 16px!important;
  overflow:visible!important;
  border-top:1px solid #eee5de!important;
  background:#fffaf6!important;
}
#objectivesEditor .v592-validation-box .v505-compact-stepper{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  width:100%!important;
}
#objectivesEditor .v592-validation-box .v505-validation-help,
#objectivesEditor .v592-validation-box .v505-validation-note{
  overflow-wrap:anywhere;
}
@media(max-width:420px){
  #objectivesEditor .objective-card .v592-validation-box{padding:13px 12px!important}
}

/* v5.94 — panneau Progrès mobile avec anneaux d'évolution. */
#progressGoalsModal .progress-modal-dialog{width:min(660px,100%)}
.home-progress-goals-list{width:100%}
.home-progress-goals-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(82px,.42fr) 74px;
  gap:12px;
  padding:0 4px 9px;
  border-bottom:1px solid #e9e6e2;
  color:#958d87;
  font-size:10px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.home-progress-goals-head span:first-child{grid-column:2;text-align:center}
.home-progress-goals-head span:last-child{grid-column:3;text-align:center}
.home-progress-goal-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(82px,.42fr) 74px;
  align-items:center;
  gap:12px;
  min-height:104px;
  padding:14px 4px;
  border-bottom:1px solid #f0eeeb;
}
.home-progress-goal-row:last-child{border-bottom:0}
.home-progress-goal-copy{min-width:0}
.home-progress-goal-row .exercise{font-size:16px;font-weight:900;color:#2d2119}
.home-progress-goal-row .goal{margin-top:6px;color:#ee6b2f;font-size:13px;font-weight:850}
.home-progress-goal-row .required-sets{margin-top:2px;color:#ee6b2f;font-size:12px;font-weight:750}
.home-progress-goal-row .current{text-align:center;color:#2d2119;font-size:15px;font-weight:900;white-space:nowrap}
.home-progress-goal-row .progress-ring{
  --ring-color:#ee6b2f;
  position:relative;
  width:68px;
  height:68px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:conic-gradient(var(--ring-color) var(--progress),#e9e7e4 0);
}
.home-progress-goal-row .progress-ring::before{
  content:"";
  position:absolute;
  inset:6px;
  border-radius:50%;
  background:#fff;
}
.home-progress-goal-row .progress-ring span{
  position:relative;
  z-index:1;
  color:var(--ring-color);
  font-size:14px;
  font-weight:950;
  white-space:nowrap;
}
.home-progress-goal-row.is-validated .progress-ring{
  --ring-color:#22c55e;
  background:#22c55e;
  box-shadow:0 7px 20px rgba(34,197,94,.28);
}
.home-progress-goal-row.is-validated .progress-ring::before{display:none}
.home-progress-goal-row.is-validated .progress-ring span{
  color:#fff;
  font-size:31px;
  line-height:1;
  font-weight:900;
}
.home-progress-empty{margin:18px 0 4px;color:#8f867f;text-align:center}
@media(max-width:420px){
  #progressGoalsModal.progress-modal{padding:16px}
  #progressGoalsModal .progress-modal-dialog{padding:25px 18px 20px}
  .home-progress-goals-head,
  .home-progress-goal-row{grid-template-columns:minmax(0,1fr) 88px 62px;gap:8px}
  .home-progress-goal-row{min-height:96px;padding:12px 2px}
  .home-progress-goal-row .exercise{font-size:15px}
  .home-progress-goal-row .goal{font-size:12px}
  .home-progress-goal-row .required-sets{font-size:11px}
  .home-progress-goal-row .current{font-size:13px}
  .home-progress-goal-row .progress-ring{width:58px;height:58px}
  .home-progress-goal-row .progress-ring::before{inset:5px}
  .home-progress-goal-row .progress-ring span{font-size:12px}
}

/* v5.99 — surlignage uniforme de toute la période, sans bornes colorées. */
#calendarModal .training-calendar-day.is-in-challenge{
  background:#fff0e6!important;
  color:#4f433b!important;
}
#calendarModal .training-calendar-day.is-in-challenge.selected{
  background:#3b3029!important;
  color:#fff!important;
}
#calendarModal .training-calendar-day.is-in-challenge.today:not(.selected){
  box-shadow:inset 0 0 0 1px #ee6b2f!important;
}
#calendarModal .calendar-period-dot{
  width:12px;
  height:12px;
  flex:0 0 12px;
  display:inline-block;
  border:1px solid #f7cdb4;
  border-radius:50%;
  background:#fff0e6;
}

/* v6.00 — balayage horizontal du calendrier, défilement vertical conservé. */
#calendarModal #trainingCalendar{
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
  will-change:transform,opacity;
}

/* v6.01 — message d’évaluation intégré au langage visuel de l’application. */
.evaluation-required-modal .progress-modal-dialog{
  width:min(440px,100%);
  padding:30px 24px 24px;
  text-align:center;
  border:1px solid #f2d5c4;
}
.evaluation-required-modal .home-section-title{
  margin:14px 32px 8px;
  padding:0;
  font-size:24px;
}
.evaluation-required-modal p{
  margin:0 auto 22px;
  max-width:340px;
  color:#766961;
  font-size:16px;
  line-height:1.5;
}
.evaluation-required-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  margin:0 auto;
  border-radius:50%;
  background:#fff0e6;
  color:#ee6b2f;
  border:2px solid #f4b28d;
  font-size:30px;
  font-weight:900;
}
.evaluation-required-action{
  width:100%;
  min-height:54px;
  margin:0;
}
@media(max-width:480px){
  .evaluation-required-modal{padding:18px}
  .evaluation-required-modal .progress-modal-dialog{padding:28px 20px 20px;border-radius:24px}
  .evaluation-required-modal .home-section-title{font-size:22px}
}

/* v6.04 — récapitulatif unique des records de la séance. */
.personal-records-modal .progress-modal-dialog{
  width:min(500px,100%);
  padding:28px 22px 22px;
  border:1px solid #f2d5c4;
}
.personal-records-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  margin:0 auto 12px;
  border:2px solid #f4b28d;
  border-radius:50%;
  background:#fff0e6;
  font-size:29px;
}
.personal-records-modal .home-section-title{
  margin:0 36px 6px;
  padding:0;
  text-align:center;
  font-size:24px;
}
.personal-records-modal #personalRecordsIntro{
  margin:0 auto 18px;
  color:#766961;
  text-align:center;
  font-size:15px;
  line-height:1.45;
}
.personal-records-list{
  overflow:hidden;
  margin-bottom:18px;
  border:1px solid #ece3dc;
  border-radius:18px;
  background:#fff;
}
.personal-record-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:15px 16px;
  border-bottom:1px solid #eee8e3;
}
.personal-record-row:last-child{border-bottom:0}
.personal-record-copy,.personal-record-result{min-width:0}
.personal-record-name{color:#2d2119;font-size:17px;font-weight:900}
.personal-record-gain{margin-top:3px;color:#8c7b70;font-size:12px;font-weight:700}
.personal-record-result{text-align:right}
.personal-record-value{color:#ee6b2f;font-size:20px;font-weight:950;white-space:nowrap}
.personal-record-goal{
  margin-top:5px;
  color:#198f4a;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.personal-records-action{width:100%;min-height:54px;margin:0}
@media(max-width:480px){
  .personal-records-modal{padding:18px}
  .personal-records-modal .progress-modal-dialog{padding:26px 18px 18px;border-radius:24px}
  .personal-records-modal .home-section-title{font-size:22px}
  .personal-record-row{padding:14px 13px;gap:10px}
  .personal-record-name{font-size:16px}
  .personal-record-value{font-size:18px}
}

/* v6.08 — éditeur autonome conforme aux maquettes validées. */
.v608-clean-editor .v553-measure-tabs,.v608-clean-editor .v606-adaptive-measure,.v608-clean-editor .edit-grid,.v608-clean-editor .target-compact-zone,.v608-clean-editor .goal-options,.v608-clean-editor .v592-validation-box{display:none!important}
.v608-editor{margin:0;padding:20px 0 4px;border-top:1px solid #eee4dc;color:#30241d}
.v608-title{margin:0 0 10px;font-size:17px;font-weight:950}
.v608-title:not(:first-child){margin-top:20px}
.v608-type-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:1px solid #e5dad2;border-radius:16px;background:#fff}
.v608-type-tabs button{min-width:0;min-height:52px;padding:8px 4px;border:0;border-right:1px solid #e5dad2;border-radius:0;background:#fff;color:#352820;font-size:14px;font-weight:900}
.v608-type-tabs button:last-child{border-right:0}
.v608-type-tabs button.active{background:#f56a25;color:#fff;box-shadow:none}
.v608-measure-chips{display:flex;flex-wrap:wrap;gap:10px}
.v608-chip{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:9px 15px;border:1px solid #e3d7cf;border-radius:16px;background:#fff;color:#352820;font-size:14px;font-weight:900}
.v608-chip span{color:#f56a25;font-size:17px}
.v608-chip.active{border-color:#f56a25;background:#f56a25;color:#fff;box-shadow:0 7px 16px rgba(238,107,47,.18)}
.v608-chip.active span{color:#fff}
.v608-target{margin-top:22px}
.v608-target-title{margin-bottom:10px;font-size:16px;font-weight:900}
.v608-large-target{display:grid!important;gap:10px!important;margin:0!important;font-size:16px!important;font-weight:900!important}
.v608-large-input{position:relative;display:block}
.v608-large-input input{width:100%!important;min-height:66px!important;margin:0!important;padding:12px 76px 12px 18px!important;border:2px solid #f56a25!important;border-radius:17px!important;background:#fff!important;color:#2d211a!important;font-size:31px!important;font-weight:950!important;text-align:center!important;box-shadow:none!important}
.v608-large-input b{position:absolute;right:24px;top:50%;transform:translateY(-50%);color:#f56a25;font-size:17px;font-weight:950;pointer-events:none}
.v608-duration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.v608-duration-grid label,.v608-weight-grid label{display:grid!important;gap:8px!important;margin:0!important;color:#8b7a70;font-size:12px!important;font-weight:850!important;text-align:center}
.v608-duration-grid input{width:100%!important;min-height:62px!important;margin:0!important;padding:8px!important;border:2px solid #f56a25!important;border-radius:16px!important;background:#fff!important;color:#30241d!important;font-size:25px!important;font-weight:950!important;text-align:center!important}
.v608-weight-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.v608-weight-grid label{position:relative;color:#30241d;font-size:15px!important;text-align:left}
.v608-weight-grid input{width:100%!important;min-height:62px!important;margin:0!important;padding:10px 54px 10px 14px!important;border:2px solid #f56a25!important;border-radius:16px!important;background:#fff!important;color:#30241d!important;font-size:25px!important;font-weight:950!important;text-align:center!important}
.v608-weight-grid label span{position:absolute;right:16px;bottom:20px;color:#f56a25;font-size:14px;font-weight:900}
.v608-helper{margin:10px 2px 0;color:#8a7a70;font-size:13px;line-height:1.4}
.v608-series-choice{display:flex!important;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 0!important;padding:16px 0 2px!important;border-top:1px solid #eee5df!important;font-size:15px!important;font-weight:900!important}
.v608-series-choice[hidden]{display:none!important}
.v608-series-toggle{appearance:none!important;width:52px!important;height:30px!important;min-height:30px!important;flex:0 0 52px!important;margin:0!important;padding:0!important;border:0!important;border-radius:99px!important;background:#ddd7d3!important;box-shadow:none!important}
.v608-series-toggle:before{content:"";display:block;width:24px;height:24px;margin:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:transform .2s}
.v608-series-toggle:checked{background:#f56a25!important}
.v608-series-toggle:checked:before{transform:translateX(22px)}
.v608-series-panel{margin-top:16px;padding:18px;border:1px solid #e8ddd5;border-radius:18px;background:#fff}
.v608-series-panel.is-disabled{background:#faf8f6}
.v608-panel-title{color:#30241d;font-size:18px;font-weight:950}
.v608-panel-help{margin-top:4px;color:#897a70;font-size:13px;line-height:1.4}
.v608-series-panel.is-disabled .v608-panel-title,.v608-series-panel.is-disabled .v608-panel-help{color:#aaa19b}
.v608-step-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid #eee6e0;font-size:15px;font-weight:900}
.v608-stepper{display:grid;grid-template-columns:46px 78px 46px;align-items:center;gap:8px}
.v608-stepper button{width:46px;height:46px;margin:0;padding:0;border:1px solid #ddd5cf;border-radius:14px;background:#fff;color:#30241d;font-size:25px;font-weight:900;box-shadow:none}
.v608-stepper output{display:flex;align-items:center;justify-content:center;height:46px;border:2px solid #f56a25;border-radius:14px;background:#fff;color:#30241d;font-size:21px;font-weight:950}
@media(max-width:430px){
  .v608-type-tabs button{font-size:12px}
  .v608-chip{flex:1 1 calc(50% - 10px);padding-inline:8px}
  .v608-duration-grid{gap:7px}
  .v608-duration-grid input{font-size:22px}
  .v608-stepper{grid-template-columns:42px 68px 42px;gap:6px}
  .v608-stepper button{width:42px;height:42px}
  .v608-stepper output{height:42px}
}

/* v6.09 — garde-fou final : aucun contrôle historique ne peut réapparaître. */
.objective-card.v608-clean-editor .v609-retired-control,
.objective-card.v608-clean-editor .standard-goal,
.objective-card.v608-clean-editor .charge-goal-simple,
.objective-card.v608-clean-editor .v566-duration-row,
.objective-card.v608-clean-editor .v553-measure-tabs,
.objective-card.v608-clean-editor .v606-adaptive-measure,
.objective-card.v608-clean-editor .target-compact-zone,
.objective-card.v608-clean-editor .edit-grid,
.objective-card.v608-clean-editor .goal-options,
.objective-card.v608-clean-editor .v592-validation-box,
.objective-card.v608-clean-editor .ex-sets{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important}
.objective-card.v608-clean-editor .v608-editor,
.objective-card.v608-clean-editor .v608-editor *{visibility:visible}

/* v6.10 — anneau d’objectif et mini-courbe adaptative. */
.goal-progress-dashboard{margin-top:14px;padding:18px;border:1px solid #eadfd7;border-radius:20px 20px 0 0;background:#fff}
.goal-progress-dashboard[hidden]{display:none!important}
.goal-progress-title{margin-bottom:14px;color:#30241d;font-size:19px;font-weight:950}
.goal-progress-main{display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:14px}
.goal-progress-ring{--goal-progress:0%;position:relative;display:grid;place-items:center;width:min(230px,100%);aspect-ratio:1;margin:auto;border-radius:50%;background:conic-gradient(var(--goal-objective-color,#f56a25) var(--goal-progress),color-mix(in srgb,var(--goal-objective-color,#f56a25) 14%,white) 0);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--goal-objective-color,#f56a25) 12%,transparent)}
.goal-progress-ring:before{content:"";position:absolute;inset:21px;border-radius:50%;background:#fff}
.goal-progress-ring.is-complete{background:conic-gradient(#22c55e 100%,#e8f8ed 0)}
.goal-progress-ring-center{position:relative;z-index:1;display:grid;gap:4px;text-align:center}
.goal-progress-ring-center strong{color:var(--goal-objective-color,#f56a25);font-size:42px;font-weight:950;line-height:1}
.goal-progress-ring.is-complete .goal-progress-ring-center strong{color:#159447}
.goal-progress-ring-center span{max-width:150px;color:#49382f;font-size:13px;font-weight:850;line-height:1.35}
.goal-progress-remaining{display:grid;align-content:center;justify-items:center;text-align:center}
.goal-progress-remaining span{color:#7e6f66;font-size:13px;font-weight:800}
.goal-progress-remaining strong{margin:2px 0;color:var(--goal-objective-color,#f56a25);font-size:34px;font-weight:950;line-height:1}
.goal-progress-remaining small{color:#7e6f66;font-size:12px;font-weight:750;line-height:1.25}
.mini-history-title{margin-top:17px;padding-top:16px;border-top:1px dashed #eadfd7;color:#30241d;font-size:15px;font-weight:900}
#progressionCard #chart{display:block!important;width:100%!important;height:190px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0 0 20px 20px!important;background:#fff!important;box-shadow:inset 0 -1px #eadfd7,inset 1px 0 #eadfd7,inset -1px 0 #eadfd7;box-sizing:border-box!important}
#progressionCard .chart-session-caption{margin-top:7px!important;text-align:center!important}
@media(max-width:430px){
  .goal-progress-dashboard{padding:16px 13px}
  .goal-progress-main{grid-template-columns:minmax(0,1fr) 88px;gap:8px}
  .goal-progress-ring{width:min(200px,100%)}
  .goal-progress-ring:before{inset:18px}
  .goal-progress-ring-center strong{font-size:36px}
  .goal-progress-remaining strong{font-size:29px}
}
/* v6.13 — icône Objectif Sport sans recadrage circulaire */
.reference-logo{
  border-radius:22% !important;
  overflow:hidden !important;
  background:#fff8f1 !important;
}
.reference-logo img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  transform:none !important;
}
/* v6.14 — signature bicolore Objectif Sport dans la barre supérieure */
.topbar-title{
  display:flex;
  align-items:baseline;
  gap:.22em;
  font-family:ui-rounded,"Arial Rounded MT Bold","Trebuchet MS",Arial,sans-serif;
  font-weight:900;
  letter-spacing:-.65px;
  line-height:1;
}
.topbar-title-objectif{color:#2b211c;}
.topbar-title-sport{color:#f56a25;}
/* v6.16 — rythme d’entraînement et journées planifiées */
.training-rhythm-settings{margin-top:14px;padding:15px;border:1px solid #e8ded7;border-radius:16px;background:#fff}
.training-rhythm-toggle-row{display:flex!important;align-items:center;justify-content:space-between;gap:14px;margin:0!important}
.training-rhythm-toggle-row span{display:grid;gap:3px;color:#342923}
.training-rhythm-toggle-row strong{font-size:15px;font-weight:900}
.training-rhythm-toggle-row small{color:#85776e;font-size:11px;line-height:1.35}
.training-rhythm-toggle-row input{appearance:none;width:52px!important;height:30px!important;min-height:30px!important;flex:0 0 52px;margin:0!important;padding:0!important;border:0!important;border-radius:99px!important;background:#ddd7d3!important}
.training-rhythm-toggle-row input::before{content:"";display:block;width:24px;height:24px;margin:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:transform .2s}
.training-rhythm-toggle-row input:checked{background:#8b5fc2!important}
.training-rhythm-toggle-row input:checked::before{transform:translateX(22px)}
.training-rhythm-controls{display:grid;grid-template-columns:minmax(0,1fr) 42px 58px 42px auto;align-items:center;gap:7px;margin-top:14px;padding-top:14px;border-top:1px solid #eee7e1;color:#4d423b;font-size:12px;font-weight:800}
.training-rhythm-controls button{width:42px;height:42px;margin:0;padding:0;border:1px solid #d9cedf;border-radius:12px;background:#fff;color:#4b3568;font-size:22px;font-weight:900}
.training-rhythm-controls input{width:58px!important;height:42px!important;min-height:42px!important;margin:0!important;padding:5px!important;border:2px solid #8b5fc2!important;border-radius:12px!important;background:#fff!important;color:#342540!important;text-align:center!important;font-size:18px!important;font-weight:900!important}
.training-rhythm-controls.is-disabled{opacity:.48}
.training-rhythm-preview{margin-top:9px;color:#745893;font-size:11px;font-weight:750}
.training-planning-card .training-rhythm-settings{margin-top:16px}
.training-planning-body{transition:opacity .2s}
.training-planning-body.is-disabled{opacity:.42;pointer-events:none}
.training-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:15px;border:1px solid #ded2e8;border-radius:14px;overflow:hidden}
.training-mode-tabs button{min-height:45px;margin:0;border:0;border-radius:0;background:#fff;color:#65576d;font-size:13px;font-weight:850}
.training-mode-tabs button+button{border-left:1px solid #e6dceb}
.training-mode-tabs button.active{background:#8b5fc2;color:#fff}
.training-weekdays{display:none;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:15px}
.training-weekdays.is-visible{display:grid}
.training-weekdays button{aspect-ratio:1/1;min-width:0;margin:0;padding:0;border:1px solid #ded2e8;border-radius:50%;background:#fff;color:#66586c;font-size:11px;font-weight:850}
.training-weekdays button.active{border-color:#8b5fc2;background:#8b5fc2;color:#fff;box-shadow:0 5px 12px rgba(139,95,194,.24)}
.training-rhythm-controls{display:none}
.training-rhythm-controls.is-visible{display:grid}
.training-planning-card:not(.editing) .training-rhythm-toggle-row input{pointer-events:none}
.training-planning-card:not(.editing) .training-mode-tabs button,
.training-planning-card:not(.editing) .training-weekdays button,
.training-planning-card:not(.editing) .training-rhythm-controls button{pointer-events:none}
.calendar-planned-dot{width:11px;height:11px;display:inline-block;border:1px solid #aa8bd4;border-radius:4px;background:#f1e9ff}
.training-calendar-day.is-training-planned{border-color:#aa8bd4!important}
.training-calendar-day.is-training-planned:not(.has-session):not(.has-free-session):not(.selected){background:#f1e9ff!important;color:#563d73!important}
#calendarModal .training-calendar-day.is-in-challenge.is-training-planned:not(.has-session):not(.has-free-session):not(.selected){background:#f1e9ff!important;color:#563d73!important}
@media(max-width:420px){
  .training-rhythm-controls{grid-template-columns:1fr 40px 54px 40px auto;gap:5px}
  .training-rhythm-controls button{width:40px;height:40px}
  .training-rhythm-controls input{width:54px!important;height:40px!important;min-height:40px!important}
  .training-weekdays{gap:4px}
  .training-weekdays button{font-size:10px}
}
/* v6.18 — détails des objectifs multiples dans le calendrier */
.calendar-objective-sessions{display:grid;gap:10px;}
.calendar-objective-sessions>div+div{border-top:1px solid #eadfd5;padding-top:10px;}
.calendar-extra-session{color:#f56a25;font-weight:800;}

/* v6.19 — création des exercices intégrée à Mes objectifs */
.objective-content-divider{height:1px;background:#eadfd5;margin:24px 0;}
.programs-settings-card .settings-objective-section,
.programs-settings-card .settings-exercises-section{margin-top:0;}
.programs-settings-card .settings-exercises-section>h3,
.programs-settings-card .settings-objective-section>h3{font-size:1.25rem;margin-bottom:8px;}

/* v6.20 — exercices gérés dans leur carte d’objectif */
.multi-objective-description-label{display:block;margin-top:16px;font-weight:800;color:#44372f;}
.multi-objective-description{width:100%;min-height:88px;margin-top:8px;padding:14px;border:1px solid #dfd5cc;border-radius:16px;background:#fff;resize:vertical;font:inherit;font-weight:500;color:#302720;}
.multi-objective-description[readonly]{background:#f8f7f6;color:#766b63;}
.multi-objective-collapse-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;width:100%;padding:8px 4px;border:0;background:transparent;color:#302720;font:inherit;font-size:1.13rem;font-weight:900;text-align:left;}
.multi-objective-collapse-toggle span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.multi-objective-chevron{font-size:1.45rem;line-height:1;transition:transform .2s ease;}
.multi-objective-card.is-collapsed .multi-objective-chevron{transform:rotate(-90deg);}
.multi-objective-card.is-collapsed .multi-objective-card-body{display:none;}
.multi-objective-card.is-collapsed{padding-bottom:14px;}
.multi-objective-block-head{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:4px 2px;border:0;background:transparent;text-align:left;color:#302720;font:inherit;}
.multi-objective-block-copy{display:grid;gap:5px;min-width:0;}
.multi-objective-block-copy strong{font-size:1.15rem;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.multi-objective-block-copy small{color:#8d8179;font-size:.84rem;font-weight:500;}
.multi-objective-block-action{flex:none;color:#a05a32;font-size:.82rem;font-weight:850;}
.multi-objective-card.is-collapsed{padding:20px 20px 20px 24px;min-height:102px;display:flex;align-items:center;}
.multi-objective-card:not(.is-collapsed)>.multi-objective-block-head{padding:4px 4px 16px;border-bottom:1px solid #eadfd5;margin-bottom:16px;}
.multi-objective-card-head{grid-template-columns:minmax(0,1fr)!important;align-items:start!important;}
.multi-objective-remove-bottom{width:100%;margin-top:16px;min-height:46px;border:1px solid #e6aaa5;border-radius:14px;background:#fff;color:#c83d35;font:inherit;font-weight:850;}
.multi-objective-remove-bottom[hidden]{display:none!important;}
.objective-exercise-manager{margin:18px -10px -12px;padding:18px 10px 4px;border:0;border-top:1px solid #eadfd5;border-radius:0;background:transparent;}
.objective-exercise-manager-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px;}
.objective-exercise-manager-head h3{margin:2px 0 0;}
.objective-exercise-manager-close{width:42px;height:42px;min-width:42px;padding:0;border-radius:50%;font-size:1.5rem;line-height:1;}
.objective-exercise-manager[hidden]{display:none!important;}
.objective-manager-empty{padding:12px;border:1px dashed #ddcfc3;border-radius:14px;background:#fff;}
.chart-objective-tabs{display:flex;flex-wrap:wrap;gap:10px;padding:2px 0 12px;overflow:visible;}
.chart-objective-tabs button{flex:1 1 145px;min-width:0;min-height:48px;padding:9px 14px;border:1px solid #dfd3c8;border-radius:999px;background:#fffaf5;color:#796d64;font:inherit;font-weight:800;white-space:normal;line-height:1.15;text-align:center;}
.chart-objective-tabs button.active{border-color:var(--chart-objective-color,#f56a25);background:var(--chart-objective-color,#f56a25);color:#fff;box-shadow:0 7px 16px color-mix(in srgb,var(--chart-objective-color,#f56a25) 24%,transparent);}

/* v6.40 — repères sobres des objectifs dans le calendrier. */
.calendar-status-legend,.calendar-objective-legend{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px}
.calendar-objective-legend{padding-top:8px;border-top:1px solid #eee7e1}
.calendar-objective-legend::before{content:"Objectifs prévus";flex:0 0 100%;color:#80736a;font-weight:850}
.calendar-objective-dot{width:10px;height:10px;display:inline-block;flex:0 0 10px;border-radius:50%;background:var(--calendar-objective-color,#f56a25)}
.training-calendar-day.is-training-planned{position:relative}
.training-calendar-day.is-training-planned:not(.has-session):not(.has-free-session):not(.selected),
#calendarModal .training-calendar-day.is-in-challenge.is-training-planned:not(.has-session):not(.has-free-session):not(.selected){background:#fff0e6!important;color:#4f433b!important;border-color:transparent!important}
#calendarModal .training-calendar-day.is-training-planned.today:not(.selected){border-color:#ee6b2f!important;box-shadow:inset 0 0 0 1px #ee6b2f!important}
.calendar-planned-markers{position:absolute;left:50%;bottom:3px;display:flex;align-items:center;justify-content:center;gap:2px;transform:translateX(-50%);z-index:2}
.calendar-planned-markers i{display:block;width:4px;height:4px;border-radius:50%;background:var(--calendar-objective-color,#f56a25);box-shadow:0 0 0 1px rgba(255,255,255,.85)}
#calendarModal .training-calendar-day.is-training-planned::before{content:none!important}
#progressionCard .chart-tab.active{background:var(--chart-objective-color,#f56a25);border-color:var(--chart-objective-color,#f56a25);}
/* v6.40 — objectifs directement modifiables et fenêtre défilable */
.objective-exercise-manager{margin-top:30px!important;padding-top:24px!important;}
.programs-settings-card .multi-objective-name-editor,
.programs-settings-card .multi-objective-description-label,
.programs-settings-card .multi-objective-subtitle{font-size:1rem!important;font-weight:800!important;line-height:1.3;color:#44372f!important;}
.multi-objective-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 0}
.multi-objective-duration-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.multi-objective-duration-options button{min-height:42px;margin:0;padding:8px;border:1px solid #e1d6ce;border-radius:12px;background:#fff;color:#6f6259;font:inherit;font-size:.82rem;font-weight:850}
.multi-objective-duration-options button:active{border-color:var(--objective-color);background:color-mix(in srgb,var(--objective-color) 10%,white)}
.multi-objective-duration-options button.active{border-color:var(--objective-color);background:var(--objective-color);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--objective-color) 22%,transparent)}
.multi-objective-duration-options .multi-objective-custom-period{grid-column:1/-1}
.multi-objective-dates label{display:grid;gap:7px;color:#7d7068;font-size:.78rem;font-weight:800}
.multi-objective-dates input{width:100%;min-width:0;min-height:48px;margin:0;padding:10px;border:1px solid #ddd4ce;border-radius:13px;background:#fff;color:#44372f;font:inherit;font-weight:750}
.multi-objective-duration-summary{margin:8px 0 18px;padding:9px 12px;border-radius:11px;background:#fff8f2;color:#a05a32;font-size:.82rem;font-weight:850;text-align:center}
@media(max-width:380px){.multi-objective-dates{grid-template-columns:1fr}}
.home-objective-selector{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.home-objective-selector[hidden]{display:none!important}
.home-objective-selector button{flex:1 1 120px;min-width:0;min-height:42px;padding:8px 11px;border:1px solid #e2d7ce;border-radius:13px;background:#fff;color:#74675f;font:inherit;font-size:.82rem;font-weight:850;line-height:1.15}
.home-objective-selector button.active{border-color:var(--objective-color);background:color-mix(in srgb,var(--objective-color) 12%,white);color:#382f29;box-shadow:inset 0 -3px 0 var(--objective-color)}

/* v6.41 — fenêtre d’exercice plus compacte et entièrement défilable. */
body.exercise-modal-open{overflow:hidden!important;overscroll-behavior:none}
.exercise-editor-backdrop{position:fixed;inset:0;z-index:11990;background:rgba(38,29,24,.48);backdrop-filter:blur(3px)}
.exercise-editor-backdrop[hidden]{display:none!important}
#objectivesEditor .exercise-edit-panel.open{display:block!important;position:fixed!important;z-index:12000;left:50%!important;top:50%!important;width:min(590px,calc(100vw - 36px))!important;max-height:min(88dvh,800px)!important;margin:0!important;padding:0 18px 16px!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important;scrollbar-width:thin;scrollbar-color:#efb28f transparent;transform:translate(-50%,-50%)!important;border:1px solid rgba(238,107,47,.18)!important;border-radius:22px!important;background:#fff!important;box-shadow:0 20px 55px rgba(32,22,17,.28)!important;overscroll-behavior:contain}
.exercise-modal-head{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -18px 14px;padding:14px 18px 12px;border-bottom:1px solid #f1d8c8;background:linear-gradient(180deg,#fff5ed 0%,#fff 100%)}
.exercise-modal-head strong{font-size:1.2rem;font-weight:900;color:#332922}
.exercise-modal-close{width:42px;height:42px;flex:0 0 42px;margin:0;padding:0;border:0;border-radius:50%;background:#f5f1ee;color:#332922;font-size:1.7rem;font-weight:700;line-height:1}
#objectivesEditor .exercise-edit-panel.open .exercise-inline-save-wrap{position:sticky;bottom:-16px;z-index:4;margin:18px -18px -16px;padding:12px 18px 16px;border-top:1px solid #eee5de;background:#fff;box-shadow:0 -10px 22px rgba(52,38,29,.06)}
@media(max-width:480px){#objectivesEditor .exercise-edit-panel.open{top:20px!important;bottom:20px!important;width:calc(100vw - 32px)!important;max-height:none!important;transform:translateX(-50%)!important;border-radius:20px!important}.exercise-modal-head{padding-top:12px}}
.programs-settings-card .multi-objective-weekdays{margin-top:10px;margin-bottom:4px;padding-bottom:4px;}
.programs-settings-card #saveCombinedObjectivesBtn{width:100%;}

/* v6.42 — sous-blocs repliables dans chaque objectif. */
.objective-subblock{margin-top:14px;border:1px solid #e4d9d0;border-radius:16px;background:#fff;overflow:hidden}
.objective-subblock-head{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:72px;margin:0;padding:14px 16px;border:0;background:#fff;color:#342b25;font:inherit;text-align:left}
.objective-subblock-head>span:first-child{display:grid;gap:4px;min-width:0}
.objective-subblock-head strong{font-size:1rem;font-weight:900;line-height:1.2}
.objective-subblock-head small{overflow:hidden;color:#897c73;font-size:.78rem;font-weight:650;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.objective-subblock-action{flex:none;color:#a05a32;font-size:.8rem;font-weight:850}
.objective-subblock-body{padding:2px 16px 16px;border-top:1px solid #eee4dc}
.objective-subblock.is-collapsed .objective-subblock-body{display:none}
.objective-subblock:not(.is-collapsed) .objective-subblock-head{background:#fff9f4}
.objective-subblock .objective-exercise-manager{margin:0!important;padding:14px 0 0!important;border:0!important}
.objective-subblock .objective-exercise-manager-head{display:none}
.objective-subblock .multi-objective-card-foot{margin-bottom:0}
@media(max-width:420px){.objective-subblock-head{min-height:66px;padding:12px 13px}.objective-subblock-body{padding:2px 12px 14px}.objective-subblock-action{font-size:.76rem}}

/* v6.43 — période propre à chaque objectif. */
.objective-duration-help{margin:12px 0 4px;color:#85776e;font-size:.78rem;font-weight:600;line-height:1.35}

/* v6.46 — descriptif sobre, aéré et sans pictogramme. */
.home-objective-description{display:block;margin:14px 0 24px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--home-objective-color,#f56a25) 14%,#eadfd7);border-radius:16px;background:color-mix(in srgb,var(--home-objective-color,#f56a25) 6%,white);color:#62554d;font-size:.84rem;font-weight:650;line-height:1.45;box-shadow:0 5px 14px rgba(63,43,31,.04)}
.home-objective-description[hidden]{display:none!important}

/* v0.8 — la confirmation de suppression d’un exercice doit toujours passer au-dessus de la fiche d’édition. */
#appDialogModal.app-dialog-modal{z-index:13000!important;}
#appDialogModal.app-dialog-modal .progress-modal-dialog{z-index:13001!important;}

/* v0.13 — Clarifie la différence entre performance du jour et régularité du challenge. */
.home-challenge-adherence{
  display:block;
  margin-top:8px;
  max-width:150px;
  font-size:11px!important;
  line-height:1.25!important;
  font-weight:800!important;
  text-transform:none!important;
  letter-spacing:0!important;
  color:#7b736d!important;
}
.goal-progress-context{
  margin:16px 0 18px;
  padding:12px 14px;
  border-radius:14px;
  background:color-mix(in srgb,var(--goal-objective-color,#f56a25) 9%, white);
  border:1px solid color-mix(in srgb,var(--goal-objective-color,#f56a25) 22%, #e8dfd8);
  color:#5f5751;
  font-size:14px;
  line-height:1.35;
  font-weight:800;
}

/* v0.17 — calendrier de saisie contextualisé par objectif */
#sessionDateField{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px}
.session-date-picker-btn{width:100%;min-height:64px;border:2px solid #f2b9a2;border-radius:18px;background:#fff;color:#2d2824;font:inherit;font-size:18px;text-align:left;padding:0 22px;box-shadow:0 0 0 4px rgba(245,106,37,.08)}
.session-date-picker-dialog{max-width:560px;padding:22px}
.session-date-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.session-date-picker-head .modal-close-btn{width:48px;height:48px;border:0;border-radius:50%;font-size:32px;font-weight:800;background:#f5f2ef;color:#2d2824}
.session-date-picker-nav{margin-bottom:12px}
.session-date-picker-grid .training-calendar-day{position:relative}
.session-date-picker-grid .training-calendar-day.is-outside-objective{opacity:.28;pointer-events:none}
.session-date-picker-grid .training-calendar-day.has-objective-session::after{content:"";position:absolute;left:50%;bottom:4px;transform:translateX(-50%);width:7px;height:7px;border-radius:50%;background:var(--session-objective-color,#f56a25)}
.session-date-picker-grid .training-calendar-day.selected{outline:2px solid var(--session-objective-color,#f56a25);outline-offset:1px}
.session-date-picker-grid .training-calendar-day.selected .calendar-day-number{font-weight:800}
.session-date-picker-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:14px;color:#7f756d;font-size:13px}
.session-date-picker-legend span{display:inline-flex;align-items:center;gap:7px}
.session-date-marker{width:8px;height:8px;border-radius:50%;background:var(--session-objective-color,#f56a25)}
.session-date-picker-range-note{margin-left:auto}


/* v0.22 — filtre Historique par objectif */
.history-objective-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 20px}
.history-objective-filter button{min-height:52px;border:1px solid #ded5ce;border-radius:22px;background:#fffaf6;color:#756b64;font:inherit;font-weight:800;padding:10px 14px;box-shadow:none}
.history-objective-filter button.active{background:var(--objective-color,#f56a25);border-color:var(--objective-color,#f56a25);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--objective-color,#f56a25) 22%,transparent)}
.history-objective-filter button:last-child:nth-child(odd){grid-column:1/-1}
.history-objective-filter .history-free-filter.active{--objective-color:#2e98c9}


/* v0.23 — la couleur de l’objectif sélectionné devient l’identité visuelle de la séance.
   Le vert reste exclusivement réservé aux états terminés / validés. */
#tab-seance{--session-objective-color:#f56a25}
#tab-seance .session-date-picker-btn{
  border-color:color-mix(in srgb,var(--session-objective-color) 52%,#eadfd8)!important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--session-objective-color) 10%,transparent)!important;
}
#tab-seance .session-date-picker-btn:focus-visible{
  outline:2px solid var(--session-objective-color)!important;
  outline-offset:2px!important;
}
#tab-seance .session-type-btn[data-session-type="objective"].active{
  background:color-mix(in srgb,var(--session-objective-color) 10%,white)!important;
  color:var(--session-objective-color)!important;
  box-shadow:0 2px 8px color-mix(in srgb,var(--session-objective-color) 15%,transparent)!important;
}
#tab-seance #dailyLoadCard:not(.load-complete){
  border-color:color-mix(in srgb,var(--session-objective-color) 24%,#eadfd7)!important;
}
#tab-seance #dailyLoadCard:not(.load-complete)::before{
  background:var(--session-objective-color)!important;
}
#tab-seance #dailyLoadCard:not(.load-complete) .session-load-icon{
  border-color:var(--session-objective-color)!important;
  color:var(--session-objective-color)!important;
}
#tab-seance #dailyLoadCard:not(.load-complete) .session-load-status{
  border-color:color-mix(in srgb,var(--session-objective-color) 25%,#e5ddd7)!important;
  background:color-mix(in srgb,var(--session-objective-color) 6%,white)!important;
  color:var(--session-objective-color)!important;
}
#tab-seance #dailyLoadCard:not(.load-complete) .session-load-arrow{
  color:var(--session-objective-color)!important;
}
#tab-seance #workoutFields .workout-exercise:not(.is-completed),
#tab-seance .saved-workout .workout-exercise:not(.is-completed){
  border-color:color-mix(in srgb,var(--session-objective-color) 28%,#eadfd8)!important;
}
#tab-seance #workoutFields .workout-exercise:not(.is-completed)::before,
#tab-seance .saved-workout .workout-exercise:not(.is-completed)::before{
  background:var(--session-objective-color)!important;
}
#tab-seance #workoutFields .workout-exercise:not(.is-completed) .workout-goal-badge:not(.reached){
  border-color:color-mix(in srgb,var(--session-objective-color) 22%,#e8e4e0)!important;
  background:color-mix(in srgb,var(--session-objective-color) 6%,white)!important;
  color:var(--session-objective-color)!important;
}
#tab-seance #workoutFields .workout-exercise.is-completed,
#tab-seance .saved-workout .workout-exercise.is-completed{
  border-color:#cfeedd!important;
}
#tab-seance #workoutFields .workout-exercise.is-completed::before,
#tab-seance .saved-workout .workout-exercise.is-completed::before{
  background:#18c76f!important;
}

/* v0.28 — alignement identique avant/après enregistrement */
#tab-seance .saved-workout{
  padding:0!important;
  gap:12px!important;
}
#tab-seance .saved-workout .workout-exercise,
#tab-seance .saved-workout .workout-exercise:first-child,
#tab-seance .saved-workout .workout-exercise:last-child{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:14px 14px 14px 18px!important;
  box-sizing:border-box!important;
}
#tab-seance .saved-workout .workout-exercise.is-completed::before{
  width:5px!important;
  border-radius:16px 0 0 16px!important;
}

/* v0.31 — calendrier : cercle vide = planifié, cercle plein = réalisé. */
#calendarModal .training-calendar-day:not(.empty){position:relative;background:#fff8f1!important;border:1px solid transparent!important;box-shadow:none!important;overflow:visible}
#calendarModal .training-calendar-day.today:not(.selected){border:2px solid #238ee8!important;box-shadow:0 0 0 2px rgba(35,142,232,.10)!important}
#calendarModal .training-calendar-day.selected{outline:2px solid rgba(35,142,232,.28)!important;outline-offset:1px}
#calendarModal .training-calendar-day.has-session,
#calendarModal .training-calendar-day.has-free-session,
#calendarModal .training-calendar-day.has-both,
#calendarModal .training-calendar-day.is-training-planned,
#calendarModal .training-calendar-day.is-in-challenge{background:#fff8f1!important;color:#332a25!important;border-color:transparent!important;box-shadow:none!important}
#calendarModal .training-calendar-day.has-session::after,
#calendarModal .training-calendar-day.has-free-session::after,
#calendarModal .training-calendar-day.has-both::after,
#calendarModal .training-calendar-day.is-training-planned::before{content:none!important;display:none!important}
#calendarModal .calendar-day-status-markers{position:absolute;left:50%;bottom:3px;display:flex;align-items:center;justify-content:center;gap:3px;transform:translateX(-50%);z-index:3;white-space:nowrap}
#calendarModal .calendar-objective-status-marker{display:block;width:7px;height:7px;border:2px solid var(--calendar-objective-color,#f56a25);border-radius:50%;background:transparent;box-sizing:border-box}
#calendarModal .calendar-objective-status-marker.is-done{background:var(--calendar-objective-color,#f56a25)}
#calendarModal .calendar-free-status-marker{display:block;width:7px;height:7px;border:2px solid #2c8ed6;border-radius:50%;background:#2c8ed6;box-sizing:border-box}
#calendarModal .calendar-objective-legend{padding-top:8px;border-top:1px solid #eee7e1}
#calendarModal .calendar-objective-legend::before{content:"Objectifs"}
#calendarModal .calendar-objective-dot{background:transparent;border:2px solid var(--calendar-objective-color,#f56a25);box-sizing:border-box}
#calendarModal .calendar-objective-legend span::after{content:" · vide = planifié · plein = réalisé";font-size:.78em;font-weight:650;color:#9a8e85}
#calendarModal .calendar-status-legend span:first-child{display:none}
#calendarModal .calendar-status-legend span:nth-child(2) .calendar-dot.free{background:#2c8ed6!important;border-color:#2c8ed6!important}
#calendarModal .calendar-status-legend span:nth-child(2){font-weight:750}
#calendarModal .calendar-status-legend span:nth-child(2)::after{content:" réalisée";font-weight:500}
#calendarModal .calendar-status-legend span:nth-child(3){display:none}
#calendarModal .calendar-status-legend::after{content:"◯ Aujourd’hui";display:inline-flex;align-items:center;color:#238ee8;font-weight:750}


/* v0.31 — calendrier visuel fidèle à la maquette validée.
   Une case ronde lisible, objectifs en anneaux/points, séance libre bleue et aujourd'hui en anneau bleu. */
#calendarModal .calendar-modal-dialog{width:min(690px,calc(100vw - 16px))!important;padding:16px!important;border-radius:26px!important}
#calendarModal .home-training-calendar{padding:14px 12px 12px!important;overflow:visible!important}
#calendarModal .training-calendar-head{margin-bottom:14px!important}
#calendarModal .training-calendar-grid{gap:7px 5px!important;align-items:start!important}
#calendarModal .training-calendar-weekday{font-size:11px!important;font-weight:800!important;color:#8b837d!important;padding-bottom:2px!important}
#calendarModal .training-calendar-day:not(.empty){
  width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;
  padding:5px 3px 4px!important;border-radius:50%!important;background:#fff6ee!important;border:2px solid transparent!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:2px!important;
  color:#2f2925!important;box-shadow:none!important;overflow:visible!important;position:relative!important;
}
#calendarModal .training-calendar-day .calendar-day-number{font-size:14px!important;font-weight:850!important;line-height:18px!important;margin:0!important;position:relative!important;z-index:2!important}
#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{
  width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;background:#fff6ee!important;border-radius:50%!important;
}
#calendarModal .training-calendar-day.today,#calendarModal .training-calendar-day.today.selected,#calendarModal .training-calendar-day.today:not(.selected){
  border:3px solid #238ee8!important;box-shadow:0 0 0 2px rgba(35,142,232,.11)!important;background:#fffaf6!important;outline:none!important;
}
#calendarModal .training-calendar-day.selected:not(.today){
  border:2px solid #d9cfc8!important;outline:2px solid rgba(35,142,232,.18)!important;outline-offset:1px!important;
}
#calendarModal .calendar-day-status-markers{
  position:static!important;left:auto!important;bottom:auto!important;transform:none!important;display:flex!important;align-items:center!important;justify-content:center!important;
  gap:3px!important;min-height:11px!important;max-width:42px!important;white-space:nowrap!important;z-index:3!important;
}
#calendarModal .calendar-objective-status-marker,#calendarModal .calendar-free-status-marker{
  width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;border-width:2px!important;border-radius:50%!important;box-sizing:border-box!important;display:block!important;
}
#calendarModal .calendar-objective-status-marker{border-color:var(--calendar-objective-color,#f56a25)!important;background:transparent!important}
#calendarModal .calendar-objective-status-marker.is-done{background:var(--calendar-objective-color,#f56a25)!important}
#calendarModal .calendar-free-status-marker{border-color:#2c8ed6!important;background:#2c8ed6!important}
#calendarModal .calendar-legend{
  display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin-top:14px!important;padding-top:12px!important;border-top:1px solid #eee7e1!important;font-size:11px!important;line-height:1.3!important;
}
#calendarModal .calendar-status-legend{display:flex!important;flex-wrap:wrap!important;gap:10px 18px!important;align-items:center!important}
#calendarModal .calendar-status-legend span{display:inline-flex!important;align-items:center!important;gap:7px!important;font-weight:750!important;color:#6f665f!important}
#calendarModal .calendar-today-ring{width:14px;height:14px;border:2px solid #238ee8;border-radius:50%;display:inline-block;box-sizing:border-box}
#calendarModal .calendar-free-legend .calendar-free-status-marker{position:static!important;transform:none!important}
#calendarModal .calendar-objective-legend{display:grid!important;gap:6px!important;padding-top:10px!important;border-top:1px solid #eee7e1!important}
#calendarModal .calendar-objective-legend::before{content:none!important}
#calendarModal .calendar-objective-legend-title{font-size:11px;font-weight:900;color:#776c64}
#calendarModal .calendar-objective-legend-code{font-size:10px;font-weight:650;color:#9a8e85}
#calendarModal .calendar-objective-legend-list{display:flex;flex-wrap:wrap;gap:8px 15px}
#calendarModal .calendar-objective-legend-item{display:inline-flex;align-items:center;gap:7px;color:#756b64;font-weight:700}
#calendarModal .calendar-objective-legend-item::after{content:none!important}
#calendarModal .calendar-objective-legend-markers{display:inline-flex;gap:3px;align-items:center}
#calendarModal .calendar-objective-legend-markers .calendar-objective-status-marker{position:static!important;transform:none!important}
#calendarModal .training-calendar-summary{margin-top:10px!important;padding:11px 13px!important;border-radius:14px!important;background:#faf8f6!important;font-size:11px!important;color:#7e746d!important}
@media(max-width:480px){
  #calendarModal .calendar-modal-dialog{padding:10px!important}
  #calendarModal .home-training-calendar{padding:11px 7px 9px!important}
  #calendarModal .training-calendar-head{gap:8px!important;padding-right:40px!important}
  #calendarModal .training-calendar-grid{gap:6px 2px!important}
  #calendarModal .training-calendar-day:not(.empty),#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;max-width:42px!important;padding:4px 2px 3px!important;
  }
  #calendarModal .training-calendar-day .calendar-day-number{font-size:13px!important;line-height:16px!important}
  #calendarModal .calendar-objective-status-marker,#calendarModal .calendar-free-status-marker{width:9px!important;height:9px!important;min-width:9px!important;min-height:9px!important}
  #calendarModal .calendar-day-status-markers{gap:2px!important;max-width:38px!important}
}
@media(max-width:360px){
  #calendarModal .training-calendar-day:not(.empty),#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{
    width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;max-width:38px!important;
  }
  #calendarModal .calendar-objective-status-marker,#calendarModal .calendar-free-status-marker{width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important}
}

/* v0.32 — calendrier conforme à la maquette de référence */
#calendarModal .calendar-modal-dialog{width:min(720px,calc(100vw - 20px))!important;padding:18px!important;border-radius:28px!important}
#calendarModal .home-training-calendar{padding:16px 14px 14px!important}
#calendarModal .training-calendar-grid{grid-template-columns:repeat(7,1fr)!important;gap:8px 5px!important}
#calendarModal .training-calendar-day:not(.empty),
#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{
 width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;max-width:52px!important;margin:auto!important;padding:5px 2px!important;border-radius:50%!important;background:#fff6ee!important;border:3px solid transparent!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:3px!important;box-shadow:none!important;outline:none!important;overflow:visible!important
}
#calendarModal .training-calendar-day .calendar-day-number{font-size:15px!important;font-weight:900!important;line-height:19px!important}
#calendarModal .calendar-day-status-markers{position:static!important;transform:none!important;display:flex!important;justify-content:center!important;align-items:center!important;gap:4px!important;min-height:13px!important;max-width:48px!important}
#calendarModal .calendar-objective-status-marker,#calendarModal .calendar-free-status-marker{width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;border-radius:50%!important;border-width:3px!important;box-sizing:border-box!important;display:inline-block!important;background:transparent!important}
#calendarModal .calendar-objective-status-marker{border-color:var(--calendar-objective-color,#f56a25)!important}
#calendarModal .calendar-objective-status-marker.is-done{background:var(--calendar-objective-color,#f56a25)!important}
#calendarModal .calendar-free-status-marker{border-color:#238ee8!important;background:#238ee8!important}
#calendarModal .calendar-free-status-marker.is-planned{background:transparent!important}
#calendarModal .training-calendar-day.today,#calendarModal .training-calendar-day.today.selected,#calendarModal .training-calendar-day.today:not(.selected){border:3px solid #238ee8!important;background:#fffaf6!important;box-shadow:none!important;outline:none!important}
#calendarModal .training-calendar-day.selected:not(.today){border-color:transparent!important;outline:2px solid rgba(35,142,232,.22)!important;outline-offset:1px!important}
#calendarModal .calendar-legend-v032{display:grid!important;grid-template-columns:minmax(0,2fr) minmax(110px,.8fr) minmax(100px,.7fr)!important;gap:0!important;margin-top:16px!important;padding:14px 12px!important;border:0!important;border-radius:16px!important;background:#f7f9fb!important;font-size:11px!important;line-height:1.25!important;align-items:start!important}
#calendarModal .calendar-legend-v032>div{padding:0 12px!important;border:0!important}
#calendarModal .calendar-legend-v032>div+div{border-left:1px solid #dfe5ea!important}
#calendarModal .calendar-legend-heading{font-size:12px!important;font-weight:900!important;color:#262a30!important;margin-bottom:8px!important}
#calendarModal .calendar-objective-legend{display:block!important;padding:0 12px 0 0!important}
#calendarModal .calendar-objective-legend::before{content:none!important}
#calendarModal .calendar-objective-legend-list{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px 14px!important}
#calendarModal .calendar-objective-legend-pair{display:contents!important}
#calendarModal .calendar-legend-row{display:flex!important;align-items:center!important;gap:7px!important;color:#53575d!important;font-weight:650!important;min-height:16px!important}
#calendarModal .calendar-legend-row .calendar-objective-status-marker,#calendarModal .calendar-legend-row .calendar-free-status-marker{position:static!important;transform:none!important;flex:0 0 12px!important}
#calendarModal .calendar-today-ring{width:22px!important;height:22px!important;min-width:22px!important;border:3px solid #238ee8!important;border-radius:50%!important;box-sizing:border-box!important;display:inline-block!important}
#calendarModal .training-calendar-summary{margin-top:12px!important;padding:12px 14px!important;border-radius:14px!important;background:#f7f9fb!important}
@media(max-width:480px){
 #calendarModal .calendar-modal-dialog{width:calc(100vw - 16px)!important;padding:12px 9px!important}
 #calendarModal .home-training-calendar{padding:12px 5px 10px!important}
 #calendarModal .training-calendar-grid{gap:7px 1px!important}
 #calendarModal .training-calendar-day:not(.empty),#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;padding:4px 1px!important;gap:2px!important}
 #calendarModal .training-calendar-day .calendar-day-number{font-size:14px!important;line-height:17px!important}
 #calendarModal .calendar-objective-status-marker,#calendarModal .calendar-free-status-marker{width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;border-width:2px!important}
 #calendarModal .calendar-day-status-markers{gap:3px!important;min-height:11px!important}
 #calendarModal .calendar-legend-v032{grid-template-columns:1fr!important;padding:11px!important}
 #calendarModal .calendar-legend-v032>div{padding:9px 0!important}
 #calendarModal .calendar-legend-v032>div+div{border-left:0!important;border-top:1px solid #dfe5ea!important}
 #calendarModal .calendar-objective-legend-list{grid-template-columns:1fr 1fr!important;gap:7px 8px!important}
}

/* v0.33 — calendrier : composition calée sur la maquette validée */
#calendarModal .calendar-modal-dialog{width:min(760px,calc(100vw - 12px))!important;padding:16px 12px!important;border-radius:28px!important}
#calendarModal .home-training-calendar{padding:14px 8px 12px!important}
#calendarModal .training-calendar-grid{gap:8px 1px!important}
#calendarModal .training-calendar-day:not(.empty),#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;padding:4px 1px!important;gap:2px!important}
#calendarModal .training-calendar-day .calendar-day-number{font-size:15px!important;line-height:18px!important}
#calendarModal .calendar-day-status-markers{gap:4px!important;min-height:13px!important;max-width:46px!important;flex-wrap:nowrap!important}
#calendarModal .calendar-objective-status-marker,#calendarModal .calendar-free-status-marker{width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;border-width:2.5px!important}
#calendarModal .training-calendar-day.today,#calendarModal .training-calendar-day.today.selected,#calendarModal .training-calendar-day.today:not(.selected){border:3px solid #238ee8!important;background:#fffaf6!important}
#calendarModal .training-calendar-day.selected:not(.today){outline:none!important;border-color:transparent!important}
#calendarModal .calendar-legend-v032{display:grid!important;grid-template-columns:minmax(0,2.25fr) minmax(86px,.8fr) minmax(78px,.7fr)!important;gap:0!important;margin-top:16px!important;padding:14px 10px!important;border-radius:18px!important;background:#f7f9fb!important;align-items:stretch!important}
#calendarModal .calendar-legend-v032>div{padding:0 10px!important;min-width:0!important}
#calendarModal .calendar-legend-v032>div:first-child{padding-left:0!important}
#calendarModal .calendar-legend-v032>div:last-child{padding-right:0!important}
#calendarModal .calendar-legend-v032>div+div{border-left:1px solid #dfe5ea!important;border-top:0!important}
#calendarModal .calendar-legend-heading{font-size:12px!important;margin-bottom:9px!important;white-space:nowrap!important}
#calendarModal .calendar-objective-legend-list{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
#calendarModal .calendar-objective-legend-pair{display:grid!important;grid-template-columns:minmax(0,1fr) 14px 14px!important;align-items:center!important;gap:7px!important}
#calendarModal .calendar-objective-legend-name{font-size:10.5px!important;line-height:1.15!important;font-weight:700!important;color:#53575d!important;overflow:hidden!important;text-overflow:ellipsis!important}
#calendarModal .calendar-objective-legend-pair .calendar-objective-status-marker{position:static!important;transform:none!important}
#calendarModal .calendar-legend-subheads{display:grid!important;grid-template-columns:1fr 14px 14px!important;gap:7px!important;margin:-2px 0 5px!important;color:#8b9298!important;font-size:8px!important;font-weight:800!important;text-transform:uppercase!important}
#calendarModal .calendar-legend-subheads span:nth-child(2),#calendarModal .calendar-legend-subheads span:nth-child(3){text-align:center!important}
#calendarModal .calendar-free-legend-block .calendar-legend-row,#calendarModal .calendar-today-legend-block .calendar-legend-row{font-size:10.5px!important;gap:6px!important;white-space:nowrap!important}
#calendarModal .calendar-today-ring{width:24px!important;height:24px!important;min-width:24px!important}
#calendarModal .training-calendar-summary{margin-top:12px!important;padding:12px 14px!important}
@media(max-width:480px){
 #calendarModal .calendar-modal-dialog{width:calc(100vw - 10px)!important;padding:12px 7px!important}
 #calendarModal .home-training-calendar{padding:12px 3px 10px!important}
 #calendarModal .training-calendar-grid{gap:7px 0!important}
 #calendarModal .training-calendar-day:not(.empty),#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;max-width:46px!important}
 #calendarModal .calendar-legend-v032{grid-template-columns:minmax(0,2.15fr) minmax(74px,.75fr) minmax(68px,.65fr)!important;padding:12px 7px!important}
 #calendarModal .calendar-legend-v032>div{padding:0 7px!important}
 #calendarModal .calendar-objective-legend-pair{grid-template-columns:minmax(0,1fr) 12px 12px!important;gap:5px!important}
 #calendarModal .calendar-legend-subheads{grid-template-columns:1fr 12px 12px!important;gap:5px!important}
 #calendarModal .calendar-objective-legend-name{font-size:9.5px!important}
 #calendarModal .calendar-free-legend-block .calendar-legend-row,#calendarModal .calendar-today-legend-block .calendar-legend-row{font-size:9px!important;white-space:normal!important}
}

/* v0.34 — calendrier : reproduction de la proposition 1 validée. */
#calendarModal .calendar-modal-dialog{width:min(690px,calc(100vw - 18px))!important;padding:18px 16px 16px!important;border-radius:28px!important}
#calendarModal .home-training-calendar{padding:12px 10px 10px!important;overflow:visible!important}
#calendarModal .training-calendar-head{margin-bottom:16px!important}
#calendarModal .training-calendar-grid{gap:8px 4px!important;align-items:start!important}
#calendarModal .training-calendar-weekday{font-size:12px!important;font-weight:850!important;color:#85858b!important;padding-bottom:4px!important}
#calendarModal .training-calendar-day:not(.empty),#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;max-width:52px!important;padding:5px 2px 4px!important;border-radius:50%!important;background:#fff4ea!important;border:3px solid transparent!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:3px!important;box-shadow:none!important;overflow:visible!important}
#calendarModal .training-calendar-day .calendar-day-number{font-size:15px!important;line-height:19px!important;font-weight:900!important;color:#171719!important}
#calendarModal .calendar-day-status-markers{display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-height:14px!important;max-width:48px!important;flex-wrap:nowrap!important}
#calendarModal .calendar-objective-status-marker,#calendarModal .calendar-free-status-marker{width:13px!important;height:13px!important;min-width:13px!important;min-height:13px!important;border-width:2.5px!important;border-radius:50%!important;box-sizing:border-box!important;display:inline-block!important}
#calendarModal .calendar-objective-status-marker{border-color:var(--calendar-objective-color,#f56a25)!important;background:transparent!important}
#calendarModal .calendar-objective-status-marker.is-done{background:var(--calendar-objective-color,#f56a25)!important}
#calendarModal .calendar-free-status-marker{border-color:#238ee8!important;background:#238ee8!important}
#calendarModal .calendar-free-status-marker.is-planned{background:transparent!important}
#calendarModal .training-calendar-day.today,#calendarModal .training-calendar-day.today.selected,#calendarModal .training-calendar-day.today:not(.selected){border:3px solid #238ee8!important;background:#fffaf6!important;box-shadow:none!important;outline:none!important}
#calendarModal .training-calendar-day.selected:not(.today){border-color:transparent!important;outline:none!important;box-shadow:none!important}
#calendarModal .calendar-legend-v032{display:grid!important;grid-template-columns:minmax(0,1.75fr) minmax(120px,.9fr) minmax(120px,.9fr)!important;gap:0!important;margin-top:18px!important;padding:16px 14px!important;border:0!important;border-radius:18px!important;background:#f7f9fb!important;align-items:stretch!important;font-size:12px!important;line-height:1.25!important}
#calendarModal .calendar-legend-v032>div{padding:0 16px!important;min-width:0!important;border:0!important}
#calendarModal .calendar-legend-v032>div:first-child{padding-left:0!important}
#calendarModal .calendar-legend-v032>div:last-child{padding-right:0!important}
#calendarModal .calendar-legend-v032>div+div{border-left:1px solid #dce2e8!important}
#calendarModal .calendar-legend-heading{font-size:14px!important;font-weight:900!important;color:#16181c!important;margin:0 0 10px!important;white-space:nowrap!important}
#calendarModal .calendar-objective-legend{display:block!important;padding:0 16px 0 0!important}
#calendarModal .calendar-objective-legend-list{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
#calendarModal .calendar-objective-legend-pair{display:flex!important;align-items:center!important;gap:9px!important;min-width:0!important}
#calendarModal .calendar-objective-legend-markers{display:inline-flex!important;align-items:center!important;gap:5px!important;flex:0 0 auto!important}
#calendarModal .calendar-objective-legend-name{font-size:12px!important;line-height:1.2!important;font-weight:650!important;color:#424954!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important}
#calendarModal .calendar-legend-subheads{display:none!important}
#calendarModal .calendar-free-legend-block .calendar-legend-row,#calendarModal .calendar-today-legend-block .calendar-legend-row{font-size:12px!important;gap:9px!important;white-space:nowrap!important;min-height:26px!important;color:#424954!important;font-weight:650!important}
#calendarModal .calendar-legend-row .calendar-free-status-marker{width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;border-width:3px!important;position:static!important;transform:none!important}
#calendarModal .calendar-today-ring{width:32px!important;height:32px!important;min-width:32px!important;border:3px solid #238ee8!important;border-radius:50%!important;box-sizing:border-box!important;display:inline-block!important}
#calendarModal .training-calendar-summary{margin-top:14px!important;padding:13px 15px!important;border-radius:14px!important;background:#f7f9fb!important;font-size:12px!important;color:#6f7780!important}
@media(max-width:480px){
 #calendarModal .calendar-modal-dialog{width:calc(100vw - 12px)!important;padding:13px 9px!important}
 #calendarModal .home-training-calendar{padding:10px 4px 8px!important}
 #calendarModal .training-calendar-grid{gap:7px 1px!important}
 #calendarModal .training-calendar-day:not(.empty),#calendarModal .training-calendar-day.has-session,#calendarModal .training-calendar-day.has-free-session,#calendarModal .training-calendar-day.has-both,#calendarModal .training-calendar-day.is-training-planned,#calendarModal .training-calendar-day.is-in-challenge{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;max-width:46px!important;padding:4px 1px 3px!important}
 #calendarModal .training-calendar-day .calendar-day-number{font-size:14px!important;line-height:17px!important}
 #calendarModal .calendar-objective-status-marker,#calendarModal .calendar-free-status-marker{width:11px!important;height:11px!important;min-width:11px!important;min-height:11px!important;border-width:2px!important}
 #calendarModal .calendar-day-status-markers{gap:4px!important;min-height:12px!important}
 #calendarModal .calendar-legend-v032{grid-template-columns:minmax(0,1.7fr) minmax(92px,.8fr) minmax(84px,.75fr)!important;padding:13px 9px!important}
 #calendarModal .calendar-legend-v032>div{padding:0 9px!important}
 #calendarModal .calendar-legend-heading{font-size:12px!important}
 #calendarModal .calendar-objective-legend-pair{gap:6px!important}
 #calendarModal .calendar-objective-legend-markers{gap:3px!important}
 #calendarModal .calendar-objective-legend-name,#calendarModal .calendar-free-legend-block .calendar-legend-row,#calendarModal .calendar-today-legend-block .calendar-legend-row{font-size:10px!important}
 #calendarModal .calendar-legend-row .calendar-free-status-marker{width:15px!important;height:15px!important;min-width:15px!important;min-height:15px!important}
 #calendarModal .calendar-today-ring{width:26px!important;height:26px!important;min-width:26px!important}
}

/* v0.35 — calendrier : proposition 1, légende reconstruite sans compression. */
#calendarModal .calendar-legend-v032{
  display:grid!important;
  grid-template-columns:minmax(0,2.15fr) minmax(0,.92fr) minmax(0,.82fr)!important;
  gap:0!important;margin-top:16px!important;padding:14px 12px!important;
  border-radius:18px!important;background:#f7f9fb!important;align-items:stretch!important;
}
#calendarModal .calendar-legend-v032>div{min-width:0!important;padding:0 12px!important}
#calendarModal .calendar-legend-v032>div:first-child{padding-left:0!important}
#calendarModal .calendar-legend-v032>div:last-child{padding-right:0!important}
#calendarModal .calendar-legend-v032>div+div{border-left:1px solid #dce2e8!important}
#calendarModal .calendar-legend-heading{font-size:13px!important;line-height:1.1!important;font-weight:900!important;margin:0 0 10px!important;color:#17191d!important;white-space:nowrap!important}
#calendarModal .calendar-objective-legend{padding:0 12px 0 0!important}
#calendarModal .calendar-objective-legend-list{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
#calendarModal .calendar-objective-legend-pair{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;min-width:0!important}
#calendarModal .calendar-objective-legend-pair .calendar-legend-row,
#calendarModal .calendar-free-legend-block .calendar-legend-row,
#calendarModal .calendar-today-legend-block .calendar-legend-row{
  display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important;
  font-size:10.5px!important;line-height:1.15!important;font-weight:650!important;color:#424954!important;white-space:normal!important;
}
#calendarModal .calendar-objective-legend-pair .calendar-legend-row span{min-width:0!important}
#calendarModal .calendar-objective-legend-pair .calendar-objective-status-marker{
  position:static!important;transform:none!important;flex:0 0 12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;border-width:2.5px!important;
}
#calendarModal .calendar-free-legend-block .calendar-legend-row{margin-bottom:8px!important}
#calendarModal .calendar-free-legend-block .calendar-free-status-marker{position:static!important;transform:none!important;flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;border-width:3px!important}
#calendarModal .calendar-today-legend-block .calendar-today-ring{flex:0 0 30px!important;width:30px!important;height:30px!important;min-width:30px!important;border:3px solid #238ee8!important}
/* L'anneau du jour actuel reste bleu, indépendamment de l'objectif du jour. */
#calendarModal .training-calendar-day.today{border-color:#238ee8!important;box-shadow:0 0 0 1px #238ee8!important}
@media(max-width:480px){
  #calendarModal .calendar-legend-v032{grid-template-columns:minmax(0,2.05fr) minmax(72px,.85fr) minmax(68px,.8fr)!important;padding:12px 7px!important}
  #calendarModal .calendar-legend-v032>div{padding:0 7px!important}
  #calendarModal .calendar-legend-heading{font-size:10.5px!important;margin-bottom:8px!important}
  #calendarModal .calendar-objective-legend-pair{gap:5px!important}
  #calendarModal .calendar-objective-legend-pair .calendar-legend-row,#calendarModal .calendar-free-legend-block .calendar-legend-row,#calendarModal .calendar-today-legend-block .calendar-legend-row{font-size:8px!important;gap:4px!important}
  #calendarModal .calendar-objective-legend-pair .calendar-objective-status-marker{flex-basis:9px!important;width:9px!important;height:9px!important;min-width:9px!important;min-height:9px!important;border-width:2px!important}
  #calendarModal .calendar-free-legend-block .calendar-free-status-marker{flex-basis:13px!important;width:13px!important;height:13px!important;min-width:13px!important;min-height:13px!important;border-width:2px!important}
  #calendarModal .calendar-today-legend-block .calendar-today-ring{flex-basis:23px!important;width:23px!important;height:23px!important;min-width:23px!important;border-width:2.5px!important}
}

/* v0.36 — calendrier : tous les jours gardent exactement le même disque orange clair. */
#calendarModal .training-calendar-grid .training-calendar-day:not(.empty),
#calendarModal .training-calendar-grid .training-calendar-day.has-session,
#calendarModal .training-calendar-grid .training-calendar-day.has-free-session,
#calendarModal .training-calendar-grid .training-calendar-day.has-both,
#calendarModal .training-calendar-grid .training-calendar-day.is-training-planned,
#calendarModal .training-calendar-grid .training-calendar-day.is-in-challenge {
  box-sizing:border-box!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  min-height:52px!important;
  max-width:52px!important;
  max-height:52px!important;
  aspect-ratio:1 / 1!important;
  margin:0!important;
  padding:5px 2px 4px!important;
  justify-self:center!important;
  align-self:center!important;
  border-radius:50%!important;
  background:#fff4ea!important;
  border:3px solid transparent!important;
  outline:none!important;
  box-shadow:none!important;
  transform:none!important;
  color:#171719!important;
  overflow:visible!important;
}
#calendarModal .training-calendar-grid .training-calendar-day.today,
#calendarModal .training-calendar-grid .training-calendar-day.today.selected,
#calendarModal .training-calendar-grid .training-calendar-day.today:not(.selected){
  width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;max-width:52px!important;max-height:52px!important;
  background:#fff4ea!important;
  border:3px solid #238ee8!important;
  box-shadow:none!important;
  outline:none!important;
}
#calendarModal .training-calendar-grid .training-calendar-day.selected:not(.today){
  background:#fff4ea!important;border:3px solid transparent!important;outline:none!important;box-shadow:none!important;
}
#calendarModal .training-calendar-grid .training-calendar-day::before,
#calendarModal .training-calendar-grid .training-calendar-day::after{content:none!important;display:none!important}
#calendarModal .training-calendar-grid .calendar-day-status-markers{
  position:static!important;transform:none!important;margin:0!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  gap:4px!important;min-height:12px!important;max-width:44px!important;white-space:nowrap!important;
}
#calendarModal .training-calendar-grid .calendar-objective-status-marker,
#calendarModal .training-calendar-grid .calendar-free-status-marker{
  position:static!important;transform:none!important;box-sizing:border-box!important;
  width:11px!important;height:11px!important;min-width:11px!important;min-height:11px!important;
  border-radius:50%!important;border-width:2px!important;flex:0 0 11px!important;
}
@media(max-width:480px){
  #calendarModal .training-calendar-grid .training-calendar-day:not(.empty),
  #calendarModal .training-calendar-grid .training-calendar-day.has-session,
  #calendarModal .training-calendar-grid .training-calendar-day.has-free-session,
  #calendarModal .training-calendar-grid .training-calendar-day.has-both,
  #calendarModal .training-calendar-grid .training-calendar-day.is-training-planned,
  #calendarModal .training-calendar-grid .training-calendar-day.is-in-challenge,
  #calendarModal .training-calendar-grid .training-calendar-day.today,
  #calendarModal .training-calendar-grid .training-calendar-day.today.selected,
  #calendarModal .training-calendar-grid .training-calendar-day.today:not(.selected){
    width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;max-width:46px!important;max-height:46px!important;
    box-sizing:border-box!important;padding:4px 1px 3px!important;background:#fff4ea!important;
  }
  #calendarModal .training-calendar-grid .training-calendar-day.today,
  #calendarModal .training-calendar-grid .training-calendar-day.today.selected,
  #calendarModal .training-calendar-grid .training-calendar-day.today:not(.selected){border:3px solid #238ee8!important}
}

/* v0.38 — calendrier : aucun pictogramme de validation sur les jours.
   Le statut est porté exclusivement par les marqueurs : vide = planifié, plein = réalisé. */
#calendarModal .training-calendar-grid .training-calendar-day::before,
#calendarModal .training-calendar-grid .training-calendar-day::after,
#calendarModal .training-calendar-grid .training-calendar-day.has-session::before,
#calendarModal .training-calendar-grid .training-calendar-day.has-session::after,
#calendarModal .training-calendar-grid .training-calendar-day.has-free-session::before,
#calendarModal .training-calendar-grid .training-calendar-day.has-free-session::after,
#calendarModal .training-calendar-grid .training-calendar-day.has-both::before,
#calendarModal .training-calendar-grid .training-calendar-day.has-both::after {
  content:none!important;
  display:none!important;
  width:0!important;
  height:0!important;
  background:none!important;
  border:0!important;
}
#calendarModal .training-calendar-grid .calendar-day-status-markers::before,
#calendarModal .training-calendar-grid .calendar-day-status-markers::after,
#calendarModal .training-calendar-grid .calendar-objective-status-marker::before,
#calendarModal .training-calendar-grid .calendar-objective-status-marker::after,
#calendarModal .training-calendar-grid .calendar-free-status-marker::before,
#calendarModal .training-calendar-grid .calendar-free-status-marker::after {
  content:none!important;
  display:none!important;
}

/* v0.38 — calendrier : aujourd'hui = fin anneau orange de l'application. */
#calendarModal .training-calendar-grid .training-calendar-day.today,
#calendarModal .training-calendar-grid .training-calendar-day.today.selected,
#calendarModal .training-calendar-grid .training-calendar-day.today:not(.selected){
  border:2px solid #ff6a1a!important;
  box-shadow:none!important;
}
#calendarModal .calendar-today-ring{
  border-color:#ff6a1a!important;
  border-width:2px!important;
}
#calendarModal .calendar-today-legend-block .calendar-today-ring{
  border-color:#ff6a1a!important;
  border-width:2px!important;
}


/* v0.39 — calendrier : jour sélectionné visible, distinct du jour actuel. */
#calendarModal .training-calendar-grid .training-calendar-day.selected:not(.today){
  border:2px solid #6f6259!important;
  outline:none!important;
  box-shadow:none!important;
  background:#fff4ea!important;
}
#calendarModal .training-calendar-grid .training-calendar-day.today,
#calendarModal .training-calendar-grid .training-calendar-day.today.selected,
#calendarModal .training-calendar-grid .training-calendar-day.today:not(.selected){
  border:2px solid #ff6a1a!important;
  outline:none!important;
  box-shadow:none!important;
}


/* v0.40 — détail calendrier : une ligne et un bouton Supprimer par séance. */
#calendarModal .calendar-session-detail-copy{display:flex;align-items:flex-start;gap:9px;min-width:0;flex:1}
#calendarModal .calendar-detail-status-dot{display:inline-block;flex:0 0 13px;width:13px;height:13px;border-radius:50%;background:var(--detail-color,#ff6a1a);margin-top:2px}
#calendarModal .calendar-detail-status-dot.free-dot{background:#249be3}
#calendarModal .calendar-delete-session{white-space:nowrap}

/* v0.41 — légende Objectifs simplifiée : un cercle vide + nom réel. */
#calendarModal .calendar-objective-legend-list{display:flex!important;flex-direction:column!important;gap:8px!important}
#calendarModal .calendar-objective-legend-pair.calendar-objective-name-only{display:block!important}
#calendarModal .calendar-objective-name-only .calendar-legend-row{display:flex!important;align-items:center!important;gap:8px!important;font-size:11px!important;font-weight:700!important;color:#53575d!important;white-space:normal!important}
#calendarModal .calendar-objective-name-only .calendar-objective-status-marker{position:static!important;transform:none!important;flex:0 0 10px!important;width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;background:transparent!important}
#calendarModal .calendar-objective-name-only .calendar-legend-row span::after{content:none!important}
@media(max-width:480px){#calendarModal .calendar-objective-name-only .calendar-legend-row{font-size:10px!important;gap:6px!important}}


/* v0.42 — calendrier « Ajouter ma séance » aligné visuellement sur le calendrier principal. */
#sessionDatePickerModal .session-date-picker-dialog{
  width:min(650px,calc(100vw - 24px))!important;
  max-width:650px!important;
  padding:22px 20px 24px!important;
  border-radius:28px!important;
}
#sessionDatePickerModal .session-date-picker-head{margin-bottom:14px!important}
#sessionDatePickerModal .training-calendar-title{font-size:24px!important;font-weight:900!important;color:#2f2925!important}
#sessionDatePickerModal .session-date-picker-nav{display:grid!important;grid-template-columns:44px 1fr 44px!important;align-items:center!important;margin:2px 0 18px!important}
#sessionDatePickerModal .session-date-picker-nav button{width:44px!important;height:44px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#8f8984!important;font-size:28px!important;font-weight:500!important}
#sessionDatePickerModal .training-calendar-month{min-width:0!important;text-align:center!important;font-size:18px!important;font-weight:900!important;color:#332d29!important}
#sessionDatePickerModal .session-date-picker-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px 7px!important}
#sessionDatePickerModal .training-calendar-weekday{padding:0 0 7px!important;font-size:13px!important;font-weight:850!important;color:#92908d!important}
#sessionDatePickerModal .training-calendar-day{
  width:100%!important;aspect-ratio:1/1!important;min-width:0!important;min-height:0!important;
  margin:0!important;padding:0!important;border:2px solid transparent!important;border-radius:50%!important;
  background:#fff1e6!important;color:#2f2925!important;box-shadow:none!important;outline:none!important;
  font-size:17px!important;font-weight:900!important;
}
#sessionDatePickerModal .training-calendar-day.empty{background:transparent!important;border-color:transparent!important}
#sessionDatePickerModal .training-calendar-day.is-outside-objective{opacity:.28!important;pointer-events:none!important}
#sessionDatePickerModal .training-calendar-day.today{border:2px solid #ff6a1a!important;box-shadow:none!important}
#sessionDatePickerModal .training-calendar-day.selected:not(.today){border:2px solid #6f6259!important;background:#fff1e6!important;color:#2f2925!important;box-shadow:none!important;outline:none!important}
#sessionDatePickerModal .training-calendar-day.selected.today{border:2px solid #ff6a1a!important;background:#fff1e6!important;color:#2f2925!important;box-shadow:inset 0 0 0 2px #fff!important;outline:2px solid #6f6259!important;outline-offset:2px!important}
#sessionDatePickerModal .training-calendar-day.has-objective-session::after{
  content:""!important;display:block!important;position:absolute!important;left:50%!important;bottom:7px!important;
  width:7px!important;height:7px!important;transform:translateX(-50%)!important;border:0!important;border-radius:50%!important;
  background:#159d9d!important;
}
#sessionDatePickerModal .session-date-picker-legend{display:none!important}
@media(max-width:480px){
  #sessionDatePickerModal .session-date-picker-dialog{width:calc(100vw - 24px)!important;padding:20px 16px 22px!important;border-radius:26px!important}
  #sessionDatePickerModal .training-calendar-title{font-size:21px!important}
  #sessionDatePickerModal .session-date-picker-grid{gap:7px 6px!important}
  #sessionDatePickerModal .training-calendar-day{font-size:16px!important}
}

/* v0.43 — sélecteur de date : même gabarit que le calendrier principal, sans marqueurs de séance. */
#sessionDatePickerModal .session-date-picker-dialog{width:min(690px,calc(100vw - 16px))!important;max-width:690px!important;padding:16px!important;border-radius:26px!important}
#sessionDatePickerModal .session-date-picker-head{margin-bottom:14px!important}
#sessionDatePickerModal .training-calendar-title{font-size:24px!important;font-weight:900!important;color:#2f2925!important}
#sessionDatePickerModal .session-date-picker-nav{display:grid!important;grid-template-columns:44px 1fr 44px!important;align-items:center!important;margin:2px 0 14px!important}
#sessionDatePickerModal .session-date-picker-nav button{width:44px!important;height:44px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#8f8984!important;font-size:28px!important;font-weight:500!important}
#sessionDatePickerModal .training-calendar-month{min-width:0!important;text-align:center!important;font-size:18px!important;font-weight:900!important;color:#332d29!important}
#sessionDatePickerModal .session-date-picker-grid{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:8px 4px!important;align-items:start!important}
#sessionDatePickerModal .training-calendar-weekday{font-size:11px!important;font-weight:800!important;color:#8b837d!important;padding:0 0 2px!important}
#sessionDatePickerModal .training-calendar-day:not(.empty){box-sizing:border-box!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;max-width:52px!important;max-height:52px!important;aspect-ratio:1/1!important;margin:0!important;padding:5px 2px 4px!important;justify-self:center!important;align-self:center!important;border-radius:50%!important;background:#fff4ea!important;border:2px solid transparent!important;outline:none!important;box-shadow:none!important;transform:none!important;color:#171719!important;overflow:visible!important;display:flex!important;align-items:center!important;justify-content:center!important}
#sessionDatePickerModal .training-calendar-day .calendar-day-number{font-size:14px!important;font-weight:850!important;line-height:18px!important;margin:0!important}
#sessionDatePickerModal .training-calendar-day.empty{background:transparent!important;border-color:transparent!important}
#sessionDatePickerModal .training-calendar-day.today{border:2px solid #ff6a1a!important;background:#fff4ea!important;box-shadow:none!important;outline:none!important}
#sessionDatePickerModal .training-calendar-day.selected:not(.today){border:2px solid #6f6259!important;background:#fff4ea!important;box-shadow:none!important;outline:none!important}
#sessionDatePickerModal .training-calendar-day.selected.today{border:2px solid #ff6a1a!important;background:#fff4ea!important;box-shadow:none!important;outline:2px solid #6f6259!important;outline-offset:2px!important}
#sessionDatePickerModal .training-calendar-day.has-objective-session::after{content:none!important;display:none!important}
#sessionDatePickerModal .session-date-picker-legend{display:none!important}
@media(max-width:480px){
 #sessionDatePickerModal .session-date-picker-dialog{width:calc(100vw - 20px)!important;padding:14px 10px 16px!important;border-radius:26px!important}
 #sessionDatePickerModal .training-calendar-title{font-size:21px!important}
 #sessionDatePickerModal .session-date-picker-grid{gap:7px 1px!important}
 #sessionDatePickerModal .training-calendar-day:not(.empty){width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;max-width:46px!important;max-height:46px!important;padding:4px 1px 3px!important}
 #sessionDatePickerModal .training-calendar-day .calendar-day-number{font-size:13px!important;line-height:16px!important}
}


/* v0.44 — calendrier de saisie : indique uniquement les séances déjà enregistrées pour l’objectif sélectionné. */
#sessionDatePickerModal .training-calendar-day.has-objective-session::after{
  content:""!important;display:block!important;position:absolute!important;left:50%!important;bottom:5px!important;
  width:7px!important;height:7px!important;transform:translateX(-50%)!important;border:0!important;border-radius:50%!important;
  background:var(--session-objective-color,#f56a25)!important;box-shadow:0 0 0 1px rgba(255,255,255,.75)!important;
}
#sessionDatePickerModal .training-calendar-day.has-objective-session .calendar-day-number{transform:translateY(-4px)!important;}

/* v0.46 — calendrier de saisie : marqueur de séance identique au calendrier d'entraînement. */
#sessionDatePickerModal .training-calendar-day.has-objective-session::after{
  width:11px!important;
  height:11px!important;
  min-width:11px!important;
  min-height:11px!important;
  bottom:4px!important;
  box-shadow:none!important;
}
#sessionDatePickerModal .training-calendar-day.has-objective-session .calendar-day-number{
  transform:translateY(-4px)!important;
}


/* v0.46 — navigation jour précédent / suivant autour de la date de séance. */
#sessionDateField .session-date-stepper{
  min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px;width:100%;
}
#sessionDateField .session-date-step-btn{
  width:48px;height:64px;border:1.5px solid color-mix(in srgb,var(--session-objective-color,#f56a25) 42%,#d9d3ce);
  border-radius:18px;background:#fff;color:var(--session-objective-color,#f56a25);font-size:34px;line-height:1;font-weight:500;
  display:flex;align-items:center;justify-content:center;padding:0;box-shadow:0 0 0 3px color-mix(in srgb,var(--session-objective-color,#f56a25) 7%,transparent);
}
#sessionDateField .session-date-step-btn:active:not(:disabled){transform:translateY(1px)}
#sessionDateField .session-date-step-btn:disabled{opacity:.28;box-shadow:none;cursor:not-allowed}
#sessionDateField .session-date-picker-btn{min-width:0;margin:0}
@media(max-width:420px){
  #sessionDateField{grid-template-columns:42px minmax(0,1fr);gap:10px}
  #sessionDateField .session-date-stepper{grid-template-columns:44px minmax(0,1fr) 44px;gap:7px}
  #sessionDateField .session-date-step-btn{width:44px;height:60px;border-radius:16px;font-size:30px}
  #sessionDateField .session-date-picker-btn{min-height:60px;padding-left:16px;padding-right:16px}
}

/* v0.49 — proposition 1 : sélecteur compact par pastilles. */
#homeWelcome{display:none!important}
.home-objective-selector{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  margin:12px 24px 18px!important;
  padding:0!important;
}
.home-objective-selector[hidden]{display:none!important}
.home-objective-selector button{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  width:100%!important;
  min-width:0!important;
  min-height:46px!important;
  margin:0!important;
  padding:8px 10px!important;
  border:1px solid #e7ded8!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#5d514a!important;
  box-shadow:0 4px 12px rgba(57,40,30,.04)!important;
  font:inherit!important;
  font-size:.78rem!important;
  font-weight:850!important;
  line-height:1.1!important;
  white-space:normal!important;
}
.home-objective-selector button::before{
  content:""!important;
  flex:0 0 18px!important;
  width:18px!important;
  height:18px!important;
  border:2px solid var(--objective-color)!important;
  border-radius:50%!important;
  background:#fff!important;
  box-sizing:border-box!important;
}
.home-objective-selector button.active{
  border-color:var(--objective-color)!important;
  background:color-mix(in srgb,var(--objective-color) 7%,white)!important;
  color:var(--objective-color)!important;
  box-shadow:0 5px 14px color-mix(in srgb,var(--objective-color) 12%,transparent)!important;
}
.home-objective-selector button.active::before{
  border-color:var(--objective-color)!important;
  background:var(--objective-color)!important;
  box-shadow:inset 0 0 0 4px var(--objective-color)!important;
}
@media(max-width:420px){
  .home-objective-selector{margin:10px 14px 16px!important;gap:6px!important}
  .home-objective-selector button{min-height:44px!important;padding:7px 6px!important;gap:6px!important;font-size:.7rem!important}
  .home-objective-selector button::before{flex-basis:16px!important;width:16px!important;height:16px!important}
}


/* v0.50 — même sélecteur compact pour « Objectif de la séance » que sur l’accueil. */
#sessionObjectiveZone .session-program-selector{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0 0 8px;overflow:visible}
#sessionObjectiveZone .session-program-selector button{flex:1 1 120px;min-width:0;min-height:42px;margin:0;padding:8px 11px;border:1px solid #e2d7ce;border-radius:13px;background:#fff;color:#74675f;font:inherit;font-size:.82rem;font-weight:850;line-height:1.15;text-align:center;box-shadow:none;white-space:normal}
#sessionObjectiveZone .session-program-selector button.active{border-color:var(--objective-color);background:color-mix(in srgb,var(--objective-color) 12%,white);color:#382f29;box-shadow:inset 0 -3px 0 var(--objective-color)}
#sessionObjectiveZone .session-program-selector button:disabled{opacity:.42;box-shadow:none}

/* v0.51 — Ajouter ma séance : pastilles identiques au sélecteur de l'accueil. */
#sessionObjectiveZone .session-program-selector{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  margin:0!important;
  padding:0 0 8px!important;
  overflow:visible!important;
}
#sessionObjectiveZone .session-program-selector button{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  width:100%!important;
  min-width:0!important;
  min-height:46px!important;
  margin:0!important;
  padding:8px 10px!important;
  border:1px solid #e7ded8!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#5d514a!important;
  box-shadow:0 4px 12px rgba(57,40,30,.04)!important;
  font:inherit!important;
  font-size:.78rem!important;
  font-weight:850!important;
  line-height:1.1!important;
  text-align:center!important;
  white-space:normal!important;
}
#sessionObjectiveZone .session-program-selector button::before{
  content:""!important;
  flex:0 0 18px!important;
  width:18px!important;
  height:18px!important;
  border:2px solid var(--objective-color)!important;
  border-radius:50%!important;
  background:#fff!important;
  box-sizing:border-box!important;
}
#sessionObjectiveZone .session-program-selector button.active{
  border-color:var(--objective-color)!important;
  background:color-mix(in srgb,var(--objective-color) 7%,white)!important;
  color:var(--objective-color)!important;
  box-shadow:0 5px 14px color-mix(in srgb,var(--objective-color) 12%,transparent)!important;
}
#sessionObjectiveZone .session-program-selector button.active::before{
  border-color:var(--objective-color)!important;
  background:var(--objective-color)!important;
  box-shadow:inset 0 0 0 4px var(--objective-color)!important;
}
#sessionObjectiveZone .session-program-selector button:disabled{opacity:.42!important;box-shadow:none!important}
@media(max-width:420px){
  #sessionObjectiveZone .session-program-selector{gap:6px!important}
  #sessionObjectiveZone .session-program-selector button{min-height:44px!important;padding:7px 6px!important;gap:6px!important;font-size:.7rem!important}
  #sessionObjectiveZone .session-program-selector button::before{flex-basis:16px!important;width:16px!important;height:16px!important}
}


/* v0.52 — Suivi : même sélecteur compact par pastilles que sur l’accueil. */
#progressionCard .chart-objective-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;margin:0!important;padding:2px 0 14px!important;overflow:visible!important}
#progressionCard .chart-objective-tabs button{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;width:100%!important;min-width:0!important;min-height:46px!important;margin:0!important;padding:8px 10px!important;border:1px solid #e7ded8!important;border-radius:999px!important;background:#fff!important;color:#5d514a!important;box-shadow:0 4px 12px rgba(57,40,30,.04)!important;font:inherit!important;font-size:.78rem!important;font-weight:850!important;line-height:1.1!important;text-align:center!important;white-space:normal!important}
#progressionCard .chart-objective-tabs button::before{content:""!important;flex:0 0 18px!important;width:18px!important;height:18px!important;border:2px solid var(--chart-objective-color,#f56a25)!important;border-radius:50%!important;background:#fff!important;box-sizing:border-box!important}
#progressionCard .chart-objective-tabs button.active{border-color:var(--chart-objective-color,#f56a25)!important;background:color-mix(in srgb,var(--chart-objective-color,#f56a25) 7%,white)!important;color:var(--chart-objective-color,#f56a25)!important;box-shadow:0 5px 14px color-mix(in srgb,var(--chart-objective-color,#f56a25) 12%,transparent)!important}
#progressionCard .chart-objective-tabs button.active::before{border-color:var(--chart-objective-color,#f56a25)!important;background:var(--chart-objective-color,#f56a25)!important;box-shadow:inset 0 0 0 4px var(--chart-objective-color,#f56a25)!important}
@media(max-width:420px){#progressionCard .chart-objective-tabs{gap:6px!important}#progressionCard .chart-objective-tabs button{min-height:44px!important;padding:7px 6px!important;gap:6px!important;font-size:.7rem!important}#progressionCard .chart-objective-tabs button::before{flex-basis:16px!important;width:16px!important;height:16px!important}}

/* v0.54 — Historique : même langage visuel de sélection que Accueil / Suivi. */
.history-objective-filter{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:4px 0 20px!important}
.history-objective-filter button{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;min-width:0!important;min-height:52px!important;padding:9px 12px!important;border:1px solid #e7ded8!important;border-radius:999px!important;background:#fff!important;color:#5d514a!important;box-shadow:0 4px 12px rgba(57,40,30,.04)!important;font:inherit!important;font-size:.82rem!important;font-weight:850!important;line-height:1.13!important;text-align:center!important;white-space:normal!important}
.history-objective-filter button::before{content:""!important;flex:0 0 18px!important;width:18px!important;height:18px!important;border:2px solid var(--objective-color,#f56a25)!important;border-radius:50%!important;background:#fff!important;box-sizing:border-box!important}
.history-objective-filter button.active{border-color:var(--objective-color,#f56a25)!important;background:color-mix(in srgb,var(--objective-color,#f56a25) 7%,white)!important;color:var(--objective-color,#f56a25)!important;box-shadow:0 5px 14px color-mix(in srgb,var(--objective-color,#f56a25) 12%,transparent)!important}
.history-objective-filter button.active::before{border-color:var(--objective-color,#f56a25)!important;background:var(--objective-color,#f56a25)!important;box-shadow:inset 0 0 0 4px var(--objective-color,#f56a25)!important}
.history-objective-filter .history-free-filter{--objective-color:#2e98c9!important}
.history-objective-filter button:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:420px){.history-objective-filter{gap:7px!important}.history-objective-filter button{min-height:48px!important;padding:8px 7px!important;gap:6px!important;font-size:.74rem!important}.history-objective-filter button::before{flex-basis:16px!important;width:16px!important;height:16px!important}}

/* v0.54 — Historique : alignement strict des pastilles dans les boutons */
.history-objective-filter button::before{
  position:static!important;
  margin:0!important;
  transform:none!important;
  align-self:center!important;
  flex:0 0 18px!important;
  width:18px!important;
  height:18px!important;
}
.history-objective-filter button.active::before{
  box-shadow:none!important;
}
@media(max-width:420px){
  .history-objective-filter button::before{
    flex:0 0 16px!important;
    width:16px!important;
    height:16px!important;
  }
}

/* v0.55 — Historique : pastilles ancrées à la même position horizontale dans chaque bouton. */
.history-objective-filter button{
  position:relative!important;
  padding-left:46px!important;
  padding-right:14px!important;
}
.history-objective-filter button::before{
  position:absolute!important;
  left:18px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  margin:0!important;
  align-self:auto!important;
}
@media(max-width:420px){
  .history-objective-filter button{
    padding-left:40px!important;
    padding-right:9px!important;
  }
  .history-objective-filter button::before{
    left:15px!important;
  }
}


/* v0.59 — le type de séance devient le sélecteur principal, immédiatement sous le titre. */
#tab-seance .card-section-title + .session-type-selector{
  margin:12px 0 14px!important;
  border-radius:18px!important;
}
#tab-seance .card-section-title + .session-type-selector .session-type-btn{
  min-height:52px!important;
  font-size:14px!important;
}
#tab-seance .card-section-title + .session-type-selector + .session-program-zone{
  margin-top:0!important;
}

/* v0.60 — calendrier : aujourd’hui discret, sélection orange très fine. */
#calendarModal .training-calendar-grid .training-calendar-day.today,
#calendarModal .training-calendar-grid .training-calendar-day.today:not(.selected){
  background:#eeeeec!important;
  border:1px solid transparent!important;
  outline:none!important;
  box-shadow:none!important;
}
#calendarModal .training-calendar-grid .training-calendar-day.selected:not(.today){
  background:#fff4ea!important;
  border:1px solid #ff6a1a!important;
  outline:none!important;
  box-shadow:none!important;
}
#calendarModal .training-calendar-grid .training-calendar-day.today.selected{
  background:#eeeeec!important;
  border:1px solid #ff6a1a!important;
  outline:none!important;
  box-shadow:none!important;
}
#calendarModal .calendar-today-ring{
  background:#eeeeec!important;
  border:1px solid transparent!important;
}
#calendarModal .calendar-selected-ring{
  display:inline-block!important;
  width:30px!important;height:30px!important;min-width:30px!important;
  border:1px solid #ff6a1a!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
  background:#fff4ea!important;
}
@media(max-width:350px){
  #calendarModal .calendar-selected-ring{width:23px!important;height:23px!important;min-width:23px!important;}
}


/* v0.61 — légende : Aujourd’hui reprend exactement le fond gris clair du calendrier. */
#calendarModal .calendar-today-legend-block .calendar-today-ring{
  display:inline-block!important;
  flex:0 0 30px!important;
  width:30px!important;height:30px!important;min-width:30px!important;
  background:#eeeeec!important;
  border:0!important;
  border-radius:50%!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}
@media(max-width:350px){
  #calendarModal .calendar-today-legend-block .calendar-today-ring{
    flex-basis:23px!important;width:23px!important;height:23px!important;min-width:23px!important;border:0!important;
  }
}

/* v0.63 — calendrier Ajouter ma séance : mêmes repères que le calendrier principal. */
#sessionDatePickerModal .training-calendar-day.today,
#sessionDatePickerModal .training-calendar-day.today:not(.selected){
  background:#eeeeec!important;
  border:1px solid transparent!important;
  outline:none!important;
  box-shadow:none!important;
}
#sessionDatePickerModal .training-calendar-day.selected:not(.today){
  background:#fff4ea!important;
  border:1px solid #ff6a1a!important;
  outline:none!important;
  box-shadow:none!important;
}
#sessionDatePickerModal .training-calendar-day.today.selected{
  background:#eeeeec!important;
  border:1px solid #ff6a1a!important;
  outline:none!important;
  box-shadow:none!important;
}


/* v0.63 — croix de fermeture centrées géométriquement dans toutes les modales. */
.progress-modal-close,
.session-date-picker-head .modal-close-btn,
.exercise-modal-close{
  display:grid!important;
  place-items:center!important;
  position:relative;
  padding:0!important;
  line-height:0!important;
  font-size:0!important;
  text-align:center!important;
}
.progress-modal-close::before,
.session-date-picker-head .modal-close-btn::before,
.exercise-modal-close::before{
  content:"×";
  display:block;
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-54%);
  margin:0;
  padding:0;
  color:inherit;
  font-family:Arial,Helvetica,sans-serif;
  font-size:30px;
  font-weight:800;
  line-height:1;
}
.session-date-picker-head .modal-close-btn::before{font-size:32px;}
.exercise-modal-close::before{font-size:28px;}


/* v0.65 — Ajouter ma séance : uniquement les pastilles d’objectifs, comme sur l’accueil. */
#tab-seance #sessionObjectiveZone{
  margin:0 0 14px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#tab-seance #sessionObjectiveZone .session-program-label,
#tab-seance #sessionObjectiveZone .session-program-hint{
  display:none!important;
}
#tab-seance #sessionObjectiveZone .session-program-selector{
  margin:0!important;
  padding:0!important;
}

/* v0.67 — calendrier Accueil : le jour courant reste gris clair, même s'il est planifié ou contient une séance. */
#calendarModal .home-training-calendar .training-calendar-grid button.training-calendar-day.today,
#calendarModal .home-training-calendar .training-calendar-grid button.training-calendar-day.today.is-in-challenge,
#calendarModal .home-training-calendar .training-calendar-grid button.training-calendar-day.today.is-training-planned,
#calendarModal .home-training-calendar .training-calendar-grid button.training-calendar-day.today.has-session,
#calendarModal .home-training-calendar .training-calendar-grid button.training-calendar-day.today.has-free-session,
#calendarModal .home-training-calendar .training-calendar-grid button.training-calendar-day.today.has-both{
  background:#eeeeec!important;
  outline:none!important;
  box-shadow:none!important;
}
#calendarModal .home-training-calendar .training-calendar-grid button.training-calendar-day.today:not(.selected){
  border:1px solid transparent!important;
}
#calendarModal .home-training-calendar .training-calendar-grid button.training-calendar-day.today.selected{
  border:1px solid #ff6a1a!important;
}


/* v0.68 — Calendrier Accueil : correction du sélecteur réel de la modale.
   Le calendrier de la modale n'est pas imbriqué dans .home-training-calendar. */
#calendarModal .training-calendar-grid button.training-calendar-day.today,
#calendarModal .training-calendar-grid button.training-calendar-day.today.is-in-challenge,
#calendarModal .training-calendar-grid button.training-calendar-day.today.is-training-planned,
#calendarModal .training-calendar-grid button.training-calendar-day.today.has-session,
#calendarModal .training-calendar-grid button.training-calendar-day.today.has-free-session,
#calendarModal .training-calendar-grid button.training-calendar-day.today.has-both{
  background:#eeeeec!important;
  outline:none!important;
  box-shadow:none!important;
}
#calendarModal .training-calendar-grid button.training-calendar-day.today:not(.selected){
  border:1px solid transparent!important;
}
#calendarModal .training-calendar-grid button.training-calendar-day.today.selected{
  background:#eeeeec!important;
  border:1px solid #ff6a1a!important;
  box-shadow:none!important;
}


/* v0.69 — calendrier Accueil : recalcul du jour courant à chaque ouverture de la modale (voir app.js). */


/* v0.70 — Calendrier Accueil : repère Aujourd’hui forcé sur la cellule exacte du jour courant.
   Le fond est aussi posé en style inline par app.js afin qu’aucune règle historique ne puisse l’écraser. */
#calendarModal .training-calendar-grid button.training-calendar-day[data-today="true"]{
  background:#e8e8e6!important;
  outline:none!important;
  box-shadow:none!important;
}
#calendarModal .training-calendar-grid button.training-calendar-day[data-today="true"]:not(.selected){
  border:1px solid transparent!important;
}
#calendarModal .training-calendar-grid button.training-calendar-day[data-today="true"].selected{
  border:1px solid #ff6a1a!important;
}

/* v0.71 — Accueil : proposition 2, cartes d’objectifs élégantes et minimalistes. */
.home-objective-selector{
  gap:10px!important;
  margin:12px 24px 20px!important;
}
.home-objective-selector button{
  position:relative!important;
  justify-content:flex-start!important;
  gap:10px!important;
  min-height:58px!important;
  padding:10px 10px 10px 15px!important;
  overflow:hidden!important;
  border:1px solid #e5ddd7!important;
  border-radius:16px!important;
  background:#fff!important;
  color:#514740!important;
  box-shadow:0 5px 14px rgba(57,40,30,.055)!important;
}
.home-objective-selector button::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:0!important;
  bottom:0!important;
  width:4px!important;
  background:color-mix(in srgb,var(--objective-color) 30%,white)!important;
}
.home-objective-selector button::before{
  flex:0 0 20px!important;
  width:20px!important;
  height:20px!important;
  border:0!important;
  background:var(--objective-color)!important;
  box-shadow:none!important;
}
.home-objective-selector button.active{
  border-color:var(--objective-color)!important;
  background:color-mix(in srgb,var(--objective-color) 4%,white)!important;
  color:var(--objective-color)!important;
  box-shadow:0 7px 18px color-mix(in srgb,var(--objective-color) 12%,transparent)!important;
}
.home-objective-selector button.active::after{background:var(--objective-color)!important;width:5px!important}
.home-objective-selector button.active::before{background:var(--objective-color)!important;box-shadow:none!important}
@media(max-width:420px){
  .home-objective-selector{margin:10px 14px 18px!important;gap:7px!important}
  .home-objective-selector button{min-height:56px!important;padding:8px 6px 8px 11px!important;gap:7px!important;font-size:.69rem!important}
  .home-objective-selector button::before{flex-basis:18px!important;width:18px!important;height:18px!important}
}

/* v0.72 — Accueil : le sélecteur d’objectifs suit exactement la largeur du bloc principal. */
.home-objective-selector{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;
  margin:12px 0 20px!important;
  gap:10px!important;
}
.home-objective-selector button{
  width:100%!important;
  min-width:0!important;
  min-height:64px!important;
  padding:10px 14px 10px 18px!important;
  gap:11px!important;
}
@media(max-width:420px){
  .home-objective-selector{
    margin:10px 0 18px!important;
    gap:8px!important;
  }
  .home-objective-selector button{
    min-height:60px!important;
    padding:9px 8px 9px 12px!important;
    gap:8px!important;
    font-size:.72rem!important;
  }
}

/* v0.73 — Accueil : suppression des pastilles rondes de couleur dans les cartes d’objectifs. */
.home-objective-selector button::before{
  content:none!important;
  display:none!important;
  width:0!important;
  height:0!important;
  flex-basis:0!important;
}
.home-objective-selector button{
  gap:0!important;
  padding-left:18px!important;
}
@media(max-width:420px){
  .home-objective-selector button{
    gap:0!important;
    padding-left:14px!important;
  }
}

/* v0.74 — Accueil : centrage du texte dans les cartes d’objectifs. */
.home-objective-selector button{
  justify-content:center!important;
  text-align:center!important;
  padding-left:14px!important;
  padding-right:14px!important;
}
@media(max-width:420px){
  .home-objective-selector button{
    justify-content:center!important;
    text-align:center!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
}

/* v0.75 — Ajouter ma séance + Suivi : mêmes cartes d’objectifs que sur l’Accueil v0.74. */
#sessionObjectiveZone .session-program-selector,
#progressionCard .chart-objective-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;
  gap:10px!important;
  margin:0!important;
  padding:0 0 14px!important;
  overflow:visible!important;
}
#sessionObjectiveZone .session-program-selector button,
#progressionCard .chart-objective-tabs button{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:64px!important;
  margin:0!important;
  padding:10px 14px!important;
  overflow:hidden!important;
  border:1px solid #e5ddd7!important;
  border-radius:16px!important;
  background:#fff!important;
  color:#514740!important;
  box-shadow:0 5px 14px rgba(57,40,30,.055)!important;
  font:inherit!important;
  font-size:.82rem!important;
  font-weight:850!important;
  line-height:1.15!important;
  text-align:center!important;
  white-space:normal!important;
  gap:0!important;
}
#sessionObjectiveZone .session-program-selector button::before,
#progressionCard .chart-objective-tabs button::before{
  content:none!important;
  display:none!important;
  width:0!important;
  height:0!important;
  flex-basis:0!important;
}
#sessionObjectiveZone .session-program-selector button::after,
#progressionCard .chart-objective-tabs button::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:0!important;
  bottom:0!important;
  width:4px!important;
  background:color-mix(in srgb,var(--objective-color,var(--chart-objective-color,#f56a25)) 30%,white)!important;
}
#sessionObjectiveZone .session-program-selector button.active,
#progressionCard .chart-objective-tabs button.active{
  border-color:var(--objective-color,var(--chart-objective-color,#f56a25))!important;
  background:color-mix(in srgb,var(--objective-color,var(--chart-objective-color,#f56a25)) 4%,white)!important;
  color:var(--objective-color,var(--chart-objective-color,#f56a25))!important;
  box-shadow:0 7px 18px color-mix(in srgb,var(--objective-color,var(--chart-objective-color,#f56a25)) 12%,transparent)!important;
}
#sessionObjectiveZone .session-program-selector button.active::after,
#progressionCard .chart-objective-tabs button.active::after{
  width:5px!important;
  background:var(--objective-color,var(--chart-objective-color,#f56a25))!important;
}
#sessionObjectiveZone .session-program-selector button:disabled{opacity:.42!important;box-shadow:none!important}
@media(max-width:420px){
  #sessionObjectiveZone .session-program-selector,
  #progressionCard .chart-objective-tabs{gap:8px!important;padding-bottom:12px!important}
  #sessionObjectiveZone .session-program-selector button,
  #progressionCard .chart-objective-tabs button{
    min-height:60px!important;
    padding:9px 8px!important;
    font-size:.72rem!important;
  }
}

/* v0.76 — Ajouter ma séance : cartes d’objectifs sans bloc conteneur, largeur alignée sur le sélecteur de type. */
#tab-seance #sessionObjectiveZone,
#tab-seance #sessionObjectiveZone .session-program-selector{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  padding-right:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#tab-seance #sessionObjectiveZone .session-program-selector{
  gap:10px!important;
}
@media(max-width:420px){
  #tab-seance #sessionObjectiveZone .session-program-selector{gap:8px!important;}
}

/* v0.78 — Accueil : restauration de la salutation personnalisée au-dessus des objectifs. */
#tab-accueil > #homeWelcome.home-welcome-standalone{
  display:block!important;
}


/* v0.78 — Historique : mêmes cartes d’objectifs que l’Accueil, avec Séances libres. */
.history-objective-filter{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  width:100%!important;
  gap:10px!important;
  margin:4px 0 22px!important;
  padding:0!important;
}
.history-objective-filter button,
.history-objective-filter .history-free-filter{
  --history-color:var(--objective-color,#2e98c9);
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:64px!important;
  margin:0!important;
  padding:10px 14px!important;
  overflow:hidden!important;
  border:1px solid #e5ddd7!important;
  border-radius:16px!important;
  background:#fff!important;
  color:#514740!important;
  box-shadow:0 5px 14px rgba(57,40,30,.055)!important;
  font:inherit!important;
  font-size:.82rem!important;
  font-weight:850!important;
  line-height:1.15!important;
  text-align:center!important;
  white-space:normal!important;
  gap:0!important;
}
.history-objective-filter button::before{content:none!important;display:none!important;width:0!important;height:0!important;}
.history-objective-filter button::after{
  content:""!important;
  position:absolute!important;
  left:0!important;top:0!important;bottom:0!important;
  width:4px!important;
  background:color-mix(in srgb,var(--history-color) 30%,white)!important;
}
.history-objective-filter button.active{
  border-color:var(--history-color)!important;
  background:color-mix(in srgb,var(--history-color) 4%,white)!important;
  color:var(--history-color)!important;
  box-shadow:0 7px 18px color-mix(in srgb,var(--history-color) 12%,transparent)!important;
}
.history-objective-filter button.active::after{width:5px!important;background:var(--history-color)!important;}
.history-objective-filter .history-free-filter{--objective-color:#2e98c9!important;--history-color:#2e98c9!important;}
.history-objective-filter button:last-child:nth-child(odd){grid-column:auto!important;}
@media(max-width:420px){
  .history-objective-filter{gap:8px!important;}
  .history-objective-filter button,.history-objective-filter .history-free-filter{min-height:60px!important;padding:9px 8px!important;font-size:.72rem!important;}
}


/* v0.80 — Objectifs : fréquence quotidienne ou jours spécifiques. */
.objective-frequency-choice{display:grid;gap:10px;margin:4px 0 14px}.objective-frequency-option{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border:1px solid #e6ddd6;border-radius:16px;background:#fff;color:#342820}.objective-frequency-option span:last-child{display:flex;flex-direction:column;gap:2px}.objective-frequency-option strong{font-size:15px}.objective-frequency-option small{font-size:12px;color:#8b8079;font-weight:500}.objective-frequency-radio{width:22px;height:22px;border:2px solid #cfc7c1;border-radius:50%;flex:0 0 22px;position:relative}.objective-frequency-option.active .objective-frequency-radio{border-color:var(--objective-color,#ff641e)}.objective-frequency-option.active .objective-frequency-radio::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--objective-color,#ff641e)}.objective-frequency-option.active{border-color:color-mix(in srgb,var(--objective-color,#ff641e) 45%,#e6ddd6);background:color-mix(in srgb,var(--objective-color,#ff641e) 5%,#fff)}.multi-objective-weekdays.is-daily{opacity:.45}.multi-objective-weekdays.is-daily [data-objective-weekday]{pointer-events:none}.multi-objective-weekdays.is-daily::before{content:"Tous les jours sélectionnés";display:block;grid-column:1/-1;margin-bottom:4px;font-size:12px;color:#8b8079;font-weight:700}


/* v0.82 — Ajouter ma séance : étapes numérotées 1 → 2 → 3. */
#tab-seance .session-setup-step{margin:14px 0 16px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
#tab-seance .session-setup-title,
#tab-seance #sessionObjectiveZone .session-program-label{display:block!important;margin:0 0 10px!important;color:#302720!important;font-size:16px!important;font-weight:900!important;text-transform:none!important;letter-spacing:0!important}
#tab-seance .session-type-step .session-type-selector{margin:0!important;padding:0!important;gap:10px!important;background:transparent!important;border:0!important;border-radius:0!important}
#tab-seance .session-type-step .session-type-btn{min-height:58px!important;border:1px solid #e2dbd5!important;border-radius:16px!important;background:#fff!important;color:#514740!important;box-shadow:0 4px 12px rgba(57,40,30,.04)!important;font-size:14px!important}
#tab-seance .session-type-step .session-type-btn.active{border-color:var(--session-objective-color,#f56a25)!important;background:color-mix(in srgb,var(--session-objective-color,#f56a25) 6%,white)!important;color:var(--session-objective-color,#f56a25)!important;box-shadow:0 5px 14px color-mix(in srgb,var(--session-objective-color,#f56a25) 10%,transparent)!important}
#tab-seance .session-type-step .session-type-btn[data-session-type="free"].active{border-color:#2e98c9!important;background:#f5fbfe!important;color:#2e82ad!important}
#tab-seance #sessionObjectiveZone{margin:14px 0 16px!important}
#tab-seance #sessionObjectiveZone .session-program-selector{padding:0!important}
#tab-seance .session-date-zone{margin-top:14px!important}
#tab-seance #sessionDateField{display:block!important;margin:0!important}
#tab-seance #sessionDateField .session-date-label{display:none!important}
#tab-seance #sessionDateField .session-date-stepper{display:grid!important;grid-template-columns:52px minmax(0,1fr) 52px!important;gap:10px!important;width:100%!important}
#tab-seance #sessionDateField .session-date-step-btn{width:52px!important;height:60px!important;min-height:60px!important;border-radius:16px!important;font-size:30px!important}
#tab-seance #sessionDateField .session-date-picker-btn{min-height:60px!important;border-radius:16px!important;white-space:pre-line!important;line-height:1.18!important;font-size:15px!important;font-weight:850!important;text-align:center!important}
#tab-seance .session-last-workout-action{margin:2px 0 22px!important}
#tab-seance .session-last-workout-action .home-progress-open-btn{min-height:56px!important;padding:0 18px!important;border:1px solid color-mix(in srgb,var(--session-objective-color,#f56a25) 38%,#e8ddd6)!important;border-radius:16px!important;background:color-mix(in srgb,var(--session-objective-color,#f56a25) 5%,white)!important;color:#49382e!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:space-between!important;font-size:15px!important;font-weight:850!important}
#tab-seance .session-last-workout-action .session-last-chevron{color:var(--session-objective-color,#f56a25)!important;font-size:28px!important;line-height:1!important;font-weight:500!important}
#tab-seance .session-last-workout-action .home-progress-open-icon{display:none!important}
@media(max-width:420px){
 #tab-seance .session-setup-title,#tab-seance #sessionObjectiveZone .session-program-label{font-size:15px!important}
 #tab-seance #sessionDateField .session-date-stepper{grid-template-columns:46px minmax(0,1fr) 46px!important;gap:8px!important}
 #tab-seance #sessionDateField .session-date-step-btn{width:46px!important;height:58px!important;min-height:58px!important}
 #tab-seance #sessionDateField .session-date-picker-btn{min-height:58px!important;font-size:14px!important}
}


/* v0.82 — Repères visuels 1 / 2 / 3 du parcours Ajouter ma séance. */
#tab-seance .session-setup-title,#tab-seance #sessionObjectiveZone .session-program-label{display:flex!important;align-items:center!important;gap:9px!important}
#tab-seance .session-step-number{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:25px!important;height:25px!important;min-width:25px!important;border-radius:50%!important;background:var(--session-objective-color,#f56a25)!important;color:#fff!important;font-size:13px!important;font-weight:900!important;line-height:1!important;box-shadow:0 3px 8px color-mix(in srgb,var(--session-objective-color,#f56a25) 20%,transparent)!important}

/* v0.84 — Sélecteurs d’objectifs : bandeau supérieur coloré uniforme sur Accueil, Ajouter ma séance, Suivi et Historique. */
.home-objective-selector button,
#sessionObjectiveZone .session-program-selector button,
#progressionCard .chart-objective-tabs button,
.history-objective-filter button,
.history-objective-filter .history-free-filter{
  position:relative!important;
  overflow:hidden!important;
  border:1px solid #e5ddd7!important;
  border-radius:16px!important;
  background:#fff!important;
  color:#514740!important;
  box-shadow:0 5px 14px rgba(57,40,30,.055)!important;
}
.home-objective-selector button::before,
#sessionObjectiveZone .session-program-selector button::before,
#progressionCard .chart-objective-tabs button::before,
.history-objective-filter button::before{
  content:none!important;
  display:none!important;
}
.home-objective-selector button::after,
#sessionObjectiveZone .session-program-selector button::after,
#progressionCard .chart-objective-tabs button::after,
.history-objective-filter button::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:0!important;
  bottom:auto!important;
  width:auto!important;
  height:6px!important;
  background:var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25)))!important;
}
.home-objective-selector button.active,
#sessionObjectiveZone .session-program-selector button.active,
#progressionCard .chart-objective-tabs button.active,
.history-objective-filter button.active{
  border-color:var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25)))!important;
  background:color-mix(in srgb,var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25))) 4%,white)!important;
  color:var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25)))!important;
  box-shadow:0 7px 18px color-mix(in srgb,var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25))) 12%,transparent)!important;
}
.history-objective-filter .history-free-filter{--objective-color:#2e98c9!important;--history-color:#2e98c9!important;}

/* v0.84 — Sélection d’objectif renforcée : coche visible sur le bouton actif (proposition 2). */
.home-objective-selector button.active::before,
#sessionObjectiveZone .session-program-selector button.active::before,
#progressionCard .chart-objective-tabs button.active::before,
.history-objective-filter button.active::before,
.history-objective-filter .history-free-filter.active::before{
  content:"✓"!important;
  display:flex!important;
  position:absolute!important;
  top:9px!important;
  right:9px!important;
  left:auto!important;
  bottom:auto!important;
  width:21px!important;
  height:21px!important;
  min-width:21px!important;
  margin:0!important;
  padding:0!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:50%!important;
  background:var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25)))!important;
  color:#fff!important;
  font-size:13px!important;
  font-weight:950!important;
  line-height:1!important;
  box-shadow:0 2px 7px color-mix(in srgb,var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25))) 28%,transparent)!important;
  z-index:3!important;
  box-sizing:border-box!important;
}
.home-objective-selector button.active,
#sessionObjectiveZone .session-program-selector button.active,
#progressionCard .chart-objective-tabs button.active,
.history-objective-filter button.active{padding-right:32px!important;}
@media(max-width:420px){
  .home-objective-selector button.active::before,
  #sessionObjectiveZone .session-program-selector button.active::before,
  #progressionCard .chart-objective-tabs button.active::before,
  .history-objective-filter button.active::before,
  .history-objective-filter .history-free-filter.active::before{
    top:7px!important;right:7px!important;width:19px!important;height:19px!important;min-width:19px!important;font-size:12px!important;
  }
  .home-objective-selector button.active,
  #sessionObjectiveZone .session-program-selector button.active,
  #progressionCard .chart-objective-tabs button.active,
  .history-objective-filter button.active{padding-right:27px!important;}
}

/* v0.85 — Correction du petit artefact en haut à gauche des boutons d’objectif. */
.home-objective-selector button::after,
#sessionObjectiveZone .session-program-selector button::after,
#progressionCard .chart-objective-tabs button::after,
.history-objective-filter button::after,
.history-objective-filter .history-free-filter::after{
  left:1px!important;
  right:1px!important;
  top:1px!important;
  width:auto!important;
  height:5px!important;
  border-radius:14px 14px 0 0!important;
  clip-path:inset(0 round 14px 14px 0 0)!important;
}

/* v0.86 — Sélecteurs d’objectifs : bandeau propre, continu, sans pseudo-élément parasite. */
.home-objective-selector button,
#sessionObjectiveZone .session-program-selector button,
#progressionCard .chart-objective-tabs button,
.history-objective-filter button,
.history-objective-filter .history-free-filter{
  background:
    linear-gradient(
      to bottom,
      var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25))) 0 6px,
      #fff 6px 100%
    )!important;
  background-clip:border-box!important;
}
.home-objective-selector button.active,
#sessionObjectiveZone .session-program-selector button.active,
#progressionCard .chart-objective-tabs button.active,
.history-objective-filter button.active,
.history-objective-filter .history-free-filter.active{
  background:
    linear-gradient(
      to bottom,
      var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25))) 0 6px,
      color-mix(in srgb,var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25))) 7%,white) 6px 100%
    )!important;
}
.home-objective-selector button::after,
#sessionObjectiveZone .session-program-selector button::after,
#progressionCard .chart-objective-tabs button::after,
.history-objective-filter button::after,
.history-objective-filter .history-free-filter::after{
  content:none!important;
  display:none!important;
}

/* v0.87 — Historique : adaptation esthétique du sélecteur 2 colonnes. */
.history-objective-filter button,
.history-objective-filter .history-free-filter{
  min-height:62px!important;
  background:
    linear-gradient(
      to bottom,
      var(--objective-color,var(--history-color,#f56a25)) 0 4px,
      #fff 4px 100%
    )!important;
}
.history-objective-filter button.active,
.history-objective-filter .history-free-filter.active{
  background:
    linear-gradient(
      to bottom,
      var(--objective-color,var(--history-color,#f56a25)) 0 4px,
      color-mix(in srgb,var(--objective-color,var(--history-color,#f56a25)) 7%,white) 4px 100%
    )!important;
}
.history-objective-filter button.active::before,
.history-objective-filter .history-free-filter.active::before{
  top:11px!important;
  right:11px!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  font-size:12px!important;
}
@media(max-width:420px){
  .history-objective-filter button,
  .history-objective-filter .history-free-filter{min-height:58px!important;}
  .history-objective-filter button.active::before,
  .history-objective-filter .history-free-filter.active::before{
    top:9px!important;
    right:9px!important;
    width:19px!important;
    height:19px!important;
    min-width:19px!important;
  }
}

/* v0.88 — Historique : coche de sélection intégrée proprement dans le bouton. */
.history-objective-filter button.active::before,
.history-objective-filter .history-free-filter.active::before{
  top:50%!important;
  right:12px!important;
  transform:translateY(-50%)!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  font-size:12px!important;
}
.history-objective-filter button.active,
.history-objective-filter .history-free-filter.active{
  padding-right:38px!important;
}
@media(max-width:420px){
  .history-objective-filter button.active::before,
  .history-objective-filter .history-free-filter.active::before{
    top:50%!important;
    right:10px!important;
    transform:translateY(-50%)!important;
    width:19px!important;
    height:19px!important;
    min-width:19px!important;
  }
  .history-objective-filter button.active,
  .history-objective-filter .history-free-filter.active{padding-right:34px!important;}
}

/* v0.89 — Option 2 : sélecteurs épurés sans bandeau supérieur coloré. */
.home-objective-selector button,
#sessionObjectiveZone .session-program-selector button,
#progressionCard .chart-objective-tabs button,
.history-objective-filter button,
.history-objective-filter .history-free-filter{
  background:#fff!important;
  border:1px solid #e5ddd7!important;
}
.home-objective-selector button.active,
#sessionObjectiveZone .session-program-selector button.active,
#progressionCard .chart-objective-tabs button.active,
.history-objective-filter button.active,
.history-objective-filter .history-free-filter.active{
  border-color:var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25)))!important;
  background:color-mix(in srgb,var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25))) 7%,white)!important;
  color:var(--objective-color,var(--chart-objective-color,var(--history-color,#f56a25)))!important;
}

/* v0.90 — Ajouter ma séance : les repères 1/2/3 et « Séance objectif » restent orange.
   Les boutons d’objectifs conservent chacun leur propre couleur à la sélection. */
#tab-seance .session-step-number{
  background:#f56a25!important;
  box-shadow:0 3px 8px rgba(245,106,37,.20)!important;
}
#tab-seance .session-type-step .session-type-btn[data-session-type="objective"].active{
  border-color:#f56a25!important;
  background:color-mix(in srgb,#f56a25 6%,white)!important;
  color:#f56a25!important;
  box-shadow:0 5px 14px rgba(245,106,37,.10)!important;
}


/* v0.91 — Séance libre : la date devient l’étape 2 et adopte le bleu des séances libres. */
#workoutForm.session-free #sessionDateField .session-date-step-btn,
#workoutForm.session-free #sessionDateField .session-date-picker-btn{
  border-color:#2e98c9!important;
  color:#1487b7!important;
  background:#f5fbfe!important;
  box-shadow:0 0 0 3px rgba(46,152,201,.10)!important;
}
#workoutForm.session-free #sessionDateField .session-date-picker-btn{color:#173b61!important;}

/* v0.92 — Coche de sélection : centrée verticalement vers la droite sur tous les sélecteurs d’objectifs. */
.home-objective-selector button.active::before,
#sessionObjectiveZone .session-program-selector button.active::before,
#progressionCard .chart-objective-tabs button.active::before,
.history-objective-filter button.active::before,
.history-objective-filter .history-free-filter.active::before{
  top:50%!important;
  right:12px!important;
  bottom:auto!important;
  left:auto!important;
  transform:translateY(-50%)!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  font-size:12px!important;
}
.home-objective-selector button.active,
#sessionObjectiveZone .session-program-selector button.active,
#progressionCard .chart-objective-tabs button.active,
.history-objective-filter button.active,
.history-objective-filter .history-free-filter.active{
  padding-right:38px!important;
}
@media(max-width:420px){
  .home-objective-selector button.active::before,
  #sessionObjectiveZone .session-program-selector button.active::before,
  #progressionCard .chart-objective-tabs button.active::before,
  .history-objective-filter button.active::before,
  .history-objective-filter .history-free-filter.active::before{
    top:50%!important;
    right:10px!important;
    transform:translateY(-50%)!important;
    width:19px!important;
    height:19px!important;
    min-width:19px!important;
  }
  .home-objective-selector button.active,
  #sessionObjectiveZone .session-program-selector button.active,
  #progressionCard .chart-objective-tabs button.active,
  .history-objective-filter button.active,
  .history-objective-filter .history-free-filter.active{
    padding-right:34px!important;
  }
}


/* v0.93 — Menu : icône Historique à la même taille visuelle que Paramètres et Aide. */
.topbar-menu button span:first-child{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  font-size:20px!important;
  line-height:1!important;
}
.topbar-menu button[data-menu-tab="historique"] span:first-child{
  font-size:20px!important;
}

/* v0.94 — Menu : pictogramme Historique agrandi dans sa pastille. */
.topbar-menu button[data-menu-tab="historique"] span:first-child{
  font-size:27px!important;
  line-height:1!important;
}


/* v0.96 — Progrès des objectifs de déplacement : jours saisis, validés, écoulés et taux de réussite. */
.home-progress-daily-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);margin-top:2px;border:1px solid #eee5de;border-radius:16px;background:#fffaf7;overflow:hidden}
.home-progress-stat{min-width:0;padding:11px 8px;display:grid;grid-template-columns:auto auto;justify-content:center;align-items:center;column-gap:7px;text-align:center;border-right:1px solid #e8dfd8}
.home-progress-stat:last-child{border-right:0}
.home-progress-stat strong{font-size:18px;line-height:1;color:#2d2119}
.home-progress-stat>span:last-child{grid-column:1/-1;margin-top:5px;color:#7f756e;font-size:11px;font-weight:750}
.home-progress-stat-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:15px;font-weight:950}
.home-progress-stat-icon.is-calendar{color:#7aa4c1;background:#eef7fc}
.home-progress-stat-icon.is-valid{color:#fff;background:#22c55e}
.home-progress-stat-icon.is-clock{color:#ee6b2f;background:#fff0e8}
.home-progress-success{grid-column:1/-1;margin-top:2px;padding:12px 14px;border:1px solid #eee5de;border-radius:16px;background:#fff}
.home-progress-success-copy{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:#2d2119}
.home-progress-success-copy>strong{font-size:13px}
.home-progress-success-copy>span{font-size:20px;font-weight:950;white-space:nowrap}
.home-progress-success-copy small{display:block;margin-top:1px;color:#827871;font-size:10px;font-weight:700;text-align:right}
.home-progress-success-track{height:12px;margin-top:9px;border-radius:999px;background:#e8e7e5;overflow:hidden}
.home-progress-success-track>span{display:block;height:100%;border-radius:inherit;background:#22c55e}
@media(max-width:420px){
  .home-progress-daily-stats{border-radius:14px}
  .home-progress-stat{padding:10px 4px;column-gap:4px}
  .home-progress-stat strong{font-size:17px}
  .home-progress-stat>span:last-child{font-size:10px}
  .home-progress-stat-icon{width:22px;height:22px;font-size:13px}
  .home-progress-success{padding:11px 12px;border-radius:14px}
}


/* v0.97 — Icônes calendrier et horloge SVG, conformes à la proposition visuelle validée. */
.home-progress-stat-svg{width:17px;height:17px;display:block}
.home-progress-stat-icon.is-calendar,.home-progress-stat-icon.is-clock{background:transparent}
.home-progress-stat-icon.is-calendar{color:#7aa4c1}
.home-progress-stat-icon.is-clock{color:#ee6b2f}
@media(max-width:420px){.home-progress-stat-svg{width:16px;height:16px}}


/* v0.99 — compteur de séances dans l’Historique */
.history-session-count{
  margin:18px 0 20px;
  padding:10px 14px;
  border-radius:14px;
  background:#faf8f6;
  border:1px solid #eee7e1;
  color:#766d67;
  font-size:14px;
  font-weight:700;
  text-align:left;
}
.history-session-count strong{
  color:#332923;
  font-size:18px;
  margin-right:3px;
}

/* v1.00 — Historique : alignement horizontal avec les boutons d’objectifs */
#tab-historique #history{
  width:100%;
  margin-left:0;
  margin-right:0;
  box-sizing:border-box;
}
#tab-historique #history > .history-item,
#tab-historique #history > .history-session-count,
#tab-historique #history > .history-toggle,
#tab-historique #history > .muted{
  width:100%;
  margin-left:0;
  margin-right:0;
  box-sizing:border-box;
}
#tab-historique #history > .history-item{
  padding-left:0!important;
  padding-right:0!important;
}

/* v1.01 — Statistiques déplacement : trois icônes visuellement de même taille. */
.home-progress-stat-icon{width:28px;height:28px;font-size:20px;line-height:1}
.home-progress-stat-svg{width:28px;height:28px}
@media(max-width:420px){
  .home-progress-stat-icon{width:26px;height:26px;font-size:19px}
  .home-progress-stat-svg{width:26px;height:26px}
}


/* v1.02 — fenêtre Mes progrès : suppression de la colonne Progrès redondante. */
#progressGoalsModal .home-progress-goals-head,
#progressGoalsModal .home-progress-goal-row{
  grid-template-columns:minmax(0,1fr) minmax(110px,.52fr)!important;
}
#progressGoalsModal .home-progress-goals-head span:first-child{grid-column:2!important;text-align:center!important}
#progressGoalsModal .home-progress-goal-row .current{text-align:center!important}
@media(max-width:420px){
  #progressGoalsModal .home-progress-goals-head,
  #progressGoalsModal .home-progress-goal-row{grid-template-columns:minmax(0,1fr) 112px!important;gap:10px!important}
}

/* v1.07 — Suivi : état sans données compact et graphique entièrement encadré. */
#tab-suivi #chartSummary:empty,
#tab-suivi #performanceKpis:empty,
#tab-suivi #performanceSequence:empty{
  display:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  min-height:0!important;
}
#progressionCard #goalProgressDashboard[hidden] + #chart{
  border-radius:20px!important;
  box-shadow:inset 0 1px #eadfd7,inset 0 -1px #eadfd7,inset 1px 0 #eadfd7,inset -1px 0 #eadfd7!important;
}

/* v1.09 — Ajouter ma séance : espacement uniforme entre les étapes 1, 2 et 3. */
#tab-seance #workoutForm{
  padding-top:0!important;
}

/* v1.11 — durée séance libre : aucun chiffre indicatif pendant la saisie */
#freeSessionHours:focus::placeholder,
#freeSessionMinutes:focus::placeholder,
#freeSessionSeconds:focus::placeholder{
  color:transparent!important;
  opacity:0!important;
}

/* v1.15 — Calendrier : légende compacte sur une seule colonne. */
#calendarModal .calendar-legend-v032{
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  padding:12px 14px!important;
  margin-top:14px!important;
}
#calendarModal .calendar-legend-v032>div{
  width:100%!important;
  padding:0!important;
  border:0!important;
}
#calendarModal .calendar-legend-v032>div+div{border-left:0!important}
#calendarModal .calendar-legend-heading{
  margin:0 0 5px!important;
  font-size:11px!important;
}
#calendarModal .calendar-objective-legend{padding:0!important}
#calendarModal .calendar-objective-legend-list{
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
}
#calendarModal .calendar-objective-legend-pair{display:block!important}
#calendarModal .calendar-objective-legend-pair .calendar-legend-row,
#calendarModal .calendar-free-legend-block .calendar-legend-row,
#calendarModal .calendar-today-legend-block .calendar-legend-row{
  min-height:18px!important;
  margin:0!important;
  gap:7px!important;
  font-size:10px!important;
  white-space:normal!important;
}
#calendarModal .calendar-free-legend-block,
#calendarModal .calendar-today-legend-block{padding-top:2px!important}
#calendarModal .calendar-free-legend-block .calendar-free-status-marker{
  flex:0 0 12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;border-width:2px!important;
}
#calendarModal .calendar-today-legend-block .calendar-today-ring,
#calendarModal .calendar-selected-ring{
  flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;
}


/* v1.16 — Calendrier : Objectifs à gauche, trois repères à droite sur une seule colonne. */
#calendarModal .calendar-legend-v032{
  display:grid!important;
  grid-template-columns:minmax(0,1.35fr) minmax(120px,.9fr)!important;
  column-gap:16px!important;
  align-items:start!important;
  padding:12px 14px!important;
}
#calendarModal .calendar-legend-v032>.calendar-objective-legend,
#calendarModal .calendar-legend-v032>.calendar-right-legend-column{
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  border:0!important;
}
#calendarModal .calendar-right-legend-column{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  padding-left:12px!important;
  border-left:1px solid #e5e0dc!important;
}
#calendarModal .calendar-right-legend-column .calendar-free-legend-block,
#calendarModal .calendar-right-legend-column .calendar-today-legend-block{
  width:100%!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
}
#calendarModal .calendar-right-legend-column .calendar-legend-row{
  min-height:20px!important;
  margin:0 0 4px!important;
  gap:7px!important;
  font-size:10px!important;
  white-space:nowrap!important;
}
@media(max-width:350px){
  #calendarModal .calendar-legend-v032{grid-template-columns:minmax(0,1.3fr) minmax(105px,.8fr)!important;column-gap:10px!important;padding:10px!important}
  #calendarModal .calendar-right-legend-column{padding-left:8px!important}
  #calendarModal .calendar-right-legend-column .calendar-legend-row{font-size:9px!important;gap:5px!important}
}

/* v1.19 — séance libre enregistrée : même logique de récapitulatif que les séances objectif */
#freeSessionEditor[hidden],#freeSessionSavedSummary[hidden]{display:none!important}
.free-saved-recap{padding:18px 0 16px}
.free-saved-name{font-size:20px;font-weight:800;color:#2f251f}
.free-saved-duration{display:inline-block;margin-top:10px;padding:8px 12px;border:1px solid #d8eaf3;border-radius:12px;background:#fff;font-weight:800;color:#2379a5}
.free-saved-note{margin-top:12px;color:#7d746e;line-height:1.4}
.free-saved-actions{margin-top:8px;padding-top:16px;border-top:1px solid #e8e0db}
.free-saved-actions #editSavedFreeSession{padding:8px 11px;font-size:12px}

/* v1.25 — Android : revenir au comportement système standard.
   Aucune couche n’est dessinée dans la zone de la barre d’état ; le thème clair
   permet à Android d’afficher ses icônes sombres sur la barre système blanche. */

/* v1.27 — Suivi : nouvelle présentation visuelle validée. Limité à l’onglet Suivi. */
#tab-suivi #progressionCard{
  padding:24px 24px 22px!important;
  border:0!important;
  border-radius:28px!important;
  background:#fff!important;
  box-shadow:0 10px 30px rgba(54,39,30,.06)!important;
}
#tab-suivi #progressionCard .card-section-title{
  margin:0 0 20px!important;
  color:#302720!important;
  font-size:28px!important;
  font-weight:950!important;
  letter-spacing:-.025em!important;
}
#tab-suivi #progressionCard .chart-objective-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  padding:0 0 22px!important;
}
#tab-suivi #progressionCard .chart-objective-tabs button{
  min-height:96px!important;
  padding:18px 14px!important;
  border:1px solid #ded8d3!important;
  border-radius:20px!important;
  background:#fff!important;
  color:#544a44!important;
  box-shadow:0 5px 14px rgba(57,40,30,.045)!important;
  font-size:14px!important;
  font-weight:900!important;
  line-height:1.25!important;
}
#tab-suivi #progressionCard .chart-objective-tabs button::after{display:none!important;content:none!important}
#tab-suivi #progressionCard .chart-objective-tabs button.active{
  border:1.5px solid var(--chart-objective-color,#ff6b21)!important;
  background:color-mix(in srgb,var(--chart-objective-color,#ff6b21) 6%,white)!important;
  color:var(--chart-objective-color,#ff6b21)!important;
  box-shadow:0 6px 18px color-mix(in srgb,var(--chart-objective-color,#ff6b21) 12%,transparent)!important;
  padding-right:36px!important;
}
#tab-suivi #progressionCard .chart-objective-tabs button.active::before{
  content:"✓"!important;
  display:flex!important;
  position:absolute!important;
  top:50%!important;
  right:14px!important;
  transform:translateY(-50%)!important;
  width:27px!important;
  height:27px!important;
  min-width:27px!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:50%!important;
  background:var(--chart-objective-color,#ff6b21)!important;
  color:#fff!important;
  font-size:16px!important;
  font-weight:950!important;
  box-shadow:0 3px 8px color-mix(in srgb,var(--chart-objective-color,#ff6b21) 22%,transparent)!important;
}
#tab-suivi #v487-exercise-label,
#tab-suivi #progressionCard .chart-period-label{
  margin:0 0 9px!important;
  color:#8b7b6f!important;
  font-size:15px!important;
  font-weight:850!important;
}
#tab-suivi #progressionCard #chartTabs{padding:0 0 18px!important}
#tab-suivi #progressionCard #chartTabs .chart-tabs-row{gap:10px!important;min-height:0!important}
#tab-suivi #progressionCard #chartTabs .chart-tab{
  min-height:40px!important;
  padding:9px 16px!important;
  border:1px solid #dfd5cd!important;
  border-radius:999px!important;
  background:#fffaf6!important;
  color:#74675e!important;
  font-size:13px!important;
  font-weight:850!important;
  box-shadow:none!important;
}
#tab-suivi #progressionCard #chartTabs .chart-tab.active{
  border-color:var(--chart-objective-color,#ff6b21)!important;
  background:var(--chart-objective-color,#ff6b21)!important;
  color:#fff!important;
}
#tab-suivi #progressionCard .chart-period-wrap{margin:0 0 18px!important}
#tab-suivi #progressionCard .chart-periods{gap:9px!important;padding:0!important;overflow:visible!important;flex-wrap:wrap!important}
#tab-suivi #progressionCard .chart-period{
  min-height:38px!important;
  padding:8px 15px!important;
  border:1px solid #ded5ce!important;
  border-radius:999px!important;
  background:#fffaf6!important;
  color:#766a62!important;
  font-size:12px!important;
  font-weight:850!important;
}
#tab-suivi #progressionCard .chart-period.active{
  border-color:#34271f!important;
  background:#34271f!important;
  color:#fff!important;
}
#tab-suivi #progressionCard #chartSummary{display:none!important}
#tab-suivi #progressionCard .performance-kpis{
  gap:10px!important;
  margin:0 0 16px!important;
}
#tab-suivi #progressionCard .performance-kpi{
  min-height:94px!important;
  padding:14px 13px!important;
  border:1px solid #e5e1dd!important;
  border-radius:17px!important;
  background:#fff!important;
  box-shadow:0 3px 10px rgba(57,40,30,.025)!important;
}
#tab-suivi #progressionCard .performance-kpi-label{
  margin-bottom:6px!important;
  color:#8a8581!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.035em!important;
}
#tab-suivi #progressionCard .performance-kpi-value{
  color:#1f1d1b!important;
  font-size:22px!important;
  font-weight:950!important;
}
#tab-suivi #progressionCard .performance-kpi-value.performance-change{color:#26904d!important}
#tab-suivi #progressionCard .performance-kpi-sub{margin-top:7px!important;color:#9b9590!important;font-size:10px!important}
#tab-suivi #progressionCard .performance-sequence{
  margin:0 0 18px!important;
  padding:13px 15px!important;
  border:1px solid #e8e4e0!important;
  border-radius:14px!important;
  background:#fdfcfb!important;
  color:#675e58!important;
  font-size:13px!important;
}
#tab-suivi #progressionCard .goal-progress-dashboard{
  margin-top:0!important;
  padding:22px 20px 18px!important;
  border:1px solid #e2d8d0!important;
  border-radius:23px!important;
  background:#fff!important;
  box-shadow:none!important;
}
#tab-suivi #progressionCard .goal-progress-title{
  margin:0 0 18px!important;
  color:#302720!important;
  font-size:21px!important;
  font-weight:950!important;
  letter-spacing:-.015em!important;
}
#tab-suivi #progressionCard .goal-progress-main{
  grid-template-columns:minmax(0,1fr) 112px!important;
  gap:14px!important;
}
#tab-suivi #progressionCard .goal-progress-ring{
  width:min(245px,100%)!important;
  background:conic-gradient(var(--goal-objective-color,#ff6b21) var(--goal-progress),color-mix(in srgb,var(--goal-objective-color,#ff6b21) 18%,white) 0)!important;
  box-shadow:none!important;
}
#tab-suivi #progressionCard .goal-progress-ring::before{inset:28px!important;background:#fff!important}
#tab-suivi #progressionCard .goal-progress-ring-center strong{
  color:var(--goal-objective-color,#ff6b21)!important;
  font-size:47px!important;
  font-weight:950!important;
}
#tab-suivi #progressionCard .goal-progress-ring-center span{color:#3e332d!important;font-size:13px!important;font-weight:900!important}
#tab-suivi #progressionCard .goal-progress-remaining span{color:#81766f!important;font-size:13px!important;font-weight:850!important}
#tab-suivi #progressionCard .goal-progress-remaining strong{color:var(--goal-objective-color,#ff6b21)!important;font-size:36px!important;font-weight:950!important}
#tab-suivi #progressionCard .goal-progress-remaining small{color:#81766f!important;font-size:12px!important;font-weight:800!important}
#tab-suivi #progressionCard .goal-progress-context{margin-top:14px!important}
#tab-suivi #progressionCard .mini-history-title{
  margin-top:18px!important;
  padding-top:16px!important;
  border-top:1px dashed #e8ded7!important;
  color:#665a52!important;
  font-size:13px!important;
}
#tab-suivi #progressionCard #chart{
  margin-top:0!important;
  border-radius:18px!important;
  box-shadow:none!important;
}
@media(max-width:430px){
  #tab-suivi #progressionCard{padding:22px 18px 20px!important;border-radius:24px!important}
  #tab-suivi #progressionCard .card-section-title{font-size:26px!important}
  #tab-suivi #progressionCard .chart-objective-tabs{gap:9px!important}
  #tab-suivi #progressionCard .chart-objective-tabs button{min-height:91px!important;padding:14px 9px!important;font-size:12px!important}
  #tab-suivi #progressionCard .chart-objective-tabs button.active{padding-right:29px!important}
  #tab-suivi #progressionCard .chart-objective-tabs button.active::before{right:7px!important;width:23px!important;height:23px!important;min-width:23px!important;font-size:13px!important}
  #tab-suivi #progressionCard #chartTabs .chart-tabs-row{gap:8px!important}
  #tab-suivi #progressionCard #chartTabs .chart-tab{padding:8px 13px!important;font-size:12px!important}
  #tab-suivi #progressionCard .chart-periods{gap:7px!important}
  #tab-suivi #progressionCard .chart-period{padding:8px 12px!important;font-size:11px!important}
  #tab-suivi #progressionCard .performance-kpis{gap:8px!important}
  #tab-suivi #progressionCard .performance-kpi{min-height:90px!important;padding:13px 10px!important}
  #tab-suivi #progressionCard .performance-kpi-value{font-size:20px!important}
  #tab-suivi #progressionCard .goal-progress-dashboard{padding:20px 15px 17px!important}
  #tab-suivi #progressionCard .goal-progress-main{grid-template-columns:minmax(0,1fr) 90px!important;gap:7px!important}
  #tab-suivi #progressionCard .goal-progress-ring{width:min(218px,100%)!important}
  #tab-suivi #progressionCard .goal-progress-ring::before{inset:25px!important}
  #tab-suivi #progressionCard .goal-progress-ring-center strong{font-size:42px!important}
  #tab-suivi #progressionCard .goal-progress-remaining strong{font-size:31px!important}
}


/* v1.27 — Suivi : synthèse par objectif et par exercice. */
#tab-suivi #progressionCard .objective-exercise-overview{display:grid;gap:18px;margin:0 0 22px}
#tab-suivi #progressionCard .objective-overview-card{overflow:hidden;border:1px solid #e6ddd6;border-radius:22px;background:#fff;box-shadow:0 5px 16px rgba(57,40,30,.035)}
#tab-suivi #progressionCard .objective-overview-heading{display:flex;align-items:center;gap:10px;padding:17px 18px 14px;border-bottom:1px solid #eee7e2;background:color-mix(in srgb,var(--overview-color,#f56a25) 4%,white)}
#tab-suivi #progressionCard .objective-overview-dot{width:11px;height:11px;flex:0 0 11px;border-radius:50%;background:var(--overview-color,#f56a25)}
#tab-suivi #progressionCard .objective-overview-heading h3{margin:0;color:#342b25;font-size:18px;font-weight:950;letter-spacing:-.015em}
#tab-suivi #progressionCard .objective-overview-session-count{margin-left:auto;white-space:nowrap;color:#8a7e75;font-size:13px;font-weight:850}
#tab-suivi #progressionCard .objective-overview-rows{padding:0 18px}
#tab-suivi #progressionCard .objective-exercise-row{display:block;width:100%;padding:18px 0;border:0;border-bottom:1px solid #eee7e2;border-radius:0;background:transparent;color:inherit;text-align:left;box-shadow:none}
#tab-suivi #progressionCard .objective-exercise-row:last-child{border-bottom:0}
#tab-suivi #progressionCard .objective-exercise-row-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:13px}
#tab-suivi #progressionCard .objective-exercise-row-head strong{overflow:hidden;color:#292521;font-size:17px;font-weight:900;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
#tab-suivi #progressionCard .objective-exercise-row-head span{color:#292521;font-size:18px;font-weight:900}
#tab-suivi #progressionCard .objective-exercise-row-progress{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:8px}
#tab-suivi #progressionCard .objective-exercise-track{height:10px;overflow:hidden;border-radius:999px;background:#eeeae7}
#tab-suivi #progressionCard .objective-exercise-track span{display:block;height:100%;border-radius:inherit;background:var(--overview-color,#f56a25);transition:width .25s ease}
#tab-suivi #progressionCard .objective-exercise-row-progress small{display:block;width:100%;color:#7c746e;font-size:13px;font-weight:700;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
#tab-suivi #progressionCard .objective-exercise-row.active{position:relative}
#tab-suivi #progressionCard .objective-exercise-row.active::before{content:"";position:absolute;left:-18px;top:13px;bottom:13px;width:3px;border-radius:999px;background:var(--overview-color,#f56a25)}
#tab-suivi #progressionCard .objective-exercise-empty{padding:18px 0;color:#8e847d;font-size:13px}
/* Les anciens sélecteurs restent dans le DOM pour la compatibilité du code, mais l'utilisateur choisit désormais directement dans les cartes ci-dessus. */
#tab-suivi #progressionCard .chart-objective-tabs,#tab-suivi #v487-exercise-label,#tab-suivi #progressionCard #chartTabs{display:none!important}
#tab-suivi #progressionCard .chart-period-wrap{padding-top:2px;border-top:1px solid #eee7e2}
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-exercise-overview{gap:15px;margin-bottom:20px}
  #tab-suivi #progressionCard .objective-overview-heading{padding:15px 14px 13px}
  #tab-suivi #progressionCard .objective-overview-heading h3{font-size:17px}
  #tab-suivi #progressionCard .objective-overview-rows{padding:0 14px}
  #tab-suivi #progressionCard .objective-exercise-row{padding:16px 0}
  #tab-suivi #progressionCard .objective-exercise-row.active::before{left:-14px}
  #tab-suivi #progressionCard .objective-exercise-row-head strong{font-size:16px}
  #tab-suivi #progressionCard .objective-exercise-row-head span{font-size:16px}
  #tab-suivi #progressionCard .objective-exercise-row-progress{grid-template-columns:minmax(0,1fr);gap:7px}
  #tab-suivi #progressionCard .objective-exercise-row-progress small{font-size:12px;line-height:1.4}
}


/* v1.34 — Suivi : synthèse compacte validée, trois objectifs visibles sans défilement inutile. */
#tab-suivi #progressionCard{
  padding:18px 18px 16px!important;
}
#tab-suivi #progressionCard .card-section-title{
  margin-bottom:14px!important;
  font-size:26px!important;
}
#tab-suivi #progressionCard .objective-exercise-overview{
  display:grid!important;
  gap:12px!important;
}
#tab-suivi #progressionCard .objective-overview-card{
  border-radius:18px!important;
  box-shadow:0 4px 13px rgba(57,40,30,.03)!important;
}
#tab-suivi #progressionCard .objective-overview-heading{
  gap:9px!important;
  min-height:48px!important;
  padding:10px 14px!important;
}
#tab-suivi #progressionCard .objective-overview-dot{
  width:10px!important;height:10px!important;flex-basis:10px!important;
}
#tab-suivi #progressionCard .objective-overview-heading h3{
  min-width:0!important;
  overflow:hidden!important;
  font-size:16px!important;
  line-height:1.1!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#tab-suivi #progressionCard .objective-overview-session-count{
  font-size:12px!important;
}
#tab-suivi #progressionCard .objective-overview-rows{
  padding:0 14px!important;
}
#tab-suivi #progressionCard .objective-exercise-row{
  display:grid!important;
  grid-template-columns:minmax(62px,.85fr) 36px minmax(72px,1.15fr) minmax(92px,1.4fr)!important;
  align-items:center!important;
  gap:7px!important;
  min-height:48px!important;
  padding:8px 0!important;
}
#tab-suivi #progressionCard .objective-exercise-row-head,
#tab-suivi #progressionCard .objective-exercise-row-progress{
  display:contents!important;
}
#tab-suivi #progressionCard .objective-exercise-row-head strong{
  min-width:0!important;
  overflow:hidden!important;
  font-size:13px!important;
  line-height:1.15!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#tab-suivi #progressionCard .objective-exercise-row-head span{
  font-size:12.5px!important;
  line-height:1!important;
  text-align:right!important;
  white-space:nowrap!important;
}
#tab-suivi #progressionCard .objective-exercise-track{
  width:100%!important;
  height:8px!important;
  border-radius:999px!important;
  background:#ece9e6!important;
  overflow:hidden!important;
}
#tab-suivi #progressionCard .objective-exercise-track span{
  display:block!important;
  height:100%!important;
  border-radius:999px!important;
  background:var(--overview-color,#f56a25)!important;
}
#tab-suivi #progressionCard .objective-exercise-row-progress small{
  min-width:0!important;
  overflow:visible!important;
  color:#7c746e!important;
  font-size:10.5px!important;
  font-weight:750!important;
  line-height:1.15!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
}
#tab-suivi #progressionCard .objective-exercise-row.active::before{
  left:-14px!important;
  top:8px!important;
  bottom:8px!important;
  width:3px!important;
}
#tab-suivi #progressionCard .objective-exercise-empty{
  padding:12px 0!important;
  font-size:12px!important;
}
@media(max-width:390px){
  #tab-suivi #progressionCard{padding:16px 14px 14px!important}
  #tab-suivi #progressionCard .card-section-title{margin-bottom:12px!important;font-size:25px!important}
  #tab-suivi #progressionCard .objective-exercise-overview{gap:10px!important}
  #tab-suivi #progressionCard .objective-overview-heading{min-height:45px!important;padding:9px 11px!important}
  #tab-suivi #progressionCard .objective-overview-heading h3{font-size:15px!important}
  #tab-suivi #progressionCard .objective-overview-session-count{font-size:11px!important}
  #tab-suivi #progressionCard .objective-overview-rows{padding:0 11px!important}
  #tab-suivi #progressionCard .objective-exercise-row{
    grid-template-columns:minmax(56px,.8fr) 34px minmax(62px,1fr) minmax(90px,1.45fr)!important;
    gap:6px!important;
    min-height:45px!important;
    padding:7px 0!important;
  }
  #tab-suivi #progressionCard .objective-exercise-row-head strong{font-size:12px!important}
  #tab-suivi #progressionCard .objective-exercise-row-head span{font-size:11.5px!important}
  #tab-suivi #progressionCard .objective-exercise-track{height:7px!important}
  #tab-suivi #progressionCard .objective-exercise-row-progress small{font-size:9.5px!important;line-height:1.12!important}
  #tab-suivi #progressionCard .objective-exercise-row.active::before{left:-11px!important}
}

/* v1.35 — Ajouter ma séance, étape 2 uniquement : couleur de chaque objectif visible avant sélection. */
#tab-seance #sessionObjectiveZone .session-program-selector button:not(.active){
  border-color:color-mix(in srgb,var(--objective-color,#f56a25) 52%,white)!important;
  background:color-mix(in srgb,var(--objective-color,#f56a25) 8%,white)!important;
  color:var(--objective-color,#f56a25)!important;
}

/* v1.36 — Suivi : récapitulatif de la cible sous chaque objectif. */
#tab-suivi #progressionCard .objective-recap{
  margin:0 10px 10px;padding:10px 12px;border-radius:14px;
  background:color-mix(in srgb,var(--overview-color,#f56a25) 7%,white);
  border:1px solid color-mix(in srgb,var(--overview-color,#f56a25) 18%,white);
}
#tab-suivi #progressionCard .objective-recap-title{color:var(--overview-color,#f56a25);font-size:12px;font-weight:950;line-height:1.15}
#tab-suivi #progressionCard .objective-recap-subtitle{margin-top:2px;color:#80766f;font-size:9.5px;font-weight:700}
#tab-suivi #progressionCard .objective-recap-content{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:7px}
#tab-suivi #progressionCard .objective-recap-items{display:flex;flex-wrap:wrap;gap:5px}
#tab-suivi #progressionCard .objective-recap-item{min-width:58px;padding:5px 7px;border:1px solid color-mix(in srgb,var(--overview-color,#f56a25) 28%,white);border-radius:8px;background:rgba(255,255,255,.7);text-align:center}
#tab-suivi #progressionCard .objective-recap-item strong,#tab-suivi #progressionCard .objective-recap-item span{display:block;white-space:nowrap}
#tab-suivi #progressionCard .objective-recap-item strong{font-size:9px;font-weight:900;color:#342b25}
#tab-suivi #progressionCard .objective-recap-item span{margin-top:1px;font-size:9px;font-weight:800;color:#5f5751}
#tab-suivi #progressionCard .objective-recap-total{padding-left:10px;border-left:1px solid color-mix(in srgb,var(--overview-color,#f56a25) 22%,white);white-space:nowrap;text-align:left}
#tab-suivi #progressionCard .objective-recap-total small{display:block;color:#80766f;font-size:8.5px;font-weight:700}
#tab-suivi #progressionCard .objective-recap-total strong{display:block;margin-top:2px;color:var(--overview-color,#f56a25);font-size:10.5px;font-weight:950}
@media(max-width:390px){
  #tab-suivi #progressionCard .objective-recap{margin:0 7px 8px;padding:8px 9px}
  #tab-suivi #progressionCard .objective-recap-content{gap:7px}
  #tab-suivi #progressionCard .objective-recap-item{padding:4px 5px}
  #tab-suivi #progressionCard .objective-recap-total{padding-left:7px}
}


/* v1.37 — Suivi : récapitulatif accessible via bouton + fenêtre modale. */
#tab-suivi #progressionCard .objective-recap{display:none!important}
#tab-suivi #progressionCard .objective-recap-button{
  width:calc(100% - 14px);margin:4px 7px 8px;padding:8px 11px;border:1px solid color-mix(in srgb,var(--overview-color,#f56a25) 28%,white);
  border-radius:10px;background:color-mix(in srgb,var(--overview-color,#f56a25) 7%,white);color:var(--overview-color,#f56a25);
  display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;font-weight:900;line-height:1.2;text-align:left;cursor:pointer
}
#tab-suivi #progressionCard .objective-recap-button span:last-child{font-size:20px;line-height:1;font-weight:500}
body.modal-open{overflow:hidden}
.objective-recap-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:22px}
.objective-recap-modal.open{display:flex}
.objective-recap-modal-backdrop{position:absolute;inset:0;background:rgba(31,24,20,.42);backdrop-filter:blur(2px)}
.objective-recap-modal-panel{position:relative;z-index:1;width:min(92vw,420px);max-height:80vh;overflow:auto;padding:22px 18px 18px;border-radius:20px;background:#fff;box-shadow:0 18px 55px rgba(33,22,15,.22);border:1px solid color-mix(in srgb,var(--overview-color,#f56a25) 22%,white)}
.objective-recap-modal-close{position:absolute;right:12px;top:10px;width:34px;height:34px;border:0;background:transparent;color:#756c66;font-size:28px;line-height:1;cursor:pointer}
.objective-recap-modal-kicker{padding-right:42px;color:var(--overview-color,#f56a25);font-size:12px;font-weight:950}
.objective-recap-modal-panel h3{margin:4px 42px 2px 0;color:#302721;font-size:22px;line-height:1.15}
.objective-recap-modal-panel p{margin:0 0 14px;color:#81776f;font-size:12px;font-weight:700}
.objective-recap-modal-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.objective-recap-modal-item{padding:10px 8px;border-radius:11px;border:1px solid color-mix(in srgb,var(--overview-color,#f56a25) 26%,white);background:color-mix(in srgb,var(--overview-color,#f56a25) 5%,white);text-align:center}
.objective-recap-modal-item strong,.objective-recap-modal-item span{display:block}
.objective-recap-modal-item strong{color:#342b25;font-size:12px;font-weight:900}
.objective-recap-modal-item span{margin-top:2px;color:#5f5751;font-size:11px;font-weight:800}
.objective-recap-modal-total{margin-top:14px;padding-top:12px;border-top:1px solid #ece5e0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.objective-recap-modal-total span{color:#81776f;font-size:11px;font-weight:700}
.objective-recap-modal-total strong{color:var(--overview-color,#f56a25);font-size:13px;font-weight:950;text-align:right}
@media(max-width:360px){.objective-recap-modal-items{grid-template-columns:1fr 1fr}.objective-recap-modal-panel{padding:20px 14px 14px}}


/* v1.38 — Récapitulatif objectif : proposition 1, simple et claire. */
.objective-recap-modal-panel{width:min(92vw,430px);max-height:86vh;padding:20px 18px 18px;border-radius:20px}
.objective-recap-modal-panel p{margin:3px 0 12px;font-size:12px}
.objective-recap-modal-items{display:flex;flex-direction:column;gap:7px}
.objective-recap-modal-item{padding:8px 10px;border-radius:12px;text-align:left;background:color-mix(in srgb,var(--overview-color,#f56a25) 4%,white)}
.objective-recap-modal-item-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.objective-recap-modal-index{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:var(--overview-color,#f56a25);color:#fff;font-size:11px;font-weight:950}
.objective-recap-modal-item-head strong{font-size:12px;color:#342b25;font-weight:950}
.objective-recap-modal-metrics{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;border-radius:10px;background:#fff;overflow:hidden}
.objective-recap-modal-metric{min-width:0;padding:7px 8px;text-align:center}
.objective-recap-modal-metric + .objective-recap-modal-metric{border-left:1px solid color-mix(in srgb,var(--overview-color,#f56a25) 22%,white)}
.objective-recap-modal-metric b{display:block;color:var(--overview-color,#f56a25);font-size:18px;line-height:1.05;font-weight:950;white-space:normal;overflow-wrap:anywhere}
.objective-recap-modal-metric small{display:block;margin-top:2px;color:#6f655e;font-size:10px;line-height:1.15;font-weight:750}
.objective-recap-modal-total{display:none!important}
.objective-recap-modal-validation{margin-top:10px;padding:9px 10px;border-radius:11px;background:color-mix(in srgb,var(--overview-color,#f56a25) 7%,white)}
.objective-recap-modal-validation strong{display:block;color:var(--overview-color,#f56a25);font-size:11px;font-weight:950}
.objective-recap-modal-validation span{display:block;margin-top:2px;color:#756b64;font-size:9.5px;line-height:1.25;font-weight:650}
.objective-recap-modal-dismiss{display:block;width:100%;margin-top:10px;padding:10px 14px;border:0;border-radius:999px;background:var(--overview-color,#f56a25);color:#fff;font-size:12px;font-weight:950;cursor:pointer}
@media(max-width:360px){.objective-recap-modal-panel{padding:18px 12px 12px}.objective-recap-modal-metric b{font-size:16px}.objective-recap-modal-metric small{font-size:9px}}


/* v1.40 — Récapitulatif objectif : nom de l’exercice à gauche des métriques, sans pastille numérotée. */
.objective-recap-modal-item{display:grid;grid-template-columns:minmax(86px,0.72fr) minmax(0,2fr);align-items:stretch;gap:8px;padding:8px 10px}
.objective-recap-modal-item-head{display:flex;align-items:center;margin:0;padding:0 4px}
.objective-recap-modal-item-head strong{font-size:13px;line-height:1.15}
.objective-recap-modal-index{display:none!important}
.objective-recap-modal-metrics{width:100%}
@media(max-width:360px){.objective-recap-modal-item{grid-template-columns:minmax(74px,.65fr) minmax(0,2fr);gap:5px;padding:7px 8px}.objective-recap-modal-item-head strong{font-size:12px}}


/* v1.41 — Suivi : nom, barre, pourcentage, puis uniquement le reste à faire. */
#tab-suivi #progressionCard .objective-exercise-row{
  grid-template-columns:minmax(62px,.85fr) minmax(92px,1.35fr) 42px minmax(68px,.9fr)!important;
}
#tab-suivi #progressionCard .objective-exercise-row-head strong{grid-column:1!important}
#tab-suivi #progressionCard .objective-exercise-track{grid-column:2!important}
#tab-suivi #progressionCard .objective-exercise-row-head span{grid-column:3!important;text-align:center!important;color:var(--overview-color,#f56a25)!important}
#tab-suivi #progressionCard .objective-exercise-row-progress small{grid-column:4!important;white-space:nowrap!important;text-align:left!important}
@media(max-width:390px){
  #tab-suivi #progressionCard .objective-exercise-row{grid-template-columns:minmax(56px,.8fr) minmax(72px,1.15fr) 38px minmax(62px,.95fr)!important}
}

/* v1.42 — Suivi : alignement strict barre → pourcentage → reste à faire. */
#tab-suivi #progressionCard .objective-exercise-row{
  grid-template-columns:minmax(62px,.85fr) minmax(96px,1.45fr) 44px minmax(76px,.9fr)!important;
  align-items:center!important;
}
#tab-suivi #progressionCard .objective-exercise-track,
#tab-suivi #progressionCard .objective-exercise-row-head span,
#tab-suivi #progressionCard .objective-exercise-row-progress small{
  align-self:center!important;
}
#tab-suivi #progressionCard .objective-exercise-row-head span{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:100%!important;
  line-height:1!important;
  margin:0!important;
}
#tab-suivi #progressionCard .objective-exercise-row-progress small{
  display:flex!important;
  align-items:center!important;
  height:100%!important;
  margin:0!important;
  line-height:1.05!important;
}
@media(max-width:390px){
  #tab-suivi #progressionCard .objective-exercise-row{
    grid-template-columns:minmax(56px,.8fr) minmax(76px,1.2fr) 40px minmax(68px,.95fr)!important;
  }
}

/* v1.43 — Suivi : barre, pourcentage et reste strictement sur la même ligne. */
#tab-suivi #progressionCard .objective-exercise-row-head strong,
#tab-suivi #progressionCard .objective-exercise-track,
#tab-suivi #progressionCard .objective-exercise-row-head span,
#tab-suivi #progressionCard .objective-exercise-row-progress small{
  grid-row:1!important;
  align-self:center!important;
}
#tab-suivi #progressionCard .objective-exercise-row-head span,
#tab-suivi #progressionCard .objective-exercise-row-progress small{
  height:auto!important;
  min-height:0!important;
}

/* v1.48 — Accueil « Proposition 3 : Moderne & structurée ». */
#tab-accueil{padding-top:0!important;background:#f7f7f7!important}
#tab-accueil > .home-welcome-standalone{margin:0!important;padding:24px 4px 20px!important;background:#fff!important}
#tab-accueil > .home-welcome-standalone .home-welcome-title{font-size:28px!important;line-height:1.1!important;font-weight:950!important;letter-spacing:-.7px!important;color:#090909!important}
#tab-accueil > .home-welcome-standalone .home-welcome-subtitle{margin-top:8px!important;font-size:15px!important;color:#817b77!important}
#tab-accueil .home-dashboard{margin:0!important;padding:0 0 22px!important;border:0!important;border-radius:24px!important;background:linear-gradient(180deg,#ff7a30 0,#ff943c 19%,#ffd0ad 39%,#fff 58%,#fff 100%)!important;box-shadow:0 12px 28px rgba(63,38,21,.10)!important;overflow:hidden!important}
#tab-accueil .home-challenge-panel{margin:0!important;padding:26px 18px 20px!important;border:0!important;border-radius:24px!important;background:transparent!important;box-shadow:none!important}
#tab-accueil .home-challenge-panel::before{display:none!important}
#tab-accueil .home-card-heading{display:grid!important;grid-template-columns:48px minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important;min-height:58px!important;color:#fff!important}
#tab-accueil .home-card-heading-icon{width:45px;height:45px;display:grid;place-items:center}
#tab-accueil .home-card-heading-icon svg{width:43px;height:43px;fill:none;stroke:#fff;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
#tab-accueil .home-card-heading-copy{min-width:0}
#tab-accueil .home-card-heading .home-dashboard-title{margin:0!important;padding:0!important;font-size:18px!important;line-height:1.15!important;font-weight:900!important;color:#fff!important;white-space:nowrap!important}
#tab-accueil .home-card-heading .home-objective-description{display:block!important;margin:7px 0 0!important;padding:0!important;font-size:12px!important;line-height:1.2!important;color:rgba(255,255,255,.88)!important;white-space:nowrap!important}
#tab-accueil .home-card-cta{min-height:43px!important;margin:0!important;padding:0 15px!important;border:0!important;border-radius:22px!important;background:#fff!important;color:#de6426!important;box-shadow:0 5px 14px rgba(122,54,12,.12)!important;font-size:12px!important;font-weight:850!important;white-space:nowrap!important}
#tab-accueil .home-card-cta span{margin-left:4px;font-size:18px;vertical-align:-1px}
#tab-accueil .home-challenge-ring-wrap{margin:24px auto 14px!important;transform:none!important}
#tab-accueil .home-challenge-ring{filter:drop-shadow(0 9px 16px rgba(255,104,27,.15))}
#tab-accueil .home-challenge-ring-inner{background:rgba(255,255,255,.96)!important;box-shadow:inset 0 0 0 1px rgba(241,217,202,.75),0 5px 20px rgba(111,67,42,.06)!important}
#tab-accueil .home-challenge-ring-inner strong{font-size:50px!important;letter-spacing:-2px!important;color:#050505!important}
#tab-accueil .home-challenge-ring-inner span{max-width:120px!important;font-size:12px!important;line-height:1.15!important;font-weight:900!important;color:#4b4541!important;text-transform:uppercase!important}
#tab-accueil .home-challenge-ring-inner::after{content:"»";display:block;margin-top:8px;color:#ff681c;font-size:36px;font-weight:950;line-height:.65;letter-spacing:-8px;transform:scaleX(1.15)}
#tab-accueil .home-stats-grid{margin:8px 0 0!important;padding:0!important;gap:10px!important;border:0!important;background:transparent!important}
#tab-accueil .home-stat{min-height:126px!important;padding:16px 8px 12px!important;border:0!important;border-radius:16px!important;background:rgba(255,255,255,.68)!important;box-shadow:0 5px 15px rgba(88,57,40,.045)!important}
#tab-accueil .home-stat:nth-child(1){background:linear-gradient(145deg,#fff9f4,#fff)!important}
#tab-accueil .home-stat:nth-child(2){background:linear-gradient(145deg,#f3fbff,#fff)!important}
#tab-accueil .home-stat:nth-child(3){background:linear-gradient(145deg,#fff5f6,#fff)!important}
#tab-accueil .home-stat-icon{height:28px!important;margin:0 0 8px!important;font-size:22px!important;line-height:28px!important}
#tab-accueil .home-stat:nth-child(2) .home-stat-icon{color:#36a5b6!important}
#tab-accueil .home-stat-value{font-size:26px!important;line-height:1!important;font-weight:950!important;color:#090909!important;white-space:nowrap!important}
#tab-accueil .home-stat-label{max-width:100px;margin:8px auto 0!important;font-size:11px!important;line-height:1.24!important;color:#77716d!important}
#tab-accueil .home-motivation-card{width:100%!important;min-height:92px!important;margin:22px 0 0!important;padding:14px 18px!important;display:grid!important;grid-template-columns:62px minmax(0,1fr) 20px!important;align-items:center!important;gap:13px!important;border:0!important;border-radius:22px!important;background:#fff!important;color:#191512!important;text-align:left!important;box-shadow:0 10px 25px rgba(64,40,26,.08)!important}
#tab-accueil .home-motivation-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:#fff4c7;font-size:29px}
#tab-accueil .home-motivation-copy{display:flex;min-width:0;flex-direction:column;gap:6px}
#tab-accueil .home-motivation-copy strong{font-size:16px!important;line-height:1.15!important;font-weight:900!important}
#tab-accueil .home-motivation-copy small{font-size:12px!important;line-height:1.25!important;color:#827a75!important}
#tab-accueil .home-motivation-arrow{justify-self:end;color:#ec762e;font-size:32px;font-weight:400}
@media(max-width:390px){
  #tab-accueil .home-card-heading{grid-template-columns:39px minmax(0,1fr) auto!important;gap:8px!important}
  #tab-accueil .home-card-heading-icon,#tab-accueil .home-card-heading-icon svg{width:37px;height:37px}
  #tab-accueil .home-card-heading .home-dashboard-title{font-size:15px!important}
  #tab-accueil .home-card-heading .home-objective-description{font-size:10px!important}
  #tab-accueil .home-card-cta{padding:0 11px!important;font-size:10px!important}
  #tab-accueil .home-stat{min-height:118px!important;padding-left:4px!important;padding-right:4px!important}
}

/* v1.49 final — doit rester le dernier bloc afin de neutraliser les anciens styles du cadran. */
#tab-accueil .home-dashboard{position:relative!important;padding:0!important;background:linear-gradient(145deg,#ff6d2b 0%,#ff963d 31%,#ffc493 53%,#fff 73%)!important}
#tab-accueil .home-challenge-panel{position:relative!important;isolation:isolate!important;margin:0!important;padding:22px 16px 18px!important;overflow:hidden!important;background:transparent!important}
#tab-accueil .home-challenge-panel::before{content:""!important;display:block!important;position:absolute!important;z-index:-1!important;left:50%!important;top:154px!important;width:154%!important;height:480px!important;transform:translateX(-50%)!important;border-radius:50% 50% 0 0!important;background:linear-gradient(180deg,rgba(255,255,255,.97),#fff 58%)!important;box-shadow:0 -12px 38px rgba(255,255,255,.38)!important;pointer-events:none!important}
#tab-accueil .home-card-heading{grid-template-columns:40px minmax(0,1fr) 139px!important;gap:8px!important}
#tab-accueil .home-card-heading-icon,#tab-accueil .home-card-heading-icon svg{width:37px!important;height:37px!important}
#tab-accueil .home-card-heading .home-dashboard-title{font-size:14px!important;letter-spacing:-.2px!important;white-space:nowrap!important}
#tab-accueil .home-card-heading .home-objective-description{margin-top:5px!important;font-size:9.5px!important;white-space:nowrap!important}
#tab-accueil .home-card-cta{min-height:40px!important;padding:0 11px!important;font-size:10.5px!important}
#tab-accueil .home-challenge-ring-wrap{position:relative!important;z-index:2!important;width:100%!important;height:244px!important;margin:12px auto 8px!important;padding:0!important;display:grid!important;place-items:center!important;overflow:visible!important}
#tab-accueil .home-challenge-ring-wrap::before,#tab-accueil .home-challenge-ring-wrap::after{display:none!important;opacity:0!important}
#tab-accueil #homeChallengeRing.home-challenge-ring{--ring-size:232px!important;position:relative!important;width:232px!important;height:232px!important;min-width:232px!important;min-height:232px!important;margin:0!important;border-radius:50%!important;filter:drop-shadow(0 11px 17px rgba(255,96,18,.16))!important}
#tab-accueil #homeChallengeRing.home-challenge-ring::before{position:absolute!important;inset:18px!important;border-radius:50%!important;background:#fff!important}
#tab-accueil #homeChallengeRing .home-challenge-ring-inner{position:absolute!important;inset:26px!important;z-index:20!important;width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;transform:none!important;-webkit-mask:none!important;mask:none!important;filter:none!important;overflow:hidden!important;background:#fff!important;box-shadow:inset 0 0 0 1px #efe6df,0 3px 11px rgba(76,48,30,.07)!important}
#tab-accueil #homeChallengePct{width:auto!important;margin:0 0 13px!important;transform:none!important;font-size:50px!important;line-height:.88!important;letter-spacing:-2px!important}
#tab-accueil #homeChallengeRing .home-challenge-ring-inner>span{width:105px!important;max-width:105px!important;margin:0!important;transform:none!important;font-size:10.5px!important;line-height:1.08!important}
#tab-accueil #homeChallengeRing .home-challenge-ring-inner::after{content:"❯❯❯"!important;margin:12px 0 0!important;transform:translateX(-2px)!important;font-size:19px!important;line-height:1!important;letter-spacing:-5px!important}
#tab-accueil #homeChallengeRing .home-ring-start{top:-17px!important;height:13px!important}
#tab-accueil #homeChallengeRing .home-ring-end{width:17px!important;height:17px!important;border-width:5px!important;transform:translate(-50%,-50%) rotate(calc(var(--challenge-pct)*3.6deg)) translateY(-116px) rotate(calc(var(--challenge-pct)*-3.6deg))!important}
#tab-accueil .home-stats-grid{position:relative!important;z-index:2!important;gap:8px!important;margin:0!important;padding:0!important}
#tab-accueil .home-stat{min-height:112px!important;padding:12px 5px 10px!important;border-radius:14px!important}
#tab-accueil .home-stat-icon{height:24px!important;margin-bottom:6px!important;font-size:19px!important;line-height:24px!important}
#tab-accueil .home-stat-value{font-size:22px!important}
#tab-accueil .home-stat-label{margin-top:7px!important;font-size:9.5px!important}
#tab-accueil .home-motivation-card{min-height:78px!important;margin:18px 0 0!important;padding:10px 15px!important;grid-template-columns:52px minmax(0,1fr) 18px!important;border-radius:18px!important}
#tab-accueil .home-motivation-icon{width:48px!important;height:48px!important;font-size:25px!important}
#tab-accueil .home-motivation-copy strong{font-size:14px!important}
#tab-accueil .home-motivation-copy small{font-size:10.5px!important}

/* v1.62 — pourcentage légèrement agrandi + chevrons resserrés. */
.p3-ring-inner strong{font-size:82px!important;line-height:.82!important;letter-spacing:-4px!important}
.p3-ring-inner>.p3-chevrons{gap:0!important;width:38px!important}
.p3-chevrons b{width:13px!important;height:13px!important;margin-left:-2px!important}
.p3-chevrons b:first-child{margin-left:0!important}
@media(max-width:360px){.p3-ring-inner strong{font-size:75px!important}}


/* v1.63 — cadran accueil : pourcentage agrandi, libellé et 3 chevrons abaissés. */
.p3-ring-inner strong{font-size:88px!important;line-height:.80!important;letter-spacing:-4.5px!important}
.p3-ring-inner>span{position:relative!important;top:6px!important}
.p3-ring-inner>.p3-chevrons{position:relative!important;top:10px!important;margin-top:15px!important}
@media(max-width:360px){.p3-ring-inner strong{font-size:80px!important}}

/* v1.64 — cadran uniquement : centrage vertical, pourcentage plus lisible, effet de cercle intérieur restauré. */
.p3-ring::before{
  inset:29px!important;
  background:#fff!important;
  box-shadow:inset 0 0 0 1px #eadfd8, inset 0 0 0 5px rgba(255,255,255,.92), 0 5px 14px rgba(78,48,29,.08)!important;
}
.p3-ring-inner{
  inset:35px!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  transform:none!important;
  background:#fff!important;
  border-radius:50%!important;
  box-shadow:inset 0 0 0 2px rgba(239,230,223,.92), inset 0 0 0 7px rgba(255,255,255,.96), 0 2px 8px rgba(76,48,30,.04)!important;
}
.p3-ring-inner strong{
  position:relative!important;
  top:0!important;
  left:0!important;
  margin:0 0 14px!important;
  transform:none!important;
  font-size:92px!important;
  line-height:.80!important;
  letter-spacing:-4.5px!important;
}
.p3-ring-inner>span{
  position:relative!important;
  top:0!important;
  left:0!important;
  width:132px!important;
  margin:0!important;
  transform:none!important;
  font-size:14px!important;
  line-height:1.06!important;
}
.p3-ring-inner>.p3-chevrons{
  position:relative!important;
  top:0!important;
  left:0!important;
  width:38px!important;
  margin:17px 0 0!important;
  transform:none!important;
}
@media(max-width:360px){.p3-ring-inner strong{font-size:83px!important}.p3-ring-inner>span{font-size:13px!important}}

/* v1.65 — double contour réellement placé dans le disque blanc. */
.p3-ring::before{
  inset:29px!important;
  background:#fff!important;
  box-shadow:0 5px 14px rgba(78,48,29,.08)!important;
}
.p3-ring-inner{
  position:absolute!important;
  inset:35px!important;
  overflow:visible!important;
  box-shadow:none!important;
  isolation:isolate!important;
}
.p3-ring-inner::before,
.p3-ring-inner::after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  border-radius:50%!important;
  pointer-events:none!important;
}
.p3-ring-inner::before{
  inset:3px!important;
  border:1.5px solid rgba(226,207,195,.92)!important;
  box-shadow:0 1px 4px rgba(115,71,43,.035)!important;
}
.p3-ring-inner::after{
  inset:7px!important;
  border:1px solid rgba(239,151,99,.23)!important;
}
.p3-ring-inner>strong,
.p3-ring-inner>span,
.p3-ring-inner>.p3-chevrons,
.p3-ring-inner>small{position:relative!important;z-index:1!important}

/* v1.66 — liseré dans la couronne, juste avant le disque blanc. */
.p3-ring::before{
  z-index:1!important;
  inset:29px!important;
  background:#fff!important;
  box-shadow:0 5px 14px rgba(78,48,29,.08)!important;
}
.p3-ring::after{
  content:""!important;
  position:absolute!important;
  z-index:2!important;
  inset:23px!important;
  border:1px solid rgba(222,205,194,.92)!important;
  border-radius:50%!important;
  box-shadow:inset 0 0 0 4px rgba(239,151,99,.20)!important;
  pointer-events:none!important;
}

/* v1.70 — correction finale : deux traits au milieu de la couronne, sans raccord visible. */
.p3-ring::before{
  box-shadow:0 5px 14px rgba(78,48,29,.08)!important;
}

/* v1.71 — deux cercles complets distincts à l’intérieur du cerceau. */
.p3-ring-rim{
  inset:20px!important;
  border:1.5px solid rgba(244,190,156,.86)!important;
  box-shadow:
    inset 0 0 0 2px transparent,
    inset 0 0 0 3.5px rgba(255,255,255,.98)!important;
  -webkit-mask:none!important;
  mask:none!important;
}
.p3-ring-rim{
  inset:15px!important;
  border:1.5px solid rgba(244,190,156,.88)!important;
  box-shadow:
    inset 0 0 0 1px transparent,
    inset 0 0 0 2.5px rgba(255,255,255,.96)!important;
  -webkit-mask:conic-gradient(from 0deg,transparent 0 calc(var(--challenge-pct)*1% + 4.5%),#000 calc(var(--challenge-pct)*1% + 5.5%) 94.5%,transparent 95.5% 100%)!important;
  mask:conic-gradient(from 0deg,transparent 0 calc(var(--challenge-pct)*1% + 4.5%),#000 calc(var(--challenge-pct)*1% + 5.5%) 94.5%,transparent 95.5% 100%)!important;
}

/* v1.69 — finition exacte du liseré : orange très clair puis blanc. */
.p3-ring::before{
  box-shadow:0 5px 14px rgba(78,48,29,.08)!important;
}
.p3-ring-rim{
  border:1.5px solid rgba(244,190,156,.88)!important;
  box-shadow:
    inset 0 0 0 1px transparent,
    inset 0 0 0 2.5px rgba(255,255,255,.96)!important;
}

/* v1.69 — liseré décollé de ses deux extrémités. */
.p3-ring::before{
  box-shadow:0 5px 14px rgba(78,48,29,.08)!important;
}
.p3-ring-rim{
  position:absolute!important;
  z-index:3!important;
  inset:22px!important;
  border:1.5px solid rgba(229,202,186,.96)!important;
  border-radius:50%!important;
  background:transparent!important;
  box-shadow:
    inset 0 0 0 3px rgba(255,255,255,.78),
    inset 0 0 0 4.5px rgba(238,158,111,.42)!important;
  -webkit-mask:conic-gradient(from 0deg,transparent 0 calc(var(--challenge-pct)*1% + 2%),#000 calc(var(--challenge-pct)*1% + 3%) 97%,transparent 98.5% 100%)!important;
  mask:conic-gradient(from 0deg,transparent 0 calc(var(--challenge-pct)*1% + 2%),#000 calc(var(--challenge-pct)*1% + 3%) 97%,transparent 98.5% 100%)!important;
  pointer-events:none!important;
}
.p3-ring-inner{z-index:4!important}
.p3-ring-inner{
  z-index:3!important;
  box-shadow:none!important;
}
.p3-ring-inner::before,
.p3-ring-inner::after{
  content:none!important;
  display:none!important;
}

/* v1.67 — double liseré distinct comme sur le cadran d’origine. */
.p3-ring::after{
  inset:22px!important;
  border:1.5px solid rgba(229,202,186,.96)!important;
  background:transparent!important;
  box-shadow:
    inset 0 0 0 3px rgba(255,255,255,.78),
    inset 0 0 0 4.5px rgba(238,158,111,.42)!important;
}

/* v1.68 — piste/liseré dessous, progression orange dessus. */
.p3-ring{
  background:conic-gradient(from 0deg,#efefed 0%,#efefed 34%,#ffd8bd 66%,#f3eee9 88%,#efefed 100%)!important;
}
.p3-ring::before{
  z-index:1!important;
  inset:29px!important;
  border:0!important;
  background:#fff!important;
  box-shadow:
    0 0 0 1.5px rgba(238,158,111,.38),
    0 0 0 3px rgba(255,255,255,.82),
    0 0 0 4.5px rgba(229,202,186,.94),
    0 5px 14px rgba(78,48,29,.08)!important;
}
.p3-ring::after{
  content:""!important;
  position:absolute!important;
  z-index:2!important;
  inset:0!important;
  border:0!important;
  border-radius:50%!important;
  background:conic-gradient(from 0deg,#ff5200 0%,#ff6500 calc(var(--challenge-pct)*1%),transparent calc(var(--challenge-pct)*1%),transparent 100%)!important;
  box-shadow:none!important;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 30px),#000 calc(100% - 29px))!important;
  mask:radial-gradient(farthest-side,transparent calc(100% - 30px),#000 calc(100% - 29px))!important;
  pointer-events:none!important;
}

/* v1.70 — correction finale : deux traits au milieu de la couronne, sans raccord visible. */
.p3-ring::before{
  box-shadow:0 5px 14px rgba(78,48,29,.08)!important;
}
.p3-ring-rim{
  inset:15px!important;
  border:1.5px solid rgba(244,190,156,.88)!important;
  box-shadow:
    inset 0 0 0 1px transparent,
    inset 0 0 0 2.5px rgba(255,255,255,.96)!important;
  -webkit-mask:conic-gradient(from 0deg,transparent 0 calc(var(--challenge-pct)*1% + 4.5%),#000 calc(var(--challenge-pct)*1% + 5.5%) 94.5%,transparent 95.5% 100%)!important;
  mask:conic-gradient(from 0deg,transparent 0 calc(var(--challenge-pct)*1% + 4.5%),#000 calc(var(--challenge-pct)*1% + 5.5%) 94.5%,transparent 95.5% 100%)!important;
}

/* v1.71 — priorité finale : deux cercles complets, indépendants du cerceau. */
.p3-ring-rim{
  inset:20px!important;
  border:1.5px solid rgba(244,190,156,.86)!important;
  box-shadow:
    inset 0 0 0 2px transparent,
    inset 0 0 0 3.5px rgba(255,255,255,.98)!important;
  -webkit-mask:none!important;
  mask:none!important;
}

/* v1.72 — les cercles complets passent sous la progression orange. */
.p3-ring-rim{
  z-index:1!important;
}

/* v1.73 — fondu continu et dynamique à partir du repère de progression. */
.p3-ring{
  background:conic-gradient(
    from 0deg,
    #ff8240 0%,
    #ff8240 calc(var(--challenge-pct)*1%),
    #ffa56e var(--fade-1,25%),
    #ffc8a7 var(--fade-2,50%),
    #f1e8e1 var(--fade-3,75%),
    #efefed var(--fade-4,94%),
    #efefed 100%
  )!important;
}

/* v1.75 — piste, cercles, puis ruban orange fondu : ordre fidèle à l’ancien cadran. */
.p3-ring{
  background:conic-gradient(from 0deg,#efefed 0%,#f1f0ee 58%,#eceeed 100%)!important;
}

/* v1.76 — fondu translucide : les deux cercles restent perceptibles dessous. */
.p3-ring::after{
  background:conic-gradient(
    from 0deg,
    #ff5200 0%,
    #ff6500 calc(var(--challenge-pct)*1%),
    rgba(255,112,28,.78) calc(var(--challenge-pct)*1% + .7%),
    rgba(255,137,70,.64) var(--fade-1,27%),
    rgba(255,169,116,.43) var(--fade-2,35%),
    rgba(255,199,163,.22) var(--fade-3,44%),
    rgba(255,218,195,0) var(--fade-4,50%),
    transparent 100%
  )!important;
}
.p3-ring::after{
  background:conic-gradient(
    from 0deg,
    #ff5200 0%,
    #ff6500 calc(var(--challenge-pct)*1%),
    #ff8a4a var(--fade-1,27%),
    #ffad79 var(--fade-2,35%),
    rgba(255,199,163,.78) var(--fade-3,44%),
    rgba(255,218,195,0) var(--fade-4,50%),
    transparent 100%
  )!important;
}

/* v1.76 — priorité finale du fondu translucide. */
.p3-ring::after{
  background:conic-gradient(
    from 0deg,
    #ff5200 0%,
    #ff6500 calc(var(--challenge-pct)*1%),
    rgba(255,112,28,.78) calc(var(--challenge-pct)*1% + .7%),
    rgba(255,137,70,.64) var(--fade-1,27%),
    rgba(255,169,116,.43) var(--fade-2,35%),
    rgba(255,199,163,.22) var(--fade-3,44%),
    rgba(255,218,195,0) var(--fade-4,50%),
    transparent 100%
  )!important;
}

/* v1.77 — cadran uniquement : centrage du groupe, pourcentage dominant, texte et chevrons secondaires. */
.p3-ring-inner{
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.p3-ring-inner strong{
  position:relative!important;
  top:0!important;
  left:0!important;
  margin:0 0 18px!important;
  transform:none!important;
  font-size:100px!important;
  line-height:.76!important;
  letter-spacing:-5px!important;
  font-weight:950!important;
}
.p3-ring-inner>span{
  position:relative!important;
  top:0!important;
  left:0!important;
  width:138px!important;
  margin:0!important;
  transform:none!important;
  font-size:14px!important;
  line-height:1.08!important;
}
.p3-ring-inner>.p3-chevrons{
  position:relative!important;
  top:0!important;
  left:0!important;
  width:36px!important;
  margin:19px 0 0!important;
  transform:none!important;
  gap:0!important;
}
.p3-chevrons b{width:13px!important;height:13px!important;margin-left:-3px!important}
.p3-chevrons b:first-child{margin-left:0!important}
@media(max-width:360px){
  .p3-ring-inner strong{font-size:91px!important}
  .p3-ring-inner>span{font-size:13px!important}
}

/* v1.78 — cadran uniquement : composition centrale plus basse et pourcentage renforcé. */
.p3-ring-inner{
  transform:translateY(10px)!important;
}
.p3-ring-inner strong{
  font-size:112px!important;
  line-height:.74!important;
  margin:0 0 25px!important;
  letter-spacing:-6px!important;
}
.p3-ring-inner>span{
  transform:translateY(3px)!important;
  font-size:14px!important;
  line-height:1.08!important;
}
.p3-ring-inner>.p3-chevrons{
  transform:translateY(5px)!important;
  margin-top:21px!important;
}
@media(max-width:360px){
  .p3-ring-inner{transform:translateY(8px)!important}
  .p3-ring-inner strong{font-size:102px!important;margin-bottom:23px!important}
}


/* v1.79 — « Voir mes objectifs » centré + récapitulatif des objectifs en cours. */
.p3-cta{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;text-align:center!important;line-height:1.1!important}
.p3-cta span{margin-left:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}
#progressGoalsModal .progress-modal-dialog{width:min(620px,100%)!important;padding:28px 20px 20px!important;border-radius:28px!important}
#progressGoalsModal .home-section-title{padding:0 44px!important;margin:0!important;text-align:center!important;font-size:25px!important;font-weight:950!important;color:#171310!important}
.progress-objectives-subtitle{max-width:420px;margin:7px auto 18px;text-align:center;color:#756d68;font-size:14px;font-weight:650;line-height:1.35}
.progress-objectives-list{display:grid;gap:14px}
.progress-objective-card{--recap-color:#ff6722;padding:17px 14px 14px;border-radius:22px;background:color-mix(in srgb,var(--recap-color) 12%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--recap-color) 9%,transparent)}
.progress-objective-top{display:flex;align-items:center;justify-content:space-between;gap:14px}.progress-objective-top>strong{min-width:0;color:#211b17;font-size:20px;font-weight:950;line-height:1.15}.progress-objective-top>b{flex:0 0 auto;color:#171310;font-size:21px;font-weight:950}
.progress-objective-track{height:11px;margin:12px 0 11px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--recap-color) 15%,white)}.progress-objective-track span{display:block;height:100%;border-radius:inherit;background:var(--recap-color)}
.progress-objective-meta{display:flex;justify-content:space-between;gap:16px;margin-bottom:12px;color:#5f5853;font-size:12px;font-weight:650}.progress-objective-meta span:last-child{text-align:right}.progress-objective-meta b{color:#27211d;font-weight:950}
.progress-objective-exercises{overflow:hidden;border-radius:15px;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.82)}.progress-objective-exercise{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-top:1px solid rgba(60,45,35,.08);font-size:12px}.progress-objective-exercise strong{color:#28211d;font-weight:900}.progress-objective-exercise span{color:#77706b;text-align:right}.progress-objective-empty{padding:9px 11px;color:#8a827d;font-size:12px}
.progress-objectives-footer-close{width:100%;height:52px;margin-top:16px;border:0;border-radius:18px;background:#ff5b13;color:#fff;font-size:17px;font-weight:950;box-shadow:0 8px 20px rgba(255,91,19,.18)}
@media(max-width:420px){#progressGoalsModal.progress-modal{padding:10px!important;align-items:center!important}#progressGoalsModal .progress-modal-dialog{max-height:90vh!important;padding:25px 13px 13px!important;border-radius:25px!important}#progressGoalsModal .home-section-title{font-size:22px!important}.progress-objectives-subtitle{font-size:13px;margin-bottom:14px}.progress-objective-card{padding:15px 11px 11px;border-radius:19px}.progress-objective-top>strong{font-size:18px}.progress-objective-top>b{font-size:19px}.progress-objective-meta{font-size:11px}.progress-objective-exercise{padding:8px 10px}}


/* v1.81 — CTA optiquement centré, fermeture uniquement par le bouton bas, séries validantes dans le récap. */
.p3-cta{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 27px 0 12px!important;text-align:center!important}
.p3-cta>span{position:absolute!important;right:12px!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important;line-height:1!important}
#progressGoalsModal .progress-modal-close{display:none!important}
#progressGoalsModal .home-section-title{padding-left:0!important;padding-right:0!important}
.progress-objective-exercise-detail{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:2px!important;line-height:1.15!important}
.progress-objective-exercise-detail>b{color:#77706b!important;font-weight:500!important}
.progress-objective-exercise-detail>small{color:var(--recap-color)!important;font-size:10px!important;font-weight:850!important;white-space:nowrap!important}

/* v1.83 — CTA : texte + flèche centrés comme un seul bloc. */
.p3-cta{position:static!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;padding:0 14px!important;line-height:1!important}
.p3-cta>span{position:static!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;transform:none!important;margin:0!important;line-height:1!important}

/* v1.83 — Ajustements visuels validés : CTA parfaitement aligné et respiration du titre de la modale. */
.p3-cta{
  display:grid!important;
  grid-template-columns:auto auto!important;
  place-content:center!important;
  align-items:center!important;
  column-gap:7px!important;
  padding:0 12px!important;
  line-height:1!important;
}
.p3-cta>span{
  display:block!important;
  position:static!important;
  transform:none!important;
  margin:0!important;
  font-size:16px!important;
  line-height:1!important;
  translate:0 -1px;
}
#progressGoalsModal .home-section-title{
  margin:0 0 22px!important;
  padding:0!important;
  line-height:1.15!important;
}
@media(max-width:420px){
  #progressGoalsModal .home-section-title{margin-bottom:20px!important}
}

/* v1.84 — CTA Détails : ouvre le graphique historique existant et ses filtres */
#tab-suivi #progressionCard .objective-recap-button{justify-content:space-between!important;}
#tab-suivi #progressionCard .objective-recap-button span:first-child{display:flex;align-items:center;min-height:22px;}

/* v1.85 — repère visuel bref lors de l’ouverture de Détails */
.details-focus-flash{animation:detailsFocusFlash .9s ease-out}
@keyframes detailsFocusFlash{0%{filter:brightness(1)}35%{filter:brightness(1.08)}100%{filter:brightness(1)}}

/* v1.86 — Détails : rendre visibles les filtres d'exercice existants et amener l'utilisateur sur la zone graphique. */
#tab-suivi #progressionCard.details-mode #v487-exercise-label{display:block!important;margin-top:8px!important}
#tab-suivi #progressionCard.details-mode #chartTabs{display:block!important}
#tab-suivi #progressionCard.details-mode #chartObjectiveTabs{display:none!important}

/* v1.87 — Détails ouvre une fenêtre modale avec les graphiques existants du Suivi. */
#tab-suivi #progressionCard .objective-details-modal[hidden]{display:none!important}
#tab-suivi #progressionCard .objective-details-modal{
  position:fixed;inset:0;z-index:12500;display:flex;align-items:center;justify-content:center;padding:16px;
}
#tab-suivi #progressionCard .objective-details-backdrop{
  position:absolute;inset:0;background:rgba(31,24,20,.52);backdrop-filter:blur(3px);
}
#tab-suivi #progressionCard .objective-details-dialog{
  position:relative;z-index:1;width:min(640px,100%);max-height:90vh;overflow:auto;
  padding:24px 18px 20px;border-radius:28px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.28);
  overscroll-behavior:contain;
}
#tab-suivi #progressionCard .objective-details-close{
  position:absolute;right:14px;top:12px;z-index:3;width:40px;height:40px;border:0;background:transparent;
  color:#3b2d25;font-size:32px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;
}
#tab-suivi #progressionCard .objective-details-header{padding:0 46px 14px 2px}
#tab-suivi #progressionCard .objective-details-header h2{margin:0 0 5px;color:#241c18;font-size:28px;line-height:1.08;font-weight:950}
#tab-suivi #progressionCard .objective-details-name{display:flex;align-items:center;gap:9px;color:#2d241f;font-size:16px}
#tab-suivi #progressionCard .objective-details-dot{width:11px;height:11px;border-radius:50%;background:var(--details-color,#f56a25);flex:0 0 11px}
#tab-suivi #progressionCard .objective-details-content{display:block}
#tab-suivi #progressionCard .objective-details-content #v487-exercise-label{display:block!important;margin:2px 0 8px!important;color:#80746b!important;font-size:13px!important;font-weight:900!important}
#tab-suivi #progressionCard .objective-details-content #chartTabs{display:block!important;margin-bottom:12px!important}
#tab-suivi #progressionCard .objective-details-content .chart-period-wrap{display:block!important;margin:0 0 14px!important;padding-top:0!important;border-top:0!important}
#tab-suivi #progressionCard .objective-details-content .chart-period-label{font-size:13px!important;margin-bottom:8px!important}
#tab-suivi #progressionCard .objective-details-content .chart-tabs-row,
#tab-suivi #progressionCard .objective-details-content .chart-periods{display:flex!important;flex-wrap:wrap!important;gap:8px!important;overflow:visible!important}
#tab-suivi #progressionCard .objective-details-content .chart-tab,
#tab-suivi #progressionCard .objective-details-content .chart-period{min-height:42px!important;padding:9px 14px!important;font-size:12px!important}
#tab-suivi #progressionCard .objective-details-content .performance-kpis{margin-top:4px!important}
#tab-suivi #progressionCard .objective-details-content .performance-sequence{margin-top:12px!important}
#tab-suivi #progressionCard .objective-details-content .goal-progress-dashboard{margin-top:14px!important}
#tab-suivi #progressionCard .objective-details-content #chart{display:block!important;width:100%!important;max-width:100%!important;margin-top:12px!important}
#tab-suivi #progressionCard .objective-details-content .chart-session-caption{padding-bottom:4px!important}
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-modal{padding:8px!important;align-items:center!important}
  #tab-suivi #progressionCard .objective-details-dialog{max-height:92vh!important;padding:22px 14px 16px!important;border-radius:24px!important}
  #tab-suivi #progressionCard .objective-details-header h2{font-size:25px!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-main{grid-template-columns:minmax(0,1fr) 86px!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-ring{width:min(205px,100%)!important}
}

/* v1.88 — Les graphiques du Suivi restent exclusivement dans la fenêtre « Détails ».
   Hors modale, seule la synthèse des objectifs reste visible avant la publicité. */
#tab-suivi #progressionCard:not(.details-mode) > #chartObjectiveTabs,
#tab-suivi #progressionCard:not(.details-mode) > #v487-exercise-label,
#tab-suivi #progressionCard:not(.details-mode) > #chartTabs,
#tab-suivi #progressionCard:not(.details-mode) > .chart-period-wrap,
#tab-suivi #progressionCard:not(.details-mode) > #chartSummary,
#tab-suivi #progressionCard:not(.details-mode) > #performanceKpis,
#tab-suivi #progressionCard:not(.details-mode) > #performanceSequence,
#tab-suivi #progressionCard:not(.details-mode) > #chartEmptyObjective,
#tab-suivi #progressionCard:not(.details-mode) > #goalProgressDashboard,
#tab-suivi #progressionCard:not(.details-mode) > #chart,
#tab-suivi #progressionCard:not(.details-mode) > #chartSessionCaption{
  display:none!important;
}


/* v1.90 — Modale Détails : nombre de séances à côté du nom ; suppression des blocs Départ/Record/Évolution et Progression. */
#tab-suivi #progressionCard .objective-details-sessions{font-weight:900;color:var(--details-color,#f56a25);white-space:nowrap}
#tab-suivi #progressionCard .objective-details-content #chartSummary,
#tab-suivi #progressionCard .objective-details-content #performanceKpis,
#tab-suivi #progressionCard .objective-details-content #performanceSequence{display:none!important}

/* v1.90 — Réorganisation visuelle de la fenêtre Détails, sans modifier les graphiques ni leur logique. */
#tab-suivi #progressionCard .objective-details-header{padding:0 46px 10px 2px!important}
#tab-suivi #progressionCard .objective-details-name{
  margin-top:10px!important;padding:11px 14px!important;border-radius:16px!important;
  background:color-mix(in srgb,var(--details-color,#f56a25) 8%,#fff)!important;
  gap:10px!important;font-size:16px!important;
}
#tab-suivi #progressionCard .objective-details-sessions{
  margin-left:auto!important;padding-left:14px!important;border-left:1px solid rgba(70,55,45,.14)!important;
}
#tab-suivi #progressionCard .objective-details-content #v487-exercise-label{
  margin:14px 0 8px!important;font-size:14px!important;
}
#tab-suivi #progressionCard .objective-details-content #chartTabs{margin-bottom:18px!important}
#tab-suivi #progressionCard .objective-details-content .chart-period-wrap{
  margin:0 0 20px!important;padding:0 0 18px!important;border-bottom:1px solid rgba(70,55,45,.10)!important;
}
#tab-suivi #progressionCard .objective-details-content .chart-period-label{font-size:14px!important;margin-bottom:8px!important}
#tab-suivi #progressionCard .objective-details-content .goal-progress-dashboard{
  margin-top:0!important;padding:20px 18px 16px!important;border:1px solid rgba(87,67,55,.14)!important;
  border-radius:22px!important;background:color-mix(in srgb,var(--details-color,#f56a25) 3%,#fff)!important;
}
#tab-suivi #progressionCard .objective-details-content .goal-progress-title{margin-bottom:12px!important}
#tab-suivi #progressionCard .objective-details-content #chart{
  margin-top:16px!important;padding:14px 8px 4px!important;border:1px solid rgba(87,67,55,.14)!important;
  border-radius:22px!important;background:#fff!important;
}
#tab-suivi #progressionCard .objective-details-content .chart-session-caption{padding:8px 4px 2px!important}
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-name{padding:10px 12px!important}
  #tab-suivi #progressionCard .objective-details-sessions{padding-left:10px!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-dashboard{padding:17px 12px 14px!important}
  #tab-suivi #progressionCard .objective-details-content #chart{padding:10px 4px 2px!important}
}


/* v1.93 — Détails : synthèse compacte à droite de l'anneau et graphique réduit. */
#tab-suivi #progressionCard .objective-details-content .goal-progress-main{
  display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(150px,.92fr)!important;gap:14px!important;align-items:center!important;
}
#tab-suivi #progressionCard .objective-details-content .goal-progress-stats{display:grid!important;gap:8px!important}
#tab-suivi #progressionCard .objective-details-content .goal-stat{
  padding:10px 11px!important;border:1px solid rgba(87,67,55,.13)!important;border-radius:14px!important;background:rgba(255,255,255,.72)!important;
}
#tab-suivi #progressionCard .objective-details-content .goal-stat span{display:block;color:#74685f;font-size:11px;font-weight:850;line-height:1.15}
#tab-suivi #progressionCard .objective-details-content .goal-stat strong{display:inline-block;margin-top:3px;color:#2d241f;font-size:20px;line-height:1;font-weight:950}
#tab-suivi #progressionCard .objective-details-content .goal-stat small{margin-left:5px;color:#8a7e75;font-size:10px;font-weight:700}
#tab-suivi #progressionCard .objective-details-content .goal-progress-stats .goal-stat:nth-child(1) strong,
#tab-suivi #progressionCard .objective-details-content .goal-progress-stats .goal-stat:nth-child(3) strong,
#tab-suivi #progressionCard .objective-details-content .goal-progress-stats .goal-stat:nth-child(4) strong{color:var(--goal-objective-color,#f56a25)}
#tab-suivi #progressionCard .objective-details-content #chart{height:150px!important;margin-top:12px!important}
@media(max-width:430px){
 #tab-suivi #progressionCard .objective-details-content .goal-progress-main{grid-template-columns:minmax(0,1fr) 142px!important;gap:9px!important}
 #tab-suivi #progressionCard .objective-details-content .goal-progress-ring{width:min(190px,100%)!important}
 #tab-suivi #progressionCard .objective-details-content .goal-stat{padding:8px 9px!important}
 #tab-suivi #progressionCard .objective-details-content .goal-stat strong{font-size:18px!important}
 #tab-suivi #progressionCard .objective-details-content #chart{height:140px!important}
}

/* v1.93 — Détails : présentation harmonisée selon la maquette validée. */
#tab-suivi #progressionCard .objective-details-content .goal-progress-main{
  display:block!important;
}
#tab-suivi #progressionCard .objective-details-content .goal-progress-ring{
  width:min(230px,72vw)!important;
  margin:4px auto 18px!important;
}
#tab-suivi #progressionCard .objective-details-content .goal-progress-stats{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  padding-top:14px!important;
  border-top:1px solid rgba(87,67,55,.12)!important;
}
#tab-suivi #progressionCard .objective-details-content .goal-stat{
  min-width:0!important;padding:5px 8px!important;border:0!important;border-radius:0!important;background:transparent!important;text-align:center!important;
}
#tab-suivi #progressionCard .objective-details-content .goal-stat+.goal-stat{border-left:1px solid rgba(87,67,55,.12)!important}
#tab-suivi #progressionCard .objective-details-content .goal-stat span{font-size:10px!important;line-height:1.2!important;min-height:24px!important}
#tab-suivi #progressionCard .objective-details-content .goal-stat strong{display:block!important;margin:3px 0 2px!important;font-size:22px!important;line-height:1.05!important;overflow-wrap:anywhere!important}
#tab-suivi #progressionCard .objective-details-content .goal-stat small{display:block!important;margin:0!important;font-size:9px!important;line-height:1.2!important}
#tab-suivi #progressionCard .objective-details-content #chart{height:170px!important;margin-top:16px!important}
@media(max-width:430px){
 #tab-suivi #progressionCard .objective-details-content .goal-progress-ring{width:min(215px,66vw)!important}
 #tab-suivi #progressionCard .objective-details-content .goal-stat{padding:4px 5px!important}
 #tab-suivi #progressionCard .objective-details-content .goal-stat span{font-size:9px!important}
 #tab-suivi #progressionCard .objective-details-content .goal-stat strong{font-size:19px!important}
 #tab-suivi #progressionCard .objective-details-content .goal-stat small{font-size:8px!important}
 #tab-suivi #progressionCard .objective-details-content #chart{height:155px!important}
}


/* v1.94 — valeurs de synthèse compactes : nombre lisible + unité sur une ligne dédiée. */
#tab-suivi #progressionCard .objective-details-content .goal-stat strong{overflow-wrap:normal!important;word-break:normal!important;white-space:nowrap!important}
#tab-suivi #progressionCard .objective-details-content .goal-stat .goal-stat-unit{display:block!important;margin:2px 0 0!important;min-height:0!important;font-size:9px!important;line-height:1.1!important;font-weight:800!important;color:#8a7e75!important;white-space:nowrap!important}
@media(max-width:430px){#tab-suivi #progressionCard .objective-details-content .goal-stat .goal-stat-unit{font-size:8px!important}}

/* v1.95 — partage Instagram / réseaux depuis le cadran de progression. */
#tab-suivi #progressionCard .objective-details-content .goal-progress-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin-bottom:12px!important}
#tab-suivi #progressionCard .objective-details-content .goal-progress-head .goal-progress-title{margin:0!important}
#tab-suivi #progressionCard .objective-details-content .goal-share-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:38px!important;padding:8px 13px!important;border:1px solid color-mix(in srgb,var(--goal-objective-color,#f56a25) 28%,#fff)!important;border-radius:999px!important;background:#fff!important;color:var(--goal-objective-color,#f56a25)!important;font:800 12px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;box-shadow:0 5px 14px rgba(62,42,31,.07)!important;white-space:nowrap!important}
#tab-suivi #progressionCard .objective-details-content .goal-share-btn:active{transform:scale(.98)}
#tab-suivi #progressionCard .objective-details-content .goal-share-icon{font-size:16px!important;line-height:1!important}
@media(max-width:430px){#tab-suivi #progressionCard .objective-details-content .goal-share-btn{min-height:34px!important;padding:7px 10px!important;font-size:11px!important}.goal-share-icon{font-size:14px!important}}
#tab-suivi #progressionCard .goal-share-btn{display:none}
#tab-suivi #progressionCard .objective-details-content .goal-share-btn{display:inline-flex!important}

/* v1.96 — Détails : en-tête et filtres compacts pour libérer de la hauteur aux graphiques. */
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-modal{padding:8px!important}
  #tab-suivi #progressionCard .objective-details-dialog{max-height:92vh!important;padding:16px 14px 14px!important}
  #tab-suivi #progressionCard .objective-details-close{top:7px!important;right:9px!important;width:34px!important;height:34px!important;font-size:28px!important}
  #tab-suivi #progressionCard .objective-details-header{padding:0 40px 8px 0!important}
  #tab-suivi #progressionCard .objective-details-header h2{font-size:23px!important;margin:0 0 7px!important}
  #tab-suivi #progressionCard .objective-details-name{gap:7px!important;padding:7px 10px!important;font-size:14px!important;border-radius:15px!important}
  #tab-suivi #progressionCard .objective-details-dot{width:9px!important;height:9px!important;flex-basis:9px!important}
  #tab-suivi #progressionCard .objective-details-sessions{padding-left:8px!important;font-size:13px!important}
  #tab-suivi #progressionCard .objective-details-content #v487-exercise-label{margin:5px 0 5px!important;font-size:12px!important}
  #tab-suivi #progressionCard .objective-details-content #chartTabs{margin-bottom:9px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-period-wrap{margin:0 0 9px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-period-label{font-size:12px!important;margin-bottom:5px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-tabs-row,
  #tab-suivi #progressionCard .objective-details-content .chart-periods{gap:6px!important;flex-wrap:nowrap!important}
  #tab-suivi #progressionCard .objective-details-content .chart-tab,
  #tab-suivi #progressionCard .objective-details-content .chart-period{min-height:34px!important;padding:6px 9px!important;font-size:11px!important;line-height:1!important;white-space:nowrap!important}
  #tab-suivi #progressionCard .objective-details-content .chart-tabs-row .chart-tab{flex:1 1 0!important;min-width:0!important}
  #tab-suivi #progressionCard .objective-details-content .chart-periods .chart-period{flex:1 1 0!important;min-width:0!important;padding-left:5px!important;padding-right:5px!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-dashboard{margin-top:8px!important}
}

/* v1.97 — Détails : filtres réellement resserrés sur écran étroit. */
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-header{padding-bottom:5px!important}
  #tab-suivi #progressionCard .objective-details-content #v487-exercise-label{margin:3px 0 3px!important;line-height:1.05!important}
  #tab-suivi #progressionCard .objective-details-content #chartTabs{margin:0 0 4px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-period-wrap{margin:0 0 5px!important;padding:0!important}
  #tab-suivi #progressionCard .objective-details-content .chart-period-label{margin:0 0 3px!important;line-height:1.05!important}
  #tab-suivi #progressionCard .objective-details-content .chart-tabs-row,
  #tab-suivi #progressionCard .objective-details-content .chart-periods{gap:5px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-tab,
  #tab-suivi #progressionCard .objective-details-content .chart-period{min-height:32px!important;padding:5px 7px!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-dashboard{margin-top:5px!important}
}

/* v1.98 — Détails : composition verticale réellement compacte, conforme au visuel validé. */
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-dialog{padding-top:13px!important}
  #tab-suivi #progressionCard .objective-details-header{padding-bottom:3px!important}
  #tab-suivi #progressionCard .objective-details-header h2{margin-bottom:5px!important}
  #tab-suivi #progressionCard .objective-details-name{padding-top:6px!important;padding-bottom:6px!important}
  #tab-suivi #progressionCard .objective-details-content #v487-exercise-label{margin:2px 0 2px!important}
  #tab-suivi #progressionCard .objective-details-content #chartTabs{margin:0 0 2px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-period-wrap{margin:0 0 2px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-period-label{margin:0 0 2px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-tabs-row,
  #tab-suivi #progressionCard .objective-details-content .chart-periods{gap:5px!important}
  #tab-suivi #progressionCard .objective-details-content .chart-tab,
  #tab-suivi #progressionCard .objective-details-content .chart-period{min-height:30px!important;padding:4px 6px!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-dashboard{margin-top:2px!important}
}

/* v1.99 — Correctif demandé : supprimer le vide vertical entre Exercice et Période. */
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-content #v487-exercise-label{margin:2px 0 2px!important}
  #tab-suivi #progressionCard .objective-details-content #chartTabs{padding:0!important;margin:0!important}
  #tab-suivi #progressionCard .objective-details-content #chartTabs .chart-tabs-row{min-height:30px!important;margin:0!important;align-content:center!important}
  #tab-suivi #progressionCard .objective-details-content .chart-period-wrap{margin:3px 0 2px!important;padding:0!important}
  #tab-suivi #progressionCard .objective-details-content .chart-period-label{margin:0 0 2px!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-dashboard{margin-top:3px!important}
}

/* v2.04 — Détails : dimensions réelles des deux lignes de filtres.
   Règle volontairement indépendante de la largeur de l'écran. */
#tab-suivi #progressionCard .objective-details-content #chartTabs{
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}
#tab-suivi #progressionCard .objective-details-content #chartTabs .chart-tabs-row{
  flex:0 0 auto!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}
#tab-suivi #progressionCard .objective-details-content .chart-period-wrap{
  position:static!important;
  clear:none!important;
  margin:8px 0 10px!important;
  padding:0!important;
  border-bottom:0!important;
}

/* v2.06 — Détails : suppression du fin séparateur sous les filtres Période. */

/* v2.07 — Détails de l’objectif : zone de progression circulaire légèrement réduite. */
#tab-suivi #progressionCard .objective-details-content .goal-progress-ring{
  width:min(190px,60vw)!important;
  margin:2px auto 14px!important;
}
#tab-suivi #progressionCard .objective-details-content .goal-progress-ring::before{inset:22px!important}
#tab-suivi #progressionCard .objective-details-content .goal-progress-ring-center strong{font-size:38px!important}
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-content .goal-progress-ring{width:min(180px,56vw)!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-ring::before{inset:20px!important}
  #tab-suivi #progressionCard .objective-details-content .goal-progress-ring-center strong{font-size:36px!important}
}

/* v2.11 — Détails : filtres Exercice et Période réellement compacts (~15 %),
   règle finale placée après les anciennes surcharges pour garantir son application. */
#tab-suivi #progressionCard .objective-details-content #chartTabs .chart-tabs-row{
  gap:7px!important;
}
#tab-suivi #progressionCard .objective-details-content .chart-tabs-row .chart-tab,
#tab-suivi #progressionCard .objective-details-content .chart-periods .chart-period{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  min-height:30px!important;
  padding:5px 10px!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#tab-suivi #progressionCard .objective-details-content #chartTabs{margin:0 0 5px!important}
#tab-suivi #progressionCard .objective-details-content .chart-period-wrap{margin:4px 0 7px!important}
#tab-suivi #progressionCard .objective-details-content .chart-periods{gap:7px!important;flex-wrap:nowrap!important}
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-content .chart-tabs-row .chart-tab,
  #tab-suivi #progressionCard .objective-details-content .chart-periods .chart-period{
    min-height:29px!important;padding:5px 9px!important;font-size:10.5px!important;
  }
}

/* v2.13 — repère tactile du graphique visible au-dessus de la modale Détails. */
#tab-suivi #progressionCard .objective-details-modal ~ .chart-touch-guide,
.chart-touch-guide{z-index:12620!important;}
.chart-tooltip{z-index:12630!important;}


/* v2.17 — Accueil : cartes statistiques complètes et troisième indicateur = Régularité. */
.p3-card{height:530px!important}
.p3-body{padding-bottom:28px!important}
.p3-stats{align-items:stretch!important}
.p3-stat{height:126px!important;padding:12px 6px 16px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important}
.p3-stat-label{margin-top:9px!important;min-height:24px!important;display:flex!important;align-items:flex-start!important;justify-content:center!important}
.p3-stat-red .p3-stat-icon{color:#e96d55!important;font-size:22px!important;font-weight:900!important}
@media(max-width:360px){.p3-card{height:514px!important}.p3-stat{height:122px!important;padding-bottom:14px!important}}


/* v2.19 — pastille de validation sur chaque rubrique d'exercice renseignée */
#tab-seance .workout-exercise-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
}
#tab-seance .workout-complete-badge{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  border-radius:999px!important;
  display:grid!important;
  place-items:center!important;
  box-sizing:border-box!important;
  background:#18c76f!important;
  color:#fff!important;
  border:3px solid #fff!important;
  box-shadow:0 0 0 1px #aee9ca,0 4px 12px rgba(24,199,111,.20)!important;
  font-size:22px!important;
  line-height:1!important;
  font-weight:950!important;
  flex:0 0 auto!important;
}
#tab-seance .workout-complete-badge[hidden]{display:none!important;}

/* v2.20 — Suivi : accès au détail directement dans l’en-tête de chaque objectif. */
#tab-suivi #progressionCard .objective-overview-details-button{
  margin-left:auto;flex:0 0 auto;min-height:36px;padding:7px 11px;border:0;border-radius:999px;
  background:var(--overview-color,#f56a25);color:#fff;display:inline-flex;align-items:center;justify-content:center;
  gap:8px;font-size:11px;font-weight:900;line-height:1;white-space:nowrap;cursor:pointer;
  box-shadow:0 4px 10px color-mix(in srgb,var(--overview-color,#f56a25) 18%,transparent)
}
#tab-suivi #progressionCard .objective-overview-details-icon{width:17px;height:16px;display:inline-flex;align-items:flex-end;justify-content:center;gap:2px}
#tab-suivi #progressionCard .objective-overview-details-icon i{display:block;width:3px;border-radius:2px;background:currentColor}
#tab-suivi #progressionCard .objective-overview-details-icon i:nth-child(1){height:7px}
#tab-suivi #progressionCard .objective-overview-details-icon i:nth-child(2){height:11px}
#tab-suivi #progressionCard .objective-overview-details-icon i:nth-child(3){height:15px}
#tab-suivi #progressionCard .objective-overview-details-arrow{font-size:19px;font-weight:500;line-height:.7;margin-left:-2px}
@media(max-width:390px){
  #tab-suivi #progressionCard .objective-overview-details-button{min-height:34px;padding:6px 9px;gap:6px;font-size:10px}
  #tab-suivi #progressionCard .objective-overview-details-icon{width:15px;height:14px}
  #tab-suivi #progressionCard .objective-overview-details-icon i{width:2.5px}
}

/* v2.21 — Mes objectifs en cours : afficher uniquement le planning défini (fréquence + période). */
#progressGoalsModal .progress-objective-top{justify-content:flex-start!important;margin-bottom:11px!important}
#progressGoalsModal .progress-objective-track,
#progressGoalsModal .progress-objective-meta{display:none!important}
#progressGoalsModal .progress-objective-plan{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}
#progressGoalsModal .progress-objective-plan-block{min-width:0;display:flex;align-items:center;gap:9px;padding:10px 11px;border-radius:13px;background:rgba(255,255,255,.64)}
#progressGoalsModal .progress-objective-plan-icon{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;color:var(--recap-color);font-size:24px;line-height:1}
#progressGoalsModal .progress-objective-plan-block>span:last-child{min-width:0;display:flex;flex-direction:column;gap:3px}
#progressGoalsModal .progress-objective-plan-block strong{color:#29221e;font-size:12px;font-weight:900;line-height:1.2}
#progressGoalsModal .progress-objective-plan-block small{color:#746d68;font-size:10px;font-weight:650;line-height:1.2}
@media(max-width:420px){
  #progressGoalsModal .progress-objective-plan{gap:7px;margin-bottom:10px}
  #progressGoalsModal .progress-objective-plan-block{gap:6px;padding:9px 7px;border-radius:12px}
  #progressGoalsModal .progress-objective-plan-icon{flex-basis:23px;width:23px;height:23px;font-size:20px}
  #progressGoalsModal .progress-objective-plan-block strong{font-size:10.5px}
  #progressGoalsModal .progress-objective-plan-block small{font-size:9.5px}
}


/* v2.22 — Mes objectifs en cours : ajout strict des deux blocs validés (séances/semaine + période). */
#progressGoalsModal .progress-objective-top{margin-bottom:10px!important}
#progressGoalsModal .progress-objective-plan{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;margin:0 0 12px!important}
#progressGoalsModal .progress-objective-plan-block{min-width:0!important;display:flex!important;align-items:center!important;gap:10px!important;padding:10px 12px!important;border-radius:14px!important;background:rgba(255,255,255,.68)!important}
#progressGoalsModal .progress-objective-plan-icon{flex:0 0 28px!important;width:28px!important;height:28px!important;display:grid!important;place-items:center!important;color:var(--recap-color)!important;font-size:24px!important;line-height:1!important}
#progressGoalsModal .progress-objective-plan-block>span:last-child{min-width:0!important;display:flex!important;flex-direction:column!important;gap:3px!important}
#progressGoalsModal .progress-objective-plan-block strong{color:#29221e!important;font-size:12px!important;font-weight:900!important;line-height:1.2!important}
#progressGoalsModal .progress-objective-plan-block small{color:#746d68!important;font-size:10px!important;font-weight:650!important;line-height:1.2!important}
@media(max-width:420px){#progressGoalsModal .progress-objective-plan{gap:8px!important}#progressGoalsModal .progress-objective-plan-block{gap:7px!important;padding:9px 8px!important}#progressGoalsModal .progress-objective-plan-icon{flex-basis:23px!important;width:23px!important;height:23px!important;font-size:20px!important}#progressGoalsModal .progress-objective-plan-block strong{font-size:10.5px!important}#progressGoalsModal .progress-objective-plan-block small{font-size:9.5px!important}}


/* v2.24 — Mes objectifs en cours : planning léger intégré à la carte, conforme au visuel validé. */
#progressGoalsModal .progress-objective-plan{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:0!important;margin:2px 0 12px!important;padding:0 2px 11px!important;
  border-bottom:1px solid rgba(60,45,35,.08)!important;
}
#progressGoalsModal .progress-objective-plan-block{
  min-width:0!important;display:flex!important;align-items:center!important;gap:10px!important;
  padding:5px 12px!important;border-radius:0!important;background:transparent!important;
}
#progressGoalsModal .progress-objective-plan-block+ .progress-objective-plan-block{
  border-left:1px solid rgba(60,45,35,.08)!important;
}
#progressGoalsModal .progress-objective-plan-icon{
  flex:0 0 25px!important;width:25px!important;height:25px!important;display:grid!important;
  place-items:center!important;color:var(--recap-color)!important;font-size:0!important;line-height:1!important;
}
#progressGoalsModal .progress-objective-plan-icon svg{display:block!important;width:23px!important;height:23px!important}
#progressGoalsModal .progress-objective-plan-block>span:last-child{
  min-width:0!important;display:flex!important;flex-direction:column!important;gap:2px!important;
}
#progressGoalsModal .progress-objective-plan-block strong{
  color:#29221e!important;font-size:12px!important;font-weight:900!important;line-height:1.22!important;
}
#progressGoalsModal .progress-objective-plan-block small{
  color:#746d68!important;font-size:10px!important;font-weight:650!important;line-height:1.2!important;
}
@media(max-width:420px){
  #progressGoalsModal .progress-objective-plan{padding-left:0!important;padding-right:0!important}
  #progressGoalsModal .progress-objective-plan-block{gap:7px!important;padding:4px 7px!important}
  #progressGoalsModal .progress-objective-plan-icon{flex-basis:22px!important;width:22px!important;height:22px!important}
  #progressGoalsModal .progress-objective-plan-icon svg{width:21px!important;height:21px!important}
  #progressGoalsModal .progress-objective-plan-block strong{font-size:10.5px!important}
  #progressGoalsModal .progress-objective-plan-block small{font-size:9.5px!important}
}


/* v2.24 — Ajouter ma séance : uniquement les 3 zones validées (type, date, dernière séance). */
#tab-seance .session-type-step .session-type-btn{
  position:relative!important;display:grid!important;grid-template-columns:46px minmax(0,1fr)!important;align-items:center!important;
  min-height:92px!important;padding:14px 16px!important;text-align:left!important;gap:12px!important;
}
#tab-seance .session-type-btn .session-type-icon{display:flex;align-items:center;justify-content:center;font-size:38px!important;line-height:1!important;font-weight:900!important;color:#5d5a57!important}
#tab-seance .session-type-btn[data-session-type="objective"] .session-type-icon{color:var(--session-objective-color,#f56a25)!important;font-size:43px!important}
#tab-seance .session-type-btn .session-type-free-icon{font-size:25px!important}
#tab-seance .session-type-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
#tab-seance .session-type-copy strong{font-size:15px;line-height:1.15;font-weight:900;color:#302720}
#tab-seance .session-type-copy small{font-size:12px;line-height:1.25;font-weight:500;color:#827870}
#tab-seance .session-type-check{display:none;position:absolute;right:10px;top:9px;width:25px;height:25px;border-radius:50%;align-items:center;justify-content:center;background:var(--session-objective-color,#f56a25);color:#fff;font-size:15px;font-weight:900}
#tab-seance .session-type-btn.active .session-type-check{display:flex}
#tab-seance .session-type-btn[data-session-type="free"].active .session-type-check{background:#2e98c9}

#tab-seance #sessionDateField .session-date-stepper{padding:7px!important;border-radius:18px!important;background:color-mix(in srgb,var(--session-objective-color,#f56a25) 10%,white)!important;gap:9px!important}
#tab-seance #sessionDateField .session-date-step-btn{border-color:transparent!important;background:#fff!important;border-radius:50%!important;box-shadow:0 3px 10px rgba(57,40,30,.06)!important}
#tab-seance #sessionDateField .session-date-picker-btn{display:flex!important;align-items:center!important;justify-content:center!important;gap:13px!important;border:0!important;background:rgba(255,255,255,.72)!important;box-shadow:none!important}
#tab-seance .session-date-calendar-icon{font-size:26px!important;line-height:1!important;color:var(--session-objective-color,#f56a25)!important}
#tab-seance .session-date-picker-copy{white-space:pre-line;text-align:center}

#tab-seance .session-last-workout-action .home-progress-open-btn{min-height:70px!important;padding:0 18px!important}
#tab-seance .session-last-main{display:flex;align-items:center;gap:13px}
#tab-seance .session-last-clock{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--session-objective-color,#f56a25) 12%,white);color:var(--session-objective-color,#f56a25);font-size:28px;font-weight:700;line-height:1}
@media(max-width:420px){
 #tab-seance .session-type-step .session-type-btn{min-height:86px!important;padding:12px 12px!important;grid-template-columns:39px minmax(0,1fr)!important;gap:9px!important}
 #tab-seance .session-type-btn .session-type-icon{font-size:31px!important}
 #tab-seance .session-type-btn[data-session-type="objective"] .session-type-icon{font-size:36px!important}
 #tab-seance .session-type-copy strong{font-size:14px}
 #tab-seance .session-type-copy small{font-size:11px}
 #tab-seance #sessionDateField .session-date-stepper{grid-template-columns:46px minmax(0,1fr) 46px!important}
}

/* v2.25 — correction stricte des 4 pictogrammes signalés, sans autre changement. */
#tab-seance .session-type-icon svg{width:38px;height:38px;display:block}
#tab-seance .session-type-free-icon svg{width:34px;height:34px}
#tab-seance .session-date-calendar-icon{display:inline-flex;align-items:center;justify-content:center}
#tab-seance .session-date-calendar-icon svg{width:29px;height:29px;display:block}
#tab-seance .session-last-clock svg{width:25px;height:25px;display:block}


/* v2.26 — pictogrammes Type de séance plus détaillés, sans autre changement. */
#tab-seance .session-type-icon svg{width:46px!important;height:46px!important;overflow:visible}
#tab-seance .session-type-free-icon svg{width:43px!important;height:43px!important}
@media(max-width:420px){
 #tab-seance .session-type-icon svg{width:41px!important;height:41px!important}
 #tab-seance .session-type-free-icon svg{width:39px!important;height:39px!important}
}

/* v2.27 — Séance libre : silhouette de coureur plus naturelle, sans traits de vitesse. */
#tab-seance .session-type-btn .session-type-free-icon{font-size:31px!important}
#tab-seance .session-type-btn .session-type-free-icon svg{width:48px!important;height:48px!important;display:block}

/* v2.28 — Séance libre : pictogramme coureur plein, plus lisible et naturel. */


/* v2.30 — correction ciblée : coureur plus naturel + pastille libre dégagée du texte. */
#tab-seance .session-type-btn[data-session-type="free"]{padding-right:46px!important;}
#tab-seance .session-type-btn[data-session-type="free"] .session-type-check{right:9px!important;top:9px!important;z-index:2!important;}
#tab-seance .session-type-btn[data-session-type="free"] .session-type-copy{padding-right:2px!important;}
#tab-seance .session-type-btn .session-type-free-icon svg{width:46px!important;height:46px!important;}
@media(max-width:420px){
 #tab-seance .session-type-btn[data-session-type="free"]{padding-right:42px!important;}
 #tab-seance .session-type-btn[data-session-type="free"] .session-type-check{right:8px!important;top:8px!important;}
 #tab-seance .session-type-btn .session-type-free-icon svg{width:40px!important;height:40px!important;}
}

/* v2.30 — correction ciblée : texte de « Séance libre » fluide, pastille bleue conservée. */
#tab-seance .session-type-btn[data-session-type="free"]{
  padding-right:12px!important;
  grid-template-columns:46px minmax(0,1fr)!important;
}
#tab-seance .session-type-btn[data-session-type="free"] .session-type-copy{
  padding-right:0!important;
  min-width:0!important;
}
#tab-seance .session-type-btn[data-session-type="free"] .session-type-copy strong{
  white-space:nowrap!important;
  padding-right:28px!important;
}
#tab-seance .session-type-btn[data-session-type="free"] .session-type-copy small{
  max-width:100%!important;
}
#tab-seance .session-type-btn[data-session-type="free"] .session-type-check{
  right:9px!important;top:9px!important;
}
@media(max-width:420px){
  #tab-seance .session-type-btn[data-session-type="free"]{
    padding-right:10px!important;
    grid-template-columns:39px minmax(0,1fr)!important;
  }
  #tab-seance .session-type-btn[data-session-type="free"] .session-type-copy strong{
    padding-right:27px!important;
  }
}

/* v2.32 — correction ciblée : en séance libre uniquement, les flèches de date
   reprennent le traitement visuel de la séance objectif (aucun anneau/contour bleu). */
#workoutForm.session-free #sessionDateField .session-date-step-btn{
  border-color:transparent!important;
  color:#f56a25!important;
  background:#fff!important;
  box-shadow:0 3px 10px rgba(57,40,30,.06)!important;
}

/* v2.33 — Accueil : trois statistiques de progression strictement homogènes
   (mêmes dimensions de cartes et pictogrammes de même gabarit visuel). */
#tab-accueil .p3-stats{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  align-items:stretch!important;
}
#tab-accueil .p3-stat{
  width:100%!important;
  height:112px!important;
  min-height:112px!important;
  padding:12px 5px 10px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
#tab-accueil .p3-stat-icon{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  min-height:28px!important;
  margin:0 auto 6px!important;
  display:grid!important;
  place-items:center!important;
  line-height:28px!important;
  font-size:24px!important;
  box-sizing:border-box!important;
}
#tab-accueil .p3-stat-orange .p3-stat-icon{
  width:28px!important;
  height:28px!important;
  border:2px solid #eb692b!important;
  border-radius:50%!important;
  font-size:17px!important;
  line-height:24px!important;
}
#tab-accueil .p3-stat-blue .p3-stat-icon,
#tab-accueil .p3-stat-red .p3-stat-icon{
  font-size:24px!important;
  line-height:28px!important;
}

/* v2.34 — Accueil : homogénéisation optique des 3 pictogrammes statistiques uniquement. */
#tab-accueil .p3-stat-orange .p3-stat-icon{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  min-height:24px!important;
  font-size:15px!important;
  line-height:20px!important;
  margin-top:2px!important;
  margin-bottom:8px!important;
}
#tab-accueil .p3-stat-blue .p3-stat-icon,
#tab-accueil .p3-stat-red .p3-stat-icon{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  min-height:28px!important;
  font-size:28px!important;
  line-height:28px!important;
  transform:scale(1.12)!important;
  transform-origin:center!important;
}

/* v2.35 — Accueil : espace vertical légèrement augmenté entre le cercle principal
   et les trois statistiques, sans modifier leur position dans le bloc principal. */
#tab-accueil .p3-card{height:520px!important}
#tab-accueil .p3-stats{margin-top:14px!important}
@media(max-width:360px){#tab-accueil .p3-card{height:504px!important}}

/* v2.36 — Accueil : augmenter uniquement l'espace entre le cercle principal
   et les trois statistiques. Les statistiques restent dans la carte et
   l'espace inférieur visuel est conservé. */
#tab-accueil .p3-card{height:534px!important}
#tab-accueil .p3-stats{margin-top:28px!important}
@media(max-width:360px){#tab-accueil .p3-card{height:518px!important}}

/* v2.37 — Accueil : conserver l'écart cercle/statistiques de v2.36 et ajouter
   un fin espace blanc sous les trois statistiques, à l'intérieur de la carte. */
#tab-accueil .p3-card{height:548px!important}
#tab-accueil .p3-stats{margin-top:28px!important}
@media(max-width:360px){#tab-accueil .p3-card{height:532px!important}}

/* v2.39 — en-tête du calendrier aligné sur « Mes objectifs en cours » + fermeture mieux intégrée. */
#calendarModal .calendar-modal-dialog{
  padding-top:18px!important;
}
#calendarModal .home-training-calendar{
  padding-top:8px!important;
}
#calendarModal .training-calendar-head{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:12px!important;
  padding:0!important;
  margin-bottom:12px!important;
}
#calendarModal .training-calendar-title{
  width:100%!important;
  margin:0!important;
  padding:10px 48px 12px!important;
  box-sizing:border-box!important;
  text-align:center!important;
  font-size:28px!important;
  line-height:1.12!important;
  font-weight:900!important;
  color:#171412!important;
  overflow-wrap:normal!important;
}
#calendarModal .progress-modal-close{
  top:14px!important;
  left:14px!important;
  right:auto!important;
  width:38px!important;
  height:38px!important;
  border-radius:50%!important;
  background:#f7f3ef!important;
  color:#2f2925!important;
  z-index:5!important;
}
#calendarModal .progress-modal-close::before{
  font-size:27px!important;
  transform:translate(-50%,-54%)!important;
}
#calendarModal .training-calendar-nav{width:100%!important;}
@media (max-width:480px){
  #calendarModal .calendar-modal-dialog{padding-top:14px!important;}
  #calendarModal .home-training-calendar{padding-top:6px!important;}
  #calendarModal .training-calendar-head{padding:0!important;gap:10px!important;}
  #calendarModal .training-calendar-title{font-size:24px!important;padding:9px 42px 10px!important;}
  #calendarModal .progress-modal-close{top:12px!important;left:12px!important;width:36px!important;height:36px!important;}
}
@media (max-width:350px){
  #calendarModal .training-calendar-head{padding:0!important;}
  #calendarModal .training-calendar-title{font-size:21px!important;padding-left:40px!important;padding-right:40px!important;}
}


/* v2.40 — Ajustements stricts demandés : titre calendrier plus haut + X sur objectifs en cours. */
#calendarModal .calendar-modal-dialog{padding-top:10px!important;}
#calendarModal .home-training-calendar{padding-top:0!important;}
#calendarModal .training-calendar-title{padding-top:2px!important;padding-bottom:8px!important;}
#calendarModal .progress-modal-close{top:12px!important;}

#progressGoalsModal .progress-modal-close{
  display:flex!important;
  top:12px!important;
  left:12px!important;
  right:auto!important;
  width:38px!important;
  height:38px!important;
  border-radius:50%!important;
  background:#f7f3ef!important;
  color:#2f2925!important;
  z-index:5!important;
}
#progressGoalsModal .home-section-title{
  padding-left:48px!important;
  padding-right:48px!important;
}
@media(max-width:480px){
  #calendarModal .calendar-modal-dialog{padding-top:8px!important;}
  #calendarModal .home-training-calendar{padding-top:0!important;}
  #calendarModal .training-calendar-title{padding-top:0!important;padding-bottom:7px!important;}
  #calendarModal .progress-modal-close{top:10px!important;}
  #progressGoalsModal .progress-modal-close{top:10px!important;left:10px!important;width:36px!important;height:36px!important;}
  #progressGoalsModal .home-section-title{padding-left:42px!important;padding-right:42px!important;}
}

/* v2.40-correctif — visibilité stricte des changements demandés. */
#calendarModal .training-calendar-head{margin-top:-6px!important;}
#calendarModal .training-calendar-title{padding-top:0!important;margin-top:0!important;}
#progressGoalsModal .progress-modal-dialog{position:relative!important;}
#progressGoalsModal .progress-modal-close{display:flex!important;align-items:center!important;justify-content:center!important;position:absolute!important;top:14px!important;left:14px!important;right:auto!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;}
@media(max-width:480px){#calendarModal .training-calendar-head{margin-top:-8px!important;}#progressGoalsModal .progress-modal-close{top:12px!important;left:12px!important;}}

/* v2.41 — Modal Détails objectif : en-tête harmonisé avec le calendrier. */
#tab-suivi #progressionCard .objective-details-dialog{
  padding-top:28px!important;
}
#tab-suivi #progressionCard .objective-details-close{
  left:18px!important;right:auto!important;top:18px!important;
  width:44px!important;height:44px!important;border-radius:50%!important;
  background:#f7f4f1!important;color:#2d241f!important;
  font-size:30px!important;font-weight:900!important;
}
#tab-suivi #progressionCard .objective-details-header{
  padding:4px 58px 22px!important;
  min-height:58px!important;
  display:flex!important;align-items:flex-start!important;justify-content:center!important;
  text-align:center!important;
}
#tab-suivi #progressionCard .objective-details-header h2{
  margin:0!important;text-align:center!important;font-size:28px!important;line-height:1.08!important;
}
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-close{left:14px!important;top:14px!important;width:42px!important;height:42px!important}
  #tab-suivi #progressionCard .objective-details-header{padding:4px 52px 20px!important}
  #tab-suivi #progressionCard .objective-details-header h2{font-size:25px!important}
}

/* v2.42 — Détails objectif : bouton X strictement identique à "Mes objectifs en cours". */
#tab-suivi #progressionCard .objective-details-close{
  left:14px!important; right:auto!important; top:14px!important;
  width:38px!important; height:38px!important;
  border-radius:50%!important;
  background:#f7f3ef!important; color:#2f2925!important;
  font-size:28px!important; font-weight:900!important; line-height:1!important;
  display:flex!important; align-items:center!important; justify-content:center!important;
  padding:0!important;
}
@media(max-width:480px){
  #tab-suivi #progressionCard .objective-details-close{
    left:10px!important; top:10px!important; width:36px!important; height:36px!important;
  }
}

/* v2.43 — Détails objectif : gagner de l'espace en haut et homogénéiser les filtres Exercice/Période. */
#tab-suivi #progressionCard .objective-details-header{
  padding-bottom:8px!important;
  min-height:0!important;
}
#tab-suivi #progressionCard .objective-details-header h2{
  margin-bottom:0!important;
}
#tab-suivi #progressionCard .objective-details-content #v487-exercise-label{
  margin-top:0!important;
}
#tab-suivi #progressionCard .objective-details-content .chart-tabs-row .chart-tab,
#tab-suivi #progressionCard .objective-details-content .chart-periods .chart-period{
  min-height:30px!important;
  height:30px!important;
  padding:5px 10px!important;
  border-radius:999px!important;
  font-size:11px!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
@media(max-width:430px){
  #tab-suivi #progressionCard .objective-details-header{padding-bottom:6px!important;}
  #tab-suivi #progressionCard .objective-details-content .chart-tabs-row .chart-tab,
  #tab-suivi #progressionCard .objective-details-content .chart-periods .chart-period{
    min-height:29px!important;
    height:29px!important;
    padding:5px 9px!important;
    font-size:10.5px!important;
  }
}

/* v2.44 — Détails objectif : boutons Exercice strictement au gabarit compact des filtres Période. */
#tab-suivi #progressionCard .objective-details-content #chartTabs .chart-tabs-row{
  gap:7px!important;
  align-items:center!important;
}
#tab-suivi #progressionCard .objective-details-content #chartTabs .chart-tabs-row .chart-tab{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  min-height:29px!important;
  height:29px!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  font-size:10.5px!important;
  line-height:1!important;
  box-sizing:border-box!important;
  white-space:nowrap!important;
}
#tab-suivi #progressionCard .objective-details-content .chart-periods .chart-period{
  min-height:29px!important;
  height:29px!important;
  padding:5px 9px!important;
  font-size:10.5px!important;
  line-height:1!important;
  box-sizing:border-box!important;
}

/* v2.44 release fix — compactage visible des boutons Exercice (même gabarit vertical que Période). */
#tab-suivi #progressionCard.details-mode #chartTabs .chart-tabs-row .chart-tab{
  min-height:29px!important;height:29px!important;
  min-width:0!important;width:auto!important;max-width:none!important;
  padding:4px 9px!important;margin:0!important;
  font-size:10.5px!important;line-height:1!important;
  border-radius:999px!important;flex:0 0 auto!important;
}

/* v2.45 — Le bouton « Séance objectif » est un repère fonctionnel fixe :
   il reste orange quelle que soit la couleur de l'objectif sélectionné. */
#tab-seance .session-type-step .session-type-btn[data-session-type="objective"].active{
  border-color:#f56a25!important;
  background:#fff8f4!important;
  color:#f56a25!important;
  box-shadow:0 5px 14px rgba(245,106,37,.10)!important;
}
#tab-seance .session-type-step .session-type-btn[data-session-type="objective"] .session-type-icon{
  color:#f56a25!important;
}
#tab-seance .session-type-step .session-type-btn[data-session-type="objective"].active .session-type-check{
  background:#f56a25!important;
  color:#fff!important;
}


/* v2.46 — statistiques de pas à grande amplitude */
#tab-suivi #progressionCard .objective-details-content .goal-stat strong{
  font-variant-numeric:tabular-nums!important;
  letter-spacing:-.02em!important;
}

/* v2.47 — Séance libre : cohérence chromatique du sélecteur de date.
   Les deux flèches et le pictogramme calendrier reprennent le bleu de la séance libre. */
#workoutForm.session-free #sessionDateField .session-date-step-btn{
  color:#1487b7!important;
}
#workoutForm.session-free #sessionDateField .session-date-picker-btn .session-date-calendar-icon{
  color:#1487b7!important;
}

/* v2.48 — Couleur de la rubrique « Quand ? » pilotée par le TYPE de séance.
   Séance objectif = orange fixe, quelle que soit la couleur de l'objectif sélectionné.
   Séance libre conserve le bleu défini en v2.47. */
#workoutForm.session-objective #sessionDateField .session-date-step-btn,
#workoutForm.session-objective #sessionDateField .session-date-picker-btn .session-date-calendar-icon{
  color:#f56a25!important;
}
#workoutForm.session-objective #sessionDateField .session-date-picker-btn{
  border-color:color-mix(in srgb,#f56a25 38%,#e8ddd6)!important;
  background:color-mix(in srgb,#f56a25 5%,white)!important;
}
#workoutForm.session-objective .session-last-workout-action .home-progress-open-btn{
  border-color:color-mix(in srgb,#f56a25 38%,#e8ddd6)!important;
  background:color-mix(in srgb,#f56a25 5%,white)!important;
}
#workoutForm.session-objective .session-last-workout-action .session-last-clock,
#workoutForm.session-objective .session-last-workout-action .session-last-chevron{
  color:#f56a25!important;
}

/* v2.49 — Séance objectif : toute la rubrique « Quand ? » reste orange.
   Neutralise les derniers fonds héritant encore de la couleur de l'objectif sélectionné. */
#workoutForm.session-objective #sessionDateField .session-date-stepper{
  background:color-mix(in srgb,#f56a25 10%,white)!important;
}
#workoutForm.session-objective #sessionDateField .session-date-step-btn{
  color:#f56a25!important;
}
#workoutForm.session-objective #sessionDateField .session-date-picker-btn{
  background:color-mix(in srgb,#f56a25 5%,white)!important;
}
#workoutForm.session-objective #sessionDateField .session-date-picker-btn .session-date-calendar-icon{
  color:#f56a25!important;
}
#workoutForm.session-objective .session-last-workout-action .home-progress-open-btn{
  border-color:color-mix(in srgb,#f56a25 38%,#e8ddd6)!important;
  background:color-mix(in srgb,#f56a25 5%,white)!important;
}
#workoutForm.session-objective .session-last-workout-action .session-last-clock{
  background:color-mix(in srgb,#f56a25 12%,white)!important;
  color:#f56a25!important;
}
#workoutForm.session-objective .session-last-workout-action .session-last-chevron{
  color:#f56a25!important;
}

/* v2.51-base50-corrigee — conserver une carte par exercice ; objectif placé à droite du nom */
#tab-seance #workoutFields .workout-exercise-title-wrap{
  display:flex!important;align-items:baseline!important;gap:8px!important;flex-wrap:wrap!important;
}
#tab-seance #workoutFields .workout-objective{
  margin-top:0!important;font-size:12px!important;line-height:1.2!important;color:#837b75!important;white-space:nowrap;
}
#tab-seance #workoutFields .workout-goal-badge{display:none!important}


/* v2.54 — modification unique : « Voir ma dernière séance » compact et intégré à la carte Date */
#tab-seance .session-date-zone{
  margin-bottom:0!important;
  padding-bottom:12px!important;
  border-radius:18px 18px 0 0!important;
}
#tab-seance .session-last-workout-action{
  margin:-1px 0 22px!important;
  padding:0 12px 12px!important;
  background:color-mix(in srgb,#f56a25 10%,white)!important;
  border-radius:0 0 18px 18px!important;
}
#tab-seance .session-last-workout-action .home-progress-open-btn{
  min-height:46px!important;
  height:46px!important;
  padding:0 14px!important;
  border:0!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:none!important;
  font-size:14px!important;
}
#tab-seance .session-last-main{gap:10px!important}
#tab-seance .session-last-clock{
  width:28px!important;
  height:28px!important;
  background:transparent!important;
  color:#f56a25!important;
}
#tab-seance .session-last-clock svg{width:23px!important;height:23px!important}
#tab-seance .session-last-workout-action .session-last-chevron{
  color:#7d7168!important;
  font-size:24px!important;
}
#workoutForm.session-free .session-last-workout-action{background:#eef8fc!important}

/* v2.55 — correction unique : supprimer le grand vide sous « Voir ma dernière séance » */
#tab-seance .session-last-workout-action{
  margin:-1px 0 0!important;
  padding-bottom:12px!important;
}
#tab-seance #dailyLoadCard{
  margin-top:14px!important;
}

/* v2.56 — correction ciblée : rapprocher « Avant ma séance » de « Voir ma dernière séance » */
#tab-seance .session-last-workout-action{
  margin:-1px 0 0!important;
  padding-bottom:8px!important;
}
#tab-seance #dailyLoadCard{
  margin-top:0!important;
}

/* v2.57 — correction réelle de l'espace sous « Voir ma dernière séance » */
#tab-seance .session-last-workout-action{
  margin:-1px 0 -18px!important;
  padding-bottom:8px!important;
}
#tab-seance #dailyLoadCard{
  margin-top:0!important;
}


/* v2.58 — « Voir ma dernière séance » réellement intégré au bloc Date, comme la proposition validée. */
#tab-seance .session-date-zone{
  margin-bottom:14px!important;
  padding-bottom:10px!important;
  border-radius:18px!important;
}
#tab-seance .session-date-zone .session-last-workout-action{
  margin:10px 0 0!important;
  padding:0!important;
  background:transparent!important;
  border-radius:0!important;
}
#tab-seance .session-date-zone .session-last-workout-action .home-progress-open-btn{
  min-height:46px!important;
  height:46px!important;
  padding:0 14px!important;
  border:0!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.72)!important;
}
#tab-seance #dailyLoadCard{margin-top:0!important;}

/* v2.59 — correction ciblée : dernière séance intégrée visuellement au bloc date */
#tab-seance .session-date-zone{
  margin-bottom:14px!important;
  padding:0 0 10px!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:color-mix(in srgb,#f56a25 10%,white)!important;
}
#tab-seance .session-date-zone>.session-setup-title{
  background:#fff!important;
  padding-bottom:10px!important;
}
#tab-seance .session-date-zone #sessionDateField{
  margin:0!important;
  padding:0 12px!important;
  background:transparent!important;
}
#tab-seance .session-date-zone .session-last-workout-action{
  margin:8px 12px 0!important;
  padding:0!important;
  background:transparent!important;
}
#tab-seance .session-date-zone .session-last-workout-action .home-progress-open-btn{
  width:100%!important;
  min-height:44px!important;
  height:44px!important;
  padding:0 12px!important;
  border:0!important;
  border-radius:11px!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:none!important;
}
#tab-seance .session-date-zone .session-last-main{gap:9px!important}
#tab-seance .session-date-zone .session-last-clock{width:25px!important;height:25px!important;background:transparent!important;color:#f56a25!important}
#tab-seance .session-date-zone .session-last-clock svg{width:21px!important;height:21px!important}
#tab-seance .session-date-zone .session-last-chevron{color:#f56a25!important;font-size:22px!important}

/* v2.60 — séparation visuelle entre la date et « Voir ma dernière séance » */
#tab-seance .session-date-zone .session-last-workout-action{
  margin:14px 12px 0!important;
  padding-top:14px!important;
  border-top:1px solid rgba(245,106,37,.22)!important;
}


/* v2.61 — vraie séparation en deux blocs : Date / Dernière séance */
#tab-seance .session-date-zone{
  background:transparent!important;
  overflow:visible!important;
  padding:0!important;
  border-radius:0!important;
}
#tab-seance .session-date-zone #sessionDateField{
  display:block!important;
  padding:12px!important;
  border-radius:18px!important;
  background:color-mix(in srgb,#f56a25 10%,white)!important;
}
#tab-seance .session-date-zone .session-last-workout-action{
  margin:16px 0 0!important;
  padding:0!important;
  border-top:0!important;
  border-radius:18px!important;
  background:color-mix(in srgb,#f56a25 7%,white)!important;
}
#tab-seance .session-date-zone .session-last-workout-action .home-progress-open-btn{
  min-height:58px!important;
  height:58px!important;
  padding:0 18px!important;
  border:1px solid color-mix(in srgb,#f56a25 22%,#e8ddd6)!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.48)!important;
}

/* v2.62 — Ma dernière séance : bouton de fermeture correctement positionné. */
#lastWorkoutModal .last-workout-modal-dialog{
  position:relative!important;
}
#lastWorkoutModal .progress-modal-close{
  position:absolute!important;
  top:14px!important;
  right:14px!important;
  left:auto!important;
  margin:0!important;
  z-index:5!important;
}
#lastWorkoutModal .home-section-title{
  padding-right:54px!important;
}


/* v2.63 — correctif ciblé : fermeture de « Ma dernière séance » en haut à droite. */
#lastWorkoutModal > .last-workout-modal-dialog {
  position: relative !important;
  padding-top: 28px !important;
}
#lastWorkoutModal > .last-workout-modal-dialog > #closeLastWorkoutModal {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  left: auto !important;
  bottom: auto !important;
  transform: none !important;
  margin: 0 !important;
  z-index: 50 !important;
}
#lastWorkoutModal > .last-workout-modal-dialog > #lastWorkoutModalTitle {
  padding-right: 58px !important;
}
/* v2.81 — Accueil : carrousel utile à trois écrans, piloté uniquement par points/glissement. */
#tab-accueil .p3-card{touch-action:pan-y;isolation:isolate}
#tab-accueil .home-carousel-alt{
  position:absolute;z-index:12;inset:0 0 142px;overflow:hidden;
  padding:28px 22px 58px;display:none;flex-direction:column;align-items:center;
  color:#17120f;text-align:center;
  background:linear-gradient(180deg,#ff6b2c 0%,#ff8438 28%,#ffb477 48%,#fff2e9 63%,#fff 78%);
}
#tab-accueil .p3-card[data-carousel-slide="1"] .home-carousel-alt[data-home-slide="1"],
#tab-accueil .p3-card[data-carousel-slide="2"] .home-carousel-alt[data-home-slide="2"]{display:flex}
#tab-accueil .p3-card[data-carousel-slide]:not([data-carousel-slide="0"]) .p3-heading,
#tab-accueil .p3-card[data-carousel-slide]:not([data-carousel-slide="0"]) .p3-wave,
#tab-accueil .p3-card[data-carousel-slide]:not([data-carousel-slide="0"]) .p3-ring-wrap{visibility:hidden}
#tab-accueil .home-carousel-alt::before{
  content:"";position:absolute;z-index:-1;left:50%;top:126px;width:128%;height:330px;
  transform:translateX(-50%);border-radius:50% 50% 0 0 / 25% 25% 0 0;background:#fff;
  box-shadow:0 -15px 28px rgba(255,229,210,.72);
}
#tab-accueil .home-carousel-kicker{display:flex;align-items:center;gap:9px;color:#fff;font-size:13px;font-weight:850;letter-spacing:.2px}
#tab-accueil .home-carousel-kicker-icon{width:34px;height:34px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.88);border-radius:50%;font-size:18px}
#tab-accueil .home-carousel-main{position:relative;z-index:1;width:100%;margin-top:76px;display:flex;flex-direction:column;align-items:center}
#tab-accueil .home-carousel-main-icon{width:60px;height:60px;margin-bottom:12px;display:grid;place-items:center;border-radius:19px;background:#fff2e9;color:#f45f20;font-size:29px;box-shadow:0 8px 20px rgba(91,51,25,.10)}
#tab-accueil .home-carousel-main h3{max-width:100%;margin:0;color:#17120f;font-size:25px;line-height:1.08;letter-spacing:-.65px}
#tab-accueil .home-carousel-main p{margin:8px 0 0;color:#6f6762;font-size:14px;line-height:1.28}
#tab-accueil .home-carousel-main p strong{color:#ef5e1e}
#tab-accueil .home-carousel-action{width:min(100%,300px);min-height:50px;margin-top:22px;padding:0 18px;border:0;border-radius:26px;background:linear-gradient(90deg,#ff5d15,#ff711d);color:#fff;font-size:16px;font-weight:900;box-shadow:0 8px 20px rgba(238,91,24,.23)}
#tab-accueil .home-week-summary{width:100%;margin-top:13px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#tab-accueil .home-week-stat{padding:11px 7px;border-radius:15px;background:#fff7f2;color:#6d625c;font-size:10px;line-height:1.15;box-shadow:0 5px 14px rgba(66,43,28,.06)}
#tab-accueil .home-week-stat strong{display:block;margin-bottom:4px;color:#15110f;font-size:21px;line-height:1}
#tab-accueil .home-week-next{width:100%;margin-top:10px;padding:10px 12px;border:1px solid #ffe0cf;border-radius:15px;background:#fff;text-align:left;color:#6f6762;font-size:11px;line-height:1.25}
#tab-accueil .home-week-next strong{display:block;margin-bottom:3px;color:#ed5e20;font-size:13px}
#tab-accueil .home-carousel-dots{
  position:absolute;z-index:25;left:50%;bottom:132px;transform:translateX(-50%);
  height:24px;display:flex;align-items:center;justify-content:center;gap:9px;
}
#tab-accueil .home-carousel-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#d7d3d0;box-shadow:none;transition:transform .18s ease,background .18s ease}
#tab-accueil .home-carousel-dot.is-active{background:#ff650f;transform:scale(1.35)}
#tab-accueil .home-carousel-dot:focus-visible{outline:3px solid rgba(255,101,15,.28);outline-offset:4px}
#tab-accueil .p3-card[data-carousel-slide="0"] .p3-stats,
#tab-accueil .p3-card[data-carousel-slide="1"] .p3-stats,
#tab-accueil .p3-card[data-carousel-slide="2"] .p3-stats{position:absolute!important;z-index:20!important;left:14px;right:14px;bottom:16px;margin:0!important}
@media(max-width:360px){
  #tab-accueil .home-carousel-alt{padding-left:16px;padding-right:16px;bottom:138px}
  #tab-accueil .home-carousel-main{margin-top:69px}
  #tab-accueil .home-carousel-main h3{font-size:22px}
  #tab-accueil .home-carousel-action{margin-top:17px;min-height:47px;font-size:15px}
  #tab-accueil .home-carousel-dots{bottom:128px}
  #tab-accueil .p3-card[data-carousel-slide] .p3-stats{bottom:14px}
}
@media(prefers-reduced-motion:no-preference){
  #tab-accueil .home-carousel-alt[data-entering="true"]{animation:homeCarouselIn .22s ease-out}
  @keyframes homeCarouselIn{from{opacity:.35;transform:translateX(10px)}to{opacity:1;transform:none}}
}

/* v2.82 — suppression de l’ancienne fiche du jour et respiration sous l’anneau. */
#tab-accueil .p3-card{height:570px!important}
@media(max-width:360px){#tab-accueil .p3-card{height:554px!important}}


/* v2.85 — les 2 écrans secondaires reprennent exactement l’ondulation de la progression globale. */
#tab-accueil .home-carousel-alt{
  background:linear-gradient(180deg,#ff6b2c 0%,#ff7d31 13%,#ff9d55 23%,#ffc18f 34%,#ffddc6 43%,#fff0e5 52%,#fffaf7 61%,#fff 72%)!important;
}
#tab-accueil .home-carousel-alt::before{display:none!important;content:none!important}
#tab-accueil .home-carousel-wave{position:absolute;z-index:0;left:0;top:5px;width:100%;height:500px;overflow:visible;pointer-events:none}
#tab-accueil .home-carousel-wave-halo{fill:rgba(255,211,178,.22)}
#tab-accueil .home-carousel-wave-glow{fill:none;stroke:rgba(255,218,191,.24);stroke-width:20}
#tab-accueil .home-carousel-kicker{position:relative;z-index:2}
#tab-accueil .home-carousel-main{z-index:2}

/* v2.86 — carrousel : séances du jour + réussites, sans redondance avec le calendrier. */
#tab-accueil .home-daily-main,#tab-accueil .home-achievements-main{margin-top:67px}
#tab-accueil .home-daily-main .home-carousel-main-icon,#tab-accueil .home-achievements-main .home-carousel-main-icon{width:52px;height:52px;font-size:24px;margin-bottom:9px}
#tab-accueil .home-daily-count,#tab-accueil .home-achievements-subtitle{margin-top:4px!important}
#tab-accueil .home-daily-list,#tab-accueil .home-achievements-list{width:100%;margin-top:14px;display:grid;gap:9px}
#tab-accueil .home-daily-session{width:100%;min-height:58px;padding:9px 12px;border:1px solid #ffe1d1;border-radius:17px;background:#fffaf7;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:9px;text-align:left;color:#17120f;box-shadow:0 5px 14px rgba(66,43,28,.06)}
#tab-accueil .home-daily-session-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff0e7;color:#f45f20;font-size:25px;font-weight:900}
#tab-accueil .home-daily-session strong{display:block;font-size:13px;line-height:1.15}#tab-accueil .home-daily-session small{display:block;margin-top:3px;color:#776d67;font-size:10px;line-height:1.15}
#tab-accueil .home-daily-session b{padding:9px 12px;border-radius:18px;background:linear-gradient(90deg,#ff5d15,#ff711d);color:#fff;font-size:11px;white-space:nowrap}
#tab-accueil .home-achievement{min-height:55px;padding:9px 12px;border:1px solid #ffe1d1;border-radius:16px;background:#fff;display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;text-align:left}
#tab-accueil .home-achievement.is-latest{background:#fffaf7}
#tab-accueil .home-achievement-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff0e7;color:#f45f20;font-size:18px;font-weight:900}
#tab-accueil .home-achievement.is-latest .home-achievement-icon{background:#e9f8ee;color:#25a451}
#tab-accueil .home-achievement strong{display:block;font-size:13px;line-height:1.15}#tab-accueil .home-achievement small{display:block;margin-top:3px;color:#81756e;font-size:10px}
#tab-accueil .home-achievement-empty{padding:16px;border:1px solid #ffe1d1;border-radius:16px;background:#fffaf7;text-align:center}.home-achievement-empty strong,.home-achievement-empty small{display:block}.home-achievement-empty small{margin-top:5px;color:#81756e;font-size:10px}
@media(max-width:360px){#tab-accueil .home-daily-main,#tab-accueil .home-achievements-main{margin-top:61px}#tab-accueil .home-daily-session{min-height:54px}}

/* v2.87 — pagination du carrousel fixée sous les statistiques, commune aux 3 écrans. */
#tab-accueil .p3-card{height:592px!important;padding-bottom:0!important}
#tab-accueil .p3-card[data-carousel-slide] .p3-stats{bottom:38px!important}
#tab-accueil .home-carousel-dots{bottom:8px!important;height:22px!important}
#tab-accueil .home-carousel-alt{inset:0 0 164px!important}
@media(max-width:360px){
  #tab-accueil .p3-card{height:576px!important}
  #tab-accueil .p3-card[data-carousel-slide] .p3-stats{bottom:36px!important}
  #tab-accueil .home-carousel-dots{bottom:7px!important}
  #tab-accueil .home-carousel-alt{bottom:160px!important}
}

/* v2.88 — les 3 tuiles statistiques restent uniquement sur la page Progression. */
#tab-accueil .p3-card[data-carousel-slide="1"] .p3-stats,
#tab-accueil .p3-card[data-carousel-slide="2"] .p3-stats{display:none!important}
#tab-accueil .p3-card[data-carousel-slide="1"] .home-carousel-alt,
#tab-accueil .p3-card[data-carousel-slide="2"] .home-carousel-alt{bottom:38px!important}
@media(max-width:360px){
  #tab-accueil .p3-card[data-carousel-slide="1"] .home-carousel-alt,
  #tab-accueil .p3-card[data-carousel-slide="2"] .home-carousel-alt{bottom:36px!important}
}


/* v2.92 — séance du jour : la cible remplace la flèche décorative. */
#tab-accueil .home-daily-session{grid-template-columns:minmax(0,1fr) auto!important;gap:12px!important;padding-left:18px!important}
#tab-accueil .home-daily-session-icon{display:none!important}
#tab-accueil .home-daily-session-copy{min-width:0}
#tab-accueil .home-daily-session-copy small{white-space:normal}


/* v2.93 — échéance de l’objectif dans la séance du jour. */
#tab-accueil .home-daily-session-copy .home-daily-deadline{display:block;margin-top:3px;color:#8a817b;font-size:11px;font-weight:700;line-height:1.2}


/* v2.95 — séances du jour : interface allégée. */
#tab-accueil #homeCarouselDaily .home-daily-count{display:none!important}
#tab-accueil #homeCarouselDaily #homeCarouselDailyTitle{margin-top:14px!important;margin-bottom:0!important}


/* v2.96 — carrousel : suppression des pictogrammes décoratifs et des titres redondants. */
#tab-accueil #homeCarouselDaily .home-carousel-kicker,
#tab-accueil #homeCarouselAchievements .home-carousel-kicker{justify-content:center!important;gap:0!important}
#tab-accueil #homeCarouselDaily .home-carousel-main,
#tab-accueil #homeCarouselAchievements .home-carousel-main{margin-top:118px!important}
#tab-accueil #homeCarouselDaily .home-daily-list,
#tab-accueil #homeCarouselAchievements .home-achievements-list{margin-top:0!important}
#tab-accueil .home-achievement{grid-template-columns:1fr!important;padding-left:18px!important}
#tab-accueil .home-achievement-icon{display:none!important}
@media(max-width:360px){
  #tab-accueil #homeCarouselDaily .home-carousel-main,
  #tab-accueil #homeCarouselAchievements .home-carousel-main{margin-top:110px!important}
}


/* v2.97 — carrousel premium : hiérarchie visuelle et cartes enrichies. */
#tab-accueil #homeCarouselDaily .home-carousel-kicker,
#tab-accueil #homeCarouselAchievements .home-carousel-kicker{width:100%;justify-content:space-between!important;text-align:left;padding:0 8px;font-size:24px;line-height:1.05;letter-spacing:-.5px}
#tab-accueil .home-kicker-rich>span:first-child{display:flex;flex-direction:column;gap:8px}
#tab-accueil .home-kicker-rich strong{font-size:24px;font-weight:900;color:#fff}
#tab-accueil .home-kicker-rich small{font-size:14px;font-weight:600;color:rgba(255,255,255,.92);letter-spacing:0}
#tab-accueil .home-kicker-art{display:grid;place-items:center;width:78px;height:62px;font-size:38px;transform:rotate(4deg);filter:drop-shadow(0 7px 8px rgba(133,57,17,.18))}
#tab-accueil .home-kicker-trophy{font-size:46px}
#tab-accueil #homeCarouselDaily .home-carousel-main,
#tab-accueil #homeCarouselAchievements .home-carousel-main{margin-top:74px!important}
#tab-accueil .home-daily-feature{width:100%;padding:15px 15px 14px;border:1px solid #ffe0d0;border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 8px 22px rgba(91,51,25,.08);text-align:left}
#tab-accueil .home-daily-feature-top{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center}
#tab-accueil .home-daily-feature-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#fff0e7;font-size:29px}
#tab-accueil .home-daily-feature .home-daily-session-copy strong{font-size:17px}
#tab-accueil .home-daily-feature .home-daily-session-copy small{font-size:12px;margin-top:5px}
#tab-accueil .home-daily-progress{margin:11px 2px 8px 64px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
#tab-accueil .home-daily-progress>span{height:9px;border-radius:8px;background:linear-gradient(90deg,#ffe9dd 0 4%,#e8e7e6 4% 100%)}
#tab-accueil .home-daily-progress small{font-size:11px;color:#776d67;white-space:nowrap}
#tab-accueil .home-daily-feature>.home-daily-deadline{display:block;margin:5px 0 11px 2px;color:#766d67;font-size:11px;font-weight:700}
#tab-accueil .home-daily-feature .home-daily-session{display:block!important;width:100%;min-height:45px;padding:0!important;border:0!important;border-radius:24px;background:linear-gradient(90deg,#ff5d15,#ff711d)!important;text-align:center!important;box-shadow:0 8px 18px rgba(238,91,24,.2)}
#tab-accueil .home-daily-feature .home-daily-session b{display:block;padding:13px 16px!important;background:none!important;font-size:14px!important}
#tab-accueil .home-achievements-list{gap:10px!important}
#tab-accueil .home-achievement{min-height:62px!important;padding:10px 14px!important;grid-template-columns:44px minmax(0,1fr) auto!important;gap:11px!important;border-radius:19px!important;background:rgba(255,255,255,.95)!important;box-shadow:0 5px 14px rgba(66,43,28,.045)}
#tab-accueil .home-achievement-icon2{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#fff0e7;color:#f45f20;font-size:21px;font-weight:900}
#tab-accueil .home-achievement.is-latest .home-achievement-icon2{background:#e9f8ee;color:#25a451}
#tab-accueil .home-achievement-copy strong{display:block;font-size:14px;line-height:1.1}
#tab-accueil .home-achievement-copy small{display:block;margin-top:4px;color:#6f6762;font-size:11px}
#tab-accueil .home-achievement-date{color:#81756e;font-size:10px;white-space:nowrap}
@media(max-width:360px){
 #tab-accueil .home-kicker-rich strong{font-size:21px}
 #tab-accueil .home-kicker-art{width:60px;font-size:32px}
 #tab-accueil #homeCarouselDaily .home-carousel-main,#tab-accueil #homeCarouselAchievements .home-carousel-main{margin-top:67px!important}
 #tab-accueil .home-achievement-date{font-size:9px}
}


/* v2.98 — pictogrammes universels : aucune icône ne dépend du type d’exercice. */
#tab-accueil .home-kicker-standard{width:54px;height:54px;border:2px solid rgba(255,255,255,.55);border-radius:50%;font-size:29px;font-weight:900;color:#fff;transform:none;filter:none;background:rgba(255,255,255,.10)}
#tab-accueil .home-daily-feature-icon{font-size:0!important;color:#f45f20}
#tab-accueil .home-daily-feature-icon::before{content:"✓";font-size:24px;font-weight:900}
#tab-accueil .home-achievement-icon2{font-family:Arial,sans-serif;font-size:20px!important}

/* v2.99 — rattachement explicite de chaque réussite à son objectif. */
#tab-accueil .home-achievement-objective{color:#f45f20;font-weight:750}

/* v3.00 — Refonte visuelle de l'onglet Ajouter ma séance */
#tab-seance .section-card{padding:0 0 28px!important;overflow:hidden!important;background:#fff!important;border-radius:28px!important}
#tab-seance .session-redesign-hero{display:flex;align-items:center;justify-content:space-between;padding:25px 24px 31px;background:linear-gradient(135deg,#ff5a0a 0%,#ff7a32 100%);color:#fff;position:relative;overflow:hidden}
#tab-seance .session-redesign-hero:after{content:"";position:absolute;left:-6%;right:-6%;bottom:-24px;height:44px;background:#fff;border-radius:50% 50% 0 0/100% 100% 0 0}
#tab-seance .session-redesign-hero .card-section-title{margin:0!important;color:#fff!important;font-size:28px!important;line-height:1.05!important}
#tab-seance .session-redesign-hero p{margin:7px 0 0;font-size:13px;font-weight:700;opacity:.94}
#tab-seance .session-redesign-hero-icon{width:48px;height:48px;border:2px solid rgba(255,255,255,.8);border-radius:16px;display:grid;place-items:center;font-size:31px;font-weight:400;position:relative;z-index:1}
#tab-seance .session-redesign-progress{display:flex;align-items:flex-start;justify-content:center;padding:18px 28px 8px;margin-bottom:8px}
#tab-seance .session-redesign-progress span{width:58px;display:flex;flex-direction:column;align-items:center;gap:5px;color:#aaa;font-weight:700}
#tab-seance .session-redesign-progress b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e8e8e8;color:#fff;font-size:14px}
#tab-seance .session-redesign-progress .active{color:#302821} #tab-seance .session-redesign-progress .active b{background:#ff651d;box-shadow:0 5px 14px rgba(255,101,29,.25)}
#tab-seance .session-redesign-progress small{font-size:11px} #tab-seance .session-redesign-progress i{height:2px;width:64px;background:#e8e8e8;margin-top:14px}
#tab-seance .session-setup-step,#tab-seance #workoutForm>.session-date-zone{margin:0 22px 18px!important;padding:0!important;background:transparent!important;border:0!important}
#tab-seance .session-setup-title,#tab-seance .session-program-label{display:flex!important;align-items:center!important;gap:10px!important;font-size:21px!important;font-weight:850!important;margin:0 0 13px!important;color:#2f2925!important}
#tab-seance .session-step-number{width:32px!important;height:32px!important;min-width:32px!important;border-radius:50%!important;background:#ff651d!important;color:#fff!important;display:grid!important;place-items:center!important;font-size:15px!important;box-shadow:0 5px 13px rgba(255,101,29,.2)!important}
#tab-seance .session-type-selector{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important}
#tab-seance .session-type-btn{min-height:128px!important;border-radius:20px!important;border:1.5px solid #ded9d5!important;background:#fff!important;padding:16px 13px!important;display:flex!important;align-items:center!important;text-align:left!important;position:relative!important;box-shadow:0 7px 20px rgba(45,34,27,.045)!important}
#tab-seance .session-type-btn.active{border-color:#ff651d!important;background:#fffaf7!important;box-shadow:0 8px 22px rgba(255,101,29,.09)!important}
#tab-seance .session-type-icon{width:48px!important;height:48px!important;min-width:48px!important;color:#ff651d!important;margin-right:10px!important} #tab-seance .session-type-free-icon{color:#666!important}
#tab-seance .session-type-copy strong{font-size:17px!important;line-height:1.05!important} #tab-seance .session-type-copy small{display:block!important;margin-top:7px!important;font-size:12px!important;line-height:1.25!important;color:#817871!important}
#tab-seance .session-type-check{position:absolute!important;right:10px!important;top:10px!important;width:26px!important;height:26px!important;border-radius:50%!important;background:#ff651d!important;color:#fff!important;display:none!important;place-items:center!important} #tab-seance .session-type-btn.active .session-type-check{display:grid!important}
#tab-seance #sessionObjectiveZone{padding-top:5px!important}
#tab-seance #sessionObjectiveZone .session-program-selector{display:flex!important;flex-direction:column!important;gap:10px!important}
#tab-seance #sessionObjectiveZone .session-program-selector button{min-height:72px!important;border-radius:17px!important;padding:13px 16px!important;text-align:left!important;background:#fff!important;border:1.5px solid #e2ddd9!important;box-shadow:0 5px 16px rgba(45,34,27,.04)!important}
#tab-seance #sessionObjectiveZone .session-program-selector button.active{border-color:#ff651d!important;background:#fffaf7!important;box-shadow:0 7px 18px rgba(255,101,29,.08)!important}
#tab-seance .session-program-hint{margin-top:9px!important;color:#8b827c!important;font-size:12px!important}
#tab-seance .session-date-zone #sessionDateField{border-radius:20px!important;background:#fff5ef!important;padding:13px!important;border:0!important}
#tab-seance .session-date-stepper{gap:9px!important} #tab-seance .session-date-step-btn{border-radius:50%!important;background:#fff!important;box-shadow:0 5px 15px rgba(40,30,24,.06)!important}
#tab-seance .session-date-picker-btn{border-radius:16px!important;background:#fff!important;box-shadow:none!important}
#tab-seance .session-date-zone .session-last-workout-action{margin-top:14px!important;border-radius:17px!important;border:1.5px solid #ead7ca!important;background:#fffaf7!important}
#tab-seance .session-load-embedded{margin:18px 22px!important;border-radius:20px!important;border:1px solid #e7e1dc!important;overflow:hidden!important;box-shadow:0 6px 18px rgba(45,34,27,.04)!important}
#tab-seance #saveWorkoutBtn{margin:18px 22px 0!important;width:calc(100% - 44px)!important;border-radius:999px!important;min-height:52px!important;background:linear-gradient(90deg,#ff5a0a,#ff6d20)!important;box-shadow:0 8px 18px rgba(255,91,10,.2)!important}
@media(max-width:390px){#tab-seance .session-type-selector{grid-template-columns:1fr!important}#tab-seance .session-type-btn{min-height:96px!important}}

/* v3.01 — Ajouter ma séance : composition compacte */
#tab-seance .section-card{overflow:hidden!important}
#tab-seance .session-redesign-hero{padding:20px 22px 25px!important}
#tab-seance .session-redesign-hero:after{bottom:-31px!important;height:43px!important}
#tab-seance .session-redesign-hero .card-section-title{font-size:25px!important}
#tab-seance .session-redesign-hero p{font-size:12px!important;margin-top:5px!important}
#tab-seance .session-redesign-hero-icon{width:42px!important;height:42px!important;border-radius:14px!important;font-size:27px!important}
#tab-seance .session-redesign-progress{display:none!important}
#tab-seance .session-setup-step,#tab-seance #workoutForm>.session-date-zone{margin:18px 18px 16px!important}
#tab-seance .session-setup-title,#tab-seance .session-program-label{font-size:17px!important;margin-bottom:10px!important;gap:8px!important}
#tab-seance .session-step-number{width:28px!important;height:28px!important;min-width:28px!important;font-size:13px!important;box-shadow:none!important}
#tab-seance .session-type-selector{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important}
#tab-seance .session-type-btn{position:relative!important;display:flex!important;align-items:center!important;gap:10px!important;min-height:76px!important;padding:12px 13px!important;border:1.5px solid #e2ddd9!important;border-radius:16px!important;background:#fff!important;text-align:left!important;box-shadow:0 4px 13px rgba(45,34,27,.04)!important}
#tab-seance .session-type-btn.active{border-color:#ff651d!important;background:#fff9f5!important;box-shadow:0 5px 15px rgba(255,101,29,.08)!important}
#tab-seance .session-type-icon{width:37px!important;min-width:37px!important;height:37px!important;display:grid!important;place-items:center!important;color:#ff651d!important}
#tab-seance .session-type-free-icon{color:#68625e!important}
#tab-seance .session-type-icon svg{width:37px!important;height:37px!important}
#tab-seance .session-type-copy{display:flex!important;flex-direction:column!important;gap:3px!important;min-width:0!important}
#tab-seance .session-type-copy strong{font-size:15px!important;line-height:1.05!important}
#tab-seance .session-type-copy small{font-size:10.5px!important;line-height:1.2!important;color:#887f79!important}
#tab-seance .session-type-check{position:absolute!important;right:9px!important;top:9px!important;width:23px!important;height:23px!important;display:none!important;place-items:center!important;border-radius:50%!important;background:#ff651d!important;color:#fff!important;font-size:14px!important}
#tab-seance .session-type-btn.active .session-type-check{display:grid!important}
#tab-seance #sessionObjectiveZone{margin-top:14px!important}
#tab-seance #sessionObjectiveZone .session-program-selector{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
#tab-seance #sessionObjectiveZone .session-program-selector button{min-height:58px!important;padding:9px 7px!important;border-radius:14px!important;text-align:center!important;font-size:12px!important;line-height:1.15!important;font-weight:850!important;background:color-mix(in srgb,var(--objective-color) 7%,white)!important;border:1.5px solid color-mix(in srgb,var(--objective-color) 45%,#ddd)!important;color:var(--objective-color)!important;box-shadow:none!important}
#tab-seance #sessionObjectiveZone .session-program-selector button.active{background:color-mix(in srgb,var(--objective-color) 13%,white)!important;border:2px solid var(--objective-color)!important;box-shadow:0 4px 12px color-mix(in srgb,var(--objective-color) 12%,transparent)!important}
#tab-seance #sessionObjectiveZone .session-program-selector button.active:after{content:'✓'!important;position:absolute!important;right:5px!important;top:5px!important;width:19px!important;height:19px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:var(--objective-color)!important;color:#fff!important;font-size:11px!important}
#tab-seance #sessionObjectiveZone .session-program-hint{margin:7px 2px 0!important;font-size:10.5px!important;line-height:1.25!important}
#tab-seance .session-date-zone{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:9px!important;align-items:stretch!important}
#tab-seance .session-date-zone>.session-setup-title{grid-column:1/-1!important}
#tab-seance .session-date-zone #sessionDateField{grid-column:1/2!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important}
#tab-seance .session-date-label{display:none!important}
#tab-seance .session-date-stepper{display:grid!important;grid-template-columns:32px minmax(0,1fr) 32px!important;align-items:center!important;min-height:56px!important;padding:5px!important;border:1.5px solid #ead7ca!important;border-radius:15px!important;background:#fff9f5!important}
#tab-seance .session-date-step-btn{width:30px!important;height:42px!important;border:0!important;background:transparent!important;font-size:22px!important;color:#ff651d!important}
#tab-seance .session-date-picker-btn{min-height:42px!important;padding:4px!important;background:transparent!important;border:0!important;box-shadow:none!important;gap:5px!important}
#tab-seance .session-date-calendar-icon{width:24px!important;height:24px!important}
#tab-seance .session-date-picker-copy{font-size:11px!important;line-height:1.15!important}
#tab-seance .session-date-zone .session-last-workout-action{grid-column:2/3!important;margin:0!important;border-radius:15px!important;min-height:56px!important;display:flex!important;align-items:stretch!important}
#tab-seance .session-date-zone .session-last-workout-action .home-progress-open-btn{width:100%!important;min-height:56px!important;padding:8px 10px!important;border:0!important;background:transparent!important;font-size:11px!important}
#tab-seance .session-date-zone .session-last-main{gap:6px!important}
#tab-seance .session-date-zone .session-last-clock{width:21px!important;height:21px!important}
#tab-seance .session-date-zone .session-last-clock svg{width:18px!important;height:18px!important}
#tab-seance .session-date-zone .session-last-chevron{font-size:18px!important}
@media(max-width:380px){#tab-seance #sessionObjectiveZone .session-program-selector{grid-template-columns:1fr 1fr!important}#tab-seance .session-date-zone{grid-template-columns:1fr!important}#tab-seance .session-date-zone #sessionDateField,#tab-seance .session-date-zone .session-last-workout-action{grid-column:1!important}#tab-seance .session-date-zone .session-last-workout-action{margin-top:8px!important}}

/* v3.02 — Ajouter ma séance : vrai parcours guidé en 3 étapes */
#tab-seance .session-redesign-progress{display:flex!important}
#tab-seance .session-wizard-hidden{display:none!important}
#tab-seance .session-wizard-actions{display:flex;gap:10px;margin:18px 22px 4px}
#tab-seance .session-wizard-actions button{min-height:48px;border-radius:999px;font-weight:850;font-size:14px}
#tab-seance .session-wizard-back{flex:.72;background:#fff;border:1.5px solid #ddd5d0;color:#625b56}
#tab-seance .session-wizard-next{flex:1.28;background:linear-gradient(90deg,#ff5a0a,#ff6d20);border:0;color:#fff;box-shadow:0 8px 18px rgba(255,91,10,.18)}
#tab-seance .session-redesign-progress span.done b{background:#ff651d!important;color:#fff!important}
#tab-seance .session-redesign-progress span.done b::before{content:'✓';font-size:15px}
#tab-seance .session-redesign-progress span.done b{font-size:0}
#tab-seance .session-redesign-progress span.active{color:#302821!important}
#tab-seance .session-redesign-progress span.active b{background:#ff651d!important}
#tab-seance .session-redesign-progress i.done{background:#ffb18b!important}
#tab-seance.session-wizard-step-1 #sessionObjectiveZone,
#tab-seance.session-wizard-step-1 #workoutForm{display:none!important}
#tab-seance.session-wizard-step-2 .session-type-step,
#tab-seance.session-wizard-step-2 #workoutForm{display:none!important}
#tab-seance.session-wizard-step-3 .session-type-step,
#tab-seance.session-wizard-step-3 #sessionObjectiveZone{display:none!important}
#tab-seance.session-wizard-step-3 #workoutForm{display:block!important}
#tab-seance.session-wizard-step-3 .session-date-zone{display:block!important}
#tab-seance.session-wizard-step-3 .session-date-zone>.session-setup-title{display:none!important}
#tab-seance.session-wizard-step-3 .session-date-zone #sessionDateField{display:block!important;margin:0 22px 12px!important}
#tab-seance.session-wizard-step-3 .session-date-zone .session-last-workout-action{margin:0 22px 12px!important}
#tab-seance.session-wizard-step-3 .session-date-stepper{min-height:64px!important}
#tab-seance.session-wizard-step-3 #saveWorkoutBtn{margin-bottom:8px!important}


/* v3.03 — indications utilisateur : supprimer les repères visuels redondants */
/* La progression Type/Objectif/Détails en haut suffit : pas de second numéro devant les titres. */
#tab-seance .session-setup-title,#tab-seance .session-program-label{gap:0!important}
/* Un seul indicateur de sélection sur les objectifs : celui à droite. */
#tab-seance #sessionObjectiveZone .session-program-selector button.active::before{display:none!important;content:none!important}
/* Supprime les barres verticales colorées à gauche des cartes de l'étape Détails. */
#tab-seance #dailyLoadCard::before,
#tab-seance #workoutFields .workout-exercise::before,
#tab-seance .saved-workout .workout-exercise::before{display:none!important;content:none!important}

/* v3.04 — Étape Objectif : marges latérales et grille contenue */
#tab-seance.session-wizard-step-2 #sessionObjectiveZone{
  margin:14px 22px 18px!important;
  padding:0!important;
  width:auto!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-label{
  margin:0 0 12px!important;
  padding:0!important;
  width:100%!important;
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  overflow-wrap:anywhere!important;
}
@media(max-width:380px){
  #tab-seance.session-wizard-step-2 #sessionObjectiveZone{margin-left:18px!important;margin-right:18px!important}
  #tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
  #tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button{font-size:11px!important;padding-left:5px!important;padding-right:5px!important}
}

/* v3.05 — Étape Détails : proportions homogènes et largeur de contenu unique */
#tab-seance.session-wizard-step-3 #workoutForm{
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-3 .session-date-zone{
  margin:18px 22px 0!important;
  width:auto!important;
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-3 .session-date-zone #sessionDateField,
#tab-seance.session-wizard-step-3 .session-date-zone .session-last-workout-action{
  margin-left:0!important;
  margin-right:0!important;
  width:100%!important;
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-3 .session-date-zone #sessionDateField{margin-bottom:12px!important}
#tab-seance.session-wizard-step-3 .session-date-zone .session-last-workout-action{margin-bottom:14px!important}
#tab-seance.session-wizard-step-3 .session-load-embedded,
#tab-seance.session-wizard-step-3 #workoutFields,
#tab-seance.session-wizard-step-3 #saveWorkoutBtn{
  margin-left:22px!important;
  margin-right:22px!important;
  width:calc(100% - 44px)!important;
  max-width:calc(100% - 44px)!important;
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-3 .session-load-embedded{margin-top:0!important;margin-bottom:14px!important;border-radius:18px!important}
#tab-seance.session-wizard-step-3 .session-load-toggle{min-height:86px!important;padding:14px 16px!important}
#tab-seance.session-wizard-step-3 #workoutFields{display:flex!important;flex-direction:column!important;gap:10px!important}
#tab-seance.session-wizard-step-3 #workoutFields .workout-exercise{width:100%!important;max-width:100%!important;min-height:64px!important;margin:0!important;box-sizing:border-box!important;border-radius:17px!important}
#tab-seance.session-wizard-step-3 #saveWorkoutBtn{margin-top:14px!important;margin-bottom:8px!important;min-height:50px!important}
@media(max-width:380px){
 #tab-seance.session-wizard-step-3 .session-date-zone{margin-left:18px!important;margin-right:18px!important}
 #tab-seance.session-wizard-step-3 .session-load-embedded,
 #tab-seance.session-wizard-step-3 #workoutFields,
 #tab-seance.session-wizard-step-3 #saveWorkoutBtn{margin-left:18px!important;margin-right:18px!important;width:calc(100% - 36px)!important;max-width:calc(100% - 36px)!important}
}

/* v3.06 — Étape Détails : calibrage vertical compact */
#tab-seance.session-wizard-step-3 .session-redesign-progress{padding-top:14px!important;padding-bottom:4px!important;margin-bottom:2px!important}
#tab-seance.session-wizard-step-3 .session-date-zone{margin-top:10px!important}
#tab-seance.session-wizard-step-3 .session-date-stepper{min-height:54px!important;padding:4px!important}
#tab-seance.session-wizard-step-3 .session-date-zone #sessionDateField{margin-bottom:9px!important}
#tab-seance.session-wizard-step-3 .session-date-zone .session-last-workout-action{margin-bottom:10px!important;min-height:52px!important}
#tab-seance.session-wizard-step-3 .session-date-zone .session-last-workout-action .home-progress-open-btn{min-height:52px!important}
#tab-seance.session-wizard-step-3 .session-load-embedded{margin-top:0!important;margin-bottom:10px!important;border-radius:17px!important}
#tab-seance.session-wizard-step-3 .session-load-toggle{min-height:70px!important;padding:10px 14px!important}
#tab-seance.session-wizard-step-3 .session-load-icon{width:34px!important;height:34px!important;min-width:34px!important}
#tab-seance.session-wizard-step-3 .session-load-copy strong{font-size:18px!important;line-height:1.1!important}
#tab-seance.session-wizard-step-3 .session-load-copy small{font-size:12px!important;margin-top:3px!important}
#tab-seance.session-wizard-step-3 .session-load-status{padding:6px 10px!important;font-size:11px!important}
#tab-seance.session-wizard-step-3 #workoutFields{gap:8px!important}
#tab-seance.session-wizard-step-3 #workoutFields .workout-exercise{min-height:52px!important;border-radius:15px!important;padding-top:9px!important;padding-bottom:9px!important}
#tab-seance.session-wizard-step-3 #workoutFields .workout-exercise-head{min-height:32px!important;margin-bottom:0!important;align-items:center!important}
#tab-seance.session-wizard-step-3 #workoutFields .workout-exercise-name{font-size:16px!important;line-height:1.1!important}
#tab-seance.session-wizard-step-3 #workoutFields .workout-objective{font-size:12px!important;line-height:1.15!important}
#tab-seance.session-wizard-step-3 #saveWorkoutBtn{margin-top:10px!important;margin-bottom:12px!important;min-height:48px!important}

/* v3.07 — Étape Détails : carte Avant ma séance et exercices réellement compacts */
#tab-seance.session-wizard-step-3 .session-load-embedded{
  margin-top:0!important;
  margin-bottom:8px!important;
  min-height:0!important;
  border-radius:15px!important;
}
#tab-seance.session-wizard-step-3 .session-load-toggle{
  min-height:56px!important;
  height:auto!important;
  padding:8px 12px!important;
  align-items:center!important;
}
#tab-seance.session-wizard-step-3 .session-load-heading{
  flex-direction:row!important;
  align-items:center!important;
  gap:10px!important;
}
#tab-seance.session-wizard-step-3 .session-load-icon{
  display:inline-flex!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  flex:0 0 28px!important;
  font-size:16px!important;
}
#tab-seance.session-wizard-step-3 .session-load-copy{
  gap:1px!important;
}
#tab-seance.session-wizard-step-3 .session-load-copy strong{
  font-size:16px!important;
  line-height:1.05!important;
}
#tab-seance.session-wizard-step-3 .session-load-copy small{
  font-size:11px!important;
  line-height:1.1!important;
  margin-top:1px!important;
}
#tab-seance.session-wizard-step-3 .session-load-actions{gap:5px!important}
#tab-seance.session-wizard-step-3 .session-load-status{
  padding:5px 8px!important;
  font-size:10.5px!important;
}
#tab-seance.session-wizard-step-3 .session-load-arrow{
  font-size:22px!important;
}
#tab-seance.session-wizard-step-3 #workoutFields{gap:7px!important}
#tab-seance.session-wizard-step-3 #workoutFields .workout-exercise{
  min-height:46px!important;
  padding:7px 14px!important;
  border-radius:14px!important;
}
#tab-seance.session-wizard-step-3 #workoutFields .workout-exercise-head{
  min-height:28px!important;
}
#tab-seance.session-wizard-step-3 #saveWorkoutBtn{
  margin-top:8px!important;
  margin-bottom:10px!important;
  min-height:46px!important;
}
@media(max-width:390px){
 #tab-seance.session-wizard-step-3 .session-load-icon{display:inline-flex!important}
 #tab-seance.session-wizard-step-3 .session-load-toggle{padding-left:12px!important}
}

/* v3.08 — Étape Détails : aligner « Avant ma séance » sur les cartes exercices */
#tab-seance.session-wizard-step-3 .session-load-embedded{
  margin-left:56px!important;
  margin-right:56px!important;
  width:calc(100% - 112px)!important;
  max-width:calc(100% - 112px)!important;
  box-sizing:border-box!important;
}
@media(max-width:390px){
  #tab-seance.session-wizard-step-3 .session-load-embedded{
    margin-left:34px!important;
    margin-right:34px!important;
    width:calc(100% - 68px)!important;
    max-width:calc(100% - 68px)!important;
  }
}

/* v3.09 — Étape Détails : décaler le bloc « Avant ma séance » pour l'aligner exactement sur les exercices */
#tab-seance.session-wizard-step-3 .session-load-embedded{
  transform:translateX(34px)!important;
}

/* v3.10 — Étape Détails : « Avant ma séance » exactement à la même largeur que les cartes exercices */
#tab-seance.session-wizard-step-3 .session-load-embedded{
  transform:none!important;
  margin-left:22px!important;
  margin-right:22px!important;
  width:calc(100% - 44px)!important;
  max-width:calc(100% - 44px)!important;
  box-sizing:border-box!important;
}
@media(max-width:380px){
  #tab-seance.session-wizard-step-3 .session-load-embedded{
    transform:none!important;
    margin-left:18px!important;
    margin-right:18px!important;
    width:calc(100% - 36px)!important;
    max-width:calc(100% - 36px)!important;
  }
}


/* v3.11 — Étape Détails : même largeur que les exercices ET alignement horizontal */
#tab-seance.session-wizard-step-3 .session-load-embedded{
  transform:translateX(34px)!important;
}
@media(max-width:380px){
  #tab-seance.session-wizard-step-3 .session-load-embedded{
    transform:translateX(16px)!important;
  }
}


/* v3.12 — Étape Détails : « Avant ma séance » aligné exactement sur les cartes exercices */
#tab-seance.session-wizard-step-3 .session-load-embedded{
  transform:translateX(15px)!important;
}
@media(max-width:380px){
  #tab-seance.session-wizard-step-3 .session-load-embedded{
    transform:translateX(15px)!important;
  }
}

/* v3.13 — Étape Détails : correction finale de l'alignement du bloc « Avant ma séance » */
#tab-seance.session-wizard-step-3 .session-load-embedded{
  transform:translateX(26px)!important;
}
@media(max-width:380px){
  #tab-seance.session-wizard-step-3 .session-load-embedded{
    transform:translateX(26px)!important;
  }
}

/* v3.14 — Étape Détails : « Avant ma séance » exactement sur la largeur de « Voir ma dernière séance » */
#tab-seance.session-wizard-step-3 .session-load-embedded{
  transform:none!important;
  margin-left:50px!important;
  margin-right:28px!important;
  width:calc(100% - 78px)!important;
  max-width:calc(100% - 78px)!important;
  box-sizing:border-box!important;
}
@media(max-width:380px){
  #tab-seance.session-wizard-step-3 .session-load-embedded{
    transform:none!important;
    margin-left:46px!important;
    margin-right:24px!important;
    width:calc(100% - 70px)!important;
    max-width:calc(100% - 70px)!important;
  }
}

/* v3.15 — correction définitive : « Avant ma séance » reprend exactement la même largeur que « Voir ma dernière séance ». */
#tab-seance.session-wizard-step-3 #dailyLoadCard.session-load-embedded{
  transform:none!important;
  margin-left:22px!important;
  margin-right:22px!important;
  width:calc(100% - 44px)!important;
  max-width:calc(100% - 44px)!important;
  box-sizing:border-box!important;
}
@media(max-width:380px){
  #tab-seance.session-wizard-step-3 #dailyLoadCard.session-load-embedded{
    transform:none!important;
    margin-left:18px!important;
    margin-right:18px!important;
    width:calc(100% - 36px)!important;
    max-width:calc(100% - 36px)!important;
  }
}
\n\n/* v3.16 — la date est sélectionnable dès l'étape 1, puis reste disponible à l'étape Détails. */
#tab-seance.session-wizard-step-1 .session-date-zone{
  display:block!important;
  margin:14px 22px 0!important;
  width:auto!important;
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-1 .session-date-zone>.session-setup-title{
  display:block!important;
  margin:0 0 10px!important;
}
#tab-seance.session-wizard-step-1 .session-date-zone #sessionDateField{
  display:block!important;
  width:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
}
#tab-seance.session-wizard-step-1 .session-date-zone .session-last-workout-action{display:none!important}
#tab-seance.session-wizard-step-1 .session-date-stepper{min-height:64px!important}
#tab-seance.session-wizard-step-2 .session-date-zone{display:none!important}
@media(max-width:380px){
  #tab-seance.session-wizard-step-1 .session-date-zone{margin-left:18px!important;margin-right:18px!important}
}

/* v3.17 — Date au-dessus du type, largeur complète identique à la présentation Détails. */
#tab-seance.session-wizard-step-1 .session-date-zone{display:block!important;margin:0 22px 18px!important;padding:0!important;width:calc(100% - 44px)!important;max-width:none!important;min-width:0!important;box-sizing:border-box!important}
#tab-seance.session-wizard-step-1 .session-date-zone>.session-setup-title{display:flex!important;margin:0 0 13px!important}
#tab-seance.session-wizard-step-1 .session-date-zone #sessionDateField{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:13px!important;box-sizing:border-box!important}
#tab-seance.session-wizard-step-1 .session-date-zone #sessionDateField .session-date-stepper{display:grid!important;grid-template-columns:52px minmax(0,1fr) 52px!important;width:100%!important;max-width:none!important;gap:10px!important}
#tab-seance.session-wizard-step-1 .session-date-zone .session-last-workout-action{display:none!important}
@media(max-width:380px){#tab-seance.session-wizard-step-1 .session-date-zone{margin-left:18px!important;margin-right:18px!important;width:calc(100% - 36px)!important}#tab-seance.session-wizard-step-1 .session-date-zone #sessionDateField .session-date-stepper{grid-template-columns:46px minmax(0,1fr) 46px!important;gap:8px!important}}


/* v3.18 — Étape 1 : présentation date identique à l’ancien bloc et Continuer sous le type. */
#tab-seance.session-wizard-step-1 .session-date-zone{margin:0 22px 18px!important;width:calc(100% - 44px)!important}
#tab-seance.session-wizard-step-1 .session-date-zone #sessionDateField{background:#fff5ef!important;border-radius:20px!important;padding:13px!important}
#tab-seance.session-wizard-step-1 .session-date-zone #sessionDateField .session-date-stepper{background:#fff5ef!important;color:#f56a25!important}
#tab-seance.session-wizard-step-1 .session-date-zone .session-date-step-btn{color:#f56a25!important}
#tab-seance.session-wizard-step-1 .session-date-zone .session-date-picker-btn{color:#302821!important}
#tab-seance.session-wizard-step-1 .session-date-zone .session-date-calendar-icon{color:#f56a25!important}
#tab-seance.session-wizard-step-1 .session-wizard-actions{margin-top:18px!important}
@media(max-width:380px){#tab-seance.session-wizard-step-1 .session-date-zone{margin-left:18px!important;margin-right:18px!important;width:calc(100% - 36px)!important}}

/* v3.19 — Étape 1 : le sélecteur de date reprend EXACTEMENT le bloc simple de l’étape Détails (suppression du double conteneur). */
#tab-seance.session-wizard-step-1 .session-date-zone #sessionDateField{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
#tab-seance.session-wizard-step-1 .session-date-zone #sessionDateField .session-date-stepper{
  width:100%!important;
  max-width:none!important;
  min-height:64px!important;
  padding:5px!important;
  border:1.5px solid #ead7ca!important;
  border-radius:20px!important;
  background:#fff9f5!important;
  box-sizing:border-box!important;
}

/* v3.23 — étape 3 : la date est déjà choisie à l’étape 1, ne pas la répéter. */
#tab-seance.session-wizard-step-3 .session-date-zone > .session-setup-title,
#tab-seance.session-wizard-step-3 .session-date-zone > #sessionDateField{
  display:none!important;
}
#tab-seance.session-wizard-step-3 .session-date-zone{
  padding-top:0!important;
}

/* v3.24 — Retour explicite à l’étape 3 */
#tab-seance .session-step3-actions{display:flex;gap:12px;align-items:stretch;margin-top:14px}
#tab-seance .session-step3-actions .session-step3-back{flex:0 0 34%;min-height:52px;border-radius:999px;background:#fff;border:1.5px solid #ddd5d0;color:#625b56;font-weight:850;font-size:14px}
#tab-seance .session-step3-actions #saveWorkoutBtn{flex:1;margin:0!important;width:auto!important}
#tab-seance:not(.session-wizard-step-3) .session-step3-actions{display:none!important}

/* v3.25 — Étape 3 : mêmes proportions de boutons que l'étape 2 */
#tab-seance .session-step3-actions{
  display:flex!important;
  gap:10px!important;
  align-items:stretch!important;
  margin:18px 22px 4px!important;
}
#tab-seance .session-step3-actions .session-step3-back{
  flex:.72!important;
  min-width:0!important;
  min-height:48px!important;
  border-radius:999px!important;
  background:#fff!important;
  border:1.5px solid #ddd5d0!important;
  color:#625b56!important;
  font-weight:850!important;
  font-size:14px!important;
}
#tab-seance .session-step3-actions #saveWorkoutBtn{
  flex:1.28!important;
  min-width:0!important;
  min-height:48px!important;
  height:auto!important;
  margin:0!important;
  width:auto!important;
  border-radius:999px!important;
}
#tab-seance:not(.session-wizard-step-3) .session-step3-actions{display:none!important}

/* v3.26 — Étape 3 : aligne exactement le bandeau Type / Objectif / Détails sur les étapes 1 et 2 */
#tab-seance.session-wizard-step-3 .session-redesign-progress{
  padding:18px 28px 8px!important;
  margin-bottom:8px!important;
}

/* v3.27 — étape 2 : même grille 2 × 2 que l’Historique. */
#tab-seance #sessionObjectiveZone .session-program-selector{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:4px 0 0!important;padding:0!important}
#tab-seance #sessionObjectiveZone .session-program-selector button{flex:none!important;min-width:0!important;min-height:62px!important;margin:0!important;padding:10px 14px!important;border:1px solid #e5ddd7!important;border-radius:16px!important;background:linear-gradient(to bottom,var(--objective-color,#f56a25) 0 4px,#fff 4px 100%)!important;color:#514740!important;box-shadow:0 5px 14px rgba(57,40,30,.055)!important;font:inherit!important;font-weight:850!important;line-height:1.15!important;text-align:center!important;white-space:normal!important}
#tab-seance #sessionObjectiveZone .session-program-selector button.active{padding-right:32px!important;border-color:var(--objective-color,#f56a25)!important;background:linear-gradient(to bottom,var(--objective-color,#f56a25) 0 4px,color-mix(in srgb,var(--objective-color,#f56a25) 7%,white) 4px 100%)!important;color:var(--objective-color,#f56a25)!important;box-shadow:0 7px 18px color-mix(in srgb,var(--objective-color,#f56a25) 12%,transparent)!important}
#tab-seance #sessionObjectiveZone .session-program-selector button.active::before{content:"✓"!important;display:flex!important;position:absolute!important;top:11px!important;right:11px!important;left:auto!important;width:20px!important;height:20px!important;min-width:20px!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:50%!important;background:var(--objective-color,#f56a25)!important;color:#fff!important;font-size:12px!important;font-weight:950!important;line-height:1!important;z-index:3!important}
#tab-seance #sessionObjectiveZone .session-program-selector button::after{content:none!important;display:none!important}
@media(max-width:420px){#tab-seance #sessionObjectiveZone .session-program-selector{gap:8px!important}#tab-seance #sessionObjectiveZone .session-program-selector button{min-height:58px!important;padding:9px 8px!important;font-size:.72rem!important}#tab-seance #sessionObjectiveZone .session-program-selector button.active{padding-right:27px!important}#tab-seance #sessionObjectiveZone .session-program-selector button.active::before{top:9px!important;right:9px!important;width:19px!important;height:19px!important;min-width:19px!important}}


/* v3.28 — Étape 2 : objectifs présentés comme dans Historique, sans « Séances libres ». */
#sessionObjectiveZone .session-program-selector{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin:4px 0 8px!important;
  padding:0!important;
  overflow:visible!important;
}
#sessionObjectiveZone .session-program-selector button{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  width:100%!important;
  min-width:0!important;
  min-height:52px!important;
  margin:0!important;
  padding:9px 12px!important;
  border:1px solid #e7ded8!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#5d514a!important;
  box-shadow:0 4px 12px rgba(57,40,30,.04)!important;
  font:inherit!important;
  font-size:.82rem!important;
  font-weight:850!important;
  line-height:1.13!important;
  text-align:center!important;
  white-space:normal!important;
}
#sessionObjectiveZone .session-program-selector button::before{
  content:""!important;
  position:static!important;
  margin:0!important;
  transform:none!important;
  align-self:center!important;
  flex:0 0 18px!important;
  width:18px!important;
  height:18px!important;
  border:2px solid var(--objective-color,#f56a25)!important;
  border-radius:50%!important;
  background:#fff!important;
  box-sizing:border-box!important;
}
#sessionObjectiveZone .session-program-selector button.active{
  border-color:var(--objective-color,#f56a25)!important;
  background:color-mix(in srgb,var(--objective-color,#f56a25) 7%,white)!important;
  color:var(--objective-color,#f56a25)!important;
  box-shadow:0 5px 14px color-mix(in srgb,var(--objective-color,#f56a25) 12%,transparent)!important;
}
#sessionObjectiveZone .session-program-selector button.active::before{
  border-color:var(--objective-color,#f56a25)!important;
  background:var(--objective-color,#f56a25)!important;
  box-shadow:none!important;
}
#sessionObjectiveZone .session-program-selector button:disabled{opacity:.42!important;box-shadow:none!important}
@media(max-width:420px){
  #sessionObjectiveZone .session-program-selector{gap:7px!important}
  #sessionObjectiveZone .session-program-selector button{min-height:48px!important;padding:8px 7px!important;gap:6px!important;font-size:.74rem!important}
  #sessionObjectiveZone .session-program-selector button::before{flex:0 0 16px!important;width:16px!important;height:16px!important}
}

/* v3.28.24 — Étape 2 : mêmes cartes que les filtres d’Historique. */
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;
}
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button{
  position:relative!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;
  min-height:68px!important;padding:12px 48px 12px 16px!important;
  border:1.5px solid color-mix(in srgb,var(--objective-color,#f56a25) 30%,#ddd)!important;
  border-radius:17px!important;background:color-mix(in srgb,var(--objective-color,#f56a25) 6%,white)!important;
  color:var(--objective-color,#f56a25)!important;text-align:left!important;
  font-size:14px!important;font-weight:850!important;line-height:1.2!important;overflow:visible!important;
  box-shadow:0 5px 16px rgba(45,34,27,.04)!important;
}
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button::before{
  display:none!important;content:none!important;
}
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button::after{
  display:none!important;content:none!important;
}
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button.active{
  border:2px solid var(--objective-color,#f56a25)!important;
  background:color-mix(in srgb,var(--objective-color,#f56a25) 7%,white)!important;
  color:var(--objective-color,#f56a25)!important;
  box-shadow:0 6px 16px color-mix(in srgb,var(--objective-color,#f56a25) 12%,transparent)!important;
}
#tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button.active::after{
  content:'✓'!important;display:grid!important;place-items:center!important;position:absolute!important;
  top:50%!important;right:12px!important;left:auto!important;bottom:auto!important;transform:translateY(-50%)!important;
  width:25px!important;height:25px!important;border-radius:50%!important;background:var(--objective-color,#f56a25)!important;
  color:#fff!important;font-size:14px!important;font-weight:950!important;line-height:1!important;
}
@media(max-width:380px){
  #tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  #tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button{min-height:64px!important;padding:10px 40px 10px 12px!important;font-size:12px!important}
  #tab-seance.session-wizard-step-2 #sessionObjectiveZone .session-program-selector button.active::after{right:9px!important;width:23px!important;height:23px!important;font-size:13px!important}
}

/* v3.31 — « Avant ma séance » est renseigné à l’étape 1 pour toute la journée. */
#tab-seance #dailyLoadCard.session-load-embedded{display:none!important}
#tab-seance.session-wizard-step-1 #dailyLoadCard.session-load-embedded{
  margin:0 22px 16px!important;width:calc(100% - 44px)!important;max-width:calc(100% - 44px)!important;
  box-sizing:border-box!important;border-radius:18px!important;transform:none!important;
}
#tab-seance.session-wizard-step-1 #dailyLoadCard .session-load-toggle{min-height:70px!important;padding:10px 14px!important}
#tab-seance.session-wizard-step-1 #dailyLoadCard .session-load-copy strong{font-size:18px!important;line-height:1.1!important}
#tab-seance.session-wizard-step-1 #dailyLoadCard .session-load-copy small{font-size:12px!important;margin-top:3px!important}
#tab-seance.session-wizard-step-1 #dailyLoadCard.session-load-embedded{
  border-color:#f2b995!important;background:linear-gradient(135deg,#fffaf6 0%,#fff3ea 100%)!important;
}
#tab-seance.session-wizard-step-1 #dailyLoadCard .session-load-icon{border-color:#f56a25!important;color:#f56a25!important;background:#fff!important}
#tab-seance.session-wizard-step-1 #dailyLoadCard .session-load-status{border-color:#f2c4a8!important;background:#fff8f3!important;color:#d95517!important}
#tab-seance.session-wizard-step-1 #dailyLoadCard .session-load-arrow{color:#f56a25!important}
#tab-seance.session-wizard-step-1 #dailyLoadCard.load-complete .session-load-icon{border-color:#f56a25!important;color:#f56a25!important}
#tab-seance.session-wizard-step-1 #dailyLoadCard.load-complete .session-load-status{border-color:#f2c4a8!important;background:#fff8f3!important;color:#d95517!important}
@media(max-width:380px){
  #tab-seance.session-wizard-step-1 #dailyLoadCard.session-load-embedded{
    margin-left:18px!important;margin-right:18px!important;width:calc(100% - 36px)!important;max-width:calc(100% - 36px)!important;
  }
}
