*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--fm);font-size:13px;line-height:1.6;min-height:100vh;overflow-x:hidden;}
body::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.06) 2px,rgba(0,0,0,0.06) 4px);pointer-events:none;z-index:9999;opacity:.35;}
body::after{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(0,212,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,255,.025) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;z-index:0;}
.page{position:relative;z-index:1;}

/* NAV */
nav{display:flex;align-items:center;justify-content:space-between;padding:16px 40px;border-bottom:1px solid var(--border);background:var(--nav-bg);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100;}
.nav-logo{display:flex;align-items:center;gap:10px;font-family:var(--fd);font-size:18px;font-weight:800;color:var(--accent);letter-spacing:-.02em;text-decoration:none;flex-shrink:0;}
.nav-logo img{width:32px;height:32px;border-radius:6px;flex-shrink:0;}
.nav-logo span{color:var(--muted);font-weight:400;}
@media(max-width:400px){.nav-logo-text{display:none;}}
.nav-right{display:flex;align-items:center;gap:10px;}
/* Stato sistema (hidden su mobile) */
.nav-status{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);}
.nav-status .dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:blink 2.5s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}
/* Pulsanti nav */
.nav-btn{background:transparent;border:1px solid var(--border2);border-radius:var(--r);padding:7px 16px;font-family:var(--fm);font-size:11px;color:var(--muted);cursor:pointer;transition:border-color .2s,color .2s;white-space:nowrap;letter-spacing:.05em;text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.nav-btn:hover{border-color:rgba(var(--accent-rgb),.4);color:var(--accent);}
.nav-btn-primary{background:var(--accent);border-color:var(--accent);color:#000;font-weight:600;}
.nav-btn-primary:hover{opacity:.85;color:#000;border-color:var(--accent);}
/* User menu */
.nav-user{position:relative;}
.nav-user-btn{display:flex;align-items:center;gap:8px;background:var(--surf);border:1px solid var(--border2);border-radius:var(--r);padding:6px 12px;cursor:pointer;transition:border-color .2s;}
.nav-user-btn:hover{border-color:rgba(var(--accent-rgb),.4);}
.nav-user-avatar{width:22px;height:22px;border-radius:50%;background:rgba(0,212,255,.15);border:1px solid rgba(0,212,255,.3);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--accent);font-weight:700;flex-shrink:0;}
.nav-user-name{font-size:11px;color:var(--text);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nav-user-arrow{font-size:8px;color:var(--muted);transition:transform .2s;}
.nav-user-btn.open .nav-user-arrow{transform:rotate(180deg);}
.nav-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surf);border:1px solid var(--border2);border-radius:var(--r2);min-width:180px;box-shadow:0 12px 40px rgba(0,0,0,.5);z-index:200;display:none;}
.nav-dropdown.open{display:block;}
.nav-dropdown::before{content:'';position:absolute;top:-5px;right:14px;width:10px;height:10px;background:var(--surf);border-left:1px solid var(--border2);border-top:1px solid var(--border2);transform:rotate(45deg);}
.nav-dd-header{padding:12px 14px;border-bottom:1px solid var(--border);}
.nav-dd-email{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nav-dd-plan{font-size:9px;margin-top:3px;display:inline-block;padding:1px 6px;border-radius:3px;letter-spacing:.06em;}
.nav-dd-plan.free{background:rgba(74,104,128,.15);color:var(--muted);}
.nav-dd-plan.pro{background:rgba(0,212,255,.1);color:var(--accent);border:1px solid rgba(0,212,255,.2);}
.nav-dd-item{display:flex;align-items:center;gap:10px;padding:9px 14px;font-size:12px;color:var(--muted);cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border);}
.nav-dd-item:last-child{border-bottom:none;}
.nav-dd-item:hover{background:rgba(128,128,128,.07);color:var(--text);}
.nav-dd-item.danger:hover{color:var(--red);}
.nav-dd-icon{font-size:13px;width:16px;text-align:center;}
/* Hamburger */
.nav-hamburger{display:none;flex-direction:column;gap:4px;cursor:pointer;padding:6px;background:none;border:none;}
.nav-hamburger span{display:block;width:20px;height:2px;background:var(--muted);border-radius:2px;transition:all .2s;}
.nav-hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
/* Mobile menu */
.nav-mobile{display:none;position:fixed;top:57px;left:0;right:0;background:var(--nav-bg);border-bottom:1px solid var(--border);z-index:99;padding:16px 20px;flex-direction:column;gap:8px;}
.nav-mobile.open{display:flex;}
.nav-mobile-item{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:13px;color:var(--muted);cursor:pointer;border-radius:var(--r);border:1px solid transparent;transition:all .15s;}
.nav-mobile-item:hover,.nav-mobile-item:active{background:rgba(128,128,128,.09);color:var(--text);}
.nav-mobile-item.primary{background:rgba(0,212,255,.08);border-color:rgba(0,212,255,.2);color:var(--accent);}
.nav-mobile-item.danger{color:var(--red);}
.nav-mobile-divider{height:1px;background:var(--border);margin:4px 0;}
.nav-mobile-user{padding:10px 14px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:4px;}
.nav-mobile-user strong{display:block;color:var(--text);font-size:13px;margin-bottom:2px;}

/* HERO */
.hero{max-width:760px;margin:0 auto;padding:80px 24px 60px;text-align:center;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:var(--accent);background:rgba(0,212,255,.06);border:1px solid rgba(0,212,255,.15);border-radius:20px;padding:4px 14px;margin-bottom:28px;letter-spacing:.1em;text-transform:uppercase;}
.hero h1{font-family:var(--fd);font-size:clamp(28px,4.5vw,52px);font-weight:600;color:var(--white);line-height:1.1;letter-spacing:-.02em;margin-bottom:20px;}
.hero h1 em{font-style:normal;color:var(--accent);position:relative;}
.hero h1 em::after{content:'';position:absolute;bottom:4px;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),transparent);border-radius:2px;}
.hero-sub{font-size:15px;color:var(--muted);line-height:1.7;margin-bottom:48px;max-width:500px;margin-left:auto;margin-right:auto;}

