/**
 * Cloud Gaming Map - Mapa e Marcadores
 * Version: 2.5.7
 * Arquivo: Estilos do mapa, marcadores e popups do mapa
 */

/* ===============================================
   MAPA
   =============================================== */

#cgm-map {
    width: 100%;
    min-height: 500px;
    border-radius: var(--cgm-radius);
    box-shadow: var(--cgm-shadow);
    overflow: hidden;
    background: var(--cgm-bg-light);
    border: 2px solid var(--cgm-border);
    margin: 20px 0;
    position: relative;
    z-index: 1; /* garantir que não passe por cima do drawer/popups */
}

/* Controles do mapa */
.cgm-theme-control,
.cgm-fullscreen-control {
    background: var(--cgm-white);
    border-radius: var(--cgm-radius-sm);
    box-shadow: var(--cgm-shadow);
    padding: 6px;
    margin: 6px;
}

.cgm-theme-control select {
    border: 2px solid var(--cgm-border);
    border-radius: var(--cgm-radius-sm);
    padding: 8px 12px;
    font-size: 13px;
    background: var(--cgm-white);
    color: var(--cgm-text);
    cursor: pointer;
    min-width: 140px;
    font-weight: 500;
    transition: var(--cgm-transition);
}

.cgm-theme-control select:hover {
    border-color: var(--cgm-primary);
}

.cgm-theme-control select:focus {
    outline: none;
    border-color: var(--cgm-primary);
    box-shadow: 0 0 0 3px rgba(118, 255, 3, 0.2);
}

/* Controle de tela cheia */
.cgm-fullscreen-control {
    display: flex;
    align-items: center;
    justify-content: center;
}

#cgm-fullscreen-btn {
    background: var(--cgm-white);
    border: 2px solid var(--cgm-border);
    border-radius: var(--cgm-radius-sm);
    padding: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    transition: var(--cgm-transition);
    color: var(--cgm-text);
}

#cgm-fullscreen-btn:hover {
    border-color: var(--cgm-primary);
    background: var(--cgm-bg-light);
    color: var(--cgm-secondary);
}

#cgm-fullscreen-btn:focus {
    outline: none;
    border-color: var(--cgm-primary);
    box-shadow: 0 0 0 3px rgba(118, 255, 3, 0.2);
}

#cgm-fullscreen-btn svg {
    width: 16px;
    height: 16px;
    stroke-width: 2;
}

/* ===============================================
   MODO TELA CHEIA
   =============================================== */

/* Mapa em tela cheia */
#cgm-map.cgm-fullscreen {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 9999 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border: none !important;
    box-shadow: none !important;
    animation: cgm-fullscreen-enter 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Evitar que algum container pai limite a altura do mapa em tela cheia */
#cgm-map.cgm-fullscreen, #cgm-map.cgm-fullscreen .leaflet-container {
    min-height: 100vh !important;
}

/* Animação de entrada */
@keyframes cgm-fullscreen-enter {
    from {
        transform: scale(0.95);
        opacity: 0.8;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

/* Animação de saída */
#cgm-map.cgm-fullscreen-exit {
    animation: cgm-fullscreen-exit 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes cgm-fullscreen-exit {
    from {
        transform: scale(1);
        opacity: 1;
    }
    to {
        transform: scale(0.95);
        opacity: 0.8;
    }
}

/* Esconder scroll do body quando em tela cheia */
body.cgm-map-fullscreen-active {
    overflow: hidden !important;
}

/* Corrigir possíveis deslocamentos da página ao entrar/ sair do modo */
html.cgm-map-fullscreen-active, body.cgm-map-fullscreen-active {
    height: 100% !important;
}

/* Ajustar controles em tela cheia */
.cgm-fullscreen .cgm-theme-control,
.cgm-fullscreen .cgm-fullscreen-control {
    margin: 12px;
    box-shadow: var(--cgm-shadow-lg);
}

/* Controle de tela cheia em destaque quando ativo */
.cgm-fullscreen #cgm-fullscreen-btn {
    background: var(--cgm-primary);
    color: var(--cgm-white);
    border-color: var(--cgm-primary);
}

.cgm-fullscreen #cgm-fullscreen-btn:hover {
    background: var(--cgm-secondary);
    border-color: var(--cgm-secondary);
}

/* ===============================================
   MARCADORES DO MAPA
   =============================================== */

/* Marcadores dos provedores */
.cgm-marker-xcloud {
    background: var(--cgm-secondary);
    border: 3px solid var(--cgm-white);
    border-radius: 50%;
    box-shadow: var(--cgm-shadow);
}

.cgm-marker-boosteroid {
    background: #8B5CF6;
    border: 3px solid var(--cgm-white);
    border-radius: 50%;
    box-shadow: var(--cgm-shadow);
}

.cgm-marker-gfn {
    background: var(--cgm-primary);
    border: 3px solid var(--cgm-white);
    border-radius: 50%;
    box-shadow: var(--cgm-shadow);
}

/* Wrapper do marcador */
.cgm-marker-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
}

.cgm-marker-circle {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--cgm-white);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    border: 3px solid var(--cgm-white);
    box-shadow: var(--cgm-shadow);
}

.cgm-marker-label {
    margin-top: 4px;
    background: var(--cgm-white);
    color: var(--cgm-dark);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: var(--cgm-shadow-sm);
}

/* ===============================================
   MARCADOR DE LOCALIZAÇÃO DO USUÁRIO
   =============================================== */

.cgm-user-location-marker {
    z-index: 1000 !important;
}

