/* =========================================================
   ALLENAMENTO — componenti dell'app del cliente (seduta, esercizi,
   allenamento guidato, recupero, progressi)
   ========================================================= */
html:not(.nutri) .aura .b3{background:radial-gradient(closest-side,rgba(255,45,135,.14),transparent)}
.t-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:2px 18px}
.t-chips::-webkit-scrollbar{display:none}
.t-chip{flex:none;display:flex;align-items:center;gap:9px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--field);border:1px solid var(--hair);transition:background .3s,border-color .3s,transform .2s}
.t-chip:active{transform:scale(.96)}
.t-chip .lt{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;background:rgba(255,255,255,.08)}
.t-chip b{font-size:14.5px;font-weight:600}
.t-chip small{font-size:12px;color:var(--old);margin-left:-3px}
.t-chip[aria-pressed="true"]{border-color:rgba(142,68,236,.6);background:linear-gradient(135deg,rgba(41,151,255,.22),rgba(142,68,236,.22))}
.t-chip[aria-pressed="true"] .lt{background:var(--brand);color:#fff;box-shadow:0 0 14px rgba(142,68,236,.7)}
.t-chip .td{width:6px;height:6px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc)}

/* seduta di oggi */
.t-hero{position:relative;overflow:hidden;isolation:isolate;padding:20px;border-radius:28px;
  background:radial-gradient(130% 120% at 0% 0%,#2a2a3a 0%,#15151b 48%,#0a0a0d 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),inset 0 1px 0 rgba(255,255,255,.2),0 40px 80px -40px rgba(41,151,255,.6)}
.t-hero::before{content:"";position:absolute;inset:0;z-index:-1;mix-blend-mode:screen;opacity:.55;pointer-events:none;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.04) 0 1px,transparent 1px 6px),linear-gradient(115deg,transparent 30%,rgba(41,151,255,.35) 42%,rgba(142,68,236,.38) 50%,rgba(255,45,135,.3) 58%,transparent 72%);
  background-size:100% 100%,240% 240%;animation:holo 9s ease-in-out infinite alternate}
