/* 竞赛列表页样式 */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; margin-bottom: 30px; }
.comp-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    border: 1px solid #f0f0f0;
    text-decoration: none;
    display: block;
    transform: translate3d(0, 0, 0);
    will-change: transform;
}
.comp-card:hover {
    box-shadow: 0 8px 25px rgba(0,0,0,0.08);
    transform: translate3d(0,-4px,0);
}
.comp-card img { 
    width: 100%; 
    height: 180px; 
    object-fit: cover;
    transition: transform 0.3s ease;
}
.comp-card:hover img {
    transform: scale3d(1.05,1.05,1);
}
.comp-card .info { padding: 20px; }
.comp-card .title { font-size: 17px; font-weight: bold; color: #2c3e50; margin-bottom: 10px; }
.comp-card .meta { display: flex; gap: 15px; color: #95a5a6; font-size: 13px; margin-bottom: 12px; }
.comp-card .tags { display: flex; justify-content: space-between; align-items: center; }
.difficulty { padding: 3px 10px; border-radius: 10px; font-size: 12px; }
.difficulty-1 { background: #e8f5e9; color: #4caf50; }
.difficulty-2 { background: #fff3e0; color: #ff9800; }
.difficulty-3 { background: #fce4ec; color: #e91e63; }
.status { padding: 3px 10px; border-radius: 10px; font-size: 12px; }
.status-1 { background: #e3f2fd; color: #2196f3; }
.status-2 { background: #e8f5e9; color: #4caf50; }
.status-3 { background: #eceff1; color: #607d8b; }
