.map-page-host{position:absolute;inset:0;z-index:1;min-width:0;min-height:0}.map-page-host.map-page-inactive{visibility:hidden;pointer-events:none}.map-screen{position:absolute;inset:0;overflow:hidden;background:#bfe9ff;--edge:14px;--gap:6px;--control:42px;--search-h:42px}.map{position:absolute;inset:0}.map-screen::before{content:"";position:absolute;z-index:440;left:0;right:0;top:0;height:150px;pointer-events:none;background:linear-gradient(to bottom,rgba(255,255,255,.92) 0,rgba(255,255,255,.76) 55%,rgba(255,255,255,0) 100%)}
.map-brand{position:absolute;z-index:520;left:14px;top:14px;margin:0;pointer-events:none}
.map-search-cluster{position:absolute;z-index:520;top:47px;left:var(--edge);right:var(--edge);display:grid;grid-template-columns:minmax(0,1fr) var(--control);gap:var(--gap);align-items:start}.place-search{min-width:0}.place-search-row{display:grid;grid-template-columns:minmax(0,1fr) 48px 46px;align-items:center;height:var(--search-h);padding:2px;border:1px solid #dce3ea;border-radius:6px;background:rgba(255,255,255,.98)}.place-search-input{min-width:0;height:100%;padding:0 7px;border:0;background:transparent;color:var(--ink);font-size:11.5px;font-weight:600;outline:0}.place-search-input::placeholder{color:#748298}.place-search-clear{display:none}.place-search-btn,.place-search-area-btn{height:36px;padding:0 5px;border-radius:4px;font-size:10px;font-weight:730}.place-search-btn{border:1px solid var(--primary);background:var(--primary);color:#fff}.place-search-area-btn{margin-left:2px;border:1px solid #d9e0e8;background:#fff;color:var(--ink)}.place-search-area-full{display:none!important}.place-search-area-short{display:inline!important}.place-search-results{margin-top:4px;max-height:500px;overflow:auto;border:1px solid var(--line);border-radius:5px;background:#fff}.place-search-item{display:block;width:100%;padding:8px 10px;border:0;border-bottom:1px solid #e7ebf0;background:transparent;text-align:left}.place-search-name{display:block;font-size:11.5px;font-weight:720}.place-search-address{display:block;margin-top:2px;color:#65789f;font-size:9.5px}
.map-settings,.map-refresh,.locate-fab{display:grid;place-items:center;width:var(--control);height:var(--control);border:1px solid #dce3ea;border-radius:8px;background:rgba(255,255,255,.98);color:var(--ink)}.map-settings .ui-icon,.map-refresh .ui-icon,.locate-fab .ui-icon{width:20px;height:20px}.map-settings span,.map-refresh span{display:none}.map-refresh{position:absolute;z-index:520;right:var(--edge);top:95px}
.wishlist-map-tools{position:absolute;z-index:520;left:var(--edge);top:95px;width:252px;max-width:calc(100% - 70px)}.wishlist-map-tools .list-seg{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;overflow:hidden!important;border:1px solid #dce3ea!important;border-radius:6px!important;background:#fff!important}.wishlist-map-tools .seg-btn{min-width:0!important;min-height:42px!important;padding:0 7px!important;border:0!important;border-right:1px solid #e7ebf0!important;border-radius:0!important;background:#fff!important;color:var(--ink)!important;font-size:10.5px!important;font-weight:690!important;white-space:nowrap!important}.wishlist-map-tools .seg-btn:last-child{border-right:0!important}.wishlist-map-tools .seg-btn.active{background:#eef5ff!important;color:#075fdc!important}.map-category-clear{margin-top:4px;min-height:28px!important;border-radius:4px!important;font-size:9.5px!important}
.map-experience-tools{position:absolute;z-index:520;left:var(--edge);bottom:calc(var(--nav-h) + var(--safe-bottom) + 9px);display:flex;height:36px;border:1px solid #dce3ea;border-radius:5px;background:#fff;overflow:hidden}.map-experience-tools button{min-width:0;padding:0 8px;border:0;border-right:1px solid #e5eaf0;background:#fff;color:var(--ink);font-size:9.8px;font-weight:680}.map-experience-tools button:last-child{border-right:0}.map-experience-tools button[aria-pressed="true"]{background:#eef5ff;color:#075fdc}.locate-fab{position:absolute;z-index:520;right:62px;bottom:calc(var(--nav-h) + var(--safe-bottom) + 9px)}.fab{position:absolute;z-index:520;right:var(--edge);bottom:calc(var(--nav-h) + var(--safe-bottom) + 9px);display:grid;place-items:center;width:46px;height:46px;border:0;border-radius:50%;background:var(--primary);color:#fff;font-size:25px;font-weight:300;box-shadow:0 2px 8px rgba(10,111,232,.18)}
.mapboxgl-marker{z-index:20}.mapboxgl-marker:hover{z-index:25}.map-screen.memory-focused .maplog-marker.is-memory-selected{z-index:30}.maplog-marker{position:absolute!important;z-index:20;display:block;width:40px;height:48px;box-sizing:border-box!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;cursor:pointer;line-height:0!important;transform-origin:50% 100%;transition:none!important}.maplog-marker:focus-visible{outline:none}.maplog-photo-frame{position:relative;display:block;box-sizing:border-box;width:40px;height:48px;overflow:visible;pointer-events:none;transform-origin:50% 100%;transition:transform .12s ease,filter .12s ease}.maplog-marker:active .maplog-photo-frame{transform:scale(.96);filter:brightness(.96)}.maplog-photo-card{position:absolute;z-index:1;box-sizing:border-box;left:0;top:0;width:40px;height:40px;overflow:hidden;border:1px solid #d9d9d9;border-radius:5px;background:#d9d9d9;box-shadow:none}.maplog-photo-card img{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;object-fit:cover}.maplog-photo-placeholder{position:absolute;inset:0;display:grid;place-items:center;background:#fff;color:var(--record-color,#63748b);line-height:1}.maplog-photo-pointer{position:absolute;z-index:2;left:50%;top:40px;width:14px;height:9px;background:#000;clip-path:polygon(50% 100%,0 0,100% 0);transform:translateX(-50%);pointer-events:none}.maplog-photo-frame:not(.maplog-no-photo) .maplog-photo-pointer{background:#d9d9d9}.maplog-photo-frame:not(.maplog-no-photo) .maplog-photo-pointer::after{content:'';position:absolute;left:1px;top:1px;width:12px;height:7px;background:#000;clip-path:polygon(50% 100%,0 0,100% 0)}.maplog-marker:focus-visible .maplog-photo-card,.map-screen.memory-focused .maplog-marker.is-memory-selected .maplog-photo-card{outline:2px solid #007aff;outline-offset:0}
.sheet{left:12px!important;right:12px!important;bottom:calc(var(--nav-h) + var(--safe-bottom) + 8px)!important;max-height:420px!important;border-radius:7px!important;box-shadow:0 -4px 16px rgba(22,39,65,.10)!important}.map-screen:has(#sheetHost .sheet) .map-experience-tools,.map-screen:has(#sheetHost .sheet) .locate-fab,.map-screen:has(#sheetHost .sheet) .fab{visibility:hidden;pointer-events:none}.map-playback-panel{position:absolute;z-index:540;left:var(--edge);right:var(--edge);top:12px;padding:6px 8px;border:1px solid #dce3eb;border-radius:5px;background:#fff;color:var(--ink)}.map-screen.playback-active::before,.map-screen.playback-active .map-brand,.map-screen.playback-active .map-search-cluster,.map-screen.playback-active .wishlist-map-tools,.map-screen.playback-active .map-refresh,.map-screen.playback-active .map-experience-tools,.map-screen.playback-active .locate-fab,.map-screen.playback-active .fab{visibility:hidden;pointer-events:none}



/* Registered-pin detail: compact viewer with secondary edit action in the header. */
.record-detail-card{display:flex!important;flex-direction:column!important;padding:0!important;overflow:hidden!important;max-height:min(64svh,480px)!important;border-radius:12px 12px 7px 7px!important;box-shadow:0 -8px 28px rgba(20,37,62,.16)!important;animation:map-detail-sheet-in .18s ease-out}
@keyframes map-detail-sheet-in{from{transform:translateY(18px);opacity:.5}to{transform:none;opacity:1}}
.map-detail-handle{flex:0 0 auto;width:34px;height:4px;margin:7px auto 2px;border-radius:999px;background:#d6dce4}
.map-detail-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:7px 12px 9px}
.map-detail-heading{min-width:0}.record-detail-card .sheet-title{margin:0;font-size:16px;line-height:1.35;font-weight:780;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-detail-meta{display:flex;align-items:center;gap:6px;margin-top:5px;min-width:0}.map-detail-category,.map-detail-rating{display:inline-flex;align-items:center;min-width:0;height:24px;padding:0 7px;border-radius:999px;font-size:9.5px;font-weight:700}.map-detail-category{max-width:70%;overflow:hidden;background:#eef5ff;color:#075fdc;white-space:nowrap;text-overflow:ellipsis}.map-detail-rating{background:#fff8dc;color:#755c00}
.map-detail-head-actions{display:flex;align-items:center;gap:5px}.map-detail-edit,.map-detail-close{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#f1f4f7;color:#52627a}.map-detail-edit{color:var(--primary)}.map-detail-edit svg{width:17px;height:17px;fill:currentColor}.map-detail-close{font-size:22px;line-height:1}
.map-detail-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.map-detail-media{position:relative;display:flex;align-items:center;justify-content:center;margin:0 12px;overflow:hidden;border-radius:7px;background:#eef2f6;aspect-ratio:4/3}
.map-detail-hero{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;background:transparent}.map-detail-hero img{display:block;width:100%;height:100%;object-fit:contain;background:#eef2f6}.map-detail-media>.map-detail-multi-photo{right:8px;top:8px}
.map-detail-thumbs{display:flex;gap:6px;padding:7px 12px 1px;overflow-x:auto;scrollbar-width:none}.map-detail-thumbs::-webkit-scrollbar{display:none}.map-detail-thumb{flex:0 0 48px;width:48px;height:48px;padding:2px;border:2px solid transparent;border-radius:6px;background:#fff;overflow:hidden}.map-detail-thumb img{display:block;width:100%;height:100%;border-radius:3px;object-fit:contain;background:#eef2f6}.map-detail-thumb.active{border-color:var(--primary)}
.map-detail-body{display:grid;gap:6px;padding:9px 12px 10px}.map-detail-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--muted);font-size:9.5px}.map-detail-row strong{color:var(--ink);font-size:10.5px;font-weight:680;text-align:right}.map-detail-row small{color:var(--muted);font-size:9px;font-weight:600}.map-detail-memo{padding:8px 9px;border-radius:5px;background:#f6f8fa;color:#3a4a61;font-size:10.5px;line-height:1.5;white-space:pre-wrap;max-height:68px;overflow:auto}
.map-screen:has(.record-detail-card) .map-search-cluster,.map-screen:has(.record-detail-card) .wishlist-map-tools,.map-screen:has(.record-detail-card) .map-refresh,.map-screen:has(.record-detail-card) .map-direction{opacity:.22;pointer-events:none}

/* v16: search results must be unmistakably visible above the map UI. */
.place-search{position:relative;z-index:2}
.place-search-results{position:absolute!important;z-index:760!important;left:0;right:0;top:calc(var(--search-h) + 5px);margin:0!important;max-height:min(52svh,430px)!important;overflow:auto!important;border:1px solid #cfd8e3!important;border-radius:7px!important;background:#fff!important;box-shadow:0 12px 30px rgba(18,37,64,.22)!important;-webkit-overflow-scrolling:touch}
.place-search-results.hidden{display:none!important}
.place-search-item{min-height:54px!important;padding:9px 11px!important;background:#fff!important}
.place-search-item:last-child{border-bottom:0!important}
.place-search-name{font-size:12px!important;line-height:1.3!important}
.place-search-address{margin-top:3px!important;font-size:9.5px!important;line-height:1.35!important}
.map-screen.search-open .wishlist-map-tools,.map-screen.search-open .map-refresh,.map-screen.search-open .map-direction{visibility:hidden!important;pointer-events:none!important}
.map-screen.search-open .map-search-cluster{z-index:760!important}


/* v44: stable pins and larger primary add control. */
.maplog-photo-frame{transition:none!important}
.maplog-marker:active .maplog-photo-frame{transform:none!important;filter:none!important}
.fab{width:54px;height:54px;right:14px;bottom:calc(var(--nav-h) + var(--safe-bottom) + 11px);font-size:29px}
.locate-fab{right:76px;bottom:calc(var(--nav-h) + var(--safe-bottom) + 17px)}


/* v54: visible playback pins, arrival animation, and broader ▼ pointer. */
.maplog-no-photo .maplog-photo-card{background:#fff}
.maplog-no-photo .maplog-photo-placeholder{background:#fff;color:var(--record-color,#516072);font-size:18px}

.maplog-marker.playback-dim{opacity:.2;filter:saturate(.72)}
.maplog-marker.playback-current{opacity:1!important;z-index:32;filter:none}
.maplog-marker.playback-current .maplog-photo-card{outline:2px solid #0a6fe8;outline-offset:1px}
@keyframes maplog-pin-arrival{0%{transform:translateY(-16px) scale(.9);opacity:.25}55%{transform:translateY(0) scale(1.06);opacity:1}100%{transform:none;opacity:1}}
.maplog-marker.memory-arrival .maplog-photo-frame{animation:maplog-pin-arrival .46s cubic-bezier(.2,.88,.32,1.1)}

/* Reference compass: compact circular white control with red/gray needle. */
.map-direction{position:absolute;z-index:520;right:var(--edge);top:143px;width:46px!important;height:46px!important;padding:0!important;border:1px solid #d9dee6!important;border-radius:50%!important;background:#fff!important;box-shadow:0 3px 10px rgba(25,37,55,.16)!important;display:grid!important;place-items:center!important;color:inherit!important}
.map-direction-face{display:grid;place-items:center;width:36px;height:36px}
.map-direction-face svg{display:block;width:36px;height:36px;overflow:visible}
.map-direction-needle{transform-origin:32px 32px;transition:transform .18s ease}
.map-direction-north{fill:#e72b2f}.map-direction-south{fill:#aeb4bc}.map-direction-center{fill:#fff;stroke:#d6dbe2;stroke-width:1.5}.map-direction-dot{fill:#ef4444}
.map-direction.is-turned{box-shadow:0 3px 10px rgba(25,37,55,.16)!important}