.cgm-user-marker-container {
    position: relative;
    width: 60px;
    height: 60px;
}

.cgm-user-marker-dot {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    background: var(--cgm-primary);
    border: 3px solid var(--cgm-white);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 2px 8px rgba(118, 255, 3, 0.6);
    z-index: 3;
}

.cgm-user-marker-pulse {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 24px;
    background: var(--cgm-primary);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    animation: cgm-pulse 2s ease-out infinite;
    z-index: 1;
}

.cgm-user-marker-pulse::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 48px;
    background: var(--cgm-primary);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    animation: cgm-pulse-large 2s ease-out infinite;
}

@keyframes cgm-pulse {
    0% {
        transform: translate(-50%, -50%) scale(0.8);
        opacity: 0.7;
    }
    50% {
        transform: translate(-50%, -50%) scale(2);
        opacity: 0.3;
    }
    100% {
        transform: translate(-50%, -50%) scale(2.5);
        opacity: 0;
    }
}

@keyframes cgm-pulse-large {
    0% {
        transform: translate(-50%, -50%) scale(0.8);
        opacity: 0.5;
    }
    50% {
        transform: translate(-50%, -50%) scale(1.5);
        opacity: 0.2;
    }
    100% {
        transform: translate(-50%, -50%) scale(2);
        opacity: 0;
    }
}

.cgm-user-marker-label {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 8px;
    background: var(--cgm-dark);
    color: var(--cgm-white);
    padding: 4px 10px;
    border-radius: 16px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    white-space: nowrap;
    box-shadow: var(--cgm-shadow);
    z-index: 2;
}

.cgm-user-location-marker {
    animation: cgm-marker-appear 0.5s ease-out;
}

@keyframes cgm-marker-appear {
    0% {
        opacity: 0;
        transform: scale(0);
    }
    50% {
        transform: scale(1.2);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* ===============================================
   POPUP DO MAPA
   =============================================== */

.cgm-popup {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    min-width: 280px;
    padding: 20px;
    background: var(--cgm-white);
    border-radius: var(--cgm-radius);
    box-shadow: var(--cgm-shadow-lg);
    border: 2px solid var(--cgm-border);
}

.cgm-popup h4 {
    margin: 0 0 16px;
    color: var(--cgm-dark);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.3px;
    text-align: center;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--cgm-border);
}

.cgm-popup p {
    margin: 10px 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--cgm-text);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
}

.cgm-popup strong {
    color: var(--cgm-dark);
    font-weight: 600;
    flex-shrink: 0;
    margin-right: 12px;
}

/* Classes para cores dinâmicas da latência */
.cgm-estimated-ping {
    font-weight: 700;
    font-size: 16px;
    padding: 2px 8px;
    border-radius: 6px;
    text-align: center;
    min-width: 60px;
    display: inline-block;
    transition: var(--cgm-transition);
}

/* Latência excelente: 0-59ms - Verde */
.cgm-estimated-ping.excellent {
    background-color: #10B981;
    color: var(--cgm-white);
    box-shadow: 0 2px 4px rgba(16, 185, 129, 0.3);
}

/* Latência boa: 60-99ms - Laranja */
.cgm-estimated-ping.good {
    background-color: #F59E0B;
    color: var(--cgm-white);
    box-shadow: 0 2px 4px rgba(245, 158, 11, 0.3);
}

/* Latência ruim: 100ms+ - Vermelho */
.cgm-estimated-ping.poor {
    background-color: #EF4444;
    color: var(--cgm-white);
    box-shadow: 0 2px 4px rgba(239, 68, 68, 0.3);
}

/* Fallback para quando não há latência calculada */
.cgm-estimated-ping:not(.excellent):not(.good):not(.poor) {
    color: var(--cgm-text-muted);
    background-color: var(--cgm-bg-light);
    border: 1px solid var(--cgm-border);
}

/* ===============================================
   POPUPS E LABELS DO MAPA - TEXTO ESCURO
   =============================================== */

/* Popups do Leaflet (caixas brancas) devem ter texto ESCURO */
.leaflet-popup-content-wrapper,
.leaflet-popup-content,
.leaflet-popup-content *:not(.cgm-button):not(.cgm-provider-badge),
.leaflet-popup-content h1,
.leaflet-popup-content h2,
.leaflet-popup-content h3,
.leaflet-popup-content h4,
.leaflet-popup-content p,
.leaflet-popup-content span,
.leaflet-popup-content strong,
.leaflet-popup-content div {
    color: #1a1c19 !important;
    background: transparent !important;
    -webkit-text-fill-color: #1a1c19 !important;
    text-fill-color: #1a1c19 !important;
}

/* Labels dos marcadores (tooltips) - texto escuro */
.leaflet-tooltip,
.leaflet-tooltip * {
    color: #1a1c19 !important;
    -webkit-text-fill-color: #1a1c19 !important;
}

/* Garantir que badges dentro dos popups mantenham suas cores */
.leaflet-popup-content .cgm-provider-badge {
    color: var(--cgm-white) !important;
}

.leaflet-popup-content .cgm-provider-gfn {
    color: #000000 !important;
}

/* Botões dentro dos popups mantêm cor preta */
.leaflet-popup-content .cgm-button,
.leaflet-popup-content button {
    color: #000000 !important;
}

/* Forçar fundo branco nos popups */
.leaflet-popup-content-wrapper {
    background: #ffffff !important;
    color: #1a1c19 !important;
}

.leaflet-popup-tip {
    background: #ffffff !important;
}
