html,body.map-body{height:100%;overflow:hidden}body.map-body{--sp-width: 26rem;--sp-w: 0px;--chrome-top: 88px}@media (max-width: 960px){body.map-body{--chrome-top: 76px}}@media (min-width: 1360px){body.map-body.sp-open{--sp-w: var(--sp-width)}}.map-page{position:relative;width:100vw;height:100vh;overflow:hidden}.map-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.map-page .map-shell{position:absolute;inset:0 var(--sp-w) 0 0;transition:right .26s ease}.map-page #map{width:100%;height:100%}.map-page .map-banner{position:absolute;top:calc(var(--chrome-top) + 56px);left:50%;transform:translate(calc(-50% - var(--sp-w) / 2));z-index:30;background:var(--shu-soft);color:var(--sumi);border:1px solid var(--shu);border-radius:var(--radius);padding:.6rem 1rem;font-size:.85rem;max-width:90vw;text-align:center}.map-page .legend{position:absolute;left:var(--space-3);bottom:var(--space-3);z-index:20;background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:.75rem;width:13rem}.map-page .legend-toggle{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;cursor:pointer;color:var(--sumi-soft);padding:.45rem 0}.map-page .legend-toggle .caret{width:14px;height:14px;flex-shrink:0;color:var(--muted);transition:transform .18s ease}.map-page .legend-toggle[aria-expanded=false] .caret{transform:rotate(-90deg)}.map-page .legend-body{padding-bottom:.3rem}.map-page .legend-toggle[aria-expanded=false]+.legend-body{display:none}.map-page .legend-scale{display:flex;flex-direction:column;gap:.25rem}.map-page .legend-row{display:flex;align-items:center;gap:.5rem}.map-page .legend-swatch{width:14px;height:14px;border-radius:3px;flex-shrink:0;border:1px solid rgba(28,27,24,.18)}.map-page .legend-label{color:var(--muted);font-variant-numeric:tabular-nums}.map-page .search-bar{position:absolute;top:var(--chrome-top);left:50%;transform:translate(calc(-50% - var(--sp-w) / 2));transition:transform .26s ease,width .26s ease;width:min(100% - var(--sp-w) - 2 * var(--space-3),1200px);z-index:26;display:flex;gap:var(--space-2);align-items:flex-start;pointer-events:none}.map-page .search-bar>*{pointer-events:auto}.map-page .search-bar .search-box{flex:1;box-shadow:var(--glass-shadow)}.map-page .tool-cluster{position:relative}.map-page .layers-toggle{z-index:25;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius);padding:.6rem;font-size:.85rem;color:var(--sumi);cursor:pointer;min-height:44px;min-width:44px}.map-page .layers-toggle svg{width:18px;height:18px}.map-page .layers-toggle[aria-expanded=true]{border-color:var(--shu);color:var(--shu)}.map-page .layers-popover{position:absolute;right:0;top:calc(100% + var(--space-2));z-index:27;width:19rem;max-width:calc(100vw - 2 * var(--space-3));padding:var(--space-3);background:var(--glass);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius);display:none}.map-page .layers-popover.is-open{display:block}.map-page .search-box{position:relative;display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--hairline);border-radius:var(--radius);padding:.5rem .7rem;background:var(--paper)}.map-page .search-box svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}.map-page .search-box input{border:none;outline:none;background:none;width:100%;font-size:.9rem;min-height:28px}.map-page .search-results{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--paper);border:1px solid var(--hairline);border-radius:var(--radius);box-shadow:var(--glass-shadow);max-height:16rem;overflow-y:auto;z-index:30}.map-page .search-results.is-open{display:block}.map-page .search-result-item{all:unset;display:flex;justify-content:space-between;gap:var(--space-2);padding:.6rem .8rem;font-size:.85rem;cursor:pointer;width:100%;box-sizing:border-box}.map-page .search-result-item:hover{background:var(--paper-deep)}.map-page .search-result-item.is-static{cursor:default;color:var(--muted)}.map-page .sri-name{color:var(--sumi)}.map-page .sri-pop{color:var(--muted);font-variant-numeric:tabular-nums}.map-page .layer-row{display:flex;align-items:center;gap:var(--space-2)}.map-page .layer-row input[type=checkbox]{width:18px;height:18px}.map-page .layer-row .dot{width:10px;height:10px;border-radius:50%}.map-page .layer-row label{font-size:.9rem;color:var(--sumi-soft)}.map-page .layer-source{font-size:.75rem;color:var(--muted);margin-top:.2rem;margin-left:1.6rem}.map-page .scrim{position:absolute;inset:0;z-index:34;background:#1c1b1840;opacity:0;pointer-events:none;transition:opacity .2s ease}.map-page .scrim.is-open{opacity:1;pointer-events:auto}.map-page .sidepanel{position:absolute;top:0;right:0;bottom:0;z-index:35;width:var(--sp-width);max-width:92vw;background:var(--glass);border-left:1px solid var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));transform:translate(100%);transition:transform .26s ease;display:flex;flex-direction:column}.map-page .sidepanel.is-open{transform:translate(0)}.map-page .sp-rail-toggle{position:absolute;top:50%;right:0;z-index:36;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:26px;height:60px;padding:0;cursor:pointer;color:var(--sumi-soft);background:var(--glass);border:1px solid var(--glass-border);border-right:none;border-radius:var(--radius) 0 0 var(--radius);box-shadow:var(--glass-shadow);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));transition:right .26s ease,color .16s ease}body.sp-open .map-page .sp-rail-toggle{right:var(--sp-width)}.map-page .sp-rail-toggle svg{width:16px;height:16px;transition:transform .2s ease}.map-page .sp-rail-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.map-page .sp-rail-toggle:hover,.map-page .sp-rail-toggle:focus-visible{color:var(--shu)}@keyframes sp-rail-breathe{0%,to{transform:translateY(-50%) translate(0)}50%{transform:translateY(-50%) translate(-4px)}}.map-page .sp-rail-toggle[aria-expanded=false]{animation:sp-rail-breathe 1.6s ease-in-out 3}.map-page .sp-rail-toggle:hover,.map-page .sp-rail-toggle:focus-visible{animation:none}.map-page .sp-header{padding:var(--space-4) var(--space-4) 0}.map-page .sp-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2)}.map-page .sp-title{font-size:1.4rem}.map-page .sp-subtitle{color:var(--muted);font-size:.85rem;margin-top:.2rem}.map-page .sp-close{background:none;border:none;cursor:pointer;color:var(--sumi);min-width:44px;min-height:44px}.map-page .sp-close svg{width:20px;height:20px}.map-page .sp-tabs{display:flex;gap:var(--space-4);padding:var(--space-3) var(--space-4) 0;border-bottom:1px solid var(--glass-border);margin-top:var(--space-3)}.map-page .sp-tab{font-size:.85rem;color:var(--muted);padding-bottom:var(--space-2);cursor:pointer;border-bottom:2px solid transparent}.map-page .sp-tab.active{color:var(--sumi);border-bottom-color:var(--shu)}.map-page .sp-body{flex:1;overflow-y:auto;padding:var(--space-4);position:relative}.map-page .sp-pane{display:none}.map-page .sp-pane.active{display:block}.map-page .kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.map-page .kpi-card{padding:var(--space-3);border:1px solid var(--glass-border);border-radius:var(--radius)}.map-page .kpi-card.primary{background:var(--paper-deep)}.map-page .kpi-label{font-size:.75rem;color:var(--muted)}.map-page .kpi-value{font-size:1.4rem;font-variant-numeric:tabular-nums;color:var(--sumi);margin-top:.2rem}.map-page .kpi-unit{font-size:.7rem;color:var(--muted);margin-left:.3rem}.map-page .sp-hint{font-size:.78rem;color:var(--muted);margin-top:var(--space-3)}.map-page .sp-section-title{font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-3)}.map-page .sp-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin-bottom:var(--space-2);font-size:.78rem}.map-page .sp-crumb{all:unset;cursor:pointer;color:var(--muted);padding:.15rem 0;border-bottom:1px solid transparent}.map-page .sp-crumb:hover,.map-page .sp-crumb:focus-visible{color:var(--shu);border-bottom-color:var(--shu)}.map-page .sp-crumb-sep{color:var(--hairline)}.map-page .sp-facts{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-3);margin-top:var(--space-4);font-size:.82rem}.map-page .sp-facts dt{color:var(--muted);text-transform:uppercase;font-size:.68rem;letter-spacing:.04em;padding-top:.2rem}.map-page .sp-facts dd{color:var(--sumi-soft);margin:0;overflow-wrap:anywhere}.map-page .sp-facts code{font-size:.95em;background:var(--paper-deep);padding:.05rem .3rem;border-radius:3px}.map-page .sp-facts a{color:var(--shu)}.map-page .sp-link{all:unset;cursor:pointer;color:var(--shu)}.map-page .sp-link:hover,.map-page .sp-link:focus-visible{text-decoration:underline}.map-page .child-list{display:flex;flex-direction:column}.map-page .child-item{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:.15rem;width:100%;padding:var(--space-2) 0;border-bottom:1px solid var(--glass-border);cursor:pointer;font-size:.85rem}.map-page .child-item:hover{background:var(--paper-deep)}.map-page .child-item.is-static{cursor:default;color:var(--muted);line-height:1.5}.map-page .child-item.is-static:hover{background:none}.map-page .child-item.is-static a{color:var(--shu)}.map-page .child-name{color:var(--sumi)}.map-page .child-meta{color:var(--muted);font-size:.76rem}.map-page .child-more{all:unset;cursor:pointer;color:var(--shu);font-size:.82rem;padding:var(--space-3) 0;text-align:center}.map-page .child-more:hover{text-decoration:underline}.map-page .place-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--glass-border);font-size:.85rem}.map-page .place-item.is-static{color:var(--muted)}.map-page .biz-card{display:grid;grid-template-columns:56px 1fr;gap:var(--space-2);width:100%;padding:var(--space-2) 0;border:0;border-bottom:1px solid var(--glass-border);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.map-page .biz-card:hover{background:#00000006}.map-page .biz-card:focus-visible{outline:2px solid var(--accent, #b3261e);outline-offset:-2px}.map-page .bc-photo{width:56px;height:56px;border-radius:8px;object-fit:cover;background:var(--glass-border);flex:none}.map-page .bc-photo.is-broken,.map-page .bc-photo.is-empty{object-fit:none;background:var(--glass-border)}.map-page .bc-body{display:flex;flex-direction:column;gap:2px;min-width:0}.map-page .bc-name{font-size:.88rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map-page .bc-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.76rem;color:var(--muted);min-width:0}.map-page .bc-rating{display:inline-flex;align-items:center;gap:3px;color:var(--fg);font-variant-numeric:tabular-nums}.map-page .bc-star{color:#e8a33d}.map-page .bc-reviews,.map-page .bc-cat{color:var(--muted)}.map-page .bc-street{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.map-page .bc-sep{color:var(--glass-border)}.map-page .bc-price{letter-spacing:.02em}.map-page .bc-open.is-open{color:#1d7a4c}.map-page .bc-open.is-closed{color:#a33}.map-page .bc-open.is-permanent{color:var(--muted);text-decoration:line-through}.map-page .place-sheet{position:absolute;inset:0;background:var(--panel-bg, #faf8f3);overflow-y:auto;z-index:3;padding:var(--space-3)}.map-page .place-sheet[hidden]{display:none}.map-page .ps-back{border:0;background:none;font:inherit;color:var(--muted);cursor:pointer;padding:0 0 var(--space-2);font-size:.8rem}.map-page .ps-back:hover{color:var(--fg)}.map-page .ps-hero{width:100%;height:150px;object-fit:cover;border-radius:10px;background:var(--glass-border);display:block;margin-bottom:var(--space-3)}.map-page .ps-name{font-size:1.05rem;line-height:1.3}.map-page .ps-sub{font-size:.78rem;color:var(--muted);margin-top:4px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.map-page .ps-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-3) 0}.map-page .ps-action{font-size:.78rem;padding:.4rem .7rem;border:1px solid var(--glass-border);border-radius:999px;text-decoration:none;color:var(--fg);white-space:nowrap}.map-page .ps-action:hover{border-color:var(--fg)}.map-page .ps-section{margin-top:var(--space-3)}.map-page .ps-section h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:var(--space-1)}.map-page .ps-hours{font-size:.78rem}.map-page .ps-hours div{display:flex;justify-content:space-between;gap:var(--space-2);padding:2px 0}.map-page .ps-hours .is-today{font-weight:600}.map-page .ps-hours .ps-day{color:var(--muted)}.map-page .ps-hist{font-size:.72rem;display:flex;flex-direction:column;gap:3px}.map-page .ps-hist-row{display:grid;grid-template-columns:1.2rem 1fr 2.6rem;gap:6px;align-items:center}.map-page .ps-hist-bar{height:6px;border-radius:3px;background:var(--glass-border);overflow:hidden}.map-page .ps-hist-fill{height:100%;background:#e8a33d;display:block}.map-page .ps-hist-n{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.map-page .ps-review{border-top:1px solid var(--glass-border);padding:var(--space-2) 0;font-size:.78rem}.map-page .ps-review-head{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:.72rem}.map-page .ps-review-text{margin-top:4px;line-height:1.5}.map-page .place-name{color:var(--sumi-soft)}.map-page .chip{font-size:.7rem;color:var(--ai);background:#2c4a6b1a;padding:.15rem .5rem;border-radius:999px}.map-page .retry-link{background:none;border:none;color:var(--shu);cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}.map-page .muted{color:var(--muted);font-size:.85rem}.map-page .toast{position:absolute;left:50%;bottom:var(--space-4);transform:translate(calc(-50% - var(--sp-w) / 2),12px);z-index:40;background:var(--sumi);color:var(--paper);padding:.6rem 1rem;border-radius:var(--radius);font-size:.85rem;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.map-page .toast.is-open{opacity:1;transform:translate(calc(-50% - var(--sp-w) / 2))}.map-page .place-card{display:flex;flex-direction:column;gap:.35rem}.map-page .pc-name{font-weight:600;font-size:.9rem;color:var(--sumi);line-height:1.3}.map-page .pc-family{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--muted)}.map-page .pc-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.map-page .pc-meta{font-size:.78rem;color:var(--sumi-soft)}.map-page .pc-address{font-size:.75rem;color:var(--muted);line-height:1.4}.map-page .pc-area{align-self:flex-start;margin-top:.15rem;background:none;border:none;padding:0;font:inherit;font-size:.78rem;color:var(--shu);text-decoration:underline;cursor:pointer}@media (min-width: 1360px){.map-page .scrim{display:none}}@media (max-width: 960px){.map-page .search-bar{width:calc(100% - 2 * var(--space-2))}.map-page .layers-popover{max-height:calc(100vh - var(--chrome-top) - var(--space-3));overflow-y:auto}}@media (max-width: 1359px){.map-page .sidepanel{top:var(--chrome-top)}}@media (max-width: 768px){.map-page .search-bar{width:calc(100% - 2 * var(--space-2))}.map-page .sidepanel{width:100%;max-width:100%}.map-page .legend{width:10.5rem;left:var(--space-2);bottom:var(--space-2)}body.sp-open .map-page .sp-rail-toggle{display:none}}@media (prefers-reduced-motion: reduce){.map-page .sidepanel,.map-page .map-shell,.map-page .search-bar,.map-page .sp-rail-toggle,.map-page .sp-rail-toggle svg,.map-page .legend-toggle .caret,.map-page .scrim,.map-page .toast{transition:none}.map-page .sp-rail-toggle[aria-expanded=false]{animation:none}}
