:root{color-scheme:dark;font-family:Segoe UI,Roboto,system-ui,sans-serif;--bg: #0d1117;--panel-bg: rgba(20, 24, 32, .92);--panel-border: #2a2f38;--text: #e6edf3;--muted: #8b949e;--accent: #58a6ff;--good: #3fb950;--warn: #d29922;--bad: #f85149;--queued: #6e7681;--loaded: #d29922;--visible: #58a6ff;--rendered: #3fb950;--failed: #f85149}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text)}#app{position:absolute;inset:40px 0 0}.viewer-host{position:absolute;inset:0}#viewer-canvas{display:block;width:100%;height:100%}.ribbon{position:absolute;top:0;left:0;right:0;z-index:30;pointer-events:auto;background:var(--panel-bg);border-bottom:1px solid var(--panel-border);backdrop-filter:blur(8px)}.ribbon.collapsed .ribbon-body{display:none}.ribbon-body{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;padding:4px 4px 2px}.ribbon-section{display:flex;flex-direction:column;padding:2px 12px 4px;border-right:1px solid var(--panel-border);min-width:0}.ribbon-section:last-child{border-right:0}.ribbon-section-title{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:4px}.ribbon-section-body{display:grid;grid-template-rows:auto auto;grid-auto-flow:column;align-items:center;justify-content:start;gap:4px 8px}.ribbon-section-body>select{grid-row:1 / span 2}.ribbon-btn-row{display:contents}.ribbon-footer{display:flex;justify-content:center;padding:0 0 2px}.ribbon .ribbon-collapse{width:36px;height:14px;padding:0;line-height:12px;font-size:10px;color:var(--muted);background:#21262d;border:1px solid var(--panel-border);border-radius:0 0 6px 6px;cursor:pointer}.ribbon .ribbon-collapse:hover{color:var(--text);border-color:var(--accent)}.ribbon-field{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.ribbon-field-label{min-width:48px}.ribbon button,.ribbon select{background:#21262d;color:var(--text);border:1px solid var(--panel-border);border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer}.ribbon button:hover{border-color:var(--accent)}.ribbon button.toggle.on{background:var(--accent);color:#0d1117;border-color:var(--accent)}.ribbon select{min-width:220px;max-width:360px}.ribbon input[type=range]{width:110px}.ribbon input[type=text],.ribbon input[type=number]{background:#0d1117;color:var(--text);border:1px solid var(--panel-border);border-radius:4px;padding:3px 6px;font-size:12px}.ribbon input[type=text]{width:130px}.ribbon input[type=number]{width:88px}.cesium-host{position:absolute;inset:0}.cesium-host .cesium-viewer{width:100%;height:100%}.cesium-status{display:block;color:var(--muted);font-size:11px;max-width:220px;word-break:break-word}.nav-hint{position:absolute;left:50%;bottom:72px;transform:translate(-50%);z-index:12;pointer-events:none;background:#141820e0;border:1px solid var(--panel-border);border-radius:6px;padding:6px 12px;font-size:12px;color:var(--muted);white-space:nowrap;backdrop-filter:blur(6px)}.nav-hint[hidden]{display:none}.debug-panel{position:absolute;left:0;right:0;bottom:0;height:280px;background:var(--panel-bg);border-top:1px solid var(--panel-border);color:var(--text);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;display:flex;flex-direction:column;z-index:20;backdrop-filter:blur(6px)}.debug-panel.hidden{display:none}.debug-panel .debug-chrome{display:flex;align-items:center;gap:10px;padding:4px 10px;border-bottom:1px solid var(--panel-border);cursor:ns-resize;user-select:none;background:#00000040}.debug-panel .debug-chrome-hint{flex:1;opacity:.55;font-size:11px}.debug-panel .debug-chrome button{margin-left:auto}.debug-panel .stats-row{display:flex;flex-wrap:wrap;gap:14px;padding:6px 12px;border-bottom:1px solid var(--panel-border);align-items:center}.debug-panel .stats-row .stat{white-space:nowrap}.debug-panel .stats-row .stat b{color:var(--accent);margin-left:4px}.debug-panel .filter-row{display:flex;gap:8px;padding:6px 12px;border-bottom:1px solid var(--panel-border);align-items:center;flex-wrap:wrap}.debug-panel .filter-row input,.debug-panel .filter-row select{background:#0d1117;color:var(--text);border:1px solid var(--panel-border);border-radius:4px;padding:3px 6px;font-size:12px}.debug-panel .filter-row .spacer{flex:1}.debug-panel .list{flex:1;overflow-y:auto;position:relative}.debug-panel .list-inner{position:relative}.debug-panel .row{position:absolute;left:0;right:0;display:grid;grid-template-columns:260px 90px 60px 80px 80px 80px 80px 1fr;gap:8px;padding:2px 12px;border-bottom:1px solid #1c2129;align-items:center}.debug-panel .row.header{position:sticky;top:0;background:#161b22;border-bottom:1px solid var(--panel-border);color:var(--muted);font-weight:600;z-index:1}.state{padding:1px 6px;border-radius:3px;font-size:11px;text-transform:uppercase;display:inline-block;color:#0d1117;font-weight:600}.state.discovered{background:#6e7681}.state.queued{background:var(--queued);color:#fff}.state.downloading{background:#a371f7;color:#fff}.state.loaded{background:var(--loaded)}.state.visible{background:var(--visible)}.state.rendered{background:var(--rendered)}.state.hidden{background:#30363d;color:var(--muted)}.state.unloaded{background:#21262d;color:var(--muted)}.state.failed{background:var(--failed);color:#fff}html.hud-off .ribbon,html.hud-off .debug-panel,html.hud-off .nav-hint,html.hud-off .empty-tileset-hint,html.hud-off .nw-tree-panel,html.hud-off .nw-property-panel{display:none!important}.nw-tree-panel,.nw-property-panel{position:absolute;top:calc(var(--ribbon-height, 96px) + 8px);bottom:12px;width:300px;display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:8px;color:var(--text);z-index:18;backdrop-filter:blur(6px);pointer-events:auto;overflow:hidden}.nw-tree-panel{left:10px}.nw-property-panel{right:10px;width:340px}.nw-tree-panel.hidden,.nw-property-panel.hidden{display:none}.nw-panel-chrome{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--panel-border);background:#00000038;cursor:grab;user-select:none;touch-action:none}.nw-panel-chrome.nw-panel-drag-handle:active,.nw-tree-panel.dragging .nw-panel-chrome,.nw-property-panel.dragging .nw-panel-chrome{cursor:grabbing}.nw-panel-title{flex:1;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nw-panel-close{background:transparent;border:0;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}.nw-panel-close:hover{color:var(--text)}.nw-panel-empty{padding:16px 14px;color:var(--muted);font-size:12px;line-height:1.45}.nw-tree-filter{margin:8px 10px 0;background:#0d1117;color:var(--text);border:1px solid var(--panel-border);border-radius:4px;padding:4px 8px;font-size:12px}.nw-tree-list{flex:1;overflow:auto;padding:6px 4px 10px}.nw-tree{list-style:none;margin:0;padding:0 0 0 12px}.nw-tree-list>.nw-tree{padding-left:4px}.nw-tree-help{margin:0;padding:6px 10px 4px;font-size:11px;line-height:1.4;color:var(--muted);border-bottom:1px solid var(--panel-border)}.nw-tree-help strong{display:block;color:#c9d1d9;font-weight:600;margin-bottom:2px}.nw-tree-help ul{margin:0;padding:0 0 0 16px}.nw-tree-help li{margin:2px 0}.nw-tree-row{display:flex;align-items:center;gap:2px;padding:2px 4px;border-radius:3px;cursor:pointer;font-size:12px;user-select:none}.nw-tree-row:hover{background:#21262d}.nw-tree-row.selected{background:#1f4b73}.nw-tree-row.selected:hover{background:#255988}.nw-tree-row.selected-in{background:#17344f}.nw-tree-row.selected-in:hover{background:#1a4060}.nw-tree-row.geom .nw-tree-label{color:#d2e3ff}.nw-tree-twist,.nw-tree-eye{flex:0 0 auto;width:16px;height:18px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:10px}.nw-tree-twist:disabled{cursor:default;opacity:.25}.nw-tree-eye{width:18px;display:inline-flex;align-items:center;justify-content:center;color:#9ecbff}.nw-tree-eye:hover{color:var(--text)}.nw-tree-eye .eye-off{display:none}.nw-tree-eye.off{color:#8b949e}.nw-tree-eye.off .eye-on{display:none}.nw-tree-eye.off .eye-off{display:block}.nw-tree-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nw-prop-tabs{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--panel-border);background:#0000001f}.nw-prop-tab{flex:0 0 auto;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:7px 12px;font-size:12px;cursor:pointer;white-space:nowrap}.nw-prop-tab:hover{color:var(--text)}.nw-prop-tab.on{color:var(--text);border-bottom-color:var(--accent)}.nw-prop-body{flex:1;overflow:auto}.nw-prop-table{width:100%;border-collapse:collapse;font-size:12px}.nw-prop-table th,.nw-prop-table td{padding:5px 10px;border-bottom:1px solid #1c2129;text-align:left;vertical-align:top}.nw-prop-table th{color:var(--muted);font-weight:600;position:sticky;top:0;background:#161b22}.nw-prop-table td:first-child{width:42%;color:#c9d1d9}.nw-prop-table td:last-child{color:var(--text);word-break:break-word}.empty-tileset-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5}.empty-tileset-hint[hidden]{display:none}.empty-tileset-hint-card{pointer-events:none;max-width:420px;padding:20px 24px;border-radius:10px;background:#0d1117e0;border:1px solid var(--panel-border);color:var(--text);text-align:center;box-shadow:0 12px 40px #00000073}.empty-tileset-hint-card strong{display:block;font-size:16px;margin-bottom:8px}.empty-tileset-hint-card p{margin:6px 0;font-size:13px;line-height:1.45;color:var(--muted)}.empty-tileset-hint-card .muted{font-size:12px;opacity:.85}.empty-tileset-hint-card code{color:var(--accent);font-size:12px}
