:root, [data-theme="dark"] { --bg:#0d1117; --card:#161b22; --card2:#1c2230; --bd:#2a3140; --tx:#e6edf3; --mut:#8b98a8; --acc:#2ea8ff; --acc2:#00e5c0; --ok:#3fb950; --bad:#f85149; color-scheme:dark; }
[data-theme="light"] { --bg:#f4f6fa; --card:#fff; --card2:#f0f3f8; --bd:#dde3ec; --tx:#18202b; --mut:#5d6b7e; --acc:#0b6bcb; --acc2:#00997f; --ok:#1a7f37; --bad:#cf222e; color-scheme:light; }
* { box-sizing:border-box; } html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--tx); font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; min-height:100vh; display:flex; flex-direction:column; }
main { flex:1; padding-bottom:48px; } a { color:var(--acc); } img { max-width:100%; }
.wrap { width:min(1100px,100% - 32px); margin:0 auto; }
.top { background:var(--card); border-bottom:1px solid var(--bd); position:sticky; top:0; z-index:5; }
.bar { display:flex; align-items:center; gap:18px; min-height:58px; flex-wrap:wrap; padding:6px 0; }
.brand { font-weight:800; color:var(--tx); text-decoration:none; letter-spacing:.2px; } .logo { color:var(--acc); }
nav { display:flex; gap:4px; flex-wrap:wrap; flex:1; } nav a { white-space:nowrap; color:var(--mut); text-decoration:none; padding:6px 10px; border-radius:8px; font-size:14px; font-weight:600; }
nav a:hover, nav a[aria-current] { color:var(--tx); background:var(--card2); } nav a[aria-current] { box-shadow:inset 0 -2px 0 var(--acc); }
.hbtn { display:flex; align-items:center; gap:8px; } .lang, .back, .icon { color:var(--mut); font-size:13px; font-weight:700; text-decoration:none; border:1px solid var(--bd); border-radius:8px; padding:5px 9px; background:transparent; cursor:pointer; }
.lang:hover, .back:hover, .icon:hover { color:var(--tx); border-color:var(--acc); }
.hero { padding:36px 0 10px; } .hero h1 { margin:0 0 6px; font-size:clamp(26px,4vw,38px); line-height:1.15; } .hero p { margin:0; color:var(--mut); max-width:62ch; }
.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:12px; margin:22px 0; }
.stat { background:var(--card); border:1px solid var(--bd); border-radius:12px; padding:14px 16px; display:flex; flex-direction:column; } .stat b { font-size:24px; line-height:1.2; } .stat.wide b { font-size:15px; margin-top:7px; } .stat span { color:var(--mut); font-size:13px; }
.filters { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:20px; }
input, select, textarea { font:inherit; color:var(--tx); background:var(--card); border:1px solid var(--bd); border-radius:9px; padding:9px 12px; max-width:100%; } input:focus, select:focus { outline:2px solid var(--acc); outline-offset:1px; }
.filters input[type=search] { flex:1 1 240px; } .url { width:100%; font-family:ui-monospace,monospace; font-size:13px; }
.btn { display:inline-flex; align-items:center; gap:6px; background:var(--acc); color:#fff; border:0; border-radius:9px; padding:9px 16px; font:600 14px inherit; cursor:pointer; text-decoration:none; } .btn:hover { filter:brightness(1.1); }
.btn.ghost { background:transparent; color:var(--tx); border:1px solid var(--bd); } .btn.ghost:hover { border-color:var(--acc); } .btn.danger { background:var(--bad); }
.chk { display:inline-flex; align-items:center; gap:6px; color:var(--mut); font-size:14px; } .chk input { accent-color:var(--acc); }
.list { display:grid; gap:12px; } .item { background:var(--card); border:1px solid var(--bd); border-left:4px solid var(--bd); border-radius:12px; padding:14px 16px; }
.item.sev-critical { border-left-color:#e5484d; } .item.sev-high { border-left-color:#f76b15; } .item.sev-medium { border-left-color:#d9a400; } .item.sev-low { border-left-color:#30a46c; }
.item h2 { font-size:17px; line-height:1.35; margin:8px 0 4px; } .item h2 a { color:var(--tx); text-decoration:none; } .item h2 a:hover { color:var(--acc); } .item p { margin:4px 0 8px; color:var(--mut); font-size:14px; }
.meta { display:flex; flex-wrap:wrap; gap:6px; align-items:center; } .meta h3 { margin:0 8px 0 0; font-size:18px; }
.badge { font-size:11px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; padding:3px 8px; border-radius:6px; color:#fff; background:#6e7a8a; }
.b-critical { background:#e5484d; } .b-high { background:#f76b15; } .b-medium { background:#d9a400; color:#1b1b1b; } .b-low { background:#30a46c; } .b-info { background:#6e7a8a; }
.b-type { background:var(--card2); color:var(--mut); border:1px solid var(--bd); } .b-kev { background:#111; color:#ffb4b4; border:1px solid #e5484d; } .b-partner { background:#c2418a; }
.cve { font:600 12px ui-monospace,monospace; text-decoration:none; } .cvss { position:relative; height:18px; background:var(--card2); border-radius:9px; overflow:hidden; margin:2px 0 8px; max-width:340px; }
.cvss span { position:absolute; inset:0 auto 0 0; } .cvss b { position:relative; font-size:11px; padding-left:9px; line-height:18px; color:#fff; mix-blend-mode:normal; text-shadow:0 1px 2px rgba(0,0,0,.6); }
.cv-c { background:#e5484d; } .cv-h { background:#f76b15; } .cv-m { background:#d9a400; } .cv-l { background:#30a46c; }
.foot { display:flex; flex-wrap:wrap; gap:6px 12px; align-items:center; font-size:12.5px; color:var(--mut); } .tag { color:var(--mut); text-decoration:none; background:var(--card2); padding:1px 8px; border-radius:99px; } .tag:hover { color:var(--acc); }
.pager { display:flex; gap:14px; align-items:center; justify-content:center; margin:26px 0; color:var(--mut); } .empty { color:var(--mut); padding:30px 0; text-align:center; }
.card { background:var(--card); border:1px solid var(--bd); border-radius:14px; padding:22px; margin:26px 0; } .narrow { max-width:720px; margin-inline:auto; } .card h1, .card h3 { margin-top:0; }
.f { display:flex; flex-direction:column; gap:5px; margin:12px 0; font-size:14px; color:var(--mut); } .f input, .f select { color:var(--tx); } .grid2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0 14px; align-items:end; }
fieldset { border:1px solid var(--bd); border-radius:10px; padding:10px 14px; margin:14px 0; display:flex; flex-direction:column; gap:6px; } legend { color:var(--mut); font-size:13px; padding:0 6px; }
.msg { min-height:1.4em; font-size:14px; } .msg.ok, .ok { color:var(--ok); } .msg.err { color:var(--bad); } .muted { color:var(--mut); } .small { font-size:13px; } .hp { position:absolute; left:-9999px; }
.sec { margin:34px 0 12px; } .tools { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; } .tool { background:var(--card); border:1px solid var(--bd); border-radius:14px; padding:18px; display:flex; flex-direction:column; gap:8px; }
.tool p { margin:0; color:var(--mut); font-size:14px; flex:1; } .tool .btn { align-self:flex-start; } .tool img { border-radius:8px; }
pre.code { background:#0b0f14; color:#d6e2f0; padding:14px; border-radius:10px; overflow:auto; font-size:13px; white-space:pre-wrap; }
.site-foot { border-top:1px solid var(--bd); padding:18px 0; color:var(--mut); font-size:13px; display:block; } .site-foot a { color:var(--mut); }
@media (max-width:640px) { .bar { gap:8px; } nav { order:3; flex-basis:100%; } .back { display:none; } }

.cvss span { width:0 } .w0 { width:0% } .w1 { width:10% } .w2 { width:20% } .w3 { width:30% } .w4 { width:40% } .w5 { width:50% } .w6 { width:60% } .w7 { width:70% } .w8 { width:80% } .w9 { width:90% } .w10 { width:100% }
.icon { display:inline-flex; align-items:center; }
.snip { margin:8px 0; border:1px solid var(--line, #8883); border-radius:8px; padding:6px 12px; } .snip summary { cursor:pointer; font-weight:600; } .snip pre { overflow-x:auto; }

.tool .row { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; } .tool .small { font-size:12px; }
dialog.modal { width:min(820px,94vw); max-height:88vh; overflow:auto; background:var(--card); color:var(--tx); border:1px solid var(--bd); border-radius:14px; padding:20px; }
dialog.modal::backdrop { background:rgba(0,0,0,.6); } dialog.modal .mhead { display:flex; justify-content:space-between; align-items:center; gap:12px; } dialog.modal .mhead h3 { margin:0; }
