/* FORMA 4.0: stile "scuro ardesia" su richiesta di Dani (riferimento: schermate che ha mandato il 4 novembre 2026).
   Sopra modern.css: colori, card morbide, barra in basso a pillola, Home con saluto, settimana e statistiche 2x2. */
:root {
  --bg: #1b1e27;
  --surface: #232733;
  --surface-2: #2b2f3c;
  --surface-3: #363b4a;
  --line: rgba(255, 255, 255, .06);
  --line-2: rgba(255, 255, 255, .11);
  --ink: #f3f4f6;
  --ink-2: #aeb2bd;
  --ink-3: #a0a5b1;
  --accent: #ef7b55;
  --accent-2: #f49a73;
  --accent-ink: #1b1e27;
  --accent-wash: rgba(239, 123, 85, .14);
  --lime: #b9dc6e;
  --lime-ink: #1b1e27;
  --sun: #f2c94c;
  --done: #b9dc6e;
  --progress: #f2c94c;
  --time: #f3f4f6;
  --card: #232733;
  --r: 24px;
  --r-sm: 16px;
  --lift: 0 10px 30px rgba(0, 0, 0, .25);
  --ring-move: #ef7b55;
  --ring-exercise: #f2c94c;
  --ring-protein: #b9dc6e;
}
html, body { background: var(--bg); }
body { background-image: radial-gradient(ellipse 120% 40% at 50% -10%, rgba(80, 96, 140, .22), transparent 70%); }

