:root {
  --bg:#080808; --bg2:#0d0d0d;
  --glass:rgba(255,255,255,0.038); --glass-h:rgba(255,255,255,0.065); --glass-b:rgba(255,255,255,0.08);
  --shine:rgba(255,255,255,0.10); --shadow:0 12px 48px rgba(0,0,0,0.7),inset 0 1px 0 var(--shine);
  --text:#f0f0f0; --sub:rgba(240,240,240,0.48); --muted:rgba(240,240,240,0.26);
  --accent:#e8ff47; --accent-dim:rgba(232,255,71,0.12); --accent-glow:rgba(232,255,71,0.28);
  --teal:#00e5c0; --ok:#00e5a0; --ok-dim:rgba(0,229,160,0.12);
  --warn:#ffb800; --warn-dim:rgba(255,184,0,0.12);
  --danger:#ff3b5c; --danger-dim:rgba(255,59,92,0.12);
  --r:14px; --r-sm:8px; --t:0.25s cubic-bezier(0.4,0,0.2,1);
}
[data-theme="light"] {
  --bg:#f2f4f8; --bg2:#e8edf5;
  --glass:rgba(255,255,255,0.55); --glass-h:rgba(255,255,255,0.78); --glass-b:rgba(0,0,0,0.08);
  --shine:rgba(255,255,255,0.9); --shadow:0 4px 24px rgba(0,0,0,0.08),inset 0 1px 0 var(--shine);
  --text:#111; --sub:rgba(17,17,17,0.55); --muted:rgba(17,17,17,0.34);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Manrope',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;}
.icon-png,.icon-inline{display:block;object-fit:contain;flex-shrink:0;}
.icon-inline{width:16px;height:16px;}
.bg-orbs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.orb{position:absolute;border-radius:50%;}
.orb1{width:760px;height:760px;top:-220px;left:-180px;background:radial-gradient(circle at 40% 40%, rgba(232,255,71,0.18) 0%, transparent 65%);filter:blur(96px);}
.orb2{width:620px;height:620px;right:-150px;bottom:-160px;background:radial-gradient(circle at 60% 60%, rgba(0,229,192,0.14) 0%, transparent 65%);filter:blur(84px);}
.orb3{width:420px;height:420px;top:20%;right:22%;background:radial-gradient(circle at 50% 50%, rgba(100,120,255,0.12) 0%, transparent 62%);filter:blur(92px);}
[data-theme="light"] .orb1{background:radial-gradient(circle at 40% 40%, rgba(100,80,255,0.24) 0%, transparent 60%);}
[data-theme="light"] .orb2{background:radial-gradient(circle at 60% 60%, rgba(0,190,230,0.22) 0%, transparent 60%);}
[data-theme="light"] .orb3{background:radial-gradient(circle at 50% 50%, rgba(200,220,40,0.24) 0%, transparent 58%);}
.glass{background:var(--glass);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);border:1px solid var(--glass-b);border-radius:var(--r);box-shadow:var(--shadow);position:relative;overflow:hidden;}
.glass::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--shine),transparent);pointer-events:none;}

nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:min(97%,1060px);height:68px;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-radius:50px;}
.logo{font-family:'Unbounded',sans-serif;font-weight:900;font-size:1.1rem;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:10px;}
.logo-mark{width:34px;height:34px;background:var(--accent);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.logo-mark img{width:18px;height:18px;}
.nav-r{display:flex;gap:8px;align-items:center;}
.icon-btn{width:38px;height:38px;border-radius:10px;background:var(--glass);border:1px solid var(--glass-b);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--sub);transition:all var(--t);backdrop-filter:blur(12px);}
.icon-btn:hover{background:var(--glass-h);color:var(--text);}
.icon-btn img{width:16px;height:16px;}
.back-btn{padding:8px 16px;border-radius:var(--r-sm);font-family:'Manrope',sans-serif;font-size:0.82rem;font-weight:700;background:var(--glass);border:1px solid var(--glass-b);color:var(--text);cursor:pointer;transition:all var(--t);backdrop-filter:blur(12px);text-decoration:none;display:flex;align-items:center;gap:6px;}
.back-btn:hover{background:var(--glass-h);}

