
/* section: legacy-1 */
*{box-sizing:border-box}
:root{--bg:var(--berserkr-deep-bg);--card:var(--berserkr-training-card);--card2:var(--berserkr-training-card-2);--text:var(--berserkr-training-text);--muted:var(--berserkr-training-muted);--red:var(--berserkr-brand-red);--ice:var(--berserkr-steel);--border:var(--berserkr-training-border)}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;min-height:100%}
body{background:radial-gradient(circle at 85% -10%,rgba(184,194,198,.08),transparent 30%),var(--bg)}
button,input,textarea{font:inherit}
button,input,textarea{border-radius:6px}
.wrap{max-width:1100px;margin:auto;padding:24px 16px 60px}
.top{padding:24px 4px 22px;display:flex;justify-content:space-between;gap:18px;align-items:flex-end}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.18em;color:var(--red)}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif}
h1{font-size:clamp(34px,8vw,58px);line-height:.95;margin:9px 0 10px;letter-spacing:-.03em}
.top p{margin:0;color:var(--muted);font-size:15px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.counter{border:1px solid var(--border);background:#101416;color:var(--ice);padding:10px 12px;border-radius:6px;font-size:13px;font-weight:800}
.primary,.danger,.ghost,.smallbtn{border:0;cursor:pointer;font-weight:850;padding:11px 14px}
.primary{background:linear-gradient(180deg,var(--berserkr-brand-red-bright),var(--berserkr-brand-red-dark));color:#fff}
.primary:disabled{opacity:.45;cursor:not-allowed}
.ghost,.smallbtn{background:#171b1e;color:#edf0f1;border:1px solid #363c3f}
.smallbtn{padding:8px 10px;font-size:12px}
.danger{background:#241113;color:#ffb8bb;border:1px solid #6f252a}
.status{min-height:18px;color:var(--muted);font-size:12px;margin:4px 4px 14px}
.menu{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.session-btn{appearance:none;border:1px solid var(--border);background:#0e1113;color:#fff;text-align:left;border-radius:8px;padding:22px;min-height:135px;position:relative;cursor:pointer;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.session-btn:hover{border-color:#485154}
.session-btn span{display:block;font-size:23px;font-weight:850;letter-spacing:-.02em}
.session-btn small{display:block;color:var(--muted);margin-top:6px;font-size:14px;padding-right:35px}
.session-btn b{position:absolute;right:18px;bottom:17px;font-size:24px}
.empty{border:1px dashed #3a4245;background:#0d1113;border-radius:8px;padding:28px;text-align:center;color:var(--muted);grid-column:1/-1}
.empty strong{display:block;color:var(--text);font-size:17px;margin-bottom:6px}
.creator,.exercise-adder{display:none;border:1px solid var(--border);background:#0e1113;border-radius:8px;padding:18px;margin:0 0 14px}
.creator.active,.exercise-adder.active{display:block}
.creator h3,.exercise-adder h3{margin:0 0 14px;font-size:22px}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field{display:grid;gap:6px}
.field.wide{grid-column:1/-1}
.field label{font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.08em}
input,textarea{width:100%;background:#11171a;border:1px solid #30383b;color:#fff;padding:11px 12px}
textarea{resize:vertical;min-height:82px}
.formactions{display:flex;gap:8px;margin-top:12px}
.session{display:none}
.session.active{display:block}
.back{border:0;background:transparent;color:#b7bec8;padding:12px 0 20px;font-size:15px;cursor:pointer}
.session-title{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;border-bottom:1px solid #272c33;padding-bottom:20px;margin-bottom:14px}
.session-title span,.warmup span{font-size:11px;letter-spacing:.16em;font-weight:800;color:var(--red)}
h2{font-size:38px;letter-spacing:-.02em;margin:3px 0}
.session-title p{margin:0;color:var(--muted)}
.session-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.share-panel{display:none;margin:12px 0 4px;padding:14px;border:1px solid #31393d;background:#0d1215;border-radius:8px}
.share-panel.active{display:block}
.share-line{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.share-line input{min-width:0;background:#080c0e;border:1px solid #2c3438;color:#dce2e5;padding:10px 11px}
.share-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.share-help{margin-top:8px;color:#7f898e;font-size:11px;line-height:1.45}
.readonly-banner{display:none;margin:4px 0 16px;border:1px solid #4b2e31;background:#190e10;color:#f2c7ca;border-radius:8px;padding:13px 15px;font-size:13px;font-weight:800}
.readonly-banner.active{display:block}

.count{font-size:35px;font-weight:850;text-align:center}
.count small{display:block;font-size:9px;color:#777f89;letter-spacing:.12em}
.warmup{background:#d9d4c5;color:#11151a;border-radius:8px;padding:18px;margin:18px 0}
.warmup span{display:block;margin-bottom:7px}
.warmup strong{display:block;font-size:16px;line-height:1.35}
.warmup small{display:block;color:#626a73;margin-top:7px}
.exercise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.exercise{position:relative;border:1px solid var(--border);background:#0e1113;border-radius:8px;padding:17px;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.exercise-remove{
  position:absolute;
  top:9px;
  right:9px;
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid transparent;
  border-radius:6px;
  background:transparent;
  color:#737b80;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.exercise-remove:hover,.exercise-remove:focus-visible{
  border-color:#6f252a;
  background:#241113;
  color:#ffb8bb;
  outline:none;
}
.exercise-remove:disabled{opacity:.4;cursor:default}
.ex-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding-right:28px}
h3{margin:0;font-size:18px;line-height:1.15}
.rpe{white-space:nowrap;background:#242a31;padding:6px 8px;border-radius:6px;font-size:11px;font-weight:800}
.main-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:18px 0 14px}
.main-stats div{background:#0b0e11;border-radius:6px;padding:11px 8px;text-align:center}
.main-stats strong{display:block;font-size:20px}
.main-stats span{font-size:9px;color:#7f8790;letter-spacing:.1em;font-weight:800}
.details{display:flex;flex-direction:column;gap:6px;color:#aab1ba;font-size:13px}
.details b{color:#e9edf1;margin-right:5px}
.media-row{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}
.media-row button:disabled{
  opacity:.35;
  cursor:default;
  pointer-events:none;
}
.edit-panel{display:none;margin-top:14px;padding-top:14px;border-top:1px solid #252b2e}
.edit-panel.active{display:block}
.edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.edit-field{display:grid;gap:5px}
.edit-field.wide{grid-column:1/-1}
.edit-field label{font-size:10px;letter-spacing:.1em;font-weight:800;color:#7f8890}
.edit-field input,.edit-field textarea,.edit-field select{background:#0a0e10;border:1px solid #30383b;color:#fff;padding:10px}
.load-input-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
}
.load-input-wrap input{
  min-width:0;
  border-radius:0;
}
.load-input-wrap span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  padding:0 12px;
  border:1px solid #30383b;
  border-left:0;
  background:#151a1d;
  color:#c9d0d5;
  font-weight:800;
  text-transform:lowercase;
}
.edit-field textarea{min-height:76px;resize:vertical}
.edit-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.save-state{font-size:11px;color:#8f989d;align-self:center}

.exercise-adder{margin-top:12px}
.searchrow{display:grid;grid-template-columns:1fr auto;gap:8px}
.api-results{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.api-card{border:1px solid #2b3235;background:#111518;border-radius:8px;padding:13px}
.api-card h4{margin:0 0 7px;font-size:15px}
.api-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.api-actions{display:flex;gap:7px;margin-top:10px}
.source-note{font-size:11px;color:#697175;margin-top:10px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.82);display:none;align-items:center;justify-content:center;padding:18px;z-index:50}
.modal.active{display:flex}
#demoModal{z-index:220}
.modal-card{width:min(680px,100%);max-height:90vh;overflow:auto;background:#0e1113;border:1px solid #343c40;border-radius:10px;padding:18px}
.modal-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.modal-top h3{font-size:24px}
.demo-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.demo-wrap{display:grid;gap:6px}.demo-wrap span{font-size:11px;color:var(--muted);font-weight:800;letter-spacing:.08em}.demo{display:block;width:100%;border-radius:8px;background:#050607;border:1px solid #2c3337}
.instructions{margin:14px 0 0;padding-left:20px;color:#d4d8da}
.instructions li{margin:8px 0;line-height:1.45}
.footer{text-align:center;color:#5f6872;font-size:11px;margin-top:30px}

@media(min-width:900px){.menu{grid-template-columns:repeat(4,1fr)}.session-btn{min-height:165px}}

/* section: berserkr-mobile-scale-v1822 */


/* section: berserkr-mobile-type-v1826 */



/* section: berserkr-training-mobile-v1827 */
/* Séances : sur téléphone on privilégie UNE seule colonne et la lisibilité. */


/* Même sur les grands téléphones / petits tablets : toujours une seule colonne. */




/* section: berserkr-training-mobile-hard-v1829 */
/* Hard mobile mode: the phone gets ONE exercise per row, full width. */
































































/* section: berserkr-training-desktop-24-v1834 */
@media(min-width:1200px){
  html,body{font-size:18px!important}
  .wrap{
    width:min(94vw,1500px)!important;
    max-width:1500px!important;
    padding:34px 28px 72px!important;
  }

  .top{
    padding:32px 4px 28px!important;
  }
  h1{
    font-size:64px!important;
  }
  .top p{
    font-size:18px!important;
  }
  .counter{
    padding:13px 16px!important;
    font-size:15px!important;
  }

  .menu{
    gap:16px!important;
  }
  .session-btn{
    min-height:190px!important;
    padding:24px!important;
  }

  .session-title h2{
    font-size:54px!important;
  }
  .session-title p{
    font-size:18px!important;
  }
  .session-actions button{
    min-height:48px!important;
    font-size:15px!important;
  }

  .warmup{
    padding:22px!important;
  }
  .warmup strong{
    font-size:19px!important;
  }
  .warmup small{
    font-size:14px!important;
  }

  .exercise-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
  }
  .exercise{
    padding:22px!important;
  }
  .ex-head h3{
    font-size:24px!important;
  }
  .rpe{
    font-size:13px!important;
  }
  .main-stats{
    margin:20px 0 16px!important;
    gap:8px!important;
  }
  .main-stats div{
    padding:14px 10px!important;
  }
  .main-stats strong{
    font-size:25px!important;
  }
  .main-stats span{
    font-size:11px!important;
  }
  .details{
    font-size:15px!important;
    gap:7px!important;
  }
  .smallbtn,.media-row button{
    min-height:44px!important;
    padding:10px 13px!important;
    font-size:14px!important;
  }

  .creator,.exercise-adder{
    font-size:16px!important;
  }
  .formgrid input,.formgrid textarea,
  .searchrow input,.searchrow button,
  .edit-field input,.edit-field textarea,.edit-field select{
    min-height:48px!important;
    font-size:16px!important;
  }

  .api-card{
    padding:18px!important;
  }
  .api-card h4{
    font-size:20px!important;
  }
}

/* section: berserkr-training-mobile-v1843 */

/* ====================== RESPONSIVE SÉANCES ====================== */
@media (max-width:900px){
  html,body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
    font-size:18px!important;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }

  .wrap{
    width:100%!important;
    max-width:760px!important;
    margin:0 auto!important;
    padding:22px 12px 64px!important;
  }

  .top{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:16px!important;
    padding:24px 4px 20px!important;
  }
  .top h1{font-size:56px!important}
  .top p{
    font-size:19px!important;
    line-height:1.5!important;
  }
  .toolbar{
    width:100%!important;
    display:grid!important;
    grid-template-columns:auto 1fr!important;
    gap:10px!important;
  }
  .counter{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:54px!important;
    padding:12px 14px!important;
    font-size:17px!important;
  }
  .toolbar .primary{
    width:100%!important;
    min-height:54px!important;
    font-size:17px!important;
  }

  .creator{padding:18px!important}
  .formgrid,
  .edit-grid{
    grid-template-columns:1fr!important;
  }
  .field.wide,
  .edit-field.wide{grid-column:auto!important}

  .menu{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .session-btn{
    width:100%!important;
    min-height:130px!important;
    padding:20px!important;
  }

  .session{
    width:100%!important;
    max-width:100%!important;
  }
  .session-title{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:16px!important;
    margin-bottom:18px!important;
  }
  .session-title h2{
    font-size:50px!important;
    line-height:1!important;
  }
  .session-title p{
    font-size:20px!important;
    line-height:1.45!important;
  }

  .session-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:9px!important;
    align-items:stretch!important;
  }
  .session-actions .count{
    grid-column:1/-1!important;
    min-height:64px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
  }
  .session-actions .count span{font-size:26px!important}
  .session-actions .count small{font-size:12px!important}
  .session-actions button{
    width:100%!important;
    min-height:50px!important;
    font-size:17px!important;
  }

  .share-line,
  .searchrow{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .share-line button,
  .searchrow button{width:100%!important}

  .warmup{
    padding:18px!important;
    margin-bottom:18px!important;
    border-radius:10px!important;
  }
  .warmup strong{
    display:block!important;
    margin-top:6px!important;
    font-size:21px!important;
    line-height:1.45!important;
  }
  .warmup small{
    display:block!important;
    margin-top:6px!important;
    font-size:16px!important;
  }

  .exercise-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:18px!important;
    width:100%!important;
  }
  .exercise{
    width:100%!important;
    min-width:0!important;
    padding:22px 18px!important;
    border-radius:12px!important;
  }
  .ex-head{
    gap:12px!important;
    align-items:center!important;
  }
  .ex-head h3{
    font-size:32px!important;
    line-height:1.15!important;
  }
  .rpe{
    padding:8px 10px!important;
    font-size:15px!important;
  }

  .main-stats{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin:20px 0 17px!important;
  }
  .main-stats div{
    min-width:0!important;
    padding:15px 8px!important;
  }
  .main-stats strong{
    font-size:30px!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }
  .main-stats span{font-size:12px!important}

  .details,
  .details b{
    font-size:18px!important;
    line-height:1.5!important;
  }

  .smallbtn,
  .media-row button{
    min-height:50px!important;
    font-size:17px!important;
  }

  .edit-field label{font-size:14px!important}
  .edit-field input,
  .edit-field textarea,
  .edit-field select,
  .searchrow input,
  .searchrow button{
    min-height:54px!important;
    font-size:18px!important;
  }

  .api-results{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  .modal{padding:12px!important}
  .modal-card{
    width:100%!important;
    max-width:760px!important;
    max-height:calc(100dvh - 24px)!important;
    overflow:auto!important;
  }
  .demo-pair{grid-template-columns:1fr!important}
}

@media (max-width:430px){
  html,body{font-size:17px!important}
  .top h1{font-size:48px!important}
  .top p{font-size:17px!important}

  .toolbar{grid-template-columns:1fr!important}
  .session-title h2{font-size:44px!important}
  .session-title p{font-size:18px!important}

  .session-actions{grid-template-columns:1fr!important}
  .session-actions .count{grid-column:auto!important}

  .ex-head h3{font-size:27px!important}
  .rpe{font-size:13px!important}
  .main-stats strong{font-size:25px!important}
  .details,
  .details b{font-size:16px!important}
}

/* Grand écran : deux exercices par ligne. */
@media (min-width:1200px){
  .exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* ==========================================================
   BERSERKR V18.65 — SÉANCES MOBILE PLUS COMPACTES
   On garde 1 exercice par ligne, mais avec un zoom visuel réduit.
   ========================================================== */
@media (max-width:900px){
  html,body{
    font-size:16px!important;
  }

  .wrap{
    max-width:720px!important;
    padding:16px 10px 48px!important;
  }

  .top{
    gap:12px!important;
    padding:18px 2px 16px!important;
  }
  .top h1{
    font-size:44px!important;
  }
  .top p{
    font-size:16px!important;
    line-height:1.45!important;
  }

  .counter{
    min-height:46px!important;
    padding:10px 12px!important;
    font-size:14px!important;
  }
  .toolbar .primary{
    min-height:46px!important;
    font-size:15px!important;
  }

  .session-title{
    gap:12px!important;
    margin-bottom:14px!important;
  }
  .session-title h2{
    font-size:38px!important;
    line-height:1!important;
  }
  .session-title p{
    font-size:16px!important;
    line-height:1.4!important;
  }

  .session-actions{
    gap:7px!important;
  }
  .session-actions .count{
    min-height:54px!important;
  }
  .session-actions .count span{
    font-size:22px!important;
  }
  .session-actions .count small{
    font-size:10px!important;
  }
  .session-actions button{
    min-height:44px!important;
    padding:10px!important;
    font-size:14px!important;
  }

  .warmup{
    padding:15px!important;
    margin-bottom:14px!important;
  }
  .warmup span{
    font-size:10px!important;
  }
  .warmup strong{
    margin-top:4px!important;
    font-size:17px!important;
    line-height:1.4!important;
  }
  .warmup small{
    margin-top:4px!important;
    font-size:13px!important;
  }

  .exercise-grid{
    gap:12px!important;
  }

  .exercise{
    padding:16px!important;
    border-radius:10px!important;
  }

  .ex-head{
    gap:8px!important;
  }
  .ex-head h3{
    font-size:23px!important;
    line-height:1.15!important;
  }
  .rpe{
    padding:6px 8px!important;
    font-size:12px!important;
  }

  .main-stats{
    gap:6px!important;
    margin:14px 0 12px!important;
  }
  .main-stats div{
    padding:11px 6px!important;
  }
  .main-stats strong{
    font-size:22px!important;
    line-height:1.1!important;
  }
  .main-stats span{
    font-size:9px!important;
  }

  .details,
  .details b{
    font-size:14px!important;
    line-height:1.45!important;
  }
  .details{
    gap:6px!important;
  }

  .media-row{
    margin-top:12px!important;
    gap:7px!important;
  }
  .smallbtn,
  .media-row button{
    min-height:40px!important;
    padding:8px 11px!important;
    font-size:13px!important;
  }

  .edit-field label{
    font-size:11px!important;
  }
  .edit-field input,
  .edit-field textarea,
  .edit-field select,
  .searchrow input,
  .searchrow button{
    min-height:46px!important;
    font-size:16px!important;
  }

  .api-card{
    padding:12px!important;
  }
}

@media (max-width:430px){
  html,body{
    font-size:15.5px!important;
  }

  .wrap{
    padding-left:9px!important;
    padding-right:9px!important;
  }

  .top h1{
    font-size:40px!important;
  }
  .top p{
    font-size:15px!important;
  }

  .session-title h2{
    font-size:36px!important;
  }
  .session-title p{
    font-size:15px!important;
  }

  .exercise{
    padding:14px!important;
  }
  .ex-head h3{
    font-size:22px!important;
  }
  .rpe{
    font-size:11px!important;
  }

  .main-stats strong{
    font-size:21px!important;
  }

  .details,
  .details b{
    font-size:14px!important;
  }
}

/* V18.65 — métadonnées RepDB lisibles en français */
.api-meta{
  display:grid!important;
  gap:4px!important;
}
.api-meta span{
  display:block!important;
}
.api-meta b{
  color:#e9edf1!important;
  font-weight:800!important;
  margin-right:4px!important;
}

/* V18.65 — recherche d'exercices refermable */
.exercise-adder-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.exercise-adder-head h3{
  margin:0;
}
@media(max-width:430px){
  .exercise-adder-head{
    align-items:center;
  }
  .exercise-adder-head .smallbtn{
    min-height:40px!important;
    font-size:13px!important;
  }
}

/* V18.65 — import intégré directement dans Mes séances */
.program-importer{
  display:none;
  border:1px solid var(--border);
  background:#0e1113;
  border-radius:10px;
  padding:18px;
  margin:0 0 16px;
}
.program-importer.active{display:block}
.program-importer-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.program-importer-head h3{
  margin:4px 0 0;
  font-size:24px;
}
.program-importer-intro{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.55;
}
.program-importer-file{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
#programFile{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.import-file-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:11px 14px;
  border-radius:6px;
  cursor:pointer;
  font-weight:850;
}
.import-format{
  margin-top:10px;
  color:#727b80;
  font-size:11px;
  line-height:1.5;
}
.import-preview{
  display:grid;
  gap:12px;
  margin-top:14px;
}
.import-session{
  border:1px solid #2b3134;
  border-radius:9px;
  background:#090c0e;
  overflow:hidden;
}
.import-session-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:14px 15px;
  border-bottom:1px solid #242a2d;
}
.import-session-head h4{
  margin:0;
  font:700 18px Georgia,'Times New Roman',serif;
}
.import-session-head small{
  display:block;
  margin-top:4px;
  color:#7f888d;
  line-height:1.4;
}
.import-session-count{
  color:#aeb5b8;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.import-exercises{display:grid}
.import-exercise{
  display:grid;
  grid-template-columns:minmax(180px,1.05fr) minmax(220px,1fr);
  gap:14px;
  padding:13px 15px;
  border-bottom:1px solid #1e2427;
}
.import-exercise:last-child{border-bottom:0}
.import-original strong{
  display:block;
  font-size:14px;
}
.import-original small{
  display:block;
  margin-top:5px;
  color:#7f888d;
  line-height:1.4;
  font-size:11px;
}
.import-badge{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:900;
}
.import-badge.ok{
  background:rgba(48,145,88,.15);
  border:1px solid rgba(75,184,112,.35);
  color:#93d4a9;
}
.import-badge.warn{
  background:rgba(216,155,61,.12);
  border:1px solid rgba(216,155,61,.35);
  color:#dfbb77;
}
.import-badge.missing{
  background:rgba(198,27,34,.13);
  border:1px solid rgba(198,27,34,.4);
  color:#efa0a4;
}
.import-badge.ignored{
  background:#171c1f;
  border:1px solid #333a3e;
  color:#939ca1;
}
.import-match-name{
  display:block;
  margin-top:7px;
  color:#dfe3e5;
  font-weight:800;
  font-size:13px;
}
.import-resolver{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:7px;
  margin-top:8px;
}
.import-resolver input,
.import-resolver select,
.import-choice{
  width:100%;
  min-width:0;
  background:#080b0c;
  color:#eef0f1;
  border:1px solid #30373a;
  border-radius:6px;
  padding:9px 10px;
}
.import-mini-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:8px;
}
.import-mini{
  border:1px solid #353d41;
  border-radius:6px;
  background:#151a1d;
  color:#e7e9ea;
  padding:8px 10px;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.import-mini.primary{
  background:#b9131b;
  border-color:#d52a32;
  color:#fff;
}
.import-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:14px;
}
.import-actions[hidden]{display:none!important}
.import-summary{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:2px;
}
.import-summary span{
  border:1px solid #2c3336;
  border-radius:999px;
  padding:6px 8px;
  color:#9ba3a6;
  font-size:10px;
  font-weight:800;
}
.import-limit-warning{
  padding:10px 12px;
  border:1px solid rgba(198,27,34,.45);
  border-radius:7px;
  background:rgba(198,27,34,.08);
  color:#e0a0a3;
  font-size:12px;
  line-height:1.45;
}
@media(max-width:900px){
  .program-importer{padding:15px}
  .import-exercise{grid-template-columns:1fr}
}
@media(max-width:430px){
  .program-importer-head,
  .import-session-head{flex-direction:column}
  .import-resolver{grid-template-columns:1fr}
  .import-resolver button{width:100%}
}

/* V18.65 — validation d'une séance réalisée */
.session-complete-btn{
  border:1px solid #486a53;
  background:#142018;
  color:#bce4c7;
  cursor:pointer;
  font-weight:850;
  padding:11px 14px;
}
.session-complete-btn:hover{
  border-color:#60906f;
  background:#19271e;
}
.session-complete-btn.completed,
.session-complete-btn:disabled{
  border-color:#365541;
  background:#101a14;
  color:#8fc49d;
  opacity:1;
  cursor:default;
}
.session-complete-status{
  min-height:18px;
  margin:0 0 10px;
  color:#8fc49d;
  font-size:12px;
  font-weight:700;
}
@media(max-width:900px){
  .session-complete-btn{
    width:100%!important;
    min-height:44px!important;
    padding:10px!important;
    font-size:14px!important;
  }
}

/* CSP style hardening utilities */
[hidden]{display:none!important}
.u-mt10{margin-top:10px}
.u-mt11{margin-top:11px}
.u-mt14{margin-top:14px}
.u-mt18{margin-top:18px}
.u-flex1{flex:1}
.status-error{color:#d98686!important}

.status-muted{color:#91979a!important}
.repdb-link{color:#8d969a}
.clipboard-proxy{position:fixed;opacity:0;pointer-events:none;left:-9999px;top:0}


/* BERSERKR V1 — Séances courtes, lisibles et planifiées */
.training-v1{
  width:min(100%,1180px)!important;
  max-width:1180px!important;
  padding:34px 22px 72px!important;
}
.training-v1-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  padding:8px 0 26px;
  border-bottom:1px solid #23292c;
}
.training-v1-head h1{
  margin:6px 0 0!important;
  font:700 50px/1 Georgia,"Times New Roman",serif!important;
}
.training-v1-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
.training-v1-section-title{
  margin-bottom:12px;
  color:#aeb5b8;
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
}
.training-v1-next{
  padding:28px 0 30px;
}
.training-v1-next-card{
  width:100%;
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px 24px;
  border:1px solid #343b3f;
  border-radius:10px;
  background:linear-gradient(135deg,rgba(198,27,34,.11),rgba(12,15,17,.96) 42%);
  color:#eef1f2;
  text-align:left;
  cursor:pointer;
}
.training-v1-next-card:hover:not(:disabled){
  border-color:#7d2c31;
  background:linear-gradient(135deg,rgba(198,27,34,.17),rgba(14,17,19,.98) 44%);
}
.training-v1-next-card:disabled{
  opacity:.7;
  cursor:default;
}
.training-v1-next-card strong{
  display:block;
  font:700 28px/1.1 Georgia,"Times New Roman",serif;
}
.training-v1-next-card span,
.training-v1-next-card small{
  display:block;
}
.training-v1-next-card span{
  margin-top:7px;
  color:#a0a8ac;
  font-size:13px;
}
.training-v1-next-card small{
  margin-top:10px;
  color:#e15157;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}
.training-v1-next-card>b{
  white-space:nowrap;
  color:#dfe3e5;
  font-size:13px;
}
.training-v1-program{
  padding-top:4px;
}
.training-v1-program .status{
  margin:0 0 8px!important;
  min-height:0!important;
}
.training-v1-program .menu{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
}
.training-program-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  gap:8px;
  min-height:90px;
  width:100%;
  padding:8px;
  border:1px solid #292f32;
  border-radius:8px;
  background:#0c1012;
  color:#f0f2f2;
}
.training-program-row:hover{
  border-color:#424a4e;
  background:#101416;
}
.training-program-row.next{
  border-color:#52272a;
}
.training-program-open{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 28px;
  align-items:center;
  gap:14px;
  min-width:0;
  padding:8px 10px;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.training-program-open>b{
  color:#8f989c;
  font-size:20px;
}
.training-set-next{
  align-self:center;
  min-width:92px;
  min-height:38px;
  padding:8px 10px;
  border:1px solid #343b3f;
  border-radius:6px;
  background:#121719;
  color:#9ea7ab;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  cursor:pointer;
}
.training-set-next:hover{
  border-color:#653036;
  color:#e36c71;
}
.training-set-next.active{
  border-color:#653036;
  background:#211012;
  color:#e36c71;
}
.training-program-index{
  color:#606a6e;
  font:700 18px/1 Georgia,"Times New Roman",serif;
}
.training-program-main{
  min-width:0;
}
.training-program-main strong{
  display:block;
  font:700 21px/1.1 Georgia,"Times New Roman",serif;
}
.training-program-main small{
  display:block;
  margin-top:5px;
  color:#8a9397;
  font-size:12px;
}
.training-program-main em{
  display:block;
  margin-top:8px;
  color:#a9b0b3;
  font-size:9px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.09em;
}
.training-program-row.next .training-program-main em{
  color:#db4b51;
}
.training-next-chip{
  padding:6px 8px;
  border:1px solid #653036;
  border-radius:999px;
  background:#211012;
  color:#e36c71;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}
.training-session-title{
  align-items:flex-end!important;
  padding-top:10px!important;
}
.training-session-title #detailCategory{
  margin-top:7px;
}
.training-schedule-badge{
  display:inline-flex;
  margin-top:10px;
  padding:6px 9px;
  border:1px solid #333a3e;
  border-radius:999px;
  color:#b3bbbf;
  font-size:9px;
  font-weight:900;
  letter-spacing:.09em;
}
.training-session-actions{
  position:relative;
}
.training-more-wrap{
  position:relative;
}
.training-more-btn{
  min-width:46px;
  letter-spacing:.12em;
}
.training-more-menu{
  position:absolute;
  z-index:30;
  right:0;
  top:calc(100% + 7px);
  width:190px;
  padding:6px;
  border:1px solid #353c40;
  border-radius:8px;
  background:#101416;
  box-shadow:0 20px 50px rgba(0,0,0,.45);
}
.training-more-menu button{
  width:100%;
  min-height:38px;
  padding:9px 10px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:#e3e6e7;
  text-align:left;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.training-more-menu button:hover{
  background:#1a2023;
}
.training-more-menu .danger-link{
  color:#ee8d91;
}
.training-overlay{
  display:none!important;
  position:fixed!important;
  inset:0!important;
  z-index:120!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:rgba(0,0,0,.78)!important;
}
.training-overlay.active{
  display:flex!important;
}
.training-modal-card{
  width:min(100%,650px);
  max-height:90dvh;
  overflow:auto;
  padding:20px;
  border:1px solid #353d41;
  border-radius:11px;
  background:#0d1012;
  box-shadow:0 30px 90px rgba(0,0,0,.6);
}
.training-modal-wide{
  width:min(100%,920px);
}
.training-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.training-modal-head h3{
  margin:0!important;
  font-size:26px!important;
}
.training-modal-close{
  flex:0 0 36px;
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  padding:0!important;
  border:1px solid transparent!important;
  border-radius:50%!important;
  background:transparent!important;
  color:#919a9e!important;
  font-size:27px!important;
  line-height:1!important;
  cursor:pointer;
}
.training-modal-close:hover,
.training-modal-close:focus-visible{
  border-color:#394145!important;
  background:#171c1f!important;
  color:#fff!important;
  outline:none;
}
.training-overlay .formgrid{
  gap:11px!important;
}
.training-overlay select{
  width:100%;
  min-height:43px;
  padding:10px 11px;
  border:1px solid #30383b;
  border-radius:6px;
  background:#11171a;
  color:#fff;
}
.training-overlay .formactions{
  justify-content:flex-end;
  margin-top:16px;
}
.training-overlay .formactions .primary{
  min-width:150px;
}
#programImporter.training-overlay{
  padding:18px!important;
}
#programImporter .training-modal-card{
  padding:20px!important;
}
#exerciseAdder.training-overlay{
  padding:18px!important;
}
#exerciseAdder .api-results{
  max-height:58dvh;
  overflow:auto;
}
.custom-exercise-entry{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #282f33;
}
.custom-exercise-open{
  width:100%;
}
.custom-exercise-form{
  margin-top:12px;
  padding:16px;
  border:1px solid #353d41;
  border-radius:10px;
  background:#111518;
}
.custom-exercise-form[hidden]{
  display:none!important;
}
.custom-exercise-head{
  margin-bottom:12px;
}
.custom-exercise-head h4{
  margin:2px 0 0;
  font-size:18px;
}
.custom-exercise-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.custom-exercise-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:12px;
  flex-wrap:wrap;
}
.custom-exercise-actions .primary{
  min-width:170px;
}
#sharePanel.training-overlay{
  padding:18px!important;
}
#sharePanel .share-actions{
  align-items:center;
}
.edit-panel{
  display:none!important;
}
.edit-panel.active{
  position:fixed!important;
  inset:0!important;
  z-index:130!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  margin:0!important;
  border:0!important;
  background:rgba(0,0,0,.8)!important;
}
.edit-panel.active .edit-grid{
  width:min(100%,650px);
  padding:20px 20px 10px;
  border:1px solid #353d41;
  border-bottom:0;
  border-radius:11px 11px 0 0;
  background:#0d1012;
}
.edit-panel.active .edit-actions{
  width:min(100%,650px);
  margin:0!important;
  padding:8px 20px 20px;
  border:1px solid #353d41;
  border-top:0;
  border-radius:0 0 11px 11px;
  background:#0d1012;
}
.session .warmup{
  background:#121719!important;
  color:#e7eaeb!important;
  border:1px solid #2d3437!important;
}
.session .warmup span{
  color:#c61b22!important;
}
.session .warmup strong{
  color:#e7eaeb!important;
}
.exercise-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.exercise{
  background:#0c1012!important;
}
.details span:empty{
  display:none;
}
.footer{
  min-height:0!important;
  margin-top:12px!important;
}
body:has(.training-overlay.active),
body:has(.edit-panel.active){
  overflow:hidden;
}
@media(max-width:800px){
  .training-v1{
    padding:24px 12px 58px!important;
  }
  .training-v1-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .training-v1-head h1{
    font-size:43px!important;
  }
  .training-v1-head-actions{
    width:100%;
    justify-content:flex-start;
  }
  .training-v1-head-actions .primary,
  .training-v1-head-actions .ghost{
    flex:1;
  }
  .training-v1-next-card{
    min-height:112px;
    padding:18px;
  }
  .training-v1-next-card strong{
    font-size:24px;
  }
  .training-program-row{
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
    padding:6px;
  }
  .training-program-open{
    grid-template-columns:38px minmax(0,1fr) 24px;
    gap:10px;
    padding:8px 6px;
  }
  .training-set-next{
    min-width:74px;
    padding:7px 8px;
    font-size:8px;
  }
  .training-next-chip{
    display:none;
  }
  .training-program-main strong{
    font-size:19px;
  }
  .session-title.training-session-title{
    flex-direction:column!important;
    align-items:stretch!important;
  }
  .training-session-actions{
    width:100%;
    display:grid!important;
    grid-template-columns:1fr 1fr auto;
  }
  .training-session-actions .count{
    display:none;
  }
  .training-session-actions .session-complete-btn,
  .training-session-actions .primary{
    width:100%!important;
  }
  .exercise-grid{
    grid-template-columns:1fr!important;
  }
  .training-overlay{
    padding:8px!important;
    align-items:flex-end!important;
  }
  .training-modal-card{
    width:100%;
    max-height:94dvh;
    border-radius:14px 14px 8px 8px;
  }
  .training-overlay .formgrid{
    grid-template-columns:1fr!important;
  }
  .training-overlay .field.wide{
    grid-column:auto!important;
  }
  #exerciseAdder .searchrow{
    grid-template-columns:1fr!important;
  }
  #exerciseAdder .api-results{
    grid-template-columns:1fr!important;
  }
  .custom-exercise-grid{
    grid-template-columns:1fr!important;
  }
  .custom-exercise-form{
    padding:14px;
  }
  .custom-exercise-actions .primary{
    width:100%;
  }
  .edit-panel.active{
    align-items:stretch!important;
    justify-content:flex-end!important;
    padding:8px!important;
  }
  .edit-panel.active .edit-grid,
  .edit-panel.active .edit-actions{
    width:100%;
  }
  .edit-panel.active .edit-grid{
    grid-template-columns:1fr!important;
  }
}
@media(max-width:470px){
  .training-v1-head-actions{
    display:grid;
    grid-template-columns:auto 1fr 1fr;
  }
  .training-v1-next-card{
    align-items:flex-start;
    flex-direction:column;
    gap:14px;
  }
  .training-v1-next-card>b{
    align-self:flex-end;
  }
  .training-session-actions{
    grid-template-columns:1fr!important;
  }
  .training-more-wrap,
  .training-more-btn{
    width:100%;
  }
  .training-more-menu{
    left:0;
    right:auto;
    width:100%;
  }
  .share-line{
    grid-template-columns:1fr!important;
  }
}

.edit-modal-close{
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  margin-left:auto;
  padding:0!important;
  border:1px solid #394145!important;
  border-radius:50%!important;
  background:#151a1d!important;
  color:#e7eaeb!important;
  font-size:24px!important;
  line-height:1!important;
  cursor:pointer;
}


/* BERSERKR V18.72 — couverture musculaire dynamique */
.muscle-coverage{
  margin:18px 0 22px;
  padding:18px;
  border:1px solid #2b3235;
  border-radius:10px;
  background:#0b0f11;
}
.muscle-coverage-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.muscle-coverage-head h3{
  margin:3px 0 5px;
  font:700 25px/1.1 Georgia,"Times New Roman",serif;
}
.muscle-coverage-head p{
  margin:0;
  color:#8d969a;
  font-size:12px;
  line-height:1.5;
}
.muscle-coverage-legend{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px 12px;
  flex-wrap:wrap;
  max-width:520px;
  color:#8e979b;
  font-size:10px;
  font-weight:750;
}
.muscle-coverage-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}
.coverage-dot{
  display:inline-block;
  width:9px;
  height:9px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.12);
}
.coverage-dot.level-0{background:#303639}
.coverage-dot.level-1{background:#4f9b68}
.coverage-dot.level-2{background:#c99a33}
.coverage-dot.level-3{background:#b83b41}
.coverage-dot.level-4{background:#050607;border-color:#8b9498}
.muscle-coverage-body{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(230px,.85fr);
  gap:18px;
  align-items:center;
}
.muscle-map-wrap{
  min-width:0;
  padding:10px;
  border:1px solid #242b2e;
  border-radius:9px;
  background:linear-gradient(180deg,#0d1214,#090c0e);
}
.muscle-map{
  display:block;
  width:100%;
  max-width:580px;
  height:auto;
  margin:0 auto;
}
.muscle-map .body-base{
  fill:#202629;
  stroke:#394145;
  stroke-width:1.25;
}
.muscle-map .muscle-zone{
  fill:#303639;
  stroke:#50585c;
  stroke-width:1;
  transition:fill .18s ease,stroke .18s ease,opacity .18s ease;
}
.muscle-map .muscle-zone[data-level="1"]{
  fill:#4f9b68;
  stroke:#72bd89;
}
.muscle-map .muscle-zone[data-level="2"]{
  fill:#c99a33;
  stroke:#e1b85c;
}
.muscle-map .muscle-zone[data-level="3"]{
  fill:#b83b41;
  stroke:#db656b;
}
.muscle-map .muscle-zone[data-level="4"]{
  fill:#050607;
  stroke:#8b9498;
  stroke-width:1.7;
}
.muscle-map text{
  fill:#747e82;
  font:800 10px/1 Inter,system-ui,sans-serif;
  letter-spacing:.14em;
}
.muscle-volume-panel{
  align-self:stretch;
  padding:14px;
  border:1px solid #242b2e;
  border-radius:9px;
  background:#090c0e;
}
.muscle-volume-panel h4{
  margin:0 0 12px;
  color:#dfe3e5;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.muscle-volume-list{
  display:grid;
  gap:7px;
}
.muscle-volume-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:34px;
  padding:7px 9px;
  border:1px solid #272e31;
  border-radius:7px;
  background:#0e1214;
}
.muscle-volume-row span{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  color:#c8ced0;
  font-size:11px;
  font-weight:750;
}
.muscle-volume-row span i{
  flex:0 0 8px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#303639;
}
.muscle-volume-row[data-level="1"] span i{background:#4f9b68}
.muscle-volume-row[data-level="2"] span i{background:#c99a33}
.muscle-volume-row[data-level="3"] span i{background:#b83b41}
.muscle-volume-row[data-level="4"] span i{background:#050607;border:1px solid #8b9498}
.muscle-volume-row strong{
  flex:0 0 auto;
  color:#eef1f2;
  font-size:11px;
}
.muscle-volume-empty{
  padding:14px 8px;
  color:#727c80;
  font-size:11px;
  line-height:1.5;
}
.muscle-coverage-notice{
  margin:12px 0 0;
  color:#687276;
  font-size:10px;
  line-height:1.5;
}
@media(max-width:800px){
  .muscle-coverage{
    padding:14px;
  }
  .muscle-coverage-head{
    flex-direction:column;
  }
  .muscle-coverage-legend{
    justify-content:flex-start;
    max-width:none;
  }
  .muscle-coverage-body{
    grid-template-columns:1fr;
  }
  .muscle-map-wrap{
    padding:5px;
  }
}
@media(max-width:430px){
  .muscle-coverage{
    margin:14px 0 18px;
    padding:12px 10px;
  }
  .muscle-coverage-head h3{
    font-size:22px;
  }
  .muscle-coverage-legend{
    display:grid;
    grid-template-columns:1fr 1fr;
    width:100%;
  }
  .muscle-volume-panel{
    padding:10px;
  }
}


/* BERSERKR V18.73 — silhouette intégrée au header de séance */
.training-session-title{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(330px,440px)!important;
  align-items:center!important;
  gap:38px!important;
  padding:18px 0 20px!important;
  border-bottom:1px solid #252b2e!important;
}
.training-session-copy{
  min-width:0;
}
.training-session-copy h2{
  margin-top:8px!important;
}
.training-session-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  width:100%!important;
  padding:12px 0 18px!important;
}
.training-session-toolbar .count{
  display:none!important;
}
.training-session-toolbar .training-more-wrap{
  flex:0 0 auto;
}

.muscle-coverage-compact{
  margin:0!important;
  padding:12px 14px 10px!important;
  border:1px solid #252d30!important;
  border-radius:10px!important;
  background:#0a0e10!important;
  min-width:0;
}
.muscle-coverage-compact-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:5px;
}
.muscle-coverage-compact-head h3{
  margin:2px 0 0;
  font:700 18px/1.05 Georgia,"Times New Roman",serif;
}
.muscle-coverage-compact .training-v1-section-title{
  margin-bottom:4px;
  font-size:8px;
}
.muscle-coverage-compact .muscle-coverage-legend{
  max-width:225px;
  gap:5px 8px;
  font-size:8px;
}
.muscle-coverage-compact .coverage-dot{
  width:7px;
  height:7px;
}
.muscle-map-wrap-compact{
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.muscle-coverage-compact .muscle-map{
  width:min(100%,330px)!important;
  max-width:330px!important;
  margin:-6px auto -8px!important;
}
.muscle-coverage-compact .muscle-map text{
  font-size:9px!important;
}
.muscle-coverage-summary{
  margin:2px 0 0;
  color:#7f898d;
  font-size:9px;
  line-height:1.35;
  text-align:center;
}
.muscle-coverage-compact .muscle-coverage-notice{
  display:none;
}

.training-session-meta-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 150px;
  gap:10px;
  align-items:stretch;
  margin:0 0 24px;
}
.session .training-warmup-compact{
  min-height:74px!important;
  margin:0!important;
  padding:14px 20px!important;
  border-radius:9px!important;
  display:flex!important;
  flex-direction:column;
  justify-content:center;
}
.session .training-warmup-compact span{
  font-size:9px!important;
  letter-spacing:.16em!important;
}
.session .training-warmup-compact strong{
  margin-top:7px;
  font-size:16px!important;
  line-height:1.3!important;
}
.training-exercise-count{
  min-height:74px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid #2d3437;
  border-radius:9px;
  background:#0d1113;
}
.training-exercise-count strong{
  color:#e9363d;
  font:800 34px/1 Georgia,"Times New Roman",serif;
}
.training-exercise-count span{
  margin-top:4px;
  color:#9ca5a9;
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
}

@media(max-width:900px){
  .training-session-title{
    grid-template-columns:minmax(0,1fr) minmax(280px,360px)!important;
    gap:22px!important;
  }
  .muscle-coverage-compact .muscle-map{
    max-width:285px!important;
  }
}
@media(max-width:800px){
  .training-session-title{
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    gap:18px!important;
  }
  .muscle-coverage-compact{
    width:100%;
  }
  .muscle-coverage-compact .muscle-map{
    max-width:340px!important;
  }
  .training-session-toolbar{
    display:grid!important;
    grid-template-columns:1fr 1fr auto!important;
  }
  .training-session-meta-row{
    grid-template-columns:minmax(0,1fr) 120px;
  }
}
@media(max-width:470px){
  .muscle-coverage-compact-head{
    flex-direction:column;
  }
  .muscle-coverage-compact .muscle-coverage-legend{
    max-width:none;
  }
  .training-session-toolbar{
    grid-template-columns:1fr!important;
  }
  .training-session-meta-row{
    grid-template-columns:1fr!important;
  }
  .training-exercise-count{
    min-height:62px;
    flex-direction:row;
    gap:9px;
  }
  .training-exercise-count strong{
    font-size:30px;
  }
  .training-exercise-count span{
    margin-top:2px;
  }
}


/* BERSERKR V18.75 — silhouette anatomique V3 + cibles personnalisées */
.muscle-coverage-v3{
  padding:14px 15px 12px!important;
  border-color:#30383b!important;
  background:
    radial-gradient(circle at 50% 42%,rgba(255,255,255,.025),transparent 55%),
    linear-gradient(180deg,#0c1113 0%,#090d0f 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02),0 14px 34px rgba(0,0,0,.16);
}
.muscle-coverage-v3 .muscle-coverage-compact-head{
  align-items:flex-end;
  gap:16px;
  padding-bottom:10px;
  margin-bottom:3px;
  border-bottom:1px solid #20272a;
}
.muscle-card-title{
  flex:1 1 auto;
  min-width:120px;
}
.muscle-coverage-v3 .muscle-card-title h3{
  margin:2px 0 0;
  font-size:20px;
}
.muscle-legend-block{
  flex:0 1 255px;
  min-width:0;
}
.muscle-legend-label{
  display:block;
  margin:0 0 5px;
  color:#626d71;
  font-size:7px;
  font-weight:950;
  letter-spacing:.16em;
  text-align:right;
}
.muscle-coverage-v3 .muscle-coverage-legend{
  display:flex;
  max-width:none;
  justify-content:flex-end;
  gap:4px;
}
.muscle-coverage-v3 .legend-chip{
  min-height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:4px 7px;
  border:1px solid #262e31;
  border-radius:999px;
  background:#0f1416;
  color:#98a2a6;
  font-size:8px;
  font-weight:850;
  letter-spacing:.02em;
}
.muscle-coverage-v3 .legend-chip-black{
  border-color:#3a4246;
}
.muscle-coverage-v3 .coverage-dot{
  width:7px;
  height:7px;
  box-shadow:0 0 0 1px rgba(255,255,255,.04);
}
.muscle-coverage-v3 .muscle-map-wrap{
  padding:8px 1px 0!important;
}
.muscle-coverage-v3 .muscle-map-v3{
  width:min(100%,390px)!important;
  max-width:390px!important;
  margin:0 auto!important;
  overflow:visible;
}
.muscle-map-v3 .muscle-map-divider{
  stroke:#20282b;
  stroke-width:1;
  stroke-dasharray:3 7;
}
.muscle-map-v3 .muscle-view-label{
  fill:#8d979b;
  font:900 10px/1 Inter,system-ui,sans-serif;
  letter-spacing:.22em;
}
.muscle-map-v3 .body-base{
  fill:#161d20;
  stroke:#3a4549;
  stroke-width:1.15;
  stroke-linejoin:round;
}
.muscle-map-v3 .body-detail{
  fill:none;
  stroke:#465155;
  stroke-width:.8;
  stroke-linecap:round;
  opacity:.82;
}
.muscle-map-v3 .body-detail-front{
  stroke:#4b575b;
}
.muscle-map-v3 .body-detail-back{
  stroke:#414b4f;
}
.muscle-map-v3 .muscle-zone{
  fill:#293135;
  stroke:#485357;
  stroke-width:.9;
  stroke-linejoin:round;
  opacity:.96;
  transition:fill .18s ease,stroke .18s ease,filter .18s ease;
}
.muscle-map-v3 .muscle-zone[data-level="1"]{
  fill:#51a56b;
  stroke:#76c68e;
  filter:drop-shadow(0 0 2px rgba(81,165,107,.14));
}
.muscle-map-v3 .muscle-zone[data-level="2"]{
  fill:#d2a43c;
  stroke:#e7c266;
  filter:drop-shadow(0 0 2px rgba(210,164,60,.14));
}
.muscle-map-v3 .muscle-zone[data-level="3"]{
  fill:#c4444b;
  stroke:#e16a70;
  filter:drop-shadow(0 0 2px rgba(196,68,75,.16));
}
.muscle-map-v3 .muscle-zone[data-level="4"]{
  fill:#050708;
  stroke:#a0aaae;
  stroke-width:1.4;
  filter:drop-shadow(0 0 2px rgba(160,170,174,.14));
}
.muscle-coverage-v3 .muscle-coverage-summary{
  margin:3px 0 0;
  color:#9ca7ab;
  font-size:10px;
  font-weight:650;
}
@media(max-width:900px){
  .muscle-coverage-v3 .muscle-map-v3{
    max-width:345px!important;
  }
  .muscle-coverage-v3 .legend-chip{
    padding:4px 6px;
  }
}
@media(max-width:800px){
  .muscle-coverage-v3 .muscle-map-v3{
    max-width:390px!important;
  }
}
@media(max-width:470px){
  .muscle-coverage-v3 .muscle-coverage-compact-head{
    align-items:flex-start;
  }
  .muscle-legend-block{
    width:100%;
    flex-basis:auto;
  }
  .muscle-legend-label{
    text-align:left;
  }
  .muscle-coverage-v3 .muscle-coverage-legend{
    justify-content:flex-start;
    display:flex;
    flex-wrap:wrap;
  }
}

/* Ajustements anatomiques V3 */
.muscle-map-v3 .body-head{
  fill:#1b2225;
  stroke:#465155;
  stroke-width:1.2;
}
.muscle-map-v3 .body-detail path{
  vector-effect:non-scaling-stroke;
}
.muscle-map-v3 .muscle-zone{
  vector-effect:non-scaling-stroke;
}
.muscle-coverage-v3 .muscle-map-v3{
  width:min(100%,410px)!important;
  max-width:410px!important;
  margin:-1px auto -5px!important;
}
.custom-exercise-form .field-hint{
  display:block;
  margin-top:6px;
  color:#737e82;
  font-size:10px;
  line-height:1.35;
}
.custom-exercise-form #customExerciseTarget{
  min-height:42px;
}
@media(max-width:900px){
  .muscle-coverage-v3 .muscle-map-v3{max-width:365px!important;}
}
@media(max-width:800px){
  .muscle-coverage-v3 .muscle-map-v3{max-width:410px!important;}
}
@media(max-width:470px){
  .muscle-coverage-v3{padding:12px 10px 10px!important;}
  .muscle-coverage-v3 .muscle-map-v3{max-width:360px!important;}
}


/* BERSERKR V18.76 — silhouette homme anatomique V4 */
.muscle-coverage-v4{
  padding:14px 15px 12px!important;
  border-color:#30383b!important;
  background:
    radial-gradient(circle at 50% 44%,rgba(255,255,255,.035),transparent 55%),
    linear-gradient(180deg,#0d1214 0%,#090d0f 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 14px 34px rgba(0,0,0,.18);
}
.muscle-coverage-v4 .muscle-coverage-compact-head{
  align-items:flex-end;
  gap:16px;
  padding-bottom:10px;
  margin-bottom:2px;
  border-bottom:1px solid #20272a;
}
.muscle-coverage-v4 .muscle-card-title h3{
  margin:2px 0 0;
  font-size:20px;
}
.muscle-coverage-v4 .muscle-coverage-legend{
  display:flex;
  max-width:none;
  justify-content:flex-end;
  gap:4px;
}
.muscle-coverage-v4 .legend-chip{
  min-height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:4px 7px;
  border:1px solid #262e31;
  border-radius:999px;
  background:#0f1416;
  color:#98a2a6;
  font-size:8px;
  font-weight:850;
}
.muscle-coverage-v4 .muscle-map-wrap{
  padding:7px 0 0!important;
}
.muscle-coverage-v4 .muscle-map-v4{
  display:block;
  width:auto!important;
  max-width:100%!important;
  height:430px!important;
  margin:0 auto -3px!important;
  overflow:visible;
}
.muscle-map-v4 .muscle-view-label{
  fill:#8f999d;
  font:900 22px/1 Inter,system-ui,sans-serif;
  letter-spacing:.2em;
}
.muscle-map-v4 .body-base{
  fill:#343b3e;
  stroke:#778084;
  stroke-width:3.2;
  stroke-linejoin:round;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}
.muscle-map-v4 .body-detail{
  fill:none;
  stroke:#b2b9bc;
  stroke-width:2.05;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.72;
  vector-effect:non-scaling-stroke;
}
.muscle-map-v4 .anatomy-lines{
  opacity:.48;
}
.muscle-map-v4 .muscle-zone{
  fill:#4a5255;
  stroke:#c1c6c8;
  stroke-width:2.1;
  stroke-linejoin:round;
  stroke-linecap:round;
  opacity:.94;
  transition:fill .18s ease,stroke .18s ease,filter .18s ease,opacity .18s ease;
  vector-effect:non-scaling-stroke;
}
.muscle-map-v4 .muscle-zone[data-level="1"]{
  fill:#51a56b;
  stroke:#8bd39f;
  filter:drop-shadow(0 0 5px rgba(81,165,107,.2));
}
.muscle-map-v4 .muscle-zone[data-level="2"]{
  fill:#d2a43c;
  stroke:#efd27b;
  filter:drop-shadow(0 0 5px rgba(210,164,60,.2));
}
.muscle-map-v4 .muscle-zone[data-level="3"]{
  fill:#c4444b;
  stroke:#ef7b81;
  filter:drop-shadow(0 0 5px rgba(196,68,75,.22));
}
.muscle-map-v4 .muscle-zone[data-level="4"]{
  fill:#050708;
  stroke:#c4cbce;
  stroke-width:2.8;
  filter:drop-shadow(0 0 5px rgba(196,203,206,.16));
}
.muscle-coverage-v4 .muscle-coverage-summary{
  margin:3px 0 0;
  color:#9ca7ab;
  font-size:10px;
  font-weight:650;
}
@media(max-width:900px){
  .muscle-coverage-v4 .muscle-map-v4{height:390px!important;}
  .muscle-coverage-v4 .legend-chip{padding:4px 6px;}
}
@media(max-width:800px){
  .muscle-coverage-v4 .muscle-map-v4{height:450px!important;}
}
@media(max-width:470px){
  .muscle-coverage-v4{
    padding:12px 10px 10px!important;
  }
  .muscle-coverage-v4 .muscle-coverage-compact-head{
    align-items:flex-start;
  }
  .muscle-coverage-v4 .muscle-coverage-legend{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
  .muscle-coverage-v4 .muscle-map-v4{
    height:auto!important;
    width:100%!important;
    max-height:430px!important;
  }
}


/* BERSERKR V18.77 — animation de mouvement */
.demo-motion-wrap{
  margin:16px 0 8px;
}
.demo-motion-label{
  display:block;
  margin-bottom:7px;
  color:#7f898d;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.demo-motion-stage{
  position:relative;
  width:min(100%,420px);
  aspect-ratio:1/1;
  margin:0 auto;
  overflow:hidden;
  border:1px solid #333b3f;
  border-radius:10px;
  background:#050607;
}
.demo-motion-frame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:0;
}
.demo-motion-start{
  animation:berserkr-demo-start 2.4s ease-in-out infinite;
}
.demo-motion-peak{
  animation:berserkr-demo-peak 2.4s ease-in-out infinite;
}
@keyframes berserkr-demo-start{
  0%,38%{opacity:1;transform:scale(1)}
  48%,88%{opacity:0;transform:scale(1.015)}
  98%,100%{opacity:1;transform:scale(1)}
}
@keyframes berserkr-demo-peak{
  0%,38%{opacity:0;transform:scale(1.015)}
  48%,88%{opacity:1;transform:scale(1)}
  98%,100%{opacity:0;transform:scale(1.015)}
}
@media(prefers-reduced-motion:reduce){
  .demo-motion-start{animation:none;opacity:1}
  .demo-motion-peak{animation:none;opacity:0}
}
@media(max-width:520px){
  .demo-motion-stage{width:100%}
}


/* BERSERKR V18.78 — partage de programme */
.program-share-intro{
  margin:0 0 14px;
  color:#8b9599;
  font-size:12px;
  line-height:1.5;
}
.program-share-workouts,
.program-share-preview{
  display:grid;
  gap:8px;
  margin:0 0 14px;
}
.program-share-workout{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:11px 12px;
  border:1px solid #2a3235;
  border-radius:8px;
  background:#101517;
}
.program-share-workout input{
  width:17px;
  height:17px;
  accent-color:#bc252b;
}
.program-share-workout strong,
.program-share-workout small{
  display:block;
}
.program-share-workout strong{
  color:#e1e5e6;
}
.program-share-workout small{
  margin-top:3px;
  color:#768084;
  font-size:10px;
}
.program-share-workout b{
  color:#8e989c;
  font-size:11px;
}
.program-share-line{
  margin-top:5px;
}
.program-share-actions{
  align-items:center;
  flex-wrap:wrap;
}
.program-share-import-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:14px;
}
.program-share-preview .program-share-workout{
  grid-template-columns:minmax(0,1fr) auto;
}
#shareProgramBtn:disabled{
  opacity:.45;
  cursor:default;
}
@media(max-width:620px){
  .training-v1-head-actions{
    flex-wrap:wrap;
  }
  #shareProgramBtn,
  #newSessionBtn{
    flex:1 1 150px;
  }
  .program-share-line{
    grid-template-columns:1fr;
  }
  .program-share-line button{
    min-height:40px;
  }
}


/* BERSERKR V18.78 — média démonstration exercice */
.demo-pair.single-image{
  grid-template-columns:minmax(0,420px);
  justify-content:center;
}
.demo-pair.single-image .demo-wrap{
  width:100%;
}


/* BERSERKR V18.79 — mode réorganisation des exercices */
#reorderExercisesBtn.active{
  border-color:#8e2a30;
  background:#211013;
  color:#ffd7d9;
}
.exercise-grid.reorder-active{
  gap:10px;
}
.exercise.exercise-reordering{
  border-color:#3b4549;
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 42%),
    #0e1113;
}
.exercise-order-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:-3px -3px 13px;
  padding:8px 9px 9px;
  border-bottom:1px solid #283034;
}
.exercise-order-bar>span{
  color:#798388;
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em;
}
.exercise-order-bar>span b{
  color:#e6e9ea;
  font-size:13px;
}
.exercise-order-buttons{
  display:flex;
  gap:7px;
}
.exercise-order-btn{
  width:42px;
  height:40px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #394246;
  border-radius:7px;
  background:#151a1d;
  color:#e4e8e9;
  font-size:19px;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.exercise-order-btn:hover,
.exercise-order-btn:focus-visible{
  border-color:#8e2a30;
  background:#211013;
  color:#fff;
  outline:none;
}
.exercise-order-btn:disabled{
  opacity:.25;
  cursor:default;
  border-color:#2a3134;
  background:#111517;
}
.exercise-reordering .ex-head{
  padding-right:0;
}
.exercise-reordering .media-row{
  margin-top:12px;
}
@media(max-width:620px){
  #reorderExercisesBtn{
    flex:1 1 130px;
  }
  .exercise-order-btn{
    width:46px;
    height:44px;
    font-size:21px;
  }
}


/* BERSERKR V18.80 — filtre par partie du corps */
.exercise-search-tools{
  display:grid;
  grid-template-columns:minmax(180px,.72fr) minmax(0,2fr);
  gap:10px;
  align-items:end;
}
.exercise-body-filter{
  display:grid;
  gap:5px;
  min-width:0;
}
.exercise-body-filter>span{
  color:#7f898d;
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
}
.exercise-body-filter select{
  width:100%;
  min-height:42px;
  border:1px solid #30383b;
  border-radius:7px;
  background:#0a0e10;
  color:#eef1f2;
  padding:9px 34px 9px 10px;
  font:700 12px/1 Inter,system-ui,sans-serif;
}
.exercise-body-filter select:focus{
  border-color:#7a2b30;
  outline:none;
}
@media(max-width:680px){
  .exercise-search-tools{
    grid-template-columns:1fr;
  }
}


/* BERSERKR V18.81 — lecteur d’animation exercice */
.demo-motion-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:7px;
}
.demo-motion-label{
  margin:0;
}
.demo-motion-toggle{
  min-height:32px;
  padding:5px 10px;
  border:1px solid #353e42;
  border-radius:7px;
  background:#111719;
  color:#b8c0c3;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.demo-motion-toggle:hover,
.demo-motion-toggle:focus-visible{
  border-color:#8f2b31;
  color:#fff;
  outline:none;
}
.demo-motion-stage{
  isolation:isolate;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015);
}
.demo-motion-gif{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#050607;
}
.demo-motion-frame{
  z-index:1;
  will-change:opacity,transform;
}
.demo-motion-start{
  animation:berserkr-demo-start 2.4s linear infinite;
}
.demo-motion-peak{
  animation:berserkr-demo-peak 2.4s linear infinite;
}
@keyframes berserkr-demo-start{
  0%,43%{opacity:1;transform:scale(1)}
  49%,93%{opacity:0;transform:scale(1.01)}
  99%,100%{opacity:1;transform:scale(1)}
}
@keyframes berserkr-demo-peak{
  0%,43%{opacity:0;transform:scale(1.01)}
  49%,93%{opacity:1;transform:scale(1)}
  99%,100%{opacity:0;transform:scale(1.01)}
}
.demo-motion-phase{
  position:absolute;
  z-index:3;
  left:10px;
  top:10px;
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(5,7,8,.78);
  color:#eef1f2;
  font-size:9px;
  font-weight:950;
  letter-spacing:.09em;
  backdrop-filter:blur(4px);
}
.demo-motion-progress{
  position:absolute;
  z-index:3;
  left:10px;
  right:10px;
  bottom:9px;
  height:3px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.12);
}
.demo-motion-progress i{
  display:block;
  width:100%;
  height:100%;
  transform-origin:left center;
  background:#a92a30;
  animation:berserkr-demo-progress 2.4s linear infinite;
}
@keyframes berserkr-demo-progress{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}
.demo-motion-stage.paused .demo-motion-frame,
.demo-motion-stage.paused .demo-motion-progress i{
  animation-play-state:paused;
}
@media(prefers-reduced-motion:reduce){
  .demo-motion-start,
  .demo-motion-peak,
  .demo-motion-progress i{
    animation:none!important;
  }
  .demo-motion-start{opacity:1}
  .demo-motion-peak{opacity:0}
  .demo-motion-progress{display:none}
}
@media(max-width:520px){
  .demo-motion-head{align-items:center}
  .demo-motion-toggle{min-width:72px;min-height:36px}
  .demo-motion-phase{left:8px;top:8px}
  .demo-motion-progress{left:8px;right:8px;bottom:7px}
}


/* BERSERKR V18.82 — lecture 2 poses pilotée en JavaScript */
.demo-motion-start,
.demo-motion-peak{
  animation:none!important;
  opacity:1!important;
  transform:none!important;
}
.demo-motion-frame[hidden]{
  display:none!important;
}