/* SEARCH */
.search-wrap{max-width:620px;margin:0 auto;}
.search-bar{display:flex;align-items:center;background:var(--surf);border:1.5px solid var(--border2);border-radius:14px;padding:6px 6px 6px 20px;gap:10px;transition:border-color .2s,box-shadow .2s;}
.search-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,212,255,.08),0 0 40px rgba(0,212,255,.04);}
.search-prefix{font-size:13px;color:var(--muted);white-space:nowrap;user-select:none;}
#urlInput{flex:1;background:transparent;border:none;outline:none;font-family:var(--fm);font-size:14px;color:var(--white);min-width:0;}
#urlInput::placeholder{color:var(--dim);}
.btn-analyze{background:var(--accent);color:var(--bg);border:none;border-radius:10px;padding:12px 24px;font-family:var(--fm);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;display:flex;align-items:center;gap:8px;letter-spacing:.04em;}
.btn-analyze:hover{background:#00eeff;transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,212,255,.3);}
.btn-analyze:active{transform:translateY(0);}
.btn-analyze:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.btn-spinner{width:14px;height:14px;border:2px solid rgba(7,9,13,.3);border-top-color:var(--bg);border-radius:50%;animation:spin .7s linear infinite;display:none;}
@keyframes spin{to{transform:rotate(360deg);}}
.search-hint{margin-top:12px;font-size:11px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:16px;}
.search-hint span::before{content:'✓ ';color:var(--green);}

/* STATS */
.stats-row{display:flex;align-items:center;justify-content:center;gap:40px;margin-top:56px;padding-top:40px;border-top:1px solid var(--border);}
.stat{text-align:center;}
.stat-n{font-family:var(--fd);font-size:26px;font-weight:600;color:var(--white);line-height:1;margin-bottom:4px;}
.stat-n span{color:var(--accent);}
.stat-l{font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;}
.stat-div{width:1px;height:40px;background:var(--border);}

/* REPORT */
#reportSection{display:none;max-width:960px;margin:0 auto;padding:0 24px 80px;}
#reportSection.visible{display:block;}

/* LOADING */
.loading-state{display:none;padding:60px 0;text-align:center;}
.loading-state.active{display:block;}
.loading-orb{width:64px;height:64px;border-radius:50%;border:2px solid var(--border2);border-top-color:var(--accent);animation:spin 1s linear infinite;margin:0 auto 20px;position:relative;}
.loading-orb::after{content:'';position:absolute;inset:6px;border-radius:50%;border:1px solid var(--border);border-bottom-color:rgba(0,212,255,.3);animation:spin 1.5s linear infinite reverse;}
.loading-steps{display:flex;flex-direction:column;gap:8px;}
.loading-step{font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:10px;transition:color .3s;}
.loading-step.done{color:var(--green);}
.loading-step.act{color:var(--accent);}
.step-icon{width:16px;text-align:center;}

/* PRO BANNER */
.pro-banner{display:none;background:linear-gradient(135deg,rgba(240,96,32,.08),rgba(240,96,32,.04));border:1px solid rgba(240,96,32,.25);border-radius:var(--r2);padding:16px 20px;margin-bottom:20px;align-items:center;gap:14px;}
.pro-banner.show{display:flex;}
.pro-icon{font-size:20px;}
.pro-text{flex:1;font-size:13px;color:var(--text);line-height:1.5;}
.pro-text strong{color:var(--orange);}
.btn-pro{background:var(--orange);color:#fff;border:none;border-radius:var(--r);padding:8px 16px;font-family:var(--fd);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .2s;}
.btn-pro:hover{opacity:.85;}

/* TARGET BAR */
.target-bar{display:flex;align-items:center;gap:14px;background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);padding:14px 20px;margin-bottom:20px;}
.target-favicon{width:32px;height:32px;border-radius:var(--r);background:var(--surf2);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.target-url{font-size:13px;color:var(--accent);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.target-pills{display:flex;gap:6px;flex-shrink:0;}
.pill{font-size:10px;padding:2px 9px;border-radius:20px;font-weight:500;letter-spacing:.04em;}
.pill-ok{background:rgba(46,204,113,.1);color:var(--green);border:1px solid rgba(46,204,113,.25);}
.pill-warn{background:rgba(240,165,0,.1);color:var(--yellow);border:1px solid rgba(240,165,0,.25);}
.pill-err{background:rgba(232,64,64,.1);color:var(--red);border:1px solid rgba(232,64,64,.25);}
.pill-info{background:rgba(0,212,255,.08);color:var(--accent);border:1px solid rgba(0,212,255,.2);}

/* SCORE HERO */
.score-hero{display:grid;grid-template-columns:160px 1fr;gap:32px;align-items:center;background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);padding:32px;margin-bottom:20px;position:relative;overflow:hidden;}
.score-hero::before{content:'';position:absolute;top:0;right:0;width:300px;height:300px;background:radial-gradient(circle at top right,rgba(0,212,255,.04),transparent 65%);pointer-events:none;}
.ring-wrap{position:relative;width:140px;height:140px;}
.ring-wrap svg{transform:rotate(-90deg);}
.ring-track{fill:none;stroke:var(--border2);stroke-width:10;}
.ring-fill{fill:none;stroke-width:10;stroke-linecap:round;stroke-dasharray:376.99;stroke-dashoffset:376.99;transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1),stroke .5s ease;}
.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.ring-score{font-family:var(--fd);font-size:38px;font-weight:600;line-height:1;color:var(--white);}
.ring-of{font-size:11px;color:var(--muted);margin-top:2px;}
.score-grade{font-family:var(--fd);font-size:22px;font-weight:600;color:var(--white);letter-spacing:-.01em;margin-bottom:8px;}
.score-summary{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:20px;max-width:460px;}
.score-tags{display:flex;flex-wrap:wrap;gap:6px;}
.score-tag{font-size:11px;padding:3px 10px;border-radius:var(--r);border:1px solid var(--border2);color:var(--muted);background:var(--bg);}
.score-tag.ok{color:var(--green);border-color:rgba(46,204,113,.25);background:rgba(46,204,113,.05);}
.score-tag.warn{color:var(--yellow);border-color:rgba(240,165,0,.25);background:rgba(240,165,0,.05);}
.score-tag.err{color:var(--red);border-color:rgba(232,64,64,.25);background:rgba(232,64,64,.05);}

/* SEC TITLE */
.sec-title{font-size:10px;font-weight:500;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;display:flex;align-items:center;gap:10px;}
.sec-title::after{content:'';flex:1;height:1px;background:var(--border);}

/* CATEGORIES */
.cats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;}
.cat-card{background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);padding:16px;transition:border-color .2s,transform .2s;}
.cat-card:hover{border-color:var(--border2);transform:translateY(-1px);}
.cat-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;}
.cat-icon{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;border:1px solid var(--border);background:var(--surf2);}
.cat-pts{font-family:var(--fd);font-size:20px;font-weight:600;line-height:1;}
.cat-pts-max{font-size:11px;color:var(--muted);}
.cat-name{font-size:11px;color:var(--text);margin-bottom:8px;font-weight:500;}
.cat-bar{height:3px;background:var(--border2);border-radius:2px;overflow:hidden;}
.cat-bar-inner{height:100%;border-radius:2px;width:0;transition:width 1.2s cubic-bezier(.4,0,.2,1);}

