/* storm map component, prefix sm__ */
.stormmap{max-width:1120px;margin:0 auto;color:var(--navy);text-align:left}
.sm__chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 12px;-webkit-overflow-scrolling:touch}
.sm__chips::-webkit-scrollbar{display:none}
.sm__chips button{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:15px;font-weight:500;min-height:44px;padding:0 18px;border-radius:99px;border:1px solid var(--line2);background:#fff;color:#36587c;cursor:pointer;transition:.15s}
.sm__chips button i{width:10px;height:10px;border-radius:50%}
.sm__chips button:hover{border-color:var(--blue);color:var(--blue)}
.sm__chips button.on{background:var(--blue);border-color:var(--blue);color:#fff}
.sm__main{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}
.sm__map{position:relative;background:linear-gradient(180deg,#f3f8ff,#e6f0fd);border:1px solid var(--line2);border-radius:20px;padding:10px;min-height:200px;overflow:hidden}
.sm__map svg{display:block;width:100%;height:auto}
.sm__states path{fill:#fff;stroke:#c9d9ee;stroke-width:.8;stroke-linejoin:round}
.sm__b{fill-opacity:.55;stroke-width:1.2;stroke-opacity:.9;transform-box:fill-box;transform-origin:center;transition:fill .3s,r .3s}
.sm__b.pop{animation:smpop .55s cubic-bezier(.2,1.5,.4,1) both}
.sm__b.hot{fill-opacity:.9;stroke:#102e50!important;stroke-width:2.2}
@keyframes smpop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.sm__h{fill:transparent;cursor:pointer}
.sm__tip{position:absolute;z-index:3;max-width:260px;background:#0f1f4d;color:#fff;border-radius:12px;padding:10px 14px;font-size:14px;line-height:1.4;box-shadow:0 12px 30px rgba(10,20,60,.35);pointer-events:none}
.sm__tip b{display:block;font-size:16px}
.sm__tip small{display:block;color:#b9cdf5;font-size:13px;margin-top:2px}
.sm__tip .pill{pointer-events:auto;margin-top:8px;min-height:44px;width:100%;border:0;font:inherit;font-size:15px;cursor:pointer}
.sm__load,.sm__fail{padding:60px 16px;text-align:center;color:#56728f;font-size:16px}
.sm__fail{display:flex;flex-direction:column;align-items:center;gap:10px}.sm__fail b{color:var(--navy)}.sm__fail .pill{border:0;cursor:pointer;min-height:44px;padding:0 22px;font:inherit}
.sm__side{background:#fff;border:1px solid var(--line2);border-radius:20px;padding:14px 12px 8px}
.sm__side h3{margin:0 8px 6px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#56728f;font-weight:600}
.sm__top{list-style:none;margin:0;padding:0}
.sm__top button{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:6px 8px;border:0;border-radius:12px;background:none;font:inherit;text-align:left;color:var(--navy);cursor:pointer}
.sm__top li.hot button,.sm__top button:hover{background:#eaf1ff}
.sm__dot{flex:0 0 14px;height:14px;border-radius:50%}
.sm__nm b{display:block;font-size:16px;font-weight:600}.sm__nm small{font-size:14px;color:#56728f}
.sm__legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 2px 0;font-size:14px;color:#36587c}
.sm__legend span{display:inline-flex;align-items:center;gap:7px}.sm__legend i{width:12px;height:12px;border-radius:50%}
.sm__legend .sm__sz{color:#6b7c90}
.sm__note{margin:12px 2px 2px;font-size:15px;color:var(--navy);font-weight:500}
.sm__upd{margin:0 2px;font-size:14px;color:#6b7c90}
@media(max-width:820px){.sm__main{grid-template-columns:1fr}.sm__map{padding:4px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.sm__b.pop{animation:none}.sm__b{transition:none}}
/* map page */
.smp-hero{padding:130px 0 20px;text-align:center;background:linear-gradient(180deg,#f7faff,#fff)}
.smp-hero h1{font-size:clamp(2.1rem,5vw,3.6rem);margin:0 0 12px;color:var(--navy);letter-spacing:-.03em}
.smp-hero p{font-size:18px;color:#52677e;margin:0 auto;max-width:560px}
.smp-map{padding:20px 0 70px;background:#fff}
@media(max-width:600px){.smp-hero{padding:100px 0 12px}.smp-hero p{font-size:16px}}
.dy-map{padding:60px 0 40px;background:#fff}@media(max-width:600px){.dy-map{padding:36px 0 20px}}
/* compact variant (inside the Find jobs tab) */
.sm--c{display:flex;flex-direction:column;height:100%;min-height:0}
.sm--c .sm__chips{padding:0 0 8px}
.sm--c .sm__chips button{min-height:38px;font-size:14px;padding:0 14px}
.sm--c .sm__map{flex:1;min-height:0;padding:4px;display:flex}
.sm--c .sm__map svg{width:100%;height:100%;flex:1;min-width:0}
.sm--c .sm__load,.sm--c .sm__fail{margin:auto;padding:20px 16px}
.sm__b.sel{fill-opacity:.95;stroke:#102e50!important;stroke-width:3}
.sm__ring{fill:none;stroke:#2467e8;stroke-width:3;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:smring 1.8s ease-out infinite}
@keyframes smring{0%{transform:scale(.6);stroke-opacity:.9}100%{transform:scale(1.5);stroke-opacity:0}}
@media(max-width:900px){.sm--c .sm__chips button{min-height:44px}.sm--c .sm__chips{padding-bottom:8px}}
@media(prefers-reduced-motion:reduce){.sm__ring{animation:none;stroke-opacity:.7}}
