:root{--bg: #0e1116;--surface: #151a21;--surface-2: #1b222b;--border: #262e39;--border-strong: #39434f;--text: #e6ebf2;--text-muted: #8d99a8;--accent: #3fb950;--accent-strong: #2ea043;--danger: #f85149;--warning: #d29922;--edge: #46505e;--edge-bidi: #3fb950;--radius: 8px;--radius-sm: 5px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid var(--bg)}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.5}code,pre{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{height:100%;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem 1rem;border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap}.app-title h1{font-size:1rem;margin:0}.app-title p{margin:0;color:var(--text-muted);font-size:.75rem}.app-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.example-select{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.8125rem}.example-select select{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.375rem .5rem;font:inherit;cursor:pointer}.btn{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.375rem .75rem;font:inherit;font-size:.8125rem;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--text-muted)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#08110b;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){color:var(--text)}.app-main{flex:1;min-height:0;padding:.75rem}.app-panels,.editor-panels{height:100%}.editor-panel,.console-panel,.results-panel{min-width:0;min-height:0;overflow:hidden}.editor-panel>.pane-card,.console-panel>.pane-card,.results-panel>.pane-card{height:100%}.resize-handle{position:relative;flex-shrink:0;width:.75rem;background:transparent;border-radius:var(--radius-sm);touch-action:none;outline-offset:-2px}.resize-handle-horizontal{width:auto;height:.75rem}.resize-handle:after{content:"";position:absolute;left:50%;top:.375rem;bottom:.375rem;width:2px;transform:translate(-50%);border-radius:999px;background:var(--border);transition:background-color .12s ease}.resize-handle-horizontal:after{left:.375rem;right:.375rem;top:50%;bottom:auto;width:auto;height:2px;transform:translateY(-50%)}.resize-handle:hover:after,.resize-handle:focus-visible:after,.resize-handle:active:after{background:var(--accent)}.editor-pane{min-width:0;min-height:0}.pane-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:0}.pane-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);min-height:2.25rem}.pane-header h2{font-size:.8125rem;margin:0;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.pane-hint{margin:0;font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pane-header-wrap{flex-wrap:wrap}.editor-card{flex:1}.editor-body{flex:1;min-height:0;display:flex}.code-editor{flex:1;min-height:0;overflow:hidden}.code-editor>div{height:100%}.code-editor .cm-editor{height:100%}.code-editor .cm-scroller{overflow:auto;font-family:var(--font-mono);font-size:13px}.code-editor .cm-gutters{background:transparent;border-right:1px solid var(--border)}.code-editor .cm-activeLine,.code-editor .cm-activeLineGutter{background:#ffffff08}.code-editor .cm-imports-fold{padding:0 .4rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-muted);font-size:.85em;cursor:pointer;-webkit-user-select:none;user-select:none}.code-editor .cm-imports-fold:hover{background:var(--border);color:var(--text)}.code-editor .cm-tooltip{max-width:520px}.code-editor .cm-ts-hover{padding:.4rem .55rem;font-size:12px;line-height:1.45}.code-editor .cm-ts-hover code{display:block;color:var(--text);white-space:pre-wrap;word-break:break-word}.code-editor .cm-ts-hover-doc{margin-top:.3rem;color:var(--text-muted);white-space:pre-wrap}.console-card{min-height:0}.console-body{flex:1;min-height:0;overflow:auto;padding:.5rem .75rem}.console-entry{display:flex;gap:.5rem;align-items:baseline;padding:.125rem 0}.console-level{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);min-width:2.6rem;text-align:right;font-family:var(--font-mono);flex-shrink:0}.console-entry pre{margin:0;white-space:pre-wrap;word-break:break-word;font-size:.75rem;flex:1}.console-warn pre{color:var(--warning)}.console-error pre{color:var(--danger)}.results-card{min-height:0}.results-body{flex:1;min-height:0;position:relative;overflow:auto}.empty{color:var(--text-muted);font-size:.8125rem;padding:1.5rem;text-align:center;margin:0}.pane-hint-count{font-family:var(--font-mono);white-space:nowrap;color:var(--text-muted)}.view-toggle{display:flex;gap:.25rem}.btn-toggle{padding:.25rem .625rem}.btn-toggle-active{border-color:var(--accent);color:var(--accent)}.force-graph-wrap{position:absolute;inset:0;display:flex;flex-direction:column}.force-graph{flex:1;width:100%;height:100%;touch-action:none}.force-graph text{font-family:var(--font-mono);fill:var(--text-muted);pointer-events:none}.force-graph .node-label{font-size:10px;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.force-graph .link{stroke:var(--edge);stroke-width:1.5;fill:none}.force-graph .link-bidi{stroke:var(--edge-bidi)}.force-graph .link-mapping{stroke:var(--text-muted);stroke-dasharray:4 4;stroke-width:1.2;opacity:.7}.force-graph .link-mapping.link-active{stroke-width:2;opacity:1}.force-graph .link-active{stroke-width:2.5}.force-graph .link-label{font-size:9px;paint-order:stroke;stroke:var(--bg);stroke-width:3px;fill:var(--text)}.force-graph .marker-uni{fill:var(--edge)}.force-graph .marker-bidi{fill:var(--edge-bidi)}.force-graph .link-label-mapping{fill:var(--text-muted)}.force-node circle{cursor:grab}.force-node circle:active{cursor:grabbing}.force-legend{display:flex;flex-wrap:wrap;gap:.375rem .875rem;padding:.375rem .75rem;border-top:1px solid var(--border);font-size:.6875rem;font-family:var(--font-mono);color:var(--text-muted)}.force-legend-swatch{display:inline-block;width:.625rem;height:.625rem;border-radius:3px;margin-right:.375rem;vertical-align:-1px}.detail-overlay{position:absolute;left:.75rem;bottom:.75rem;max-width:min(24rem,calc(100% - 1.5rem));max-height:min(60%,22rem);overflow:auto;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 8px 24px #00000059}.detail-close{position:absolute;top:.25rem;right:.25rem}.detail-overlay .record-card{background:transparent;border:none;padding-right:2rem}.record-list{list-style:none;margin:0;padding:.75rem;display:grid;gap:.75rem}.record-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:.625rem .75rem;position:relative}.record-header{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;margin-bottom:.5rem}.record-id{font-size:.8125rem;font-weight:600}.chip{font-size:.6875rem;background:var(--bg);border:1px solid var(--border-strong);border-radius:999px;padding:.0625rem .5rem;color:var(--text-muted)}.chip-profile{color:var(--accent);border-color:#3fb95066}.record-attributes{margin:0;display:grid;gap:.25rem}.record-attribute{display:grid;grid-template-columns:minmax(7rem,max-content) 1fr;gap:.5rem;align-items:baseline}.record-attribute dt code{color:var(--text-muted);font-size:.75rem}.record-attribute dd{margin:0;font-size:.8125rem;word-break:break-word}.record-references{list-style:none;margin:.5rem 0 0;padding:.5rem 0 0;border-top:1px solid var(--border);display:grid;gap:.25rem}.record-references li{display:flex;align-items:baseline;gap:.375rem;font-size:.75rem;flex-wrap:wrap}.record-references code{color:var(--text-muted)}
