:root{--bg:#eef3f1;--surface:#fff;--ink:#14251e;--muted:#56675f;--line:#d3ded9;--accent:#0a7556;--accent-2:#2f6ca8;--ok:#1d7f48;--bad:#a8423a;--on-accent:#fff;--font-display:"Rubik", "PT Sans", system-ui, sans-serif;--font-body:"PT Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1714;--surface:#16221d;--ink:#e4ede9;--muted:#9aaca4;--line:#2a3933;--accent:#3dbb8c;--accent-2:#6ea5e2;--ok:#52c485;--bad:#e2827a;--on-accent:#08130f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e1714;--surface:#16221d;--ink:#e4ede9;--muted:#9aaca4;--line:#2a3933;--accent:#3dbb8c;--accent-2:#6ea5e2;--ok:#52c485;--bad:#e2827a;--on-accent:#08130f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{touch-action:none;-webkit-tap-highlight-color:transparent;outline-offset:1px;overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-container img.leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-control{z-index:800;pointer-events:auto;float:left;clear:both;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:0}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:0}.leaflet-zoom-animated{transform-origin:0 0}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-dragging .leaflet-grab{cursor:move}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive{pointer-events:auto}.leaflet-bar{border-radius:8px;overflow:hidden;box-shadow:0 1px 4px #0000004d}.leaflet-bar a{background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line);text-align:center;width:34px;height:34px;line-height:34px;font:600 18px/34px var(--font-display);text-decoration:none;display:block}.leaflet-bar a:last-child{border-bottom:none}.leaflet-control-attribution{background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--muted);padding:1px 6px;font-size:11px}.leaflet-control-attribution a{color:var(--muted)}.pin-wrap{background:0 0;border:none}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:16px/1.45 var(--font-body);grid-template-rows:auto 1fr;display:grid}#root{display:contents}button,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}header{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:var(--accent);border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}.brand-mark svg{width:20px;height:20px;fill:var(--on-accent)}.brand h1{font:600 20px/1.1 var(--font-display);margin:0}.brand p{color:var(--muted);margin:0;font-size:13px}.header-controls{align-items:center;gap:8px;display:flex}.lang{border:1px solid var(--line);border-radius:10px;display:flex;overflow:hidden}.lang button{background:var(--bg);cursor:pointer;height:36px;color:var(--muted);border:0;padding:0 12px;font-size:14px;font-weight:700}.lang button[aria-pressed=true]{background:var(--ink);color:var(--bg)}main{grid-template-columns:400px 1fr;min-height:0;display:grid}#panel{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;order:1;min-height:0;display:flex}#mapbox{order:2;min-height:0;position:relative}#map{background:var(--bg);position:absolute;inset:0}#map.no-tiles{background-color:var(--bg);background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:48px 48px}.map-note{z-index:1001;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:10px;max-width:520px;padding:8px 12px;font-size:14px;position:absolute;bottom:26px;left:12px;right:12px}.map-note[hidden]{display:none}.pick-hint{z-index:1001;background:var(--ink);color:var(--bg);white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;position:absolute;top:12px;left:50%;transform:translate(-50%)}.pick-hint[hidden]{display:none}#mapbox.picking #map{cursor:crosshair}.toolbar{border-bottom:1px solid var(--line);gap:10px;padding:14px 16px 10px;display:grid}.near-row{gap:8px;display:flex}.btn-primary{background:var(--accent);height:44px;color:var(--on-accent);font:600 16px var(--font-display);cursor:pointer;border:0;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn-primary svg{fill:currentColor;width:18px;height:18px}.btn-primary[disabled]{opacity:.7;cursor:progress}.btn-ghost{border:1px solid var(--line);cursor:pointer;height:44px;color:var(--muted);background:0 0;border-radius:12px;padding:0 14px}.btn-ghost[hidden]{display:none}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:14px;display:inline-flex}.chip:before{content:"";border:1.5px solid var(--muted);border-radius:4px;flex:none;width:14px;height:14px}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip[aria-pressed=true]:before{border-color:var(--bg);background:var(--bg);box-shadow:inset 0 0 0 3px var(--ink)}.summary{color:var(--muted);justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;display:flex}.notice{background:color-mix(in srgb, var(--bad) 12%, var(--surface));color:var(--ink);border-radius:10px;margin:0;padding:8px 12px;font-size:14px}.notice[hidden]{display:none}.demo-strip{color:var(--muted);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--accent-2) 8%, var(--surface));padding:8px 16px;font-size:12px}.scroll{flex:1;min-height:0;overflow-y:auto}#list{margin:0;padding:0;list-style:none}#list li+li{border-top:1px solid var(--line)}.row{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:36px 1fr auto;align-items:start;gap:12px;width:100%;padding:12px 16px;display:grid}.row:hover,.row.is-active{background:color-mix(in srgb, var(--accent) 7%, var(--surface))}.ico{border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.ico svg{width:20px;height:20px;fill:var(--on-accent)}.ico.mosque{background:var(--accent)}.ico.prayer_room{background:var(--accent-2)}.row-name{font:600 15px/1.3 var(--font-display)}.row-where{color:var(--muted);margin-top:2px;font-size:14px}.tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.tag{background:var(--bg);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 8px;font-size:12px}.row-side{text-align:right;justify-items:end;gap:4px;display:grid}.dist{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px;font-weight:700}.status{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.status.open{color:var(--ok);background:color-mix(in srgb, var(--ok) 13%, transparent)}.status.closed{color:var(--bad);background:color-mix(in srgb, var(--bad) 13%, transparent)}.empty{color:var(--muted);padding:24px 16px}#detail{align-content:start;gap:14px;padding:14px 16px 24px;display:grid}#listview{flex-direction:column;flex:1;min-height:0;display:flex}#detail[hidden],#listview[hidden],#detailwrap[hidden]{display:none}.back{color:var(--accent);cursor:pointer;background:0 0;border:0;justify-self:start;padding:4px 0;font-weight:700}.d-type{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.d-type .kind{font-weight:700}.demo-badge{border:1px dashed var(--muted);border-radius:6px;padding:1px 8px;font-size:12px}#detail h2{font:600 22px/1.2 var(--font-display);text-wrap:balance;margin:0}.photo{aspect-ratio:3;border:1px dashed var(--line);color:var(--muted);background:repeating-linear-gradient(45deg, var(--bg) 0 10px, transparent 10px 20px);border-radius:12px;place-items:center;font-size:14px;display:grid}.facts{background:var(--line);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.fact{background:var(--surface);padding:10px 12px}.fact.wide{grid-column:1/-1}.fact dt{color:var(--muted);font-size:12px}.fact dd{margin:2px 0 0;font-weight:700}.fact dd.yes{color:var(--ok)}.fact dd.no{color:var(--bad)}.routes h3{font:600 15px var(--font-display);margin:0 0 8px}.route-links{gap:8px;display:grid}.route-links a{border:1px solid var(--line);color:var(--ink);border-radius:12px;justify-content:space-between;align-items:center;padding:11px 14px;font-weight:700;text-decoration:none;display:flex}.route-links a:hover{border-color:var(--accent)}.route-links a span{color:var(--muted);font-weight:400}.pin{border:2px solid var(--surface);border-radius:50% 50% 50% 4px;place-items:center;width:34px;height:34px;transition:transform .15s;display:grid;transform:rotate(-45deg);box-shadow:0 2px 6px #00000059}.pin svg{fill:#fff;width:18px;height:18px;transform:rotate(45deg)}.pin.mosque{background:var(--accent)}.pin.prayer_room{background:var(--accent-2)}.pin.active{transform:rotate(-45deg)scale(1.25)}.me{background:#2b7fff;border:3px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 6px #2b7fff40}@media (width<=860px){main{grid-template-rows:40% 1fr;grid-template-columns:1fr}#mapbox{order:1}#panel{border-right:0;border-top:1px solid var(--line);order:2}header{padding:8px 16px}.brand p{display:none}}@media (prefers-reduced-motion:reduce){.pin,.leaflet-zoom-anim .leaflet-zoom-animated{transition:none}}.status.unknown{color:var(--muted);background:color-mix(in srgb, var(--muted) 13%, transparent)}.fact dd.unknown{color:var(--muted);font-weight:400}.add-btn{border:1px solid var(--accent);height:38px;color:var(--accent);font:600 14px var(--font-display);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.add-btn span[aria-hidden]{font-size:20px;line-height:1}@media (width<=480px){.add-btn{justify-content:center;width:38px;padding:0}.add-btn-text{display:none}}#formwrap[hidden]{display:none}.form{align-content:start;gap:14px;padding:14px 16px 24px;display:grid}.form h2{font:600 22px/1.2 var(--font-display);margin:0}.form h2:focus{outline:none}.form-intro{color:var(--muted);margin:0;font-size:14px}.field{gap:6px;display:grid}.field-label{font-size:13px;font-weight:700}.field-hint{color:var(--muted);font-size:12px;font-weight:400}p.field-hint{margin:-8px 0 0}.field input,.field textarea{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--ink);font:inherit;border-radius:10px;padding:10px 12px}.field textarea{resize:vertical}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:.8}.seg{border:1px solid var(--line);border-radius:10px;display:flex;overflow:hidden}.seg button{background:var(--bg);cursor:pointer;color:var(--muted);border:0;flex:1;padding:9px 6px;font-size:14px}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg);font-weight:700}.btn-ghost[aria-pressed=true]{border-color:var(--accent);color:var(--accent);font-weight:700}.point-ok{color:var(--ok);font-size:14px;font-weight:700}.hours-preview{color:var(--ok);margin:-8px 0 0;font-size:13px}.field-error{color:var(--bad);margin:-8px 0 0;font-size:13px}.choices{gap:6px;display:grid}.choice{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.choice:has(input:checked){border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.choice input{accent-color:var(--accent);margin:0}.form-actions{gap:8px;display:flex}.form-actions .btn-primary{flex:1}.captcha:empty{display:none}.thanks p{margin:0}.link-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;justify-self:start;padding:4px 0;font-size:14px;text-decoration:underline}.link-btn:hover{color:var(--ink)}.pin.draft{background:var(--ink);color:var(--bg);font:700 22px/1 var(--font-display)}.pin.draft span{transform:rotate(45deg)}.notice.offline{background:color-mix(in srgb, var(--accent-2) 12%, var(--surface))}.prayer{gap:8px;display:grid}.prayer-row{gap:8px;display:flex}.prayer-next{text-align:left;border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:12px;flex:1;grid-template-columns:1fr auto;gap:0 8px;min-width:0;padding:8px 12px;display:grid}.prayer-label{color:var(--muted);font-size:12px}.prayer-value{white-space:nowrap;text-overflow:ellipsis;grid-row:2;font-size:14px;overflow:hidden}.prayer-value strong{font-family:var(--font-display);color:var(--accent);font-weight:600}.chev{color:var(--muted);grid-area:1/2/3;align-self:center}.qibla-btn{cursor:pointer;border:1px solid var(--line);background:var(--bg);font:600 14px var(--font-display);color:var(--ink);border-radius:12px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.qibla-btn svg{width:16px;height:16px;fill:var(--accent);transform:rotate(-130deg)}.prayer-table{border:1px solid var(--line);border-radius:12px;gap:6px;padding:10px 12px;display:grid}.prayer-title{font:600 14px var(--font-display)}.prayer-table dl{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin:0;display:grid}.prayer-table dl>div{background:var(--bg);border-radius:8px;padding:6px 8px}.prayer-table dt{color:var(--muted);font-size:12px}.prayer-table dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.prayer-table .minor dd{color:var(--muted);font-weight:400}.prayer-table .is-next{outline:2px solid var(--accent)}.muted-small{color:var(--muted);margin:0;font-size:12px}.qibla-dial{border:2px solid var(--line);background:var(--bg);border-radius:50%;width:200px;height:200px;margin:4px auto;position:relative}.qibla-dial svg{width:calc(100% - 20px);height:calc(100% - 20px);transition:transform .2s;position:absolute;inset:10px}.qibla-dial .tip{fill:var(--accent)}.qibla-dial .tail{fill:var(--line)}.qibla-dial .north{text-align:center;font:700 13px var(--font-display);color:var(--bad);padding-top:4px;transition:transform .2s;position:absolute;inset:0}.qibla-deg{text-align:center;margin:0;font-size:15px}.qibla-deg strong{font:600 28px var(--font-display)}.qibla-line{stroke:var(--accent)}@media (prefers-reduced-motion:reduce){.qibla-dial svg,.qibla-dial .north{transition:none}}
