/* =========================================================
   Vue Member Map Components
   Base map styles in gas-member-map.css
   ========================================================= */

/* Map wrapper — uses absolute positioning to reliably fill flex parents
   (height:100% on grandchildren of flex items is unreliable cross-browser) */
.gas-vue-map-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.gas-vue-map-wrapper .gas-map-container {
    width: 100%;
    height: 100%;
}

.gas-vue-map-error {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    background: var(--gas-bg-surface);
    padding: var(--gas-space-m);
    border-radius: var(--gas-radius-m);
    box-shadow: var(--gas-shadow-m);
    text-align: center;
}

.gas-vue-map-error p {
    margin: 0;
    color: var(--gas-danger);
    font-weight: var(--gas-weight-medium);
}

/* Results wrapper */
.gas-member-results-wrapper {
    width: 100%;
}

.gas-member-results-empty {
    text-align: center;
    padding: var(--gas-space-xl);
    color: var(--gas-neutral-500);
    font-style: italic;
}

@media screen and (max-width: 768px) {
    .gas-member-results-wrapper .results-grid {
        grid-template-columns: 1fr !important;
    }
}