
:root{
  --paper:#F3FBFA; --paper-2:#E5F9F8; --paper-3:#FAFEFE;
  --espresso:#1F2B2D; --espresso-2:#2A393C;
  --ink:#1F2B2D; --ink-2:#3E5256; --ink-3:#566A6E;
  --tx-inv:#E5F9F8; --tx-inv-2:rgba(229,249,248,.66);
  --line:rgba(31,43,45,.13); --line-2:rgba(31,43,45,.26); --line-inv:rgba(229,249,248,.16);
  --r1:#1B4D55; --r2:#23717B; --r3:#0D8A9E; --r4:#0F9DB0; --r5:#0D8A9E;
  --ramp:linear-gradient(90deg,var(--r1),var(--r2) 26%,var(--r3) 52%,var(--r4) 78%,var(--r5));
  --brand:#23717B; --brand-d:#1A5A62; --citron:#12B2C1;
  --wash:#DDF2F0; --wash-2:#C9E6E3;
  --hl:rgba(35,113,123,.19);
  --shadow-1:0 1px 2px rgba(31,43,45,.05),0 6px 18px -8px rgba(31,43,45,.16);
  --shadow-2:0 2px 4px rgba(31,43,45,.06),0 18px 44px -14px rgba(31,43,45,.24);
  --r-lg:22px; --r-md:16px; --r-sm:11px;
  --grad-warm:linear-gradient(96deg,#1B5A63 0%,#23717B 22%,#0D8A9E 46%,#0F93A6 70%,#0E8799 100%);
  --grad-inv:linear-gradient(96deg,#12B2C1 0%,#4CC6D1 30%,#8FDCE2 62%,#E5F9F8 100%);
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:'Instrument Sans','IBM Plex Sans',system-ui,sans-serif;font-size:16.5px;line-height:1.58;
  font-variant-numeric:tabular-nums lining-nums;-webkit-font-smoothing:antialiased}
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(22px,4vw,48px)}
h1,h2,h3,h4{margin:0;font-family:'Archivo',sans-serif;font-weight:800;
  font-variation-settings:'wdth' 110;letter-spacing:-.025em;line-height:1.05;
  text-wrap:balance}
p,li,dd{text-wrap:pretty}
/* fascia piena, per etichette brevi in maiuscolo */
.swash{position:relative;display:inline-block;isolation:isolate;z-index:0;padding:.42em .85em .46em;color:var(--espresso);
  font-family:'Archivo',sans-serif;font-weight:800;font-size:12.5px;letter-spacing:.14em;
  text-transform:uppercase;line-height:1;transform:rotate(-.7deg)}
.swash::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--swash,#BDE9EC);
  border-radius:14px 11px 13px 10px/10px 14px 9px 13px}
.swash>i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--brand);
  margin-right:9px;vertical-align:.15em}