/* Card */
.block, .card, .hero-card, .plan-day, .block4 .stat4, .week4 { border-radius: var(--r); }
.block, .card { background: linear-gradient(160deg, #262a37, #212531); border: 1px solid var(--line); box-shadow: var(--lift); }

/* Pulsanti */
.btn.primary { background: var(--accent); color: var(--accent-ink); border-radius: 999px; box-shadow: 0 10px 24px rgba(239, 123, 85, .28); }
.btn.secondary { background: var(--surface-2); color: var(--ink); border: 1px solid var(--line-2); border-radius: 999px; }
.icon-btn { background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 16px; }

/* Barra in basso a pillola: icone rotonde, la sezione attiva diventa una pillola arancio con il nome */
.tabbar { bottom: calc(var(--safe-b) + 8px) !important; padding-bottom: 0 !important; background: rgba(35, 39, 51, .94) !important; border: 1px solid var(--line-2) !important; border-radius: 999px !important; }
.tabbar ul { display: flex !important; gap: 4px !important; align-items: center; padding: 6px !important; }
.tabbar li { flex: 0 0 auto; }
.tabbar li:has(a.on) { flex: 1 1 0; min-width: 0; }
.tabbar a { height: 50px !important; min-width: 44px !important; border-radius: 999px !important; background: var(--surface-2) !important; color: var(--ink-2) !important; font-size: 0 !important; display: flex !important; flex-direction: row !important; align-items: center; justify-content: center; gap: 8px !important; padding: 0 14px !important; }
.tabbar a svg { width: 22px; height: 22px; flex: 0 0 auto; }
.tabbar a.on { background: var(--accent) !important; color: var(--accent-ink) !important; font-size: 12.5px !important; font-weight: 700; padding: 0 10px !important; gap: 6px !important; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 360px) { .tabbar a { min-width: 44px !important; padding: 0 10px !important; } .tabbar a.on { font-size: 0 !important; padding: 0 10px !important; } }

/* Home: saluto, settimana, statistiche */
.home4-head { display: flex; align-items: center; gap: 12px; padding: calc(var(--safe-t) + 10px) 0 14px; }
.home4-me { width: 48px; height: 48px; border-radius: 16px; overflow: hidden; background: var(--accent-wash); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.home4-me img { width: 100%; height: 100%; object-fit: cover; }
.home4-initial { color: var(--accent); font-weight: 800; font-size: 20px; }
.home4-hello { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.home4-hello small { color: var(--ink-3); font-size: 13px; }
.home4-hello h1 { margin: 0; line-height: 1.2; font-size: 20px; font-weight: 700; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home4-coach { width: 48px; height: 48px; }

.week4 { display: flex; align-items: center; gap: 10px; padding: 8px; background: var(--surface); border: 1px solid var(--line); margin-bottom: 20px; }
.week4-streak { display: flex; flex-direction: column; align-items: center; min-width: 56px; padding: 6px 8px; border-radius: 16px; background: var(--surface-2); }
.week4-streak b { font-size: 16px; color: var(--accent); }
.week4-streak small { font-size: 11px; color: var(--ink-2); }
.week4-today { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: var(--surface-2); flex: 1 1 auto; min-width: 0; }
.week4-today b { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 8px; border-radius: 999px; background: var(--lime); color: var(--lime-ink); font-size: 13px; text-transform: capitalize; }
.week4-today span { font-size: 13px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.week4-next { display: flex; gap: 10px; list-style: none; margin: 0; padding: 0 6px 0 0; }
.week4-next li { display: flex; flex-direction: column; align-items: center; }
.week4-next b { font-size: 14px; color: var(--ink); }
.week4-next span { font-size: 11px; color: var(--ink-3); text-transform: capitalize; }

.block4 h2, .title4 { font-size: 18px; font-weight: 700; margin: 0 0 12px; color: var(--ink); }
.title4 { margin-top: 8px; }
.block4 { margin-bottom: 20px; }
.stats4 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.stat4 { display: flex; flex-direction: column; gap: 10px; padding: 16px; min-height: 96px; background: linear-gradient(150deg, #2c303d, #242834); border: 1px solid var(--line); text-decoration: none; color: var(--ink-2); }
.stat4.warm { background: linear-gradient(150deg, #3a2f30, #252833 70%); }
.stat4.lime { background: linear-gradient(150deg, #2f3529, #252833 70%); }
.stat4-top { display: flex; justify-content: space-between; align-items: center; font-size: 14px; }
.stat4-val b { font-size: 24px; font-weight: 800; }
.stat4.warm .stat4-val b { color: var(--accent); }
.stat4.lime .stat4-val b { color: var(--lime); }
.stat4-val small { font-size: 12px; color: var(--ink-3); }

/* Allenamento di oggi: foto a destra, testo a sinistra su sfumatura */
.hero-card.has-photo { border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); }
.hero-card.has-photo .hero-photo { object-position: 70% 30%; }
.hero-card.hero.has-photo::after { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; width: auto !important; height: auto !important; inset: 0 !important; background: linear-gradient(100deg, rgba(27, 30, 39, .96) 18%, rgba(27, 30, 39, .55) 55%, rgba(27, 30, 39, .15)) !important; }
.hero-card .pill { background: rgba(27, 30, 39, .6); border: 1px solid var(--line-2); border-radius: 999px; }

/* Domande iniziali e scelte */
.choice { border-radius: 20px; background: var(--surface); border: 1px solid var(--line-2); }
.choice.on { border-color: var(--accent); background: linear-gradient(150deg, #3a2f30, #252833 70%); }
.steps-bar span.on { background: var(--accent); }
html:is([lang="ru"], [lang="hy"]) .tabbar a.on svg { display: none; } /* parole più lunghe: nella pillola attiva resta solo il nome */
main { padding-bottom: calc(var(--safe-b) + 96px) !important; }
body.no-tabs main { padding-bottom: calc(var(--safe-b) + 24px) !important; }
body.resting main { padding-bottom: calc(var(--safe-b) + 190px) !important; }

/* ---------- Menu settimanale (4.0) ---------- */
.wk-intro .wk-hero { display: grid; gap: 8px; justify-items: start; padding: 4px 0 14px; }
.wk-intro .wk-hero .ic { color: var(--accent); }
.wk-intro .wk-hero h2 { margin: 0; font-size: 24px; line-height: 1.15; }
.wk-intro .wk-hero p { margin: 0; color: var(--ink-2); }
.wk-prefs { display: grid; gap: 14px; }
.wk-diet { border: 0; margin: 0; padding: 0; }
.wk-diet legend { font-size: 14px; color: var(--ink-2); margin-bottom: 8px; padding: 0; }
.wk-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.wk-chip { position: relative; }
.wk-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; }
.wk-chip span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--line-2); font-size: 15px; font-weight: 600; color: var(--ink); }
.wk-chip input:checked + span { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.wk-chip input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 2px; }
.wk-more summary, .wk-redo summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); }
.wk-more { display: grid; gap: 12px; }
.wk-more[open] > summary { margin-bottom: 4px; }

.wk { display: grid; gap: 16px; margin-bottom: 16px; }
.wk-summary { padding: 20px; border-radius: var(--r); background: linear-gradient(140deg, rgba(239, 123, 85, .22), rgba(239, 123, 85, .04) 60%), var(--surface); border: 1px solid var(--line-2); }
.wk-summary .eyebrow { margin: 0 0 4px; color: var(--accent-2); text-transform: none; letter-spacing: .02em; }
.wk-summary h2 { margin: 0 0 6px; font-size: 26px; }
.wk-avg { margin: 0 0 14px; color: var(--ink-2); }
.wk-avg b { color: var(--ink); }
.wk-jump { display: flex; flex-wrap: wrap; gap: 8px; }

.wk-days { display: grid; grid-template-columns: repeat(7, minmax(44px, 1fr)); gap: 6px; overflow-x: auto; scrollbar-width: none; }
.wk-days::-webkit-scrollbar { display: none; }
.wk-daybtn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 64px; padding: 6px 0; border-radius: 18px; border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); font: inherit; cursor: pointer; }
.wk-daybtn small { font-size: 11px; text-transform: capitalize; }
.wk-daybtn b { font-size: 18px; color: var(--ink); }
.wk-daybtn.is-today { border-color: var(--lime); }
.wk-daybtn.is-on { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.wk-daybtn.is-on b { color: var(--accent-ink); }

.wk-dayhead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; }
.wk-dayhead h2 { margin: 0; font-size: 20px; }
.wk-dayhead p { display: flex; gap: 6px; margin: 0; }
.wk-pill { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 999px; background: var(--surface-2); font-size: 13px; color: var(--ink); }

.wk-meals { display: grid; gap: 10px; }
.wk-meal { --slot: var(--accent); position: relative; padding: 16px 16px 12px 20px; border-radius: var(--r-sm); background: var(--surface); border: 1px solid var(--line); overflow: hidden; }
.wk-meal::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 4px; border-radius: 0 4px 4px 0; background: var(--slot); }
.wk-colazione { --slot: var(--sun); }
.wk-pranzo { --slot: var(--accent); }
.wk-spuntino { --slot: var(--lime); }
.wk-cena { --slot: #8fa8ff; }
.wk-meal header { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.wk-slot { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--slot); }
.wk-kcal { font-size: 13px; color: var(--ink-2); }
.wk-kcal b { font-size: 17px; color: var(--ink); }
.wk-meal h3 { margin: 0 0 4px; font-size: 17px; line-height: 1.3; }
.wk-prot { margin: 0; font-size: 13px; color: var(--ink-2); }
.wk-ing { margin-top: 8px; }
.wk-ing summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-size: 14px; font-weight: 600; color: var(--accent-2); }
.wk-ing ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.wk-ing li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-top: 1px solid var(--line); font-size: 14px; }
.wk-ing li small { color: var(--ink-2); white-space: nowrap; }
.wk-recipe ol { margin: 0; padding: 0 0 0 22px; display: grid; gap: 6px; }
.wk-recipe ol li { display: list-item; border-top: 0; padding: 4px 0 4px 2px; font-size: 14px; line-height: 1.45; }

.wk-shop .wk-bar { height: 6px; border-radius: 99px; background: var(--surface-2); overflow: hidden; margin: 4px 0 14px; }
.wk-shop .wk-bar i { display: block; height: 100%; background: var(--lime); border-radius: inherit; }
.wk-share { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; }
.wk-share + .fine { margin: 8px 0 6px; }
.wk-aisle { margin: 18px 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); }
.wk-items { list-style: none; margin: 0; padding: 0; }
.wk-item { position: relative; display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 4px 0; border-top: 1px solid var(--line); cursor: pointer; }
.wk-item input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.wk-tick { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--line-2); color: transparent; }
.wk-item input:checked ~ .wk-tick { background: var(--lime); border-color: var(--lime); color: var(--lime-ink); }
.wk-item input:focus-visible ~ .wk-tick { outline: 2px solid var(--ink); outline-offset: 2px; }
.wk-name { flex: 1 1 auto; min-width: 0; }
.wk-item small { color: var(--ink-2); white-space: nowrap; }
.wk-item.is-checked .wk-name { text-decoration: line-through; color: var(--ink-3); }
.wk-redo { padding: 6px 18px; }
.wk-redo[open] { padding-bottom: 18px; }
.wk-redo[open] > summary { margin-bottom: 10px; }

/* ---------- Stima con l'AI (4.0): una riga sola ---------- */
.aiq-lead { margin: 0 0 12px; color: var(--ink-2); }
.aiq-bar { display: flex; align-items: center; gap: 6px; padding: 6px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--line-2); }
.aiq-bar:focus-within { border-color: var(--accent); }
.aiq-bar input:not([type=checkbox]):not([type=radio]) { flex: 1 1 auto; min-width: 0; min-height: 44px; padding: 0 12px; border: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--ink); font: inherit; font-size: 16px; }
.aiq-bar input:focus { outline: none; box-shadow: none !important; }
.aiq-cam, .aiq-go { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; border: 0; cursor: pointer; }
.aiq-cam { position: relative; background: var(--surface-3); color: var(--ink); }
.aiq-cam.is-on { background: var(--lime); color: var(--lime-ink); }
.aiq-cam:focus-within { outline: 2px solid var(--ink); outline-offset: 2px; }
.aiq-go { background: var(--accent); color: var(--accent-ink); }
.aiq-go:disabled { opacity: .6; }
.aiq-photo { display: flex; align-items: center; gap: 6px; margin: 10px 4px 0; font-size: 14px; color: var(--lime); }
.aiq-photo .link { padding: 0 6px; min-height: 44px; font-size: 14px; }
.aiq-total { text-align: center; padding: 4px 0 12px; }
.aiq-total .eyebrow { margin: 0; }
.aiq-kcal { margin: 2px 0 8px; font-size: 15px; color: var(--ink-2); }
.aiq-kcal b { font-size: 44px; line-height: 1; color: var(--ink); letter-spacing: -.02em; }
.aiq-macros { display: flex; justify-content: center; gap: 6px; margin: 0; }
.aiq-macros span { padding: 4px 10px; border-radius: 999px; background: var(--surface-2); font-size: 13px; }
.aiq-items { list-style: none; margin: 0 0 12px; padding: 0; }
.aiq-items li { display: flex; align-items: center; gap: 8px; min-height: 52px; border-top: 1px solid var(--line); }
.aiq-items .row-main { flex: 1 1 auto; min-width: 0; display: grid; }
.aiq-items .row-main small { color: var(--ink-2); }
.aiq-g { display: inline-flex; align-items: center; gap: 4px; padding: 0 10px; min-height: 44px; border-radius: 12px; background: var(--surface-2); font-size: 14px; color: var(--ink-2); }
.aiq-g input:not([type=checkbox]):not([type=radio]) { width: 3.2em; min-height: 40px; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--ink); font: inherit; font-size: 16px; text-align: right; }
.aiq .btn.ghost { width: 100%; }