/* ISSUES */
.issues-wrap{background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;margin-bottom:20px;}
.issues-head{display:grid;grid-template-columns:10px 1fr 100px 70px 100px;gap:12px;padding:10px 18px;background:var(--bg);border-bottom:1px solid var(--border);font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;}
.issue-row{display:grid;grid-template-columns:10px 1fr 100px 70px 100px;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);align-items:start;transition:background .15s;}
.issue-row:last-child{border-bottom:none;}
.issue-row:hover{background:rgba(128,128,128,.06);}
.sev-line{width:3px;min-height:36px;border-radius:2px;margin-top:3px;}
.sev-critical{background:var(--red);box-shadow:0 0 6px rgba(232,64,64,.4);}
.sev-high{background:var(--orange);}
.sev-medium{background:var(--yellow);}
.sev-low{background:var(--green);}
.sev-pass{background:var(--muted);opacity:.4;}
.issue-title{font-size:13px;font-weight:500;color:var(--white);margin-bottom:4px;line-height:1.3;}
.issue-desc{font-size:12px;color:var(--muted);line-height:1.5;}
.issue-desc code{font-family:var(--fm);background:var(--surf2);padding:1px 5px;border-radius:3px;color:var(--accent);font-size:11px;}
.issue-cat{font-size:11px;color:var(--muted);padding-top:3px;}
.issue-spec{font-size:10px;margin-top:5px;}
.issue-spec a{color:var(--accent2);text-decoration:none;opacity:.7;transition:opacity .2s;}
.issue-spec a:hover{opacity:1;}
.issue-impact{font-family:var(--fm);font-size:12px;font-weight:600;padding-top:3px;}
.impact-high{color:var(--red);}
.impact-med{color:var(--yellow);}
.impact-low{color:var(--green);}
.fix-badge{display:inline-block;font-size:10px;padding:2px 8px;border-radius:var(--r);margin-top:3px;letter-spacing:.04em;font-weight:500;}
.fix-easy{background:rgba(46,204,113,.1);color:var(--green);border:1px solid rgba(46,204,113,.2);}
.fix-medium{background:rgba(240,165,0,.1);color:var(--yellow);border:1px solid rgba(240,165,0,.2);}
.fix-hard{background:rgba(232,64,64,.1);color:var(--red);border:1px solid rgba(232,64,64,.2);}

