*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{color-scheme:dark;--bg:#0f172a;--panel:#1e293b;--line:#334155;--fg:#e5e7eb;--muted:#9ca3af;--dim:#6b7280;--link:#60a5fa;
--audit:#3b82f6;--bughunt:#ef4444;--perf:#22c55e;--fuzz:#a855f7}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.5}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
code,pre,.mono{font-family:"JetBrains Mono","Fira Code",Consolas,monospace}
.app{max-width:1200px;margin:0 auto;padding:1.5rem 1rem 4rem}
h1{font-size:1.6rem;font-weight:700;color:#f1f5f9}
h2{font-size:1.05rem;color:#f1f5f9;margin:1.2rem 0 .5rem}
.sub{color:var(--dim);font-size:.82rem;margin-top:.2rem}
.hero{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin:1rem 0}
.tile{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--c,var(--line));border-radius:8px;padding:.6rem .8rem}
.tile b{display:block;font-size:1.5rem;color:var(--c,#f1f5f9);line-height:1.2}
.tile span{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--dim);font-weight:700}
.bar{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.6rem .75rem;display:flex;flex-direction:column;gap:.5rem;margin-bottom:.8rem}
.row{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.lbl{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#4b5563;margin-right:.25rem;min-width:3.2rem}
input[type=search],select{background:var(--bg);border:1px solid var(--line);color:var(--fg);padding:.4rem .7rem;border-radius:6px;font-size:.85rem;outline:none}
input[type=search]{flex:1;min-width:200px}input:focus,select:focus{border-color:var(--audit)}
.chip{font-size:.7rem;font-weight:700;padding:.2rem .55rem;border-radius:5px;border:1px solid var(--cb,var(--line));background:var(--cbg,var(--bg));color:var(--cf,var(--muted));cursor:pointer;user-select:none;letter-spacing:.03em;transition:opacity .12s}
.chip.off{opacity:.3;filter:grayscale(.6)}.chip small{opacity:.7;margin-left:.3rem;font-weight:600}
.chip.tog{--cb:var(--line)}.chip.tog.on{border-color:var(--c);color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--bg))}
.btn{font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:5px;border:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer}
.btn:hover{color:var(--fg);border-color:#4b5563;text-decoration:none}
.c-red{--cbg:#450a0a;--cf:#fca5a5;--cb:#991b1b}.c-orange{--cbg:#431407;--cf:#fdba74;--cb:#9a3412}
.c-amber{--cbg:#422006;--cf:#fcd34d;--cb:#854d0e}.c-blue{--cbg:#0c1a3a;--cf:#93c5fd;--cb:#1d4ed8}
.c-green{--cbg:#052e16;--cf:#86efac;--cb:#166534}.c-teal{--cbg:#042f2e;--cf:#5eead4;--cb:#0f766e}
.c-purple{--cbg:#2e1065;--cf:#d8b4fe;--cb:#7e22ce}.c-pink{--cbg:#500724;--cf:#f9a8d4;--cb:#be185d}
.c-slate{--cbg:#1e293b;--cf:#94a3b8;--cb:#334155}
.badge{display:inline-block;font-size:.68rem;font-weight:700;padding:.12rem .45rem;border-radius:4px;border:1px solid var(--cb);background:var(--cbg);color:var(--cf);white-space:nowrap}
/* index grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:.7rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.75rem .85rem;display:flex;flex-direction:column;gap:.5rem}
.card:hover{border-color:#475569}
.card h3{font-size:1rem;color:#f1f5f9;display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.card h3 a{color:inherit}.card .desc{font-size:.78rem;color:var(--muted);min-height:1.1em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.slot{border:1px solid var(--line);border-top:2px solid var(--c);border-radius:6px;padding:.35rem .5rem;font-size:.78rem;background:var(--bg);min-height:3.3rem;display:flex;flex-direction:column;gap:.15rem}
.slot.empty{border-top-color:var(--line);opacity:.35}.slot .k{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--c)}
.slot a.main{font-weight:700;color:#f1f5f9}.slot .meta{color:var(--dim);font-size:.72rem}
.seg{display:flex;height:5px;border-radius:3px;overflow:hidden;background:var(--line);margin-top:auto}.seg i{display:block;height:100%}
.pills{display:flex;flex-wrap:wrap;gap:.2rem}.pills .badge{font-size:.6rem;padding:.05rem .35rem}
.count{color:var(--dim);font-size:.8rem;margin:.2rem 0 .6rem}
/* detail */
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin:.8rem 0 1rem;border-bottom:1px solid var(--line)}
.tab{padding:.45rem .9rem;border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;color:var(--muted);font-weight:600;font-size:.85rem;position:relative;top:1px}
.tab.on{background:var(--panel);border-color:var(--line);color:var(--c);box-shadow:inset 0 2px 0 var(--c)}
.tab.none{opacity:.3;pointer-events:none}.tab:hover{text-decoration:none;color:var(--fg)}.tab small{opacity:.7;margin-left:.3rem}
.item{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:.4rem;overflow:hidden}
.item>.head{display:grid;grid-template-columns:3.2rem 8.5rem 1fr auto 1.2rem;gap:.6rem;align-items:center;padding:.5rem .75rem;cursor:pointer}
.item>.head:hover{background:#243247}.item .id{color:var(--dim);font-family:monospace;font-size:.8rem}
.item .ttl{color:#f1f5f9;min-width:0;overflow-wrap:anywhere}.item .ttl code{color:#93c5fd;font-size:.85em}
.fix{font-family:monospace;font-size:.78rem;white-space:nowrap}.fix .a{color:#4ade80}.fix .d{color:#f87171}
.caret{color:var(--dim);transition:transform .15s}.item.open .caret{transform:rotate(90deg)}
.body{display:none;border-top:1px solid var(--line);padding:.7rem .9rem;background:var(--bg);font-size:.85rem}
.item.open .body{display:block}
.kv{display:grid;grid-template-columns:7rem 1fr;gap:.3rem .8rem;margin-bottom:.6rem}.kv .k{color:var(--dim);font-size:.72rem;text-transform:uppercase;font-weight:700;letter-spacing:.06em;padding-top:.15rem}
.body code{color:#93c5fd;font-size:.85em}
pre{background:#0b1220;border:1px solid var(--line);border-radius:6px;padding:.6rem .8rem;overflow:auto;font-size:.76rem;line-height:1.45;color:#d1d5db;white-space:pre}
.codewrap{position:relative;margin:.3rem 0 .6rem}.codewrap .btn{position:absolute;top:.4rem;right:.4rem}
.loc{font-family:monospace;font-size:.78rem;color:var(--muted);overflow-wrap:anywhere}
.item.fz>.head{grid-template-columns:7.5rem 1fr auto 1.2rem}
.item.fz .ttl{font-size:.82rem}.api{display:block;color:var(--dim);font-size:.72rem;font-family:monospace;overflow-wrap:anywhere}
.about{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:.8rem}
.about summary{cursor:pointer;padding:.5rem .8rem;color:var(--muted);font-weight:600;font-size:.82rem}
.about .md{padding:.2rem 1rem .8rem;font-size:.85rem;color:#cbd5e1}.md p{margin:.4rem 0}.md code{color:#93c5fd}.md table{border-collapse:collapse;margin:.5rem 0}.md th,.md td{border:1px solid var(--line);padding:.25rem .5rem;text-align:left}
.more{display:block;margin:1rem auto;padding:.5rem 1.4rem}
.empty-msg{text-align:center;color:#475569;padding:3rem 1rem}
.hdrlinks{display:flex;gap:.4rem;flex-wrap:wrap}
@media(max-width:700px){.item>.head{grid-template-columns:3rem 1fr 1.2rem}.item>.head .badge,.item>.head .fix{grid-column:2}.grid{grid-template-columns:1fr}}

.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:.9rem;align-items:start}
.panel{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:10px;padding:.8rem 1rem}
.panel h2{margin-top:0;color:var(--c)}.panel h2 small{color:var(--dim);font-weight:600}.panel h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin:.9rem 0 .3rem}
.mini{padding:.3rem 0;border-top:1px solid var(--line);font-size:.8rem;overflow-wrap:anywhere}.mini:first-of-type{border-top:none}
.mini .id{color:var(--dim)}.mini .md{color:var(--muted);margin-top:.15rem}.mini code{color:#93c5fd}
.seg.big{height:9px;margin:.6rem 0}
@media(max-width:560px){.cols{grid-template-columns:1fr}}