/* ======================================================================
   Rifinitura 4.1 (stile Movemate, più rifinito): un solo carattere, etichette normali,
   numeri grandi e chiari, riquadri e interruttori uguali in tutte le schermate.
   ====================================================================== */
:root { --display: var(--font); --r-xs: 12px; }
h1, h2, h3, .hero-card h2, .block h2 { letter-spacing: -.02em; }
.block h2, .block-head h2 { font-size: 20px; line-height: 1.2; }
.block h3 { font-size: 16px; }

/* Etichette: niente maiuscolo da terminale, testo normale piccolo e grigio */
.kicker, .label, .meta-label, .facts dt, .metric > span, .stat > span, .eyebrow {
  text-transform: none; letter-spacing: 0; font-family: var(--font); font-size: 13px; font-weight: 600; color: var(--ink-2);
}
.kicker::before { display: none; }

/* Numeri: grandi, bianchi, senza bagliore */
.stat b, .metric b, .facts dd, .ring-center b { font-family: var(--font); font-variant-numeric: tabular-nums; color: var(--ink); text-shadow: none; font-weight: 750; letter-spacing: -.02em; }
.metric b, .facts dd { font-size: 28px; line-height: 1.1; margin: 4px 0 2px; }
.facts small, .metric small, .nutrition-readout .facts small { font-family: var(--font); font-size: 12px; color: var(--ink-2); }

