/* Shared visual language: packet, registry, rules and bench all consume this file. */
:root, :root[data-theme='dark'] {
  color-scheme:dark;
  --bg:#0b151a; --surface:#111f26; --surface-2:#182930; --ink:#e4eef2; --muted:#99adb5;
  --line:#293b42; --line-strong:#405962; --code-bg:#182930;
  --pink:#f08cc9; --pink-fill:#4a1f3a; --cyan:#80d4c4; --cyan-fill:#173b37;
  --amber:#e7bf79; --amber-fill:#3e321e; --green:#94d6a1; --green-fill:#1d3a24;
  --danger:#ff9a8f; --danger-fill:#4a1f1c; --grid:rgba(228,238,242,.035);
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
  --font-heading:'Chakra Petch','IBM Plex Sans',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
  --site-header-height:76px; --site-rail-width:216px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--font-body); -webkit-font-smoothing:antialiased; }
[hidden] { display:none !important; }
a { color:var(--cyan); text-underline-offset:3px; }
:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }
button,input,select,textarea { font-family:inherit; }
h1,h2,h3,h4 { font-family:var(--font-heading); }
.site-header { position:sticky; top:0; z-index:40; height:var(--site-header-height); display:flex; align-items:center; gap:30px; padding:0 30px; background:var(--bg); border-bottom:1px solid var(--line-strong); font:400 13px/1.4 var(--font-body); }
.site-brand { color:var(--ink); display:flex; align-items:center; gap:16px; text-decoration:none; font:600 15px/1.3 var(--font-heading); letter-spacing:1.1px; }
.site-brand small { display:block; font:400 10px/1.6 var(--font-mono); color:var(--muted); letter-spacing:.02em; margin-top:3px; }
.site-emblem { font:600 23px/1 var(--font-heading); letter-spacing:-2px; border:1px solid var(--line-strong); padding:10px 9px; }
.site-emblem>span { color:var(--cyan); margin:0 2px; }
.site-status { margin-left:auto; color:var(--muted); font:400 11px/1.5 var(--font-mono); }
.site-status i { display:inline-block; width:6px; height:6px; background:var(--cyan); border-radius:50%; margin-right:8px; }
.site-guide { font-size:12px; text-decoration:none; border-left:1px solid var(--line-strong); padding-left:24px; }
.site-skip { position:fixed; left:16px; top:-100px; z-index:100; padding:12px 20px; background:var(--ink); color:var(--bg); }
.site-skip:focus { top:12px; }
.site-sidebar { position:fixed; z-index:30; left:0; top:var(--site-header-height); bottom:0; width:var(--site-rail-width); background:var(--bg); border-right:1px solid var(--line); overflow-y:auto; }
.site-menu { display:none; background:var(--bg); z-index:30; }
.site-nav { display:block; }
.site-menu>summary { display:none; }
.site-nav { padding:26px 16px; font:400 13px/1.4 var(--font-body); }
.site-nav-group { margin-bottom:23px; }
.site-nav-label { display:block; color:var(--muted); text-transform:uppercase; font:400 9px/1 var(--font-mono); letter-spacing:1.5px; margin:0 12px 10px; }
.site-nav a { display:flex; gap:12px; align-items:center; padding:10px 11px; margin-top:2px; color:var(--muted); text-decoration:none; border:1px solid transparent; }
.site-nav a:hover { background:var(--surface); color:var(--ink); }
.site-nav a[aria-current='page'] { background:var(--cyan-fill); color:var(--cyan); border-color:var(--line-strong); }
.site-nav-mark { font:400 9px/1 var(--font-mono); opacity:.65; }
.site-nav-arrow { margin-left:auto; opacity:0; }
.site-nav a:hover .site-nav-arrow,.site-nav a[aria-current] .site-nav-arrow { opacity:1; }
.site-nav-foot { border-top:1px solid var(--line); padding:18px 12px 0; font:400 9px/1.9 var(--font-mono); color:var(--muted); letter-spacing:.04em; }
.site-nav-foot span { opacity:.7; }
.site-content { margin-left:var(--site-rail-width); min-width:0; }
.site-location { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:22px 0; margin-bottom:18px; border-bottom:1px solid var(--line); color:var(--muted); font:400 10px/1.5 var(--font-mono); letter-spacing:.07em; text-transform:uppercase; }
.site-location span:first-child { color:var(--cyan); }
.site-page { max-width:1420px; margin:0 auto; padding:0 42px 64px; }
.site-footer { margin-top:60px; padding-top:18px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; color:var(--muted); font:400 10px/1.8 var(--font-mono); }
.site-footer a { text-decoration:none; }
.site-button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; padding:13px 18px; background:var(--cyan); border:1px solid var(--cyan); color:var(--bg); font:500 14px/1.4 var(--font-body); text-decoration:none; }
.site-button:hover { filter:brightness(1.12); }
.site-button.secondary { background:transparent; color:var(--ink); border-color:var(--line-strong); }
.site-eyebrow { color:var(--cyan); text-transform:uppercase; font:400 10px/1.5 var(--font-mono); letter-spacing:1.7px; }
@media(max-width:1000px) {
  :root { --site-rail-width:184px; }
  .site-header { padding:0 22px; }
  .site-page { padding:0 26px 48px; }
  .site-nav { padding:24px 10px; }
  .site-nav a { gap:8px; padding:9px; }
}
@media(max-width:760px) {
  :root { --site-header-height:66px; --site-rail-width:0px; }
  .site-header { padding:0 16px; gap:12px; }
  .site-brand { font-size:12px; gap:10px; }
  .site-emblem { font-size:20px; padding:9px 7px; }
  .site-brand small { font-size:9px; }
  .site-guide { display:none; }
  .site-status { font-size:9px; max-width:90px; }
  .site-sidebar { display:none; }
  .site-menu { display:block; position:sticky; top:var(--site-header-height); width:auto; bottom:auto; border-right:0; border-bottom:1px solid var(--line-strong); overflow:visible; }
  .site-menu:not([open])>.site-nav { display:none; }
  .site-menu>summary { display:flex; justify-content:space-between; padding:13px 18px; cursor:pointer; color:var(--muted); font:400 11px/1.4 var(--font-mono); list-style:none; }
  .site-menu>summary::-webkit-details-marker { display:none; }
  .site-menu>summary span { color:var(--cyan); }
  .site-menu[open]>.site-nav { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; max-height:65vh; overflow-y:auto; padding:20px 12px; }
  .site-nav-foot { grid-column:1/-1; }
  .site-page { padding:0 18px 40px; }
  .site-location { padding:18px 0; margin-bottom:22px; font-size:9px; }
  .site-location span:last-child { display:none; }
  html { scroll-padding-top:125px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print {
  .site-header,.site-sidebar,.site-menu,.site-skip,.site-location,.site-footer { display:none; }
  .site-content { margin:0; }
  .site-page { padding:0; max-width:none; }
}
/* Long catalog identifiers and CLI examples must fit on narrow screens. */
:not(pre)>code { overflow-wrap:anywhere; }
