/* docs.css — the developer area: shell + prose, on the site's tokens. Zero JS. */
.docs-body { background: var(--paper); }
.docs-top { background: var(--ink); color: var(--on-ink); }
.docs-top-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 14px var(--gutter); }
.brand--link { text-decoration: none; color: inherit; display: inline-flex; align-items: center; gap: 10px; }
.docs-top .mark { width: 26px; height: 22px; fill: var(--on-ink); }
.docs-top .wordmark { font: 700 1.05rem/1 var(--display); letter-spacing: -0.01em; color: var(--on-ink); }
.docs-nav { display: flex; gap: clamp(12px, 2vw, 26px); flex-wrap: wrap; }
.docs-nav a { color: var(--on-ink-soft); text-decoration: none; font-size: var(--t-small); padding: 6px 0; border-bottom: 2px solid transparent; }
.docs-nav a:hover { color: var(--on-ink); }
.docs-nav a[aria-current="page"] { color: var(--on-ink); border-bottom-color: var(--indigo-2); }
.docs-shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); padding: clamp(28px, 4vw, 48px) var(--gutter) clamp(48px, 6vw, 80px); }
.docs-side { position: sticky; top: 24px; align-self: start; font-size: var(--t-small); }
.docs-side-h { font: 700 var(--t-meta)/1.4 var(--sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin: 18px 0 6px; }
.docs-side-h:first-child { margin-top: 0; }
.docs-side ul { margin: 0 0 4px; }
.docs-side li { margin: 0; }
.docs-side a { display: block; padding: 5px 10px; border-radius: 6px; color: var(--text); text-decoration: none; }
.docs-side a:hover { background: var(--indigo-soft); }
.docs-side a[aria-current="page"] { background: var(--indigo-3); color: var(--indigo); font-weight: 600; }
.docs-main { min-width: 0; }
.docs-crumbs { font-size: var(--t-small); color: var(--muted); margin-bottom: 18px; }
.docs-crumbs a { color: var(--muted); }
.docs-src { float: right; font-family: var(--mono); font-size: var(--t-meta); }
.prose { background: var(--surface); border: 1px solid var(--border); border-radius: 14px; padding: clamp(22px, 3.5vw, 44px); max-width: 82ch; }
.prose h1 { font: 700 clamp(1.7rem, 3vw, 2.3rem)/1.15 var(--display); letter-spacing: -0.02em; margin: 0 0 18px; max-width: none; }
.prose h2 { font: 700 clamp(1.25rem, 2vw, 1.55rem)/1.25 var(--display); letter-spacing: -0.01em; margin: 40px 0 12px; padding-top: 18px; border-top: 1px solid var(--border); max-width: none; }
.prose h3 { font: 700 1.1rem/1.3 var(--display); margin: 28px 0 8px; }
.prose h4 { font: 700 1rem/1.3 var(--sans); margin: 20px 0 6px; }
.prose p { margin: 0 0 14px; }
.prose ul, .prose ol { padding-left: 1.4em; margin: 0 0 14px; list-style: revert; }
.prose li { margin: 4px 0; }
.prose li > ul, .prose li > ol { margin-top: 4px; margin-bottom: 4px; }
.prose a { color: var(--indigo); text-decoration: underline; text-underline-offset: 3px; }
.prose code { font: 0.9em var(--mono); background: var(--indigo-soft); border: 1px solid var(--indigo-3); border-radius: 5px; padding: 1px 5px; }
.prose pre { background: var(--ink); color: var(--on-ink); border-radius: 10px; padding: 16px 18px; overflow-x: auto; margin: 0 0 18px; font-size: 0.875rem; line-height: 1.55; }
.prose pre code { background: none; border: 0; padding: 0; color: inherit; font-size: inherit; }
.prose blockquote { margin: 0 0 16px; padding: 10px 18px; border-left: 3px solid var(--indigo-2); background: var(--indigo-soft); color: var(--text); border-radius: 0 8px 8px 0; }
.prose blockquote p:last-child { margin-bottom: 0; }
.prose table { border-collapse: collapse; width: 100%; margin: 0 0 20px; font-size: var(--t-small); display: block; overflow-x: auto; }
.prose th, .prose td { border: 1px solid var(--border); padding: 8px 10px; text-align: left; vertical-align: top; }
.prose th { background: var(--paper); font-weight: 600; }
.prose img { max-width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--border); }
.prose hr { border: 0; border-top: 1px solid var(--border); margin: 28px 0; }
.prose em { color: var(--muted); }
.docs-foot { border-top: 1px solid var(--border); background: var(--surface); }
.docs-foot .wrap { padding: 22px var(--gutter); font-size: var(--t-small); color: var(--muted); }
.docs-foot p { margin: 0 0 4px; }
.docs-foot a { color: var(--indigo); }
@media (max-width: 860px) {
  .docs-shell { grid-template-columns: 1fr; }
  .docs-side { position: static; display: flex; flex-wrap: wrap; gap: 0 14px; padding-bottom: 14px; border-bottom: 1px solid var(--border); }
  .docs-side-h { width: 100%; margin-top: 10px; }
  .docs-side ul { display: flex; flex-wrap: wrap; gap: 2px 8px; }
  .docs-src { float: none; display: block; margin-top: 4px; }
}
.docs-shell--single { grid-template-columns: minmax(0, 1fr); }
.docs-shell--single .prose { max-width: 82ch; margin-inline: auto; }
.cform label { display: block; font-size: var(--t-small); color: var(--muted); margin-bottom: 4px; }
.cform input, .cform select, .cform textarea { width: 100%; box-sizing: border-box; font: inherit; padding: 9px 11px; border: 1px solid var(--border-2); border-radius: 8px; background: var(--surface); color: var(--text); }
.cform input:focus, .cform select:focus, .cform textarea:focus { outline: 2px solid var(--indigo-2); outline-offset: 1px; border-color: var(--indigo); }
.cform p { margin: 0 0 14px; }
.cform-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cform .cta { display: inline-block; background: var(--indigo); color: var(--on-ink); border: 0; border-radius: 10px; padding: 12px 20px; font: 600 var(--t-body)/1 var(--sans); cursor: pointer; }
.cform-note { font-size: var(--t-small); color: var(--muted); }
