/* Shared blocks for any page: engine demos (demos.mjs), terminal, prompt and agent picker (agents.mjs).
   build.mjs links this file only on pages that use one of them. */
/* engine demos (any page) (static/engine-docs.js adds .js-on and the controls) */
.eng-inst,.eng-flow,.eng-sess,.eng-doc{margin:20px 0;padding:16px;border:1px solid var(--border-light);border-radius:8px;background:#fff}
.eng-bytes{margin:20px 0}
.eng-bytes figcaption{margin-top:10px;font-size:12.5px;line-height:1.5;color:var(--text-3)}
.eng-btn,.eng-pick{font:500 12.5px var(--sans);color:var(--text-2);background:var(--bg-code);border:1px solid var(--border-light);border-radius:6px;padding:.4rem .7rem;cursor:pointer}
.eng-btn:hover,.eng-pick:hover{color:var(--ink);background:#e9e9ec}
.eng-btn:disabled{opacity:.4;cursor:default}
.eng-btn:focus-visible,.eng-pick:focus-visible,.eng-r:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.eng-pick[aria-pressed=true]{color:var(--ink);background:#fff;border-color:var(--ink)}
.eng-inst-row{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:16px}
.eng-inst-g{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.eng-inst-g span{margin-right:4px;font:600 11px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-4)}
.eng-inst-p{padding:14px 0;border-top:1px solid var(--border-light)}
.eng-inst-p:first-child{padding-top:0;border-top:0}
.eng-inst.js-on .eng-inst-p{display:none;padding:0;border:0}
.eng-inst.js-on .eng-inst-p.on{display:block}
.eng-inst-p h3{margin:0 0 6px;font-size:16px}
.eng-step{margin:14px 0 0;font-size:13px;font-weight:500;color:var(--ink)}
.eng-chan{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--text-3)}
.eng-r{display:block;width:100%;margin:0 0 12px;accent-color:var(--ink)}
.eng-bytes-box{margin-bottom:14px}
.eng-bytes-name{margin:0 0 8px;font-weight:500;color:var(--ink)}
.eng-bytes-val{margin:8px 0 0;font:12.5px var(--mono);color:var(--text-3)}
.eng-bytes.js-on tbody tr{cursor:pointer}
.eng-bytes.js-on tbody tr[aria-current=true]{background:var(--accent-light)}
.eng-flow-steps{margin:0;padding-left:1.4em}
.eng-flow-s{margin:0 0 10px;padding-left:8px;border-left:2px solid transparent}
.eng-flow-s p{margin:2px 0 0}
.eng-flow-s .eng-flow-h{margin:0;font-weight:600;color:var(--ink)}
.eng-flow.js-on .eng-flow-s{opacity:.4}
.eng-flow.js-on .eng-flow-s.done{opacity:.7}
.eng-flow.js-on .eng-flow-s.on{opacity:1;border-left-color:var(--accent)}
.eng-flow-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.eng-flow-n{min-width:150px;font:12.5px var(--mono);color:var(--text-3)}
.eng-sess-t{display:grid;gap:4px;margin:0 0 12px;padding:0;list-style:none;font:12.5px var(--mono)}
.eng-sess-t li{padding:5px 10px;border-left:2px solid var(--border);color:var(--text-2)}
.eng-sess-t li[data-kind=error]{color:var(--block)}
.eng-sess-t li[data-kind=state]{border-left-color:var(--save)}
.eng-sess-t .eng-sess-c{border-left-color:var(--ink);font-weight:600;color:var(--ink)}
.eng-sess.js-on .eng-sess-t li,.eng-sess.js-on .eng-sess-state{opacity:.3}
.eng-sess.js-on .eng-sess-t li.on,.eng-sess.js-on .eng-sess-state.on{opacity:1}
.eng-sess-t li.src{border-left-color:var(--accent);background:var(--accent-light)}
.eng-doc-l{margin:12px 0;padding:0;list-style:none;font:12.5px/1.9 var(--mono)}
.eng-ok{display:inline-block;min-width:3.2em;font-weight:600;color:var(--save)}
.eng-doc.js-on .eng-doc-l li.wait .eng-ok{visibility:hidden}

/* ── Terminal, prompt and agent picker (agents.mjs: term, promptBlock, enginePicker) ───────────────────────────── */
.term,.prompt{margin:16px 0;border:1px solid #27272a;border-radius:10px;background:#0a0a0a;color:#fafafa;overflow:hidden}
.term-h{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 6px 0 12px;border-bottom:1px solid #27272a}
.term-d{width:9px;height:9px;border-radius:50%;background:#3f3f46;box-shadow:14px 0 #3f3f46,28px 0 #3f3f46;margin-right:28px}
.term-h[data-t]::after{content:attr(data-t);font:500 11px var(--mono);color:#a1a1aa;order:1}
.term-c{margin-left:auto;order:2;font:500 12px var(--sans);color:#fafafa;background:#18181b;border:1px solid #3f3f46;border-radius:6px;padding:4px 10px;cursor:pointer}
.term-c:hover{background:#27272a}.term-c:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.term-c[data-done]{color:#86efac;border-color:#166534}
.doc .term pre,.term-b{margin:0;padding:12px 14px;background:transparent;border:0;color:inherit;font:13px/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}
.doc .term pre code,.term-b code{background:none;color:inherit;padding:0;font:inherit}
.term-l::before{content:"$ ";color:#71717a;user-select:none;-webkit-user-select:none}
.prompt-t{font:500 11px var(--mono);color:#a1a1aa;text-transform:uppercase;letter-spacing:.08em}
.doc .prompt pre,.prompt-b{margin:0;padding:12px 14px;background:transparent;border:0;color:inherit;font:14px/1.6 var(--sans);white-space:pre-wrap;overflow-wrap:anywhere;max-height:none}
.prompt figcaption{display:none}
.epk{margin:20px 0;border:1px solid var(--border);border-radius:12px;background:var(--bg)}
.epk-nav{display:flex;flex-wrap:wrap;gap:14px 24px;padding:14px 16px;border-bottom:1px solid var(--border)}
.epk-g{display:flex;flex-direction:column;gap:6px;min-width:0}
.epk-gh{font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-4)}
.epk-tabs{display:flex;flex-wrap:wrap;gap:6px}
.epk-tab{font:500 13px var(--sans);color:var(--text-2);background:var(--bg-alt);border:1px solid var(--border-light);border-radius:6px;padding:5px 10px;text-decoration:none}
.epk-tab:hover{color:var(--ink);text-decoration:none}
.epk-tab[aria-selected="true"]{color:#fff;background:var(--ink);border-color:var(--ink)}
.epk-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.epk-p{padding:4px 16px 16px;scroll-margin-top:80px}
.epk-p+.epk-p{border-top:1px solid var(--border-light)}
.js-epk .epk-p+.epk-p{border-top:0}
.js-epk .epk-p[hidden]{display:none}
.epk-p h3{margin:14px 0 2px;font:600 17px var(--sans);color:var(--ink)}
.epk-k{margin:0 0 8px;color:var(--text-3);font-size:14px}
.epk-s{font:600 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);margin:16px 0 0}
.epk-ok{margin:16px 0 0;padding:10px 12px;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-alt);font-size:14px;color:var(--text-2)}
.epk-ok a{color:var(--accent)}
.epk-more{margin-top:12px}.epk-more summary{cursor:pointer;font:500 14px var(--sans);color:var(--text-2)}
.try-r{margin:-6px 0 22px;font-size:14px;color:var(--text-3)}
