:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#090e17;color:#eef6ff;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow:hidden}button{font:inherit}.topbar{position:relative;z-index:2;min-height:66px;display:flex;align-items:center;gap:22px;padding:10px 20px;border-bottom:1px solid rgb(123 175 221 / 22%);background:#080e18eb;box-shadow:0 8px 28px #0003;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}h1{margin:0;font-size:18px;letter-spacing:-.03em}.sample-pill{padding:3px 7px;border:1px solid rgb(106 207 255 / 35%);border-radius:999px;color:#8edcff;background:#2894cd1a;font-size:10px;letter-spacing:.04em;text-transform:uppercase}#summary,.legend{margin:0;color:#91a5bb;font-size:12px}#summary{white-space:nowrap}.legend{display:flex;align-items:center;gap:13px;min-width:0;flex:1}.actions{margin-left:auto;display:flex;gap:7px}.actions button{padding:7px 11px;border:1px solid rgb(151 194 235 / 36%);border-radius:7px;color:#e8f5ff;background:#3c689138;cursor:pointer}.actions button:hover,.actions button:focus-visible{border-color:#80cfff;background:#4197cf4d;outline:none}main{position:relative;height:calc(100vh - 66px)}#map{width:100%;height:100%;display:block;cursor:grab;background:radial-gradient(ellipse at 18% 28%,rgb(39 91 132 / 30%),transparent 38%),radial-gradient(ellipse at 76% 72%,rgb(67 42 111 / 20%),transparent 42%),linear-gradient(145deg,#07101c,#111b2d 48%,#080d17)}#map:active{cursor:grabbing}.link{stroke:#7390a9;stroke-width:1.4;stroke-opacity:.6}.link.related{stroke:#b88be4;stroke-dasharray:4 6}.link.blocks{stroke:#ff9274;stroke-dasharray:8 5}.node{cursor:grab;transition:opacity .18s ease;filter:drop-shadow(0 0 6px rgb(111 188 255 / 28%))}.node:active{cursor:grabbing}.planet-core{fill:#172236;stroke:#5e7590;stroke-width:1.4px}.planet-sprite,.ship,.station{pointer-events:none}.selection-ring{fill:none;stroke:#eaf7ff;stroke-width:2.3px;opacity:0;filter:url(#glow)}.selected .selection-ring{opacity:1}.ship-tail{fill:none;stroke-linecap:round;stroke-width:2.8px;filter:url(#ship-glow);pointer-events:none}.patrol-route{fill:none;stroke-width:1px;stroke-dasharray:2 12;stroke-linecap:round;opacity:.09;pointer-events:none}.patrol-trail{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;filter:url(#ship-glow)}.station{filter:drop-shadow(0 0 4px rgb(159 210 255 / 58%))}.ship-hit{fill:transparent;stroke:transparent;pointer-events:all;cursor:pointer}.star{fill:#d9ecff;pointer-events:none}.dim{opacity:.12!important}.tooltip{position:fixed;z-index:3;width:min(360px,calc(100vw - 32px));padding:12px 14px;pointer-events:none;border:1px solid rgb(146 190 227 / 48%);border-radius:9px;color:#eaf6ff;background:#0f1b2bf0;box-shadow:0 16px 42px #00000085;font-size:13px;line-height:1.4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tooltip[hidden]{display:none}.tooltip strong{display:block;margin-bottom:3px;color:#fff}.tooltip small{display:block;margin-top:6px;color:#9eb1c5}.follow-mode{position:absolute;z-index:3;left:50%;bottom:18px;display:flex;align-items:center;gap:8px;transform:translate(-50%);padding:8px 12px;border:1px solid rgb(117 210 255 / 55%);border-radius:999px;color:#eaf8ff;background:#091827e0;box-shadow:0 8px 28px #0000006b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer}.follow-mode[hidden]{display:none}.follow-mode strong{color:#8edcff}.follow-mode small{color:#8297ab}.follow-pulse{width:7px;height:7px;border-radius:50%;background:#72d7ff;box-shadow:0 0 10px #72d7ff;animation:follow-pulse 1.8s ease-in-out infinite}@keyframes follow-pulse{50%{opacity:.45;transform:scale(.72)}}@media(max-width:900px){.topbar{gap:12px}.legend{display:none}#summary{overflow:hidden;text-overflow:ellipsis}}@media(max-width:560px){.topbar{min-height:60px;padding:9px 12px;justify-content:space-between}.sample-pill,#summary{display:none}.actions{flex-shrink:0;margin-left:0}.actions button{padding:7px 9px}#reset{display:none}main{height:calc(100vh - 60px)}}@media(prefers-reduced-motion:reduce){.node{transition:none}.follow-pulse{animation:none}}
