/* Delta – tema app. Colori di base: verde alpino, nero, bianco.
   Tema solo chiaro: verde su nero ha contrasto 1,7:1, quindi non esiste una variante scura con questi tre colori. */
:root {
  color-scheme: light;

  /* base */
  --verde: #1F4A3A;          /* primario: intestazioni, pulsanti, stati attivi (testo bianco sopra: 10,0:1) */
  --verde-premuto: #173A2D;  /* stato premuto dei pulsanti */
  --nero: #201E1D;           /* testo (16,6:1 su bianco) */
  --bianco: #FFFFFF;         /* sfondo */

  /* tinte del verde (verde mescolato con bianco): superfici secondarie */
  --tinta-6: #F2F4F3;        /* sfondo di pagina alternativo, riga attiva */
  --tinta-10: #E9EDEB;       /* serie completata, campi non attivi */
  --tinta-16: #DBE2DF;       /* binari di slider e barre, banda CV nei grafici */

  /* testo e bordi */
  --testo: var(--nero);
  --testo-2: #5F5E5D;        /* secondario: 6,5:1 su bianco, 5,9:1 su tinta-6 */
  --bordo: #DADDDB;          /* separatori decorativi */
  --bordo-campo: #7C8580;    /* bordo dei campi di input (3,7:1 su bianco) */

  /* categorie (stessi colori del foglio): riempimento chiaro + testo nero (>12:1) */
  --cat-potenza: #FBE9C2;
  --cat-forza: #D5E8DF;
  --cat-pliometria: #D6E4F7;
  --cat-accessori: #E6E7E6;
  --cat-corsa: #F2C4B4;
  --cat-conditioning: #CDBFEA;

  /* funzionali, solo dove serve una distinzione che il verde non può dare */
  --errore: #B3261E;         /* valori fuori intervallo, errori di invio (bianco sopra: 6,5:1) */
  --attenzione: #F2B544;     /* semaforo readiness: giallo, sempre con testo nero e parola */
  --allerta: #B3261E;        /* semaforo readiness: rosso, sempre con testo bianco e parola */

  --raggio: 14px;
  --font: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}


@font-face{font-family:'Archivo';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/archivo-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/archivo-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-weight:600;font-style:normal;font-display:swap;src:url(fonts/archivo-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/archivo-latin-700-normal.woff2) format('woff2')}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bianco);color:var(--testo);font-family:var(--font);font-size:16px;line-height:1.35;padding-bottom:calc(88px + env(safe-area-inset-bottom))}
button{font:inherit;color:inherit;cursor:pointer}
input,textarea{font:inherit;color:var(--testo)}
.spin{padding:48px 20px;text-align:center;color:var(--testo-2)}

/* intestazione */
.top{background:var(--verde);color:var(--bianco);padding:calc(10px + env(safe-area-inset-top)) 14px 0}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px;letter-spacing:.01em}
.brand .mark{width:22px;height:22px}
.wk{display:flex;align-items:center;justify-content:space-between;margin-top:2px}
.wk button{background:none;border:0;color:var(--bianco);font-size:30px;line-height:1;width:48px;height:40px}
.wk button[disabled]{opacity:.35}
.wk .lbl{text-align:center;display:flex;flex-direction:row;gap:10px;align-items:baseline}
.wk .lbl b{font-size:18px}
.wk .lbl span{font-size:13px;opacity:.85}
.days{position:sticky;top:0;z-index:20;background:var(--verde);display:flex;gap:6px;overflow-x:auto;padding:4px 14px 10px;scrollbar-width:none}
.days:empty{display:none}
.days::-webkit-scrollbar{display:none}
.days button{flex:1 0 auto;min-width:56px;min-height:42px;border-radius:12px;border:1.5px solid rgba(255,255,255,.45);background:transparent;color:var(--bianco);font-weight:600;position:relative}
.days button.on{background:var(--bianco);color:var(--verde);border-color:var(--bianco)}
.days button .ok{position:absolute;top:3px;right:6px;font-size:11px}

main{padding:12px 12px 24px;max-width:640px;margin:0 auto}
.day-title{display:flex;justify-content:space-between;align-items:baseline;margin:4px 2px 10px}
.day-title h2{margin:0;font-size:20px}
.day-title span{color:var(--testo-2);font-size:14px}

