:root{
  --crema:#FBF7F0; --crema-2:#F5ECDD; --carta:#FFFFFF; --linea:#EADFCB;
  --oro:#C9A96E; --oro-scuro:#9C7B42; --oro-chiaro:#F3E7D0;
  --testo:#3A3226; --testo-2:#7A6E5D; --testo-3:#A99E8C;
  --rosso:#B4553D; --rosso-chiaro:#F8E6E0; --verde:#5B8A5E; --verde-chiaro:#E6F0E3;
  --blu:#5A7A99; --blu-chiaro:#E5ECF3; --viola:#8A6A9A; --viola-chiaro:#EFE7F3;
  --ombra:0 6px 22px rgba(90,70,30,.08); --ombra-oro:0 4px 14px rgba(201,169,110,.35);
  --r:18px; --r-s:12px;
  --serif:'Cardo',Georgia,serif; --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--crema);color:var(--testo);font-family:var(--sans);font-size:16px;line-height:1.45}
body{min-height:100vh;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:.2px}
a{color:var(--oro-scuro)}
svg{width:22px;height:22px;flex:none}
.riga>svg{color:var(--oro-scuro)}
.nascosto{display:none!important}

/* --- intestazione --- */
.testata{position:sticky;top:0;z-index:20;background:rgba(251,247,240,.92);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--linea);padding:calc(var(--safe-t) + 10px) 16px 10px;display:flex;align-items:center;gap:12px}
.testata img{width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 1px var(--linea)}
.testata .titoli{flex:1;min-width:0}
.testata .marchio{font-size:10px;letter-spacing:1.8px;line-height:1.3;text-transform:uppercase;color:var(--oro-scuro);font-weight:600}
.testata h1{font-size:20px;font-weight:700;line-height:1.3;padding-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.testata .indietro{width:40px;height:40px;border-radius:50%;border:1px solid var(--linea);background:var(--carta);display:grid;place-items:center;cursor:pointer;flex:none}

/* --- contenuto e navigazione --- */
main{max-width:760px;margin:0 auto;padding:16px 16px calc(96px + var(--safe-b))}
.navbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--linea);display:flex;justify-content:space-around;padding:6px 4px calc(6px + var(--safe-b))}
.navbar button{flex:1;max-width:120px;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;font-weight:500;color:var(--testo-3);cursor:pointer;border-radius:12px}
.navbar button svg{width:24px;height:24px}
.navbar button.attivo{color:var(--oro-scuro)}
.navbar button.attivo svg{stroke-width:2.2}
@media (min-width:900px){
  .navbar{top:0;bottom:0;right:auto;width:220px;flex-direction:column;justify-content:flex-start;gap:4px;padding:96px 14px 20px;border-top:0;border-right:1px solid var(--linea);background:var(--carta)}
  .navbar button{flex:none;max-width:none;flex-direction:row;gap:12px;font-size:15px;padding:12px 14px;justify-content:flex-start}
  .navbar button.attivo{background:var(--oro-chiaro)}
  .testata{padding-left:236px}
  main{padding-left:236px;max-width:calc(760px + 236px);padding-bottom:40px}
}

