/* DOSINT v13 — visual layer: gradient accent, glass cards, mega-menu, motion */
:root{--a1:#7aa2c8;--a2:#9b8cff;--a3:#4fd1c5;--grad:linear-gradient(120deg,var(--a1),var(--a2) 55%,var(--a3));--ease:cubic-bezier(.2,.8,.2,1);
 --g-inv:#7aa2c8;--g-gam:#e58fb0;--g-soc:#9b8cff;--g-net:#4fd1c5;--g-dat:#e8b86a;--g-crp:#f0a35e;--g-tool:#8fd18f}
[data-theme="light"]{--a1:#2f6296;--a2:#6b52d9;--a3:#128c84}
html{scroll-behavior:smooth}
::selection{background:color-mix(in srgb,var(--a2) 40%,transparent)}
*{scrollbar-width:thin;scrollbar-color:var(--chipb) transparent}

/* gradient text + accent underline */
.h1 em,.hero h1 em,b.big,.brand b{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.h2{letter-spacing:-.02em}
.eyebrow{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* glass cards with gradient edge that follows the cursor */
.fc,.card,.mbox,.dcard,.rep,.sec .fc{position:relative;backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2)}
.fc{background:color-mix(in srgb,var(--panel) 78%,transparent);border-radius:14px;transition:transform .35s var(--ease),border-color .25s,box-shadow .35s}
.fc::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--a2) 70%,transparent),transparent 60%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s;pointer-events:none}
.fc:hover{transform:translateY(-3px);box-shadow:0 18px 50px -20px color-mix(in srgb,var(--a2) 55%,transparent)}
.fc:hover::before{opacity:1}

/* buttons */
.btn{transition:transform .2s var(--ease),box-shadow .25s,background .2s,border-color .2s}
.btn:hover{transform:translateY(-1px)}
.btn.pri,.btn.p,.btn[type=submit]{background:var(--grad);color:#07090d;border-color:transparent;font-weight:600}
.btn.pri:hover,.btn.p:hover{box-shadow:0 8px 28px -8px color-mix(in srgb,var(--a2) 80%,transparent)}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid color-mix(in srgb,var(--a2) 75%,transparent);outline-offset:2px}

