/* =========================================================
   GasMemberMap — Shared map styles
   Uses design tokens from gas-design-tokens.css
   ========================================================= */

/* Map container — NO overflow:hidden to preserve Google Maps zoom controls */
.gas-map-container {
    width: 100%;
    height: 100%;
    min-height: 300px;
    border-radius: var(--gas-radius-m);
}

/* Marker label (shown below avatar at high zoom) */
.gas-map-marker-label {
    background-color: rgba(255, 255, 255, 0.95) !important;
    color: var(--gas-neutral-800) !important;
    padding: 3px 8px !important;
    border-radius: var(--gas-radius-s) !important;
    font-size: 11px !important;
    font-weight: var(--gas-weight-semi) !important;
    text-align: center !important;
    border: var(--gas-border-width) solid var(--gas-neutral-300) !important;
    box-shadow: var(--gas-shadow-s) !important;
    max-width: 140px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.2 !important;
    margin-top: 5px !important;
}

/* InfoWindow */
.gas-map-infowindow {
    display: flex;
    gap: var(--gas-space-s);
    padding: var(--gas-space-s);
    max-width: 280px;
    font-family: var(--gas-font-family);
}

.gas-map-iw-image {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
}

.gas-map-iw-image img {
    width: 100%;
    height: 100%;
    border-radius: var(--gas-radius-full);
    object-fit: cover;
    object-position: center;
    border: 2px solid var(--gas-neutral-200);
    display: block;
}

.gas-map-iw-details {
    flex: 1;
    min-width: 0;
}

.gas-map-iw-details h3 {
    margin: 0 0 2px;
    font-size: var(--gas-text-s);
    font-weight: var(--gas-weight-semi);
    line-height: var(--gas-leading-tight);
}

.gas-map-iw-details h3 a {
    color: var(--gas-primary);
    text-decoration: none;
}

.gas-map-iw-details h3 a:hover {
    text-decoration: underline;
}

.gas-map-iw-name {
    font-weight: var(--gas-weight-medium);
    margin: 0 0 2px;
    font-size: var(--gas-text-xs);
    color: var(--gas-neutral-700);
}

.gas-map-iw-name a {
    color: inherit;
    text-decoration: none;
}

.gas-map-iw-address {
    color: var(--gas-neutral-500);
    font-size: var(--gas-text-xs);
    margin: 0;
}

/* Cluster text styling */
.gm-style .gm-cluster div {
    text-align: center;
    line-height: normal;
}

.gm-style div[style*="font"] {
    color: var(--gas-neutral-900) !important;
    font-weight: var(--gas-weight-bold) !important;
    font-size: 14px !important;
    text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8) !important;
}

/* InfoWindow chrome overrides */
.gm-style .gm-style-iw-c .gm-style-iw-d {
    overflow: visible !important;
}