/* --- elementi base --- */
.sezione{margin:22px 0 10px;display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.sezione h2{font-size:24px;font-weight:700}
.sezione .conta{font-size:13px;color:var(--testo-2)}
.sopratitolo{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--oro-scuro);font-weight:600}
.scheda{background:var(--carta);border-radius:var(--r);box-shadow:var(--ombra);padding:16px;margin-bottom:12px;border:1px solid rgba(234,223,203,.6)}
.vuoto{color:var(--testo-3);text-align:center;padding:18px 10px;font-size:14px;background:var(--carta);border-radius:var(--r);border:1px dashed var(--linea)}
.piccolo{font-size:13px;color:var(--testo-2)}
.riga{display:flex;align-items:center;gap:10px}
.cresce{flex:1;min-width:0}
.griglia2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.griglia3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dati{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:15px}
.dati dt{color:var(--testo-2);font-weight:600} .dati dd{margin:0;font-weight:600;word-break:break-word;color:var(--testo)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:13px 22px;font-weight:600;font-size:15px;cursor:pointer;background:var(--oro);color:#fff;box-shadow:var(--ombra-oro);min-height:48px;transition:transform .08s ease, opacity .2s}
.btn:active{transform:scale(.97)}
.btn svg{width:20px;height:20px}
.btn.secondario{background:var(--carta);color:var(--testo);border:1.5px solid var(--oro);box-shadow:none}
.btn.leggero{background:var(--crema-2);color:var(--testo);box-shadow:none}
.btn.pericolo{background:var(--carta);color:var(--rosso);border:1.5px solid #E7C3B8;box-shadow:none}
.btn.verde{background:var(--verde);box-shadow:0 4px 14px rgba(91,138,94,.3)}
.btn.pieno{width:100%}
.btn.piccolo{min-height:38px;padding:8px 14px;font-size:14px}
.btn:disabled{opacity:.45;pointer-events:none}
.pulsanti{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pulsanti .btn{flex:1 1 140px}

/* azioni rapide */
.azioni{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:6px 0 4px}
.azione{background:var(--carta);border:1px solid var(--linea);border-radius:var(--r);padding:14px 6px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:var(--ombra);text-align:center;line-height:1.2}
.azione .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--oro-chiaro);color:var(--oro-scuro)}
.azione .ic svg{width:24px;height:24px}
.azione:active{transform:scale(.97)}

/* chip di scelta */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1.5px solid var(--linea);background:var(--carta);border-radius:999px;padding:10px 16px;font-size:15px;font-weight:500;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;gap:8px;transition:all .12s}
.chip.si{background:var(--oro);border-color:var(--oro);color:#fff;box-shadow:var(--ombra-oro)}
.chip:disabled{opacity:.4;text-decoration:line-through}
.chip .pallino{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}
.chip.cane{padding:8px 14px 8px 8px}
.chip.cane .av{width:30px;height:30px;border-radius:50%;background:var(--oro-chiaro);display:grid;place-items:center;font-family:var(--serif);font-size:15px;color:var(--oro-scuro)}
.chip.si .av{background:rgba(255,255,255,.25);color:#fff}

.etichetta{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--crema-2);color:var(--testo-2);white-space:nowrap}
.etichetta.oro{background:var(--oro-chiaro);color:var(--oro-scuro)}
.etichetta.rosso{background:var(--rosso-chiaro);color:var(--rosso)}
.etichetta.verde{background:var(--verde-chiaro);color:var(--verde)}
.etichetta.blu{background:var(--blu-chiaro);color:var(--blu)}
.etichetta.viola{background:var(--viola-chiaro);color:var(--viola)}

/* eventi */
.evento{display:flex;gap:12px;align-items:center;background:var(--carta);border-radius:var(--r);padding:12px 12px 12px 14px;margin-bottom:10px;box-shadow:var(--ombra);border:1px solid rgba(234,223,203,.6);cursor:pointer;position:relative}
.evento .ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;flex:none}
.evento .ic svg{width:22px;height:22px}
.evento .t{font-weight:700;font-size:16px;line-height:1.3;color:var(--testo)}
.evento .s{font-size:13.5px;color:#5F5444;margin-top:3px;line-height:1.4;font-weight:500}
.evento.fatto{opacity:.6}
.evento.fatto .t{text-decoration:line-through}
.evento.ritardo{border-left:4px solid var(--rosso)}
.spunta{width:66px;min-height:58px;border-radius:16px;border:2px solid #9CC29E;background:#F1F8F1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;flex:none;color:#3F7A45;padding:6px 4px;box-shadow:0 2px 8px rgba(91,138,94,.15);transition:transform .08s}
.spunta:active{transform:scale(.94)}
.spunta svg{width:24px;height:24px;stroke-width:2.6}
.spunta span{font-size:11.5px;font-weight:700;letter-spacing:.2px;line-height:1}
.spunta.si{background:var(--verde);border-color:var(--verde);color:#fff;box-shadow:0 3px 10px rgba(91,138,94,.35)}
.data-box{text-align:center;min-width:42px;flex:none}
.data-box b{display:block;font-family:var(--serif);font-size:22px;line-height:1}
.data-box span{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--testo-2)}
.t-cura .ic{background:var(--verde-chiaro);color:var(--verde)}
.t-accoppiamento .ic,.t-calore .ic,.t-calore_inizio .ic{background:var(--rosso-chiaro);color:var(--rosso)}
.t-parto .ic{background:var(--viola-chiaro);color:var(--viola)}
.t-scadenza .ic{background:var(--blu-chiaro);color:var(--blu)}
.t-veterinario .ic,.t-visita .ic,.t-consegna .ic,.t-altro .ic{background:var(--oro-chiaro);color:var(--oro-scuro)}

/* liste cani / cucciolate */
.voce{display:flex;align-items:center;gap:14px;background:var(--carta);border-radius:var(--r);padding:14px;margin-bottom:10px;box-shadow:var(--ombra);border:1px solid rgba(234,223,203,.6);cursor:pointer}
.voce .av{width:52px;height:52px;border-radius:50%;background:var(--oro-chiaro);display:grid;place-items:center;font-family:var(--serif);font-size:24px;color:var(--oro-scuro);flex:none;overflow:hidden;background-size:cover;background-position:center}
.voce .n{font-family:var(--serif);font-size:20px;line-height:1.15}
.voce .s{font-size:13px;color:var(--testo-2);margin-top:2px}
.voce .freccia{color:var(--testo-3)}
.voce .etichette{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}

.cuccioli{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.cucciolo{background:var(--carta);border-radius:var(--r);box-shadow:var(--ombra);overflow:hidden;cursor:pointer;border:1px solid rgba(234,223,203,.6)}
.cucciolo .foto{aspect-ratio:4/3;background:var(--crema-2);display:grid;place-items:center;color:var(--testo-3);background-size:cover;background-position:center}
.cucciolo .foto svg{width:34px;height:34px}
.cucciolo .info{padding:10px 12px}
.cucciolo .info b{font-family:var(--serif);font-weight:400;font-size:18px;display:block;line-height:1.15}
.sesso-M{color:var(--blu)} .sesso-F{color:#B0607A}

/* calendario */
.mese-testa{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.mese-testa h2{font-size:24px;text-transform:capitalize}
.tondo{width:44px;height:44px;border-radius:50%;border:1px solid var(--linea);background:var(--carta);display:grid;place-items:center;cursor:pointer}
.mese{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:var(--carta);border-radius:var(--r);padding:10px;box-shadow:var(--ombra)}
.mese .gs{text-align:center;font-size:11px;font-weight:600;color:var(--testo-3);text-transform:uppercase;padding:4px 0}
.mese .g{aspect-ratio:1/1;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;font-size:15px;border:0;background:none;padding:0}
.mese .g.fuori{color:var(--testo-3);opacity:.5}
.mese .g.oggi{box-shadow:inset 0 0 0 1.5px var(--oro);font-weight:700}
.mese .g.sel{background:var(--oro);color:#fff}
.mese .punti{display:flex;gap:2px;height:6px}
.mese .punti i{width:5px;height:5px;border-radius:50%;background:var(--oro)}
.mese .punti i.rosso{background:var(--rosso)} .mese .punti i.verde{background:var(--verde)} .mese .punti i.viola{background:var(--viola)} .mese .punti i.blu{background:var(--blu)}
.mese .g.sel .punti i{background:#fff}

/* fogli (finestre dal basso) */
.velo{position:fixed;inset:0;background:rgba(40,30,15,.38);z-index:50;opacity:0;transition:opacity .2s}
.velo.on{opacity:1}
.foglio{position:fixed;left:0;right:0;bottom:0;z-index:51;background:var(--crema);border-radius:24px 24px 0 0;max-height:92vh;overflow:auto;transform:translateY(100%);transition:transform .25s cubic-bezier(.2,.8,.2,1);padding:8px 18px calc(22px + var(--safe-b));box-shadow:0 -10px 40px rgba(0,0,0,.15)}
.foglio.on{transform:translateY(0)}
.chiudi-foglio{position:absolute;top:12px;right:14px;width:40px;height:40px;border-radius:50%;border:1px solid var(--linea);background:var(--carta);font-size:16px;color:var(--testo-2);cursor:pointer;z-index:2}
.foglio h2{padding-right:44px}
.foglio .maniglia{width:44px;height:5px;border-radius:3px;background:var(--linea);margin:4px auto 12px}
.foglio h2{font-size:27px;font-weight:700;margin-bottom:4px}
@media (min-width:700px){.foglio{left:50%;right:auto;width:620px;margin-left:-310px;bottom:auto;top:50%;border-radius:24px;transform:translateY(-40%);opacity:0;max-height:88vh}.foglio.on{transform:translateY(-50%);opacity:1}}
.campo{margin:16px 0}
.campo>label,.campo>.lab{display:block;font-size:14.5px;font-weight:700;color:var(--testo);margin-bottom:8px;letter-spacing:.1px}
.inp{width:100%;border:1.5px solid var(--linea);background:var(--carta);border-radius:14px;padding:12px 14px;font-size:17px;min-height:50px;outline:none}
.inp:focus{border-color:var(--oro)}
textarea.inp{min-height:80px;resize:vertical}
.inp-data{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.inp-data input{flex:1 1 150px}
.contatore{display:flex;align-items:center;gap:14px}
.contatore button{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--oro);background:var(--carta);font-size:24px;color:var(--oro-scuro);cursor:pointer}
.contatore b{font-family:var(--serif);font-size:30px;min-width:36px;text-align:center}
.interruttore{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--carta);border-radius:14px;padding:12px 14px;border:1.5px solid var(--linea);cursor:pointer}
.interruttore i{width:50px;height:30px;border-radius:15px;background:var(--linea);position:relative;flex:none;transition:background .15s}
.interruttore i::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 .15s}
.interruttore.si i{background:var(--verde)} .interruttore.si i::after{left:23px}

.avviso{background:var(--oro-chiaro);border-radius:var(--r-s);padding:12px 14px;font-size:14px;margin:12px 0;color:var(--testo)}
.avviso.rosso{background:var(--rosso-chiaro);color:var(--rosso)}
.avviso.verde{background:var(--verde-chiaro)}

.toast{position:fixed;left:50%;top:calc(var(--safe-t) + 74px);transform:translateX(-50%) translateY(-20px);background:var(--testo);color:#fff;padding:12px 20px;border-radius:999px;font-size:14px;font-weight:500;z-index:80;opacity:0;transition:all .2s;pointer-events:none;max-width:90vw;text-align:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* accesso */
.accesso{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.accesso .scheda{width:100%;max-width:400px;text-align:center;padding:30px 24px}
.accesso img{width:110px;height:110px;border-radius:50%;box-shadow:0 0 0 1px var(--linea);margin-bottom:12px}
.accesso h1{font-size:30px;margin:6px 0 4px}
.accesso .campo{text-align:left}

/* grafico */
.grafico{width:100%;height:auto;display:block}
.legenda{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:13px;margin-top:8px}
.legenda span{display:inline-flex;align-items:center;gap:6px}
.legenda i{width:12px;height:3px;border-radius:2px;display:inline-block}

/* menu altro */
.menu{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.menu .azione{padding:20px 10px;font-size:15px}
.menu .azione .ic{width:52px;height:52px}

.albero{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;font-size:13px;align-items:center}
.albero>div{background:var(--crema-2);border-radius:10px;padding:8px;text-align:center;min-height:38px;display:flex;align-items:center;justify-content:center;line-height:1.25}
.albero b{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--oro-scuro)}
.albero .io{grid-row:span 4;background:var(--oro-chiaro);font-family:var(--serif);font-size:18px}
.albero .gen1{grid-row:span 2}

.tabella{width:100%;border-collapse:collapse;font-size:14px}
.tabella td{padding:10px 4px;border-bottom:1px solid var(--linea)}
.tabella td:last-child{text-align:right;font-weight:600;white-space:nowrap}
.importo.entrata{color:var(--verde)} .importo.uscita{color:var(--rosso)}
.tastierino{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tastierino button{height:56px;border-radius:14px;border:1px solid var(--linea);background:var(--carta);font-size:22px;font-weight:500;cursor:pointer}
.display-importo{font-family:var(--serif);font-size:42px;text-align:center;padding:6px 0 10px}
.installa{background:var(--testo);color:#fff;border-radius:var(--r);padding:14px 16px;font-size:14px;margin-bottom:14px;display:flex;gap:12px;align-items:center}
.installa b{color:var(--oro)}

/* --- categorie colorate ed emoji --- */
.evento{border-left:5px solid var(--k,#EADFCB)}
.evento .ic{background:var(--kb,var(--crema-2));color:var(--k,var(--oro-scuro))}
.evento .ic.emoji,.azione .ic.emoji{font-size:22px;line-height:1}
.evento .pill{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--kb,var(--crema-2));color:var(--k,var(--testo-2));margin-bottom:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evento.ritardo{border-left-color:var(--rosso);box-shadow:0 0 0 1.5px rgba(180,85,61,.25),var(--ombra)}
.evento .data-box{margin-right:-2px}
.azione .ic{background:var(--kb,var(--oro-chiaro));color:var(--k,var(--oro-scuro))}
.azione .ic.emoji{font-size:24px}
.mese .punti{height:8px;gap:3px}
.mese .punti i{width:7px;height:7px}
.mese .g.sel .punti i{box-shadow:0 0 0 1.5px #fff}
.legenda-cat{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;font-size:13px}
.legenda-cat span{display:flex;align-items:center;gap:8px}
.legenda-cat i{width:12px;height:12px;border-radius:50%;flex:none}
.testata-sez{font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--oro-scuro);margin:22px 0 10px;padding-top:14px;border-top:1px solid var(--linea)}
.foglio .testata-sez:first-of-type{border-top:0;padding-top:0;margin-top:10px}
.orari .chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.orari .chip{justify-content:center;padding:10px 0}
@media (min-width:700px){.orari .chips{grid-template-columns:repeat(6,1fr)}}
.filtri{margin:14px -16px 2px;padding:0 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.filtri::-webkit-scrollbar{display:none}
.filtri .chips{flex-wrap:nowrap;gap:6px}
.filtri .chip{padding:8px 13px;font-size:14px;min-height:40px;white-space:nowrap;flex:none}
/* Cani: sesso come interruttore a tre parti, razze come piccole etichette scorrevoli */
.segmenti{margin-top:4px}
.segmenti .chips{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;flex-wrap:nowrap;gap:4px;background:var(--oro-chiaro);border-radius:14px;padding:4px}
.segmenti .chip{border:0;background:transparent;border-radius:11px;min-height:38px;padding:6px 4px;justify-content:center;gap:6px;font-size:14.5px;color:var(--oro-scuro);box-shadow:none;white-space:nowrap}
.segmenti .chip.si{background:var(--carta);color:var(--testo);font-weight:600;box-shadow:0 2px 8px rgba(90,70,30,.12)}
.segmenti.impilati{margin-top:14px}
.segmenti.impilati .chip{flex-direction:column;gap:1px;min-height:52px;padding:6px 2px;font-size:12.5px;line-height:1.15}
.segmenti.impilati .chip .ce{font-size:18px;line-height:1.1}
.filtri.razze{margin-top:10px}
.razze .chip{min-height:32px;padding:5px 11px;font-size:13px;border-width:1px;color:var(--oro-scuro)}
.razze .chip.si{background:var(--oro-chiaro);border-color:var(--oro);color:var(--testo);font-weight:600;box-shadow:none}
.tendine{display:flex;flex-direction:column;gap:8px}
.tendina-testa{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--carta);border:1.5px solid var(--linea);border-radius:14px;padding:10px 12px;cursor:pointer;min-height:54px}
.tendina-testa.aperta{border-color:#1F8A70;background:#F3FAF7;border-bottom-left-radius:6px;border-bottom-right-radius:6px}
.tendina-testa b{font-family:var(--serif);font-weight:400;font-size:18px}
.tendina-av{width:36px;height:36px;border-radius:50%;background:#E2F3EE;display:grid;place-items:center;font-size:20px;flex:none}
.tendina-conta{background:#1F8A70;color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:3px 9px}
.tendina-freccia{font-size:18px;color:var(--testo-2);width:20px;text-align:center}
.tendina-corpo{background:#F3FAF7;border:1.5px solid #1F8A70;border-top:0;border-radius:0 0 14px 14px;padding:12px;margin-top:-10px}
.esiti{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.voce .n{font-weight:700}
.cucciolo .info b{font-weight:700}
.testata-sez{font-size:13px;color:var(--testo);font-weight:800}
.sopratitolo{font-weight:700}
.piccolo{color:#6A5F4F}
.btn{letter-spacing:.2px}
.mese-testa h2{font-weight:700}
.misure-tab td:first-child{color:var(--testo-2)}

/* ===== niente zoom con il doppio tocco ===== */
*{touch-action:manipulation}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* ===== data in alto nella home: titolo elegante ===== */
.eroe{text-align:center;padding:12px 8px 10px;margin:0 0 10px}
.eroe-giorno{font-family:var(--serif);font-size:32px;line-height:1.05;color:var(--testo);letter-spacing:.3px}
.eroe-giorno b{font-weight:700;color:var(--oro-scuro)}
.eroe-linea{position:relative;height:14px;margin:6px auto 5px;max-width:240px;display:flex;align-items:center;justify-content:center}
.eroe-linea::before,.eroe-linea::after{content:'';flex:1;height:2px;background:linear-gradient(90deg,transparent,var(--oro))}
.eroe-linea::after{background:linear-gradient(90deg,var(--oro),transparent)}
.eroe-linea span{color:var(--oro);font-size:14px;padding:0 10px;line-height:1}
.eroe-mese{font-size:11px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--oro-scuro)}
.eroe-saluto{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--testo-2);margin-top:6px}
.eroe-saluto::before,.eroe-saluto::after{content:' ✦ ';color:var(--oro);font-style:normal;font-size:10px;vertical-align:2px}
@media (min-width:700px){.eroe-giorno{font-size:40px}.eroe{padding-top:16px}}

/* ===== 7ª casella: scorte ===== */
.casella-scorte{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:var(--carta);border:1px solid var(--linea);border-radius:var(--r);padding:12px 14px;margin:10px 0 2px;box-shadow:var(--ombra);cursor:pointer;font:inherit}
.casella-scorte .ic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--verde-chiaro);font-size:22px;flex:none}
.casella-scorte b{display:block;font-size:15px}
.casella-scorte .piccolo{display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.casella-scorte.attenzione .ic{background:var(--oro-chiaro)}
.casella-scorte.urgente{border-color:#E7C3B8}
.casella-scorte.urgente .ic{background:var(--rosso-chiaro)}
.conta-tondo{min-width:34px;height:34px;padding:0 8px;border-radius:999px;display:grid;place-items:center;font-weight:800;font-size:15px;background:var(--verde-chiaro);color:var(--verde);flex:none}
.casella-scorte.attenzione .conta-tondo{background:var(--oro);color:#fff}
.casella-scorte.urgente .conta-tondo{background:var(--rosso);color:#fff}
.casella-scorte:active{transform:scale(.99)}
.casella-guida .ic{background:var(--oro-chiaro)}
.casella-guida .conta-tondo{font-size:20px;background:var(--oro-chiaro);color:var(--oro-scuro)}
.casella-guida+.casella-scorte{margin-top:8px}

/* sottosezioni nella home */
.sottosezione{font-size:12.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--testo-2);margin:4px 2px 8px}
.sottosezione.rosso{color:var(--rosso)}
.sezione .chips{gap:6px}
.sezione .chip{min-height:36px;padding:6px 12px;font-size:13.5px}

/* barra laterale su Mac: logo e nome */
.nav-marchio{display:none}
@media (min-width:900px){
  .navbar{padding-top:22px}
  .nav-marchio{display:flex;align-items:center;gap:10px;padding:0 6px 22px;margin-bottom:10px;border-bottom:1px solid var(--linea)}
  .nav-marchio img{width:46px;height:46px;border-radius:50%;box-shadow:0 0 0 1px var(--linea)}
  .nav-marchio b{font-family:var(--serif);font-size:20px;font-weight:700}
  .nav-marchio .sopratitolo{font-size:9.5px;letter-spacing:1.6px}
}

/* ===== scorte ===== */
.prodotto{border-left:5px solid var(--linea)}
.prodotto.oro{border-left-color:var(--oro)} .prodotto.rosso{border-left-color:var(--rosso)} .prodotto.blu{border-left-color:var(--blu)} .prodotto.verde{border-left-color:#9CC29E}
.prodotto-emoji{font-size:24px;width:32px;text-align:center;flex:none}
.prodotto .chips{gap:6px}
.prodotto .chip{min-height:38px;padding:6px 12px;font-size:13.5px}
.lista-spesa{padding:6px 14px}
.voce-spesa{padding:10px 0;border-bottom:1px solid var(--linea);flex-wrap:wrap}
.voce-spesa:last-child{border-bottom:0}
.voce-spesa .btn{flex:none}

/* ===== spese: grafici ===== */
.totale{text-align:center;padding:12px 8px}
.totale b{font-family:var(--serif);font-size:20px;display:block;margin-top:2px}
.grafico-cat{display:flex;gap:16px;align-items:center}
.ciambella{width:150px;height:150px;flex:none}
.voce-cat{display:grid;grid-template-columns:1fr auto;gap:2px 8px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--linea);padding:9px 2px;cursor:pointer;font:inherit}
.voce-cat:last-child{border-bottom:0}
.cat-nome{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px;min-width:0}
.cat-nome i{width:10px;height:10px;border-radius:3px;flex:none}
.cat-valore{font-weight:700;font-size:14.5px;white-space:nowrap}
.cat-valore small{color:var(--testo-2);font-weight:600}
.cat-barra{grid-column:1 / -1;height:6px;background:var(--crema-2);border-radius:3px;overflow:hidden}
.cat-barra span{display:block;height:100%;border-radius:3px}
@media (max-width:520px){.grafico-cat{flex-direction:column}.ciambella{width:170px;height:170px}.grafico-cat .cresce{width:100%}}
.barre{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;height:150px;align-items:end}
.barra-col{display:flex;flex-direction:column;height:100%;min-width:0}
.barra-area{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px}
.barra{flex:1;max-width:14px;border-radius:4px 4px 1px 1px;min-height:0}
.barra-et{font-size:10px;color:var(--testo-2);text-align:center;margin-top:4px;text-transform:capitalize}
.legenda i{display:inline-block}
.sezione h2{min-width:0}.sezione .conta{white-space:nowrap;flex:none}

/* pulsanti piccoli: il testo resta leggibile */
.btn.piccolo{color:#fff}
.btn.secondario.piccolo,.btn.leggero.piccolo{color:var(--testo)}
.btn.pericolo.piccolo{color:var(--rosso)}
.voce-spesa{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.azioni-spesa{display:flex;gap:8px;justify-content:flex-end;width:100%;padding-left:42px}
.azioni-spesa .btn{flex:1 1 0;max-width:180px}

/* ===== Cuccioli: elenco, scheda, galleria, condivisione ===== */
.segmenti.numeri .chip .ce{font-family:var(--serif);font-size:24px;line-height:1;color:var(--testo);font-weight:400}
.segmenti.numeri .chip{min-height:58px}
.filtri.razze .divisore{flex:none;width:1px;align-self:stretch;margin:4px 4px;background:var(--linea)}
.link-sezione{border:0;background:none;color:var(--oro-scuro);font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:2px;cursor:pointer;padding:4px 0}
.link-sezione svg{width:16px;height:16px}
.elenco-c{grid-template-columns:repeat(2,1fr)}
@media (min-width:700px){.elenco-c{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
.elenco-c .foto{aspect-ratio:1/1;position:relative}
.cucciolo .stato-c{position:absolute;top:8px;left:8px;font-size:11px;padding:3px 8px;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.cucciolo .stato-c.verde{background:#EAF4E8}
.cucciolo .n-foto{position:absolute;bottom:8px;right:8px;font-size:11px;font-weight:600;background:rgba(0,0,0,.45);color:#fff;border-radius:999px;padding:2px 8px}
.elenco-c .info b{font-size:16px}
.cliente-c{margin-top:5px;font-size:12.5px;font-weight:600;color:var(--oro-scuro);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.galleria{margin:4px 0 14px}
.galleria-grande{display:block;width:100%;aspect-ratio:4/3;border:0;border-radius:var(--r);background:var(--crema-2) center/cover no-repeat;box-shadow:var(--ombra);cursor:zoom-in;padding:0}
.galleria-strip{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.galleria-strip::-webkit-scrollbar{display:none}
.miniatura{flex:none;width:58px;height:58px;border-radius:12px;border:2px solid transparent;background:var(--crema-2) center/cover no-repeat;cursor:pointer;padding:0}
.miniatura.si{border-color:var(--oro)}
.miniatura.piu{display:grid;place-items:center;border:1.5px dashed var(--oro);background:var(--carta);color:var(--oro-scuro)}
.miniatura.piu svg{width:22px;height:22px}
.galleria-vuota{width:100%;aspect-ratio:16/9;margin:4px 0 14px;border:1.5px dashed var(--oro);border-radius:var(--r);background:var(--carta);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--oro-scuro);cursor:pointer;font:inherit}
.galleria-vuota svg{width:34px;height:34px}
.galleria-vuota b{font-family:var(--serif);font-size:20px;font-weight:400;color:var(--testo)}
.foto-intera{display:block;width:100%;max-height:60vh;object-fit:contain;border-radius:var(--r-s);background:var(--crema-2);margin:6px 0 4px}
.anteprima-msg{white-space:pre-wrap;background:#E7F7E1;border-radius:14px 14px 14px 4px;padding:12px 14px;font-size:14.5px;line-height:1.45;margin:8px 0 14px;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.btn.whatsapp{background:#25D366;border-color:#25D366;color:#fff;box-shadow:0 4px 14px rgba(37,211,102,.3)}
.navbar button{min-width:0}

/* ===== Allevatori selezionati ===== */
.segmenti.origine{margin-bottom:10px}
.riservata{border:1.5px dashed var(--oro);background:#FFFCF5}
.testata-riservata{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--oro-scuro);margin:0 0 10px}
.foglio .testata-riservata{margin:18px 0 8px;padding-top:14px;border-top:1px dashed var(--oro)}
.blocco-c{margin-top:5px;font-size:12px;font-weight:600;color:var(--rosso)}
.stelle-scelta{display:flex;gap:6px;justify-content:center;margin:12px 0 4px}
.stelle-scelta button{border:0;background:none;font-size:30px;line-height:1;color:var(--linea);cursor:pointer;padding:2px}
.stelle-scelta button.si{color:var(--oro)}
.avviso.rosso{white-space:pre-line}
a.btn{text-decoration:none}
.avviso-link{display:block;width:100%;text-align:left;border:0;cursor:pointer;font:inherit;font-size:14px;margin:10px 0 0}
.riga-vendita{padding:10px 0;border-bottom:1px solid var(--linea);cursor:pointer}
.riga-vendita:last-of-type{border-bottom:0}
.riga-vendita .riga{gap:8px}

/* ===== Ottimizzazione 24/10/2026 ===== */
.evento .s{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.azioni-rapide{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.foglio .azioni-rapide{margin:0 0 12px}
.rapida{border:1px solid var(--linea);background:var(--carta);color:var(--testo);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;min-height:34px}
.rapida.verde{background:#25D366;border-color:#25D366;color:#fff}
.rapida.leggera{background:transparent;color:var(--oro-scuro)}
.testata .cerca{width:40px;height:40px;flex:none}
.testata .cerca svg{width:20px;height:20px}
.riepilogo{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:-2px 0 14px}
.riep{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--linea);background:var(--carta);border-radius:999px;padding:7px 12px;font-size:13px;font-weight:600;color:var(--testo);cursor:pointer;font-family:inherit;box-shadow:0 1px 3px rgba(90,70,30,.06)}
.riep.oro{background:var(--oro-chiaro);border-color:var(--oro)}
.riep.ok{color:var(--verde)}
.schede-pagina{display:flex;gap:4px;margin:-4px 0 12px;border-bottom:1px solid var(--linea)}
.schede-pagina button{flex:1;border:0;background:none;padding:10px 4px;font:inherit;font-size:14px;font-weight:600;color:var(--testo-3);border-bottom:2.5px solid transparent;cursor:pointer;margin-bottom:-1px}
.schede-pagina button.si{color:var(--testo);border-bottom-color:var(--oro)}
.gruppo-menu{font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--oro-scuro);margin:18px 2px 8px}
.gruppo-menu:first-child{margin-top:4px}
.risultati{margin-top:10px}
.ris{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--carta);border:1px solid var(--linea);border-radius:14px;padding:10px 12px;margin-bottom:8px;cursor:pointer;font:inherit}
.ris b{display:block;font-size:15px}.ris .piccolo{display:block}
.ris-av{width:38px;height:38px;border-radius:50%;background:var(--oro-chiaro);display:grid;place-items:center;font-size:18px;flex:none}
.foto-cane{display:block;width:100%;aspect-ratio:16/10;border:0;border-radius:var(--r);background:var(--crema-2) center/cover no-repeat;box-shadow:var(--ombra);margin:0 0 12px;cursor:pointer;padding:0}
.foto-cane.vuota{aspect-ratio:auto;padding:16px;display:flex;align-items:center;justify-content:center;gap:10px;border:1.5px dashed var(--oro);background:var(--carta);color:var(--oro-scuro);font:inherit;font-weight:600;box-shadow:none}
.foto-cane.vuota svg{width:24px;height:24px}
.chips-prezzo .chips{gap:6px}
.chips-prezzo .chip{min-height:38px;padding:6px 12px;font-size:14px}
.giorno-agenda{display:flex;justify-content:space-between;align-items:baseline;margin:18px 2px 8px;font-size:15px}
.giorno-agenda b{font-family:var(--serif);font-size:19px}
.giorno-agenda span{font-size:13px;color:var(--testo-3)}
.giorno-agenda.oggi b{color:var(--oro-scuro)}
.vista-cal{margin-top:10px}
.toast.con-azione{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 18px;pointer-events:auto}
.toast-azione{border:0;background:var(--oro);color:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-weight:700;font-size:13px;cursor:pointer}
.annuncio{cursor:pointer}
.guida-voce{padding:0}
.guida-voce summary{padding:14px 16px;font-weight:700;cursor:pointer;list-style:none}
.guida-voce summary::-webkit-details-marker{display:none}
.guida-voce p{margin:0;padding:0 16px 14px;font-size:14.5px;line-height:1.55;color:var(--testo-2)}

/* pulsanti in ordine (25/10/2026): principale larga, poi 2 per riga uguali, Elimina in fondo */
.pulsanti{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.pulsanti>*{min-width:0}
.pulsanti>.btn{width:100%;padding-left:12px;padding-right:12px;text-align:center;line-height:1.2}
.pulsanti>.largo{grid-column:1/-1}
.pulsanti>.in-fondo{margin-top:8px}
.pulsanti>.etichetta{justify-self:center}
.pulsanti.compatti{display:flex;flex-wrap:wrap;justify-content:center}
.pulsanti.compatti>.btn{width:auto;flex:0 1 auto}

/* stati dell'appuntamento: griglia 2 per riga */
.campo .stati+.chips{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.campo .stati+.chips .chip{justify-content:center;padding:10px 8px}
.campo .stati+.chips .chip:last-child:nth-child(odd){grid-column:1/-1}
.campo .stati{display:none}

/* ===================== ANIMAZIONI ED EFFETTO VETRO (25/10/2026) ===================== */
:root{--molla:cubic-bezier(.34,1.45,.55,1);--morbido:cubic-bezier(.22,1,.36,1)}
/* sfondo caldo e luminoso: il vetro lo lascia intravedere */
body::before{content:'';position:fixed;inset:-20%;z-index:-1;pointer-events:none;
  background:radial-gradient(40% 30% at 15% 10%,rgba(243,231,208,.9),transparent 70%),radial-gradient(35% 28% at 90% 35%,rgba(201,169,110,.18),transparent 70%),radial-gradient(45% 35% at 30% 95%,rgba(245,236,221,.95),transparent 70%),var(--crema)}
html,body{background:transparent}
html{background:var(--crema)}
/* testata di vetro */
.testata{background:rgba(251,247,240,.62);backdrop-filter:saturate(1.8) blur(22px);-webkit-backdrop-filter:saturate(1.8) blur(22px);border-bottom:1px solid rgba(234,223,203,.55);box-shadow:inset 0 -1px 0 rgba(255,255,255,.6)}
.testata .tondo,.testata .indietro{background:rgba(255,255,255,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:rgba(255,255,255,.8);box-shadow:0 2px 10px rgba(90,70,30,.08),inset 0 1px 0 #fff;transition:transform .3s var(--molla)}
.testata .tondo:active,.testata .indietro:active{transform:scale(.88)}
/* barra in basso: una capsula di vetro che galleggia */
@media (max-width:899px){
  .navbar{left:12px;right:12px;bottom:calc(10px + var(--safe-b));padding:6px;border-radius:30px;border:1px solid rgba(255,255,255,.75);
    background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,250,242,.36));backdrop-filter:blur(20px) saturate(2);-webkit-backdrop-filter:blur(24px) saturate(1.9);
    box-shadow:0 12px 34px rgba(90,70,30,.18),0 2px 6px rgba(90,70,30,.08),inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(201,169,110,.18)}
  .navbar::after{content:'';position:absolute;left:18px;right:18px;top:1px;height:40%;border-radius:30px 30px 60px 60px;background:linear-gradient(180deg,rgba(255,255,255,.55),transparent);pointer-events:none}
  main{padding-bottom:calc(120px + var(--safe-b))}
  .toast{top:calc(var(--safe-t) + 74px)}
}
.navbar button{position:relative;z-index:1;overflow:hidden;transition:color .3s,transform .3s var(--molla)}
.navbar button:active{transform:scale(.9)}
.navbar button.attivo svg{animation:salta .5s var(--molla)}
@keyframes salta{0%{transform:scale(.7) translateY(3px)}60%{transform:scale(1.15) translateY(-2px)}100%{transform:none}}
.nav-lente{position:absolute;left:0;top:0;z-index:0;border-radius:24px;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(243,231,208,.75));border:1px solid rgba(255,255,255,.9);
  box-shadow:0 4px 14px rgba(156,123,66,.22),inset 0 1px 0 #fff,inset 0 -2px 6px rgba(201,169,110,.18);
  transition:transform .55s var(--molla),width .4s var(--morbido),opacity .2s}
.nav-lente.scivola{animation:lente .55s var(--morbido)}
@keyframes lente{0%{filter:none}40%{filter:blur(.5px) brightness(1.05);scale:1.12 .9}100%{scale:1 1}}
@media (min-width:900px){
  .navbar{background:rgba(255,255,255,.6);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8)}
  .navbar button.attivo{background:transparent}
  .navbar::after{display:none}
}
/* pagine: i contenuti salgono uno dopo l'altro */
main.entra>*{animation:sali .5s var(--morbido) both;animation-delay:calc(var(--i,0) * 35ms)}
@keyframes sali{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
/* schede e caselle: si "schiacciano" al tocco come vetro morbido */
.evento,.voce,.azione,.cucciolo,.casella-scorte,.scheda,.chip,.btn,.rapida{transition:transform .35s var(--molla),box-shadow .3s,background-color .25s,color .25s,border-color .25s}
.evento,.voce,.azione,.casella-scorte,.btn,.chip,.rapida{position:relative;overflow:hidden}
.evento:active,.voce:active,.cucciolo:active,.casella-scorte:active{transform:scale(.975)}
.azione:active{transform:scale(.94)}
.btn:active,.chip:active,.rapida:active{transform:scale(.95)}
.chip.si{animation:pop .4s var(--molla)}
@keyframes pop{0%{transform:scale(.92)}60%{transform:scale(1.05)}100%{transform:none}}
.azione .ic{transition:transform .4s var(--molla)}
.azione:active .ic{transform:scale(1.15) rotate(-6deg)}
/* goccia di luce */
.goccia{position:absolute;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(255,255,255,.55) 0%,rgba(255,255,255,.18) 40%,transparent 70%);transform:scale(0);animation:goccia .65s var(--morbido) forwards}
.btn .goccia,.chip.si .goccia,.navbar .goccia{background:radial-gradient(circle,rgba(255,255,255,.5),transparent 65%)}
@keyframes goccia{to{transform:scale(1);opacity:0}}
/* fogli: arrivano con una molla, lo sfondo si sfoca come vetro */
.velo{background:rgba(60,45,20,.22);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition:opacity .3s,backdrop-filter .3s,-webkit-backdrop-filter .3s}
.velo.on{backdrop-filter:blur(6px) saturate(1.2);-webkit-backdrop-filter:blur(6px) saturate(1.2)}
.foglio{transition:transform .5s cubic-bezier(.32,1.2,.5,1),opacity .3s;box-shadow:0 -10px 40px rgba(60,45,20,.18),inset 0 1px 0 rgba(255,255,255,.9)}
.foglio.on:not(.pronto)>div:last-child>*{animation:sali .45s var(--morbido) both}
.foglio .maniglia{background:rgba(201,169,110,.45)}
.chiudi-foglio{transition:transform .3s var(--molla)}
.chiudi-foglio:active{transform:scale(.85) rotate(90deg)}
/* messaggi in basso: pillola di vetro scuro */
.toast{background:rgba(42,34,22,.78);backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6);box-shadow:0 10px 30px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.15);transition:opacity .3s,transform .45s var(--molla)}
/* chi preferisce meno movimento (impostazione dell'iPhone): niente animazioni */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ===== VISORE DEI DOCUMENTI (26/10/2026): PDF dentro l'app con ✕, Stampa e Condividi ===== */
.visore{position:fixed;inset:0;z-index:300;background:var(--crema);display:flex;flex-direction:column;opacity:0;transform:translateY(16px);transition:opacity .2s ease,transform .2s ease}
.visore.on{opacity:1;transform:none}
.visore-testa{display:flex;align-items:center;gap:8px;padding:calc(var(--safe-t) + 8px) 12px 8px;background:rgba(251,247,240,.96);border-bottom:1px solid var(--linea);flex:none}
.visore-chiudi{width:44px;height:44px;flex:none;border-radius:50%;border:1px solid var(--linea);background:var(--carta);font-size:20px;line-height:1;color:var(--testo);cursor:pointer;display:grid;place-items:center}
.visore-titolo{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.visore .visore-btn{width:auto;flex:none;min-height:44px;padding:0 14px;margin:0}
.visore-corpo{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background:#E9E3D8}
.visore-pdf{display:block;width:100%;height:100%;border:0;background:#fff}
.visore-nota{flex:none;text-align:center;font-size:12px;color:var(--testo-2);padding:6px 12px calc(var(--safe-b) + 6px);border-top:1px solid var(--linea);background:var(--crema)}
@media (max-width:420px){.visore .visore-btn{padding:0 10px;font-size:14px}.visore-titolo{font-size:14px}}

.visore-pagine{display:flex;flex-direction:column;align-items:center;padding:8px 0 16px;min-height:100%}
.visore-pagina{display:block;background:#fff;box-shadow:0 1px 6px rgba(58,50,38,.18);max-width:calc(100% - 16px);height:auto}
.visore-num{font-size:11px;color:var(--testo-2);margin:4px 0 12px}
.visore-attesa{margin:40px auto;color:var(--testo-2)}
.visore-img{display:block;max-width:100%;margin:8px auto}