.swash.rose{--swash:#BDE9EC}
.swash.citron{--swash:#9EE3E9}

/* tratto sotto la parola, per i titoli: una fascia piena sotto un titolo di 60px sarebbe illeggibile */
.hl{position:relative;display:inline;-webkit-text-fill-color:currentColor;background-clip:border-box;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M3 15.5c48-6.2 96-8.1 147-6.4 42 1.4 92 5.1 147 9.6-4.4 3.9-9.2 5.6-14.4 5.2-63-4.6-118-7-165-7.2-40-.2-78 1.6-114 5.4-2.4-2.1-2.9-4.3-.6-6.6z' fill='%2323717B'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:0 92%;background-size:100% .30em;
  padding-bottom:.1em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.hero h1 .hl{background-size:100% .26em}
.dark .hl{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M3 15.5c48-6.2 96-8.1 147-6.4 42 1.4 92 5.1 147 9.6-4.4 3.9-9.2 5.6-14.4 5.2-63-4.6-118-7-165-7.2-40-.2-78 1.6-114 5.4-2.4-2.1-2.9-4.3-.6-6.6z' fill='%2312B2C1'/%3E%3C/svg%3E")}
.hl-c{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 24' preserveAspectRatio='none'%3E%3Cpath d='M3 15.5c48-6.2 96-8.1 147-6.4 42 1.4 92 5.1 147 9.6-4.4 3.9-9.2 5.6-14.4 5.2-63-4.6-118-7-165-7.2-40-.2-78 1.6-114 5.4-2.4-2.1-2.9-4.3-.6-6.6z' fill='%2312B2C1'/%3E%3C/svg%3E")}
p{margin:0 0 1em}
button{font-family:inherit}

.nav{background:rgba(243,251,250,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}
.nav .wrap{display:flex;align-items:center;gap:26px;min-height:68px;flex-wrap:wrap;padding:12px clamp(22px,4vw,48px)}
.mark{font-family:'Archivo',sans-serif;font-weight:800;font-variation-settings:'wdth' 118;
  font-size:22px;letter-spacing:-.035em;display:flex;align-items:center;gap:11px;
  background:none;border:0;color:var(--ink);cursor:pointer;padding:0}

.nav nav{display:flex;gap:20px;margin-left:auto;flex-wrap:wrap;align-items:center}
.nav nav button{background:none;border:0;font-size:14.5px;font-weight:500;color:var(--ink-2);
  padding:5px 0;border-bottom:2px solid transparent;cursor:pointer}
.nav nav button:hover{color:var(--ink)}
.nav nav button.on{color:var(--brand);border-color:var(--brand)}
.nav nav button{border-radius:2px}
.nav .btn{padding:9px 17px;font-size:14px}

.page{display:none}
.page.on{display:block}

.hero{padding:78px 0 0;position:relative;overflow:hidden;
  background:
    radial-gradient(58% 78% at 88% 8%, rgba(18,178,193,.30), transparent 62%),
    radial-gradient(52% 70% at 4% 96%, rgba(13,138,158,.16), transparent 64%),
    linear-gradient(180deg,var(--paper-3),var(--paper) 72%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--ramp)}
.hero .wrap{position:relative;z-index:1}
/* trama a puntini, la stessa carta del riferimento */
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle at 1px 1px, rgba(35,113,123,.20) 1px, transparent 0);
  background-size:22px 22px;
  -webkit-mask-image:linear-gradient(115deg,#000 0%,transparent 58%);
  mask-image:linear-gradient(115deg,#000 0%,transparent 58%)}
.hero .swash{margin-bottom:20px}
.hero h1{font-size:clamp(34px,4.6vw,64px);max-width:20ch;letter-spacing:-.032em;line-height:1.04;
  font-variation-settings:'wdth' 108;
  background-size:190% 100%;background-position:0% 50%;
  animation:rampshift 14s ease-in-out infinite alternate}
@keyframes rampshift{from{background-position:0% 50%}to{background-position:100% 50%}}

/* la rampa su tutti i titoli principali */
.hero h1,.sec-h,.split h3,.wz-q,.dr-head h3,.empty h4,.famhead h3,
.flow>li::before,.stats b,.plan .price,.pcard .ask,.pcard .role,.btn-grad{
  color:var(--r2);
  background:var(--grad-warm);
  background-size:150% 100%;background-position:22% 50%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent}
.dark .sec-h,.res-role,.gate strong,
.dark .flow>li::before,.dark .stats b,.plan.pick .price,.res-meta div b,.btn-grad-inv{
  color:var(--citron);
  background:var(--grad-inv);
  background-size:140% 100%;background-position:18% 50%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent}
.famhead h3{background-size:210% 100%}
.empty h4,.dr-head h3{background-size:260% 100%;background-position:12% 50%}
/* i numeri sono corti: la rampa va compressa o si vede una tinta sola */
.flow>li::before{background-size:100% 100%;background-position:0 50%}
.stats b,.plan .price,.res-meta div b{background-size:130% 100%;background-position:8% 50%}
.pcard .ask{background-size:150% 100%;background-position:10% 50%}
.pcard .role{background-size:230% 100%;background-position:6% 50%}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .hero h1,.sec-h,.split h3,.wz-q,.dr-head h3,.empty h4,.famhead h3,
.flow>li::before,.stats b,.plan .price,.pcard .ask,.pcard .role,.btn-grad{
    -webkit-text-fill-color:currentColor;background:none;color:var(--r2)}
  .dark .sec-h,.res-role,.gate strong,
.dark .flow>li::before,.dark .stats b,.plan.pick .price,.res-meta div b,.btn-grad-inv{
    -webkit-text-fill-color:currentColor;background:none;color:var(--citron)}
}
.hero.short h1{font-size:clamp(30px,3.6vw,50px);max-width:22ch}
.hero .sub{margin-top:26px;max-width:64ch;font-size:clamp(17px,1.25vw,19.5px);
  color:var(--ink-2);line-height:1.6}
.hero-foot{margin-top:46px;padding:0 0 56px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.kicker{font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--brand);display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;
  background:var(--paper-3);border:1px solid var(--line);padding:6px 14px 6px 10px;border-radius:999px}
.kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ramp)}
.dark .kicker{color:var(--citron)}

.btn{display:inline-block;padding:13px 25px;font-size:15px;font-weight:600;
  border:1.5px solid transparent;border-radius:999px;cursor:pointer;text-decoration:none;
  transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .18s}
.btn:hover{transform:translateY(-1px)}
.btn-p:hover,.btn-c:hover{box-shadow:var(--shadow-1)}
.btn-p{background:var(--brand);color:#F3FBFA;border-color:var(--brand)}
.btn-p:hover{background:var(--brand-d)}
.btn-c{background:var(--citron);color:#0B2A2E;border-color:var(--citron)}
.btn-c:hover{background:#2CC2D0}
.btn-o{background:var(--paper-3);border-color:var(--line-2);color:var(--ink)}
.btn-o:hover{border-color:var(--ink);background:rgba(31,43,45,.05)}
.btn-inv{background:none;border-color:rgba(229,249,248,.36);color:var(--tx-inv)}
.btn-inv:hover{border-color:var(--tx-inv)}
.btn-sm{padding:9px 17px;font-size:13.5px}
.btn-grad.btn-sm,.btn-grad-inv.btn-sm{background-size:190% 100%}
.btn:disabled{opacity:.35;cursor:not-allowed}

section{padding:76px 0}
section.alt{background:var(--paper-2)}
/* il fondo alternato e quello a tinta sono piu scuri della carta:
   il testo terziario va scurito o scende sotto la soglia di contrasto */
section.alt,section.wash{--ink-3:#526569}
[data-theme="dark"] section.alt,[data-theme="dark"] section.wash{--ink-3:#8FA3A6}
section.wash{background:var(--wash)}
section.wash .lede{color:#2E5558}
.famhead{display:flex;gap:15px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.famdot{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:none;
  font-family:'Archivo',sans-serif;font-size:14px;font-weight:800;color:#F3FBFA}
.famcount{font-size:13px;color:var(--ink-3);background:var(--paper-3);border:1px solid var(--line);
  padding:4px 12px;border-radius:999px}
section.dark{background:var(--espresso);color:var(--tx-inv)}
.sec-h{font-size:clamp(25px,2.9vw,40px);max-width:26ch;margin-bottom:18px;letter-spacing:-.032em;
  font-variation-settings:'wdth' 108}
.lede.lead-strong{color:var(--ink)}
.lede{max-width:66ch;color:var(--ink-2);font-size:clamp(16.5px,1.15vw,18px);margin-bottom:36px;line-height:1.6}
.dark .lede{color:var(--tx-inv-2)}

.toolbar{position:sticky;z-index:40;background:rgba(243,251,250,.95);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);padding:15px 0}
.tb-row{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.tb-row+.tb-row{margin-top:11px}
.fgroup{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.flabel{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-right:3px}
label.flabel{display:block;margin:0 0 8px}
.fin{width:100%;padding:12px 15px;font-family:inherit;font-size:15px;border:1px solid var(--line-2);
  border-radius:var(--r-sm);background:var(--paper);color:var(--ink)}
.fin:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:transparent}
.ck{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:var(--ink-2);cursor:pointer}
.ck input{margin-top:3px;accent-color:var(--brand);width:17px;height:17px;flex:none}
.chip{background:none;border:1px solid var(--line-2);border-radius:999px;padding:6px 14px;
  font-size:13.5px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:all .15s;white-space:nowrap}
.chip:hover{border-color:var(--ink-2);color:var(--ink)}
.chip.on{background:var(--espresso);border-color:var(--espresso);color:var(--tx-inv)}
.search{position:relative;flex:1;min-width:190px;max-width:290px}
.search input{width:100%;padding:10px 15px 10px 36px;font-family:inherit;font-size:14.5px;
  border:1px solid var(--line-2);border-radius:999px;background:var(--paper-3);color:var(--ink)}
.search input::placeholder{color:var(--ink-3)}
.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3)}
.tb-meta{margin-left:auto;font-size:13px;color:var(--ink-3);display:flex;gap:16px;align-items:center}
.linkbtn{background:none;border:0;padding:0;font-size:13.5px;font-weight:600;color:var(--brand);
  cursor:pointer;border-bottom:1px solid currentColor}
.linkbtn:hover{color:var(--brand-d)}

.panel{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:32px 34px 28px;box-shadow:var(--shadow-1)}
.chart-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:6px;flex-wrap:wrap}
.chart-head h3{font-family:'Instrument Sans',sans-serif;font-size:14.5px;font-weight:600;
  color:var(--ink-2);letter-spacing:0;font-variation-settings:normal}
.chart-head span{font-size:12.5px;color:var(--ink-3)}
.chart-note{font-size:12.5px;color:var(--ink-3);margin:0 0 22px}
.chart-note b{color:var(--brand);font-weight:600}
.axis{position:relative;height:18px;margin-bottom:8px}
.axhead{display:grid;grid-template-columns:236px 1fr 152px;gap:18px;align-items:end}
.axhead .ax-l,.axhead .ax-r{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.axhead .ax-r{text-align:right;padding-right:8px}
.gridrow{display:grid;grid-template-columns:236px 1fr 152px;gap:18px}
.axis b{position:absolute;top:0;font-family:'IBM Plex Sans',sans-serif;font-size:11.5px;font-weight:500;color:var(--ink-3);transform:translateX(-50%)}
.axis b:first-child{transform:none}
.axis b:last-child{transform:translateX(-100%)}
.grid{position:relative}
.track::before{content:"";position:absolute;inset:-9px 0;pointer-events:none;
  background-image:repeating-linear-gradient(to right,var(--line) 0 1px,transparent 1px 20%)}
.row{display:grid;grid-template-columns:236px 1fr 152px;gap:18px;align-items:center;cursor:pointer;
  border-radius:2px;transition:background .15s}
.row{border-radius:10px}
.row:hover{background:var(--wash)}
.row:hover .lab strong{color:var(--brand)}
.rowin{padding:10px 0}
.lab{font-size:14.5px;line-height:1.25;padding-left:8px}
.lab strong{font-weight:600;transition:color .15s}
.lab em{display:block;font-style:normal;font-size:12px;font-weight:400;color:var(--ink-3);margin-top:2px}
.track{position:relative;height:28px}
.bar{position:absolute;top:6px;height:16px;overflow:hidden;border-radius:4px;
  transition:left .4s cubic-bezier(.2,.75,.25,1),width .4s cubic-bezier(.2,.75,.25,1)}
.bar>i{position:absolute;top:0;bottom:0;background:var(--ramp);display:block}
.bar.ext{opacity:.45}
.bar.ext::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(115deg,var(--paper-3) 0 2px,transparent 2px 5px)}
.tick{position:absolute;top:3px;width:2px;height:22px;border-radius:2px;background:var(--ink);
  transition:left .4s cubic-bezier(.2,.75,.25,1)}
.val{text-align:right;padding-right:8px;line-height:1.25}
.val b{display:block;font-family:'IBM Plex Sans',monospace;font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.val b i{font-style:normal;font-size:11.5px;font-weight:500;color:var(--ink-3);margin-left:3px}
.val s{display:block;text-decoration:none;font-size:11.5px;color:var(--ink-3);margin-top:1px;white-space:nowrap}
.row:hover .val b{color:var(--brand)}
.legend{display:flex;gap:24px;flex-wrap:wrap;margin-top:22px;padding-top:16px;
  border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-3);align-items:center}
.legend .ramp{display:inline-block;width:78px;height:10px;background:var(--ramp);border-radius:3px;margin-right:8px;vertical-align:-1px}
.legend i.e{display:inline-block;width:22px;height:9px;background:var(--ramp);opacity:.45;margin-right:8px;vertical-align:-1px}
.legend i.m{display:inline-block;width:2px;height:13px;background:var(--ink);margin:0 13px 0 6px;vertical-align:-2px}

.empty{padding:56px 24px;text-align:center}
.empty .swash{margin-bottom:18px}
.empty h4{font-size:23px;margin-bottom:10px}
.empty p{color:var(--ink-2);max-width:46ch;margin:0 auto 22px}

/* banda contributo, motore del dato */
.gate{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:20px;padding:24px 28px;
  background:var(--espresso);color:var(--tx-inv);border-radius:var(--r-md);position:relative;overflow:hidden}
.gate::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--ramp)}
.gate p{margin:0;font-size:15px;color:var(--tx-inv-2);max-width:58ch}
.gate strong{color:var(--tx-inv)}
.gate .btn{margin-left:auto;flex:none}

.wizard{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  max-width:920px;box-shadow:var(--shadow-1)}
.wz-top{display:flex;align-items:center;gap:14px;padding:18px 28px;border-bottom:1px solid var(--line)}
.wz-steps{display:flex;gap:6px;flex:1}
.wz-steps i{flex:1;height:3px;background:var(--line);border-radius:2px;transition:background .3s}
.wz-steps i.done{background:var(--brand)}
.wz-count{font-size:11.5px;color:var(--ink-3);font-weight:600;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.wz-body{padding:34px 28px}
.wz-q{font-family:'Archivo',sans-serif;font-size:31px;font-weight:800;font-variation-settings:'wdth' 106;
  letter-spacing:-.026em;margin-bottom:10px;line-height:1.1}
.wz-hint{font-size:15.5px;color:var(--ink-2);margin-bottom:26px;max-width:56ch}
.wz-opts{display:grid;gap:9px}
.wz-opt{display:block;width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:17px 19px;cursor:pointer;transition:all .18s;color:inherit}
.wz-opt:hover{transform:translateX(3px)}
.wz-opt:hover{border-color:var(--brand);background:var(--paper-3)}
.wz-opt.sel{border-color:var(--brand);background:rgba(35,113,123,.06)}
.wz-opt b{display:block;font-size:16px;font-weight:600;margin-bottom:3px}
.wz-opt span{font-size:14px;color:var(--ink-2);line-height:1.5}
.wz-foot{display:flex;gap:12px;align-items:center;padding:20px 28px;border-top:1px solid var(--line)}
.wz-foot .sp{margin-left:auto}

.res-main{padding:38px 30px;background:var(--espresso);color:var(--tx-inv);position:relative}
.res-main::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ramp)}
.res-tag{font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--citron);margin-bottom:14px}
.res-role{font-family:'Archivo',sans-serif;font-size:clamp(30px,4.4vw,50px);font-weight:800;
  font-variation-settings:'wdth' 108;letter-spacing:-.032em;line-height:1}
.res-why{margin-top:18px;font-size:16.5px;color:var(--tx-inv-2);max-width:58ch;line-height:1.55}
.res-meta{display:flex;gap:38px;flex-wrap:wrap;margin-top:28px;padding-top:22px;border-top:1px solid var(--line-inv)}
.res-meta div b{display:block;font-family:'Archivo',sans-serif;font-size:27px;font-weight:800;
  font-variation-settings:'wdth' 104;color:var(--citron)}
.res-meta div span{display:block;font-size:12.5px;color:var(--tx-inv-2);margin-top:4px}
.res-alt{padding:26px 28px;background:var(--paper-2)}
.res-alt h4{font-size:14.5px;margin-bottom:13px;font-family:'Instrument Sans',sans-serif;font-weight:600;
  color:var(--ink-2);font-variation-settings:normal}
.res-alt ul{margin:0;padding:0;list-style:none;font-size:15px;color:var(--ink-2);line-height:1.9}
.res-alt li{padding-left:19px;position:relative}
.res-alt li::before{content:"";position:absolute;left:0;top:14px;width:10px;height:2px;background:var(--ramp)}
.res-alt strong{color:var(--ink)}

.pool{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:28px}
.pcard{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-md);padding:24px;
  position:relative;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s}
.pcard:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:var(--shadow-2)}
.pcard{overflow:hidden}
.famstrip{position:absolute;left:0;top:0;bottom:0;width:4px}
.pcard .ptop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pcard .role{font-family:'Archivo',sans-serif;font-size:19px;font-weight:700;
  font-variation-settings:'wdth' 104;line-height:1.18;letter-spacing:-.022em}
.pcard .meta{font-size:12.5px;color:var(--ink-3);margin-top:9px;line-height:1.6}
.pcard ul{margin:15px 0 0;padding:0;list-style:none;font-size:13.5px;color:var(--ink-2);line-height:1.7}
.pcard ul li{padding-left:16px;position:relative}
.pcard ul li::before{content:"";position:absolute;left:0;top:11px;width:9px;height:2px;background:var(--ramp)}
.savebtn{position:absolute;right:20px;bottom:22px;background:none;border:1px solid var(--line-2);
  border-radius:999px;padding:5px 13px;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;
  transition:all .15s;font-family:inherit}
.savebtn:hover{border-color:var(--brand);color:var(--brand)}
.savebtn.on{background:var(--brand);border-color:var(--brand);color:#F3FBFA}
.pcard .ask{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);
  font-family:'Archivo',sans-serif;font-size:19px;font-weight:800;font-variation-settings:'wdth' 104;color:var(--brand)}
.pcard.locked .role,.pcard.locked .meta,.pcard.locked ul,.pcard.locked .ask{filter:blur(5px);user-select:none}
.plock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(250,254,254,.64);border-radius:5px;font-size:13px;font-weight:600;color:var(--brand)}
.avail{width:9px;height:9px;border-radius:50%;flex:none;margin-top:6px}
.avail.now{background:#0D8A9E}
.avail.soon{background:var(--r4)}
.avail.later{background:var(--r1)}

.scrim{position:fixed;inset:0;background:rgba(31,43,45,.5);opacity:0;pointer-events:none;transition:opacity .25s;z-index:80}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(600px,100%);background:var(--paper);
  border-radius:var(--r-lg) 0 0 var(--r-lg);
  transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.75,.25,1);z-index:90;
  overflow-y:auto;box-shadow:-24px 0 60px rgba(31,43,45,.18)}
.drawer.on{transform:none}
.dr-head{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);
  padding:22px 30px;display:flex;align-items:flex-start;gap:16px;z-index:2}
.dr-head h3{font-size:26px;letter-spacing:-.028em;flex:1;line-height:1.1;font-variation-settings:'wdth' 106}
.dr-close{background:none;border:1px solid var(--line-2);border-radius:50%;width:36px;height:36px;
  font-size:19px;line-height:1;cursor:pointer;color:var(--ink-2);flex:none}
.dr-close:hover{border-color:var(--ink);color:var(--ink)}
.dr-body{padding:26px 30px 40px}
.dr-sec{margin-bottom:28px}
.dr-sec h5{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 11px;font-family:'Instrument Sans',sans-serif;font-variation-settings:normal}
.dr-sec p{font-size:15.5px;color:var(--ink-2);margin:0}
.pctable{width:100%;border-collapse:collapse;font-size:14px}
.pctable th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);
  font-weight:600;padding:0 8px 8px 0;border-bottom:1px solid var(--line-2);text-align:right}
.pctable th:first-child{text-align:left}
.pctable td{font-family:'IBM Plex Sans',sans-serif;padding:10px 8px 10px 0;border-bottom:1px solid var(--line);text-align:right;color:var(--ink)}
.pctable td:first-child{text-align:left;color:var(--ink-2)}
.pctable td.med{font-weight:700;color:var(--brand)}
.chiplist{display:flex;gap:7px;flex-wrap:wrap}
.chiplist span{font-size:12.5px;background:var(--paper-2);padding:5px 11px;border-radius:999px;color:var(--ink-2)}
.dr-cta{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--line);padding:18px 30px;
  display:flex;gap:12px;align-items:center;flex-wrap:wrap}

