:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display",system-ui,sans-serif;color-scheme:light dark;--bg:#edf7f4;--card:rgba(255,255,255,.8);--soft:rgba(15,118,110,.08);--text:#102b28;--muted:#55706c;--accent:#0f766e;--accent2:#34d399;--line:rgba(15,118,110,.18);--shadow:0 20px 55px rgba(5,45,40,.13)}
:root[data-theme=dark]{--bg:#061311;--card:rgba(16,40,37,.82);--soft:rgba(94,234,212,.08);--text:#eefbf8;--muted:#9cbab5;--accent:#34d399;--accent2:#5eead4;--line:rgba(94,234,212,.18);--shadow:0 20px 55px rgba(0,0,0,.34)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -10%,rgba(52,211,153,.25),transparent 36%),var(--bg);color:var(--text)}button,select,input{font:inherit}.shell{min-height:100vh;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));display:grid;place-items:center}.app{width:min(980px,100%)}header{text-align:center;margin-bottom:12px}.brand{display:flex;justify-content:center;align-items:center;gap:10px}.brand img{width:44px;height:44px;border-radius:13px}.brand h1{margin:0;font-size:clamp(1.55rem,3.2vw,2.2rem)}.tagline{color:var(--muted);margin:.25rem 0 0;font-size:.92rem}.header-actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.install{margin-top:8px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:999px;padding:8px 13px;font-weight:750;cursor:pointer;font-size:.88rem}.install.secondary{text-decoration:none;background:transparent}.grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);backdrop-filter:blur(20px)}.session{padding:clamp(18px,4vw,36px);text-align:center;min-height:480px;display:flex;flex-direction:column;justify-content:center}.animation-stage{position:relative;width:150px;height:150px;margin:0 auto 2px;display:grid;place-items:center}.phase-icon{position:relative;z-index:4;font-size:clamp(2.35rem,5vw,3.8rem)}.orb{position:absolute;border-radius:50%;inset:28px;background:linear-gradient(135deg,var(--accent),var(--accent2));opacity:.2}.orb-one{inset:16px;opacity:.12}.orb-two{inset:4px;opacity:.07}.animation-stage[data-animation=breathe] .orb-main{animation:li-breathe 5s ease-in-out infinite}.animation-stage[data-animation=breathe] .orb-one{animation:li-breathe 5s ease-in-out .35s infinite}.animation-stage[data-animation=breathe] .orb-two{animation:li-breathe 5s ease-in-out .7s infinite}.animation-stage[data-animation=pulse] .orb{animation:li-pulse 1.5s ease-out infinite}.animation-stage[data-animation=pulse] .orb-one{animation-delay:.25s}.animation-stage[data-animation=pulse] .orb-two{animation-delay:.5s}.animation-stage[data-animation=flow] .orb-main{animation:li-flow 4s ease-in-out infinite}.animation-stage[data-animation=flow] .orb-one{animation:li-flow 5s ease-in-out reverse infinite}.animation-stage[data-animation=flow] .orb-two{animation:li-flow 6s ease-in-out infinite}.animation-stage[data-animation=still] .orb{animation:none}.animation-stage[data-phase=exercise] .orb{border-radius:38% 62% 55% 45%}.animation-stage[data-phase=stretch] .orb{border-radius:65% 35% 55% 45%}.phase{font-size:clamp(1.05rem,2.5vw,1.45rem);font-weight:700;margin-top:4px}.time{font-variant-numeric:tabular-nums;font-size:clamp(4.5rem,14vw,8rem);font-weight:800;letter-spacing:-.07em;line-height:1;margin:14px 0}.progress{height:10px;background:var(--line);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .25s}.cycle{margin:12px 0;color:var(--muted);font-weight:650}.controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.btn{border:0;border-radius:15px;padding:11px 16px;min-height:46px;font-weight:750;cursor:pointer;background:var(--line);color:var(--text)}.btn.primary{background:var(--accent);color:#fff;min-width:155px}.side{padding:16px}.side h2{font-size:.98rem;margin:2px 0 8px}.programs{display:grid;gap:6px}.program-row{display:grid;grid-template-columns:1fr auto;align-items:center;border:1px solid transparent;border-radius:14px;overflow:hidden}.program-row.active{background:var(--soft);border-color:var(--accent)}.program{width:100%;display:flex;justify-content:space-between;align-items:center;padding:10px 11px;border:0;background:transparent;color:var(--text);cursor:pointer;text-align:left}.program small{color:var(--muted);font-size:.72rem}.gear{margin-right:6px;width:34px;height:34px;border:0;border-radius:10px;background:var(--line);color:var(--text);cursor:pointer}.settings,.stats{margin-top:13px;border-top:1px solid var(--line);padding-top:11px}.field{display:grid;gap:5px;margin:8px 0;font-size:.85rem}.field select,.field input{padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--text);width:100%}.toggles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.toggle{display:flex;justify-content:space-between;align-items:center;margin:5px 0;font-size:.85rem}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:7px}.stat-grid>div{padding:.65rem;border-radius:12px;background:var(--soft);text-align:center}.stat-grid strong{display:block;font-size:1.3rem}.stat-grid span{font-size:.72rem;opacity:.75}.btn.compact{min-height:38px;padding:8px 12px;width:100%;font-size:.8rem}.footer{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;text-align:center;margin-top:10px;color:var(--muted);font-size:.78rem}.footer a{color:inherit}.refresh-link{border:0;background:transparent;color:var(--accent);font-weight:750;cursor:pointer;padding:5px}.modal{border:0;padding:0;background:transparent;color:var(--text);max-width:min(92vw,460px);width:100%}.modal::backdrop{background:rgba(0,20,18,.58);backdrop-filter:blur(5px)}.modal-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow);backdrop-filter:blur(25px)}.modal-head{display:flex;justify-content:space-between;gap:12px}.modal-head h2{margin:0}.modal-head p{margin:.25rem 0 .6rem;color:var(--muted)}.modal-close{border:0;background:var(--line);color:var(--text);width:36px;height:36px;border-radius:50%;font-size:1.5rem;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.btn:disabled,.program:disabled,.gear:disabled,input:disabled{opacity:.5;cursor:not-allowed}@keyframes li-breathe{0%,100%{transform:scale(.72);opacity:.08}50%{transform:scale(1.08);opacity:.24}}@keyframes li-pulse{0%{transform:scale(.55);opacity:.28}80%,100%{transform:scale(1.25);opacity:0}}@keyframes li-flow{0%,100%{transform:rotate(0) scale(.8)}50%{transform:rotate(180deg) scale(1.08)}}
@media(max-width:760px){.shell{display:block}.grid{grid-template-columns:1fr}.session{min-height:430px}.side{order:2}.app{max-width:620px;margin:auto}}
@media(max-height:820px) and (min-width:761px){.session{min-height:420px}.phase-icon{font-size:2.8rem}.time{font-size:6.5rem;margin:10px 0}.side{padding:13px}.header-actions{position:absolute;right:16px;top:12px}header{position:relative}.tagline{font-size:.82rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.motion-toggle{grid-column:1/-1}.animation-stage[data-animation=still] .orb{opacity:.12}@media(max-height:820px) and (min-width:761px){.animation-stage{width:112px;height:112px}.animation-stage .orb-main{inset:23px}.animation-stage .orb-one{inset:13px}.animation-stage .orb-two{inset:3px}}

/* Resistance band training v0.9.6 */
.app.wide{width:min(1480px,100%)}.bands-screen{display:grid;gap:14px}.exercise-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;padding:5px;background:rgba(4,18,28,.86);border:1px solid #24404d;border-radius:16px;overflow:auto}.exercise-chip{min-width:125px;border:1px solid transparent;background:transparent;color:#eaf6f7;border-radius:12px;padding:5px;cursor:pointer}.exercise-chip.active{border-color:#22c55e;background:rgba(34,197,94,.1)}.exercise-chip .band-figure{width:100%;height:90px}.exercise-chip span{display:block;font-size:.72rem;font-weight:750}.bands-main{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:14px}.band-demo,.band-timer{background:linear-gradient(145deg,rgba(8,25,34,.96),rgba(5,17,25,.96));color:#edf9fa;border-color:#263f4c}.band-demo{padding:18px}.band-demo-head{display:flex;justify-content:space-between;align-items:start}.band-demo-head h2{margin:.15rem 0;font-size:1.55rem}.band-demo-head small{color:#60a5fa}.demo-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.6fr);gap:16px;align-items:center}.band-figure.large{width:100%;height:min(46vh,480px);background:radial-gradient(circle at 50% 40%,rgba(73,105,120,.25),transparent 56%);border-radius:18px}.instruction{padding:15px;border:1px solid #2b4654;border-radius:16px;background:rgba(255,255,255,.03)}.instruction p{line-height:1.5;color:#c8d8dc}.instruction ul{padding-left:1.1rem;line-height:1.8;color:#c8d8dc}.band-timer{padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center}.band-timer>small{letter-spacing:.12em;color:#8fb3bd}.band-timer h2{margin:.3rem 0 1rem}.ring{width:230px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#35e27a var(--p),rgba(53,226,122,.12) 0);position:relative}.ring:before{content:"";position:absolute;inset:13px;background:#071923;border-radius:50%;box-shadow:inset 0 0 25px rgba(53,226,122,.08)}.ring div{position:relative;display:grid}.ring strong{font-size:3.5rem;font-variant-numeric:tabular-nums}.ring span{color:#a7c0c7}.band-timer .controls{margin:18px 0}.round-btn{width:46px;height:46px;border-radius:50%;border:1px solid #247858;background:transparent;color:#45e58a;font-size:1.15rem}.band-meta{width:100%;display:grid;grid-template-columns:1fr 1fr;margin:8px 0 16px;padding:13px;border-radius:12px;background:rgba(255,255,255,.03)}.band-meta span{display:grid;color:#9bb3ba;font-size:.78rem}.band-meta b{color:#fff;font-size:1rem}.next-box{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;text-align:left;border:1px solid #294652;border-radius:12px;padding:12px}.next-box span{font-size:.72rem;color:#9bb3ba}.next-box em{color:#c084fc;font-style:normal;font-size:1.2rem}.band-figure .head,.band-figure .torso{fill:#b9c4ca;stroke:#dfe8eb;stroke-width:2}.band-figure .leg,.band-figure .upper-arm,.band-figure .forearm{fill:none;stroke:#aebbc1;stroke-width:13;stroke-linecap:round;stroke-linejoin:round}.band-figure .joint,.band-figure .elbow,.band-figure .hand{fill:#b9c4ca;stroke:#dfe8eb;stroke-width:1.5}.band-figure .shoulder{fill:#aebbc1}.band-figure .band{fill:none;stroke:#2f9cff;stroke-width:4;stroke-linecap:round}.band-figure .anchor{stroke:#607d8b;stroke-width:8}.band-figure .motion-arrows path{fill:none;stroke:#28a8ff;stroke-width:5;stroke-linecap:round}.band-figure .articulated .shoulder{filter:drop-shadow(0 0 2px rgba(223,232,235,.35))}.band-figure .band-main{filter:drop-shadow(0 0 3px rgba(47,156,255,.45))}
@media(max-width:980px){.bands-main{grid-template-columns:1fr}.band-timer{min-height:500px}.demo-body{grid-template-columns:1fr}.instruction{display:none}.exercise-strip{grid-template-columns:repeat(8,140px)}}@media(max-width:620px){.band-demo{padding:10px}.band-figure.large{height:310px}.ring{width:190px}.ring strong{font-size:2.8rem}.exercise-chip .band-figure{height:72px}.exercise-strip{grid-template-columns:repeat(8,112px)}}

/* Navigation exercise -> home v0.9.8 */
.bands-toolbar{display:flex;align-items:center;gap:12px;min-height:44px}.bands-toolbar strong{color:#dff7ef;font-size:.95rem;letter-spacing:.02em}.home-button{display:inline-flex;align-items:center;gap:7px;border:1px solid #2b6f5a;background:rgba(34,197,94,.08);color:#59e69a;border-radius:12px;padding:9px 13px;font-weight:800;cursor:pointer}.home-button:hover,.home-button:focus-visible{background:rgba(34,197,94,.17);outline:2px solid rgba(89,230,154,.35);outline-offset:2px}.home-bottom{width:100%;margin:-4px 0 8px;background:rgba(255,255,255,.055);border:1px solid #294652;color:#eaf6f7}.home-bottom:hover,.home-bottom:focus-visible{border-color:#45e58a;color:#45e58a}@media(max-width:620px){.bands-toolbar strong{font-size:.8rem}.home-button span{display:none}.home-button{width:42px;height:42px;justify-content:center;padding:0}}
/* LibreInterval v0.9.9 — sélecteur tronc, hanches, jambes et dos */
.rehab-screen{display:grid;gap:14px}.rehab-filter{display:flex;gap:8px;flex-wrap:wrap}.rehab-filter button{border:1px solid var(--line);background:var(--panel);color:var(--text);padding:9px 14px;border-radius:999px;font-weight:800}.rehab-filter button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel));color:var(--accent)}.rehab-tools{display:flex;align-items:center;justify-content:space-between;gap:12px}.rehab-tools>div{display:flex;gap:8px}.rehab-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.rehab-card{position:relative;display:grid;grid-template-rows:160px 1fr;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--panel);cursor:pointer;transition:.18s transform,.18s border-color,.18s box-shadow}.rehab-card:hover{transform:translateY(-2px)}.rehab-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.rehab-card input{position:absolute;z-index:2;right:12px;top:12px;width:24px;height:24px;accent-color:var(--accent)}.rehab-card img{width:100%;height:160px;object-fit:cover;background:#fff;border-bottom:1px solid var(--line)}.rehab-card>div{padding:14px}.rehab-card h3{margin:0 34px 8px 0;font-size:1.05rem}.rehab-card p{margin:9px 0;font-size:.9rem;line-height:1.45;color:var(--muted)}.rehab-card small{display:block;color:var(--text);line-height:1.45}.region-tags{display:flex;gap:5px;flex-wrap:wrap}.region-tags span{font-size:.72rem;border:1px solid var(--line);border-radius:999px;padding:3px 7px;color:var(--accent)}.rehab-startbar{position:sticky;bottom:8px;display:flex;justify-content:center;padding:8px}.rehab-startbar .btn{min-width:min(420px,100%);font-size:1.05rem}.rehab-workout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px}.rehab-demo{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:center}.rehab-demo .band-demo-head{grid-column:1/-1}.rehab-demo>img{width:100%;max-height:500px;object-fit:contain;background:#fff;border-radius:16px}.rehab-demo .instruction{align-self:center}.rehab-demo .instruction p{line-height:1.6}.rehab-demo .instruction p:first-child{font-size:1.05rem}.program-row .program small{white-space:normal}
@media(max-width:1050px){.rehab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rehab-workout{grid-template-columns:1fr}.rehab-demo{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:700px){.rehab-grid{grid-template-columns:1fr}.rehab-tools{align-items:flex-start;flex-direction:column}.rehab-demo{grid-template-columns:1fr}.rehab-demo .instruction{padding-top:0}.rehab-card{grid-template-rows:140px 1fr}.rehab-card img{height:140px}}
