/* Mundial 2026 - Frontend Styles */
:root {
    --mundial-primary: #003580;
    --mundial-secondary: #e63329;
    --mundial-gold: #f5a623;
    --mundial-dark: #1a1a2e;
    --mundial-light: #f8f9fa;
    --mundial-green: #27ae60;
    --radius: 12px;
}

.mundial-section {
    font-family: 'Segoe UI', Arial, sans-serif;
    max-width: 1200px;
    margin: 0 auto 40px;
    padding: 0 15px;
}

.mundial-section-header {
    text-align: center;
    margin-bottom: 30px;
    padding: 30px;
    background: linear-gradient(135deg, var(--mundial-primary), #0052cc);
    color: #fff;
    border-radius: var(--radius);
}
.mundial-section-header h2 {
    font-size: 2em;
    margin: 0 0 10px;
    color: #fff;
    border: none;
}
.mundial-section-header p {
    margin: 0;
    opacity: 0.85;
    font-size: 1.05em;
}

/* Filtros */
.mundial-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 25px;
    justify-content: center;
}
.filter-btn {
    background: #fff;
    border: 2px solid #ddd;
    padding: 8px 18px;
    border-radius: 25px;
    cursor: pointer;
    font-size: 0.9em;
    transition: all 0.2s;
}
.filter-btn:hover, .filter-btn.active {
    background: var(--mundial-primary);
    color: #fff;
    border-color: var(--mundial-primary);
}

/* Estado empty */
.mundial-empty {
    text-align: center;
    padding: 60px 20px;
    background: #f8f9fa;
    border-radius: var(--radius);
}
.mundial-empty .empty-icon { font-size: 3em; margin-bottom: 15px; }

/* ===== PARTIDOS ===== */
.fixture-date-header {
    font-weight: 700;
    font-size: 0.95em;
    color: var(--mundial-primary);
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 10px 0 5px;
    border-bottom: 2px solid var(--mundial-primary);
    margin: 20px 0 10px;
}

.fixture-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin-bottom: 12px;
    padding: 15px 20px;
    border-left: 4px solid #ddd;
    position: relative;
    transition: transform 0.2s, box-shadow 0.2s;
}
.fixture-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }
.fixture-card.estado-en_vivo { border-left-color: var(--mundial-secondary); }
.fixture-card.estado-finalizado { border-left-color: #666; }
.fixture-card.estado-programado { border-left-color: var(--mundial-primary); }

.live-badge {
    position: absolute;
    top: 10px;
    right: 15px;
    background: var(--mundial-secondary);
    color: #fff;
    font-size: 0.75em;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    animation: pulse 1.5s infinite;
}
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }

.fixture-teams {
    display: flex;
    align-items: center;
    gap: 15px;
}
.team {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
}
.team-local { justify-content: flex-end; }
.team-away { justify-content: flex-start; }

.team-flag, .equipo-escudo-sm { width: 32px; height: 32px; object-fit: contain; }
.team-name { font-weight: 600; font-size: 1.05em; }
.team-placeholder { font-size: 1.5em; }

