* { box-sizing: border-box; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; background:#0d1117; color:#c9d1d9; }
.topbar { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; padding:10px 18px; background:#161b22; border-bottom:1px solid #30363d; }
.brand { font-size:15px; font-weight:600; color:#f0f6fc; }
.brand .logo { color:#ff6a00; }
.brand .meta { font-weight:400; color:#8b949e; font-size:12px; margin-left:10px; }
.search { display:flex; align-items:center; gap:10px; }
#q { width:420px; max-width:46vw; padding:8px 12px; background:#0d1117; border:1px solid #30363d; border-radius:6px; color:#c9d1d9; font-size:14px; }
#q:focus { outline:none; border-color:#ff6a00; }
.count { font-size:12px; color:#8b949e; min-width:80px; text-align:right; }

.layout { display:grid; grid-template-columns:200px 360px 1fr; height:calc(100vh - 53px); }
.sidebar { border-right:1px solid #30363d; overflow:auto; padding:8px 0; background:#0d1117; }
.sidebar-title { font-size:11px; color:#8b949e; text-transform:uppercase; padding:6px 16px; letter-spacing:1px; }
.sidebar ul { list-style:none; margin:0; padding:0; }
.sidebar li { padding:6px 16px; font-size:13px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; border-left:2px solid transparent; }
.sidebar li:hover { background:#161b22; }
.sidebar li.active { background:#161b22; border-left-color:#ff6a00; color:#f0f6fc; }
.sidebar li .n { color:#6e7681; font-size:11px; }
.sidebar li.all { color:#ff6a00; font-weight:600; }

.list { border-right:1px solid #30363d; overflow:auto; }
.row { padding:10px 16px; border-bottom:1px solid #21262d; cursor:pointer; }
.row:hover { background:#161b22; }
.row .name { font-size:13px; color:#f0f6fc; }
.row .path { font-size:11px; color:#8b949e; font-family:ui-monospace,Menlo,Consolas,monospace; margin-top:3px; word-break:break-all; }
.row .tag { display:inline-block; font-size:10px; padding:1px 5px; border-radius:3px; margin-right:6px; vertical-align:middle; }
.tag-method { background:#1f6feb33; color:#79c0ff; }
.tag-cat { background:#ff6a0022; color:#ff9a4d; }
.row .seq { color:#6e7681; font-size:11px; margin-right:6px; }

.detail { overflow:auto; padding:24px 32px; }
.detail h1 { font-size:22px; border-bottom:1px solid #30363d; padding-bottom:10px; }
.detail h2 { font-size:17px; margin-top:24px; color:#f0f6fc; border-left:3px solid #ff6a00; padding-left:10px; }
.detail h3 { font-size:14px; color:#f0f6fc; }
.detail p { line-height:1.7; font-size:13px; }
.detail code { background:#21262d; padding:1px 5px; border-radius:3px; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12px; }
.detail pre { background:#161b22; padding:12px; border-radius:6px; overflow:auto; }
.detail table { border-collapse:collapse; width:100%; margin:10px 0; font-size:12px; }
.detail th, .detail td { border:1px solid #30363d; padding:6px 10px; text-align:left; vertical-align:top; }
.detail th { background:#161b22; }
.detail a { color:#58a6ff; }
.placeholder { color:#8b949e; font-size:13px; }
.placeholder b { color:#f0f6fc; }
.err { color:#f85149; }
