#vih .vih-pano-host{isolation:isolate;background:none!important;cursor:default}#vih .vih-pano-host:before{content:"";position:absolute;inset:3%;z-index:0;border-radius:50%;background:url('assets/vih-little-planet-v2.png') center/cover no-repeat;box-shadow:0 18px 45px #0b2e6d2b;transform:rotate(var(--planet-rotation,0rad)) scale(var(--planet-scale,1));transition:transform .08s linear}
#vihSphereCanvas{position:absolute;inset:14%;width:72%;height:72%;z-index:1!important;border-radius:50%;cursor:crosshair!important;touch-action:none;opacity:.06}#vihSphereCanvas.dragging{cursor:grabbing!important}
.vih-sphere-markers{position:absolute;inset:0;z-index:8;pointer-events:none}.vih-sphere-hotspot{position:absolute;width:30px;height:30px;padding:0;transform:translate(-50%,-50%) scale(var(--depth,1));border:3px solid #fff;border-radius:50%;background:var(--hotspot);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--hotspot) 28%,transparent),0 5px 15px #0b2e6d55;pointer-events:auto;transition:transform .18s,filter .18s}.vih-sphere-hotspot i{display:grid;place-items:center;width:100%;height:100%;font:800 10px Inter;font-style:normal}.vih-sphere-hotspot:hover,.vih-sphere-hotspot.highlight,.vih-sphere-hotspot.selected{z-index:4;filter:brightness(1.18);transform:translate(-50%,-50%) scale(calc(var(--depth,1)*1.28));box-shadow:0 0 0 5px #fff9,0 0 22px var(--hotspot)}
.vih-sphere-tooltip{position:absolute;z-index:11;min-width:155px;padding:9px 11px;transform:translate(17px,-50%);border:1px solid #d8e4f2;border-radius:9px;background:#fffffff2;color:#123566;box-shadow:0 9px 24px #0b2e6d2e;opacity:0;pointer-events:none;transition:opacity .15s}.vih-sphere-tooltip.visible{opacity:1}.vih-sphere-tooltip strong,.vih-sphere-tooltip span,.vih-sphere-tooltip small{display:block}.vih-sphere-tooltip strong{font:800 9px Manrope}.vih-sphere-tooltip span{margin-top:3px;font:700 7px Inter}.vih-sphere-tooltip small{margin-top:3px;color:#65768c;font:600 7px Inter}
#vih .vih-sphere-controls{position:absolute;z-index:14;left:50%;bottom:67px;display:flex;transform:translateX(-50%);padding:6px;border:1px solid #dbe5f1;border-radius:12px;background:#fffffff0;box-shadow:0 7px 20px #0b2e6d22}.vih-sphere-controls button{min-width:49px;padding:5px 8px;border:0;border-right:1px solid #e1e8f0;background:transparent;color:#52657d;font:800 11px Inter}.vih-sphere-controls button:last-child{border-right:0}.vih-sphere-controls button span{display:block;margin-top:3px;font-size:6px}.vih-sphere-controls button:hover,.vih-sphere-controls button.active{color:#1263df;background:#eff6ff;border-radius:7px}
#vih .vih-pano-window .vih-pano-host{width:clamp(330px,48vh,510px);height:clamp(330px,48vh,510px)!important;border:0;box-shadow:none;overflow:visible!important}#vih .vih-pano-window:before{inset:55px 5% 112px;border-color:#d7e9fb;box-shadow:0 0 0 14px #eaf5ff88,0 0 0 28px #f4f9ff,0 20px 38px #0b2e6d20}#vih .vih-pano-window:after{inset:73px 9% 130px;border-color:#6fb3ff44;box-shadow:inset 0 0 30px #1597ff22,0 0 18px #1597ff33}#vih .vih-core-meta{bottom:13px}.vih-pano-thumbs{display:none}
#vih .vih-sensor-stack{grid-template-columns:1fr;grid-template-rows:auto repeat(6,minmax(0,1fr));gap:8px}#vih .vih-module:last-child{grid-column:auto}

body:has(#vih.active){background:#fff}body:has(#vih.active) .sidebar{display:none}body:has(#vih.active) main{margin-left:0}body:has(#vih.active) .topbar{height:58px;padding:0 42px}body:has(#vih.active) #vih{max-width:none;padding:18px 22px 26px}#vih .page-heading{align-items:center;margin:0 24px 14px}#vih .page-heading h1{font-size:27px}#vih .page-heading .eyebrow{display:none}#vih .page-heading .subtitle{font-size:11px}
#vih .vih-workspace{grid-template-columns:minmax(310px,27%) minmax(620px,1fr) minmax(305px,24%);gap:14px;height:calc(100vh - 174px);min-height:650px}#vih .vih-window{border-radius:14px!important;box-shadow:0 7px 24px #153a6714!important}#vih .vih-map-window{grid-template-rows:auto minmax(0,1fr) auto}#vih .vih-map-window>.vih-window-head{display:flex;height:50px;padding:10px 14px}#vih .vih-network-title,#vih .vih-map-filter{display:none}#vih .vih-map-window .osm-map{border-radius:0;min-height:0}#vih .vih-map-window .vih-layer-chips{display:none}
#vihGeoLayer .vih-geo-segment .railway-track-outer{stroke:#fff;stroke-width:16}#vihGeoLayer .vih-geo-segment .railway-track-inner{stroke:#2878f0;stroke-width:7}#vihGeoLayer .vih-geo-point{fill:#fff;stroke:#2577ef;stroke-width:4;r:7}#vihGeoLayer .vih-geo-point.selected{fill:#2577ef;stroke:#fff;stroke-width:7;r:14;filter:drop-shadow(0 0 12px #1f6bff)}#vihGeoLayer .vih-geo-sensor{stroke:#fff;stroke-width:7;r:17;filter:drop-shadow(0 4px 6px #0b2e6d55)}#vihGeoLayer .vih-geo-sensor[data-sensor-no="1"],#vihGeoLayer .vih-geo-sensor[data-sensor-no="2"]{fill:#2577ef}#vihGeoLayer .vih-geo-sensor[data-sensor-no="3"]{fill:#35ad69}#vihGeoLayer .vih-geo-sensor[data-sensor-no="4"]{fill:#f97316}#vihGeoLayer .vih-geo-sensor[data-sensor-no="5"]{fill:#1684e8}#vihGeoLayer .vih-geo-sensor[data-sensor-no="6"]{fill:#8b5cf6}.vih-map-legend{padding:12px 14px!important;background:#fff;grid-template-columns:1fr 1fr!important}
#vih .vih-pano-window{padding:56px 0 76px!important;background:#fff!important;border:1px solid #dfe7f0!important;overflow:hidden!important}#vih .vih-pano-window:before,#vih .vih-pano-window:after,.vih-compass-label,.vih-core-title,.vih-core-meta{display:none!important}#vih .vih-pano-window>.vih-window-head{display:flex!important;position:absolute;z-index:20;inset:0 0 auto;height:52px;padding:10px 18px;background:#fff;border-bottom:0}#vih .vih-pano-window>.vih-window-head span{color:#0b2e6d;font-size:11px}#vih .vih-pano-window>.vih-window-head strong{display:none}#vih .vih-pano-window>.vih-window-head>div:last-child{display:flex;gap:8px}#vih .vih-pano-window>.vih-window-head button{padding:9px 13px;border:1px solid #dbe4ee;border-radius:8px;background:#fff;color:#18365e;font:700 8px Inter;box-shadow:0 3px 8px #0b2e6d14}
#vih .vih-pano-window .vih-pano-host{width:min(620px,72vh);height:min(620px,72vh)!important;max-width:76%;margin:0 auto!important;border-radius:0!important;overflow:visible!important}#vih .vih-sphere-controls{bottom:10px}.vih-sphere-markers{inset:8%}.vih-sphere-hotspot{width:22px;height:22px;border-width:2px}.vih-sphere-callouts{position:absolute;inset:0;z-index:12;pointer-events:none}.vih-sphere-callouts button{position:absolute;display:grid;grid-template-columns:28px auto;min-width:145px;padding:8px 10px;border:1px solid #dce5ef;border-radius:10px;background:#fffffff2;color:#17365e;text-align:left;box-shadow:0 5px 15px #12356620;pointer-events:auto}.vih-sphere-callouts button i{grid-row:1/3;display:grid;place-items:center;color:#1670e9;font:800 18px Inter;font-style:normal}.vih-sphere-callouts button strong{font:800 8px Inter}.vih-sphere-callouts button small{color:#718096;font:600 7px Inter}.vih-sphere-callouts button:nth-child(1){left:-19%;top:19%}.vih-sphere-callouts button:nth-child(2){right:-20%;top:22%}.vih-sphere-callouts button:nth-child(3){left:-19%;top:45%}.vih-sphere-callouts button:nth-child(4){right:-19%;top:44%}.vih-sphere-callouts button:nth-child(5){left:-18%;top:68%}.vih-sphere-callouts button:nth-child(6){right:-17%;top:70%}.vih-sphere-callouts button:hover{border-color:#2183f4;box-shadow:0 0 0 3px #2183f422,0 7px 20px #1263df30}
#vih .vih-sensor-stack{grid-template-rows:32px repeat(6,1fr);gap:9px}#vih .sensor-workspace-title{display:none}#vih .vih-module{display:grid;grid-template-columns:minmax(0,1fr) 76px;grid-template-rows:1fr;padding:10px 10px 10px 58px!important;border-radius:12px!important;background:#f7f8fa!important;align-items:center}#vih .vih-module .module-number{left:10px;top:50%;transform:translateY(-50%);width:27px;height:27px;border-radius:8px}#vih .vih-module .module-icon{left:37px;right:auto;top:50%;transform:translateY(-50%);width:30px;height:36px;border:0;background:transparent}#vih .vih-module .module-heading{padding:0;min-height:0}#vih .vih-module .module-heading strong{font-size:9px;line-height:1.25}#vih .vih-module .module-heading small{font-size:7px}#vih .vih-module .module-reading{grid-column:1;grid-row:1;margin:34px 0 0!important;padding:0!important;border:0;background:transparent}#vih .vih-module .module-reading span,#vih .vih-module .module-reading strong{display:none}#vih .vih-module .module-reading em{font-size:7px;color:#1d9b5c}#vih .vih-module .module-spark{grid-column:2;grid-row:1;height:35px;margin:0;background:transparent;border:0}#vih .vih-module>b{display:none}#vih .signalling-module .signal-status{grid-column:2;grid-row:1;margin:0;background:transparent}#vih .signalling-module .module-signal{display:none}#vih .vih-module:hover,#vih .vih-module.cross-highlight,#vih .vih-module.gis-selected{background:#fff!important;border-color:#2885f5;box-shadow:0 0 0 2px #2885f533,0 8px 18px #0b2e6d22}
@media(max-width:1250px){#vih .vih-workspace{grid-template-columns:minmax(260px,.72fr) minmax(520px,1.45fr) minmax(270px,.78fr)}.vih-sphere-callouts button{min-width:120px}.vih-sphere-callouts button:nth-child(odd){left:-12%}.vih-sphere-callouts button:nth-child(even){right:-12%}}
#vihGeoLayer .vih-geo-alert{cursor:pointer}#vihGeoLayer .vih-geo-alert circle{fill:#ffd84d;stroke:#fff;stroke-width:4;filter:drop-shadow(0 3px 5px #0b2e6d66)}#vihGeoLayer .vih-geo-alert text{fill:#123566;font:900 14px Inter;text-anchor:middle;pointer-events:none}#vihGeoLayer .vih-geo-alert.severity-critical circle{fill:#ef4035}#vihGeoLayer .vih-geo-alert.severity-critical text{fill:#fff}#vihGeoLayer .vih-geo-alert.severity-high circle{fill:#ff8a1f}#vihGeoLayer .vih-geo-alert:hover circle,#vihGeoLayer .vih-geo-alert:focus circle{stroke:#1f6bff;stroke-width:7;filter:drop-shadow(0 0 10px #1f6bff)}.vih-map-alert-tooltip{position:absolute;z-index:20;left:14px;right:14px;bottom:112px;padding:10px 12px;border:1px solid #dbe5f0;border-radius:9px;background:#0d2d59ed;color:#fff;box-shadow:0 7px 18px #0b2e6d44;opacity:0;transform:translateY(8px);pointer-events:none;transition:.16s}.vih-map-alert-tooltip.visible{opacity:1;transform:none}.vih-map-alert-tooltip strong,.vih-map-alert-tooltip span,.vih-map-alert-tooltip small{display:block}.vih-map-alert-tooltip strong{font:800 9px Inter}.vih-map-alert-tooltip span{margin-top:3px;color:#8fc3ff;font:700 7px Inter}.vih-map-alert-tooltip small{margin-top:4px;color:#dbe8f7;font:600 7px Inter}
#vihGeoLayer.all-layers-closed>*{display:none!important}.vih-layer-master-toggle{grid-column:1/-1;margin-top:4px;padding:8px 10px;border:1px solid #d6e1ee;border-radius:7px;background:#f6f9fd;color:#165db7;font:800 8px Inter;letter-spacing:.03em;cursor:pointer}.vih-layer-master-toggle:hover{border-color:#247cf0;background:#eaf3ff}.vih-layer-master-toggle[aria-pressed="true"]{background:#1263df;color:#fff;border-color:#1263df}
#vihGeoLayer .vih-geo-alert,#vihGeoLayer .vih-geo-alert circle{pointer-events:all!important}
.vih-map-head-tools{display:flex;gap:7px;align-items:center}.vih-map-head-tools select,.vih-map-head-tools button{height:31px;border:1px solid #d8e2ee;border-radius:7px;background:#fff;color:#294667;font:700 8px Inter}.vih-map-head-tools select{max-width:155px;padding:0 8px}.vih-map-head-tools button{width:32px;font-size:14px}.vih-map-head-tools button:hover{border-color:#247cf0;color:#1263df}#vih .vih-map-window .osm-map iframe{filter:saturate(.6) brightness(1.05) contrast(.9)}#vihGeoLayer .vih-geo-alert circle{r:15;stroke-width:5}#vihGeoLayer .vih-geo-alert text{font-size:12px}#vihGeoLayer .vih-geo-sensor{r:18;stroke-width:8}#vihGeoLayer .vih-geo-point{r:5;stroke-width:3}#vihGeoLayer .vih-geo-segment .railway-track-outer{stroke-width:11}#vihGeoLayer .vih-geo-segment .railway-track-inner{stroke-width:5}
@media(min-width:901px){body:has(#vih.active) .sidebar{display:flex!important}body:has(#vih.active) main{margin-left:256px!important}body:has(#vih.active) .topbar{height:66px!important;padding:0 28px!important}}body:has(#vih.active){background:var(--bg)}body:has(#vih.active) #vih{max-width:1600px;padding:32px}#vih .page-heading{align-items:flex-end;margin:0 0 24px}#vih .page-heading .eyebrow{display:block}#vih .page-heading h1{font-size:28px}
@media(min-width:901px) and (max-width:1500px){#vih .vih-workspace{grid-template-columns:minmax(245px,.72fr) minmax(455px,1.35fr) minmax(245px,.76fr);gap:10px}#vih{padding:28px!important}.vih-sphere-callouts button{min-width:105px;padding:6px}.vih-sphere-callouts button:nth-child(odd){left:-8%}.vih-sphere-callouts button:nth-child(even){right:-8%}#vih .vih-module{grid-template-columns:minmax(0,1fr) 58px;padding-left:52px!important}#vih .vih-module .module-spark{width:58px}}

/* Keep all six intelligence cards visible and prevent the GIS overlay from appearing stretched. */
#vih .vih-sensor-stack{grid-template-rows:repeat(6,minmax(0,1fr))!important;min-height:0;overflow:visible}
#vih .vih-pano-window .vih-pano-host{width:min(72%,620px,72vh);height:auto!important;aspect-ratio:1}
#vih .vih-pano-window .vih-pano-host canvas{width:100%!important;height:100%!important;aspect-ratio:1}
@media(min-width:901px){#vih .vih-workspace{height:calc(100vh - 200px);min-height:520px}}
#vihGeoLayer .vih-geo-point{display:none!important}
#vihGeoLayer .vih-geo-sensor{r:7;stroke-width:3;pointer-events:auto}
.vih-base-map{position:absolute;inset:0;z-index:1;background:#e8edf2}.vih-base-map .leaflet-control-attribution{font-size:7px}.vih-base-map .leaflet-control-zoom a{color:#17365e}.vih-base-map .vih-leaflet-sensor{filter:drop-shadow(0 3px 4px #0b2e6d66)}
.vih-planet-rail-crown{z-index:22!important;top:-6%!important;height:44%!important}
.vih-planet-rail-crown.vih-planet-rail-elevation{left:-5%;top:auto!important;bottom:-5%;width:110%;height:31%!important;filter:drop-shadow(0 -4px 9px #0b2e6d30)}.vih-planet-rail-elevation .planet-track-bed{fill:#d8e0ea;stroke:#61758d;stroke-width:2}.vih-planet-rail-elevation .planet-rail-left,.vih-planet-rail-elevation .planet-rail-right{stroke:#173e70;stroke-width:8}.vih-planet-rail-elevation .planet-rail-sleepers{stroke:#456382;stroke-width:27;stroke-dasharray:1 2}.planet-km-marker path{stroke:#0c5fcf;stroke-width:3}.planet-km-marker circle{fill:#fff;stroke:#1674e8;stroke-width:4}.planet-km-marker text{fill:#17365e;font:700 17px Inter;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:5}.vih-planet-rail-elevation .planet-train{transition:transform .1s linear}
.vih-planet-rail-crown.vih-planet-rail-elevation{bottom:18%!important}.vih-pano-window:has(.vih-planet-rail-elevation) .vih-sphere-controls{bottom:88px}
.vih-planet-rail-crown.vih-planet-rail-elevation{left:-20%;bottom:1%!important;width:140%;height:23%!important;filter:drop-shadow(0 -2px 5px #0b2e6d22)}.vih-planet-rail-elevation .planet-track-bed{height:10px;transform:translateY(4px)}.vih-planet-rail-elevation .planet-rail-left,.vih-planet-rail-elevation .planet-rail-right{stroke-width:4}.vih-planet-rail-elevation .planet-rail-sleepers{stroke-width:16;stroke-dasharray:.8 2.2}.planet-km-marker path{stroke-width:2}.planet-km-marker circle{r:4;stroke-width:2}.planet-km-marker text{font-size:13px;stroke-width:3}.vih-pano-window:has(.vih-planet-rail-elevation) .vih-sphere-controls{bottom:105px}
#vih .vih-planet-rail-crown.vih-planet-rail-elevation{bottom:5%!important}#vih .vih-pano-window:has(.vih-planet-rail-elevation) .vih-sphere-controls{bottom:90px!important}
#vih .vih-workspace{grid-template-columns:clamp(210px,18vw,300px) minmax(0,1fr)!important}#vih .vih-sensor-stack{display:none!important}#vih .vih-sphere-callouts{display:none!important}.vih-floating-sensors{position:absolute;z-index:24;inset:52px 0 110px;pointer-events:none}.vih-floating-sensors .vih-module{position:absolute!important;width:clamp(145px,13vw,180px)!important;height:68px!important;min-height:0!important;padding:8px 48px 8px 42px!important;grid-template-columns:minmax(0,1fr) 42px!important;grid-template-rows:1fr!important;background:#fffffff2!important;border:1px solid #dce6f1!important;border-radius:11px!important;box-shadow:0 10px 26px #17345f22!important;pointer-events:auto;backdrop-filter:blur(8px)}.vih-floating-sensors .vih-module:hover,.vih-floating-sensors .vih-module.cross-highlight,.vih-floating-sensors .vih-module.gis-selected{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 32px #1263df30!important}.vih-floating-sensors .vih-module .module-number{left:9px!important;width:25px!important;height:25px!important}.vih-floating-sensors .vih-module .module-icon{display:none!important}.vih-floating-sensors .vih-module .module-heading strong{font-size:8px!important;line-height:1.18!important}.vih-floating-sensors .vih-module .module-heading small{font-size:6px!important}.vih-floating-sensors .vih-module .module-reading{display:none!important}.vih-floating-sensors .vih-module .module-spark{grid-column:2!important;width:42px!important;height:30px!important}.vih-floating-sensors .signalling-module .signal-status{grid-column:2!important}.vih-floating-sensors .vih-module[data-workspace="cctv"]{left:1.5%;top:16%}.vih-floating-sensors .vih-module[data-workspace="rail-surface"]{right:1.5%;top:16%}.vih-floating-sensors .vih-module[data-workspace="vibration"]{left:1.5%;top:43%}.vih-floating-sensors .vih-module[data-workspace="slope-tilt"]{right:1.5%;top:43%}.vih-floating-sensors .vih-module[data-workspace="water-drainage"]{left:1.5%;top:70%}.vih-floating-sensors .vih-module[data-workspace="signalling"]{right:1.5%;top:70%}.vih-map-sensor-number{margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#fff!important;font:800 8px Inter!important}.vih-map-sensor-number:before{display:none!important}
.vih-planet-rail-crown{position:absolute;z-index:16;left:-13%;top:-25%;width:126%;height:48%;pointer-events:none;filter:drop-shadow(0 7px 8px #0b2e6d28)}.vih-planet-rail-crown svg{width:100%;height:100%;overflow:visible}.planet-rail-shadow{fill:none;stroke:#cbd6e4;stroke-width:42;opacity:.48}.planet-rail-left,.planet-rail-right{fill:none;stroke:#294c78;stroke-width:8}.planet-rail-sleepers{fill:none;stroke:#416489;stroke-width:30;stroke-dasharray:1 2;opacity:.95}.planet-train{transition:transform .12s ease-out;transform-box:fill-box;transform-origin:center}.planet-train .train-body{fill:#0c4382;stroke:#fff;stroke-width:5}.planet-train .train-window{fill:#f7fbff}.planet-train .train-stripe{fill:#7fc5ff}.planet-train circle{fill:#102f57;stroke:#fff;stroke-width:3}

/* Sphere-led VIH composition: compact GIS, dominant digital twin, floating sensor cards. */
body:has(#vih.active) #vih{max-width:none!important;padding:24px 20px!important}
#vih .vih-workspace{grid-template-columns:clamp(220px,18vw,300px) minmax(560px,1fr) clamp(190px,15vw,240px)!important;gap:12px!important}
#vih .vih-map-window{align-self:stretch}
#vih .vih-pano-window .vih-pano-host{width:min(86%,760px,74vh);max-width:none!important}
#vih .vih-sensor-stack{background:transparent!important;border:0!important;box-shadow:none!important;padding:3px 0!important;gap:12px!important}
#vih .vih-module{background:#fff!important;border:1px solid #dfe7f0!important;box-shadow:0 10px 24px #17345f18!important;transform:translateZ(0);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
#vih .vih-module:hover,#vih .vih-module.cross-highlight,#vih .vih-module.gis-selected{transform:translateY(-3px);box-shadow:0 15px 30px #17345f26!important}
@media(min-width:1501px){#vih .vih-workspace{grid-template-columns:clamp(250px,17vw,320px) minmax(720px,1fr) clamp(190px,14vw,245px)!important}#vih .vih-pano-window .vih-pano-host{width:min(88%,800px,76vh)}}
@media(min-width:901px) and (max-width:1250px){#vih .vih-workspace{grid-template-columns:210px minmax(470px,1fr) 190px!important}#vih .vih-pano-window .vih-pano-host{width:min(86%,620px,68vh)}}
#vih .vih-workspace{grid-template-columns:clamp(210px,18vw,300px) minmax(0,1fr)!important}#vih .vih-pano-window{grid-column:2!important}#vih .vih-sensor-stack{display:none!important}
#vihBaseMap .vih-leaflet-sensor.hover-linked,#vihBaseMap .vih-leaflet-sensor.selected{stroke:#ffd54a!important;stroke-width:6!important;filter:drop-shadow(0 0 8px #1674e8)}
#vihFloatingSensors .vih-module{width:clamp(190px,16vw,240px)!important;height:86px!important;padding:11px 58px 11px 50px!important;border-radius:14px!important;box-shadow:10px 12px 24px #17345f26,3px 5px 9px #17345f18!important}#vihFloatingSensors .vih-module:hover,#vihFloatingSensors .vih-module.cross-highlight,#vihFloatingSensors .vih-module.gis-selected{transform:translate(-2px,-4px) scale(1.025);box-shadow:14px 17px 32px #1263df35,5px 8px 13px #17345f22!important}#vihFloatingSensors .vih-module .module-number{left:12px!important;width:30px!important;height:30px!important;font-size:12px!important}#vihFloatingSensors .vih-module .module-heading strong{font-size:10px!important;line-height:1.25!important}#vihFloatingSensors .vih-module .module-heading small{font-size:7px!important}#vihFloatingSensors .vih-module .module-spark{width:50px!important;height:38px!important}
#vihFloatingSensors .vih-module{width:clamp(235px,20vw,290px)!important;height:106px!important;padding:15px 76px 15px 60px!important;border-radius:16px!important}#vihFloatingSensors .vih-module .module-number{left:14px!important;width:38px!important;height:38px!important;font-size:15px!important}#vihFloatingSensors .vih-module .module-heading strong{font-size:12px!important;line-height:1.28!important}#vihFloatingSensors .vih-module .module-heading small{font-size:9px!important;line-height:1.2!important}#vihFloatingSensors .vih-module .module-spark{width:64px!important;height:46px!important}#vihFloatingSensors .vih-module[data-workspace="cctv"],#vihFloatingSensors .vih-module[data-workspace="rail-surface"]{top:9%}#vihFloatingSensors .vih-module[data-workspace="vibration"],#vihFloatingSensors .vih-module[data-workspace="slope-tilt"]{top:40%}#vihFloatingSensors .vih-module[data-workspace="water-drainage"],#vihFloatingSensors .vih-module[data-workspace="signalling"]{top:71%}
.planet-km-marker{pointer-events:auto;cursor:pointer;outline:none}.planet-km-marker circle,.planet-km-marker text{transition:.16s ease}.planet-km-marker:hover circle,.planet-km-marker:focus circle{r:7;fill:#1674e8;stroke:#fff;filter:drop-shadow(0 0 7px #1674e8)}.planet-km-marker:hover text,.planet-km-marker:focus text{fill:#0c5fcf;font-weight:800}

/* Fixed little-planet frame: zoom the imagery inside it, never the globe itself. */
#vih .vih-pano-window .vih-pano-host{
  width:500px!important;
  height:500px!important;
  max-width:none!important;
  flex:0 0 500px;
}
#vih .vih-pano-host:before{
  inset:3%;
  background-position:center;
  background-size:calc(100% * var(--planet-image-zoom,1));
  transform:rotate(var(--planet-rotation,0rad));
  overflow:hidden;
  box-shadow:none;
}
#vihSphereCanvas{
  inset:3%;
  width:94%!important;
  height:94%!important;
  opacity:0;
}
#vih .vih-planet-rail-crown.vih-planet-rail-elevation{
  left:50%!important;
  bottom:-7%!important;
  transform:translateX(-50%);
  filter:none;
}
@media(max-width:1100px), (max-height:760px){
  #vih .vih-pano-window .vih-pano-host{
    width:min(500px,46vw,calc(100vh - 250px))!important;
    height:auto!important;
    flex-basis:auto;
    aspect-ratio:1;
  }
}
