.map-usability { border-top: 1px solid #64684f; padding: 12px 10px; color: #e7e8db; }
.map-usability > summary { cursor: pointer; font-weight: 700; }
.map-usability-body { display: grid; gap: 10px; padding-top: 10px; font-size: 13px; }
.map-usability p { margin: 0; line-height: 1.45; color: #c4c7b6; }
.map-usability label { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 7px 0; }
.map-usability input[type=color] { width: 42px; height: 30px; padding: 1px; flex: 0 0 42px; }
.map-usability label:has(select) { display: grid; gap: 6px; }
.map-usability select { width: 100%; max-width: 100%; min-width: 0; }
.map-usability button,.map-usability select,.map-usability input[type=number] { font: inherit; background: #171b15; color: #edf0e2; border: 1px solid #89916f; border-radius: 4px; padding: 7px; }
.map-usability button { cursor: pointer; min-height: 36px; }
.map-usability button:disabled { opacity: .5; cursor: default; }
.map-usability summary { cursor: pointer; }
.map-usability :focus-visible,.map-range-center:focus-visible { outline: 3px solid #f0ba65; outline-offset: 2px; }
.map-usability .map-tools-save { min-height: 1.5em; color: #e5cc93; }
.map-photo-preview { position: fixed; z-index: 1600; pointer-events: none; box-sizing: border-box; border: 1px solid #b7a773; border-radius: 6px; background: #141811; color: #f1f0dc; padding: 6px; box-shadow: 0 4px 24px #0009; max-height: calc(100vh - 16px); overflow: hidden; }
.map-photo-preview[hidden] { display: none; }
.map-photo-preview img { display: block; width: 100%; max-height: 320px; object-fit: contain; }
.map-photo-preview p { font-size: 13px; line-height: 1.4; margin: 6px 2px 2px; max-height: 5.6em; overflow: hidden; }
.map-pin-visited { position: absolute; left: -6px; top: -6px; border: 1px solid #172317; border-radius: 50%; background: #a4ed96; color: #111b11; width: 14px; height: 14px; font: bold 12px/14px sans-serif; text-align: center; pointer-events: none; z-index: 2; }
.mark-locations .marker { cursor: pointer; }
.map-pin-visit { width: min(420px, calc(100vw - 36px)); box-sizing: border-box; padding: 22px; background: #222719; color: #e9edda; border: 1px solid #aaa37c; border-radius: 8px; }
.map-pin-visit::backdrop { background: #0008; }
.map-pin-visit h2 { font-size: 22px; }
.map-pin-visit p { line-height: 1.5; }
.map-pin-visit button { padding: 10px; margin: 4px; min-height: 40px; background: #303827; border: 1px solid #959b7c; color: #fff; cursor: pointer; }
.map-range-rings { position: absolute; inset: 0; z-index: 28; pointer-events: none; }
.map-range-rings svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.map-range-rings path { fill: #85d6ed0c; stroke: #8ad2e9; stroke-width: 2px; stroke-dasharray: 7 4; }
.map-range-center { position: absolute; pointer-events: auto; touch-action: none; cursor: move; white-space: nowrap; transform: translate(-50%,-50%) scale(var(--verification-inverse-scale, 1)); transform-origin: center; min-height: 28px; border: 2px solid #8ad2e9; border-radius: 18px; background: #0f262c; color: white; padding: 4px 8px; font: bold 12px sans-serif; }
.map-ring-list { display: grid; gap: 8px; }
.map-ring-row { border-bottom: 1px solid #525b43; padding: 5px 0 10px; }
.map-ring-row input { width: 66px; }
.story-map-goals { padding: 10px; border-top: 1px solid #64684f; font-size: 13px; line-height: 1.5; }
.story-map-goals p { margin: 8px 0; }
.story-map-goals section { padding: 8px 0; border-bottom: 1px solid #535b43; }
.story-map-goals small { display: block; margin: 6px 0; color: #cac5a4; }
.story-map-goals .btn { margin: 4px 4px 4px 0; max-width: 100%; white-space: normal; }
@media (pointer: coarse) { .map-range-center { min-height: 40px; } }