main{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:calc(68px + 48px + 32px) 24px 80px;}

.badge{display:inline-flex;align-items:center;gap:7px;background:var(--glass);border:1px solid var(--glass-b);border-radius:40px;padding:5px 14px;font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;backdrop-filter:blur(12px);}
.badge-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);}

h1{font-family:'Unbounded',sans-serif;font-size:clamp(1.8rem,5vw,3.2rem);font-weight:900;letter-spacing:-0.04em;margin-bottom:10px;}
.grad{background:linear-gradient(135deg,var(--accent),var(--teal));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.desc{color:var(--sub);font-size:0.93rem;line-height:1.75;max-width:520px;margin-bottom:36px;}

.upload-zone{padding:36px;margin-bottom:16px;}
.drop-area{width:100%;border:2px dashed var(--glass-b);border-radius:var(--r-sm);padding:48px 24px;text-align:center;cursor:pointer;transition:all var(--t);background:var(--glass);position:relative;}
.drop-area:hover,.drop-area.over{border-color:var(--accent);background:var(--accent-dim);}
.drop-icon{width:52px;height:52px;margin:0 auto 14px;color:var(--muted);transition:color var(--t);}
.drop-area:hover .drop-icon,.drop-area.over .drop-icon{color:var(--accent);}
.drop-icon img{width:100%;height:100%;}
.drop-title{font-family:'Unbounded',sans-serif;font-size:1rem;font-weight:700;margin-bottom:6px;}
.drop-sub{font-size:0.82rem;color:var(--sub);}
.drop-limits{font-size:0.74rem;color:var(--muted);margin-top:8px;}

.file-selected{display:none;margin-top:16px;padding:14px 16px;background:var(--accent-dim);border:1px solid rgba(232,255,71,0.2);border-radius:var(--r-sm);align-items:center;gap:12px;}
.file-selected.show{display:flex;}
.file-sel-icon{width:36px;height:36px;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.file-sel-icon img{width:18px;height:18px;color:#000;}
.file-sel-name{font-family:'JetBrains Mono',monospace;font-size:0.82rem;color:var(--accent);font-weight:500;word-break:break-all;}
.file-sel-size{font-size:0.74rem;color:var(--muted);margin-top:2px;}
.file-sel-rm{margin-left:auto;cursor:pointer;color:var(--muted);transition:color var(--t);flex-shrink:0;}
.file-sel-rm:hover{color:var(--danger);}
.file-sel-rm img{width:16px;height:16px;}

.security-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:24px;}
.sec-note{padding:14px 16px;display:flex;align-items:flex-start;gap:10px;font-size:0.8rem;color:var(--sub);line-height:1.6;}
.sec-note img{width:16px;height:16px;color:var(--ok);flex-shrink:0;margin-top:1px;}

.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:var(--r-sm);font-family:'Manrope',sans-serif;font-size:0.88rem;font-weight:700;cursor:pointer;border:none;text-decoration:none;transition:all var(--t);}
.btn:active{transform:scale(0.97);}
.btn-accent{background:var(--accent);color:#000;box-shadow:0 0 28px var(--accent-glow);}
.btn-accent:hover{transform:translateY(-2px);box-shadow:0 4px 36px var(--accent-glow);}
.btn-accent:disabled{opacity:0.4;cursor:not-allowed;transform:none;}
.btn-ghost{background:var(--glass);border:1px solid var(--glass-b);color:var(--text);backdrop-filter:blur(12px);}
.btn-ghost:hover{background:var(--glass-h);}
.btn-sm{padding:8px 16px;font-size:0.8rem;}

.loading-card{padding:48px;text-align:center;display:none;}
.loading-card.show{display:block;}
.spinner-big{width:60px;height:60px;border:3px solid var(--glass-b);border-top-color:var(--accent);border-radius:50%;animation:spin 0.9s linear infinite;margin:0 auto 20px;}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-title{font-family:'Unbounded',sans-serif;font-size:1rem;font-weight:700;margin-bottom:8px;}
.loading-sub{color:var(--sub);font-size:0.85rem;line-height:1.7;}
.loading-steps{margin-top:20px;display:flex;flex-direction:column;gap:6px;}
.step{display:flex;align-items:center;gap:10px;font-size:0.8rem;color:var(--muted);}
.step.active{color:var(--accent);}
.step img{width:14px;height:14px;flex-shrink:0;}

.result-card{padding:32px;display:none;}
.result-card.show{display:block;}

.res-header{display:flex;align-items:center;gap:16px;padding:20px;border-radius:var(--r-sm);margin-bottom:24px;}
.res-header.safe{background:var(--ok-dim);border:1px solid rgba(0,229,160,0.2);}
.res-header.warning{background:var(--warn-dim);border:1px solid rgba(255,184,0,0.2);}
.res-header.danger{background:var(--danger-dim);border:1px solid rgba(255,59,92,0.2);}
.res-big-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.res-big-icon img{width:28px;height:28px;}
.res-big-icon.safe{background:var(--ok);color:#000;}
.res-big-icon.warning{background:var(--warn);color:#000;}
.res-big-icon.danger{background:var(--danger);color:#fff;}
.res-verdict{font-family:'Unbounded',sans-serif;font-size:1.2rem;font-weight:900;letter-spacing:-0.03em;}
.res-file{font-family:'JetBrains Mono',monospace;font-size:0.78rem;color:var(--sub);margin-top:4px;word-break:break-all;}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px;}
@media(max-width:480px){.stats-row{grid-template-columns:repeat(2,1fr);}}
.stat{background:var(--glass);border:1px solid var(--glass-b);border-radius:var(--r-sm);padding:16px;text-align:center;}
.stat-num{font-family:'Unbounded',sans-serif;font-size:1.6rem;font-weight:900;margin-bottom:4px;}
.stat-num.bad{color:var(--danger);}
.stat-num.warn{color:var(--warn);}
.stat-num.ok{color:var(--ok);}
.stat-lbl{font-size:0.7rem;color:var(--muted);font-weight:600;letter-spacing:0.04em;text-transform:uppercase;}

.engines-section{margin-bottom:20px;}
.engines-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.engines-lbl{font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);}
.filter-btns{display:flex;gap:4px;}
.filter-btn{padding:4px 12px;border-radius:4px;font-size:0.72rem;font-weight:700;cursor:pointer;border:1px solid var(--glass-b);background:var(--glass);color:var(--muted);transition:all 0.18s;}
.filter-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);}

.engines-table{border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--glass-b);}
.eng-row{display:grid;grid-template-columns:1fr 140px 1fr;gap:0;align-items:center;padding:10px 14px;border-bottom:1px solid var(--glass-b);font-size:0.81rem;transition:background 0.15s;}
.eng-row:last-child{border-bottom:none;}
.eng-row:hover{background:var(--glass-h);}
.eng-row.danger-row{background:var(--danger-dim);}
.eng-row.warn-row{background:var(--warn-dim);}
.eng-name{font-weight:600;}
.eng-badge{padding:3px 10px;border-radius:3px;font-size:0.66rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;text-align:center;width:fit-content;}
.eng-badge.malicious{background:var(--danger);color:#fff;}
.eng-badge.suspicious{background:var(--warn);color:#000;}
.eng-badge.harmless{background:var(--ok-dim);color:var(--ok);border:1px solid rgba(0,229,160,0.2);}
.eng-badge.undetected{background:var(--glass-b);color:var(--muted);}
.eng-result{color:var(--sub);font-size:0.76px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.eng-result{font-size:0.76rem;}

.more-btn{width:100%;padding:12px;text-align:center;font-size:0.8rem;color:var(--sub);cursor:pointer;border:none;background:var(--glass-h);font-family:'Manrope',sans-serif;font-weight:600;transition:all 0.18s;}
.more-btn:hover{color:var(--text);}

.res-footer{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;}

.toasts{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:7px;}
.toast{padding:11px 18px;border-radius:var(--r-sm);font-size:0.84rem;font-weight:600;backdrop-filter:blur(20px);border:1px solid var(--glass-b);pointer-events:none;}
.toast.ok{background:var(--ok-dim);border-color:var(--ok);color:var(--ok);}
.toast.err{background:var(--danger-dim);border-color:var(--danger);color:var(--danger);}