.fixture-center {
    text-align: center;
    min-width: 100px;
}
.fixture-score {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.score-num {
    background: var(--mundial-dark);
    color: #fff;
    font-size: 1.4em;
    font-weight: 700;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
}
.score-sep { font-weight: 700; font-size: 1.2em; }

.fixture-time { font-size: 1.5em; font-weight: 700; color: var(--mundial-primary); }
.fixture-time-label { font-size: 0.75em; color: #888; }
.fixture-round { font-size: 0.75em; color: #888; margin-top: 3px; }

.fixture-venue {
    text-align: center;
    font-size: 0.8em;
    color: #888;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f0;
}

/* ===== GRUPOS ===== */
.mundial-grupos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
}
.grupo-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    overflow: hidden;
}
.grupo-header {
    background: linear-gradient(135deg, var(--mundial-primary), #0052cc);
    color: #fff;
    padding: 14px 20px;
    font-weight: 700;
    font-size: 1.1em;
    display: flex;
    align-items: center;
    gap: 12px;
}
.grupo-letra {
    background: var(--mundial-gold);
    color: #000;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 900;
    font-size: 1.1em;
}
.grupo-equipos { padding: 5px 0; }
.equipo-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 15px;
    border-bottom: 1px solid #f5f5f5;
    transition: background 0.15s;
}
.equipo-row:hover { background: #f8faff; }
.equipo-row:last-child { border-bottom: none; }
.equipo-flag-emoji { font-size: 1.4em; }
.equipo-nombre { flex: 1; font-weight: 500; }
.equipo-ranking { font-size: 0.75em; color: #999; background: #f0f0f0; padding: 2px 7px; border-radius: 10px; }

/* ===== ESTADIOS ===== */
.mundial-estadios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 25px;
}
.estadio-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    overflow: hidden;
    transition: transform 0.2s;
}
.estadio-card:hover { transform: translateY(-4px); }
.estadio-img-wrap {
    position: relative;
    height: 180px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--mundial-primary), #0052cc);
}
.estadio-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}
.estadio-card:hover .estadio-img-wrap img { transform: scale(1.05); }
.estadio-img-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 4em;
    color: rgba(255,255,255,0.5);
}
.estadio-pais-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(0,0,0,0.7);
    color: #fff;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.8em;
    font-weight: 600;
}
.estadio-info { padding: 20px; }
.estadio-info h3 { margin: 0 0 8px; font-size: 1.1em; color: var(--mundial-dark); }
.estadio-ciudad, .estadio-cap { margin: 4px 0; color: #555; font-size: 0.9em; }
.estadio-desc { margin-top: 10px; font-size: 0.85em; color: #777; line-height: 1.5; }

/* ===== NOTICIAS ===== */
.mundial-noticias-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 22px;
}
.noticia-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.2s;
}
.noticia-card:hover { transform: translateY(-3px); }
.noticia-img { height: 180px; overflow: hidden; }
.noticia-img img { width: 100%; height: 100%; object-fit: cover; }
.noticia-body { padding: 18px; flex: 1; display: flex; flex-direction: column; }
.noticia-fuente {
    display: inline-block;
    background: var(--mundial-primary);
    color: #fff;
    font-size: 0.72em;
    font-weight: 700;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 4px;
    margin-bottom: 8px;
}
.noticia-titulo { font-size: 1em; font-weight: 700; margin: 0 0 10px; line-height: 1.4; }
.noticia-resumen { font-size: 0.88em; color: #666; line-height: 1.5; flex: 1; }
.noticia-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 15px;
    padding-top: 10px;
    border-top: 1px solid #f0f0f0;
}
.noticia-fecha { font-size: 0.8em; color: #999; }
.noticia-link {
    color: var(--mundial-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.85em;
}
.noticia-link:hover { color: var(--mundial-secondary); }

/* ===== EQUIPOS ===== */
.mundial-equipos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 18px;
}
.equipo-card {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: 0 2px 8px rgba(0,0,0,0.07);
    padding: 20px 15px;
    text-align: center;
    transition: transform 0.2s;
}
.equipo-card:hover { transform: translateY(-3px); }
.equipo-escudo { width: 60px; height: 60px; object-fit: contain; margin-bottom: 10px; }
.equipo-no-img { font-size: 2.5em; margin-bottom: 10px; }
.equipo-nombre { font-weight: 700; font-size: 0.9em; margin-bottom: 6px; }
.equipo-grupo-badge {
    display: inline-block;
    background: var(--mundial-primary);
    color: #fff;
    font-size: 0.72em;
    padding: 2px 8px;
    border-radius: 10px;
    margin-bottom: 4px;
}
.equipo-conf { font-size: 0.72em; color: #888; }

/* Responsive */
@media (max-width: 768px) {
    .fixture-teams { flex-direction: column; }
    .team { justify-content: center !important; }
    .team-local, .team-away { flex-direction: row; }
    .mundial-grupos-grid { grid-template-columns: 1fr; }
    .mundial-section-header h2 { font-size: 1.5em; }
}
