:root{
  --bg:#07090c;
  --panel:#0d1118;
  --panel2:#0a0c10;
  --line:rgba(255,255,255,.10);
  --text:rgba(255,255,255,.92);
  --muted:rgba(255,255,255,.62);
  --green:#2ad67c;
  --yellow:#f0c64a;
  --red:#ff4d4d;
}

*{box-sizing:border-box}
html,body{height:100%}
body.bg{
  margin:0;
  background: radial-gradient(1200px 600px at 50% 0%, rgba(255,255,255,.05), transparent 60%), var(--bg);
  color:var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}

a{color:rgba(255,255,255,.90)}
a:visited{color:rgba(255,255,255,.90)}

.wrap{
  width: calc(100% - 48px);
  max-width: none;
  margin: 22px auto 34px auto;
}

.mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;
}

.muted{color:var(--muted)}
.small{font-size:12px}

.header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  padding: 18px 18px;
  border:1px solid var(--line);
  border-radius: 18px;
  background: #000;
  box-shadow: 0 12px 40px rgba(0,0,0,.55);
  gap: 18px;
}

.brand-block{display:flex; flex-direction:column; gap:10px}
.logo-text-big{
  display:block;
  height:auto;
  width:auto;

  /* Responsive scaling */
  max-height: 70px;        /* default max */
  max-width: 320px;        /* prevent ultra-wide stretching */

  object-fit: contain;

  /* Smooth scaling for big screens */
  height: clamp(40px, 6vw, 70px);
}
.byline{font-size:13px; color:var(--muted)}
.tagline{color:rgba(255,255,255,.92); font-weight:600}
.sep{opacity:.55; padding:0 6px}

.codebox{
  margin-top:6px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,0.10);
  border-radius:10px;
  background:#0b0b0b;
  color:#e9e9e9;
  max-height:260px;
  overflow:auto;
  white-space:pre-wrap;
  word-break:break-word;
  font-size:12px;
  line-height:1.35;
}



.captcha-page {
    background: black;
    color: white;
    text-align: center;
}
.logo {
    margin-top: 30px;
    width: 200px;
}
.captcha-title {
    font-size: 2em;
    margin-bottom: 20px;
}
.checkbox{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid #2a2a2a;
  border-radius:10px;
  background:#0b0b0b;
}
.checkbox input{ transform: scale(1.2); }
.muted{ color:#cfcfcf; font-size:0.95rem; }

.header-right-col{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:14px;
  flex-shrink:0;
}

.header-actions{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:6px;
}

.btn{
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color: var(--text);
  border-radius: 12px;
  padding: 10px 14px;
  cursor:pointer;
  font-weight:600;
}

.btn:hover{background: rgba(255,255,255,.09)}
.btn:disabled{opacity:.6; cursor:not-allowed}

.btn.ghost{
  font-size:11px;
  padding:6px 10px;
  text-decoration:none;
  display:inline-block;
}

.pill{
  border:1px solid var(--line);
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 10px;
  color: var(--muted);
  background: rgba(255,255,255,.03);
}

.card{
  margin-top: 16px;
  padding: 16px 16px;
  border:1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  box-shadow: 0 14px 50px rgba(0,0,0,.45);
}

.row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 14px;
}

h2{margin:0; font-size:18px}
.hint{margin-top: 10px; font-size: 12px; color: var(--muted)}

.alerts{margin:14px 0 0 0}
.alert{
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  margin-bottom: 10px;
  background: rgba(255,255,255,.03);
}
.alert.error{border-color: rgba(255,77,77,.35); background: rgba(255,77,77,.08)}
.alert.ok{border-color: rgba(42,214,124,.28); background: rgba(42,214,124,.08)}

.upload{display:flex; flex-direction:column; gap:10px}
.file-native{display:none}

.pickbox{
  border:1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  background: rgba(0,0,0,.18);
}

.pickgrid{
  display:grid;
  grid-template-columns: 1fr 180px;
  gap: 14px;
  align-items:start;
}

