/* space-map – style silników map kosmosu (niebo, globy, układ planetarny, Galaktyka, wszechświat). Klasy z prefiksem
   „wm” jak w world-map (maps.css dołącza się osobno). Silniki dołączają ten plik same, jeśli strona go nie ma
   (opcja spaceCss); projekt może go wstawić w <head> po maps.css – wtedy mapa nie czeka na wczytanie.
   Napisy: var(--font) strony, bez niej – krój systemowy. */
.wm { --wm-space: 1; }
/* Niebo (sky-map.js) */
.wm-sky-mw { fill: #c9d6ff; fill-opacity: .06; }
.wm-sky-mw-2 { fill-opacity: .065; } .wm-sky-mw-3 { fill-opacity: .075; } .wm-sky-mw-4 { fill-opacity: .085; } .wm-sky-mw-5 { fill-opacity: .1; }
.wm-sky-grid { fill: none; stroke: rgba(150, 170, 255, .09); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.wm-sky-equator { fill: none; stroke: rgba(120, 200, 255, .22); stroke-width: 1px; stroke-dasharray: 4 5; vector-effect: non-scaling-stroke; }
.wm-sky-ecliptic { fill: none; stroke: rgba(255, 205, 120, .28); stroke-width: 1px; stroke-dasharray: 2 5; vector-effect: non-scaling-stroke; }
.wm-constellation { fill: transparent; stroke: rgba(140, 160, 255, .2); stroke-width: .8px; vector-effect: non-scaling-stroke; transition: fill .15s; }
.wm-constellation.wm-interactive { cursor: pointer; }
.wm-constellation.wm-interactive:hover, .wm-constellation.wm-hover { fill: rgba(130, 160, 255, .13); }
.wm-constellation[data-fill] { fill: var(--wm-fill); fill-opacity: .5; }
.wm-constellation[data-fill]:hover, .wm-constellation[data-fill].wm-hover { fill-opacity: .66; }
.wm-sky-lines { fill: none; stroke: rgba(170, 200, 255, .42); stroke-width: 1.1px; vector-effect: non-scaling-stroke; pointer-events: none; }
.wm-sky-stars, .wm-sky-labels { pointer-events: none; }
.wm-sky-star { fill: none; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.wm-sky-glow { fill: none; stroke-linecap: round; vector-effect: non-scaling-stroke; opacity: .16; }
.wm-sky-label { fill: rgba(205, 218, 255, .62); font: 600 calc(19px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); letter-spacing: .08em; text-transform: uppercase; text-anchor: middle; paint-order: stroke; stroke: rgba(7, 11, 28, .7); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-sky-starname { display: none; fill: rgba(255, 238, 205, .82); font: calc(16px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); paint-order: stroke; stroke: rgba(7, 11, 28, .8); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-zoom-2 .wm-sky-starname { display: inline; }
/* Układ planetarny (system-map.js) */
.wm-sys-stars { fill: none; stroke: rgba(220, 228, 255, .5); stroke-width: 1.3px; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.wm-sys-hz { fill: rgba(6, 214, 160, .09); stroke: rgba(6, 214, 160, .22); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.wm-sys-belt, .wm-sys-kuiper { fill: none; stroke: rgba(196, 184, 160, .5); stroke-width: 1.2px; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.wm-sys-kuiper { stroke: rgba(170, 190, 220, .35); }
.wm-sys-orbit { fill: none; stroke: rgba(160, 180, 255, .3); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.wm-sys-orbit-dwarf { stroke-dasharray: 3 4; stroke: rgba(160, 180, 255, .22); }
.wm-sys-ring { fill: none; stroke: rgba(228, 207, 150, .75); stroke-width: 2.4px; }
.wm-sys-discs, .wm-sys-labels { pointer-events: none; }
.wm-body { fill: transparent; stroke: transparent; stroke-width: 4px; vector-effect: non-scaling-stroke; cursor: pointer; }
.wm-body:hover, .wm-body.wm-hover { stroke: rgba(255, 255, 255, .55); }
.wm-body[data-fill] { stroke: var(--wm-fill); }
.wm-sys-label { fill: rgba(210, 220, 250, .85); font: 500 calc(13px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); text-anchor: middle; paint-order: stroke; stroke: rgba(4, 6, 15, .8); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-sys-label-star { font-weight: 700; fill: #ffe7a8; }
/* Dodatkowe ciała (opcja extras): komety, planetoidy, sondy z trasami; podpisy małych ciał dopiero po przybliżeniu */
.wm-sys-orbit-minor { stroke: rgba(160, 180, 255, .13); stroke-dasharray: 2 3; }
.wm-sys-orbit-comet { stroke: rgba(150, 220, 255, .18); }
.wm-sys-track { fill: none; stroke: rgba(255, 190, 120, .32); stroke-width: 1px; stroke-dasharray: 1 3; vector-effect: non-scaling-stroke; }
.wm-sys-orbit.wm-sys-focus, .wm-sys-track.wm-sys-focus { stroke: rgba(255, 214, 102, .9); stroke-width: 1.8px; stroke-dasharray: none; }
.wm-sys-extra { stroke: rgba(4, 6, 15, .9); stroke-width: .8px; }
.wm-sys-far { opacity: .55; }
.wm-sys-label-extra { font-size: calc(11px / var(--wm-zoom, 1)); fill: rgba(200, 210, 240, .7); }
.wm-sys-label-probe { fill: rgba(255, 205, 150, .85); }
.wm-sys-label-comet, .wm-sys-label-asteroid { display: none; }
.wm-sys-label-zoom { display: none; }
.wm-zoom-2 .wm-sys-label-comet, .wm-zoom-2 .wm-sys-label-asteroid, .wm-zoom-2 .wm-sys-label-zoom, .wm-sys-label.wm-sys-focus { display: inline; }
.wm-sys-label.wm-sys-focus { fill: #ffd666; font-weight: 700; }

/* Globy (planet-map.js): nazwy IAU od największych, więcej przy przybliżeniu */
.wm-planet-bg { fill: #05070f; }
.wm-planet-grid { fill: none; stroke: rgba(255, 255, 255, .13); stroke-width: 1px; stroke-dasharray: 3 5; vector-effect: non-scaling-stroke; pointer-events: none; }
.wm-planet-labels { pointer-events: none; }
.wm-planet-label { display: none; fill: rgba(255, 255, 255, .86); font: 500 calc(15px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); text-anchor: middle; paint-order: stroke; stroke: rgba(0, 0, 0, .62); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-pl-sea, .wm-pl-plain { font-style: italic; letter-spacing: .06em; text-transform: uppercase; fill: rgba(220, 232, 255, .9); font-size: calc(16px / var(--wm-zoom, 1)); }
.wm-pl-landing { fill: #ffd166; font-weight: 700; }
.wm-pl-l1 { display: inline; }
.wm-zoom-2 .wm-pl-l2, .wm-zoom-4 .wm-pl-l4, .wm-zoom-8 .wm-pl-l8 { display: inline; }
/* Galaktyka (galaxy-map.js): ramiona w jednostkach mapy (rosną z przybliżeniem), gwiazdy stałej wielkości */
.wm-gal-faint, .wm-gal-disc-stars, .wm-gal-bulge-stars, .wm-gal-arm-stars, .wm-gal-hii, .wm-gal-markdots { fill: none; stroke-linecap: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.wm-gal-faint { stroke: rgba(210, 220, 255, .35); stroke-width: 1px; }
.wm-gal-disc-stars { stroke: rgba(225, 222, 255, .4); stroke-width: 1.2px; }
.wm-gal-bulge-stars { stroke: rgba(255, 226, 170, .55); stroke-width: 1.4px; }
.wm-gal-arm-stars { stroke: rgba(205, 220, 255, .62); stroke-width: 1.4px; }
.wm-gal-hii { stroke: rgba(255, 128, 170, .75); stroke-width: 2.4px; }
.wm-gal-arms { pointer-events: none; }
.wm-gal-arm { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.wm-gal-arm-w1 { stroke: rgba(150, 175, 255, .07); stroke-width: 62px; }
.wm-gal-arm-w2 { stroke: rgba(170, 195, 255, .09); stroke-width: 30px; }
.wm-gal-arm-w3 { stroke: rgba(200, 215, 255, .12); stroke-width: 11px; }
.wm-gal-arm-minor { opacity: .7; }
/* Po przybliżeniu szerokie poświaty ramion stają się pasami – chowane od najszerszej */
.wm-zoom-2 .wm-gal-arm-w1, .wm-zoom-4 .wm-gal-arm-w2, .wm-zoom-8 .wm-gal-arm-w3 { display: none; }
.wm-gal-dust { fill: none; stroke: rgba(4, 6, 16, .45); stroke-width: 5px; stroke-linecap: round; pointer-events: none; }
.wm-gal-grid { pointer-events: none; }
.wm-gal-ring { fill: none; stroke: rgba(150, 170, 255, .14); stroke-width: 1px; stroke-dasharray: 3 6; vector-effect: non-scaling-stroke; }
.wm-gal-spoke { fill: none; stroke: rgba(255, 215, 120, .1); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.wm-gal-deg, .wm-gal-ringlabel { fill: rgba(190, 200, 240, .5); font: calc(11px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); text-anchor: middle; dominant-baseline: middle; }
.wm-gal-deg { fill: rgba(255, 220, 150, .6); }
.wm-gal-labels { pointer-events: none; }
.wm-gal-arm-label { fill: rgba(200, 214, 255, .7); font: 600 calc(12px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); letter-spacing: .06em; text-transform: uppercase; text-anchor: middle; paint-order: stroke; stroke: rgba(5, 8, 22, .75); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-gal-gc { fill: #ffe7b3; font: 600 calc(12px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); text-anchor: middle; transform: translateY(calc(-14px / var(--wm-zoom, 1))); paint-order: stroke; stroke: rgba(40, 25, 5, .6); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-gal-sun { fill: #ffd166; r: calc(3.5px / var(--wm-zoom, 1)); }
.wm-gal-sun-ring { fill: none; stroke: #ffd166; stroke-width: 1.5px; vector-effect: non-scaling-stroke; r: calc(9px / var(--wm-zoom, 1)); }
.wm-gal-sun-label { fill: #ffd166; font: 700 calc(13px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); text-anchor: middle; dominant-baseline: hanging; transform: translateY(calc(14px / var(--wm-zoom, 1))); paint-order: stroke; stroke: rgba(5, 8, 22, .8); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-gal-markdots { stroke: rgba(255, 255, 255, .7); stroke-width: 3px; }
.wm-gal-mark, .wm-uni-mark, .wm-uni-planet-label { display: none; fill: rgba(225, 232, 255, .82); font: calc(11.5px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); paint-order: stroke; stroke: rgba(5, 8, 22, .85); stroke-width: calc(3px / var(--wm-zoom, 1)); dominant-baseline: middle; transform: translateX(calc(6px / var(--wm-zoom, 1))); }
.wm-gal-l1, .wm-uni-l1 { display: inline; }
.wm-zoom-2 :is(.wm-gal-l2, .wm-uni-l2), .wm-zoom-4 :is(.wm-gal-l4, .wm-uni-l4), .wm-zoom-8 :is(.wm-gal-l8, .wm-uni-l8) { display: inline; }
.wm-zoom-2 .wm-gal-l2.wm-gal-arm-label { display: inline; }
.wm-gal-arm-label.wm-gal-l2 { display: none; }
/* Wszechświat (universe-map.js) */
.wm-uni-out { fill: #020309; }
.wm-uni-band { stroke: none; pointer-events: none; }
.wm-uni-band-solar { fill: rgba(255, 210, 120, .05); }
.wm-uni-band-oort { fill: rgba(170, 200, 255, .04); }
.wm-uni-band-stars { fill: rgba(200, 215, 255, .035); }
.wm-uni-band-mw { fill: rgba(170, 185, 255, .05); }
.wm-uni-band-local { fill: rgba(200, 170, 255, .04); }
.wm-uni-band-super { fill: rgba(255, 180, 220, .035); }
.wm-uni-band-web { fill: rgba(120, 160, 255, .03); }
.wm-uni-web, .wm-uni-galaxies, .wm-uni-mw-disc, .wm-uni-mw-bulge, .wm-uni-mw-arm, .wm-uni-stars, .wm-uni-oort, .wm-uni-kuiper, .wm-uni-markdots { fill: none; stroke-linecap: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.wm-uni-web { stroke: rgba(190, 205, 255, .55); stroke-width: 1.3px; }
.wm-uni-galaxies { stroke: rgba(230, 210, 255, .7); stroke-width: 1.6px; }
.wm-uni-mw-disc { stroke: rgba(220, 222, 255, .32); stroke-width: 1.2px; }
.wm-uni-mw-bulge { stroke: rgba(255, 226, 170, .45); stroke-width: 1.3px; }
.wm-uni-mw-arm { stroke: rgba(200, 216, 255, .45); stroke-width: 1.2px; }
.wm-uni-stars { stroke: rgba(255, 245, 225, .7); stroke-width: 1.6px; }
.wm-uni-oort { stroke: rgba(170, 200, 255, .32); stroke-width: 1px; }
.wm-uni-kuiper { stroke: rgba(200, 190, 170, .45); stroke-width: 1px; }
.wm-uni-cmb path { fill: none; stroke-width: 8px; opacity: .8; }
.wm-uni-cmb { pointer-events: none; }
.wm-uni-ring { fill: none; stroke: rgba(150, 170, 255, .16); stroke-width: 1px; stroke-dasharray: 2 5; vector-effect: non-scaling-stroke; pointer-events: none; }
.wm-uni-orbit { fill: none; stroke: rgba(255, 215, 140, .28); stroke-width: 1px; vector-effect: non-scaling-stroke; pointer-events: none; }
.wm-uni-planet { stroke: rgba(0, 0, 0, .4); stroke-width: .5px; vector-effect: non-scaling-stroke; }
.wm-uni-labels { pointer-events: none; }
.wm-uni-band-label { fill: rgba(205, 215, 255, .72); font: 600 calc(10.5px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); letter-spacing: .08em; text-transform: uppercase; text-anchor: middle; paint-order: stroke; stroke: rgba(4, 6, 18, .8); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-uni-decade { fill: rgba(170, 185, 235, .6); font: calc(10px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); text-anchor: middle; }
.wm-uni-cmb-label { fill: #ffc48a; font: 600 calc(11px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); letter-spacing: .06em; text-anchor: middle; paint-order: stroke; stroke: rgba(4, 6, 18, .85); stroke-width: calc(3px / var(--wm-zoom, 1)); }
.wm-uni-markdots { stroke: rgba(255, 255, 255, .75); stroke-width: 3px; }
.wm-uni-sun-label { fill: #ffd166; font: 700 calc(11px / var(--wm-zoom, 1)) var(--font, system-ui, sans-serif); text-anchor: middle; transform: translateY(calc(-4px / var(--wm-zoom, 1))); paint-order: stroke; stroke: rgba(5, 8, 22, .8); stroke-width: calc(3px / var(--wm-zoom, 1)); }