/* Riquadri dei numeri: come le statistiche della Home */
.metric, .facts > div, .stat {
  background: var(--surface-2) !important; border: 1px solid var(--line) !important; border-radius: var(--r-sm) !important;
  padding: 14px 16px !important; box-shadow: none !important; background-image: none !important;
}
.facts, .metrics { gap: 10px !important; }
.metric::before, .metric::after, .facts > div::before, .facts > div::after, .stat::before, .stat::after { display: none !important; }

/* Interruttori a pillola (Esercizi/Settimane/Corpo, Diario/Menu/Stima, Massimale/Carico) */
.seg, .nutrition-tabs { display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.seg::-webkit-scrollbar, .nutrition-tabs::-webkit-scrollbar { display: none; }
.seg-btn, .nutrition-tabs a { flex: 1 0 auto; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 0; background: transparent; color: var(--ink-2); font: 600 14px/1 var(--font); text-decoration: none; white-space: nowrap; box-shadow: none; }
.seg-btn.on, .nutrition-tabs a[aria-current="page"] { background: var(--accent) !important; color: var(--accent-ink) !important; background-image: none !important; box-shadow: none !important; }

/* Link nel testo: arancio, senza sottolineatura */
.meta-line a, p a:not(.btn), .lead a { color: var(--accent-2); text-decoration: none; font-weight: 600; }

/* Campi: stesso carattere dell'app, mai quello da macchina da scrivere */
input, textarea, select, input.grams-edit { font-family: var(--font) !important; }
textarea { line-height: 1.4; }

/* Pulsanti a pillola */
.btn { border-radius: 999px; }
.btn.secondary { background: var(--surface-2); border-color: var(--line-2); color: var(--ink); }

/* Profilo: testata con avatar grande, nome in evidenza */
.me-head { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); }
.me-head .row-main strong { font-size: 22px; letter-spacing: -.02em; text-decoration: none; }
.me-head .row-main small { color: var(--ink-2); text-decoration: none; }
.me-avatar { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--accent-wash); color: var(--accent); box-shadow: 0 0 0 3px var(--bg), 0 0 0 5px var(--accent); }
.me-avatar b { font-size: 22px; }

