:root{
  --bg:#0a0f16; --panel:#121a24; --panel2:#0d141d; --line:#22303f;
  --ink:#e8f1f8; --dim:#8aa0b2; --accent:#3fd9b0; --accent2:#2aa5ff;
  --crit:#ff5d6c; --warn:#ffb648; --ok:#3fd9b0; --info:#6fb6ff;
}
*{box-sizing:border-box}
body{
  margin:0;background:radial-gradient(circle at 12% -8%,#13303a,transparent 42%),
             radial-gradient(circle at 92% 0%,#1b2440,transparent 38%),var(--bg);
  color:var(--ink);font:15px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  min-height:100vh;padding-bottom:40px;
}
header{max-width:900px;margin:0 auto;padding:34px 20px 10px}
header h1{margin:0;font-size:clamp(25px,4.6vw,38px);letter-spacing:-.02em}
header p{margin:7px 0 0;color:var(--dim);max-width:60ch}
header strong{color:var(--ink)}
main{max-width:900px;margin:0 auto;padding:0 20px}
footer{max-width:900px;margin:34px auto 0;padding:0 20px;color:var(--dim);font-size:12.5px}
footer strong{color:var(--ink)}

.intake{background:linear-gradient(160deg,var(--panel),var(--panel2));
  border:1px solid var(--line);border-radius:17px;padding:17px;margin-top:20px}
.tabs{display:flex;gap:7px;margin-bottom:15px;flex-wrap:wrap}
.tab{flex:1;min-width:92px;padding:10px;border:1px solid var(--line);border-radius:11px;
  background:#ffffff07;color:var(--dim);font-weight:700;font-size:13.5px;cursor:pointer}
.tab.active{background:#3fd9b016;border-color:#3fd9b055;color:var(--accent)}
.pane{display:none}.pane.active{display:block}

.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:7px;min-height:168px;padding:22px;border:2px dashed #2d4152;border-radius:14px;
  background:#ffffff04;text-align:center;cursor:pointer;transition:.18s}
.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:#3fd9b00e}
.dropzone b{font-size:16.5px}
.dropzone span{color:var(--dim);font-size:13px}
.dropzone small{color:#6a8296;font-size:11.5px}

button.primary{padding:11px 19px;border:0;border-radius:11px;background:var(--accent);
  color:#04231c;font-weight:800;font-size:14px;cursor:pointer}
button.primary:hover{filter:brightness(1.08)}
button.ghost{width:100%;margin-top:11px;padding:10px;border:1px solid var(--line);
  border-radius:11px;background:#ffffff07;color:var(--dim);cursor:pointer;font-weight:700}

textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;
  background:#070c12;color:var(--ink);font:13px ui-monospace,monospace;resize:vertical}
#analyseText{margin-top:11px}

.cameraWrap{position:relative;border-radius:14px;overflow:hidden;background:#000;
  aspect-ratio:4/3;max-height:62vh}
.cameraWrap video{width:100%;height:100%;object-fit:cover;display:block}
.reticle{position:absolute;inset:16%;border:2px solid #3fd9b0cc;border-radius:16px;
  box-shadow:0 0 0 100vmax #00000070;pointer-events:none;
  animation:pulse 2.1s ease-in-out infinite}
@keyframes pulse{50%{border-color:#3fd9b055}}

.deepToggle{display:flex;align-items:flex-start;gap:9px;margin-top:14px;
  color:var(--dim);font-size:12.5px;cursor:pointer}
.deepToggle em{display:block;color:#6a8296;font-style:normal;font-size:11.5px}
.deepToggle input{margin-top:3px;accent-color:var(--accent)}

.status{margin-top:16px;padding:13px 15px;border:1px solid var(--line);
  border-radius:12px;background:#ffffff07;color:var(--dim);font-size:13.5px}
.status.err{border-color:#ff5d6c55;background:#ff5d6c12;color:#ffb3ba}
.hidden{display:none!important}

.card{margin-top:17px;border:1px solid var(--line);border-radius:17px;
  background:linear-gradient(160deg,var(--panel),var(--panel2));overflow:hidden}
.card>header{max-width:none;margin:0;padding:15px 17px;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.chip{padding:4px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.05em}
.chip.fmt{background:#2aa5ff1c;color:var(--accent2);border:1px solid #2aa5ff3a}
.chip.kind{background:#3fd9b01c;color:var(--accent);border:1px solid #3fd9b03a}
.card>header h2{margin:0;font-size:16.5px;flex:1;min-width:140px}

.verdict{padding:13px 17px;display:flex;align-items:center;gap:11px;font-weight:800}
.verdict.dangerous{background:#ff5d6c18;color:var(--crit);border-bottom:1px solid #ff5d6c33}
.verdict.suspicious{background:#ffb64818;color:var(--warn);border-bottom:1px solid #ffb64833}
.verdict.review{background:#6fb6ff18;color:var(--info);border-bottom:1px solid #6fb6ff33}
.verdict.no_issues_found,.verdict.no_network_target{background:#3fd9b014;color:var(--ok);
  border-bottom:1px solid #3fd9b02e}
.verdict b{font-size:19px}

.body{padding:16px 17px}
.sectitle{margin:19px 0 9px;color:var(--dim);font-size:10.5px;font-weight:900;letter-spacing:.17em}
.sectitle:first-child{margin-top:0}
.summary{font-size:15.5px;margin:0 0 5px}
.action{color:var(--dim);font-size:13.5px;margin:0}

table{width:100%;border-collapse:collapse;font-size:13px}
td{padding:8px 9px;border-bottom:1px solid #1b2733;vertical-align:top;word-break:break-word}
td:first-child{color:var(--dim);width:38%;white-space:nowrap}
tr:last-child td{border-bottom:0}
.mono{font-family:ui-monospace,monospace;font-size:12.5px}

.secret{display:inline-flex;align-items:center;gap:8px}
.secret button{padding:2px 9px;border:1px solid var(--line);border-radius:7px;
  background:#ffffff0a;color:var(--dim);font-size:11px;cursor:pointer}

.finding{display:flex;gap:11px;padding:11px;border-radius:11px;margin-bottom:8px;
  background:#ffffff05;border:1px solid #ffffff0d}
.finding .ic{font-weight:900;font-size:15px;line-height:1.3}
.finding.critical{background:#ff5d6c12;border-color:#ff5d6c33}
.finding.critical .ic{color:var(--crit)}
.finding.warning{background:#ffb64810;border-color:#ffb64830}
.finding.warning .ic{color:var(--warn)}
.finding.info .ic{color:var(--info)}
.finding.good{background:#3fd9b00e;border-color:#3fd9b02a}
.finding.good .ic{color:var(--ok)}
.finding b{display:block;font-size:13.5px;margin-bottom:2px}
.finding span{color:var(--dim);font-size:12.5px}

.hop{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid #1b2733;font-size:12.5px}
.hop:last-child{border-bottom:0}
.hop .n{width:22px;height:22px;flex:0 0 22px;border-radius:50%;background:#1d2b38;
  color:var(--dim);display:grid;place-items:center;font-size:11px;font-weight:800}
.hop .u{flex:1;min-width:0;word-break:break-all;font-family:ui-monospace,monospace}
.hop .s{color:var(--dim);white-space:nowrap}
.hop .note{color:#6a8296;font-size:11.5px;margin-top:3px}
.hop.final .n{background:#3fd9b025;color:var(--accent)}

.dest{padding:12px;border:1px solid var(--line);border-radius:12px;background:#070c12;
  font-family:ui-monospace,monospace;font-size:12.5px;word-break:break-all}
.dest .lbl{color:var(--dim);font-family:inherit;font-size:10.5px;font-weight:900;
  letter-spacing:.14em;display:block;margin-bottom:5px;font-family:ui-sans-serif,system-ui}

.warnbox{margin-top:13px;padding:11px 13px;border-radius:11px;font-size:12.5px;
  background:#ffb64812;border:1px solid #ffb64833;color:#ffd79a}
.warnbox.crit{background:#ff5d6c12;border-color:#ff5d6c33;color:#ffb3ba}

details{margin-top:11px}
summary{cursor:pointer;color:var(--dim);font-size:12.5px}
details pre{margin:9px 0 0;padding:11px;background:#070c12;border:1px solid var(--line);
  border-radius:10px;overflow-x:auto;font-size:11.5px;color:#9fb3c4}
@media(max-width:560px){td:first-child{width:44%}}
