@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-base: #090c10;--bg-surface: #121820;--bg-surface-hover: #1a222c;--bg-overlay: rgba(18, 24, 32, .7);--border-subtle: #30363d;--border-strong: #3b4249;--text-primary: #e6edf3;--text-secondary: #848d97;--text-muted: #6e7681;--accent-blue: #2f81f7;--accent-blue-hover: #1f6feb;--accent-green: #3fb950;--accent-warning: #d29922;--accent-danger: #f85149;--op-scan: #2f81f7;--op-seek: #3fb950;--op-join: #d29922;--op-sort: #a371f7;--op-compute: #f85149;--op-default: #848d97;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "Courier New", Courier, monospace;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 4px 6px rgba(0, 0, 0, .6);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .7);--glow: 0 0 15px rgba(47, 129, 247, .15);--sidebar-width: 260px;--tabs-height: 40px;--dashboard-width: 320px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-base);color:var(--text-primary);line-height:1.5;height:100vh;width:100vw;overflow:hidden;-webkit-font-smoothing:antialiased}#root{height:100%;display:flex}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:5px;border:2px solid var(--bg-base)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s cubic-bezier(.16,1,.3,1)}.node-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:var(--bg-surface-hover);border:1px solid var(--border-subtle);border-radius:8px;padding:12px;width:300px;z-index:1000;box-shadow:var(--shadow-lg);display:none;opacity:0;transition:opacity .2s ease-in-out;pointer-events:none;font-family:var(--font-sans);color:var(--text-primary);text-align:left}.custom-node:hover .node-tooltip{display:block;opacity:1;animation:fadeIn .2s ease-in-out}.react-flow__node{transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s ease-in-out!important}.react-flow__edge-path{transition:d .5s cubic-bezier(.16,1,.3,1),stroke .5s ease!important}@keyframes pulse-border-orange{0%{box-shadow:0 0 #d29922b3}70%{box-shadow:0 0 0 6px #d2992200}to{box-shadow:0 0 #d2992200}}.spill-warning{border-color:var(--accent-warning)!important;animation:pulse-border-orange 1.5s infinite}.time-owner{box-shadow:0 0 15px #f8514966!important;border-color:var(--accent-danger)!important}.tooltip-section{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-strong)}.tooltip-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.tooltip-title{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:4px}.tooltip-row{display:flex;justify-content:space-between;font-size:.8rem;margin-bottom:2px;align-items:center}.tooltip-value{font-family:var(--font-mono);font-weight:500}.text-danger{color:var(--accent-danger)}.text-warning{color:var(--accent-warning)}.text-success{color:var(--accent-green)}.snippet-box{background:var(--bg-base);border:1px solid var(--border-strong);padding:6px;border-radius:4px;font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);word-break:break-all;max-height:80px;overflow-y:auto}.app-container{display:flex;height:100vh;width:100vw;overflow:hidden;background-color:var(--bg-base)}.sidebar-container{width:var(--sidebar-width);min-width:var(--sidebar-width);background-color:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column}.main-content{flex:1;display:flex;flex-direction:column;min-width:0}.tabs-container{height:var(--tabs-height);min-height:var(--tabs-height);background-color:var(--bg-surface);border-bottom:1px solid var(--border-subtle);display:flex;overflow-x:auto;scrollbar-width:none}.tabs-container::-webkit-scrollbar{display:none}.content-area{flex:1;display:flex;overflow:hidden;position:relative}.dashboard-panel{width:var(--dashboard-width);min-width:var(--dashboard-width);background-color:var(--bg-surface);border-left:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:visible;z-index:10;box-shadow:-4px 0 15px #0003}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);gap:1rem}.empty-state svg{color:var(--border-subtle)}.sidebar-header{padding:.75rem 1rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);letter-spacing:.05em;display:flex;justify-content:space-between;align-items:center}.file-tree{flex:1;overflow-y:auto;padding:.5rem 0}.tree-node{display:flex;align-items:center;padding:.25rem .5rem .25rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-secondary);transition:background .1s,color .1s;font-size:.85rem}.tree-node:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.tree-node.active{background-color:#2f81f726;color:var(--accent-blue);border-left:2px solid var(--accent-blue)}.tree-node-icon{display:inline-flex;margin-right:.5rem;color:inherit}.tree-node-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-children{padding-left:0}.tab{display:inline-flex;align-items:center;height:100%;padding:0 .75rem;border-right:1px solid var(--border-subtle);cursor:pointer;min-width:80px;max-width:180px;color:var(--text-secondary);font-size:.75rem;background-color:var(--bg-surface);-webkit-user-select:none;user-select:none;font-family:var(--font-sans)}.tab:hover{background-color:var(--bg-surface-hover)}.tab.active{background-color:var(--bg-base);color:var(--text-primary);border-top:2px solid var(--accent-blue)}.tab-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:.5rem}.tab-close{display:inline-flex;padding:2px;border-radius:4px;opacity:0;transition:opacity .2s,background .2s}.tab:hover .tab-close,.tab.active .tab-close{opacity:1}.tab-close:hover{background-color:var(--bg-overlay)}.spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
