/* ===== Il Raccoglitore – stile ===== */
:root{
  --bg:#fffdf7; --card:#ffffff; --ink:#1f2433; --soft:#5b6275; --line:#e6e1d3;
  --accent:#3d5afe; --ok:#2e9d5b; --ko:#d64545; --mark:#fff1a8;
  --mat:#3d5afe; --lv:#f9c74f;
  --fs:19px; --lh:1.6; --font:'Atkinson Hyperlegible', Verdana, sans-serif;
  --title:'Fredoka', 'Atkinson Hyperlegible', sans-serif;
  --r:18px; --shadow:0 4px 0 rgba(0,0,0,.08), 0 8px 24px rgba(0,0,0,.06);
}
body.t-cream{ --bg:#f6efd9; --card:#fffaea; --line:#e2d6b2; }
body.t-contrast{ --bg:#000; --card:#000; --ink:#fff; --soft:#ffeb3b; --line:#fff; --mark:#ffeb3b; --shadow:none; }
body.t-contrast mark{ color:#000; }
body.f-lexend{ --font:'Lexend', Verdana, sans-serif; }
body.f-system{ --font:Verdana, Tahoma, sans-serif; }
body.sp-wide{ --lh:2; letter-spacing:.04em; word-spacing:.12em; }

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:var(--font); font-size:var(--fs); line-height:var(--lh); }
img.emoji{ height:1.1em; width:1.1em; margin:0 .05em; vertical-align:-0.15em; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--title); line-height:1.2; margin:.2em 0 .5em; }
h1{ font-size:2em; } h2{ font-size:1.5em; } h3{ font-size:1.2em; }
button{ font:inherit; color:inherit; cursor:pointer; }
:focus-visible{ outline:4px solid #ffb300; outline-offset:3px; border-radius:8px; }
.skip{ position:absolute; left:-999px; top:0; background:#000; color:#fff; padding:8px 14px; z-index:99; }
.skip:focus{ left:8px; }
.caps .cx{ text-transform:uppercase; letter-spacing:.03em; }
mark{ background:var(--mark); padding:0 .15em; border-radius:4px; font-weight:700; }
.en{ color:#00838f; font-weight:700; }
body.t-contrast .en{ color:#80deea; }

/* ---- header ---- */
.top{ position:sticky; top:0; z-index:20; display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; padding:10px 16px; background:var(--card); border-bottom:3px solid var(--line); }
.logo{ display:flex; align-items:center; gap:8px; text-decoration:none; font-family:var(--title); font-size:1.25em; font-weight:700; }
.logo-ico{ font-size:1.5em; }
.logo small{ font-size:.65em; background:var(--lv); color:#222; padding:2px 8px; border-radius:20px; margin-left:4px; }
.nav{ display:flex; gap:4px; flex-wrap:wrap; }
.nav a{ text-decoration:none; padding:6px 12px; border-radius:12px; font-size:.85em; font-weight:700; }
.nav a:hover,.nav a.on{ background:var(--line); }
.lv-switch{ display:flex; gap:4px; margin-left:auto; }
.lv-switch button{ border:3px solid transparent; background:var(--line); border-radius:14px; padding:4px 10px; font-size:.8em; font-weight:700; display:flex; align-items:center; gap:4px; }
.lv-switch button[aria-pressed="true"]{ border-color:var(--ink); background:var(--lvc); color:#222; }
.lv-switch .lvn{ display:none; }
@media (min-width:1560px){ .lv-switch .lvn{ display:inline; } }
.btn-ico{ border:0; background:var(--line); border-radius:14px; padding:6px 12px; font-weight:700; }

/* ---- settings ---- */
.settings{ position:fixed; right:12px; top:72px; z-index:40; width:min(420px, calc(100vw - 24px)); background:var(--card); border:3px solid var(--ink); border-radius:var(--r); padding:16px 18px; box-shadow:var(--shadow); font-size:16px; max-height:80vh; overflow:auto; }
.set-row{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin:10px 0; flex-wrap:wrap; }
.seg{ display:flex; gap:4px; flex-wrap:wrap; }
.seg button{ border:2px solid var(--line); background:var(--bg); border-radius:10px; padding:4px 10px; font-size:.9em; }
.seg button.on{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
.hint{ color:var(--soft); font-size:.85em; }

/* ---- generic ---- */
main{ max-width:1100px; margin:0 auto; padding:20px 16px 60px; outline:none; }
.btn{ display:inline-flex; align-items:center; gap:8px; border:0; background:var(--ink); color:var(--bg); padding:10px 18px; border-radius:14px; font-weight:700; text-decoration:none; box-shadow:0 3px 0 rgba(0,0,0,.25); }
.btn.ghost{ background:transparent; color:var(--ink); border:3px solid var(--ink); box-shadow:none; }
.btn.mat{ background:var(--mat); color:#fff; }
.btn:active{ transform:translateY(2px); box-shadow:none; }
.card{ background:var(--card); border:3px solid var(--line); border-radius:var(--r); padding:18px; box-shadow:var(--shadow); }
.grid{ display:grid; gap:16px; }
.g2{ grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); }
.g3{ grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }
.back{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 16px; margin:0 0 10px; border:2px solid var(--line, #d9d2c3); border-radius:999px; background:var(--card, #fff); color:inherit; font-weight:800; font-size:.95em; text-decoration:none; }
.back:hover,.back:focus-visible{ border-color:currentColor; }
.crumbs{ font-size:.85em; color:var(--soft); margin-bottom:10px; }
.crumbs a{ text-decoration:none; font-weight:700; }
.speak{ border:0; background:transparent; font-size:1em; padding:2px 6px; border-radius:10px; flex:none; }
.speak:hover{ background:var(--line); }
.speak.on{ background:#ffe082; }

/* ---- home ---- */
.hero{ display:grid; grid-template-columns:1.3fr 1fr; gap:24px; align-items:center; margin-bottom:28px; }
.hero h1{ font-size:2.4em; margin:0 0 .3em; }
.hero p{ font-size:1.05em; color:var(--soft); }
.hero-art{ font-size:64px; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; text-align:center; }
.hero-art span{ background:var(--card); border:3px solid var(--line); border-radius:22px; padding:10px 0; box-shadow:var(--shadow); animation:float 4s ease-in-out infinite; }
.hero-art span:nth-child(2n){ animation-delay:-2s; }
@keyframes float{ 50%{ transform:translateY(-6px) rotate(-2deg); } }
@media (prefers-reduced-motion:reduce){ .hero-art span{ animation:none; } }
.sec-title{ display:flex; align-items:center; gap:10px; margin:30px 0 14px; }
.lv-card{ text-align:left; border:4px solid var(--line); background:var(--card); border-radius:22px; padding:16px; display:flex; flex-direction:column; gap:6px; box-shadow:var(--shadow); position:relative; }
.lv-card .big{ font-size:52px; line-height:1; }
.lv-card b{ font-family:var(--title); font-size:1.25em; }
.lv-card .sub{ font-size:.8em; font-weight:700; color:#222; background:var(--lvc); padding:2px 10px; border-radius:20px; align-self:flex-start; }
.lv-card p{ margin:0; font-size:.85em; color:var(--soft); }
.lv-card[aria-pressed="true"]{ border-color:var(--ink); outline:6px solid var(--lvc); }
.lv-card[aria-pressed="true"]::after{ content:'✔ Scelto'; position:absolute; top:12px; right:12px; background:var(--ink); color:var(--bg); font-size:.7em; padding:2px 10px; border-radius:20px; font-weight:700; }
.mat-card{ text-decoration:none; border-radius:22px; padding:18px; background:var(--card); border:3px solid var(--line); border-top:12px solid var(--c); box-shadow:var(--shadow); display:flex; flex-direction:column; gap:6px; transition:transform .15s; }
.mat-card:hover{ transform:translateY(-3px); }
.mat-card .big{ font-size:54px; line-height:1.1; }
.mat-card b{ font-family:var(--title); font-size:1.4em; color:var(--c); }
body.t-contrast .mat-card b{ color:#fff; }
.mat-card span{ font-size:.85em; color:var(--soft); }
.pill{ display:inline-block; font-size:.75em; font-weight:700; padding:2px 10px; border-radius:20px; background:var(--line); }

/* ---- subject page ---- */
.mat-head{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; background:var(--mat); color:#fff; border-radius:24px; padding:20px 24px; margin-bottom:20px; }
.mat-head .big{ font-size:64px; line-height:1; }
.mat-head h1{ margin:0; font-size:2.2em; }
.mat-head p{ margin:4px 0 0; opacity:.95; }
.mat-head .act{ margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }
.mat-head .btn{ background:#fff; color:#222; }
body.t-contrast .mat-head{ background:#000; border:3px solid #fff; }
.arg-card{ text-decoration:none; background:var(--card); border:3px solid var(--line); border-left:12px solid var(--mat); border-radius:var(--r); padding:14px 16px; display:flex; gap:14px; align-items:center; box-shadow:var(--shadow); transition:transform .15s; }
.arg-card:hover{ transform:translateX(4px); }
.arg-card .big{ font-size:44px; line-height:1; }
.arg-card b{ font-family:var(--title); font-size:1.15em; display:block; }
.arg-card small{ color:var(--soft); }
.arg-card .num{ margin-left:auto; font-family:var(--title); font-weight:700; background:var(--mat); color:#fff; border-radius:50%; width:36px; height:36px; display:grid; place-items:center; flex:none; }
.ponte{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:18px 0; }
.ponte .card h3{ margin-top:0; }
.ponte ul{ margin:0; padding-left:1.2em; }

/* ---- topic page ---- */
.top-head{ display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.top-head .big{ font-size:80px; line-height:1; background:var(--card); border:4px solid var(--mat); border-radius:28px; padding:8px 14px; }
.top-head h1{ margin:0; color:var(--mat); font-size:2.3em; }
body.t-contrast .top-head h1{ color:#fff; }
.top-head .meta{ display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.lv-badge{ background:var(--lvc); color:#222; font-weight:700; padding:3px 12px; border-radius:20px; font-size:.8em; }
.toc{ position:sticky; top:66px; z-index:10; display:flex; gap:6px; flex-wrap:wrap; background:var(--bg); padding:8px 0; margin-bottom:12px; border-bottom:2px dashed var(--line); }
.toc a{ text-decoration:none; font-size:.8em; font-weight:700; background:var(--card); border:2px solid var(--line); border-radius:12px; padding:4px 10px; }
.toc .sp{ flex:1; }
.toc button{ font-size:.8em; }
.ricordi{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0 4px; font-size:.88em; }
.ricordi div{ background:var(--card); border:2px dashed var(--line); border-radius:14px; padding:10px 14px; }
.ricordi b{ display:block; font-family:var(--title); }
.sez{ margin:26px 0; scroll-margin-top:120px; }
.sez > h2{ display:flex; align-items:center; gap:10px; background:var(--mat); color:#fff; padding:8px 16px; border-radius:16px; font-size:1.35em; }
body.t-contrast .sez > h2{ background:#000; border:3px solid #fff; }
.sez > h2 .speak{ margin-left:auto; color:#fff; }
.print-head{ display:none; }

/* spiegazione */
.spiega{ display:flex; flex-direction:column; gap:12px; }
.frase{ display:flex; align-items:flex-start; gap:14px; background:var(--card); border:3px solid var(--line); border-radius:var(--r); padding:12px 14px; }
.frase .pic{ font-size:2.2em; line-height:1; flex:none; width:1.4em; text-align:center; }
.frase .tx{ flex:1; padding-top:.15em; }
.spiega h3{ margin:14px 0 0; color:var(--mat); font-size:1.25em; }
body.t-contrast .spiega h3{ color:#fff; }
.lv1 .spiega,.lv2 .spiega{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); }
.lv1 .frase,.lv2 .frase{ flex-direction:column; align-items:center; text-align:center; }
.lv1 .frase .pic{ font-size:4.2em; width:auto; }
.lv2 .frase .pic{ font-size:3.2em; width:auto; }
.lv1 .frase .tx{ font-size:1.3em; font-weight:700; }
.lv2 .frase .tx{ font-size:1.12em; }
.lv1 .spiega h3,.lv2 .spiega h3{ grid-column:1/-1; }

/* figure */
.fig{ margin:18px 0; background:var(--card); border:3px solid var(--line); border-radius:var(--r); padding:16px; }
.fig > b{ display:block; font-family:var(--title); margin-bottom:10px; }
.tl{ display:flex; position:relative; padding-top:6px; }
.tl::before{ content:''; position:absolute; left:0; right:0; top:42px; height:6px; background:var(--mat); border-radius:6px; }
.tl-ev{ flex:1; text-align:center; position:relative; padding:0 4px; font-size:.82em; }
.tl-ev .yr{ font-family:var(--title); font-weight:700; font-size:1.1em; display:block; height:26px; }
.tl-ev .dot{ width:22px; height:22px; border-radius:50%; background:var(--card); border:5px solid var(--mat); margin:2px auto 8px; position:relative; z-index:1; }
@media (max-width:700px){
  .tl{ flex-direction:column; padding-left:18px; }
  .tl::before{ left:10px; right:auto; top:0; bottom:0; width:6px; height:auto; }
  .tl-ev{ text-align:left; display:grid; grid-template-columns:22px 70px 1fr; gap:8px; align-items:center; margin-bottom:10px; }
  .tl-ev .yr{ height:auto; order:2; } .tl-ev .dot{ margin:0 0 0 -18px; order:1; } .tl-ev .ev{ order:3; }
}
.flusso{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; justify-content:center; }
.flusso .st{ background:var(--bg); border:3px solid var(--mat); border-radius:16px; padding:8px 12px; text-align:center; max-width:190px; font-size:.9em; }
.flusso .st .pic{ font-size:2em; display:block; line-height:1.1; }
.flusso .ar{ font-size:1.6em; color:var(--mat); font-weight:700; }
.tab{ width:100%; border-collapse:collapse; font-size:.95em; }
.tab th,.tab td{ border:2px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; }
.tab th{ background:var(--mat); color:#fff; }
.tab tr:nth-child(even) td{ background:var(--bg); }
.tab-wrap{ overflow-x:auto; }
.pizze{ display:flex; gap:24px; flex-wrap:wrap; justify-content:center; text-align:center; font-family:var(--title); font-size:1.3em; }
.pizze svg{ width:130px; height:130px; display:block; margin:0 auto 6px; }
.svgfig{ text-align:center; }
.svgfig svg{ max-width:100%; height:auto; }

/* mappa */
.mappa{ display:flex; flex-direction:column; align-items:center; gap:0; }
.m-centro{ background:var(--mat); color:#fff; font-family:var(--title); font-size:1.5em; font-weight:700; padding:14px 26px; border-radius:30px; text-align:center; border:4px solid rgba(0,0,0,.15); }
.m-centro .pic{ font-size:1.5em; display:block; line-height:1.1; }
body.t-contrast .m-centro{ background:#000; border-color:#fff; }
.m-stem{ width:6px; height:26px; background:var(--mat); }
.m-rami{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:16px; width:100%; position:relative; padding-top:26px; border-top:6px solid var(--mat); border-radius:8px; }
.m-ramo{ position:relative; background:var(--card); border:4px solid var(--mat); border-radius:20px; padding:12px; text-align:center; }
.m-ramo::before{ content:''; position:absolute; top:-30px; left:50%; width:6px; height:26px; background:var(--mat); transform:translateX(-50%); }
.m-ramo .pic{ font-size:2.4em; line-height:1.1; display:block; }
.m-ramo b{ display:block; font-family:var(--title); font-size:1.1em; }
.m-ramo span{ font-size:.88em; display:block; margin-top:4px; }

/* parole */
.parole{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px; }
.parola{ background:var(--card); border:3px solid var(--line); border-radius:var(--r); padding:12px; display:flex; flex-direction:column; gap:4px; }
.parola b{ font-family:var(--title); font-size:1.2em; color:var(--mat); display:flex; align-items:center; gap:8px; }
body.t-contrast .parola b{ color:#ffeb3b; }
.parola .pic{ font-size:1.6em; }

/* copia */
.copia-intro{ display:flex; align-items:center; gap:12px; background:var(--card); border:3px dashed var(--mat); border-radius:var(--r); padding:10px 14px; margin-bottom:12px; }
.copia-intro .pic{ font-size:2.2em; }
.copia{ counter-reset:cp; display:flex; flex-direction:column; gap:14px; }
.cp{ background:var(--card); border:3px solid var(--line); border-radius:var(--r); padding:12px 16px; }
.cp .model{ display:flex; gap:10px; align-items:flex-start; font-size:1.12em; font-weight:700; }
.cp .model::before{ counter-increment:cp; content:counter(cp); background:var(--mat); color:#fff; border-radius:50%; min-width:30px; height:30px; display:grid; place-items:center; font-size:.8em; margin-top:.1em; }
.righe{ margin-top:8px; }
.riga{ height:2.1em; border-bottom:2px solid #9fb3d9; }
.lv1 .riga{ height:2.8em; border-bottom:2px solid #7f9cd6; background:linear-gradient(to bottom, transparent calc(50% - 1px), #d9e2f4 calc(50% - 1px), #d9e2f4 calc(50% + 1px), transparent calc(50% + 1px)); }
.lv1 .cp .model{ font-size:1.35em; }

/* esercizi */
.punteggio{ display:flex; align-items:center; gap:10px; background:var(--card); border:3px solid var(--line); border-radius:var(--r); padding:10px 14px; margin-bottom:14px; font-weight:700; }
.punteggio .stars{ font-size:1.4em; letter-spacing:2px; }
.es{ background:var(--card); border:3px solid var(--line); border-radius:var(--r); padding:14px 16px; margin-bottom:14px; position:relative; }
.es.done{ border-color:var(--ok); }
.es.done::after{ content:'⭐'; position:absolute; top:-14px; right:-8px; font-size:1.8em; }
.es .cons{ display:flex; align-items:center; gap:10px; font-weight:700; margin:0 0 10px; }
.es .cons .n{ background:var(--mat); color:#fff; border-radius:10px; padding:2px 10px; font-family:var(--title); flex:none; }
.es .cons .tipo{ font-size:1.4em; }
.dom{ display:flex; align-items:flex-start; gap:6px; margin:6px 0 10px; font-size:1.05em; }
.opts{ display:flex; flex-wrap:wrap; gap:8px; }
.opt,.chip{ border:3px solid var(--line); background:var(--bg); border-radius:14px; padding:8px 14px; font-weight:700; text-align:left; min-height:48px; }
.opt:hover,.chip:hover{ border-color:var(--mat); }
.opt.ok,.chip.ok{ background:#d7f5e1; border-color:var(--ok); color:#0f5132; }
.opt.ko,.chip.ko{ background:#fde0e0; border-color:var(--ko); animation:shake .35s; }
@keyframes shake{ 25%{ transform:translateX(-5px); } 75%{ transform:translateX(5px); } }
.fb{ min-height:1.4em; font-weight:700; margin-top:6px; }
.fb.ok{ color:var(--ok); } .fb.ko{ color:var(--ko); }
body.t-contrast .opt.ok, body.t-contrast .chip.ok{ background:#0f5132; color:#fff; }
body.t-contrast .opt.ko, body.t-contrast .chip.ko{ background:#7a1010; color:#fff; }
.vf .opts .opt{ min-width:120px; text-align:center; }
.cmp-row{ padding:10px 0; border-bottom:2px dashed var(--line); }
.cmp-row:last-child{ border-bottom:0; }
.blank{ display:inline-block; min-width:110px; border-bottom:3px solid var(--ink); text-align:center; font-weight:700; padding:0 6px; }
.blank.ok{ color:var(--ok); border-color:var(--ok); }
.cmp-row .opts{ margin-top:8px; }
.banca{ display:none; }
.abb{ display:grid; grid-template-columns:1fr 1fr; gap:10px 30px; }
.abb .col{ display:flex; flex-direction:column; gap:8px; }
.abb .chip{ width:100%; }
.abb .chip.sel{ border-color:var(--ink); background:#fff3c4; }
.abb .chip.m0{ background:#d7f5e1; border-color:#2e9d5b; }
.abb .chip.m1{ background:#dbe8ff; border-color:#3d5afe; }
.abb .chip.m2{ background:#ffe3cc; border-color:#e67e22; }
.abb .chip.m3{ background:#f3dcff; border-color:#8e24aa; }
.abb .chip.m4{ background:#fff3b0; border-color:#c9a400; }
.abb .chip.m5{ background:#d2f4f6; border-color:#00838f; }
body.t-contrast .abb .chip[class*=" m"]{ color:#000; }
.ord-ans{ min-height:56px; border:3px dashed var(--line); border-radius:14px; padding:6px; display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.ord-ans .chip{ background:#fff3c4; }
.ord-pool{ display:flex; flex-wrap:wrap; gap:6px; }
.es textarea{ width:100%; min-height:110px; font:inherit; border:3px solid var(--line); border-radius:14px; padding:10px; background:var(--bg); color:var(--ink); }
.mini{ font-size:.8em; padding:4px 10px; border-radius:10px; border:2px solid var(--line); background:var(--bg); font-weight:700; }
.disegna{ display:none; }
.soluzioni{ display:none; }
.soluzioni.show{ display:block; }
.soluzioni ol{ padding-left:1.4em; }
.pager{ display:flex; justify-content:space-between; gap:10px; margin-top:30px; flex-wrap:wrap; }
.festa{ position:fixed; inset:0; pointer-events:none; z-index:60; display:grid; place-items:center; font-size:120px; animation:pop 1.6s forwards; }
@keyframes pop{ 0%{ transform:scale(.3); opacity:0; } 30%{ transform:scale(1.1); opacity:1; } 80%{ opacity:1; } 100%{ transform:scale(1); opacity:0; } }

/* percorso */
.perc{ margin-bottom:26px; }
.perc h2{ display:flex; gap:10px; align-items:center; color:var(--c); }
body.t-contrast .perc h2{ color:#fff; }
.perc-cols{ display:grid; grid-template-columns:1fr 1.4fr 1fr; gap:12px; }
.perc-col{ background:var(--card); border:3px solid var(--line); border-radius:var(--r); padding:12px 14px; font-size:.9em; }
.perc-col.now{ border-color:var(--c); border-width:4px; }
.perc-col h3{ margin-top:0; font-size:1.05em; }
.perc-col ul{ margin:0; padding-left:1.1em; }
.perc-col li{ margin:3px 0; }
.perc-col a{ font-weight:700; }
.doc h2{ margin-top:1.4em; }
.doc .card{ margin:10px 0; }
.lv-tab{ width:100%; border-collapse:collapse; font-size:.9em; }
.lv-tab th,.lv-tab td{ border:2px solid var(--line); padding:8px; vertical-align:top; text-align:left; }

.foot{ text-align:center; color:var(--soft); font-size:.8em; padding:24px 16px 40px; border-top:3px solid var(--line); }
.modal{ position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:80; display:grid; place-items:center; padding:16px; }
.modal[hidden]{ display:none; }
.modal-box{ background:var(--card); border-radius:22px; padding:22px; max-width:480px; width:100%; border:3px solid var(--ink); display:flex; flex-direction:column; max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); overflow:hidden; }
.modal-box h2{ margin:0 0 6px; }
.modal-box p{ margin:0 0 8px; }
.modal-box .hint{ font-size:.85em; color:var(--soft); }
.pm-checks{ display:flex; flex-direction:column; gap:8px; margin:6px 0 12px; flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.pm-checks label{ display:flex; gap:10px; align-items:center; font-weight:700; background:var(--bg); padding:8px 12px; border-radius:12px; cursor:pointer; }
.pm-checks input{ width:22px; height:22px; }
.modal-act{ display:flex; justify-content:flex-end; gap:10px; flex:none; padding-top:12px; border-top:2px solid var(--line); }
.modal-act .btn{ min-height:48px; justify-content:center; }
@media (max-width:560px), (max-height:640px){
  .modal{ padding:10px; }
  .modal-box{ padding:16px; max-height:calc(100vh - 20px); max-height:calc(100dvh - 20px); }
  .modal-box h2{ font-size:1.15em; }
  .modal-box p{ font-size:.9em; }
  .pm-checks{ gap:6px; }
  .pm-checks label{ padding:6px 10px; }
  .modal-act .btn{ flex:1; }
}
@media (max-height:640px){ .modal-box .hint{ display:none; } }

@media (max-width:800px){
  :root{ --fs:18px; }
  .hero{ grid-template-columns:1fr; }
  .hero-art{ font-size:44px; }
  .ricordi,.ponte,.perc-cols{ grid-template-columns:1fr; }
  .lv-switch{ margin-left:0; width:100%; }
  .lv-switch button{ flex:1; justify-content:center; }
  .nav a{ padding:4px 8px; }
  .top-head .big{ font-size:56px; }
  .top-head h1{ font-size:1.7em; }
  .toc{ top:118px; }
  .abb{ gap:8px 12px; }
}

/* ===== STAMPA ===== */
#stampa{ display:none; }
@page{ size:A4; margin:14mm 13mm; }
@media print{
  :root{ --fs:15pt; --bg:#fff; --card:#fff; --shadow:none; }
  body{ background:#fff; color:#000; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .top,.foot,.settings,.toc,.pager,.crumbs,.speak,.btn,.mini,.modal,.punteggio,.skip,.no-print,.ricordi{ display:none !important; }
  main{ padding:0; max-width:none; }
  body.stampa-tutto main{ display:none; }
  body.stampa-tutto #stampa{ display:block; }
  .topic + .topic{ break-before:page; }
  .sez{ break-before:page; margin:0; }
  .sez.prima-sez{ break-before:avoid; }
  .top-head{ display:none !important; }
  .print-head{ display:flex; justify-content:space-between; font-size:11pt; margin-bottom:8px; border-bottom:1.5px solid #000; padding-bottom:4px; }
  .print-head span:last-child{ font-weight:700; }
  .nome-data{ display:flex !important; gap:20px; font-size:12pt; margin:6px 0 10px; }
  .nome-data span{ flex:1; border-bottom:1.5px solid #000; padding-bottom:2px; }
  .sez > h2{ font-size:17pt; padding:5px 12px; }
  .frase,.m-ramo,.parola,.cp,.es,.fig,.st{ break-inside:avoid; }
  .es{ border-width:2px; padding:10px 12px; margin-bottom:10px; }
  .es.done::after{ display:none; }
  .opt,.chip{ border-width:2px; min-height:0; padding:4px 10px; background:#fff !important; color:#000 !important; border-color:#999 !important; animation:none; }
  .opt::before{ content:'☐ '; }
  .vf .opt::before{ content:'☐ '; }
  .fb{ display:none; }
  .blank{ color:transparent !important; min-width:150px; border-color:#000 !important; }
  .cmp-row .opts{ display:none; }
  .banca{ display:block; border:2px dashed #000; border-radius:12px; padding:6px 10px; margin-bottom:8px; font-weight:700; }
  .abb .chip{ position:relative; }
  .abb{ gap:8px 70px; }
  .abb .col:first-child .chip::after{ content:'●'; position:absolute; right:-24px; top:50%; transform:translateY(-50%); }
  .abb .col:last-child .chip::before{ content:'●'; position:absolute; left:-24px; top:50%; transform:translateY(-50%); }
  .abb .chip[class*=" m"]{ background:#fff !important; border-color:#999 !important; }
  .ord-ans{ display:none; }
  .ord-write{ display:block !important; }
  .es textarea{ display:none; }
  .es .righe-print{ display:block !important; }
  *{ outline:none !important; }
  .disegna{ display:block; height:150px; break-inside:avoid; border:2px dashed #000; border-radius:14px; margin-top:12px; padding:6px 10px; font-weight:700; }
  .soluzioni{ display:none !important; }
  body.p-soluzioni .soluzioni{ display:block !important; break-before:page; }
  body:not(.p-spiega) .sez-spiega,
  body:not(.p-mappa) .sez-mappa,
  body:not(.p-parole) .sez-parole,
  body:not(.p-copia) .sez-copia,
  body:not(.p-esercizi) .sez-esercizi{ display:none !important; }
  .riga{ border-bottom-color:#555; }
  img.emoji{ -webkit-print-color-adjust:exact; }
  a{ text-decoration:none; }
}
.ord-write,.righe-print{ display:none; }

/* testi lunghi su schermi stretti */
.abb{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.opt,.chip,.frase .tx,.m-ramo,.parola,.tab td,.tab th,.cp .model,.dom,.cmp-row{ overflow-wrap:anywhere; min-width:0; }
.tab-wrap{ max-width:100%; }
.fig{ overflow:hidden; }
@media (max-width:500px){
  .tab{ font-size:.8em; } .tab th,.tab td{ padding:5px 6px; }
  .es{ padding:12px; } .opt,.chip{ padding:8px 10px; }
  .frase{ gap:8px; padding:10px; }
}

/* schede delle classi nella pagina materia */
.cls-tabs{ display:flex; gap:10px; flex-wrap:wrap; margin:0 0 18px; }
.cls-tabs a,.cls-tabs .off{ flex:1; min-width:150px; text-decoration:none; text-align:center; font-family:var(--title); font-weight:700; font-size:1.1em; padding:12px 14px; border-radius:18px; border:4px solid var(--line); background:var(--card); }
.cls-tabs a small,.cls-tabs .off small{ display:block; font-family:var(--font); font-weight:400; font-size:.7em; color:var(--soft); }
.cls-tabs a.on{ border-color:var(--c); background:var(--c); color:#fff; }
.cls-tabs a.on small{ color:#fff; }
.cls-tabs .off{ opacity:.5; }
.cls-pills{ display:flex; gap:4px; flex-wrap:wrap; }

/* banner di supporto (non invasivi) */
.support-top{ display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; background:#fff8e1; color:#5c4400; font-size:.78em; padding:6px 44px 6px 16px; position:relative; border-bottom:1px solid #f0d98a; text-align:center; }
.support-top[hidden], .support-bottom[hidden]{ display:none; }
.support-btn{ background:#ffc439; color:#1f2433; font-weight:700; text-decoration:none; padding:3px 12px; border-radius:20px; white-space:nowrap; }
.support-btn:hover{ background:#f2b600; }
.support-x{ position:absolute; right:8px; top:50%; transform:translateY(-50%); border:0; background:transparent; font-size:1.1em; color:#5c4400; padding:4px 8px; border-radius:8px; }
.support-x:hover{ background:#f6e7b5; }
.support-bottom{ max-width:1100px; margin:10px auto 24px; padding:16px 18px; display:flex; gap:16px; align-items:center; flex-wrap:wrap; background:var(--card); border:3px dashed #f0c14b; border-radius:var(--r); }
.sb-ico{ font-size:2.4em; }
.sb-txt{ flex:1; min-width:220px; display:flex; flex-direction:column; gap:2px; font-size:.9em; }
.sb-txt b{ font-family:var(--title); font-size:1.15em; }
.sb-btn{ background:#ffc439 !important; color:#1f2433 !important; }
body.t-contrast .support-top{ background:#000; color:#ffeb3b; border-color:#ffeb3b; }
body.t-contrast .support-x{ color:#ffeb3b; }
@media print{ .support-top,.support-bottom{ display:none !important; } }

.st-short{ display:none; }
.logo small{ white-space:nowrap; }
@media (max-width:640px){
  .st-long{ display:none; } .st-short{ display:inline; }
  .support-top{ flex-wrap:nowrap; justify-content:flex-start; padding:5px 40px 5px 12px; font-size:.72em; text-align:left; }
  .sb-btn{ width:100%; justify-content:center; }
}

/* ---- pagine statiche (SEO) ---- */
a.lv-card{ color:inherit; text-decoration:none; }
a.lv-card:hover{ border-color:var(--lvc); }
.ponte h2.h3{ font-size:1.05em; margin:0 0 6px; }
.hub-sum h2{ font-size:1.1em; margin:4px 0 8px; }
.hub-sum ul{ margin:0 0 10px; padding-left:1.2em; }
.hub-sum li{ margin:3px 0; }
.seo-intro{ font-size:.85em; color:var(--soft); margin:18px 0 0; line-height:1.6; }
.seo-intro a{ font-weight:700; white-space:nowrap; }
.foot-nav{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:14px 20px; text-align:left; max-width:1100px; margin:0 auto 16px; font-size:.85em; }
.foot-nav div{ display:flex; flex-direction:column; gap:3px; }
.foot-nav b{ margin-bottom:3px; }
.foot-nav a{ color:inherit; }
.land-list summary{ cursor:pointer; font-size:1.05em; }
.land-list ul{ columns:2 260px; margin:8px 0 0; padding-left:1.2em; }
.land-list li{ margin:4px 0; break-inside:avoid; }
div.lv-card p{ margin:0; }

/* ---- banner app Docenti360 ---- */
.app-banner{ max-width:1100px; margin:24px auto 10px; padding:16px 18px; display:flex; gap:16px; align-items:center; flex-wrap:wrap; background:var(--card); border:3px solid #b2dfdb; border-radius:18px; }
.app-btn{ background:#00796b !important; color:#fff !important; }
body.t-contrast .app-banner{ border-color:#ffeb3b; }
@media (max-width:800px){ .app-banner{ margin-left:12px; margin-right:12px; } }
@media print{ .app-banner{ display:none !important; } }
.app-logo{ width:64px; height:64px; border-radius:14px; flex:none; box-shadow:0 2px 6px rgba(0,0,0,.2); }

/* ---- esercizi: schede A/B/C, scrivi la parola, autovalutazione ---- */
[hidden]{ display:none !important; }
.ver-tabs{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; padding:10px 12px; background:var(--card); border:3px solid var(--line); border-radius:16px; }
.ver-tabs span{ font-weight:700; }
.ver-tabs button{ min-width:46px; padding:8px 14px; border-radius:12px; border:3px solid var(--line); background:var(--bg); font-family:var(--title); font-size:1.05em; }
.ver-tabs button[aria-pressed="true"]{ background:var(--mat); color:#fff; border-color:var(--mat); }
.ver-tabs small{ flex:1 1 220px; color:var(--soft); font-size:.8em; }
.ver-name{ font-family:var(--title); font-weight:700; margin:0 0 8px; color:var(--mat); }
.scrivi{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:8px 0; }
.scrivi input{ flex:1 1 180px; max-width:340px; font:inherit; padding:10px 12px; border:3px solid var(--line); border-radius:12px; background:var(--bg); color:var(--ink); }
.scrivi input.ok{ border-color:#2f9e44; background:#ebfbee; }
.scrivi input.ko{ animation:shake .3s; border-color:#e03131; }
.scrivi .hint{ font-size:.82em; color:var(--soft); }
.autoval{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:16px; padding:12px 14px; border:3px dashed var(--line); border-radius:16px; }
.facce{ display:flex; gap:8px; flex-wrap:wrap; }
.faccia{ display:flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; border:3px solid var(--line); background:var(--card); font-size:.95em; }
.faccia[aria-pressed="true"]{ border-color:var(--mat); background:var(--mat); color:#fff; }
body.t-contrast .ver-tabs button[aria-pressed="true"], body.t-contrast .faccia[aria-pressed="true"]{ background:#000; color:#ffeb3b; border-color:#ffeb3b; }

/* ---- mappe ragionate ---- */
.m-chiedi{ font-family:var(--title); font-weight:700; font-size:1.1em; margin:0 0 12px; padding:10px 14px; background:var(--card); border-left:8px solid var(--mat); border-radius:12px; }
.m-ricorda{ margin:14px 0 0; padding:10px 14px; background:#fff9db; border:3px solid #ffe066; border-radius:12px; font-size:.95em; }
body.t-contrast .m-ricorda{ background:#000; border-color:#ffeb3b; }
.mappa2{ display:flex; flex-direction:column; align-items:center; }
.mappa2 .m-centro{ margin-bottom:0; }
.m-cols{ list-style:none; margin:0; padding:30px 0 0; width:100%; display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:18px; position:relative; }
.m-cols::before{ content:''; position:absolute; top:0; left:50%; width:6px; height:30px; background:var(--mat); transform:translateX(-50%); }
.m-col{ display:flex; flex-direction:column; align-items:stretch; min-width:0; }
.m-link{ align-self:center; font-size:.8em; font-style:italic; font-weight:700; color:var(--mat); background:var(--bg); border:2px solid var(--mat); border-radius:999px; padding:2px 12px; margin-bottom:6px; text-align:center; }
.m-link.vuoto{ visibility:hidden; }
.m-nodo{ position:relative; background:var(--mat); color:#fff; border-radius:18px; padding:10px 12px; text-align:center; font-family:var(--title); display:flex; flex-direction:column; align-items:center; gap:2px; }
.m-nodo .pic{ font-size:1.9em; line-height:1.1; }
.m-nodo b{ font-size:1.1em; }
.m-num{ position:absolute; top:-10px; left:-8px; width:30px; height:30px; border-radius:50%; background:var(--ink); color:var(--bg); display:grid; place-items:center; font-size:.9em; }
.m-voci{ list-style:none; margin:8px 0 0; padding:0 0 0 14px; border-left:5px solid var(--mat); display:flex; flex-direction:column; gap:6px; }
.m-voci li{ display:grid; grid-template-columns:auto 1fr; gap:8px; align-items:center; background:var(--card); border:3px solid var(--line); border-radius:14px; padding:7px 10px; }
.m-voci .pic{ font-size:1.5em; line-height:1; }
.m-voci b{ display:block; font-size:.98em; }
.m-voci small{ display:block; font-size:.84em; color:var(--soft); }
.m-sequenza .m-cols{ grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.m-sequenza .m-col:not(:last-child) .m-nodo::after{ content:'➜'; position:absolute; right:-17px; top:50%; transform:translateY(-50%); color:var(--mat); font-size:1.2em; z-index:1; }
.m-confronto .m-cols{ grid-template-columns:repeat(var(--rami),minmax(0,1fr)); gap:12px; }
.m-confronto .m-voci{ border-left:0; padding-left:0; }
body.t-contrast .m-nodo{ background:#000; border:3px solid #fff; }
@media (max-width:700px){
  .m-confronto .m-cols{ grid-template-columns:1fr; }
  .m-sequenza .m-col:not(:last-child) .m-nodo::after{ content:'⬇'; right:50%; top:auto; bottom:-22px; transform:translateX(50%); }
  .m-sequenza .m-cols{ gap:26px; }
}
@media print{
  .autoval{ break-inside:avoid; }
  .faccia{ border:2px solid #000; background:#fff; color:#000; }
  .scrivi input, .scrivi .mini{ display:none; }
  .m-col, .m-voci li{ break-inside:avoid; }
  .m-cols{ grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
  .m-nodo{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
.parola b .cx{ overflow-wrap:break-word; min-width:0; }
.parola b{ flex-wrap:wrap; }

/* ---- sottoschede ---- */
.arg-card.sub{ margin-left:26px; border-style:dashed; }
.arg-card.sub .num{ background:transparent; color:var(--mat); border:2px dashed var(--mat); }
.perc-col li.sub{ margin-left:14px; list-style:none; font-size:.94em; }
.sotto{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:16px 0 0; padding:12px 14px; background:var(--card); border:3px dashed var(--line); border-radius:16px; }
.sotto span{ display:flex; flex-wrap:wrap; gap:8px; }
.sotto a{ text-decoration:none; font-weight:700; padding:6px 12px; border-radius:999px; border:3px solid var(--line); background:var(--bg); }
.sotto a:hover{ border-color:var(--ink); }
@media (max-width:700px){ .arg-card.sub{ margin-left:14px; } }

/* ---- rifiniture: barre fisse, bersagli del tocco, schermi piccoli ---- */
/* l'indice della scheda (con il tasto Stampa) resta subito sotto l'intestazione, qualunque altezza abbia */
.toc{ top:var(--topH, 66px); }
.sez{ scroll-margin-top:calc(var(--topH, 66px) + 70px); }
.speak{ min-width:40px; min-height:40px; }
.support-x{ min-width:40px; min-height:40px; }
.support-btn{ padding:6px 14px; }
.settings{ max-height:calc(100vh - 90px); max-height:calc(100dvh - 90px); }
@media (max-width:800px){
  /* sul telefono l'intestazione scorre via: fissa resta solo la riga con Stampa e le sezioni */
  .top{ position:static; padding:8px 12px; gap:8px 10px; }
  .logo{ order:1; flex:1 1 auto; min-width:0; font-size:1.1em; }
  .btn-ico{ order:2; min-height:42px; }
  .nav{ order:3; width:100%; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
  .nav::-webkit-scrollbar{ display:none; }
  .nav a{ flex:none; white-space:nowrap; padding:8px 10px; }
  .lv-switch{ order:4; }
  .lv-switch button{ min-height:42px; }
  .toc{ top:0; flex-wrap:nowrap; overflow-x:auto; gap:8px; margin:0 -16px 12px; padding:8px 16px; scrollbar-width:none; box-shadow:0 4px 8px -6px rgba(0,0,0,.35); }
  .toc::-webkit-scrollbar{ display:none; }
  .toc a,.toc button{ flex:none; white-space:nowrap; min-height:42px; display:inline-flex; align-items:center; gap:6px; }
  .toc button{ order:-1; }
  .toc .sp{ display:none; }
  .sez{ scroll-margin-top:70px; }
  .settings{ top:10px; right:10px; width:calc(100vw - 20px); max-height:calc(100vh - 20px); max-height:calc(100dvh - 20px); }
  .back{ min-height:46px; }
}
/* tra tablet e portatile l'intestazione resta su una riga sola */
@media (min-width:801px) and (max-width:1559px){
  .top{ flex-wrap:nowrap; gap:10px; }
  .logo{ flex:none; }
  .nav{ flex-wrap:nowrap; min-width:0; }
  .nav a{ white-space:nowrap; padding:6px 8px; }
  .lv-switch{ flex:none; }
  .btn-ico{ flex:none; white-space:nowrap; }
}
@media (min-width:801px) and (max-width:1000px){ .logo-txt small{ display:none; } .nav a{ font-size:.8em; padding:6px; } }

/* ---- barra "cerca argomento e scegli il livello" ---- */
.cerca{ margin:18px 0 26px; padding:16px 18px; background:var(--card); border:3px solid var(--ink); border-radius:var(--r, 20px); box-shadow:0 4px 0 rgba(0,0,0,.12); }
.cerca-tit{ display:block; font-family:var(--title); font-weight:700; font-size:1.15em; margin:0 0 10px; }
.cerca-row{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.cerca-box{ position:relative; flex:1 1 280px; min-width:0; }
.cerca-box input{ width:100%; box-sizing:border-box; font:inherit; padding:12px 14px; min-height:48px; border:3px solid var(--line); border-radius:14px; background:var(--bg); color:var(--ink); }
.cerca-box input:focus{ outline:none; border-color:var(--ink); }
.cerca-list{ position:absolute; z-index:30; left:0; right:0; top:calc(100% + 4px); margin:0; padding:6px; list-style:none; background:var(--card); border:3px solid var(--ink); border-radius:14px; box-shadow:0 10px 24px rgba(0,0,0,.18); max-height:min(60vh, 380px); overflow-y:auto; }
.cerca-list li{ padding:10px 12px; border-radius:10px; cursor:pointer; display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.cerca-list li small{ color:var(--soft); }
.cerca-list li:hover,.cerca-list li[aria-selected="true"]{ background:var(--line); }
.cerca-lv{ display:flex; gap:6px; }
.cerca-lv button{ min-height:48px; min-width:52px; padding:6px 10px; border:3px solid var(--line); border-radius:14px; background:var(--bg); font-weight:700; color:var(--ink); }
.cerca-lv button[aria-pressed="true"]{ background:var(--lvc); border-color:var(--ink); color:#222; }
.cerca-row > .btn{ min-height:48px; justify-content:center; }
.cerca-msg{ margin:8px 0 0; min-height:1em; }
.cerca-msg:empty{ display:none; }
body.t-contrast .cerca-lv button[aria-pressed="true"]{ background:#000; color:#ffeb3b; border-color:#ffeb3b; }
@media (max-width:560px){ .cerca-lv{ width:100%; } .cerca-lv button{ flex:1; } .cerca-row > .btn{ width:100%; } }
@media (max-width:560px){ .hero-art{ display:none; } }

/* ---- valutazione della scheda ---- */
.voto{ margin:30px 0 10px; padding:18px 20px; background:var(--card); border:3px dashed var(--line); border-radius:var(--r, 20px); }
.voto h2{ margin:0 0 10px; font-size:1.2em; }
.voto-form{ display:flex; flex-direction:column; gap:10px; }
.stelle{ border:0; margin:0; padding:0; }
.stelle legend{ font-weight:700; margin-bottom:4px; }
.stelle-in{ display:inline-flex; flex-direction:row-reverse; gap:4px; }
.stelle-in input{ position:absolute; opacity:0; width:1px; height:1px; }
.stelle-in label{ font-size:2.2em; line-height:1; cursor:pointer; color:#ced4da; padding:2px; min-width:44px; text-align:center; }
.stelle-in label:hover, .stelle-in label:hover ~ label, .stelle-in input:checked ~ label{ color:#fab005; }
.stelle-in input:focus-visible + label{ outline:3px solid var(--ink); border-radius:8px; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.voto-lab{ display:flex; flex-direction:column; gap:4px; font-weight:700; flex:1 1 220px; }
.voto-lab small{ font-weight:400; color:var(--soft); }
.voto-lab textarea, .voto-lab input{ font:inherit; font-weight:400; padding:10px 12px; border:3px solid var(--line); border-radius:12px; background:var(--bg); color:var(--ink); }
.voto-row{ display:flex; flex-wrap:wrap; gap:10px; }
.voto-avviso{ margin:0; font-size:.9em; font-weight:700; color:#c92a2a; }
.voto-ok{ display:flex; gap:8px; align-items:flex-start; font-size:.95em; }
.voto-ok input{ width:22px; height:22px; flex:none; margin-top:2px; }
.voto-form .btn{ align-self:flex-start; min-height:46px; }
.voto-msg{ margin:0; font-weight:700; }
.voto-msg:empty{ display:none; }
body.t-contrast .voto-avviso{ color:#ffeb3b; }

/* ---- carosello dei commenti approvati ---- */
.recensioni{ margin:30px 0; }
.rec-list{ list-style:none; margin:0; padding:4px 2px 12px; display:grid; grid-auto-flow:column; grid-auto-columns:min(320px, 82%); gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; }
.rec{ scroll-snap-align:start; background:var(--card); border:3px solid var(--line); border-radius:18px; padding:14px 16px; display:flex; flex-direction:column; gap:6px; }
.rec-stelle{ color:#fab005; font-size:1.2em; letter-spacing:2px; }
.rec blockquote{ margin:0; font-size:.98em; }
.rec-chi{ margin:0; font-size:.88em; color:var(--soft); }

/* ---- bannerino NjApp (più discreto degli altri) ---- */
.nj-banner{ max-width:1100px; margin:6px auto 20px; padding:10px 14px; display:flex; gap:12px; align-items:center; background:linear-gradient(100deg, rgba(200,255,77,.16), rgba(94,240,200,.12) 50%, rgba(88,199,255,.14)); border:2px solid var(--line); border-radius:16px; font-size:.86em; }
.nj-logo{ width:40px; height:40px; border-radius:10px; flex:none; }
.nj-txt{ display:flex; flex-direction:column; gap:1px; flex:1 1 auto; min-width:0; }
.nj-txt b{ font-family:var(--title); font-size:1.05em; }
.nj-txt span{ color:var(--soft); }
.nj-btn{ flex:none; display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:6px 14px; border-radius:999px; background:#0a0b0d; color:#c8ff4d; font-weight:700; text-decoration:none; white-space:nowrap; }
.nj-btn:hover{ filter:brightness(1.15); }
body.t-contrast .nj-banner{ background:#000; border-color:#fff; }
@media (max-width:640px){ .nj-banner{ flex-wrap:wrap; margin-left:12px; margin-right:12px; } .nj-btn{ margin-left:52px; } }
@media print{ .nj-banner,.voto,.recensioni{ display:none !important; } }
ol.copia{ list-style:none; padding:0; margin:0; }
.copia-intro .speak{ margin-left:auto; }