/* banner questionario */
.qban{display:block;width:100%;text-align:left;background:var(--tinta-6);border:1.5px solid var(--verde);border-radius:var(--raggio);padding:12px 14px;margin-bottom:12px;min-height:48px}
.qban b{color:var(--verde)}
.qban span{float:right;color:var(--verde);font-weight:600}

/* scheda esercizio */
.card{border:1.5px solid var(--bordo);border-radius:var(--raggio);margin-bottom:12px;overflow:hidden;background:var(--bianco)}
.card-h{padding:10px 12px;display:flex;gap:10px;align-items:flex-start}
.chip{flex:0 0 auto;min-width:38px;text-align:center;font-weight:700;font-size:15px;border-radius:9px;padding:4px 8px;color:var(--nero);background:var(--cat-accessori)}
.c-potenza .chip{background:var(--cat-potenza)}.c-forza .chip{background:var(--cat-forza)}.c-pliometria .chip{background:var(--cat-pliometria)}.c-accessori .chip{background:var(--cat-accessori)}.c-corsa .chip{background:var(--cat-corsa)}.c-conditioning .chip{background:var(--cat-conditioning)}
.card-t{flex:1;min-width:0}
.card-t h3{margin:0;font-size:21px;font-weight:700;line-height:1.15;letter-spacing:-.005em}
.cat{font-size:12px;margin-bottom:2px;color:var(--testo-2);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.presc{margin:3px 0 0;font-size:15px;font-weight:600;color:var(--verde)}
.cue{margin:4px 0 0;font-size:14px;color:var(--testo-2)}
.meta{margin:4px 0 0;font-size:13px;color:var(--testo-2);display:flex;flex-wrap:wrap;gap:4px 12px}
.ult{font-size:13px;color:var(--testo-2);margin:4px 0 0}
.note-coach{margin:6px 0 0;font-size:14px;background:var(--tinta-6);border-radius:8px;padding:6px 8px}
.card-prog{height:4px;background:var(--tinta-16)}.card-prog i{display:block;height:100%;background:var(--verde);width:0;transition:width .2s}

/* serie */
.serie{display:grid;grid-template-columns:20px 1fr 46px;gap:6px;align-items:center;padding:6px 10px 6px 12px;border-top:1px solid var(--bordo)}
.serie .n{font-weight:700;color:var(--testo-2);text-align:center}
.serie.attiva{background:var(--tinta-6);border-left:5px solid var(--verde);padding-left:7px}
.serie.fatta{background:var(--tinta-10)}
.campi{display:flex;flex-wrap:wrap;gap:5px}
.cmp{display:flex;flex-direction:column;flex:1 1 42px;min-width:38px;max-width:84px}
.cmp label{font-size:10px;color:var(--testo-2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.cmp input{width:100%;min-height:44px;border:1.5px solid var(--bordo-campo);border-radius:9px;padding:0 6px;font-size:16px;font-weight:600;text-align:center;background:var(--bianco)}
.cmp input:focus{outline:3px solid var(--verde);outline-offset:1px}
.cmp input.err{border-color:var(--errore);color:var(--errore)}
.cmp input[readonly]{background:var(--tinta-10);border-color:var(--tinta-16)}
.cmp.wide{flex:2 1 120px;max-width:none}
.mini{display:flex;gap:4px}
.mini input{flex:1;min-width:0;max-width:48px}
.rip-c{display:flex;flex-direction:column;flex:2 1 92px;max-width:none}
.rip-c .mini input{max-width:52px}
.tick{width:46px;height:46px;border-radius:12px;border:2px solid var(--verde);background:var(--bianco);color:var(--verde);font-size:22px;font-weight:700}
.serie.fatta .tick{background:var(--verde);color:var(--bianco)}
.tick:active{background:var(--verde-premuto);color:var(--bianco)}
.intra{grid-column:2/4;font-size:12px;color:var(--testo-2);margin-top:-2px}
.riepilogo{grid-column:2/4;font-size:14px;color:var(--testo)}
.annulla{grid-column:2/4;justify-self:start;background:none;border:0;color:var(--testo-2);text-decoration:underline;font-size:13px;min-height:32px;padding:0}

/* pulsanti */
.btn{min-height:48px;border-radius:var(--raggio);padding:0 18px;font-weight:600;border:2px solid var(--verde)}
.btn.main{background:var(--verde);color:var(--bianco)}
.btn.main:active{background:var(--verde-premuto)}
.btn.main[disabled]{background:var(--tinta-16);border-color:var(--tinta-16);color:var(--testo-2)}
.btn.ghost{background:var(--bianco);color:var(--verde)}
.fine{margin:16px 0 8px}.fine .btn{width:100%}
.fatta-giorno{background:var(--tinta-10);border-radius:var(--raggio);padding:14px;text-align:center;margin-top:12px}

/* recupero */
.rest{position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:30;background:var(--verde);color:var(--bianco);border-radius:var(--raggio);padding:10px 12px 12px;display:grid;grid-template-columns:1fr auto;gap:6px;box-shadow:0 4px 16px rgba(0,0,0,.25);max-width:640px;margin:0 auto}
.rest[hidden]{display:none}
.rest-t{display:flex;flex-direction:column}.rest-l{font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.85}.rest-t b{font-size:30px;font-variant-numeric:tabular-nums}
.rest-b{display:flex;gap:6px;align-items:center}
.rest-b button{min-width:48px;min-height:44px;border-radius:12px;border:1.5px solid rgba(255,255,255,.6);background:transparent;color:var(--bianco);font-weight:600;padding:0 10px}
.rest-bar{grid-column:1/3;height:5px;border-radius:3px;background:rgba(255,255,255,.25);overflow:hidden}.rest-bar i{display:block;height:100%;background:var(--bianco);width:100%}
.rest.fin .rest-t b{color:#fff}.rest.fin{background:var(--verde-premuto)}

/* questionario */
.q h2{margin:4px 0}.q-head{display:flex;justify-content:space-between;align-items:center}
.q-salta{background:none;border:0;color:var(--testo-2);min-height:44px;padding:0 4px}
.q-sub{color:var(--testo-2);margin:2px 0 12px}
.q-it{border:1.5px solid var(--bordo);border-radius:var(--raggio);padding:10px 12px 12px;margin-bottom:10px}
.q-it.set{border-color:var(--verde)}
.q-top{display:flex;justify-content:space-between;align-items:baseline}
.q-nome{font-weight:700}.q-tag{font-weight:400;font-size:12px;color:var(--testo-2);margin-left:6px}
.q-val{font-weight:700;color:var(--verde);font-size:18px}.q-val.none{color:var(--testo-2);font-weight:400;font-size:14px}
.q-s{font-size:13px;color:var(--testo-2)}
.q-it input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:8px 0 0;touch-action:none}
.q-it input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(to right,var(--verde) var(--p),var(--tinta-16) var(--p))}
.q-it input[type=range]::-moz-range-track{height:8px;border-radius:4px;background:var(--tinta-16)}
.q-it input[type=range]::-moz-range-progress{height:8px;border-radius:4px;background:var(--verde)}
.q-it input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--verde);border:3px solid var(--bianco);box-shadow:0 0 0 1.5px var(--verde);margin-top:-10px}
.q-it input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--verde);border:3px solid var(--bianco)}
.q-it input[type=range].unset::-webkit-slider-runnable-track{background:var(--tinta-16)}
.q-it input[type=range].unset::-webkit-slider-thumb{background:var(--bianco);box-shadow:0 0 0 1.5px var(--bordo-campo);border-color:var(--bianco)}
.ticks{position:relative;height:16px;font-size:12px;color:var(--testo-2)}.ticks span{position:absolute;transform:translateX(-50%)}
.q-desc{min-height:20px;font-size:14px;margin-top:2px}
.q-dove{width:100%;min-height:48px;margin-top:6px;border:1.5px solid var(--bordo-campo);border-radius:10px;padding:0 10px}
.q-sez{margin:16px 2px 6px;font-weight:700;font-size:15px}
.q-sez small{font-weight:400;color:var(--testo-2)}
.q-row{display:flex;gap:8px;margin-bottom:8px}
.q-row .cmp{flex:1;max-width:none}
.q-ok{width:100%;margin-top:6px}.q-manca{text-align:center;color:var(--testo-2);font-size:14px;margin-top:6px;min-height:20px}
.q-avv{color:var(--errore);font-size:14px;margin:0 0 8px}