/* SNIPPETS */
.snippets-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.passed-wrap{background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;margin-bottom:20px;}
.dl-gate{font-size:10px;color:var(--accent);margin-top:3px;letter-spacing:.05em;}
/* ── Citation Analysis ──────────────────────────────────────────── */
.citation-card{background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);padding:20px 24px;margin-bottom:20px;}
.citation-loading-row{display:flex;align-items:center;gap:16px;}
.citation-spinner{width:24px;height:24px;border:3px solid rgba(0,212,255,.15);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0;}
.citation-loading-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px;}
.citation-loading-sub{font-size:11px;color:var(--muted);line-height:1.6;}
.citation-score-row{display:flex;align-items:center;gap:16px;margin-bottom:16px;}
.citation-score-badge{font-family:var(--fm);font-size:28px;font-weight:900;color:var(--accent);min-width:64px;}
.citation-score-label{font-size:13px;font-weight:700;color:var(--text);margin-bottom:3px;}
.citation-score-lang{font-size:10px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;}
.citation-questions{display:flex;flex-direction:column;gap:8px;}
.citation-q{display:flex;align-items:flex-start;gap:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r1);padding:12px 14px;}
.citation-q-icon{font-size:16px;flex-shrink:0;margin-top:1px;}
.citation-q-text{font-size:12px;color:var(--text);line-height:1.5;flex:1;}
.citation-q-sources{font-size:10px;color:var(--muted);margin-top:4px;}
.citation-q-sources a{color:var(--accent);text-decoration:none;}
.citation-q-sources a:hover{text-decoration:underline;}
.citation-failed-msg{font-size:12px;color:var(--muted);padding:8px 0;}
.citation-cta{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--r1);flex-wrap:wrap;}
.citation-cta-urgent{background:rgba(232,64,64,.07);border:1px solid rgba(232,64,64,.25);}
.citation-cta-mid{background:rgba(240,165,0,.07);border:1px solid rgba(240,165,0,.25);}
.citation-cta-good{background:rgba(46,204,113,.07);border:1px solid rgba(46,204,113,.25);}
.citation-cta-icon{font-size:22px;flex-shrink:0;}
.citation-cta>div:nth-child(2){flex:1;min-width:120px;}
.citation-cta-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:3px;}
.citation-cta-sub{font-size:11px;color:var(--muted);line-height:1.5;}
.citation-cta-btn{display:inline-block;padding:8px 18px;border-radius:var(--r);font-family:var(--fm);font-size:12px;font-weight:700;text-decoration:none;background:var(--red);color:#fff;white-space:nowrap;transition:opacity .2s;}
.citation-cta-btn:hover{opacity:.85;}
.citation-cta-btn-ok{background:var(--accent);color:#000;}
/* Hero row — due score affiancati */
.hero-row{display:flex;gap:20px;align-items:stretch;flex-wrap:wrap;}
.hero-row .score-hero{flex:1;min-width:260px;}
.citation-score-hero{flex:1;min-width:260px;background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);padding:24px;display:flex;align-items:center;gap:20px;}
/* Locked (free users) */
.citation-locked{display:flex;align-items:flex-start;gap:14px;padding:4px 0;}
.citation-locked-icon{font-size:28px;flex-shrink:0;opacity:.6;}
.citation-locked-body{flex:1;}
.citation-locked-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:5px;}
.citation-locked-desc{font-size:11px;color:var(--muted);line-height:1.6;margin-bottom:12px;max-width:420px;}
.citation-locked-btn{display:inline-block;padding:8px 18px;border-radius:var(--r);font-family:var(--fm);font-size:12px;font-weight:700;text-decoration:none;background:var(--accent);color:#000;transition:opacity .2s;}
.citation-locked-btn:hover{opacity:.85;}
/* ── /Citation Analysis ─────────────────────────────────────────── */
.badge-cta-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(0,212,255,.04);border:1px solid rgba(0,212,255,.15);border-radius:var(--r2);padding:20px 24px;margin-bottom:20px;flex-wrap:wrap;}
.badge-cta-left{display:flex;flex-direction:column;gap:5px;}
.badge-cta-title{font-size:14px;font-weight:700;color:var(--text);letter-spacing:.02em;}
.badge-cta-desc{font-size:11px;color:var(--muted);line-height:1.6;max-width:420px;}
.badge-cta-btn{background:var(--accent);color:#000;border:none;border-radius:var(--r1);padding:10px 20px;font-family:var(--fm);font-size:12px;font-weight:700;cursor:pointer;letter-spacing:.05em;white-space:nowrap;transition:opacity .15s;flex-shrink:0;}
.badge-cta-btn:hover{opacity:.85;}
.auth-box{background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);padding:32px;width:100%;max-width:400px;position:relative;display:flex;flex-direction:column;gap:14px;}
.auth-close{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;line-height:1;}
.auth-close:hover{color:var(--text);}
.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--surf2);border:1px solid var(--border2);border-radius:var(--r1);padding:11px;font-family:var(--fm);font-size:12px;color:var(--text);text-decoration:none;margin-bottom:4px;transition:border-color .2s;}
.btn-google:hover{border-color:rgba(var(--accent-rgb),.3);}
.auth-divider{display:flex;align-items:center;gap:10px;margin:12px 0;color:var(--dim);font-size:11px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.auth-divider span{color:var(--muted);}
.auth-logo{font-family:var(--fm);font-size:18px;font-weight:700;color:var(--text);}
.auth-headline{font-size:12px;color:var(--muted);margin-top:-6px;}
.auth-url{font-size:13px;color:var(--accent);font-family:var(--fm);}
.auth-tabs{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--r1);overflow:hidden;}
.auth-tab{flex:1;background:none;border:none;padding:8px;font-family:var(--fm);font-size:12px;color:var(--muted);cursor:pointer;transition:background .15s,color .15s;}
.auth-tab-active{background:var(--accent);color:#000;font-weight:700;}
.auth-form{display:flex;flex-direction:column;gap:10px;}
.auth-form input{background:var(--bg);border:1px solid var(--border);border-radius:var(--r1);padding:10px 14px;font-family:var(--fm);font-size:13px;color:var(--text);outline:none;}
.auth-form input:focus{border-color:var(--accent);}
.auth-error{font-size:12px;color:var(--red);min-height:16px;}
.auth-submit{background:var(--accent);color:#000;border:none;border-radius:var(--r1);padding:11px;font-family:var(--fm);font-size:13px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.auth-submit:hover{opacity:.85;}
.auth-fine{font-size:11px;color:var(--muted);text-align:center;}
.passed-row{display:grid;grid-template-columns:18px 1fr 100px;gap:12px;padding:10px 18px;border-bottom:1px solid var(--border);font-size:13px;align-items:center;}
.passed-row:last-child{border-bottom:none;}
.passed-row:hover{background:rgba(46,204,113,.04);}
.passed-check{color:var(--green);font-size:15px;line-height:1;}
.passed-title{color:var(--text);font-weight:500;}
.passed-desc{color:var(--muted);font-size:11px;margin-top:2px;}
.passed-cat{color:var(--muted);font-size:11px;text-align:right;text-transform:uppercase;letter-spacing:.05em;}
.snippet-card{background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;}
.snippet-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border);}
.snippet-lang{font-size:11px;color:var(--accent);display:flex;align-items:center;gap:8px;}
.snippet-issue{color:var(--muted);}
.btn-copy{background:none;border:1px solid var(--border);border-radius:var(--r);padding:3px 10px;font-family:var(--fm);font-size:10px;color:var(--muted);cursor:pointer;transition:all .2s;}
.btn-copy:hover{border-color:var(--accent);color:var(--accent);}
.btn-copy.copied{border-color:var(--green);color:var(--green);}
.snippet-code{padding:16px;font-family:var(--fm);font-size:12px;line-height:1.7;color:var(--text);overflow-x:auto;white-space:pre;tab-size:2;}