.tag{display:inline-block;font-size:12px;font-weight:600;padding:4px 11px;white-space:nowrap;
  border-radius:999px;border:1px solid}
.tag.hi{background:rgba(35,113,123,.10);color:#1A5A62;border-color:rgba(35,113,123,.34)}
.tag.mid{background:rgba(13,138,158,.15);color:#0B6B7A;border-color:rgba(13,138,158,.38)}
.tag.ok{background:rgba(31,43,45,.055);color:var(--ink-2);border-color:var(--line-2)}

table{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;
  background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.alt table,.wash table{background:var(--paper-3)}
table th:first-child,table td:first-child{padding-left:20px}
table th:last-child,table td:last-child{padding-right:20px}
th{text-align:left;font-weight:600;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);padding:16px 15px 14px 0;border-bottom:1px solid var(--line-2);background:var(--paper-2)}
td{padding:15px 15px 15px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
td.num{font-family:'IBM Plex Sans',sans-serif;font-weight:600;white-space:nowrap;color:var(--ink)}
tbody tr:hover td{background:var(--wash)}
.alt tbody tr:hover td{background:var(--wash)}
tbody tr:last-child td{border-bottom:0}
.rname{font-family:'Archivo',sans-serif;font-size:16.5px;font-weight:700;
  font-variation-settings:'wdth' 104;color:var(--ink);letter-spacing:-.018em}
.rstack{font-size:12px;color:var(--ink-3);display:block;margin-top:4px;line-height:1.5}
.lvl{font-family:'Archivo',sans-serif;font-weight:800;font-variation-settings:'wdth' 100;
  font-size:15px;color:var(--brand)}

.split{display:grid;grid-template-columns:1fr 1fr;border-top:1.5px solid var(--ink)}
.split>div{padding:32px 32px 32px 0}
.split>div+div{padding-left:32px;border-left:1px solid var(--line)}
.split h3{font-size:24px;margin-bottom:14px;letter-spacing:-.026em;font-variation-settings:'wdth' 106}
.split p{color:var(--ink-2);font-size:16px;max-width:46ch}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1.5px solid currentColor}
.stats>div{padding:26px 26px 26px 0}
.stats>div+div{padding-left:26px;border-left:1px solid var(--line)}
.dark .stats>div+div{border-color:var(--line-inv)}
.stats b{display:block;font-family:'Archivo',sans-serif;font-size:clamp(42px,4.6vw,58px);font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.045em;line-height:.95;color:var(--brand);
  white-space:nowrap}
.dark .stats b{color:var(--citron)}
.stats span{display:block;font-size:14.5px;color:var(--ink-2);margin-top:16px;max-width:30ch;line-height:1.5}
.dark .stats span{color:var(--tx-inv-2)}
.flow{display:grid;grid-template-columns:repeat(4,1fr);counter-reset:s;margin:0;padding:0}
.flow>li{list-style:none;padding:22px 22px 22px 0;border-top:1.5px solid var(--ink)}
.flow>li+li{padding-left:22px;border-left:1px solid var(--line)}
.dark .flow>li{border-top-color:var(--tx-inv)}
.dark .flow>li+li{border-left-color:var(--line-inv)}
.flow>li::before{counter-increment:s;content:counter(s);display:block;font-family:'Archivo',sans-serif;
  font-size:32px;font-weight:800;font-variation-settings:'wdth' 100;letter-spacing:-.03em;
  color:var(--r3);margin-bottom:10px;line-height:1}
.dark .flow>li::before{color:var(--citron)}
.flow h4{font-size:17px;margin-bottom:9px;letter-spacing:-.02em;font-variation-settings:'wdth' 104}
.flow p{font-size:14px;color:var(--ink-2);margin:0}
.dark .flow p{color:var(--tx-inv-2)}

.gloss{border-top:1.5px solid var(--ink);margin:0}
.gloss>div{display:grid;grid-template-columns:260px 1fr;gap:30px;padding:22px 0;border-bottom:1px solid var(--line)}
.gloss dt{font-family:'Archivo',sans-serif;font-weight:700;font-size:19px;
  font-variation-settings:'wdth' 104;letter-spacing:-.02em}
.gloss dt em{display:block;font-family:'Instrument Sans',sans-serif;font-style:normal;font-size:12.5px;
  font-weight:400;color:var(--ink-3);margin-top:5px;letter-spacing:0;font-variation-settings:normal}
.gloss dd{margin:0;color:var(--ink-2);font-size:15.5px;max-width:64ch}

.form{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:700px}
.form label{display:block;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  margin-bottom:8px;color:var(--ink-3)}
.form input,.form select{width:100%;padding:13px 16px;font-family:inherit;font-size:15px;
  border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper-3);color:var(--ink)}
.form input::placeholder{color:var(--ink-3)}
.form input:focus,.form select:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:transparent}
.dark .form label{color:var(--tx-inv-2)}
.dark .form input,.dark .form select{background:rgba(229,249,248,.08);border-color:rgba(229,249,248,.26);color:var(--tx-inv)}
.dark .form input:focus,.dark .form select:focus{outline-color:var(--citron)}
.dark .form select option{background:var(--espresso);color:var(--tx-inv)}
.form .full{grid-column:1/-1}
.note{font-size:13px;color:var(--ink-3);max-width:60ch}
.dark .note{color:var(--tx-inv-2)}

.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch;margin-top:34px}
.plan{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-lg);padding:34px 30px 30px;
  display:flex;flex-direction:column;position:relative;transition:transform .2s,box-shadow .2s}
.plan:hover{transform:translateY(-3px);box-shadow:var(--shadow-2)}
.plan h3{font-size:20px;margin-bottom:8px;letter-spacing:-.02em;font-variation-settings:'wdth' 104;color:var(--ink)}
.plan .per{font-size:13.5px;color:var(--ink-3);line-height:1.45}
.plan .price{font-family:'Archivo',sans-serif;font-size:clamp(38px,3.4vw,46px);font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.04em;margin:24px 0 6px;line-height:1;color:var(--brand)}
.plan ul{margin:24px 0 28px;padding:0;list-style:none;font-size:14.5px;line-height:1.55;color:var(--ink-2);
  display:grid;gap:11px}
.plan ul li{padding-left:26px;position:relative}
.plan ul li::before{content:"";position:absolute;left:0;top:.44em;width:15px;height:3px;border-radius:2px;
  background:var(--ramp)}
.plan .foot{margin-top:auto}
.plan .btn{width:100%;text-align:center}

.plan.pick{background:var(--espresso);color:var(--tx-inv);border-color:var(--espresso);overflow:hidden;
  transform:translateY(-8px);box-shadow:var(--shadow-2)}
.plan.pick:hover{transform:translateY(-12px)}
.plan.pick::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--ramp)}
.plan.pick h3{color:var(--tx-inv)}
.plan.pick .per{color:var(--tx-inv-2)}
.plan.pick ul{color:var(--tx-inv-2)}
.plan.pick ul li::before{background:var(--grad-inv)}
.plan .badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  font-family:'Archivo',sans-serif;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;
  background:var(--swash,#BDE9EC);color:var(--espresso);padding:6px 15px;border-radius:999px;white-space:nowrap}

.btn-grad{border-color:transparent;position:relative;color:#F3FBFA;
  -webkit-text-fill-color:#F3FBFA;background:var(--grad-warm);background-size:150% 100%;
  background-position:20% 50%;transition:background-position .45s ease,transform .18s,box-shadow .18s}
.btn-grad:hover{background-position:80% 50%;box-shadow:var(--shadow-2)}
.btn-grad-inv{border-color:transparent;color:var(--espresso);-webkit-text-fill-color:var(--espresso);
  background:var(--grad-inv);background-size:150% 100%;background-position:20% 50%;
  transition:background-position .45s ease,transform .18s,box-shadow .18s}
.btn-grad-inv:hover{background-position:80% 50%;box-shadow:var(--shadow-2)}

.callout{padding:10px 0 10px 26px;max-width:62ch;margin:38px 0;position:relative}
.callout::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ramp)}
.callout{max-width:66ch}
.callout p{font-family:'Archivo',sans-serif;font-size:clamp(20px,1.65vw,25px);line-height:1.38;font-weight:700;
  font-variation-settings:'wdth' 104;color:var(--ink);margin:0;letter-spacing:-.024em}
.dark .callout p{color:var(--tx-inv)}
.banner{background:var(--espresso);color:var(--tx-inv-2);font-size:12.5px;padding:10px 0;text-align:center;
  position:relative}
.banner::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ramp)}

.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,90px);background:var(--espresso);
  color:var(--tx-inv);padding:15px 24px;border-radius:999px;font-size:14.5px;z-index:100;
  opacity:0;transition:all .28s cubic-bezier(.2,.75,.25,1);box-shadow:0 14px 44px rgba(31,43,45,.3)}
.toast.on{transform:translate(-50%,0);opacity:1}

footer{background:var(--espresso);color:var(--tx-inv-2);padding:60px 0 40px;font-size:14.5px}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px;padding-bottom:32px;border-bottom:1px solid var(--line-inv)}
footer .mark{color:var(--tx-inv)}
footer h5{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--tx-inv);
  margin:0 0 16px;font-family:'IBM Plex Sans',sans-serif}
footer ul{margin:0;padding:0;list-style:none;line-height:2.05}
footer button{background:none;border:0;font:inherit;color:inherit;cursor:pointer;padding:0}
footer button:hover{color:var(--tx-inv)}
.fbot{padding-top:22px;font-size:12.5px;color:rgba(229,249,248,.42);display:flex;gap:24px;flex-wrap:wrap}

/* ---- pagina aziende ---- */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.fact{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-md);padding:22px 24px}
.fact b{display:block;font-family:'Archivo',sans-serif;font-size:31px;font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.035em;line-height:1;color:var(--brand)}
.fact span{display:block;font-size:13.5px;color:var(--ink-2);margin-top:10px;line-height:1.5}

.vs{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px;
  background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.vs th{text-align:left;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);
  font-weight:600;padding:16px 14px;background:var(--paper-2);border-bottom:1px solid var(--line-2)}
.vs th.us{background:var(--espresso);color:var(--citron)}
.vs td{padding:15px 14px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top}
.vs td.us{background:rgba(35,113,123,.05);color:var(--ink);font-weight:500}
.vs tr:last-child td{border-bottom:0}
.vs td:first-child{font-weight:600;color:var(--ink)}

.calc{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:32px 34px;box-shadow:var(--shadow-1);display:grid;grid-template-columns:1fr 1fr;gap:38px}
.calc-in label{display:block;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:12px}
.calc-in .v{font-family:'Archivo',sans-serif;font-size:30px;font-weight:800;font-variation-settings:'wdth' 100;
  letter-spacing:-.035em;color:var(--ink);margin-bottom:10px;line-height:1}
.calc-in+.calc-in{margin-top:30px}
input[type=range]{width:100%;height:5px;-webkit-appearance:none;appearance:none;border-radius:999px;
  background:var(--paper-2);outline-offset:6px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;
  background:var(--brand);border:3px solid var(--paper-3);box-shadow:var(--shadow-1);cursor:grab}
input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--brand);
  border:3px solid var(--paper-3);cursor:grab}
.calc-out{background:var(--espresso);border-radius:var(--r-md);padding:26px 28px;color:var(--tx-inv);
  display:flex;flex-direction:column;justify-content:center}
.calc-line{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 0;
  border-bottom:1px solid var(--line-inv);font-size:14.5px;color:var(--tx-inv-2)}
.calc-line b{font-family:'IBM Plex Sans',sans-serif;font-size:19px;font-weight:700;color:var(--tx-inv);white-space:nowrap}
.calc-line:last-of-type{border-bottom:0}
.calc-delta{margin-top:18px;padding-top:18px;border-top:2px solid var(--citron)}
.calc-delta span{display:block;font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--tx-inv-2);margin-bottom:8px}
.calc-delta b{font-family:'Archivo',sans-serif;font-size:36px;font-weight:800;font-variation-settings:'wdth' 100;
  letter-spacing:-.04em;line-height:1;color:var(--citron);display:block}

