/* ============================================================
   QUESTIONARIO — overlay a schermo intero, una domanda alla volta
   ============================================================ */
.qz{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;background:var(--bg);color:var(--text);opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility .45s}
.qz.open{opacity:1;visibility:visible}
body.qz-lock{overflow:hidden}
.qz::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(800px circle at 85% 10%,var(--accent-soft),transparent 60%)}

.qz-top{position:relative;display:flex;justify-content:space-between;align-items:center;height:68px;padding:0 clamp(16px,4.5vw,64px);border-bottom:1px solid var(--line)}
.qz-brand{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.qz-close{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:var(--text-muted);font-size:18px;cursor:pointer;transition:color .3s var(--ease),border-color .3s var(--ease)}
.qz-close:hover{color:var(--text);border-color:var(--text)}
.qz-bar{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--accent);transition:width .6s var(--ease)}

.qz-stage{position:relative;flex:1;overflow-y:auto;display:flex}
.qz-slide{width:100%;max-width:760px;margin:auto;padding:48px clamp(16px,4.5vw,40px) 120px}
.qz-num{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--accent)}
.qz-q{font-family:'Clash Display',sans-serif;font-weight:500;font-size:clamp(1.7rem,3.6vw,2.7rem);line-height:1.12;letter-spacing:-.015em;margin-top:14px}
.qz-hint{margin-top:12px;font-size:15.5px;line-height:1.55;color:var(--text-muted)}

.qz-opts{display:grid;gap:10px;margin-top:32px}
.qz-opts.cols{grid-template-columns:1fr 1fr}
.qz-opt{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 16px;border-radius:4px;border:1px solid var(--line-2);background:color-mix(in srgb,var(--card) 70%,transparent);color:var(--text);font:inherit;font-size:15.5px;cursor:pointer;transition:border-color .25s var(--ease),background-color .25s var(--ease),transform .25s var(--ease)}
.qz-opt:hover{border-color:color-mix(in srgb,var(--accent) 70%,transparent)}
.qz-opt:active{transform:scale(.99)}
.qz-opt kbd{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:3px;border:1px solid var(--line-2);font-family:var(--mono);font-size:11.5px;color:var(--text-muted);transition:all .25s var(--ease)}
.qz-opt small{display:block;margin-top:2px;font-size:13px;color:var(--text-dim)}
.qz-opt .tick{margin-left:auto;opacity:0;color:var(--accent);transition:opacity .2s}
.qz-opt[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.qz-opt[aria-pressed="true"] kbd{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.qz-opt[aria-pressed="true"] .tick{opacity:1}

.qz-input{width:100%;margin-top:32px;padding:10px 0;border:none;border-bottom:1px solid var(--line-2);background:transparent;color:var(--text);font:inherit;font-family:'Clash Display',sans-serif;font-size:clamp(1.4rem,2.6vw,1.9rem);outline:none;transition:border-color .3s var(--ease)}
.qz-input:focus{border-color:var(--accent)}
.qz-input::placeholder{color:var(--text-dim)}
textarea.qz-input{font-family:'Satoshi',sans-serif;font-size:1.15rem;line-height:1.55;min-height:130px;resize:vertical}
.qz-count{margin-top:8px;font-family:var(--mono);font-size:11px;color:var(--text-dim);text-align:right}

.qz-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:30px}
.qz-enter{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.qz-enter b{font-weight:500;color:var(--text-muted)}
.qz-err{margin-top:16px;font-size:14px;color:var(--accent-ink);min-height:1.4em}
.qz-note{margin-top:22px;font-size:13px;line-height:1.55;color:var(--text-dim);max-width:52ch}
.qz-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.qz-nav{position:absolute;right:clamp(16px,4.5vw,64px);bottom:22px;display:flex;gap:6px}
.qz-nav button{width:40px;height:40px;border-radius:3px;border:1px solid var(--line-2);background:var(--card);color:var(--text);cursor:pointer;font-size:15px;transition:border-color .3s var(--ease),opacity .3s}
.qz-nav button:hover:not(:disabled){border-color:var(--accent)}
.qz-nav button:disabled{opacity:.35;cursor:default}

/* intro */
.qz-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:22px}
.qz-meta span{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim)}
.qz-meta span::before{content:'+ ';color:var(--accent)}

/* caricamento */
.qz-load{text-align:center;display:flex;flex-direction:column;align-items:center}
.qz-ring{width:84px;height:84px;border-radius:50%;border:1px solid var(--line-2);border-top-color:var(--accent);animation:qzspin 1s linear infinite}
.qz-steps{list-style:none;margin-top:36px;display:grid;gap:12px;text-align:left}
.qz-steps li{display:flex;align-items:center;gap:12px;font-size:15.5px;color:var(--text-dim);transition:color .4s var(--ease)}
.qz-steps li::before{content:'';width:8px;height:8px;border-radius:50%;border:1px solid var(--line-2);flex:none;transition:all .4s var(--ease)}
.qz-steps li.on{color:var(--text)}
.qz-steps li.on::before{background:var(--accent);border-color:var(--accent)}

/* risultato */
.qz-kpis{display:grid;grid-template-columns:repeat(3,1fr);margin-top:34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.qz-kpis div{padding:22px 18px 22px 0}
.qz-kpis div + div{padding-left:18px;border-left:1px solid var(--line)}
.qz-kpis b{display:block;font-family:'Clash Display',sans-serif;font-weight:600;font-size:clamp(1.7rem,3.4vw,2.6rem);color:var(--accent);letter-spacing:-.02em}
.qz-kpis span{display:block;margin-top:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}
.qz-list{list-style:none;margin-top:26px}
.qz-list li{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.qz-list li span{font-family:var(--mono);font-size:12px;color:var(--accent)}
.qz-list li em{font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--text-dim);white-space:nowrap}

@media(max-width:640px){
  .qz-opts.cols{grid-template-columns:1fr}
  .qz-kpis{grid-template-columns:1fr}
  .qz-kpis div + div{padding-left:0;border-left:none;border-top:1px solid var(--line)}
  .qz-enter{display:none}
  .qz-slide{padding-top:32px}
}
@media (prefers-reduced-motion:reduce){ .qz-ring{animation-duration:3s} }
.qz-slide:focus{outline:none}