/* DOWNLOADS */
.dl-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;}
.dl-card{background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);padding:16px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s;text-decoration:none;}
.dl-card:hover{border-color:rgba(0,212,255,.35);background:rgba(0,212,255,.03);transform:translateY(-1px);}
.dl-icon{width:40px;height:40px;background:rgba(0,212,255,.07);border:1px solid rgba(0,212,255,.15);border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:9px;font-weight:800;color:var(--accent);letter-spacing:-.02em;text-align:center;line-height:1.2;flex-shrink:0;}
.dl-name{font-size:13px;color:var(--white);font-weight:500;margin-bottom:2px;}
.dl-desc{font-size:11px;color:var(--muted);}

/* ERROR */
.error-state{display:none;text-align:center;padding:48px 24px;background:var(--surf);border:1px solid rgba(232,64,64,.2);border-radius:var(--r2);margin-bottom:20px;}
.error-state.show{display:block;}
.error-icon{font-size:36px;margin-bottom:12px;}
.error-title{font-family:var(--fd);font-size:18px;color:var(--red);margin-bottom:8px;}
.error-msg{font-size:13px;color:var(--muted);}

/* ANIMATIONS */
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.anim{opacity:0;}
.anim.in{animation:fadeInUp .5s ease forwards;}

/* FOOTER */
footer{max-width:960px;margin:0 auto;padding:24px 24px 40px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);position:relative;z-index:1;}
footer a{color:var(--accent2);text-decoration:none;}
footer a:hover{color:var(--accent);}

