:root{
  --steel-900:#101317; --steel-800:#171B21; --steel-700:#1F242C; --steel-600:#2B313B;
  --chalk:#E9E5DC; --dim:#9AA0A8; --faint:#5E656E;
  --p25:#C0392B; --p20:#2C5FA8; --p10:#3E7D52; --p15:#D8A227;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

body{background:var(--steel-900);color:var(--chalk);font:15px/1.55 'Archivo',system-ui,sans-serif;-webkit-font-smoothing:antialiased;padding-bottom:60px}
.wrap{max-width:720px;margin:0 auto;padding:0 16px}
a{color:inherit}
code{font-family:'JetBrains Mono',monospace;font-size:.85em;color:var(--p15)}

/* top bar */
.top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;padding:10px 16px;
  background:rgba(16,19,23,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--steel-600)}
.brand{font-family:'Archivo Black',sans-serif;font-size:15px;letter-spacing:.04em;text-decoration:none}
.top nav{display:flex;gap:2px;margin-left:auto;overflow-x:auto}
.top nav a{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  padding:7px 9px;color:var(--faint);text-decoration:none;white-space:nowrap}
.top nav a.on{color:var(--chalk);border-bottom:2px solid var(--p25)}
.chi{width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--c);display:grid;place-items:center;
  font-weight:700;font-size:13px;text-decoration:none;color:#fff}

/* login */
.login{padding:56px 0}
.eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);margin-bottom:14px}
h1{font-family:'Archivo Black',sans-serif;font-size:clamp(36px,10vw,64px);line-height:.92;text-transform:uppercase;letter-spacing:-.02em}
h1 em{font-style:normal;color:var(--p25)}
.chi-sei{display:flex;gap:10px;margin:32px 0 20px;flex-wrap:wrap}
.atleta{flex:1;min-width:120px;position:relative;cursor:pointer}
.atleta input{position:absolute;opacity:0;inset:0}
.atleta span{display:block;padding:14px;text-align:center;border:1px solid var(--steel-600);font-weight:600}
.atleta input:checked+span{border-color:var(--c);background:color-mix(in srgb,var(--c) 16%,transparent)}
.atleta input:focus-visible+span{outline:2px solid var(--chalk);outline-offset:2px}
.err{color:#E07A6E;font-size:13px;margin-top:14px}
.hint{color:var(--faint);font-size:12.5px;margin-top:20px}

.campo{display:block;margin:14px 0}
.campo span{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}
.campo.inline{max-width:220px}
input,button,select{font:inherit}
input[type=text],input[type=password],input[type=date],input[type=number],.campo input{
  width:100%;background:var(--steel-800);border:1px solid var(--steel-600);color:var(--chalk);padding:11px 12px;border-radius:2px}
input:focus{outline:2px solid var(--p15);outline-offset:-1px}
button{background:var(--chalk);color:var(--steel-900);border:0;padding:12px 18px;font-weight:700;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border-radius:2px}
button:hover{background:#fff}
.check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--dim);margin:10px 0}
.check input{width:auto}
.link{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-left:14px}

/* nav data */
.datanav{display:flex;align-items:center;gap:8px;padding:20px 0 6px}
.datanav a{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--steel-600);font-size:18px;text-decoration:none;color:var(--dim)}
.datanav div{flex:1;text-align:center}
.datanav b{display:block;font-weight:600}
.datanav span{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}

.riposo{padding:60px 0;text-align:center;color:var(--faint)}
.riposo h2{font-family:'Archivo Black',sans-serif;text-transform:uppercase;color:var(--dim);margin-bottom:8px}

/* intestazione seduta */
.seduta{border-left:4px solid var(--c);padding:16px 0 16px 16px;margin:14px 0 8px;background:var(--steel-800)}
.seduta .tag{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--c)}
.seduta h1{font-size:clamp(24px,6vw,34px);margin:5px 0 2px}
.seduta p{color:var(--faint);font-size:13px}
.fatto{display:inline-block;margin-top:10px;background:var(--chalk);color:var(--steel-900);
  font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.14em;padding:3px 8px}
.avviso{border:1px solid var(--p15);color:var(--p15);padding:12px 14px;font-size:13px;margin:14px 0}
.avviso a{color:var(--chalk)}

