*{margin:0;padding:0;box-sizing:border-box}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;--bg-primary: #1a1a1a;--bg-secondary: #2a2a2a;--bg-hover: #333;--text-primary: #ffffff;--text-secondary: #aaa;--accent-primary: #00ff88;--accent-secondary: #88ff00;--border-color: #444}body{margin:0;padding:0;min-height:100vh;background-color:var(--bg-primary);color:var(--text-primary);overflow:hidden}#container{display:flex;width:100vw;height:100vh;position:relative}#leftPanel{width:350px;min-width:250px;max-width:600px;background-color:var(--bg-primary);border-right:1px solid var(--border-color);overflow-y:auto;overflow-x:hidden}.panel-content{padding:20px}#resizer{width:5px;background-color:var(--border-color);cursor:col-resize;position:relative;z-index:100;transition:background-color .2s}#resizer:hover,#resizer:active{background-color:var(--accent-primary)}#rightPanel{flex:1;background-color:#80cbc4;position:relative;overflow:hidden}#canvasContainer{width:100%;height:100%}.control-section{background:var(--bg-secondary);padding:20px;border-radius:8px;margin-bottom:20px;border:1px solid var(--border-color)}#visibilityContainer.control-section{display:flex;flex-direction:column;min-height:200px;max-height:300vh}.control-section h3{margin:0 0 15px;color:var(--accent-primary);font-size:1.2em;font-weight:600}.hint{font-size:12px;color:var(--text-secondary);margin-top:8px}#fileInput{width:100%;padding:8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;font-size:14px}#fileInput::-webkit-file-upload-button{background:var(--accent-primary);color:var(--bg-primary);border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-weight:600;margin-right:10px}.search-input-group{display:flex;gap:10px;margin-bottom:10px}#searchInput{flex:1;padding:10px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-family:Courier New,monospace;font-size:14px}#searchInput:focus{outline:none;border-color:var(--accent-primary)}.result-text{font-size:12px;color:var(--text-secondary);min-height:20px}.control-group{margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid var(--border-color)}.control-group:last-of-type{border-bottom:none;padding-bottom:0}.control-title{color:var(--accent-secondary);display:block;margin-bottom:8px;font-size:13px}.control-list{font-family:Courier New,monospace;font-size:12px;line-height:1.6;color:var(--text-secondary)}.button-group{display:flex;gap:10px;margin-bottom:15px}button{flex:1;border-radius:4px;border:none;padding:10px 12px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}#searchBtn{background:#08c;color:#fff;flex:0 0 auto;padding:10px 20px}#searchBtn:hover{background:#09d}#resetBtn{background:#06c;color:#fff}#resetBtn:hover{background:#07d}#centerBtn{background:#c60;color:#fff}#centerBtn:hover{background:#d70}#cameraToggleBtn{background:linear-gradient(135deg,#667eea,#764ba2)}#cameraToggleBtn:hover{background:linear-gradient(135deg,#764ba2,#667eea)}button:active{transform:translateY(1px)}.info-section{color:var(--text-secondary);font-size:11px;font-family:Courier New,monospace;border-top:1px solid var(--border-color);padding-top:10px;line-height:1.6}#leftPanel::-webkit-scrollbar{width:8px}#leftPanel::-webkit-scrollbar-track{background:var(--bg-primary)}#leftPanel::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}#leftPanel::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.visibility-tree{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;padding-bottom:8px}#visibilityContainer{display:flex;flex-direction:column;flex:1;min-height:200px;max-height:60vh;overflow:hidden}#visibilityContainer .visibility-tree{flex:1;min-height:0}.tree-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;color:var(--text-secondary)}.tree-empty-icon{font-size:32px;opacity:.5}.tree-empty-text{font-size:13px}.tree-summary{padding:8px 12px;background:#00ff881a;border-radius:4px;margin-bottom:4px}.summary-text{font-size:12px;color:var(--accent-primary)}.tree-file-node{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;overflow:hidden;transition:border-color .2s}.tree-file-node:hover{border-color:var(--accent-primary)}.tree-file-node.expanded{border-color:#00ff884d}.tree-file-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.tree-file-header:hover{background:var(--bg-hover)}.tree-toggle{flex:0 0 auto;width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--text-secondary);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,transform .2s}.tree-toggle:hover,.tree-file-node.expanded .tree-toggle{color:var(--accent-primary)}.tree-checkbox{flex:0 0 auto;width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.tree-checkbox:indeterminate{opacity:.6}.tree-icon{flex:0 0 auto;font-size:14px}.tree-file-icon{font-size:16px}.tree-file-label{flex:1;font-weight:600;font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-category-label{flex:1;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-count{flex:0 0 auto;font-size:11px;color:var(--text-secondary);font-family:Courier New,monospace}.tree-remove-btn{flex:0 0 auto;width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;border-radius:4px;opacity:0;transition:all .2s}.tree-file-header:hover .tree-remove-btn{opacity:1}.tree-remove-btn:hover{background:#f44;color:#fff}.tree-category-list{display:flex;flex-direction:column;border-top:1px solid var(--border-color)}.tree-category-row{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 40px;cursor:pointer;transition:background-color .15s}.tree-category-row:hover{background:var(--bg-hover)}.tree-category-row:not(:last-child){border-bottom:1px solid rgba(68,68,68,.3)}.visibility-tree::-webkit-scrollbar{width:6px}.visibility-tree::-webkit-scrollbar-track{background:transparent}.visibility-tree::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.visibility-tree::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.tree-actions{justify-content:space-between;margin-top:8px}.summary-hint{display:block;font-size:10px;color:var(--text-secondary);margin-top:4px;opacity:.7}.tree-vis-icon{flex:0 0 auto;font-size:12px;opacity:.7;margin-right:4px}.tree-file-header.selected,.tree-category-row.selected{background:#0f83!important;outline:1px solid var(--accent-primary);outline-offset:-1px}.tree-file-header.selected .tree-file-label,.tree-category-row.selected .tree-category-label{color:var(--accent-primary);font-weight:600}.tree-file-header.hidden-item,.tree-category-row.hidden-item{opacity:.5}.tree-file-header.hidden-item .tree-file-label,.tree-category-row.hidden-item .tree-category-label{text-decoration:line-through;color:var(--text-secondary)}.tree-file-header.partial-hidden,.tree-category-row.partial-hidden{opacity:.75}.tree-file-header.partial-hidden .tree-vis-icon,.tree-category-row.partial-hidden .tree-vis-icon{opacity:.5}.tree-context-menu{position:fixed;z-index:10000;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:6px 0;min-width:180px;box-shadow:0 8px 24px #0006;animation:contextMenuFadeIn .1s ease-out}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;font-size:13px;color:var(--text-primary);transition:background-color .1s,color .1s}.context-menu-item:hover{background:var(--accent-primary);color:var(--bg-primary)}.context-menu-item.context-menu-danger:hover{background:#f44;color:#fff}.context-icon{font-size:14px;width:20px;text-align:center}.context-menu-separator{height:1px;background:var(--border-color);margin:6px 0}.tree-file-header,.tree-category-row{cursor:pointer;-webkit-user-select:none;user-select:none}.tree-file-header:hover:not(.selected),.tree-category-row:hover:not(.selected){background:var(--bg-hover)}.visibility-tree:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.visibility-tree:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.show-all-btn{background:#0a5!important;color:#fff!important;width:100%}.show-all-btn:hover{background:#0b6!important}.menu-item:hover{background:var(--bg-hover);color:var(--accent-primary)}.menu-item:active{background:var(--accent-primary);color:var(--bg-primary)}.properties-display{font-family:Courier New,monospace;font-size:12px}.property-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border-color)}.property-row:last-child{border-bottom:none}.property-label{color:var(--accent-secondary);font-weight:600;margin-right:10px}.property-value{color:var(--text-primary);text-align:right;word-break:break-word}.property-section{margin-top:15px;padding-top:10px;border-top:2px solid var(--border-color)}.property-section:first-child{margin-top:0;padding-top:0;border-top:none}.property-section-title{color:var(--accent-primary);font-weight:700;margin-bottom:8px;font-size:13px}.nav-wheel{position:fixed;top:20px;right:20px;width:250px;height:250px;z-index:1000;pointer-events:all;cursor:move;-webkit-user-select:none;user-select:none}.nav-wheel.dragging{cursor:grabbing}.nav-wheel.picking-mode{opacity:.7}.nav-wheel.picking-mode .nav-center{fill:#00ff8880;stroke:var(--accent-primary);stroke-width:3;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.nav-wheel-svg{width:100%;height:100%;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5))}.nav-segment{fill:#2a2a2af2;stroke:#444c;stroke-width:1.5;cursor:grab;transition:fill .2s ease,stroke .2s ease}.nav-segment:active{cursor:grabbing}.nav-segment:hover{fill:#00ff884d;stroke:var(--accent-primary);stroke-width:2}.nav-segment.active{fill:#00ff8880;stroke:var(--accent-primary);stroke-width:2.5}.nav-center{fill:#2a2a2af2;stroke:var(--accent-primary);stroke-width:2;cursor:crosshair;transition:fill .2s ease}.nav-center:hover{fill:#0f83;stroke-width:3}.nav-label{fill:var(--text-primary);font-size:12px;font-weight:600;pointer-events:none;-webkit-user-select:none;user-select:none}.nav-center-label{font-size:10px;fill:var(--accent-primary)}.wheel-instruction{position:absolute;bottom:-30px;left:50%;transform:translate(-50%);background:#00ff88e6;color:var(--bg-primary);padding:8px 12px;border-radius:4px;font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #0000004d}.wheel-instruction.hidden{display:none}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#090e18cc;display:flex;align-items:center;justify-content:center;z-index:2000;transition:opacity .3s ease}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:2.5rem 3rem;background:#0c121ceb;border-radius:18px;box-shadow:0 20px 45px #00000073;min-width:260px}.loading-ring{position:relative;width:90px;height:90px;display:flex;align-items:center;justify-content:center}.loading-circle{position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid transparent;border-top-color:#00e0ff;animation:spin 1.5s linear infinite;filter:drop-shadow(0 0 6px rgba(0,224,255,.55))}.loading-circle.delay{width:70%;height:70%;border-top-color:#00ffa2;animation-duration:1.2s;animation-direction:reverse;filter:drop-shadow(0 0 4px rgba(0,255,162,.55))}.loader-message{font-size:1rem;color:#f3fbff;opacity:.95;text-align:center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hidden{display:none!important}@media (max-width: 768px){#leftPanel{width:100%;max-width:100%;border-right:none;border-bottom:1px solid var(--border-color)}#resizer{display:none}#container{flex-direction:column}.nav-wheel{width:180px;height:180px}.wheel-instruction{font-size:10px;padding:6px 10px}}
