/* Galaxy business variant; style.css remains the semantic token owner. */
#galaxy{background:var(--bg)}
#stars{background:none;pointer-events:none}
#galaxy #planets{inset:0}
#galaxyBodies{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#galaxyRoutes{pointer-events:none}
#galaxyEntities{z-index:2}
#galaxyMarkers{z-index:3}
#galaxyEntities .galaxy-planet{position:absolute;transform:translate(-50%,-50%);width:max(44px,var(--body-size));height:max(44px,var(--body-size));min-height:44px;background:none;border:0;border-radius:50%;box-shadow:none;filter:none;padding:0;overflow:visible}
#galaxyEntities .galaxy-planet[hidden]{display:none}
#galaxyEntities .galaxy-planet img{width:var(--body-size);height:var(--body-size);object-fit:contain;outline:0;box-shadow:none;filter:none;border-radius:0;pointer-events:none}
#galaxyEntities .galaxy-planet:not(.pirate) .galaxy-body-fallback{border-radius:50%}
.galaxy-3d-ready #galaxyEntities .galaxy-planet:not(.pirate) .galaxy-body-fallback{visibility:hidden}
#galaxyEntities .galaxy-planet .galaxy-lod-marker{display:none;width:32px;height:32px}
#galaxyEntities .galaxy-planet.distant:not(.uninhabited) .galaxy-lod-marker{display:block}
#galaxyEntities .galaxy-planet.distant .galaxy-body-fallback{visibility:hidden}
#galaxyEntities .galaxy-planet.distant:not(.overview):not(.pirate) .galaxy-body-fallback{visibility:visible}
.galaxy-3d-ready #galaxyEntities .galaxy-planet.distant:not(.overview):not(.pirate) .galaxy-body-fallback{visibility:hidden}
#galaxyEntities .galaxy-planet.overview .galaxy-lod-marker{width:22px;height:22px}
#galaxyEntities .galaxy-planet.overview.pirate .galaxy-lod-marker{filter:sepia(1) saturate(2);opacity:.7}
#galaxyEntities .galaxy-planet.overview:not(.pirate) .galaxy-lod-marker{filter:sepia(1) saturate(3) hue-rotate(150deg);opacity:.7}
#galaxyEntities .galaxy-planet b{top:calc(50% + var(--body-size)/2 + 8px);max-width:180px;font-size:12px;font-weight:400;pointer-events:none;line-height:1.2;background:none}
#galaxyEntities .galaxy-planet small{top:0;right:-4px;width:auto;min-width:23px;font-size:11px;line-height:18px;color:var(--cyan);border-color:var(--line);padding:0 4px;pointer-events:none}
#galaxyEntities .galaxy-planet small:empty{display:none}
#galaxyEntities .galaxy-planet.distant b{top:calc(50% + 22px);font-size:10px}
#galaxyEntities .galaxy-planet.distant small{right:1px;top:0;font-size:10px;background:transparent;border:0}
#galaxyEntities .galaxy-planet.overview:not(.own):not(.selected) b{display:none}
#galaxyEntities .galaxy-planet.overview small{display:block;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);padding:0;min-width:0;font-size:9px;line-height:12px;color:var(--gold)}
.galaxy-pirates-ready #galaxyEntities .galaxy-planet.pirate:not(.distant) .galaxy-body-fallback{visibility:hidden}
#galaxyEntities .galaxy-planet.distant.uninhabited{visibility:hidden;pointer-events:none}
#galaxyEntities .galaxy-planet.uninhabited b{color:var(--muted);font-size:10px}
#galaxyEntities .galaxy-planet.selected::after,
#galaxyEntities .galaxy-planet.own:not(.distant)::after{content:'';position:absolute;inset:-8px;border:1px solid var(--cyan);border-radius:50%;box-shadow:0 0 8px var(--cyan);opacity:.65;pointer-events:none}
#galaxyEntities .galaxy-planet.own:not(.selected)::after{border-color:var(--positive);box-shadow:none}
#galaxyEntities .galaxy-planet.selected b,#galaxyEntities .galaxy-planet.selected small{visibility:hidden}
#galaxyEntities .galaxy-planet.shielded:not(.distant)::before{content:'';position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--cyan);background:radial-gradient(circle,transparent 55%,color-mix(in srgb,var(--cyan) 25%,transparent));box-shadow:0 0 14px color-mix(in srgb,var(--cyan) 45%,transparent);pointer-events:none}
.galaxy-toolbar{right:230px;flex-wrap:wrap}
.galaxy-search-fields{display:grid;grid-template-columns:2fr 1.5fr 1fr;gap:16px}
.galaxy-search-fields label{display:grid;gap:8px;min-width:0;color:var(--muted)}
.galaxy-search-fields input,.galaxy-search-fields select{width:100%;min-width:0;min-height:44px;padding:8px;color:inherit;background:var(--bg);border:1px solid var(--line);font:inherit}
.galaxy-search-result{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;margin:6px 0;padding:8px 12px;text-align:left}
.galaxy-search-result>img{width:52px;height:52px;object-fit:contain;flex:none}
.galaxy-search-result>span{min-width:0}
.galaxy-search-result>span:last-child{margin-left:auto;text-align:right;font-size:13px;flex:none}
.galaxy-search-result b{font-weight:400;color:var(--cyan)}
.galaxy-search-result small{display:block;font-size:11px;color:var(--muted);margin-top:5px}
@media(max-height:600px) and (orientation:landscape){
 .galaxy-toolbar{top:70px;left:70px;right:150px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:5px}
 .galaxy-toolbar button{flex:none;min-height:44px;padding:5px 8px;font-size:10px}
 #galaxyCenter{min-width:100px}
 #galaxyContext{max-height:calc(100dvh - 140px);width:270px}
 .galaxy-search-fields{gap:8px;grid-template-columns:1.7fr 1.5fr .8fr;font-size:12px}
 .galaxy-search-result{min-height:60px;font-size:12px}
 .galaxy-search-result>img{width:40px;height:40px}
 .galaxy-search-result>span:last-child{font-size:11px}
}
@media(prefers-reduced-motion:reduce){#galaxyEntities button{transition:none}}

/* The embedded MapObjectPopupPanel supplies the cut-corner buttons and tint.
   Position and touch size adapt its five-slot layout to the browser camera. */
#galaxyContext.galaxy-object-menu{width:300px;max-height:none;padding:0;border:0;background:none;box-shadow:none;overflow:visible;pointer-events:none}
#galaxyContext.galaxy-object-menu .galaxy-object-heading{width:calc(100% - 44px);min-height:58px;padding:7px 13px;background:linear-gradient(145deg,#1a3d57,#07182a 75%) center/100% 100% no-repeat;text-shadow:0 1px 3px var(--bg)}
#galaxyContext.galaxy-object-menu h2{padding:0;margin:2px 0;font-size:17px;line-height:20px;overflow-wrap:anywhere}
.galaxy-object-heading>small{font-size:9px;color:var(--muted);letter-spacing:.4px}
.galaxy-object-heading>span{font-size:12px;color:var(--gold)}
.galaxy-object-space{height:42px}
#galaxyContext .galaxy-object-coordinates{margin:0 auto 4px;width:max-content;padding:2px 8px;font-size:11px;background:var(--bg);color:var(--muted)}
#galaxyContext .galaxy-map-actions{position:relative;display:flex;justify-content:center;gap:5px;margin:0}
#galaxyContext .galaxy-map-action{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;flex:none;width:82px;height:72px;min-width:44px;min-height:44px;padding:4px 3px 8px;border:0;border-radius:0;background: linear-gradient(145deg,#1a3d57,#07182a 75%) center/100% 100% no-repeat;color:var(--cyan);box-shadow:none;pointer-events:auto;filter:none;font-size:10px;line-height:12px;text-shadow:0 1px 2px var(--bg)}
#galaxyContext .galaxy-map-action.galaxy-map-danger{background-image:linear-gradient(145deg,#1a3d57,#07182a 75%);color:var(--loss)}
#galaxyContext .galaxy-map-action .galaxy-menu-icon{width:auto;height:39px;max-width:58px;object-fit:contain;pointer-events:none}
#galaxyContext .galaxy-map-action>span{width:100%;text-align:center;overflow-wrap:anywhere;pointer-events:none}
#galaxyContext .galaxy-map-action.galaxy-map-rally{position:absolute;right:0;bottom:calc(100% + 6px);width:64px;height:60px}
#galaxyContext .galaxy-map-rally .galaxy-menu-icon{height:31px}
#galaxyContext .galaxy-map-action:hover:not(:disabled){filter:brightness(1.25)}
#galaxyContext .galaxy-map-action:active:not(:disabled){filter:brightness(.8)}
#galaxyContext .galaxy-map-action:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#galaxyContext .galaxy-map-action:disabled{opacity:.48;cursor:default}
#galaxyContext.galaxy-object-menu .galaxy-context-close{pointer-events:auto;width:44px;height:44px;min-height:44px;right:0;top:0;padding:0;background:var(--bg);color:var(--cyan);border:1px solid var(--line);font-size:23px}
#galaxyContext .galaxy-object-status{margin:5px 0 0;min-height:16px;font-size:11px;line-height:16px;text-align:center;color:var(--cyan);text-shadow:0 1px 3px var(--bg)}
#galaxyContext .galaxy-object-status:empty{display:none}
#galaxyContext.galaxy-object-menu.galaxy-menu-scroll{overflow:auto;pointer-events:auto;background:var(--bg)}
@media(max-height:600px) and (orientation:landscape){
 #galaxyContext.galaxy-object-menu{width:270px}
 #galaxyContext.galaxy-object-menu .galaxy-object-heading{min-height:47px;padding:4px 9px}
 #galaxyContext.galaxy-object-menu h2{font-size:14px;line-height:16px}
 .galaxy-object-space{height:30px}
 #galaxyContext .galaxy-map-action{width:78px;height:64px;font-size:9px}
 #galaxyContext .galaxy-map-action .galaxy-menu-icon{height:33px}
 #galaxyContext .galaxy-map-action.galaxy-map-rally{width:60px;height:54px;right:0}
 #galaxyContext .galaxy-map-rally .galaxy-menu-icon{height:27px}
}

/* Flight variants share existing semantic relation colors and source artwork. */
#galaxyRoutes .outbound{stroke:var(--cyan)}
#galaxyRoutes .hostile{stroke:var(--loss)}
#galaxyRoutes .returning,#galaxyRoutes .support,#galaxyRoutes .allied{stroke:var(--positive)}
#galaxyRoutes .foreign{stroke:var(--gold)}
#galaxyRoutes .scout{stroke:var(--muted)}
#galaxyMarkers .flight-marker{min-width:44px;min-height:44px;border-radius:50%;color:var(--cyan);filter:none;background:none;box-shadow:none}
#galaxyMarkers .flight-marker[hidden]{display:none}
#galaxyMarkers .flight-marker .fleet-arrow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:28px;height:28px;filter:drop-shadow(0 0 4px var(--cyan));pointer-events:none}
.galaxy-fleets-ready #galaxyMarkers .flight-marker.has-formation .fleet-arrow{opacity:calc(1 - var(--fleet-model-opacity,0))}
#galaxyMarkers .flight-marker small{top:calc(50% + 24px);left:50%;transform:translateX(-50%);pointer-events:none;font-size:10px;color:var(--cyan);padding:3px 5px;background:var(--bg)}
#galaxyMarkers .flight-marker.has-formation small{top:100%}
#galaxyMarkers .flight-marker.hostile small{color:var(--loss)}
#galaxyMarkers .flight-marker.hostile .fleet-arrow{filter:drop-shadow(0 0 4px var(--loss))}
#galaxyMarkers .flight-marker.foreign .fleet-arrow{filter:drop-shadow(0 0 4px var(--gold))}
#galaxyMarkers .flight-marker.support .fleet-arrow,#galaxyMarkers .flight-marker.allied .fleet-arrow,#galaxyMarkers .flight-marker.returning .fleet-arrow{filter:drop-shadow(0 0 4px var(--positive))}
#galaxyMarkers .flight-marker.foreign small{color:var(--gold)}
#galaxyMarkers .flight-marker.support small,#galaxyMarkers .flight-marker.allied small,#galaxyMarkers .flight-marker.returning small{color:var(--positive)}
#galaxyMarkers .flight-marker:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#galaxyMarkers .flight-marker:hover::after,#galaxyMarkers .flight-marker:focus-visible::after{content:'';position:absolute;inset:0;border:1px solid var(--cyan);border-radius:50%;pointer-events:none}
#galaxyMarkers .flight-marker.waiting small::before{content:'РАЛЛИ · '}
.map-flight-route{display:flex;align-items:center;gap:20px;margin:20px 0;padding:15px;border:1px solid var(--line);background:var(--bg)}
.map-flight-route>div{flex:1;min-width:0}
.map-flight-route b{font-weight:400;display:block;margin-top:5px;color:var(--cyan)}
.map-flight-route small{color:var(--muted)}
.map-flight-route>span{color:var(--cyan)}
@media(max-height:600px) and (orientation:landscape){.map-flight-route{margin:12px 0;padding:10px;gap:10px;font-size:12px}}
