/* ===================================================================
   DS PULSE DOCS - pulse.domeraspace.com/docs
   Loaded after /pulse/pulse.css (fonts, --r/--r-s, .btn primitives).
   Re-themes those custom-property names to the app's own Space/Light
   tokens (steel-blue accent, solid panels) instead of the marketing
   site's dark+gold theme. No --data-accent layer here - docs owns
   --accent* directly. See DESIGN.md's "DS Pulse is a distinct sibling
   system" note; this stays inside that system, not a new one.
   =================================================================== */

*,*::before,*::after{ box-sizing:border-box; }

html[data-theme="dark"]{
  --bg:#0e1217; --bg-2:#161c24; --panel:#1d242e; --panel-2:#1d242e;
  --border:#28313d; --border-hi:#3a4655;
  --ink:#e8eef5; --ink-2:#a3b1c2; --ink-3:#6d7b8b;
  --accent:#4aa3e0; --accent-bright:#6bb8ea; --accent-deep:#357aad;
  --accent-dim:rgba(74,163,224,0.14); --accent-line:rgba(74,163,224,0.32);
  --sel-bg:#1a3547; --sel-fg:#d4e8fb;
  --btn-primary-bg:var(--accent); --btn-primary-fg:#071019; --btn-primary-hover:var(--accent-bright);
  --shadow: 0 14px 34px -18px rgba(0,0,0,.55);
  --page-shadow: 0 1px 3px rgba(0,0,0,.5), 0 12px 28px -18px rgba(0,0,0,.6);
  /* Callout accents - lifted straight from the manual's own LaTeX palette
     (dswarn/dsgold/dsdanger/dsok) so the reskin reads as the same product. */
  --warn:#F4B740; --gold:#D9A441; --danger:#F87171; --ok:#4ADE80;
}
html[data-theme="light"]{
  --bg:#f4f5f7; --bg-2:#ffffff; --panel:#eef0f3; --panel-2:#ffffff;
  --border:#dde0e6; --border-hi:#c3c8d1;
  --ink:#1a1f2b; --ink-2:#525a6a; --ink-3:#8a92a1;
  --accent:#2563c9; --accent-bright:#3b7ade; --accent-deep:#1c4a94;
  --accent-dim:rgba(37,99,201,0.09); --accent-line:rgba(37,99,201,0.28);
  --sel-bg:#d6e4fb; --sel-fg:#123a7a;
  --btn-primary-bg:var(--accent); --btn-primary-fg:#ffffff; --btn-primary-hover:var(--accent-bright);
  --shadow: 0 14px 30px -20px rgba(20,30,50,.18);
  --page-shadow: 0 1px 2px rgba(20,30,50,.08), 0 12px 24px -18px rgba(20,30,50,.18);
  /* dswarndeep, not dswarn, on light ground - the manual's own light-mode
     warning color is darkened for contrast on white, same reasoning here. */
  --warn:#9A6B0E; --gold:#D9A441; --danger:#F87171; --ok:#4ADE80;
}

/* pulse.css sets html{scroll-padding-top:calc(60px nav-h + 12px)} for the
   marketing site's own nav - that stacks with the scroll-margin-top this
   page puts directly on .chap-head/h2/h3 (which already accounts for the
   docs topbar), landing navigation ~72px too far down. Zero it here since
   the per-element scroll-margin-top already does that job precisely. */
html{ scroll-behavior:smooth; scroll-padding-top:0; }
body.docs-body{
  margin:0; background:var(--bg); color:var(--ink); font-family:var(--font);
  font-weight:400; line-height:1.6; -webkit-font-smoothing:antialiased;
  transition:background .2s ease, color .2s ease;
  /* pulse.css sets body{overflow-x:hidden} with no overflow-y - per the CSS
     overflow spec, when one axis isn't `visible` and the other is, the
     `visible` axis silently computes to `auto`, turning body into its own
     scroll container instead of the normal document/window scroll. That
     desyncs scrollIntoView from where the page visually lands - the actual
     cause of sidebar navigation landing in the wrong spot. `clip` was added
     to the spec specifically to allow one-axis clipping without triggering
     that promotion, so it's used here instead of `hidden`. */
  overflow-x:clip; overflow-y:visible;
}
.docs-body a{ color:inherit; text-decoration:none; }
.docs-body button{ font-family:inherit; cursor:pointer; }
.docs-body ul{ list-style:none; margin:0; padding:0; }
.docs-body ::selection{ background:var(--sel-bg); color:var(--sel-fg); }
.docs-body ::-webkit-scrollbar{ width:10px; height:10px; }
.docs-body ::-webkit-scrollbar-thumb{ background:var(--border-hi); border-radius:99px; border:2px solid var(--bg); }
.docs-body ::-webkit-scrollbar-track{ background:transparent; }

