/* Public map only. Desktop and admin retain their existing layout and data. */
.explorer-page{grid-template-rows:auto auto minmax(0,1fr) auto}
.explorer-page .map-touch-hint{margin:0;padding:9px 12px;font:600 14px/1.4 system-ui,sans-serif;color:#35594b;background:#f4f7ef}
.explorer-page .explorer-map-link{display:none}
.explorer-page .directory-map-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:8px 8px 0 0;padding:8px 12px;border:1px solid #8ca68e;border-radius:6px;background:#edf4ed;color:#224d37;font:650 14px/1.4 system-ui;cursor:pointer}
.explorer-page :is(button,a):focus-visible{outline:3px solid #9c4837;outline-offset:3px}
.explorer-sheet:not([open]),.explorer-open[hidden]{display:none}
@media(max-width:900px){
 .explorer-page{height:100vh;height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr)}
 .explorer-page .explorer-header{min-height:52px;padding:8px 14px;gap:8px;flex-wrap:wrap}
 .explorer-page .explorer-home{font-size:14px;min-height:32px}
 .explorer-page .explorer-header h1{font-size:20px}
 .explorer-page .explorer-preview{display:none}
 .explorer-page .stage212-callout__inner{padding:7px 12px;gap:8px;justify-content:flex-start;flex-wrap:nowrap;font-size:14px}
 .explorer-page .stage212-callout img{display:block;width:40px;height:40px}
 .explorer-page .stage212-callout p{flex:1;min-width:0}
 .explorer-page .stage212-callout p span{font-size:12px;line-height:1.4}
 .explorer-page .stage212-callout a{display:flex;align-items:center;flex:0 0 66px;min-height:44px;white-space:normal;justify-content:center;text-align:center;font-size:13px;padding:6px;line-height:1.35}
 .explorer-page .explorer-main{display:block;padding:0;min-height:0;position:relative}
 .explorer-page .explorer-map,.explorer-page .map-shell{height:100%;min-height:0}
 .explorer-page .map-shell{border:0;border-radius:0;overflow:hidden;position:relative}
 .explorer-page #map-content{position:absolute;inset:0;flex:none;height:100%;min-height:0;max-height:none}
 .explorer-page #map-svg{height:100%;width:100%;touch-action:none}
 .explorer-page .north{font-size:13px;top:10px;right:10px;padding:7px}
 .explorer-page .map-touch-hint{position:absolute;z-index:2;top:10px;left:10px;margin:0;padding:7px 10px;border:1px solid #c9d5cb;border-radius:20px;background:#fffdf4ed;font-size:12px;pointer-events:none}
 .explorer-page .event-empty{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}
 .explorer-page .explorer-open{position:fixed;z-index:4;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:58px;max-width:calc(100% - 32px);width:330px;padding:15px 22px;border:2px solid #fff7df;border-radius:18px;background:#164c38;color:white;box-shadow:0 5px 24px #12352b55;font:750 17px/1.35 system-ui,sans-serif;cursor:pointer}
 .explorer-open span{font-size:24px}
 .explorer-sheet[open]{position:fixed;inset:auto 0 0;margin:0 auto;display:flex;flex-direction:column;box-sizing:border-box;width:100%;max-width:700px;height:min(780px,88dvh);max-height:88dvh;padding:0;border:0;border-radius:22px 22px 0 0;background:#fffdf6;color:#164332;box-shadow:0 -10px 40px #163b3940;overflow:hidden;animation:explorer-rise .2s ease-out}
 .explorer-sheet::backdrop{background:#113b35aa}
 .explorer-sheet-handle{width:42px;height:5px;border-radius:3px;background:#b6c7ba;margin:10px auto 2px;flex-shrink:0}
 .explorer-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 16px;flex-shrink:0}
 .explorer-sheet-header h2{font:400 26px/1.2 Georgia,serif;margin:0}
 .explorer-sheet-header button{min-width:72px;min-height:46px;padding:10px;border:1px solid #b8cabc;border-radius:8px;background:#eff4eb;color:#184e37;font:700 15px/1.2 system-ui;cursor:pointer}
 .explorer-sheet-body{flex:1;min-height:0;display:flex;overflow:hidden}
 .explorer-page .event-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 12px;background:#fffdf6}
 .explorer-page .event-filters button{display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:4px 5px;min-width:0;min-height:64px;padding:8px 4px;font-size:15px;line-height:1.3;border-radius:8px;border-width:1px}
 .explorer-page .event-filters .legend-dot{display:none}
 .explorer-page .event-filters [data-count]{width:100%;font-size:14px;font-weight:600;line-height:1.25}
 .explorer-page .event-filters button[aria-pressed=true] [data-count]{color:inherit}
 .explorer-page .explorer-list{height:100%;width:100%;margin:0;border:0;border-radius:0;min-height:0;overflow:hidden}
 .explorer-page .explorer-list-heading{display:none}
 .explorer-page .explorer-list-hint{display:block;padding:8px 16px 12px;font-size:14px;line-height:1.4;flex-shrink:0}
 .explorer-page .event-directory{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 10px 20px;touch-action:pan-y;-webkit-overflow-scrolling:touch}
 .explorer-page .directory-category-heading{font-size:13px;letter-spacing:1px;padding:12px 6px 10px}
 .explorer-page .directory-row{font-size:17px;line-height:1.4;min-height:80px;padding:10px 6px;gap:12px}
 .explorer-page .directory-thumb{width:56px;height:56px;border-radius:8px}
 .explorer-page .directory-row-arrow{font-size:22px}
 .explorer-page .directory-detail{padding:0 12px 18px;font-size:16px;line-height:1.6;overflow-wrap:anywhere}
 .explorer-page .directory-detail p{margin:8px 0}
 .explorer-page .directory-detail a,.explorer-page .directory-market-link,.explorer-page .directory-map-link{display:inline-flex;align-items:center;min-height:46px;padding:10px 12px;font-size:15px;line-height:1.45;margin:8px 6px 0 0}
 .explorer-page .crawl-details,.explorer-page .market-directory-summary{font-size:16px;line-height:1.5;margin:8px 6px 14px}
 .explorer-page .market-directory-summary a{display:flex;align-items:center;min-height:48px;color:#1d553e;font-weight:700}
 .explorer-page .crawl-details strong{font-size:17px}
 .explorer-page .crawl-details-note{font-size:14px}
 .explorer-page .explorer-footer{min-height:44px;padding:4px 12px;padding-bottom:calc(4px + env(safe-area-inset-bottom));gap:5px 14px;flex-wrap:wrap;font-size:12px;line-height:1.4}
 .explorer-page .explorer-footer a,.explorer-page .explorer-footer>a:last-child{display:inline-flex;align-items:center;min-height:40px;font-size:13px}
 .explorer-page .explorer-footer>span{display:inline;max-width:none;text-align:left;line-height:1.4}
}
@media(max-width:380px){
 .explorer-page .explorer-header h1{font-size:18px}
 .explorer-page .event-filters{gap:6px;padding:6px 10px}
 .explorer-page .event-filters button{font-size:14px;min-height:60px}
 .explorer-page .event-filters [data-count]{font-size:13px}
 .explorer-sheet-header h2{font-size:23px}
}
@media(max-width:900px) and (max-height:500px){
 .explorer-page .stage212-callout__inner{padding:3px 12px}
 .explorer-page .stage212-callout img{width:32px;height:32px}
 .explorer-sheet[open]{height:96dvh;max-height:96dvh}
 .explorer-sheet-handle{display:none}
 .explorer-sheet-header{padding:4px 12px}
 .explorer-page .explorer-list-hint{display:none}
 .explorer-page .event-filters button{min-height:44px;padding:4px;font-size:14px;flex-wrap:nowrap}
 .explorer-page .event-filters [data-count]{width:auto;font-size:13px}
 .explorer-page .explorer-footer{padding:0 12px;min-height:40px}
}
@keyframes explorer-rise{from{transform:translateY(35%);opacity:.4}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.explorer-sheet[open]{animation:none}}
@media(max-width:900px){
 .explorer-sheet-links{flex-shrink:0;border-top:1px solid #cad5c7;background:#f1f5ed;padding-bottom:env(safe-area-inset-bottom)}
 .explorer-sheet-links summary{display:list-item;min-height:44px;padding:12px 16px;box-sizing:border-box;font:650 14px/1.4 system-ui;color:#24553d;cursor:pointer}
 .explorer-sheet-links summary:focus-visible{outline:3px solid #9c4837;outline-offset:-3px}
}
@media(max-width:900px) and (max-height:650px){
 .explorer-sheet[open]{height:96dvh;max-height:96dvh}
 .explorer-page .explorer-list-hint{display:none}
}