/* chiusura seduta */
.chiudi h2{margin:4px 0 2px}.chiudi p{color:var(--testo-2);margin:2px 0 12px}
.srpe{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:6px 0 4px}
.srpe button{min-height:48px;border-radius:12px;border:1.5px solid var(--bordo-campo);background:var(--bianco);font-weight:700;font-size:17px}
.srpe button.on{background:var(--verde);color:var(--bianco);border-color:var(--verde)}
.srpe-d{min-height:22px;color:var(--verde);font-weight:600;margin-bottom:10px}
.chiudi textarea{width:100%;min-height:80px;border:1.5px solid var(--bordo-campo);border-radius:10px;padding:8px 10px;resize:vertical}

/* feedback */
.toast{position:fixed;left:50%;top:calc(70px + env(safe-area-inset-top));transform:translateX(-50%) translateY(-8px);background:var(--nero);color:var(--bianco);padding:10px 16px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s;z-index:60;max-width:90%;text-align:center;font-size:15px}
.toast.show{opacity:1;transform:translateX(-50%)}
.sync{position:fixed;right:10px;top:calc(10px + env(safe-area-inset-top));z-index:40;font-size:12px;padding:3px 9px;border-radius:10px;background:var(--bianco);color:var(--verde);opacity:0;transition:.2s}
.sync.on{opacity:1}.sync.off{background:var(--attenzione);color:var(--nero)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:80;display:flex;align-items:center;justify-content:center;padding:20px}
.modal[hidden]{display:none}
.modal .box{background:var(--bianco);border-radius:var(--raggio);padding:18px;max-width:420px;width:100%}
.modal h3{margin:0 0 6px}.modal p{margin:0 0 14px;color:var(--testo-2)}
.modal .actions{display:flex;gap:8px;justify-content:flex-end}
.vuoto{padding:40px 16px;text-align:center;color:var(--testo-2)}
.err-box{border:1.5px solid var(--errore);border-radius:var(--raggio);padding:14px;margin:12px 0}
.err-box button{margin-top:8px}
.orfani{background:var(--attenzione);color:var(--nero);border-radius:var(--raggio);padding:10px 12px;margin-bottom:12px;font-size:14px}
@media (min-width:700px){main{padding-top:20px}}

