.pra-map-station { border:0; background:none; display:grid; place-items:center; --station-select:#40bdff; }
.pra-map-station-disc { position:relative; display:block; width:22px; height:22px; border-radius:50%; background:linear-gradient(150deg,#737b7e,#24292b 64%); box-shadow:0 0 0 1px #101315,0 2px 2px #0009,0 5px 9px #0004; transition:transform .18s ease-out,box-shadow .18s ease-out; }
.pra-map-station-disc::after { content:''; position:absolute; inset:-3px; border:1.5px solid var(--station-select); border-radius:inherit; opacity:0; transform:scale(.9); transition:opacity .16s,transform .18s; pointer-events:none; }
.pra-map-station-symbol { display:block; width:100%; height:100%; overflow:visible; }
.pra-map-station-plate { fill:#272d30; stroke:#919b9f55; stroke-width:.6; vector-effect:non-scaling-stroke; }
.pra-map-station-rim { fill:none; stroke:#f4f7f87a; stroke-width:.65; vector-effect:non-scaling-stroke; }
.pra-map-station-glyph { fill:none; stroke:#e3e9ea; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.pra-map-station-signal { fill:none; stroke:var(--station-risk,#84979e); stroke-width:2.6; stroke-linecap:round; }
.pra-map-station.is-source .pra-map-station-disc { width:28px; height:28px; border-radius:8px; }
#view-map.studio-workspace .pra-map-station:is(:hover,:focus-visible,.is-selected) { outline:none; box-shadow:none; }
.pra-map-station:is(:hover,:focus-visible) .pra-map-station-disc { transform:scale(1.12); box-shadow:0 0 0 1px #111719,0 2px 3px #000a,0 5px 12px #0006; }
.pra-map-station:is(:focus-visible,.is-selected) .pra-map-station-disc::after { opacity:1; transform:scale(1); }
.pra-map-station.is-selected .pra-map-station-disc { box-shadow:0 0 0 1px #101719,0 2px 5px #0009,0 0 9px #249fff38; }
.pra-map-station:is(:hover,:focus-visible,.is-selected) .pra-map-station-plate { fill:#343d42; stroke:#b9c9d185; }
.pra-map-station.is-selected .pra-map-station-glyph { stroke:#eefaff; }
.pra-map-station.is-outside { opacity:.38; }
#pf-map .leaflet-tooltip { color:#cfdee7; background:#25323bec; border:1px solid #6e8a9d66; box-shadow:inset 0 1px #ffffff17,0 3px 7px #0006; }
#pf-map .pra-station-tooltip { padding:9px 12px; border:1px solid #555f6480; border-radius:9px; background:linear-gradient(145deg,#363d40fa,#252b2efa); box-shadow:inset 0 1px #ffffff10,0 4px 12px #0006; }
#pf-map .pra-station-tooltip::before { border-top-color:#2c3336; }
.pra-station-tooltip-name { display:block; color:#e2e9ed; font:550 12px/1.4 var(--sans); }
.pra-station-tooltip-meta { display:block; margin-top:2px; color:#a0b1bb; font:10px/1.4 var(--sans); }
#pf-legend .pra-map-symbol-key { display:inline-block; width:22px; height:22px; flex:none; vertical-align:middle; }
@media(prefers-reduced-motion:reduce) { .pra-map-station-disc,.pra-map-station-disc::after { transition:none; } }
/* Alternative map inks only; the original scientific ramp remains the default. */
:root[data-map-palette=bright] { --map-heat-0:#85939c; --map-heat-1:#b17e6d; --map-heat-2:#a1644d; --map-heat-3:#91513b; --map-heat-4:#7f402d; --map-heat-5:#6e3021; --map-heat-6:#5d2115; }
:root[data-map-palette=blue] { --map-heat-0:#85939c; --map-heat-1:#548eab; --map-heat-2:#3e7e9e; --map-heat-3:#296d90; --map-heat-4:#175b80; --map-heat-5:#0c4e75; --map-heat-6:#06416a; }
@media(prefers-color-scheme:dark) {
  :root[data-map-palette=bright]:not([data-theme]) { --map-heat-1:#96584b; --map-heat-2:#ba6b50; --map-heat-3:#da815a; --map-heat-4:#f59b68; --map-heat-5:#ffb77e; --map-heat-6:#ffd2a3; }
  :root[data-map-palette=blue]:not([data-theme]) { --map-heat-1:#3a7893; --map-heat-2:#3c94b5; --map-heat-3:#3bacd6; --map-heat-4:#48bfff; --map-heat-5:#86d5ff; --map-heat-6:#c0edff; }
}
:root[data-map-palette=bright][data-theme=dark] { --map-heat-1:#96584b; --map-heat-2:#ba6b50; --map-heat-3:#da815a; --map-heat-4:#f59b68; --map-heat-5:#ffb77e; --map-heat-6:#ffd2a3; }
:root[data-map-palette=blue][data-theme=dark] { --map-heat-1:#3a7893; --map-heat-2:#3c94b5; --map-heat-3:#3bacd6; --map-heat-4:#48bfff; --map-heat-5:#86d5ff; --map-heat-6:#c0edff; }
:root[data-map-palette=bright][data-map-base=satellite] { --map-heat-1:#96584b; --map-heat-2:#ba6b50; --map-heat-3:#da815a; --map-heat-4:#f59b68; --map-heat-5:#ffb77e; --map-heat-6:#ffd2a3; }
:root[data-map-palette=blue][data-map-base=satellite] { --map-heat-1:#3a7893; --map-heat-2:#3c94b5; --map-heat-3:#3bacd6; --map-heat-4:#48bfff; --map-heat-5:#86d5ff; --map-heat-6:#c0edff; }
:root[data-map-palette=blue] #pf-map .pra-map-station { --station-select:#eefaff; }
#view-map #pf-svc[data-overview-loading=true] .studio-service-copy::after { content:'Preparing detail'; display:block; margin-top:1px; color:#8196a3; font:8px/1.2 var(--sans); }

/* Satellite imagery, labels and original risk colors remain unchanged.
   The width comparison lives in the native route/service stroke settings. */
:root {
  --pra-satellite-ground:none;
  --pra-satellite-labels:none;
  --pra-satellite-label-opacity:.85;
  --pra-satellite-ink:none;
  --pra-satellite-marker-shadow:0 0 0 1px #101315,0 2px 2px #0009,0 5px 9px #0004;
  --pra-satellite-study-dim:.26;
}
#pf-map .pra-map-imagery,.geo-bg[data-base=satellite] { filter:var(--pra-satellite-ground); }
/* Real street-scale pixels, styled only within their own basemap layer. Circuit
   risk colors, labels, selection and service endpoints retain their native ink. */
#pf-map .pra-map-plain-detail { filter:grayscale(1) invert(1) brightness(.8) contrast(.65); }
.geo-bg[data-base=satellite] .geo-dim { opacity:var(--pra-satellite-study-dim); }
#pf-map .pra-map-imagery-labels { filter:var(--pra-satellite-labels); opacity:var(--pra-satellite-label-opacity)!important; }
#pf-map.pf-sat .leaflet-overlay-pane>canvas,#pf-map.pf-sat .pf-svc { filter:var(--pra-satellite-ink); }
#pf-map.pf-sat .pra-map-station:not(.is-selected) .pra-map-station-disc { box-shadow:var(--pra-satellite-marker-shadow); }
.pra-map-magnifier { position:absolute; inset:0; width:100%; height:100%; z-index:450; pointer-events:none; overflow:hidden; }
#pf-map.pra-map-magnifying,#pf-map.pra-map-magnifying canvas { cursor:pointer; }
#pf-map.pra-map-magnifying .leaflet-tooltip { visibility:hidden; }
.pra-map-magnify-tip { position:fixed; z-index:1600; max-width:min(320px,calc(100vw - 20px)); padding:9px 12px; border:1px solid #555f6480; border-radius:9px; color:#d9e5eb; background:linear-gradient(145deg,#363d40fa,#252b2efa); box-shadow:inset 0 1px #ffffff10,0 4px 12px #0006; font:11px/1.5 var(--sans); overflow-wrap:anywhere; pointer-events:none; }
.pra-map-magnify-tip small { display:block; margin-top:3px; color:#9db0bc; font-size:10px; }
.pra-map-magnify-tip[hidden] { display:none; }

/* A quiet source strip; complete, live layer attribution stays in its disclosure. */
#pf-map .pra-map-credits { display:flex; align-items:center; gap:5px; margin:0; padding:2px 7px; border-radius:6px 0 0 0; background:#202628ed; color:#a6b4bc; font:10px/20px var(--sans); box-shadow:inset 0 1px #ffffff09; }
#pf-map .pra-map-credits a { color:#bac7ce; text-decoration:none; white-space:nowrap; }
#pf-map .pra-map-credits a:hover { color:#f1f7fa; text-decoration:underline; text-underline-offset:3px; }
#pf-map .pra-map-credits button { display:flex; align-items:center; gap:4px; margin:0 0 0 3px; padding:0 5px; border:0; border-left:1px solid #6d7b814d; border-radius:0 3px 3px 0; background:none; color:#c6d4dc; font:inherit; cursor:pointer; box-shadow:none; }
#pf-map .pra-map-credits button:is(:hover,[aria-expanded=true]) { background:#ffffff0c; color:#edf6fa; }
.pra-map-credits svg,.pra-map-credits-panel svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
#pf-map .pra-map-credits :is(a,button):focus-visible { outline:0; border-radius:3px; background:#364a55; box-shadow:inset 0 0 0 1px #9bd9ff80; color:#e9f7ff; }
.pra-map-credits-panel { position:fixed; z-index:3000; box-sizing:border-box; padding:14px 16px 16px; border:1px solid #535e6466; border-radius:12px; background:linear-gradient(145deg,#303739,#22282b); color:#bac8d0; box-shadow:inset 0 1px #ffffff0b,0 10px 28px #0007,0 2px 5px #0008; overflow-y:auto; overflow-wrap:anywhere; outline:none; }
.pra-map-credits-panel[hidden] { display:none; }
.pra-map-credits-panel header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.pra-map-credits-panel h2 { margin:0; color:#dce6ec; font:600 12px/1.5 var(--sans); }
.pra-map-credits-panel header button { display:grid; place-items:center; flex:none; width:26px; height:26px; padding:0; border:0; border-radius:6px; background:#151b1e55; color:#afbdc5; cursor:pointer; box-shadow:inset 0 1px 3px #0005; }
.pra-map-credits-panel header button:hover { background:#11181a99; color:#eef7fc; }
.pra-map-credits-panel header button:focus-visible { outline:0; color:#dff3ff; box-shadow:inset 0 0 0 1px #88c5eb80,inset 0 2px 5px #0008; }
.pra-map-credits-panel .leaflet-control-attribution { float:none; clear:none; margin:0; padding:0; background:none; border-radius:0; color:#b0bec7; font:11px/1.9 var(--sans); }
.pra-map-credits-panel .leaflet-control-attribution a { color:#d3e4ee; text-decoration:underline; text-decoration-color:#8195a055; text-underline-offset:3px; }
.pra-map-credits-panel .leaflet-control-attribution a:hover { color:#fff; text-decoration-color:currentColor; }
