/* Altravì Team — scuro, sobrio, professionale. Misure in rem/clamp (solo hairline in px). Mai parole spezzate a metà. */
:root{
  --bg:#060912; --bg2:#0d1326; --ink:#f4f2ec; --muted:#b9c0d6; --faint:#8b94b4;
  --line:rgba(255,255,255,.13); --card:rgba(255,255,255,.055); --card2:rgba(255,255,255,.09);
  --team:#4fd1c5; --client:#ffb84d; --met:#5ee0a0; --partly:#ffc857; --missed:#ff8091; --violet:#b9a2ff;
  --r:1rem; --pad:clamp(1rem,4.5vw,2rem); --max:64rem; --fs:1.125rem;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.22,.9,.24,1);
}
html{font-size:100%;-webkit-text-size-adjust:100%;overscroll-behavior-y:contain;scroll-padding-bottom:9rem}
html.big{font-size:125%}
*{box-sizing:border-box}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--fs);line-height:1.55;display:flex;flex-direction:column;overflow-x:hidden;overscroll-behavior-y:contain}
body.has-tabs{padding-bottom:calc(5rem + env(safe-area-inset-bottom))}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:
  linear-gradient(rgba(255,255,255,.028) .0625rem,transparent .0625rem) 0 0/100% 3.2rem,
  linear-gradient(90deg,rgba(255,255,255,.028) .0625rem,transparent .0625rem) 0 0/3.2rem 100%,
  radial-gradient(90% 55% at 50% -8%,#1a2547 0%,#0c1226 45%,#060912 100%);
  -webkit-mask-image:linear-gradient(#000 40%,rgba(0,0,0,.4));mask-image:linear-gradient(#000 40%,rgba(0,0,0,.4))}
/* niente parole spezzate: si va a capo solo tra una parola e l'altra */
h1,h2,h3,p,li,span,b,strong,label,button,a,summary,small,td,th,.btn,.chip,div{overflow-wrap:normal;word-break:normal;hyphens:manual}
.user,.exp-t,.mailbody,.hit span,textarea,input{overflow-wrap:break-word}
a{color:#ffd9a0}
a:focus-visible,button:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:.2rem solid #fff;outline-offset:.2rem;border-radius:.5rem}
.skip{position:absolute;inset-inline-start:-99rem;top:0;background:#fff;color:#000;padding:.8rem 1rem;z-index:99}
.skip:focus{inset-inline-start:0}
.sr{position:absolute;width:.0625rem;height:.0625rem;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

/* intestazione */
.top{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:space-between;padding:calc(.7rem + env(safe-area-inset-top)) var(--pad) .3rem;max-width:var(--max);width:100%;margin:0 auto}
.wordmark{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,5vw,1.9rem);color:var(--ink);text-decoration:none;display:inline-flex;align-items:baseline;gap:.5rem;white-space:nowrap}

.top-actions{display:flex;gap:.5rem;align-items:center}
.icon-btn{white-space:nowrap;padding:0 .9rem;min-width:3rem;min-height:3rem;display:inline-grid;place-items:center;border-radius:999rem;border:.0625rem solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.icon-btn svg{width:1.4rem;height:1.4rem}
select.icon-btn{appearance:none;-webkit-appearance:none;text-align:center;padding-inline:.8rem}
select.icon-btn option{color:#000}
main{flex:1;width:100%;max-width:var(--max);margin:0 auto;padding:1rem var(--pad) 2rem;outline:none;animation:fadeUp .5s var(--ease) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(.8rem)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){main{animation:none}*{scroll-behavior:auto!important}}
main > *{min-width:0}

/* testo */
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0 0 .6rem;text-wrap:balance}
h1{font-size:clamp(1.9rem,7vw,3.2rem)}
h2{font-size:clamp(1.4rem,5vw,2rem)}
h3{font-size:clamp(1.15rem,3.6vw,1.4rem)}
.h2s{font-size:1.1rem;font-family:var(--sans);font-weight:700;letter-spacing:.01em;margin:1.6rem 0 .7rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
p{margin:0 0 1rem}
.lead{font-size:clamp(1.1rem,3.6vw,1.3rem);color:var(--muted);max-width:40rem}
.muted{color:var(--muted)} .small{font-size:.92rem} .center{text-align:center}
.kick{text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:700;color:var(--faint);margin:0 0 .3rem}
.team-k{color:var(--team)} .client-k{color:var(--client)}
.err{color:var(--missed);font-weight:700;margin:.6rem 0}
.notice{border-inline-start:.25rem solid var(--client);background:var(--card);padding:.7rem 1rem;border-radius:.6rem}
.crumb{display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem;color:var(--muted);text-decoration:none;font-weight:700;margin-bottom:.4rem}
.crumb .ic{width:1.2rem;height:1.2rem}
.ic{width:1.3rem;height:1.3rem;flex:none}
.tag{font-size:.7rem;font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--violet);border:.0625rem solid var(--violet);border-radius:999rem;padding:.05rem .5rem;vertical-align:middle;white-space:nowrap}

/* bottoni e campi */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.5rem;padding:.8rem 1.5rem;border-radius:.9rem;border:.0625rem solid var(--line);background:var(--card2);color:var(--ink);font:inherit;font-weight:700;font-size:1.1rem;cursor:pointer;text-decoration:none;text-align:center;transition:transform .2s var(--ease),background .2s}
.btn:hover{background:rgba(255,255,255,.14)}
.btn:active{transform:scale(.98)}
.btn[disabled],.btn[aria-disabled=true]{opacity:.5;pointer-events:none}
.btn.primary{background:var(--client);color:#1a1305;border-color:transparent;font-size:clamp(1.1rem,3.8vw,1.3rem);box-shadow:0 .5rem 1.6rem -.6rem rgba(255,184,77,.55)}
.btn.primary:hover{background:#ffc766}
.btn.quiet{background:transparent;min-height:3rem;font-size:1rem}
.btn.big{min-height:4.2rem;font-size:1.25rem}
.btn.sm{min-height:2.75rem;min-width:2.75rem;padding:.3rem .6rem}
.btn.danger{color:var(--missed)}
.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.1rem 0}
.actions .btn.primary{flex:1 1 14rem}
.actions.col{flex-direction:column;align-items:stretch}
.field{display:block;width:100%;min-height:3.5rem;padding:.8rem 1rem;border-radius:.8rem;border:.0625rem solid var(--line);background:rgba(0,0,0,.35);color:var(--ink);font:inherit;font-size:1.15rem;margin:.4rem 0}
textarea.field{resize:vertical;line-height:1.45}
.field::placeholder{color:var(--faint)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 .8rem}
.chip{min-height:2.9rem;padding:.4rem 1rem;border-radius:999rem;border:.0625rem solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:1rem;cursor:pointer}
.chip[aria-pressed=true]{background:var(--ink);color:#0b1022;border-color:var(--ink)}

/* schede */
.card{border-radius:var(--r);padding:1.1rem 1.2rem;background:var(--card);border:.0625rem solid var(--line);position:relative;min-width:0}
.card h3{margin-bottom:.4rem}
.cards,.list,.ms-list,.hits,.people,.feats,.who,.tl,.steps{list-style:none;margin:0;padding:0}
.cards{display:grid;gap:.8rem}
.list{display:grid;gap:.8rem;margin-top:1rem}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem;margin:1rem 0;align-items:start}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:1rem}
.empty{text-align:center}

/* chip proprietario e valutazioni (sempre icona + parola, mai solo colore) */
.owner{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:.15rem .65rem;border-radius:999rem;border:.0625rem solid var(--c);color:var(--c);white-space:nowrap}
.owner i{width:.55rem;height:.55rem;border-radius:50%;background:var(--c)}
.owner.team{--c:var(--team)} .owner.client{--c:var(--client)}
.card.exp{border-inline-start:.28rem solid var(--c,var(--line))}
.card.exp.team{--c:var(--team)} .card.exp.client{--c:var(--client)}
.exp-t{font-weight:700;font-size:1.1rem;margin:.4rem 0 .5rem}
.rate{display:inline-flex;align-items:center;gap:.35rem;font-weight:800;font-size:.95rem;padding:.2rem .7rem;border-radius:999rem;border:.0625rem solid var(--c);color:var(--c);white-space:nowrap}
.rate .ic{width:1.05rem;height:1.05rem}
.rate.met{--c:var(--met)} .rate.partly{--c:var(--partly)} .rate.missed{--c:var(--missed)}
.rates-line{display:flex;flex-wrap:wrap;gap:.4rem .7rem;align-items:center;margin:.4rem 0 0}

/* anello allineamento */
.ring{position:relative;width:var(--s,8rem);aspect-ratio:1;flex:none;--c:var(--faint)}
.ring.high{--c:var(--met)} .ring.mid{--c:var(--partly)} .ring.low{--c:var(--missed)}
.ring svg{width:100%;height:100%;display:block}
.ring .rt{fill:none;stroke:rgba(255,255,255,.12);stroke-width:9}
.ring .rv{fill:none;stroke:var(--c);stroke-width:9;stroke-linecap:round;transition:stroke-dasharray .8s var(--ease)}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-weight:500;font-size:calc(var(--s,8rem)*.27);white-space:nowrap}
.score{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem}
.score-t{flex:1 1 11rem;min-width:0}
.lvl{font-family:var(--serif);font-size:1.5rem;margin:0 0 .3rem}
.lvl.high,.pct.high{color:var(--met)} .lvl.mid,.pct.mid{color:var(--partly)} .lvl.low,.pct.low{color:var(--missed)}
.trend{display:flex;align-items:flex-end;gap:.35rem;height:2.4rem;margin-top:.4rem}
.trend i{width:.9rem;background:var(--violet);border-radius:.2rem .2rem 0 0;opacity:.8}
.card.next{border-color:rgba(255,184,77,.45);background:linear-gradient(160deg,rgba(255,184,77,.1),rgba(255,255,255,.04))}
.card.next h2{margin-bottom:.4rem}
.card.next .btn{margin-top:.4rem;width:100%}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:1rem 0}
.stats a{display:flex;flex-direction:column;align-items:center;gap:.1rem;text-decoration:none;color:var(--ink);padding:.8rem .4rem;border-radius:var(--r);background:var(--card);border:.0625rem solid var(--line);text-align:center;min-height:4.4rem}
.stats b{font-family:var(--serif);font-size:1.7rem;font-weight:500;line-height:1.1}
.stats span{font-size:.82rem;color:var(--muted);line-height:1.25}
.usage{margin:0 0 .4rem;color:var(--muted);font-size:.98rem}
.usage.trial{color:var(--partly);font-weight:700}

/* tappe */
.card.ms{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem 1rem;text-decoration:none;color:var(--ink)}
.ms-main{display:flex;flex-direction:column;flex:1 1 11rem;min-width:0}
.ms-st{display:flex;align-items:center;gap:.6rem;color:var(--muted)}
.ms-list{display:grid;gap:.6rem}
.pct{font-family:var(--serif);font-size:1.3rem}
.card.ms.open .ms-st{color:var(--client)} .card.ms.team .ms-st,.card.ms.client .ms-st{color:var(--team)}

/* incarichi */
.card.proj{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem 1rem;text-decoration:none;color:var(--ink)}
.proj-main{flex:1 1 12rem;min-width:0}
.proj-main h3{margin-bottom:.2rem}
.proj-main .next{margin:.4rem 0 0}
.proj-score{display:flex;flex-direction:column;align-items:center;gap:.2rem;max-width:7rem;text-align:center}
.searchbox{margin:1.2rem 0 .4rem}
.hits{display:grid;gap:.5rem}
.hit{display:flex;flex-direction:column;gap:.1rem;text-decoration:none;color:var(--ink);padding:.7rem 1rem;border-radius:.8rem;background:var(--card);border:.0625rem solid var(--line)}
.person{display:flex;align-items:center;gap:.7rem;padding:.35rem 0}
.person .grow{flex:1;min-width:0}
.av{width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;background:var(--card2);border:.0625rem solid var(--line);font-weight:800;font-size:.9rem;flex:none}
.people{display:grid;gap:.3rem}

/* decisioni */
.card.dec{border-inline-start:.28rem solid var(--violet)}
.road{margin-top:.6rem;padding:.7rem .9rem;border-radius:.7rem;background:rgba(185,162,255,.08);border:.0625rem dashed rgba(185,162,255,.5)}
.road p{margin:0}.road .kick{color:var(--violet)}

/* storia */
.tl{display:grid;gap:.9rem;margin-top:.6rem;position:relative}
.ev{display:grid;grid-template-columns:1.2rem minmax(0,1fr);gap:.7rem}
.ev .dot{width:.85rem;height:.85rem;border-radius:50%;background:var(--faint);margin-top:1.3rem;justify-self:center;box-shadow:0 0 0 .25rem rgba(255,255,255,.06)}
.ev.exp .dot{background:var(--team)} .ev.dec .dot{background:var(--violet)} .ev.chk .dot{background:var(--client)}
.ev h3{font-size:1.1rem;font-family:var(--sans);font-weight:700}
.ev h3 a{color:var(--ink)}
.ev .ex{margin:.3rem 0 0;padding-inline-start:1.1rem}

/* passi guidati */
.step{font-size:.9rem;color:var(--muted);font-weight:700;margin:.2rem 0 .4rem}
.bar{height:.4rem;border-radius:999rem;background:rgba(255,255,255,.1);overflow:hidden;margin-bottom:1.4rem}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--team),var(--client));border-radius:inherit;transition:width .4s var(--ease)}
.choices{display:grid;gap:.9rem;margin:1.4rem 0}
.q{font-family:var(--sans);font-size:1.15rem;font-weight:700;margin:1.4rem 0 .7rem}
.rates{display:grid;gap:.7rem}
.rbtn{display:flex;align-items:center;gap:.8rem;min-height:4.2rem;padding:.7rem 1.1rem;border-radius:var(--r);border:.125rem solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-weight:800;font-size:1.2rem;cursor:pointer;text-align:start}
.rbtn .ic{width:1.7rem;height:1.7rem;color:var(--c)}
.rbtn.met{--c:var(--met)} .rbtn.partly{--c:var(--partly)} .rbtn.missed{--c:var(--missed)}
.rbtn[aria-checked=true]{border-color:var(--c);background:color-mix(in srgb,var(--c) 16%,transparent)}
.blind{display:flex;gap:.6rem;align-items:flex-start}
.blind .ic{margin-top:.2rem}
.sharebox{margin:.8rem 0}
.sharebox textarea{font-size:.85rem;min-height:5rem;word-break:break-all;overflow-wrap:anywhere}
.cvbar{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--client);margin:0 0 .6rem;font-size:.95rem}
details summary{cursor:pointer;font-weight:700;min-height:2.75rem;display:flex;align-items:center}