.t-hero::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:conic-gradient(from var(--a),transparent 0deg 210deg,#2997FF 250deg,#8E44EC 290deg,#FF2D87 330deg,transparent 360deg);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 5s linear infinite}
.t-hh{display:flex;align-items:center;gap:16px}
.t-big{width:72px;height:72px;flex:none;border-radius:22px;display:grid;place-items:center;font-size:40px;font-weight:800;letter-spacing:-.04em;color:#fff;
  background:var(--brand);box-shadow:0 18px 40px -16px rgba(142,68,236,.95),inset 0 1px 0 rgba(255,255,255,.35)}
.t-hh small{display:block;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:rgba(235,235,245,.6)}
.t-hh h2{margin:2px 0 0;font-size:30px;font-weight:700;letter-spacing:-.035em;line-height:1.05}
.t-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}
.t-stats div{padding:10px 8px;border-radius:15px;background:rgba(0,0,0,.34);border:1px solid var(--hair);text-align:center}
.t-stats b{display:block;font-size:21px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}
.t-stats small{display:block;font-size:11.5px;color:var(--muted)}
.t-go{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;margin-top:14px;border-radius:999px;color:#fff;font-size:17.5px;font-weight:700;letter-spacing:-.01em;
  background:linear-gradient(180deg,#4AA8FF,#1C86F2);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 18px 40px -16px rgba(41,151,255,.95);transition:transform .2s,filter .3s}
.t-go:hover{filter:brightness(1.07)}
.t-go:active{transform:scale(.97)}
.t-go svg{width:20px;height:20px;fill:#fff;stroke:none}
.t-go::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.38) 50%,transparent 65%);transform:translateX(-130%);animation:sheen 5s var(--ease) 1.5s infinite}
@keyframes sheen{0%{transform:translateX(-130%)}28%,100%{transform:translateX(130%)}}
.t-done{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;border-radius:16px;background:rgba(48,209,88,.12);border:1px solid rgba(48,209,88,.35);font-size:14px;color:#9EF0B4}
.t-done svg{width:20px;height:20px;flex:none;fill:none;stroke:#30D158;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.t-note{margin:14px 0 0;font-size:14px;color:rgba(235,235,245,.78);line-height:1.45;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.t-rest{text-align:center;padding:26px 20px}
.t-rest .t-big{margin:0 auto 12px;background:linear-gradient(135deg,#3a3a40,#1d1d21);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.t-rest h2{margin:0;font-size:26px;letter-spacing:-.03em}
.t-rest p{margin:6px auto 0;max-width:320px;color:var(--muted);font-size:14.5px;line-height:1.45}

/* esercizi */
.t-list{display:flex;flex-direction:column;gap:10px}
.t-ss{position:relative;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:26px;border:1px dashed rgba(142,68,236,.5);background:rgba(142,68,236,.06)}
.t-ss > .lbl{display:flex;align-items:center;gap:7px;margin:0 6px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#C9A4FF}
.t-ss > .lbl svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.t-ex{position:relative;border-radius:22px;background:var(--gloss),var(--card);border:1px solid var(--hair);padding:15px 16px}
.t-ex-h{display:flex;gap:13px;align-items:flex-start}
.t-n{width:30px;height:30px;flex:none;border-radius:10px;display:grid;place-items:center;font-size:14px;font-weight:700;background:rgba(255,255,255,.07);color:var(--muted);font-variant-numeric:tabular-nums}
.t-ex-t{flex:1;min-width:0}
.t-ex-t b{display:block;font-size:17px;font-weight:600;letter-spacing:-.015em;line-height:1.3}
.t-ex-t .sr{display:block;margin-top:3px;font-size:15px;font-weight:600;color:var(--acc);font-variant-numeric:tabular-nums}
.t-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.t-tag{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--hair);color:var(--ink);font-variant-numeric:tabular-nums}
.t-tag small{font-weight:500;color:var(--muted)}
.t-tag svg{width:13px;height:13px;fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.t-ex-note{margin:10px 0 0;font-size:13.5px;color:var(--muted);line-height:1.45}
.t-last{display:flex;align-items:center;gap:8px;margin-top:10px;padding:9px 11px;border-radius:12px;background:rgba(41,151,255,.08);border:1px solid rgba(41,151,255,.2);font-size:13px;color:#A9D2FF;font-variant-numeric:tabular-nums}
.t-last svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.t-vid{display:inline-flex;align-items:center;gap:7px;margin-top:10px;font-size:13.5px;font-weight:600;color:var(--acc);text-decoration:none;padding:7px 11px;border-radius:10px;background:rgba(41,151,255,.1)}
.t-vid svg{width:15px;height:15px;fill:currentColor}

/* settimana */
.t-week{padding:16px}
.t-wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.t-wd{display:flex;flex-direction:column;align-items:center;gap:6px}
.t-wd small{font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--old);text-transform:uppercase}
.t-wd .c{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;box-shadow:inset 0 0 0 1.6px rgba(255,255,255,.13);color:var(--old)}
.t-wd.pl .c{box-shadow:inset 0 0 0 1.6px rgba(142,68,236,.6);color:#C9A4FF}
.t-wd.ok .c{background:var(--brand);color:#fff;box-shadow:0 0 14px rgba(142,68,236,.6)}
.t-wd.today small{color:var(--ink)}
.t-wd.today .c{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}
.t-wd.past.pl:not(.ok) .c{opacity:.45}

/* allenamento in corso */
.wo{position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:#050507;opacity:0;transform:translateY(24px);transition:opacity .4s var(--ease),transform .5s var(--ease);overflow:hidden}
.wo.on{opacity:1;transform:none}
.wo::before{content:"";position:absolute;inset:-20%;z-index:0;pointer-events:none;
  background:radial-gradient(40% 35% at 20% 10%,rgba(41,151,255,.28),transparent 70%),radial-gradient(40% 35% at 85% 40%,rgba(142,68,236,.24),transparent 70%),radial-gradient(45% 35% at 30% 95%,rgba(255,45,135,.16),transparent 70%);
  animation:a1 24s ease-in-out infinite alternate}
.wo > *{position:relative;z-index:1}
.wo-top{display:flex;align-items:center;gap:12px;padding:calc(14px + env(safe-area-inset-top,0px)) 18px 10px;max-width:520px;width:100%;margin:0 auto}
.wo-x{min-width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.09);padding:0 10px;font-size:13px;font-weight:700}
.wo-x svg{width:15px;height:15px;fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linecap:round}
.wo-x.arm{background:rgba(255,69,58,.22);color:#FF8A80}
.wo-tt{flex:1;min-width:0;text-align:center}
.wo-tt small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wo-tt b{display:block;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.wo-pb{height:4px;max-width:484px;width:calc(100% - 36px);margin:0 auto;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden}
.wo-pb i{display:block;height:100%;background:var(--brand);transform-origin:0 50%;transform:scaleX(var(--f,0));transition:transform .6s var(--ease);box-shadow:0 0 12px rgba(142,68,236,.8)}
.wo-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 18px calc(24px + env(safe-area-inset-bottom,0px));max-width:520px;width:100%;margin:0 auto;display:flex;flex-direction:column}
.wo-step{display:flex;flex-direction:column;gap:14px;flex:1;animation:stepin .45s var(--ease)}
@keyframes stepin{from{opacity:0;transform:translateX(26px);filter:blur(6px)}}
.wo-k{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acc);display:flex;align-items:center;gap:8px}
.wo-k .ssb{color:#C9A4FF;background:rgba(142,68,236,.18);border-radius:999px;padding:2px 8px;letter-spacing:.06em}
.wo-name{margin:0;font-size:clamp(28px,8vw,36px);font-weight:700;letter-spacing:-.04em;line-height:1.08;text-wrap:balance}
.wo-sets{display:flex;gap:6px}
.wo-sets i{flex:1;height:6px;border-radius:3px;background:rgba(255,255,255,.12);transition:background .4s}
.wo-sets i.d{background:var(--brand)}
.wo-sets i.c{background:rgba(255,255,255,.55);animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
.wo-target{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.wo-target div{padding:11px 8px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid var(--hair);text-align:center;min-width:0}
.wo-target small{display:block;font-size:11px;color:var(--muted)}
.wo-target b{display:block;font-size:18px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wo-note{margin:0;font-size:14px;color:var(--muted);line-height:1.45}
.wo-in{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wo-f{padding:12px 8px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid var(--hair2)}
.wo-f label{display:block;text-align:center;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}
.wo-f .st{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;align-items:center;gap:2px}
.wo-f .st button{height:38px;border-radius:12px;background:rgba(255,255,255,.08);font-size:20px;font-weight:600;transition:transform .15s,background .2s}
.wo-f .st button:active{transform:scale(.9);background:rgba(255,255,255,.16)}
.wo-f input{width:100%;min-width:0;text-align:center;font:inherit;font-size:clamp(22px,6.6vw,30px);font-weight:700;letter-spacing:-.03em;color:var(--ink);background:none;border:0;outline:0;padding:0;font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text}
.wo-f input::placeholder{color:#4a4a50}
.wo-f input:focus{color:var(--acc)}
.wo-f small{display:block;text-align:center;font-size:11.5px;color:var(--old);margin-top:4px}
.wo-prev{font-size:13.5px;color:#A9D2FF;text-align:center;font-variant-numeric:tabular-nums}
.wo-cta{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding-top:10px}
.wo-cta .t-go{margin:0}
.wo-links{display:flex;justify-content:space-between;gap:10px}
.wo-links button,.wo-links a{font-size:14px;font-weight:600;color:var(--muted);padding:8px 4px;text-decoration:none}
.wo-links button:hover,.wo-links a:hover{color:var(--ink)}
.wo-links button:disabled{opacity:.3}

/* recupero */
.wo-rest{align-items:center;text-align:center;justify-content:center}
.rr{position:relative;width:min(260px,72vw);aspect-ratio:1;margin:6px auto 0}
.rr svg{width:100%;height:100%;transform:rotate(-90deg);overflow:visible}
.rr circle{fill:none;stroke-width:12}
.rr .t{stroke:rgba(255,255,255,.08)}
.rr .f{stroke:url(#rrg);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--f,1));filter:drop-shadow(0 0 10px rgba(142,68,236,.7))}
.rr .ctr{position:absolute;inset:0;display:grid;place-content:center}
.rr .ctr small{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.rr .ctr b{font-size:64px;font-weight:700;letter-spacing:-.05em;font-variant-numeric:tabular-nums;line-height:1}
.rr.end .ctr b{color:var(--green)}
.adj{display:flex;justify-content:center;gap:10px}
.adj button{min-width:76px;height:44px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--hair2);font-size:15px;font-weight:600}
.nextup{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:13px 14px;border-radius:18px;background:rgba(255,255,255,.05);border:1px solid var(--hair)}
.nextup small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acc)}
.nextup b{display:block;font-size:16px;font-weight:600}
.nextup span{display:block;font-size:13px;color:var(--muted)}
.nextup .t-n{display:grid;background:var(--brand);color:#fff}
.wo-rest .wo-cta{width:100%}

/* fine allenamento */
.wo-end{align-items:center;text-align:center}
.wo-end .trophy{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;margin:8px auto 4px;background:var(--brand);box-shadow:0 20px 50px -16px rgba(142,68,236,1),inset 0 1px 0 rgba(255,255,255,.35);animation:pop .7s var(--spring)}
.wo-end .trophy svg{width:44px;height:44px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wo-end h2{margin:0;font-size:32px;letter-spacing:-.04em}
.wo-end > p{margin:0;color:var(--muted)}
.wo-sum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
.wo-sum div{padding:14px;border-radius:18px;background:rgba(255,255,255,.05);border:1px solid var(--hair)}
.wo-sum b{display:block;font-size:26px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.wo-sum small{display:block;font-size:12px;color:var(--muted)}
.recs{width:100%;display:flex;flex-direction:column;gap:8px;text-align:left}
.rec{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,rgba(255,214,10,.14),rgba(255,159,10,.06));border:1px solid rgba(255,214,10,.35)}
.rec svg{width:22px;height:22px;flex:none;fill:none;stroke:#FFD60A;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rec b{display:block;font-size:15px}
.rec span{display:block;font-size:13px;color:#FFE38A;font-variant-numeric:tabular-nums}
.feel{width:100%}
.feel p{margin:0 0 10px;font-size:15px;font-weight:600}
.feel .fb{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.feel .fb button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 2px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--hair);font-size:11px;color:var(--muted);transition:background .3s,border-color .3s,transform .2s}
.feel .fb button span{font-size:22px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.feel .fb button[aria-pressed="true"]{border-color:rgba(142,68,236,.7);background:linear-gradient(135deg,rgba(41,151,255,.25),rgba(142,68,236,.25));transform:scale(1.05)}

/* progressi */
.p-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.p-stats div{padding:14px 10px;border-radius:20px;background:var(--gloss),var(--card);border:1px solid var(--hair);text-align:center}
.p-stats b{display:block;font-size:26px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}
.p-stats small{display:block;font-size:12px;color:var(--muted)}
.p-ex{padding:15px 16px}
.p-ex-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.p-ex-h b{font-size:16px;font-weight:600;min-width:0}
.p-ex-h span{flex:none;font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px;font-variant-numeric:tabular-nums}
.p-ex-h span.up{color:#9EF0B4;background:rgba(48,209,88,.14)}
.p-ex-h span.eq{color:var(--muted);background:rgba(255,255,255,.07)}
.p-ex small{display:block;margin-top:2px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.sline{display:block;width:100%;height:58px;margin-top:10px;overflow:visible}
.p-empty{text-align:center;padding:30px 20px}
.p-empty .t-big{margin:0 auto 12px}
.p-empty h3{margin:0;font-size:21px;letter-spacing:-.02em}
.p-empty p{margin:6px auto 0;max-width:320px;color:var(--muted);font-size:14.5px;line-height:1.45}
.p-log{list-style:none;margin:0;padding:6px 16px}
.p-log li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid rgba(255,255,255,.06)}
.p-log li:first-child{border-top:0}
.p-log .lt{width:34px;height:34px;flex:none;border-radius:11px;display:grid;place-items:center;font-size:15px;font-weight:800;color:#fff;background:var(--brand)}
.p-log .tx{flex:1;min-width:0}
.p-log .tx b{display:block;font-size:15px;font-weight:600}
.p-log .tx small{display:block;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.p-log .fl{font-size:12px;font-weight:700;color:#C9A4FF}

/* glossario */
.gl-list{margin:0;padding:6px 16px}
.gl-list div{padding:11px 0;border-top:1px solid rgba(255,255,255,.06)}
.gl-list div:first-child{border-top:0}
.gl-list dt{font-size:15px;font-weight:600}
.gl-list dt code{font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--acc);margin-left:6px}
.gl-list dd{margin:2px 0 0;font-size:14px;color:var(--muted);line-height:1.45}

/* =========================================================
   V3 — note del coach, scheda esercizio, animazioni
   ========================================================= */
/* icone */
svg.ip{fill:currentColor!important;stroke:none!important}
.t-go svg.ic{fill:none;stroke:#fff;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.t-go svg.ic path{stroke-dasharray:22;stroke-dashoffset:0}
.next .nic svg.ip{color:#fff;width:21px;height:21px}
.t-big svg{width:36px;height:36px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* nota del coach: chiusa di default, si apre al tocco */
.t-nt{position:relative;margin-top:12px;border-radius:18px;background:linear-gradient(135deg,rgba(41,151,255,.07),rgba(142,68,236,.09));border:1px solid rgba(142,68,236,.26);transition:border-color .4s,box-shadow .5s var(--ease),background .4s}
.t-nt.open{border-color:rgba(142,68,236,.55);background:linear-gradient(135deg,rgba(41,151,255,.1),rgba(142,68,236,.14));box-shadow:0 18px 40px -22px rgba(142,68,236,.9)}
.t-ntb{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px 10px 10px;text-align:left;border-radius:18px;transition:background .25s}
.t-ntb:active{background:rgba(255,255,255,.04)}
.t-ntb .ni{position:relative;width:34px;height:34px;flex:none;border-radius:11px;display:grid;place-items:center;background:var(--brand);box-shadow:0 8px 20px -8px rgba(142,68,236,.95),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .5s var(--spring)}
.t-ntb .ni svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.t-nt:not(.open) .ni::after{content:"";position:absolute;inset:-3px;border-radius:14px;border:1.5px solid rgba(142,68,236,.75);animation:ping 2.8s var(--ease) infinite}
@keyframes ping{0%{transform:scale(.9);opacity:.9}70%,100%{transform:scale(1.35);opacity:0}}
.t-nt.open .ni{transform:rotate(-8deg) scale(1.06)}
.t-ntb .nl{flex:1;min-width:0}
.t-ntb .nl b{display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em}
.t-ntb .nl small{display:block;font-size:12.5px;color:var(--muted)}
.t-ntb .cv{width:22px;height:22px;flex:none;fill:none;stroke:var(--muted);stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;transition:transform .55s var(--spring),stroke .3s}
.t-nt.open .cv{transform:rotate(180deg);stroke:#C9A4FF}
.t-ntc{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}
.t-nt.open .t-ntc{grid-template-rows:1fr}
.t-ntc > div{overflow:hidden;min-height:0}
.t-ntc p{margin:0 14px 14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);font-size:15px;line-height:1.55;color:rgba(235,235,245,.88);white-space:pre-line;overflow-wrap:anywhere;
  opacity:0;transform:translateY(-8px);filter:blur(5px);transition:opacity .3s,transform .45s var(--ease),filter .3s}
.t-nt.open .t-ntc p{opacity:1;transform:none;filter:none;transition-delay:.12s}

/* card esercizio come pulsante per la scheda */
.t-ex{transition:border-color .35s,transform .35s var(--ease),box-shadow .4s}
.t-ex:hover{border-color:rgba(255,255,255,.16)}
.t-ex-h{width:100%;text-align:left;align-items:center;border-radius:14px}
.t-ex-h .go{width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.06);transition:transform .4s var(--spring),background .3s}
.t-ex-h .go svg{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.t-ex-h:hover .go,.t-ex-h:focus-visible .go{transform:translateX(3px);background:rgba(41,151,255,.2)}
.t-ex-h:active .t-ex-t{transform:scale(.985)}
.t-ex-t{transition:transform .2s}
.t-ex .t-vid svg{width:14px;height:14px}

/* seduta di oggi: luce che segue il dito, lettera che entra */
.t-hero{--mx:18%;--my:0%}
.t-hero .t-hh,.t-hero .t-stats,.t-hero .t-done,.t-hero .t-go,.t-hero .t-note{position:relative}
.t-hero > .t-hh::before{content:"";position:absolute;z-index:-1;left:calc(var(--mx) - 20px);top:calc(var(--my) - 20px);width:300px;height:300px;margin:-150px 0 0 -150px;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(142,68,236,.32),rgba(41,151,255,.12) 55%,transparent);transition:left .25s var(--ease),top .25s var(--ease)}
.t-big{position:relative}
.t-big > span{display:inline-block;animation:bigin 1s var(--spring) .3s backwards}
@keyframes bigin{from{opacity:0;transform:scale(.2) rotate(-30deg);filter:blur(8px)}}
.t-hero .t-big{animation:floaty 6s ease-in-out 1.4s infinite}
@keyframes floaty{50%{transform:translateY(-4px) rotate(-2deg)}}
.t-big.moon{animation:floaty 6s ease-in-out infinite}
.t-hero .t-stats div{animation:rise .7s var(--ease) backwards}
.t-hero .t-stats div:nth-child(1){animation-delay:.45s}.t-hero .t-stats div:nth-child(2){animation-delay:.53s}.t-hero .t-stats div:nth-child(3){animation-delay:.61s}
.t-go.pulse{animation:gopulse 2.6s ease-out 1.2s infinite}
@keyframes gopulse{0%{box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 18px 40px -16px rgba(41,151,255,.95),0 0 0 0 rgba(41,151,255,.55)}
  70%,100%{box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 18px 40px -16px rgba(41,151,255,.95),0 0 0 16px rgba(41,151,255,0)}}
.t-go svg.ip{transition:transform .4s var(--spring)}
.t-go:hover svg.ip{transform:translateX(2px) scale(1.12)}
.t-live .nic{animation:livepulse 2s ease-out infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(255,45,135,.6)}80%,100%{box-shadow:0 0 0 12px rgba(255,45,135,0)}}
.t-live .nt small{color:#FF6FAE}

/* settimana */
.t-wd .c{animation:pop .55s var(--spring) backwards;animation-delay:calc(1s + var(--i,0) * 55ms)}
.t-wd.today .c{animation:pop .55s var(--spring) backwards,today 2.6s ease-in-out 2s infinite;animation-delay:calc(1s + var(--i,0) * 55ms),2s}
@keyframes today{50%{outline-color:rgba(255,255,255,.25)}}

/* passaggio tra le schede */
.view.in-r{animation:vinr .5s var(--ease) backwards}
.view.in-l{animation:vinl .5s var(--ease) backwards}
@keyframes vinr{from{opacity:0;transform:translateX(34px);filter:blur(6px)}}
@keyframes vinl{from{opacity:0;transform:translateX(-34px);filter:blur(6px)}}
.view.still .sline,.view.still .bb i,.view.still .bv,.view.still .t-wd .c,.view.still .t-big > span,.view.still .t-hero .t-stats div,.view.still .sline .dt{animation:none!important}

/* grafico a linea */
.sline{clip-path:inset(-14px -14px -14px -14px);animation:reveal 1.4s var(--ease) backwards;animation-delay:var(--dl,0ms)}
@keyframes reveal{from{clip-path:inset(-14px 100% -14px -14px)}}
.sline .dt{transform-box:fill-box;transform-origin:center;animation:dotpop .6s var(--spring) backwards;animation-delay:calc(var(--dl,0ms) + 1.15s);filter:drop-shadow(0 0 6px rgba(255,45,135,.9))}
@keyframes dotpop{from{transform:scale(0)}}

/* progressi */
button.p-ex{display:block;width:100%;text-align:left;transition:transform .3s var(--ease),border-color .3s}
button.p-ex:hover{border-color:rgba(255,255,255,.16)}
button.p-ex:active{transform:scale(.985)}
.p-ex-h b::after{content:"›";margin-left:6px;color:var(--old);font-weight:500}
.p-vol{padding:16px}
.bars{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;height:158px}
.bc{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.bv{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;animation:rise .5s var(--ease) backwards;animation-delay:calc(.9s + var(--i) * 80ms)}
.bc.cur .bv{color:#fff}
.bb{flex:1;width:100%;max-width:36px;display:flex;align-items:flex-end;border-radius:11px;background:rgba(255,255,255,.045);overflow:hidden}
.bb i{display:block;width:100%;height:max(4px,calc(var(--h) * 100%));border-radius:11px;background:linear-gradient(180deg,rgba(142,68,236,.85),rgba(41,151,255,.55));animation:grow 1.1s var(--spring) backwards;animation-delay:calc(.35s + var(--i) * 80ms)}
.bc.cur .bb i{background:var(--brand);box-shadow:0 0 20px rgba(255,45,135,.55)}
@keyframes grow{from{height:0}}
.bc small{font-size:11px;color:var(--old);white-space:nowrap}
.bc.cur small{color:var(--ink);font-weight:600}

/* scheda dell'esercizio */
.exd{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin:14px -18px 0;padding:0 18px 6px;display:flex;flex-direction:column;gap:12px}
.exd > *{animation:rise .6s var(--ease) backwards}
.exd > :nth-child(1){animation-delay:.12s}.exd > :nth-child(2){animation-delay:.18s}.exd > :nth-child(3){animation-delay:.24s}.exd > :nth-child(4){animation-delay:.3s}
.exd > :nth-child(5){animation-delay:.36s}.exd > :nth-child(6){animation-delay:.42s}.exd > :nth-child(7){animation-delay:.48s}.exd > :nth-child(8){animation-delay:.54s}
.exd-t{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.exd-t div{padding:11px 8px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid var(--hair);text-align:center;min-width:0}
.exd-t small{display:block;font-size:11px;color:var(--muted)}
.exd-t b{display:block;font-size:16px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.exd-ss{display:flex;align-items:center;gap:8px;margin:0;padding:10px 12px;border-radius:14px;border:1px dashed rgba(142,68,236,.5);background:rgba(142,68,236,.07);font-size:13.5px;color:#C9A4FF}
.exd-ss svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.exd .t-nt{margin-top:0}
.exd .t-vid{align-self:flex-start;margin-top:0}
.exd-rec{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:18px;background:linear-gradient(135deg,rgba(255,214,10,.15),rgba(255,159,10,.05));border:1px solid rgba(255,214,10,.35)}
.exd-rec svg{width:24px;height:24px;flex:none;fill:none;stroke:#FFD60A;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;animation:spinin 1s var(--spring) .4s backwards}
@keyframes spinin{from{transform:rotate(-180deg) scale(0)}}
.exd-rec small{display:block;font-size:12px;color:#FFE38A}
.exd-rec b{display:block;font-size:18px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.exd-ch{padding:2px 4px 0}
.exd-ch .sline{height:78px}
.exd h4{margin:4px 2px -4px;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.exd-h{list-style:none;margin:0;padding:0 2px}
.exd-h li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;border-top:1px solid rgba(255,255,255,.06);animation:rise .5s var(--ease) backwards;animation-delay:calc(.5s + var(--i) * 55ms)}
.exd-h li:first-child{border-top:0}
.exd-h span{flex:none;font-size:13.5px;color:var(--muted)}
.exd-h b{font-size:14.5px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.exd-h li:first-child b{color:var(--acc)}
.exd-none{margin:0;color:var(--muted);font-size:14px;line-height:1.45;padding:13px 14px;border-radius:16px;background:rgba(255,255,255,.035);border:1px dashed var(--hair2)}

/* conto alla rovescia */
.wo-cd{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px 24px 90px}
.wo-cd small{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);animation:rise .6s var(--ease) .1s backwards}
.wo-cd p{margin:0;font-size:17px;font-weight:600;color:rgba(235,235,245,.8);animation:rise .6s var(--ease) .25s backwards}
.wo-cd p::before{content:"Si parte con ";color:var(--muted);font-weight:500}
.cd-n{position:relative;height:1.05em;min-width:1ch;font-size:min(48vw,230px);font-weight:800;letter-spacing:-.06em;line-height:1.05;opacity:0;
  background:linear-gradient(135deg,#4DA6FF,#8E44EC 55%,#FF2D87);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 20px 50px rgba(142,68,236,.55))}
.cd-n.in{animation:cdin .8s var(--ease) forwards}
@keyframes cdin{0%{opacity:0;transform:scale(2.3);filter:blur(22px)}32%{opacity:1;transform:scale(1);filter:blur(0) drop-shadow(0 20px 50px rgba(142,68,236,.55))}78%{opacity:1;transform:scale(.94)}100%{opacity:0;transform:scale(.55);filter:blur(10px)}}
.cd-n.go{font-size:min(30vw,150px);background:linear-gradient(135deg,#5BF08A,#30D158 50%,#4DA6FF)}
.cd-n.go.in{animation:cdgo 1s var(--spring) forwards}
@keyframes cdgo{0%{opacity:0;transform:scale(.3) rotate(-8deg)}60%{opacity:1;transform:scale(1.1) rotate(2deg)}100%{opacity:1;transform:none}}
.wo-cd::before{content:"";position:absolute;left:50%;top:46%;width:min(70vw,340px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(142,68,236,.35),rgba(41,151,255,.12) 60%,transparent);animation:breathe 1.6s ease-in-out infinite}
@keyframes breathe{50%{transform:translate(-50%,-50%) scale(1.12);opacity:.7}}
.cd-skip{position:absolute;left:50%;bottom:calc(30px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);font-size:15px;font-weight:600;color:var(--muted);padding:10px 22px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid var(--hair)}

/* serie */
.wo-cnt{min-width:38px;text-align:right;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.wo-cnt b{font-size:17px;color:var(--ink)}
.wo-step.same{animation:samein .4s var(--ease)}
@keyframes samein{from{opacity:.3;transform:translateY(8px)}}
.ww{display:inline-block;animation:wordin .8s var(--ease) backwards;animation-delay:calc(.06s + var(--wi,0) * 75ms)}
.wo-k .ssb{display:inline-flex;align-items:center;gap:4px}
.wo-k .ssb svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.wo-target .big{font-size:1.3em;background:var(--brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.wo-step .t-nt{margin-top:0}
.wo-sets i{position:relative;overflow:hidden}
.wo-sets i.d.fill{background:rgba(255,255,255,.12)}
.wo-sets i.fill::after{content:"";position:absolute;inset:0;background:var(--brand);transform-origin:0 50%;animation:sweep .4s var(--ease) forwards;box-shadow:0 0 10px rgba(142,68,236,.9)}
@keyframes sweep{from{transform:scaleX(0)}}
.iw{display:block;overflow:hidden;min-width:0}
.wo-prev{display:flex;align-items:center;justify-content:center;gap:7px}
.wo-prev svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.wo-links a{display:inline-flex;align-items:center;gap:6px}
.wo-links a svg{width:13px;height:13px}
.t-go.ok{background:linear-gradient(180deg,#45E070,#22B04B);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 18px 40px -14px rgba(48,209,88,.95);animation:okpop .45s var(--spring)}
.t-go.ok svg.ic path{animation:draw .35s var(--ease)}
@keyframes okpop{0%{transform:scale(.94)}60%{transform:scale(1.04)}100%{transform:none}}
@keyframes draw{from{stroke-dashoffset:22}}

/* recupero */
.wo-rest .rr{animation:rrin .75s var(--spring) backwards}
@keyframes rrin{from{opacity:0;transform:scale(.7) rotate(-20deg)}}
.rr .f{transition:stroke-dashoffset .25s linear,stroke .4s}
.rr svg{position:relative}
.rr-glow{position:absolute;inset:8%;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgba(142,68,236,.5),rgba(41,151,255,.18) 60%,transparent);filter:blur(18px);animation:glow 4s ease-in-out infinite;transition:background .4s}
@keyframes glow{50%{transform:scale(1.1);opacity:.75}}
.rr.hot .rr-glow{background:radial-gradient(closest-side,rgba(255,45,135,.7),rgba(255,45,135,.15) 60%,transparent)}
.rr.hot .ctr b{color:#FF6FAE}
.rr.beat{animation:beat .5s var(--spring)}
@keyframes beat{0%{transform:scale(1)}30%{transform:scale(1.07)}100%{transform:scale(1)}}
.rr.end{animation:endpop .7s var(--spring)}
@keyframes endpop{0%{transform:scale(.9)}50%{transform:scale(1.1)}100%{transform:scale(1)}}
.rr.end .rr-glow{background:radial-gradient(closest-side,rgba(48,209,88,.7),rgba(48,209,88,.15) 60%,transparent)}
.rr.end .f{stroke:#30D158}
.rr .ctr b{transition:color .3s}
.wo-rest .adj{animation:rise .6s var(--ease) .15s backwards}
.wo-rest .nextup{animation:rise .6s var(--ease) .25s backwards}
.nu-t{flex:1;min-width:0}

/* fine allenamento */
.wo-end .trophy{position:relative;isolation:isolate;background:none;box-shadow:none;animation:trophyin 1.1s var(--spring) .1s backwards}
.wo-end .trophy::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:26px;background:var(--brand);box-shadow:0 20px 50px -16px rgba(142,68,236,1),inset 0 1px 0 rgba(255,255,255,.35)}
@keyframes trophyin{0%{opacity:0;transform:scale(0) rotate(-200deg)}100%{opacity:1;transform:none}}
.rays{position:absolute;z-index:-2;left:50%;top:50%;width:300px;height:300px;margin:-150px 0 0 -150px;border-radius:50%;pointer-events:none;
  background:repeating-conic-gradient(from 0deg,rgba(255,214,10,.0) 0deg 9deg,rgba(255,214,10,.26) 9deg 18deg);
  -webkit-mask:radial-gradient(closest-side,#000 18%,transparent 100%);mask:radial-gradient(closest-side,#000 18%,transparent 100%);
  animation:raysin 1.2s var(--ease) .5s backwards,rays 16s linear infinite}
@keyframes raysin{from{opacity:0;transform:scale(.2)}}
@keyframes rays{to{rotate:360deg}}
.wo-end h2{position:relative}
.fx{animation:rise .7s var(--ease) backwards;animation-delay:var(--d,0s)}
.wo-end .rec{animation:recin .7s var(--spring) backwards;animation-delay:var(--d,0s)}
@keyframes recin{from{opacity:0;transform:translateX(-30px) scale(.95)}}
.wo-end .rec svg{animation:spinin 1s var(--spring) backwards;animation-delay:calc(var(--d,0s) + .2s)}
.feel .fb button:active{transform:scale(.94)}

@media (prefers-reduced-motion:reduce){
  .t-ntc p{opacity:1;transform:none;filter:none}
  .cd-n{opacity:1}
}
.t-tag.vid{color:var(--acc);text-decoration:none;background:rgba(41,151,255,.1);border-color:rgba(41,151,255,.3)}
.t-tag.vid svg.ip{width:11px;height:11px;color:var(--acc)}
.rr.end .f{stroke-dashoffset:0;transition:stroke-dashoffset .7s var(--ease),stroke .3s;filter:drop-shadow(0 0 12px rgba(48,209,88,.8))}
.rr.end .ctr b{color:#5BF08A}

/* dettaglio del carico a fine allenamento */
.bdw{margin-top:0}
.bd{list-style:none;margin:0 14px;padding:4px 0 0;border-top:1px solid rgba(255,255,255,.08)}
.bd li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.bd li span{min-width:0}
.bd li b{display:block;font-size:14.5px;font-weight:600}
.bd li small{display:block;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.bd li em{flex:none;font-style:normal;font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.bd li.tot{border-bottom:0}
.bd li.tot b{font-size:16px}
.bd li.tot em{font-size:17px;background:var(--brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.t-nt.open .bd li{animation:rise .45s var(--ease) backwards;animation-delay:calc(.15s + var(--i,0) * 45ms)}
.t-ntc .bd-n{border-top:0;padding-top:0;font-size:12.5px;color:var(--muted);line-height:1.45}

/* invio dei progressi */
.wa{display:flex;align-items:center;gap:13px;padding:14px 16px;text-decoration:none;color:inherit;border-color:rgba(48,209,88,.35);background:linear-gradient(135deg,rgba(48,209,88,.14),rgba(48,209,88,.04)),var(--card);transition:transform .25s var(--ease)}
.wa:active{transform:scale(.985)}
.wa > svg:first-child{width:22px;height:22px;flex:none;fill:none;stroke:#5BF08A;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wa span{flex:1;min-width:0}
.wa b{display:block;font-size:16px;font-weight:600}
.wa small{display:block;font-size:13px;color:var(--muted)}
.wa > svg:last-child{width:18px;height:18px;flex:none;fill:none;stroke:var(--muted);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