/* mega-menu */
.ddp{min-width:0;width:min(1040px,calc(100vw - 48px));max-height:min(78vh,640px);padding:0;border-radius:16px;background:color-mix(in srgb,var(--panel) 97%,transparent);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 30px 90px -20px rgba(0,0,0,.8),0 0 0 1px color-mix(in srgb,var(--a2) 14%,transparent)}
.msearch{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:14px 18px;background:inherit;border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}
.msearch svg{width:18px;height:18px;flex:none;stroke:var(--mut);fill:none;stroke-width:1.8;stroke-linecap:round}
.msearch input:focus-visible{outline:0}
.msearch input{flex:1;background:none;border:0;outline:0;color:var(--ink);font:inherit;font-size:15px;min-width:0}
.msearch kbd{font:11px ui-monospace,Menlo,monospace;color:var(--mut);border:1px solid var(--chipb);border-radius:6px;padding:2px 7px}
.mcols{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 18px;padding:14px 16px 18px}
.mcol{min-width:0}
.mcol .grp{display:flex;align-items:center;gap:8px;margin:10px 6px 6px;color:var(--hue,var(--acc));font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.mcol .grp::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--hue,var(--acc));box-shadow:0 0 10px var(--hue,var(--acc))}
.mcol .m{border-radius:9px;transition:background .15s,color .15s,transform .2s var(--ease)}
.mcol .m:hover{transform:translateX(3px);background:color-mix(in srgb,var(--hue,var(--acc)) 12%,transparent)}
.mcol .m:hover svg{color:var(--hue,var(--acc))}
.mcol .m.on{background:color-mix(in srgb,var(--hue,var(--acc)) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--hue,var(--acc)) 45%,transparent)}
.mcol .m.on svg{color:var(--hue,var(--acc))}
.mcol[hidden],.mcol .m[hidden]{display:none}
@media(max-width:820px){.ddp{width:auto}.mcols{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.mcols{grid-template-columns:1fr}}

/* module entrance + loading shimmer */
.wrap section:not([hidden]){animation:neoIn .45s var(--ease) both}
@keyframes neoIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rep,.dcard{animation:neoIn .4s var(--ease) both}
button[aria-busy=true],.btn.busy{position:relative;overflow:hidden}
button[aria-busy=true]::after,.btn.busy::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.28) 50%,transparent 70%);animation:neoSh 1s linear infinite}
@keyframes neoSh{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

/* image drop zone, stats, profile card polish */
.drop{background:color-mix(in srgb,var(--panel) 70%,transparent);transition:border-color .2s,background .2s,transform .3s var(--ease)}
.drop:hover{transform:translateY(-2px)}
.drop.over{border-style:solid;box-shadow:0 0 0 4px color-mix(in srgb,var(--a2) 18%,transparent)}
.pstats b{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.seg.plat button.on,.seg button.on{background:var(--grad);color:#07090d;font-weight:600}

/* scroll reveal */
.js-rv .rv{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js-rv .rv.in{opacity:1;transform:none}

/* cursor glow */
#neo-glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(closest-side,color-mix(in srgb,var(--a2) 14%,transparent),transparent);opacity:0;transition:opacity .4s;will-change:transform}
#neo-glow.on{opacity:1}
@media(pointer:coarse){#neo-glow{display:none}}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}.js-rv .rv{opacity:1;transform:none}}

/* light theme: calm, single-hue buttons that match the page (no rainbow gradient) */
[data-theme="light"]{--a1:#2f6296;--a2:#3d78b3;--a3:#2f6296;--grad:linear-gradient(var(--acc),var(--acc))}
[data-theme="light"] .btn.pri,[data-theme="light"] .btn.p,[data-theme="light"] .btn[type=submit],[data-theme="light"] .seg button.on,[data-theme="light"] .seg.plat button.on,[data-theme="light"] #as-fab,[data-theme="light"] .as-f button{background:var(--acc);color:#fff;border-color:transparent}
[data-theme="light"] .btn.pri:hover,[data-theme="light"] .btn.p:hover{box-shadow:0 8px 22px -10px rgba(47,98,150,.7)}
[data-theme="light"] .h1 em,[data-theme="light"] .hero h1 em{background:none;-webkit-text-fill-color:currentColor;color:#1d4a77}
[data-theme="light"] b.big,[data-theme="light"] .brand b,[data-theme="light"] .eyebrow,[data-theme="light"] .pstats b{background:none;-webkit-text-fill-color:currentColor;color:var(--acc)}
[data-theme="light"] .fc:hover{box-shadow:0 18px 40px -22px rgba(47,98,150,.45)}
[data-theme="light"] #neo-glow{background:radial-gradient(closest-side,rgba(47,98,150,.10),transparent)}
[data-theme="light"] .mcol .grp{color:color-mix(in srgb,var(--hue,var(--acc)) 80%,#000)}

/* =====================================================================
   v15 polish — calmer type, one radius scale, layered surfaces
   ===================================================================== */
:root{--r-s:8px;--r-m:12px;--r-l:18px;--hi:inset 0 1px 0 rgba(255,255,255,.045);--sh:0 1px 2px rgba(0,0,0,.35),0 12px 32px -16px rgba(0,0,0,.6);--tight:-.02em}
[data-theme="light"]{--hi:inset 0 1px 0 rgba(255,255,255,.9);--sh:0 1px 2px rgba(20,30,50,.06),0 14px 34px -18px rgba(20,40,80,.22)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01"}

/* --- type: sentence case, quieter labels, tighter headings --- */
.pg small,#crumb{font-size:12.5px;letter-spacing:.01em;text-transform:none;font-weight:500;color:var(--mut);margin-bottom:4px}
.pg h1{font-size:clamp(26px,3vw,34px)!important;letter-spacing:var(--tight)!important;text-transform:none!important;font-weight:650;line-height:1.12}
.card>h2:first-child,.ch h2{font-size:17px;text-transform:none!important;letter-spacing:-.01em!important;font-weight:650}
.card>h2:first-child::before,.ch h2::before{display:none}
.card .d,.card>p.d{color:var(--mut);line-height:1.65;max-width:78ch}
label{font-size:12.5px;text-transform:none;letter-spacing:.005em;font-weight:500;margin:0 0 6px;color:var(--mut)}
.eyebrow{font-size:12.5px;letter-spacing:.01em;text-transform:none;font-weight:600;border:0;background:none;padding:0;border-radius:0}
.hero h1{letter-spacing:-.035em;line-height:1.03}
.stat small,.sc small,.hs small{text-transform:none;letter-spacing:.01em;font-size:12.5px}
.mcol .grp,.grp{text-transform:none;letter-spacing:.02em;font-size:12px;font-weight:650}
.tabs button{text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:550}

/* --- surfaces --- */
.card,.fc,.stat div,.hero-d,.dcard,.mbox,.rep .card{border-radius:var(--r-m);box-shadow:var(--hi),var(--sh)}
.card{background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 96%,#fff),var(--panel));border-color:color-mix(in srgb,var(--line) 85%,var(--acc) 15%)}
[data-theme="light"] .card{background:var(--panel)}
.hero-d{border-radius:var(--r-l);box-shadow:var(--hi),var(--sh)}
.hero-d::after{width:420px;height:420px;right:-120px;top:-150px;opacity:.7}
.hero-d::before{content:"";position:absolute;inset:0;background-image:radial-gradient(color-mix(in srgb,var(--ink) 14%,transparent) 1px,transparent 1.2px);background-size:22px 22px;-webkit-mask:linear-gradient(100deg,transparent 40%,#000);mask:linear-gradient(100deg,transparent 40%,#000);pointer-events:none}

/* --- controls --- */
input[type=text],input[type=search],input[type=email],input[type=url],input:not([type]),textarea,select{border-radius:10px;background:var(--inset);border:1px solid var(--line);transition:border-color .15s,box-shadow .15s,background .15s}
input:not([type=checkbox]):not([type=radio]):not([type=file]):hover,textarea:hover,select:hover{border-color:color-mix(in srgb,var(--acc) 45%,var(--line))}
input:not([type=checkbox]):not([type=radio]):focus,textarea:focus,select:focus{border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 22%,transparent);outline:none}
.btn{border-radius:10px;letter-spacing:0;padding:11px 18px;font-weight:600}
.btn:not(.s){background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 86%,#fff),var(--acc));box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 6px 18px -8px color-mix(in srgb,var(--acc) 80%,transparent)}
.btn:not(.s):hover{filter:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 10px 24px -8px color-mix(in srgb,var(--acc) 90%,transparent)}
.btn:not(.s):active{transform:translateY(0);box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}
.btn.s{background:color-mix(in srgb,var(--panel) 60%,transparent);border-color:var(--line);box-shadow:var(--hi)}
.btn.s:hover{background:var(--hov);border-color:color-mix(in srgb,var(--acc) 55%,var(--line))}
[data-theme="light"] .btn:not(.s){background:linear-gradient(180deg,#3a74ad,#2f6296);color:#fff}
.hq .btn,.hq input{height:46px;box-sizing:border-box}

/* module action buttons (Scansione completa, DNS, ...) as a segmented toolbar */
.mt{gap:8px}
.mt button,.grid>button.btn{border-radius:10px}
.seg{border-radius:10px;overflow:hidden;background:var(--inset);border:1px solid var(--line)}
.seg button{transition:background .15s,color .15s}

/* --- sidebar/menu/topbar --- */
.top,.lnav{backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4)}
.ddb{border-radius:10px;box-shadow:var(--hi)}
.ucard,#who{letter-spacing:0}

/* --- landing --- */
.term{border-radius:var(--r-l);box-shadow:var(--hi),0 30px 70px -30px rgba(0,0,0,.8);overflow:hidden}
.term .bar{display:flex;align-items:center;gap:7px;padding:11px 14px}
.term .bar::before{content:"";width:10px;height:10px;border-radius:50%;background:#ff5f57;box-shadow:16px 0 0 #febc2e,32px 0 0 #28c840;margin-right:36px;flex:none}
.term .bar small{margin-left:auto}
.trust span{display:inline-flex;align-items:center;gap:8px}
.sec{padding-top:clamp(56px,8vw,96px)}
.sec .h2{font-size:clamp(26px,3.2vw,38px);letter-spacing:-.03em;line-height:1.1;max-width:22ch}
.sec .sub{max-width:62ch;line-height:1.65}
.chips span,.chip,.mx-chip{border-radius:999px}

/* --- reports --- */
.rk{row-gap:0}
.rk b{color:var(--mut);font-weight:500;padding:9px 14px 9px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.rk span{padding:9px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);word-break:break-word}
.rk .s-ok,.rk .s-warn,.rk .s-bad{font-weight:550}
.rk .s-ok{color:#4fbf8b}.rk .s-warn{color:#e3b04b}.rk .s-bad{color:var(--bad)}
[data-theme="light"] .rk .s-ok{color:#1d8a5b}[data-theme="light"] .rk .s-warn{color:#a8740b}
.rep .card h2{font-size:15px}
.out{border-radius:var(--r-s);border:1px solid var(--line)}
.rnote{border-left:2px solid var(--acc);padding-left:12px;color:var(--mut)}

/* focus + selection that stay visible on every surface */
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px}
.eyebrow{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--acc)}
.seg button.on,.seg.plat button.on{background:var(--acc);color:#07090d;font-weight:650}
[data-theme="light"] .seg button.on,[data-theme="light"] .seg.plat button.on{color:#fff}
@media(max-width:560px){.ddb{min-width:0;padding:8px 10px;gap:6px}.ddb #ddt{display:none}.top{gap:8px}}
