:root{color-scheme:light dark;--bg: #f4f4f2;--panel: #ffffff;--border: #d8d8d4;--text: #1a1a18;--muted: #6b6b66;--accent: #8a5a2b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #16161a;--panel: #1e1e24;--border: #33333a;--text: #eae8e2;--muted: #9a988f;--accent: #c99a56}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app{padding:1rem 1.5rem 3rem}header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:.75rem;margin-bottom:1rem}header h1{font-size:1.2rem;margin:0}.header-controls{display:flex;align-items:center;gap:.75rem;margin-left:auto}.state-badge{font-family:monospace;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:.2rem .6rem}.conn-badge{font-size:.75rem;border-radius:6px;padding:.2rem .6rem}.conn-up{color:#4caf82;border:1px solid #4caf82}.conn-down{color:#d98c3f;border:1px solid #d98c3f}.landing{max-width:480px;margin:3rem auto;display:flex;flex-direction:column;gap:.8rem}.error-banner{background:#4a1f1f;color:#ffb4b4;padding:.5rem .8rem;border-radius:6px;margin-bottom:1rem}.narration-banner{background:var(--panel);border:1px solid var(--accent);color:var(--text);font-style:italic;padding:.5rem .8rem;border-radius:6px;margin-bottom:1rem}.columns{display:grid;grid-template-columns:340px 1fr 320px 300px;gap:1rem;align-items:start;overflow-x:auto}.col{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.8rem;min-height:200px}.col h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:.2rem 0 .6rem}label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;margin:.5rem 0}input,select,textarea,button{font:inherit;padding:.35rem .5rem;border-radius:5px;border:1px solid var(--border);background:var(--bg);color:var(--text)}button{cursor:pointer}button:hover{border-color:var(--accent)}.join-row{display:flex;gap:.4rem;margin-bottom:.6rem}.hint{color:var(--muted);font-size:.78rem}.dev-only-label{font-family:monospace;text-transform:uppercase;letter-spacing:.03em;color:#d98c3f}.move-card{border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;margin:.5rem 0;display:flex;flex-direction:column;gap:.3rem}.move-card.disabled{opacity:.55}.move-prompt{color:var(--muted);font-style:italic;font-size:.8rem;margin:.1rem 0 .3rem}.param-row{flex-direction:row!important;align-items:center;justify-content:space-between;gap:.5rem}.param-row input,.param-row select,.param-row textarea{flex:1}.array-object-input{display:flex;flex-direction:column;gap:.4rem;flex:1}.array-object-row{display:flex;align-items:flex-end;gap:.4rem;border:1px solid var(--border);border-radius:5px;padding:.4rem;flex-wrap:wrap}.array-object-field{margin:0;font-size:.78rem;min-width:80px;flex:1}.array-object-remove{align-self:flex-end}.json-view{font-family:monospace;font-size:.78rem;white-space:pre-wrap;word-break:break-word;max-height:70vh;overflow:auto}.doc-view-toggle{display:flex;gap:.4rem;margin-bottom:.6rem}.doc-view-toggle button.active{border-color:var(--accent);color:var(--accent)}.doc-view{max-height:70vh;overflow:auto;font-size:.82rem}.doc-object{display:flex;flex-direction:column;gap:.15rem}.doc-row{display:flex;justify-content:space-between;gap:.6rem;padding:.12rem 0;border-bottom:1px dotted var(--border)}.doc-key{color:var(--muted)}.doc-row-composite{border:1px solid var(--border);border-radius:5px;padding:.3rem .5rem;margin:.2rem 0}.doc-row-composite>summary{cursor:pointer;color:var(--muted)}.doc-row-composite .doc-object{margin-top:.4rem;padding-left:.5rem;border-left:2px solid var(--border)}.doc-array{display:flex;flex-direction:column;gap:.3rem}.doc-array-item{border:1px solid var(--border);border-radius:5px;padding:.3rem .5rem}.doc-array-item>summary{cursor:pointer;font-weight:600}.doc-array-item .doc-object{margin-top:.4rem;padding-left:.5rem;border-left:2px solid var(--border)}.doc-null{color:var(--muted);font-style:italic}.doc-bool.doc-true{color:#4caf82}.doc-bool.doc-false{color:var(--muted)}.doc-enum{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:0 .35rem;font-size:.76rem}.doc-chips{display:flex;flex-wrap:wrap;gap:.25rem}.doc-chip{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:0 .35rem;font-size:.76rem}.doc-scalar{word-break:break-word;text-align:right}.flow-chart{display:flex;flex-direction:column;gap:.5rem;max-height:75vh;overflow:auto}.flow-node{border:1px solid var(--border);border-radius:6px;padding:.4rem .6rem}.flow-node-current{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel))}.flow-node-head{display:flex;align-items:center;justify-content:space-between}.flow-here{font-size:.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:.03em}.flow-moves{display:flex;flex-wrap:wrap;gap:.25rem;margin:.3rem 0}.flow-move-chip{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:0 .35rem;font-size:.72rem}.flow-edge{font-size:.76rem;color:var(--muted);display:flex;align-items:center;gap:.4rem;padding:.1rem 0}.flow-edge strong{color:var(--text);font-weight:500}.flow-edge-label{font-style:italic}.flow-edge-status{margin-left:auto;border-radius:4px;padding:0 .35rem;font-size:.68rem;text-transform:uppercase}.flow-status-ready{color:#4caf82;border:1px solid #4caf82}.flow-status-waiting{color:#d98c3f;border:1px solid #d98c3f}.flow-status-manual{color:var(--muted);border:1px solid var(--border)}.flow-edge-dim{opacity:.6}.tooltip-host{position:relative;display:inline-block;outline:none}.tooltip-bubble{display:none;position:absolute;left:0;top:100%;margin-top:.3rem;z-index:10;width:max-content;max-width:260px;background:var(--panel);color:var(--text);border:1px solid var(--accent);border-radius:6px;padding:.4rem .55rem;font-size:.76rem;font-weight:400;font-style:normal;line-height:1.35;box-shadow:0 4px 12px #0000004d;white-space:pre-line}.tooltip-host:hover .tooltip-bubble,.tooltip-host:focus-within .tooltip-bubble{display:block}.event-log{display:flex;flex-direction:column;gap:.5rem;max-height:75vh;overflow:auto}.event-row{border-left:2px solid var(--border);padding-left:.5rem;font-size:.8rem}.event-head{font-family:monospace}.event-transition{color:var(--accent)}.event-detail{color:var(--muted);word-break:break-word}
