/* ============================================================================
   athlete/css/venue-map.css — static CSS counterpart to athlete/modules/
   venue-map.js (the Leaflet-backed venue map used on the home hero, game
   detail, and week schedule cards).

   Cascade contract: loaded by every page that calls SCv2.renderVenueMap.
   No specificity battles -- these selectors don't conflict with page CSS.

   NOTE on !important: Leaflet sets z-index inline on its panes/controls
   and inline styles win over class selectors regardless of specificity --
   so !important is the ONLY way to override them. The four !important
   declarations below are LEGITIMATE for that reason, not anti-pattern
   hammers. (The athlete-switcher / theme.js !important uses we deleted in
   v284/v285 were fighting per-page CSS drift, which IS solvable via cascade
   order. Leaflet's inline styles cannot be solved that way.)

   Extracted from athlete/modules/venue-map.js (injectVenueMapCss) on
   May 20 2026 -- same enterprise pattern as athlete-switcher / theme.js.
   ========================================================================== */

/* Pins must receive taps even when the host container has pointer-events:none. */
.scv2-venue-map {
    pointer-events: none;
    touch-action: pan-y;
    position: relative;
}
.scv2-venue-map .leaflet-marker-pane,
.scv2-venue-map .leaflet-marker-pane * {
    pointer-events: auto;
}

/* Leaflet inline z-indexes climb into the thousands and float panes above
   our app chrome (bottom-nav, app-header) -- clamp them. !important is
   required: Leaflet sets z-index as inline style, not as a class rule. */
.scv2-venue-map .leaflet-pane,
.scv2-venue-map .leaflet-control,
.scv2-venue-map .leaflet-top,
.scv2-venue-map .leaflet-bottom {
    z-index: 1 !important;
}

.scv2-venue-pin {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.30);
    position: relative;
    cursor: pointer;
}
.scv2-venue-pin svg {
    width: 14px;
    height: 14px;
    stroke-width: 2.4;
}
.scv2-venue-pin.kind-game     { background: #22c55e; color: #ffffff; }
.scv2-venue-pin.kind-practice { background: #f59e0b; color: #ffffff; }
.scv2-venue-pin.kind-live {
    background: #ef4444;
    color: #ffffff;
    animation: scv2-pin-pulse 1.8s ease-in-out infinite;
}
@keyframes scv2-pin-pulse {
    0%, 100% { box-shadow: 0 2px 10px rgba(239, 68, 68, 0.45), 0 0 0 0  rgba(239, 68, 68, 0.55); }
    50%      { box-shadow: 0 2px 10px rgba(239, 68, 68, 0.45), 0 0 0 8px rgba(239, 68, 68, 0); }
}

/* Tooltip overrides Leaflet's default white-with-border style. Leaflet
   applies inline color/background on its tooltips, so !important is required
   to win. */
.scv2-venue-tooltip {
    font-family: "Manrope", sans-serif;
    font-size: 12px;
    font-weight: 600;
    background: #0a0a0a !important;
    color: #ffffff !important;
    border: 0 !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.30) !important;
    padding: 8px 12px !important;
    border-radius: 8px !important;
}
.scv2-venue-tooltip::before {
    border-top-color: #0a0a0a !important;
}
.scv2-venue-tooltip strong {
    font-family: "Saira Condensed", sans-serif;
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 2px;
    opacity: 0.78;
    font-weight: 700;
}
