/* Generated by scripts/build-docs.mjs — do not edit; edit the script. */
/* Self-hosted IBM Plex (latin subset), same vendored files as the main site, so no docs
   request ever goes to Google (privacy + consistent with styles.css). */
@font-face { font-family:'IBM Plex Sans'; font-style:normal; font-weight:300; font-display:swap; src:url('/vendor/fonts/ibm-plex-sans-latin-300-normal.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-style:normal; font-weight:400; font-display:swap; src:url('/vendor/fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-style:normal; font-weight:500; font-display:swap; src:url('/vendor/fonts/ibm-plex-sans-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-style:normal; font-weight:600; font-display:swap; src:url('/vendor/fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url('/vendor/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url('/vendor/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap; src:url('/vendor/fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2'); }
:root {
  --bg:#0b0d10; --surface:#14171c; --surface-2:#1d2127;
  --border:rgba(44,49,57,0.7); --border-bright:rgb(44,49,57);
  --text-primary:#eceef1; --text-secondary:#c6ccd4; --text-muted:#646c78;
  --accent:#c8a24b; --accent-strong:#d6b268; --accent-dim:rgba(200,162,75,0.13);
  --zone-green:#3fb07a; --zone-yellow:#e8a13a; --zone-red:#e5484d;
  --radius-sm:6px; --radius:8px; --radius-lg:12px;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --nav-h:60px; --sidebar-w:264px; --content-w:820px;
}
[data-theme="light"] {
  --bg:#f7f6f2; --surface:#ffffff; --surface-2:#f0eee8;
  --border:rgb(222,217,207); --border-bright:rgb(204,197,183);
  --text-primary:#15181d; --text-secondary:#2a2d33; --text-muted:#7a7e86;
  --accent:#7b5c18; --accent-strong:#967426; --accent-dim:rgba(168,132,47,0.12);
  /* Zone colors shift darker on cream for AA contrast — mirrors styles.css */
  --zone-green:#27754f; --zone-yellow:#a05e0a; --zone-red:#c0343a;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0; background:var(--bg); color:var(--text-secondary);
  font-family:var(--sans); font-weight:400; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

/* Top bar */
.docs-topbar {
  position:sticky; top:0; z-index:20; height:var(--nav-h);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 24px; background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--border);
}
.docs-wordmark { font-family:var(--mono); font-weight:500; font-size:.95rem;
  letter-spacing:.02em; color:var(--text-primary); text-decoration:none; }
.docs-wordmark span { color:var(--accent); }
.docs-topbar-right { display:flex; align-items:center; gap:20px; }
.docs-toplink { color:var(--text-muted); text-decoration:none; font-size:.85rem; }
.docs-toplink:hover { color:var(--text-primary); }
.theme-toggle { background:none; border:1px solid var(--border); border-radius:var(--radius-sm);
  color:var(--text-secondary); width:34px; height:34px; display:inline-flex;
  align-items:center; justify-content:center; cursor:pointer; }
.theme-toggle:hover { border-color:var(--border-bright); color:var(--text-primary); }
.icon-light { display:none; } [data-theme="light"] .icon-dark { display:none; }
[data-theme="light"] .icon-light { display:inline; }

/* Shell */
.docs-shell { display:grid; grid-template-columns:var(--sidebar-w) 1fr;
  max-width:1240px; margin:0 auto; }

/* Sidebar */
.docs-sidebar { position:sticky; top:var(--nav-h); align-self:start;
  height:calc(100vh - var(--nav-h)); overflow-y:auto;
  border-right:1px solid var(--border); padding:28px 20px 40px; }
.docs-brand { display:flex; align-items:baseline; gap:8px; margin-bottom:20px; padding-left:12px; }
.docs-brand-name { font-family:var(--mono); font-weight:600; color:var(--text-primary); font-size:.9rem; }
.docs-brand-ver { font-family:var(--mono); font-size:.72rem; color:var(--text-muted); }
.docs-nav ul { list-style:none; margin:0; padding:0; }
.docs-nav li { margin:1px 0; }
.docs-nav a { display:block; padding:7px 12px; border-radius:var(--radius-sm);
  color:var(--text-muted); text-decoration:none; font-size:.9rem; }
.docs-nav a:hover { color:var(--text-primary); background:var(--surface); }
.docs-nav a.active { color:var(--accent); background:var(--accent-dim); font-weight:500; }
.docs-side-foot { margin-top:28px; padding-top:18px; border-top:1px solid var(--border);
  display:flex; flex-direction:column; gap:10px; padding-left:12px; }
.docs-side-foot a { color:var(--text-muted); text-decoration:none; font-size:.82rem; }
.docs-side-foot a:hover { color:var(--accent); }

/* Content */
.docs-main { min-width:0; padding:0 clamp(24px,5vw,64px); }
.docs-content { max-width:var(--content-w); padding:48px 0 32px; }
.docs-content > *:first-child { margin-top:0; }
.docs-content h1 { font-size:2rem; line-height:1.2; color:var(--text-primary);
  font-weight:600; letter-spacing:-.01em; margin:0 0 .6em; }
.docs-content h2 { font-size:1.4rem; color:var(--text-primary); font-weight:600;
  margin:2.2em 0 .7em; padding-top:.4em; border-top:1px solid var(--border); }
.docs-content h3 { font-size:1.12rem; color:var(--text-primary); font-weight:600; margin:1.8em 0 .5em; }
.docs-content h4 { font-size:1rem; color:var(--text-primary); font-weight:600; margin:1.5em 0 .4em; }
.docs-content h2 a, .docs-content h3 a { color:inherit; }
.docs-content p { margin:0 0 1.05em; }
.docs-content a { color:var(--accent); text-decoration:none; border-bottom:1px solid transparent; }
.docs-content a:hover { border-bottom-color:var(--accent); }
.docs-content ul, .docs-content ol { margin:0 0 1.1em; padding-left:1.4em; }
.docs-content li { margin:.35em 0; }
.docs-content strong { color:var(--text-primary); font-weight:600; }
.docs-content hr { border:none; border-top:1px solid var(--border); margin:2.4em 0; }
.docs-content blockquote { margin:1.2em 0; padding:.6em 1.1em; border-left:3px solid var(--accent);
  background:var(--surface); border-radius:0 var(--radius-sm) var(--radius-sm) 0; color:var(--text-secondary); }
.docs-content blockquote p:last-child { margin-bottom:0; }

/* Code */
.docs-content code { font-family:var(--mono); font-size:.86em;
  background:var(--surface-2); border:1px solid var(--border); border-radius:4px;
  padding:.12em .4em; color:var(--text-primary); }
.docs-content pre { background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius); padding:16px 18px; overflow-x:auto; margin:0 0 1.3em;
  font-size:.85rem; line-height:1.55; }
.docs-content pre code { background:none; border:none; padding:0; font-size:inherit; color:var(--text-secondary); }

/* Tables */
.docs-content table { width:100%; border-collapse:collapse; margin:0 0 1.4em; font-size:.9rem; display:block; overflow-x:auto; }
.docs-content th, .docs-content td { text-align:left; padding:9px 14px; border:1px solid var(--border); vertical-align:top; }
.docs-content th { background:var(--surface); color:var(--text-primary); font-weight:600; white-space:nowrap; }
.docs-content tr:nth-child(even) td { background:color-mix(in srgb, var(--surface) 45%, transparent); }

/* Footer */
.docs-foot { max-width:var(--content-w); margin-top:32px; padding:20px 0 48px;
  border-top:1px solid var(--border); display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:10px; color:var(--text-muted); font-size:.78rem; font-family:var(--mono); }
.docs-foot a { color:var(--text-muted); text-decoration:none; }
.docs-foot a:hover { color:var(--accent); }

/* Responsive */
@media (max-width:860px) {
  .docs-shell { grid-template-columns:1fr; }
  .docs-sidebar { position:static; height:auto; border-right:none;
    border-bottom:1px solid var(--border); }
  .docs-nav ul { display:flex; flex-wrap:wrap; gap:4px; }
  .docs-side-foot { flex-direction:row; }
  .docs-toplink { display:none; }
}
