:root { color-scheme:dark; }
html, body { width:100%; height:100%; margin:0; overflow:hidden; }
.btc-map-page { background:var(--page-bg,#101112); color:var(--text,#f4f4f1); }
.btc-map-shell { position:fixed; inset:0 0 29px; overflow:hidden; }
.btc-map { position:absolute; inset:0; background:#d8dad8; }
.btc-map-shell > h1 { position:absolute; z-index:4; top:17px; left:50%; translate:-50% 0; max-width:calc(100vw - 170px); margin:0; color:#fff; font-size:1rem; font-weight:650; letter-spacing:0; text-shadow:0 2px 12px #000; }
.btc-map-search { position:absolute; z-index:4; top:72px; left:50%; translate:-50% -5px; display:flex; width:min(540px,calc(100vw - 28px)); min-height:46px; overflow:hidden; border:1px solid rgba(255,255,255,.32); border-radius:6px; background:rgba(14,16,16,.91); box-shadow:0 9px 30px rgba(0,0,0,.35); opacity:0; scale:.97; pointer-events:none; backdrop-filter:blur(13px); transform-origin:top center; transition:opacity 180ms ease,scale 180ms ease,translate 180ms ease; }
.btc-map-search.is-open { translate:-50% 0; opacity:1; scale:1; pointer-events:auto; }
.btc-map-search__field { display:flex; flex:1; align-items:center; gap:10px; min-width:0; padding-left:13px; color:var(--text-muted,#bec1be); }
.btc-map-search__field i { flex:0 0 auto; font-size:1rem; }
.btc-map-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#fff; font:inherit; font-size:.86rem; }
.btc-map-search input::placeholder { color:#b9bdb9; opacity:1; }
.btc-map-search button { width:44px; flex:0 0 44px; border:0; border-left:1px solid rgba(255,255,255,.14); background:transparent; color:#e7e9e6; cursor:pointer; }
.btc-map-search button:hover,.btc-map-search button:focus-visible { color:var(--accent,#f2a900); outline:0; background:rgba(255,255,255,.06); }
.btc-map-icon { width:32px; height:32px; display:grid; place-items:center; padding:0; border:0; background:transparent; color:var(--text-muted,#c8cbc8); cursor:pointer; font:inherit; font-size:18px; }
.btc-map-icon:hover,.btc-map-icon:focus-visible { color:var(--accent,#f2a900); outline:3px solid var(--focus,#f2a900); outline-offset:2px; }
.btc-map-account,.btc-map-search-toggle { position:absolute; z-index:2200; top:calc(23px + env(safe-area-inset-top)); border-radius:50%; background:rgba(14,16,16,.34); color:#f3f4f2; box-shadow:0 2px 9px rgba(0,0,0,.14); backdrop-filter:blur(4px); }
.btc-map-account { right:max(124px,calc(108px + env(safe-area-inset-right))); }
.btc-map-search-toggle { right:max(174px,calc(158px + env(safe-area-inset-right))); }
.btc-map-search-toggle[aria-expanded="true"] { color:var(--accent,#f2a900); }
.btc-map-account.is-connected { color:#75d699; }
body.btc-map-page :is(.site-help-trigger,.site-help-companion.site-help-companion--icon) { top:calc(23px + env(safe-area-inset-top)) !important; width:32px !important; height:32px !important; min-width:32px !important; min-height:32px !important; border-radius:50% !important; background:rgba(14,16,16,.34) !important; color:#f3f4f2 !important; font-size:18px !important; box-shadow:0 2px 9px rgba(0,0,0,.14) !important; backdrop-filter:blur(4px); }
body.btc-map-page :is(.site-help-trigger,.site-help-companion.site-help-companion--icon) .lni { font-size:18px !important; }
body.btc-map-page :is(.site-help-trigger,.site-help-companion.site-help-companion--icon):hover,
body.btc-map-page :is(.site-help-trigger,.site-help-companion.site-help-companion--icon):focus-visible { color:var(--accent,#f2a900) !important; }
.btc-map-heat-overlay { position:absolute; z-index:1; inset:0; width:100%; height:100%; overflow:hidden; pointer-events:none !important; }
.btc-map-heat-overlay.is-hidden { display:none; }
.btc-map-heat-overlay * { pointer-events:none !important; }
.btc-map-heat-cell { pointer-events:none; }
.btc-map-heat-cell polygon { fill-opacity:.46; stroke:#fff1c5; stroke-width:1.1; stroke-opacity:.7; vector-effect:non-scaling-stroke; transition:fill-opacity 140ms ease; }
.btc-map-heat-cell text { fill:#18130b; stroke:rgba(255,255,255,.72); stroke-width:2.4px; paint-order:stroke fill; text-anchor:middle; dominant-baseline:central; font:700 12px var(--site-font,"Roboto Mono",monospace); pointer-events:none; }
.btc-map-results,.btc-map-details { position:absolute; z-index:5; top:132px; bottom:48px; width:min(370px,calc(100vw - 28px)); overflow:hidden; border:1px solid var(--border,#444); border-radius:7px; background:color-mix(in srgb,var(--surface,#1b1d1d) 94%,transparent); box-shadow:0 18px 45px rgba(0,0,0,.42); backdrop-filter:blur(14px); }
.btc-map-results { left:14px; display:grid; grid-template-rows:auto minmax(0,1fr); }
.btc-map-results[hidden],.btc-map-details[hidden] { display:none; }
.btc-map-results header { display:flex; align-items:baseline; justify-content:space-between; gap:15px; padding:15px; border-bottom:1px solid var(--border,#444); }
.btc-map-results h2 { margin:0; font-size:.94rem; }
.btc-map-results header span { color:var(--text-muted,#bec1be); font-size:.75rem; }
.btc-map-result-list { overflow:auto; overscroll-behavior:contain; }
.btc-map-result { width:100%; display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; padding:13px 15px; border:0; border-bottom:1px solid var(--border,#3d4140); background:transparent; color:var(--text,#fff); text-align:left; cursor:pointer; }
.btc-map-result:hover,.btc-map-result:focus-visible { outline:0; background:var(--surface-raised,#262929); }
.btc-map-result > i { margin-top:2px; color:var(--accent,#f2a900); font-size:1.05rem; }
.btc-map-result strong,.btc-map-result span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.btc-map-result strong { font-size:.8rem; }
.btc-map-result span { margin-top:4px; color:var(--text-muted,#bec1be); font-size:.75rem; }
.btc-map-details { right:14px; overflow:auto; padding:22px; }
.btc-map-close { position:absolute; top:8px; right:8px; width:36px; height:36px; display:grid; place-items:center; padding:0; border:0; background:transparent; color:var(--text-muted,#c8cbc8); cursor:pointer; font-size:1.2rem; }
.btc-map-close:hover,.btc-map-close:focus-visible { color:var(--accent,#f2a900); outline:0; }
.btc-map-place-icon { width:42px; height:42px; display:grid; place-items:center; margin-bottom:14px; border:1px solid color-mix(in srgb,var(--accent,#f2a900) 55%,transparent); border-radius:50%; color:var(--accent,#f2a900); font-size:1.15rem; }
.btc-map-save { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; min-height:40px; margin:0 0 17px; border:1px solid var(--border,#444); border-radius:5px; background:transparent; color:var(--text,#fff); font:inherit; font-size:.78rem; cursor:pointer; }
.btc-map-save:hover,.btc-map-save:focus-visible,.btc-map-save.is-saved { border-color:var(--accent,#f2a900); color:var(--accent,#f2a900); outline:0; }
.btc-map-details h2 { margin:0 42px 7px 0; font-size:1.15rem; line-height:1.25; }
.btc-map-details address,.btc-map-details p { margin:0 0 13px; color:var(--text-muted,#c4c7c4); font-size:.76rem; line-height:1.55; font-style:normal; }
.btc-map-verified { display:inline-flex; align-items:center; gap:6px; margin-bottom:17px; color:#75d699; font-size:.75rem; }
.btc-map-verified.is-stale { color:var(--text-muted,#bec1be); }
.btc-map-facts { display:grid; gap:0; margin:0 0 18px; border-top:1px solid var(--border,#444); }
.btc-map-facts > div { display:grid; grid-template-columns:92px minmax(0,1fr); gap:12px; padding:10px 0; border-bottom:1px solid var(--border,#444); }
.btc-map-facts dt { color:var(--text-muted,#bec1be); font-size:.75rem; }
.btc-map-facts dd { margin:0; overflow-wrap:anywhere; color:var(--text,#fff); font-size:.75rem; }
.btc-map-links { display:flex; flex-wrap:wrap; gap:8px; }
.btc-map-links a { display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:7px 10px; border:1px solid var(--border,#444); border-radius:5px; color:var(--text,#fff); text-decoration:none; font-size:.75rem; }
.btc-map-links a:hover,.btc-map-links a:focus-visible { border-color:var(--accent,#f2a900); color:var(--accent,#f2a900); outline:0; }
.btc-map-comments { margin-top:18px; padding-top:14px; border-top:1px solid var(--border,#444); }
.btc-map-comments h3 { margin:0 0 10px; font-size:.78rem; }
.btc-map-comments blockquote { margin:0 0 10px; padding-left:10px; border-left:2px solid var(--accent,#f2a900); color:var(--text-muted,#bec1be); font-size:.75rem; line-height:1.45; }
.btc-map-status { position:absolute; z-index:4; bottom:13px; left:50%; translate:-50% 0; max-width:min(80vw,560px); padding:7px 10px; border:1px solid rgba(255,255,255,.22); border-radius:5px; background:rgba(13,15,15,.84); color:#eceeeb; font-size:.75rem; text-align:center; backdrop-filter:blur(10px); }
.btc-map-account-dialog { width:min(430px,calc(100vw - 28px)); max-height:min(620px,calc(100dvh - 28px)); margin:auto; padding:24px; overflow:auto; border:1px solid var(--border,#444); border-radius:8px; background:var(--surface,#1b1d1d); color:var(--text,#fff); box-shadow:0 24px 70px rgba(0,0,0,.58); }
.btc-map-account-dialog::backdrop { background:rgba(0,0,0,.68); backdrop-filter:blur(3px); }
.btc-map-account-dialog h2 { margin:0 42px 10px 0; font-size:1.05rem; }
.btc-map-account-dialog > p { color:var(--text-muted,#bec1be); font-size:.78rem; line-height:1.5; }
.btc-map-dialog-close { position:absolute; top:12px; right:12px; width:36px; height:36px; display:grid; place-items:center; border:0; background:transparent; color:var(--text-muted,#bec1be); font-size:1.2rem; cursor:pointer; }
.btc-map-dialog-close:hover,.btc-map-dialog-close:focus-visible { color:var(--accent,#f2a900); outline:2px solid var(--focus,#f2a900); }
.btc-map-account-actions { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 12px; }
.btc-map-account-actions button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:40px; padding:8px 12px; border:1px solid var(--border,#444); border-radius:5px; background:transparent; color:var(--text,#fff); font:inherit; font-size:.78rem; cursor:pointer; }
.btc-map-account-actions .btc-map-primary { border-color:var(--accent,#f2a900); color:var(--accent,#f2a900); }
.btc-map-account-status { min-height:1.5em; }
.btc-map-account-status.is-error { color:#ff7c72; }
.btc-map-favorites { margin-top:18px; padding-top:15px; border-top:1px solid var(--border,#444); }
.btc-map-favorites h3 { margin:0 0 10px; font-size:.85rem; }
.btc-map-favorites button { width:100%; display:flex; align-items:center; gap:9px; padding:10px 0; border:0; border-bottom:1px solid var(--border,#444); background:transparent; color:var(--text,#fff); text-align:left; font:inherit; font-size:.78rem; cursor:pointer; }
.btc-map-favorites button i { color:var(--accent,#f2a900); }
.btc-map-account-dialog .btc-map-account-note { margin:17px 0 0; font-size:.75rem; }
.btc-map-page .maplibregl-ctrl-bottom-left { bottom:25px; }
.btc-map-page .maplibregl-ctrl-attrib { color:#222; font-size:12px; }
.btc-map-page .maplibregl-ctrl-attrib a { color:#111; }
.btc-map-page .maplibregl-ctrl-group { border-radius:5px; box-shadow:0 3px 16px rgba(0,0,0,.28); }
.btc-map-page .maplibregl-popup-content { border:1px solid #555; border-radius:5px; background:#171919; color:#fff; font:12px var(--site-font,"Roboto Mono",monospace); }
.btc-map-page .maplibregl-popup-tip { border-top-color:#171919; }
@media (max-width:700px) {
  .btc-map-shell { inset-bottom:31px; }
  .btc-map-shell > h1 { top:14px; font-size:.9rem; }
  .btc-map-search { top:66px; }
  .btc-map-results,.btc-map-details { top:auto; right:8px; bottom:45px; left:8px; width:auto; max-height:min(58dvh,480px); }
  .btc-map-details { padding:19px; }
  .btc-map-status { bottom:9px; max-width:72vw; }
}
@media (max-width:520px) {
  .btc-map-shell > h1 { display:none; }
}