/* =========================== Topbar =========================== */
.docstop{
  position:sticky; top:0; z-index:50; height:var(--docs-nav-h,58px);
  display:flex; align-items:center; gap:16px;
  padding-inline:20px; background:color-mix(in srgb, var(--bg-2) 88%, transparent);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(14px) saturate(1.15); -webkit-backdrop-filter:blur(14px) saturate(1.15);
}
.docstop__burger{ display:none; width:34px; height:34px; align-items:center; justify-content:center;
  border:1px solid var(--border-hi); border-radius:var(--r-s); background:transparent; color:var(--ink); flex:none; }
.docstop__burger svg{ width:17px; height:17px; }
.docstop__brand{ display:flex; align-items:center; gap:9px; flex:none; }
.docstop__name{ font-weight:700; font-size:14.5px; letter-spacing:0.01em; white-space:nowrap; }
.docstop__name span{ color:var(--accent-bright); }
.docstop__tag{ font-size:10px; font-weight:700; letter-spacing:0.1em; color:var(--ink-3);
  border:1px solid var(--border); border-radius:4px; padding:2.5px 7px; white-space:nowrap; }
.crumb{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--ink-3); min-width:0; overflow:hidden; white-space:nowrap; }
.crumb a{ color:var(--ink-3); transition:color .15s ease; }
.crumb a:hover{ color:var(--ink); }
.crumb__sep{ opacity:.6; }
.crumb__cur{ color:var(--ink); font-weight:600; overflow:hidden; text-overflow:ellipsis; }
.docstop__spacer{ flex:1 1 auto; }
.docstop__brand:hover .docstop__name{ color:var(--accent-bright); }
.docstop__search{
  display:flex; align-items:center; gap:10px; height:36px; padding:0 14px 0 13px; width:340px; flex:0 0 340px; max-width:420px;
  border:1px solid var(--border-hi); border-radius:var(--r-s); background:var(--panel); color:var(--ink-3);
  font-size:12.5px; transition:border-color .15s ease, color .15s ease;
}
.docstop__search:hover{ border-color:var(--accent-line); color:var(--ink-2); }
.docstop__search svg{ width:14px; height:14px; flex:none; }
.docstop__search span{ flex:1; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kbd{ font-size:10px; font-weight:700; color:var(--ink-3); border:1px solid var(--border-hi); border-radius:4px; padding:1.5px 5px; }
.iconbtn{ width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--border-hi); border-radius:var(--r-s);
  background:var(--panel); color:var(--ink-2); flex:none; transition:border-color .15s ease, color .15s ease, background .15s ease; }
.iconbtn:hover{ border-color:var(--accent-line); color:var(--ink); }
.iconbtn svg{ width:16px; height:16px; }
.iconbtn .i-moon{ display:none; }
html[data-theme="light"] .iconbtn .i-sun{ display:none; }
html[data-theme="light"] .iconbtn .i-moon{ display:block; }
.docs-body .btn{ display:inline-flex; align-items:center; gap:7px; height:36px; padding:0 15px; border-radius:var(--r-s);
  font-size:12.5px; font-weight:700; letter-spacing:0.01em; background:var(--btn-primary-bg); color:var(--btn-primary-fg);
  border:1px solid var(--btn-primary-bg); white-space:nowrap; transition:background .15s ease, transform .15s ease; }
.docs-body .btn:hover{ background:var(--btn-primary-hover); border-color:var(--btn-primary-hover); transform:translateY(-1px); }
.docs-body .btn svg{ width:14px; height:14px; }

/* Docs page opts out of the marketing site's ambient radial wash
   (pulse.css body::before) - flat instrument surfaces only, matching
   the app's own THEMES philosophy (no gradients, no glass). */
body.docs-body::before{ display:none; }

/* =========================== Shell =========================== */
/* Namespaced .docs-shell, not .shell - pulse.css already owns .shell
   for the marketing page's own wrapper. */
.docs-shell{ display:grid; grid-template-columns:272px minmax(0,1fr) 230px; max-width:1440px; margin-inline:auto; position:relative; z-index:1; }
.scrim{ display:none; }

