:root{
  --celeste:#1C93CC;
  --celeste-scuro:#0F6E9E;
  --sfondo:#E8F6FC;
  --rosso:#F24C3D;
  --ink:#13213A;
  --ink-2:#4A5871;
  --ink-3:#6E7B92;
  --linea:#D6E9F2;
  --carta:#FFFFFF;
  --tenue:#F3FAFD;
  --verde:#1D6435;
  --verde-bg:#E2F4E8;
  --ambra:#7A5B00;
  --ambra-bg:#FFF4D6;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--sfondo)}
body{font-family:'Nunito',system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.45}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
a{color:var(--celeste-scuro)}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--celeste);outline-offset:3px;border-radius:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* testata */
.top{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 32px;max-width:1240px;margin:0 auto}
.logo{min-height:44px;display:inline-flex;align-items:center;font-weight:800;font-size:28px;color:var(--celeste);letter-spacing:-.5px;text-decoration:none}
.logo .o{color:var(--rosso)}
.nav{display:flex;gap:6px;background:var(--carta);padding:6px;border-radius:999px;box-shadow:0 1px 2px rgba(19,33,58,.06)}
.nav a{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:999px;font-weight:700;font-size:15px;color:var(--ink-2);text-decoration:none}
.nav a:hover{color:var(--ink);background:var(--tenue)}
.nav a[aria-current="page"]{background:var(--ink);color:#fff}
.nav svg{width:20px;height:20px;flex:none}
.me{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:700;font-size:15px;min-height:44px}
.av{border-radius:50%;flex:none;display:grid;place-items:center;font-weight:800;color:#fff;background:var(--celeste);overflow:hidden;background-size:cover;background-position:center}
.av.s{width:40px;height:40px;font-size:14px}
.av.pc{background-color:var(--ink)}
.av.ada{background-color:var(--celeste)}
.av.carla{background-color:#7FBF9A}
.av.dario{background-color:#B9A3D6}
.av.franz{background-color:#E59A6B}
.av.bruno{background-color:#6FA8C7}

/* layout */
main{max-width:1240px;margin:0 auto;padding:8px 32px 56px}
.vista[hidden]{display:none}
.titolo-vista{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:8px 0 20px}
.titolo-vista h1{font-size:32px;font-weight:800;letter-spacing:-.4px;line-height:1.15}
.titolo-vista p{color:var(--ink-2);font-size:16px;margin-top:4px}
.due-col{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}
.carta{background:var(--carta);border-radius:24px;box-shadow:0 2px 6px rgba(19,33,58,.04),0 18px 40px -24px rgba(28,147,204,.25)}
.pad{padding:24px 26px}
h2.sez{font-size:22px;font-weight:800;margin:34px 0 14px;letter-spacing:-.2px}
h2.sez:first-child{margin-top:0}
h3{font-size:18px;font-weight:800}

/* bottoni */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;font-weight:800;font-size:16px;text-decoration:none;transition:background .15s,transform .1s}
.btn:active{transform:scale(.98)}
.btn.nero{background:var(--ink);color:#fff;box-shadow:0 10px 24px -14px rgba(19,33,58,.7)}
.btn.nero:hover{background:#1c2f52}
.btn.celeste{background:var(--celeste);color:#fff}
.btn.celeste:hover{background:var(--celeste-scuro)}
.btn.chiaro{background:var(--sfondo);color:var(--ink)}
.btn.chiaro:hover{background:#D6EEF8}
.btn.grande{min-height:58px;font-size:18px;width:100%}
.link{font-weight:700;font-size:15px;color:var(--celeste-scuro);text-decoration:underline;text-underline-offset:3px;min-height:44px;display:inline-flex;align-items:center}
.link.tenue{color:var(--ink-3)}

/* chips */
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:var(--sfondo);color:var(--ink);font-size:14px;font-weight:700;padding:6px 13px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}
.chip.bianca{background:var(--carta);border:1px solid var(--linea)}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;padding:5px 11px;border-radius:999px}
.badge.ok{background:var(--verde-bg);color:var(--verde)}
.badge.attesa{background:var(--sfondo);color:var(--celeste-scuro)}
.badge.prop{background:var(--ambra-bg);color:var(--ambra)}
.badge.no{background:#EEF2F6;color:var(--ink-2)}
.verif{display:inline-flex;align-items:center;gap:5px;color:var(--verde);font-size:13px;font-weight:700}
.verif svg{flex:none}

/* prossima uscita */
.prossima{position:relative;overflow:hidden}
.corda{position:absolute;left:0;top:0;bottom:0;width:22px;height:100%;pointer-events:none;z-index:2}
.foto{height:260px;background:#9fc7da center 55%/cover;position:relative}
.foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,33,58,0) 45%,rgba(19,33,58,.55))}
.foto-txt{position:absolute;left:52px;right:28px;bottom:22px;z-index:1;color:#fff}
.foto-txt .quando{display:inline-block;background:rgba(255,255,255,.94);color:var(--ink);font-size:14px;font-weight:800;padding:6px 13px;border-radius:999px}
.foto-txt h2{font-size:30px;font-weight:800;line-height:1.15;margin-top:10px;letter-spacing:-.3px;text-shadow:0 1px 12px rgba(0,0,0,.25)}
.corpo{padding:22px 32px 28px 52px}
.chi{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.chi .nome{font-weight:800;font-size:16px}
.chi .ruolo{font-size:14px;color:var(--ink-2)}
.fumetto{margin-top:16px;display:flex;gap:10px;align-items:flex-end}
.fumetto .av{width:32px;height:32px;font-size:12px}
.bolla{background:var(--tenue);border:1px solid var(--linea);padding:12px 16px;border-radius:20px 20px 20px 6px;font-size:16px;font-weight:600;max-width:560px}
.bolla small{display:block;font-size:12px;color:var(--ink-3);font-weight:600;margin-top:4px}
.fumetto.mio{justify-content:flex-end}
.fumetto.mio .bolla{background:var(--celeste);color:#fff;border-color:var(--celeste);border-radius:20px 20px 6px 20px}
.fumetto.mio .bolla small{color:rgba(255,255,255,.85)}
.fatti{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.fatto{background:var(--tenue);border:1px solid var(--linea);border-radius:18px;padding:14px 16px;display:flex;gap:12px;align-items:flex-start}
.fatto .ic{width:36px;height:36px;border-radius:50%;background:var(--carta);display:grid;place-items:center;flex:none}
.fatto b{display:block;font-size:13px;color:var(--ink-3);font-weight:700}
.fatto span{font-size:15px;font-weight:700}
.fatto.ok{background:#F1FAF4;border-color:#CDEBD7}

/* materiale */
.mat{margin-top:18px;border:1px solid var(--linea);border-radius:18px;overflow:hidden}
.mat summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;min-height:56px;cursor:pointer;font-weight:800;font-size:16px}
.mat summary::-webkit-details-marker{display:none}
.mat summary .conta{font-size:14px;color:var(--ink-2);font-weight:700}
.mat summary .fr{transition:transform .2s}
.mat[open] summary .fr{transform:rotate(180deg)}
.mat-barra{height:6px;background:var(--sfondo);margin:0 18px 6px;border-radius:999px;overflow:hidden}
.mat-barra i{display:block;height:100%;background:var(--verde);border-radius:999px;transition:width .3s}
.mat ul{list-style:none;padding:6px 10px 12px}
.mat li label{display:flex;align-items:center;gap:12px;padding:8px 8px;min-height:44px;border-radius:12px;cursor:pointer;font-size:15px;font-weight:600}
.mat li label:hover{background:var(--tenue)}
.mat input{width:22px;height:22px;accent-color:var(--verde);flex:none}
.mat .nota-m{font-size:13px;color:var(--ink-3);font-weight:600}
.mat li.fatto-m .t{text-decoration:line-through;color:var(--ink-3)}
.azioni{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:22px}
.azioni .spinge{margin-left:auto}
.scrivi{margin-top:16px;background:var(--sfondo);border-radius:18px;padding:16px}
.scrivi[hidden]{display:none}
.conferma-annulla{margin-top:16px;background:#FFF5F4;border:1px solid #F8D3CF;border-radius:18px;padding:16px 18px}
.conferma-annulla[hidden]{display:none}
.conferma-annulla p{font-weight:700}
.conferma-annulla .azioni{margin-top:12px}
.btn.rosso{background:var(--rosso);color:#fff}
.annullata{padding:36px 28px;text-align:center}
.annullata .tondo{width:64px;height:64px;border-radius:50%;background:#EEF2F6;display:grid;place-items:center;margin:0 auto 14px}

/* richieste */
.richieste{display:flex;flex-direction:column;gap:16px}
.rich{display:grid;grid-template-columns:120px minmax(0,1fr);gap:0;overflow:hidden}
.rich .mini{background:#9fc7da center/cover;min-height:100%}
.rich .dentro{padding:18px 22px 20px}
.rich-r1{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.rich h3{font-size:18px;line-height:1.25}
.rich .meta{font-size:14px;color:var(--ink-2);margin-top:2px}
.rich .thread{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.rich .thread .bolla{font-size:15px}
.attende{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-2);font-weight:600;margin-top:12px}
.puntini{display:inline-flex;gap:4px}
.puntini i{width:7px;height:7px;border-radius:50%;background:var(--celeste);opacity:.35;animation:pun 1.2s infinite}
.puntini i:nth-child(2){animation-delay:.2s}.puntini i:nth-child(3){animation-delay:.4s}
@keyframes pun{0%,100%{opacity:.25}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.puntini i{animation:none;opacity:.6}}
.rich .azioni{margin-top:14px}
.nuova-evid{animation:evid 2.4s ease-out}
@keyframes evid{0%{box-shadow:0 0 0 4px var(--rosso)}100%{box-shadow:0 0 0 4px transparent}}

/* pannello laterale */
.lato{display:flex;flex-direction:column;gap:20px;position:sticky;top:16px}
.lato h2{font-size:18px;font-weight:800}
.lato p.sub{font-size:14px;color:var(--ink-2);margin-top:4px}
.lato ul{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:14px}
.lato li{display:flex;gap:12px;align-items:flex-start;font-size:15px}
.spunta{width:26px;height:26px;border-radius:50%;background:var(--sfondo);flex:none;display:grid;place-items:center}
.lato li b{display:block;font-weight:800}
.lato li span{color:var(--ink-2);font-size:14px}
.nota{margin-top:18px;padding-top:14px;border-top:1px solid var(--linea);font-size:13px;color:var(--ink-3);font-weight:600}
.liv-mini{display:flex;gap:14px;align-items:center}
.liv-mini .cerchio{width:52px;height:52px;border-radius:50%;background:var(--sfondo);display:grid;place-items:center;flex:none}

/* catalogo */
.filtri{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:22px}
.filtro{min-height:44px;padding:0 18px;border-radius:999px;background:var(--carta);border:2px solid var(--linea);font-weight:700;font-size:15px;color:var(--ink)}
.filtro:hover{border-color:var(--celeste)}
.filtro[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.sel-lingua{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px}
select,input[type=text],input[type=date],input[type=number],input[type=email],textarea{font:inherit;color:var(--ink);border:1px solid var(--linea);border-radius:14px;padding:10px 14px;min-height:48px;background:#fff;width:100%}
textarea{min-height:90px;resize:vertical}
select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:38px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2313213A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center}
.sel-lingua select{width:auto;border-radius:999px;border-width:2px}
.griglia{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.card{display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:0 2px 6px rgba(19,33,58,.05),0 24px 44px -22px rgba(28,147,204,.45)}
.card .foto-c{height:180px;background:#9fc7da center/cover;position:relative}
.card .prezzo{position:absolute;right:14px;top:14px;background:rgba(255,255,255,.95);color:var(--ink);font-weight:800;font-size:14px;padding:6px 12px;border-radius:999px}
.card .prima{position:absolute;left:14px;top:14px;background:var(--rosso);color:#fff;font-weight:800;font-size:13px;padding:5px 11px;border-radius:999px}
.card .dentro{padding:16px 18px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.card h3{font-size:18px;line-height:1.25}
.card .zona{font-size:14px;color:var(--ink-2);font-weight:600}
.card .info{display:flex;flex-wrap:wrap;gap:6px}
.card .info span{font-size:13px;font-weight:700;background:var(--tenue);border:1px solid var(--linea);padding:4px 10px;border-radius:999px}
.card .guida-r{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--linea)}
.card .guida-r .av{width:34px;height:34px;font-size:12px}
.card .guida-r b{display:block;font-size:14px}
.card .lingue{font-size:13px;color:var(--ink-3);font-weight:600}
.vuoto{padding:48px 24px;text-align:center;color:var(--ink-2)}

/* dettaglio */
.indietro{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--ink);text-decoration:none;min-height:44px;margin-bottom:10px}
.det-foto{height:340px;border-radius:24px 24px 0 0;background:#9fc7da center/cover;position:relative}
.det{overflow:hidden;position:relative}
.det .corpo h1{font-size:32px;font-weight:800;line-height:1.15;letter-spacing:-.3px}
.det .descr{font-size:17px;color:var(--ink-2);margin-top:12px;max-width:640px}
.det-griglia{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:28px;align-items:start}
.incluso{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:12px}
.incluso li{display:flex;gap:10px;align-items:flex-start;font-size:15px;font-weight:600}
.livello-box{margin-top:22px;border-radius:18px;padding:16px 18px;display:flex;gap:14px;align-items:flex-start}
.livello-box.ok{background:#F1FAF4;border:1px solid #CDEBD7}
.livello-box.sopra{background:#FFFAEB;border:1px solid #F4E2AE}
.livello-box b{display:block;font-size:16px}
.livello-box span{font-size:14px;color:var(--ink-2)}
.guida-box{margin-top:22px;background:var(--tenue);border:1px solid var(--linea);border-radius:18px;padding:16px 18px;display:flex;gap:14px;align-items:flex-start}
.guida-box .av{width:56px;height:56px;font-size:18px}
.guida-box p{font-size:15px;color:var(--ink-2);margin-top:6px}
.modulo{position:sticky;top:16px}
.modulo h2{font-size:22px;font-weight:800}
.modulo .frase{font-size:15px;color:var(--ink-2);margin-top:6px}
.campo{margin-top:16px}
.campo label,.campo legend{display:block;font-size:14px;font-weight:800;margin-bottom:6px}
.campo .aiuto{font-size:13px;color:var(--ink-3);font-weight:600;margin-top:5px}
.doppio{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.doppio input{min-width:0}
.persone{display:flex;align-items:center;gap:10px}
.persone button{width:48px;height:48px;border-radius:50%;background:var(--sfondo);font-size:22px;font-weight:800;flex:none}
.persone button:disabled{opacity:.35;cursor:default}
.persone output{font-size:20px;font-weight:800;min-width:40px;text-align:center}
.rifugio{margin-top:16px;background:var(--tenue);border:1px solid var(--linea);border-radius:18px;padding:14px 16px;display:flex;align-items:center;gap:14px}
.rifugio b{display:block;font-size:15px;font-weight:800}
.rifugio span{font-size:13px;color:var(--ink-2)}
.switch{width:52px;height:30px;border-radius:999px;background:#CFE7F3;position:relative;flex:none;transition:background .2s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:left .2s}
.switch[aria-checked="true"]{background:var(--celeste)}
.switch[aria-checked="true"]::after{left:25px}
.switch-wrap{min-width:52px;min-height:44px;display:grid;place-items:center}
.errore{color:#B3261E;font-size:14px;font-weight:700;margin-top:10px}
.errore:empty{display:none}
.pagamento{margin-top:14px;font-size:13px;color:var(--ink-3);font-weight:600;text-align:center}

/* profilo */
.prof-testa{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.prof-testa .av{width:96px;height:96px;font-size:32px}
.prof-testa h1{font-size:30px;font-weight:800;letter-spacing:-.3px}
.prof-testa .dove{color:var(--ink-2);font-size:15px}
.privacy{display:flex;gap:10px;align-items:flex-start;background:var(--tenue);border:1px solid var(--linea);border-radius:16px;padding:12px 14px;font-size:14px;color:var(--ink-2);font-weight:600;margin-top:18px}
.livello-card{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.livello-card .scala{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.livello-card .scala span{font-size:13px;font-weight:700;padding:5px 11px;border-radius:999px;background:var(--tenue);color:var(--ink-3);border:1px solid var(--linea)}
.livello-card .scala span.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.livello-card .nome-liv{font-size:24px;font-weight:800}
.livello-card p{color:var(--ink-2);font-size:15px;margin-top:4px;max-width:560px}
.dl{margin-top:4px}
.dl dt{font-weight:800;font-size:14px;color:var(--ink-2);margin-top:14px;margin-bottom:6px}
.dl dt:first-child{margin-top:0}
.timeline{list-style:none;position:relative;margin-top:6px}
.timeline::before{content:"";position:absolute;left:31px;top:10px;bottom:10px;width:2px;background:repeating-linear-gradient(180deg,var(--rosso) 0 6px,transparent 6px 11px);opacity:.55}
.timeline li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;padding:12px 0;position:relative}
.timeline .th{width:64px;height:64px;border-radius:18px;background:#9fc7da center/cover;border:3px solid #fff;box-shadow:0 2px 8px rgba(19,33,58,.12);position:relative;z-index:1}
.timeline .data{font-size:13px;font-weight:800;color:var(--celeste-scuro)}
.timeline h3{font-size:17px;margin-top:2px}
.timeline .meta{font-size:14px;color:var(--ink-2);margin-top:2px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.timeline .ricordo{margin-top:8px;font-size:15px;font-style:italic;color:var(--ink);background:var(--tenue);border-radius:4px 16px 16px 16px;padding:10px 14px;border:1px solid var(--linea)}
.modifica{max-width:820px}.modifica fieldset{border:0}
.check-griglia{display:flex;flex-wrap:wrap;gap:8px}
.check-griglia label{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:999px;border:2px solid var(--linea);font-weight:700;font-size:14px;cursor:pointer;background:#fff}
.check-griglia input{width:18px;height:18px;accent-color:var(--celeste)}
.check-griglia label:has(input:checked){border-color:var(--celeste);background:var(--tenue)}
.check-griglia label:has(input:focus-visible){outline:3px solid var(--celeste);outline-offset:2px}
.foto-campo{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.foto-campo .av{width:80px;height:80px;font-size:26px}
.file-btn{position:relative}
.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.file-btn:has(input:focus-visible){outline:3px solid var(--celeste);outline-offset:3px}

/* quiz */
.quiz{max-width:720px;margin:0 auto}
.quiz .pad{padding:32px 36px}
.barra{height:10px;background:var(--sfondo);border-radius:999px;overflow:hidden;margin-top:10px}
.barra i{display:block;height:100%;background:linear-gradient(90deg,var(--celeste),var(--rosso));border-radius:999px;transition:width .3s}
.q-num{font-size:14px;font-weight:800;color:var(--ink-2);display:flex;justify-content:space-between}
.quiz fieldset{margin-top:24px}.quiz legend{font-size:24px;font-weight:800;line-height:1.25;margin:0 0 16px;padding:0;letter-spacing:-.2px}
.quiz fieldset{border:0}
.opz{display:flex;flex-direction:column;gap:10px}
.opz label{display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 18px;border-radius:18px;border:2px solid var(--linea);font-weight:700;font-size:16px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s}
.opz label:hover{border-color:var(--celeste)}
.opz input{width:22px;height:22px;accent-color:var(--rosso);flex:none}
.opz label:has(input:checked){border-color:var(--rosso);background:#FFF7F6}
.opz label:has(input:focus-visible){outline:3px solid var(--celeste);outline-offset:2px}
.quiz .azioni{justify-content:space-between}
.risultato{text-align:center}
.risultato .cerchio{width:96px;height:96px;border-radius:50%;background:var(--sfondo);display:grid;place-items:center;margin:0 auto 16px}
.risultato h1{font-size:34px;font-weight:800}
.risultato p{font-size:17px;color:var(--ink-2);max-width:520px;margin:8px auto 0}
.risultato .azioni{justify-content:center}

/* toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:999px;font-weight:700;font-size:15px;opacity:0;transition:.3s;z-index:60;pointer-events:none;max-width:calc(100vw - 32px);text-align:center}
.toast.su{opacity:1;transform:translateX(-50%)}
.barra-basso{display:none}

@media (max-width:1080px){
  .due-col,.det-griglia{grid-template-columns:minmax(0,1fr)}
  .lato,.modulo{position:static}
  .griglia{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav a span.lunga{display:none}
}
@media (max-width:820px){
  .top{padding:0 16px;height:64px}
  .nav,.me .nome-me{display:none}
  main{padding:4px 16px 110px}
  .titolo-vista h1{font-size:26px}
  .griglia{grid-template-columns:minmax(0,1fr)}
  .foto{height:210px}
  .foto-txt{left:34px;right:18px}
  .foto-txt h2{font-size:23px}
  .corpo{padding:20px 18px 24px 34px}
  .fatti{grid-template-columns:minmax(0,1fr)}
  .rich{grid-template-columns:minmax(0,1fr)}
  .rich .mini{height:110px;min-height:0}
  .rich .dentro{padding:16px 18px 18px}
  .det-foto{height:220px}
  .det .corpo h1{font-size:25px}
  .pad{padding:20px 18px}
  .quiz .pad{padding:22px 18px}
  .quiz legend{font-size:20px}
  .azioni .spinge{margin-left:0}
  .prof-testa .av{width:76px;height:76px;font-size:26px}
  .prof-testa h1{font-size:25px}
  .toast{bottom:92px}
  .barra-basso{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--linea);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .barra-basso a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;text-decoration:none;color:var(--ink-3);font-size:12px;font-weight:800;border-radius:14px}
  .barra-basso a svg{width:24px;height:24px}
  .barra-basso a[aria-current="page"]{color:var(--rosso)}
}

/* ---- aggiunte per l'app vera (server) ---- */
.flash{max-width:1240px;margin:0 auto 16px;padding:12px 18px;border-radius:16px;font-weight:700;font-size:15px}
.flash.ok{background:var(--verde-bg);color:var(--verde)}
.flash.err{background:#FFF5F4;color:#B3261E;border:1px solid #F8D3CF}
.fascia{text-align:center;font-size:13px;font-weight:700;color:var(--ink-2);background:var(--tenue);border-bottom:1px solid var(--linea);padding:6px 16px}
.top .destra{display:flex;align-items:center;gap:10px}
.esci{font-weight:700;font-size:14px;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px;min-height:44px}
form.inline{display:inline}
.nav .numerino,.barra-basso .numerino{background:var(--rosso);color:#fff;border-radius:999px;font-size:12px;font-weight:800;min-width:20px;height:20px;padding:0 6px;display:inline-grid;place-items:center}
.barra-basso a{position:relative}
.barra-basso .numerino{position:absolute;top:4px;right:calc(50% - 22px)}
.rich-r1 form{display:inline}
.ricordo-form{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ricordo-form input{flex:1;min-width:200px}
.btn.piccolo{min-height:44px;padding:0 18px;font-size:15px}
.mat .salva-mat{margin:4px 18px 14px}
.js .mat .salva-mat{display:none}
.vuoto a{font-weight:800}
.quiz .domanda-q[hidden]{display:none}
.no-js-nota{font-size:13px;color:var(--ink-3);font-weight:600;margin-top:10px}
.js .no-js-nota{display:none}
.persone-num{margin-top:8px;max-width:120px}
.js .persone-num{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
html:not(.js) .persone{display:none}
.logo svg{width:132px;height:auto;display:block}
@media (max-width:820px){.logo svg{width:112px}}