.faq{border-top:1.5px solid var(--ink);max-width:78ch}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;position:relative;
  font-family:'Archivo',sans-serif;font-size:18.5px;font-weight:700;font-variation-settings:'wdth' 104;
  letter-spacing:-.02em;color:var(--ink);transition:color .15s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--brand)}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:13px;height:13px;
  border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);
  transform:translateY(-70%) rotate(45deg);transition:transform .22s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.faq details[open] summary{color:var(--brand)}
.faq p{padding:0 60px 24px 0;margin:0;color:var(--ink-2);font-size:16px}

@media(max-width:820px){
  .facts{grid-template-columns:1fr}
  .calc{grid-template-columns:1fr;gap:26px;padding:24px 20px}
  .vs{display:block;overflow-x:auto;white-space:nowrap}
}

/* ---- accesso e aree riservate ---- */
.authwrap{max-width:520px;margin:0 auto;padding:60px 0 90px}
.authcard{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:38px 36px;box-shadow:var(--shadow-1)}
.authcard h2{font-size:27px;margin-bottom:8px;letter-spacing:-.028em}
.authcard .sub2{font-size:15px;color:var(--ink-2);margin-bottom:28px}
.authfield{margin-bottom:16px}
.authfield label{display:block;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:8px}
.authfield input,.authfield select{width:100%;padding:13px 16px;font-family:inherit;font-size:15px;
  border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);color:var(--ink)}
.authfield input:focus,.authfield select:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:transparent}
.authcard .btn{width:100%;text-align:center;margin-top:10px}
.authalt{text-align:center;margin-top:22px;font-size:14.5px;color:var(--ink-2)}
.fork{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:26px}
.forkbtn{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-md);padding:20px 18px;
  cursor:pointer;text-align:left;transition:all .18s;color:inherit}
.forkbtn:hover{border-color:var(--brand);transform:translateY(-2px)}
.forkbtn.sel{border-color:var(--brand);background:rgba(35,113,123,.06)}
.forkbtn b{display:block;font-family:'Archivo',sans-serif;font-size:16px;font-weight:700;margin-bottom:4px}
.forkbtn span{font-size:13px;color:var(--ink-2);line-height:1.45}

.dash{display:grid;grid-template-columns:1fr;gap:16px}
.dgrid{display:grid;gap:16px}
.dgrid.c2{grid-template-columns:1.35fr 1fr}
.dgrid.c3{grid-template-columns:repeat(3,1fr)}
.dcard{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px 30px}
.dcard.ink{background:var(--espresso);color:var(--tx-inv);border-color:var(--espresso);position:relative;overflow:hidden}
.dcard.ink::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--ramp)}
.dcard h4{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);
  margin:0 0 16px;font-family:'Instrument Sans',sans-serif;font-variation-settings:normal}
.dcard.ink h4{color:var(--tx-inv-2)}
.dbig{font-family:'Archivo',sans-serif;font-size:clamp(38px,4vw,52px);font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.04em;line-height:1;color:var(--brand)}
.dcard.ink .dbig{color:var(--citron)}
.dsub{font-size:14.5px;color:var(--ink-2);margin-top:12px;line-height:1.5}
.dcard.ink .dsub{color:var(--tx-inv-2)}

.pctbar{position:relative;height:46px;margin:22px 0 8px}
.pcttrack{position:absolute;left:0;right:0;top:17px;height:12px;border-radius:6px;background:var(--ramp);opacity:.42}
.pctfill{position:absolute;top:17px;height:12px;border-radius:6px;overflow:hidden}
.pctfill>i{position:absolute;top:0;bottom:0;background:var(--ramp)}
.pctpin{position:absolute;top:6px;width:3px;height:34px;border-radius:2px;background:var(--espresso)}
.dcard.ink .pctpin{background:var(--citron)}
.pctlab{position:absolute;top:-6px;transform:translateX(-50%);font-family:'Archivo',sans-serif;
  font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.pctscale{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-3)}
.dcard.ink .pctscale{color:var(--tx-inv-2)}

.drow{display:flex;gap:16px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}
.dcard.ink .drow{border-color:var(--line-inv)}
.drow:last-child{border-bottom:0}
.drow .who{flex:1;min-width:0}
.drow .who b{display:block;font-family:'Archivo',sans-serif;font-size:16px;font-weight:700;
  font-variation-settings:'wdth' 104;letter-spacing:-.018em}
.drow .who span{font-size:13px;color:var(--ink-3)}
.dcard.ink .drow .who span{color:var(--tx-inv-2)}
.dot{width:8px;height:8px;border-radius:50%;flex:none}
.dot.g{background:#0D8A9E}.dot.a{background:var(--r4)}.dot.r{background:var(--r1)}

.meter{height:7px;border-radius:999px;background:var(--paper-2);overflow:hidden;margin:14px 0 10px}
.meter>i{display:block;height:100%;border-radius:999px;background:var(--ramp)}
.checklist{list-style:none;margin:0;padding:0;font-size:14.5px;color:var(--ink-2);display:grid;gap:9px}
.checklist li{padding-left:26px;position:relative}
.checklist li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:14px;border-radius:50%;
  border:2px solid var(--line-2)}
.checklist li.ok::before{background:var(--r5);border-color:var(--r5)}
.checklist li.ok{color:var(--ink-3);text-decoration:line-through}

.userchip{display:flex;align-items:center;gap:9px;background:var(--paper-3);border:1px solid var(--line);
  border-radius:999px;padding:5px 14px 5px 5px;cursor:pointer;font-size:14px;font-weight:600;color:var(--ink)}
.userchip:hover{border-color:var(--line-2)}
.userchip i{width:28px;height:28px;border-radius:50%;background:var(--grad-warm);color:#F3FBFA;
  display:grid;place-items:center;font-family:'Archivo',sans-serif;font-size:12.5px;font-weight:800;font-style:normal}

@media(max-width:900px){.dgrid.c2,.dgrid.c3{grid-template-columns:1fr}.fork{grid-template-columns:1fr}}

.demobox{margin-top:22px;background:var(--paper-3);border:1px dashed var(--line-2);border-radius:var(--r-lg);
  padding:26px 30px;text-align:center}
.demobox .demotxt{font-size:14.5px;color:var(--ink-2);margin:14px 0 18px}
.demobtns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.bannerlink{background:none;border:0;font:inherit;color:var(--citron);cursor:pointer;padding:0;
  margin-left:16px;border-bottom:1px solid rgba(18,178,193,.5)}
.bannerlink:hover{border-bottom-color:var(--citron)}

/* ---- profilo e aree, versione estesa ---- */
.pgrid{display:grid;grid-template-columns:270px 1fr;gap:22px;align-items:start}
.pnav{position:sticky;top:92px;display:grid;gap:4px}
.pnav button{text-align:left;background:none;border:0;padding:11px 14px;border-radius:10px;cursor:pointer;
  font:inherit;font-size:14.5px;color:var(--ink-2);display:flex;align-items:center;gap:10px;transition:all .15s}
.pnav button:hover{background:var(--paper-2);color:var(--ink)}
.pnav button.on{background:var(--espresso);color:var(--tx-inv)}
.pnav .st{width:9px;height:9px;border-radius:50%;border:2px solid var(--line-2);flex:none}
.pnav .st.ok{background:var(--r5);border-color:var(--r5)}
.pnav button.on .st{border-color:rgba(229,249,248,.5)}
.psec{display:none}
.psec.on{display:block}

.avatar{width:88px;height:88px;border-radius:26px;background:var(--grad-warm);color:#F3FBFA;
  display:grid;place-items:center;font-family:'Archivo',sans-serif;font-size:30px;font-weight:800;flex:none}
.avatarrow{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:8px}

.drop{border:1.5px dashed var(--line-2);border-radius:var(--r-md);padding:26px;text-align:center;
  background:var(--paper);cursor:pointer;transition:all .18s}
.drop:hover{border-color:var(--brand);background:var(--paper-3)}
.drop b{display:block;font-family:'Archivo',sans-serif;font-size:16px;font-weight:700;margin-bottom:6px}
.drop span{font-size:13.5px;color:var(--ink-3)}

.skillcat{margin-bottom:26px}
.skillcat h5{font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);
  margin:0 0 11px;font-family:'Instrument Sans',sans-serif}
.skillpick{display:flex;gap:7px;flex-wrap:wrap}
.skillpick button{background:var(--paper);border:1px solid var(--line-2);border-radius:999px;padding:6px 13px;
  font:inherit;font-size:13px;color:var(--ink-2);cursor:pointer;transition:all .15s}
.skillpick button:hover{border-color:var(--ink-2);color:var(--ink)}
.skillpick button.on{background:var(--espresso);border-color:var(--espresso);color:var(--tx-inv)}
.skillrow{display:grid;grid-template-columns:1fr 150px 92px 96px;gap:12px;align-items:center;
  padding:11px 0;border-bottom:1px solid var(--line)}
.skillrow:last-child{border-bottom:0}
.skillrow b{font-size:14.5px;font-weight:600}
.skillrow select{padding:8px 10px;font-family:inherit;font-size:13.5px;border:1px solid var(--line-2);
  border-radius:8px;background:var(--paper);color:var(--ink);width:100%}
