  :root{
    --bg:#0A0B0D; --surface:#14161A; --surface2:#1B1E23; --surface3:#23272D;
    --line:#292D34; --line-strong:#393E47;
    --text:#F5F6F2; --muted:#A5AAB2; --muted2:#767C86;
    --brand:#E7F34B; --brand-ink:#111307;
    --strength:#FF653F; --strength-dim:#57271D;
    --cardio:#39C8B3; --cardio-dim:#183F3A;
    --success:#7FD49A; --disabled:#555B64;
    --accent:var(--brand);
    --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
    --space-6:24px; --space-8:32px; --space-12:48px;
    --radius-sm:10px; --radius-md:14px; --radius-lg:18px;
    --motion-fast:150ms; --motion-base:200ms; --ease-out:cubic-bezier(.2,.8,.2,1);
  }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  html,body{height:100%}
  body{background:var(--bg);color:var(--text);font-family:'Inter',system-ui,sans-serif;font-size:16px;line-height:1.5;overflow-x:hidden}
  .app{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;background:var(--bg);padding-bottom:86px}
  h1,h2,h3,h4,.display{font-family:'Archivo',system-ui,sans-serif}
  .eyebrow{font-family:'Inter';font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
  .muted{color:var(--muted)}

  header.top{height:87px;padding:env(safe-area-inset-top) 20px 0;display:flex;align-items:center;justify-content:space-between}
  .brand{font-family:'Archivo';font-weight:900;font-size:21px;line-height:1;letter-spacing:.01em;color:var(--brand)}
  .brand span,.brand span.b2{color:var(--brand)}
  .tagline{margin-top:7px;font-size:12px;line-height:1;color:#898e92;font-weight:500}

  .view{display:none;padding:0 20px 120px}
  .view.active{display:block;animation:fade var(--motion-base) var(--ease-out)}
  @keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  @keyframes riseIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes pop{0%{opacity:0;transform:scale(.4)}60%{transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}
  @keyframes pulseT{from{transform:scale(1)}to{transform:scale(1.04)}}
  @keyframes conf{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),330px) rotate(var(--dr))}}
  @keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
  .done-check{animation:pop .55s cubic-bezier(.2,1.4,.4,1) both}
  .done-reveal-1{animation:riseIn 200ms var(--ease-out) 80ms both}
  .done-reveal-2{animation:riseIn 200ms var(--ease-out) 160ms both}
  .done-reveal-3{animation:riseIn 200ms var(--ease-out) 220ms both}
  .ringtime .t.low{color:var(--strength);animation:pulseT .85s ease infinite alternate}
  .confetti{position:absolute;top:32%;width:9px;height:14px;border-radius:2px;pointer-events:none;opacity:0;animation:conf 1.3s ease-out forwards}
  .wt input:focus,.load .lin input:focus{outline:2px solid var(--brand);outline-offset:2px;border-color:var(--brand)}
  .btn{transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion-base) ease,color var(--motion-base) ease}
  .btn-primary:active{filter:brightness(1.06)}
  .section-title{font-family:'Archivo';font-weight:800;font-size:30px;line-height:1.08;letter-spacing:-.025em;margin:var(--space-4) var(--space-1) var(--space-2);text-transform:none}
  .section-sub{color:var(--muted);font-size:14px;margin:0 var(--space-1) var(--space-6)}

  .weekstrip{display:flex;gap:7px;padding:4px 4px 20px}
  .day{flex:1;background:var(--surface);border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-1);text-align:center}
  .day .dn{font-family:'Inter';font-weight:600;font-size:12px;color:var(--muted);letter-spacing:.03em}
  .day .dot{width:8px;height:8px;border-radius:50%;margin:7px auto 0;background:var(--muted2)}
  .day.m .dot{background:var(--strength)} .day.c .dot{background:var(--cardio)}
  .day.rest{opacity:.5}
  .day .dl{font-size:12px;color:var(--muted);margin-top:var(--space-1);font-weight:500}

  .card{background:var(--surface);border:1px solid transparent;border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-3);min-height:44px;cursor:pointer;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion-base) ease,border-color var(--motion-base) ease;position:relative;overflow:hidden}
  .card:hover{background:var(--surface2);border-color:var(--line)}
  .card:active{transform:scale(.985)}
  .card .rail{position:absolute;left:0;top:0;bottom:0;width:5px}
  .card.strength .rail{background:var(--strength)} .card.cardio .rail{background:var(--cardio)}
  .card .kh{display:flex;align-items:center;justify-content:space-between}
  .card h3{font-weight:800;font-size:19px;line-height:1.2;text-transform:none;letter-spacing:-.01em}
  .card.strength h3 .k,.card.strength .eyebrow{color:var(--strength)}
  .card.cardio h3 .k,.card.cardio .eyebrow{color:var(--cardio)}
  .card .meta{color:var(--muted);font-size:14px;margin-top:var(--space-2)}
  .chev{color:var(--muted2);font-size:22px;font-family:'Archivo';font-weight:800}
  .pillrow{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-4)}
  .pill{font-size:12px;font-weight:600;color:var(--muted);background:var(--surface2);border:1px solid transparent;padding:6px 10px;border-radius:999px}
  .equip{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}
  .equip-l{font-family:'Inter';font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:2px}
  .spider{background:var(--surface);border-color:transparent}
  .spider .rail{background:var(--strength)}
  .badge{position:absolute;top:var(--space-4);right:var(--space-4);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:none;color:var(--strength);background:var(--strength-dim);border:none;border-radius:999px;padding:4px 8px;font-family:'Inter'}

  .runner{position:fixed;inset:0;height:100vh;height:100dvh;background:var(--bg);z-index:50;display:none;flex-direction:column;max-width:480px;margin:0 auto}
  .runner.active{display:flex}
  .runner-top{padding:calc(18px + env(safe-area-inset-top)) 20px 10px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
  .rtitle{font-family:'Archivo';font-weight:700;font-size:14px;letter-spacing:0;text-transform:none}
  .rtitle .k{color:var(--strength)}
  .xbtn{width:44px;height:44px;background:none;border:none;color:var(--muted);font-size:26px;line-height:1;cursor:pointer;font-family:'Archivo'}
  .progress{height:4px;background:var(--surface2);border-radius:999px;margin:0 var(--space-6);flex-shrink:0}
  .progress i{display:block;height:100%;background:var(--strength);border-radius:999px;width:0;transition:width var(--motion-base) var(--ease-out)}
  .stage{flex:1;display:flex;flex-direction:column;justify-content:center;padding:20px 24px;position:relative;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
  @media(max-height:750px){.stage{justify-content:flex-start}}
  .exlabel{font-family:'Inter';font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--strength)}
  .exname{font-family:'Archivo';font-weight:800;font-size:32px;line-height:1.05;text-transform:none;margin:var(--space-2) 0 var(--space-1);letter-spacing:-.025em}
  .exnote{color:var(--muted);font-size:15px;margin-top:var(--space-2);max-width:36ch}
  .bigreps{display:flex;align-items:flex-end;gap:16px;margin:26px 0 8px}
  .bigreps .n{font-family:'Archivo';font-weight:900;font-size:72px;line-height:.85;font-variant-numeric:tabular-nums}
  .bigreps .u{font-size:13px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding-bottom:8px}
  .setdots{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
  .setdots b{width:34px;height:5px;border-radius:4px;background:var(--surface2)}
  .setdots b.done{background:var(--strength)} .setdots b.cur{background:var(--text)}
  .rest-stage{align-items:center;text-align:center}
  .ringwrap{position:relative;width:250px;height:250px;margin:6px auto 10px}
  .ringwrap svg{transform:rotate(-90deg)}
  .ring-bg{fill:none;stroke:var(--surface2);stroke-width:12}
  .ring-fg{fill:none;stroke:var(--strength);stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset .95s linear}
  .ringtime{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
  .ringtime .t{font-family:'Archivo';font-weight:900;font-size:60px;line-height:1;font-variant-numeric:tabular-nums}
  .ringtime .l{font-family:'Inter';font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:var(--space-1)}
  .nextup{color:var(--muted);font-size:13px;margin-top:6px}
  .nextup b{color:var(--text);font-weight:600}
  .controls{padding:var(--space-3) var(--space-6) calc(var(--space-6) + env(safe-area-inset-bottom));flex-shrink:0}
  .btn{width:100%;min-height:56px;border:none;border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);font-family:'Inter';font-weight:700;font-size:16px;letter-spacing:0;text-transform:none;cursor:pointer;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion-base) ease,color var(--motion-base) ease}
  .btn:active{transform:scale(.98)}
  .btn-primary{background:var(--strength);color:#190B07}
  .btn-ghost{background:var(--surface2);color:var(--text);border:1px solid transparent}
  .btn:focus-visible,.nav button:focus-visible,.xbtn:focus-visible,.subnav button:focus-visible,.settings-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
  .btn-row{display:flex;gap:10px;margin-top:10px}
  .btn-row .btn{padding:14px;font-size:13px}
  .done-stage{text-align:center;align-items:center}
  .done-check{font-family:'Archivo';font-weight:900;font-size:70px;color:var(--strength);line-height:1}
  .done-h{font-family:'Archivo';font-weight:800;font-size:30px;text-transform:none;margin-top:var(--space-3)}
  .done-stats{display:flex;gap:26px;margin:24px auto 0;justify-content:center}
  .done-stats div{text-align:center}
  .done-stats .v{font-family:'Archivo';font-weight:900;font-size:26px}
  .done-stats .k{font-size:12px;color:var(--muted);text-transform:none;letter-spacing:0;margin-top:var(--space-1)}
  .runner.cardio .rtitle .k,.runner.cardio .exlabel{color:var(--cardio)}
  .runner.cardio .ring-fg{stroke:var(--cardio)}
  .runner.cardio .btn-primary{background:var(--cardio)}
  .runner.cardio .setdots b.done,.runner.cardio .progress i{background:var(--cardio)}
  /* amrap */
  .am-timer{font-family:'Archivo';font-weight:900;font-size:76px;line-height:1;font-variant-numeric:tabular-nums;text-align:center;margin:8px 0 4px}
  .am-moves{display:flex;flex-direction:column;gap:8px;margin:8px auto 16px;max-width:280px}
  .am-move{background:var(--surface2);border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:15px;text-align:left}
  .am-move b{font-family:'Archivo';font-weight:900;color:var(--strength);margin-right:8px}
  .am-round{text-align:center;color:var(--muted);font-size:14px}
  .am-round span{font-family:'Archivo';font-weight:900;font-size:22px;color:var(--text)}

  .wk{display:flex;align-items:center;gap:var(--space-3);background:var(--surface);border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-2)}
  .wk.cut{border-color:var(--cardio-dim)}
  .wk .no{font-family:'Archivo';font-weight:900;font-size:16px;width:34px;color:var(--cardio)}
  .wk .runs{flex:1;display:flex;gap:16px}
  .wk .runs div .k{font-size:12px;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:600}
  .wk .runs div .v{font-family:'Archivo';font-weight:700;font-size:15px}
  .wk .tag{font-size:12px;font-weight:700;color:var(--cardio);background:var(--cardio-dim);border:none;border-radius:999px;padding:4px 8px;text-transform:none;letter-spacing:0}
  .wk.goal{background:var(--surface2);border-color:var(--cardio)}
  .wk.goal .runs .v{color:var(--cardio)}

  .subnav{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 14px;-webkit-overflow-scrolling:touch}
  .subnav::-webkit-scrollbar{display:none}
  .subnav button{min-height:44px;white-space:nowrap;background:var(--surface);border:1px solid transparent;color:var(--muted);font-family:'Inter';font-weight:600;font-size:13px;padding:var(--space-2) var(--space-4);border-radius:999px;cursor:pointer;transition:background-color var(--motion-base) ease,color var(--motion-base) ease}
  .subnav button.active{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
  .card2{background:var(--surface);border:1px solid transparent;border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-3)}
  .card2 .eyebrow{display:block;margin-bottom:12px}
  .menu-block{margin-bottom:12px}
  .menu-h{font-family:'Inter';font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:none;color:var(--muted);margin-bottom:var(--space-2)}
  .menu-item{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:9px 11px;background:var(--surface2);border:1px solid var(--line);border-radius:10px;margin-bottom:5px;font-size:13.5px;cursor:pointer}
  .menu-item span{color:var(--muted2);font-family:'Archivo';font-weight:800}
  .shop-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 2px;font-size:14px;border-bottom:1px solid var(--line);cursor:pointer}
  .shop-item .cb{width:20px;height:20px;border:1.5px solid var(--muted2);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--strength);flex-shrink:0}
  .shop-item.on{color:var(--muted2);text-decoration:line-through}
  .shop-item.on .cb{border-color:var(--strength)}
  .shop-note{font-size:13px;color:var(--muted);margin-top:var(--space-3);line-height:1.5}
  .macro{display:flex;gap:10px;margin-bottom:14px}
  .macro div{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px;text-align:center}
  .macro .v{font-family:'Archivo';font-weight:900;font-size:22px;color:var(--strength)}
  .macro .k{font-size:12px;color:var(--muted);margin-top:var(--space-1)}
  .science{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);margin:0 0 var(--space-4);font-size:13px;color:var(--muted)}
  .science b{color:var(--text);font-family:'Inter';font-weight:700;font-size:13px;letter-spacing:0;text-transform:none;display:block;margin-bottom:var(--space-2)}
  .rgroup{font-family:'Archivo';font-weight:700;font-size:18px;letter-spacing:-.01em;text-transform:none;color:var(--text);margin:var(--space-8) var(--space-1) var(--space-3)}
  .recipe{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:15px;margin-bottom:11px}
  .recipe .rhead{display:flex;justify-content:space-between;align-items:flex-start;min-height:44px;cursor:pointer;transition:opacity var(--motion-fast) ease}
  .recipe .rhead:active{opacity:.75}
  .recipe h4{font-weight:700;font-size:18px;text-transform:none;letter-spacing:-.01em;max-width:24ch}
  .recipe .meal{font-size:12px;font-weight:700;color:var(--strength);letter-spacing:.04em;text-transform:none}
  .chev2{color:var(--muted2);font-family:'Archivo';font-weight:800;font-size:16px}
  .recipe .rmeta{display:flex;gap:7px;margin:10px 0 0;flex-wrap:wrap}
  .recipe .rmeta span{font-size:12px;font-weight:600;color:var(--muted);background:var(--surface2);padding:var(--space-1) var(--space-2);border-radius:999px}
  .recipe .body{display:none;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
  .recipe .body.open{display:block}
  .recipe .body b{font-family:'Inter';font-size:13px;letter-spacing:0;text-transform:none;color:var(--text);display:block;margin-bottom:var(--space-2)}
  .recipe .body ul{list-style:none;font-size:14px;margin-bottom:var(--space-3)}
  .recipe .body li{padding:3px 0}
  .recipe .body ol{margin-left:var(--space-4);font-size:14px;color:var(--muted)}
  .recipe .body ol li{padding:3px 0}

  .wt{display:flex;align-items:center;justify-content:center;gap:10px;margin:8px 0 2px}
  .wt input{width:96px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);font-family:'Archivo';font-weight:800;font-size:28px;text-align:center;padding:var(--space-2) var(--space-1)}
  .wtu{font-family:'Archivo';font-weight:800;color:var(--muted);font-size:13px}
  .wtb{width:46px;height:46px;border-radius:12px;border:1px solid var(--line);background:var(--surface2);color:var(--text);font-family:'Archivo';font-weight:900;font-size:22px;cursor:pointer}
  .wtb:active{transform:scale(.94)}
  .load{background:var(--surface);border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-2)}
  .load .lh{display:flex;justify-content:space-between;align-items:center;gap:8px}
  .load .ln{font-family:'Archivo';font-weight:700;font-size:17px;text-transform:none;letter-spacing:-.01em}
  .load .lw{font-family:'Archivo';font-weight:900;font-size:23px;white-space:nowrap}
  .load .lw small{font-size:12px;color:var(--muted);font-weight:600}
  .load .delta{font-size:12px;margin-left:8px}
  .load .up{color:var(--cardio)} .load .down{color:var(--strength)} .load .same{color:var(--muted2)}
  .load .lhist{font-size:13px;color:var(--muted);margin-top:var(--space-2)}
  .load .lin{display:flex;align-items:center;gap:8px;margin-top:10px}
  .load .lin input{flex:1;min-width:0;min-height:44px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);padding:var(--space-3);font-size:16px}
  .load .lin button{min-width:44px;min-height:44px;background:var(--strength);color:#140a06;border:none;border-radius:10px;padding:9px 16px;font-family:'Archivo';font-weight:800;font-size:13px;cursor:pointer;transition:transform var(--motion-fast) var(--ease-out)}
  .load .lin button:active{transform:scale(.95)}
  .nav{position:fixed;bottom:14px;left:20px;right:20px;z-index:40;max-width:440px;margin:0 auto;background:#101212;border:1px solid #292d2d;border-radius:24px;display:flex;padding:7px 8px calc(7px + env(safe-area-inset-bottom));overflow:hidden}
  .nav button{flex:1;min-width:44px;min-height:49px;background:none;border:none;color:var(--muted2);font-family:'Inter';font-weight:600;font-size:10px;letter-spacing:0;text-transform:none;cursor:pointer;padding:var(--space-1) 0;display:flex;flex-direction:column;align-items:center;gap:3px;transition:color var(--motion-fast) ease,background-color var(--motion-fast) ease,transform var(--motion-fast) var(--ease-out)}
  .nav button:active{transform:scale(.94)}
  .nav button .ic{width:22px;height:22px;line-height:1;display:grid;place-items:center;transition:transform var(--motion-fast) var(--ease-out)}
  .nav button.active .ic{transform:translateY(-1px)}
  .nav button .ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .nav button.active,.nav button.active.cnav{border-radius:15px;background:#1b2505;color:var(--brand)}

  /* Accueil — concept mobile approuvé */
  #v-home{padding:0 20px 120px}
  .home-header{display:none}
  .home-wordmark{font-family:'Archivo';font-size:21px;font-weight:900;line-height:1;letter-spacing:.01em;color:var(--brand)}
  .home-date{margin-top:7px;color:#898e92;font-size:12px;line-height:1}
  .settings-btn{width:44px;height:44px;display:grid;place-items:center;border:1px solid #2b2f31;border-radius:50%;background:#121516;color:#d9dcda;cursor:pointer}
  .settings-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .today-hero{min-height:360px;padding:27px 21px 20px;background:#111313;border:1px solid #292c2d;border-radius:26px;display:flex;flex-direction:column}
  .hero-topline{display:flex;align-items:center;justify-content:space-between;gap:16px}
  .today-label{font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--brand)}
  .today-badge{padding:5px 10px;border-radius:999px;background:#25150d;color:#ff7b32;font-size:12px;font-weight:700}
  .today-title{margin-top:17px;font-family:'Archivo';font-size:46px;font-weight:900;line-height:.91;letter-spacing:-.045em;text-transform:uppercase}
  .today-copy{max-width:31ch;margin-top:20px;color:#959a9a;font-size:14px;line-height:1.45}
  .today-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin-top:18px}
  .today-metric:nth-child(2){text-align:center}.today-metric:last-child{text-align:right}
  .today-metric strong{display:block;font-family:'Archivo';font-size:25px;font-weight:800;line-height:1;color:#f2f3ef}
  .today-metric span{display:block;margin-top:5px;color:#7b8080;font-size:10px;letter-spacing:.06em;text-transform:uppercase}
  .today-cta{width:100%;height:52px;margin-top:18px;padding:0 18px;border:0;border-radius:18px;background:var(--brand);color:#101200;font-family:'Inter';font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:transform var(--motion-fast) var(--ease-out),filter var(--motion-fast) ease}
  .today-cta:active{transform:scale(.985);filter:brightness(.94)}
  .today-cta svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .home-section{margin-top:23px}
  .home-section-head{display:flex;align-items:baseline;justify-content:space-between}
  .home-section-head h3{font-family:'Inter';font-size:16px;font-weight:700;letter-spacing:-.01em}
  .home-section-head span{color:#858a8b;font-size:13px}
  #v-home .weekstrip{display:flex;gap:0;padding:15px 0 0}
  #v-home .day{padding:0;background:none;border:0;border-radius:0}
  #v-home .day .dn{font-size:11px;font-weight:500;color:#686d6e}
  #v-home .day .dot{width:10px;height:10px;margin:9px auto 0;background:transparent;border:1px solid #343839}
  #v-home .day.m .dot{background:var(--strength);border-color:var(--strength)}
  #v-home .day.c .dot{background:var(--cardio);border-color:var(--cardio)}
  #v-home .day.current .dn{color:var(--text);font-weight:700}
  #v-home .day.current .dot{width:16px;height:16px;margin-top:6px;background:transparent;border:2px solid var(--brand)}
  #v-home .day .dl{display:none}
  .home-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:19px}
  .home-stat{height:70px;padding:14px;background:#101212;border-radius:16px}
  .home-stat strong{display:block;font-family:'Archivo';font-size:23px;font-weight:800;line-height:1}
  .home-stat span{display:block;margin-top:7px;color:#777c7d;font-size:10px}
  .home-forge{display:grid;grid-template-columns:1fr auto;align-items:end;gap:20px;margin-top:18px;padding:16px 2px 0;border-top:1px solid #242727}
  .home-forge-label{color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.07em}.home-forge-value{margin-top:3px;font-family:'Archivo';font-size:18px;font-weight:900}.home-forge-bar,.forge-bar{height:3px;margin-top:9px;background:#242727;overflow:hidden}.home-forge-bar i,.forge-bar i{display:block;height:100%;background:var(--brand)}
  .home-streak{text-align:right}.home-streak strong{display:block;font-family:'Archivo';font-size:21px}.home-streak span{color:var(--muted);font-size:10px}
  .week-count{font-family:'Archivo';font-size:36px;font-weight:900;letter-spacing:-.04em;color:var(--text);line-height:1}
  .week-track{height:2px;background:#242727;border-radius:1px;margin-top:14px;overflow:hidden}
  .week-fill{height:100%;background:var(--brand);border-radius:1px;transition:width 180ms ease}
  @media(prefers-reduced-motion:reduce){.week-fill{transition:none}}
  .week-obj-label{margin-top:20px;font-size:11px;font-weight:800;letter-spacing:.07em;color:var(--muted);text-transform:uppercase}
  .wfr{display:flex;align-items:center;gap:14px;width:100%;min-height:44px;padding:8px 0;border:0;border-bottom:1px solid #1d2020;background:none;cursor:pointer;text-align:left;transition:transform var(--motion-fast) var(--ease-out)}
  .wfr:active{transform:scale(.985)}
  .wfr:last-child{border-bottom:0}
  .wfr-status{width:20px;height:20px;flex:0 0 20px;display:flex;align-items:center;justify-content:center}
  .wfr-status svg{width:16px;height:16px;fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .wfr-circle{width:14px;height:14px;border-radius:50%;border:1.5px solid #3a3f40;display:block}
  .wfr-day{font-family:'Inter';font-size:11px;font-weight:700;letter-spacing:.06em;min-width:34px;color:var(--muted)}
  .wfr-label{flex:1;font-family:'Inter';font-size:15px;font-weight:600;color:var(--text)}
  .wfr.wfr-strength .wfr-day{color:var(--strength)}
  .wfr.wfr-run .wfr-day{color:var(--cardio)}
  .wfr.done .wfr-day,.wfr.done .wfr-label{color:#5a5f60}
  .week-msg{margin:12px 0 0;font-size:13px;color:var(--muted);line-height:1.5}
  .home-stats-2{grid-template-columns:repeat(2,1fr)}
  .week-plan-link{margin-top:16px;padding:16px 0 0;background:none;border:0;border-top:1px solid #242727;width:100%;text-align:left;cursor:pointer;font-family:'Inter';font-size:14px;font-weight:600;color:#5a6363;display:block}
  .week-plan-link:active{color:var(--text)}
  .upcoming{margin-top:23px}
  .upcoming h3{font-family:'Inter';font-size:16px;font-weight:700}
  .upcoming-row{min-height:72px;margin-top:10px;border-top:1px solid #2a2d2e;border-bottom:1px solid #2a2d2e;display:flex;align-items:center;gap:12px;cursor:pointer;transition:transform var(--motion-fast) var(--ease-out)}
  .upcoming-row:active{transform:scale(.985)}
  .upcoming-icon{width:40px;height:40px;flex:0 0 40px;border-radius:14px;background:#073234;color:var(--cardio);display:grid;place-items:center}
  .upcoming-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .upcoming-text{flex:1}.upcoming-text strong{display:block;font-size:14px}.upcoming-text span{display:block;margin-top:2px;color:#777c7d;font-size:12px}
  .upcoming-arrow{color:#777c7d;font-size:22px}
  .all-workouts{margin-top:14px;border-top:1px solid #242727}
  .all-workouts summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;list-style:none;color:#a6aaaa;font-size:13px;cursor:pointer}
  .all-workouts summary::-webkit-details-marker{display:none}
  .all-workouts[open] summary{color:var(--text)}
  .all-workouts-content{padding-top:8px}
  .nav-label-default{display:none}.nav-label-home{display:inline}

  /* Progrès — même langage visuel que l'accueil */
  #v-charges{padding:0 20px 120px}
  .progress-header{height:87px;display:flex;align-items:center;justify-content:space-between;padding-top:env(safe-area-inset-top)}
  .progress-kicker{font-size:12px;font-weight:700;letter-spacing:.05em;color:var(--brand);text-transform:uppercase}
  .progress-title{margin-top:4px;font-family:'Archivo';font-size:34px;font-weight:900;line-height:1;letter-spacing:-.035em}
  .progress-intro{max-width:34ch;margin:3px 0 27px;color:#8b9091;font-size:14px;line-height:1.5}
  .progress-list{border-top:1px solid #292c2d}
  #v-charges .load{margin:0;padding:22px 0 20px;background:transparent;border:0;border-bottom:1px solid #292c2d;border-radius:0}
  #v-charges .load .lh{align-items:flex-start}
  #v-charges .load .ln{max-width:62%;font-family:'Inter';font-size:15px;font-weight:700;line-height:1.25;letter-spacing:0}
  #v-charges .load .lw{font-size:30px;line-height:.9;text-align:right}
  #v-charges .load .lw small{font-family:'Inter';font-size:12px}
  #v-charges .load .delta{display:block;margin:7px 0 0;font-family:'Inter';font-size:12px;font-weight:700}
  #v-charges .load .lhist{margin-top:15px;color:#858a8b;font-size:12px;line-height:1.5}
  .load-empty{margin-top:12px;color:#767b7c;font-size:13px}
  .load-entry{margin-top:14px}
  .load-entry summary{width:max-content;min-height:36px;display:flex;align-items:center;gap:7px;list-style:none;color:var(--brand);font-size:12px;font-weight:700;cursor:pointer}
  .load-entry summary::-webkit-details-marker{display:none}
  .load-entry summary::before{content:'＋';font-size:16px;font-weight:400}
  .load-entry[open] summary::before{content:'−'}
  #v-charges .load .lin{margin-top:10px}
  #v-charges .load .lin button{background:var(--brand);color:var(--brand-ink);font-family:'Inter';font-weight:800}
  /* Détail du planning */
  #v-day{padding:0 20px 120px}
  .day-detail-head{min-height:88px;display:flex;align-items:center;gap:14px;padding-top:env(safe-area-inset-top)}
  .back-btn{width:44px;height:44px;flex:0 0 44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text);font-size:24px;cursor:pointer}
.day-detail-kicker{font-size:12px;font-weight:800;letter-spacing:.07em;color:var(--brand)}
  .detail-weekstrip{display:flex;margin:4px 0 24px}.detail-weekstrip button{flex:1;min-height:44px;border:0;background:none;color:var(--muted2);font-size:11px;cursor:pointer}.detail-weekstrip button.selected{color:var(--brand);font-weight:800;border-bottom:2px solid var(--brand)}
  .day-detail-title{margin-top:22px;font-family:'Archivo';font-size:42px;font-weight:900;line-height:.94;letter-spacing:-.045em;text-transform:uppercase}
  .day-detail-focus{margin-top:12px;color:var(--strength);font-family:'Archivo';font-size:20px;font-weight:800}
  .day-detail-copy{max-width:34ch;margin-top:16px;color:var(--muted);font-size:15px}
  .day-detail-metrics{display:flex;gap:28px;margin:28px 0}
  .day-detail-metrics strong{display:block;font-family:'Archivo';font-size:26px;line-height:1}.day-detail-metrics span{font-size:11px;color:var(--muted);text-transform:uppercase}
  .day-exercises{border-top:1px solid var(--line);margin:30px 0 22px}
  .day-exercise{display:flex;align-items:baseline;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
  .day-exercise b{width:22px;color:var(--muted2);font-family:'Archivo';font-size:12px}.day-exercise span{font-weight:650}.day-exercise small{margin-left:auto;color:var(--muted);font-size:12px}
  .day-detail-run{color:var(--cardio)}
  /* Runner REFORGE */
  .runner-top{padding:calc(22px + env(safe-area-inset-top)) 22px 12px}.rtitle{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
  .progress{height:2px;margin:0 22px}.stage{justify-content:flex-start;padding:52px 22px 24px}.exlabel{font-size:12px;letter-spacing:.09em}
  .exname{max-width:10ch;margin:13px 0 9px;font-size:42px;line-height:.92;text-transform:uppercase}
  .exnote{font-size:14px}.bigreps{justify-content:center;align-items:center;margin:42px 0 18px}.bigreps .n{font-size:88px}.bigreps .u{padding:0;font-size:14px}
  .set-context{margin-top:24px;color:var(--muted);font-size:13px}.set-context strong{display:block;margin-top:5px;color:var(--text);font-size:16px}.set-context span{display:block;margin-top:6px;font-size:11px}
  .load-rec{margin:12px 0 4px;padding:11px 13px;background:var(--surface2);border-radius:12px;border-left:3px solid var(--muted2)}.load-rec.rec-increase{border-left-color:var(--cardio)}.load-rec.rec-hold{border-left-color:var(--muted2)}.load-rec.rec-decrease{border-left-color:var(--strength)}.load-rec-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.load-rec-main{font-family:'Archivo';font-weight:800;font-size:15px}.load-rec-reason{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.4}.load-rec-apply{margin-top:8px;padding:6px 13px;background:transparent;border:1px solid var(--brand);border-radius:8px;color:var(--brand);font-family:'Inter';font-size:12px;font-weight:700;cursor:pointer;min-height:36px;transition:transform var(--motion-fast) var(--ease-out)}.load-rec-apply:active{transform:scale(.96)}
  .rir-selector{margin:12px 0 6px}.rir-label{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px}.rir-pills{display:flex;gap:6px;flex-wrap:wrap}.rir-pill{min-width:44px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface2);color:var(--muted);font-family:'Archivo';font-size:13px;font-weight:700;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.rir-pill.active{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.rir-hint{font-size:11px;color:var(--muted2);margin-top:5px}
  .rep-entry{display:flex;align-items:center;gap:10px;margin:14px 0}.rep-entry input{width:112px;min-height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface2);color:var(--text);padding:8px 12px;font-family:'Archivo';font-size:22px}.rep-entry span{color:var(--muted);font-size:12px}
  .wt{display:grid;grid-template-columns:56px 1fr 56px;gap:12px;margin:20px 0 10px}.wt input{width:100%;height:84px;font-size:40px}.wtb{width:56px;height:56px;align-self:center}
  .runner .btn-primary{background:var(--brand);color:var(--brand-ink);min-height:60px;border-radius:18px;text-transform:uppercase;letter-spacing:.03em}
  .runner .controls{padding:12px 22px calc(22px + env(safe-area-inset-bottom))}.rest-stage{justify-content:flex-start;padding-top:36px!important}
  .rest-stage .ringwrap{width:auto;height:auto;margin:44px auto 30px}.rest-stage .ringwrap svg{position:absolute;width:1px;height:1px;opacity:0}.rest-stage .ringtime{position:static}.rest-stage .ringtime .t{font-size:86px}.done-stage{justify-content:center!important}.done-h{font-size:38px;line-height:.95;text-transform:uppercase}
  .wtb{font-family:'Inter';font-size:11px;font-weight:800}
  .resume-overlay{position:fixed;inset:0;z-index:80;display:none;align-items:flex-end;background:rgba(0,0,0,.78)}.resume-overlay.active{display:flex}
  .resume-overlay.active .resume-sheet{animation:slideUp var(--motion-base) var(--ease-out) both}
  .resume-sheet{width:min(100%,480px);margin:0 auto;padding:30px 22px calc(24px + env(safe-area-inset-bottom));background:#111313;border-top:1px solid var(--line);border-radius:26px 26px 0 0}
  .resume-sheet h2{font-size:30px;line-height:1}.resume-sheet p{margin:12px 0 24px;color:var(--muted)}
  .day.state-done .dot{background:var(--brand)!important;border-color:var(--brand)!important}.day.state-missed .dot{border-color:var(--strength)!important}.day.state-rest .dot{width:5px!important;height:5px!important;margin-top:11px!important;background:var(--muted2)!important;border:0!important}
  .day.selected .dn{color:var(--brand)!important}.day.selected .dot{outline:2px solid var(--brand);outline-offset:3px}
  .forge-dashboard{margin-bottom:34px}.forge-level{padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .forge-level-no{font-family:'Archivo';font-size:64px;font-weight:900;line-height:.9}.forge-level-xp{margin-top:10px;color:var(--muted);font-size:13px}
  .forge-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin-top:24px}.forge-grid>div{background:var(--bg);padding:18px 12px 18px 0}.forge-grid strong{display:block;font-family:'Archivo';font-size:25px}.forge-grid span{color:var(--muted);font-size:11px}
  .forge-block{padding:24px 0;border-bottom:1px solid var(--line)}.forge-block-head{display:flex;justify-content:space-between;align-items:baseline}.forge-block h3{font-size:17px}.forge-block-head span{color:var(--muted);font-size:12px}
  .quest{padding:16px 0;border-bottom:1px solid #202324}.quest:last-child{border:0}.quest-k{color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.06em}.quest p{margin-top:4px;font-size:14px}.quest-progress{margin-top:7px;color:var(--muted);font-size:12px}
  .badge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}.achievement{min-height:116px;padding:14px;background:#101212;border:1px solid transparent;border-radius:14px}.achievement.locked{opacity:.38}.achievement.unlocked{border-color:#363b24}.achievement-rarity{font-size:9px;color:var(--brand);letter-spacing:.08em}.achievement strong{display:block;margin-top:14px;font-family:'Archivo';font-size:13px;line-height:1.05}.achievement p{margin-top:6px;color:var(--muted);font-size:10px;line-height:1.35}
  .record-row,.history-row{padding:14px 0;border-bottom:1px solid #202324}.record-row strong,.history-row strong{display:block;font-size:13px}.record-row span,.history-row span{color:var(--muted);font-size:11px}
  .session-reward{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.session-reward strong{display:block;color:var(--brand);font-family:'Archivo';font-size:24px}
  .celebration-overlay{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:24px;background:rgba(6,7,7,.96)}.celebration-overlay.active{display:grid;animation:forgeFlash .55s ease}.celebration-card{text-align:center}
  .celebration-overlay.active .celebration-card{animation:riseIn 250ms var(--ease-out) 60ms both}.celebration-k{color:var(--brand);font-size:12px;font-weight:800;letter-spacing:.12em}.celebration-main{margin:22px 0 8px;font-family:'Archivo';font-size:62px;font-weight:900;line-height:.85;text-transform:uppercase;text-shadow:0 0 32px rgba(231,243,75,.18)}.celebration-copy{color:var(--muted);font-size:14px}.celebration-card .btn{margin-top:36px;min-width:260px}.celebration-mascot{display:none;width:88px;height:88px;margin:20px auto 0;image-rendering:pixelated;image-rendering:crisp-edges;pointer-events:none}.celebration-mascot.active{display:block}@keyframes forgeFlash{0%{box-shadow:inset 0 0 0 rgba(231,243,75,0)}35%{box-shadow:inset 0 0 90px rgba(231,243,75,.15)}100%{box-shadow:inset 0 0 0 rgba(231,243,75,0)}}
  .screen-title{margin:13px 0 8px;font-family:'Archivo';font-size:34px;font-weight:900;line-height:.95;letter-spacing:-.04em;text-transform:uppercase}.screen-lead{max-width:35ch;margin-bottom:26px;color:var(--muted);font-size:14px}
  #v-cuisine .section-title,#v-course .section-title,#v-charges .progress-header{display:none}
  #v-cuisine .section-sub,#v-course .section-sub{margin:0 0 24px;color:var(--muted);font-size:14px}
  #v-cuisine .subnav{gap:0;padding:0 0 18px;border-bottom:1px solid var(--line)}#v-cuisine .subnav button{min-width:54px;padding:8px 10px;background:transparent;border:0;border-radius:0;font-size:12px}#v-cuisine .subnav button.active{color:var(--brand);border-bottom:2px solid var(--brand)}
  #v-cuisine .card2{padding:0;background:transparent;border:0;border-radius:0}#v-cuisine .card2>.eyebrow{margin:24px 0 12px;font-size:12px}
  #v-cuisine .menu-block{margin:0 0 24px}#v-cuisine .menu-h{margin-bottom:4px;color:var(--text);font-family:'Archivo';font-size:18px;font-weight:800}#v-cuisine .menu-item{min-height:50px;margin:0;padding:12px 0;background:transparent;border:0;border-bottom:1px solid #242727;border-radius:0;font-size:14px}
  #v-cuisine .shop-item{min-height:50px;padding:12px 0}#v-cuisine .recipe{margin:0;padding:17px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}#v-cuisine .recipe .rhead{align-items:center}#v-cuisine .recipe .body{border-color:#242727}
  #v-cuisine .recipe .rmeta{gap:12px}#v-cuisine .recipe .rmeta span{padding:0;background:transparent;border-radius:0;font-size:11px}#v-cuisine .science{padding:16px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}
  #v-cuisine .macro{margin-top:18px}#v-cuisine .macro div{padding:12px 4px;background:transparent;border:0;border-right:1px solid var(--line);border-radius:0}#v-cuisine .macro div:last-child{border-right:0}
  .plan-hero{margin:16px 0 25px;padding:26px 21px;background:#111313;border:1px solid #292c2d;border-radius:26px}.plan-hero .eyebrow{color:var(--cardio)}.plan-objective{margin-top:12px;font-family:'Archivo';font-size:52px;font-weight:900;line-height:.9}.plan-objective small{display:block;margin-top:8px;color:var(--muted);font-family:'Inter';font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.plan-pair{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:25px;background:var(--line)}.plan-pair>div{padding:14px 12px 4px 0;background:#111313}.plan-pair span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.plan-pair strong{display:block;margin-top:5px;font-family:'Archivo';font-size:18px}.plan-full{margin-top:24px}.plan-full summary{min-height:52px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);list-style:none;color:var(--cardio);font-size:13px;font-weight:700;cursor:pointer}.plan-full summary::-webkit-details-marker{display:none}.plan-full[open] summary{margin-bottom:16px}
  #v-course .wk{margin:0;padding:15px 0;background:transparent;border:0;border-bottom:1px solid #242727;border-radius:0}#v-course .wk.goal{background:transparent;border-bottom-color:var(--cardio)}#v-course .card2,#v-course .science{padding:18px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}
  #v-charges{padding:0 20px 120px}.progress-intro{margin:0 0 24px}.forge-dashboard{margin-bottom:24px}.forge-level{padding:20px 0}.forge-block{padding:20px 0}.badge-grid{gap:8px}.achievement{min-height:108px}.progress-list{margin-top:8px}
  .forge-w{padding:20px 0 18px;border-bottom:1px solid var(--line);margin-bottom:2px}.forge-w-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.forge-w-label{font-family:'Inter';font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.forge-w-count{font-family:'Archivo';font-weight:800;font-size:16px;color:var(--brand)}
  .forge-w-sessions{display:flex;gap:6px;flex-wrap:wrap}.forge-sess{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 8px 9px;border-radius:10px;min-width:58px;flex:1;background:var(--surface);border:1px solid transparent;transition:background var(--motion-base) ease,border-color var(--motion-base) ease}
  .forge-sess-done{background:var(--surface2)}.forge-sess-done.forge-sess-strength{border-color:var(--strength-dim)}.forge-sess-done.forge-sess-cardio{border-color:var(--cardio-dim)}
  .forge-sess-dot{width:8px;height:8px;border-radius:50%;background:var(--muted2)}.forge-sess-done .forge-sess-dot{background:var(--brand)}.forge-sess-done.forge-sess-strength .forge-sess-dot{background:var(--strength)}.forge-sess-done.forge-sess-cardio .forge-sess-dot{background:var(--cardio)}
  .forge-sess-name{font-size:10px;font-weight:600;color:var(--muted);letter-spacing:.02em;text-align:center}.forge-sess-done .forge-sess-name{color:var(--text)}
  .forge-w-obj{margin:2px 0 14px;font-size:12px;color:var(--muted)}.forge-w-ok{margin-top:12px;font-size:13px;font-weight:600;color:var(--brand)}.forge-w-streak{margin-top:11px;font-size:12px;color:var(--muted)}
  .forge-shield-offer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.forge-shield-offer>div{display:flex;align-items:center;gap:10px}.forge-shield-icon{font-size:20px;flex-shrink:0}.forge-shield-offer strong{display:block;font-size:13px;font-weight:700}.forge-shield-offer p{margin-top:2px;font-size:11px;color:var(--muted)}
  .forge-shield-btn{flex-shrink:0;padding:8px 14px;background:var(--brand);color:var(--brand-ink);border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:'Inter';letter-spacing:.04em}.forge-shield-btn:active{filter:brightness(1.08)}
  @media(prefers-reduced-motion:reduce){.forge-sess{transition:none}.celebration-overlay.active{animation:none}}
  @media(max-width:380px){header.top,.view,#v-home,#v-charges{padding-left:16px;padding-right:16px}.nav{left:12px;right:12px}.today-title{font-size:42px}.plan-objective{font-size:48px}}
  /* ===== PROGRÈS — sections réelles ===== */
  .pg-section{border-top:1px solid #292c2d;padding:22px 0 20px}
  .pg-section-title{font-family:'Inter';font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
  .pg-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#242727}
  .pg-stats-grid .pg-stat{background:var(--bg);padding:14px 10px 14px 0}
  .pg-stat-val{font-family:'Archivo';font-weight:900;font-size:22px;line-height:1}
  .pg-stat-k{color:var(--muted);font-size:11px;margin-top:5px}
  .pg-ex-row{display:flex;align-items:center;justify-content:space-between;min-height:60px;padding:14px 0;border-bottom:1px solid #242727;cursor:pointer;transition:transform var(--motion-fast) var(--ease-out)}
  .pg-ex-row:last-of-type{border-bottom:0}
  .pg-ex-row:active{transform:scale(.985)}
  .pg-ex-info{flex:1}
  .pg-ex-name{font-family:'Archivo';font-weight:700;font-size:16px}
  .pg-ex-meta{color:var(--muted);font-size:12px;margin-top:3px}
  .pg-ex-right{display:flex;align-items:center;gap:10px}
  .pg-ex-weight{font-family:'Archivo';font-weight:900;font-size:22px;text-align:right}
  .pg-ex-weight small{font-size:12px;color:var(--muted);font-weight:600}
  .pg-ex-weight span{display:block;font-size:12px;font-weight:700;text-align:right}
  .pg-ex-empty{color:var(--muted2);font-family:'Archivo';font-weight:700;font-size:18px}
  .pg-ex-arrow{color:var(--muted2);font-family:'Archivo';font-weight:800;font-size:22px;padding-left:4px}
  .trend-up{color:#39C8B3}.trend-down{color:#FF653F}.trend-same{color:var(--muted2)}
  .pg-run-stats{display:flex;gap:0;margin-bottom:18px}
  .pg-run-stat{flex:1}
  .pg-run-val{font-family:'Archivo';font-weight:900;font-size:24px}
  .pg-run-k{color:var(--muted);font-size:11px;margin-top:4px}
  .pg-chart-wrap{margin:0 0 18px;padding:8px 0 4px}
  .pg-chart-empty{color:var(--muted2);font-size:13px;margin:0 0 16px}
  .pg-run-row{display:flex;align-items:center;min-height:52px;padding:12px 0;border-bottom:1px solid #242727;cursor:pointer;gap:10px;transition:transform var(--motion-fast) var(--ease-out)}
  .pg-run-row:last-of-type{border-bottom:0}
  .pg-run-row:active{transform:scale(.985)}
  .pg-run-info{flex:1}
  .pg-run-type{font-weight:600;font-size:14px}
  .pg-run-detail{color:var(--muted);font-size:12px;margin-top:3px}
  .pg-hist-row{display:flex;align-items:center;gap:12px;min-height:52px;padding:12px 0;border-bottom:1px solid #242727;cursor:pointer;transition:transform var(--motion-fast) var(--ease-out)}
  .pg-hist-row:last-of-type{border-bottom:0}
  .pg-hist-row:active{transform:scale(.985)}
  .pg-hist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
  .pg-hist-info{flex:1}
  .pg-hist-label{font-weight:600;font-size:14px}
  .pg-hist-detail{color:var(--muted);font-size:12px;margin-top:3px}
  .pg-empty{color:var(--muted2);font-size:14px;padding:14px 0}
  /* Vues détail */
  .pg-detail-header{display:flex;align-items:center;gap:16px;padding:16px 0 20px}
  .pg-back-btn{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text);font-size:24px;cursor:pointer;flex-shrink:0;display:grid;place-items:center}
  .pg-detail-kicker{font-size:11px;font-weight:800;letter-spacing:.07em}
  .pg-detail-title{font-family:'Archivo';font-size:24px;font-weight:900;letter-spacing:-.025em;line-height:1.05;text-transform:uppercase;margin-top:2px;max-width:22ch}
  .pg-detail-perf{padding:18px 0 16px;border-bottom:1px solid #242727}
  .pg-detail-num{font-family:'Archivo';font-weight:900;font-size:52px;line-height:.9}
  .pg-detail-num small{font-size:16px;color:var(--muted);font-weight:600}
  .pg-detail-sub{color:var(--muted);font-size:13px;margin-top:8px}
  .pg-detail-trend{font-size:14px;font-weight:700;margin-top:6px}
  .pg-session-block{padding:14px 0;border-bottom:1px solid #242727}
  .pg-session-block:last-of-type{border-bottom:0}
  .pg-session-head{font-family:'Inter';font-weight:600;font-size:13px;color:var(--muted);margin-bottom:10px}
  .pg-set-row{display:flex;gap:12px;align-items:center;padding:4px 0;font-size:14px}
  .pg-set-n{color:var(--muted2);font-family:'Archivo';font-weight:700;font-size:12px;width:18px}
  .pg-set-wt{font-family:'Archivo';font-weight:800;font-size:16px;width:70px}
  .pg-set-reps{color:var(--muted);font-size:13px}
  .pg-set-rir{color:var(--muted2);font-size:11px;margin-left:auto}
  .pg-next-load{margin-top:20px;padding:12px 14px;background:var(--surface2);border-radius:12px;border-left:3px solid var(--muted2)}.pg-next-load.rec-increase{border-left-color:var(--cardio)}.pg-next-load.rec-hold{border-left-color:var(--muted2)}.pg-next-load.rec-decrease{border-left-color:var(--strength)}.pg-next-load-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.pg-next-load-val{font-family:'Archivo';font-weight:800;font-size:16px}.pg-next-load-reason{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.4}
  .pg-session-meta{color:var(--muted);font-size:13px;padding:8px 0 16px;border-bottom:1px solid #242727}
  .pg-run-summary{display:flex;gap:0;padding:18px 0;border-bottom:1px solid #242727}
  .pg-run-metric{flex:1}
  .pg-run-big{font-family:'Archivo';font-weight:900;font-size:22px;line-height:1}
  .pg-run-planned{font-size:13px;color:var(--muted2);padding:10px 0 0}
  .pg-run-details-flags{display:flex;gap:8px;padding:12px 0}
  .pg-flag{font-size:12px;font-weight:700;color:var(--brand);background:rgba(231,243,75,.08);padding:4px 10px;border-radius:999px}
  #v-charges.pg-detail-mode #forge-dashboard{display:none}
  #v-charges.pg-detail-mode .progress-intro{display:none}
  #v-charges.pg-detail-mode .screen-title{display:none}
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  }
  /* ===== PLAN HUB ===== */
  .plan-hub-section{padding-top:28px}
  .plan-hub-title{font-family:'Inter';font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
  .plan-week-row{display:flex;align-items:center;min-height:50px;padding:12px 0;border:0;border-bottom:1px solid #242727;background:none;width:100%;text-align:left;cursor:pointer;color:var(--text);transition:transform var(--motion-fast) var(--ease-out)}
  .plan-week-row.rest-row{cursor:default}
  .plan-week-row:not(.rest-row):active{transform:scale(.985)}
  .plan-week-day{font-family:'Inter';font-weight:700;font-size:12px;letter-spacing:.06em;color:var(--muted);min-width:44px}
  .plan-week-dot{width:8px;height:8px;border-radius:50%;margin:0 14px 0 2px;flex-shrink:0;background:var(--muted2)}
  .plan-week-dot.dot-strength{background:var(--strength)}.plan-week-dot.dot-cardio{background:var(--cardio)}
  .plan-week-name{font-size:15px;font-weight:600;flex:1}
  .plan-week-chev{color:var(--muted2);font-size:18px;font-weight:700;padding-left:8px}
  .plan-muscu-row{display:flex;align-items:center;min-height:58px;padding:14px 0;border:0;border-bottom:1px solid #242727;background:none;width:100%;text-align:left;cursor:pointer;color:var(--text);gap:0;transition:transform var(--motion-fast) var(--ease-out)}
  .plan-muscu-row:active{transform:scale(.985)}
  .plan-muscu-letter{font-family:'Archivo';font-weight:900;font-size:22px;color:var(--strength);min-width:28px}
  .plan-muscu-info{flex:1;margin-left:14px}
  .plan-muscu-label{display:block;font-size:15px;font-weight:700;line-height:1.2}
  .plan-muscu-focus{display:block;font-size:12px;color:var(--muted);margin-top:2px}
  .plan-muscu-chev{color:var(--muted2);font-size:18px;font-weight:700;padding-left:8px}
  .plan-bonus-head{font-family:'Inter';font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted2);margin:22px 0 8px}
  .plan-bonus-row{display:flex;align-items:center;min-height:46px;padding:10px 0;border:0;border-bottom:1px solid #1e2122;background:none;width:100%;text-align:left;cursor:pointer;color:var(--text);gap:12px;transition:transform var(--motion-fast) var(--ease-out)}
  .plan-bonus-row:active{transform:scale(.985)}
  .plan-bonus-row:last-child{border-bottom:0}
  .plan-bonus-name{font-size:14px;font-weight:600;flex:1;color:var(--muted)}
  .plan-bonus-chev{color:var(--muted2);font-size:16px}
  .plan-nutrition-block{padding:20px 0;border-bottom:1px solid var(--line)}
  .plan-nutrition-desc{font-size:14px;color:var(--text)}
  .plan-nutrition-meta{font-size:12px;color:var(--muted2);margin-top:5px}
  .plan-nutrition-cta{margin-top:16px;display:inline-flex;align-items:center;gap:6px;font-family:'Inter';font-size:14px;font-weight:700;color:var(--brand);background:none;border:none;padding:0;cursor:pointer;letter-spacing:.01em}
  /* Nutrition — retour Plan */
  .cuisine-back{height:52px;display:flex;align-items:center;margin-bottom:4px}

  /* ===== MODE VOYAGE ===== */
  .travel-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:9000;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s}
  .travel-overlay.active{opacity:1;pointer-events:all}
  .travel-sheet{background:#141519;border-radius:20px 20px 0 0;width:100%;max-width:480px;padding:0 20px 40px;box-sizing:border-box;transform:translateY(24px);transition:transform .22s var(--ease-out)}
  .travel-overlay.active .travel-sheet{transform:translateY(0)}
  .travel-handle{width:36px;height:4px;background:#2c2e33;border-radius:4px;margin:12px auto 20px}
  .travel-title{font-family:'Archivo';font-size:22px;font-weight:800;color:var(--text);margin:0 0 10px;text-transform:uppercase;letter-spacing:-.01em}
  .travel-desc{font-size:14px;color:var(--muted);margin:0 0 24px;line-height:1.55}
  .travel-field-label{font-family:'Inter';font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted2);margin-bottom:10px}
  .travel-durations{display:flex;gap:10px;margin-bottom:24px}
  .travel-dur-pill{flex:1;padding:12px 8px;border:1.5px solid #2c2e33;border-radius:10px;background:none;color:var(--muted);font-family:'Inter';font-size:14px;font-weight:600;cursor:pointer;transition:border-color .12s,color .12s}
  .travel-dur-pill.active{border-color:var(--brand);color:var(--brand)}

  /* Travel date inputs */
  .travel-date-row{display:flex;gap:12px;margin-bottom:16px}
  .travel-date-col{flex:1;display:flex;flex-direction:column;gap:4px}
  .travel-date-input{width:100%;box-sizing:border-box;background:#0f1012;border:1.5px solid #2c2e33;border-radius:8px;color:var(--text);font-family:'Inter';font-size:14px;padding:10px 12px;appearance:none;-webkit-appearance:none}
  .travel-date-input:focus{outline:none;border-color:var(--brand)}
  .travel-error{font-size:13px;color:#ff6b6b;min-height:18px;margin-bottom:10px}

  /* Travel banner (home) — actif */
  .travel-banner{display:flex;align-items:center;background:#1a1e14;border-left:3px solid var(--brand);border-radius:6px;padding:10px 12px;margin:0 0 12px;gap:8px}
  .travel-banner-info{flex:1;min-width:0}
  .travel-banner-label{font-family:'Archivo';font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--brand);text-transform:uppercase}
  .travel-banner-desc{font-size:12px;color:var(--muted);margin-top:2px}
  .travel-banner-mod,.travel-banner-off{font-family:'Inter';font-size:12px;font-weight:700;color:var(--muted2);background:none;border:1px solid #2c2e33;border-radius:6px;padding:4px 10px;cursor:pointer;white-space:nowrap}

  /* Travel status — inactif */
  .travel-status-entry{display:flex;align-items:center;justify-content:space-between;padding:8px 0;margin:0 0 10px}
  .travel-status-entry span{font-size:13px;color:var(--muted)}
  .travel-status-btn{font-family:'Inter';font-size:13px;font-weight:700;color:var(--brand);background:none;border:1px solid var(--brand);border-radius:6px;padding:5px 12px;cursor:pointer}

  /* Travel plan entry */
  .plan-travel-btn{display:block;width:100%;padding:12px 0;margin-top:14px;border:1.5px dashed #2c2e33;border-radius:10px;background:none;color:var(--muted);font-family:'Inter';font-size:14px;font-weight:600;cursor:pointer;transition:border-color .14s,color .14s;text-align:center}
  .plan-travel-btn:active{border-color:var(--brand);color:var(--brand)}
  .plan-travel-active{margin-top:14px;padding:12px 14px;border:1.5px solid var(--brand);border-radius:10px;font-family:'Inter';font-size:13px;font-weight:600;color:var(--brand)}
  .plan-travel-btns{display:flex;gap:8px;margin-top:10px}
  .plan-travel-btns .btn{flex:1;padding:8px 0;font-size:13px}

  /* Progress voyage badge */
  .pg-voyage-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--brand);background:#1a1e14;border:1px solid var(--brand);border-radius:6px;padding:4px 10px;margin:8px 0 4px}
  .cuisine-back-btn{background:none;border:0;color:var(--muted);font-size:14px;font-weight:600;font-family:'Inter';cursor:pointer;padding:0;display:flex;align-items:center;gap:4px;min-height:44px}

  /* ===== RÉGLAGES & BACKUP (Phase 8) ===== */
  .settings-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:9000;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s}
  .settings-overlay.active{opacity:1;pointer-events:all}
  .settings-handle{width:36px;height:4px;background:#2c2e33;border-radius:4px;margin:12px auto 20px}
  .settings-sheet{background:#141519;border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:calc(100dvh - env(safe-area-inset-top) - 24px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 20px calc(32px + env(safe-area-inset-bottom));box-sizing:border-box;transform:translateY(24px);transition:transform .22s var(--ease-out)}
  .settings-overlay.active .settings-sheet{transform:translateY(0)}
  .settings-section-label{font-family:'Inter';font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted2);margin:22px 0 12px}
  .settings-action{width:100%;min-height:52px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--radius-md);padding:0 var(--space-4);font-family:'Inter';font-weight:700;font-size:15px;color:var(--text);text-align:left;cursor:pointer;margin-bottom:8px;display:block;transition:background var(--motion-fast) ease}
  .settings-action:active{background:var(--surface3)}
  .settings-action-desc{font-size:12px;color:var(--muted);margin:0 0 18px;line-height:1.5}
  .settings-error{font-size:13px;color:#ff6b6b;margin-bottom:12px;line-height:1.4}
  .settings-storage{padding:16px 0 0;border-top:1px solid var(--line);margin-top:4px}
  .settings-storage-label{font-family:'Inter';font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted2);display:block;margin-bottom:5px}
  .settings-storage-val{font-size:13px;color:var(--muted);display:block}

  .backup-confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:9001;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s}
  .backup-confirm-overlay.active{opacity:1;pointer-events:all}
  .backup-confirm-sheet{background:#141519;border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:calc(100dvh - env(safe-area-inset-top) - 24px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 20px calc(32px + env(safe-area-inset-bottom));box-sizing:border-box;transform:translateY(24px);transition:transform .22s var(--ease-out)}
  .backup-confirm-overlay.active .backup-confirm-sheet{transform:translateY(0)}
  .backup-confirm-title{font-family:'Archivo';font-weight:900;font-size:24px;text-transform:uppercase;letter-spacing:-.02em;margin:14px 0 16px;line-height:1}
  .backup-confirm-meta{font-family:'Archivo';font-weight:800;font-size:17px;margin-bottom:4px}
  .backup-confirm-date-line{font-family:'Inter';font-weight:500;font-size:13px;color:var(--muted);margin-bottom:20px}
  .backup-confirm-warning{font-size:14px;color:var(--muted);line-height:1.55;margin-bottom:22px;padding:14px;background:var(--surface2);border-radius:var(--radius-sm);border-left:3px solid var(--strength)}
  .seq-switch-cue{font-size:13px;color:var(--muted);text-align:center;margin-top:6px;min-height:20px}
  .seq-switch-cue.active{color:var(--brand);font-weight:600}

  /* Phase 10A — Training science */
  .bench-setting{font-size:13px;font-weight:700;color:var(--muted);margin:2px 0 6px;letter-spacing:.02em}
  .ex-short-cue{font-size:13px;color:var(--muted);margin:2px 0 8px;line-height:1.4}
  .technique-details{margin:8px 0 4px;border-radius:10px;background:var(--surface2);border:1px solid var(--line)}
  .technique-summary{min-height:44px;display:flex;align-items:center;padding:0 12px;list-style:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--brand)}
  .technique-label-open{display:none}
  details[open] .technique-label-closed{display:none}
  details[open] .technique-label-open{display:inline}
  .technique-summary::-webkit-details-marker{display:none}
  .technique-body{padding:12px 14px 14px;border-top:1px solid var(--line)}
  .technique-section{margin-bottom:10px}
  .technique-section:last-child{margin-bottom:0}
  .technique-section-label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:3px}
  .technique-section p{font-size:13px;color:var(--text);line-height:1.5;margin:0}
  .warmup-load-plan{margin:8px 0 6px;padding:10px 13px;background:var(--surface2);border-radius:10px;border:1px solid var(--line)}
  .warmup-load-label{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
  .warmup-load-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0}
  .warmup-load-n{font-size:12px;color:var(--muted);font-weight:600}
  .warmup-load-w{font-family:'Archivo';font-weight:700;font-size:14px}
  .warmup-load-work{border-top:1px solid var(--line);margin-top:6px;padding-top:8px}
  .warmup-load-work .warmup-load-w{color:var(--strength)}
  .warmup-load-empty{font-size:13px;color:var(--muted)}

  /* ===== MASCOTTE — Forge Spark pixel art ===== */
  @keyframes mascotCameoIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
  @keyframes mascotCameoOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}
  @keyframes mascotMsgIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
  @keyframes mascotMsgOut{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(8px)}}

  #mascot-root{pointer-events:none}
  .mascot-wrap{position:fixed;display:flex;align-items:center;gap:6px;pointer-events:none;z-index:80}
  .mascot-wrap.mascot-hidden{display:none}
  .mascot-wrap.mascot-message{flex-direction:row}
  .mascot-img{width:110px;height:110px;object-fit:contain;display:block;image-rendering:pixelated;image-rendering:crisp-edges}
  .mascot-wrap.mascot-cameo{animation:mascotCameoIn 260ms ease-out both}
  .mascot-wrap.mascot-cameo-exit{animation:mascotCameoOut 200ms ease-in both}
  .mascot-wrap.mascot-message{animation:mascotMsgIn 280ms ease-out both}
  .mascot-wrap.mascot-message-exit{animation:mascotMsgOut 200ms ease-in both}
  .mascot-bubble{max-width:150px;background:var(--surface2);border:1px solid var(--line);border-radius:14px 4px 14px 14px;padding:9px 13px;font-family:'Inter',system-ui,sans-serif;font-size:13px;font-weight:500;line-height:1.4;color:var(--text);pointer-events:none}
  .mascot-bubble:empty{display:none}

  @media (prefers-reduced-motion:reduce){
    .mascot-wrap{animation:none!important;opacity:1}
  }

  /* settings toggle */
  .settings-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0 4px}
  .settings-toggle-row span{font-size:15px;color:var(--text)}
  .mascot-toggle-btn{font-family:'Inter',system-ui,sans-serif;font-size:13px;font-weight:600;padding:6px 14px;border-radius:20px;border:1.5px solid var(--brand);background:transparent;color:var(--brand);cursor:pointer;pointer-events:auto;transition:background var(--motion-fast) ease,color var(--motion-fast) ease}
  .mascot-toggle-btn.settings-toggle-off{border-color:var(--line);color:var(--muted)}