/* ---- Sidebar ---- */
.sidebar{
  position:sticky; top:var(--docs-nav-h,58px); align-self:start; height:calc(100vh - var(--docs-nav-h,58px));
  border-right:1px solid var(--border); padding:16px 12px 14px;
  display:flex; flex-direction:column; gap:12px; overflow:hidden;
}
.sidebar__search{ position:relative; flex:none; }
.sidebar__search input{
  width:100%; height:36px; border-radius:var(--r-s); border:1px solid var(--border-hi); background:var(--panel);
  color:var(--ink); font-family:inherit; font-size:12.5px; padding:0 30px 0 32px; outline:none;
  transition:border-color .15s ease;
}
.sidebar__search input:focus{ border-color:var(--accent); }
.sidebar__search svg.s-ico{ position:absolute; left:10px; top:50%; transform:translateY(-50%); width:14px; height:14px; color:var(--ink-3); pointer-events:none; }
.sidebar__search .s-clear{ position:absolute; right:6px; top:50%; transform:translateY(-50%); width:22px; height:22px; display:none;
  align-items:center; justify-content:center; border:0; background:transparent; color:var(--ink-3); border-radius:4px; }
.sidebar__search .s-clear:hover{ color:var(--ink); background:var(--border); }
.sidebar__search.has-val .s-clear{ display:flex; }

.tree{ flex:1; overflow-y:auto; padding-right:2px; margin-right:-2px; }
.tree__empty{ display:none; padding:14px 8px; font-size:12px; color:var(--ink-3); text-align:center; }
.tree.is-empty .tree__empty{ display:block; }
.tree__loading{ padding:10px 8px; font-size:12px; color:var(--ink-3); display:flex; align-items:center; gap:8px; }
.tree__loading .spin{ width:13px; height:13px; border-radius:50%; border:2px solid var(--border-hi); border-top-color:var(--accent);
  animation:docs-spin .7s linear infinite; flex:none; }
@keyframes docs-spin{ to{ transform:rotate(360deg); } }
.chap{ margin-bottom:2px; }
.chap__row{ display:flex; align-items:center; gap:7px; width:100%; padding:7px 8px; border-radius:var(--r-s);
  background:transparent; border:0; color:var(--ink-2); font-size:12.5px; font-weight:600; text-align:left; }
