/* Dark, accessible theme with red accent */
:root{
  --bg:#0f1115;
  --panel:#151821;
  --text:#e5e7eb;
  --muted:#9aa0aa;
  --accent:#ef4444;
  --accent-600:#dc2626;
  --border:#222636;
  --good:#22c55e;
  --warn:#f59e0b;
  --crit:#ef4444;
  --blue:#3b82f6;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}

.app-header, .app-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#0f1115,#0f1115cc)}
.app-footer{border-top:1px solid var(--border);border-bottom:none;margin-top:32px}
.brand{display:flex;align-items:center;gap:10px}
.brand strong{font-weight:700}
.actions{display:flex;align-items:center;gap:8px}
.hint{color:var(--muted);font-size:12px}

.container{max-width:1100px;margin:24px auto;padding:0 16px;}
.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;overflow:hidden}
.card h1,.card h2{margin:16px}
.card .sub{margin:0 16px 16px;color:var(--muted)}
.card-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}
.spacer{flex:1}

.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field.switch{justify-content:flex-end}
label{font-size:14px;color:#c9ced6}
input,textarea,select{background:#0b0d12;border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px}
textarea{resize:vertical}
.help{font-size:12px;color:var(--muted)}

.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:#0b0d12;color:var(--text);padding:8px 12px;border-radius:8px;cursor:pointer}
.btn:hover{border-color:#2a3146}
.btn.primary{background:var(--accent);border-color:var(--accent-600);color:white}
.btn.primary:hover{background:var(--accent-600)}
.btn.ghost{background:transparent}
.btn.tiny{padding:4px 8px;font-size:12px}

.alert{margin:12px 16px;padding:10px 12px;border-radius:8px}
.alert.error{background:#3b0d10;color:#fecaca;border:1px solid #7f1d1d}
.alert.info{background:#10243e;color:#c7d2fe;border:1px solid #1e3a8a}

.table-wrap{overflow:auto}
.cve-table{width:100%;border-collapse:collapse}
.cve-table th,.cve-table td{border-bottom:1px solid var(--border);padding:10px;vertical-align:top}
.cve-table tbody tr:hover{background:#121826}
.badge{display:inline-block;font-size:12px;padding:2px 6px;border-radius:999px;background:#2a3146;color:#cbd5e1;border:1px solid #3b445a}
.badge.kev{background:#3b1a1a;border-color:#7f1d1d;color:#fecaca}
.badge.sev.low{background:#1f2937;color:#93c5fd}
.badge.sev.medium{background:#3a2e1a;color:#fde68a}
.badge.sev.high{background:#3b1f1f;color:#fecaca}
.badge.sev.critical{background:#470d0d;color:#fecaca}

.score{position:relative;min-width:100px;height:20px;background:#0b0d12;border:1px solid var(--border);border-radius:999px;display:flex;align-items:center;gap:6px;padding:0 6px}
.score .bar{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--accent),#f87171);border-radius:999px}
.score .mono{position:relative;margin-left:auto;font-size:12px}

.stats{display:flex;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border)}
.stats > div{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.stats strong{font-size:18px}

.empty{padding:16px;color:var(--muted)}
.json-out{padding:0 16px 16px}
.code{background:#0b0d12;border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto}

.history{list-style:none;margin:0;padding:8px 0}
.history li{display:flex;gap:12px;padding:8px 16px;border-top:1px solid var(--border)}
.history li:first-child{border-top:none}
.when{width:200px}
.stack-sample{color:#cbd5e1}
.hstack{display:flex;gap:10px;align-items:center;color:#cbd5e1}

.app-footer{gap:8px;flex-wrap:wrap}

@media (max-width:900px){
  .grid{grid-template-columns:1fr 1fr}
  .when{width:160px}
}
@media (max-width:600px){
  .grid{grid-template-columns:1fr}
  .actions{display:none}
}