/* blocchi */
.blocco{margin-top:22px;border-top:1px solid var(--steel-600);padding-top:12px}
.blocco[data-tipo=giant],.blocco[data-tipo=quadriset]{border-top:2px solid var(--p15)}
.blocco[data-tipo=restpause],.blocco[data-tipo=piramide]{border-top:2px solid var(--p25)}
.blocco-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.blocco-h h3{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-weight:400}
.blocco-h .meta{margin-left:auto;display:flex;gap:8px}
.blocco-h .meta span{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.1em;color:var(--faint)}
.rest{cursor:pointer;border-bottom:1px dotted var(--faint)}

.ex{padding:9px 0}
.ex-top{display:flex;gap:11px;align-items:baseline}
.k{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--faint);width:26px;flex:0 0 26px}
.n{font-weight:600;font-size:14.5px}
.n em{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--p15);margin-left:7px}
.prescr{padding-left:37px;color:var(--dim);font-size:13px;margin-top:1px}
.nota{color:var(--faint);font-size:12.5px;font-style:italic;margin-top:10px;padding-left:37px}

/* tabella serie */
table.serie{width:100%;border-collapse:collapse;margin:8px 0 0 0}
table.serie th{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--faint);font-weight:400;text-align:left;padding:5px 6px;border-bottom:1px solid var(--steel-700)}
table.serie td{padding:5px 6px;border-bottom:1px solid var(--steel-800);font-size:13.5px;vertical-align:middle}
table.serie .i{font-family:'JetBrains Mono',monospace;color:var(--faint);width:26px}
table.serie .reps{font-family:'JetBrains Mono',monospace;font-weight:700;width:48px}
table.serie .pre{white-space:nowrap;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--dim)}
table.serie .pre b{color:var(--chalk);font-size:13px}
table.serie .pre i{font-style:normal;color:var(--faint);font-size:10px;margin-left:4px}
table.serie .manca{color:var(--p15);font-size:11px}
table.serie input{width:100%;min-width:56px;background:var(--steel-800);border:1px solid var(--steel-700);
  color:var(--chalk);padding:7px 6px;font-family:'JetBrains Mono',monospace;font-size:13px;border-radius:2px}
tr.ok input.in-kg{border-color:var(--p10);color:#8FCBA4}
tr.saving input{opacity:.5}

/* wod */
.wod{margin-top:26px;border:1px solid var(--steel-600);border-left:3px solid var(--p25);background:var(--steel-800);padding:16px}
.wod-t{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--p25)}
.wod h2{font-family:'Archivo Black',sans-serif;font-size:17px;text-transform:uppercase;margin:4px 0 2px}
.wod-f{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
.wod pre{font-family:'JetBrains Mono',monospace;font-size:12.5px;line-height:1.75;white-space:pre-wrap}
.wod .nota{padding-left:0}
.wod-form{margin-top:14px;border-top:1px solid var(--steel-700);padding-top:12px}

.chiudi{display:flex;gap:10px;margin:22px 0 10px}
.chiudi input{flex:1}

/* calendario */
.pagina{font-family:'Archivo Black',sans-serif;font-size:26px;text-transform:uppercase;margin:24px 0 4px}
h2.pagina{font-size:19px;margin-top:38px}
.sub{color:var(--faint);font-size:13px;margin-bottom:18px;max-width:56ch}
.fasi{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1px;background:var(--steel-600);border:1px solid var(--steel-600);margin-bottom:26px}
.fase{background:var(--steel-800);padding:11px 12px;border-left:3px solid var(--c)}
.fase b{display:block;font-size:12.5px}
.fase span{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--faint);letter-spacing:.1em}

.sett{margin-bottom:22px}
.sett-h{display:flex;gap:12px;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--steel-600)}
.sett-h .num{font-family:'Archivo Black',sans-serif;font-size:22px;color:var(--c);width:34px}
.sett-h b{display:block;font-size:13.5px}
.sett-h span{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--faint);letter-spacing:.08em}
.giorni{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:1px;background:var(--steel-900);margin-top:1px}
.gg{background:var(--steel-800);border-left:3px solid var(--g);padding:10px 11px;text-decoration:none;display:block}
.gg:hover{background:var(--steel-700)}
.gg.oggi{outline:1px solid var(--chalk);outline-offset:-1px}
.gg.ok{opacity:.45}
.gg .dow{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.gg b{display:block;font-size:12.5px;margin:3px 0 1px}
.gg em{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--faint)}

