        /* ── Borough labels ──────────────────────────────────── */
        .borough-label {
            background: transparent !important;
            border: none !important;
            box-shadow: none !important;
            padding: 0 !important;
            color: var(--text-strong) !important;
            font-family: var(--font) !important;
            font-size: 9px !important;
            font-weight: 700 !important;
            letter-spacing: 2.5px !important;
            text-transform: uppercase !important;
            white-space: nowrap !important;
            pointer-events: none !important;
            text-shadow: 0 0 8px #fff, 0 0 5px #fff,
                1px 1px 0 #fff, -1px -1px 0 #fff !important;
        }

        .borough-label::before { display: none !important; }

        /* Orientation labels for the faint outside-NYC context — subordinate to
           the borough labels (smaller, muted). */
        .context-label {
            background: transparent !important;
            border: none !important;
            box-shadow: none !important;
            padding: 0 !important;
            color: #8a948f !important;
            font-family: var(--font) !important;
            font-size: 8px !important;
            font-weight: 600 !important;
            letter-spacing: 1.5px !important;
            text-transform: uppercase !important;
            white-space: nowrap !important;
            pointer-events: none !important;
            opacity: 0.75 !important;
            text-shadow: 0 0 6px #fff, 0 0 3px #fff,
                1px 1px 0 #fff, -1px -1px 0 #fff !important;
        }
        .context-label::before { display: none !important; }
        .context-label-water {
            color: #93acbd !important;
            font-style: italic !important;
            font-weight: 500 !important;
            letter-spacing: 1px !important;
            opacity: 0.6 !important;
        }

        /* ── Tooltips ────────────────────────────────────────── */
        .borough-tooltip,
        .navchan-tooltip {
            background: var(--popup-bg) !important;
            font-family: var(--font) !important;
            font-size: 10px !important;
            font-weight: 600 !important;
            letter-spacing: 1.2px !important;
            text-transform: uppercase !important;
            padding: 5px 10px !important;
            border-radius: 6px !important;
            box-shadow: var(--shadow) !important;
        }

        .borough-tooltip {
            border: 1px solid var(--accent) !important;
            color: var(--accent) !important;
        }

        .navchan-tooltip {
            border: 1px solid var(--grp-exclusion) !important;
            color: var(--grp-exclusion) !important;
        }

        .leaflet-tooltip-bottom.borough-tooltip::before,
        .leaflet-tooltip-top.borough-tooltip::before,
        .leaflet-tooltip-bottom.navchan-tooltip::before,
        .leaflet-tooltip-top.navchan-tooltip::before { display: none !important; }

        /* ── Coastal zone path (glow hook, neutral on light theme) ─ */
        .coastal-path { filter: none; pointer-events: none !important; }

        /* ── Observation popups ─────────────────────────────── */
        .obs-popup .leaflet-popup-content-wrapper {
            background: var(--popup-bg);
            border: 1px solid var(--panel-border);
            border-radius: 8px;
            box-shadow: var(--shadow);
            color: var(--popup-text);
            font-family: var(--font);
            font-size: 11px;
            line-height: 1.6;
        }
        .obs-popup .leaflet-popup-tip {
            background: var(--popup-bg);
        }
        .obs-popup .leaflet-popup-content { margin: 10px 14px; }
        .obs-popup strong {
            color: var(--popup-strong);
            font-size: 12px;
            display: block;
            margin-bottom: 2px;
            font-style: italic;
        }
        .obs-popup .obs-year {
            color: var(--text);
            margin-bottom: 2px;
        }
        .obs-popup .obs-source {
            color: var(--text-muted);
            font-size: 10px;
            display: block;
            margin-bottom: 5px;
        }
        .obs-popup .obs-links {
            margin-bottom: 5px;
        }
        .obs-popup a {
            color: var(--accent);
            text-decoration: none;
        }
        .obs-popup a:hover { text-decoration: underline; }
        .obs-popup .obs-thumb {
            display: block;
            max-width: 200px;
            max-height: 140px;
            border-radius: 4px;
            margin-top: 6px;
            border: 1px solid var(--panel-border);
        }
        .obs-popup .obs-credit {
            font-size: 9px;
            color: var(--text-faint);
            margin-top: 3px;
        }

        /* ── Coordinate readout ──────────────────────────────── */
        #coords {
            position: fixed;
            bottom: 14px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 1000;
            font-size: 10px;
            font-family: var(--font);
            color: var(--text-muted);
            letter-spacing: 1px;
            pointer-events: none;
            white-space: nowrap;
            text-shadow: 0 0 6px #fff, 0 0 3px #fff;
        }

        /* ── Parcel popups ───────────────────────────────────── */
        .parcel-popup .leaflet-popup-content-wrapper {
            background: var(--popup-bg);
            border: 1px solid var(--panel-border);
            border-radius: 8px;
            box-shadow: var(--shadow);
            color: var(--popup-text);
            font-family: var(--font);
            font-size: 11px;
            line-height: 1.6;
        }
        .parcel-popup .leaflet-popup-tip { background: var(--popup-bg); }
        .parcel-popup .leaflet-popup-content { margin: 10px 14px; }
        .parcel-popup .parcel-category {
            font-size: 9px;
            font-weight: 600;
            letter-spacing: 1.2px;
            text-transform: uppercase;
            margin-bottom: 3px;
        }
        .parcel-popup .parcel-name {
            color: var(--popup-strong);
            font-size: 12px;
            font-weight: 600;
            display: block;
            margin-bottom: 4px;
        }
        .parcel-popup .parcel-detail {
            font-size: 10px;
            color: var(--text-muted);
            margin-top: 1px;
        }
        .parcel-popup a {
            color: var(--grp-ownership);
            text-decoration: none;
        }
        .parcel-popup a:hover { text-decoration: underline; }

        /* ── Waterbody popups ─────────────────────────────────── */
        .waterbody-popup .leaflet-popup-content-wrapper {
            background: var(--popup-bg);
            border: 1px solid var(--panel-border);
            border-radius: 8px;
            box-shadow: var(--shadow);
            color: var(--popup-text);
            font-family: var(--font);
            font-size: 11px;
            line-height: 1.6;
        }
        .waterbody-popup .leaflet-popup-tip { background: var(--popup-bg); }
        .waterbody-popup .leaflet-popup-content { margin: 10px 14px; }
        .waterbody-popup .wb-name {
            color: var(--popup-strong);
            font-size: 12px;
            font-weight: 600;
        }
        .waterbody-popup .wb-type {
            font-size: 10px;
            color: var(--text-muted);
            margin-top: 1px;
        }

        /* ── Navigation-channel popups ────────────────────────── */
        .navchan-popup .leaflet-popup-content-wrapper {
            background: var(--popup-bg);
            border: 1px solid var(--grp-exclusion);
            border-radius: 8px;
            box-shadow: var(--shadow);
            color: var(--popup-text);
            font-family: var(--font);
            font-size: 11px;
            line-height: 1.6;
        }
        .navchan-popup .leaflet-popup-tip { background: var(--popup-bg); }
        .navchan-popup .leaflet-popup-content { margin: 10px 14px; }
        .navchan-popup .nc-name {
            color: var(--grp-exclusion);
            font-size: 12px;
            font-weight: 600;
            margin-bottom: 3px;
        }
        .navchan-popup .nc-row {
            font-size: 10px;
            color: var(--text-muted);
            margin-top: 1px;
        }

        /* ── Danger zone / restricted-area popups (33 CFR 334) ── */
        .dangerzone-popup .dz-name {
            color: var(--lyr-dangerzone);
            font-size: 12px;
            font-weight: 700;
            margin-bottom: 3px;
        }
        .dangerzone-popup .dz-row {
            font-size: 10px;
            color: var(--text-muted);
            margin-top: 1px;
        }
        .dangerzone-popup .dz-note {
            font-size: 9.5px;
            color: var(--text-faint);
            font-style: italic;
            margin-top: 4px;
            line-height: 1.4;
        }

        /* ── ESA critical-habitat popups ──────────────────────── */
        .habitat-popup .leaflet-popup-content-wrapper {
            background: var(--popup-bg);
            border: 1px solid var(--lyr-habitat);
            border-radius: 8px;
            box-shadow: var(--shadow);
            color: var(--popup-text);
            font-family: var(--font);
            font-size: 11px;
            line-height: 1.6;
        }
        .habitat-popup .leaflet-popup-tip { background: var(--popup-bg); }
        .habitat-popup .leaflet-popup-content { margin: 10px 14px; }
        .habitat-popup .hb-title {
            color: var(--popup-strong);
            font-size: 12px;
            font-weight: 600;
        }
        .habitat-popup .hb-sci {
            font-style: italic;
            color: var(--text-muted);
            font-size: 10.5px;
            margin-bottom: 3px;
        }
        .habitat-popup .hb-row {
            font-size: 10px;
            color: var(--text-muted);
            margin-top: 1px;
        }
        .habitat-popup .hb-links { margin-top: 5px; }
        .habitat-popup a { color: var(--lyr-habitat); text-decoration: none; }
        .habitat-popup a:hover { text-decoration: underline; }

        /* ── EFH / HAPC popups: reuse .habitat-popup structure, accent via THEME ── */
        .habitat-popup.efh-accent .leaflet-popup-content-wrapper  { border-color: var(--lyr-efh); }
        .habitat-popup.efh-accent a                               { color: var(--lyr-efh); }
        .habitat-popup.hapc-accent .leaflet-popup-content-wrapper { border-color: var(--lyr-hapc); }
        .habitat-popup.hapc-accent a                              { color: var(--lyr-hapc); }
        .habitat-popup.wetland-accent .leaflet-popup-content-wrapper { border-color: var(--lyr-wetland); }
        .habitat-popup.wetland-accent a                             { color: var(--lyr-wetland); }
        .habitat-popup.access-accent .leaflet-popup-content-wrapper  { border-color: var(--lyr-access); }
        .habitat-popup.access-accent a                               { color: var(--lyr-access); }
        /* HAPC / EFH data caveat — shown prominently when present */
        .habitat-popup .hb-caveat {
            margin-top: 6px; padding-top: 5px;
            border-top: 1px solid var(--lyr-hapc);
            font-size: 9.5px; font-style: italic; color: var(--popup-strong);
        }

        /* ── Combined multi-layer popup (one popup listing all active layers) ── */
        .combined-popup .leaflet-popup-content-wrapper {
            background: var(--popup-bg);
            border: 1px solid var(--text-muted);
            border-radius: 8px;
            box-shadow: var(--shadow);
            color: var(--popup-text);
            font-family: var(--font);
            font-size: 11px;
            line-height: 1.6;
        }
        .combined-popup .leaflet-popup-tip { background: var(--popup-bg); }
        .combined-popup .leaflet-popup-content { margin: 10px 12px; }
        .combined-popup .cp-group {
            font-size: 8.5px; text-transform: uppercase; letter-spacing: .07em;
            color: var(--text-muted);
            margin: 9px 0 3px; padding-top: 6px;
            border-top: 1px solid var(--text-faint);
        }
        .combined-popup .cp-group:first-child { margin-top: 0; padding-top: 0; border-top: none; }
        .combined-popup .cp-collapsible { cursor: pointer; }
        .combined-popup .cp-collapsible::after { content: ' \25B8'; font-size: 8px; opacity: .8; }   /* ▸ collapsed */
        .combined-popup .cp-collapsible.cp-open::after { content: ' \25BE'; }                          /* ▾ expanded */

        /* ── Leaflet overrides ───────────────────────────────── */
        .leaflet-control-zoom {
            border: none !important;
            box-shadow: var(--shadow) !important;
            border-radius: 10px !important;
            overflow: hidden;
        }

        .leaflet-control-zoom a {
            background: var(--panel-bg) !important;
            color: var(--accent) !important;
            border-bottom: 1px solid var(--panel-border) !important;
            width: 34px !important; height: 34px !important;
            line-height: 34px !important;
            font-size: 17px !important; font-weight: 300 !important;
            transition: background 0.15s !important;
        }

        .leaflet-control-zoom a:hover { background: var(--accent-soft) !important; }
        .leaflet-control-zoom-out { border-bottom: none !important; }

        .leaflet-control-attribution {
            background: rgba(255, 255, 255, 0.82) !important;
            color: var(--text-muted) !important;
            font-size: 9px !important;
        }

        .leaflet-control-attribution a { color: var(--accent) !important; }

        .leaflet-control-scale-line {
            background: rgba(255, 255, 255, 0.82) !important;
            border: 1.5px solid var(--accent) !important;
            border-top: none !important;
            color: var(--text) !important;
            font-size: 9px !important;
        }
