:root{--bg:#111;--panel:#1a1a1a;--panel2:#222;--line:#333;--fg:#ddd;--hi:#fff;--accent:#60a5fa;--warn:#f87171}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.45 system-ui,sans-serif}
a{color:var(--accent)}
.app-header{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;align-items:center;padding:1rem;background:var(--panel);border-bottom:1px solid var(--line)}
h1{margin:0;font-size:1.3rem;color:var(--hi)}
.subtitle{margin:.2rem 0 0;font-size:.8rem;opacity:.7}
nav{display:flex;gap:1rem}
main{padding:1rem;max-width:1400px;margin:0 auto}
.controls{display:flex;flex-wrap:wrap;gap:.5rem}
.controls input,.controls select{background:var(--panel2);color:var(--hi);border:1px solid var(--line);border-radius:6px;padding:.6rem .75rem;font:inherit}
.controls input{flex:1 1 260px}
.controls select{flex:0 1 180px}
.count{font-size:.85rem;opacity:.7}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.8rem}
.card h2{margin:0 0 .4rem;font-size:1rem;color:var(--hi);display:flex;align-items:center;gap:.5rem}
.dot{width:.8rem;height:.8rem;border-radius:50%;flex:none;border:1px solid #fff4}
.badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem}
.badge{font-size:.7rem;padding:.1rem .45rem;border-radius:999px;background:var(--panel2);border:1px solid var(--line)}
.badge.high{border-color:var(--warn);color:var(--warn)}
.sec{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;opacity:.6;margin:.5rem 0 .2rem}
ul{margin:0;padding:0;list-style:none}
li{display:flex;justify-content:space-between;gap:.5rem;font-size:.9rem}
li .n{opacity:.6;white-space:nowrap}
.cat{font-style:italic;opacity:.6}
.desc{font-size:.8rem;opacity:.7;margin:.4rem 0 0}
.error{color:var(--warn)}
@media (max-width:520px){.grid{grid-template-columns:1fr}.controls select{flex:1 1 45%}}