.pickright{display:flex; justify-content:flex-end; align-items:flex-start}

.btn-big{
  font-size: 14px;
  padding: 12px 18px;
  border-radius: 14px;
}

.filepick{
  display:flex;
  gap:10px;
  align-items:center;
}

.filebtn{
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color: var(--text);
  border-radius: 12px;
  padding: 10px 14px;
  cursor:pointer;
  font-weight:600;
  user-select:none;
}

.filebtn:hover{background: rgba(255,255,255,.09)}

.filename{
  flex:1;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(0,0,0,.25);
  color: var(--muted);
  overflow:hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.urllegend{
  margin: 10px 0 6px 2px;
  font-size: 12px;
  letter-spacing: .2px;
}

.urlin{
  width: 100%;
  padding: 12px 12px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(0,0,0,.48);
  color: #fff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono","Courier New", monospace;
}

.urlin::placeholder{color: rgba(255,255,255,.45)}


.table{margin-top: 10px; overflow-x:auto}
.tr{
  display:grid;
  grid-template-columns: 160px minmax(80px,1fr) minmax(200px,2fr) minmax(100px,150px) 160px 140px 100px 70px;
  column-gap: 12px;
  align-items:center;
  font-size: 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(255,255,255,.08);
}
.tr.th{
  border-top: none;
  padding-top: 0;
  font-size: 11px;
  color: var(--muted);
}
.break{word-break:break-word}
.tr > div:nth-child(3){ text-align:center; }

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  font-size: 11px;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.badge.benign{border-color: rgba(42,214,124,.35)}
.badge.suspicious{border-color: rgba(240,198,74,.35)}
.badge.likely_malware{border-color: rgba(255,77,77,.35)}
.dot{width:9px; height:9px; border-radius:999px; background: rgba(255,255,255,.35)}
.badge.benign .dot{background: var(--green)}
.badge.suspicious .dot{background: var(--yellow)}
.badge.likely_malware .dot{background: var(--red)}

/* Verdict header: solid-fill badge + confidence pill */
.badge.big{
  font-size: 14px;
  font-weight: 700;
  padding: 8px 18px;
  gap: 0;
  border: none;
  color: #0d1117;
}
.badge.big.benign{background: var(--green); border-color: var(--green)}
.badge.big.suspicious{background: #f0c64a; border-color: #f0c64a; color: #0d1117}
.badge.big.likely_malware{background: var(--red); border-color: var(--red)}
.badge.big.unknown{background: #6e7681; border-color: #6e7681; color: #c9d1d9}
.badge.big .dot{display:none}
.pill.big{
  font-size: 14px;
  font-weight: 700;
  padding: 8px 18px;
  background: #1a6fc4;
  border-color: #1a6fc4;
  color: #fff;
}

.hashlink{
  color: rgba(255,255,255,.92);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.7);
  word-break:break-all;
}
.hashlink:visited{ color: rgba(255,255,255,.92); }
.hashlink:hover  { color: rgba(255,255,255,.92); border-bottom-color: rgba(255,255,255,.4); }
.hashlink:active { color: rgba(255,255,255,.92); }

.footer{
  display:flex;
  justify-content:space-between;
  margin-top: 18px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.10);
  color: var(--muted);
  font-size: 12px;
}

/* responsive */
@media (max-width: 1100px){
  .wrap{width: calc(100% - 24px)}
  .pickgrid{grid-template-columns: 1fr}
  .pickright{justify-content:flex-start}
  .tr{font-size: 11px}
  .tr.th{font-size: 10px}
}

.pager{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top: 12px;
}
/* --- LLM debug box styling --- */
.llm-box{
  background: #0b0f14;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;

  padding: 14px;
  margin-top: 8px;

  max-height: 420px;
  overflow: auto;

  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 13px;
  line-height: 1.45;

  white-space: pre-wrap;        /* allow wrapping */
  word-break: break-word;       /* break long tokens */
  overflow-wrap: anywhere;      /* break super long strings */

  color: #e6edf3;
}
