#my-map { display:block; height:clamp(360px,61vh,680px); width:100%; min-width:0; background:#e7eeea; border-block:1px solid #d7e0da; font-family:inherit; z-index:0; }
#my-map-panel { margin-block:1.5rem; border:1px solid #d7e0da; border-radius:1.2rem; background:#fff; box-shadow:0 12px 36px #163c2510; overflow:hidden; }
#my-map-panel[hidden] { display:none; }
.my-map-heading { padding:1.25rem 1.4rem .5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.my-map-heading h2 { margin:0; font-family:Georgia,serif; font-size:1.65rem; color:#0b4837; }
.my-map-heading .eyebrow { margin:0 0 .35rem; font-size:.7rem; }
.my-map-toolbar { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; padding:.7rem 1.4rem 1rem; }
.my-map-toolbar .button,.my-map-heading .button { min-height:44px; padding:.55rem .8rem; font-size:.85rem; }
.my-map-help { flex:1; min-width:11rem; font-size:.8rem; color:#566b60; }
.my-map-footer { padding:.9rem 1.4rem; }
.my-map-footer p { margin:.6rem 0 0; font-size:.85rem; }
.my-map-legend { display:flex; flex-wrap:wrap; gap:.5rem 1rem; font-size:.75rem; color:#415d50; }
.my-map-legend>span { display:inline-flex; align-items:center; gap:.4rem; }
.legend-dot { display:inline-block; width:.65rem; height:.65rem; border-radius:50%; }
.legend-masjid { background:#087956; }.legend-surau { background:#bb7c14; }.legend-other { background:#596ca4; }
#my-map .leaflet-control-zoom { border:0; box-shadow:0 2px 12px #12392730; border-radius:.65rem; overflow:hidden; }
#my-map .leaflet-control-zoom a { width:44px; height:44px; line-height:44px; color:#104633; font-size:26px; }
#my-map .leaflet-control-attribution { background:#fffffff2; color:#31473b; font-size:10px; padding:3px 6px; }
#my-map .leaflet-control-attribution a { color:#174e3b; }
#my-map .leaflet-popup-content-wrapper { border-radius:.9rem; box-shadow:0 7px 30px #173a3030; }
#my-map .leaflet-popup-content { margin:16px 18px; line-height:1.45; }
#my-map a.leaflet-popup-close-button { width:32px; height:32px; font-size:24px; padding:2px; }
.my-popup { display:grid; gap:.5rem; padding:0 .2rem; min-width:170px; }
.my-popup-category { text-transform:uppercase; letter-spacing:.1em; font-size:10px; font-weight:700; color:#587161; }
.my-popup-name { font-family:Georgia,serif; font-size:20px; color:#0b4837; padding-inline-end:.6rem; }
#my-map .my-popup p { margin:0; font-size:12px; color:#56665d; }
#my-map .my-popup-link { display:flex; align-items:center; justify-content:center; min-height:42px; padding:.5rem .7rem; border-radius:.5rem; background:#086b4f; color:#fff; font-size:12px; font-weight:700; text-decoration:none; margin-top:.3rem; }
#my-map .my-popup-claim { display:flex; align-items:center; min-height:32px; justify-content:center; color:#096549; font-size:11px; }
.my-marker { background:transparent; border:0; }
.my-marker-pin { width:32px; height:32px; display:grid; place-items:center; background:#087956; color:white; border:2px solid white; border-radius:50% 50% 50% 4px; transform:rotate(-45deg); box-shadow:0 2px 6px #13352655; }
.my-marker-pin svg { transform:rotate(45deg); max-width:none; }
.my-marker-surau .my-marker-pin { background:#ad7416; }.my-marker-other .my-marker-pin { background:#596ca4; }
.my-marker:focus .my-marker-pin,.my-marker:hover .my-marker-pin { outline:3px solid #162e25; outline-offset:2px; }
.my-cluster { display:grid; place-items:center; border:5px solid #a8d3bc; border-radius:50%; background:#0d7652; color:#fff; box-shadow:0 2px 8px #163c2538; font-size:13px; font-weight:750; font-family:system-ui,sans-serif; }
.my-cluster-medium { border-color:#8bc5a7; background:#086644; }.my-cluster-large { border-color:#72b897; background:#084f36; }
.my-cluster:focus,.my-cluster:hover { outline:2px solid #122f23; outline-offset:2px; }
#my-map-panel.is-expanded { position:fixed; inset:12px; z-index:10000; margin:0; display:flex; flex-direction:column; border-radius:1rem; box-shadow:0 0 0 20px #0b271de8; }
#my-map-panel.is-expanded #my-map { flex:1; min-height:200px; height:auto; }
.my-map-expanded { overflow:hidden; }
#my-results { margin-block:1.5rem; }#my-results a { position:relative; z-index:1; }
#my-pagination { padding:1.5rem 0; }
#my-pagination a,.malaysia-invitation a { min-height:44px; display:inline-flex; align-items:center; }
#malaysia-filters select,#my-radius { min-height:44px; max-width:100%; padding:.6rem; border:1px solid #bdcec5; border-radius:.6rem; background:white; color:#123b2c; }
.malaysia-invitation { margin:1.5rem auto; max-width:76rem; }
.donation-field { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0; border-block:1px solid #e0e8e2; color:#51665b; font-size:.85rem; }
.donation-value { color:#8c9b92; font-size:1.1rem; }
@media(max-width:600px){.my-map-heading{padding:1rem 1rem .25rem;gap:.5rem}.my-map-heading h2{font-size:1.35rem}.my-map-heading .eyebrow{font-size:.6rem}.my-map-toolbar{padding:.6rem 1rem .8rem}.my-map-help{font-size:.7rem}.my-map-footer{padding:.8rem 1rem}#my-map-panel.is-expanded{inset:4px;border-radius:.75rem}.is-expanded .my-map-footer .privacy-note{display:none}#my-map{height:440px}}
.coordinate-note { color:#6a5730; font-size:.8rem; }
.my-popup-precision { display:block; border-radius:.4rem; background:#fff4d8; color:#745619; padding:.35rem .45rem; font-size:10px; }
.my-marker-approximate .my-marker-pin { border-style:dashed; }

body.world-map-mode{overflow:hidden;height:100dvh;margin:0}
body.world-map-mode>header.site-header,body.world-map-mode>footer.site-footer{display:none}
body.world-map-mode main#main-content{margin:0;padding:0;max-width:none}
.world-map-page{position:fixed;inset:0;height:100dvh;overflow:hidden;z-index:100;background:#dce9e7;color:#123b2c;font-family:system-ui,sans-serif}
.world-map-page *{box-sizing:border-box}
.world-topbar{position:absolute;inset:0 0 auto;z-index:500;display:flex;align-items:center;gap:16px;height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));background:#fffffff5;border-bottom:1px solid #ccd9d1}
.world-topbar h1{font:600 17px system-ui,sans-serif;margin:0;flex:1}.world-topbar a{display:flex;align-items:center;min-height:44px;font-size:14px;color:#13533f}.world-brand{font-weight:800;text-decoration:none;letter-spacing:.04em}
.world-map-page #my-map-panel{position:absolute;inset:calc(56px + env(safe-area-inset-top)) 0 0;margin:0;border:0;border-radius:0;box-shadow:none}
.world-map-page #my-map{height:100%;min-height:0;max-height:none;border:0}
.world-search{position:absolute;z-index:500;top:calc(68px + env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));width:min(720px,calc(100% - 24px));padding:6px;border:1px solid #ccd9d1;border-radius:12px;background:#fffffff0;box-shadow:0 3px 16px #173a3020;backdrop-filter:blur(8px)}
.world-primary-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.65fr) auto auto;gap:6px}.world-search input,.world-search select{width:100%;min-width:0;min-height:44px;border:1px solid #bdcec5;border-radius:7px;padding:8px;background:white;color:#123b2c;font:14px system-ui,sans-serif}.world-map-page .button,.world-map-page button{min-height:44px;padding:8px 12px;font-size:13px;border-radius:7px}.world-advanced{display:block;margin:0}.world-advanced summary,.world-map-info summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:8px;font-size:13px}.world-advanced summary:after{content:' ▾';margin-left:6px}.world-advanced[open] summary:after{content:' ▴'}.world-advanced[open]{grid-column:1/-1}.world-advanced-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:6px 2px 4px}.world-advanced-fields label{font-size:12px}.world-marker-key{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 16px;padding:2px;font-size:11px;color:#496155}.world-marker-key span{display:inline-flex;align-items:center;gap:6px}.world-marker-key span:before{content:'';width:10px;height:10px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #bdcec5}.marker-key-imin:before{background:#12634b}.marker-key-public:before{background:#9a5c13}.marker-key-group:before{background:#334c45}.world-count{display:inline-block;margin-left:12px;font-size:12px;color:#496155}
.world-map-dock{position:absolute;z-index:500;right:max(12px,env(safe-area-inset-right));bottom:calc(126px + env(safe-area-inset-bottom));display:flex;gap:6px}.world-map-dock button{background:#fff;border:1px solid #bdcec5;box-shadow:0 2px 8px #173a3020}
.world-map-status{position:absolute;z-index:500;left:max(12px,env(safe-area-inset-left));bottom:calc(75px + env(safe-area-inset-bottom));font-size:12px;max-width:calc(100% - 85px);padding:5px 8px;background:#fffffff0;border-radius:6px}.world-map-status:has(#my-status:empty){display:none}.world-map-status button[hidden]{display:none}
.world-map-info{position:absolute;z-index:501;left:max(12px,env(safe-area-inset-left));bottom:calc(25px + env(safe-area-inset-bottom));background:#fffffff5;border:1px solid #bdcec5;border-radius:8px;max-width:min(330px,calc(100% - 80px));font-size:12px}.world-map-info>div{padding:0 12px 12px;max-height:40dvh;overflow:auto}.world-map-info p{margin:0 0 8px}.world-map-info summary{padding:8px 12px}.world-map-credit{position:absolute;z-index:500;left:12px;bottom:calc(3px + env(safe-area-inset-bottom));font-size:10px;background:#fffffff0;padding:2px 4px;white-space:nowrap}.world-map-credit a,.world-map-info a{color:#13533f}
.world-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.world-map-page .leaflet-bottom{bottom:calc(25px + env(safe-area-inset-bottom))}.world-map-page .leaflet-control-attribution{max-width:240px}
@media(max-width:600px){.world-primary-filters{grid-template-columns:minmax(0,1fr) auto auto}.world-primary-filters input{grid-column:1/-1}.world-primary-filters select{grid-column:1}.world-primary-filters button{padding-inline:9px}.world-advanced summary{padding-inline:7px}.world-advanced-fields{grid-template-columns:1fr}.world-topbar{gap:12px}.world-map-dock{bottom:calc(126px + env(safe-area-inset-bottom))}.world-search{max-width:420px}}

.world-map-mode #my-map{background:#dceaf0}.world-map-mode .my-cluster{border-width:2px;border-color:#fff;background:#12654e;box-shadow:0 2px 7px #123b2c30;font-size:12px}.world-map-mode .my-cluster-medium,.world-map-mode .my-cluster-large{border-color:#fff;background:#12654e}.world-map-mode #my-map .leaflet-control-attribution{font-size:9px;background:#ffffffe6;padding:2px 5px}.world-map-mode .world-land-outline{vector-effect:non-scaling-stroke}.world-map-mode .leaflet-tile-pane{opacity:0;transition:opacity .18s ease}.world-map-mode .street-tiles-ready .leaflet-tile-pane{opacity:1}

.world-map-mode #my-map .leaflet-worldLand-pane svg{max-width:none!important;max-height:none!important;overflow:visible}.world-topbar{width:100%;max-width:none;margin:0}.world-search{max-height:calc(100dvh - 92px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
.world-map-page #masjid-map{display:block;width:100%;height:100%;min-height:0;background:#dceaf0;font-family:inherit;z-index:0}
#masjid-map .leaflet-worldLand-pane svg{max-width:none!important;max-height:none!important;overflow:visible}
#masjid-map .leaflet-control-zoom{border:0;box-shadow:0 2px 12px #12392730;border-radius:8px;overflow:hidden}
#masjid-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;color:#104633;font-size:26px}
#masjid-map .leaflet-top{top:170px}#masjid-map .leaflet-control-attribution{font-size:9px;background:#ffffffe6;max-width:240px}
#masjid-map .leaflet-popup-content{font:13px/1.45 system-ui,sans-serif;max-height:45dvh;overflow:auto}#masjid-map .leaflet-popup-content h3{font-size:16px;margin:0 0 8px}#masjid-map .leaflet-popup-content p{margin:7px 0}#masjid-map a{color:#13533f}#masjid-map .cluster-count{background:none;border:0;box-shadow:none;color:white;font-weight:700;font-size:12px}#masjid-map .cluster-count:before{display:none}
.world-results{position:absolute;z-index:501;right:max(12px,env(safe-area-inset-right));bottom:calc(25px + env(safe-area-inset-bottom));background:#fffffff5;border:1px solid #bdcec5;border-radius:8px;width:min(350px,calc(100% - 24px));font-size:13px}.world-results:not([open]){width:auto}.world-results summary{min-height:44px;display:flex;align-items:center;padding:8px 12px;cursor:pointer}.world-results-content{padding:0 12px 12px;max-height:48dvh;overflow:auto;overscroll-behavior:contain}.world-results ol{list-style:none;margin:0;padding:0}.world-results li{padding:10px 0;border-top:1px solid #d7e0da}.world-results li button{width:100%;text-align:left;background:white;border:1px solid #bdcec5;color:#13533f;font-weight:600}.world-results p{margin:5px 0}.world-results small{color:#496155}.world-map-status{bottom:calc(78px + env(safe-area-inset-bottom));max-width:min(600px,calc(100% - 24px));pointer-events:none}#map-load-status:not([hidden]){display:block;margin-top:4px}.world-map-dock{bottom:calc(126px + env(safe-area-inset-bottom))}.world-map-page [hidden]{display:none!important}
@media(max-width:520px){#masjid-map .leaflet-top{top:215px}.world-results[open]{max-width:calc(100% - 24px)}.world-map-status{font-size:11px}.world-map-credit{font-size:8px}.world-topbar h1{font-size:16px}}

.world-selection:empty{display:none}
.world-selection{position:absolute;z-index:502;right:max(12px,env(safe-area-inset-right));bottom:calc(78px + env(safe-area-inset-bottom));width:min(360px,calc(100% - 24px));max-height:48dvh;overflow:auto;overscroll-behavior:contain;padding:14px;background:#fffffff8;border:1px solid #bdcec5;border-radius:12px;box-shadow:0 4px 24px #173a3030;overflow-wrap:anywhere;font-size:12px}
.world-selection h3{font-size:19px;line-height:1.2;margin:8px 0}.world-selection p{margin:8px 0}.world-selection a{color:#13533f}.world-selection .eyebrow{font-size:10px;margin-top:0}.world-selection .showcase-close{float:right;background:#fff;border:1px solid #bdcec5;color:#13533f;min-height:36px;padding:6px 8px;margin:0 0 8px 8px}
.showcase-actions{display:flex;gap:8px;margin:12px 0}.showcase-actions button{flex:1;border:1px solid #13533f;background:#13533f;color:#fff}.showcase-actions button:last-child{background:#fff;color:#13533f}.showcase-link-label{display:grid;gap:6px;font-size:11px}.showcase-url{width:100%;min-width:0;min-height:42px;border:1px solid #bdcec5;border-radius:6px;padding:8px;background:#f8faf7;font-size:11px;color:#13533f}.showcase-share-status:empty{display:none}
.world-map-page:has(.world-selection:not(:empty)) .world-map-status,.world-map-page:has(.world-selection:not(:empty)) .world-map-dock{visibility:hidden}
.world-map-page:has(.world-selection:not(:empty)) .world-results,.world-map-page:has(.world-selection:not(:empty)) .world-map-info{display:none}

.world-results[open],.world-map-info[open]{bottom:calc(78px + env(safe-area-inset-bottom))}
.world-map-page:has(.world-results[open],.world-map-info[open]) .world-map-status,.world-map-page:has(.world-results[open],.world-map-info[open]) .world-map-dock{visibility:hidden}

/* Unified discovery sheets */
.map-sheet{backdrop-filter:blur(12px)}
.sheet-handle:before{content:'';display:none;width:42px;height:4px;margin:0 auto 10px;border-radius:999px;background:#b8c9c1}
.world-selection{max-height:min(58dvh,560px);padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:18px;box-shadow:0 12px 40px #102f2540}
.world-selection:focus{outline:none}.world-selection:focus-visible{box-shadow:0 12px 40px #102f2540,0 0 0 3px #7fb6a3}
.world-selection .showcase-heading{margin:5px 0 3px;font-size:22px;letter-spacing:-.015em;color:#0b4837}
.world-selection .showcase-location{margin:0 0 7px;color:#294d40;font-size:13px}
.world-selection .showcase-coordinates{margin:0 0 5px;color:#63776d;font-size:11px}
.world-selection .showcase-trust{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eaf3ee;color:#315c4d;font-size:10px}
.showcase-primary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 10px}
.showcase-primary-actions>a,.showcase-primary-actions>button{display:flex;align-items:center;justify-content:center;min-height:46px;padding:8px;border:1px solid #12634b;border-radius:10px;background:#12634b;color:#fff!important;font-size:13px;font-weight:700;text-decoration:none}
.showcase-primary-actions>button:last-child{background:#fff;color:#12634b!important}
.showcase-secondary-links{padding-top:10px;border-top:1px solid #dce7e1;line-height:1.8;color:#6d8077}
.showcase-link-label{margin-top:10px}.showcase-url{border-radius:9px;background:#f3f7f4}
.selected-location-pin{filter:drop-shadow(0 0 5px #fff) drop-shadow(0 3px 7px #0b392f80);animation:selected-pulse 1.8s ease-out infinite}
@keyframes selected-pulse{0%,100%{stroke-width:3}50%{stroke-width:6}}
.results-loading .world-results-content{min-width:260px}.result-skeleton{height:62px;margin:9px 0;border:0!important;border-radius:10px;background:linear-gradient(100deg,#edf3ef 30%,#f8fbf9 45%,#edf3ef 60%);background-size:220% 100%;animation:sheet-shimmer 1.2s linear infinite}
@keyframes sheet-shimmer{to{background-position-x:-220%}}
@media(prefers-reduced-motion:reduce){.selected-location-pin,.result-skeleton{animation:none}}

@media(max-width:600px){
 .sheet-handle:before{display:block}
 .world-selection,.world-results[open],.world-map-info[open]{position:absolute;z-index:503;inset:auto max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left));width:auto;max-width:none;margin:0;border-radius:20px 20px 0 0;border-bottom:0;background:#fffffff8;box-shadow:0 -10px 40px #102f2538}
 .world-selection{right:max(8px,env(safe-area-inset-right));bottom:0;max-height:58dvh;padding:10px 16px calc(14px + env(safe-area-inset-bottom))}
 .world-results[open],.world-map-info[open]{bottom:0;padding-top:10px;max-height:58dvh;overflow:hidden}
 .world-results[open]>summary,.world-map-info[open]>summary{font-size:16px;font-weight:750;padding:4px 16px 10px}
 .world-results-content,.world-map-info>div{max-height:calc(58dvh - 58px);padding:0 16px calc(16px + env(safe-area-inset-bottom));overflow:auto}
 .world-results:not([open]),.world-map-info:not([open]){z-index:504}
 .world-map-page:has(.world-results[open]) .world-map-info:not([open]),.world-map-page:has(.world-map-info[open]) .world-results:not([open]){top:184px;bottom:auto}
 .world-results[open] .world-results-content,.world-map-info[open]>div{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
 .world-results li button{min-height:48px;border-radius:10px;padding:10px 12px}
 .world-selection .showcase-close{min-height:40px;border-radius:10px}
 .world-selection .showcase-heading{font-size:21px}
}
@media(max-height:600px) and (min-width:601px){.world-selection{bottom:12px;max-height:calc(100dvh - 82px);padding:10px 12px}.world-selection .showcase-heading{font-size:18px}.world-selection .showcase-primary-actions{margin:9px 0 7px}.world-selection .showcase-primary-actions>*{min-height:44px}}
