.vul-page{max-width:75rem;margin:0 auto;padding:2.5rem 1.125rem}
.vul-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}
.vul-title{margin:0;font-size:1.4rem;color:var(--fg)}
.vul-title-icon{color:var(--primary);display:inline-flex}
.vul-line{height:1px;flex:1;background:var(--border)}
.vul-muted{font-size:.85rem;color:var(--muted)}

.vul-filters{display:flex;gap:1.25rem;flex-wrap:wrap;margin:1rem 0 1.25rem}
.vul-field{display:grid;gap:.4rem}
.vul-label{font-size:.85rem;color:var(--muted)}
.vul-filters select{
  font-family:"JetBrains Mono", monospace;
  border:1px solid var(--border);
  background:var(--panel);
  color:var(--fg);
  padding:.65rem .8rem;
  border-radius:.9rem;
  outline:none;
  min-width: 10rem;
}

.vul-list{display:grid;gap:1rem;margin-top:.5rem}

.vul-card{
  text-decoration:none;
  color:inherit;
  border:1px solid var(--border);
  background:var(--panel);
  border-radius:1rem;
  padding:1rem;

  transition:
    transform .18s ease,
    background .18s ease,
    border-color .18s ease,
    box-shadow .18s ease;
  will-change: transform;
}

.vul-card:hover{
  background:var(--hover);
  transform:translateY(-4px);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}

.vul-top{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.vul-id{color:var(--primary);font-weight:800}
.vul-date{margin-left:auto;color:var(--muted);font-size:.85rem}

.vul-card-title{margin-top:.55rem;color:var(--fg);font-weight:800;font-size:1.1rem}
.vul-summary{margin-top:.35rem;color:var(--muted);line-height:1.6}

.sev{
  font-size:.75rem;
  padding:.2rem .5rem;
  border-radius:.6rem;
  border:1px solid var(--border);
}

.sev-critical{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.18);color:rgba(239,68,68,.98)}
.sev-high{border-color:rgba(251,146,60,.35);background:rgba(251,146,60,.18);color:rgba(251,146,60,.98)}
.sev-medium{border-color:rgba(255,193,77,.35);background:rgba(255,193,77,.18);color:rgba(255,193,77,.98)}
.sev-low{border-color:rgba(34,197,94,.28);background:rgba(34,197,94,.14);color:rgba(34,197,94,.95)}
.sev-info{border-color:rgba(148,163,184,.25);background:rgba(148,163,184,.10);color:rgba(148,163,184,.9)}
.sev-unk{border-color:rgba(148,163,184,.25);background:rgba(148,163,184,.10);color:rgba(148,163,184,.9)}

.vul-footer{margin-top:1rem}
.vul-empty{
  padding:1.2rem 1rem;
  border:1px dashed var(--border);
  border-radius:1rem;
  color:var(--muted);
}

.vul-id{
  color: var(--primary);
  font-weight: 800;
  font-size: .9rem;
}

/* ===== Vuln View Page (like screenshot) ===== */
.vview{ padding: 2.2rem 1.125rem 4rem; }
.vview-wrap{ max-width: 58rem; margin: 0 auto; }

.vview-back{
  display:inline-flex; gap:.5rem; align-items:center;
  text-decoration:none; color: var(--muted);
  padding:.5rem .75rem; border-radius:.85rem;
}
.vview-back:hover{
  color: var(--fg);
  background: var(--hover);
  box-shadow: 0 0 0 1px var(--border);
}

.vview-top{ margin-top: 1.2rem; display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.vbadge{
  display:inline-flex; align-items:center; gap:.45rem;
  font-size:.78rem;
  padding:.28rem .6rem;
  border-radius:.65rem;
  border:1px solid var(--border);
  background: var(--panel);
  color: var(--fg);
}
.vbadge-id{
  border-color: rgba(34,211,238,.20);
  background: rgba(34,211,238,.08);
  color: rgba(34,211,238,.95);
  font-weight: 800;
}

.vbadge-critical{ border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.18); color: rgba(239,68,68,.98); }
.vbadge-high{     border-color: rgba(251,146,60,.35); background: rgba(251,146,60,.18); color: rgba(251,146,60,.98); }
.vbadge-medium{   border-color: rgba(255,193,77,.35); background: rgba(255,193,77,.18); color: rgba(255,193,77,.98); }
.vbadge-low{      border-color: rgba(34,197,94,.28);  background: rgba(34,197,94,.14);  color: rgba(34,197,94,.95); }
.vbadge-info{     border-color: rgba(148,163,184,.25); background: rgba(148,163,184,.10); color: rgba(148,163,184,.9); }
.vbadge-unk{      border-color: rgba(148,163,184,.25); background: rgba(148,163,184,.10); color: rgba(148,163,184,.9); }

.vview-title{
  margin: .9rem 0 .4rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-size: clamp(2.2rem, 4.2vw, 3.2rem);
  color: var(--fg);
}

.vview-meta{
  margin-top: .35rem;
  display:flex;
  gap: 1.1rem;
  flex-wrap:wrap;
  color: var(--muted);
  font-size: .95rem;
}
.vview-meta .meta{
  display:flex; align-items:center; gap:.45rem;
}
.vview-meta svg{ width:1.05rem; height:1.05rem; opacity:.9; }

.vview-card{
  margin-top: 1.25rem;
  border:1px solid var(--border);
  background: var(--panel);
  border-radius: 1rem;
  padding: 1rem;
}
.vview-card .label{
  color: var(--muted);
  font-size: .85rem;
  margin-bottom: .55rem;
}
.vview-card p{
  margin:0;
  color: var(--fg);
  line-height: 1.65;
}

.vview-body{ margin-top: 1.6rem; }

/* reuse your writeup styling for content */
.vview-body h2{ margin: 1.4rem 0 .65rem; font-size: 1.35rem; color: var(--fg); }
.vview-body p{ margin: 0 0 1rem; color: var(--muted); line-height: 1.7; font-size: .98rem; }

.vview-body pre{
  margin: 0 0 1.2rem;
  border-radius: 1rem;
  border: 1px solid var(--border);
  background: hsl(220 10% 12% / .55);
  overflow: hidden;
}
.vview-body pre code{
  display:block;
  padding: 1rem;
  font-size: .92rem;
  line-height: 1.55;
  color: var(--fg);
  white-space: pre;
  overflow-x: auto;
}

.vview-body img{
  max-width:100%;
  height:auto;
  display:block;
  border-radius: 1rem;
  border: 1px solid var(--border);
  background: var(--panel);
  margin: 1rem 0;
}