/* RESPONSIVE */
@media(max-width:640px){
  nav{padding:12px 16px;}
  .nav-status{display:none;}
  .nav-right .nav-btn{display:none;}
  .nav-hamburger{display:flex;}
  .hero{padding:50px 20px 40px;}
  .score-hero{grid-template-columns:1fr;text-align:center;}
  .ring-wrap{margin:0 auto;}
  .cats-grid{grid-template-columns:1fr 1fr;}
  .issues-head{display:none;}
  .issue-row{grid-template-columns:10px 1fr;}
  .issue-row>*:nth-child(3),.issue-row>*:nth-child(4),.issue-row>*:nth-child(5){display:none;}
  .stats-row{gap:20px;}
  .dl-row{grid-template-columns:1fr 1fr;}

  /* Contrasto aumentato per uso all'aperto / luce solare */
  
  .hero-sub{font-size:16px;}
  .issue-title{font-size:14px;}
  .issue-desc{font-size:13px;color:#8aacca;}
  .cat-name{color:#9ab8d4;}
  .score-total{font-size:72px;}
}


.cmp-input-row{display:flex;align-items:center;gap:12px;}
.cmp-label{font-size:10px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;width:80px;flex-shrink:0;text-align:right;}
.cmp-bar{flex:1;display:flex;align-items:center;background:var(--surf);border:1.5px solid var(--border2);border-radius:var(--r2);padding:5px 10px 5px 16px;gap:8px;transition:border-color .2s;}
.cmp-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,212,255,.07);}
.cmp-prefix{font-size:12px;color:var(--muted);white-space:nowrap;user-select:none;}
.cmp-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--fm);font-size:13px;color:var(--white);min-width:0;}
.cmp-input::placeholder{color:var(--dim);}
.cmp-badge{font-size:9px;font-weight:700;letter-spacing:.06em;padding:2px 7px;border-radius:3px;border:1px solid;flex-shrink:0;}
.cmp-remove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 4px;transition:color .2s;}
.cmp-remove:hover{color:var(--red);}

