/* MCS ICT v3.12 · tunable SVG map-marker effect compositor */
.mcs-map-fx-active .d-stage,.mcs-map-fx-active .d-preview-note{display:none!important}
.mcs-map-fx-preview[hidden]{display:none!important}
.mcs-map-fx-preview{min-height:400px;display:flex;flex-direction:column;gap:9px;width:100%;align-items:stretch}
.mcs-map-preview-title{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;color:#eef9ff;font-size:12px}
.mcs-map-preview-title>span{font-size:10px;color:#59e8d7;letter-spacing:1.3px;font-weight:900}
.mcs-map-fx-canvas{border:1px solid #31516a;background:radial-gradient(ellipse at center,#143249,#071525 75%);border-radius:15px;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:330px;max-height:520px}
.mcs-map-fx-canvas>svg{width:100%;height:min(54vh,480px);display:block;overflow:visible}
.mcs-map-preview-legend{display:flex;align-items:center;justify-content:space-between;color:#c9e5ec;font-size:10px;gap:8px}.mcs-map-preview-legend i{display:inline-block;width:8px;height:8px;background:#48d9c9;border-radius:50%;margin-right:5px;box-shadow:0 0 0 4px #4de9d529}
.mcs-map-preview-hint{font-size:11px;line-height:1.65;color:#9db5c6;margin:0}
/* Respect user sizes without changing pin geo-coordinates, text badges, or navigation hit targets. */
.mcs-map-dot .mcs-map-visual{transform:scale(var(--mcs-map-scale,1));transform-origin:0px 0px;opacity:var(--mcs-map-opacity,1);pointer-events:visiblePainted}
.mcs-map-dot .mcs-ring{animation:none;fill:transparent;stroke:var(--mcs-map-color,#4de9d5);stroke-width:1.5;opacity:.66;transform-origin:center;transform-box:fill-box}
.mcs-map-dot .mcs-ring-secondary{animation:none;fill:transparent;stroke:var(--mcs-map-color,#4de9d5);stroke-width:1.4;opacity:0;transform-origin:center;transform-box:fill-box}
.mcs-map-dot .mcs-glow{fill:var(--mcs-map-color,#4de9d5);opacity:calc(var(--mcs-map-glow,.4)*.20);stroke:var(--mcs-map-color,#4de9d5);stroke-width:calc(5px*var(--mcs-map-glow,.4));stroke-opacity:calc(var(--mcs-map-glow,.4)*.18)}
.mcs-map-dot .mcs-pin-core{fill:var(--mcs-map-color,#4de9d5);stroke:#d3fffc;stroke-width:1.1;transform-origin:center;transform-box:fill-box}
.mcs-map-dot.is-approx .mcs-pin-core{fill:var(--mcs-map-color,#4de9d5);fill-opacity:.7;stroke-dasharray:2 1.5}
.mcs-map-dot.is-approx .mcs-ring{stroke-dasharray:3 2}
.mcs-map-dot.is-selected .mcs-pin-core{fill:var(--mcs-map-selected,#ffdc82);fill-opacity:1;stroke:#fff8e2;stroke-dasharray:none}
.mcs-map-dot.is-selected .mcs-ring,.mcs-map-dot.is-selected .mcs-ring-secondary{stroke:var(--mcs-map-selected,#ffdc82)}
.mcs-map-dot .mcs-pin-sheen{fill:#fff;opacity:.6;pointer-events:none}
.mcs-map-dot .mcs-pin-star{fill:var(--mcs-map-color,#4de9d5);opacity:0;pointer-events:none;transform-origin:center;transform-box:fill-box}
.mcs-map-dot .mcs-pin-scan{fill:none;stroke:var(--mcs-map-color,#4de9d5);stroke-width:3;stroke-linecap:round;opacity:0;pointer-events:none;transform-origin:center;transform-box:fill-box}
.mcs-map-dot:hover .mcs-ring{stroke-width:2.6}
/* 10 independently visible and lightweight variants. All effects inherit duration & alpha. */
[data-map-effect="breathe"] .mcs-map-dot .mcs-ring{animation:mcs-breathe var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="ripple"] .mcs-map-dot .mcs-ring{animation:mcs-ripple var(--mcs-map-duration,2.8s) linear infinite}
[data-map-effect="ripple"] .mcs-map-dot .mcs-ring-secondary{animation:mcs-ripple var(--mcs-map-duration,2.8s) linear infinite;animation-delay:calc(var(--mcs-map-duration,2.8s)*-.5)}
[data-map-effect="radar"] .mcs-map-dot .mcs-ring{stroke-dasharray:4 14;stroke-width:3;animation:mcs-spin var(--mcs-map-duration,2.8s) linear infinite}
[data-map-effect="radar"] .mcs-map-dot .mcs-pin-scan{opacity:.82;animation:mcs-spin var(--mcs-map-duration,2.8s) linear infinite}
[data-map-effect="beacon"] .mcs-map-dot .mcs-glow{animation:mcs-beacon var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="beacon"] .mcs-map-dot .mcs-pin-core{animation:mcs-beacon-core var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="orbit"] .mcs-map-dot .mcs-ring{stroke-dasharray:3 7;stroke-width:2.4;animation:mcs-spin var(--mcs-map-duration,2.8s) linear infinite}
[data-map-effect="orbit"] .mcs-map-dot .mcs-ring-secondary{stroke-dasharray:8 15;stroke-width:2;opacity:.55;animation:mcs-spin-reverse calc(var(--mcs-map-duration,2.8s)*1.5) linear infinite}
[data-map-effect="shimmer"] .mcs-map-dot .mcs-pin-sheen{animation:mcs-shimmer var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="shimmer"] .mcs-map-dot .mcs-glow{animation:mcs-soft-glow var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="bounce"] .mcs-map-dot .mcs-pin-core{animation:mcs-bounce var(--mcs-map-duration,2.8s) cubic-bezier(.35,0,.25,1) infinite}
[data-map-effect="bounce"] .mcs-map-dot .mcs-ring{animation:mcs-bounce-ring var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="sparkle"] .mcs-map-dot .mcs-pin-star{animation:mcs-sparkle var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="sparkle"] .mcs-map-dot .mcs-ring{animation:mcs-sparkle-ring var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="heartbeat"] .mcs-map-dot .mcs-pin-core{animation:mcs-heart var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="heartbeat"] .mcs-map-dot .mcs-ring{animation:mcs-heart-ring var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="wave"] .mcs-map-dot .mcs-pin-scan{opacity:.8;animation:mcs-scan-wave var(--mcs-map-duration,2.8s) ease-in-out infinite}
[data-map-effect="wave"] .mcs-map-dot .mcs-ring{animation:mcs-ripple var(--mcs-map-duration,2.8s) ease-out infinite}
[data-map-effect="wave"] .mcs-map-dot .mcs-ring-secondary{animation:mcs-ripple var(--mcs-map-duration,2.8s) ease-out infinite;animation-delay:calc(var(--mcs-map-duration,2.8s)*-.35)}
@keyframes mcs-breathe{0%,100%{opacity:.65;transform:scale(1)}50%{opacity:.22;transform:scale(1.6)}}
@keyframes mcs-ripple{0%{opacity:.8;transform:scale(.75)}100%{opacity:0;transform:scale(2.5)}}
@keyframes mcs-spin{to{transform:rotate(360deg)}}
@keyframes mcs-spin-reverse{to{transform:rotate(-360deg)}}
@keyframes mcs-beacon{0%,32%,100%{opacity:.04}12%,54%{opacity:.65}}
@keyframes mcs-beacon-core{0%,28%,100%{opacity:1;transform:scale(1)}14%{opacity:.3;transform:scale(.85)}52%{opacity:1;transform:scale(1.2)}}
@keyframes mcs-shimmer{0%,100%{opacity:.25;transform:translate(-3px,-2px) scale(.4)}45%{opacity:1;transform:translate(3px,2px) scale(1.7)}}
@keyframes mcs-soft-glow{0%,100%{opacity:.02}50%{opacity:calc(var(--mcs-map-glow,.4)*.42)}}
@keyframes mcs-bounce{0%,35%,100%{transform:translateY(0)}15%{transform:translateY(-8px)}23%{transform:translateY(2px)}}
@keyframes mcs-bounce-ring{0%,50%,100%{opacity:.6;transform:scale(1)}20%{opacity:.18;transform:scale(1.4)}}
@keyframes mcs-sparkle{0%,100%{opacity:0;transform:rotate(0) scale(.4)}40%,52%{opacity:.9;transform:rotate(90deg) scale(1.1)}}
@keyframes mcs-sparkle-ring{0%,100%{opacity:.25}50%{opacity:.85}}
@keyframes mcs-heart{0%,30%,55%,100%{transform:scale(1)}12%,42%{transform:scale(1.34)}25%,53%{transform:scale(.95)}}
@keyframes mcs-heart-ring{0%,40%,100%{opacity:.38;transform:scale(1)}12%,42%{opacity:.72;transform:scale(1.35)}}
@keyframes mcs-scan-wave{0%{opacity:0;transform:rotate(-100deg) scale(.7)}40%{opacity:.9;transform:rotate(15deg) scale(1.3)}100%{opacity:0;transform:rotate(110deg) scale(1.8)}}
#ictMapStage.mcs-map-fx-paused .mcs-map-dot *,[data-map-effect="none"] .mcs-map-dot *,#ictMapStage.mcs-map-fx-paused .mcs-map-dot .mcs-ring{animation:none!important}
@media(prefers-reduced-motion:reduce){.mcs-map-dot *{animation:none!important}}
@media(max-width:1050px){.mcs-map-fx-preview{max-height:50vh;overflow:auto}}
