/* Species page: Malta sightings map — minimal reuse of the sightings
   dashboard styling, scoped to .sp-map-* so species pages stay clean. */
.sp-map-card { background: var(--deep); border:1px solid rgba(30,115,190,0.18); border-radius:6px; padding:1.4rem 1.5rem; display:flex; flex-direction:column; gap:1.1rem; }
.sp-map-head { display:flex; align-items:baseline; gap:.8rem; flex-wrap:wrap; }
.sp-map-head h3 { font-size:.88rem; font-weight:700; letter-spacing:.02em; color:var(--white); }
.sp-map-meta { font-family:'Roboto Mono',monospace; font-size:.6rem; letter-spacing:.12em; color:var(--text); text-transform:uppercase; }
.sp-map-wrap { position:relative; width:100%; }
.sp-map-wrap svg.sl-svg { width:100%; height:auto; background: radial-gradient(ellipse at 55% 60%, rgba(0,191,255,0.05), transparent 65%); border-radius:4px; display:block; }
.sp-map-wrap .coast { fill:#0a1829; stroke:#1a4a73; stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; vector-effect:non-scaling-stroke; }
.sp-map-wrap .dot { fill:#0a1829; stroke:rgba(30,115,190,0.45); stroke-width:1.6; transition:fill .2s, stroke .2s; vector-effect:non-scaling-stroke; }
.sp-map-wrap .dot-link { cursor:pointer; }
.sp-map-wrap .dot-link.is-hot .dot { fill:var(--electric); stroke:#ffffff; stroke-width:3; filter:drop-shadow(0 0 6px rgba(0,191,255,0.9)); }
.sp-map-wrap .dot-label { font-family:'Roboto Mono',monospace; font-size:10px; fill:#ffffff; letter-spacing:.04em; font-weight:600; pointer-events:none; opacity:0; transition:opacity .12s; paint-order:stroke; stroke:rgba(7,15,26,0.88); stroke-width:3; stroke-linejoin:round; }
.sp-map-wrap .dot-link:hover .dot-label, .sp-map-wrap .dot-link.is-hot .dot-label { opacity:1; }
.sp-map-wrap .dot-link.is-hot .dot-label { fill:var(--electric); }
.sp-map-wrap .label { font-family:'Roboto Mono',monospace; font-size:14px; fill:#b0c8e0; letter-spacing:.14em; text-transform:uppercase; text-anchor:middle; pointer-events:none; font-weight:600; }
.sp-map-empty { padding:1rem 1.1rem; background:rgba(7,15,26,0.6); border:1px dashed rgba(30,115,190,0.25); border-radius:4px; color:var(--text); font-size:.78rem; line-height:1.55; }
.sp-map-empty strong { color:var(--white); display:block; margin-bottom:.3rem; font-size:.82rem; }
.sp-map-empty a { color:var(--electric); border-bottom:1px solid rgba(0,191,255,0.35); }
.sp-map-sites { display:flex; flex-direction:column; gap:.4rem; max-height:none; }
.sp-map-site { display:flex; align-items:center; gap:.6rem; padding:.55rem .8rem; background:rgba(7,15,26,0.55); border:1px solid rgba(30,115,190,0.2); border-radius:4px; font-size:.78rem; text-decoration:none; color:var(--white); transition:border-color .15s, background .15s; }
.sp-map-site:hover { border-color:rgba(0,191,255,0.45); background:rgba(0,191,255,0.04); }
.sp-map-site-name { flex:1; font-weight:600; }
.sp-map-site-region { font-family:'Roboto Mono',monospace; font-size:.56rem; letter-spacing:.12em; color:var(--text); text-transform:uppercase; }
.sp-map-site-count { font-family:'Roboto Mono',monospace; font-size:.72rem; font-weight:700; color:var(--electric); min-width:3ch; text-align:right; }
.sp-map-cta { font-size:.74rem; color:var(--text); line-height:1.55; margin-top:.4rem; }
.sp-map-cta a { color:var(--electric); font-weight:700; border-bottom:1px solid rgba(0,191,255,0.35); }
