.hero-banner {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    color: white;
    padding: 50px 0 40px;
}
.hero-banner h1 { font-size: 2.5rem; font-weight: 700; }

/* Hero 右上角天气预报面板 */
.hero-weather-panel {
    position: absolute;
    top: 5px;
    right: 10px;
    z-index: 10;
    max-width: 500px;
}
.hero-weather-inner {
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 10px;
    padding: 8px 10px 6px;
    overflow: hidden;
}
.hero-weather-inner select.form-select-sm {
    font-size: 0.65rem;
    padding: 1px 16px 1px 4px;
    background: rgba(255,255,255,0.1);
    color: white;
    border: 1px solid rgba(255,255,255,0.2);
    background-position: right 3px center;
}
.hero-weather-inner select.form-select-sm option { color: #333; }

/* 导航栏天气 */
#weather-nav .dropdown-toggle { color: #fff !important; }
#weather-nav .dropdown-toggle::after { display: none; }

/* 活动卡片（网格） */
.event-card {
    transition: transform 0.2s, box-shadow 0.2s;
    border: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    overflow: hidden;
}
.event-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}
.event-card .card-img-top {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}
.category-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 0.75rem;
}

/* 地图 */
.map-container { height: 500px; border-radius: 12px; overflow: hidden; position: relative; }
.map-full { height: calc(100vh - 56px); position: relative; }
#index-map { height: 650px; border-radius: 12px; position: relative; overflow: hidden; }
.amap-info-title { font-size: 16px; font-weight: bold; margin-bottom: 5px; }
.amap-info-content { font-size: 13px; color: #666; }

.photo-gallery img {
    height: 200px;
    object-fit: cover;
    border-radius: 8px;
    cursor: pointer;
    transition: opacity 0.2s;
}
.photo-gallery img:hover { opacity: 0.85; }
.event-meta i { color: #0d6efd; width: 20px; text-align: center; margin-right: 4px; }
.boundary-btn.active { background: #0d6efd !important; color: white !important; border-color: #0d6efd !important; }

/* 地图悬浮控制面板 */
.map-boundary-panel {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 100;
    background: rgba(255,255,255,0.95);
    border-radius: 8px;
    padding: 4px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.15);
    display: flex;
    gap: 4px;
}
.map-boundary-panel .boundary-btn {
    border: 1px solid #dee2e6;
    background: white;
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 0.75rem;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.15s;
}
.map-boundary-panel .boundary-btn:hover { background: #f0f0f0; }
.map-boundary-panel .boundary-btn.active {
    background: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

/* 地图图例 */
.map-legend-box {
    position: absolute;
    bottom: 10px;
    right: 10px;
    z-index: 100;
    background: rgba(255,255,255,0.95);
    border-radius: 8px;
    padding: 8px 10px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.15);
    font-size: 0.7rem;
    min-width: 100px;
    line-height: 1.4;
}
.map-legend-box hr { margin: 4px 0; opacity: 0.3; }

/* 活动列表表格 */
.table-success td { background: rgba(25,135,84,0.08) !important; }
.table-danger td { background: rgba(220,53,69,0.08) !important; }
.table-secondary td { background: rgba(108,117,125,0.06) !important; }

/* 首页近期活动：超出2行隐藏 */
.event-card-hidden { display: none !important; }

/* 横向滚动 */
.scroll-row { display: flex; gap: 0.5rem; overflow-x: auto; padding-bottom: 0.5rem; scroll-snap-type: x mandatory; }
.scroll-row > * { scroll-snap-align: start; flex-shrink: 0; }

/* 活动列表：二级标题（子类） */
.subcat-section-header { font-size: 0.82rem; }

/* 活动列表：三级标题（系列） */
.series-header { font-size: 0.7rem; padding-top: 2px; padding-bottom: 2px; }

/* 活动列表：四级标题（次系列） */
.subseries-header { font-size: 0.62rem; padding-top: 1px; padding-bottom: 1px; }

/* 活动详情：赛程表格 */
.event-description { font-size: 0.9rem; line-height: 1.7; }
.event-description h6 { font-size: 0.85rem; font-weight: 700; margin-top: 16px; text-align: center; }
.event-description p { margin-bottom: 8px; }
.event-description .match-table { width: 100%; font-size: 0.8rem; margin: 12px 0; table-layout: fixed; }
.event-description .match-table th { background: #f0f0f0; font-size: 0.7rem; padding: 6px 4px; text-align: center; }
.event-description .match-table td { padding: 4px; border-bottom: 1px solid #eee; font-size: 0.72rem; text-align: center; }
.event-description .match-table .score { font-weight: bold; color: #e74c3c; }
.event-description .match-table .score-slash { color: #999; }
.event-description .match-table .score-pending { color: #adb5bd; }
.event-description .match-table .upcoming { color: #6c757d; font-style: italic; }
.event-description .match-table .group-A { color: #e74c3c; font-weight: bold; }
.event-description .match-table .group-B { color: #3498db; font-weight: bold; }
.event-description .match-table .group-C { color: #2ecc71; font-weight: bold; }

/* 积分榜：争冠组晋级区（前4名绿色高亮） */
.event-description .match-table .standings-top4 { color: #27ae60; font-weight: bold; }

/* 赛事赛程侧边栏 */
.schedule-sidebar { height: fit-content; position: sticky; top: 70px; }
.schedule-sidebar .card-header { font-size: 0.9rem; }
.schedule-sidebar .list-group-item { border-radius: 0; border-left: 3px solid transparent; font-size: 0.82rem; }
.schedule-sidebar .list-group-item.active { border-left-color: #f39c12; }
@media (max-width: 768px) {
    .schedule-sidebar { min-width: 100% !important; max-width: 100% !important; position: static; }
    .schedule-sidebar .list-group { flex-direction: row; flex-wrap: wrap; }
    .schedule-sidebar .list-group-item { flex: 1 1 auto; white-space: nowrap; font-size: 0.8rem; }
}