/* landing */
.hero{display:grid;gap:.4rem;padding-top:.6rem;grid-template-columns:minmax(0,1fr)}
.hero .kicker{color:var(--team);font-weight:800;letter-spacing:.06em;font-size:.85rem;text-transform:uppercase;margin:0}
.hero h1{font-size:clamp(2.1rem,9vw,4rem);max-width:20ch}
.hero-cta{display:grid;gap:.5rem;justify-items:start;margin:.6rem 0}
.hero-cta .btn.primary{width:100%;max-width:26rem}
.hero-cta p{margin:0}
.promise{color:var(--team);font-weight:700}
.links{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.links a{display:inline-flex;align-items:center;min-height:2.75rem}
.venn{width:min(100%,24rem);height:auto;margin:.6rem 0;overflow:visible}
.v-team{fill:rgba(79,209,197,.2);stroke:var(--team);stroke-width:1.5}
.v-client{fill:rgba(255,184,77,.2);stroke:var(--client);stroke-width:1.5}
.vt{fill:var(--ink);font-family:var(--sans);font-size:15px;font-weight:700}
.vt.vm{font-size:14px;fill:#fff}
.band{margin:2rem 0;padding:1.2rem 0;border-block:.0625rem solid var(--line)}
.not{font-family:var(--serif);font-size:clamp(1.3rem,4.5vw,1.8rem);line-height:1.25;margin-bottom:.8rem}
.steps{display:grid;gap:1rem;margin-top:1rem;counter-reset:s}
.steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:start}
.num{width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;background:var(--client);color:#1a1305;font-weight:800}
.steps h3{margin:.1rem 0 .2rem}.steps p{margin:0}
.scorecard{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin:2rem 0}
.scorecard > div{flex:1 1 14rem}
.who{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.6rem}
.who li{padding:.5rem 1rem;border-radius:999rem;border:.0625rem solid var(--line);background:var(--card);font-weight:600}

/* prezzi */
.toggle{display:inline-flex;flex-wrap:wrap;gap:.3rem;padding:.3rem;border-radius:999rem;border:.0625rem solid var(--line);background:var(--card);margin:.6rem 0 1.2rem}
.toggle button{min-height:3rem;padding:.4rem 1.2rem;border-radius:999rem;border:0;background:transparent;color:var(--ink);font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem}
.toggle button[aria-checked=true]{background:var(--ink);color:#0b1022}
.badge{font-size:.72rem;background:var(--met);color:#06210f;border-radius:999rem;padding:.1rem .55rem;font-weight:800;white-space:nowrap}
.plans{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));align-items:stretch;margin-bottom:1.2rem}
.plan{display:flex;flex-direction:column;border-radius:var(--r);padding:1.3rem;background:var(--card);border:.0625rem solid var(--line);position:relative;min-width:0}
.plan.rec{border:.125rem solid var(--client);background:linear-gradient(170deg,rgba(255,184,77,.13),rgba(255,255,255,.04));box-shadow:0 1rem 3rem -1.4rem rgba(255,184,77,.6)}
.ribbon{position:absolute;top:-.85rem;left:1.2rem;margin:0;background:var(--client);color:#1a1305;font-weight:800;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;padding:.25rem .8rem;border-radius:999rem}
.plan h2{margin:.2rem 0 .1rem}
.price{margin:.4rem 0 0}
.price b{font-family:var(--serif);font-size:2.4rem;font-weight:500;line-height:1}
.price span{color:var(--muted);font-size:.95rem}
.strike{text-decoration:line-through;color:var(--faint)}
.anx{margin:.2rem 0 .6rem;color:var(--muted)}
.feats{display:grid;gap:.5rem;margin:.6rem 0 1.2rem;flex:1}
.feats li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:start}
.feats .ic{color:var(--met);margin-top:.2rem}
.plan .btn{width:100%}
.mailbody{white-space:pre-wrap;font-family:var(--sans);font-size:.98rem;line-height:1.5;background:rgba(0,0,0,.3);border:.0625rem solid var(--line);border-radius:.7rem;padding:.9rem;margin:.5rem 0 .8rem}

/* tab bar sezioni */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;padding:.35rem .5rem calc(.35rem + env(safe-area-inset-bottom));background:rgba(8,12,26,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:.0625rem solid var(--line)}
.tabs a{flex:1 1 0;max-width:10rem;min-width:0;min-height:3.4rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;border-radius:.8rem;color:var(--muted);text-decoration:none;font-size:.78rem;font-weight:700;white-space:nowrap}
.tabs a .ic{width:1.45rem;height:1.45rem}
.tabs a[aria-current=page]{color:#fff;background:rgba(255,255,255,.12)}

/* piè di pagina */
.site-footer{margin-top:2rem;padding:1.4rem var(--pad) 1.6rem;border-top:.0625rem solid var(--line);background:rgba(0,0,0,.4);color:var(--muted);font-size:.92rem}
.footer-in{max-width:var(--max);margin:0 auto;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));align-items:start}
.site-footer address{font-style:normal;line-height:1.7}
.f-brand{font-weight:800;color:var(--ink);margin:0 0 .3rem}
.site-footer nav{display:flex;gap:.2rem 1.2rem;flex-wrap:wrap}
.site-footer nav a{min-height:2.75rem;display:inline-flex;align-items:center}
.site-footer address a{display:inline-block;padding:.3rem 0}
body.has-tabs .site-footer{margin-bottom:0}

/* aggiornamento: banner e tira-per-aggiornare */
.toast{position:fixed;left:50%;bottom:calc(6rem + env(safe-area-inset-bottom));transform:translate(-50%,1rem);z-index:80;background:var(--ink);color:#0b1022;font-weight:700;padding:.7rem 1.2rem;border-radius:999rem;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:92vw;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.upd{position:fixed;left:0;right:0;margin-inline:auto;bottom:calc(5.2rem + env(safe-area-inset-bottom));z-index:60;width:min(94vw,30rem);display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.8rem .9rem .8rem 1.2rem;border-radius:var(--r);background:rgba(13,19,38,.97);backdrop-filter:blur(14px);border:.0625rem solid var(--client);box-shadow:0 .8rem 2.4rem rgba(0,0,0,.6);animation:fadeUp .5s var(--ease) both}
.upd[hidden]{display:none}
.upd-t{flex:1 1 8rem;min-width:0}
.upd-t strong{display:block;font-family:var(--serif);font-weight:500;font-size:1.2rem;line-height:1.2}
.upd-t span{display:block;font-size:.9rem;color:var(--muted)}
.upd .btn{flex:0 0 auto;min-height:3.5rem;min-width:7rem;padding-inline:1.2rem}
.ptr{position:fixed;left:50%;top:calc(.6rem + env(safe-area-inset-top));z-index:70;display:flex;align-items:center;gap:.6rem;padding:.55rem 1.1rem;border-radius:999rem;background:rgba(13,19,38,.96);border:.0625rem solid var(--line);color:var(--ink);font-size:.95rem;font-weight:700;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,-4rem);will-change:transform,opacity}
.ptr svg{width:1.4rem;height:1.4rem;flex:none;color:var(--client);transition:transform .2s var(--ease)}
.ptr.ready svg{transform:rotate(180deg)}
.ptr.busy svg{animation:ptrspin .9s linear infinite}
.ptr.snap{transition:transform .25s var(--ease),opacity .25s}
@keyframes ptrspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ptr.busy svg{animation:none}}

