:root{--bg: #0b1120;--panel: rgba(17, 27, 46, .85);--border: rgba(148, 163, 184, .25);--text: #e2e8f0;--muted: #94a3b8;--accent: #fbbf24}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--border);background:#0b1120f2;z-index:10}.brand{font-size:18px;font-weight:600;letter-spacing:.5px}.brand-sub{font-size:12px;color:var(--accent);margin-left:8px;font-style:italic}.mode-toggle button,.slider-presets button{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:5px 12px;margin-left:6px;cursor:pointer;font-size:13px}.mode-toggle button.active{color:#0b1120;background:var(--accent);border-color:var(--accent)}.mode-toggle button:hover{color:var(--text)}.stage{position:relative;flex:1;overflow:hidden}.center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.muted{color:var(--muted)}.error{color:#f87171}.panel{position:absolute;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5}.legend{top:14px;left:14px;font-size:12px}.legend-title{font-weight:600;margin-bottom:8px;color:var(--text)}.legend-row{display:flex;align-items:center;gap:8px;margin:4px 0;color:var(--muted)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.inspector{top:14px;right:14px;width:260px;max-height:70vh;display:flex;flex-direction:column}.inspector-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.inspector-kicker{font-size:11px;color:var(--accent);text-transform:uppercase}.inspector-title{font-size:15px;font-weight:600}.close{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:14px}.inspector-list{overflow-y:auto}.hit{display:flex;justify-content:space-between;padding:5px 8px;border-radius:6px;font-size:13px;margin:2px 0}.hit.on{background:#fbbf2424;color:#fde68a}.hit.off{color:var(--muted)}.hit-lag{font-variant-numeric:tabular-nums}.topbar-right{display:flex;align-items:center;gap:10px}.ghost{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:5px 12px;cursor:pointer;font-size:13px}.ghost:hover{color:var(--text);border-color:var(--accent)}.rel-group-title{font-size:12px;color:var(--accent);margin:10px 0 4px}.hit-rel{color:var(--muted);font-size:12px}.slider-stack{position:absolute;bottom:18px;left:50%;transform:translate(-50%);display:flex;flex-direction:row;align-items:flex-end;gap:12px;width:min(900px,96vw);z-index:5}.slider-stack .panel{position:static;transform:none;flex:1;min-width:0;align-self:flex-end}.hop-presets{display:flex;gap:6px;margin:4px 0 10px}.hop-presets button{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:4px 14px;cursor:pointer;font-size:13px}.hop-presets button.active{color:#0b1120;background:var(--accent);border-color:var(--accent)}.rel-filter{display:flex;flex-wrap:wrap;gap:8px 14px}.rel-check{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text);cursor:pointer}.rel-check input{accent-color:var(--accent)}.rel-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.detail-card{left:14px;top:200px;width:220px;z-index:30}.detail-kicker{font-size:11px;color:var(--accent);text-transform:uppercase}.detail-name{font-size:15px;font-weight:600;margin-bottom:8px}.detail-row{display:flex;justify-content:space-between;font-size:12px;margin:3px 0}.detail-label{color:var(--muted)}.detail-value{color:var(--text)}.detail-hint{font-size:11px;color:var(--muted);margin-top:8px}.globe-stub{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);background:radial-gradient(circle at 50% 40%,#14233f,#0b1120 70%);text-align:center;padding:0 24px}.slider-panel,.hop-panel{width:100%}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:move}.panel-title{font-weight:600;font-size:14px;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-actions{display:flex;gap:2px;flex-shrink:0}.panel-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;padding:3px 6px;border-radius:4px}.panel-btn:hover{color:var(--text);background:#94a3b826}.panel-body{margin-top:10px}.slider-title-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%}.slider-value-sm{color:var(--accent);font-size:12px;font-variant-numeric:tabular-nums}.window-panel .hop-presets button{padding:4px 10px}.window-dates{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--muted)}.window-dates input[type=date]{background:#0b1120;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:3px 6px;font-size:12px;flex:1;min-width:0;color-scheme:dark}.slider-stack{width:min(1100px,98vw)}.filter-label{font-size:11px;color:var(--accent);margin:10px 0 4px}.node-filter{display:flex;flex-direction:column;gap:5px;max-height:190px;overflow-y:auto}.node-group-head{font-size:12px}.node-subs{display:flex;flex-wrap:wrap;gap:3px 10px;margin:2px 0 2px 16px}.node-subs .rel-check{font-size:11px}.event-selector{left:14px;top:430px;width:220px;z-index:28}.event-list{display:flex;flex-direction:column;gap:2px;max-height:230px;overflow-y:auto}.event-row{display:flex;align-items:center;gap:6px;font-size:12px;padding:2px 0}.event-row.on{color:var(--accent)}.event-row input{accent-color:var(--accent);flex-shrink:0}.event-name{flex:1;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-name:hover{text-decoration:underline}.event-kind{color:var(--muted);font-size:11px;flex-shrink:0}.dock{position:absolute;z-index:6;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dock-filter{left:14px;bottom:14px;width:300px}.dock-time{right:14px;bottom:14px;width:280px}.dock-info{right:14px;top:14px;width:248px}.dock-head{display:flex;align-items:center;gap:4px;padding:5px 8px;border-bottom:1px solid var(--border)}.dock.collapsed .dock-head{border-bottom:none}.dock-grip{color:var(--muted);cursor:move;font-size:13px;-webkit-user-select:none;user-select:none;padding:0 2px}.dock-tabs{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto}.dock-tab{background:transparent;color:var(--muted);border:none;border-radius:6px 6px 0 0;padding:5px 10px;cursor:pointer;font-size:12px;white-space:nowrap}.dock-tab:hover{color:var(--text)}.dock-tab.active{color:var(--text);background:#94a3b829;border-bottom:2px solid var(--accent)}.dock-collapse{flex-shrink:0}.dock-body{padding:10px 12px;max-height:min(58vh,520px);overflow-y:auto}.dock-body>div{width:100%}.dock-body .inspector{max-height:none}.dock-section-head{display:flex;justify-content:space-between;align-items:baseline;font-weight:600;font-size:13px;color:var(--text);margin-bottom:8px}@media (max-width: 680px){.topbar{padding:8px 12px}.brand{font-size:15px}.brand-sub{display:none}.dock{position:fixed;left:6px;right:6px;width:auto;flex-direction:column-reverse;max-height:70vh;transform:none!important}.dock-head{border-bottom:none;border-top:1px solid var(--border)}.dock-filter{bottom:6px;z-index:7}.dock-time{bottom:48px;z-index:8}.dock-info{bottom:90px;z-index:9}.dock:not(.collapsed){z-index:20}.dock-body{max-height:54vh}}.slider-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.slider-title{font-weight:600}.slider-value{color:var(--accent);font-size:18px;font-variant-numeric:tabular-nums}.slider-panel input[type=range]{width:100%;accent-color:var(--accent)}.slider-presets{display:flex;gap:6px;margin-top:8px;justify-content:center}.slider-presets button.active{color:#0b1120;background:var(--accent);border-color:var(--accent)}.slider-presets button:disabled,.slider-panel input:disabled{opacity:.4;cursor:not-allowed}.slider-hint{text-align:center;font-size:12px;color:var(--muted);margin-top:8px}