/* massimali */
.ok-msg{border:1px solid var(--p10);color:#8FCBA4;padding:11px 13px;font-size:13px;margin-bottom:16px}
table.max{width:100%;border-collapse:collapse;margin:14px 0}
table.max th{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);
  font-weight:400;text-align:left;padding:6px;border-bottom:1px solid var(--steel-700)}
table.max td{padding:6px;border-bottom:1px solid var(--steel-800)}
table.max .lift{font-size:13.5px;font-weight:600}
table.max .ora{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--p15);white-space:nowrap}
table.max input{width:76px}
.max-form button{margin-top:8px}

.storico{margin-bottom:26px}
.storico h3{font-size:13.5px;margin-bottom:10px;color:var(--dim)}
.barre{display:flex;gap:6px;align-items:flex-end;height:120px;border-bottom:1px solid var(--steel-600);padding-bottom:0}
.barra{flex:0 0 46px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.barra i{width:100%;background:var(--p25);display:block}
.barra i.stim{background:repeating-linear-gradient(45deg,var(--p25),var(--p25) 4px,#8E2A20 4px,#8E2A20 8px)}
.barra b{font-family:'JetBrains Mono',monospace;font-size:11px;margin-top:4px}
.barra span{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--faint)}

/* classifica */
.scelta-wod{display:flex;gap:6px;overflow-x:auto;padding-bottom:12px;margin-bottom:16px}
.scelta-wod a{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  padding:7px 10px;border:1px solid var(--steel-600);color:var(--faint);text-decoration:none;white-space:nowrap}
.scelta-wod a.on{border-color:var(--chalk);color:var(--chalk)}
.lead{border:1px solid var(--steel-600);padding:16px;background:var(--steel-800)}
.lead h2{font-family:'Archivo Black',sans-serif;font-size:19px;text-transform:uppercase}
.lead pre{font-family:'JetBrains Mono',monospace;font-size:12.5px;line-height:1.75;white-space:pre-wrap;margin:10px 0 18px}
.vuoto{color:var(--faint);font-size:13px;font-style:italic}
.podio{list-style:none}
.podio li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--steel-700)}
.podio .pos{font-family:'Archivo Black',sans-serif;font-size:18px;color:var(--c);width:22px}
.podio .chi{flex:1;font-weight:600}
.podio .chi i{font-style:normal;font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--faint);letter-spacing:.1em;text-transform:uppercase}
.podio .val{font-family:'JetBrains Mono',monospace;font-weight:700}
.podio .quando{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--faint);width:34px;text-align:right}
.podio li.io{background:var(--steel-700);margin:0 -8px;padding-left:8px;padding-right:8px}

/* timer */
#timer{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--p25);color:#fff;
  display:none;align-items:center;gap:14px;padding:12px 16px}
#timer.on{display:flex}
#timer b{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700}
#timer span{flex:1;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
#timer button{background:rgba(255,255,255,.2);color:#fff;padding:7px 12px}

@media(max-width:520px){
  .top nav a{padding:7px 6px}
  table.serie .pre i{display:none}
  .chiudi{flex-direction:column}
}

/* ===== brand rebrand ===== */
.brand span{color:var(--faint);margin:0 3px}
.login h1 em{color:var(--p25)}

/* ===== banner bonus / torna oggi ===== */
.banner-bonus{border:1px solid var(--p15);color:var(--chalk);background:color-mix(in srgb,var(--p15) 10%,transparent);
  padding:11px 14px;font-size:13px;margin:12px 0}
.banner-bonus b{color:var(--p15)}
.banner-bonus a{color:var(--p15)}
.torna-oggi{display:inline-block;margin:10px 0 0;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--faint);text-decoration:none;border-bottom:1px dotted var(--faint)}

