/* 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:8px;overflow:visible;padding:1px 1px 5px}
.session-program-selector::-webkit-scrollbar{display:none}
.session-program-selector button{display:flex;align-items:center;justify-content:center;gap:7px;flex:1 1 135px;min-width:0;min-height:42px;margin:0;padding:9px 13px;border:1px solid #e1d7d0;border-radius:13px;background:#fff;color:#5d524b;font-size:12px;font-weight:850;line-height:1.2;white-space:normal;text-align:center;box-shadow:none}
.session-program-selector button span{width:10px;height:10px;border-radius:50%;background:var(--objective-color)}
.session-program-selector button.active{border-color:var(--objective-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--objective-color) 18%,transparent);color:#302620}
.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.12)}
}
@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.12;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.12 !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}
}


/* 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.12!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.12!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.12!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-version{font-size:11px;font-weight:800;color:#9a887b;padding:5px 8px;border:1px solid #eadfd7;border-radius:999px;background:#fff;}
.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-version{font-size:10px;padding:4px 7px;}
}

/* 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;}
.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:1fr 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.12;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(#f56a25 var(--goal-progress),#f7e9df 0);box-shadow:inset 0 0 0 1px rgba(238,107,47,.08)}
.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:#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:#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.12rem;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 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-selector[hidden],
.chart-objective-tabs[hidden],
.session-program-zone[hidden]{display:none!important}
.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}