/* Esercizi: ricerca larga, sotto i filtri in una riga a pillole che scorre */
.filters { display: grid; gap: 10px; }
.filters .search { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 16px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--line-2); }
.filters .search input:not([type=checkbox]) { flex: 1 1 auto; min-width: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; min-height: 44px; }
.filter-row { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.filter-row::-webkit-scrollbar { display: none; }
.filters .select { flex: 0 0 auto; }
.filters .select select { min-height: 44px; padding: 0 34px 0 16px !important; border-radius: 999px !important; font-size: 14px; font-weight: 600; }

/* Righe degli elenchi: miniature tonde e spazio regolare */
.plan-items li, .list .row { gap: 12px; }
.plan-items .thumb, .row .thumb, .ex-thumb { border-radius: var(--r-xs); overflow: hidden; }

/* Righe di menu del Profilo: icona in un quadrato colorato */
.menu-row .ic, .nav-row .ic { color: var(--accent); }

/* Elenchi a scomparsa */
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }

.nutrition-readout .facts dt, .facts.big dt { font: 600 13px/1.3 var(--font); letter-spacing: 0; text-transform: none; color: var(--ink-2); }
.nutrition-readout > .meta-line { display: block; }
.filters .filter-row { display: flex !important; flex-wrap: nowrap !important; grid-template-columns: none !important; }
.nutrition-readout .facts dd { font: 750 26px/1.1 var(--font) !important; letter-spacing: -.02em; color: var(--ink) !important; margin: 4px 0 0; }

