.map-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;padding-block:30px 32px}.map-heading h1{font-size:clamp(30px,3.4vw,46px);margin-bottom:14px}.map-heading p{color:var(--muted);margin:0}.map-heading>.text-link{flex-shrink:0}
.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 380px;border:1px solid var(--line);background:#fff}.map-main{min-width:0;display:flex;flex-direction:column}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line);background:#fff}.map-toolbar button,.map-search-row button,.map-detail-top button{min-height:44px;min-width:44px;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:700;padding:8px 12px;line-height:1.4}.map-toolbar button:active,.map-detail-top button:active{transform:scale(.97)}.map-toolbar button:disabled{opacity:.4;cursor:default}.map-toolbar button[aria-pressed=true]{color:#fff;background:var(--brand-ink);border-color:var(--brand-ink)}.map-zoom,.map-view-actions{display:flex;align-items:center;gap:6px}.map-zoom>button[data-map-zoom]{font-size:23px;padding:0;width:44px}.map-zoom output{min-width:48px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
.map-viewport{height:580px;position:relative;overflow:hidden;background:#9aba0a;touch-action:pan-y pinch-zoom;isolation:isolate}.map-viewport:focus-visible{outline:3px solid var(--brand-ink);outline-offset:3px;z-index:1}.map-stage{position:relative;transform-origin:0 0}.map-stage>img{width:100%;max-width:none;user-select:none;pointer-events:none}.is-map-ready .map-stage{position:absolute;inset:0 auto auto 0;will-change:transform}.is-map-ready .map-stage>img{height:100%;object-fit:fill}.is-map-ready .map-viewport{cursor:grab}.is-map-ready .map-viewport.is-dragging{cursor:grabbing}.map-viewport.is-touch-active{touch-action:none}.map-help{font-size:11px;line-height:1.7;color:var(--muted);margin:0;padding:12px 16px;max-width:none;border-top:1px solid var(--line)}.map-image-error{position:absolute;inset:24px;background:#fff;margin:0;padding:24px;height:fit-content;font-size:14px}.map-image-error a{text-decoration:underline}
.map-pin{position:absolute;width:38px;height:38px;margin:-19px 0 0 -19px;border:2px solid transparent;border-radius:50%;padding:0;background:transparent;color:var(--ink);transform-origin:center;z-index:1;cursor:pointer;touch-action:manipulation}.map-pin>span{display:none;position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);padding:5px 9px;background:#fff;font-size:12px;line-height:1.5;white-space:nowrap;box-shadow:0 2px 8px #0002;pointer-events:none}.map-pin[aria-pressed=true]{border:3px solid #fff;box-shadow:0 0 0 3px #173b25;z-index:3}.map-pin:focus-visible{outline:3px solid #183b25;outline-offset:3px;background:#ffffff30;z-index:4}.map-pin:focus-visible>span{display:block}@media(hover:hover){.map-pin:hover{border-color:#fff;background:#ffffff30;box-shadow:0 0 0 2px #173b25;z-index:4}.map-pin:hover>span{display:block}.map-result:hover{background:#f1f6f0}.map-toolbar button:not(:disabled):hover{border-color:var(--brand-ink);color:var(--brand-ink)}.map-toolbar button[aria-pressed=true]:hover{color:#fff}}

/* The directory and place sheet share one panel; never stack them. */
.map-sidebar{min-width:0;height:0;min-height:100%;border-left:1px solid var(--line);background:#fff}
.map-directory-panel{height:100%;display:flex;flex-direction:column}
.map-find{padding:24px 24px 16px;flex-shrink:0}
.map-find h2{font-size:23px;margin:0 0 20px;letter-spacing:-.035em}
.map-find label{font-size:11px;font-weight:700;display:block;margin-bottom:5px}
.map-find input,.map-find select{font-size:14px;width:100%;height:46px;border:1px solid #bfc9bf;background:#fff;padding:8px 12px}
.map-find input{padding-right:44px}
.map-search-row{position:relative;margin-bottom:12px}
.map-search-row button{position:absolute;right:1px;top:1px;min-height:44px;min-width:40px;padding:0;border:0;font-size:23px}
.map-result-count{font-size:11px;color:var(--muted);margin:14px 0 0;line-height:1.5}
.map-results{overflow:auto;flex:1;min-height:0;overscroll-behavior:contain;border-top:1px solid var(--line)}
.map-result{width:100%;display:grid;grid-template-columns:54px minmax(0,1fr) 16px;gap:14px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);padding:13px 24px;background:#fff;font-size:13px;line-height:1.45}
.map-result[aria-pressed=true]{background:#edf4ec;color:var(--brand-ink)}
.map-result-image{display:grid;place-items:center;width:54px;height:54px;background:#f1f4ef;font-size:14px;font-weight:700;color:var(--brand-ink)}
.map-result-image img{width:100%;height:100%;object-fit:cover}
.map-result>span:nth-child(2){display:grid;gap:5px;font-weight:700}
.map-result small{font-size:10px;color:var(--muted);font-weight:400}
.map-result:focus-visible{outline-offset:-4px}
.map-empty{font-size:14px;margin:24px}
.map-empty button{display:block;margin-top:14px}
.map-detail{height:100%;display:flex;flex-direction:column;scroll-margin-top:12px;background:#fff}
.map-detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 20px;border-bottom:1px solid var(--line);flex-shrink:0}
.map-detail-top button{display:flex;align-items:center;gap:10px;padding:8px 0;border:0;background:transparent;font-size:12px;color:var(--brand-ink)}
.map-detail-top button span{font-size:20px}
.map-detail-top>span{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.map-detail-scroll{overflow:auto;min-height:0;flex:1;overscroll-behavior:contain;scrollbar-width:thin}
.map-detail-photos>a{display:block;position:relative;background:#edf1e8}
.map-detail-photos img{width:100%;height:224px;object-fit:cover}
.map-photo-enlarge{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:14px;min-height:32px;padding:4px 10px;background:#fff;color:var(--ink);font-size:10px;font-weight:700}
.map-photo-enlarge span{font-size:17px}
.map-photo-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 16px;border-bottom:1px solid var(--line)}
.map-photo-controls>span{font-size:10px;color:var(--muted)}
.map-photo-controls>div{display:flex;align-items:center;gap:4px}
.map-photo-controls button{width:44px;height:44px;padding:0;border:0;background:transparent;font-size:20px;color:var(--brand-ink)}
.map-photo-controls button:disabled{opacity:.3;cursor:default}
.map-photo-controls>div>span{min-width:32px;text-align:center;font-size:11px;font-variant-numeric:tabular-nums}
.map-detail-body{padding:22px 24px 24px}
.map-detail-area{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--brand-ink);margin:0 0 10px}
.map-detail h3{font-size:29px;line-height:1.12;margin:0;letter-spacing:-.04em;text-wrap:pretty}
.map-detail h3:focus{outline:none}
.map-detail-latin{font-size:12px;color:var(--muted);font-style:italic;margin:7px 0 0}
.map-detail-copy{margin-top:16px}
.map-detail-copy p{font-size:13px;line-height:1.8;margin:0;color:var(--muted)}
.map-detail-facts{margin:20px 0 0;display:grid}
.map-detail-facts>div{display:grid;grid-template-columns:1fr 1.15fr;gap:12px;border-top:1px solid var(--line);padding:9px 0;font-size:11px;line-height:1.65}
.map-detail-facts dt{color:var(--muted)}
.map-detail-facts dd{margin:0;font-weight:700}
.map-detail-advice{margin-top:14px;border-block:1px solid var(--line)}
.map-detail-advice summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;font-size:12px;font-weight:700;min-height:46px;padding:8px 0}
.map-detail-advice summary::-webkit-details-marker{display:none}
.map-detail-advice summary span{font-size:17px;color:var(--brand-ink)}
.map-detail-advice[open] summary span{transform:rotate(45deg)}
.map-detail-advice p{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 16px}
.map-detail .text-link{font-size:12px;margin-top:18px;min-height:44px}
.map-detail-actions{padding:12px 24px 14px;border-top:1px solid var(--line);background:#fff;flex-shrink:0}
.map-save{display:flex;justify-content:center;width:100%;padding:10px 14px;margin:0;background:var(--brand-ink);color:#fff;font-size:12px;min-height:44px;line-height:1.5}
.map-save[aria-pressed=true]{background:#eef5ef;color:var(--brand-ink);text-decoration:none}
.map-return{display:block;min-height:40px;margin:4px auto 0;border:0;font-size:11px}
.map-detail-actions>[data-storage-note]{font-size:10px;line-height:1.6;text-align:center;margin:2px 0 0!important}
@media(hover:hover){.map-photo-controls button:not(:disabled):hover{background:#edf4ec}.map-save:hover{background:#005723;color:#fff}.map-detail-top button:hover{text-decoration:underline;text-underline-offset:4px}}
.map-notes{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-block:24px 38px}.map-notes p{font-size:12px;color:var(--muted);margin:0}.map-directory{border-block:1px solid var(--line);margin-bottom:72px}.map-directory summary{font-weight:700;padding:20px 0;cursor:pointer}.map-directory-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding-block:15px 30px}.map-directory h2{font-size:21px}.map-directory ul{list-style:none;padding:0}.map-directory li a{display:flex;gap:12px;padding-block:7px;font-size:13px}.map-directory li span{min-width:28px;font-size:11px;color:var(--brand-ink)}
.map-workspace:fullscreen{height:100dvh;width:100vw;padding:18px;border:0;grid-template-columns:minmax(0,1fr) 380px}
.map-workspace:fullscreen .map-viewport{flex:1;height:auto;min-height:200px}
.map-workspace:fullscreen .map-main{min-height:0}
.map-workspace:fullscreen .map-help{flex-shrink:0}
.map-invitation{display:grid;grid-template-columns:1.25fr 1fr;gap:64px;align-items:center}.map-invitation-photo{display:block;overflow:hidden;background:#9aba0a}.map-invitation-photo img{width:100%;height:330px;object-fit:cover;object-position:center 56%}.map-invitation h2{font-size:36px}.map-invitation p{color:var(--muted)}
/* One selection, shared by the map, profiles and visit planner. */
.place-actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:20px}
.observation-guide .save-animal{margin-right:20px}.selection-map-link{margin-bottom:12px}
.saved-row-body{display:grid;flex:1;min-width:0;gap:3px}.saved-row-body .saved-map-link{font-size:11px;color:var(--brand-ink);font-weight:400;text-decoration:underline;text-underline-offset:3px}.saved-row-body small{font-size:10px;color:var(--muted);line-height:1.5}.saved-place-number{display:grid;place-items:center;background:#edf4ec;color:var(--brand-ink);width:70px;height:55px;flex-shrink:0;font-weight:700}.saved-row img{flex-shrink:0}.saved-row>button{flex-shrink:0;min-width:44px;min-height:44px}
.map-selection-bar{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap;padding:0 0 18px}.map-selection-bar>button:first-child{min-height:44px;border:1px solid var(--brand-ink);color:var(--brand-ink);background:#fff;padding:9px 14px;font-size:12px;font-weight:700}.map-selection-bar>button[aria-pressed=true]{background:var(--brand-ink);color:#fff}.map-selection-bar>button:first-child span{margin-left:10px;font-variant-numeric:tabular-nums}.map-selection-bar .text-link{margin-left:auto;font-size:12px;min-height:44px}.map-selection-bar>p{width:100%;max-width:none;margin:0;font-size:11px;color:var(--muted)}
.map-pin.is-saved:after{content:'★';position:absolute;right:-5px;top:-9px;width:21px;height:21px;line-height:21px;text-align:center;background:#fff;color:#006d2b;font-size:16px;box-shadow:0 1px 3px #0003;pointer-events:none}
@media(max-width:1100px){
  .map-workspace{grid-template-columns:minmax(0,1fr) 340px}
  .map-toolbar{padding:8px;gap:8px}.map-toolbar button{padding-inline:8px}.map-view-actions{gap:4px}
  .map-find{padding:20px}.map-find h2{font-size:21px}
  .map-result{padding-inline:20px;gap:12px}
  .map-detail-body,.map-detail-actions{padding-inline:20px}
  .map-invitation{gap:36px}
}
@media(max-width:800px){
  .map-heading{display:block;padding-block:20px 26px}.map-heading p{font-size:15px}.map-heading>.text-link{margin-top:16px}
  .map-workspace{grid-template-columns:1fr}.map-viewport{height:430px}
  .map-sidebar{height:auto;min-height:0;border-left:0;border-top:1px solid var(--line)}
  .map-directory-panel{height:auto;scroll-margin-top:12px}.map-results{max-height:360px;min-height:100px;flex:none}
  .map-detail{height:auto}.map-detail-scroll{overflow:visible;flex:none}
  .map-detail-photos img{height:auto;aspect-ratio:16/10;max-height:380px}
  .map-detail-copy p{font-size:14px}.map-detail-facts>div{font-size:12px}
  .map-detail-body{padding:24px}.map-detail h3{font-size:30px}.map-detail-advice p{font-size:13px}
  .map-detail-actions{padding:16px 24px 20px}
  .map-save{font-size:14px}.map-return{font-size:12px;min-height:44px}
  .map-help{font-size:11px}.map-notes{grid-template-columns:1fr;gap:12px}
  .map-directory-columns{grid-template-columns:1fr 1fr}.map-invitation{grid-template-columns:1fr;gap:26px}
  .map-invitation-photo img{height:290px}.map-invitation h2{font-size:30px}
  .map-workspace:fullscreen{overflow:auto;display:block;padding:10px}
  .map-workspace:fullscreen .map-viewport{height:60dvh;min-height:320px}
  .map-selection-bar{gap:10px}.map-selection-bar .text-link{margin-left:0}.map-selection-bar>p{line-height:1.6}
  .place-actions{align-items:start;flex-direction:column;gap:8px}
}
@media(max-width:480px){
  .map-viewport{height:340px}.map-toolbar{align-items:start}.map-zoom{gap:2px}
  .map-view-actions{width:100%;justify-content:space-between}.map-view-actions button{flex:1}
  .map-directory-columns{grid-template-columns:1fr}.map-heading h1{font-size:31px}
  .map-notes{margin-bottom:26px}.map-detail-body,.map-detail-actions{padding-inline:20px}
  .map-detail-top{padding-inline:16px}.map-result{padding-inline:16px}
}
@media(prefers-reduced-motion:reduce){.map-toolbar button:active,.map-detail-top button:active{transform:none}}
