/* Consistent tap targets, independent of label length or zoom. */
.map-marker:not(.system-world){width:44px;height:44px;padding:0;display:grid;place-items:center;transform:translate(-50%,-50%);border-radius:50%;isolation:isolate}
.map-marker:not(.system-world) .marker-label{position:absolute;left:48px;top:1px;width:160px;max-width:160px;min-height:36px;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;gap:4px}
.map-marker:not(.system-world) .marker-label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-marker.compact:not(.mining-marker) .marker-dot{width:13px;height:13px}
.map-marker:hover,.map-marker:focus-visible{z-index:15;opacity:1}
.map-marker:focus-visible .marker-label{display:flex!important;background:#17242ef2}
.map-marker:hover .marker-dot,.map-marker:focus-visible .marker-dot{box-shadow:0 0 0 8px #a4c7db14}
.marker-count{position:absolute;right:0;top:0;min-width:19px;height:19px;padding:2px 4px;display:grid;place-items:center;border:1px solid #668292;border-radius:10px;background:#18303e;color:#fff;font:10px Arial,sans-serif;pointer-events:none}
.marker-chooser{width:min(390px,calc(100% - 32px));max-height:75vh;padding:20px;border:1px solid #48606f;border-radius:12px;background:#13212c;color:#e1eaee;box-shadow:0 24px 100px #000a}
.marker-chooser::backdrop{background:#030a10aa;backdrop-filter:blur(4px)}
.marker-chooser p{font-size:12px;color:#9bb4c2;line-height:1.6}
.marker-choice{width:100%;display:flex;flex-direction:column;gap:5px;padding:14px 10px;border-top:1px solid #344b59;text-align:left;font-size:13px}
.marker-choice small{font-size:10px;color:#8ea9b8}
.marker-choice:hover,.marker-choice:focus-visible{background:#243b49}

/* Real location photos retain their own source and photographer credit. */
.detail-top{margin:0}
.detail-top.has-photo{height:auto;aspect-ratio:16/9;min-height:175px;background:#0c1720}
.detail-top.has-photo::before{display:none}
.location-photo-link{display:block;position:absolute;inset:0}
.location-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:filter .18s}
.location-photo-link:hover .location-photo{filter:brightness(1.12)}
.detail-photo-credit{position:absolute;inset:auto 0 0;padding:22px 12px 9px;background:linear-gradient(transparent,#061018f2);color:#c9d9e1;font-size:9px;line-height:1.6;pointer-events:none}
.detail-photo-credit a{color:#e0eaf0;text-decoration:underline;text-underline-offset:2px;pointer-events:auto}
.detail-photo-credit span{display:block;opacity:.8;font-size:8px}
.detail-top .detail-close{z-index:2;background:#08121cd9;border:1px solid #adc9d340}
.detail-photo-empty{position:absolute;left:22px;bottom:12px;font-size:9px;color:#8aa5b5}
@media(max-width:760px){.detail-top.has-photo{min-height:145px;max-height:200px}.detail-top:not(.has-photo){height:110px}.detail-photo-credit{font-size:8px}}
@media(prefers-reduced-motion:reduce){.location-photo{transition:none}}
