.star-map-container{position:relative;width:100%;height:100vh;height:100dvh;background:transparent;overflow:hidden}.status-bar{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);z-index:100}.connection-status{display:flex;align-items:center;gap:8px;color:#fff;font-size:14px}.status-dot{width:10px;height:10px;border-radius:50%;animation:pulse 2s infinite}.status-dot.connected{background:#4ade80;box-shadow:0 0 10px #4ade80}.status-dot.disconnected{background:#f87171;box-shadow:0 0 10px #f87171}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.stats{display:flex;gap:20px}.stat{padding:4px 12px;border-radius:4px;font-size:13px;font-weight:500}.stat.safe{background:#4ade8033;color:#4ade80}.stat.danger{background:#f8717133;color:#f87171}.stat.unknown{background:#9ca3af33;color:#9ca3af}.refresh-info{display:flex;align-items:center;gap:12px;color:#9ca3af;font-size:13px}.refresh-btn{padding:6px 16px;background:#3b82f64d;border:1px solid rgba(59,130,246,.5);border-radius:4px;color:#60a5fa;cursor:pointer;transition:all .2s}.refresh-btn:hover{background:#3b82f680;color:#fff}.map-wrapper{position:absolute;top:0;left:0;width:100%;height:100%;height:100dvh;overflow:hidden}.star-map{width:100%;height:100%;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.star-map:active{cursor:grabbing}.map-controls{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;align-items:center;gap:4px;background:#0f172ae6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;padding:8px;border:1px solid rgba(255,255,255,.1);z-index:50}.map-control-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:20px;font-weight:500;cursor:pointer;transition:all .2s}.map-control-btn:hover{background:#3b82f666;border-color:#3b82f699}.map-control-btn:active{background:#3b82f699;transform:scale(.95)}.map-control-btn.reset-btn{font-size:18px;margin-top:4px}.zoom-level{color:#9ca3af;font-size:11px;font-weight:500;padding:2px 0;min-width:40px;text-align:center}.connection-line{stroke:#64748b99;stroke-width:2;transition:stroke .3s}.connection-line.dangerous{stroke:#f87171cc;stroke-width:2.5}.connection-line.safe{stroke:#4ade80b3;stroke-width:2}.connection-line.unknown{stroke:#64748b66;stroke-width:1.5;stroke-dasharray:4,4}.jump-bridge-line{stroke:#64748b99;stroke-width:2.5;stroke-dasharray:8,4;stroke-linecap:round;opacity:.85;transition:opacity .2s,stroke-width .2s,stroke .3s}.jump-bridge-line:hover{stroke-width:4;opacity:1}.jump-bridge-line.safe{stroke:#4ade80d9}.jump-bridge-line.dangerous{stroke:#f87171e6}.jump-bridge-line.unknown{stroke:#64748b80}.system-node{transition:all .2s ease}.system-node:hover{filter:brightness(1.2)}.system-node.selected{filter:brightness(1.3) drop-shadow(0 0 10px rgba(255,255,255,.5))}.system-node .node-bg{fill:#9ca3af4d;stroke:#9ca3af99;stroke-width:1.5;transition:all .3s}.system-node.safe .node-bg{fill:#4ade8040;stroke:#4ade80b3}.system-node.danger .node-bg{fill:#f871714d;stroke:#f87171cc;animation:dangerPulse 1.5s infinite}.system-node.unknown .node-bg{fill:#6b72804d;stroke:#6b728099}@keyframes dangerPulse{0%,to{fill:#f871714d;stroke:#f87171cc}50%{fill:#f8717180;stroke:#f87171}}.system-node.highlighted .highlight-border{stroke:#38bdf8;stroke-dasharray:4 2;animation:dashMove 1s linear infinite}@keyframes dashMove{to{stroke-dashoffset:-12}}.system-name{fill:#fff;font-size:11px;font-weight:600;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;pointer-events:none}.security-status{fill:#94a3b8;font-size:10px;font-weight:500;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;pointer-events:none}.system-node.safe .security-status{fill:#86efac}.system-node.danger .security-status{fill:#fca5a5}.threat-count{font-size:9px;font-weight:600;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;pointer-events:none}.friendly-count{font-size:9px;font-weight:500;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif;pointer-events:none}.threat-indicator{animation:threatBounce .5s ease infinite alternate}@keyframes threatBounce{0%{transform:translateY(0)}to{transform:translateY(-2px)}}.info-panel{position:absolute;top:80px;right:20px;width:280px;background:#0f172af2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 40px #0006;overflow:hidden;z-index:200;animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.panel-drag-handle{display:none;justify-content:center;align-items:center;padding:8px 0 4px;cursor:pointer}.drag-indicator{width:40px;height:4px;background:#ffffff4d;border-radius:2px;transition:background .2s}.panel-drag-handle:hover .drag-indicator,.panel-drag-handle:active .drag-indicator{background:#ffffff80}.panel-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:150;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.info-panel.safe{border-color:#4ade804d}.info-panel.danger{border-color:#f871714d}.info-panel.unknown{border-color:#9ca3af4d}.info-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.info-header h3{margin:0;color:#fff;font-size:16px;font-weight:600}.close-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:6px;color:#9ca3af;font-size:18px;cursor:pointer;transition:all .2s}.close-btn:hover{background:#fff3;color:#fff}.info-content{padding:16px 20px}.info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.info-row:last-child{border-bottom:none}.info-row .label{color:#9ca3af;font-size:13px}.info-row .value{color:#fff;font-size:14px;font-weight:500}.info-row .value.status-safe{color:#4ade80}.info-row .value.status-danger{color:#f87171}.info-row .value.status-unknown{color:#9ca3af}.info-row .value.danger{color:#f87171;font-weight:600}.info-row .value.warning{color:#fbbf24;font-weight:600}.info-row .value.friendly{color:#4ade80;font-weight:500}.info-safe-note{text-align:center;color:#4ade80;padding:16px 0;font-size:13px;background:#4ade801a;border-radius:6px;margin:8px 0}.no-data{text-align:center;color:#6b7280;padding:20px 0;font-size:14px}.legend{position:absolute;bottom:20px;right:20px;background:#0f172ae6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;padding:12px 16px;border:1px solid rgba(255,255,255,.1);transition:all .2s ease;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif}.legend h4{margin:0 0 10px;color:#fff;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}.legend h4.legend-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:0}.legend h4.legend-toggle:hover{color:#60a5fa}.legend .toggle-icon{font-size:10px;color:#9ca3af;transition:transform .2s ease}.legend-collapsed h4{margin-bottom:0}.legend-items{margin-top:10px}.legend-item{display:flex;align-items:center;gap:8px;margin:6px 0;color:#9ca3af;font-size:12px}.legend-color{width:16px;height:16px;border-radius:4px}.legend-color.safe{background:#4ade8066;border:2px solid #4ade80}.legend-color.danger{background:#f8717166;border:2px solid #f87171}.legend-color.unknown{background:#6b728066;border:2px solid #6b7280}.legend-divider{height:1px;background:#64748b4d;margin:8px 0}.legend-line{width:24px;height:3px;border-radius:2px;flex-shrink:0}.legend-line.jump-bridge{background:repeating-linear-gradient(90deg,rgba(74,222,128,.85) 0px,rgba(74,222,128,.85) 6px,transparent 6px,transparent 10px);border-radius:3px;transform:skew(-10deg)}.legend-line.territory-gate{background:repeating-linear-gradient(90deg,#fbbf24,#fbbf24 6px,#000 6px,#000 10px);border-radius:3px;box-shadow:0 0 6px #fbbf2499}@media (max-width: 768px){.status-bar{flex-wrap:wrap;gap:8px;padding:10px 12px}.connection-status{font-size:13px}.stats{order:3;width:100%;justify-content:center;gap:12px}.stat{padding:3px 10px;font-size:12px}.refresh-info{font-size:12px;gap:8px}.refresh-btn{padding:5px 12px;font-size:12px}.info-panel{top:auto;bottom:0;left:0;right:0;width:100%;max-height:60vh;border-radius:16px 16px 0 0;animation:slideUp .3s ease}.panel-drag-handle{display:flex}.panel-backdrop{display:block}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.info-header{padding:4px 16px 12px}.info-header h3{font-size:15px}.info-content{padding:12px 16px;max-height:calc(60vh - 60px);overflow-y:auto}.legend{bottom:10px;left:10px;padding:10px 12px;max-width:calc(100vw - 20px)}.map-controls{bottom:10px;right:10px;padding:6px}.map-control-btn{width:32px;height:32px;font-size:18px}.zoom-level{font-size:10px}.legend h4{font-size:12px;margin-bottom:8px}.legend-item{font-size:11px;gap:6px;margin:4px 0}.legend-color{width:14px;height:14px}.system-name{font-size:10px}.security-status{font-size:9px}.threat-count,.friendly-count{font-size:8px}}@media (max-width: 480px){.status-bar{padding:8px 10px;gap:6px}.connection-status{font-size:12px;gap:6px}.status-dot{width:8px;height:8px}.stats{gap:8px}.stat{padding:2px 8px;font-size:11px;border-radius:3px}.refresh-info{font-size:11px;flex-wrap:wrap;justify-content:flex-end;gap:6px}.refresh-info>span{display:none}.refresh-btn{padding:4px 10px;font-size:11px}.info-panel{max-height:70vh}.info-header{padding:10px 14px}.info-header h3{font-size:14px}.close-btn{width:24px;height:24px;font-size:16px}.info-content{padding:10px 14px}.info-row{padding:6px 0}.info-row .label{font-size:12px}.info-row .value{font-size:13px}.info-safe-note{padding:12px 0;font-size:12px}.no-data{padding:16px 0;font-size:13px}.legend{bottom:8px;left:8px;padding:8px 10px}.legend h4{font-size:11px;margin-bottom:6px}.legend-item{font-size:10px;margin:3px 0}.legend-color{width:12px;height:12px;border-width:1.5px}.map-controls{bottom:8px;right:8px;padding:5px;gap:3px}.map-control-btn{width:30px;height:30px;font-size:16px}.map-control-btn.reset-btn{font-size:14px}.zoom-level,.system-name{font-size:9px}.security-status{font-size:8px}.threat-count,.friendly-count{font-size:7px}}@media (max-width: 360px){.status-bar{padding:6px 8px}.connection-status{font-size:11px}.stats{gap:6px}.stat{padding:2px 6px;font-size:10px}.refresh-btn{padding:3px 8px;font-size:10px}.info-header h3{font-size:13px}.info-row .label,.info-row .value{font-size:11px}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px}.legend h4{margin:0 4px 0 0}.legend-item{margin:0;font-size:9px}.legend-color{width:10px;height:10px}.map-controls{flex-direction:row;bottom:8px;right:8px;padding:4px 6px;gap:4px}.map-control-btn{width:28px;height:28px;font-size:14px}.map-control-btn.reset-btn{font-size:12px;margin-top:0;margin-left:4px}.zoom-level{font-size:8px;min-width:30px}}@media (max-height: 500px) and (orientation: landscape){.status-bar{padding:6px 12px}.connection-status{font-size:11px}.stats{order:0;width:auto;gap:10px}.stat{padding:2px 8px;font-size:10px}.refresh-info{font-size:10px}.refresh-info>span{display:none}.refresh-btn{padding:3px 8px;font-size:10px}.info-panel{top:50px;bottom:auto;left:auto;right:10px;width:260px;max-height:calc(100vh - 60px);border-radius:12px;animation:slideIn .2s ease}.info-content{max-height:calc(100vh - 130px)}.legend{bottom:8px;left:8px;padding:6px 10px}.legend h4{font-size:10px}.legend-item{font-size:9px}.map-controls{bottom:8px;right:8px;flex-direction:row;padding:4px 6px}.map-control-btn{width:26px;height:26px;font-size:14px}.map-control-btn.reset-btn{margin-top:0;margin-left:4px}.zoom-level{font-size:9px}}@media (hover: none) and (pointer: coarse){.system-node{cursor:pointer}.system-node .node-bg{transition:all .15s ease}.system-node:active .node-bg{transform:scale(1.1);filter:brightness(1.2)}.refresh-btn{min-height:36px;min-width:60px}.close-btn{min-width:32px;min-height:32px}.system-node:hover{filter:none}.refresh-btn:hover{background:#3b82f64d;color:#60a5fa}.refresh-btn:active{background:#3b82f680;color:#fff}}@media (prefers-color-scheme: dark){.status-bar{background:#000000b3}.info-panel{background:#0a1223fa}.legend{background:#0a1223f2}}@media (prefers-reduced-motion: reduce){.status-dot,.system-node.danger .node-bg,.threat-indicator,.system-node.highlighted .highlight-border{animation:none}.info-panel,.system-node,.connection-line,.refresh-btn,.close-btn{transition:none}@keyframes slideIn{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes slideUp{0%{opacity:1;transform:none}to{opacity:1;transform:none}}}.alarm-panel{position:absolute;top:80px;left:20px;width:260px;background:#0f172af2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 30px #0000004d;overflow:hidden;z-index:100;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif}.alarm-panel.collapsed{width:auto;min-width:140px}.alarm-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#ffffff0d;cursor:pointer;-webkit-user-select:none;user-select:none}.alarm-header:hover{background:#ffffff14}.alarm-title{display:flex;align-items:center;gap:8px;color:#fff;font-size:14px;font-weight:600}.alarm-icon{font-size:16px;transition:transform .2s}.alarm-icon.active{animation:alarmShake .5s infinite}@keyframes alarmShake{0%,to{transform:rotate(0)}25%{transform:rotate(-15deg)}75%{transform:rotate(15deg)}}.threat-badge{background:#f87171;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center;animation:badgePulse 1s infinite}@keyframes badgePulse{0%,to{opacity:1}50%{opacity:.7}}.alarm-header .toggle-icon{font-size:10px;color:#9ca3af}.alarm-content{padding:16px}.alarm-section{margin-bottom:16px}.alarm-section:last-child{margin-bottom:0}.alarm-section.threats{background:#f871711a;margin:0 -16px;padding:12px 16px;border-top:1px solid rgba(248,113,113,.2)}.alarm-label{display:block;color:#9ca3af;font-size:12px;margin-bottom:8px}.alarm-label.danger{color:#f87171;font-weight:600}.select-hint{display:flex;align-items:center;justify-content:space-between;gap:8px}.hint-text{color:#60a5fa;font-size:12px;animation:hintBlink 1.5s infinite}.hint-text.small{font-size:11px;color:#6b7280;animation:none;margin-top:4px}@keyframes hintBlink{0%,to{opacity:1}50%{opacity:.5}}.center-display{display:flex;align-items:center;justify-content:space-between;gap:8px}.center-name{color:#38bdf8;font-weight:600;font-size:14px}.select-btn,.change-btn,.cancel-btn{padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s;border:none}.select-btn{background:#3b82f64d;color:#60a5fa;border:1px solid rgba(59,130,246,.5);width:100%}.select-btn:hover{background:#3b82f680;color:#fff}.change-btn{background:#ffffff1a;color:#9ca3af}.change-btn:hover{background:#fff3;color:#fff}.cancel-btn{background:#f8717133;color:#f87171}.cancel-btn:hover{background:#f8717166}.range-value{color:#38bdf8;font-weight:600}.range-slider-container{margin-top:8px}.range-slider{width:100%;height:6px;border-radius:3px;background:#ffffff1a;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#38bdf8;cursor:pointer;border:2px solid #fff;box-shadow:0 2px 6px #0000004d;transition:transform .2s}.range-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.range-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#38bdf8;cursor:pointer;border:2px solid #fff;box-shadow:0 2px 6px #0000004d}.range-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:#6b7280}.monitor-info{margin-top:8px;font-size:11px;color:#60a5fa}.alarm-toggle-row{display:flex;justify-content:space-between;align-items:center}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ffffff1a;border-radius:24px;transition:all .3s}.switch .slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:#9ca3af;border-radius:50%;transition:all .3s}.switch input:checked+.slider{background:#4ade804d}.switch input:checked+.slider:before{transform:translate(20px);background:#4ade80}.switch input:disabled+.slider{opacity:.5;cursor:not-allowed}.threat-list{margin-top:8px}.threat-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}.threat-item:last-child{border-bottom:none}.threat-system{color:#fff;font-size:12px;font-weight:500}.threat-distance{color:#9ca3af;font-size:11px}.threat-count{font-size:11px}.threat-count .hostile{color:#f87171;margin-right:4px}.threat-count .neutral{color:#fbbf24}.more-threats{color:#6b7280;font-size:11px;text-align:center;padding-top:6px}.alarm-actions{display:flex;gap:8px;margin-top:12px}.action-btn{flex:1;padding:8px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s;border:none;display:flex;align-items:center;justify-content:center;gap:4px}.action-btn.test{background:#3b82f633;color:#60a5fa}.action-btn.test:hover{background:#3b82f666}.action-btn.clear{background:#ffffff1a;color:#9ca3af}.action-btn.clear:hover{background:#fff3;color:#fff}.action-btn:disabled{opacity:.5;cursor:not-allowed}.alarm-note{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.05)}.alarm-note small{display:block;color:#6b7280;font-size:10px;line-height:1.5}.monitor-center-indicator{animation:monitorCenterPulse 2s infinite}@keyframes monitorCenterPulse{0%,to{stroke:#38bdf8;stroke-opacity:1}50%{stroke:#38bdf8;stroke-opacity:.5}}.monitor-range-indicator{animation:monitorRangeDash 1s linear infinite}@keyframes monitorRangeDash{to{stroke-dashoffset:-12}}.system-node.selecting-mode:hover .node-bg{fill:#3b82f666!important;stroke:#3b82f6cc!important}.system-node.monitor-center .node-bg{stroke:#38bdf8;stroke-width:2}@media (max-width: 768px){.alarm-panel{top:auto;bottom:0;left:0;right:0;width:100%;max-height:50vh;border-radius:16px 16px 0 0;overflow-y:auto}.alarm-panel.collapsed{width:100%;min-width:auto}}@media (max-width: 480px){.alarm-content{padding:12px}.alarm-section{margin-bottom:12px}.alarm-label{font-size:11px}.center-name{font-size:13px}.threat-system{font-size:11px}}.territory-gates-layer{pointer-events:none}.territory-gate-line line{transition:all .3s ease}@keyframes territory-gate-pulse{0%,to{opacity:.8;stroke-width:3}50%{opacity:1;stroke-width:3.5}}@keyframes territory-gate-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:24}}.app{width:100%;height:100vh;overflow:hidden}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;min-height:100vh;min-height:100dvh;font-family:Segoe UI,Microsoft YaHei,system-ui,-apple-system,sans-serif;background:radial-gradient(circle at center,#1a1a2e,#0d0d1a);background-attachment:fixed;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;overscroll-behavior:none}#root{width:100%;height:100%;height:100dvh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#ffffff0d}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}::selection{background:#3b82f680;color:#fff}
