:root { --bg:#0b0d12; --card:#141926; --line:#232c44; --txt:#e8ecf6; --mut:#9aa6c4; --acc:#7aa2ff; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--txt); font:15px/1.6 system-ui, "PingFang SC", "Microsoft YaHei", sans-serif; }
a { color: var(--acc); }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:12px 20px; border-bottom:1px solid var(--line); position:sticky; top:0; background:rgba(11,13,18,.92); }
.brand { font-weight:700; } .brand a { color:var(--txt); text-decoration:none; }
.private { font-size:11px; border:1px solid #6b3; color:#9d6; border-radius:4px; padding:1px 6px; margin-left:8px; }
nav a { color:var(--mut); margin-left:14px; text-decoration:none; } nav a.active, nav .active { color:var(--txt); }
.wrap { max-width:1020px; margin:0 auto; padding:22px 16px 60px; } .wrap.narrow { max-width:560px; }
.search-hero input[type=search] { width:100%; padding:14px 16px; font-size:17px; border-radius:10px; border:1px solid var(--line); background:#0f1420; color:var(--txt); }
.cats { margin:12px 0; display:flex; flex-wrap:wrap; gap:8px; }
.cat { border:1px solid var(--line); border-radius:20px; padding:4px 12px; cursor:pointer; color:var(--mut); font-size:13px; }
.cat.on { background:var(--acc); color:#0b0d12; border-color:var(--acc); }
.filters { display:flex; gap:8px; flex-wrap:wrap; }
.filters input, .filters select { background:#0f1420; color:var(--txt); border:1px solid var(--line); border-radius:8px; padding:8px 10px; }
button { background:var(--acc); border:0; border-radius:8px; padding:9px 16px; font-weight:600; cursor:pointer; }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; margin-top:18px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px; }
.meta { color:var(--mut); font-size:12.5px; }
.tag { display:inline-block; border:1px solid var(--line); border-radius:6px; padding:0 7px; margin:1px 2px; font-size:12px; color:var(--mut); }
pre.raw { white-space:pre-wrap; background:#0f1420; border:1px solid var(--line); border-radius:10px; padding:14px; max-height:520px; overflow:auto; }
pre.small { font-size:12.5px; }
.badge-orig { background:#2c6; color:#06130a; border-radius:5px; padding:1px 8px; font-size:12px; }
.badge-gen { background:#a7f; color:#14092b; border-radius:5px; padding:1px 8px; font-size:12px; }
