:root{--bg:#f8fafc;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--accent:#0f766e;--accent2:#14b8a6;--warn:#b45309;--bad:#b91c1c;--good:#166534;--card:#fff}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input{font:inherit}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.brand{display:flex;gap:10px;align-items:center;font-weight:800}.mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--ink);color:#fff;font-size:13px}.privacy-badge{font-size:12px;color:var(--good);background:#f0fdf4;padding:8px 10px;border-radius:999px}.wrap{width:min(1120px,92vw);margin:auto}.hero{display:grid;grid-template-columns:1.5fr .7fr;gap:36px;align-items:end;padding:70px 0 38px}.eyebrow{font-size:12px;letter-spacing:.14em;font-weight:800;color:var(--accent);margin:0 0 10px}.hero h1{font-size:clamp(38px,6vw,68px);line-height:.98;letter-spacing:-.045em;margin:0}.hero h1 span{color:var(--accent)}.lead{font-size:19px;line-height:1.6;color:#475569;max-width:760px}.hero-card{background:#0f172a;color:white;padding:25px;border-radius:22px}.hero-card p{color:#cbd5e1;line-height:1.55;margin-bottom:0}.upload-card,.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 12px 30px rgba(15,23,42,.05)}.dropzone{border:2px dashed #99f6e4;background:#f0fdfa;border-radius:18px;padding:48px 20px;text-align:center;transition:.2s}.dropzone.drag{border-color:var(--accent);background:#ccfbf1;transform:scale(1.005)}.upload-icon{font-size:30px}.dropzone h2{margin:8px 0 4px}.dropzone p{color:var(--muted)}button{border:0;border-radius:12px;padding:11px 16px;cursor:pointer;font-weight:750}.primary{background:var(--accent);color:white}.secondary{background:#e6fffb;color:#115e59}.ghost{background:#f1f5f9;color:#475569}.ghost:disabled{opacity:.45}.actions-row{display:flex;gap:10px;justify-content:center;margin-top:14px}.fineprint{font-size:12px;color:var(--muted);text-align:center;margin:16px 0 0}.progress{display:flex;gap:12px;justify-content:center;align-items:center;padding:34px}.spinner{width:20px;height:20px;border:3px solid #cbd5e1;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.results{padding:54px 0}.section-title{display:flex;align-items:end;justify-content:space-between;gap:20px}.section-title h2{font-size:34px;margin:0 0 22px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.stats article{background:#0f172a;color:white;border-radius:18px;padding:20px}.stats span{display:block;font-size:32px;font-weight:900}.stats small{color:#cbd5e1}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.panel{margin-bottom:14px}.panel h3{margin-top:0}.issue{border-left:4px solid var(--warn);background:#fffbeb;border-radius:10px;padding:12px 14px;margin:10px 0}.issue.high{border-left-color:var(--bad);background:#fef2f2}.issue.good{border-left-color:var(--good);background:#f0fdf4}.issue strong{display:block;margin-bottom:4px}.issue p{margin:0;color:#475569;font-size:14px}.amount-row,.doc-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.amount-row:last-child,.doc-row:last-child{border-bottom:0}.amount-row strong{white-space:nowrap}.muted{color:var(--muted);font-size:13px}.summary-panel{border-color:#99f6e4}.summary-panel p{font-size:18px;line-height:1.65}.how{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:18px 0 60px}.how div{padding:22px}.how span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#ccfbf1;color:#115e59;font-weight:900}.how p{color:var(--muted);line-height:1.5}footer{text-align:center;padding:28px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.linkbtn{padding:0;background:none;color:var(--accent);text-decoration:underline}.modal-close{position:absolute;right:14px;top:12px;background:#f1f5f9}.modal-close+div{padding-top:20px}dialog{width:min(680px,90vw);border:0;border-radius:20px;padding:28px;box-shadow:0 25px 80px rgba(15,23,42,.25)}dialog::backdrop{background:rgba(15,23,42,.55)}
@media(max-width:760px){.privacy-badge{display:none}.hero{grid-template-columns:1fr;padding-top:42px}.hero-card{display:none}.lead{font-size:16px}.stats{grid-template-columns:1fr 1fr}.grid-2,.how{grid-template-columns:1fr}.section-title{align-items:flex-start;flex-direction:column}.section-title button{margin-bottom:18px}.dropzone{padding:34px 12px}.actions-row{flex-wrap:wrap}}
@media print{.topbar,.upload-card,.how,footer,.section-title button{display:none!important}.results{display:block!important;padding:0}.wrap{width:100%}.panel{break-inside:avoid;box-shadow:none}.hero{padding:20px 0}.hero-card{display:none}.stats article{color:#000;background:#fff;border:1px solid #ddd}.stats small{color:#555}}
.fact-row{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line);align-items:flex-start}.fact-row:last-child{border-bottom:0}.fact-row>div{display:grid;gap:3px}.fact-row span,.fact-row small{font-size:12px;color:var(--muted)}.fact-row b{white-space:nowrap;font-size:18px}.more-amounts{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.more-amounts summary{cursor:pointer;color:var(--accent);font-weight:750;margin-bottom:8px}
.issue.info{border-left-color:#0369a1;background:#f0f9ff}.issue.info p{color:#334155}

.engine-error{color:#b91c1c;font-weight:800}

.result-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.result-actions button{white-space:nowrap}
@media(max-width:700px){.result-actions{width:100%;justify-content:flex-start}.result-actions button{flex:1}}
.doc-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:250px}.doc-actions small{color:var(--muted);font-weight:700}.doc-actions em{font-size:11px;color:var(--muted);font-style:normal;max-width:190px;text-align:right}.doc-btn{display:inline-block;text-decoration:none;border-radius:10px;padding:8px 11px;background:#0f766e;color:#fff;font-size:12px;font-weight:800;white-space:nowrap}.doc-btn.secondary-link{background:#e6fffb;color:#115e59}.raw-note{font-size:12px;color:var(--muted);line-height:1.45;margin:2px 0 8px}.raw-amount span{display:grid;gap:2px}.raw-amount span b{font-size:11px;color:#b45309}.raw-amount span small{font-size:12px;color:var(--muted)}
@media(max-width:760px){.doc-row{align-items:flex-start;flex-direction:column}.doc-actions{min-width:0;justify-content:flex-start;width:100%}.doc-actions em{text-align:left}}

.scope-editor{display:grid;gap:4px;margin-top:9px;max-width:560px}.scope-editor span{font-size:12px;font-weight:700}.scope-editor input{width:100%;box-sizing:border-box;border:1px solid #cfd7d3;border-radius:8px;padding:8px 10px;font:inherit;background:#fff}.scope-editor small{font-size:11px;color:#68736e;line-height:1.3}.doc-main{min-width:0;flex:1}.doc-row{align-items:flex-start}

.scope-auto{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin-top:9px;max-width:620px;padding:9px 11px;border:1px solid #cfe3dd;border-radius:10px;background:#f7fbfa}.scope-auto span{font-size:11px;font-weight:800;color:#52605b;text-transform:uppercase;letter-spacing:.03em}.scope-auto strong{grid-column:1;font-size:14px}.scope-auto small{grid-column:1;font-size:11px;color:#68736e}.scope-auto .scope-edit-btn{grid-column:2;grid-row:1/4;align-self:center;border:0;border-radius:8px;padding:7px 10px;background:#e6fffb;color:#115e59;font-weight:800;cursor:pointer}.scope-auto.bassa{border-color:#f3d3a5;background:#fffaf2}.scope-editor[hidden]{display:none!important}

/* Rifinitura premium del risultato */
.technical-notes{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.technical-notes summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:800}.technical-notes-body{margin-top:8px}.issue.compact{padding:9px 11px;margin:7px 0}.issue.compact strong{font-size:13px}.issue.compact p{font-size:12px;line-height:1.45}.stats article{position:relative;overflow:hidden}.stats article:after{content:"";position:absolute;right:-12px;top:-18px;width:66px;height:66px;border-radius:50%;background:rgba(255,255,255,.045)}.fact-row b{font-variant-numeric:tabular-nums}.panel h3{letter-spacing:-.015em}.summary-panel{background:linear-gradient(135deg,#ffffff,#f0fdfa)}

/* V24: rifinitura lessicale finale */
.privacy-badge{font-weight:700}.scope-auto.bassa .scope-edit-btn{background:#fff7ed;color:#9a3412}.technical-notes summary:hover,.more-amounts summary:hover{color:var(--accent)}

/* V41 sandbox commerciale */
.payment-notice{margin:0 0 22px;padding:14px 16px;border:1px solid #99f6e4;border-radius:14px;background:#f0fdfa;color:#115e59;font-weight:750;line-height:1.45}.payment-notice.warn{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.payment-notice.bad{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.pricing-section{margin:0 0 28px;padding:26px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 30px rgba(15,23,42,.05)}.pricing-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:20px}.pricing-head h2{margin:0 0 8px;font-size:clamp(27px,4vw,38px);letter-spacing:-.035em}.pricing-head p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.55}.sandbox-pill{white-space:nowrap;font-size:11px;font-weight:900;letter-spacing:.05em;color:#7c2d12;background:#ffedd5;border:1px solid #fed7aa;border-radius:999px;padding:8px 10px}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.price-card{display:flex;flex-direction:column;min-height:310px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#f8fafc}.price-card.featured{border-color:#5eead4;background:linear-gradient(180deg,#f0fdfa,#fff);box-shadow:0 14px 35px rgba(15,118,110,.10)}.price-kicker{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--accent)}.price-card h3{margin:8px 0 4px;font-size:21px}.price{font-size:34px;font-weight:900;letter-spacing:-.04em}.price small{font-size:14px;letter-spacing:0;color:var(--muted)}.price-note{margin:2px 0 8px;color:var(--muted);font-size:12px}.price-card ul{padding-left:20px;margin:12px 0 22px;color:#475569;line-height:1.65}.price-btn{margin-top:auto;width:100%}.price-btn[disabled]{opacity:.65;cursor:wait}.pricing-footnote{margin:16px 0 0;color:var(--muted);font-size:11px;line-height:1.5;text-align:center}
@media(max-width:820px){.pricing-head{flex-direction:column}.sandbox-pill{white-space:normal}.pricing-grid{grid-template-columns:1fr}.price-card{min-height:0}}
@media print{.pricing-section,.payment-notice{display:none!important}}

button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #0f766e;outline-offset:3px}

.recovery-actions{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:12px}.recovery-actions .linkbtn{font-weight:800}.recovery-form{display:grid;gap:10px;margin-top:14px}.recovery-form input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit}.recovery-form button{justify-self:start}.recovery-code{display:block;overflow-wrap:anywhere;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}.recovery-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
