:root{--color-bg-body:#f4f6fb;--color-bg-panel:#fff;--color-border-subtle:#e2e8f0;--color-border-normal:#333;--background-color-primary:#18668d;--background-color-secondary:#91b7ca;--background-color-tertiary:#d1dce3;--color-success:#03491d;--color-warning:#946007;--color-error:#891212;--color-error-text:#fff;--color-text-normal:#333;--color-text-primary:#fff;--color-text:var(--color-text-normal);--text-color:var(--color-text-normal);--color-text-muted:#475569;--color-accent:#0f8cf2;--color-accent2:#0d8bcf;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--shadow-card:0 6px 18px #0f172a14;--shadow-overlay:0 12px 32px #0f172a40;--font-base:"Source Sans Pro",system-ui,sans-serif;--font-mono:"JetBrains Mono",monospace;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-md:1.1rem;--font-size-lg:1.25rem;--font-weight-nm:400;--font-weight-md:600;--font-weight-bd:900;--font-weight:var(--font-weight-nm);--font-weight-semibold:var(--font-weight-md);--transition-fast:120ms ease;--transition-base:220ms ease;--z-index-other:500;--z-index-nav:900;--z-index-tooltip:1100;--z-index-error:100;--z-index-modal:1000;--z-modal:var(--z-index-modal)}body{background:#f4f6fb;background:var(--color-bg-body,#f4f6fb);color:#1e293b;color:var(--text-color,#1e293b);font-weight:400;font-weight:var(--font-weight,400);line-height:1.5;min-height:100vh;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}li,ol,p,ul{list-style:none;margin:0;padding:0}li:hover{color:var(--color-accent)}h1,h2,h3,h4,h5,h6{color:#0f172a;color:var(--text-color,#0f172a);font-weight:600;line-height:1.2;margin-bottom:var(--spacing-sm)}.page-shell{display:flex;flex-direction:column;min-height:100vh}.content-scroll{flex:1 1;overflow:auto;padding:24px;padding:var(--spacing-lg,24px)}.panel{background:#fff;background:var(--color-bg-panel,#fff);border:1px solid #e2e8f0;border:1px solid var(--color-border-subtle,#e2e8f0);border-radius:8px;border-radius:var(--radius-md,8px);box-shadow:0 6px 18px #0f172a14;box-shadow:var(--shadow-card,0 6px 18px #0f172a14);padding:var(--spacing-md)}.button{align-items:center;background:none;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-weight:400;font-weight:var(--font-weight-sm,400);gap:var(--spacing-xs);justify-content:center;line-height:1.2;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);white-space:nowrap}.button:hover{color:var(--color-accent)}.button:focus-visible{box-shadow:0 0 0 2px #0f8cf233;outline:none}.button:active{box-shadow:none;transform:translateY(0)}.button--primary{background:var(--background-color-primary);border:none;border-radius:var(--radius-md);color:var(--color-text-primary)}.button--secondary{background:var(--background-color-secondary);border:1px solid #e2e8f0;border:1px solid var(--color-border-subtle,#e2e8f0);color:#475569;color:var(--color-text-muted,#475569)}.button--tertiary{background:var(--background-color-tertiary);border:1px solid #e2e8f0;border:1px solid var(--color-border-subtle,#e2e8f0);border-radius:var(--radius-md);color:var(--color-text-muted)}.button--tertiary:hover{color:var(--color-accent)}.button--quaternary{align-items:center;background:#0000;display:flex}.button--quaternary:hover{color:var(--color-accent)}.disabledbtn{cursor:not-allowed;opacity:.6}.form-field{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--spacing-md)}.form-label{color:#475569;color:var(--color-text-muted,#475569);font-weight:600}.form-input,.form-select,.form-textarea{background:var(--color-bg-panel);border:1px solid #e2e8f0;border:1px solid var(--color-border-subtle,#e2e8f0);border-color:var(--color-border-subtle);border-radius:8px;border-radius:var(--radius-md,8px);font:inherit;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);transition:var(--transition-fast);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px #0f8cf226;outline:none}.error-banner{background:#fee2e2;background:var(--color-error,#fee2e2);border:1px solid #b91c1c4d;border-radius:8px;border-radius:var(--radius-md,8px);color:#b91c1c;color:var(--color-error-text,#b91c1c);padding:var(--spacing-sm) var(--spacing-md)}.modal-overlay{align-items:center;animation:fadeIn .18s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a73;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000;z-index:var(--z-modal,1000)}.modal-panel{animation:slideUp .22s ease;background:#fff;background:var(--color-bg-panel,#fff);border-radius:16px;border-radius:var(--radius-lg,16px);box-shadow:0 12px 32px #0f172a40;box-shadow:var(--shadow-overlay,0 12px 32px #0f172a40);max-height:90vh;overflow:auto;padding:24px;padding:var(--spacing-lg,24px);width:min(640px,90vw)}.modal-panel--wide{width:min(960px,95vw)}.modal-panel--tall{max-height:95vh}.modal-close{background:#0000;border:none;cursor:pointer;position:absolute;right:var(--spacing-sm);top:var(--spacing-sm)}.modal-actions{justify-content:flex-end;margin-top:var(--spacing-md)}.modal-actions,.tabs{display:flex;gap:var(--spacing-sm)}.tabs{border-bottom:1px solid var(--color-border-subtle);margin-bottom:var(--spacing-md)}.tab-button{background:#0000;border:none;border-bottom:2px solid #0000;color:var(--color-text-muted);cursor:pointer;font-weight:400;font-weight:var(--font-weight,400);padding:var(--spacing-xs) var(--spacing-md)}.tab-button.active{border-bottom-color:var(--color-accent);color:var(--color-accent);font-weight:600;font-weight:var(--font-weight-md,600)}.toggle{align-items:center;cursor:pointer;display:inline-flex;gap:var(--spacing-sm);position:relative;-webkit-user-select:none;user-select:none}.toggle input[type=checkbox]{cursor:pointer;inset:0;opacity:0;position:absolute}.toggle-track{background:var(--color-border-subtle);border-radius:999px;height:24px;position:relative;transition:background var(--transition-fast);width:44px}.toggle-thumb{background:#fff;border-radius:50%;box-shadow:0 2px 4px #0f172a33;height:20px;left:2px;position:absolute;top:2px;transition:transform var(--transition-fast);width:20px}.toggle input:checked+.toggle-track{background:var(--color-accent)}.toggle input:checked+.toggle-track .toggle-thumb{transform:translateX(20px)}.toggle input:focus-visible+.toggle-track{box-shadow:0 0 0 3px #0f8cf240}.toggle-label{color:#1f2933;color:var(--color-text,#1f2933);font-size:1rem;font-size:var(--font-size-base,1rem)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-container{height:100svh;overflow:hidden;position:relative;width:100%}.controls{border-radius:var(--radius-sm);left:10px;position:relative;top:10px;z-index:var(--z-index-other)}.graph-container{height:auto;inset:0;min-height:0;position:absolute;top:var(--spacing-md)}.graph-container,.graph-lod{display:block;overflow:hidden;width:100%}.graph-lod{height:100%}.graph-lod.pannable{cursor:grab}.graph-lod.panning{cursor:grabbing}.graph-hover-tooltip{background:#ffffffe6;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 4px #0000001a;color:#333;max-width:250px;padding:4px 6px;position:absolute;z-index:1000}.context-menu{background-color:#fff;border:1px solid #ccc;box-shadow:0 2px 10px #0003;list-style:none;margin:0;padding:0;position:absolute;z-index:1000}.context-menu li{cursor:pointer;padding:8px 12px}.context-menu li:hover{background-color:#f0f0f0}.graphlod-canvas{display:block;height:100%;inset:0;min-height:400px;position:absolute;text-align:left;width:100%}.graphlod-controls{display:flex;gap:8px;position:absolute;right:8px;top:8px}.graph-lod_{height:100%;overflow:hidden;position:relative;width:100%}.lod0,.lod1,.lod2,.lod3,.lod4,.node-data-card{background-color:var(--color-bg-panel)}.node-data-card{height:100%;width:50%}.graph-key{background:#ffffffeb;border:1px solid #ddd;border-radius:8px;box-shadow:0 6px 18px #0000001f;color:#3f3b3b;cursor:auto;font-size:12px;line-height:1.4;max-height:calc(100% - 16px);overflow:auto;padding:8px 10px;pointer-events:auto;position:absolute;right:8px;top:8px;white-space:normal;width:260px;word-break:break-word;z-index:var(--z-index-other)}.graph-key-header{font-weight:600;justify-content:space-between;margin-bottom:4px}.graph-key-header,.graph-key-header>div{align-items:center;display:flex;gap:8px}.graph-key-controls{display:flex;flex-direction:column;gap:4px;text-align:left}.graph-key-option{cursor:pointer;display:block;margin-bottom:2px}.graph-key-none{opacity:.6}.graph-key-selected,.graph-key-selected-btn,.graph-key-selection{white-space:normal;word-break:break-word}.graph-key-selected-btn{background:#0000;border:none;cursor:pointer;display:inline-flex;font:inherit;margin:0;padding:0;text-align:left}.graph-key-header .graph-key-selected-btn{align-items:center;height:20px;justify-content:center;line-height:1;transform:rotate(90deg);width:20px}.graph-key-selected-btn:hover{background:#afd2f1}.graph-key-selected-btn:active{opacity:.85}.graph-lod_.pannable{cursor:grab}.graph-lod_.panning{cursor:grabbing}.graph-hover-tooltip{background:#121a2cfa;border:1px solid #00000026;border-radius:8px;box-shadow:0 4px 14px #00000040;color:#e8eef8;font-size:12px;padding:6px 8px;pointer-events:none;position:fixed;z-index:9999}.graph-key-collapsed{align-items:center;background:#908f8fe6;border:1px solid #ddd;border-radius:8px;box-shadow:0 6px 18px #e41f1f1f;display:flex;height:18px;justify-content:center;padding:4px 0;position:absolute;right:8px;top:8px;width:18px;z-index:5}.graph-key-collapsed button{background:#0000;border:none;color:inherit;cursor:pointer;font-size:10px;line-height:1.1;margin:0;padding:0;text-align:center;writing-mode:horizontal-tb}.graph-key-collapsed button:hover{opacity:.85}.graph-key-lod-row{align-items:center;display:flex;gap:8px}.graph-key-lod-label{font-weight:600}.graph-key-lod-slider{flex:1 1}.graph-key-lod-value{text-align:right;width:1.5em}.graph-key-zoom-meta{display:flex;font-size:11px;gap:8px;justify-content:space-between;margin-top:4px;opacity:.75}.graph-minimap{align-items:center;background:#fffffff2;border:1px solid #0000001f;border-radius:6px;bottom:32px;box-shadow:0 6px 18px #0000001f;display:flex;height:120px;justify-content:center;max-height:240px;max-width:360px;min-height:80px;min-width:120px;overflow:auto;position:absolute;resize:both;right:12px;width:180px;z-index:4}.graph-minimap canvas{display:block;height:100%;width:100%}.graph-minimap-meta{background:#fffc;border:1px solid #0000001a;border-radius:3px;bottom:4px;color:#333;font-size:10px;padding:1px 4px;position:absolute;right:6px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-color);font-family:var(--font-base);font-weight:var(--font-weight);margin:0}.navbar{background-color:var(--color-bg-panel);border:1px solid var(--color-border-subtle);cursor:pointer;justify-content:flex-start;left:0;position:fixed;top:0;z-index:var(--z-index-nav)}.nav-items,.navbar{align-items:center;display:flex;width:100%}.nav-items{gap:8px;gap:var(--spacing-sm,8px)}.nav-items--start{flex:1 1}.nav-items--end{justify-content:flex-end}.nav-items>a:first-child .nav-button{font-weight:var(--font-weight-bd)}.nav-dropdown{align-items:center;display:flex;margin-left:auto;padding-bottom:4px;padding-bottom:var(--spacing-lg,4px);position:relative}.nav-dropdown:hover .dropdown-content{color:#0d8bcf;color:var(--color-accent,#0d8bcf);display:flex;flex-direction:column}.dropdown-content{background:var(--color-bg-panel);border:1px solid var(--color-border-normal);display:none;min-width:150px;position:absolute;right:0;top:100%;z-index:1100;z-index:var(--z-index-tooltip,1100)}.dropdown-item{background:#0000;border:none;border-radius:0;font-weight:400;font-weight:var(--font-weight-nm,400);justify-content:flex-start;padding:8px 16px;padding:var(--spacing-sm,8px) var(--spacing-md,16px);width:100%}.dropdown-item:hover{color:#0d8bcf;color:var(--color-accent,#0d8bcf)}.layout,.sidebar{display:flex;flex-direction:column}.sidebar{align-items:center;background-color:#333;border-radius:10px;color:#fff;height:95vh;justify-content:flex-start;left:0;overflow-x:hidden;padding-top:32px;position:fixed;top:0;transition:width .3s;width:20px}.sidebar:hover{width:250px}.sidebar-content{margin-top:0;opacity:0;text-align:left;transition:opacity .3s}.sidebar:hover .sidebar-content{opacity:1}.content{margin-left:10px;overflow-y:auto;padding:20px;transition:margin-left .3s}.login_part{border:1px solid var(--color-text-normal);border-radius:var(--radius-sm);height:220px;left:40%;position:fixed;top:25%;width:300px}.login_part form input[type=password],.login_part form input[type=text]{border:1px solid #ccc;border-radius:4px;padding:5px;width:90%}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#030f25;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.relationship-editor-panel{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 8px #0000001a;padding:20px;width:min(720px,90vw)}.relationship-editor-panel .tabs{justify-content:space-around}.relationship-editor-panel label{font-weight:600}.relationship-editor-panel input[type=text],.relationship-editor-panel select{border:1px solid #ccc;border-radius:4px;margin-bottom:15px;margin-top:5px;padding:8px 10px;width:100%}.table-select{align-items:flex-start;background-color:#fff;display:flex;margin:32px}.table-component{align-items:center;justify-content:space-between;width:100%}.table-meta{background-color:#fff}.button-container,.table-meta{display:flex;gap:16px;vertical-align:middle}.export-button{background-color:#b9b9b9;border:none;border-radius:5px;color:#000;cursor:pointer;height:16px}table{border-collapse:collapse;border-radius:5px;top:32px}th{width:fit-content(100%)}td,th{border:1px solid #000;padding:8px;text-align:left}td{top:20px;vertical-align:top}.full-width-input{border:none;box-sizing:border-box;font-family:inherit;font-size:inherit;height:100%;margin:0;padding:0;resize:none;width:100%}.selected-column{background-color:#add8e6}.unselected-column{background-color:initial}tr.is-dragging{border:2px solid blue}.react-resizable-handle{background-color:#ccc;bottom:0;cursor:col-resize;height:100%;position:absolute;right:0;width:10px}.structure-import-panel{display:flex;flex-direction:column;max-width:800px;min-height:200px;min-width:200px;position:relative}.structure-import-panel .import-structure-section{overflow-y:auto}.structure-import-panel .file-upload-section,.structure-import-panel .method-selection,.structure-import-panel .node-type-selection{margin-top:var(--spacing-md)}.structure-import-panel h3,.structure-import-panel h4{margin:0 0 var(--spacing-sm)}.structure-import-panel input,.structure-import-panel select,.structure-import-panel textarea{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);font:inherit;margin:var(--spacing-sm);width:50%}.structure-import-panel .editable-table-section{background:var(--color-bg-panel);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);flex-grow:1;margin-top:var(--spacing-md);max-height:calc(100% - 180px);overflow-y:auto;padding:var(--spacing-sm)}.dialog-panel{max-height:80vh;overflow-y:auto;padding:var(--spacing-lg);position:relative;width:min(900px,95vw)}.dialog-panel .modal-close{background:#d11;background:var(--color-error,#d11);border-radius:var(--radius-sm);color:#fff}.main-component{background-color:#fff;border:1px solid #ccc;border-radius:8px;padding:20px}.controls{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.attinfo-editor{display:flex;flex-direction:column;gap:10px}.attinfo-editor label{font-weight:700}.attinfo-editor-comp{display:flex}.attinfo-editor input,.attinfo-editor select,.attinfo-editor textarea{margin-top:4px;padding:8px;width:100%}.dialog-panel h2{margin:0;padding:10px 0}
/*# sourceMappingURL=main.a5f7048f.css.map*/