/* Corsi Specchio Magico. Mobile first, tema scuro con i colori del brand:
   inchiostro #0E2A33, terracotta #006587, pesca #7EB368, crema #FBF1EB, font Poppins.
   Nessuno stile in linea (la CSP li vieta). */
:root {
  /* Palette di Daniela: petrolio #006587, salvia #7EB368, crema #FBF1EB, oro #D4A017. Contrasti (WCAG) sul fondo:
     crema 16:1, testo secondario 9:1, verde 7,2:1, oro 7,5:1; crema sul pulsante petrolio 5,9:1.
     Il petrolio come testo sul fondo scuro non si legge (2,7:1): solo per pulsanti, riempimenti e bagliori. */
  --fondo:#071A21; --fondo2:#0E2A33; --vetro:rgba(251,241,235,.06); --vetro-forte:rgba(251,241,235,.1);
  --filo:rgba(251,241,235,.13); --crema:#FBF1EB; --testo:#FBF1EB; --mut:#A9BDC2;
  --primario:#006587; --primario-scuro:#00546F; --accento:#7EB368; --oro:#D4A017; --su-chiaro:#071A21;
  --ok:#7EB368; --ko:#FF8F7A;
  --grad:linear-gradient(135deg, #00546F 0%, #006587 100%);
  --grad-luce:linear-gradient(90deg, #7EB368 0%, #D4A017 100%);
  --r:18px;
}
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { background:var(--fondo); }
body { margin:0; min-height:100vh; color:var(--testo);
  font:16px/1.55 Poppins, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing:antialiased; }

/* Sfondo: due bagliori lenti e una griglia sottile */
.aurora { position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none;
  background-image:linear-gradient(rgba(251,241,235,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(251,241,235,.035) 1px, transparent 1px);
  background-size:44px 44px; }
.aurora::before, .aurora::after { content:""; position:absolute; width:70vmax; height:70vmax; border-radius:50%;
  filter:blur(90px); opacity:.35; animation:deriva 22s ease-in-out infinite alternate; }
.aurora::before { background:var(--primario); top:-35vmax; left:-25vmax; }
.aurora::after { background:var(--accento); bottom:-40vmax; right:-30vmax; animation-delay:-11s; opacity:.16; }
@keyframes deriva { to { transform:translate(8vmax, 6vmax) scale(1.12); } }
@media (prefers-reduced-motion: reduce) { .aurora::before, .aurora::after { animation:none; } }

a { color:var(--accento); text-underline-offset:3px; }
h1 { font-size:26px; line-height:1.2; font-weight:700; margin:6px 0 6px; letter-spacing:-.01em; }
h2 { font-size:18px; font-weight:600; margin:0 0 8px; }
h3 { font-size:12px; font-weight:600; margin:22px 0 8px; color:var(--accento); text-transform:uppercase; letter-spacing:.14em; }
p { margin:8px 0; }

button, input, select, textarea { font:inherit; color:inherit; }
button, a.bottone { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px;
  background:var(--grad); color:var(--crema); border:0; border-radius:14px; padding:12px 20px; cursor:pointer;
  font-weight:600; text-decoration:none; box-shadow:0 8px 28px -10px rgba(0,101,135,.8); transition:transform .15s, box-shadow .15s; }
button:active, a.bottone:active { transform:scale(.97); }
button.sec, a.bottone.sec { background:var(--vetro); color:var(--testo); border:1px solid var(--filo); box-shadow:none; }
button.piccolo { min-height:36px; padding:6px 12px; font-size:14px; font-weight:500; }
button.pericolo { background:linear-gradient(135deg, #9b2c1c, #d5523c); }
button:disabled { opacity:.5; cursor:default; }
a.bottone.grande { width:100%; min-height:56px; font-size:17px; }
input, select, textarea { width:100%; min-height:50px; padding:12px 14px; border:1px solid var(--filo); border-radius:14px;
  background:rgba(0,0,0,.25); color:var(--testo); outline:none; transition:border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { border-color:var(--accento); box-shadow:0 0 0 4px rgba(126,179,104,.18); }
select option { background:var(--fondo2); }
label { display:block; font-size:13px; color:var(--mut); margin:14px 0 6px; }
label.casella { display:flex; gap:10px; align-items:center; color:var(--testo); font-size:15px; }
label.casella input { width:22px; min-height:22px; accent-color:var(--primario); }
:focus-visible { outline:2px solid var(--accento); outline-offset:3px; }

.nascosto { display:none !important; }
.mut { color:var(--mut); font-size:14px; }
.err { color:var(--ko); font-size:15px; min-height:1.2em; }
.ok-msg { color:var(--ok); font-size:15px; }
.etichetta { display:inline-block; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  background:rgba(212,160,23,.14); color:var(--oro); border:1px solid rgba(212,160,23,.35); border-radius:99px; padding:2px 9px; }
form.in-linea { display:inline; }

/* Vetro */
.scheda, a.corso, .riquadro, ol.lezioni, .tabella {
  background:var(--vetro); border:1px solid var(--filo); border-radius:var(--r);
  backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%); }

/* Accesso */
.centro { min-height:100vh; min-height:100dvh; display:grid; place-items:center; padding:20px 16px; }
.scheda { width:100%; max-width:440px; padding:28px 22px; position:relative; }
.scheda::before { content:""; position:absolute; inset:-1px; border-radius:inherit; padding:1px; pointer-events:none;
  background:linear-gradient(135deg, rgba(126,179,104,.6), transparent 45%, rgba(0,101,135,.5));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.scheda button[type=submit] { width:100%; margin-top:18px; }
.marchio { display:flex; align-items:center; gap:10px; font-weight:600; text-decoration:none; color:var(--crema); font-size:15px; }
.scheda .marchio { margin-bottom:22px; }
.marchio img { width:34px; height:34px; border-radius:11px; display:block; }
.scheda .marchio img { width:56px; height:56px; border-radius:16px; }
.marchio i { width:34px; height:34px; border-radius:11px; background:var(--grad); color:var(--crema); display:grid; place-items:center;
  font-style:normal; font-weight:700; box-shadow:0 0 22px rgba(126,179,104,.45); }

/* Barra in alto */
header.barra { position:sticky; top:0; z-index:5; background:rgba(7,26,33,.72); border-bottom:1px solid var(--filo);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); padding-top:env(safe-area-inset-top); }
header.barra .in { max-width:1120px; margin:0 auto; padding:0 16px; height:60px; display:flex; align-items:center; gap:10px; }
header.barra .marchio span { display:none; }
header.barra nav { margin-left:auto; display:flex; gap:10px; align-items:center; font-size:14px; }
main.pagina { max-width:1120px; margin:0 auto; padding:18px 16px calc(40px + env(safe-area-inset-bottom)); }

/* Corsi */
.griglia { display:grid; grid-template-columns:1fr; gap:14px; margin-top:16px; }
a.corso { display:block; padding:20px; color:var(--testo); text-decoration:none; transition:transform .2s, border-color .2s; }
a.corso:active { transform:scale(.99); }
a.corso h2 { font-size:20px; }
.barra-av { height:8px; background:rgba(251,241,235,.08); border-radius:99px; overflow:hidden; margin:14px 0 6px; }
.barra-av span { display:block; height:100%; width:0; background:var(--grad-luce); border-radius:inherit;
  box-shadow:0 0 14px rgba(126,179,104,.7); transition:width .6s cubic-bezier(.2,.8,.2,1); }

/* Lezioni */
ol.lezioni { list-style:none; padding:0; margin:0; overflow:hidden; }
ol.lezioni li + li { border-top:1px solid var(--filo); }
ol.lezioni a { display:flex; gap:12px; align-items:center; padding:14px 16px; min-height:56px; color:var(--testo); text-decoration:none; }
ol.lezioni a .t { flex:1; }
ol.lezioni li.attiva a { background:linear-gradient(90deg, rgba(0,101,135,.35), transparent); }
.spunta { width:22px; height:22px; border-radius:50%; border:2px solid var(--filo); flex:none; display:grid; place-items:center; }
li.fatta .spunta { background:var(--grad); border-color:transparent; box-shadow:0 0 12px rgba(126,179,104,.6); }
li.fatta .spunta::after { content:"✓"; font-size:12px; color:var(--crema); font-weight:700; }

/* Pagina lezione: su telefono il video resta in alto mentre si scorre */
.lezione-griglia { display:grid; grid-template-columns:1fr; gap:20px; }
.lezione-griglia > div:first-child video, .senza-video { position:sticky; top:60px; z-index:3; }
video { display:block; width:100%; background:#000; border-radius:14px; aspect-ratio:16/9;
  box-shadow:0 20px 60px -20px rgba(0,101,135,.55), 0 0 0 1px var(--filo); }
video.anteprima { max-width:520px; margin:6px 0 10px; }
.senza-video { aspect-ratio:16/9; display:grid; place-items:center; background:var(--vetro); border:1px dashed var(--filo);
  border-radius:14px; color:var(--mut); text-align:center; padding:16px; }
.testo { margin:10px 0 18px; color:var(--testo); }
.nav-lezioni { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.nav-lezioni #fatta { grid-column:1 / -1; grid-row:1; }
.nav-lezioni > a, .nav-lezioni > span { min-width:0; }
.nav-lezioni a.bottone { width:100%; }

/* Gestione */
nav.schede { display:flex; gap:6px; margin:12px 0 18px; overflow-x:auto; scrollbar-width:none; }
nav.schede a { padding:9px 16px; border-radius:99px; text-decoration:none; color:var(--mut); border:1px solid var(--filo); white-space:nowrap; }
nav.schede a.attiva { background:var(--grad); color:var(--crema); border-color:transparent; }
.riquadro { padding:20px 18px; margin:18px 0; max-width:680px; }
.riquadro button[type=submit] { margin-top:16px; }
.riquadro.pericolo { border-color:rgba(255,143,122,.4); }
.tabella { width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; font-size:14px; display:block; overflow-x:auto; }
.tabella th, .tabella td { text-align:left; padding:11px 12px; border-bottom:1px solid var(--filo); vertical-align:top; white-space:nowrap; }
.tabella tr:last-child td { border-bottom:0; }
.tabella th { font-size:11px; color:var(--accento); font-weight:600; text-transform:uppercase; letter-spacing:.1em; }
form.cerca { display:flex; gap:8px; margin-bottom:14px; max-width:540px; }
form.cerca button { flex:none; }

/* Da tablet in su */
@media (min-width:700px) {
  h1 { font-size:32px; }
  header.barra .marchio span { display:inline; }
  .griglia { grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); }
  a.corso:hover { transform:translateY(-3px); border-color:rgba(126,179,104,.5); }
  a.bottone.grande { width:auto; }
  .nav-lezioni { display:flex; justify-content:space-between; }
  .nav-lezioni a.bottone { width:auto; }
  .tabella { display:table; }
  .tabella td { white-space:normal; }
  .scheda { padding:34px 32px; }
}
@media (min-width:960px) {
  .lezione-griglia { grid-template-columns:minmax(0, 1fr) 360px; align-items:start; }
  .lezione-griglia > div:first-child video, .senza-video { position:static; }
  .lezione-griglia aside { position:sticky; top:80px; max-height:calc(100vh - 100px); overflow:auto; }
}

/* --- Percorso: barra in basso, card, successi, Specchio --- */
body.con-tab main.pagina { padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
nav.tab { position:fixed; left:0; right:0; bottom:0; z-index:10; display:grid; grid-template-columns:repeat(6, 1fr);
  background:rgba(7,26,33,.82); border-top:1px solid var(--filo); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  padding:6px 4px calc(6px + env(safe-area-inset-bottom)); }
nav.tab a { display:flex; flex-direction:column; align-items:center; gap:3px; padding:6px 0; color:var(--mut); text-decoration:none; font-size:11px; font-weight:500; border-radius:12px; }
nav.tab svg, .campanella svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
nav.tab a.attiva { color:var(--crema); }
nav.tab a { position:relative; }
nav.tab b.numero { position:absolute; top:-3px; left:calc(50% + 9px); min-width:18px; height:18px; border-radius:99px; background:var(--oro); color:var(--su-chiaro); font-weight:700; font-size:11px; display:grid; place-items:center; padding:0 4px; }
nav.tab a.attiva svg { stroke:var(--accento); filter:drop-shadow(0 0 8px rgba(126,179,104,.7)); }
.campanella { position:relative; display:grid; place-items:center; width:40px; height:40px; color:var(--testo); }
.campanella b { position:absolute; top:3px; right:2px; min-width:18px; height:18px; border-radius:99px; background:var(--oro); color:var(--su-chiaro); font-weight:700; font-size:11px; display:grid; place-items:center; padding:0 4px; }

.card { display:block; background:var(--vetro); border:1px solid var(--filo); border-radius:var(--r); padding:18px; margin:14px 0;
  backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%); color:var(--testo); }
.card.link { text-decoration:none; }
.card.evidenza { background:linear-gradient(135deg, rgba(0,101,135,.28), rgba(251,241,235,.05)); }
.card.fatto { border-color:rgba(126,179,104,.35); }
.card.allerta { border-color:rgba(255,143,122,.6); background:rgba(155,44,28,.18); }
.card.libro { background:linear-gradient(135deg, rgba(212,160,23,.2), rgba(126,179,104,.14)); border-color:rgba(212,160,23,.4); }
.card h3:first-child { margin-top:0; }
.riga { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.grande { font-size:18px; font-weight:600; margin:4px 0 8px; }
.due { display:grid; grid-template-columns:1fr; gap:0 14px; }
.numeri { display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; margin-top:12px; }
.numeri div { display:flex; flex-direction:column; }
.numeri b { font-size:26px; line-height:1.1; font-weight:700; color:var(--oro); }
.numeri span { font-size:12px; color:var(--mut); }
a.bottone.sos { width:100%; margin:6px 0 10px; background:transparent; border:1px solid rgba(212,160,23,.6); color:var(--oro); box-shadow:none; }

.chip-gruppo { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px; }
.chip input { position:absolute; opacity:0; pointer-events:none; }
.chip span { display:inline-block; padding:8px 13px; border-radius:99px; border:1px solid var(--filo); font-size:14px; cursor:pointer; background:rgba(0,0,0,.2); }
.chip input:checked + span { background:var(--accento); color:var(--su-chiaro); border-color:transparent; font-weight:600; }
.chip input:focus-visible + span { outline:2px solid var(--accento); outline-offset:2px; }
input[type=range].intensita { min-height:auto; padding:0; border:0; background:transparent; accent-color:var(--primario); }

.rileggi blockquote { margin:12px 0 4px; font-size:19px; line-height:1.45; font-weight:500; padding-left:14px; border-left:3px solid var(--accento); }
.rileggi .azioni { display:flex; gap:10px; margin-top:10px; }
.rileggi.aiutata blockquote { animation:luce 1.2s ease; }
@keyframes luce { 30% { text-shadow:0 0 18px rgba(126,179,104,.9); } }
.calendario { display:grid; grid-template-columns:repeat(7, 1fr); grid-auto-flow:column; grid-template-rows:repeat(7, auto); gap:5px; margin:10px 0; }
.calendario { grid-auto-flow:row; }
.calendario .g { aspect-ratio:1; border-radius:5px; background:rgba(251,241,235,.06); }
.calendario .l1 { background:rgba(0,101,135,.45); } .calendario .l2 { background:rgba(126,179,104,.75); }
.calendario .l3 { background:var(--oro); box-shadow:0 0 10px rgba(212,160,23,.6); }
.calendario .futuro { opacity:.25; }
ul.successi, ul.incontri, ul.notifiche, ul.storico { list-style:none; padding:0; margin:0; }
ul.successi li { display:flex; gap:10px; align-items:flex-start; padding:12px 14px; margin-bottom:8px; background:var(--vetro); border:1px solid var(--filo); border-radius:14px; }
ul.successi li > div { flex:1; } ul.successi p { margin:0 0 4px; }
button.stella { min-height:36px; width:36px; padding:0; background:transparent; color:var(--mut); box-shadow:none; font-size:20px; }
li.preferito button.stella { color:var(--oro); text-shadow:0 0 10px rgba(212,160,23,.7); }
ul.incontri li { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--filo); }
ul.incontri li:last-child { border-bottom:0; }
.etichetta.si { color:var(--ok); border-color:rgba(126,179,104,.4); background:rgba(126,179,104,.1); }
.etichetta.no { color:var(--ko); border-color:rgba(255,143,122,.4); background:rgba(255,143,122,.1); }
li.vuoto { color:var(--mut); padding:10px 0; list-style:none; }
ul.notifiche li a { display:flex; flex-direction:column; gap:2px; padding:12px 14px; margin-bottom:8px; border-radius:14px; background:var(--vetro); border:1px solid var(--filo); color:var(--testo); text-decoration:none; }
ul.notifiche li.nuova a { border-color:rgba(126,179,104,.5); }
ol.passi { padding-left:20px; } ol.passi li { margin:8px 0; }
.nota-live { padding:12px 14px; border-radius:12px; background:rgba(0,101,135,.18); }
nav.segmenti { display:flex; gap:4px; padding:4px; border-radius:14px; background:var(--vetro); border:1px solid var(--filo); margin:12px 0 16px; }
nav.segmenti a { flex:1; text-align:center; padding:10px; border-radius:10px; color:var(--mut); text-decoration:none; font-weight:500; }
nav.segmenti a.attiva { background:var(--grad); color:var(--crema); }
.anteprima-libro .titolo-libro { font-size:24px; font-weight:700; margin:6px 0 0; }
.revoca { margin-top:30px; }
details summary { cursor:pointer; color:var(--accento); }
.voce { padding:10px 0; border-bottom:1px solid var(--filo); } .voce.rischio { border-left:3px solid var(--ko); padding-left:10px; }
.nota-coach { padding:10px; border-radius:10px; background:rgba(126,179,104,.1); }
.sezione-admin { margin-top:36px; }
.piccolo-select { width:auto; min-height:36px; padding:4px 8px; }
dl dt { color:var(--mut); font-size:13px; margin-top:8px; } dl dd { margin:2px 0 0; }

@media (min-width:700px) {
  .due { grid-template-columns:1fr 1fr; }
  .numeri { grid-template-columns:repeat(4, 1fr); }
  .numeri.card:has(> div:nth-child(6)) { grid-template-columns:repeat(6, 1fr); }
  nav.tab { left:50%; right:auto; bottom:18px; transform:translateX(-50%); width:min(560px, 92vw); border:1px solid var(--filo); border-radius:22px; padding:6px; }
  body.con-tab main.pagina { padding-bottom:120px; }
}

/* Community */
.community { display:flex; flex-direction:column; gap:12px; }
article.post { background:var(--vetro); border:1px solid var(--filo); border-radius:var(--r); padding:16px; scroll-margin-top:80px; }
article.post.successo { border-color:rgba(126,179,104,.45); background:linear-gradient(135deg, rgba(126,179,104,.12), rgba(251,241,235,.04)); }
article.post.evidenza { box-shadow:0 0 0 1px rgba(126,179,104,.6), 0 10px 40px -18px rgba(0,101,135,.9); }
article.post header { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
article.post > p { margin:10px 0; }
.reazioni { display:flex; flex-wrap:wrap; gap:6px; }
button.reazione { min-height:34px; padding:4px 11px; font-size:13px; font-weight:500; background:rgba(0,0,0,.2); color:var(--testo); border:1px solid var(--filo); box-shadow:none; }
button.reazione.mia { border-color:var(--accento); color:var(--accento); }
.risposta { margin-top:10px; padding:10px 12px; border-radius:12px; background:rgba(0,0,0,.18); }
.risposta p { margin:4px 0 0; }
.risposta.coach { background:rgba(0,101,135,.22); border-left:3px solid var(--accento); }
form.rispondi { display:flex; gap:8px; align-items:flex-end; flex-wrap:wrap; margin-top:10px; }
form.rispondi textarea { flex:1 1 200px; min-height:42px; }
label.casella.piccola { font-size:13px; margin:0; }
form.condividi { display:block; margin-top:6px; }
nav.tab a { font-size:10px; }

/* Accedi come e feedback */
.banner-come { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  padding:8px 16px; background:var(--oro); color:var(--su-chiaro); font-size:13px; font-weight:500; }
.banner-come form { margin:0; }
.banner-come button { background:var(--su-chiaro); color:var(--crema); box-shadow:none; }
body:has(.banner-come) header.barra { top:52px; }
.feedback-apri { position:fixed; right:14px; bottom:calc(84px + env(safe-area-inset-bottom)); z-index:15; min-height:40px; padding:8px 14px; font-size:13px; border-radius:99px; }
body:not(.con-tab) .feedback-apri { bottom:18px; }
dialog.feedback { width:min(480px, calc(100vw - 32px)); border:1px solid var(--filo); border-radius:var(--r); background:#0E2A33; color:var(--testo); padding:20px; }
dialog.feedback::backdrop { background:rgba(0,0,0,.6); backdrop-filter:blur(3px); }
dialog.feedback .azioni { display:flex; justify-content:flex-end; gap:10px; margin-top:10px; }
@media (min-width:700px) { .feedback-apri { bottom:30px; } }
.codice-breve { font:12px/1.4 ui-monospace, Menlo, monospace; word-break:break-all; white-space:normal !important; }
.schede-utenti { display:grid; gap:10px; }
.scheda-utente { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--filo); border-radius:14px; background:rgba(0,0,0,.15); }
.scheda-utente p { margin:2px 0 0; }
@media (min-width:700px) { .schede-utenti { grid-template-columns:1fr 1fr; } }

/* Onboarding: benvenuta in home e "Come funziona il percorso" (28/10/2026) */
.card.benvenuta { background:linear-gradient(160deg, rgba(0,101,135,.34), rgba(126,179,104,.1) 70%, rgba(251,241,235,.04));
  border-color:rgba(126,179,104,.35); padding:20px; }
.card.benvenuta h2 { font-size:22px; margin-top:4px; }
.video-benvenuto { display:block; width:100%; aspect-ratio:16/9; border-radius:14px; background:#000; margin:14px 0 18px;
  border:1px solid var(--filo); object-fit:contain; }
.video-benvenuto.vuoto { aspect-ratio:auto; min-height:220px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:2px;
  padding:18px; background:radial-gradient(circle at 50% 35%, rgba(0,101,135,.45), rgba(7,26,33,.9)); }
.video-benvenuto.vuoto p { margin:0; max-width:420px; }
.video-benvenuto.vuoto code { font-size:12px; word-break:break-all; }
.lettera-benvenuta { margin:14px 0 18px; padding:16px 18px; border-radius:14px; border:1px solid var(--filo); border-left:3px solid var(--accento, #7eb368);
  background:rgba(7,26,33,.55); font-style:italic; }
.lettera-benvenuta p { margin:0 0 10px; }
.lettera-benvenuta p:last-child { margin-bottom:0; }
.lettera-benvenuta code { font-style:normal; font-size:12px; word-break:break-all; }
.video-benvenuto .play { width:58px; height:58px; border-radius:50%; background:var(--grad); margin-bottom:10px; position:relative;
  box-shadow:0 8px 30px rgba(0,101,135,.5); }
.video-benvenuto .play::after { content:""; position:absolute; left:23px; top:18px; border-style:solid; border-width:11px 0 11px 17px;
  border-color:transparent transparent transparent var(--crema); }
ol.passi { list-style:none; margin:12px 0 4px; padding:0; display:grid; gap:8px; }
ol.passi a { display:flex; gap:12px; align-items:center; padding:11px 12px; border-radius:14px; background:var(--vetro);
  border:1px solid var(--filo); color:var(--testo); text-decoration:none; }
ol.passi small { display:block; color:var(--mut); font-size:13px; }
ol.passi .spunta { flex:0 0 26px; height:26px; border-radius:50%; border:2px solid var(--filo); position:relative; }
ol.passi li.fatto .spunta { background:var(--accento); border-color:var(--accento); }
ol.passi li.fatto .spunta::after { content:""; position:absolute; left:7px; top:3px; width:7px; height:12px;
  border:solid var(--su-chiaro); border-width:0 2.5px 2.5px 0; transform:rotate(45deg); }
ol.passi li.fatto b { color:var(--mut); text-decoration:line-through; text-decoration-color:rgba(169,189,194,.5); }
.azioni-libro { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:12px 0 4px; }
.azioni-libro form { margin:0; }
ol.tempi { list-style:none; margin:6px 0 0; padding:0 0 0 18px; border-left:2px solid rgba(126,179,104,.4); }
ol.tempi li { position:relative; margin:0 0 14px; }
ol.tempi li::before { content:""; position:absolute; left:-25px; top:6px; width:12px; height:12px; border-radius:50%; background:var(--accento); }
ol.tempi b { display:block; color:var(--oro); font-size:14px; letter-spacing:.02em; }

/* Il libro di Daniela: indice, audiolibro, lettura, cartaceo */
a.card.libro-daniela { display:flex; gap:14px; align-items:center; }
a.card.libro-daniela img, .libro-testa .copertina { border-radius:6px; box-shadow:0 10px 30px rgba(0,0,0,.45); height:auto; flex-shrink:0; }
a.card.libro-daniela h3 { margin:0; }
.libro-testa { display:flex; flex-direction:column; gap:16px; margin:6px 0 10px; }
.libro-testa .copertina { width:140px; }
ol.indice-libro { list-style:none; margin:6px 0 0; padding:0; }
ol.indice-libro a { display:flex; justify-content:space-between; gap:12px; padding:11px 2px; border-top:1px solid var(--filo);
  color:var(--testo); text-decoration:none; }
ol.indice-libro a small { display:block; color:var(--oro); font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
ol.indice-libro a.qui, ol.tracce li.qui b { color:var(--accento); }
ol.tracce { list-style:none; margin:10px 0 0; padding:0; display:grid; gap:12px; }
ol.tracce li { padding-top:10px; border-top:1px solid var(--filo); }
audio { width:100%; margin-top:6px; }
.card.cartaceo { display:flex; flex-direction:column; gap:10px; }
.card.cartaceo .grande { color:var(--oro); font-size:22px; margin:0; }
article.lettura { max-width:680px; margin:0 auto; font-size:17px; line-height:1.78; }
article.lettura header { margin-bottom:22px; }
article.lettura h1 { font-size:28px; margin:6px 0 4px; }
article.lettura .sottotitolo { color:var(--mut); font-style:italic; margin:0 0 12px; }
article.lettura h2 { font-size:1.2em; margin:30px 0 10px; color:var(--crema); }
article.lettura h3 { font-size:1.05em; margin:22px 0 8px; }
article.lettura p { margin:0 0 1em; }
article.lettura .box { background:var(--vetro-forte); border-left:3px solid var(--oro); border-radius:10px; padding:12px 14px; margin:14px 0; }
article.lettura .box p:last-child { margin-bottom:0; }
article.lettura table { width:100%; border-collapse:collapse; font-size:.85em; margin:10px 0 16px; display:block; overflow-x:auto; }
article.lettura th, article.lettura td { border:1px solid var(--filo); padding:6px 8px; text-align:left; vertical-align:top; }
.testo-dim { display:flex; gap:6px; }
details.ascolta-qui { margin:10px 0; padding:10px 12px; border-radius:12px; background:var(--vetro); border:1px solid var(--filo); }
details.ascolta-qui summary { cursor:pointer; font-weight:600; }
@media (min-width:700px) {
  .libro-testa { flex-direction:row; align-items:flex-end; }
  .card.cartaceo { flex-direction:row; justify-content:space-between; align-items:center; }
  .card.cartaceo > div { max-width:560px; }
}
ol.tracce .riga .mut, ol.indice-libro a .mut { white-space:nowrap; }

/* --- Strumenti e cammino (28/10/2026): settimana, gesti, settimane del percorso, riconoscimenti, audio, frasi --- */
nav.segmenti.strumenti a { padding:9px 4px; font-size:14px; }
nav.tab { grid-template-columns:repeat(6, 1fr); }
nav.tab:has(> a:nth-child(7)) { grid-template-columns:repeat(7, 1fr); }
nav.tab a span { font-size:10px; }
.griglia.strumenti { margin-top:6px; }
@media (min-width:700px) { .griglia.strumenti { grid-template-columns:1fr 1fr; } }
ol.settimana-giorni { list-style:none; padding:0; margin:14px 0 10px; display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; }
ol.settimana-giorni li { aspect-ratio:1; max-width:44px; justify-self:center; width:100%; border-radius:50%; border:2px solid var(--filo);
  display:grid; place-items:center; font-size:12px; color:var(--mut); }
ol.settimana-giorni li.curato { background:var(--grad-luce); border-color:transparent; color:var(--su-chiaro); font-weight:700;
  box-shadow:0 0 14px rgba(126,179,104,.45); }
ol.settimana-giorni li.oggi { border-color:var(--crema); }
ol.settimana-giorni li.futuro { opacity:.45; }
ol.gesti { list-style:none; margin:8px 0; padding:0; display:grid; gap:8px; }
ol.gesti li { display:flex; gap:12px; align-items:center; padding:10px 12px; border-radius:14px; background:var(--vetro); border:1px solid var(--filo); flex-wrap:wrap; }
ol.gesti li > span:nth-child(2) { flex:1; min-width:150px; }
ol.gesti small { display:block; color:var(--mut); font-size:13px; }
ol.gesti form { margin:0; }
ol.gesti .spunta { flex:0 0 26px; height:26px; border-radius:50%; border:2px solid var(--filo); position:relative; }
ol.gesti li.fatto .spunta { background:var(--accento); border-color:var(--accento); }
ol.gesti li.fatto .spunta::after { content:""; position:absolute; left:7px; top:3px; width:7px; height:12px;
  border:solid var(--su-chiaro); border-width:0 2px 2px 0; transform:rotate(45deg); }
ol.cammino { list-style:none; padding:0; margin:12px 0; display:grid; grid-template-columns:repeat(auto-fill, minmax(26px, 1fr)); gap:6px; }
ol.cammino li { aspect-ratio:1; border-radius:7px; background:rgba(251,241,235,.06); border:1px solid var(--filo); position:relative; }
ol.cammino li.parziale { background:linear-gradient(to top, rgba(126,179,104,.55) 50%, rgba(251,241,235,.06) 50%); }
ol.cammino li.tenuta { background:var(--grad-luce); border-color:transparent; }
ol.cammino li.futura { opacity:.35; }
ol.cammino li.corrente { outline:2px solid var(--crema); outline-offset:1px; }
ol.cammino li i { position:absolute; top:3px; right:3px; width:6px; height:6px; border-radius:50%; background:var(--crema); }
ul.riconoscimenti { list-style:none; padding:0; margin:10px 0; display:grid; gap:10px; }
@media (min-width:700px) { ul.riconoscimenti { grid-template-columns:1fr 1fr; } }
ul.riconoscimenti li { display:flex; gap:12px; align-items:center; padding:10px 12px; border-radius:14px; border:1px dashed var(--filo); opacity:.62; }
ul.riconoscimenti li.ottenuto { opacity:1; border-style:solid; background:rgba(212,160,23,.08); border-color:rgba(212,160,23,.35); }
ul.riconoscimenti small { display:block; color:var(--mut); font-size:13px; }
ul.riconoscimenti small.data { color:var(--oro); }
.medaglia { flex:0 0 40px; height:40px; border-radius:50%; border:2px solid var(--filo); position:relative; }
.medaglia::after { content:"★"; position:absolute; inset:0; display:grid; place-items:center; color:var(--mut); font-size:18px; }
li.ottenuto .medaglia, .riconoscimento-nuovo .medaglia { background:var(--grad-luce); border-color:transparent; box-shadow:0 0 16px rgba(212,160,23,.5); }
li.ottenuto .medaglia::after, .riconoscimento-nuovo .medaglia::after { color:var(--su-chiaro); }
.riconoscimento-nuovo { text-align:center; border-color:rgba(212,160,23,.45); }
.riconoscimento-nuovo .medaglia { width:64px; height:64px; margin:10px auto; animation:medaglia 1.2s ease-out; }
.riconoscimento-nuovo .medaglia::after { font-size:28px; }
@keyframes medaglia { from { transform:scale(.4) rotate(-30deg); opacity:0; } to { transform:none; opacity:1; } }
@media (prefers-reduced-motion: reduce) { .riconoscimento-nuovo .medaglia { animation:none; } }
ul.elenco-semplice { padding-left:20px; margin:8px 0; } ul.elenco-semplice li { margin:6px 0; }
ul.lista-audio { list-style:none; padding:0; margin:0; }
.card audio, ul.lista-audio audio { width:100%; margin:10px 0 4px; }
details.testo-audio summary, details.card summary { cursor:pointer; font-weight:600; }
details.testo-audio div { color:var(--mut); font-size:15px; }
ol.affermazioni { padding:0; margin:12px 0; list-style:none; counter-reset:af; display:grid; gap:6px; }
ol.affermazioni li { counter-increment:af; display:flex; align-items:center; gap:10px; padding:8px 4px 8px 12px; border-radius:12px; background:rgba(0,0,0,.18); }
ol.affermazioni li::before { content:counter(af); color:var(--oro); font-weight:700; min-width:18px; }
ol.affermazioni li > span { flex:1; font-size:16px; }
ol.affermazioni li form { margin:0; }
ol.affermazioni li.preferita button.stella { color:var(--oro); text-shadow:0 0 10px rgba(212,160,23,.7); }

/* --- Il mio profilo (28/10/2026): info accanto alla classifica, punti --- */
.profilo-griglia { display:grid; grid-template-columns:1fr; gap:0 14px; align-items:start; }
@media (min-width:860px) { .profilo-griglia { grid-template-columns:1fr 1fr; } }
dl.info { display:grid; grid-template-columns:auto 1fr; gap:6px 14px; margin:8px 0 4px; font-size:15px; }
dl.info dt { color:var(--mut); } dl.info dd { margin:0; overflow-wrap:anywhere; }
ol.classifica { list-style:none; padding:0; margin:12px 0; display:grid; gap:6px; }
ol.classifica li { display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:12px; background:rgba(0,0,0,.18); }
ol.classifica li .pos { width:24px; text-align:center; color:var(--mut); font-weight:600; }
ol.classifica li:nth-child(-n+3) .pos { color:var(--oro); }
ol.classifica li .nome { flex:1; }
ol.classifica li b { color:var(--oro); }
ol.classifica li.io { background:rgba(126,179,104,.18); border:1px solid rgba(126,179,104,.5); }
ol.classifica li.salto { background:none; justify-content:center; color:var(--mut); padding:0; }
ul.punti { list-style:none; padding:0; margin:10px 0; display:grid; gap:4px; }
ul.punti li { display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px solid var(--filo); font-size:15px; }
ul.punti li b { color:var(--oro); white-space:nowrap; }
a.campanella.attiva { color:var(--accento); }
.pagamento { margin:14px 0; border-radius:var(--r); overflow:hidden; background:#fff; border:1px solid var(--filo); }
.pagamento iframe { display:block; width:100%; height:1150px; border:0; }
/* Grafico della costanza (profilo) */
svg.grafico { width:100%; height:auto; display:block; margin:6px 0 4px; overflow:visible; }
svg.grafico .g-asse text, svg.grafico .g-etichetta { fill:var(--mut); font-size:11px; font-family:inherit; }
svg.grafico .g-asse line { stroke:var(--filo); stroke-width:1; }
svg.grafico .g-tenuta { fill:var(--accento); }
svg.grafico .g-non { fill:rgba(169,189,194,.45); }
svg.grafico .g-futura { fill:none; stroke:var(--filo); stroke-width:1; stroke-dasharray:2 2; }
svg.grafico .g-punti { fill:var(--oro); }
svg.grafico .g-corrente { stroke:var(--crema); stroke-width:1.5; }
svg.grafico .g-obiettivo { stroke:var(--crema); stroke-width:1.5; stroke-dasharray:5 4; opacity:.8; }
svg.grafico rect:hover { opacity:.8; }
p.posizione { display:flex; align-items:baseline; gap:10px; margin:10px 0 0; }
p.posizione b { font-size:40px; line-height:1; color:var(--oro); }
ul.consigli a { color:var(--testo); }

/* --- Percorso personal e consulenza gratuita (28/10/2026) --- */
.card.bloccata { opacity:.55; filter:saturate(.4); pointer-events:none; user-select:none; }
.card.bloccata .bottone { pointer-events:auto; }
.card.bloccata:has(.bottone) { opacity:.8; }
.agenda { margin:14px 0 4px; border-radius:var(--r); overflow:hidden; background:#fff; border:1px solid var(--filo); }
.agenda iframe { display:block; width:100%; height:760px; border:0; }
.centro-testo { text-align:center; margin-top:14px; }

/* Quale video guardare (/corso/consiglia, 28/10/2026) */
.consiglio-ingresso { text-decoration:none; color:var(--testo); }
.consiglio-ingresso:hover, a.consiglio:hover { border-color:var(--accento); }
.cerca-consiglio textarea { width:100%; box-sizing:border-box; font:inherit; color:var(--testo); background:var(--vetro);
  border:1px solid var(--filo); border-radius:12px; padding:12px; margin:8px 0; resize:vertical; }
.spunti { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px; }
.spunto { font-size:14px; padding:7px 12px; border-radius:999px; border:1px solid var(--filo); background:var(--vetro);
  color:var(--testo); text-decoration:none; }
.spunto:hover { border-color:var(--accento); }
a.consiglio { text-decoration:none; color:var(--testo); }
a.consiglio h3 { margin:6px 0 4px; }
.consiglio .estratto { color:var(--mut); font-style:italic; margin:8px 0 0; }

/* --- Video "perché scrivere la memoria dei successi" (28/10/2026) --- */
.card.video-memoria summary { cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px; }
.card.video-memoria summary::-webkit-details-marker { display:none; }
.card.video-memoria summary::after { content:"›"; margin-left:auto; color:var(--mut); transition:transform .2s; }
.card.video-memoria[open] summary::after { transform:rotate(90deg); }
.card.video-memoria .video-benvenuto { margin-bottom:4px; }

/* "Apri nell'app" (src/applink.js): solo dal telefono e solo a chi ha già usato l'app, sopra la barra delle schede. */
.apri-app { position:fixed; left:12px; right:12px; bottom:calc(80px + env(safe-area-inset-bottom)); z-index:11; display:flex; align-items:center; gap:8px;
  max-width:520px; margin:0 auto; padding:6px 6px 6px 16px; border-radius:16px; background:var(--primario, #006587); box-shadow:0 8px 24px rgba(0,0,0,.35); }
.apri-app[hidden] { display:none; }
.apri-app-vai { flex:1; color:#fff; font-weight:600; text-decoration:none; padding:8px 0; }
.apri-app-chiudi { background:transparent; border:0; color:#fff; font-size:22px; line-height:1; padding:6px 10px; cursor:pointer; }
/* Con "Apri nell'app" visibile, il pulsante Feedback (prova e gestione) sale sopra di lui. */
body.con-apri-app .feedback-apri { bottom:calc(144px + env(safe-area-inset-bottom)); }