.chap__row:hover{ background:var(--panel); color:var(--ink); }
.chap__num{ font-size:10px; color:var(--ink-3); font-variant-numeric:tabular-nums; flex:none; min-width:16px; }
.chap__title{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chap__chev{ width:13px; height:13px; color:var(--ink-3); flex:none; transition:transform .18s ease; }
.chap.open > .chap__row .chap__chev{ transform:rotate(90deg); }
.chap.is-current > .chap__row{ color:var(--ink); }
.chap__kids{ display:none; padding-left:23px; border-left:1px solid var(--border); margin-left:15px; }
.chap.open > .chap__kids{ display:block; }
.chap.no-kids > .chap__row .chap__chev{ visibility:hidden; }
.sec{ display:block; width:100%; padding:6px 8px; border-radius:var(--r-s); font-size:12px; color:var(--ink-3);
  position:relative; text-align:left; background:transparent; border:0; }
.sec:hover{ color:var(--ink); background:var(--panel); }
.sec.active{ color:var(--sel-fg); background:var(--sel-bg); font-weight:600; }
.chap__row.active{ color:var(--sel-fg); background:var(--sel-bg); font-weight:700; }
mark{ background:var(--accent-dim); color:inherit; border-radius:4px; padding:0 1px; }
.hit-only .chap{ display:none; }
.hit-only .chap.has-hit{ display:block; }
.hit-only .chap.has-hit .sec{ display:none; }
.hit-only .chap.has-hit .sec.is-hit{ display:block; }
.hit-only .chap.has-hit.open .chap__kids{ display:block; }

.sidebar__foot{ flex:none; padding-top:12px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:6px; }
.sidebar__meta{ font-size:11px; color:var(--ink-3); display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.sidebar__meta b{ color:var(--ink-2); font-weight:600; }
.sidebar__pdflink{ display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:var(--accent-bright); }
.sidebar__pdflink svg{ width:12px; height:12px; }

/* ---- Main (LaTeX article, or PDF pages as fallback) ---- */
.main{ min-width:0; padding:32px clamp(16px,4vw,44px) 120px; }
.docs-loading{ width:100%; max-width:760px; margin-inline:auto; display:flex; flex-direction:column; align-items:center; gap:14px; padding:80px 0; color:var(--ink-3); }
.docs-loading .spin{ width:26px; height:26px; border-radius:50%; border:3px solid var(--border-hi); border-top-color:var(--accent); animation:docs-spin .8s linear infinite; }
.docs-error{ width:100%; max-width:640px; margin:60px auto; padding:20px 22px; border:1px solid var(--border-hi); border-radius:var(--r);
  background:var(--panel); color:var(--ink-2); font-size:13.5px; line-height:1.6; display:none; }
.docs-error.show{ display:block; }
.docs-error a{ color:var(--accent-bright); font-weight:600; }

.pdf-page{ position:relative; width:100%; max-width:820px; margin-inline:auto; margin-bottom:22px; scroll-margin-top:calc(var(--docs-nav-h,58px) + 16px); }
.pdf-page__surface{ position:relative; background:var(--bg-2); border:1px solid var(--border); border-radius:var(--r);
  box-shadow:var(--page-shadow); overflow:hidden; }
.pdf-page canvas{ display:block; width:100%; height:auto; }
.pdf-page .textLayer{ position:absolute; inset:0; overflow:hidden; opacity:1; line-height:1; }
.pdf-page .textLayer span, .pdf-page .textLayer br{ color:transparent; position:absolute; white-space:pre; cursor:text;
  transform-origin:0 0; }
.pdf-page .textLayer ::selection{ background:var(--sel-bg); }
.pdf-page__num{ position:absolute; top:8px; right:10px; font-size:10px; font-weight:700; letter-spacing:.04em; color:var(--ink-3);
  background:color-mix(in srgb, var(--bg-2) 75%, transparent); border:1px solid var(--border); border-radius:4px; padding:2px 6px;
  pointer-events:none; }
.pdf-page__ph{ width:100%; background:var(--panel); border:1px dashed var(--border-hi); border-radius:var(--r); }

/* =========================== Article (LaTeX-rendered prose) =========================== */
.docs-article{ max-width:760px; margin-inline:auto; }
.docs-article h1{ font-size:clamp(24px,3vw,32px); font-weight:700; letter-spacing:-0.015em; line-height:1.15;
  margin:0 0 18px; }
.docs-article h2{ font-size:19px; font-weight:700; letter-spacing:-0.01em; margin:36px 0 12px;
  scroll-margin-top:calc(var(--docs-nav-h,58px) + 32px); }
.docs-article h3{ font-size:15.5px; font-weight:700; margin:26px 0 10px;
  scroll-margin-top:calc(var(--docs-nav-h,58px) + 32px); }
.docs-article p{ font-size:14.5px; color:var(--ink-2); line-height:1.75; margin:0 0 15px; max-width:68ch; }
.docs-article ul, .docs-article ol{ margin:0 0 15px; padding-left:22px; color:var(--ink-2); font-size:14.5px; line-height:1.7; }
.docs-article li{ margin-bottom:6px; }
.docs-article li > ul, .docs-article li > ol{ margin-top:6px; margin-bottom:0; }
.docs-article strong{ color:var(--ink); font-weight:600; }
.docs-article em{ color:var(--ink); }
.docs-article code{ font-family:'Chakra Petch', monospace; font-size:0.92em; background:var(--panel);
  border:1px solid var(--border); border-radius:4px; padding:1px 5px; }
.docs-article .codeblock{ margin:18px 0 22px; overflow-x:auto; border:1px solid var(--border); border-radius:var(--r);
  background:var(--panel); padding:14px 16px; color:var(--ink-2); font-size:13px; line-height:1.6; }
.docs-article .codeblock code{ border:0; border-radius:0; background:transparent; padding:0; white-space:pre; }
.docs-article a:not(.ref-link):not(.pro-pill){ color:var(--accent-bright); text-decoration:underline;
  text-decoration-color:var(--accent-line); text-underline-offset:2px; }
.docs-article a.ref-link{ color:var(--accent-bright); font-weight:600; }
/* `.chap-head` (eyebrow + h1 together) is the actual scroll target for a
   chapter link, not the h1 alone - otherwise scrollIntoView lands on the
   h1 and leaves the "Chapter 0X/21" label sitting above it, scrolled out
   under the sticky topbar. */
.chap-head{ margin-top:64px; scroll-margin-top:calc(var(--docs-nav-h,58px) + 16px); }
.docs-article > .chap-head:first-child{ margin-top:0; }
.chapline{ display:flex; align-items:center; gap:9px; margin:0 0 4px; }
.chapline::before{ content:''; width:20px; height:1px; background:var(--accent-line); }
.chapline span{ font-size:10.5px; font-weight:700; letter-spacing:0.14em; color:var(--accent-bright); text-transform:uppercase; }

.pro-pill{ display:inline-flex; align-items:center; font-size:9.5px; font-weight:700; letter-spacing:0.08em;
  color:#071019; background:var(--gold); border-radius:4px; padding:1.5px 6px; margin-left:5px; vertical-align:1px; }
.ui-btn{ color:var(--accent-bright); font-weight:600; text-transform:uppercase; font-size:0.93em; letter-spacing:0.01em; }
.ui-field{ color:var(--ink-2); font-style:italic; }

.captable-wrap{ width:100%; margin:18px 0 22px; overflow-x:auto; border:1px solid var(--border); border-radius:var(--r); }
.captable{ width:100%; border-collapse:collapse; font-size:13px; }
.captable--wide{ table-layout:fixed; font-size:11.5px; }
.captable--wide th:nth-child(1){ width:22%; }
.captable--wide th:nth-child(2){ width:10%; }
.captable--wide th:nth-child(3){ width:11%; }
.captable--wide th:nth-child(4){ width:23%; }
.captable--wide th:nth-child(5){ width:34%; }
.captable--wide td{ vertical-align:top; overflow-wrap:anywhere; }
.captable th{ text-align:left; font-size:10.5px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink-3); background:var(--panel); padding:10px 13px; border-bottom:1px solid var(--border); }
.captable td{ padding:10px 13px; border-bottom:1px solid var(--border); color:var(--ink-2); }
.captable tr:last-child td{ border-bottom:0; }

.figframe{ margin:20px 0 22px; border:1px solid var(--border); border-radius:var(--r); background:var(--bg-2);
  overflow:hidden; box-shadow:var(--page-shadow); }
.figframe__bar{ display:flex; align-items:center; justify-content:center; position:relative; height:30px;
  border-bottom:1px solid var(--border); background:var(--panel); }
.figframe__dots{ position:absolute; left:12px; top:50%; transform:translateY(-50%); display:flex; gap:6px; }
.figframe__dots i{ width:8px; height:8px; border-radius:50%; display:block; }
.figframe__dots .d-danger{ background:var(--danger); }
.figframe__dots .d-warn{ background:var(--warn); }
.figframe__dots .d-ok{ background:var(--ok); }
.figframe__label{ font-size:9.5px; font-weight:700; letter-spacing:0.14em; color:var(--ink-3); }
.figframe img{ display:block; width:100%; height:auto; background:var(--panel); min-height:120px; }
.figframe img.figframe__broken{ display:none; }
.figframe__rail{ display:flex; align-items:baseline; gap:8px; padding:9px 13px; border-top:1px solid var(--border);
  background:var(--panel); font-size:12px; color:var(--ink-2); }
.figframe__fig{ font-size:10px; font-weight:700; letter-spacing:0.08em; color:var(--accent-bright); flex:none; }

/* Solid ground, hairline border, caps title bar - no side stripe, matching
   the manual's own dsbox styling ("no gradients, no shadows, no side
   stripes" per its LaTeX source comment). The title bar itself, tinted per
   kind, carries the color signal instead. */
.callout{ margin:20px 0; border:1px solid var(--border); border-radius:var(--r);
  background:var(--panel); overflow:hidden; }
.callout__bar{ display:flex; align-items:center; gap:8px; padding:10px 14px; border-bottom:1px solid var(--border);
  background:var(--accent-dim); }
.callout__title{ font-size:11px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent-bright); }
.callout__value{ margin-left:auto; font-size:13px; font-weight:700; color:var(--gold); }
.callout__body{ padding:14px 16px; }
.callout__body p:last-child{ margin-bottom:0; }
.callout[data-kind="warn"] .callout__bar{ background:color-mix(in srgb, var(--warn) 14%, transparent); }
.callout[data-kind="warn"] .callout__title{ color:var(--warn); }
.callout[data-kind="pro"] .callout__bar{ background:color-mix(in srgb, var(--gold) 14%, transparent); }
.callout[data-kind="pro"] .callout__title{ color:var(--gold); }
.callout[data-kind="metric"] .callout__title{ color:var(--accent-bright); }

/* ---- Rail ---- */
.rail{ position:sticky; top:var(--docs-nav-h,58px); align-self:start; height:calc(100vh - var(--docs-nav-h,58px)); overflow-y:auto; padding:32px 18px 40px 6px; }
.rail__h{ font-size:10.5px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-3); margin-bottom:10px; }
.rail nav{ border-left:1px solid var(--border); padding-left:12px; display:flex; flex-direction:column; gap:2px; }
.rail a{ font-size:12.5px; color:var(--ink-3); padding:5px 0; position:relative; display:block; }
.rail a::before{ content:''; position:absolute; left:-13px; top:0; bottom:0; width:2px; background:transparent; }
.rail a:hover{ color:var(--ink-2); }
.rail a.active{ color:var(--accent-bright); font-weight:600; }
.rail a.active::before{ background:var(--accent); }
.rail a.lvl3{ padding-left:12px; font-size:12px; }