.vtag{font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:999px;text-align:center;white-space:nowrap}
.vtag.no{background:var(--paper-2);color:var(--ink-3)}
.vtag.si{background:rgba(13,138,158,.16);color:#1A5A62}
.skx{background:none;border:0;color:var(--ink-3);cursor:pointer;font-size:17px;line-height:1;padding:4px}
.skx:hover{color:var(--brand)}

.projcard{border:1px solid var(--line);border-radius:var(--r-md);padding:20px;margin-bottom:12px;background:var(--paper)}
.projcard .g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.notice{display:flex;gap:14px;align-items:flex-start;background:var(--wash);border:1px solid var(--wash-2);
  border-radius:var(--r-md);padding:18px 20px;font-size:14px;color:#2E5558;line-height:1.55;margin-bottom:20px}
.notice b{color:#1F3F42}
.notice i{flex:none;width:22px;height:22px;border-radius:50%;background:#0D8A9E;color:#F3FBFA;
  display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:700;font-family:'Archivo',sans-serif}
.notice.warn{background:rgba(35,113,123,.07);border-color:rgba(35,113,123,.2);color:#1A5A62}
.notice.warn i{background:var(--brand)}
.notice.warn b{color:var(--brand-d)}

.pipe{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;align-items:start}
.pipecol{background:var(--paper-2);border-radius:var(--r-md);padding:12px;min-height:120px}
.pipecol h6{margin:0 0 10px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);font-family:'Instrument Sans',sans-serif;display:flex;justify-content:space-between}
.pipecard{background:var(--paper-3);border:1px solid var(--line);border-radius:11px;padding:12px;margin-bottom:8px;
  font-size:13px;cursor:pointer;transition:all .15s}
.pipecard:hover{border-color:var(--line-2);transform:translateY(-1px)}
.pipecard b{display:block;font-family:'Archivo',sans-serif;font-size:14px;font-weight:700;margin-bottom:3px}
.pipecard span{color:var(--ink-3);font-size:12px}
.pipecard select{width:100%;margin-top:9px;padding:5px 7px;font-family:inherit;font-size:11.5px;
  border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink-2)}

.cmpgrid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.cmpgrid>div{background:var(--paper-3);padding:13px 16px;font-size:13.5px}
.cmpgrid .hd{background:var(--paper-2);font-size:10.5px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3)}
.cmpgrid .rl{font-weight:600;color:var(--ink)}

.funnel{display:grid;gap:9px}
.funnel div{display:flex;align-items:center;gap:14px;font-size:14px}
.funnel .fb{height:26px;border-radius:6px;background:var(--ramp);min-width:3px}
.funnel .fn{width:132px;color:var(--ink-2);flex:none}
.funnel .fv{font-family:'IBM Plex Sans',sans-serif;font-weight:700;color:var(--ink)}

@media(max-width:900px){
  .pgrid{grid-template-columns:minmax(0,1fr)}
  .pnav{position:static;grid-auto-flow:column;overflow-x:auto;gap:6px}
  .pipe{grid-template-columns:1fr}
  .skillrow{grid-template-columns:1fr 1fr;gap:8px}
  .projcard .g2{grid-template-columns:1fr}
}

/* ---- pagina del singolo ruolo ---- */
.rhead{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.crumb{display:flex;gap:9px;align-items:center;font-size:13.5px;color:var(--ink-3);margin-bottom:18px;flex-wrap:wrap}
.crumb button{background:none;border:0;font:inherit;color:var(--ink-3);cursor:pointer;padding:0;
  border-bottom:1px solid transparent}
.crumb button:hover{color:var(--brand);border-bottom-color:currentColor}
.crumb i{font-style:normal;opacity:.5}
.rband{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0 8px}
.rband>div{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 22px}
.rband b{display:block;font-family:'Archivo',sans-serif;font-size:26px;font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.035em;line-height:1;color:var(--brand)}
.rband span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:9px;letter-spacing:.02em}
.rel{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.relcard{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 22px;
  cursor:pointer;transition:all .18s;text-align:left}
.relcard:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:var(--shadow-1)}
.relcard b{display:block;font-family:'Archivo',sans-serif;font-size:17px;font-weight:700;
  font-variation-settings:'wdth' 104;letter-spacing:-.02em;margin-bottom:6px}
.relcard span{font-size:13.5px;color:var(--ink-2);line-height:1.5}
.rolist{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.rolink{display:flex;gap:14px;align-items:center;background:var(--paper-3);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:14px 18px;cursor:pointer;transition:all .15s;text-align:left;width:100%}
.rolink:hover{border-color:var(--brand);transform:translateX(3px)}
.rolink i{width:8px;height:8px;border-radius:50%;flex:none}
.rolink b{font-family:'Archivo',sans-serif;font-size:15.5px;font-weight:700;flex:1;
  font-variation-settings:'wdth' 104;letter-spacing:-.018em}
@media(max-width:900px){.rband{grid-template-columns:1fr 1fr}.rel{grid-template-columns:1fr}.rolist{grid-template-columns:1fr}}

/* ---- confronto e classifiche ---- */
.vsbox{display:grid;grid-template-columns:1fr 74px 1fr;gap:0;align-items:stretch;
  border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--paper-3);
  box-shadow:var(--shadow-1)}
.vscol{padding:30px 30px 26px}
.vscol.b{border-left:1px solid var(--line)}
.vsmid{display:grid;place-items:center;background:var(--paper-2);border-left:1px solid var(--line);
  border-right:1px solid var(--line);font-family:'Archivo',sans-serif;font-size:14px;font-weight:800;
  letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}
.vspick{width:100%;padding:12px 14px;font-family:inherit;font-size:15px;border:1px solid var(--line-2);
  border-radius:var(--r-sm);background:var(--paper);color:var(--ink);margin-bottom:18px}
.vsname{font-family:'Archivo',sans-serif;font-size:23px;font-weight:800;font-variation-settings:'wdth' 106;
  letter-spacing:-.026em;line-height:1.1;margin-bottom:6px}
.vsmed{font-family:'Archivo',sans-serif;font-size:clamp(32px,3.2vw,42px);font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.04em;line-height:1;margin:18px 0 4px;color:var(--brand)}
.vsmed small{display:block;font-family:'Instrument Sans',sans-serif;font-size:12px;font-weight:500;
  letter-spacing:.02em;color:var(--ink-3);margin-top:8px}
.vsbar{position:relative;height:16px;margin:20px 0 10px}
.vsbar .t{position:absolute;inset:0;border-radius:5px;background:var(--paper-2)}
.vsbar .f{position:absolute;top:0;bottom:0;border-radius:5px;overflow:hidden}
.vsbar .f>i{position:absolute;top:0;bottom:0;background:var(--ramp)}
.vsbar .m{position:absolute;top:-3px;width:2px;height:22px;background:var(--ink);border-radius:2px}
.vsline{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-2);padding:9px 0;
  border-bottom:1px solid var(--line)}
.vsline:last-child{border-bottom:0}
.vsline b{font-family:'IBM Plex Sans',sans-serif;font-weight:600;color:var(--ink)}
.deltabox{margin-top:20px;background:var(--espresso);color:var(--tx-inv);border-radius:var(--r-md);
  padding:24px 28px;position:relative;overflow:hidden}
.deltabox::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--ramp)}
.deltabox b{font-family:'Archivo',sans-serif;font-size:clamp(28px,3vw,38px);font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.04em;color:var(--citron);display:block;line-height:1}
.deltabox p{margin:12px 0 0;color:var(--tx-inv-2);font-size:15px;max-width:62ch}

.rank{display:grid;gap:8px}
.rankrow{display:grid;grid-template-columns:34px 1fr 132px 82px;gap:14px;align-items:center;
  background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-sm);padding:13px 18px;
  cursor:pointer;transition:all .15s}
.rankrow:hover{border-color:var(--brand);transform:translateX(3px)}
.rankn{font-family:'Archivo',sans-serif;font-size:19px;font-weight:800;font-variation-settings:'wdth' 100;
  color:var(--ink-3);letter-spacing:-.03em}
.rankrow:nth-child(1) .rankn,.rankrow:nth-child(2) .rankn,.rankrow:nth-child(3) .rankn{color:var(--brand)}
.rankname{font-family:'Archivo',sans-serif;font-size:15.5px;font-weight:700;font-variation-settings:'wdth' 104;
  letter-spacing:-.018em}
.rankname em{display:block;font-style:normal;font-size:12px;font-weight:400;color:var(--ink-3);margin-top:2px}
.rankv{font-family:'IBM Plex Sans',sans-serif;font-weight:700;text-align:right;font-size:15px}
.ranktabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}
@media(max-width:820px){
  .vsbox{grid-template-columns:1fr}
  .vscol.b{border-left:0;border-top:1px solid var(--line)}
  .vsmid{border:0;padding:12px;border-top:1px solid var(--line)}
  .rankrow{grid-template-columns:28px 1fr 96px;gap:10px}
  .rankrow>span:last-child{display:none}
}

/* ---- ricerca rapida ---- */
.navsearch{display:flex;align-items:center;gap:9px;background:var(--paper-3);border:1px solid var(--line-2);
  border-radius:999px;padding:7px 13px 7px 12px;cursor:pointer;color:var(--ink-3);font-size:13.5px;
  transition:all .15s;font-family:inherit}
.navsearch:hover{border-color:var(--ink-3);color:var(--ink-2)}
.navsearch kbd{font-family:'IBM Plex Sans',monospace;font-size:11px;background:var(--paper-2);
  border:1px solid var(--line);border-radius:5px;padding:2px 6px;color:var(--ink-3)}
.pal{position:fixed;inset:0;z-index:120;display:none;padding:11vh 20px 20px;justify-content:center;
  align-items:flex-start;background:rgba(31,43,45,.44);backdrop-filter:blur(3px)}
.pal.on{display:flex}
.palbox{width:min(640px,100%);background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);
  box-shadow:0 30px 80px rgba(31,43,45,.34);overflow:hidden;display:flex;flex-direction:column;max-height:74vh}
.palin{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}
.palin input{flex:1;border:0;background:none;font-family:inherit;font-size:18px;color:var(--ink);outline:none}
.palin input::placeholder{color:var(--ink-3)}
.palin svg{color:var(--ink-3);flex:none}
.palesc{font-size:11px;background:var(--paper-2);border:1px solid var(--line);border-radius:5px;
  padding:3px 7px;color:var(--ink-3)}
.pallist{overflow-y:auto;padding:8px}
.palgrp{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
  padding:12px 14px 7px}
.palit{display:flex;gap:13px;align-items:center;width:100%;background:none;border:0;text-align:left;
  padding:11px 14px;border-radius:10px;cursor:pointer;font:inherit;color:var(--ink)}
.palit:hover,.palit.sel{background:var(--paper-2)}
.palit i{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ink-3)}
.palit .n{flex:1;min-width:0}
.palit .n b{display:block;font-family:'Archivo',sans-serif;font-size:15px;font-weight:700;
  font-variation-settings:'wdth' 104;letter-spacing:-.018em}
.palit .n span{display:block;font-size:12.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.palempty{padding:36px 20px;text-align:center;color:var(--ink-3);font-size:14.5px}
@media(max-width:820px){.navsearch kbd{display:none}}

/* ---- pagine citta ---- */
.citygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.citycard{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 28px;
  cursor:pointer;text-align:left;transition:all .18s;position:relative;overflow:hidden}
.citycard:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--line-2)}
.citycard::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--ramp)}
.citycard b{display:block;font-family:'Archivo',sans-serif;font-size:23px;font-weight:800;
  font-variation-settings:'wdth' 106;letter-spacing:-.028em;margin-bottom:8px}
.citycard span{display:block;font-size:14px;color:var(--ink-2);line-height:1.5}
.citycard em{display:block;font-style:normal;font-size:12.5px;color:var(--ink-3);margin-top:14px;
  padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:900px){.citygrid{grid-template-columns:1fr}}

/* ---- rapporto ---- */
.repnum{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0}
.repnum>div{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r-md);padding:24px}
.repnum b{display:block;font-family:'Archivo',sans-serif;font-size:34px;font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.04em;line-height:1;color:var(--brand)}
.repnum span{display:block;font-size:12.5px;color:var(--ink-2);margin-top:11px;line-height:1.5}
.finding{border-top:1.5px solid var(--ink);padding:26px 0;display:grid;grid-template-columns:56px 1fr;gap:26px}
.finding .fi{font-family:'Archivo',sans-serif;font-size:30px;font-weight:800;font-variation-settings:'wdth' 100;
  color:var(--ink-3);letter-spacing:-.04em;line-height:1}
.finding h3{font-size:24px;margin-bottom:12px;letter-spacing:-.026em}
.finding p{color:var(--ink-2);max-width:66ch;margin-bottom:0}
.finding p+p{margin-top:12px}
@media(max-width:820px){.repnum{grid-template-columns:1fr 1fr}.finding{grid-template-columns:1fr;gap:10px}}