/* Scoreboard card */
.cmp-score-card{background:var(--surf);border:1.5px solid var(--border);border-radius:var(--r2);padding:18px 22px;display:flex;align-items:center;gap:16px;position:relative;transition:border-color .3s;}
.cmp-score-card.leader{border-color:var(--accent);background:rgba(0,212,255,.03);}
.cmp-score-card.leader::after{content:'👑 LEADER';position:absolute;top:-1px;right:14px;background:var(--accent);color:#000;font-size:8px;font-weight:800;letter-spacing:.08em;padding:2px 8px;border-radius:0 0 4px 4px;}
.cmp-ring{position:relative;width:56px;height:56px;flex-shrink:0;}
.cmp-ring svg{transform:rotate(-90deg);}
.cmp-ring-score{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:16px;font-weight:700;}
.cmp-site-domain{font-size:14px;font-weight:600;color:var(--white);margin-bottom:3px;}
.cmp-site-url{font-size:10px;color:var(--muted);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px;}
.cmp-site-pills{display:flex;gap:5px;flex-wrap:wrap;}

/* Categoria rows */
.cmp-cat-row{display:grid;gap:0;border-bottom:1px solid var(--border);padding:14px 18px;}
.cmp-cat-row:last-child{border-bottom:none;}
.cmp-cat-row:hover{background:rgba(128,128,128,.06);}
.cmp-cat-name{font-size:11px;font-weight:600;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.cmp-cat-icon{width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;background:var(--surf2);border:1px solid var(--border);}
.cmp-bars-wrap{display:flex;flex-direction:column;gap:6px;}
.cmp-site-bar{display:flex;align-items:center;gap:10px;}
.cmp-site-bar-label{font-size:10px;color:var(--muted);width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;text-align:right;}
.cmp-bar-track{flex:1;height:8px;background:var(--border2);border-radius:4px;overflow:hidden;position:relative;}
.cmp-bar-fill{height:100%;border-radius:4px;transition:width 1s cubic-bezier(.4,0,.2,1);}
.cmp-bar-pct{font-size:11px;font-weight:600;width:38px;text-align:right;flex-shrink:0;}
.cmp-bar-crown{font-size:11px;width:16px;flex-shrink:0;}

/* Issues grid */
.cmp-issues-col{background:var(--surf);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;}
.cmp-issues-col-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;}
.cmp-issue-item{padding:10px 16px;border-bottom:1px solid var(--border);font-size:12px;display:flex;gap:8px;align-items:flex-start;}
.cmp-issue-item:last-child{border-bottom:none;}
.cmp-sev-dot{width:6px;height:6px;border-radius:50%;margin-top:5px;flex-shrink:0;}

@media(max-width:640px){
  .cmp-label{display:none;}

  /* ── Score cards: un unico slot con righe compatte ── */
  #cmpScoreboard{
    background:var(--surf);
    border:1px solid var(--border);
    border-radius:var(--r2);
    overflow:hidden;
    gap:0;
  }
  .cmp-score-card{
    background:transparent;
    border:none;
    border-bottom:1px solid var(--border);
    border-radius:0;
    padding:10px 14px;
    gap:12px;
  }
  .cmp-score-card:last-child{border-bottom:none;}
  .cmp-score-card.leader{background:rgba(0,212,255,.04);}
  .cmp-score-card.leader::after{display:none;}
  .cmp-ring{width:38px!important;height:38px!important;}
  .cmp-ring svg{width:38px!important;height:38px!important;}
  .cmp-ring-score{font-size:12px;}
  .cmp-site-url{display:none;}
  .cmp-site-domain{font-size:12px;margin-bottom:2px;}
  .cmp-site-pills{gap:4px;}

  /* ── Issues grid: 1 colonna per sito, item compatti ── */
  #cmpIssuesGrid{grid-template-columns:1fr!important;}
  .cmp-issue-item{padding:7px 14px;font-size:11px;}
  .cmp-issue-item>div>div:last-child{display:none;}
}
/* ── Nav center ── */
.nav-center{display:flex;align-items:center;gap:4px;}
.nav-link{font-family:var(--fm);font-size:11px;color:var(--muted);text-decoration:none;padding:5px 10px;border-radius:var(--r);transition:all .15s;letter-spacing:.03em;}
.nav-link:hover{color:var(--text);background:var(--surf2);}
.nav-link.active{color:var(--accent);}
@media(max-width:900px){.nav-center{display:none;}}

