:root{color:#1f2933;background:#fff;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{height:100vh;margin:0}#app{flex-direction:column;height:100vh;display:flex}.app-fallback{max-width:720px;padding:24px;line-height:1.5}.toolbar{background:#f9fafb;border-bottom:1px solid #e5e5e5;flex-wrap:wrap;gap:8px 12px;padding:8px 12px;display:flex}.toolbar-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}button,.button{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:6px;height:30px;padding:0 10px;font-size:12px;line-height:1;display:inline-flex}button:hover,.button:hover{border-color:#9ca3af}.button input[type=file]{display:none}.github-link{color:inherit;margin-left:auto;text-decoration:none}.github-link svg{width:14px;height:14px}.pane{flex:1;grid-template-columns:minmax(320px,1fr) minmax(400px,1.2fr);height:100%;min-height:0;display:grid}.editor-pane{border-right:1px solid #e5e7eb;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}#editor{flex:1;min-height:0;overflow:hidden}#editor .cm-editor{height:100%}#editor .cm-scroller{overflow:auto}.diagnostics{background:#f8fafc;border-top:1px solid #e5e7eb;max-height:200px;padding:8px 12px;font-size:12px;line-height:1.4;overflow-y:auto}.diagnostic{margin-bottom:6px}.diagnostic.error{color:#b91c1c}.diagnostic.warning{color:#9a6700}.diagram-pane{flex-direction:column;min-width:0;min-height:0;display:flex}#diagram-container{background:#fff;flex:1;height:100%;overflow:hidden}#diagram{width:100%;height:100%;display:block}.node-rect{fill:#fff;stroke:#ccc;stroke-width:1.5px}.group-rect{fill:#f8fafc;stroke:#bbb;stroke-width:1.5px}.group-label{fill:#4b5563;font-size:12px;font-weight:600}.node-title{fill:#222;font-size:13px;font-weight:700}.field-text{fill:#333;font-size:12px}.field-bg{fill:#0000}.field{cursor:pointer}.field:hover .field-bg{fill:#e8f3ff}.field--active .field-bg,.field--reverse .field-bg{fill:#d7ecff}.edge{stroke:#ddd;stroke-width:2px;fill:none;transition:stroke .2s,stroke-width .2s,opacity .2s}.edge--active,.edge--reverse{stroke:#2196f3;stroke-width:3px}.dim{opacity:.2}.empty-state{fill:#6b7280;font-size:14px}