/* ===== calendario mensile ===== */
.cal-head{display:flex;align-items:flex-start;gap:14px;margin-top:20px}
.cal-head .sub{margin-bottom:0}
.cal-head .sub a{color:var(--p15)}
.cal-nav{margin-left:auto;display:flex;gap:6px;flex:0 0 auto}
.cal-nav a,.cal-nav span{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--steel-600);
  font-size:18px;text-decoration:none;color:var(--dim)}
.cal-nav span{opacity:.3}

.griglia{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:18px 0}
.dow-h{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--faint);text-align:center;padding-bottom:2px}
.cella{aspect-ratio:1;border:1px solid var(--steel-700);padding:5px 6px;position:relative;display:flex;
  flex-direction:column;text-decoration:none;color:inherit;min-height:58px;overflow:hidden}
.cella.vuota{border:0}
.cella.off{opacity:.35}
.cella .gg-num{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--faint);font-weight:700}
.cella .gg-rest{font-size:9px;color:var(--faint);margin-top:auto}
.cella .gg-nome{font-size:11px;font-weight:600;line-height:1.15;margin-top:2px}
.cella .gg-bonus{font-family:'JetBrains Mono',monospace;font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--faint);margin-top:auto}
.cella .gg-check{position:absolute;top:4px;right:5px;color:var(--p10);font-size:11px;font-weight:700}
.cella.core{border-left:3px solid var(--g);background:var(--steel-800)}
.cella.bonus{border-left:3px dashed var(--g);background:transparent}
.cella.core:hover,.cella.bonus:hover{background:var(--steel-700)}
.cella.done{opacity:.5}
.cella.today{outline:2px solid var(--chalk);outline-offset:-2px}

.cal-legenda{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px}
.cl{display:flex;gap:9px;align-items:center;padding:8px 10px;background:var(--steel-800);border-left:3px solid var(--g)}
.cl i{display:none}
.cl b{display:block;font-size:12.5px}
.cl span{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--faint);letter-spacing:.06em}

@media(max-width:520px){
  .cella{min-height:48px;padding:4px}
  .cella .gg-nome{font-size:9.5px}
  .griglia{gap:2px}
}

/* ===== progressi ===== */
.prog{margin-bottom:30px}
.prog-h{display:flex;align-items:baseline;gap:12px;border-bottom:1px solid var(--steel-600);padding-bottom:8px;margin-bottom:14px}
.prog-h h3{font-size:15px}
.prog-h .delta{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700}
.delta.su{color:#8FCBA4}
.delta.giu{color:#E07A6E}
.linea{display:flex;gap:8px;align-items:flex-end;overflow-x:auto;padding-bottom:6px;min-height:150px}
.punto{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:150px;min-width:42px}
.punto .e1{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--chalk);margin-bottom:3px}
.punto i{width:26px;background:linear-gradient(180deg,var(--p15),var(--p25));display:block;border-radius:2px 2px 0 0}
.punto .kg{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--dim);margin-top:4px}
.punto .dt{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--faint);margin-top:1px}

/* ===== impostazioni ===== */
.imp h3{font-size:14px;margin-bottom:4px}
.imp .sub{margin-bottom:12px}
.freq-scelta{display:flex;flex-direction:column;gap:8px}
.freq{position:relative;cursor:pointer;border:1px solid var(--steel-600);padding:12px 14px;display:block}
.freq input{position:absolute;opacity:0}
.freq b{font-family:'JetBrains Mono',monospace;font-size:15px;display:block}
.freq b span{font-family:'Archivo',sans-serif;font-size:13px;font-weight:600;margin-left:8px}
.freq em{font-style:normal;color:var(--faint);font-size:12.5px;display:block;margin-top:3px}
.freq.on{border-color:var(--p15);background:color-mix(in srgb,var(--p15) 10%,transparent)}
.freq input:focus-visible+b{outline:2px solid var(--chalk);outline-offset:3px}
.imp button{margin-top:18px}
.esci{display:inline-block;margin-top:26px;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:#E07A6E;text-decoration:none;border-bottom:1px solid transparent}
.esci:hover{border-color:#E07A6E}

/* ===== durata stimata ===== */
.seduta .durata{display:inline-block;margin-top:10px;font-family:'JetBrains Mono',monospace;font-size:12px;
  letter-spacing:.06em;color:var(--ink);background:var(--chalk);padding:3px 10px;font-weight:700}