/* Seduta: chili e ripetizioni in un unico controllo a pillola, tasti tondi */
.stepper { display: flex !important; align-items: center; gap: 8px; padding: 6px !important; border-radius: 999px !important; background: var(--surface-2) !important; border: 1px solid var(--line-2) !important; box-shadow: none !important; }
.stepper .step { flex: 0 0 auto; width: 52px !important; height: 52px !important; min-height: 52px; border-radius: 50% !important; background: var(--surface-3) !important; border: 0 !important; color: var(--ink) !important; box-shadow: none !important; display: inline-flex; align-items: center; justify-content: center; }
.stepper .step:active { background: var(--accent) !important; color: var(--accent-ink) !important; }
.stepper .step-val { flex: 1 1 auto; display: flex; align-items: baseline; justify-content: center; gap: 6px; background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; min-width: 0; }
.stepper .step-input:not([type=checkbox]) { width: 100%; max-width: 5.5ch; text-align: center; font: 750 30px/1 var(--font) !important; letter-spacing: -.02em; background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; color: var(--ink) !important; }
.stepper .step-val span { font: 600 13px/1 var(--font); color: var(--ink-2); text-transform: none; letter-spacing: 0; }
.steppers { display: grid; gap: 10px; }

/* Spunte tonde ovunque (prima di iniziare, integratori, serie dell'elenco) */
.tick { border-radius: 50% !important; width: 40px; height: 40px; min-width: 44px; min-height: 44px; background: transparent !important; border: 2px solid var(--line-2) !important; color: transparent !important; box-shadow: none !important; display: inline-flex; align-items: center; justify-content: center; }
.tick.on { background: var(--lime) !important; border-color: var(--lime) !important; color: var(--lime-ink) !important; }
li.done strong, li.done > div > strong { color: var(--ink-3); }

/* ======================================================================
   FORMA AI (4.2): un colore tutto suo (arancio che sfuma nel viola), la scintilla,
   il riquadro in Home e le pagine dell'AI riconoscibili a colpo d'occhio.
   ====================================================================== */
