.cm{position:relative;height:calc(100dvh - 150px);min-height:540px;max-height:950px;background:#dce9e1;isolation:isolate;color:#10233b;font:14px/1.45 Inter,system-ui,sans-serif}.cm-canvas{position:absolute;inset:0}.cm-tools{position:absolute;top:16px;left:14px;right:14px;z-index:2;pointer-events:none}.cm-tools>*{pointer-events:auto}.cm-search{display:flex;gap:8px;background:#fff;border-radius:18px;padding:8px;box-shadow:0 8px 30px #10233b24}.cm-search input{min-width:0;width:100%;border:0;background:transparent;padding:10px;font:inherit}.cm button,.cm a{font:700 13px/1.3 Inter,system-ui,sans-serif;cursor:pointer}.cm button{border:0}.cm-search button,.cm-action{background:#0b3d2e;color:#fff;border-radius:12px;padding:10px 14px;text-decoration:none}.cm-filters{display:flex;gap:7px;overflow:auto;padding:10px 0;scrollbar-width:none}.cm-filters button{white-space:nowrap;background:#fff;border-radius:24px;padding:11px 15px;box-shadow:0 3px 10px #10233b18;color:#142640}.cm-filters button[aria-pressed=true]{background:#0b3d2e;color:#fff}.cm-controls{position:absolute;right:14px;top:138px;display:grid;gap:8px;z-index:2}.cm-controls button{width:48px;height:48px;border-radius:15px;background:#fff;color:#152644;box-shadow:0 4px 14px #10233b26;font-size:22px}.cm-area{position:absolute;top:140px;left:14px;z-index:2;background:white;color:#0b3d2e;padding:12px 16px;border-radius:24px;box-shadow:0 4px 14px #10233b26}.cm-panel{position:absolute;bottom:0;left:0;right:0;z-index:3;background:#fff;border-radius:28px 28px 0 0;max-height:39%;display:flex;flex-direction:column;box-shadow:0 -8px 32px #10233b1a;transition:max-height .2s}.cm-panel.expanded{max-height:76%}.cm-handle{background:#fff;color:#142640;border-radius:28px 28px 0 0;padding:12px;width:100%}.cm-handle:before{content:'';display:block;width:56px;height:5px;background:#d5d8dc;border-radius:8px;margin:0 auto 8px}.cm-summary{padding:0 18px 10px}.cm-summary h2{font-size:21px;margin:0 0 3px}.cm-status{font-size:12px;color:#536773}.cm-results{overflow:auto;overscroll-behavior:contain;padding:0 14px 18px;min-height:0}.cm-card{border:1px solid #e0e6e4;border-radius:17px;padding:13px;margin:0 0 9px;background:#fff}.cm-card.selected{border:2px solid #0b8051;background:#f1faf5}.cm-card h3{font:800 16px/1.3 Inter,system-ui,sans-serif;margin:0 0 4px}.cm-card p{font-size:12px;color:#536773;margin:4px 0}.cm-card button{background:#edf3ef;color:#0b3d2e;padding:9px 12px;border-radius:10px}.cm-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.cm-label{display:inline-block;color:#0b7049;font-size:11px;font-weight:800;margin-bottom:5px}.cm-empty{padding:16px;color:#536773}.cm-credit{font-size:11px;color:#68766e;margin-top:7px}.cm button:focus-visible,.cm a:focus-visible{outline:3px solid #f5b301;outline-offset:2px}.cm-portal{display:block;text-align:center;padding:13px;background:#0e1630;color:white;font:700 14px Inter,system-ui;text-decoration:none}.cm[hidden]{display:none}@media(min-width:700px){.cm-panel{left:16px;bottom:16px;width:360px;border-radius:24px;max-height:50%}.cm-panel.expanded{max-height:70%}.cm-tools{right:80px;max-width:620px}.cm-controls{top:18px}.cm-area{top:140px;left:auto;right:14px}.cm{min-height:620px}.cm-handle{border-radius:24px 24px 0 0}}@media(prefers-reduced-motion:reduce){.cm-panel{transition:none}}
.cm .cm-panel{bottom:0;height:39%;max-height:none;overflow:hidden;border-radius:28px 28px 0 0;transition:height .2s}
.cm .cm-panel.expanded{height:82%;max-height:none}
.cm .cm-panel.peek{height:56px;max-height:none}
.cm .cm-panel.dragging{transition:none}
.cm .cm-handle{flex:0 0 auto;min-height:56px;touch-action:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab}
.cm .cm-panel.dragging .cm-handle{cursor:grabbing}
.cm-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:#fff}
.cm .cm-results{overflow:visible}
.cm #shopCatalog{padding:0 14px 10px}
.cm .cm-panel [hidden]{display:none!important}
.cm-controls button:disabled,.cm-area:disabled{opacity:.6;cursor:wait}
@media(min-width:700px){.cm .cm-panel{height:50%}}
@media(prefers-reduced-motion:reduce){.cm .cm-panel{transition:none}}

/* Discovery actions belong to the sheet, not the map surface. */
.cm .cm-body .cm-tools{position:static;max-width:none;padding:12px 14px 0;pointer-events:auto}
.cm .cm-body .cm-nearby{position:static;margin:0 14px 12px;min-height:44px}
.cm .simple-map-buttons button{font-size:14px}

/* One responsive catalogue, with photos and map actions on the same card. */
.cm .cm-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;padding:14px;margin-bottom:16px}
.cm .cm-card h3,.cm .cm-card p{overflow-wrap:anywhere}
.cm .cm-card h3{font-size:18px}
.cm .cm-card .cm-cover{order:-1;position:relative;display:grid;place-items:center;flex:none;width:calc(100% + 28px);height:160px;margin:-14px -14px 14px;padding:0;border-radius:0;background:#e4f2ea;overflow:hidden}
.cm-cover-fallback{font-size:48px}
.cm .cm-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cm .cm-card .cm-shop-info{line-height:1.6;margin:6px 0}
.cm .cm-links{order:1}
.cm .cm-links>*{min-height:44px;display:inline-flex;align-items:center;justify-content:center;flex:1 1 auto}
.cm-search input{font-size:16px}
.cm-search button{flex-shrink:0}
.cm-body{overflow-x:hidden;scroll-padding:12px;padding-bottom:12px}
.cm .cm-panel{max-width:100%}
#shopDiscovery.cm{height:calc(100dvh - 128px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0;max-height:none}
#shopDiscovery .cm-panel{left:0;right:0;width:auto}
#shopDiscovery .loc{padding:0 0 10px;flex-wrap:wrap;font-size:12px}
#shopDiscovery .filterrow{padding:0;display:flex;flex-wrap:wrap;gap:8px}
body:has(#shopDiscovery) .top{height:calc(60px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);flex-shrink:0}
body:has(#shopDiscovery) .bottomnav{height:calc(68px + env(safe-area-inset-bottom))}
body:has(#shopDiscovery) #localsPwaLauncher{display:none!important}
/* The sheet can collapse to expose all four map controls on smaller screens. */
#shopDiscovery .simple-map-buttons{gap:8px;margin:12px 10px}
#shopDiscovery .simple-map-buttons button{width:44px;height:44px}
#shopDiscovery .simple-map-location{margin-top:8px}
@media(max-height:550px){#shopDiscovery .simple-map-buttons{display:grid;grid-template-columns:repeat(2,44px)}#shopDiscovery .simple-map-location{margin-top:0}}