/* ---- modalità scura ---- */
[data-theme="dark"]{
  --paper:#111B1D; --paper-2:#1F2B2D; --paper-3:#172224;
  --espresso:#1A2729; --espresso-2:#22393C;
  --ink:#E5F9F8; --ink-2:#A9C4C6; --ink-3:#7F9A9D;
  --tx-inv:#E5F9F8; --tx-inv-2:rgba(229,249,248,.68);
  --line:rgba(229,249,248,.11); --line-2:rgba(229,249,248,.22); --line-inv:rgba(229,249,248,.14);
  --r1:#23717B; --r2:#0D8A9E; --r3:#12A2B3; --r4:#12B2C1; --r5:#5FD0DA;
  --brand:#12B2C1; --brand-d:#0FA0AE; --citron:#5FD0DA;
  --wash:#16292B; --wash-2:#1E3538;
  --hl:rgba(18,178,193,.24);
  --swash:#1E5A62;
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 6px 18px -8px rgba(0,0,0,.5);
  --shadow-2:0 2px 4px rgba(0,0,0,.34),0 18px 44px -14px rgba(0,0,0,.6);
  --grad-warm:linear-gradient(96deg,#0D8A9E 0%,#12A2B3 34%,#12B2C1 66%,#12B2C1 100%);
  --grad-inv:linear-gradient(96deg,#12B2C1 0%,#4CC6D1 30%,#8FDCE2 62%,#E5F9F8 100%);
  color-scheme:dark;
}
[data-theme="dark"] .nav{background:rgba(17,27,29,.92)}
[data-theme="dark"] .toolbar{background:rgba(17,27,29,.95)}
[data-theme="dark"] .hero{background:
  radial-gradient(58% 78% at 88% 8%, rgba(18,178,193,.10), transparent 62%),
  radial-gradient(52% 70% at 4% 96%, rgba(13,138,158,.10), transparent 64%),
  linear-gradient(180deg,var(--paper-3),var(--paper) 72%)}
[data-theme="dark"] .hero::before{background-image:radial-gradient(circle at 1px 1px, rgba(229,249,248,.14) 1px, transparent 0)}
[data-theme="dark"] section.dark{background:var(--espresso-2)}
[data-theme="dark"] .plan.pick,[data-theme="dark"] .dcard.ink,[data-theme="dark"] .gate,
[data-theme="dark"] .res-main,[data-theme="dark"] .deltabox,[data-theme="dark"] footer{background:var(--espresso-2)}
[data-theme="dark"] .swash{color:#E5F9F8}
[data-theme="dark"] .swash>i{background:var(--citron)}
[data-theme="dark"] .btn-p{color:#0B1F22}
[data-theme="dark"] .btn-grad{color:#0B1F22;-webkit-text-fill-color:#0B1F22}
[data-theme="dark"] .bar.ext::after{background:repeating-linear-gradient(115deg,var(--paper-3) 0 2px,transparent 2px 5px)}
[data-theme="dark"] .tag.hi{background:rgba(18,178,193,.18);color:#6FD3DC;border-color:rgba(18,178,193,.4)}
[data-theme="dark"] .tag.mid{background:rgba(13,138,158,.16);color:#7ADAE2;border-color:rgba(13,138,158,.38)}
[data-theme="dark"] .notice{background:var(--wash);border-color:var(--wash-2);color:#A9D4D6}
[data-theme="dark"] .notice b{color:#D6F0F0}
[data-theme="dark"] .notice.warn{background:rgba(18,178,193,.10);border-color:rgba(18,178,193,.26);color:#A9D4D6}
[data-theme="dark"] .notice.warn b{color:var(--brand)}
[data-theme="dark"] section.wash .lede{color:#9CC7CA}
[data-theme="dark"] .pal{background:rgba(0,0,0,.6)}
[data-theme="dark"] .palbox{box-shadow:0 30px 80px rgba(0,0,0,.7)}
[data-theme="dark"] .plock{background:rgba(23,34,36,.66)}
[data-theme="dark"] input[type=range]::-webkit-slider-thumb{border-color:var(--paper-3)}
[data-theme="dark"] .avail.now{background:#5FD0DA}

.themebtn{background:var(--paper-3);border:1px solid var(--line-2);border-radius:999px;width:36px;height:36px;
  display:grid;place-items:center;cursor:pointer;color:var(--ink-2);transition:all .15s;flex:none}
.themebtn:hover{border-color:var(--ink-3);color:var(--ink)}
.themebtn svg{display:block}
[data-theme="dark"] .themebtn .sun{display:block}
[data-theme="dark"] .themebtn .moon{display:none}
.themebtn .sun{display:none}
.themebtn .moon{display:block}

/* ---- correzioni per il tema scuro ---- */
[data-theme="dark"] .btn-c{background:var(--citron);border-color:var(--citron);color:#0B1F22}
[data-theme="dark"] .btn-c:hover{background:#7ADAE2}
[data-theme="dark"] footer .mark{color:var(--ink)}
[data-theme="dark"] .famdot{color:#111B1D}
[data-theme="dark"] .userchip i{color:#0B1F22}
[data-theme="dark"] .avatar{color:#0B1F22}
[data-theme="dark"] .savebtn.on{background:var(--brand);color:#0B1F22}
[data-theme="dark"] .plan ul li::before,[data-theme="dark"] .res-alt li::before{background:var(--ramp)}
[data-theme="dark"] .row:hover{background:rgba(229,249,248,.05)}
[data-theme="dark"] tbody tr:hover td{background:rgba(229,249,248,.045)}
[data-theme="dark"] .wz-opt.sel,[data-theme="dark"] .forkbtn.sel{background:rgba(18,178,193,.10)}
[data-theme="dark"] .vs td.us{background:rgba(18,178,193,.09)}
[data-theme="dark"] .checklist li.ok::before{background:var(--r5);border-color:var(--r5)}
[data-theme="dark"] .search input,[data-theme="dark"] .fin,
[data-theme="dark"] .form input,[data-theme="dark"] .form select,
[data-theme="dark"] .authfield input,[data-theme="dark"] .authfield select,
[data-theme="dark"] .vspick,[data-theme="dark"] .skillrow select,
[data-theme="dark"] .pipecard select{background:var(--paper-2);color:var(--ink)}
[data-theme="dark"] .dark .form input,[data-theme="dark"] .dark .form select{background:rgba(229,249,248,.07)}
[data-theme="dark"] .drop{background:var(--paper-2)}
[data-theme="dark"] .skillpick button,[data-theme="dark"] .wz-opt,
[data-theme="dark"] .forkbtn,[data-theme="dark"] .projcard{background:var(--paper-2)}
[data-theme="dark"] .pipecol{background:var(--paper-2)}
[data-theme="dark"] .pipecard{background:var(--paper-3)}
[data-theme="dark"] .cmpgrid>div{background:var(--paper-3)}
[data-theme="dark"] .cmpgrid .hd{background:var(--paper-2)}
[data-theme="dark"] th{background:var(--paper-2)}
[data-theme="dark"] .vsmid{background:var(--paper-2)}
[data-theme="dark"] .demobox{background:var(--paper-3)}
[data-theme="dark"] .navsearch kbd{background:var(--paper-2)}
[data-theme="dark"] .palesc{background:var(--paper-2)}
[data-theme="dark"] .vtag.si{background:rgba(95,208,218,.2);color:#7ADAE2}
[data-theme="dark"] .vtag.no{background:var(--paper-2);color:var(--ink-3)}
[data-theme="dark"] .plan .badge{color:#0B1F22}
[data-theme="dark"] .meter{background:var(--paper-2)}
[data-theme="dark"] input[type=range]{background:var(--paper-2)}
[data-theme="dark"] .avail.now{background:#5FD0DA}
[data-theme="dark"] .dot.g{background:#5FD0DA}
[data-theme="dark"] .funnel .fv,[data-theme="dark"] .vsline b{color:var(--ink)}

/* ---- correzioni di interfaccia ---- */
/* la barra strumenti si sovrapponeva al menu su schermi corti */
.toolbar{top:68px}
@media(max-width:900px){.toolbar{position:static}}

/* i filtri a pastiglia andavano a capo male con molte voci */
.tb-row{row-gap:10px}
.fgroup{row-gap:7px}
.flabel{flex:none}

/* la legenda del grafico si spezzava a meta */
.legend span{max-width:100%;display:inline-flex;align-items:center;white-space:normal}

/* il cassetto laterale copriva la testata sotto */
.dr-head{background:var(--paper);z-index:3}
.dr-cta{box-shadow:0 -8px 22px -14px rgba(31,43,45,.4)}
[data-theme="dark"] .dr-cta{box-shadow:0 -8px 22px -14px rgba(0,0,0,.7)}

/* le sezioni consecutive dello stesso colore si fondevano */
section.alt + section.alt,section.wash + section.wash,section.dark + section.dark{padding-top:0}
section.alt + section.alt::before,section.wash + section.wash::before{content:"";display:block;
  height:1px;background:var(--line);margin-bottom:52px}

/* i titoli sfumati perdevano nitidezza sui fondi tinta */
.sec-h{padding-bottom:.06em}

/* le tabelle lunghe avevano l'intestazione che spariva */
thead th{position:sticky;top:0;z-index:1}
@media(max-width:900px){thead th{position:static}}

/* pulsanti che si toccavano nei piedi di sezione */
.hero-foot,.dr-cta,.wz-foot{row-gap:10px}

/* stato di caricamento coerente per i pannelli generati */
.skel{background:linear-gradient(90deg,var(--paper-2) 25%,var(--paper-3) 50%,var(--paper-2) 75%);
  background-size:200% 100%;animation:shimmer 1.3s linear infinite;border-radius:6px;height:14px}
@keyframes shimmer{to{background-position:-200% 0}}

/* il piè di pagina era troppo attaccato al contenuto */
footer{margin-top:0}
.fbot{align-items:center}

/* le schede del pool avevano il pulsante salva sopra il prezzo */
.pcard .ask{padding-right:86px}
@media(max-width:560px){.pcard .ask{padding-right:0}.savebtn{position:static;margin-top:12px;display:inline-block}}

/* il grafico su schermi stretti aveva la colonna valori tagliata */
@media(max-width:900px){
  .val{padding-left:0}
  .track{margin-bottom:6px}
}

/* il campo di ricerca del pool era troppo stretto accanto ai filtri */
@media(min-width:901px){.search{min-width:230px}}

/* ---- pagine legali e consenso ---- */
.legal{max-width:76ch}
.legal h2{font-size:clamp(22px,2.2vw,28px);margin:44px 0 14px;letter-spacing:-.026em}
.legal h2:first-of-type{margin-top:0}
.legal h3{font-size:18px;margin:26px 0 10px;letter-spacing:-.02em}
.legal p{color:var(--ink-2);margin-bottom:14px}
.legal ul{margin:0 0 18px;padding:0;list-style:none;color:var(--ink-2)}
.legal li{padding-left:24px;position:relative;margin-bottom:9px}
.legal li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;border-radius:2px;background:var(--ramp)}
.legal .upd{font-size:13.5px;color:var(--ink-3);padding:14px 18px;background:var(--paper-2);
  border-radius:var(--r-sm);margin-bottom:34px}
.legal table{margin:18px 0 26px}
.toc{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:34px}
.toc button{background:var(--paper-3);border:1px solid var(--line-2);border-radius:999px;padding:7px 15px;
  font:inherit;font-size:13.5px;color:var(--ink-2);cursor:pointer;transition:all .15s}
.toc button:hover{border-color:var(--brand);color:var(--brand)}

.cbar{position:fixed;left:20px;right:20px;bottom:20px;z-index:130;max-width:760px;margin:0 auto;
  background:var(--paper-3);border:1px solid var(--line-2);border-radius:var(--r-lg);
  box-shadow:0 24px 60px rgba(31,43,45,.26);padding:26px 30px;display:none}
[data-theme="dark"] .cbar{box-shadow:0 24px 60px rgba(0,0,0,.65)}
.cbar.on{display:block;animation:fadeUp .4s cubic-bezier(.2,.75,.25,1)}
.cbar h4{font-family:'Archivo',sans-serif;font-size:19px;font-weight:800;font-variation-settings:'wdth' 106;
  letter-spacing:-.024em;margin:0 0 10px}
.cbar p{font-size:14.5px;color:var(--ink-2);margin:0 0 18px;max-width:70ch}
.cbar .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cbar .row .btn{flex:none}
.copt{display:grid;gap:12px;margin:0 0 20px;padding:18px 20px;background:var(--paper-2);border-radius:var(--r-sm)}
.copt label{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink-2);cursor:pointer}
.copt input{margin-top:3px;accent-color:var(--brand);width:17px;height:17px;flex:none}
.copt b{color:var(--ink);display:block;font-size:14.5px;margin-bottom:2px}
.copt input:disabled{opacity:.55}
@media(max-width:560px){.cbar{left:10px;right:10px;bottom:10px;padding:22px 20px}.cbar .row .btn{width:100%;text-align:center}}

.skfilter{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.skfilter button{background:none;border:1px solid var(--line-2);border-radius:999px;padding:5px 12px;
  font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer;transition:all .15s}
.skfilter button:hover{border-color:var(--ink-2);color:var(--ink)}
.skfilter button.on{background:var(--brand);border-color:var(--brand);color:#F3FBFA}
[data-theme="dark"] .skfilter button.on{color:#0B1F22}
.skmore{color:var(--ink-3)!important;border-style:dashed!important}
.pcard .sk{display:flex;gap:5px;flex-wrap:wrap;margin-top:14px}
.pcard .sk span{font-size:11.5px;background:var(--paper-2);padding:3px 9px;border-radius:999px;color:var(--ink-2)}
.pcard .sk span.hit{background:var(--brand);color:#F3FBFA}
[data-theme="dark"] .pcard .sk span.hit{color:#0B1F22}
.pcard .sk span.v::after{content:" \2713";font-size:10px;opacity:.75}

/* ---- conversazione ---- */
.thread{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--paper-3)}
.thhead{display:flex;gap:14px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);
  background:var(--paper-2)}
.thhead b{font-family:'Archivo',sans-serif;font-size:16px;font-weight:700;font-variation-settings:'wdth' 104}
.thhead span{font-size:12.5px;color:var(--ink-3)}
.thbody{padding:20px;display:grid;gap:14px;max-height:340px;overflow-y:auto}
.msg{max-width:78%;padding:13px 17px;border-radius:16px;font-size:14.5px;line-height:1.55}
.msg.them{background:var(--paper-2);color:var(--ink);border-bottom-left-radius:5px}
.msg.me{background:var(--espresso);color:var(--tx-inv);margin-left:auto;border-bottom-right-radius:5px}
[data-theme="dark"] .msg.me{background:var(--espresso-2)}
.msg .when{display:block;font-size:11px;opacity:.6;margin-top:7px}
.msg.sys{max-width:100%;background:var(--wash);color:#2E5558;font-size:13px;text-align:center;border-radius:10px}
[data-theme="dark"] .msg.sys{color:#9CC7CA}
.thfoot{display:flex;gap:10px;padding:14px 16px;border-top:1px solid var(--line);align-items:flex-end}
.thfoot textarea{flex:1;resize:none;min-height:44px;max-height:120px;padding:12px 15px;font-family:inherit;
  font-size:14.5px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--paper);color:var(--ink)}
[data-theme="dark"] .thfoot textarea{background:var(--paper-2)}
.thfoot textarea:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:transparent}
.thlist{display:grid;gap:9px}
.thitem{display:flex;gap:14px;align-items:center;background:var(--paper-3);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:14px 18px;cursor:pointer;transition:all .15s;text-align:left;width:100%}
.thitem:hover{border-color:var(--brand);transform:translateX(3px)}
.thitem.on{border-color:var(--brand);background:var(--wash)}
.thitem .un{width:20px;height:20px;border-radius:50%;background:var(--brand);color:#F3FBFA;font-size:11px;
  display:grid;place-items:center;font-weight:700;flex:none}
[data-theme="dark"] .thitem .un{color:#0B1F22}

.demoflag{display:flex;gap:14px;align-items:center;background:var(--wash);border:1px solid var(--wash-2);
  border-radius:var(--r-md);padding:16px 20px;margin-bottom:22px;font-size:14px;color:#2E5558;line-height:1.5}
[data-theme="dark"] .demoflag{color:#9CC7CA}
.demoflag i{flex:none;width:22px;height:22px;border-radius:50%;background:#0D8A9E;color:#F3FBFA;
  display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:700;font-family:'Archivo',sans-serif}
.demoflag b{color:#1F3F42}
[data-theme="dark"] .demoflag b{color:#D6F0F0}
.pcard.demo::after{content:"esempio";position:absolute;top:14px;right:14px;font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);background:var(--paper-2);
  padding:3px 9px;border-radius:999px}
.pcard.demo .role{padding-right:70px}

.chi{max-width:70ch}
.chi p{font-size:17.5px;line-height:1.65;color:var(--ink-2);margin-bottom:18px}
.chi p.big{font-size:20px;color:var(--ink)}
.chi h2{font-size:clamp(22px,2.2vw,28px);margin:44px 0 16px;letter-spacing:-.026em}
.face{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-bottom:34px}
.face .ph{width:112px;height:112px;border-radius:30px;background:var(--grad-warm);color:#F3FBFA;flex:none;
  display:grid;place-items:center;font-family:'Archivo',sans-serif;font-size:38px;font-weight:800}
[data-theme="dark"] .face .ph{color:#0B1F22}
.face b{display:block;font-family:'Archivo',sans-serif;font-size:24px;font-weight:800;
  font-variation-settings:'wdth' 106;letter-spacing:-.026em;margin-bottom:6px}
.face span{display:block;font-size:15px;color:var(--ink-2);line-height:1.5}
.face .lk{margin-top:12px;display:flex;gap:14px;flex-wrap:wrap}
.todo{border:1.5px dashed var(--brand);border-radius:var(--r-md);padding:20px 24px;margin:22px 0;
  background:rgba(35,113,123,.05)}
.todo b{display:block;font-family:'Archivo',sans-serif;font-size:14px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--brand);margin-bottom:10px}
.todo ul{margin:0;padding:0;list-style:none;font-size:14.5px;color:var(--ink-2);display:grid;gap:8px}
.todo li{padding-left:22px;position:relative}
.todo li::before{content:"";position:absolute;left:0;top:.55em;width:11px;height:2px;background:var(--brand)}

/* ---- provenienza del dato ---- */
.conta{display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:var(--r-md);
  padding:18px 22px;background:var(--paper-3);margin:0 0 20px;flex-wrap:wrap}
.conta-t{flex:1 1 260px;min-width:0}
.conta-t b{display:block;font-family:'Archivo',sans-serif;font-size:19px;color:var(--ink);margin-bottom:3px}
.conta-t span{font-size:14px;color:var(--ink-3)}
.conta-track{flex:1 1 180px;height:8px;border-radius:99px;background:var(--line-2);overflow:hidden;min-width:120px}
.conta-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand),var(--citron));
  transition:width .6s cubic-bezier(.2,.7,.3,1)}
.srcbox{border:1px solid var(--line);border-radius:var(--r-md);padding:20px 24px;background:var(--paper-3);
  margin:22px 0}
.srcrow{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);
  font-size:14.5px;align-items:baseline}
.srcrow:last-of-type{border-bottom:0}
.srcrow b{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.srcrow span{color:var(--ink)}
.srcnote{font-size:14px;color:var(--ink-2);margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line);line-height:1.55}
.conf{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600}
.conf i{width:34px;height:6px;border-radius:3px;background:var(--paper-2);position:relative;overflow:hidden}
.conf i::after{content:"";position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--ramp)}
.conf.alta i::after{width:100%}.conf.media i::after{width:58%}.conf.bassa i::after{width:28%}
.conf.insufficiente i::after{width:10%}
.curvetab{width:100%;border-collapse:collapse;font-size:14.5px;margin-top:6px}
.curvetab td{padding:9px 0;border-bottom:1px solid var(--line)}
.curvetab td:last-child{text-align:right;font-family:'IBM Plex Sans',sans-serif;font-weight:700;color:var(--ink)}
.curvetab tr:last-child td{border-bottom:0}
@media(max-width:640px){.srcrow{grid-template-columns:1fr;gap:4px}}

/* ---- guida di approfondimento ---- */
.gnav{position:sticky;top:80px;display:grid;gap:3px;align-self:start}
.gnav button{text-align:left;background:none;border:0;padding:9px 13px;border-radius:9px;cursor:pointer;
  font:inherit;font-size:13.5px;color:var(--ink-3);display:flex;gap:11px;align-items:baseline;transition:all .15s;
  line-height:1.35}
.gnav button:hover{background:var(--paper-2);color:var(--ink)}
.gnav button.on{background:var(--espresso);color:var(--tx-inv)}
.gnav em{font-style:normal;font-family:'Archivo',sans-serif;font-weight:800;font-size:11px;opacity:.55;flex:none}
.gbody{max-width:74ch}
.gblock{padding-bottom:44px;margin-bottom:44px;border-bottom:1px solid var(--line)}
.gblock:last-child{border-bottom:0}
.gblock>h2{font-size:clamp(24px,2.5vw,32px);margin-bottom:8px;letter-spacing:-.028em}
.gkick{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  margin-bottom:10px;display:block}
.gblock p{color:var(--ink-2);font-size:16.5px;line-height:1.62;margin-bottom:14px}
.gblock p.lead{font-size:18px;color:var(--ink)}
.glist{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:11px}
.glist li{padding-left:26px;position:relative;color:var(--ink-2);font-size:16px;line-height:1.55}
.glist li::before{content:"";position:absolute;left:0;top:.62em;width:13px;height:2px;border-radius:2px;background:var(--ramp)}
.glist li b{color:var(--ink)}
.gday{display:grid;gap:0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin-bottom:18px}
.gday>div{display:grid;grid-template-columns:110px 1fr 64px;gap:14px;padding:13px 18px;align-items:center;
  border-bottom:1px solid var(--line);font-size:14.5px;background:var(--paper-3)}
.gday>div:last-child{border-bottom:0}
.gday .h{background:var(--paper-2);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.gday b{font-family:'IBM Plex Sans',sans-serif;text-align:right;font-weight:700;color:var(--ink)}
.gsplit{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.gsplit>div{padding:24px 26px;background:var(--paper-3)}
.gsplit>div+div{border-left:1px solid var(--line)}
.gsplit h4{font-size:15px;margin-bottom:14px;font-family:'Instrument Sans',sans-serif;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;font-size:11.5px}
.gsplit .yes h4{color:#1A5A62}.gsplit .no h4{color:var(--brand)}
.gphase{display:grid;grid-template-columns:78px 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--line)}
.gphase b{font-family:'Archivo',sans-serif;font-size:13px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-3)}
.gphase p{margin:0}
.gq{border-left:3px solid var(--brand);padding:4px 0 4px 20px;margin-bottom:20px}
.gq p{font-family:'Archivo',sans-serif;font-size:18px;font-weight:700;font-variation-settings:'wdth' 104;
  color:var(--ink);letter-spacing:-.018em;margin-bottom:6px;line-height:1.35}
.gq span{font-size:14.5px;color:var(--ink-2)}
.gfaq details{border-bottom:1px solid var(--line)}
.gfaq summary{cursor:pointer;list-style:none;padding:16px 34px 16px 0;position:relative;font-size:16.5px;
  font-weight:600;color:var(--ink)}
.gfaq summary::-webkit-details-marker{display:none}
.gfaq summary::after{content:"+";position:absolute;right:6px;top:15px;font-size:20px;color:var(--ink-3);font-weight:400}
.gfaq details[open] summary::after{content:"\2212"}
.gfaq p{padding:0 40px 18px 0;margin:0;color:var(--ink-2);font-size:16px}
@media(max-width:900px){
  .gnav{position:static;grid-auto-flow:column;overflow-x:auto;gap:5px;padding-bottom:6px}
  .gnav button{white-space:nowrap}
  .gsplit{grid-template-columns:minmax(0,1fr)}
  .gnav{min-width:0;max-width:100%}
  .gsplit>div+div{border-left:0;border-top:1px solid var(--line)}
  .gday>div{grid-template-columns:88px 1fr 54px;gap:9px;padding:11px 13px;font-size:13.5px}
  .gphase{grid-template-columns:1fr;gap:6px}
}

h3.side{font-family:'Instrument Sans',sans-serif;font-size:11.5px;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:12px;-webkit-text-fill-color:currentColor;
  background:none;font-variation-settings:normal;letter-spacing:.13em}
.stato{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-inv);
  border:1px solid var(--line-inv);border-radius:var(--r-md);overflow:hidden;margin:30px 0}
.stato>div{background:var(--espresso);padding:24px 22px}
[data-theme="dark"] .stato>div{background:var(--espresso-2)}
.stato b{display:block;font-family:'Archivo',sans-serif;font-size:32px;font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.04em;line-height:1;color:var(--citron)}
.stato span{display:block;font-size:13px;color:var(--tx-inv-2);margin-top:11px;line-height:1.5}
.stato em{display:block;font-style:normal;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(229,249,248,.42);margin-top:9px}
@media(max-width:820px){.stato{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.stato{grid-template-columns:1fr}}

.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--espresso);color:var(--tx-inv);
  padding:13px 22px;border-radius:0 0 var(--r-sm) 0;font-size:14.5px;font-weight:600}
.skip:focus{left:0}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
[aria-current="page"]{color:var(--brand)}

:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.dark :focus-visible{outline-color:var(--citron)}
@keyframes barIn{from{transform:scaleX(0);opacity:0}to{transform:none;opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.grid .bar{transform-origin:left center;animation:barIn .5s cubic-bezier(.2,.75,.25,1) backwards}
.grid .tick,.grid .val{animation:fadeUp .4s ease backwards}
.reveal{animation:fadeUp .5s cubic-bezier(.2,.75,.25,1) backwards}
.pcard,.plan,.fact,.citycard,.relcard{animation:fadeUp .45s cubic-bezier(.2,.75,.25,1) backwards}
@media(prefers-reduced-motion:reduce){
  .grid .bar,.grid .tick,.grid .val,.reveal,.pcard,.plan,.fact,.citycard,.relcard,.hero h1{animation:none!important}
}

@media(max-width:900px){
  .nav .wrap{gap:14px;padding-top:10px;padding-bottom:10px}
  .nav nav{width:100%;margin-left:0;order:3;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;padding-bottom:2px}
  .nav nav::-webkit-scrollbar{display:none}
  .nav nav button{white-space:nowrap;padding:8px 13px;font-size:14px}
  .navsearch{margin-left:auto;order:1}
  #navAuth{order:2;display:flex;gap:8px}
  .themebtn{order:1}
  section{padding:52px 0}
  .hero{padding-top:48px}
  .hero-foot{margin-top:32px;padding-bottom:40px}
  .hero-foot .btn{flex:1;text-align:center;min-width:150px}
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  table td,table th{white-space:normal;min-width:130px}
  .dcard,.panel,.plan,.calc{padding:22px 20px}
  .btn{padding:13px 22px}
  .chip,.savebtn,.linkbtn{min-height:38px;display:inline-flex;align-items:center}
  .banner{font-size:11.5px;line-height:1.5;padding:9px 16px}
  .bannerlink{margin-left:10px;display:inline-block}
  .rband{grid-template-columns:1fr 1fr}
  .repnum{grid-template-columns:1fr 1fr}
  .drawer{border-radius:var(--r-lg) var(--r-lg) 0 0;top:auto;height:92vh;width:100%;
    transform:translateY(100%)}
  .drawer.on{transform:none}
  .pal{padding-top:6vh}
  .palbox{max-height:82vh}
}
@media(max-width:560px){
  .facts,.rband,.repnum,.stats,.citygrid{grid-template-columns:1fr}
  .hero-foot{flex-direction:column;align-items:stretch}
  .hero-foot .btn{width:100%}
  .calc-out{padding:22px 20px}
  .vsbox{border-radius:var(--r-md)}
  .demobtns .btn{width:100%}
  .gate{padding:20px}
  .gate .btn{width:100%;text-align:center}
  .plan .badge{position:static;transform:none;display:inline-block;margin-bottom:14px}
  .plan.pick{transform:none}
  .plan.pick:hover{transform:translateY(-3px)}
}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@media(min-width:1500px){
  .wrap{max-width:1320px}
  body{font-size:17px}
  .row{grid-template-columns:280px 1fr 168px}
  .axhead,.gridrow{grid-template-columns:280px 1fr 168px}
}
@media(min-width:1800px){
  .wrap{max-width:1440px}
  .hero h1{font-size:70px}
}
@media(max-width:1000px){.pool{grid-template-columns:repeat(2,1fr)}.plans{grid-template-columns:1fr}}
@media(max-width:820px){
  .split,.stats,.fgrid,.form{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr 1fr}
  .split>div,.stats>div{padding:22px 0}
  .split>div+div,.stats>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .row{grid-template-columns:1fr;gap:2px}
  .axhead,.gridrow{grid-template-columns:1fr}
  .axhead .ax-r{display:none}
  .val{text-align:left;padding:0 0 4px 8px;display:flex;gap:8px;align-items:baseline}
  .val s{margin-top:0}
  .gloss>div{grid-template-columns:1fr;gap:8px}
  .toolbar{position:static}
  .tb-meta{margin-left:0;width:100%}
  .panel{padding:22px 18px}
  .gate .btn{margin-left:0}
}
@media(max-width:640px){
  .pool{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr}
  .flow>li+li{padding-left:0}
  .wz-body,.wz-top,.wz-foot,.res-main,.res-alt{padding-left:20px;padding-right:20px}
}
/* ===== FX: hero vivo, scheda percentili, logo robot, grafici allo scroll ===== */
.hero-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.hero-fx i{position:absolute;border-radius:50%;will-change:transform}
.hero-fx .b1{width:64vw;height:64vw;right:-20vw;top:-32vw;background:radial-gradient(closest-side,rgba(18,178,193,.36),transparent);animation:fxb1 19s ease-in-out infinite alternate}
.hero-fx .b2{width:46vw;height:46vw;left:-16vw;bottom:-28vw;background:radial-gradient(closest-side,rgba(13,138,158,.24),transparent);animation:fxb2 23s ease-in-out infinite alternate}
.hero-fx .b3{width:32vw;height:32vw;left:40%;top:6%;background:radial-gradient(closest-side,rgba(35,113,123,.17),transparent);animation:fxb3 27s ease-in-out infinite alternate}
@keyframes fxb1{to{transform:translate(-9vw,7vw) scale(1.12)}}
@keyframes fxb2{to{transform:translate(12vw,-6vw) scale(1.18)}}
@keyframes fxb3{to{transform:translate(-8vw,10vw) scale(.86)}}
.hero.off .hero-fx i{animation-play-state:paused}
.hero-fx .spot{position:absolute;inset:0;opacity:0;transition:opacity .5s;
  background-image:radial-gradient(circle at 1px 1px,rgba(18,178,193,.7) 1.2px,transparent 0);background-size:22px 22px;
  -webkit-mask-image:radial-gradient(240px circle at var(--mx,75%) var(--my,35%),#000,transparent 72%);
  mask-image:radial-gradient(240px circle at var(--mx,75%) var(--my,35%),#000,transparent 72%)}
@media(hover:hover){.hero:hover .hero-fx .spot{opacity:1}}

.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:56px;align-items:center}
.hero-grid .hero-txt h1{font-size:clamp(34px,4.1vw,60px);max-width:17ch}
.hcard{position:relative;margin-bottom:56px;padding:20px 22px 18px;border-radius:22px;overflow:hidden;
  background:rgba(250,254,254,.74);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);
  border:1px solid rgba(35,113,123,.22);box-shadow:0 26px 60px -26px rgba(13,138,158,.42),0 1px 0 rgba(255,255,255,.7) inset}
[data-theme="dark"] .hcard{background:rgba(23,34,36,.74);border-color:rgba(18,178,193,.24);
  box-shadow:0 30px 80px -30px rgba(18,178,193,.38),0 1px 0 rgba(229,249,248,.06) inset}
.hc-prog{position:absolute;left:0;top:0;height:2px;width:100%;transform-origin:left;transform:scaleX(0);
  background:linear-gradient(90deg,#23717B,#12B2C1)}
.hc-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.hc-eyebrow{margin:0;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}
.hc-pause{width:28px;height:28px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:var(--ink-3);
  display:grid;place-items:center;cursor:pointer;padding:0}
.hc-pause:hover{color:var(--brand);border-color:var(--brand)}
.hc-pause svg{fill:currentColor}
.hc-roles{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 26px}
.hc-role{font:600 12.5px/1 'Instrument Sans',sans-serif;padding:7px 11px;border-radius:999px;border:1px solid var(--line-2);
  background:transparent;color:var(--ink-2);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.hc-role:hover{border-color:var(--brand);color:var(--brand)}
.hc-role[aria-selected="true"]{background:var(--brand);border-color:var(--brand);color:#F3FBFA}
[data-theme="dark"] .hc-role[aria-selected="true"]{color:#0B1F22}
.hc-plot{position:relative}
.hc-track{position:relative;height:34px}
.hc-track::before{content:"";position:absolute;left:0;right:0;top:16px;height:2px;border-radius:2px;background:var(--line)}
.hc-bar,.hc-ext,.hc-med,.hc-you,.hc-labs span{transition:left .75s cubic-bezier(.2,.75,.25,1),width .75s cubic-bezier(.2,.75,.25,1)}
.hc-bar{position:absolute;top:9px;height:16px;border-radius:5px;background:linear-gradient(90deg,#23717B,#0D8A9E 55%,#12B2C1)}
.hc-ext{position:absolute;top:9px;height:16px;border-radius:0 5px 5px 0;opacity:.55;
  background:repeating-linear-gradient(115deg,#12B2C1 0 3px,transparent 3px 6px)}
.hc-med{position:absolute;top:3px;width:3px;height:28px;margin-left:-1.5px;border-radius:2px;background:var(--ink)}
.hc-you{position:absolute;top:-6px;bottom:-6px;width:2px;margin-left:-1px;background:#12B2C1;border-radius:2px;
  box-shadow:0 0 10px rgba(18,178,193,.9);transition-duration:.18s}
.hc-you span{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--brand)}
.hc-you span::before{content:"tu"}
.hc-labs{position:relative;height:32px;margin-top:4px}
.hc-labs span{position:absolute;transform:translateX(-50%);text-align:center;white-space:nowrap;font-size:12px;
  font-family:'IBM Plex Sans',sans-serif;font-weight:600;color:var(--ink-2);line-height:1.2}
.hc-labs span em{display:block;font-style:normal;font-size:10px;font-weight:500;color:var(--ink-3);font-family:'Instrument Sans',sans-serif}
.hc-labs .l50{color:var(--ink);font-weight:700}
.hc-calc{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center;margin-top:10px;padding-top:16px;border-top:1px solid var(--line)}
.hc-gauge{width:64px;height:64px;overflow:visible}
.hc-gauge .g-bg{fill:#1F2B2D;stroke:rgba(18,178,193,.2);stroke-width:7}
.hc-gauge .g-val{fill:none;stroke:#12B2C1;stroke-width:7;stroke-linecap:round;stroke-dasharray:0 100;
  transform:rotate(-90deg);transform-origin:32px 32px;transition:stroke-dasharray .35s cubic-bezier(.2,.75,.25,1);
  filter:drop-shadow(0 0 3px rgba(18,178,193,.7))}
.hc-in label{display:block;font-size:12.5px;color:var(--ink-2);margin-bottom:8px}
.hc-in input[type=range]{width:100%}
.hc-out{margin:9px 0 0;font-size:14px;line-height:1.45;color:var(--ink-2)}
.hc-out b{color:var(--ink);font-family:'IBM Plex Sans',sans-serif}
.hc-out strong{color:var(--brand)}
.hc-out small{display:block;font-size:12px;color:var(--ink-3);margin-top:2px}
.hc-src{margin:14px 0 0;font-size:11.8px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.hc-src .rel{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 7px;border-radius:999px;font-weight:700;
  color:var(--brand);border:1px solid rgba(35,113,123,.35);cursor:help}
.hc-src .rel i{width:8px;height:8px;border-radius:50%;border:1.5px solid currentColor}
.hc-src .rel.ok i{background:currentColor}
.hc-src .rel.mid i{background:linear-gradient(90deg,currentColor 50%,transparent 50%)}
.hc-src .rel.hi{border-style:dashed}
.hc-src .linkbtn{font-size:12.5px;margin-left:auto}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:8px}.hcard{max-width:560px}.hero-grid .hero-txt h1{max-width:20ch}}
@media(max-width:520px){.hcard{padding:18px 16px 16px;margin-bottom:40px}.hc-src .linkbtn{margin-left:0}}

/* logo robot */
.mark .bot{width:32px;height:32px;flex:none;overflow:visible}
.bot-bg{fill:#1F2B2D}
[data-theme="dark"] .bot-bg{stroke:rgba(18,178,193,.3);stroke-width:1.5}
.bot-ring{fill:none;stroke:#12B2C1;stroke-width:7;transition:filter .3s;animation:fxboot 1.1s cubic-bezier(.2,.75,.25,1) .2s backwards}
@keyframes fxboot{from{stroke-dasharray:0 100;filter:none}60%{filter:drop-shadow(0 0 7px rgba(18,178,193,1))}to{stroke-dasharray:100 0}}
.mark:hover .bot-ring,[data-theme="dark"] header .bot-ring{filter:drop-shadow(0 0 4px rgba(18,178,193,.85))}
.bot-eyes{transition:transform .2s ease-out}
.bot-eyes circle{fill:#E5F9F8;transform-box:fill-box;transform-origin:center;animation:fxblink 7s infinite}
.bot-eyes circle+circle{animation-delay:.02s}
@keyframes fxblink{0%,94%,100%{transform:scaleY(1)}96.5%{transform:scaleY(.12)}}

/* grafici: partono quando entrano nello schermo, dalla mediana verso i lati */
.fxwait .grid .bar,.fxwait .grid .tick,.fxwait .grid .val{animation-play-state:paused}
.grid .bar{animation-duration:.7s}

/* cambio tema con cerchio che si allarga */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
@media(prefers-reduced-motion:reduce){.hero-fx i,.bot-ring,.bot-eyes circle{animation:none!important}.hero-fx .spot{display:none}}
.drawer:not(.on){box-shadow:none}
.hc-labs .l50{top:-58px}
.hc-labs .l50 em{color:var(--brand)}
.hc-plot{margin-top:34px}
.hc-you span{display:none}
.hc-in input[type=range]{background:linear-gradient(90deg,#12B2C1 var(--fill,50%),var(--line-2) var(--fill,50%))}
[data-theme="dark"] .hc-in input[type=range]{background:linear-gradient(90deg,#12B2C1 var(--fill,50%),rgba(229,249,248,.14) var(--fill,50%))}