:root { --ai-1: #ef7b55; --ai-2: #d06ad8; --ai-3: #7c8cff; --ai-grad: linear-gradient(120deg, var(--ai-1), var(--ai-2) 55%, var(--ai-3)); --ai-grad-text: linear-gradient(120deg, #c64a24, #a03fae 55%, #5560d8); --ai-wash: linear-gradient(150deg, rgba(239, 123, 85, .18), rgba(208, 106, 216, .14) 50%, rgba(124, 140, 255, .14)); }
.ai-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px 5px 9px; border-radius: 999px; background: var(--ai-grad-text); color: #fff; font: 700 12px/1 var(--font); letter-spacing: .04em; text-transform: uppercase; box-shadow: 0 6px 18px rgba(208, 106, 216, .35); }
.ai-chip .ic { width: 14px; height: 14px; }
.bar-title .ai-chip { margin-bottom: 8px; }
.ai-dot { display: inline-flex; margin-right: 5px; color: var(--ai-2); }
.nutrition-tabs a[aria-current="page"] .ai-dot { color: var(--accent-ink); }

/* Riquadro in Home */
.ai-hub { position: relative; margin: 0 0 22px; padding: 18px; border-radius: var(--r); background: var(--ai-wash), var(--surface); isolation: isolate; overflow: hidden; }
.ai-hub::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; background: var(--ai-grad); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; z-index: -1; }
.ai-hub::after { content: ""; position: absolute; width: 220px; height: 220px; right: -70px; top: -90px; border-radius: 50%; background: radial-gradient(closest-side, rgba(208, 106, 216, .35), transparent); filter: blur(8px); pointer-events: none; z-index: -1; }
.ai-hub-head h2 { margin: 12px 0 4px; font-size: 22px; line-height: 1.15; }
.ai-hub-head p { margin: 0 0 14px; color: var(--ink-2); font-size: 14px; }
.ai-ask { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 6px 6px 6px 14px; border-radius: 999px; background: rgba(0, 0, 0, .28); border: 1px solid var(--line-2); color: var(--ink-2); text-decoration: none; margin-bottom: 12px; }
.ai-ask-ic { color: var(--ai-2); display: inline-flex; }
.ai-ask-txt { flex: 1 1 auto; min-width: 0; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ai-ask-go { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ai-grad); color: #fff; flex: 0 0 auto; }
.ai-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ai-tile { display: grid; gap: 4px; align-content: start; min-height: 112px; padding: 14px; border-radius: var(--r-sm); background: rgba(255, 255, 255, .05); border: 1px solid var(--line-2); color: var(--ink); text-decoration: none; }
.ai-tile:active { transform: scale(.98); }
.ai-tile-ic { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; background: var(--ai-grad); color: #fff; margin-bottom: 6px; }
.ai-tile strong { font-size: 15px; line-height: 1.2; }
.ai-tile small { font-size: 12px; line-height: 1.3; color: var(--ink-2); }
.home4-coach { background: var(--ai-grad) !important; color: #fff !important; border: 0 !important; box-shadow: 0 6px 18px rgba(208, 106, 216, .35) !important; }

/* Pagine dell'AI: cornice sfumata sui riquadri principali */
#pasto-ai, .wk-summary, .ai-quick, #ai-form, #corpo-risultato, .chat-ai { position: relative; isolation: isolate; }
#pasto-ai::before, .wk-summary::before, #ai-form::before, #corpo-risultato::before, .chat-ai::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; background: var(--ai-grad); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; z-index: 1; opacity: .9; }
.wk-summary { background: var(--ai-wash), var(--surface) !important; }
.aiq-go, .ai-building .ai-pulse { background: var(--ai-grad-text) !important; color: #fff !important; }
.ai-building .ai-pulse { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; }

/* Coach: conversazione come chat */
.chat-me { margin-left: 18%; background: var(--surface-2) !important; border-radius: 22px 22px 6px 22px !important; }
.chat-ai { margin-right: 8%; background: var(--ai-wash), var(--surface) !important; border-radius: 22px 22px 22px 6px !important; }
.chat-me .meta-line { justify-content: flex-end; }
.ai-who { color: var(--ai-2) !important; font-weight: 700; }
/* Pulsanti che mandano qualcosa all'AI: stessa sfumatura */
.btn.btn[data-act="coach-send"], .btn.btn[data-act="ai-ok"], .btn.btn[data-act="body-go"], .btn.btn[data-act="ai-plan"], .btn.btn[data-act="meal-ai-go"], .wk-prefs .btn.btn[type="submit"], .btn.btn[data-act="week-consent"], .btn.btn[data-act="ob-ai"] {
  background: var(--ai-grad-text) !important; color: #fff !important; border: 0 !important; box-shadow: 0 10px 26px rgba(208, 106, 216, .3) !important;
}
.btn[data-act="coach-suggest"], [data-act="coach-suggest"] { position: relative; background: rgba(255, 255, 255, .04) !important; border: 1px solid rgba(208, 106, 216, .45) !important; }
/* Logo 4.2 dentro l'app */
.brand-logo { width: 30px; height: 30px; border-radius: 9px; flex: 0 0 auto; display: inline-block; }

/* 4.2 correzioni dal video di Dani */
.facts dd { white-space: nowrap; }
.facts dd .of, .nutrition-readout .facts dd .of { font-size: 15px; font-weight: 600; color: var(--ink-2); letter-spacing: 0; }
.meta-line.block-line { display: block; }
.recovery-list .rec-top { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.recovery-list .rec-name { font-weight: 700; overflow-wrap: normal; word-break: normal; hyphens: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.recovery-list .rec-state { font-size: 12px; color: var(--ink-2); }

/* Palestra con l'AI (4.3) */
.ai-scan { display: flex; align-items: center; gap: 12px; padding: 14px; margin: 0 0 14px; border-radius: var(--r-sm); background: var(--ai-wash), var(--surface-2); border: 1px solid rgba(208, 106, 216, .45); color: var(--ink); text-decoration: none; }
.ai-scan > span:nth-child(2) { flex: 1 1 auto; display: grid; gap: 2px; }
.ai-scan strong { font-size: 15px; }
.ai-scan small { font-size: 13px; color: var(--ink-2); }
.ai-scan .ai-tile-ic { margin: 0; flex: 0 0 auto; }
.gym-start .btn.file { width: 100%; margin-top: 10px; }
.ai-file { background: var(--ai-grad-text) !important; color: #fff !important; border: 0 !important; }
.gym-result h2 { margin: 10px 0 8px; font-size: 24px; }
.gym-muscles { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.gym-steps { margin: 0 0 8px; padding-left: 20px; display: grid; gap: 6px; }
.gym-result .btn.file { width: 100%; margin-top: 12px; }

/* Codice a barre (4.3) */
.bc-row { margin-top: 10px; }
.bc-row .btn { width: 100%; }
.bc-card { margin-top: 12px; padding: 14px; border-radius: var(--r-sm); background: var(--surface-2); border: 1px solid var(--line-2); display: grid; gap: 8px; }
.bc-card h3 { margin: 0; font-size: 17px; }
.bc-card .eyebrow { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.bc-scan { position: fixed; inset: 0; z-index: 9000; background: #000; display: grid; grid-template-rows: 1fr auto auto; }
.bc-scan video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bc-frame { position: absolute; left: 8%; right: 8%; top: 50%; height: 22vh; transform: translateY(-50%); border-radius: 18px; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .55); border: 2px solid rgba(255, 255, 255, .85); overflow: hidden; }
.bc-frame i { position: absolute; left: 6%; right: 6%; top: 50%; height: 2px; background: var(--accent); box-shadow: 0 0 12px var(--accent); }
.bc-hint { position: relative; grid-row: 2; margin: 0; padding: 0 24px 14px; text-align: center; color: #fff; font-weight: 600; text-shadow: 0 1px 6px rgba(0, 0, 0, .8); }
.bc-actions { position: relative; grid-row: 3; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding: 0 16px calc(var(--safe-b, 0px) + 20px); }
/* Foto 4.3 (generate per FORMA): nelle testate si inquadrano volto e busto, non le gambe */
.bar.has-photo .bar-photo { object-position: 50% 18%; }
