:root{--bg:#0b0d12;--panel:#141821;--line:#232a36;--text:#e8ecf3;--muted:#8b95a7;--brand:#7c5cff;--ok:#22c55e;--bad:#f97316;--unk:#94a3b8;--warn:#eab308;--r:14px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Inter,sans-serif}
a{color:#b4a3ff;text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.top{position:sticky;top:0;z-index:5;background:rgba(11,13,18,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.logo{font-size:20px;color:var(--text);font-weight:600;letter-spacing:-.02em}.logo b{color:var(--brand)}
.nav nav{display:flex;gap:18px;overflow-x:auto;white-space:nowrap}.nav nav a{color:var(--muted);font-size:14px}.nav nav a:hover{color:var(--text)}
h1{font-size:clamp(28px,5vw,46px);line-height:1.1;letter-spacing:-.03em;margin:.6em 0 .3em}
h2{font-size:22px;margin:1.8em 0 .6em;letter-spacing:-.01em}h3{font-size:16px;margin:.5em 0 .2em;line-height:1.35}
.lead{font-size:18px;color:#c7cedb;max-width:720px}.muted,.meta{color:var(--muted);font-size:14px}
.hero{padding:30px 0 10px}
.stats{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}
.stat{flex:1 1 180px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.stat b{display:block;font-size:30px;letter-spacing:-.02em}.stat span{color:var(--muted);font-size:14px}
.stat.ok b{color:var(--ok)}.stat.bad b{color:var(--bad)}.stat.unk b{color:var(--unk)}
.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:10px;padding:11px 18px;font:inherit;font-weight:600;cursor:pointer}
.btn:hover{filter:brightness(1.1);text-decoration:none}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:10px;margin:30px 0 10px}
input,select,textarea{width:100%;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 12px;font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:12px 0}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;color:var(--text);transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--brand);text-decoration:none;transform:translateY(-1px)}
.card-h{display:flex;justify-content:space-between;align-items:center}.views{color:var(--muted);font-size:12px}
.card .meta{margin:0}.flag{color:var(--bad);font-size:13px;margin:.4em 0 0}
.badge{display:inline-block;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
.badge.ok{background:rgba(34,197,94,.14);color:var(--ok)}.badge.bad{background:rgba(249,115,22,.15);color:var(--bad)}.badge.unk{background:rgba(148,163,184,.15);color:var(--unk)}
.center{text-align:center}
.top-removed ol{columns:2;gap:30px}.top-removed li{margin:4px 0}
.crumbs{color:var(--muted);font-size:14px;margin-top:22px}
.tpl{max-width:860px}.tpl-h{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.tpl-h h1{margin-bottom:.2em}.tpl-h .badge{font-size:14px;padding:5px 12px}
.callout{border-radius:var(--r);padding:14px 16px;margin:16px 0;border:1px solid var(--line);background:var(--panel)}
.callout.ok{border-color:rgba(34,197,94,.4)}.callout.bad{border-color:rgba(249,115,22,.45)}.callout small{display:block;color:var(--muted);margin-top:4px}
table.fix{width:100%;border-collapse:collapse;background:var(--panel);border-radius:var(--r);overflow:hidden}
.fix th,.fix td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.fix th{color:var(--muted);font-size:13px;font-weight:500}
.fix small{color:var(--muted)}
.nodes{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.nodes li{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}
.nodes li.bad{border-left-color:var(--bad)}.nodes li.unk{border-left-color:var(--unk)}.nodes li.warn{border-left-color:var(--warn)}
.nodes code{color:var(--muted);font-size:12px;word-break:break-all}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}
.warns li{margin:4px 0}
.tags{display:flex;flex-wrap:wrap;gap:8px}.tags a{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:14px}
.desc{color:#c7cedb;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;overflow-wrap:anywhere}
.cta{margin:26px 0;display:flex;gap:10px;flex-wrap:wrap}
.ilist{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-top:14px}
.ilist a{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--text)}
.ilist span{color:var(--muted);font-size:13px}
textarea{min-height:260px;font-family:ui-monospace,Menlo,monospace;font-size:13px}
.news{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:linear-gradient(135deg,#1a1440,#141821);border:1px solid var(--line);border-radius:var(--r);padding:24px;margin-top:50px}
.news h2{margin:0 0 4px}.news p{margin:0;color:#c7cedb}
.nl{display:flex;gap:8px;flex-wrap:wrap;flex:1 1 320px;max-width:460px}.nl input{flex:1 1 200px}.nl-msg{flex-basis:100%;font-size:14px;color:var(--ok)}
.foot{color:var(--muted);font-size:13px;padding:30px 20px 50px}
@media (max-width:760px){.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.top-removed ol{columns:1}.nav nav{gap:12px}}
.nl button{background:var(--brand);color:#fff;border:0;border-radius:10px;padding:11px 18px;font:inherit;font-weight:600;cursor:pointer}
.nl button:hover{filter:brightness(1.1)}
@media (max-width:560px){.stats{gap:8px}.stat{flex:1 1 0;padding:12px}.stat b{font-size:22px}.stat span{font-size:12px}}

.nl-embed{display:block}.nl-embed iframe{max-width:100%}.nl-alt{font-size:13px;margin-top:8px!important}.nl-alt a,.nl-fallback{color:#c9b8ff;text-decoration:underline}