/* =========================== Search modal =========================== */
.modal-scrim{ position:fixed; inset:0; z-index:200; background:rgba(6,8,11,.55); backdrop-filter:blur(2px);
  display:none; align-items:flex-start; justify-content:center; padding-top:min(14vh,120px); }
.modal-scrim.open{ display:flex; }
.modal{ width:min(560px,92vw); background:var(--bg-2); border:1px solid var(--border-hi); border-radius:var(--r);
  box-shadow:0 24px 60px -20px rgba(0,0,0,.5); overflow:hidden; }
.modal__bar{ display:flex; align-items:center; gap:10px; padding:13px 16px; border-bottom:1px solid var(--border); }
.modal__bar svg{ width:16px; height:16px; color:var(--ink-3); flex:none; }
.modal__bar input{ flex:1; border:0; background:transparent; outline:none; color:var(--ink); font-family:inherit; font-size:14.5px; }
.modal__bar input::placeholder{ color:var(--ink-3); }
.modal__esc{ font-size:10px; font-weight:700; color:var(--ink-3); border:1px solid var(--border-hi); border-radius:4px; padding:2px 6px; flex:none; }
.modal__results{ max-height:52vh; overflow-y:auto; padding:8px; }
.modal__empty{ padding:26px 16px; text-align:center; color:var(--ink-3); font-size:13px; display:none; }
.modal__hint{ padding:26px 16px; text-align:center; color:var(--ink-3); font-size:12.5px; display:none; }
.result{ display:flex; flex-direction:column; gap:3px; padding:10px 11px; border-radius:var(--r-s); width:100%; text-align:left; background:transparent; border:0; }
.result:hover, .result.sel{ background:var(--panel); }
.result__path{ font-size:10.5px; color:var(--ink-3); display:flex; align-items:center; gap:5px; }
.result__title{ font-size:13.5px; font-weight:600; color:var(--ink); }
.result__snip{ font-size:12px; color:var(--ink-2); line-height:1.5; }

