pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#c678dd}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#98c379}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#d19a66}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}:root{--bg0:#06080B;--bg1:#0B0E12;--fg0:#EAF2FF;--muted:rgba(234,242,255,.62);--teal:#42E8E0;--teal-rgb: 66, 232, 224;--purple:#9B5CFF;--danger:#FF6B6B;--shadow: 0 10px 30px rgba(0,0,0,.35);--collapsed-panel-height: 56px;--filter-panel-height: 180px;--header-height: 141px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg0);color:var(--fg0)}.app{min-height:100%;display:flex;flex-direction:column;background:radial-gradient(1000px 600px at 20% 0%,rgba(66,232,224,.06),transparent 65%),radial-gradient(800px 500px at 80% 40%,rgba(155,92,255,.05),transparent 65%),linear-gradient(180deg,var(--bg0),var(--bg1))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.06);background:#06080b8c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:1.2rem}.brand__logo{width:128px;height:128px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}.brand__name{font-size:1.25rem;font-weight:800}.brand__tag{font-size:.9rem;color:#eaf2ffdb;margin-top:.05rem;font-weight:600}.brand__version-link{display:inline-block;margin-top:.35rem;transition:opacity .2s ease,transform .2s ease}.brand__version-link:hover{opacity:.85;transform:translateY(-1px)}.brand__version-badge{height:18px;display:block}.topbar__actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.btn{border:1px solid rgba(255,255,255,.1);background:linear-gradient(135deg,#42e8e02e,#9b5cff29);color:var(--fg0);padding:.55rem .8rem;border-radius:12px;cursor:pointer;box-shadow:0 8px 18px #00000047;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:.9rem;transition:filter .2s ease,transform .1s ease}.btn:hover{filter:brightness(1.15)}.btn:active{transform:scale(.98)}.btn--ghost{background:#ffffff0a;border-color:#ffffff1a;box-shadow:none}.file input{display:none}.main{flex:1;display:grid;grid-template-columns:420px 8px 1fr 8px 360px;grid-auto-flow:column;gap:0;padding:1rem;min-height:0;transition:grid-template-columns .3s ease}.main.maximized{padding:0;gap:0}.main.maximized .resize-handle{display:none}.maximized-panel,.panel--filter.maximized{position:fixed!important;top:var(--header-height);left:0;right:0;bottom:0;width:100vw!important;height:calc(100vh - var(--header-height))!important;z-index:1000;border-radius:0!important;margin:0;background:var(--bg1)!important;opacity:1!important}.panel--filter.maximized{border:none;background:var(--bg0)!important}@media(max-width:768px)and (orientation:portrait){.main{grid-template-columns:1fr;gap:.5rem}.panel--details{grid-column:auto}.resize-handle{display:none}}@media(max-width:768px){.panel.collapsed-horizontal{min-width:auto;width:auto;max-height:48px;overflow:hidden}.panel.collapsed-horizontal .panel__title{display:flex}.panel.collapsed-horizontal .panel__content{display:none}.panel__collapse-btn{min-width:48px;min-height:48px}}@media(max-width:768px)and (orientation:portrait){.main{display:flex!important;flex-direction:column!important;grid-template-columns:unset!important}.panel,.panel--details{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:300px;margin-bottom:.5rem}.panel:last-child{margin-bottom:0}.panel.collapsed-horizontal{min-height:48px!important;max-height:48px!important;width:100%!important}.panel.collapsed-horizontal .panel__title{flex-direction:row!important;justify-content:space-between!important;padding:.75rem 1rem!important}.panel.collapsed-horizontal .panel__title-text{writing-mode:horizontal-tb!important;text-orientation:mixed!important;letter-spacing:normal!important;text-align:left!important}.panel.collapsed-horizontal .panel__header-content{flex-direction:row!important;justify-content:space-between!important;width:100%!important}}.panel--filter{padding:.75rem 1rem .6rem;border:none;box-shadow:none;background:transparent;border-bottom:1px solid rgba(255,255,255,.06);margin:0 1rem;overflow:visible;height:auto;min-height:420px;max-height:none;transition:opacity .3s ease}.panel--filter.collapsed{max-height:var(--collapsed-panel-height);min-height:0;overflow:hidden}.panel--graph{min-width:0;display:flex;flex-direction:column}.panel{background:linear-gradient(180deg,#ffffff0a,#ffffff05);border:1px solid rgba(255,255,255,.08);border-radius:16px;box-shadow:var(--shadow);overflow:auto;display:flex;flex-direction:column;transition:width .3s ease,min-width .3s ease}.panel.collapsed-horizontal{min-width:80px;width:80px;overflow:hidden}.panel.collapsed-horizontal .panel__content{display:none}.panel.collapsed-horizontal .panel__title{flex-direction:column;justify-content:flex-start;align-items:center;height:100%;padding:.75rem .5rem;gap:1rem}.panel.collapsed-horizontal .panel__header-content{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;height:100%}.panel.collapsed-horizontal .panel__title-text{writing-mode:vertical-rl;text-orientation:upright;flex:1;display:flex;align-items:center;justify-content:center;font-size:.95rem;letter-spacing:.1em}.panel.collapsed-horizontal .panel__header-actions{display:none}.panel.collapsed-horizontal .panel__collapse-btn{margin:0}.panel__title{padding:.75rem 1rem;font-weight:700;color:#eaf2ffd1;border-bottom:1px solid rgba(255,255,255,.06);background:#0000002e;display:flex;justify-content:space-between;align-items:center}.panel__title-text{flex:1;text-align:center}.panel__collapse-btn{background:transparent;border:1px solid rgba(255,255,255,.1);color:var(--fg0);cursor:pointer;padding:.25rem .5rem;border-radius:8px;font-size:.85rem;transition:background .2s ease,border-color .2s ease,color .2s ease;-webkit-tap-highlight-color:rgba(255,255,255,.1);touch-action:manipulation;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.panel__collapse-btn:hover{background:rgba(var(--teal-rgb),.12);border-color:rgba(var(--teal-rgb),.4);color:var(--teal)}.panel__collapse-btn:active{background:rgba(var(--teal-rgb),.18);border-color:rgba(var(--teal-rgb),.6)}.panel__header-content{display:flex;justify-content:space-between;align-items:center;width:100%}.panel__header-actions{display:flex;gap:.5rem}.filter-header{margin-bottom:.5rem}.filter-header.collapsed{margin-bottom:0}.filter-label{font-weight:700;color:#eaf2ffd1}.btn--collapse-sm{padding:.25rem .5rem;font-size:.85rem;-webkit-tap-highlight-color:rgba(255,255,255,.1);touch-action:manipulation;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease,color .2s ease}.btn--collapse-sm:hover{background:rgba(var(--teal-rgb),.12);border-color:rgba(var(--teal-rgb),.4);color:var(--teal)}.btn--collapse-sm:active{background:rgba(var(--teal-rgb),.18);border-color:rgba(var(--teal-rgb),.6)}.btn--format,.btn--maximize,.btn--maximize-sm{padding:.35rem .55rem;font-size:.85rem}.json-input{width:100%;min-height:360px;resize:vertical;padding:1rem;background:#0000004d;border:0;outline:none;color:var(--fg0);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12.5px;line-height:1.35rem}.hint{padding:.6rem 1rem .9rem;color:var(--muted);font-size:.85rem;border-top:1px solid rgba(255,255,255,.06)}.error{margin:0 1rem 1rem;padding:.85rem 1rem;border-radius:14px;border:1px solid rgba(255,107,107,.3);background:#ff6b6b1a}.error__title{font-weight:800;margin-bottom:.25rem;color:#ff6b6bf2}.error__msg{color:#eaf2ffe6;white-space:pre-wrap}.graph{width:100%;height:70vh;min-height:420px}.empty{padding:1.2rem;color:var(--muted)}.footer{padding:.8rem 1rem 1rem;color:var(--muted);font-size:.85rem;border-top:1px solid rgba(255,255,255,.06);background:#06080b59}.details{padding:1rem;overflow:auto}.details__header{margin-bottom:.9rem}.details__name{font-weight:900;font-size:1.05rem}.details__sub{display:flex;gap:.5rem;align-items:center;margin-top:.35rem}.details-empty{padding:1rem;color:var(--muted)}.details-empty__title{font-weight:800;color:#eaf2ffd1;margin-bottom:.25rem}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .5rem;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;font-size:.8rem;color:#eaf2ffe6}.row{display:flex;gap:.6rem;align-items:center}.row.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.block{margin-top:1rem}.block__title{font-weight:800;color:#eaf2ffd1;margin-bottom:.4rem}.clickable-link{color:var(--teal);text-decoration:underline;cursor:pointer;transition:color .2s ease,text-decoration-color .2s ease;background:none;border:none;padding:0;font:inherit}.clickable-link:hover{color:rgba(var(--teal-rgb),1);text-decoration-color:rgba(var(--teal-rgb),1)}.clickable-link:active{color:var(--purple)}.table{width:100%;border-collapse:collapse}.table td{padding:.35rem .25rem;vertical-align:top;border-top:1px solid rgba(255,255,255,.06)}.table td:first-child{width:42%}.list{margin:.4rem 0 0 1rem;color:#eaf2ffe6}.filterbar{padding:2rem 1rem 1.75rem;border-bottom:1px solid rgba(255,255,255,.06);background:#0000001f;position:relative;overflow:visible;min-height:340px}.filterbar__row{display:flex;gap:.6rem;align-items:stretch;position:relative}.filterbar__input{flex:1;width:100%;padding:.55rem .7rem;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#00000040;color:var(--fg0);outline:none;position:relative;z-index:1}.filterbar__input--bad{border-color:#ff6b6b73;box-shadow:0 0 0 3px #ff6b6b1f}.filterbar__meta{margin-top:.45rem;font-size:.85rem;color:var(--muted)}.filterbar__errors{margin-top:.5rem;padding:.6rem .7rem;border-radius:12px;border:1px solid rgba(255,107,107,.3);background:#ff6b6b1a;color:#eaf2ffeb;font-size:.85rem}.filterbar__help{margin-top:.6rem;padding:.75rem .8rem;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a}.help__title{font-weight:900;margin-bottom:.35rem}.help__text{color:#eaf2ffd1;font-size:.9rem;margin-bottom:.4rem}.help__list{margin:.35rem 0 0 1.1rem;color:#eaf2ffe6}.help__list li{margin:.25rem 0}.filterbar__row2,.filterbar__row3{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:.85rem}.seg{display:inline-flex;border:1px solid rgba(255,255,255,.1);background:#0000002e;border-radius:12px;overflow:hidden}.seg__btn{padding:.45rem .65rem;border:none;background:transparent;color:#eaf2ffcc;cursor:pointer;font-weight:700}.seg__btn--on{background:#42e8e024;color:#eaf2fff2}.toggle{display:flex;align-items:center;gap:.45rem;padding:.35rem .55rem;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#0000002e;color:#eaf2ffd9;-webkit-user-select:none;user-select:none}.toggle input{width:16px;height:16px}.saved{display:flex;gap:.45rem;align-items:center}.saved__sel{padding:.45rem .55rem;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#0b0e12f2;color:#eaf2ffe6;outline:none}.saved__sel option{background:#0b0e12;color:#eaf2ffe6}.filterbar__autocomplete{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#06080bfa;border:1px solid rgba(66,232,224,.25);border-radius:12px;box-shadow:0 12px 40px #0009;max-height:200px;overflow-y:auto;z-index:2000;pointer-events:auto}.filterbar__suggestion{padding:.5rem .7rem;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);color:#eaf2ffcc;font-size:.85rem;-webkit-user-select:none;user-select:none;transition:background-color .15s}.filterbar__suggestion:last-child{border-bottom:none}.filterbar__suggestion:hover,.filterbar__suggestion--selected{background:#42e8e029;color:#eaf2fff2}.chips{margin-top:.6rem;display:flex;gap:.45rem;flex-wrap:wrap}.chip{display:inline-flex;gap:.35rem;align-items:center;padding:.25rem .55rem;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:#eaf2ffe6;font-size:.82rem}.chip__t{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#9b5cff29;border:1px solid rgba(155,92,255,.25);font-weight:900}.chip__op{opacity:.8;font-weight:900}.filterbar__warn{margin-top:.5rem;padding:.6rem .7rem;border-radius:12px;border:1px solid rgba(255,196,0,.28);background:#ffc4001a;color:#eaf2ffeb;font-size:.85rem}.vis-navigation .vis-button{position:relative;background-image:none!important;background-color:transparent!important;border-radius:0!important;box-shadow:none!important}.vis-navigation .vis-button:hover{background-color:transparent!important;border-radius:0!important;box-shadow:none!important}.vis-navigation .vis-button:hover:before{content:"";position:absolute;inset:0;border-radius:4px;background-color:#ffffff14;z-index:-1}.vis-navigation .vis-button:after{content:"";position:absolute;inset:0;margin:auto;width:18px;height:18px;background-color:#42e8e0f2;-webkit-mask:var(--oidsee-icon) center / contain no-repeat;mask:var(--oidsee-icon) center / contain no-repeat;filter:drop-shadow(0 0 6px rgba(66,232,224,.35))}.vis-navigation .vis-button.vis-up{--oidsee-icon: url(/icons/arrow-up.svg)}.vis-navigation .vis-button.vis-down{--oidsee-icon: url(/icons/arrow-down.svg)}.vis-navigation .vis-button.vis-left{--oidsee-icon: url(/icons/arrow-left.svg)}.vis-navigation .vis-button.vis-right{--oidsee-icon: url(/icons/arrow-right.svg)}.vis-navigation .vis-button.vis-zoomIn{--oidsee-icon: url(/icons/plus.svg)}.vis-navigation .vis-button.vis-zoomOut{--oidsee-icon: url(/icons/minus.svg)}.vis-navigation .vis-button.vis-zoomExtends{--oidsee-icon: url(/icons/expand.svg)}.vis-navigation .vis-button.vis-zoomIn:after,.vis-navigation .vis-button.vis-zoomOut:after,.vis-navigation .vis-button.vis-zoomExtends:after{background-color:#9b5cfff2;filter:drop-shadow(0 0 8px rgba(155,92,255,.35))}.vis-navigation .vis-button.vis-up:hover:before,.vis-navigation .vis-button.vis-down:hover:before,.vis-navigation .vis-button.vis-left:hover:before,.vis-navigation .vis-button.vis-right:hover:before{background-color:rgba(var(--teal-rgb),.15)}.vis-navigation .vis-button.vis-up:hover:after,.vis-navigation .vis-button.vis-down:hover:after,.vis-navigation .vis-button.vis-left:hover:after,.vis-navigation .vis-button.vis-right:hover:after{background-color:rgba(var(--teal-rgb),1);filter:drop-shadow(0 0 10px rgba(var(--teal-rgb),.5))}.vis-navigation .vis-button.vis-zoomIn:hover:before,.vis-navigation .vis-button.vis-zoomOut:hover:before,.vis-navigation .vis-button.vis-zoomExtends:hover:before{background-color:#9b5cff26}.vis-navigation .vis-button.vis-zoomIn:hover:after,.vis-navigation .vis-button.vis-zoomOut:hover:after,.vis-navigation .vis-button.vis-zoomExtends:hover:after{background-color:#9b5cff;filter:drop-shadow(0 0 10px rgba(155,92,255,.5))}.json-editor{width:100%;height:360px;background:#0000004d;border-radius:0;overflow:hidden;display:flex;flex-direction:column}.json-editor__toolbar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(255,255,255,.06);background:#0003;gap:.5rem}.json-editor__mode-toggle{display:flex;gap:.25rem;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;background:#00000026}.json-editor__mode-toggle .btn{border:none;border-radius:0;box-shadow:none;background:transparent}.json-editor__mode-toggle .btn--active{background:#42e8e02e;color:var(--teal)}.json-editor__fold-controls{display:flex;gap:.5rem}.json-editor__content{flex:1;overflow:auto;position:relative}.json-editor__input{position:relative;width:100%;height:100%;background:transparent;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12.5px;line-height:1.35rem;overflow-y:auto;overflow-x:auto}.json-viewer{padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12.5px;line-height:1.35rem;color:var(--fg0);white-space:pre-wrap;overflow-wrap:break-word}.json-viewer-error{padding:1rem;color:var(--danger);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.json-line{position:relative}.json-editor__pre{position:absolute;top:0;left:0;width:100%;margin:0;padding:1rem;pointer-events:none;background:transparent;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12.5px;line-height:1.35rem;color:transparent}.json-editor__textarea{position:relative;background:transparent;color:var(--fg0);caret-color:var(--teal);border:none;outline:none;resize:vertical;padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12.5px;line-height:1.35rem}.json-key{color:var(--teal);font-weight:500}.json-string{color:#85e89d}.json-number{color:#79b8ff}.json-boolean{color:#f97583}.json-null{color:#f97583;font-style:italic}.json-punctuation{color:#eaf2ff9e}.json-collapsed{color:#eaf2ff80;font-style:italic}.json-fold-indicator{display:inline-block;width:1.2em;color:var(--teal);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s ease;font-size:.85em;vertical-align:middle;margin-right:.2em}.json-fold-indicator:hover{color:var(--purple)}.json-fold-spacer{display:inline-block;width:1.2em}.btn--sm{padding:.35rem .6rem;font-size:.82rem}.hljs{background:transparent;color:var(--fg0)}.hljs-attr{color:#42e8e0}.hljs-string{color:#85e89d}.hljs-number{color:#79b8ff}.hljs-literal{color:#f97583}.hljs-punctuation{color:#eaf2ff9e}.error-dialog-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.error-dialog{background:linear-gradient(180deg,#ffffff14,#ffffff0a);border:1px solid rgba(255,107,107,.3);border-radius:16px;box-shadow:0 20px 60px #0009;max-width:580px;width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,107,107,.2);background:#ff6b6b14}.error-dialog-header h2{margin:0;font-size:1.25rem;font-weight:700;color:var(--danger)}.error-dialog-close{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg0);font-size:1.25rem;transition:all .2s ease}.error-dialog-close:hover{background:#ffffff26;transform:scale(1.05)}.error-dialog-body{padding:1.5rem;overflow-y:auto;flex:1}.error-dialog-body p{margin:0 0 1rem;color:var(--fg0);line-height:1.6}.error-dialog-body p:last-child{margin-bottom:0}.error-dialog-hint{color:var(--muted);font-size:.9rem;background:#42e8e014;padding:.75rem 1rem;border-radius:8px;border-left:3px solid var(--teal)}.error-dialog-footer{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:flex-end;gap:.75rem}.error-dialog-button{border:1px solid rgba(255,255,255,.1);background:linear-gradient(135deg,#42e8e02e,#9b5cff29);color:var(--fg0);padding:.65rem 1.25rem;border-radius:12px;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .2s ease;box-shadow:0 4px 12px #00000040}.error-dialog-button:hover{filter:brightness(1.15);transform:translateY(-1px);box-shadow:0 6px 16px #0000004d}.error-dialog-button:active{transform:translateY(0)}.physics-controls{position:relative}.physics-controls__panel{position:absolute;top:calc(100% + 8px);right:0;background:linear-gradient(180deg,#0b0e12fa,#06080bfa);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:12px;box-shadow:0 12px 40px #0009;padding:1rem;z-index:1000;min-width:320px;max-width:400px}.physics-controls__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.1)}.physics-controls__title{font-weight:700;color:#eaf2fff2;font-size:.95rem}.physics-controls__item{margin-bottom:1.25rem}.physics-controls__item:last-child{margin-bottom:0}.physics-controls__label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.9rem;color:#eaf2ffe6;font-weight:600}.physics-controls__label-text{flex:1}.physics-controls__label-value{color:var(--teal);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85rem;font-weight:700}.physics-controls__slider{width:100%;height:6px;border-radius:3px;background:#ffffff1a;outline:none;-webkit-appearance:none;appearance:none}.physics-controls__slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--purple));cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:transform .15s ease}.physics-controls__slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.physics-controls__slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--purple));cursor:pointer;border:none;box-shadow:0 2px 8px #0000004d;transition:transform .15s ease}.physics-controls__slider::-moz-range-thumb:hover{transform:scale(1.15)}.physics-controls__hint{margin-top:.35rem;font-size:.75rem;color:var(--muted);font-style:italic}.resize-handle{position:relative;z-index:10}.resize-handle--horizontal{width:8px;cursor:ew-resize;background:transparent;transition:background .2s ease;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center}.resize-handle--horizontal:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:4px;background:#42e8e04d;border-radius:2px;opacity:.6;transition:opacity .2s ease,background .2s ease,width .2s ease}.resize-handle--horizontal:hover:before{opacity:1;background:#42e8e0cc;width:6px}.resize-handle--vertical{height:8px;cursor:ns-resize;background:transparent;transition:background .2s ease;flex-shrink:0}.resize-handle--vertical:hover{background:#42e8e033}.resize-handle--vertical:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:3px;background:#ffffff26;border-radius:2px;opacity:0;transition:opacity .2s ease}.resize-handle--vertical:hover:before{opacity:1}.legend-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease;cursor:pointer}.legend-panel{background:linear-gradient(180deg,#0b0e12fa,#06080bfa);border:1px solid rgba(66,232,224,.3);border-radius:16px;box-shadow:0 20px 60px #0009;max-width:700px;width:90%;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .3s ease;cursor:default}.legend-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(66,232,224,.2);background:#42e8e00d}.legend-header h3{margin:0;font-size:1.35rem;font-weight:700;color:var(--teal)}.legend-close{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg0);font-size:1.5rem;line-height:1;transition:all .2s ease;font-family:Arial,sans-serif}.legend-close:hover{background:#ffffff26;transform:scale(1.05)}.legend-content{padding:1.5rem;overflow-y:auto;flex:1}.legend-section{margin-bottom:2rem}.legend-section:last-child{margin-bottom:0}.legend-section h4{margin:0 0 1rem;font-size:1.1rem;font-weight:700;color:#eaf2fff2;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.5rem}.legend-items{display:flex;flex-direction:column;gap:.85rem}.legend-item{display:grid;grid-template-columns:60px 1fr;grid-template-rows:auto auto;gap:.4rem .75rem;align-items:center;padding:.6rem;background:#ffffff08;border-radius:8px;border:1px solid rgba(255,255,255,.05);transition:background .2s ease}.legend-item:hover{background:#ffffff0f}.legend-edge-example{grid-row:1 / 3;display:block}.legend-node{width:40px;height:40px;border-radius:50%;grid-row:1 / 3}.legend-node--double{position:relative}.legend-node--double:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:65%;height:65%;border-radius:50%;border:2px solid rgba(234,242,255,.75);background:transparent}.legend-label{font-weight:600;color:#eaf2fff2;font-size:.95rem;grid-column:2;grid-row:1}.legend-desc{font-size:.85rem;color:var(--muted);line-height:1.4;grid-column:2;grid-row:2}@media(max-width:768px){.legend-panel{max-width:95%;max-height:90vh}.legend-header{padding:1rem}.legend-header h3{font-size:1.15rem}.legend-content{padding:1rem}.legend-item{grid-template-columns:50px 1fr;font-size:.9rem}.legend-node{width:32px;height:32px}}.view-mode-selector{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#ffffff0a;border-radius:12px;border:1px solid rgba(255,255,255,.08)}.view-mode-selector__label{font-size:.9rem;font-weight:600;color:var(--muted)}.view-mode-selector__buttons{display:flex;gap:.5rem;flex-wrap:wrap}.btn--view-mode{padding:.45rem .75rem;font-size:.85rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);transition:all .2s ease}.btn--view-mode.active{background:linear-gradient(135deg,#42e8e040,#9b5cff38);border-color:var(--teal);box-shadow:0 0 12px #42e8e04d}.btn--view-mode:hover:not(.disabled){border-color:var(--teal)}.btn--view-mode.disabled{opacity:.5;cursor:not-allowed;background:#ffffff05}.table-view{display:flex;flex-direction:column;height:100%;background:var(--bg1);overflow:hidden}.table-view__header{padding:1rem;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.75rem}.table-view__controls{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.table-view__filter{flex:1;min-width:200px}.table-view__filter .input{width:100%;padding:.55rem .75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:var(--fg0);font-family:inherit;font-size:.9rem}.table-view__filter .input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #42e8e026}.table-view__type-selector{display:flex;align-items:center;gap:.5rem}.table-view__type-selector label{font-size:.9rem;color:var(--muted);font-weight:600}.table-view__type-selector .select{padding:.45rem .65rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:var(--fg0);font-family:inherit;font-size:.85rem;cursor:pointer}.table-view__type-selector .select option{background:#0b0e12;color:#eaf2ffe6}.table-view__stats{display:flex;gap:1rem;font-size:.85rem;color:var(--muted)}.table-view__actions{display:flex;gap:.5rem;flex-wrap:wrap}.table-view__container{flex:1;overflow-y:auto;overflow-x:auto;background:var(--bg0)}.table-view__table{width:100%;border-collapse:collapse;font-size:.85rem}.table-view__table thead{position:sticky;top:0;background:#0b0e12fa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;border-bottom:2px solid rgba(66,232,224,.3)}.table-view__table th{padding:.75rem;text-align:left;font-weight:700;color:var(--teal);border-bottom:1px solid rgba(255,255,255,.1);-webkit-user-select:none;user-select:none}.table-view__table th:hover{background:#42e8e014}.table-view__table td{padding:.65rem .75rem;border-bottom:1px solid rgba(255,255,255,.05);color:var(--fg0);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-view__table tbody tr{transition:background .15s ease}.table-view__table tbody tr:hover{background:#42e8e00d}.table-view__table tbody tr.selected{background:#42e8e01f}.sort-indicator{color:var(--teal);font-size:.75rem}.btn--xs{padding:.25rem .5rem;font-size:.75rem}.btn--primary{background:linear-gradient(135deg,#42e8e059,#9b5cff4d);border-color:var(--teal)}.tree-view{display:flex;flex-direction:column;height:100%;background:var(--bg1);overflow:hidden}.tree-view__header{padding:1rem;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.75rem}.tree-view__controls{display:flex;flex-direction:column;gap:.75rem}.tree-view__controls .input{width:100%;padding:.55rem .75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:var(--fg0);font-family:inherit;font-size:.9rem}.tree-view__controls .input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #42e8e026}.tree-view__actions{display:flex;gap:.5rem;flex-wrap:wrap}.tree-view__stats{font-size:.85rem;color:var(--muted)}.tree-view__container{flex:1;overflow-y:auto;padding:1rem}.tree-group{margin-bottom:1rem;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;background:#ffffff05}.tree-group__header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.08);cursor:pointer;transition:background .2s ease}.tree-group__header:hover{background:#42e8e014}.tree-group__toggle{background:transparent;border:none;color:var(--teal);font-size:1rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.tree-group__label{flex:1;font-weight:700;font-size:.95rem;color:var(--fg0)}.tree-group__select-btn{margin-left:auto}.tree-group__children{padding:.5rem}.tree-node{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;margin:.25rem 0;border-radius:8px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);transition:all .2s ease}.tree-node:hover{background:#42e8e00f;border-color:#42e8e033}.tree-node.selected{background:#42e8e01f;border-color:var(--teal)}.tree-node__checkbox{flex-shrink:0;width:18px;height:18px;cursor:pointer}.tree-node__label{flex:1;font-size:.9rem;color:var(--fg0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-node__view-btn{flex-shrink:0}.risk-badge{padding:.25rem .5rem;border-radius:6px;font-size:.75rem;font-weight:700;flex-shrink:0}.risk-badge--none{background:#96969633;color:#969696e6}.risk-badge--low{background:#9c03;color:#9c0}.risk-badge--medium{background:#fc03;color:#fc0}.risk-badge--high{background:#f933;color:#f93}.risk-badge--critical{background:#ff444440;color:#f44}.matrix-view{display:flex;flex-direction:column;height:100%;background:var(--bg1);overflow:hidden}.matrix-view__header{padding:1.5rem;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08)}.matrix-view__header h3{margin:0 0 .5rem;font-size:1.35rem;font-weight:700;color:var(--teal)}.matrix-view__description{margin:0;font-size:.9rem;color:var(--muted);line-height:1.5}.matrix-view__container{flex:1;overflow:auto;padding:1.5rem}.matrix-view__scroll{min-width:max-content}.matrix-view__table{border-collapse:collapse;background:#ffffff05;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden}.matrix-view__corner{background:#42e8e026;color:var(--teal);padding:.75rem;font-size:.85rem;font-weight:700;border:1px solid rgba(66,232,224,.3);position:sticky;left:0;top:0;z-index:20}.matrix-view__header-cell{background:#42e8e014;color:var(--teal);padding:.75rem;font-size:.85rem;font-weight:700;border:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:10;min-width:100px}.matrix-view__header-text{writing-mode:horizontal-tb;white-space:nowrap}.matrix-view__row-header{background:#42e8e014;color:var(--teal);padding:.75rem;font-size:.85rem;font-weight:700;border:1px solid rgba(255,255,255,.1);position:sticky;left:0;z-index:10;min-width:140px;text-align:left}.matrix-view__cell{width:100px;height:80px;border:1px solid rgba(255,255,255,.1);text-align:center;transition:all .2s ease;position:relative}.matrix-view__cell.has-data{cursor:pointer}.matrix-view__cell.has-data:hover{transform:scale(1.05);z-index:5;box-shadow:0 4px 12px #0006;border-color:var(--teal)}.matrix-view__cell-content{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.25rem}.matrix-view__cell-count{font-size:1.1rem;font-weight:700;color:var(--fg0)}.matrix-view__cell-risk{font-size:.75rem;color:#ffffffb3;font-weight:600}.matrix-view__legend{margin-top:1.5rem;padding:1rem;background:#ffffff08;border-radius:8px;border:1px solid rgba(255,255,255,.08)}.matrix-view__legend h4{margin:0 0 .75rem;font-size:1rem;font-weight:700;color:var(--fg0)}.matrix-view__legend-items{display:flex;flex-wrap:wrap;gap:1rem}.matrix-view__legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}.matrix-view__legend-color{width:32px;height:32px;border-radius:4px;border:1px solid rgba(255,255,255,.2)}.matrix-view__details-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease;cursor:pointer}.matrix-view__details-panel{background:linear-gradient(180deg,#0b0e12fa,#06080bfa);border:1px solid rgba(66,232,224,.3);border-radius:16px;box-shadow:0 20px 60px #0009;max-width:500px;width:90%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .3s ease;cursor:default}.matrix-view__details-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(66,232,224,.2);background:#42e8e00d}.matrix-view__details-header h3{margin:0;font-size:1.25rem;font-weight:700;color:var(--teal)}.btn--close{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg0);font-size:1.25rem;padding:0;transition:all .2s ease}.btn--close:hover{background:#ffffff26;transform:scale(1.05)}.matrix-view__details-content{padding:1.5rem;overflow-y:auto;flex:1}.matrix-view__detail-row{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.matrix-view__detail-row:last-child{border-bottom:none}.matrix-view__detail-label{font-weight:600;color:var(--muted);font-size:.9rem}.matrix-view__detail-value{font-weight:700;color:var(--fg0);font-size:.9rem}.matrix-view__edge-types{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.matrix-view__edge-types h4{margin:0 0 .75rem;font-size:1rem;font-weight:700;color:var(--fg0)}.matrix-view__edge-types ul{margin:0;padding-left:1.5rem;list-style:disc}.matrix-view__edge-types li{margin:.5rem 0;color:var(--muted);font-size:.9rem}.dashboard-view{display:flex;flex-direction:column;height:100%;background:var(--bg1);overflow-y:auto}.dashboard-view__header{padding:1.5rem;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08)}.dashboard-view__header h2{margin:0 0 .5rem;font-size:1.75rem;font-weight:700;color:var(--teal)}.dashboard-view__subtitle{margin:0;font-size:.95rem;color:var(--muted)}.dashboard-view__grid{padding:1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.dashboard-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.25rem;display:flex;align-items:center;gap:1rem;transition:all .2s ease}.dashboard-card:hover{background:#ffffff0f;transform:translateY(-2px);box-shadow:0 8px 20px #0000004d}.dashboard-card--highlight{border-color:#42e8e04d;background:#42e8e00f}.dashboard-card--warning{border-color:#ff99334d;background:#ff99330f}.dashboard-card--tier0{border-color:#dc354566;background:linear-gradient(135deg,#dc354514,#dc354505)}.dashboard-card--tier1{border-color:#ff950066;background:linear-gradient(135deg,#ff950014,#ff950005)}.dashboard-card--tier2{border-color:#fc06;background:linear-gradient(135deg,#ffcc0014,#ffcc0005)}.dashboard-card__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.dashboard-card__title{font-size:1.1rem;font-weight:700;color:var(--fg0)}.dashboard-card__secondary{font-size:.75rem;color:var(--muted);margin-top:.25rem}.dashboard-card__footer{font-size:.75rem;color:var(--muted);margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.1);line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.dashboard-grid--tier{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}.dashboard-section__subtitle{color:var(--muted);line-height:1.5;margin-bottom:1rem;font-size:.9rem}.dashboard-card__icon{font-size:2.5rem;flex-shrink:0}.dashboard-card__content{flex:1}.dashboard-card__value{font-size:2rem;font-weight:700;color:var(--fg0);line-height:1;margin-bottom:.25rem}.dashboard-card__label{font-size:.8rem;color:var(--muted);font-weight:600;line-height:1.2}.dashboard-section{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem}.dashboard-section--span-2{grid-column:1 / -1}.dashboard-section h3{margin:0 0 1rem;font-size:1.25rem;font-weight:700;color:var(--fg0);border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.75rem}.dashboard-chart{display:flex;flex-direction:column;gap:.75rem}.dashboard-bar{display:flex;flex-direction:column;gap:.35rem}.dashboard-bar__label{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--fg0);font-weight:600}.dashboard-bar__track{height:24px;background:#ffffff0d;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.dashboard-bar__fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--purple));transition:width .5s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:.5rem;color:var(--fg0);font-size:.75rem;font-weight:700}.dashboard-bar__fill--critical{background:linear-gradient(90deg,#f44,#c00)}.dashboard-bar__fill--high{background:linear-gradient(90deg,#f93,#f60)}.dashboard-bar__fill--medium{background:linear-gradient(90deg,#fc0,#f90)}.dashboard-bar__fill--low{background:linear-gradient(90deg,#9c0,#6a0)}.dashboard-bar__fill--none{background:linear-gradient(90deg,#999,#666)}.dashboard-list{display:flex;flex-direction:column;gap:.5rem}.dashboard-list__item{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.75rem;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease}.dashboard-list__item:hover{background:#ffffff0f}.dashboard-list__item--clickable{padding:0}.dashboard-list__button{width:100%;background:transparent;border:none;padding:.75rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;color:inherit;font-family:inherit;text-align:left}.dashboard-list__button:hover{background:#42e8e014}.dashboard-list__node{display:flex;flex-direction:column;gap:.25rem;flex:1}.dashboard-list__label{font-size:.9rem;color:var(--fg0);font-weight:600}.dashboard-list__type{font-size:.75rem;color:var(--muted)}.dashboard-list__value{font-weight:700;color:var(--fg0);font-size:.9rem}.dashboard-list__risk{padding:.35rem .65rem;border-radius:6px;font-size:.85rem;font-weight:700;min-width:50px;text-align:center}.risk-critical{background:#ff444440;color:#f44}.risk-high{background:#f933;color:#f93}.risk-medium{background:#fc03;color:#fc0}.risk-low{background:#9c03;color:#9c0}.risk-none{background:#96969633;color:#969696e6}.risk-label{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:700;text-transform:uppercase}.risk-label--critical{background:#ff444440;color:#f44}.risk-label--high{background:#f933;color:#f93}.risk-label--medium{background:#fc03;color:#fc0}.risk-label--low{background:#9c03;color:#9c0}.risk-label--none{background:#96969633;color:#969696e6}@media(max-width:1200px){.dashboard-section--span-2{grid-column:1 / -1}.dashboard-grid--tier{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.dashboard-grid--tier{grid-template-columns:1fr;gap:.75rem}}@media(max-width:768px){.dashboard-view__grid{grid-template-columns:1fr;padding:1rem}.dashboard-view__header,.dashboard-card{padding:1rem}.dashboard-card__icon{font-size:2rem}.dashboard-card__value{font-size:1.5rem}}
