/* Documentation pages (site-src/pages/docs/*). Uses only tokens from rf.css. */

/* page head: eyebrow, title, summary */
.prose .eyebrow{display:block}
.prose .eyebrow+h1{margin-top:.55em}
.prose h1+.lead{margin-top:.8em}
.prose .lead{font-size:clamp(16px,1.5vw,18px);line-height:1.6}

/* section anchors stay readable under the sticky header */
.prose h2,.prose h3{scroll-margin-top:calc(var(--hdr) + 16px)}
.prose h2{border-top:1px solid var(--line);padding-top:1.1em}
.prose .eyebrow~h2:first-of-type{border-top:0;padding-top:0}

/* tables inside prose: tighter, identifiers never break mid-token */
.prose .scroll{border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.prose .scroll table{min-width:0}
.prose .scroll table:has(th:nth-child(3)){min-width:520px}
.prose td:first-child{min-width:5.5em}
.prose th,.prose td{padding:9px 12px}
.prose td code,.prose th code{white-space:nowrap}
.prose td:first-child{font-weight:500}
.prose td:first-child code{font-weight:400}
.prose .num{font-weight:400}

/* four-step flow */
.prose .steps{margin-top:1.4em;gap:18px}
.steps.flow li{color:var(--fg);border-top-color:var(--acc);padding-top:10px;font-size:14px;line-height:1.5;counter-increment:none}
.steps.flow li .n{display:block;font:500 12px var(--mono);color:var(--acc);margin-bottom:4px}
.steps.flow li strong{display:block;font-weight:600;margin-bottom:4px}
.steps.flow li span.d{display:block;color:var(--mute);font-size:13.5px}
.prose ol.steps{padding-left:0}
.prose ol.steps li+li{margin-top:0}

/* note blocks: content sits in a div so strong text and links wrap normally */
.note>div{min-width:0}
.note>div>*+*{margin-top:.5em}
.note p{line-height:1.55}
.prose .note.warn,.prose .note.bad{font-size:14.5px}

/* code blocks */
.code .bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.code pre code{white-space:pre}
.prose .code pre{font-size:13px}

/* index cards: equal padding on all sides (h3 margins from .prose are reset) */
.doc-cards{margin-top:1.2em}
.doc-cards a.card{padding:16px 18px;height:100%;display:flex;flex-direction:column;gap:4px}
.doc-cards a.card:hover h3{color:var(--acc)}
.doc-cards h3{font-size:16px;line-height:1.3;margin:0}
.doc-cards p{color:var(--mute);font-size:14px;line-height:1.5;margin:0}

/* quick links: task-first entry points on the docs index */
.prose .quick{list-style:none;padding:0;margin:1em 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);background:var(--panel);overflow:hidden}
.prose .quick li{margin:0;padding:0;border-top:1px solid var(--line)}
.prose .quick li:nth-child(-n+2){border-top:0}
.prose .quick li:nth-child(even){border-left:1px solid var(--line)}
.quick a{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"t arrow" "h arrow";column-gap:12px;align-items:center;min-height:56px;padding:11px 16px;color:var(--fg);text-decoration:none;transition:background-color .15s var(--ease)}
.quick a::after{content:"\203A";grid-area:arrow;color:var(--faint);font-size:20px;line-height:1;transition:color .15s var(--ease),transform .15s var(--ease)}
.quick a strong{grid-area:t;font-weight:600;font-size:15px;line-height:1.35}
.quick a span{grid-area:h;color:var(--mute);font-size:13px;line-height:1.4}
.quick a:hover{background:var(--panel2)}
.quick a:hover strong{color:var(--acc)}
.quick a:hover::after{color:var(--acc);transform:translateX(2px)}
.quick a:focus-visible{outline-offset:-3px}
@media (max-width:680px){
  .prose .quick{grid-template-columns:minmax(0,1fr)}
  .prose .quick li:nth-child(2){border-top:1px solid var(--line)}
  .prose .quick li:nth-child(even){border-left:0}
}
@media (prefers-reduced-motion:reduce){.quick a,.quick a::after{transition:none}.quick a:hover::after{transform:none}}

/* previous / next */
.pager{display:flex;margin-top:3em;padding-top:1.4em;border-top:1px solid var(--line)}
.pager a.next{display:block;margin-left:auto;min-width:min(100%,240px);padding:12px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);text-decoration:none;color:var(--fg);transition:border-color .15s var(--ease)}
.pager a.next:hover{border-color:var(--acc)}
.pager a.next small{display:block;color:var(--mute);font-size:12px;font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase}
:lang(zh) .pager a.next small{font-family:var(--sans);letter-spacing:.02em;text-transform:none}
.pager a.next strong{display:flex;justify-content:space-between;gap:16px;font-weight:600;font-size:16px;margin-top:2px}
.pager a.next strong::after{content:"\203A";color:var(--acc)}

/* FAQ */
.faq>*+*{margin-top:1em}
.faq>h2{margin-top:2.2em}
.faq>h3{margin-top:1.6em;font-size:17px}
.faq>h3+*{margin-top:.4em}
.faq>h2+h3{margin-top:1em}

/* state machine diagram */
.fig{margin-top:1.4em}
.fig figcaption{margin-top:.6em;font-size:13px;color:var(--mute)}
.fig .scroll{padding:12px}
.sd{display:block;width:100%;min-width:640px;max-width:760px;height:auto;margin-inline:auto}
.sd .st rect{fill:var(--panel2);stroke:var(--line-strong);stroke-width:1.2}
.sd .st.start rect{fill:var(--panel)}
.sd .st.ok rect{stroke:var(--good);stroke-width:1.6}
.sd .st.bad rect{stroke:var(--bad);stroke-width:1.6}
.sd .st.mid rect{stroke:var(--fg);stroke-width:1.4}
.sd .st text{font:500 12px var(--mono);fill:var(--fg);text-anchor:middle}
.sd .lbl{font:500 12.5px var(--sans);fill:var(--mute);text-anchor:middle}
.sd .e{fill:none;stroke:var(--mute);stroke-width:1.2}
.sd .e.dash{stroke-dasharray:4 3}
.sd .ah{fill:var(--mute);stroke:none}
.sd .lbl.l{text-anchor:start}
.sd .lbl.r{text-anchor:end}
.sd .st.end rect{stroke:var(--mute);stroke-width:1.6}

/* long inline identifiers and JSON fragments wrap instead of widening the page */
.prose p code,.prose li code,.note code{overflow-wrap:anywhere}
