:root{color-scheme:dark;--bg: #1e1e1e;--bg-panel: #252526;--bg-header: #2d2d30;--border: #3c3c3c;--text: #d4d4d4;--text-dim: #858585;--accent: #569cd6;--highlight: rgba(255, 224, 130, .1);--highlight-outline: rgba(217, 182, 74, .55);--font-mono: "Fira Code", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--tok-string: #ce9178;--tok-number: #b5cea8;--tok-boolean: #569cd6;--tok-null: #808080;--tok-nodetype: #4ec9b0;--tok-label: #9cdcfe;--error-bg: #5a1d1d;--error-border: #f14c4c;--hover-bg: rgba(255, 255, 255, .06);--complexity-low: #4ec9b0;--complexity-moderate: #dcdcaa;--complexity-high: #e2a33e;--complexity-very-high: #f14c4c;--radius: 8px;--radius-sm: 5px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4)}:root[data-theme=light]{color-scheme:light;--bg: #ffffff;--bg-panel: #f5f5f5;--bg-header: #eeeeee;--border: #d4d4d4;--text: #1e1e1e;--text-dim: #6e6e6e;--accent: #0b6fb8;--highlight: rgba(255, 213, 79, .18);--highlight-outline: rgba(201, 162, 39, .5);--tok-string: #a31515;--tok-number: #098658;--tok-boolean: #0000ff;--tok-null: #6e6e6e;--tok-nodetype: #267f7f;--tok-label: #001080;--error-bg: #fdecea;--error-border: #d32f2f;--hover-bg: rgba(0, 0, 0, .05);--complexity-low: #267f7f;--complexity-moderate: #9a7d0a;--complexity-high: #b5690a;--complexity-very-high: #d32f2f;--radius: 8px;--radius-sm: 5px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 16px rgba(0, 0, 0, .14)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}.app{display:flex;flex-direction:column;height:100%}.app-loading{align-items:center;justify-content:center;gap:.75rem;color:var(--text-dim);font-size:.9rem}.app-loading-spinner{width:1.75rem;height:1.75rem;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:app-loading-spin .8s linear infinite}@keyframes app-loading-spin{to{transform:rotate(360deg)}}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-header);border-bottom:1px solid var(--border);flex-shrink:0}.app-header-brand{display:flex;align-items:center;gap:.5rem}.app-logo{border-radius:6px;flex-shrink:0}.app-header h1{font-size:1rem;font-weight:600;margin:0}.app-header-actions{display:flex;align-items:center;gap:.75rem}.app-header a{color:var(--text-dim);font-size:.85rem;text-decoration:none}.app-header a:hover{color:var(--accent)}.theme-toggle{background:transparent;border:1px solid var(--border);border-radius:4px;width:1.8rem;height:1.8rem;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;line-height:1}.theme-toggle:hover{background:var(--hover-bg)}.reset-preferences-button{background:transparent;border:1px solid var(--border);border-radius:4px;padding:.3rem .6rem;color:var(--text-dim);cursor:pointer;font-size:.85rem;line-height:1}.reset-preferences-button:hover{background:var(--hover-bg);color:var(--accent)}.confirm-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.confirm-dialog{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:1.25rem;width:100%;max-width:22rem}.confirm-dialog-title{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:var(--text)}.confirm-dialog-description{margin:0 0 1.25rem;font-size:.85rem;line-height:1.4;color:var(--text-dim)}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}.confirm-dialog-button{border-radius:4px;padding:.4rem .85rem;font-size:.85rem;cursor:pointer;line-height:1}.confirm-dialog-cancel{background:transparent;border:1px solid var(--border);color:var(--text)}.confirm-dialog-cancel:hover{background:var(--hover-bg)}.confirm-dialog-confirm{background:var(--error-border);border:1px solid var(--error-border);color:#fff}.confirm-dialog-confirm:hover{opacity:.9}.panes{flex:1;display:flex;min-height:0}.panes-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.pane{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.pane-resizer{flex:0 0 auto;width:6px;background:var(--border);cursor:col-resize}.pane-resizer:hover,.panes-resizing .pane-resizer{background:var(--accent)}@media(max-width:768px){.app-header{padding:.5rem .75rem;gap:.5rem}.app-header-actions{gap:.5rem}.panes-stacked{flex-direction:column}.panes-stacked .pane-editor{border-bottom:2px solid var(--border);min-height:30vh}.tabs{flex-wrap:wrap;row-gap:.5rem}.tabs-actions{flex-wrap:wrap;row-gap:.4rem}}.pane-editor{min-height:0}.pane-editor>.cm-theme,.pane-editor>div{flex:1;min-height:0}.pane-editor .cm-editor{height:100%}.pane-editor .cm-scroller{overflow:auto;font-family:var(--font-mono)}.tabs{display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:var(--bg-header);border-bottom:1px solid var(--border);flex-shrink:0}.tabs-buttons{display:flex;gap:.25rem}.tabs-actions{display:flex;align-items:center;gap:.9rem}.copy-json-button{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:.2rem .6rem;border-radius:4px;cursor:pointer;font-size:.8rem}.copy-json-button:hover{color:var(--text);background:var(--hover-bg)}.fold-action-button{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:.2rem .6rem;border-radius:4px;cursor:pointer;font-size:.8rem}.fold-action-button:hover{color:var(--text);background:var(--hover-bg)}.tab-button{background:transparent;border:1px solid transparent;color:var(--text-dim);padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-size:.85rem}.tab-button:hover{color:var(--text)}.tab-button-active{background:var(--bg-panel);color:var(--text);border-color:var(--border)}.comments-toggle{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.node-view-slot{flex:1;min-height:0;display:flex;flex-direction:column}.node-view-slot[hidden]{display:none}.node-view{flex:1;overflow:auto;background:var(--bg-panel);font-family:var(--font-mono);font-size:.8rem;line-height:1.5;padding:.5rem 0;-webkit-user-select:none;user-select:none}.tree-view{padding-left:.5rem}.node-row{white-space:pre;padding:0 .5rem}.node-header{cursor:default;border-radius:3px}.node-interactive{cursor:pointer}.node-interactive:hover{background:var(--hover-bg)}.node-foldable:hover .node-label,.node-foldable:hover .tok-nodetype,.node-foldable:hover .node-bracket,.node-foldable:hover .node-ellipsis{text-decoration:underline;text-decoration-color:currentColor;text-decoration-style:dotted;text-underline-offset:3px}.node-block-active>.node-header,.node-block-active>.node-children{background:var(--highlight)}.node-disclosure{display:inline-block;width:1rem;color:var(--text-dim)}.node-label{color:var(--tok-label)}.node-bracket,.node-comma,.node-ellipsis{color:var(--text-dim)}.node-children{display:block}.tok-string{color:var(--tok-string)}.tok-number{color:var(--tok-number)}.tok-boolean{color:var(--tok-boolean)}.tok-null{color:var(--tok-null);font-style:italic}.tok-nodetype{color:var(--tok-nodetype);font-weight:600}.json-code-view{padding:0;-webkit-user-select:text;user-select:text}.json-row{display:flex;align-items:flex-start;min-width:100%;width:max-content}.json-gutter{position:sticky;left:0;z-index:1;flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:.35rem;padding:0 .6rem;-webkit-user-select:none;user-select:none;color:var(--text-dim);background:var(--bg-header);border-right:1px solid var(--border)}.json-linenum{width:var(--json-linenum-width, 2ch);text-align:right}.json-fold-arrow{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:var(--text-dim);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:.15rem;margin:0;font-size:1rem;width:1.1rem;height:1.1rem;line-height:1;border-radius:3px;flex-shrink:0}button.json-fold-arrow:hover{color:var(--text);background:var(--hover-bg)}.json-line{flex:1 0 auto;white-space:pre;padding:0 .6rem}.json-row[data-active] .json-line{background:var(--highlight)}.json-row[data-active] .json-gutter{background:linear-gradient(var(--highlight),var(--highlight)),var(--bg-header)}.error-banner{margin:.75rem;padding:.6rem .75rem;background:var(--error-bg);border:1px solid var(--error-border);border-radius:4px;font-size:.85rem}.cm-py-ast-highlight{background:var(--highlight);outline:1px solid var(--highlight-outline);outline-offset:-1px;border-radius:2px}.flow-view{display:flex;flex-direction:column;min-height:0;flex:1}.flow-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap;row-gap:.5rem}.flow-summary{font-size:.8rem;color:var(--text-dim);white-space:nowrap}.flow-filters{display:flex;gap:.35rem;flex-wrap:wrap}.flow-filter-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid currentColor;color:var(--text-dim);font-size:.75rem;font-weight:600;font-family:inherit;padding:.25rem .7rem;border-radius:999px;cursor:pointer;transition:background-color .15s ease,transform .1s ease}.flow-filter-chip:hover{transform:translateY(-1px)}.flow-filter-chip-all{color:var(--accent)}.flow-filter-chip-active{background:color-mix(in srgb,currentColor 20%,transparent)}.flow-layout-control{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-dim)}.flow-layout-control select{background:var(--bg-panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.2rem .5rem;font-size:.8rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease}.flow-layout-control select:hover,.flow-layout-control select:focus-visible{border-color:var(--accent);outline:none}.complexity-badge{font-size:.8rem;font-weight:600;padding:.2rem .65rem;border-radius:999px;border:1px solid currentColor;background:color-mix(in srgb,currentColor 12%,transparent)}.complexity-low{color:var(--complexity-low)}.complexity-moderate{color:var(--complexity-moderate)}.complexity-high{color:var(--complexity-high)}.complexity-very-high{color:var(--complexity-very-high)}.flow-diagram-wrapper{flex:1;min-height:0;position:relative;background:var(--bg);background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);background-size:22px 22px}.flow-diagram{width:100%;height:100%;overflow:hidden}.flow-diagram svg{display:block}.flow-diagram .node{cursor:pointer}.flow-diagram .flow-node-badge{pointer-events:none}.flow-diagram .flow-node-badge-text{font-family:var(--font-mono);font-size:11px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none}.flow-diagram-controls{position:absolute;top:.7rem;right:.7rem;z-index:1;display:flex;flex-direction:column;gap:.3rem;background:var(--bg-panel);padding:.3rem;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-md)}.flow-diagram-controls button{width:1.8rem;height:1.8rem;background:transparent;color:var(--text-dim);border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease}.flow-diagram-controls button:hover{color:var(--text);background:var(--hover-bg)}.flow-diagram-controls button:active{color:var(--accent)}.flow-diagram .edgePath .path{stroke:var(--text-dim)!important;stroke-width:1.5px!important}.flow-diagram .edgeLabel{background-color:var(--bg)!important;color:var(--text)!important}.flow-diagram .edgeLabel p{background-color:var(--bg)!important;color:var(--text)!important;border-radius:var(--radius-sm);padding:.1rem .35rem}.flow-diagram marker path{fill:var(--text-dim)!important;stroke:var(--text-dim)!important}.flow-diagram .node rect,.flow-diagram .node polygon,.flow-diagram .node path{filter:drop-shadow(var(--shadow-sm));transition:filter .15s ease}.flow-diagram .node:hover rect,.flow-diagram .node:hover polygon,.flow-diagram .node:hover path{filter:drop-shadow(var(--shadow-md))}.flow-details{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .9rem;padding:.6rem .85rem;border-top:1px solid var(--border);background:var(--bg-header);flex-shrink:0;min-height:2.4rem}.flow-details-name{font-family:var(--font-mono);font-weight:600;color:var(--text)}.flow-details-entry{font-size:.8rem;color:var(--text-dim);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.1rem .45rem}.flow-details-hint{font-size:.8rem;color:var(--text-dim);font-style:italic}.flow-empty,.flow-error{margin:.75rem;padding:.6rem .75rem;color:var(--text-dim);font-size:.85rem}.flow-error{background:var(--error-bg);border:1px solid var(--error-border);border-radius:4px;color:var(--text)}
