
  :root{
    --bg:#FAFAFA;
    --ink:#1D1D1F;
    --muted:#86868B;
    --line:#E5E5E7;
    --rose:#B33951;
    --pink:#DE4DAA;
    --yellow:#F6D327;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  a{text-decoration:none;color:inherit;}
  button{font-family:inherit;}
  html{
    background:
      radial-gradient(120% 70% at 12% 8%, #F6AFC7 0%, rgba(246,175,199,0) 60%),
      radial-gradient(130% 90% at 55% 55%, #F7B98C 0%, rgba(247,185,140,0) 65%),
      radial-gradient(120% 80% at 88% 92%, #FBE7A6 0%, rgba(251,231,166,0) 60%),
      #FDF4EA;
  }
  body{
    margin:0;
    min-height:100vh;
    min-height:100dvh;
    font-family:'Archivo',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
    color:var(--ink);
    display:flex;
    justify-content:center;
  }
  .phone{
    width:100%;
    max-width:430px;
    min-height:100vh;
    min-height:100dvh;
    padding:24px;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .back{
    align-self:flex-start;
    font-size:0.9rem;
    color:var(--muted);
    margin-bottom:20px;
  }
  h1{
    align-self:flex-start;
    font-size:1.5rem;
    font-weight:800;
    letter-spacing:-0.02em;
    margin:0 0 4px;
  }
  .page-desc-list{
    align-self:flex-start;
    font-size:0.9rem;
    font-weight:400;
    color:var(--ink);
    margin:0 0 6px;
    padding-left:18px;
    text-align:left;
  }
  .page-desc-list li{
    margin-bottom:2px;
  }
  .page-desc-closing{
    align-self:flex-start;
    font-size:0.9rem;
    font-weight:700;
    color:var(--ink);
    margin:0 0 8px;
    text-align:left;
  }
  .cut-note{
    text-align:center;
    font-size:0.78rem;
    color:var(--muted);
    line-height:1.45;
    margin:-6px 0 22px;
  }
  .est-time{
    align-self:flex-start;
    font-size:0.85rem;
    font-weight:600;
    color:var(--ink);
    margin:0 0 20px;
    text-align:left;
  }

  .accordion{
    width:100%;
    background:#fff;
    border-radius:20px;
    box-shadow:0 8px 24px rgba(0,0,0,0.06);
    overflow:hidden;
    margin-bottom:14px;
  }
  .acc-header{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:18px 20px;
    background:none;
    border:none;
    font-size:1.05rem;
    font-weight:700;
    letter-spacing:-0.01em;
    color:var(--ink);
    cursor:pointer;
  }
  .acc-header .chev{
    font-size:1rem;
    color:var(--muted);
    transition:transform 0.3s ease;
  }
  .acc-header[aria-expanded="true"] .chev{
    transform:rotate(90deg);
  }
  .acc-body{
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows 0.4s ease, visibility 0.4s;
    visibility:hidden;
  }
  .acc-header[aria-expanded="true"] + .acc-body{
    grid-template-rows:1fr;
    visibility:visible;
  }
  .acc-body-inner{
    overflow:hidden;
    min-height:0;
    padding:0 20px 22px;
  }

  .need-label{
    font-size:0.8rem;
    font-weight:600;
    letter-spacing:0;
    color:var(--muted);
    margin:0 0 14px;
  }
  .chips{
    display:flex;
    gap:24px;
    margin-bottom:18px;
  }
  .chip{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    color:var(--muted);
    font-size:0.75rem;
    font-weight:500;
    text-align:center;
  }
  .chip svg{
    flex:none;
    width:24px;
    height:24px;
    stroke:var(--muted);
    fill:none;
    stroke-width:1.5;
  }

  .mini{
    border-top:1px solid var(--line);
    padding-top:12px;
    margin-bottom:14px;
  }
  .exercise > .mini:first-of-type{
    border-top:none;
    padding-top:0;
  }
  .mini-pair{
    width:fit-content;
    max-width:100%;
    margin-left:auto;
    display:flex;
    flex-direction:column;
    gap:2px;
    margin-top:14px;
    margin-bottom:14px;
  }
  .mini-pair .mini{
    width:100%;
    margin-bottom:0;
    min-width:0;
    border-top:none;
    padding-top:0;
    text-align:right;
  }
  .mini-pair .mini-header{
    justify-content:flex-end;
    width:100%;
    color:#ABABB2;
    font-size:0.68rem;
  }
  .mini-pair .mini-body-inner{
    text-align:left;
  }
  .mini-header{
    display:flex;
    align-items:center;
    gap:6px;
    background:none;
    border:none;
    padding:0;
    font-size:0.78rem;
    font-weight:600;
    color:var(--muted);
    cursor:pointer;
  }
  .mini-header .chev{
    font-size:0.65rem;
    transition:transform 0.3s ease;
  }
  .mini-header[aria-expanded="true"] .chev{
    transform:rotate(90deg);
  }
  .mini-body{
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows 0.4s ease, visibility 0.4s;
    visibility:hidden;
    font-size:0.8rem;
    color:var(--muted);
    line-height:1.5;
  }
  .mini-header[aria-expanded="true"] + .mini-body{
    grid-template-rows:1fr;
    visibility:visible;
  }
  .mini-body-inner{
    overflow:hidden;
    min-height:0;
    padding-top:10px;
  }
  .mini-body p{ margin:0 0 8px; }
  .mini-body strong{ color:var(--ink); }
  .mini-body ul{ margin:0; padding-left:16px; }
  .mini-body li{ margin-bottom:4px; }

  .exercise{
    border-top:1px solid var(--line);
    padding-top:20px;
  }
  .exercise:first-child{
    border-top:none;
    padding-top:0;
  }
  .exercise + .exercise{
    margin-top:20px;
  }
  .ex-name{
    font-size:1.15rem;
    font-weight:800;
    letter-spacing:-0.01em;
    margin:0 0 6px;
  }
  .ex-summary{
    font-size:0.88rem;
    color:var(--muted);
    line-height:1.45;
    margin:0 0 10px;
  }
  .ex-badges{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:18px;
  }
  .ex-badge{
    display:inline-block;
    font-size:0.72rem;
    font-weight:700;
    color:var(--rose);
    background:#FBEFF4;
    border:1px solid rgba(179,57,81,0.25);
    padding:5px 10px;
    border-radius:999px;
    white-space:nowrap;
  }

  .timer{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    background:var(--bg);
    border-radius:999px;
    padding:7px 12px;
  }
  .timer-celebrate{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background-image:linear-gradient(90deg,var(--pink),var(--yellow));
    color:#fff;
    font-size:0.95rem;
    font-weight:800;
    letter-spacing:-0.01em;
    border-radius:999px;
    opacity:0;
    pointer-events:none;
    transition:opacity 0.3s ease;
  }
  .timer-celebrate.show{
    opacity:1;
  }
  .timer-display{
    font-size:0.92rem;
    font-weight:800;
    letter-spacing:-0.02em;
    font-variant-numeric:tabular-nums;
  }
  .timer-adjust{
    display:flex;
    gap:5px;
  }
  .adj{
    border:1px solid var(--line);
    background:#fff;
    color:var(--ink);
    font-size:0.62rem;
    font-weight:700;
    padding:4px 8px;
    border-radius:999px;
    cursor:pointer;
  }
  .timer-controls{
    display:flex;
    align-items:center;
    gap:6px;
  }
  .timer-btn{
    border:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .timer-btn.play{
    width:42px;
    height:42px;
    border-radius:50%;
    background-image:linear-gradient(90deg,var(--pink),var(--yellow));
    color:#fff;
    font-size:1rem;
    box-shadow:0 3px 8px rgba(179,57,81,0.28);
  }
  .timer-btn.stop,
  .timer-btn.pause{
    width:22px;
    height:22px;
    border-radius:50%;
    background:#fff;
    border:1px solid var(--line);
    color:var(--muted);
    font-size:0.65rem;
  }

  .watch{
    margin-top:12px;
    border:1px solid #F3C6D4;
    background:#FFF6F9;
    border-radius:14px;
    padding:12px 14px;
  }
  .watch-title{
    font-size:0.72rem;
    font-weight:800;
    letter-spacing:0;
    color:var(--rose);
    margin:0 0 6px;
  }
  .watch p{
    font-size:0.8rem;
    line-height:1.5;
    color:var(--ink);
    margin:0 0 6px;
  }
  .watch p:last-child{ margin-bottom:0; }
  .watch .trick{ color:var(--muted); }
  .cut-flag{
    display:inline-block;
    margin-top:12px;
    padding:5px 11px;
    border-radius:999px;
    background:#FFF3D6;
    border:1px solid #F0DCA4;
    color:#8A6B12;
    font-size:0.7rem;
    font-weight:700;
    letter-spacing:0;
  }
  .progress-note{
    font-size:0.72rem;
    line-height:1.45;
    color:var(--muted);
    margin:14px 0 -4px;
  }
  .progress-note strong{
    color:var(--rose);
    font-weight:700;
  }
  .log-row .log-input:first-of-type{
    flex:1.45;
  }
  .log-sets{
    margin-top:14px;
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .log-row{
    display:flex;
    align-items:center;
    gap:8px;
  }
  .log-row .set-label{
    flex:none;
    width:42px;
    font-size:0.75rem;
    font-weight:700;
    color:var(--muted);
  }
  .log-input{
    flex:1;
    min-width:0;
    border:1px solid var(--line);
    background:#fff;
    border-radius:10px;
    padding:8px 10px;
    font-size:0.85rem;
    font-family:inherit;
    color:var(--ink);
    text-align:center;
  }
  .log-input::placeholder{
    color:var(--muted);
    font-weight:400;
  }

  .feedback-box{
    width:100%;
    margin-top:14px;
    padding-top:20px;
    border-top:2px solid var(--pink);
  }
  .feedback-title{
    font-size:1.35rem;
    font-weight:800;
    letter-spacing:-0.01em;
    color:var(--ink);
    margin:0 0 4px;
  }
  .feedback-subtitle{
    font-size:0.95rem;
    font-weight:600;
    color:var(--ink);
    margin:0 0 10px;
  }
  .feedback-input{
    width:100%;
    min-height:96px;
    border:1px solid var(--line);
    background:#fff;
    border-radius:14px;
    padding:12px 14px;
    font-size:0.9rem;
    font-family:inherit;
    color:var(--ink);
    resize:vertical;
  }
  .feedback-input::placeholder{
    color:#B8B8BC;
    font-weight:400;
    font-style:italic;
    font-size:0.82rem;
  }

  .send-hint{
    margin:10px 0 0;
    font-size:0.85rem;
    opacity:0.75;
    text-align:center;
  }

  .send-btn{
    width:100%;
    margin-top:14px;
    padding:14px 20px;
    border:none;
    border-radius:999px;
    background-image:linear-gradient(90deg,var(--pink),var(--yellow));
    background-size:300% 100%;
    background-position:0% 50%;
    color:#fff;
    font-size:1rem;
    font-weight:700;
    letter-spacing:-0.01em;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(179,57,81,0.22);
    transition:background-position 0.8s ease, box-shadow 0.25s ease, transform 0.15s ease;
  }
  .send-btn:hover{
    background-position:100% 50%;
    box-shadow:0 12px 28px rgba(179,57,81,0.3);
  }
  .send-btn:active{
    transform:scale(0.98);
  }
  .send-status{
    margin-top:10px;
    font-size:0.85rem;
    color:var(--muted);
    text-align:center;
    min-height:1.2em;
  }
  .celebrate-strip{
    display:flex;
    justify-content:center;
    gap:12px;
    margin-top:14px;
    font-size:1.5rem;
  }
  .celebrate-strip span{
    display:inline-block;
    animation:bounce-emoji 1.4s ease-in-out infinite;
  }
  .celebrate-strip span:nth-child(2){ animation-delay:0.15s; }
  .celebrate-strip span:nth-child(3){ animation-delay:0.3s; }
  .celebrate-strip span:nth-child(4){ animation-delay:0.45s; }
  .celebrate-strip span:nth-child(5){ animation-delay:0.6s; }
  @keyframes bounce-emoji{
    0%, 100%{ transform:translateY(0); }
    50%{ transform:translateY(-8px); }
  }

  .superset-divider{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
    margin:22px 0;
  }
  .superset-divider .arrow{
    font-size:1rem;
    line-height:1;
    color:var(--rose);
  }
  .superset-divider .superset-divider-text{
    font-size:0.75rem;
    font-weight:800;
    letter-spacing:0;
    color:var(--rose);
    background:#FDEAF1;
    padding:5px 14px;
    border-radius:999px;
    margin:2px 0;
  }

  .rest-break{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--line);
  }
  .rest-break-box{
    padding:12px 14px 10px;
    background:#FFF6E0;
    border-radius:14px;
    text-align:left;
  }
  .rest-break-box .mini-pair{
    margin-bottom:0;
  }
  .rest-break-label{
    font-size:0.65rem;
    font-weight:700;
    letter-spacing:0;
    color:var(--muted);
    margin:0 0 4px;
  }
  .rest-break-name{
    font-size:0.85rem;
    font-weight:800;
    margin:0 0 4px;
  }
  .rest-break-note{
    font-size:0.78rem;
    color:var(--muted);
    margin:0;
    line-height:1.4;
  }

/* ---------- rep counter (Hakima addition) ---------- */
.counter{
  display:flex;align-items:center;gap:10px;
  margin-top:10px;padding:10px 12px;border-radius:14px;
  background:rgba(255,255,255,0.55);border:1px solid rgba(179,57,81,0.16);
}
.counter .cbig{
  flex:0 0 auto;width:66px;height:66px;border-radius:999px;border:0;
  background-image:linear-gradient(135deg,#DE4DAA,#F6D327);
  color:#fff;font-family:inherit;font-size:1.7rem;font-weight:900;
  cursor:pointer;box-shadow:0 6px 16px rgba(179,57,81,0.28);
  display:flex;align-items:center;justify-content:center;
  transition:transform .09s;-webkit-user-select:none;user-select:none;
}
.counter .cbig:active{transform:scale(0.93);}
.counter .cmid{flex:1;min-width:0;}
.counter .clab{
  display:block;font-size:0.64rem;font-weight:900;letter-spacing:0;color:#9A7787;margin-bottom:4px;
}
.counter .chint{display:block;font-size:0.76rem;line-height:1.35;color:#7E7A80;}
.counter .cbtns{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;}
.counter .cbtn{
  border:1px solid rgba(179,57,81,0.2);background:#fff;color:#B33951;
  font-family:inherit;font-size:0.72rem;font-weight:800;
  padding:7px 11px;border-radius:10px;cursor:pointer;white-space:nowrap;
}
.counter .cbtn.ok{background:#B33951;color:#fff;border-color:#B33951;}
.counter.flash{animation:cflash .5s ease;}
@keyframes cflash{0%{background:rgba(246,211,39,0.5);}100%{background:rgba(255,255,255,0.55);}}

/* ---------- smaller Watch box ---------- */
.watch{
  font-size:0.8rem !important;
  line-height:1.45 !important;
  padding:9px 12px !important;
  margin-top:9px !important;
}
.watch-title{
  font-size:0.6rem !important;
  letter-spacing:0.14em !important;
  margin-bottom:2px !important;
}

/* ---------- past trainings ---------- */
.past-h{
  margin:26px 0 3px;font-size:1.15rem;font-weight:900;letter-spacing:-0.02em;
}
.past-lead{margin:0 0 13px;font-size:0.85rem;line-height:1.5;color:#7E7A80;}
.past-note{margin:0 0 10px;font-size:0.84rem;line-height:1.5;color:#7E7A80;}
.past-list{margin:0;padding:0;list-style:none;}
.past-list li{
  display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  padding:9px 0;border-bottom:1px solid rgba(29,29,31,0.08);
  font-size:0.88rem;font-weight:700;
}
.past-list li:last-child{border-bottom:0;}
.past-list li span{font-weight:400;color:#7E7A80;font-size:0.82rem;text-align:right;}

/* ---------- this week wrapper ---------- */
.accordion.thisweek > .acc-header{
  background:#B33951 !important;
  color:#fff !important;
}
.accordion.thisweek > .acc-header .chev{color:#fff !important;}
.accordion.thisweek > .acc-body .accordion{margin-left:0;}

/* ---------- breathing room ---------- */
.exercise{padding-bottom:22px !important;margin-bottom:22px !important;}
.ex-name{margin-bottom:5px !important;}
.ex-summary{margin-bottom:14px !important;}
.ex-badges{margin:14px 0 !important;}
.log-sets{margin-top:16px !important;}
.log-row{margin-bottom:9px !important;}
.timer{margin-top:18px !important;}
.mini{margin-bottom:10px !important;}

/* ---------- rep counter, roomier ---------- */
.counter{
  display:block;
  margin-top:16px;padding:14px;border-radius:16px;
  background:rgba(255,255,255,0.6);border:1px solid rgba(179,57,81,0.14);
}
.counter .crow{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.counter .cbig{
  flex:0 0 auto;width:74px;height:74px;border-radius:999px;border:0;
  background-image:linear-gradient(135deg,#DE4DAA,#F6D327);
  color:#fff;font-family:inherit;font-size:1.9rem;font-weight:900;
  cursor:pointer;box-shadow:0 6px 16px rgba(179,57,81,0.26);
  display:flex;align-items:center;justify-content:center;
  transition:transform .09s;-webkit-user-select:none;user-select:none;
}
.counter .cbig:active{transform:scale(0.93);}
.counter .cmid{flex:1;min-width:0;}
.counter .clab{
  display:block;font-size:0.66rem;font-weight:900;letter-spacing:0;color:#B33951;margin-bottom:5px;
}
.counter .chint{display:block;font-size:0.8rem;line-height:1.45;color:#6B615A;}
.counter .cbtns{display:flex;gap:9px;}
.counter .cbtn{
  flex:1;border:1px solid rgba(179,57,81,0.24);background:#fff;color:#B33951;
  font-family:inherit;font-size:0.8rem;font-weight:800;
  padding:11px 12px;border-radius:12px;cursor:pointer;
}
.counter .cbtn.ok{background:#B33951;color:#fff;border-color:#B33951;}

/* ---------- where it should be felt ---------- */
.feel{margin-top:14px;}
.feel-row{display:flex;gap:11px;padding:8px 0;align-items:flex-start;}
.feel-row.no{border-top:1px solid rgba(29,29,31,0.07);}
.feel-row .fl{
  flex:0 0 84px;font-size:0.6rem;font-weight:900;letter-spacing:0;padding-top:2px;
}
.feel-row.yes .fl{color:#3F7A4A;}
.feel-row.no .fl{color:#B33951;}
.feel-row .fv{flex:1;min-width:0;font-size:0.83rem;line-height:1.5;color:#3A3530;}

/* ---------- per-exercise notes ---------- */
.exnote{margin-top:16px;}
.exnote-label{
  display:block;font-size:0.62rem;font-weight:900;letter-spacing:0;color:#6B615A;margin-bottom:6px;
}
.exnote-input{
  width:100%;font-family:inherit;font-size:0.86rem;line-height:1.5;
  padding:11px 13px;border-radius:12px;resize:vertical;
  border:1px solid rgba(29,29,31,0.12);background:rgba(255,255,255,0.75);
  color:#16130F;
}
.exnote-input:focus{outline:none;border-color:#B33951;background:#fff;}

/* ---------- easier / harder side by side, under the timer ---------- */
.mini-pair{
  display:grid !important;grid-template-columns:1fr 1fr !important;
  gap:8px !important;margin-top:14px !important;
}
.mini-pair .mini{margin-bottom:0 !important;}
.mini-pair .mini-header{
  justify-content:space-between !important;
  padding:11px 13px !important;font-size:0.78rem !important;
}

/* ---------- equipment list ---------- */
.kit{
  background:rgba(255,255,255,0.8);border:1px solid rgba(179,57,81,0.12);
  border-radius:16px;padding:16px 18px;margin:18px 0;width:100%;
}
.kit-title{
  display:block;font-size:0.64rem;font-weight:900;letter-spacing:0;color:#B33951;margin-bottom:12px;
}
.kit ul{margin:0;padding:0;list-style:none;}

.kit li:last-child{border-bottom:0;}



/* ---------- why this exercise is in ---------- */
.why{
  margin:0 0 14px;padding:0 0 0 13px;
  border-left:2px solid rgba(29,29,31,0.13);
}
.why-l{
  display:block;font-size:0.6rem;font-weight:800;letter-spacing:0;color:#8E857E;margin-bottom:4px;
}
.why-v{display:block;font-size:0.82rem;line-height:1.55;color:#6B615A;}
.why-v b{font-weight:800;color:#16130F;}

/* ---------- past sessions with nothing to open ---------- */
.past-flat{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:15px 18px;margin-bottom:8px;border-radius:14px;
  background:rgba(255,255,255,0.5);border:1px solid rgba(29,29,31,0.07);
  font-size:0.92rem;font-weight:700;color:#6B615A;
}
.past-flat span{font-weight:400;font-size:0.82rem;color:#8E857E;}

/* ================= rebuilt exercise card ================= */
.exercise{padding-bottom:26px !important;margin-bottom:26px !important;}
.ex-name{margin:0 0 12px !important;font-size:1.18rem !important;}
.ex-badges{margin:0 0 14px !important;}

/* one coherent info block instead of four boxes */
.info{
  margin-top:14px;padding:11px 14px;border-radius:16px;
  background:rgba(255,255,255,0.72);border:1px solid rgba(179,57,81,0.12);
}
.i-row{display:flex;gap:10px;padding:6px 0;align-items:flex-start;}
.i-row + .i-row{border-top:1px solid rgba(29,29,31,0.06);}
.i-l{
  flex:0 0 38px;font-size:0.72rem;font-weight:600;letter-spacing:0;
  text-transform:none;padding-top:1px;color:#9B9BA4;
}
.i-l.i-watch{color:#DE4DAA;}
.i-l.i-feel{color:#3F7A4A;}
.i-l.i-why{color:#9B9BA4;}
.i-l.i-not{color:#DE4DAA;}
.i-v{flex:1;min-width:0;font-size:0.85rem;line-height:1.5;color:#3A3530;}
.i-v b{font-weight:800;color:#16130F;}

/* compact rep counter */
.counter{
  display:flex !important;align-items:center;gap:12px;
  margin-top:14px;padding:10px 12px;border-radius:14px;
  background:rgba(255,255,255,0.55);border:1px solid rgba(179,57,81,0.13);
}
.counter .crow{display:contents !important;}
.counter .cmid{display:none !important;}
.counter .cbig{width:64px !important;height:64px !important;font-size:1.7rem !important;}
.counter .cbtns{display:flex !important;flex-direction:column;gap:7px;flex:1;}
.counter .cbtn{padding:9px 12px !important;font-size:0.76rem !important;}

/* paired exercises */
.pairhead{margin:10px 0 14px;padding:0;border:0;}
.ph-n{
  display:block;font-size:0.88rem;font-weight:700;letter-spacing:-0.01em;
  text-transform:none;color:#DE4DAA;margin-bottom:2px;
}
.ph-s{display:block;font-size:0.82rem;line-height:1.45;color:#9B9BA4;font-weight:400;}

/* this-week button on the sessions index */
.weekbtn{
  display:flex;align-items:center;gap:12px;
  background:rgba(255,255,255,0.92);border:1px solid rgba(179,57,81,0.1);
  color:#1D1D1F;text-decoration:none;
  padding:18px 20px;border-radius:18px;margin:0 0 14px;
  box-shadow:0 12px 30px rgba(222,77,170,0.18), 0 3px 10px rgba(246,211,39,0.14);
}
.wb-l{
  font-size:0.6rem;font-weight:800;letter-spacing:0;color:#B33951;
}
.wb-d{flex:1;text-align:right;font-size:1.15rem;font-weight:800;letter-spacing:-0.025em;}
.wb-go{font-size:1.2rem;font-weight:800;color:#B33951;}

/* ---------- .phone centres its children, so anything loose must claim full width ---------- */
.weekbtn,.past-h,.past-lead,.past-note,.past-flat,.past-list,.kit,.feedback-box,
.est-time,.cut-note,.page-desc-list,.page-desc-closing,.pairhead{
  width:100%;align-self:stretch;
}
.past-h{text-align:left;}
.past-lead{text-align:left;}
.past-flat{box-sizing:border-box;}

/* ---------- her cues header ---------- */
.cuehead{
  display:block;margin:18px 0 -6px;
  font-size:0.78rem;font-weight:600;letter-spacing:0;
  text-transform:none;color:#9B9BA4;
}

/* ---------- full-screen timer finish ---------- */
.doneflash{
  position:fixed;inset:0;z-index:120;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  background-image:linear-gradient(135deg,rgba(222,77,170,0.97),rgba(246,211,39,0.97));
  color:#fff;opacity:0;pointer-events:none;transition:opacity .22s ease;
  text-align:center;padding:30px;
}
.doneflash.show{opacity:1;}
.doneflash .df-big{
  font-size:3.4rem;font-weight:900;letter-spacing:-0.045em;line-height:1;
  animation:dfpop .45s cubic-bezier(.2,1.4,.4,1);
}
.doneflash .df-sub{
  font-size:0.78rem;font-weight:900;letter-spacing:0;opacity:.9;
}
@keyframes dfpop{0%{transform:scale(0.6);opacity:0;}100%{transform:scale(1);opacity:1;}}

/* ---------- slim kit line, Irene style ---------- */
.kit-line{
  width:100%;align-self:stretch;margin:4px 0 10px;
  font-size:0.8rem;line-height:1.5;color:#7E7A80;
}
.kit-line b{color:#B33951;font-weight:800;}
.est-time{font-size:0.82rem !important;line-height:1.5 !important;}
.est-time b{color:#B33951;}

/* ---------- tiny inline cut notes ---------- */
.tinycut{
  margin:-6px 0 10px;font-size:0.76rem;font-weight:500;
  letter-spacing:0;color:#9B9BA4;
}

/* ---------- sticky session bar ---------- */

.sessbar{
  position:fixed;top:0;left:0;right:0;width:100%;z-index:120;
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(179,57,81,0.14);
  box-shadow:0 6px 22px rgba(120,40,70,0.08);
  overflow:hidden;
}
.sb-fill{
  position:absolute;left:0;top:0;bottom:0;width:0;
  background-image:linear-gradient(90deg,rgba(222,77,170,0.28),rgba(246,211,39,0.34));
  transition:width 1s linear;
}
.sessbar.over .sb-fill{
  background-image:linear-gradient(90deg,rgba(193,39,79,0.4),rgba(193,39,79,0.5));
}
.sb-in{
  position:relative;max-width:430px;margin:0 auto;
  display:flex;align-items:center;gap:8px;
  padding:11px 18px;
}
.sb-time{
  font-size:1.22rem;font-weight:900;letter-spacing:-0.03em;color:#1D1D1F;
  font-variant-numeric:tabular-nums;
}
.sessbar.over .sb-time{color:#C1274F;}
.sb-of{flex:1;font-size:0.74rem;font-weight:700;color:#7E7A80;white-space:nowrap;}
.sb-btn{
  border:0;font-family:inherit;cursor:pointer;
  background-image:linear-gradient(120deg,#DE4DAA,#F6D327);color:#fff;
  font-size:0.76rem;font-weight:900;letter-spacing:0;
  padding:9px 15px;border-radius:11px;
}
.sb-btn.sb-reset{
  background:none;background-image:none;color:#9B9BA4;
  padding:9px 4px;letter-spacing:0;
}

/* ---------- homework tracking ---------- */
.hwprog{
  background:rgba(255,255,255,0.9);border:1px solid rgba(179,57,81,0.1);border-radius:18px;
  padding:16px 18px;margin-bottom:16px;
  box-shadow:0 12px 30px rgba(222,77,170,0.14), 0 3px 10px rgba(246,211,39,0.12);
}
.hwp-t{display:block;font-size:0.64rem;font-weight:900;letter-spacing:0;color:#B33951;margin-bottom:6px;}
.hwp-d{display:block;font-size:0.92rem;line-height:1.55;color:#4A464C;font-weight:600;}

.hwcard.locked{opacity:.62;}
.hw-n.lock{background-image:none;background:#C9C2BC;}
.hw-lockmsg{
  font-size:0.85rem;line-height:1.55;color:#7E7A80;padding:12px 0 10px;
}
.hw-lockmsg b{color:#B33951;}

.hw-remind{
  display:flex;gap:11px;align-items:flex-start;cursor:pointer;
  margin:12px 0 0;padding:12px 13px;border-radius:13px;
  background:rgba(246,211,39,0.14);border:1px solid rgba(179,57,81,0.1);
}
.hw-remind.on{background:rgba(246,211,39,0.28);border-color:rgba(179,57,81,0.22);}
.hw-remind input{position:absolute;opacity:0;pointer-events:none;}
.hr-box{
  flex:0 0 auto;width:20px;height:20px;border-radius:7px;margin-top:1px;
  border:2px solid rgba(179,57,81,0.35);background:#fff;
  display:flex;align-items:center;justify-content:center;transition:.15s;
}
.hw-remind.on .hr-box{
  background-image:linear-gradient(125deg,#DE4DAA,#F6D327);border-color:transparent;
}
.hw-remind.on .hr-box:after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px);}
.hr-tx{flex:1;min-width:0;}
.hr-tx b{display:block;font-size:0.85rem;font-weight:800;line-height:1.4;margin-bottom:3px;}
.hr-tx span{display:block;font-size:0.78rem;line-height:1.45;color:#7E7A80;}

.hw-track{display:flex;align-items:center;gap:12px;margin-top:12px;}
.hw-done{
  flex:1;border:0;font-family:inherit;cursor:pointer;
  background-image:linear-gradient(120deg,#DE4DAA,#F6D327);color:#fff;
  font-size:0.84rem;font-weight:900;letter-spacing:0;
  padding:13px 14px;border-radius:13px;transition:.15s;
}
.hw-done.done{background-image:none;background:#fff;color:#B33951;border:2px solid #B33951;}
.hw-done:active{transform:scale(0.98);}
.hw-streak{
  flex:0 0 auto;text-align:center;font-size:0.62rem;font-weight:800;
  letter-spacing:0;color:#7E7A80;line-height:1.2;max-width:74px;
}
.hw-streak b{display:block;font-size:1.5rem;font-weight:900;color:#B33951;letter-spacing:-0.04em;}

.hw-goals{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px;padding-top:12px;
  border-top:1px solid rgba(29,29,31,0.07);}
.hw-goalt{font-size:0.58rem;font-weight:900;letter-spacing:0;color:#9B9BA4;width:100%;margin-bottom:2px;}
.goal{
  display:inline-flex;align-items:center;gap:5px;
  font-size:0.68rem;font-weight:700;color:#9B9BA4;
  background:rgba(255,255,255,0.7);border:1px solid rgba(29,29,31,0.08);
  border-radius:999px;padding:5px 10px;
}
.goal b{font-weight:900;color:#9B9BA4;}
.goal.hit{
  background-image:linear-gradient(120deg,#DE4DAA,#F6D327);
  color:#fff;border-color:transparent;
}
.goal.hit b{color:#fff;}

/* ---------- session header card ---------- */
.sesshead{
  width:100%;align-self:stretch;margin:8px 0 20px;
  background:rgba(255,255,255,0.9);border:1px solid rgba(179,57,81,0.1);
  border-radius:20px;padding:4px 20px 18px;
  box-shadow:0 10px 26px rgba(222,77,170,0.12), 0 3px 10px rgba(246,211,39,0.1);
}
.sh-grid{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;
  padding:16px 0 14px;border-bottom:1px solid rgba(29,29,31,0.07);
}
.sh-cell{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:8px 4px;border-radius:14px;min-height:64px;
}
.sh-cell.wide{background:rgba(179,57,81,0.06);}
.sh-v{
  display:block;font-size:1.32rem;font-weight:900;letter-spacing:-0.04em;
  color:#B33951;line-height:1.1;white-space:nowrap;
}
.sh-k{
  display:block;font-size:0.55rem;font-weight:800;letter-spacing:0;color:#9B9BA4;margin-top:5px;line-height:1.3;
}
.sh-cell.wide .sh-k{color:#B33951;opacity:.75;}
.sh-note{margin:14px 0 0;font-size:0.87rem;line-height:1.55;color:#4A464C;font-weight:600;}
.sh-kit{margin:11px 0 0;font-size:0.79rem;line-height:1.6;color:#7E7A80;}
.sh-kit b{
  display:inline-block;font-size:0.58rem;font-weight:900;letter-spacing:0;color:#B33951;margin-right:6px;
}

/* ---------- +/- on the session bar ---------- */
.sb-adj{
  flex:0 0 auto;border:1px solid rgba(179,57,81,0.24);background:#fff;color:#B33951;
  font-family:inherit;font-size:0.72rem;font-weight:900;
  padding:7px 9px;border-radius:9px;cursor:pointer;
}
.sb-adj:active{background:rgba(179,57,81,0.1);}
.sh-slot{margin:7px 0 0;font-size:0.79rem;line-height:1.55;color:#7E7A80;}
.sh-slot b{color:#B33951;font-weight:800;}

/* the fixed bar needs clearance at the top of every training page */
body.hasbar{padding-top:56px;}
.sessbar .sb-fill{
  transition:width 1s linear;
  background-image:linear-gradient(90deg,rgba(222,77,170,0.32),rgba(240,163,78,0.34),rgba(246,211,39,0.4));
}

/* unlock progress inside a locked card */
.lockbar{
  display:block;height:7px;border-radius:99px;margin:10px 0 6px;
  background:rgba(29,29,31,0.08);overflow:hidden;
}
.lockfill{
  display:block;height:100%;border-radius:99px;
  background-image:linear-gradient(90deg,#DE4DAA,#F6D327);
}
.lockcount{display:block;font-size:0.72rem;font-weight:800;color:#B33951;}

/* once it is running the bar steps back and stops shouting */
.sessbar.running{
  background:rgba(250,249,248,0.92);
  border-bottom-color:rgba(29,29,31,0.07);
  box-shadow:none;
}
.sessbar.running .sb-fill{
  background-image:linear-gradient(90deg,rgba(155,155,164,0.2),rgba(155,155,164,0.3));
}
.sessbar.running .sb-time{color:#9B9BA4;}
.sessbar.running .sb-of{color:#B6B0AC;}
.sessbar.running .sb-adj{border-color:rgba(29,29,31,0.12);color:#9B9BA4;}
.sessbar.running .sb-reset{color:#B6B0AC;}
/* over time still cuts through */
.sessbar.running.over .sb-fill{background-image:linear-gradient(90deg,rgba(193,39,79,0.34),rgba(193,39,79,0.44));}
.sessbar.running.over .sb-time{color:#C1274F;}

/* priority-1 marker */
.p1tag{
  display:inline-block;margin:-4px 0 10px;
  font-size:0.66rem;font-weight:700;letter-spacing:0;
  color:#fff;background-image:linear-gradient(120deg,#DE4DAA,#F0A34E);
  padding:4px 10px;border-radius:999px;
}

/* ---------- what to drop, at the very bottom ---------- */
.dropnote{
  width:100%;align-self:stretch;margin:22px 0 4px;
  padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,0.6);border:1px solid rgba(29,29,31,0.08);
}
.dn-t{
  display:block;font-size:0.76rem;font-weight:700;color:#9B9BA4;margin-bottom:8px;
}
.dropnote ol{margin:0 0 10px;padding-left:18px;}
.dropnote li{font-size:0.79rem;line-height:1.6;color:#6B615A;}
.dn-keep{display:block;font-size:0.79rem;line-height:1.6;color:#6B615A;
  padding-top:9px;border-top:1px solid rgba(29,29,31,0.07);}
.dn-keep b{color:#DE4DAA;font-weight:700;}

/* ---------- plain running order ---------- */

.ro-t{
  display:block;font-size:0.76rem;font-weight:700;color:#9B9BA4;margin-bottom:8px;
}
.ro-list{margin:0;padding-left:20px;}
.ro-list li{
  display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  padding:5px 0;font-size:0.84rem;line-height:1.4;
}
.ro-n{font-weight:600;color:#1D1D1F;}
.ro-m{flex:0 0 auto;font-size:0.76rem;color:#9B9BA4;white-space:nowrap;}
.ro-p1{
  display:inline-block;margin-left:5px;font-size:0.58rem;font-weight:800;
  color:#fff;background-image:linear-gradient(120deg,#DE4DAA,#F0A34E);
  padding:2px 6px;border-radius:999px;vertical-align:middle;
}

/* ---------- plain running order ---------- */

.ro-t{display:block;font-size:0.76rem;font-weight:700;color:#9B9BA4;margin-bottom:10px;}
.ro-sec + .ro-sec{margin-top:12px;padding-top:11px;border-top:1px solid rgba(29,29,31,0.09);}
.ro-lab{
  display:block;font-size:0.7rem;font-weight:800;letter-spacing:0;color:#DE4DAA;margin-bottom:6px;
}
.ro-lab em{font-style:normal;font-weight:600;text-transform:none;letter-spacing:0;color:#9B9BA4;}
.ro-sec.cool .ro-lab{color:#9B9BA4;}
.ro-item{display:flex;gap:10px;align-items:baseline;padding:4px 0;}
.ro-i{
  flex:0 0 16px;font-size:0.72rem;font-weight:700;color:#9B9BA4;
  font-variant-numeric:tabular-nums;
}
.ro-n{font-size:0.88rem;font-weight:600;color:#1D1D1F;line-height:1.35;}
.ro-sec.cool .ro-n{color:#6B615A;font-weight:500;}

.ro-t em{font-style:normal;font-weight:600;color:#C9C2BC;margin-left:4px;}
.ro-item{text-decoration:none;cursor:pointer;}
.ro-item:active .ro-n{color:#DE4DAA;}
.ro-star{margin-left:auto;font-size:0.66rem;color:#C9C2BC;flex:0 0 auto;}

/* floating jump arrows */
.jumpbtns{
  position:fixed;right:14px;bottom:18px;z-index:110;
  display:flex;flex-direction:column;gap:8px;
}
.jumpbtns button{
  width:42px;height:42px;border-radius:999px;border:0;cursor:pointer;
  background:rgba(255,255,255,0.94);color:#B33951;
  font-size:1.05rem;font-weight:800;font-family:inherit;
  box-shadow:0 6px 18px rgba(120,40,70,0.18);
  border:1px solid rgba(179,57,81,0.14);
}
.jumpbtns button:active{background:rgba(222,77,170,0.12);}

/* ================= session report ================= */
.rep-tag{
  align-self:flex-start;font-size:0.6rem;font-weight:800;letter-spacing:0;color:#fff;background:#9B9BA4;
  padding:4px 10px;border-radius:999px;margin-bottom:6px;
}
.rep-lead{width:100%;align-self:stretch;margin:0 0 18px;font-size:0.88rem;line-height:1.55;color:#7E7A80;}
.repstat{
  width:100%;align-self:stretch;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;
  margin:8px 0 16px;
}
.rs-cell{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(255,255,255,0.8);border:1px solid rgba(29,29,31,0.08);
  border-radius:14px;padding:12px 4px;
}
.rs-v{font-size:1.4rem;font-weight:900;letter-spacing:-0.04em;color:#B33951;line-height:1;}
.rs-k{font-size:0.55rem;font-weight:800;letter-spacing:0;color:#9B9BA4;margin-top:5px;text-align:center;}

.repcard{
  width:100%;align-self:stretch;
  background:rgba(255,255,255,0.86);border:1px solid rgba(29,29,31,0.08);
  border-radius:16px;padding:14px 16px;margin-bottom:10px;
}
.repcard.skipped{opacity:.62;background:rgba(255,255,255,0.5);}
.repcard.extra{border-color:rgba(222,77,170,0.28);}
.rc-head{display:flex;align-items:center;gap:10px;margin-bottom:9px;flex-wrap:wrap;}
.rc-n{
  flex:0 0 auto;width:25px;height:25px;border-radius:999px;
  background-image:linear-gradient(125deg,#DE4DAA,#F6D327);
  color:#fff;font-size:0.66rem;font-weight:900;
  display:flex;align-items:center;justify-content:center;
}
.repcard.skipped .rc-n{background-image:none;background:#C9C2BC;}
.rc-head h3{margin:0;font-size:1rem;font-weight:800;letter-spacing:-0.02em;line-height:1.25;}
.rc-tag{
  font-size:0.58rem;font-weight:800;letter-spacing:0;
  color:#9B9BA4;background:rgba(29,29,31,0.06);padding:3px 8px;border-radius:999px;
}
.rc-sets{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:8px 11px;border-radius:10px;background:rgba(246,211,39,0.16);margin-bottom:9px;
}
.rc-sets span{font-size:0.86rem;font-weight:800;color:#1D1D1F;}
.rc-w{color:#B33951 !important;font-size:0.82rem !important;}
.rc-note{margin:0;font-size:0.85rem;line-height:1.6;color:#4A464C;}
.rc-note b{color:#1D1D1F;font-weight:800;}

.repwrap{
  width:100%;align-self:stretch;margin:18px 0 6px;
  background:rgba(255,255,255,0.86);border:1px solid rgba(179,57,81,0.16);
  border-radius:18px;padding:18px 20px;
}
.rw-t{display:block;font-size:0.68rem;font-weight:900;letter-spacing:0;color:#B33951;margin-bottom:11px;}
.repwrap ul{margin:0;padding-left:18px;}
.repwrap li{font-size:0.87rem;line-height:1.6;margin-bottom:9px;color:#4A464C;}
.repwrap li:last-child{margin-bottom:0;}
.repwrap li b{color:#1D1D1F;font-weight:800;}

/* ---------- muscles trained ---------- */
.lasttrained{
  width:100%;align-self:stretch;
  background:rgba(255,255,255,0.86);border:1px solid rgba(29,29,31,0.08);
  border-radius:18px;padding:16px 18px;margin-bottom:16px;
  box-shadow:0 8px 24px rgba(179,57,81,0.08);
}
.lt-t{display:block;font-size:0.62rem;font-weight:900;letter-spacing:0;color:#9B9BA4;margin-bottom:2px;}
.lt-d{display:block;font-size:1.02rem;font-weight:800;letter-spacing:-0.02em;margin-bottom:12px;}

.lt-note{
  margin:13px 0 0;padding-top:12px;border-top:1px solid rgba(29,29,31,0.08);
  font-size:0.84rem;line-height:1.6;color:#4A464C;
}
.lt-note b{color:#B33951;font-weight:800;}

.reportlink{
  display:flex;align-items:center;gap:12px;width:100%;align-self:stretch;
  background:rgba(255,255,255,0.86);border:1px solid rgba(29,29,31,0.08);
  border-radius:16px;padding:15px 17px;margin-bottom:10px;text-decoration:none;color:#1D1D1F;
}
.rl-d{font-size:0.98rem;font-weight:800;letter-spacing:-0.02em;}
.rl-s{flex:1;font-size:0.78rem;color:#9B9BA4;}
.rl-go{color:#B33951;font-size:1.1rem;font-weight:800;}

/* last week's numbers, shown on the new plan */
.lastwk{
  margin:-4px 0 10px;padding:7px 11px;border-radius:10px;
  background:rgba(29,29,31,0.04);
  font-size:0.76rem;line-height:1.45;color:#7E7A80;
}
.lastwk b{color:#B33951;font-weight:800;}

/* ---------- floating rest timer ---------- */
.resttimer{
  position:fixed;right:14px;bottom:76px;z-index:115;
  display:flex;flex-direction:column;align-items:flex-end;gap:8px;
  --rt:0%;
}
.rt-face{
  width:92px;height:92px;border-radius:999px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:
    conic-gradient(#DE4DAA 0 var(--rt), rgba(29,29,31,0.08) var(--rt) 100%);
  box-shadow:0 8px 24px rgba(120,40,70,0.22);
  position:relative;
}
.rt-face:before{
  content:"";position:absolute;inset:7px;border-radius:999px;background:#fff;
}
.rt-time{
  position:relative;font-size:1.34rem;font-weight:900;letter-spacing:-0.04em;
  color:#1D1D1F;font-variant-numeric:tabular-nums;line-height:1;
}
.rt-lab{
  position:relative;font-size:0.56rem;font-weight:800;letter-spacing:0;color:#9B9BA4;margin-top:3px;
}
.resttimer.running .rt-lab{color:#DE4DAA;}
.rt-presets{display:none;flex-direction:column;gap:6px;}
.resttimer.open .rt-presets{display:flex;}
.rt-presets button{
  border:1px solid rgba(179,57,81,0.2);background:#fff;color:#B33951;
  font-family:inherit;font-size:0.74rem;font-weight:800;
  padding:8px 13px;border-radius:11px;cursor:pointer;
}

/* ---------- tick an exercise off ---------- */
.exdone{
  display:block;width:100%;margin-top:12px;cursor:pointer;
  border:1px solid rgba(179,57,81,0.24);background:#fff;color:#B33951;
  font-family:inherit;font-size:0.8rem;font-weight:800;
  padding:11px 12px;border-radius:12px;
}
.exdone.on{background:#B33951;border-color:#B33951;color:#fff;}
.exercise.isdone{opacity:.58;}
.ro-item.rowdone .ro-n{text-decoration:line-through;color:#9B9BA4;}
#roProgress{font-style:normal;font-weight:700;color:#DE4DAA;margin-left:6px;}

/* ---------- all booked sessions ---------- */
.upnext-t{
  display:block;width:100%;align-self:stretch;
  font-size:0.62rem;font-weight:800;letter-spacing:0;color:#9B9BA4;margin:2px 0 8px;
}
.upnext{width:100%;align-self:stretch;margin:-4px 0 20px;}
.un-row{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:11px 14px;margin-bottom:6px;border-radius:12px;
  background:rgba(255,255,255,0.62);border:1px solid rgba(29,29,31,0.07);
}
.un-row.muted{background:rgba(255,255,255,0.35);}
.un-d{font-size:0.87rem;font-weight:700;color:#1D1D1F;}
.un-row.muted .un-d{color:#9B9BA4;}
.un-s{font-size:0.76rem;color:#9B9BA4;text-align:right;}

/* ---------- muscle load bars ---------- */
.mbars{margin:6px 0 4px;}
.mb-row{display:flex;align-items:center;gap:10px;margin-top:11px;}
.mb-n{flex:0 0 84px;font-size:0.78rem;font-weight:700;color:#1D1D1F;}
.mb-track{flex:1;height:9px;border-radius:99px;background:rgba(29,29,31,0.06);overflow:hidden;}
.mb-fill{display:block;height:100%;border-radius:99px;}
.mb-why{display:block;margin:3px 0 0 94px;font-size:0.7rem;line-height:1.4;color:#9B9BA4;}

/* ---------- not planned yet ---------- */
.notyet{
  width:100%;align-self:stretch;
  background:rgba(255,255,255,0.86);border:1px solid rgba(29,29,31,0.08);
  border-radius:18px;padding:20px 22px;margin-bottom:12px;
}
.notyet.soft{background:rgba(255,255,255,0.55);}
.ny-t{
  display:block;font-size:0.64rem;font-weight:900;letter-spacing:0;color:#B33951;margin-bottom:10px;
}
.notyet p{margin:0 0 9px;font-size:0.9rem;line-height:1.6;color:#4A464C;}
.notyet p:last-child{margin-bottom:0;}
.ny-sub{color:#9B9BA4 !important;font-size:0.84rem !important;}
.notyet ul{margin:0;padding-left:18px;}
.notyet li{font-size:0.86rem;line-height:1.6;color:#4A464C;margin-bottom:7px;}
.un-note{
  width:100%;align-self:stretch;margin:-12px 0 20px;
  font-size:0.79rem;line-height:1.55;color:#9B9BA4;
}

/* ---- body muscle map ---- */
.bodymap{margin:14px -9px 2px;}
.bm-figs{background:rgba(255,255,255,0.55);border:1px solid rgba(29,29,31,0.07);
  border-radius:16px;padding:12px 4px 6px;}
.bodysvg{width:100%;height:auto;display:block;}
.bm{fill:#EFEAEC;stroke:none;transition:fill .4s ease,opacity .25s ease;}
.bink{fill:#33272B;pointer-events:none;}
.bodysvg.picking .bm[data-m]{opacity:0.3;}
.bodysvg.picking .bm.sel{opacity:1;}
.bm-neutral{fill:#F7F3F4;}
.bm[data-m]{cursor:pointer;}
.bm-cap{display:flex;justify-content:space-around;margin-top:4px;font-size:0.58rem;
  font-weight:900;letter-spacing:0;color:#9B9BA4;}
.bm-scale{display:flex;align-items:center;gap:9px;margin-top:13px;
  font-size:0.6rem;font-weight:800;letter-spacing:0;color:#9B9BA4;}
.bm-scale i{flex:1;height:7px;border-radius:99px;
  background:linear-gradient(90deg,#EFEAEC,#DD6A8C,#B0294C);}
.bm-tap{margin:11px 0 0;font-size:0.76rem;line-height:1.45;color:#7E7A80;min-height:2.2em;}
.bm-tap b{color:#1D1D1F;font-weight:800;}
.mtop{margin:15px 0 0;}
.mt-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:8px 0;border-bottom:1px solid rgba(29,29,31,0.06);}
.mt-row:last-child{border-bottom:0;}
.mt-n{font-size:0.79rem;font-weight:800;color:#1D1D1F;flex:0 0 auto;}
.mt-w{font-size:0.7rem;color:#9B9BA4;text-align:right;line-height:1.35;}
.mt-also{margin:9px 0 0;font-size:0.7rem;color:#9B9BA4;line-height:1.45;}

.pri-h{display:block;margin:18px 0 2px;font-size:0.62rem;font-weight:900;letter-spacing:0;color:#9B9BA4;}
.mt-row{align-items:flex-start;}
.mt-n{flex:0 0 40%;}


/* ---- Anna's session card ---- */
.exercise{position:relative;}


.exercise .ex-name{padding-right:44px;}








.ex-more{margin-top:9px;}










/* ---- rest presets ---- */
.rest-pick{display:block;margin:8px 0 0;}
.rp-l{display:block;font-size:0.6rem;font-weight:900;letter-spacing:0;color:#7E7A80;margin-bottom:5px;}
.rp-b{display:flex;gap:6px;flex-wrap:wrap;}
.rp-b button{
  flex:1 1 auto;min-width:46px;padding:7px 4px;border-radius:10px;cursor:pointer;
  border:1px solid rgba(29,29,31,0.12);background:rgba(255,255,255,0.75);
  font:800 0.74rem/1 'Archivo',sans-serif;color:#4A464C;
}
.rp-b button.rec{background:#B33951;border-color:#B33951;color:#fff;}
.rp-b button:active{transform:scale(0.96);}


/* ---- card detail blocks: same vocabulary as .watch / .why / .lastwk ---- */
.ex-watch{
  margin-top:12px;border:1px solid #F3C6D4;background:#FFF6F9;
  border-radius:14px;padding:9px 12px;
}
.xw-l{
  display:block;font-size:0.72rem;font-weight:800;letter-spacing:0;color:var(--ink);margin:0 0 6px;
}
.xw-v{display:block;font-size:0.82rem;line-height:1.55;color:#6B615A;}

.ex-brk,.ex-nf{
  margin:12px 0 0;padding:0 0 0 13px;
  border-left:2px solid rgba(29,29,31,0.13);
}
.xb-l,.xn-l{
  display:block;font-size:0.6rem;font-weight:800;letter-spacing:0;color:#8E857E;margin-bottom:4px;
}
.xb-v,.xn-v{display:block;font-size:0.82rem;line-height:1.55;color:#6B615A;}
.xn-fix{display:block;margin-top:4px;font-size:0.78rem;line-height:1.5;color:var(--muted);}

.ex-prog{
  margin:10px 0 0;padding:7px 11px;border-radius:10px;
  background:rgba(29,29,31,0.04);
  font-size:0.76rem;line-height:1.45;color:#7E7A80;
}
.xp-l{
  display:block;font-size:0.6rem;font-weight:800;letter-spacing:0;color:#8E857E;margin-bottom:2px;
}
.xp-v{display:block;}
.xp-last{display:block;margin-top:2px;font-weight:700;color:#4A464C;}

.rp-l{color:#8E857E;}
.rp-b button.rec{background:var(--rose);border-color:var(--rose);}


/* ---- card round 2 ---- */
.cue-steps{margin:0 0 6px;padding-left:19px;font-size:0.82rem;line-height:1.55;color:#6B615A;}
.cue-steps li{margin:3px 0;}
.lg-u{
  font-size:0.66rem;font-weight:800;letter-spacing:0;
  color:#A9A4A8;padding:0 2px 0 4px;white-space:nowrap;
}
.rest-pick.inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.rest-pick.inline .rp-l{margin:0;}

.rp-go:active{transform:scale(0.96);}
.ro-brk{
  display:block;margin-top:2px;font-size:0.68rem;line-height:1.4;
  color:#8E857E;font-weight:600;
}




/* ---- running order ---- */
.ro-lab{color:#B33951;}
#roProgress{color:#B33951;}
.ro-item{
  display:grid;grid-template-columns:20px 1fr;gap:0 10px;align-items:baseline;
  padding:6px 0;
}
.ro-n{grid-column:2;font-weight:600;color:#1D1D1F;line-height:1.4;}
.ro-item > :first-child{grid-column:1;color:#B9AFA8;font-size:0.78rem;font-variant-numeric:tabular-nums;}
.ro-brk{
  grid-column:2;display:block;margin-top:1px;
  font-size:0.7rem;line-height:1.4;color:#9C938C;font-weight:500;
}
.rowdone .ro-brk{opacity:0.45;}


/* ---- done tick ---- */
.exdone.tick{
  position:absolute;top:12px;right:12px;z-index:5;
  width:32px;height:32px;padding:0;border-radius:50%;
  border:1.5px solid rgba(29,29,31,0.15);background:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:0;cursor:pointer;transition:background .18s,border-color .18s;
}
.exdone.tick svg{width:16px;height:16px;display:block;overflow:visible;}
.exdone.tick svg path{
  fill:none;stroke:rgba(29,29,31,0.3);stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round;
}
.exercise.isdone .exdone.tick{background:var(--rose);border-color:var(--rose);}
.exercise.isdone .exdone.tick svg path{stroke:#fff;}


/* ---- small note button, sits with the break line ---- */
.exnote{margin-top:6px;}




/* ---- bottom collapsible label: normal sentence type, not spaced caps ---- */
.ex-more{margin-top:10px;}
.xm-btn{
  display:inline-flex;align-items:center;gap:8px;width:auto;cursor:pointer;
  padding:6px 13px;border-radius:99px;
  border:1px solid rgba(29,29,31,0.12);background:rgba(29,29,31,0.03);
  font-family:inherit;font-size:0.72rem;font-weight:700;color:#6B615A;
  letter-spacing:0;text-transform:none;
  transition:background .18s,border-color .18s,color .18s;
}
/* a drawn caret, so no font or encoding can break it */
.xm-btn::after{
  content:'';width:5px;height:5px;flex:0 0 auto;
  border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;
  transform:translateY(-1px) rotate(45deg);transition:transform .18s;
}
.ex-more.open .xm-btn{background:#fff;border-color:rgba(179,57,81,0.30);color:var(--rose);}
.ex-more.open .xm-btn::after{transform:translateY(1px) rotate(-135deg);}
.ex-more.open .xm-body{
  margin-top:8px;padding:10px 12px;border-radius:12px;
  background:rgba(179,57,81,0.06);
}


/* ---- golden tip ---- */
.goldtip{margin-top:8px;}
.gt-btn{
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  padding:5px 12px 5px 9px;border-radius:99px;
  border:1px solid rgba(179,57,81,0.28);background:rgba(255,255,255,0.8);
  font-family:inherit;font-size:0.72rem;font-weight:600;color:var(--rose);
  letter-spacing:0;text-transform:none;
}
.gt-btn svg{width:14px;height:14px;fill:none;stroke:var(--rose);stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round;}
.gt-btn em{font-style:normal;}
.gt-body{
  display:none;margin:8px 0 0;padding:10px 12px;border-radius:12px;
  background:rgba(179,57,81,0.06);
  font-size:0.8rem;line-height:1.5;color:#6B615A;
}
.goldtip.open .gt-body{display:block;}
.goldtip.open .gt-btn{background:var(--rose);color:#fff;border-color:var(--rose);}
.goldtip.open .gt-btn svg{stroke:#fff;}


/* ---- coach + planned minutes ---- */
.cd-ok{color:#8E857E;font-weight:600;}
.ro-min{
  grid-column:2;display:block;margin-top:1px;
  font-size:0.68rem;color:#B9AFA8;font-weight:500;
}
.log-row.optset .set-label{font-style:italic;color:#B9AFA8;font-weight:500;}
.log-row.optset .log-input{opacity:0.72;}



/* ---- coach notification ---- */
.coachtoast{
  position:fixed;left:12px;right:12px;bottom:16px;z-index:120;
  max-width:420px;margin:0 auto;
  display:flex;align-items:flex-start;gap:10px;
  padding:13px 14px;border-radius:16px;
  background:#fff;border:1px solid rgba(179,57,81,0.25);
  box-shadow:0 10px 30px rgba(120,40,70,0.18);
  transform:translateY(140%);opacity:0;pointer-events:none;
  transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s;
}
.coachtoast.show{transform:translateY(0);opacity:1;pointer-events:auto;}
.tst-in{flex:1;font-size:0.8rem;line-height:1.45;color:#4A464C;}
.tst-in b{display:block;color:#1D1D1F;font-weight:800;margin-bottom:3px;}
.tst-fix{display:block;color:var(--rose);font-weight:700;}
.tst-x{
  flex:0 0 auto;width:24px;height:24px;border-radius:50%;cursor:pointer;
  border:1px solid rgba(29,29,31,0.12);background:none;color:#9B9BA4;
  font-family:inherit;font-size:0.78rem;line-height:1;
}

.rest-pick.inline{display:block;margin-top:7px;}
.rp-go{
  display:inline-flex;align-items:center;cursor:pointer;
  padding:5px 13px;border-radius:99px;
  border:1px solid var(--rose);background:var(--rose);color:#fff;
  font-family:inherit;font-size:0.72rem;font-weight:700;letter-spacing:0;
}
.rp-go:active{transform:scale(0.96);}


/* ---- note: an emoji in the badge row ---- */
.ex-badges{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}

.exnote.open ~ * .note-btn,.note-btn.on{border-color:var(--rose);background:rgba(179,57,81,0.08);}
.exnote{margin-top:8px;}


/* ---- bottom collapsible: one type size, no nested boxes ---- */
.xm-body{display:none;}
.ex-more.open .xm-body{display:block;}
.xm-body p,.xm-body .why-v{
  margin:5px 0 0;font-size:0.82rem;line-height:1.55;color:#6B615A;font-weight:400;
}
.xm-body .why{margin:5px 0 0;padding:0;border-left:0;}
.xm-body .why-l{display:none;}
.xm-body .mini{margin-top:8px;}


/* ---- kit rows: name left, what it is for right ---- */
.kit{padding:12px 14px;margin:14px 0;}
.kit li{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:6px 0;border-bottom:1px solid rgba(29,29,31,0.07);
}
.kit li:last-child{border-bottom:0;padding-bottom:0;}
.kit li b{font-weight:700;color:#16130F;font-size:0.84rem;line-height:1.3;}
.kit li span{
  color:#9C938C;font-size:0.76rem;line-height:1.3;text-align:right;
  white-space:nowrap;flex:0 0 auto;
}
.kit-title{margin-bottom:8px;}


/* ---- start button under the date ---- */

.startbox .sb-btn{
  padding:8px 18px;border-radius:99px;cursor:pointer;
  border:1px solid var(--rose);background:var(--rose);color:#fff;
  font-family:inherit;font-size:0.8rem;font-weight:800;letter-spacing:0;
}
.startbox .sb-reset{background:none;color:#9B9BA4;border-color:rgba(29,29,31,0.14);}


/* ---- one card treatment for every top block ---- */
.kit, #runorder{
  width:100%;align-self:stretch;box-sizing:border-box;
  background:rgba(255,255,255,0.78);
  border:1px solid rgba(29,29,31,0.08);
  border-radius:16px;
  padding:13px 15px;
  margin:0 0 14px;
}
.kit{margin-top:14px;}

/* every small block label reads the same */
.kit-title, .ro-t{
  display:block;margin:0 0 9px;
  font-family:inherit;font-size:0.7rem;font-weight:800;letter-spacing:0;
  color:var(--rose);
}
.ro-lab{
  display:block;margin:0 0 4px;
  font-size:0.7rem;font-weight:700;letter-spacing:0;color:#9C938C;
}
#roProgress{color:#9C938C;font-weight:600;margin-left:6px;}

/* rows line up across both cards */
.kit li, .ro-item{padding:6px 0;}
.kit li b, .ro-n{font-size:0.84rem;font-weight:700;color:#16130F;line-height:1.35;}
.kit li span, .ro-brk, .ro-min{font-size:0.72rem;color:#9C938C;font-weight:500;line-height:1.35;}
.ro-sec + .ro-sec{margin-top:9px;padding-top:9px;border-top:1px solid rgba(29,29,31,0.07);}

/* start / reset, right under the date */

.startbox .sb-btn{padding:7px 20px;font-size:0.78rem;}


/* ---- even rhythm, one 14px gap everywhere ---- */
.startbox{
  width:100%;align-self:stretch;box-sizing:border-box;
  display:flex;justify-content:flex-start;gap:8px;margin:2px 0 14px;
}
.startbox .sb-btn{padding:7px 20px;font-size:0.78rem;}
.kit{margin-top:0;}

/* ---- note button, bottom right of the cue block ---- */
.watch.has-note{position:relative;padding-bottom:34px;}
.note-btn{
  position:absolute;right:10px;bottom:9px;
  width:28px;height:28px;padding:0;border-radius:50%;
  border:1px solid rgba(29,29,31,0.14);background:rgba(255,255,255,0.9);
  cursor:pointer;font-size:0.84rem;line-height:1;
}
.note-btn.on{border-color:var(--rose);background:rgba(179,57,81,0.1);}


/* ---- note stays shut until she taps it ---- */
.exnote .exnote-input{display:none;}
.exnote.open .exnote-input{
  display:block;width:100%;box-sizing:border-box;margin-top:8px;
  border:1px solid rgba(29,29,31,0.12);border-radius:12px;padding:9px 11px;
  font-family:inherit;font-size:0.82rem;color:#4A464C;background:rgba(255,255,255,0.9);
}
.ex-brk{display:none;}


/* ---- NOT / FIX, same left-border vocabulary as .why ---- */
.ex-nf{padding:0 0 0 13px;}
.nf-btn{
  display:block;width:100%;text-align:left;margin:0;padding:0;
  background:none;border:0;font-family:inherit;
  font-size:0.82rem;line-height:1.55;color:#6B615A;letter-spacing:0;text-transform:none;
}
.ex-nf.has-fix .nf-btn{cursor:pointer;}
.nf-k{
  display:inline-block;margin-right:7px;
  font-size:0.6rem;font-weight:800;letter-spacing:0.04em;color:#8E857E;
  vertical-align:1px;
}
.nf-k.nf-f{color:var(--rose);}
.ex-nf.has-fix .nf-btn::after{
  content:'';display:inline-block;width:5px;height:5px;margin-left:7px;
  border-right:1.7px solid #B9AFA8;border-bottom:1.7px solid #B9AFA8;
  transform:translateY(-2px) rotate(45deg);transition:transform .18s;
}
.ex-nf.has-fix.open .nf-btn::after{transform:translateY(0) rotate(-135deg);}
.nf-fix{display:none;margin-top:5px;font-size:0.82rem;line-height:1.55;color:#6B615A;}
.ex-nf.open .nf-fix{display:block;}


/* ---- a tick per set ---- */
.log-row{position:relative;}
.setok-btn{
  flex:0 0 auto;width:27px;height:27px;padding:0;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  border:1.4px solid rgba(29,29,31,0.15);background:#fff;
  transition:background .16s,border-color .16s;
}
.setok-btn svg{width:13px;height:13px;display:block;}
.setok-btn svg path{
  fill:none;stroke:rgba(29,29,31,0.28);stroke-width:2.8;
  stroke-linecap:round;stroke-linejoin:round;
}
.log-row.setok .setok-btn{background:var(--rose);border-color:var(--rose);}
.log-row.setok .setok-btn svg path{stroke:#fff;}
.log-row.setok .log-input{background:rgba(29,29,31,0.03);color:#8E857E;}
.log-row.setok .set-label{color:#B9AFA8;}

/* ---- minus 15 / plus 15 on the timer ---- */
.rt-adj{display:flex;gap:6px;}
.rt-adj button{
  min-width:38px;padding:4px 8px;border-radius:99px;cursor:pointer;
  border:1px solid rgba(29,29,31,0.12);background:#fff;color:#7E7A80;
  font-family:inherit;font-size:0.66rem;font-weight:800;letter-spacing:0;
  box-shadow:0 3px 10px rgba(120,40,70,0.10);
}
.rt-adj button:active{transform:scale(0.94);}


/* ---- one rhythm down the card, nothing setting its own spacing ---- */
.exercise > .topline,
.exercise > .ex-summary,
.exercise > .watch,
.exercise > .ex-watch,
.exercise > .log-sets,
.exercise > .rest-pick,
.exercise > .ex-prog,
.exercise > .ex-nf,
.exercise > .ex-more{margin-top:14px !important;margin-bottom:0 !important;}


/* ---- reps and the cues button, one line ---- */
.topline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;}
.topline .mini{display:contents;}
.topline .ex-badges{margin:0 !important;}
.topline .mini-header{padding:0 !important;background:none !important;border:0 !important;}
.topline .mini-body{flex:0 0 100%;}


/* ---- before she leaves, and what to ask her ---- */
.wrapup{
  margin:0 0 18px;padding:14px 16px;border-radius:14px;
  background:rgba(29,29,31,0.04);
}
.wu-l{
  margin:0 0 7px;font-size:0.62rem;font-weight:800;letter-spacing:0.04em;
  color:#8E857E;text-transform:uppercase;
}
.wu-list + .wu-l{margin-top:14px;}
.wu-list{margin:0;padding:0;list-style:none;}
.wu-list li{
  position:relative;padding-left:15px;margin:0 0 6px;
  font-size:0.84rem;line-height:1.5;color:#4A464C;
}
.wu-list li:last-child{margin-bottom:0;}
.wu-list li:before{
  content:'';position:absolute;left:0;top:8px;
  width:5px;height:5px;border-radius:50%;background:rgba(29,29,31,0.25);
}
.wu-list.ask li:before{background:var(--rose);}
.wu-list.ask li{color:#1D1D1F;font-weight:600;}

/* ---- the button copies, it never sends ---- */
.send-btn.copyonly{
  background-image:none !important;background:var(--rose) !important;
  color:#fff !important;
}
.send-btn.copyonly:active{transform:scale(0.985);}


/* ---- todos she can actually tick off ---- */
.wu-list.todo li{padding-left:0;}
.wu-list.todo li:before{display:none;}
.wu-list.todo label{
  display:flex;align-items:flex-start;gap:9px;cursor:pointer;
}
.wu-list.todo input{
  flex:0 0 auto;appearance:none;-webkit-appearance:none;
  width:19px;height:19px;margin:1px 0 0;border-radius:6px;cursor:pointer;
  border:1.5px solid rgba(29,29,31,0.22);background:#fff;
  position:relative;transition:background .16s,border-color .16s;
}
.wu-list.todo input:checked{background:var(--rose);border-color:var(--rose);}
.wu-list.todo input:checked:after{
  content:'';position:absolute;left:6px;top:2px;width:4px;height:9px;
  border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(42deg);
}
.wu-list.todo input:checked + span{color:#B9AFA8;text-decoration:line-through;}