/* video degli esercizi */
.exrow{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.exrow h3{flex:1;min-width:0;overflow-wrap:anywhere}
.vidb{flex:0 0 auto;min-height:36px;border:1.5px solid var(--verde);background:var(--bianco);color:var(--verde);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;line-height:1.2}
.vidb.on{background:var(--verde);color:var(--bianco)}
.vbox:empty{display:none}
.vbox{padding:0 12px 10px}
.vframe{position:relative;border-radius:10px;overflow:hidden;background:#000;aspect-ratio:16/9}
.vframe iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* home: calendario mensile */
.days .dhome{flex:0 0 auto;min-width:46px;font-size:20px}
.prox{background:var(--verde);color:var(--bianco);border-radius:var(--raggio);padding:14px 16px 16px;margin-bottom:16px}
.prox-l{font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.85;font-weight:600}
.prox-t{font-size:22px;font-weight:700;margin-top:2px}
.prox-d{font-size:14px;opacity:.9;margin:2px 0 12px}
.prox .btn{width:100%;background:var(--bianco);color:var(--verde);border-color:var(--bianco)}
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-h b{font-size:18px;text-transform:capitalize}
.cal-h button{background:none;border:0;font-size:30px;line-height:1;width:48px;height:44px;color:var(--verde)}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.dow{text-align:center;font-size:12px;font-weight:600;color:var(--testo-2);padding:2px 0}
.gg{min-height:50px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px solid transparent;background:none;color:var(--testo);font-family:inherit;padding:0}
.gg b{font-size:15px;font-weight:500}
.gg i{font-style:normal;font-size:10px;letter-spacing:.03em;font-weight:600;margin-top:1px}
.gg.vuoto{visibility:hidden}
.gg.oggi{box-shadow:inset 0 0 0 2px var(--nero)}
.gg.sed{border-color:var(--verde);background:var(--tinta-6)}
.gg.sed b{font-weight:700}
.gg.sed.st-inizio{background:var(--cat-potenza)}
.gg.sed.st-chiusa{background:var(--verde);color:var(--bianco)}
.cal-leg{font-size:13px;color:var(--testo-2);margin:12px 2px 0}
.wk[hidden]{display:none}

/* nota per esercizio */
.nota-es{padding:4px 12px 8px;border-top:1px solid var(--bordo)}
.nota-v{margin:6px 0 0;font-size:14px;background:var(--tinta-6);border-radius:8px;padding:6px 8px;color:var(--testo)}
.nota-apri{grid-column:auto;min-height:36px;margin-top:2px}
.nota-t{width:100%;min-height:76px;margin-top:8px;border:1.5px solid var(--bordo-campo);border-radius:10px;padding:8px 10px;resize:vertical}
.nota-b{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-top:6px}
.nota-b .annulla{grid-column:auto}
.nota-b .btn{min-height:44px}

/* invito all'installazione */
.inst{background:var(--tinta-6);border:1.5px solid var(--verde);border-radius:var(--raggio);padding:12px 14px;margin-bottom:12px}
.inst b{color:var(--verde)}
.inst p{margin:4px 0 0;font-size:14px;color:var(--testo)}
.inst ol{margin:6px 0 0;padding-left:20px;font-size:14px}
.inst li{margin:2px 0}
.inst-b{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:8px}
.inst-b .annulla{grid-column:auto}
.inst-b .btn{min-height:44px}

/* readiness: scheda "Come stai" */
.rd{border:1.5px solid var(--bordo);border-radius:var(--raggio);padding:12px 12px 10px;margin-top:14px}
.rd-h{display:flex;justify-content:space-between;align-items:center}
.rd-h h3{margin:0;font-size:17px}
.rd-pill{font-weight:700;font-size:13px;padding:4px 12px;border-radius:999px}
.rd-pill.st-verde{background:var(--verde);color:var(--bianco)}
.rd-pill.st-giallo{background:var(--attenzione);color:var(--nero)}
.rd-pill.st-rosso{background:var(--allerta);color:var(--bianco)}
.rd-pill.st-grigio{background:var(--tinta-16);color:var(--nero)}
.rd-f{margin:6px 0 4px;font-size:14px}
.rd-d{color:var(--testo-2);font-size:12px;white-space:nowrap}
.rd-svg{width:100%;height:auto;display:block}
.rd-t{font-size:9px;fill:var(--testo-2);font-weight:600}
.rd-e{font-size:8px;fill:var(--testo-2)}
.rd-b{fill:var(--tinta-10)}
.rd-z{stroke:var(--bordo-campo);stroke-width:.6;stroke-dasharray:2 2}
.rd-l{fill:none;stroke:var(--verde);stroke-width:1.4;opacity:.55}
.rd-v{fill:var(--verde)}
.rd-g{fill:var(--attenzione);stroke:var(--nero);stroke-width:.8}
.rd-r{fill:var(--allerta)}
.rd-n{fill:var(--bianco);stroke:var(--testo-2);stroke-width:1.2}
.rd-u{fill:var(--tinta-16);stroke:var(--verde);stroke-width:.6}
.rd-leg{margin:4px 0 0;font-size:12px;color:var(--testo-2);display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* Corsa e Conditioning (0.4.0) */
.serie .etic{grid-column:1/-1;font-size:12px;color:var(--testo-2);margin:-2px 0 0 2px}
.serie .etic b{color:var(--nero)}
.avviso-uka{margin:0;padding:9px 12px;font-size:13px;line-height:1.35;background:#FFF3D6;border-top:1px solid var(--bordo);color:var(--nero)}
.uka{margin:6px 0 0;font-size:13px;color:var(--testo-2)}
.uka summary{cursor:pointer;font-weight:600;list-style:none}
.uka summary::-webkit-details-marker{display:none}
.uka summary::before{content:"ⓘ ";}
.uka p{margin:4px 0 0}
.cmp input::placeholder{color:#A3A9A5;opacity:1}
