/* Actions respond immediately; panels travel without bounce or staggered rows. */
.choco-map [data-save]{position:relative;overflow:visible}
.choco-map .save-spark,.choco-map .save-ring{position:absolute;left:50%;top:33%;pointer-events:none;z-index:4}
.choco-map .save-spark{width:5px;height:5px;border-radius:2px}
.choco-map .save-ring{width:22px;height:22px;border:1.5px solid #d7b17e;border-radius:50%}
.choco-map .pin-chocolate{width:30px;height:30px;stroke:none;fill:none;position:relative;z-index:1;flex-shrink:0}
.choco-map .choco-pin{background:#fcf8f0;border-color:#67432f;border-radius:14px;color:#67432f}
.choco-map .choco-pin:after{background:#fcf8f0}
.choco-map .unconfirmed-pin .choco-pin{border-color:#bda58a}
.choco-map .pin-cert{position:absolute;width:20px;height:20px;top:-7px;right:-8px;z-index:10;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#67432f;color:#fff8ed;border:2px solid #fff8ed;border-radius:50%;box-sizing:border-box;box-shadow:0 1px 3px #39261f33}
.choco-map .pin-cert svg{display:block;width:14px;height:14px;position:relative;z-index:1;flex-shrink:0;overflow:visible;stroke:#fff8ed}
.choco-map .detail-dialog-header{position:sticky;top:0;height:0;z-index:5}
.choco-map .detail-dialog-header .close-dialog{top:8px;right:8px;background:#fcf8f0;box-shadow:0 2px 8px #39261f24;border:1px solid #dfd0bc}
.choco-map .place-card .card-save{position:absolute;width:48px;height:52px;min-width:48px;min-height:52px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#67432f}
.choco-map .place-card .card-save.saved{background:#f1e7d7;color:#67432f}
.choco-map .place-card .card-save.saved svg{fill:currentColor;stroke:currentColor}
.choco-map .save-label{font-size:12px;line-height:16px;font-weight:500;white-space:nowrap}
.choco-map .place-copy{padding-right:50px}
.choco-map .detail-actions{display:grid;grid-template-columns:minmax(0,1fr) 78px 48px;gap:8px;align-items:stretch}
.choco-map .detail-actions .detail-save{width:78px;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #bda58a;border-radius:8px;color:#67432f;background:#fcf8f0}
.choco-map .detail-actions .detail-save.saved{background:#67432f;color:#fff8ed;border-color:#67432f}
.choco-map .detail-save.saved svg{fill:currentColor;stroke:currentColor}
.choco-map .detail-actions .button{min-width:0;white-space:normal;text-align:center;line-height:1.5;padding:10px;font-size:13px}
.choco-map .toast[popover]{position:fixed;inset:auto auto max(112px,calc(env(safe-area-inset-bottom) + 104px)) 50%;margin:0;border:0;transform:translateX(-50%);width:min(440px,calc(100% - 32px));min-width:0;font-size:13px;line-height:1.6;padding:14px 18px;overflow:visible}
.choco-map .toast[popover]::backdrop{background:transparent;pointer-events:none}
.choco-map dialog>.toast:not([popover]){bottom:112px;max-width:calc(100% - 24px)}
.choco-map{--motion-press:110ms;--motion-state:180ms;--motion-panel:240ms;--motion-ease:cubic-bezier(.16,1,.3,1)}
.choco-map :is(.card-save,.icon-button,.close-dialog,.all-stores-button,.saved-nav,.submit-nav,.location-button,.map-tools button,.button,.toast button,.sheet-action){transition:transform var(--motion-press) ease-out,background-color var(--motion-state) ease-out,color var(--motion-state) ease-out,opacity var(--motion-press) ease-out}
.choco-map :is(.card-save,.icon-button,.close-dialog,.all-stores-button,.saved-nav,.submit-nav,.location-button,.map-tools button,.button,.toast button):active:not(:disabled){transform:scale(.96)}
.choco-map #sheet-toggle:active .sheet-action{transform:scale(.96);background:#e4d3b9}
.choco-map .place-select{transition:background-color var(--motion-press) ease-out}
.choco-map .place-select:active{background:#eee1ce}
.choco-map .search-box{transition:border-color var(--motion-state) ease-out,background-color var(--motion-state) ease-out}
.choco-map .search-box:focus-within{border-color:#93633e}
.choco-map .card-save svg,.choco-map .icon-button svg{transform-origin:center;transform-box:fill-box}
.choco-map button:disabled{cursor:wait;opacity:.65}
.choco-map .segment-indicator{transition:transform var(--motion-state) var(--motion-ease)}
.choco-map .sheet-action svg{transition:transform var(--motion-state) var(--motion-ease)}
.choco-map dialog[open],.choco-map #detail-dialog[open]{animation:none}
.choco-map dialog[open]::backdrop{animation:dialog-shade-in 180ms ease-out}
.choco-map dialog.is-closing::backdrop{animation:dialog-shade-out 140ms ease-in forwards}
@keyframes dialog-shade-in{from{opacity:0}to{opacity:1}}
@keyframes dialog-shade-out{from{opacity:1}to{opacity:0}}
@media(max-width:700px){
 .choco-map .places-panel,.choco-map:not(.is-list-view) .places-panel,.choco-map.is-list-view .places-panel{transition:transform var(--motion-panel) var(--motion-ease)}
 .choco-map .places-panel.is-dragging{transition:none}
 /* Inert removes hidden controls from focus, while the closing content stays visible. */
 .choco-map .sheet-content[inert]{visibility:visible}
}
@media(prefers-reduced-motion:reduce){
 .choco-map *,.choco-map *::before,.choco-map *::after,.choco-map dialog::backdrop{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .choco-map :is(.card-save,.icon-button,.close-dialog,.all-stores-button,.saved-nav,.submit-nav,.location-button,.map-tools button,.button,.toast button):active:not(:disabled),.choco-map #sheet-toggle:active .sheet-action{transform:none}
}
