.traces-player{color:#fff;font-family:Noto Sans JP,IBM Plex Mono,sans-serif;overflow:hidden;--nav-h:49px}.tp-loading,.traces-player{background:#0a0e17;inset:0;position:fixed}.tp-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;z-index:9999}.tp-spinner{animation:tpSpin .8s linear infinite;border:3px solid rgba(78,205,196,.2);border-radius:50%;border-top-color:#4ecdc4;height:40px;width:40px}@keyframes tpSpin{to{transform:rotate(1turn)}}.tp-loading p{color:#ffffff80;font-size:12px}.tp-header{align-items:baseline;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0e17eb;border-bottom:1px solid hsla(0,0%,100%,.06);display:flex;gap:10px;height:42px;left:0;padding:10px 16px;position:fixed;right:0;top:var(--nav-h);z-index:1000}.tp-header-meta{color:#ffffffb3;font-size:14px}.tp-header-clock,.tp-header-meta{font-family:IBM Plex Mono,monospace;white-space:nowrap}.tp-header-clock{font-size:15px;letter-spacing:.5px;margin-left:auto}.tp-header-back{color:#ffffff4d;font-size:14px;margin-left:12px;text-decoration:none;transition:color .15s}.tp-header-back:hover{color:#ffffffb3}.tp-map{right:0;z-index:1}.tp-map,.tp-map-hud{bottom:0;left:0;position:fixed;top:calc(42px + var(--nav-h))}.tp-map-hud{color:#4ecdc466;font-family:IBM Plex Mono,monospace;pointer-events:none;width:66.67%;z-index:50}.hud-block{font-size:10px;letter-spacing:.08em;line-height:1.6;position:absolute}.hud-tl{left:16px;top:12px}.hud-tr{right:16px;top:12px}.hud-bl{bottom:16px;left:16px}.hud-br{bottom:16px;right:16px}.hud-dim{color:#4ecdc42e}.hud-hi{color:#4ecdc499}.hud-warn{color:#ff6b6b80}.hud-bar{display:inline-block;font-size:9px;letter-spacing:-1px}.hud-bar-on{color:#4ecdc480}.hud-bar-off{color:#4ecdc41a}.hud-bar-warn{color:#ff6b6b80}.hud-label{color:#4ecdc433;font-size:8px;letter-spacing:.15em;text-transform:uppercase}.tp-cockpit{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#0a0e1759;border-left:1px solid rgba(78,205,196,.12);display:flex;flex-direction:column;gap:0;overflow:hidden;z-index:100}.tp-cockpit,.tp-cockpit:after{bottom:0;left:66.67%;position:fixed;right:0;top:calc(42px + var(--nav-h))}.tp-cockpit:after{background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 0,rgba(0,0,0,.03) 4px);content:"";pointer-events:none;z-index:200}.c-section{border-bottom:1px solid rgba(78,205,196,.06);padding:5px 12px}.c-flex-section{display:flex;flex:1 1 0;flex-direction:column;min-height:0}.c-label{color:#4ecdc480;font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.12em;margin-bottom:3px;text-transform:uppercase}.db-gauge{align-items:center;display:flex;gap:10px}.db-arc-wrap{flex-shrink:0;overflow:hidden;position:relative}.db-arc-wrap,.db-arc-wrap svg{height:40px;width:72px}.db-arc-bg{stroke:#ffffff0f}.db-arc-bg,.db-arc-fg{fill:none;stroke-linecap:round;stroke-width:6}.db-arc-fg{transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1),stroke .8s}.db-text-wrap{flex:1}.tp-db-value{font-family:IBM Plex Mono,monospace;font-size:32px;font-weight:800;line-height:1;transition:color .8s cubic-bezier(.4,0,.2,1),text-shadow .8s}.tp-db-unit{color:#ffffff4d;font-size:11px;margin-left:3px;vertical-align:super}.tp-db-range{color:#fff3;font-family:IBM Plex Mono,monospace;font-size:9px;margin-top:1px}.tp-cockpit canvas{border:1px solid rgba(78,205,196,.1);border-radius:6px;display:block;flex:1 1 0;min-height:0;width:100%}.spectro-labels{display:flex;flex-shrink:0;justify-content:space-between;margin-top:1px}.spectro-labels span{color:#fff3;font-size:8px}.layer-bar-wrap{border-radius:4px;display:flex;height:20px;margin-bottom:4px;overflow:hidden}.layer-segment{align-items:center;color:#ffffffd9;display:flex;font-size:9px;font-weight:700;justify-content:center;overflow:hidden;transition:width .3s ease-out}.layer-legend{display:flex;flex-wrap:wrap;gap:1px 8px}.layer-legend-item{align-items:center;display:flex;gap:3px}.layer-legend-dot{border-radius:2px;height:8px;width:8px}.layer-legend-text{color:#ffffffb3;font-family:IBM Plex Mono,Noto Sans JP,monospace;font-size:10px;font-variant-numeric:tabular-nums}.transport-time{color:#4ecdc4;font-family:IBM Plex Mono,monospace;font-size:20px;font-weight:700;letter-spacing:.05em;margin-bottom:2px;text-align:center}.transport-total{color:#ffffff40;font-size:12px;margin-left:6px}.tp-cockpit input[type=range]{-webkit-appearance:none;background:#ffffff14;border-radius:3px;cursor:pointer;height:6px;margin:3px 0;outline:none;width:100%}.tp-cockpit input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border-radius:50%;box-shadow:0 0 8px #4ecdc499;cursor:pointer;height:16px;width:16px}.tp-cockpit input[type=range]::-moz-range-thumb{background:#fff;border:none;border-radius:50%;box-shadow:0 0 8px #4ecdc499;cursor:pointer;height:16px;width:16px}.btn-row{align-items:center;display:flex;gap:6px;justify-content:center;margin-top:3px}.btn{background:#ffffff0f;border:1px solid hsla(0,0%,100%,.1);border-radius:5px;color:#fff;cursor:pointer;font-family:Noto Sans JP,sans-serif;font-size:12px;padding:4px 10px;transition:background .15s}.btn:hover{background:#ffffff1a}.btn-play{background:#4ecdc426;border-color:#4ecdc44d;font-size:13px;font-weight:700;padding:5px 18px}.btn-play.playing{background:#ff6b6b26;border-color:#ff6b6b4d}.btn-speed{font-family:IBM Plex Mono,monospace;font-size:11px;min-width:34px;text-align:center}.btn-speed.active{background:#4ecdc433;border-color:#4ecdc466;color:#4ecdc4}.transport-status-row{align-items:center;display:flex;gap:6px;justify-content:center;margin-top:4px}.coord-grid{display:grid;gap:2px 12px;grid-template-columns:1fr 1fr}.coord-item{display:flex;flex-direction:column}.coord-key{color:#4ecdc466;font-size:8px;letter-spacing:.15em;margin-bottom:1px;text-transform:uppercase}.coord-key,.coord-val{font-family:IBM Plex Mono,monospace}.coord-val{color:#ffffffd9;font-size:15px;font-weight:700;letter-spacing:.02em;position:relative}.coord-item.full{grid-column:1/-1}.coord-item.full .coord-val{font-size:18px}.mission-status-row{align-items:center;display:flex;gap:12px;justify-content:center;margin-top:3px}.mission-time{color:#4ecdc459;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em}.mission-time .mt-label{color:#4ecdc440;font-size:9px;margin-right:4px}.status-row{align-items:center;display:flex;gap:6px}.status-dot{animation:tpStatusPulse 2s ease-in-out infinite;background:#4ecdc4;border-radius:50%;height:8px;width:8px}.status-dot.alert{animation:tpStatusPulse .6s ease-in-out infinite;background:#ff6b6b}@keyframes tpStatusPulse{0%,to{box-shadow:0 0 4px currentColor;opacity:.4}50%{box-shadow:0 0 12px currentColor;opacity:1}}.status-text{color:#4ecdc480;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.data-stream,.status-text{font-family:IBM Plex Mono,monospace}.data-stream{color:#4ecdc426;font-size:8px;height:12px;line-height:1.3;margin-top:2px;overflow:hidden;pointer-events:none;white-space:nowrap}.radar-container{height:120px;pointer-events:none;position:relative;width:120px}.radar-ring{border:1px solid rgba(78,205,196,.25);border-radius:50%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.radar-ring.r1{height:100px;width:100px}.radar-ring.r2{height:66px;width:66px}.radar-ring.r3{height:33px;width:33px}.radar-cross-h,.radar-cross-v{background:#4ecdc426;position:absolute}.radar-cross-h{height:1px;width:100px}.radar-cross-h,.radar-cross-v{left:50%;top:50%;transform:translate(-50%,-50%)}.radar-cross-v{height:100px;width:1px}.radar-sweep{animation:tpSweep 2.5s linear infinite;background:linear-gradient(90deg,#4ecdc4cc,#4ecdc400);height:2px;left:50%;position:absolute;top:50%;transform-origin:0 50%;width:50px}@keyframes tpSweep{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.radar-dot{background:#4ecdc4;box-shadow:0 0 8px #4ecdc4cc;height:8px;width:8px}.radar-dot,.radar-sonar{border-radius:50%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.radar-sonar{border:2px solid hsla(0,100%,71%,0);height:0;opacity:0;pointer-events:none;transition:all .3s ease-out;width:0}.radar-sonar.active{border-color:#ff6b6b99;box-shadow:0 0 20px #ff6b6b4d;opacity:1}.mgs-alert{color:#ff6b6b;font-family:IBM Plex Mono,monospace;font-size:28px;font-weight:900;opacity:0;pointer-events:none;position:absolute;right:8px;text-shadow:0 0 12px hsla(0,100%,71%,.8),0 0 24px hsla(0,100%,71%,.4);top:-8px;transform:scale(.3);transition:opacity .15s,transform .15s}.mgs-alert.show{opacity:1;transform:scale(1)}.traces-player .leaflet-control-zoom{display:none!important}.traces-player .leaflet-control-attribution{background:#0f0f19bf!important;color:#666!important;font-size:.6rem!important}.traces-player .leaflet-control-attribution a{color:#888!important}.bldg-toggle{background:#4ecdc41a;border:1px solid rgba(78,205,196,.4);border-radius:3px;color:#4ecdc4;cursor:pointer;display:inline-block;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;margin-top:4px;padding:3px 10px;text-shadow:0 0 6px rgba(78,205,196,.3);transition:all .15s}.bldg-toggle:hover{border-color:#4ecdc499;text-shadow:0 0 8px rgba(78,205,196,.5)}.bldg-toggle.active,.bldg-toggle:hover{background:#4ecdc426;color:#6ef5ec}.bldg-toggle.active{border-color:#4ecdc4b3;text-shadow:0 0 10px rgba(78,205,196,.5)}.bldg-tooltip{background:#0a0e17d9!important;border:1px solid rgba(78,205,196,.3)!important;border-radius:3px!important;box-shadow:0 2px 8px #0006!important;color:#fffc!important;font-family:IBM Plex Mono,Noto Sans JP,monospace!important;font-size:11px!important;padding:3px 8px!important}.bldg-tooltip:before{border-top-color:#4ecdc44d!important}.bldg-tooltip-landmark{background:#0a0e17eb!important;border-color:#4ecdc480!important;color:#4ecdc4!important;font-size:10px!important;font-weight:700!important;letter-spacing:.05em!important;text-shadow:0 0 6px rgba(78,205,196,.3)!important}.bldg-tooltip-shop{background:#0a0e17cc!important;border-color:#ffc8574d!important;color:#ffc857d9!important;font-size:9px!important}.hud-caption{animation:captionFadeIn .3s ease-out;bottom:48px;left:50%;pointer-events:none;position:absolute;transform:translate(-50%);z-index:60}.hud-caption-text{background:#0a0e17d1;border:1px solid rgba(78,205,196,.35);border-radius:4px;color:#ffffffe0;display:inline-block;font-family:Noto Sans JP,IBM Plex Mono,sans-serif;font-size:13px;letter-spacing:.04em;padding:6px 16px;text-shadow:0 0 8px rgba(78,205,196,.15);white-space:nowrap}@keyframes captionFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
