:root {
  color-scheme: light;
  --fg:#1f2328; --muted:#6b7280; --border:#d0d7de; --bg:#ffffff; --accent:#0969da;
  --panel:#f6f8fa; --target:#fff8c5;
  --tok-keyword:#a626a4; --tok-function:#4078f2; --tok-builtin:#0184bc;
  --tok-property:#986801; --tok-constant:#e45649; --tok-constant-builtin:#986801;
  --tok-type:#0184bc; --tok-number:#986801; --tok-string:#50a14f; --tok-comment:#a0a1a7;
  --tok-error:#f44747;
  --graph-node:#ececff; --graph-border:#9370db; --graph-text:#333333; --graph-edge:#333333;
}
[data-theme="dark"] {
  color-scheme: dark;
  --fg:#e6edf3; --muted:#8b949e; --border:#30363d; --bg:#0d1117; --accent:#58a6ff;
  --panel:#161b22; --target:#3d2e00;
  --tok-keyword:#c678dd; --tok-function:#61afef; --tok-builtin:#56b6c2;
  --tok-property:#e5c07b; --tok-constant:#e06c75; --tok-constant-builtin:#e5c07b;
  --tok-type:#56b6c2; --tok-number:#d19a66; --tok-string:#98c379; --tok-comment:#707a8a;
  --tok-error:#f44747;
  --graph-node:#1f2020; --graph-border:#81b1db; --graph-text:#cccccc; --graph-edge:#d3d3d3;
}
* { box-sizing: border-box; }
body { margin:0; color:var(--fg); background:var(--bg);
  font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif; }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; }
code { font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace; font-size:0.9em; }
main { max-width:1100px; margin:0 auto; padding:1rem 1.25rem 4rem; }
h1 { font-size:1.6rem; margin:1rem 0 .5rem; }
h2 { font-size:1.25rem; margin:2rem 0 .5rem; border-bottom:1px solid var(--border); padding-bottom:.25rem; }
h3 { font-size:1.05rem; margin:1.5rem 0 .25rem; }
h4 { font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin:1rem 0 .25rem; }
.crumbs { position:relative; padding:.6rem 24rem .6rem 1.25rem; border-bottom:1px solid var(--border);
  background:var(--panel); font-size:.9rem; color:var(--muted); }
.crumbs a { color:var(--accent); }
.theme-toggle { position:absolute; top:50%; right:1rem; transform:translateY(-50%);
  border:1px solid var(--border); background:var(--bg); color:var(--fg); border-radius:6px;
  padding:.15rem .6rem; font:inherit; font-size:.8rem; cursor:pointer; }
.theme-toggle:hover { border-color:var(--accent); color:var(--accent); }
.search-wrap { position:absolute; top:50%; right:6.5rem; transform:translateY(-50%); }
.crumbs input.search { border:1px solid var(--border); background:var(--bg); color:var(--fg);
  border-radius:6px; padding:.15rem .5rem; font:inherit; font-size:.8rem; width:16rem; }
.crumbs input.search:focus { outline:none; border-color:var(--accent); }
.search-results { position:absolute; right:0; top:calc(100% + .35rem); margin:0; padding:.25rem 0;
  list-style:none; background:var(--bg); border:1px solid var(--border); border-radius:6px;
  box-shadow:0 6px 20px rgba(0,0,0,.18); max-height:24rem; overflow:auto; min-width:22rem; z-index:20; }
.search-results li a { display:block; padding:.25rem .6rem; color:var(--fg); font-size:.85rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.search-results li a:hover { background:var(--panel); text-decoration:none; }
.search-results .d { color:var(--muted); font-size:.8em; }
@media (max-width:720px) {
  .crumbs { padding-right:6rem; }
  .search-wrap { display:none; }
}
.meta { color:var(--muted); font-size:.9rem; margin:.25rem 0; }
.meta span { margin-right:1rem; white-space:nowrap; }
.stats, .aliases { color:var(--muted); font-size:.9rem; }
.muted { color:var(--muted); }
table.grid { border-collapse:collapse; width:100%; font-size:.9rem; }
table.grid th, table.grid td { border:1px solid var(--border); padding:.3rem .5rem; text-align:left; vertical-align:top; }
table.grid th { background:var(--panel); position:sticky; top:0; }
ul.refs { margin:.25rem 0; padding-left:1.25rem; }
ul.refs li { font-size:.9rem; }
ul.tree, ul.tree ul { list-style:none; margin:0; padding:0; }
ul.tree { background:var(--panel); border:1px solid var(--border); border-radius:6px; padding:.5rem .75rem; overflow:auto; }
ul.tree ul { margin-left:.9rem; border-left:1px solid var(--border); padding-left:.75rem; }
ul.tree li { margin:.1rem 0; }
ul.tree summary { cursor:pointer; }
ul.tree summary:hover { color:var(--accent); }
ul.tree .count { color:var(--muted); font-size:.85em; }
ul.tree strong.self > a { font-weight:inherit; }
ul.tree .muted { color:var(--muted); }
.callgraph { background:var(--panel); border:1px solid var(--border); border-radius:6px; padding:.5rem; overflow:auto; }
.callgraph svg { display:block; }
.callgraph svg g.node polygon, .callgraph svg g.node path {
  fill:var(--graph-node); stroke:var(--graph-border); stroke-width:1px; }
.callgraph svg g.node a:hover polygon, .callgraph svg g.node a:hover path { stroke:var(--accent); }
.callgraph svg g.edge path { stroke:var(--graph-edge); stroke-width:1.4px; }
.callgraph svg g.edge polygon { fill:var(--graph-edge); stroke:var(--graph-edge); }
.callgraph svg text { fill:var(--graph-text); font-family:"Trebuchet MS",Verdana,Arial,sans-serif; }
pre.source { background:var(--panel); border:1px solid var(--border); border-radius:6px;
  padding:.6rem 0; overflow:auto; font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  font-size:13px; line-height:1.5; tab-size:2; }
pre.source .line { display:inline; }
pre.source .ln { display:inline-block; width:var(--lnw,3ch); text-align:right; margin-right:1ch;
  color:var(--muted); text-decoration:none; user-select:none; }
pre.source .ln:hover { color:var(--accent); }
pre.source .ln:target { background:var(--target); }
section.verb { margin-top:1.5rem; }
