:root{--color-bg: #0f1729;--color-surface: #1e293b;--color-border: #334155;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-accent: #2dd4bf;--color-accent-dim: #0d9488;--color-accent-rgb: 45, 212, 191;--color-bg-rgb: 15, 23, 41;--color-node: #ea8a31;--color-edge: #fcc694;--color-danger: #f87171;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", "SF Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--sidebar-width: 280px;--header-height: 3.5rem;--radius: .5rem;--radius-sm: .25rem;--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-sm);line-height:1.6;color:var(--color-text);background:var(--color-bg);min-height:100vh;overflow:hidden}.site-header{display:flex;align-items:center;height:var(--header-height);padding:0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border);gap:var(--space-3)}.site-title{font-size:var(--text-lg);font-weight:600;color:var(--color-accent);letter-spacing:-.02em}.site-badge{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-bg);padding:0 var(--space-2);border-radius:var(--radius-sm);line-height:1.4;border:1px solid var(--color-border)}.menu-toggle{display:none;background:none;border:1px solid var(--color-border);color:var(--color-text);font-size:1.25rem;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);line-height:1}.app-layout{display:grid;grid-template-columns:var(--sidebar-width) 1fr;height:calc(100vh - var(--header-height))}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);overflow-y:auto}.control-group{display:flex;flex-direction:column;gap:var(--space-2)}.control-label{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}select,textarea,input[type=text]{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%;transition:border-color var(--transition)}select:hover,textarea:hover,input[type=text]:hover{border-color:var(--color-text-muted)}select:focus-visible,textarea:focus-visible,input[type=text]:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px rgba(var(--color-accent-rgb),.2)}textarea{resize:vertical;min-height:80px}.btn{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;background:var(--color-accent-dim);color:#0f1729;border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background var(--transition),transform 75ms ease}.btn:hover{background:var(--color-accent);color:var(--color-bg)}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.graph-pane{position:relative;background:var(--color-bg);overflow:hidden}#cy{width:100%;height:100%}.status-bar{position:absolute;bottom:0;left:0;right:0;padding:var(--space-1) var(--space-3);background:rgba(var(--color-bg-rgb),.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted);display:flex;justify-content:space-between}@media(max-width:1024px){:root{--sidebar-width: 240px}}@media(max-width:767px){:root{--sidebar-width: 100%}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem}.app-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{border-right:none;border-bottom:1px solid var(--color-border);max-height:50vh;display:none}.sidebar.open{display:flex}.graph-pane{min-height:40vh}}.cy-panzoom{background:transparent!important}.state-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background:var(--color-bg);z-index:10;opacity:1;transition:opacity var(--transition)}.state-overlay.hidden{opacity:0;pointer-events:none}.state-icon{font-size:2.5rem;line-height:1}.state-message{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center;max-width:320px}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-overlay .state-icon,.error-overlay .state-message{color:var(--color-danger)}.empty-overlay .state-icon{opacity:.6}.btn-retry{margin-top:var(--space-2)}.combobox{position:relative}.combobox input{width:100%}.combobox-list{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);z-index:20;list-style:none;padding:0;margin:0}.combobox-option{padding:var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:background var(--transition)}.combobox-option:hover,.combobox-option[aria-selected=true]{background:var(--color-accent-dim);color:var(--color-bg)}.combobox-no-results{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic}.details-panel{border-top:1px solid var(--color-border);padding-top:var(--space-4);margin-top:var(--space-2)}.details-panel.hidden{display:none}.details-heading{font-size:var(--text-sm);font-weight:600;color:var(--color-accent);margin-bottom:var(--space-2)}.details-body{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-3);font-size:var(--text-xs)}.details-body dt{color:var(--color-text-muted);font-weight:500;white-space:nowrap}.details-body dd{color:var(--color-text);word-break:break-all}.legend{border-top:1px solid var(--color-border);padding-top:var(--space-4);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.legend summary{cursor:pointer;font-weight:600;color:var(--color-accent);font-size:var(--text-sm);margin-bottom:var(--space-2);-webkit-user-select:none;user-select:none}.legend-body h4{font-size:var(--text-xs);font-weight:600;color:var(--color-text);margin:var(--space-3) 0 var(--space-1);text-transform:uppercase;letter-spacing:.05em}.legend-body h4:first-child{margin-top:0}.legend-list{list-style:none;padding:0;margin:0}.legend-list li{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;color:var(--color-text-muted)}.legend-swatch{display:inline-block;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