@media (min-width:60rem){
  .hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;column-gap:3rem}
  .hero > *{grid-column:1}
  .hero .venn{grid-column:2;grid-row:1/span 5;width:100%}
  .hero h1{max-width:14ch}
  .tabs a{font-size:.9rem}
}
@media print{.top,.tabs,.site-footer,.skip,.upd,.ptr{display:none!important}body{background:#fff;color:#000}}

/* pagine legali */
.legal{max-width:46rem;margin:0 auto;padding:1rem var(--pad) 2rem;width:100%}
.legal h1{font-size:clamp(1.8rem,6vw,2.6rem)}
.legal h2{font-size:1.35rem;margin-top:1.8rem}
.legal ul{padding-inline-start:1.3rem}
.legal li{margin:.3rem 0}
.legal .draft{background:rgba(79,209,197,.08);border:.0625rem solid rgba(79,209,197,.45);padding:.8rem 1rem;border-radius:var(--r);font-size:.95rem}
html[lang=it] body.lp [data-l=en],html:not([lang=it]) body.lp [data-l=it]{display:none!important}
.nb{white-space:nowrap}
.legal-top .btn{min-height:3rem;padding:.4rem 1.1rem}

/* v1.1: modifica, eliminazione, annulla, conferma prova */
.card-act{margin:.7rem 0 0}
.card-act .btn{min-height:3rem;padding:.4rem 1.1rem}
.fgroup{margin:1.1rem 0}
.flabel{display:block;font-weight:700;font-size:1.05rem;margin-bottom:.2rem}
.dangerzone{margin:2rem 0 1rem;padding-top:1.2rem;border-top:.0625rem solid var(--line)}
.dangerzone .btn{width:100%}
.btn.danger{border-color:rgba(255,128,145,.55)}
.btn.big.danger{background:rgba(255,128,145,.14)}
.quote{margin:1rem 0;font-size:1.2rem;line-height:1.4;border-inline-start:.28rem solid var(--c,var(--line))}
.quote.team{--c:var(--team)} .quote.client{--c:var(--client)} .quote.dec{--c:var(--violet)}
.quote p{margin:0}
.undobar{position:fixed;left:0;right:0;margin-inline:auto;bottom:calc(5.2rem + env(safe-area-inset-bottom));z-index:70;width:min(94vw,30rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;padding:.8rem .9rem .8rem 1.2rem;border-radius:var(--r);background:rgba(13,19,38,.98);border:.0625rem solid var(--line);box-shadow:0 .8rem 2.4rem rgba(0,0,0,.6);font-weight:700;animation:fadeUp .4s var(--ease) both}
.undobar .btn{min-height:3.5rem;min-width:7rem}
.steps.done{margin:1rem 0}
.num.ok{background:var(--met);color:#06210f}
.num.ok .ic{width:1.5rem;height:1.5rem}
body:has(#undo) .toast{bottom:calc(10.2rem + env(safe-area-inset-bottom))}
.actions.col>.btn,.actions.col .btn.primary{flex:0 0 auto}

/* ───── v1.2: account, prova, abbonamento ───── */
.acct{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem .9rem;max-width:var(--max);width:calc(100% - 2*var(--pad));margin:.3rem auto 0;padding:.5rem .6rem .5rem 1rem;border-radius:var(--r);background:var(--card);border:.0625rem solid var(--line);font-weight:700}
.acct.warn{border-color:var(--partly);background:rgba(255,200,87,.1)}
.acct-t{flex:1 1 11rem;min-width:0}
.acct .btn{min-height:2.9rem;padding:.4rem 1.1rem;font-size:1rem}
.addr{display:block;font-weight:700;overflow-wrap:anywhere;word-break:normal}
.field.code{text-align:center;font-size:clamp(1.8rem,9vw,2.4rem);letter-spacing:.35em;font-variant-numeric:tabular-nums;padding-inline-start:calc(1rem + .35em)}
.field.code::placeholder{letter-spacing:.2em}
.spin{width:2.6rem;height:2.6rem;border-radius:50%;border:.28rem solid var(--line);border-top-color:var(--client);animation:spin 1s linear infinite;margin:1rem 0}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:3s}}
.card.next.warn{border-color:var(--partly)}
.usage.sync{font-size:.9rem;color:var(--faint)}
