.place-gallery{position:absolute;left:34px;right:34px;bottom:calc(100% + 12px);height:185px;border:0;background:transparent;overflow:visible;box-shadow:none;isolation:isolate}
.gallery-viewport{height:100%;width:100%;overflow:hidden;border-radius:17px;touch-action:pan-y;outline:none;user-select:none;background:transparent}.gallery-viewport:focus-visible{outline:2px solid #48c66d;outline-offset:3px}
.gallery-track{display:flex;height:100%;width:100%;transition:transform 420ms cubic-bezier(.22,1,.36,1);will-change:transform;background:transparent}
.gallery-slide{flex:0 0 100%;width:100%;height:100%;position:relative;display:grid;place-items:center;background:transparent;overflow:hidden}.gallery-slide img{display:block;height:100%;width:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.gallery-status{display:none}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%) scale(1);width:42px;height:58px;border:0;border-radius:0;background:transparent;backdrop-filter:none;color:#31463a;font:48px/1 sans-serif;display:grid;place-items:center;padding:0;box-shadow:none;text-shadow:0 1px 2px #fff,0 -1px 2px #fff,1px 0 2px #fff,-1px 0 2px #fff;z-index:1;transform-origin:center;transition:transform 260ms cubic-bezier(.22,1,.36,1),opacity 200ms ease}
.gallery-arrow:hover:not(:disabled),.gallery-arrow:focus-visible:not(:disabled){background:transparent;transform:translateY(-50%) scale(1.22);filter:none}.gallery-arrow:active:not(:disabled){transform:translateY(-50%) scale(1.06)}.gallery-arrow:disabled{cursor:default;opacity:.22}.gallery-prev{left:-44px}.gallery-next{right:-44px}
.gallery-count{position:absolute;right:10px;bottom:10px;background:#17261db3;color:#fff;backdrop-filter:blur(8px);padding:4px 9px;border-radius:20px;font-size:10px;letter-spacing:1px;pointer-events:none}
@media(max-height:650px){.place-gallery{height:140px}}
@media(max-width:600px){.place-gallery{height:145px;left:30px;right:30px;bottom:calc(100% + 10px)}.gallery-viewport{border-radius:15px}.gallery-arrow{height:52px;width:38px;font-size:44px}.gallery-prev{left:-39px}.gallery-next{right:-39px}}
@media(prefers-reduced-motion:reduce){.gallery-track,.gallery-arrow{transition:none}}
.place-gallery{left:0;right:0}.gallery-prev{left:-45px}.gallery-next{right:-45px}
@media(max-width:600px){.place-gallery{left:0;right:0}.gallery-arrow{width:32px;font-size:40px}.gallery-prev{left:-27px}.gallery-next{right:-27px}}
.place-detail{z-index:12}
@media(max-width:600px){.gallery-prev{left:-14px}.gallery-next{right:-20px}}
/* Keep the external photo arrow clear of the sidebar. */
@media(min-width:851px){.place-detail{left:435px}.sidebar-collapsed .place-detail{left:50px}}
@media(min-width:601px) and (max-width:850px){.place-detail{left:376px}.sidebar-collapsed .place-detail{left:50px}}
/* Collapsed sidebar: reserve avatar width plus room for the external arrow. */
@media(min-width:851px){.sidebar-collapsed .place-detail{left:132px}}
@media(min-width:601px) and (max-width:850px){.sidebar-collapsed .place-detail{left:124px}}
@media(max-width:600px){.sidebar-collapsed .place-detail{left:85px;bottom:18px;width:calc(100vw - 164px);max-width:none}}

/* Compact detail and photos sit immediately above the selected map coordinate. */
.place-detail.place-anchored{position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;margin:0;width:250px!important;max-width:calc(100vw - 64px)!important;padding:16px;border-radius:18px;white-space:normal;overflow-wrap:anywhere;background:linear-gradient(140deg,#30372e,#171f18);pointer-events:auto;transform-origin:50% 100%}
.place-detail.place-anchored h2{font-size:15px;margin:7px 0}
.place-detail.place-anchored p{font-size:10px;line-height:1.6;margin:5px 0}
.place-detail.place-anchored .small-tag{font-size:8px}
.place-detail.place-anchored .text-button{font-size:10px;margin-top:6px}
.place-detail.place-anchored .place-gallery{height:120px;bottom:calc(100% + 10px)}
.place-detail.place-anchored .gallery-viewport{border-radius:13px}
.place-detail.place-anchored .gallery-arrow{width:28px;font-size:36px}
.place-detail.place-anchored .gallery-prev{left:-27px}.place-detail.place-anchored .gallery-next{right:-27px}
.selection-point{position:relative;display:block;width:12px;height:12px;box-sizing:border-box;border:2px solid #fff;border-radius:50%;background:#30d158;box-shadow:0 0 0 4px #fff,0 3px 12px #0004;animation:selection-point-in 380ms cubic-bezier(.22,1,.36,1)}
.selection-point::after{content:"";position:absolute;inset:-7px;border:1px solid #30d15880;border-radius:50%;animation:selection-point-ring 650ms ease-out both}
@keyframes selection-point-in{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes selection-point-ring{from{opacity:.8;transform:scale(.7)}to{opacity:0;transform:scale(1.8)}}
@media(max-width:600px){.place-detail.place-anchored{width:230px!important;padding:14px}.place-detail.place-anchored .place-gallery{height:105px}}
@media(max-height:600px){.place-detail.place-anchored .place-gallery{height:90px}}
@media(prefers-reduced-motion:reduce){.selection-point,.selection-point::after{animation:none}.selection-point::after{display:none}}

/* Load invisibly, then reveal the decoded photo and its controls together. */
.place-gallery{opacity:1;transition:opacity .3s ease}
.place-gallery[data-loading="true"]{opacity:0;pointer-events:none;transition:none}
.gallery-slide img{opacity:0}
.gallery-slide img[data-ready="true"]{opacity:1}
@media(prefers-reduced-motion:reduce){.place-gallery{transition:none}}

/* A fixed zero-height SDK marker keeps the bottom edge steady as road details grow. */
.place-card-anchor{position:relative;width:250px;max-width:calc(100vw - 64px);height:0;overflow:visible}
.place-card-anchor>.place-detail.place-anchored{position:absolute!important;left:0!important;bottom:0!important;top:auto!important;width:100%!important;max-width:none!important}
@media(max-width:600px){.place-card-anchor{width:230px}}

.place-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.place-detail .place-detail-footer .text-button{margin-top:0}
.place-card-actions{display:flex;justify-content:flex-end;align-items:center;gap:6px;flex-shrink:0}
.place-card-actions .place-action{display:grid;place-items:center;width:28px;height:28px;padding:5px;border:0;border-radius:7px;background:transparent;color:#a6b59d;cursor:pointer;transition:color .18s,background .18s}
.place-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.place-card-actions .place-action[aria-pressed="true"]{color:#c5da84}.place-action[aria-pressed="true"] svg{fill:currentColor}
.place-card-actions .place-action:hover:not(:disabled){background:#ffffff0d;color:#d8e6bf}
.place-card-actions .place-action:focus-visible{outline:2px solid #a6cb77;outline-offset:2px}
.place-card-actions .place-action:disabled{opacity:.4;cursor:default}
.favorite-place-card{position:relative;padding:14px 18px 10px;border-bottom:1px solid #ffffff0c}
.favorite-place-open{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}
.favorite-place-open h3{font-size:12px;font-weight:500;margin:0 0 7px}.favorite-place-open p{font-size:10px;line-height:1.6;color:#98a18f;margin:0;overflow-wrap:anywhere}
.favorite-place-card .place-card-actions{margin-top:5px}

/* The text stays beside the fixed dot; its width never moves the map anchor. */
.selection-point-name{position:absolute;left:17px;top:50%;transform:translateY(-50%);display:block;width:max-content;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:400 12px/1.4 "Microsoft YaHei",sans-serif;color:#52745e;text-shadow:0 0 2px #fff;pointer-events:none}