/* =========================== Responsive =========================== */
@media (max-width:1180px){
  .docs-shell{ grid-template-columns:272px minmax(0,1fr); }
  .rail{ display:none; }
}
@media (max-width:860px){
  .docstop{ gap:10px; padding-inline:10px; }
  .docstop__brand{ gap:0; }
  .docstop__tag, .docstop__spacer, .docstop .iconbtn, .docstop > .btn, .docstop__search .kbd{ display:none; }
  .docstop__search{ width:auto; min-width:0; flex:1 1 auto; padding-inline:11px; }
  .docs-shell{ grid-template-columns:1fr; }
  .docstop__burger{ display:flex; }
  .crumb{ display:none; }
  .docstop__search{ width:auto; flex:1 1 auto; }
  .sidebar{ position:fixed; top:var(--docs-nav-h,58px); left:0; bottom:0; width:82vw; max-width:320px; z-index:120;
    background:var(--bg); transform:translateX(-100%); transition:transform .22s ease; box-shadow:var(--shadow); }
  .sidebar.open{ transform:translateX(0); }
  .scrim.open{ display:block; position:fixed; inset:var(--docs-nav-h,58px) 0 0 0; background:rgba(6,8,11,.45); z-index:110; }
  .main{ padding:24px 14px 100px; }
  .captable--wide{ min-width:720px; }
}