/* ── Footer ── */
.site-footer{border-top:1px solid var(--border);padding:48px 0 28px;}
.footer-inner{max-width:1100px;margin:0 auto;padding:0 40px;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;margin-bottom:40px;}
.footer-brand .footer-logo{display:inline-flex;align-items:center;font-family:var(--fm);font-size:15px;font-weight:700;color:var(--text);text-decoration:none;margin-bottom:10px;}
.footer-brand .footer-logo span{color:var(--accent);}
.footer-brand p{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:12px;}
.footer-standards{display:flex;flex-wrap:wrap;gap:8px;}
.footer-standards a{font-size:10px;font-family:var(--fm);color:var(--muted);text-decoration:none;border:1px solid var(--border);border-radius:3px;padding:2px 7px;transition:all .15s;}
.footer-standards a:hover{color:var(--accent);border-color:rgba(var(--accent-rgb),.3);}
.footer-col{display:flex;flex-direction:column;gap:10px;}
.footer-col-title{font-family:var(--fm);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;}
.footer-col a{font-size:12px;color:var(--muted);text-decoration:none;transition:color .15s;}
.footer-col a:hover{color:var(--accent);}
.footer-bottom{border-top:1px solid var(--border);padding-top:20px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr;}.footer-inner{padding:0 24px;}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr;}}