diff --git a/library/components/legends/LegendMobile.vue b/library/components/legends/LegendMobile.vue index b70e41623..b274bae81 100644 --- a/library/components/legends/LegendMobile.vue +++ b/library/components/legends/LegendMobile.vue @@ -32,10 +32,16 @@ useShadowStyles(` pointer-events:none with the root — nothing here is tappable and it must never eat a map drag. The scrim keeps it legible over an arbitrary basemap without becoming another panel. */ .approx-pin-note--floating{position:absolute;inset-inline:0;bottom:calc(var(--legend-sheet-h,0px) + 6px);z-index:1001;margin:0 10px !important;text-align:center;pointer-events:none;text-shadow:0 1px 2px rgba(255,255,255,0.85);} -/* The note's own text colour flips with `dark`, so the scrim has to flip with it: a white halo - behind light text is a smear, not legibility. Same reason the note takes `dark` at all. */ +/* The note's own text colour flips with the dark prop, so the scrim has to flip with it: a white + halo behind light text is a smear, not legibility. (No backticks in this comment: the whole + block is a JS template literal and a backtick would end it — which is what it just did.) */ .approx-pin-note--floating-dark{text-shadow:0 1px 2px rgba(0,0,0,0.85);} .legend-sheet-root>*{pointer-events:auto;} +/* ...except the floating note. The rule above re-enables pointer events for every direct child of + the root, at the same specificity as the note's own rule and AFTER it, so it was winning and the + note would have swallowed a map drag across the full width just above the sheet. It is text with + nothing tappable in it; stated here, after the rule that would otherwise override it. */ +.legend-sheet-root>.approx-pin-note--floating{pointer-events:none;} /* ── Attribution stays visible (driver bug 2026-09-16) ── The sheet is a bottom overlay, so the engine's bottom-left logo / bottom-right