/**
 * 마이랭킹 2026 - 결과 페이지 스타일
 */

/* ===== Result Container ===== */
.result-container {
    max-width: 1024px;
    width: 100%;
    margin: 0 auto;
    padding: 20px 16px;
    box-sizing: border-box;
}

/* ===== Result List (ul/li 구조) ===== */
.result-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Result Item (li) */
.result-item {
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 8px;
    padding: 12px 16px;
    transition: all 0.2s ease;
    border-left: 3px solid transparent;
    box-sizing: border-box;
}

.result-item:hover {
    border-left-color: #1a73e8;
    box-shadow: 0 2px 12px rgba(26, 115, 232, 0.1);
}

/* Row 1: Header - 성별/연령그룹 + 종목 */
.result-item-header {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

/* Tags */
.event-tag {
    display: inline-block;
    padding: 3px 8px;
    background: #e8f0fe;
    color: #1a73e8;
    font-size: 11px;
    font-weight: 600;
    border-radius: 4px;
    white-space: nowrap;
}

.category-tag {
    display: inline-block;
    padding: 3px 8px;
    background: #f1f3f4;
    color: #5f6368;
    font-size: 11px;
    border-radius: 4px;
    white-space: nowrap;
}

/* Main Row - 한 줄 레이아웃 (넓은 화면) */
.result-item-main {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
}

/* 선수명/팀명 그룹 (가로 배치) */
.result-item-main .col-swimmer {
    display: flex;
    flex-direction: row;
    align-items: center; justify-content: center;
    gap: 10px;
    flex-shrink: 0;
    min-width: 24%;
}

.result-item-main .swimmer-name {
    display: flex;
    align-items: center; justify-content: center;
    font-size: 15px;
    font-weight: 600;
    color: #202124;
    cursor: default;
    min-width: 100px;
}

.result-item-main .swimmer-name.nickname-link {
    color: #1a73e8;
    cursor: pointer;
    transition: color 0.2s ease;
}

.result-item-main .swimmer-name.nickname-link:hover {
    color: #1557b0;
    text-decoration: underline;
}

.result-item-main .team-name {
    display: block; text-align: center;
    font-size: 12px;
    color: #5f6368;
    cursor: pointer;
    width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.result-item-main .team-name:hover {
    color: #1a73e8;
    text-decoration: underline;
}

/* 연령그룹 */
.result-item-main .col-category {
    display: flex;
    flex-direction: column; flex-shrink: 0; justify-content: center;
    gap: 5px;
    width: 13%;
}
.result-item-main .col-category span {
    display: block;
    overflow: hidden;
    text-align: center; text-overflow: ellipsis;
    white-space: nowrap;
}

/* 종목 */
.result-item-main .col-event {
    flex-shrink: 0;
}

/* 기록 */
.result-item-main .col-record {
    display: block; text-align: center;
    flex-shrink: 0;
    width: 13%;
}

.result-item-main .record-time {
    font-size: 15px;
    font-weight: 600;
}

/* 순위/뱃지 그룹 (세로 배치) */
.result-item-main .col-rank {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
    min-width: 50px;
}

.result-item-main .record-rank {
    display: flex;
    align-items: center;
}

.result-item-main .record-rank .medal {
    width: 22px;
    height: 22px;
}

.result-item-main .record-badges {
    gap: 3px;
}

/* 대회명/일자 그룹 (세로 배치) */
.result-item-main .col-comp {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.result-item-main .comp-name {
    color: #1a73e8;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.result-item-main .comp-name:hover {
    text-decoration: underline;
}

.result-item-main .comp-date {
    font-size: 11px;
    color: #70757a;
}

/* ===== Result Item Mobile Layout ===== */
@media (max-width: 768px) {
    .result-container {
        padding: 12px 10px;
    }

    .result-item {
        padding: 10px;
    }

    .event-tag, .category-tag {
        font-size: 10px;
        padding: 2px 6px;
    }

    /* Main - 모바일에서 Grid 레이아웃 */
    .result-item-main {
        display: grid;
        grid-template-columns: auto auto auto auto 1fr;
        grid-template-rows: auto auto;
        gap: 6px 8px;
        align-items: center;
    }

    /* Row 1: 연령그룹 + 종목 */
    .result-item-main .col-category {
        display: flex; flex-direction: row; justify-content: flex-start;
        grid-row: 1;
        grid-column: 1 / span 4;
        width: auto;
    }

    .result-item-main .col-event {
        grid-row: 1;
        grid-column: 2 / -1;
    }

    /* Row 2: 선수명/팀명 | 기록 | 순위 | 대회 */
    .result-item-main .col-swimmer {
        grid-row: 2;
        grid-column: 1;
        display: flex;
        flex-direction: column;
        align-items: center; justify-content: center;
        gap: 2px;
        min-width: 115px;
    }

    .result-item-main .swimmer-name {
        font-size: 13px;
    }

    .result-item-main .team-name {
        font-size: 11px;
        max-width: 80px;
    }
    .result-item-main .team-name .team-logo {
        width: 60px;
    }

    .result-item-main .col-record {
        grid-row: 2;
        grid-column: 2;
        display: flex;
        flex-direction: column;
        align-items: center; justify-content: center;
        min-width: 70px;
    }

    .result-item-main .record-time {
        font-size: 13px;
    }

    .result-item-main .col-rank {
        grid-row: 2;
        grid-column: 3;
        display: flex;
        flex-direction: row;
        align-items: center; justify-content: center;
        width: 30px;
        font-size: 0.8rem;
    }

    .result-item-main .record-rank .medal {
        width: 24px;
        height: 24px;
    }

    .result-item-main .record-badges {
        flex-direction: row; align-items: center; justify-content: center;
        gap: 5px;
    }

    /* 대회명/일자 */
    .result-item-main .col-comp {
        grid-row: 2;
        grid-column: 4 / -1;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: auto; overflow: hidden; white-space: none; 
    }

    .result-item-main .comp-name {
        font-size: 0.85rem;
    }

    .result-item-main .comp-date {
        font-size: 0.75rem;
    }
}


@media (max-width: 480px) {
    .home-logo {
        margin-top: 40px;
    }
    .home-logo img {
        height: 50px;
    }
    .search-container {
        width: 85%;
    }
    .result-container {
        padding: 10px 8px;
    }

    .result-item {
        padding: 8px;
    }

    .result-item-main {
        gap: 4px 6px;
    }

    .result-item-main .col-swimmer {
        min-width: 66px;
    }

    .result-item-main .swimmer-name {
        font-size: 12px;
    }

    .result-item-main .team-name {
        font-size: 0.8ewm;
        max-width: 60px;
    }
    .result-item-main .team-name .team-logo {
        width: 50px;
    }

    .result-item-main .record-time {
        font-size: 12px;
    }

    .result-item-main .record-rank .medal {
        width: 20px;
        height: 20px;
    }
    .result-item-main .col-rank {
        min-width: 30px;
    }
    .result-item-main .col-comp {
        width: auto;
    }

    .result-item-main .comp-name {
        font-size: 0.8rem;
    }

    .result-item-main .comp-date {
        font-size: 0.7rem;
    }

    .event-tag, .category-tag {
        font-size: 9px;
        padding: 2px 5px;
    }
}



/* ===== Result Card ===== */
.result-card {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    border: 1px solid #e8eaed;
    transition: all 0.3s ease;
    border-left: 3px solid transparent;
}

.result-card:hover {
    border-left-color: #1a73e8;
    box-shadow: 0 4px 20px rgba(26, 115, 232, 0.1);
    background: #fafbfc;
}

.result-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 8px;
}

.result-event {
    font-size: 12px;
    color: #70757a;
    margin-bottom: 4px;
}

.result-event span {
    display: inline-block;
    margin-right: 8px;
}

.result-main {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.result-info {
    flex: 1;
}

.result-name {
    font-size: 18px;
    font-weight: 500;
    color: #1a0dab;
    margin-bottom: 4px;
    cursor: pointer;
}

.result-name:hover {
    text-decoration: underline;
}

.result-team {
    font-size: 14px;
    color: #3c4043;
}

.result-record {
    text-align: right;
}

.result-time {
    font-size: 24px;
    font-weight: 700;
    color: #202124;
    font-variant-numeric: tabular-nums;
}

.result-ranking {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    margin-top: 4px;
}

.result-ranking .medal {
    width: 24px;
    height: 24px;
}

.result-ranking .rank-text {
    font-size: 14px;
    color: #5f6368;
}

/* ===== New Record Badge ===== */
.new-record-badge {
    display: inline-block;
    padding: 2px 6px;
    font-size: 10px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, #ff6b6b, #ee5a5a);
    border-radius: 3px;
}

.new-record-badge.gr {
    background: linear-gradient(135deg, #ffd700, #ffb700);
    color: #7c5c00;
}

.new-record-badge.kr {
    background: linear-gradient(135deg, #ff4444, #cc0000);
}

/* ===== Competition Info ===== */
.result-comp {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #ebebeb;
}

.result-comp-name {
    font-size: 14px;
    color: #1a73e8;
    margin-bottom: 4px;
    cursor: pointer;
}

.result-comp-name:hover {
    text-decoration: underline;
}

.result-comp-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    font-size: 12px;
    color: #70757a;
}

.result-comp-meta span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.result-comp-meta .material-symbols-outlined {
    font-size: 14px;
}

/* ===== Expandable Detail ===== */
.result-detail-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 8px;
    margin-top: 8px;
    color: #1a73e8;
    font-size: 13px;
    cursor: pointer;
    border-radius: 4px;
    transition: background-color 0.2s;
}

.result-detail-toggle:hover {
    background-color: #e8f0fe;
}

.result-detail {
    display: none;
    margin-top: 12px;
    padding: 12px;
    background: #f8f9fa;
    border-radius: 4px;
}

.result-detail.active {
    display: block;
}

.result-detail-row {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 13px;
}

.result-detail-label {
    color: #5f6368;
}

.result-detail-value {
    color: #202124;
    font-weight: 500;
}

/* ===== No Results ===== */
.no-results {
    text-align: center;
    padding: 60px 20px;
    color: #5f6368;
}

.no-results .icon {
    font-size: 64px;
    color: #dadce0;
    margin-bottom: 16px;
}

.no-results h3 {
    font-size: 20px;
    color: #202124;
    margin-bottom: 8px;
}

.no-results p {
    font-size: 14px;
    max-width: 400px;
    margin: 0 auto;
}

/* ===== Load More ===== */
.load-more {
    text-align: center;
    padding: 20px;
}

.load-more .btn {
    padding: 10px;
    font-size: 0.8rem;
}

/* ===== Swimmer Detail Page ===== */
.swimmer-header {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 28px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 16px;
    color: #fff;
    margin-bottom: 24px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(102, 126, 234, 0.3);
}

/* 헤더 배경 그라데이션 */
.swimmer-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.1) 0%, transparent 50%);
    pointer-events: none;
}

/* 물결 효과 */
.swimmer-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 200%;
    height: 20px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120'%3E%3Cpath fill='rgba(255,255,255,0.1)' d='M0,60 C300,120 600,0 900,60 C1200,120 1200,60 1200,60 L1200,120 L0,120 Z'%3E%3C/path%3E%3C/svg%3E");
    background-size: 600px 20px;
    animation: wave 4s linear infinite;
}

@keyframes wave {
    0% { transform: translateX(0); }
    100% { transform: translateX(-600px); }
}

.swimmer-avatar {
    width: 80px;
    height: 80px;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    position: relative;
    z-index: 1;
    transition: transform 0.3s ease;
}

.swimmer-avatar:hover {
    transform: scale(1.1);
}

.swimmer-info h1 {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 4px;
}

.swimmer-meta {
    display: flex;
    gap: 16px;
    font-size: 14px;
    opacity: 0.9;
}

/* ===== Stats Cards ===== */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.stat-card {
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 12px;
    padding: 24px 16px;
    text-align: center;
    transition: all 0.3s ease;
    border-top: 3px solid transparent;
}

.stat-card:hover {
    border-top-color: #1a73e8;
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(26, 115, 232, 0.1);
}

.stat-value {
    font-size: 32px;
    font-weight: 700;
    color: #1a73e8;
}

.stat-label {
    font-size: 12px;
    color: #5f6368;
    margin-top: 4px;
}

/* ===== Medal Summary ===== */
.medal-summary {
    display: flex;
    justify-content: center;
    gap: 14px;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 12px;
    margin-bottom: 24px;
}

.medal-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    border-radius: 8px;
    transition: all 0.3s ease;
    cursor: default;
}

.medal-item:hover {
    transform: translateY(-3px);
    background: rgba(255,255,255,0.8);
}

.medal-item img {
    width: 36px;
    height: 36px;
    transition: transform 0.3s ease;
}

.medal-item:hover img {
    transform: scale(1.1);
}

.medal-item .count {
    font-size: 24px;
    font-weight: 700;
}

.medal-item.gold .count { color: #B8860B; }
.medal-item.silver .count { color: #808080; }
.medal-item.bronze .count { color: #CD7F32; }

/* ===== Best Records Table ===== */
.best-records {
    margin-bottom: 24px;
}

.best-records h3 {
    margin-bottom: 12px;
    color: #202124;
}

.records-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #dfe1e5;
}

.records-table th,
.records-table td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid #ebebeb;
}

.records-table th {
    background: #f8f9fa;
    font-weight: 500;
    font-size: 13px;
    color: #5f6368;
}

.records-table td {
    font-size: 14px;
    color: #202124;
}

.records-table tr:last-child td {
    border-bottom: none;
}

.records-table tr:hover td {
    background: #f8f9fa;
}

/* ===== Records List Table (기록 목록 테이블) ===== */
.records-table-wrapper {
    background: #fff;
    border-radius: 8px;
    border: 1px solid #dfe1e5;
}

.records-list-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.records-list-table thead {
    background: #f8f9fa;
}

.records-list-table th {
    padding: 10px 8px;
    text-align: left;
    font-weight: 500;
    font-size: 13px;
    color: #5f6368;
    border-bottom: 1px solid #dfe1e5;
}

.records-list-table td {
    padding: 8px;
    font-size: 14px;
    color: #202124;
    border-bottom: 1px solid #ebebeb;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
}

.records-list-table tbody tr:hover td {
    background: #f8f9fa;
}

.records-list-table tbody tr:last-child td {
    border-bottom: none;
}

/* 컬럼 너비 비율 설정 */
.records-list-table .col-event {
    width: 35%;
}

.records-list-table .col-name {
    width: 18%;
}

.records-list-table .col-club {
    width: 20%;
    color: #5f6368;
    font-size: 13px;
}

.records-list-table .col-record {
    width: 17%;
    font-weight: 700;
    text-align: center;
}

.records-list-table .col-rank {
    width: 10%;
    text-align: center;
}

.records-list-table .col-event .event-group {
    display: block;
    font-size: 11px;
    color: #5f6368;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.records-list-table .col-event .event-style {
    display: block;
    font-weight: 500;
    color: #1a73e8;
    font-size: 13px;
}

.records-list-table .col-name .swimmer-name {
    cursor: pointer;
    color: #1a73e8;
    font-weight: 500;
}

.records-list-table .col-name .swimmer-name:hover {
    text-decoration: underline;
}

.records-list-table .col-record .record-images {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.records-list-table .col-record .record-char {
    height: 16px;
}

.records-list-table .col-rank .medal {
    font-size: 16px;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .records-list-table th,
    .records-list-table td {
        padding: 6px 3px;
        font-size: 11px;
    }

    .records-list-table .col-event {
        width: 30%;
    }

    .records-list-table .col-event .event-group {
        font-size: 9px;
    }

    .records-list-table .col-event .event-style {
        font-size: 11px;
    }

    .records-list-table .col-name {
        width: 18%;
    }

    .records-list-table .col-club {
        width: 20%;
        font-size: 11px;
    }

    .records-list-table .col-club .club-logo {
        height: 18px;
        max-width: 50px;
    }

    .records-list-table .col-record {
        width: 20%;
    }

    .records-list-table .col-record .record-char {
        height: 12px;
    }

    .records-list-table .col-rank {
        width: 12%;
    }

    .records-list-table .col-rank .medal {
        font-size: 14px;
    }
}

/* ===== Tabs ===== */
.tabs {
    display: flex;
    border-bottom: 1px solid #dfe1e5;
    margin-bottom: 20px;
}

.tab {
    padding: 12px 24px;
    font-size: 14px;
    color: #5f6368;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    transition: all 0.2s;
}

.tab:hover {
    color: #202124;
    background: #f1f3f4;
}

.tab.active {
    color: #1a73e8;
    border-bottom-color: #1a73e8;
}

/* ===== Pagination ===== */
.pagination {
    display: flex;
    justify-content: center;
    gap: 4px;
    padding: 20px 0;
}

.pagination-btn {
    min-width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: #1a73e8;
    background: #fff;
    border: 1px solid #dfe1e5;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s;
}

.pagination-btn:hover {
    background: #f1f3f4;
}

.pagination-btn.active {
    background: #1a73e8;
    color: #fff;
    border-color: #1a73e8;
}

.pagination-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
    .result-main {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .result-record {
        text-align: left;
        width: 100%;
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .result-time {
        font-size: 20px;
    }

    .swimmer-header {
        flex-direction: column;
        text-align: center;
    }

    .swimmer-meta {
        flex-direction: column;
        gap: 4px;
    }

    .medal-summary {
        flex-wrap: wrap;
    }

    .records-table {
        font-size: 12px;
    }

    .records-table th,
    .records-table td {
        padding: 8px 12px;
    }
}

@media (max-width: 480px) {
    .result-card {
        padding: 12px;
    }

    .result-name {
        font-size: 16px;
    }

    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .stat-value {
        font-size: 24px;
    }
}

/* ===== Result Table Layout ===== */
.result-table-wrapper {
    overflow-x: auto;
    margin-bottom: 20px;
}

.result-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    overflow: hidden;
    font-size: 14px;
}

.result-table thead {
    background: #f8f9fa;
}

.result-table th {
    padding: 12px 16px;
    text-align: left;
    font-weight: 500;
    font-size: 12px;
    color: #5f6368;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid #dfe1e5;
    white-space: nowrap;
}

.result-table td {
    padding: 12px 16px;
    vertical-align: middle;
}

/* Column widths */
.result-table .col-event { width: 20%; min-width: 120px; }
.result-table .col-name { width: 25%; min-width: 100px; }
.result-table .col-team { width: 20%; min-width: 80px; }
.result-table .col-record { width: 20%; min-width: 100px; }
.result-table .col-rank { width: 15%; min-width: 60px; }

/* Result row */
.result-row {
    border-bottom: none;
    cursor: default;
    transition: background-color 0.2s ease;
}

.result-row:hover {
    background: linear-gradient(90deg, #f0f7ff 0%, #fff 100%);
}

.result-row:hover + .result-row-detail {
    background: linear-gradient(90deg, #e8f4ff 0%, #fafafa 100%);
}

/* Event info */
.event-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.event-main {
    font-weight: 500;
    color: #202124;
}

.event-sub {
    font-size: 11px;
    color: #70757a;
}

/* Swimmer name (클릭 기능 제거됨) */
.swimmer-name {
    color: #202124;
    font-weight: 500;
    cursor: default;
}

/* Team cell */
.team-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.team-cell:hover {
    opacity: 0.8;
}

/* Team logo - 기본 (데스크탑/테이블용) */
.team-logo {
    display: block;
    border: 1px solid #eee;
    background: #fff;
    width: 80px;
    object-fit: contain;
    border-radius: 4px;
}

.team-name-text {
    font-size: 12px;
    color: #3c4043;
    text-align: center;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Record cell with images */
.record-cell {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Record badges container */
.record-badges {
    display: flex;
    flex-direction: column; align-items: center;
    gap: 2px;
}

/* PB Badge */
.pb-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1px 6px;
    font-size: 10px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, #1a73e8, #4285f4);
    border-radius: 3px;
    letter-spacing: 0.5px;
    box-shadow: 0 1px 3px rgba(26, 115, 232, 0.3);
    transition: transform 0.2s ease;
}

.pb-badge:hover {
    transform: scale(1.1);
}

/* PB badge inline (in result-time) */
.result-time .pb-badge {
    margin-left: 6px;
    vertical-align: middle;
    font-size: 9px;
}

/* PB badge in table */
.records-table .pb-badge {
    font-size: 9px;
    padding: 1px 4px;
}

.record-images {
    display: inline-flex;
    align-items: center;
    gap: 1px;
}

.record-char {
    height: 18px;
    width: auto;
    vertical-align: middle;
}

/* Rank cell */
.rank-cell {
    text-align: center;
}

.rank-cell .medal {
    width: 24px;
    height: 24px;
}

/* Detail row (competition info) */
.result-row-detail {
    background: #fafafa;
}

.result-row-detail td {
    padding: 8px 16px 12px;
    border-bottom: 1px solid #dfe1e5;
}

.comp-info {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 12px;
}

.comp-name {
    color: #1a73e8;
    cursor: pointer;
    font-weight: 500;
}

.comp-name:hover {
    text-decoration: underline;
}

.comp-meta {
    color: #70757a;
}

/* ===== Result Table Responsive ===== */
@media (max-width: 768px) {
    .result-table {
        font-size: 12px;
    }

    .result-table th,
    .result-table td {
        padding: 8px 10px;
    }

    .result-table .col-event { min-width: 100px; }
    .result-table .col-name { min-width: 80px; }
    .result-table .col-team { min-width: 60px; }
    .result-table .col-record { min-width: 80px; }
    .result-table .col-rank { min-width: 50px; }

    .record-char {
        height: 14px;
    }

    .event-sub {
        display: none;
    }

    .comp-info {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }
}

@media (max-width: 480px) {
    .result-table th,
    .result-table td {
        padding: 6px 8px;
    }

    .record-char {
        height: 12px;
    }

    .swimmer-name {
        font-size: 12px;
    }

    .rank-cell .medal {
        width: 20px;
        height: 20px;
    }

    .pb-badge,
    .new-record-badge {
        font-size: 9px;
        padding: 1px 4px;
    }

    .record-cell {
        gap: 4px;
    }

    .record-badges {
        gap: 1px;
    }
}

/* ===== Competition List ===== */
.competition-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.competition-card {
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 12px;
    padding: 16px 20px;
    cursor: pointer;
    transition: all 0.2s ease;
    border-left: 4px solid transparent;
}

.competition-card:hover {
    border-left-color: #1a73e8;
    box-shadow: 0 4px 16px rgba(26, 115, 232, 0.12);
    transform: translateY(-2px);
}

.comp-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.comp-card-title {
    font-size: 16px;
    font-weight: 600;
    color: #202124;
    margin: 0;
    line-height: 1.4;
    flex: 1;
}

.comp-card-course {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 4px;
    white-space: nowrap;
}

.comp-card-course.short {
    background: #e3f2fd;
    color: #1565c0;
}

.comp-card-course.long {
    background: #fff3e0;
    color: #e65100;
}

.comp-card-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 12px;
}

.comp-card-info {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #5f6368;
}

.comp-card-info .material-symbols-outlined {
    font-size: 18px;
    color: #9aa0a6;
}

.comp-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 12px;
    border-top: 1px solid #f1f3f4;
}

.comp-card-stats {
    display: flex;
    gap: 16px;
}

.stat-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: #70757a;
}

.stat-item .material-symbols-outlined {
    font-size: 16px;
}

.comp-card-arrow {
    color: #9aa0a6;
    font-size: 20px;
    transition: transform 0.2s ease;
}

.competition-card:hover .comp-card-arrow {
    transform: translateX(4px);
    color: #1a73e8;
}

/* Filter dropdown count */
.dropdown-item .count {
    font-size: 11px;
    color: #9aa0a6;
    margin-left: 4px;
}

/* ===== Competition List Responsive ===== */
@media (max-width: 768px) {
    .competition-card {
        padding: 14px 16px;
    }

    .comp-card-title {
        font-size: 15px;
    }

    .comp-card-info {
        font-size: 12px;
    }

    .comp-card-stats {
        gap: 12px;
    }
}

@media (max-width: 480px) {
    .competition-card {
        padding: 12px 14px;
    }

    .comp-card-header {
        flex-direction: column;
        gap: 8px;
    }

    .comp-card-course {
        align-self: flex-start;
    }

    .comp-card-title {
        font-size: 14px;
    }

    .comp-card-info {
        font-size: 11px;
    }

    .comp-card-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .comp-card-arrow {
        display: none;
    }
}

/* ===== Ranking Table ===== */
.ranking-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 12px;
    color: #fff;
    margin-bottom: 16px;
}

.ranking-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    font-weight: 600;
}

.ranking-title .material-symbols-outlined {
    font-size: 24px;
}

.ranking-count {
    font-size: 14px;
    opacity: 0.9;
}

.ranking-table-wrapper {
    overflow-x: auto;
    margin-bottom: 20px;
}

.ranking-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid #dfe1e5;
    border-radius: 12px;
    overflow: hidden;
    font-size: 14px;
}

.ranking-table thead {
    background: #f8f9fa;
}

.ranking-table th {
    padding: 14px 16px;
    text-align: left;
    font-weight: 600;
    font-size: 12px;
    color: #5f6368;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid #dfe1e5;
    white-space: nowrap;
}

.ranking-table td {
    padding: 14px 16px;
    vertical-align: middle;
    border-bottom: 1px solid #f1f3f4;
}

.ranking-table .col-rank { width: 60px; text-align: center; }
.ranking-table .col-name { width: 20%; min-width: 120px; }
.ranking-table .col-team { width: 15%; min-width: 80px; }
.ranking-table .col-record { width: 20%; min-width: 100px; }
.ranking-table .col-comp { width: 30%; min-width: 150px; }

/* Ranking row styles */
.ranking-row {
    transition: all 0.2s ease;
}

.ranking-row:hover {
    background: linear-gradient(90deg, #f8f9ff 0%, #fff 100%);
}

.ranking-row.top-1 {
    background: linear-gradient(90deg, #fff9e6 0%, #fff 50%);
}

.ranking-row.top-1:hover {
    background: linear-gradient(90deg, #fff3cc 0%, #fff 50%);
}

.ranking-row.top-2 {
    background: linear-gradient(90deg, #f5f5f5 0%, #fff 50%);
}

.ranking-row.top-2:hover {
    background: linear-gradient(90deg, #ebebeb 0%, #fff 50%);
}

.ranking-row.top-3 {
    background: linear-gradient(90deg, #fff5ee 0%, #fff 50%);
}

.ranking-row.top-3:hover {
    background: linear-gradient(90deg, #ffeee0 0%, #fff 50%);
}

/* Rank cell */
.ranking-table .rank-cell {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ranking-table .rank-cell .medal {
    width: 32px;
    height: 32px;
}

.ranking-table .rank-num {
    font-size: 18px;
    font-weight: 700;
    color: #5f6368;
}

/* Swimmer info in ranking */
.swimmer-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.swimmer-info .swimmer-name {
    font-weight: 600;
    color: #202124;
    cursor: default;
}

.swimmer-info .swimmer-name.nickname-link {
    color: #1a73e8;
    cursor: pointer;
}

.swimmer-info .swimmer-name.nickname-link:hover {
    text-decoration: underline;
}

.swimmer-info .swimmer-meta {
    font-size: 11px;
    color: #70757a;
}

/* Comp cell in ranking */
.comp-cell {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.comp-cell .comp-name {
    color: #1a73e8;
    font-weight: 500;
    cursor: pointer;
    font-size: 13px;
}

.comp-cell .comp-name:hover {
    text-decoration: underline;
}

.comp-cell .comp-meta {
    font-size: 11px;
    color: #70757a;
}

/* ===== Ranking Table Responsive ===== */
@media (max-width: 768px) {
    .ranking-info {
        flex-direction: column;
        gap: 8px;
        text-align: center;
        padding: 14px 16px;
    }

    .ranking-title {
        font-size: 16px;
    }

    .ranking-table {
        font-size: 12px;
    }

    .ranking-table th,
    .ranking-table td {
        padding: 10px 12px;
    }

    .ranking-table .col-comp {
        display: none;
    }

    .ranking-table .rank-cell .medal {
        width: 28px;
        height: 28px;
    }

    .ranking-table .rank-num {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .ranking-info {
        padding: 12px 14px;
    }

    .ranking-title {
        font-size: 14px;
    }

    .ranking-title .material-symbols-outlined {
        font-size: 20px;
    }

    .ranking-table th,
    .ranking-table td {
        padding: 8px 10px;
    }

    .ranking-table .col-rank { width: 50px; }

    .ranking-table .rank-cell .medal {
        width: 24px;
        height: 24px;
    }

    .ranking-table .rank-num {
        font-size: 14px;
    }

    .swimmer-info .swimmer-name {
        font-size: 12px;
    }

    .record-char {
        height: 14px;
    }
}


/* ===== Competition Detail Layout ===== */
.comp-detail-layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.comp-detail-poster {
    flex-shrink: 0;
    width: 180px;
    height: 252px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    background: #f1f3f4;
}

.comp-detail-poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.comp-detail-poster .no-poster {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: linear-gradient(135deg, #e8eaed 0%, #dadce0 100%);
    color: #9aa0a6;
}

.comp-detail-poster .no-poster .material-symbols-outlined {
    font-size: 48px;
    opacity: 0.5;
}

.comp-detail-poster .no-poster span:last-child {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.5px;
}

.comp-detail-info {
    flex: 1;
    min-width: 0;
}

.comp-detail-info .records-table {
    width: 100%;
}

.comp-detail-info .records-table td {
    padding: 10px 12px;
    vertical-align: top;
}

.comp-detail-info .records-table td:first-child {
    font-weight: 500;
    white-space: nowrap;
}

@media (max-width: 768px) {
    .comp-detail-layout {
        gap: 16px;
    }

    .comp-detail-poster {
        width: 140px;
        height: 196px;
        border-radius: 10px;
    }

    .comp-detail-poster .no-poster .material-symbols-outlined {
        font-size: 36px;
    }

    .comp-detail-poster .no-poster span:last-child {
        font-size: 10px;
    }

    .comp-detail-info .records-table td {
        padding: 8px 10px;
        font-size: 13px;
    }

    .comp-detail-info .records-table td:first-child {
        width: 80px !important;
    }
}

@media (max-width: 480px) {
    .comp-detail-layout {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .comp-detail-poster {
        width: 160px;
        height: 224px;
    }

    .comp-detail-info {
        width: 100%;
    }

    .comp-detail-info .records-table td {
        padding: 8px;
        font-size: 13px;
    }

    .comp-detail-info .records-table td:first-child {
        width: 80px !important;
    }
}

/* ===== Event Filter List ===== */
.event-filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.event-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 500;
    color: #3c4043;
    background: #f8f9fa;
    border: 1px solid #dadce0;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.event-badge:hover {
    background: #e8f0fe;
    border-color: #d2e3fc;
    color: #1a73e8;
}

.event-badge.active {
    background: #1a73e8;
    border-color: #1a73e8;
    color: #fff;
}

.event-badge .event-count {
    font-size: 11px;
    padding: 2px 6px;
    background: rgba(0,0,0,0.08);
    border-radius: 10px;
}

.event-badge.active .event-count {
    background: rgba(255,255,255,0.25);
}

/* Card Header Hint */
.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.card-header-hint {
    font-size: 12px;
    color: #9aa0a6;
    font-weight: 400;
}
@media (max-width: 480px) {
    .card-header {
        padding: 8px 12px;
        flex-direction: column;
        align-items: flex-start;
    }
    .card-header h3, .card-header h3 span {
        font-size: 1.2rem;
    }
}
/* ===== Records Header ===== */
.records-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 12px;
}

.records-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #202124;
}

.records-view-filter {
    display: flex;
    gap: 4px;
    background: #f1f3f4;
    padding: 4px;
    border-radius: 8px;
}

.view-btn {
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 500;
    color: #5f6368;
    background: transparent;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.view-btn:hover {
    color: #202124;
    background: rgba(0,0,0,0.05);
}

.view-btn.active {
    background: #fff;
    color: #1a73e8;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* Records Count */
.records-count {
    font-size: 13px;
    color: #5f6368;
    margin-bottom: 12px;
    padding: 8px 12px;
    background: #f8f9fa;
    border-radius: 6px;
}

.records-count strong {
    color: #1a73e8;
}

@media (max-width: 768px) {
    .event-filter-list {
        gap: 6px;
    }

    .event-badge {
        padding: 6px 10px;
        font-size: 12px;
    }

    .event-badge .event-count {
        font-size: 10px;
        padding: 1px 5px;
    }

    .records-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .records-view-filter {
        width: 100%;
    }

    .view-btn {
        flex: 1;
        padding: 8px 12px;
        font-size: 12px;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .event-badge {
        padding: 5px 8px;
        font-size: 11px;
        gap: 4px;
    }

    .event-badge .event-count {
        font-size: 9px;
        padding: 1px 4px;
    }

    .card-header-hint {
        display: none;
    }

    .view-btn {
        padding: 6px 8px;
        font-size: 11px;
    }
}

/* ===== My Record Search ===== */
.my-record-search {
    margin-bottom: 16px;
}

.search-input-group {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}

.search-input-group input {
    flex: 1;
    padding: 12px 16px;
    font-size: 15px;
    border: 2px solid #e8eaed;
    border-radius: 8px;
    outline: none;
    transition: border-color 0.2s;
}

.search-input-group input:focus {
    border-color: #1a73e8;
}

.search-input-group .btn {
    display: flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

.search-hint {
    font-size: 12px;
    color: #9aa0a6;
    margin: 0;
}

/* My Record Result */
.my-record-result {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #e8eaed;
}

.my-record-header {
    font-size: 14px;
    color: #202124;
    margin-bottom: 12px;
    padding: 10px 14px;
    background: #e8f0fe;
    border-radius: 8px;
}

.my-record-header .count {
    color: #1a73e8;
    font-weight: 600;
}

.my-record-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.my-record-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 14px;
    background: #f8f9fa;
    border-radius: 8px;
    border-left: 3px solid #1a73e8;
}

.my-record-event {
    font-size: 13px;
    color: #5f6368;
}

.my-record-detail {
    display: flex;
    align-items: center;
    gap: 12px;
}

.my-record-time {
    font-size: 18px;
    font-weight: 700;
    color: #1a73e8;
    font-variant-numeric: tabular-nums;
}

.my-record-ranking {
    font-size: 13px;
    color: #5f6368;
}

.no-my-record {
    text-align: center;
    padding: 30px 20px;
    color: #9aa0a6;
}

.no-my-record .material-symbols-outlined {
    font-size: 48px;
    margin-bottom: 8px;
    opacity: 0.5;
}

.no-my-record p {
    margin: 0;
    font-size: 14px;
}

/* ===== Record Filter Group ===== */
.record-filter-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.filter-select-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.filter-select {
    flex: 1;
    min-width: 100px;
}

.filter-select label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
    margin-bottom: 4px;
}

.filter-select select {
    width: 100%;
    padding: 10px 12px;
    font-size: 14px;
    border: 0px solid #dadce0;
    border-radius: 8px;
    background: #fff;
    color: #202124;
    cursor: pointer;
    outline: none;
    transition: border-color 0.2s;
}

.filter-select select:focus {
    border-color: #1a73e8;
}

.filter-select .btn {
    width: 100%;
    margin-top: 18px;
}

#recordFilterGroup .filter-select-row:first-of-type {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
}
#recordFilterGroup .filter-select-row:last-of-type {
    display: grid;
    grid-template-columns: 1fr;
}
#recordFilterGroup .filter-select-row .filter-buttons {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

#recordFilterGroup .filter-select-row .filter-select {
    padding: 0px ;
}

@media (max-width: 768px) {
    .filter-select-row {
        gap: 8px;
    }

    .filter-select {
        min-width: 80px;
    }

    .filter-select select {
        padding: 8px 10px;
        font-size: 13px;
    }

    .search-input-group input {
        padding: 10px 12px;
        font-size: 14px;
    }

    .my-record-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .my-record-detail {
        width: 100%;
        justify-content: space-between;
    }
}

@media (max-width: 480px) {
    .filter-select-row {
        flex-direction: column;
        gap: 10px;
    }

    .filter-select {
        min-width: 100%;
    }

    .filter-select .btn {
        margin-top: 0;
    }

    .search-input-group {
        flex-direction: column;
    }

    .search-input-group .btn {
        justify-content: center;
    }
}

/* ===== Group Result Section (나의 기록 검색 결과) ===== */
.group-result-section {
    margin-bottom: 24px;
    border: 1px solid #e8eaed;
    border-radius: 12px;
    overflow: hidden;
}

.group-result-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
}

.group-result-title .group-info {
    font-size: 13px;
    opacity: 0.9;
}

.group-result-title .event-info {
    font-size: 16px;
    font-weight: 600;
}

.group-result-table {
    width: 100%;
    border-collapse: collapse;
}

.group-result-table thead {
    background: #f8f9fa;
}

.group-result-table th {
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 600;
    color: #5f6368;
    text-align: center;
    border-bottom: 2px solid #e8eaed;
}

.group-result-table td {
    padding: 12px;
    font-size: 14px;
    text-align: center;
    border-bottom: 1px solid #f1f3f4;
    color: #202124;
}

.group-result-table tbody tr:last-child td {
    border-bottom: none;
}

.group-result-table tbody tr:hover {
    background: #f8f9fa;
}

.group-result-table tbody tr.my-row {
    background: #e8f0fe;
}

.group-result-table tbody tr.my-row:hover {
    background: #d2e3fc;
}

.group-result-table .col-lane {
    width: 60px;
    color: #5f6368;
}

.group-result-table .col-name {
    text-align: left;
    font-weight: 500;
}

.group-result-table .col-club {
    text-align: left;
    color: #5f6368;
    font-size: 13px;
}

.group-result-table .col-record {
    font-weight: 700;
    font-size: 16px;
    color: #1a73e8;
    font-variant-numeric: tabular-nums;
}

.group-result-table .col-rank {
    width: 70px;
}

.group-result-table .medal {
    font-size: 20px;
}

.me-badge {
    display: inline-block;
    padding: 2px 6px;
    font-size: 10px;
    font-weight: 600;
    color: #fff;
    background: #1a73e8;
    border-radius: 4px;
    margin-left: 6px;
    vertical-align: middle;
}

.my-record-header {
    display: flex;
    align-items: center;
    gap: 8px;
}

.my-record-header .material-symbols-outlined {
    font-size: 24px;
    color: #1a73e8;
}

@media (max-width: 768px) {
    .group-result-title {
        flex-direction: column;
        gap: 4px;
        text-align: center;
    }

    .group-result-table th,
    .group-result-table td {
        padding: 8px 6px;
        font-size: 12px;
    }

    .group-result-table .col-record {
        font-size: 14px;
    }

    .group-result-table .col-lane {
        width: 40px;
    }

    .group-result-table .col-rank {
        width: 50px;
    }

    .group-result-table .medal {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .group-result-table th,
    .group-result-table td {
        padding: 6px 4px;
        font-size: 11px;
    }

    .group-result-table .col-club {
        display: none;
    }

    .group-result-table .col-record {
        font-size: 13px;
    }

    .me-badge {
        font-size: 8px;
        padding: 1px 4px;
    }
}

/* ===== Record Sheet (기록지보기) ===== */
.filter-select.filter-buttons {
    display: flex;
    gap: 8px;
    align-items: flex-end;
}

.filter-select.filter-buttons .btn {
    flex: 1;
    white-space: nowrap;
}

.record-sheet-result {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 2px solid #1a73e8;
}

.record-sheet-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background: linear-gradient(135deg, #1a73e8 0%, #0d47a1 100%);
    color: #fff;
    border-radius: 8px 8px 0 0;
    font-size: 14px;
}

.record-sheet-header .material-symbols-outlined:first-child {
    font-size: 20px;
    flex-shrink: 0;
}

.record-sheet-header strong {
    flex: 1;
    font-weight: 600;
    line-height: 1.3;
}

.record-sheet-header .count {
    font-size: 12px;
    opacity: 0.85;
    white-space: nowrap;
    padding: 2px 8px;
    background: rgba(255,255,255,0.15);
    border-radius: 10px;
}

.record-sheet-header .close-sheet-btn {
    color: #fff;
    flex-shrink: 0;
    padding: 4px;
}

.record-sheet-header .close-sheet-btn:hover {
    background: rgba(255,255,255,0.2);
}

.record-sheet-section {
    margin-bottom: 24px;
    border: 1px solid #e8eaed;
    border-radius: 12px;
    overflow: hidden;
}

.record-sheet-section .record-sheet-header {
    border-radius: 12px 12px 0 0;
}

.record-sheet-table {
    width: 100%;
    border-collapse: collapse;
}

.record-sheet-table thead {
    background: #f8f9fa;
}

.record-sheet-table th {
    padding: 12px;
    font-size: 12px;
    font-weight: 600;
    color: #5f6368;
    text-align: center;
    border-bottom: 2px solid #e8eaed;
}

.record-sheet-table td {
    padding: 14px 12px;
    font-size: 14px;
    text-align: center;
    border-bottom: 1px solid #f1f3f4;
    color: #202124;
}

.record-sheet-table tbody tr:last-child td {
    border-bottom: none;
}

.record-sheet-table tbody tr:nth-child(odd) {
    background: #fafafa;
}

.record-sheet-table tbody tr:hover {
    background: #f0f7ff;
}

.record-sheet-table .col-lane {
    width: 60px;
    color: #5f6368;
    font-weight: 500;
}

.record-sheet-table .col-name {
    text-align: left;
    font-weight: 600;
}

.record-sheet-table .col-club {
    text-align: left;
    color: #5f6368;
    font-size: 13px;
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 팀 로고 스타일 */
.club-logo {
    height: 24px;
    width: auto;
    max-width: 80px;
    object-fit: contain;
    vertical-align: middle;
}

.record-sheet-table .col-record {
    font-weight: 700;
}

.record-sheet-table .col-record .record-images {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.record-sheet-table .col-record .record-char {
    height: 20px;
}

.record-sheet-table .col-rank {
    width: 70px;
}

.record-sheet-table .medal {
    font-size: 20px;
}

.no-record-sheet {
    text-align: center;
    padding: 40px 20px;
    color: #9aa0a6;
}

.no-record-sheet .material-symbols-outlined {
    font-size: 48px;
    margin-bottom: 8px;
    opacity: 0.5;
}

.no-record-sheet p {
    margin: 0;
    font-size: 14px;
}

.loading-spinner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 40px 20px;
    color: #1a73e8;
    font-size: 14px;
}

.loading-spinner .material-symbols-outlined {
    font-size: 24px;
}

@keyframes rotating {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.rotating {
    animation: rotating 1s linear infinite;
}

@media (max-width: 768px) {
    .filter-select.filter-buttons {
        flex-direction: column;
        gap: 8px;
    }

    .filter-select.filter-buttons .btn {
        width: 100%;
        justify-content: center;
    }

    .record-sheet-title {
        flex-direction: column;
        gap: 4px;
        text-align: center;
    }

    .record-sheet-table th,
    .record-sheet-table td {
        padding: 10px 8px;
        font-size: 12px;
    }

    .record-sheet-table .col-record .record-char {
        height: 16px;
    }

    .record-sheet-table .col-lane {
        width: 45px;
    }

    .record-sheet-table .col-rank {
        width: 55px;
    }

    .record-sheet-table .medal {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .record-sheet-table th,
    .record-sheet-table td {
        padding: 8px 4px;
        font-size: 11px;
    }

    .record-sheet-table .col-club {
        display: none;
    }

    .record-sheet-table .col-record .record-char {
        height: 14px;
    }

    .record-sheet-header {
        font-size: 12px;
        padding: 10px 12px;
        flex-wrap: wrap;
    }

    .record-sheet-header strong {
        flex-basis: calc(100% - 80px);
    }
}

/* ===== TOP99 Page Styles ===== */
.top99-filter-group {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.top99-filter-group .filter-select {
    display: flex;
    padding: 0px;
    gap: 4px;
    min-width: 10px;
}

.top99-filter-group .filter-select label {
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
}

.top99-filter-group .filter-select select {
    padding: 10px 12px;
    font-size: 14px;
    border: 0px solid #dfe1e5;
    border-radius: 8px;
    background: #fff;
    color: #202124;
    cursor: pointer;
    transition: all 0.2s;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f6368' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}

.top99-filter-group .filter-select select:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

/* TOP99 테이블 */
.top99-table-wrapper {
    overflow-x: auto;
}

.top99-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.top99-table thead {
    background: #f8f9fa;
}

.top99-table th {
    padding: 12px 8px;
    text-align: left;
    font-weight: 500;
    font-size: 13px;
    color: #5f6368;
    border-bottom: 1px solid #dfe1e5;
}

.top99-table td {
    padding: 10px 8px;
    font-size: 14px;
    color: #202124;
    border-bottom: 1px solid #ebebeb;
    vertical-align: middle;
}

.top99-table tbody tr:hover td {
    background: #f8f9fa;
}

.top99-table tbody tr:last-child td {
    border-bottom: none;
}

/* 메달 순위 행 */
.top99-table tbody tr.rank-1 td {
    background: linear-gradient(90deg, #fff9e6 0%, #fff 50%);
}

.top99-table tbody tr.rank-2 td {
    background: linear-gradient(90deg, #f5f5f5 0%, #fff 50%);
}

.top99-table tbody tr.rank-3 td {
    background: linear-gradient(90deg, #fff5eb 0%, #fff 50%);
}

/* 컬럼 너비 */
.top99-table .col-rank {
    width: 10%;
    text-align: center;
}

.top99-table .col-name {
    width: 18%; text-align: center;
}

.top99-table .col-club {
    width: 18%;
    color: #5f6368;
    font-size: 13px;
}

.top99-table .col-record {
    width: 18%;
    text-align: center;
    font-weight: 700;
}

.top99-table .col-comp {
    width: 36%;
}

.top99-table .col-rank .medal-icon {
    font-size: 20px;
}

.top99-table .col-name {
    font-weight: 500;
    color: #202124;
}

.top99-table .col-comp .comp-name {
    display: block;
    cursor: pointer;
    color: #202124;
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.top99-table .col-comp .comp-name:hover {
    color: #1a73e8;
    text-decoration: underline;
}

.top99-table .col-comp .comp-date {
    display: block;
    font-size: 11px;
    color: #5f6368;
}

.top99-table .col-record .record-images {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.top99-table .col-record .record-char {
    height: 16px;
}

/* 로딩/빈 데이터 셀 */
.top99-table .loading-cell,
.top99-table .no-data-cell {
    text-align: center;
    padding: 40px 16px;
    color: #5f6368;
}

.top99-table .loading-cell .material-symbols-outlined,
.top99-table .no-data-cell .material-symbols-outlined {
    display: block;
    font-size: 32px;
    margin-bottom: 8px;
    color: #dadce0;
}

/* 랭킹 카운트 */
.ranking-count {
    font-size: 13px;
    color: #5f6368;
    font-weight: 400;
}

/* 모바일 반응형 */
@media (max-width: 768px) {

    .top99-filter-group .filter-select {
        min-width: calc(50% - 4px);
        flex: unset;
    }

    .top99-filter-group .filter-select select {
        padding: 8px 10px;
        font-size: 13px;
    }

    .top99-table th,
    .top99-table td {
        padding: 8px 4px;
        font-size: 12px;
    }

    .top99-table .col-rank {
        width: 12%;
    }

    .top99-table .col-name {
        width: 22%;
    }

    .top99-table .col-club {
        width: 20%;
        font-size: 11px;
    }

    .top99-table .col-record {
        width: 20%;
    }

    .top99-table .col-comp {
        width: 26%;
    }

    .top99-table .col-rank .medal-icon {
        font-size: 16px;
    }

    .top99-table .col-comp .comp-name {
        font-size: 11px;
    }

    .top99-table .col-comp .comp-date {
        font-size: 10px;
    }

    .top99-table .col-record .record-char {
        height: 13px;
    }

    .top99-table .club-logo {
        height: 18px;
        max-width: 50px;
    }
}

@media (max-width: 480px) {
    .top99-filter-group .filter-select {
        min-width: calc(50% - 4px);
    }

    .top99-table .col-club {
        display: none;
    }

    .top99-table .col-rank {
        width: 12%;
    }

    .top99-table .col-name {
        width: 15%; 
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .top99-table .col-record {
        width: 20%;
    }

    .top99-table .col-comp {
        width: auto
    }
}


/* ===== TOP99 Page Styles ===== */
.top99-filter-group {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.top99-filter-group .filter-select {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 100px;
}

.top99-filter-group .filter-select label {
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
}

.top99-filter-group .filter-select select {
    padding: 10px 12px;
    font-size: 14px;
    border: 0px solid #dfe1e5;
    border-radius: 8px;
    background: #fff;
    color: #202124;
    cursor: pointer;
    transition: all 0.2s;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f6368' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}

.top99-filter-group .filter-select select:hover {
    border-color: #1a73e8;
}

.top99-filter-group .filter-select select:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

/* TOP99 테이블 */
.top99-table-wrapper {
    overflow-x: auto;
}

.top99-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.top99-table thead {
    background: #f8f9fa;
}

.top99-table th {
    padding: 12px 8px;
    text-align: left;
    font-weight: 500;
    font-size: 13px;
    color: #5f6368;
    border-bottom: 1px solid #dfe1e5;
}

.top99-table td {
    padding: 10px 8px;
    font-size: 14px;
    color: #202124;
    border-bottom: 1px solid #ebebeb;
    vertical-align: middle;
}

.top99-table tbody tr:hover td {
    background: #f8f9fa;
}

.top99-table tbody tr:last-child td {
    border-bottom: none;
}

/* 메달 순위 행 */
.top99-table tbody tr.rank-1 td {
    background: linear-gradient(90deg, #fff9e6 0%, #fff 50%);
}

.top99-table tbody tr.rank-2 td {
    background: linear-gradient(90deg, #f5f5f5 0%, #fff 50%);
}

.top99-table tbody tr.rank-3 td {
    background: linear-gradient(90deg, #fff5eb 0%, #fff 50%);
}

/* 컬럼 너비 */
.top99-table .col-rank {
    width: 10%;
    text-align: center;
}

.top99-table .col-name {
    width: 18%; text-align: center;
}

.top99-table .col-club {
    width: 18%;
    color: #5f6368;
    font-size: 13px;
}

.top99-table .col-record {
    width: 18%;
    text-align: center;
    font-weight: 700;
}

.top99-table .col-comp {
    width: 36%;
}

.top99-table .col-rank .medal-icon {
    font-size: 20px;
}

.top99-table .col-name {
    font-weight: 500;
    color: #202124;
}

.top99-table .col-comp .comp-name {
    display: block;
    cursor: pointer;
    color: #202124;
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.top99-table .col-comp .comp-name:hover {
    color: #1a73e8;
    text-decoration: underline;
}

.top99-table .col-comp .comp-date {
    display: block;
    font-size: 11px;
    color: #5f6368;
}

.top99-table .col-record .record-images {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.top99-table .col-record .record-char {
    height: 16px;
}

/* 로딩/빈 데이터 셀 */
.top99-table .loading-cell,
.top99-table .no-data-cell {
    text-align: center;
    padding: 40px 16px;
    color: #5f6368;
}

.top99-table .loading-cell .material-symbols-outlined,
.top99-table .no-data-cell .material-symbols-outlined {
    display: block;
    font-size: 32px;
    margin-bottom: 8px;
    color: #dadce0;
}

/* 랭킹 카운트 */
.ranking-count {
    font-size: 13px;
    color: #5f6368;
    font-weight: 400;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .top99-filter-group {
        gap: 8px;
    }

    .top99-filter-group .filter-select select {
        padding: 8px 10px;
        font-size: 13px;
    }

    .top99-table th,
    .top99-table td {
        padding: 8px 4px;
        font-size: 12px;
    }

    .top99-table .col-rank {
        width: 12%;
    }

    .top99-table .col-name {
        width: 22%;
    }

    .top99-table .col-club {
        width: 20%;
        font-size: 11px;
    }

    .top99-table .col-record {
        width: 20%;
    }

    .top99-table .col-comp {
        width: 26%;
    }

    .top99-table .col-rank .medal-icon {
        font-size: 16px;
    }

    .top99-table .col-comp .comp-name {
        font-size: 11px;
    }

    .top99-table .col-comp .comp-date {
        font-size: 10px;
    }

    .top99-table .col-record .record-char {
        height: 13px;
    }

    .top99-table .club-logo {
        height: 18px;
        max-width: 50px;
    }
}

@media (max-width: 480px) {
    .top99-filter-group .filter-select {
        min-width: calc(50% - 4px);
    }

    .top99-table .col-club {
        display: none;
    }

    .top99-table .col-rank {
        width: 12%;
    }

    .top99-table .col-name {
        width: 15%; 
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .top99-table .col-record {
        width: 20%;
    }

    .top99-table .col-comp {
        width: auto
    }
}

/* ===== TOP99 View Toggle & Card Styles ===== */
.view-toggle-group {
    display: flex;
    gap: 4px;
}

.view-toggle-btn {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    border: 1px solid #dfe1e5;
    background: #fff;
    color: #5f6368;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

.view-toggle-btn:first-child {
    border-radius: 6px 0 0 6px;
}

.view-toggle-btn:last-child {
    border-radius: 0 6px 6px 0;
    border-left: none;
}

.view-toggle-btn .material-symbols-outlined {
    font-size: 16px;
}

.view-toggle-btn:hover {
    background: #f8f9fa;
}

.view-toggle-btn.active {
    background: #1a73e8;
    color: #fff;
    border-color: #1a73e8;
}

.view-toggle-btn.active + .view-toggle-btn {
    border-left: 1px solid #dfe1e5;
}

/* TOP99 Card View Container */
.view-card-container {
    display: block;
    width: 100%;
}

/* TOP99 Carousel */
.top99-carousel-wrapper {
    position: relative;
    display: flex;
    align-items: flex-start;
    background: linear-gradient(180deg, #f8f9fa 0%, #fff 100%);
    padding: 50px 0 40px;
    overflow: hidden;
}

.top99-carousel {
    flex: 1;
    perspective: 1000px;
    perspective-origin: center center;
    overflow: visible;
}

.top99-stage,
#top99CarouselStage {
    position: relative;
    width: 100%;
    height: 380px;
    display: flex;
    align-items: center;
    justify-content: center;
    transform-style: preserve-3d;
}

/* TOP99 Carousel Indicators */
.view-card-container .carousel-indicators {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 0px 12px;
}

/* 순위 범위 버튼 */
.rank-range-buttons {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 8px 16px 20px;
    flex-wrap: wrap;
}

.rank-range-btn {
    padding: 8px 16px;
    background: #fff;
    border: 1px solid #dfe1e5;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    color: #5f6368;
    cursor: pointer;
    transition: all 0.2s;
}

.rank-range-btn:hover:not(:disabled) {
    background: #f8f9fa;
    border-color: #1a73e8;
    color: #1a73e8;
}

.rank-range-btn.active {
    background: #1a73e8;
    border-color: #1a73e8;
    color: #fff;
}

.rank-range-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* 목록형 클릭 가능 행 */
.top99-table .clickable-row {
    cursor: pointer;
    transition: background-color 0.2s;
}

.top99-table .clickable-row:hover {
    background-color: #e8f0fe;
}

.top99-table .clickable-row:active {
    background-color: #d2e3fc;
}

/* TOP99 Card */
.top99-card {
    position: absolute;

    /* ===== 카드 가로 위치 ===== */
    left: 50%;              /* 기준점 (50% = 중앙) */
    margin-left: -130px;    /* 좌우 미세조정: 음수=왼쪽, 양수=오른쪽 (카드폭의 절반) */
                            /* 예: -150px = 더 왼쪽, -110px = 더 오른쪽 */

    /* ===== 카드 세로 위치 ===== */
    top: 50%;               /* 기준점 (50% = 중앙) */
    margin-top: -165px;     /* 상하 미세조정: 음수=위로, 양수=아래로 */
                            /* 예: -200px = 더 위로, -130px = 더 아래로 */

    /* ===== 카드 크기 ===== */
    width: 260px;           /* 카드 너비 (변경시 margin-left도 절반값으로 수정) */
    height: auto;
    min-height: 300px;      /* 카드 최소 높이 */

    background: linear-gradient(145deg, #fff 0%, #f8f9fa 100%);
    border-radius: 16px;
    padding: 24px 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
    text-align: center;
    transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    cursor: pointer;
    border: 2px solid transparent;
    will-change: transform, opacity;
    backface-visibility: hidden;
}

.top99-card.active {
    border-color: #1a73e8;
    box-shadow: 0 16px 48px rgba(26, 115, 232, 0.25);
}

.top99-card.rank-1 {
    background: linear-gradient(145deg, #fffde7 0%, #fff8e1 100%);
    border-color: #FFD700;
}

.top99-card.rank-2 {
    background: linear-gradient(145deg, #fafafa 0%, #f5f5f5 100%);
    border-color: #C0C0C0;
}

.top99-card.rank-3 {
    background: linear-gradient(145deg, #fff3e0 0%, #ffe0b2 100%);
    border-color: #CD7F32;
}

/* Card Rank */
.top99-card .card-rank {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin-bottom: 12px;
}

.top99-card .card-rank .medal-icon {
    font-size: 36px;
    line-height: 1;
}

.top99-card .card-rank .rank-num {
    font-size: 18px;
    font-weight: 700;
    color: #1a73e8;
}

.top99-card.rank-1 .rank-num { color: #B8860B; }
.top99-card.rank-2 .rank-num { color: #757575; }
.top99-card.rank-3 .rank-num { color: #8B4513; }

/* Card Swimmer */
.top99-card .card-swimmer {
    font-size: 20px;
    font-weight: 700;
    color: #202124;
    margin-bottom: 8px;
    word-break: keep-all;
}

/* Card Club */
.top99-card .card-club {
    font-size: 13px;
    color: #5f6368;
    margin-bottom: 16px;
    min-height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.top99-card .card-club .club-logo {
    height: 28px;
    max-width: 80px;
    object-fit: contain;
}

/* Card Record */
.top99-card .card-record {
    margin-bottom: 16px;
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.top99-card .card-record .record-images {
    display: flex;
    justify-content: center;
}

.top99-card .card-record .record-char {
    height: 32px;
}

/* Card Competition */
.top99-card .card-comp {
    padding: 10px;
    background: rgba(26, 115, 232, 0.05);
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s;
}

.top99-card .card-comp:hover {
    background: rgba(26, 115, 232, 0.1);
}

.top99-card .card-comp:hover .comp-name {
    color: #1a73e8;
}

.top99-card .card-comp .comp-name {
    display: block;
    font-size: 12px;
    color: #202124;
    font-weight: 500;
    margin-bottom: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.2s;
}

.top99-card .card-comp .comp-date {
    display: block;
    font-size: 11px;
    color: #9aa0a6;
}

/* TOP99 Loading & Empty */
.top99-loading,
.top99-empty {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: #5f6368;
}

.top99-loading .material-symbols-outlined,
.top99-empty .material-symbols-outlined {
    font-size: 40px;
    color: #dadce0;
}

.top99-loading p,
.top99-empty p {
    margin: 0;
    font-size: 14px;
}

/* TOP99 Card View Mobile */
@media (max-width: 768px) {

    .view-toggle-btn {
        padding: 5px 8px;
        font-size: 11px;
    }

    .view-toggle-btn .material-symbols-outlined {
        font-size: 14px;
    }

    .top99-carousel-wrapper {
        padding: 30px 0 20px;
    }

    .top99-stage,
    #top99CarouselStage {
        height: 320px;
    }

    .top99-card {
        /* 태블릿: 세로 위치 조정 (음수=위로, 양수=아래로) */
        margin-top: -140px;
        /* 태블릿: 카드 크기 (margin-left는 -110px = 220/2) */
        width: 220px;
        margin-left: -110px;
        padding: 20px 16px;
    }

    .top99-card .card-rank .medal-icon {
        font-size: 30px;
    }

    .top99-card .card-rank .rank-num {
        font-size: 16px;
    }

    .top99-card .card-swimmer {
        font-size: 18px;
    }

    .top99-card .card-club {
        font-size: 12px;
    }

    .top99-card .card-club .club-logo {
        height: 24px;
        max-width: 60px;
    }

    .top99-card .card-record .record-char {
        height: 28px;
    }

    .top99-card .card-comp .comp-name {
        font-size: 11px;
    }

    .top99-card .card-comp .comp-date {
        font-size: 10px;
    }

    .rank-range-buttons {
        gap: 6px;
        padding: 8px 12px 16px;
    }

    .rank-range-btn {
        padding: 6px 12px;
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .view-toggle-btn span:not(.material-symbols-outlined) {
        display: none;
    }

    .view-toggle-btn {
        padding: 6px 10px;
    }

    .top99-carousel-wrapper {
        padding: 3vh 10vw 5vh 10vw;
        min-height: 58vh;
    }

    .top99-stage,
    #top99CarouselStage {
        height: 280px;
    }

    .top99-card {
        /* 모바일: 카드 크기 (margin-left는 -95px = 190/2) */
        width: 190px;
        margin-left: -95px;
        padding: 16px 12px;
        /* 모바일: 세로 위치 조정 (음수=위로, 양수=아래로) */
        margin-top: -130px;
    }

    .top99-card .card-rank {
        margin-bottom: 8px;
    }

    .top99-card .card-rank .medal-icon {
        font-size: 26px;
    }

    .top99-card .card-rank .rank-num {
        font-size: 14px;
    }

    .top99-card .card-swimmer {
        font-size: 16px;
    }

    .top99-card .card-club {
        font-size: 11px;
        margin-bottom: 12px;
    }

    .top99-card .card-club .club-logo {
        height: 22px;
        max-width: 55px;
    }

    .top99-card .card-record .record-char {
        height: 24px;
    }

    .top99-card .card-comp {
        padding: 8px;
    }

    .top99-card .card-comp .comp-name {
        font-size: 10px;
    }

    .top99-card .card-comp .comp-date {
        font-size: 9px;
    }

    .rank-range-buttons {
        gap: 4px;
        padding: 6px 8px 12px;
    }

    .rank-range-btn {
        padding: 5px 10px;
        font-size: 11px;
        border-radius: 16px;
    }
}


/* ===== Best Club Page Styles ===== */
.bestclub-filter-group {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.bestclub-filter-group .filter-select {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 120px;
}

.bestclub-filter-group .filter-select label {
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
}

.bestclub-filter-group select {
    padding: 10px 12px;
    font-size: 14px;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    background: #fff;
    color: #202124;
    cursor: pointer;
    transition: all 0.2s;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f6368' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}

.bestclub-filter-group .filter-select select:hover {
    border-color: #1a73e8;
}

.bestclub-filter-group .filter-select select:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

/* 최강클럽 목록 */
.bestclub-list {
    padding: 0;
}

.bestclub-list .loading-cell,
.bestclub-list .no-data-cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 16px;
    color: #5f6368;
    text-align: center;
}

.bestclub-list .loading-cell .material-symbols-outlined,
.bestclub-list .no-data-cell .material-symbols-outlined {
    font-size: 32px;
    margin-bottom: 8px;
    color: #dadce0;
}

/* 클럽 아이템 */
.bestclub-item {
    display: flex;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid #e8eaed;
    transition: background 0.2s;
}

.bestclub-item:last-child {
    border-bottom: none;
}

.bestclub-item:hover {
    background: #f8f9fa;
}

/* 메달 순위 배경 */
.bestclub-item.rank-1 {
    background: linear-gradient(90deg, #fff9e6 0%, #fff 30%);
}

.bestclub-item.rank-2 {
    background: linear-gradient(90deg, #f5f5f5 0%, #fff 30%);
}

.bestclub-item.rank-3 {
    background: linear-gradient(90deg, #fff5eb 0%, #fff 30%);
}

.bestclub-item .club-rank {
    font-size: 24px;
    min-width: 50px;
    text-align: center;
}

.bestclub-item .club-info {
    flex: 1;
    min-width: 0;
}

.bestclub-item .club-name-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.bestclub-item .club-logo {
    height: 28px;
    width: auto;
    max-width: 60px;
    object-fit: contain;
}

.bestclub-item .club-name {
    font-size: 16px;
    font-weight: 600;
    color: #1a73e8;
    cursor: pointer;
}

.bestclub-item .club-name:hover {
    text-decoration: underline;
}

.bestclub-item .club-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.bestclub-item .stat-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: #5f6368;
}

.bestclub-item .stat-item .material-symbols-outlined {
    font-size: 16px;
}

.bestclub-item .stat-item.gold { color: #B8860B; }
.bestclub-item .stat-item.silver { color: #808080; }
.bestclub-item .stat-item.bronze { color: #CD7F32; }

.bestclub-item .club-score {
    text-align: right;
    min-width: 80px;
}

.bestclub-item .club-score .score-value {
    display: block;
    font-size: 20px;
    font-weight: 700;
    color: #1a73e8;
}

.bestclub-item .club-score .score-label {
    font-size: 12px;
    color: #5f6368;
}

/* 점수 산정 기준 */
.score-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
}

.score-info-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 12px;
    background: #f8f9fa;
    border-radius: 8px;
}

.score-info-item .score-label {
    font-size: 13px;
    color: #5f6368;
}

.score-info-item .score-value {
    font-size: 14px;
    font-weight: 600;
    color: #1a73e8;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .bestclub-item {
        padding: 12px 16px;
    }

    .bestclub-item .club-rank {
        font-size: 20px;
        min-width: 40px;
    }

    .bestclub-item .club-name {
        font-size: 14px;
    }

    .bestclub-item .club-stats {
        gap: 8px;
    }

    .bestclub-item .stat-item {
        font-size: 12px;
    }

    .bestclub-item .club-score {
        min-width: 60px;
    }

    .bestclub-item .club-score .score-value {
        font-size: 16px;
    }

    .score-info-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .bestclub-item .club-stats .stat-item:nth-child(1),
    .bestclub-item .club-stats .stat-item:nth-child(2) {
        display: none;
    }

    .bestclub-item .club-logo {
        height: 22px;
        max-width: 45px;
    }
}

/* ===== Korean Record Page Styles ===== */
.korrecord-filter-group {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.korrecord-filter-group .filter-select label {
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
}

.korrecord-filter-group select {
    padding: 10px 12px;
    font-size: 14px;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    background: #fff;
    color: #202124;
    cursor: pointer;
    transition: all 0.2s;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f6368' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}

.korrecord-filter-group select:hover {
    border-color: #1a73e8;
}

.korrecord-filter-group select:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

/* 한국신기록 헤더 */
.korrecord-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 12px 12px 0 0;
    margin-bottom: 0;
}

.korrecord-header h3 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #202124;
}

.korrecord-header h3 .material-symbols-outlined {
    color: #fbbc04;
    font-size: 24px;
}

/* 3D 캐러셀 래퍼 */
.korrecord-carousel-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 60px 0 40px;
    min-height: 420px;
    overflow: hidden;
}

/* 캐러셀 뷰포트 */
.korrecord-carousel {
    flex: 1;
    perspective: 1000px;
    perspective-origin: center center;
    overflow: visible;
}

/* 캐러셀 스테이지 */
.carousel-stage {
    position: relative;
    width: 100%;
    height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    transform-style: preserve-3d;
}

/* 화살표 버튼 */
.carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 200;
    width: 48px;
    height: 48px;
    border: 1px solid #e8eaed;
    background: #fff;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.carousel-prev {
    left: 20px;
}

.carousel-next {
    right: 20px;
}

.carousel-arrow:hover {
    background: #f8f9fa;
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    border-color: #1a73e8;
}

.carousel-arrow .material-symbols-outlined {
    font-size: 28px;
    color: #5f6368;
}

.carousel-arrow:hover .material-symbols-outlined {
    color: #1a73e8;
}

/* 한국신기록 카드 */
.korrecord-card {
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -132px;
    margin-top: -180px;
    width: 264px;
    height: 360px;
    background: linear-gradient(180deg, #fffdf7 0%, #fff 30%);
    border-radius: 20px;
    padding: 20px 24px 28px;
    border: 1px solid #e8eaed;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    cursor: pointer;
    backface-visibility: hidden;
    transform-style: preserve-3d;
}

.korrecord-card.active {
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(251, 188, 4, 0.15);
    border-color: #fbbc04;
}

/* 트로피 아이콘 */
.korrecord-card .card-crown {
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #ffd700 0%, #ffb800 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(255, 184, 0, 0.4);
    border: 3px solid #fff;
}

.korrecord-card .card-crown .material-symbols-outlined {
    font-size: 26px;
    color: #fff;
}

/* 연령대 뱃지 */
.korrecord-card .card-age {
    display: inline-block;
    padding: 8px 20px;
    margin-top: 16px;
    background: linear-gradient(135deg, #1a73e8 0%, #4285f4 100%);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    border-radius: 25px;
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
}

/* 선수명 */
.korrecord-card .card-swimmer {
    font-size: 22px;
    font-weight: 800;
    color: #202124;
    line-height: 1.3;
    margin-top: 2px;
}

/* 소속팀 */
.korrecord-card .card-club {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 14px;
    color: #5f6368;
    font-weight: 500;
}

.korrecord-card .card-club .club-logo {
    height: 32px;
    max-width: 80px;
    object-fit: contain;
    border-radius: 4px;
}

/* 기록 (큰 사이즈) */
.korrecord-card .card-record {
    padding: 12px 0;
    flex: 1;
    display: flex;
    align-items: center;
}

.korrecord-card .card-record .record-images {
    display: flex;
    align-items: center;
    justify-content: center;
}

.korrecord-card .card-record .record-char {
    height: 38px;
}

/* 대회정보 */
.korrecord-card .card-comp {
    cursor: pointer;
    padding-top: 12px;
    border-top: 1px solid #ebebeb;
    width: 100%;
    transition: color 0.2s;
}

.korrecord-card .card-comp:hover .comp-name {
    color: #1a73e8;
    text-decoration: underline;
}

.korrecord-card .card-comp .comp-name {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #202124;
    line-height: 1.4;
    margin-bottom: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.korrecord-card .card-comp .comp-date {
    display: block;
    font-size: 12px;
    color: #5f6368;
}

/* 캐러셀 인디케이터 */
.carousel-indicators {
    display: flex;
    justify-content: center;
    gap: 12px;
    padding: 16px 0 24px;
    background: transparent;
}

.indicator-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #dadce0;
    cursor: pointer;
    transition: all 0.3s;
}

.indicator-dot:hover {
    background: #9aa0a6;
    transform: scale(1.2);
}

.indicator-dot.active {
    background: #fbbc04;
    transform: scale(1.3);
    box-shadow: 0 2px 8px rgba(251, 188, 4, 0.5);
}

/* 로딩/빈 상태 */
.korrecord-loading,
.korrecord-empty {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px;
    color: #5f6368;
    text-align: center;
}

.korrecord-loading .material-symbols-outlined,
.korrecord-empty .material-symbols-outlined {
    font-size: 56px;
    margin-bottom: 16px;
    color: #dadce0;
}

.korrecord-loading p,
.korrecord-empty p {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
}

/* 신기록 카운트 */
.record-count {
    font-size: 13px;
    color: #5f6368;
    font-weight: 400;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .korrecord-filter-group {
        gap: 8px;
    }

    .korrecord-filter-group select {
        padding: 6px 8px;
        font-size: 0.9rem;
    }

    .korrecord-header {
        padding: 12px 16px;
    }

    .korrecord-header h3 {
        font-size: 14px;
    }

    .korrecord-carousel-wrapper {
        padding: 50px 0 30px;
        min-height: 380px;
    }

    .carousel-stage {
        height: 320px;
    }

    .carousel-arrow {
        width: 40px;
        height: 40px;
    }

    .carousel-prev {
        left: 10px;
    }

    .carousel-next {
        right: 10px;
    }

    .carousel-arrow .material-symbols-outlined {
        font-size: 24px;
    }

    .korrecord-card {
        width: 230px;
        height: 320px;
        margin-left: -115px;
        margin-top: -160px;
        padding: 18px 20px 24px;
    }

    .korrecord-card .card-crown {
        width: 42px;
        height: 42px;
        top: -18px;
    }

    .korrecord-card .card-crown .material-symbols-outlined {
        font-size: 22px;
    }

    .korrecord-card .card-age {
        padding: 6px 16px;
        font-size: 13px;
        margin-top: 12px;
    }

    .korrecord-card .card-swimmer {
        font-size: 19px;
    }

    .korrecord-card .card-club {
        font-size: 13px;
    }

    .korrecord-card .card-club .club-logo {
        height: 26px;
        max-width: 65px;
    }

    .korrecord-card .card-record .record-char {
        height: 32px;
    }

    .korrecord-card .card-comp .comp-name {
        font-size: 12px;
    }

    .korrecord-card .card-comp .comp-date {
        font-size: 11px;
    }

    .carousel-indicators {
        padding: 0px 0px 20px 0px;
        gap: 10px;
    }

    .indicator-dot {
        width: 8px;
        height: 8px;
    }
}

@media (max-width: 480px) {
    .korrecord-carousel-wrapper {
        padding: 40px 0 60px 0px;
        min-height: 340px;
        background: transparent;
    }
    
    .korrecord-filter-group {
        gap: 6px;
    }

    .korrecord-filter-group select {
        padding: 5px 6px;
        font-size: 0.9rem;
    }

    .carousel-stage {
        height: 280px;
    }

    .carousel-arrow {
        width: 36px;
        height: 36px;
    }

    .carousel-prev {
        left: 5px;
    }

    .carousel-next {
        right: 5px;
    }

    .carousel-arrow .material-symbols-outlined {
        font-size: 20px;
    }

    .korrecord-card {
        width: 200px;
        height: 280px;
        margin-left: -100px;
        margin-top: -140px;
        padding: 16px 16px 20px;
        gap: 6px;
    }

    .korrecord-card .card-crown {
        width: 38px;
        height: 38px;
        top: -16px;
    }

    .korrecord-card .card-crown .material-symbols-outlined {
        font-size: 20px;
    }

    .korrecord-card .card-age {
        padding: 5px 14px;
        font-size: 12px;
        margin-top: 10px;
    }

    .korrecord-card .card-swimmer {
        font-size: 16px;
    }

    .korrecord-card .card-club {
        font-size: 11px;
    }

    .korrecord-card .card-club .club-logo {
        height: 22px;
        max-width: 55px;
    }

    .korrecord-card .card-record .record-char {
        height: 26px;
    }

    .korrecord-card .card-comp .comp-name {
        font-size: 11px;
    }

    .korrecord-card .card-comp .comp-date {
        font-size: 10px;
    }
}

/* ===== Trend (기록추이) Page Styles ===== */

/* 검색 그룹 */
.trend-search-group {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
@media (max-width: 480px) {
    .trend-search-group {
        gap: 8px;
    }
}

.trend-input-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.trend-name-input {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.trend-name-input label,
.trend-category-btns label {
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
}

.trend-name-input input {
    padding: 10px 14px;
    font-size: 14px;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    background: #fff;
    color: #202124;
    width: 160px;
    transition: all 0.2s;
}

.trend-name-input input:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

.trend-category-btns {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.trend-category-btns .btn-group {
    display: flex;
    gap: 0;
}

.trend-category-btns .btn-category {
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 500;
    border: 1px solid #dfe1e5;
    background: #fff;
    color: #5f6368;
    cursor: pointer;
    transition: all 0.2s;
}

.trend-category-btns .btn-category:first-child {
    border-radius: 8px 0 0 8px;
}

.trend-category-btns .btn-category:last-child {
    border-radius: 0 8px 8px 0;
    border-left: none;
}

.trend-category-btns .btn-category:hover {
    background: #f8f9fa;
}

.trend-category-btns .btn-category.active {
    background: #1a73e8;
    border-color: #1a73e8;
    color: #fff;
}

/* 필터 행 */
.trend-filter-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid #f1f3f4;
}
@media (max-width: 480px) {
    .trend-filter-row {
        padding-top: 6px;
    }
}
.trend-filter-row .filter-select {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 100px;
}

.trend-filter-row .filter-select label {
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
}

.trend-filter-row select {
    padding: 10px 12px;
    font-size: 14px;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    background: #fff;
    color: #202124;
    cursor: pointer;
    transition: all 0.2s;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f6368' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}

.trend-filter-row .filter-select select:hover {
    border-color: #1a73e8;
}

.trend-filter-row .filter-select select:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

/* 차트 컨테이너 */
.trend-chart-container {
    position: relative;
    width: 100%;
    height: 350px;
    padding: 10px 0;
}

/* 통계 카드 */
.trend-stats-card {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: linear-gradient(135deg, #1a73e8 0%, #4285f4 50%, #ea4335 100%);
    border-radius: 12px;
    padding: 31px 24px 15px 24px; margin-top: -40px;
    gap: 16px;
    margin-bottom: 20px;
}

.trend-stats-card .stat-item {
    display: flex; 
    flex-direction: column;
    min-width: 120px;
    text-align: center;
    padding: 16px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    backdrop-filter: blur(10px);
}

.trend-stats-card .stat-item.highlight {
    background: rgba(255, 255, 255, 0.25);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.trend-stats-card .stat-label {
    font-size: 12px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.trend-stats-card .stat-value {
    font-size: 22px;
    font-weight: 700;
    color: #fff;
}

.trend-stats-card .stat-item.highlight .stat-value {
    font-size: 26px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* 안내 메시지 */
.trend-guide {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 60px 20px;
    background: #f8f9fa;
    border-radius: 12px;
    color: #5f6368;
}

.trend-guide .material-symbols-outlined {
    font-size: 32px;
    color: #dadce0;
}

.trend-guide p {
    margin: 0;
    font-size: 14px;
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .trend-input-row {
        flex-direction: column;
        align-items: stretch;
    }

    .trend-name-input {
        width: 100%;
    }

    .trend-name-input input {
        width: 100%;
    }

    .trend-category-btns {
        width: 100%;
    }

    .trend-category-btns .btn-group {
        width: 100%;
    }

    .trend-category-btns .btn-category {
        flex: 1;
        text-align: center;
    }

    .trend-input-row > .btn {
        width: 100%;
        justify-content: center;
    }

    .trend-input-row > .btn-outline {
        width: auto;
    }

    .trend-filter-row .filter-select {
        flex: 1;
        min-width: calc(33% - 8px);
    }

    .trend-chart-container {
        height: 280px;
    }

    .trend-stats-card {
        gap: 10px;
    }

    .trend-stats-card .stat-item {
        min-width: calc(50% - 8px);
        padding: 12px;
    }

    .trend-stats-card .stat-value {
        font-size: 18px;
    }

    .trend-stats-card .stat-item.highlight .stat-value {
        font-size: 20px;
    }
}

@media (max-width: 480px) {
    .trend-filter-row .filter-select {
        min-width: calc(50% - 6px);
    }

    .trend-chart-container {
        height: 240px;
    }

    .trend-stats-card .stat-item {
        min-width: 100%;
    }

    .trend-guide {
        flex-direction: column;
        text-align: center;
        padding: 40px 20px;
    }
}

/* ===== Query Stat (종목별 분포) Page Styles ===== */

/* 필터 그룹 */
.querystat-filter-group {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}

.querystat-filter-group .filter-select label {
    font-size: 12px;
    font-weight: 500;
    color: #5f6368;
}

.querystat-filter-group select {
    padding: 10px 12px;
    font-size: 14px;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    background: #fff;
    color: #202124;
    cursor: pointer;
    transition: all 0.2s;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f6368' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    padding-right: 32px;
}

.querystat-filter-group .filter-select select:hover {
    border-color: #1a73e8;
}

.querystat-filter-group .filter-select select:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

/* 카운트 표시 */
.querystat-count {
    font-size: 13px;
    color: #5f6368;
    font-weight: 500;
}

/* 차트 컨테이너 */
.querystat-chart-container {
    position: relative;
    width: 100%;
    height: 320px;
    padding: 10px 0;
}

/* 나의 기록 입력 */
.querystat-myrecord {
    display: grid;
    grid-template-columns: 60% 37%;
    gap: 12px;
}

.myrecord-input-group {
    display: flex;
    align-items: center; justify-content: space-between;
    background: #f8f9fa;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.2s;
}

.myrecord-input-group:focus-within {
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2);
}

.myrecord-input-group input {
    width: 80%;
    padding: 12px 16px;
    font-size: 1.0rem;
    font-weight: 500;
    border: none;
    background: transparent;
    color: #202124;
    text-align: center;
}

.myrecord-input-group input:focus {
    outline: none;
}

.myrecord-input-group input::placeholder {
    color: #9aa0a6;
    font-weight: 400;
}

.myrecord-input-group .input-suffix {
    padding: 0px 6px;
    font-size: 1.0rem;
    color: #5f6368;
}

/* 순위 결과 */
.querystat-result {
    margin-top: 0px; margin-bottom: 15px;
    padding: 20px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 12px;
    box-shadow: 0px 5px 8px gray;
}

.querystat-result .error {
    color: #fff;
    text-align: center;
    margin: 0;
}

.rank-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.rank-stat {
    flex: 1;
    min-width: 140px;
    padding: 16px;
    background: rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    text-align: center;
    backdrop-filter: blur(10px);
}

.rank-stat.featured {
    background: rgba(255, 255, 255, 0.25);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.rank-stat .stat-label {
    display: block;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rank-stat .stat-value {
    display: block;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
}

.rank-stat .stat-value.highlight {
    font-size: 24px;
    color: #fbbc04;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    .querystat-filter-group .filter-select {
        min-width: calc(33% - 8px);
        flex: unset;
    }

    .querystat-chart-container {
        height: 280px;
    }

    .querystat-myrecord {
    }

    .myrecord-input-group {
        width: 100%;
    }

    .myrecord-input-group input {
        padding: 6px 6px;
        font-size: 1.0rem;
    }

    .querystat-myrecord .btn {
        width: 100%;
        justify-content: center;
        font-size: 0.9rem;
    }
    .querystat-myrecord .btn .material-symbols-outlined {
        font-size: 1.0rem;
    }

    .rank-stat {
        min-width: calc(50% - 6px);
    }

    .rank-stat .stat-value {
        font-size: 16px;
    }

    .rank-stat .stat-value.highlight {
        font-size: 20px;
    }
}

@media (max-width: 480px) {
    .querystat-filter-group {
        gap: 6px;
    }
    .querystat-filter-group .filter-select {
        min-width: calc(50% - 6px);
    }
    .querystat-filter-group select {
        padding: 6px 6px;
        font-size: 0.8rem;
        background-position: right 6px center;
    }

    .querystat-chart-container {
        height: 240px;
    }

    .rank-stat {
        padding: 10px;
    }
    .rank-stat .stat-label {
        margin: 0px;
    }
}

/* ===== 대진표 (Heatsheet) 페이지 ===== */
.heatsheet-filter-group {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}

.heatsheet-filter-group .filter-select {
    flex: 1;
    min-width: 100px;
}

.heatsheet-filter-group .filter-select label {
    display: block;
    font-size: 12px;
    color: #5f6368;
    margin-bottom: 4px;
    font-weight: 500;
}

.heatsheet-filter-group select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    font-size: 14px;
    color: #202124;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.2s;
}

.heatsheet-filter-group .filter-select select:focus {
    outline: none;
    border-color: #1a73e8;
}

.heatsheet-container {
    background: #fff;
}

.header-buttons {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
}
.header-buttons button{
    border-radius: 10px;
}
.heatsheet-header {
    display: flex;
    padding: 12px 16px;
    background: #f8f9fa;
    border-bottom: 1px solid #e8eaed;
    font-size: 12px;
    font-weight: 600;
    color: #5f6368;
    text-transform: uppercase;
}


.heatsheet-header span,
.heat-lane span {
    text-align: center;
}

.col-lane { flex: 0 0 50px; }
.col-name { flex: 1; min-width: 100px; }
.col-club { flex: 1; min-width: 80px; }
.col-best { flex: 0 0 80px; }
.col-recent { flex: 0 0 80px; }
.col-avg { flex: 0 0 80px; }
.col-rank { flex: 0 0 70px; }

.heat-group {
    border-bottom: 1px solid #e8eaed;
}

.heat-group:last-child {
    border-bottom: none;
}

.heat-group-title {
    padding: 12px 16px;
    background: linear-gradient(135deg, #1a73e8 0%, #4285f4 100%);
    color: #fff;
    font-weight: 600;
    font-size: 14px;
}

.heat-lanes {
    display: flex;
    flex-direction: column;
}

.heat-lane {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    border-bottom: 1px solid #f1f3f4;
    transition: background-color 0.2s;
}

.heat-lane:last-child {
    border-bottom: none;
}

.heat-lane:hover {
    background: #f8f9fa;
}

.heat-lane .col-lane {
    font-weight: 600;
    color: #1a73e8;
    font-size: 14px;
}

.heat-lane input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #dfe1e5;
    border-radius: 6px;
    font-size: 13px;
    transition: border-color 0.2s;
}

.heat-lane input:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.1);
}

.heat-lane input::placeholder {
    color: #9aa0a6;
}

.heat-lane .col-best,
.heat-lane .col-recent,
.heat-lane .col-avg {
    font-size: 13px;
    color: #5f6368;
    font-family: 'Roboto Mono', monospace;
}

.heat-lane .col-rank {
    font-weight: 600;
    color: #1a73e8;
    font-size: 13px;
}

.heatsheet-info {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 16px;
    background: #e8f0fe;
    border-radius: 8px;
    margin-top: 16px;
}

.heatsheet-info .material-symbols-outlined {
    color: #1a73e8;
    font-size: 20px;
    flex-shrink: 0;
}

.heatsheet-info p {
    margin: 0;
    font-size: 13px;
    color: #5f6368;
    line-height: 1.5;
}

/* 대진표 모바일 */
@media (max-width: 768px) {
    .heatsheet-filter-group .filter-select {
        min-width: calc(33% - 8px);
    }

    .col-avg,
    .heatsheet-header .col-avg {
        display: none;
    }

    .col-best,
    .col-recent,
    .col-rank {
        flex: 0 0 65px;
    }

    .heat-lane {
        padding: 8px 12px;
    }

    .heat-lane input {
        padding: 6px 8px;
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .heatsheet-filter-group {
        gap: 8px;
    }
    .heatsheet-filter-group select {
        padding: 8px 5px;
        font-size: 0.8rem;
    }
    .col-recent,
    .heatsheet-header .col-recent {
        display: none;
    }

    .col-lane {
        flex: 0 0 35px;
    }

    .col-best,
    .col-rank {
        flex: 0 0 55px;
        font-size: 11px;
    }
    .header-buttons button .material-symbols-outlined {
        font-size: 1.0rem;
    }
    .header-buttons button {
        font-size: 0.9rem;
    }
}

/* ===== 기록비교 (Compare) 페이지 ===== */
.compare-input-section {
    display: flex;
    align-items: center;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap;
}

/* 인라인 입력 레이아웃 */
.compare-input-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.compare-input-row .inputs{
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.compare-input {
    padding: 12px 16px;
    border: 2px solid #dfe1e5;
    border-radius: 10px;
    font-size: 15px;
    text-align: center;
    transition: all 0.2s;
    background: #fff;
}

.compare-input:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.1);
}

.compare-input::placeholder {
    color: #9aa0a6;
}
.compare-input-row .cateBtns{
    display: flex;
    justify-content: center; align-items: center;
}
.compare-input-row .cateBtns button {
    width: 50%;
}
.compare-input-row .cateBtns button:first-of-type {
    border-radius: 0px;
    border-bottom-left-radius: 20px; border-top-left-radius: 20px;
}
.compare-input-row .cateBtns button:last-of-type {
    border-radius: 0px;
    border-bottom-right-radius: 20px; border-top-right-radius: 20px;
}

.compare-vs-text {
    font-size: 1.0rem;
    font-weight: 700;
    color: #ea4335;
    padding: 0px 4px;
}

.compare-swimmer {
    flex: 1;
    min-width: 150px;
    max-width: 200px;
}

.compare-swimmer label {
    display: block;
    font-size: 12px;
    color: #5f6368;
    margin-bottom: 6px;
    font-weight: 500;
}

.compare-swimmer input {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid #dfe1e5;
    border-radius: 10px;
    font-size: 16px;
    text-align: center;
    transition: all 0.2s;
}

.compare-swimmer input:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.1);
}

.compare-vs {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    color: #ea4335;
    font-weight: 700;
    font-size: 18px;
}

.compare-vs .material-symbols-outlined {
    font-size: 28px;
}

.compare-buttons {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 20px;
    flex-wrap: wrap;
}

.btn-category {
    padding: 10px 20px;
    border: 1px solid #dfe1e5;
    border-radius: 20px;
    background: #fff;
    color: #5f6368;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-category:hover {
    background: #f1f3f4;
}

.btn-category.active {
    background: #1a73e8;
    color: #fff;
    border-color: #1a73e8;
}

.compare-guide {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px;
    background: #f8f9fa;
    border-radius: 12px;
    color: #5f6368;
}

.compare-guide .material-symbols-outlined {
    font-size: 24px;
    color: #1a73e8;
}

.compare-guide p {
    margin: 0;
    font-size: 14px;
}

.compare-filter {
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
}

.filter-group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.filter-label {
    font-weight: 600;
    color: #202124;
    font-size: 14px;
    padding-right: 12px;
    border-right: 1px solid #e8eaed;
    margin-right: 4px;
}

.filter-buttons {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.filter-btn {
    padding: 8px 16px;
    border: 1px solid #dfe1e5;
    border-radius: 20px;
    background: #fff;
    color: #5f6368;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.2s;
}

.filter-btn:hover {
    background: #f1f3f4;
}

.filter-btn.active {
    background: #e8f0fe;
    color: #1a73e8;
    border-color: #1a73e8;
}

/* 필터 드롭다운 */
.filter-row {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.filter-selects {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.filter-select {
    padding: 8px 32px 8px 14px;
    border: 1px solid #dfe1e5;
    border-radius: 8px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f6368' d='M2 4l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right 10px center;
    background-size: 12px;
    font-size: 14px;
    color: #202124;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    min-width: 100px;
    transition: all 0.2s;
}

.filter-select:hover {
    border-color: #1a73e8;
}

.filter-select:focus {
    outline: none;
    border-color: #1a73e8;
    box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.1);
}

.compare-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.compare-item {
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 10px;
    padding: 12px 16px;
    cursor: pointer;
    transition: all 0.2s;
    border-left: 4px solid transparent;
}

.compare-item:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.compare-item.win-left {
    border-left-color: #1a73e8;
    background: linear-gradient(90deg, rgba(26, 115, 232, 0.05) 0%, #fff 50%);
}

.compare-item.win-right {
    border-left-color: #ea4335;
    background: linear-gradient(90deg, rgba(234, 67, 53, 0.05) 0%, #fff 50%);
}

.compare-item.expanded {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.compare-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.compare-date {
    font-size: 12px;
    color: #9aa0a6;
    flex: 0 0 80px;
}

.compare-name {
    font-weight: 600;
    color: #202124;
    flex: 0 0 70px;
}

.compare-club {
    font-size: 13px;
    color: #5f6368;
    flex: 1;
    min-width: 80px;
}

.compare-record {
    font-family: 'Roboto Mono', monospace;
    font-weight: 600;
    color: #1a73e8;
    flex: 0 0 80px;
    text-align: right;
}

.compare-record .record-char {
    height: 14px;
}

.compare-event {
    font-size: 12px;
    color: #5f6368;
    flex: 0 0 80px;
    text-align: right;
}

.compare-detail {
    display: flex;
    gap: 16px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f1f3f4;
    font-size: 12px;
    color: #5f6368;
}

.compare-detail .comp-name {
    flex: 1;
}

.compare-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: #9aa0a6;
}

.compare-empty .material-symbols-outlined {
    font-size: 48px;
    margin-bottom: 16px;
}

.compare-empty p {
    margin: 0;
    font-size: 14px;
}

/* 기록비교 모바일 */
@media (max-width: 768px) {
    .compare-input-section {
        gap: 12px;
    }

    .compare-input-row {
        gap: 8px;
    }

    .compare-input {
        padding: 10px 12px;
        font-size: 0.9rem;
    }

    .compare-vs-text {
        font-size: 1.0rem;
        padding: 0px 4px;
    }

    .btn-category {
        padding: 8px 14px;
        font-size: 13px;
    }

    .filter-row {
        gap: 12px;
    }

    .filter-select {
        min-width: 90px;
        padding: 7px 28px 7px 12px;
        font-size: 13px;
    }

    .compare-swimmer {
        min-width: 120px;
    }

    .compare-swimmer input {
        padding: 10px 12px;
        font-size: 14px;
    }

    .compare-vs {
        font-size: 14px;
    }

    .compare-vs .material-symbols-outlined {
        font-size: 24px;
    }

    .compare-row {
        flex-wrap: wrap;
    }

    .compare-event {
        display: none;
    }

    .compare-record {
        flex: 0 0 70px;
    }
}

@media (max-width: 480px) {
    .compare-input-section {
        flex-direction: column;
    }

    .compare-input-row {
        gap: 8px;
    }

    .compare-input {
        width: 45%;
    }

    .compare-vs-text {
        font-size: 1.0rem;
        padding: 0px 0px;
    }
    .cateBtns {
        
    }

    .btn-category {
        flex: 0 0 auto;
        padding: 8px 12px;
    }

    .filter-row {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .filter-label {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid #e8eaed;
        padding-bottom: 8px;
        margin-bottom: 4px;
        text-align: center;
    }

    .filter-selects {
        justify-content: center;
    }

    .filter-select {
        flex: 1;
        min-width: 0;
    }

    .compare-swimmer {
        width: 100%;
        max-width: none;
    }

    .compare-vs {
        flex-direction: row;
        padding: 10px 0;
    }

    .filter-group {
        justify-content: center;
    }

    .compare-date {
        flex: 0 0 65px;
        font-size: 11px;
    }

    .compare-name {
        flex: 0 0 50px;
        font-size: 13px;
    }

    .compare-club {
        font-size: 12px;
    }

    .compare-record {
        flex: 0 0 60px;
    }

    .compare-record .record-char {
        height: 12px;
    }
}

/* 비교 버튼 라벨 */
.compare-btn-label {
    font-size: 12px;
    color: #5f6368;
    width: 100%;
    text-align: center;
    margin-bottom: 4px;
}

/* 비교 요약 분석 */
.compare-summary .card-body {
    padding: 20px;
}

.summary-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e8eaed;
}

.summary-header .material-symbols-outlined {
    color: #1a73e8;
    font-size: 24px;
}

.summary-header h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #202124;
}

.aging-notice {
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-radius: 8px;
    padding: 10px 14px;
    margin-bottom: 16px;
    font-size: 13px;
    color: #f57c00;
    text-align: center;
}

.summary-content {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    margin-bottom: 16px;
}

.summary-swimmer {
    flex: 1;
    background: #f8f9fa;
    border-radius: 12px;
    padding: 16px;
    text-align: center;
    transition: all 0.3s ease;
    min-height: 160px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.summary-swimmer.superior {
    background: linear-gradient(135deg, #e8f0fe, #d2e3fc);
    border: 2px solid #1a73e8;
}

.summary-swimmer .summary-percent {
    font-size: 28px;
    font-weight: 800;
    color: #5f6368;
    margin-bottom: 8px;
}

.summary-swimmer.superior .summary-percent {
    color: #1a73e8;
}

.summary-swimmer .summary-percent .percent-value {
    font-size: 32px;
}

.summary-swimmer .summary-name {
    font-size: 18px;
    font-weight: 700;
    color: #202124;
    margin-bottom: 8px;
}

.summary-swimmer.superior .summary-name {
    color: #1a73e8;
}

.summary-swimmer .summary-label {
    font-size: 11px;
    color: #1a73e8;
    margin-bottom: 8px;
    min-height: 14px;
}

.summary-swimmer .summary-best,
.summary-swimmer .summary-date,
.summary-swimmer .summary-avg,
.summary-swimmer .summary-similar {
    font-size: 12px;
    color: #5f6368;
    margin-bottom: 4px;
}

.summary-swimmer .best-record,
.summary-swimmer .avg-record {
    font-weight: 600;
    color: #202124;
}

.summary-analysis {
    background: #fff3cd;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 14px;
    color: #856404;
    text-align: center;
}

.summary-analysis .winner-name {
    font-weight: 700;
    color: #1a73e8;
}

@media (max-width: 480px) {
    .summary-content {
        gap: 8px;
    }

    .summary-swimmer {
        padding: 12px 8px;
        min-height: 140px;
    }

    .summary-swimmer .summary-percent {
        font-size: 22px;
    }

    .summary-swimmer .summary-percent .percent-value {
        font-size: 26px;
    }

    .summary-swimmer .summary-name {
        font-size: 15px;
    }

    .summary-swimmer .summary-best,
    .summary-swimmer .summary-date,
    .summary-swimmer .summary-avg,
    .summary-swimmer .summary-similar {
        font-size: 11px;
    }
}

/* ===== PB Certificate Modal ===== */
.pb-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
}

.pb-modal.active {
    display: flex;
    align-items: center;
    justify-content: center;
}

.pb-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
}

.pb-modal-content {
    position: relative;
    background: #f5f5f5;
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: modalSlideIn 0.3s ease;
}

@keyframes modalSlideIn {
    from {
        opacity: 0;
        transform: translateY(-20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.pb-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(0, 0, 0, 0.1);
    border: none;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    z-index: 10;
}

.pb-modal-close:hover {
    background: rgba(0, 0, 0, 0.2);
}

.pb-modal-close .material-symbols-outlined {
    font-size: 20px;
    color: #333;
}

/* PB 뱃지 클릭 가능 스타일 */
.pb-badge.clickable {
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
}

.pb-badge.clickable:hover {
    transform: scale(1.15);
    box-shadow: 0 2px 8px rgba(255, 152, 0, 0.4);
}

/* ===== PB Certificate Design (배경 이미지 기반) ===== */

/* 방향 선택 토글 */
.cert-orientation-toggle {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 16px;
}

.cert-orient-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 8px 16px;
    background: #f1f3f4;
    border: 2px solid transparent;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    color: #5f6368;
    cursor: pointer;
    transition: all 0.2s;
}

.cert-orient-btn:hover {
    background: #e8eaed;
}

.cert-orient-btn.active {
    background: #e8f0fe;
    border-color: #1a73e8;
    color: #1a73e8;
}

.cert-orient-btn .material-symbols-outlined {
    font-size: 18px;
}

/* 인증서 컨테이너 */
.pb-certificate--portrait {
    max-width: 560px;
    max-height: 800px;
    position: relative;
    text-align: center;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.pb-certificate--landscape {
    max-width: 800px;
    max-height: 560px;
    position: relative;
    text-align: center;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

/* 배경 이미지 */
.cert-bg-img {
    display: block;
    width: 100%;
    height: auto;
}

.cert-bg-portrait { display: block; }
.cert-bg-landscape { display: none; }

.pb-certificate--landscape .cert-bg-portrait { display: none; }
.pb-certificate--landscape .cert-bg-landscape { display: block; }

/* 컨텐츠 오버레이 */
.cert-content-overlay {
    position: absolute;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 20px;
}

/* 세로 모드: 컨텐츠 위치 (이미지 상단 30% 이후부터) */
.pb-certificate--portrait .cert-content-overlay {
    top: 33%;
    bottom: 0%;
}
/* 가로 모드: 컨텐츠 위치 (이미지 상단 30% 이후부터) */
.pb-certificate--landscape .cert-content-overlay {
    top: 24%;
    padding: 0vh 3vw 1vh 3vw;
    align-items: center;
}


/* 선수 정보 섹션 */
.cert-swimmer-section {
    margin-bottom: 8px;
    position: relative;
}
/* 선수 이름과 팀명 */
.cert-swimmer-name-team {
    display: flex; flex-direction: row; align-items: center; gap: 5px; justify-content: center;
}
.cert-swimmer-name-team span {
    display: flex;
    line-height: 1.2;
    padding: 0px; margin: auto 0px;
}
/* 선수 이름 */
.cert-swimmer-name {
    font-size: 2.5rem;
    font-weight: 700;
    color: #1a237e;
}
/* 소속팀명 */
.cert-team {
    font-size: 1.4rem;
    font-weight: 500;
    color: #5f6368;
}
/* 실명 가리기/보이기 버튼 */
.cert-reveal-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #ddd;
    border-radius: 16px;
    font-size: 1.0rem;
    color: #5f6368;
    cursor: pointer;
    transition: all 0.2s;
}
.cert-reveal-btn:hover {
    background: #fff;
    color: #333;
}
.cert-reveal-btn .material-symbols-outlined {
    font-size: 12px;
}


/* 설명 */
.cert-description {
    margin-top: 2vh;
    margin-bottom: 1vh;
}
/* 위 선수는.... */
.cert-description p {
    font-size: 1.1rem;
    margin: 0px; padding: 0px;
}
/* 위 선수는.... 한줄로 */
.cert-description p.landscape-view {
    display: none;
}
/* 위 선수는.... 가로형일때는 숨기기 */
.pb-certificate--landscape p.portrait-view {
    display: none;
}
/* 위 선수는.... 가로형일때는 보이기 */
.pb-certificate--landscape p.landscape-view {
    display: block;
}



.cert-info-section {
    margin: 0px;
    padding: 0px;
}

/* 대회정보 및 종목 기록 */
.cert-record-box {
    display: flex; 
    flex-direction: column; flex-wrap: wrap;
    background: linear-gradient(135deg, rgba(255, 253, 231, 0.95) 0%, rgba(255, 248, 225, 0.95) 100%);
    border: 2px solid #FFD700;
    border-radius: 10px;
    padding: 10px 10px;
    margin-bottom: 8px;
    min-width: 65%;
    max-width: 90%;
}
/* 대회 정보 - 세로형일때는 대회/날짜 위아래로 배치 */
.cert-comp-info {
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    gap: 0px; 
    margin-bottom: 1vh;
}
.cert-comp-info span {
    display: block; text-align: center;
    margin: 0px; padding: 0px;
}
/* 대회명 */
.cert-comp-name {
    font-size: 1.3rem;
    font-weight: 600;
    color: #202124;
}
/* 대회일자 */
.cert-comp-date {
    font-size: 0.9rem;
    color: #5f6368;
}
/* 종목 */
.cert-event-info {
    display: flex; flex-direction: row; justify-content: center; align-items: center;
    gap:8px;
}
.cert-event-info span {
    display: block;
    margin: 0px; padding: 0px;
}
/* 종목 */
.cert-event {
    font-size: 1.1rem;
    font-weight: 600;
    color: #1a237e;
}
/* 연령그룹 */
.cert-category {
    font-size: 0.9rem;
    color: #5f6368;
}


/* 기록 */
.cert-record {
    font-size: 3.0rem;
    font-weight: 700;
    color: #1a237e;
    font-family: 'Roboto Mono', 'Noto Sans KR', monospace;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
    padding: 0px; margin: 0px;
    line-height: 1.0;
    margin-bottom: 1vh;
}
.cert-ranking {
    font-size: 14px;
    font-weight: 600;
    color: #B8860B;
    margin-top: 6px;
}


/* PB 뱃지 섹션 */
.cert-badge-section {
    margin-top: -30px;
    margin-bottom: 0px;
}
.cert-info-section .cert-badge-inrecord{
    display: none;
}
.pb-certificate--landscape .cert-badge-inrecord{
    display: inline-flex;
}




/* 푸터 */
.cert-footer {
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    margin: 0px; margin-top: auto;
    padding: 0px;
    gap: 0vh;
}
.cert-footer span {
    display: block;
    margin:0px; padding: 0px;
}
.cert-footer-url {
    font-size: 0.9rem;
    color: #70757b;
    font-weight: 600;
}
.cert-footer-notify {
    font-size: 0.7rem;
    color: #adadad;
}


/* === 가로 모드 스타일 조정 === */

/* 가로형: [이름] [소속팀] [실명확인] 가로 배열 */                                              
.pb-certificate--landscape .cert-swimmer-section {                                              
    display: flex;                                                                              
    flex-direction: row;                                                                        
    align-items: center;                                                                        
    justify-content: center;                                                                    
    gap: 12px; margin-bottom: 0px;
}                                                                                               
                                                                                                
.pb-certificate--landscape .cert-swimmer-name-team {     
    gap: 12px;                                                                                  
} 
.pb-certificate--landscape .cert-swimmer-name {
    font-size: 3.0rem;
}
.pb-certificate--landscape .cert-team {
    font-size: 1.7rem;
    margin-bottom: 0px;
}

.pb-certificate--landscape .cert-description {
    margin-top: 3vh; margin-bottom: 0px;
}

.pb-certificate--landscape .cert-description p {
    font-size: 1.3rem;
    margin: 0px; padding: 0px;
}

.pb-certificate--landscape .cert-record-box {
    flex-direction: row; align-items: center; justify-content: center;
    padding: 0px;
    margin-bottom: 0px; margin-top: 0px;
    border: 0px; background: rgba(255, 255, 255, 0%);
    min-width: 70%; max-width: 95%;
}
.pb-certificate--landscape .cert-info-section {
    margin-top: 1vh;
}
.pb-certificate--landscape .cert-comp-info {
    margin-bottom: 1vh;
}
.pb-certificate--landscape .cert-comp-name {
    font-size: 1.4rem;
}

.pb-certificate--landscape .cert-comp-date {
    font-size: 1.3rem;
}

.pb-certificate--landscape .cert-event {
    font-size: 1.3rem;
}
.pb-certificate--landscape .cert-category{
    font-size: 1.3rem;
}
.pb-certificate--landscape .cert-record {
    font-size: 4.0rem;
}

.pb-certificate--landscape .cert-ranking {
    font-size: 13px;
    margin-top: 4px;
}

.pb-certificate--landscape .cert-comp-section {
    padding: 6px 14px;
    margin-bottom: 4px;
}

.pb-certificate--landscape .cert-badge-section {
    margin: 0px;
}

.pb-certificate--landscape .cert-pb-badge svg {
    width: 50px;
    height: 50px;
}

.pb-certificate--landscape .cert-footer {
    margin-top: 4vh;
}
.pb-certificate--landscape .cert-footer-url {
    font-size: 10px;
}
.pb-certificate--landscape .cert-footer-notify {
    margin-top: 0px;
}


/* ===== Modal Action Buttons ===== */
.pb-modal-actions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-top: 20px;
}

.pb-action-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    background: #1a73e8;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

.pb-action-btn:hover {
    background: #1557b0;
    transform: translateY(-1px);
}

.pb-action-btn .material-symbols-outlined {
    font-size: 18px;
}

/* ===== Share Options Modal ===== */
.share-options-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.share-options-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
}

.share-options-content {
    position: relative;
    background: #fff;
    border-radius: 16px;
    padding: 24px;
    max-width: 320px;
    width: 90%;
    text-align: center;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
}

.share-options-content h3 {
    margin: 0 0 20px 0;
    font-size: 18px;
    color: #202124;
}

.share-buttons {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}

.share-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 12px 8px;
    background: #f5f5f5;
    border: none;
    border-radius: 12px;
    text-decoration: none;
    color: #333;
    font-size: 11px;
    cursor: pointer;
    transition: all 0.2s;
}

.share-btn:hover {
    background: #e8e8e8;
    transform: translateY(-2px);
}

.share-btn.instagram { color: #E4405F; }
.share-btn.twitter { color: #000; }
.share-btn.facebook { color: #1877F2; }
.share-btn.whatsapp { color: #25D366; }
.share-btn.copy { color: #5f6368; }

.share-btn svg {
    width: 28px;
    height: 28px;
}

.share-close-btn {
    padding: 10px 24px;
    background: #f5f5f5;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    color: #5f6368;
    cursor: pointer;
    transition: background 0.2s;
}

.share-close-btn:hover {
    background: #e8e8e8;
}

/* ===== PB Certificate Mobile ===== */
@media (max-width: 480px) {
    .pb-modal-content {
        padding: 12px;
        width: 95%;
    }

    .cert-orientation-toggle {
        margin-bottom: 12px;
    }

    .cert-orient-btn {
        padding: 6px 12px;
        font-size: 12px;
    }

    .cert-content-overlay {
        padding: 12px 16px;
    }

    .pb-certificate--portrait .cert-content-overlay {
        top: 32%;
    }

    .pb-certificate--landscape .cert-content-overlay {
        top:23%;
        height: 75%;
        padding: 0px 20px;
    }
    .cert-swimmer-section {
        margin-bottom: 0px;
    }
    .cert-swimmer-name {
        font-size: 2.5rem;
    }
    .cert-team {
        font-size: 1.1rem;
    }

    .cert-description {
        margin-top: 2vh;
        margin-bottom: 0vh;
    }
    .cert-description p {
        font-size: 0.9rem;
    }
    .pb-certificate--landscape .cert-description p.portrait-view {
        display: none;
    }
    .pb-certificate--landscape .cert-description p.landscape-view {
        display: block;
    }

    .cert-record-box {
        padding: 5px 10px 15px 10px; 
        margin-top: 10px;
        width: auto;
        min-width: 70%;
        max-width: 95%;
    }
    .pb-certificate--landscape .cert-record-box {
        min-width: 70%; max-width: 90%;
        margin: 0px auto;
        padding: 6px 8px;
        border:0px;
        background: rgba(255, 255, 255, 0%);
    }
    .pb-certificate--landscape .cert-comp-date {
        font-size: 0.8rem;
    }


    .pb-certificate--landscape .cert-badge-section {
        display: none;
    }
    .pb-certificate--landscape .cert-info-section {
        width: 100%;
        margin-top: 0vh;
    }

    .cert-event-info {
        gap: 4px;
    }
    .cert-event {
        font-size: 1.2rem;
    }
    .pb-certificate--landscape .cert-event {
        font-size: 0.8rem;
    }

    .cert-category {
        font-size: 1.0rem;
    }
    .pb-certificate--landscape .cert-category {
        font-size: 0.8rem;
    }

    .cert-record {
        font-size: 2.0rem;
        margin-bottom: 0vh;
    }

    .cert-ranking {
        font-size: 1.2rem;
    }

    .cert-comp-section {
        padding: 6px 12px;
    }

    .cert-comp-info {
        gap: 4px;
    }
    .cert-comp-name {
        font-size: 1.1rem;
    }

    .cert-comp-date {
        font-size: 1.0rem;
    }

    .cert-pb-badge svg {
        width: 45px;
        height: 45px;
    }

    .cert-footer-url {
        font-size: 0.8rem;
    }
    .cert-footer-notify {
        font-size: 0.5rem;
    }

    /* 가로 모드 모바일 */
    .pb-certificate--landscape .cert-swimmer-name {
        font-size: 1.5rem;
    }
    .pb-certificate--landscape .cert-team {
        font-size: 1.0rem;
    }
    .pb-certificate--landscape .cert-description {
        margin-top: 1vh;
    }
    .pb-certificate--landscape .cert-description p {
        font-size: 0.8rem;
    }

    .pb-certificate--landscape .cert-record-section {
        display: flex; flex-direction: row; align-items: center; justify-content: center;
        gap: 8px;
    }
    .pb-certificate--landscape .cert-record {
        display: inline-flex;
        font-size: 1.5rem;
        padding: 0px; margin: 0px;
    }

    .pb-certificate--landscape .cert-pb-badge {
        display: inline-block;
        padding: 0px; margin: 0px; 
        width: 30px; height: 30px;
    }
    .pb-certificate--landscape .cert-pb-badge svg {
        width: 30px;
        height: 30px;
    }
    .pb-certificate--landscape .cert-footer {
        margin-top: auto;
    }
    .pb-certificate--landscape .cert-footer-url{
        font-size: 0.5rem;
    }
    .pb-certificate--landscape .cert-footer-notify{
        font-size: 0.4rem;
    }

    .pb-modal-actions {
        flex-direction: column;
    }

    .pb-action-btn {
        padding: 6px 8px;
        font-size: 0.8rem;
        width: 100%;
        justify-content: center;
    }

    .share-buttons {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ===== Schedule Card View Styles ===== */

/* 현재 보기 헤더 레이아웃 */
.schedule-current-view {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

.schedule-current-view h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #202124;
}

.schedule-current-view .count {
    font-size: 14px;
    font-weight: 400;
    color: #5f6368;
}

/* 카드형 뷰 컨테이너 */
.schedule-card-view {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* 카드 가로 스크롤 래퍼 */
.schedule-card-scroll-wrapper {
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    padding: 20px;
}

/* 가로 스크롤 컨테이너 */
.schedule-card-scroll {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    padding-bottom: 12px;
    -webkit-overflow-scrolling: touch;
}

/* 스크롤바 스타일 */
.schedule-card-scroll::-webkit-scrollbar {
    height: 8px;
}

.schedule-card-scroll::-webkit-scrollbar-track {
    background: #f1f3f4;
    border-radius: 4px;
}

.schedule-card-scroll::-webkit-scrollbar-thumb {
    background: #dadce0;
    border-radius: 4px;
}

.schedule-card-scroll::-webkit-scrollbar-thumb:hover {
    background: #bdc1c6;
}

/* 대회 카드 */
.schedule-card {
    flex: 0 0 auto;
    width: 200px;
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s ease;
}

.schedule-card:hover {
    border-color: #1a73e8;
    box-shadow: 0 4px 16px rgba(26, 115, 232, 0.2);
    transform: translateY(-4px);
}

/* 포스터 영역 */
.schedule-card-poster {
    position: relative;
    width: 100%;
    padding-top: 141.4%; /* A4 비율 (1:1.414) */
    background: #f8f9fa;
    overflow: hidden;
}

.schedule-card-poster img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.schedule-card:hover .schedule-card-poster img {
    transform: scale(1.05);
}

.schedule-card-poster .no-poster {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #9aa0a6;
    background: #f1f3f4;
}

.schedule-card-poster .no-poster .material-symbols-outlined {
    font-size: 48px;
}

.schedule-card-poster .no-poster span:last-child {
    font-size: 12px;
    font-weight: 500;
}

/* 카드 정보 영역 */
.schedule-card-info {
    padding: 14px;
}

.schedule-card-name {
    font-size: 14px;
    font-weight: 600;
    color: #202124;
    line-height: 1.4;
    margin-bottom: 10px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: keep-all;
}

.schedule-card-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #5f6368;
    margin-bottom: 4px;
}

.schedule-card-meta .material-symbols-outlined {
    font-size: 16px;
    color: #9aa0a6;
}

.schedule-card-meta:last-child {
    margin-bottom: 0;
}

/* 반응형 - 태블릿 */
@media (max-width: 768px) {
    .schedule-current-view {
        flex-direction: column;
        align-items: flex-start;
    }

    .schedule-current-view .view-toggle-group {
        width: 100%;
        justify-content: flex-end;
    }

    .schedule-month-header {
        padding: 12px 16px;
    }

    .schedule-month-header .month-badge {
        font-size: 18px;
    }

    .schedule-card-name {
        font-size: 13px;
    }

    .schedule-card-info {
        padding: 12px;
    }

    /* 가로 스크롤 태블릿 반응형 */
    .schedule-card-scroll-wrapper {
        padding: 16px;
    }

    .schedule-card-scroll {
        gap: 12px;
    }

    .schedule-card {
        width: 180px;
    }
}

/* 반응형 - 모바일 */
@media (max-width: 480px) {
    .schedule-card-poster .no-poster .material-symbols-outlined {
        font-size: 36px;
    }

    .schedule-card-name {
        font-size: 12px;
        margin-bottom: 8px;
    }

    .schedule-card-meta {
        font-size: 11px;
    }

    .schedule-card-meta .material-symbols-outlined {
        font-size: 14px;
    }

    .schedule-card-info {
        padding: 10px;
    }

    /* 가로 스크롤 모바일 반응형 */
    .schedule-card-scroll-wrapper {
        padding: 12px;
        border-radius: 12px;
    }

    .schedule-card-scroll {
        gap: 10px;
        padding-bottom: 8px;
    }

    .schedule-card {
        width: 160px;
    }

    .schedule-card-scroll::-webkit-scrollbar {
        height: 6px;
    }
}

/* ========================================
   최강클럽 (Best Club) 스타일
   ======================================== */

/* 연도 버튼 그룹 */
.bestclub-year-buttons {
    display: flex;
    gap: 8px;
    margin-top: 16px;
    flex-wrap: wrap;
}

.bestclub-year-buttons .year-btn {
    padding: 10px 20px;
    border: 2px solid #e8eaed;
    background: #fff;
    border-radius: 24px;
    font-size: 15px;
    font-weight: 600;
    color: #5f6368;
    cursor: pointer;
    transition: all 0.2s;
}

.bestclub-year-buttons .year-btn:hover {
    border-color: #1a73e8;
    color: #1a73e8;
    background: #e8f0fe;
}

.bestclub-year-buttons .year-btn.active {
    background: linear-gradient(135deg, #1a73e8 0%, #4285f4 100%);
    border-color: #1a73e8;
    color: #fff;
    box-shadow: 0 2px 8px rgba(26, 115, 232, 0.3);
}

/* 캐러셀 래퍼 */
.bestclub-carousel-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    padding: 20px 60px;
}

.bestclub-carousel-wrapper .carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: none;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    transition: all 0.2s;
}

.bestclub-carousel-wrapper .carousel-arrow:hover {
    background: #1a73e8;
    color: #fff;
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
}

.bestclub-carousel-wrapper .carousel-arrow .material-symbols-outlined {
    font-size: 28px;
}

.bestclub-carousel-wrapper .carousel-prev {
    left: 10px;
}

.bestclub-carousel-wrapper .carousel-next {
    right: 10px;
}

.bestclub-carousel {
    width: 100%;
    height: 420px;
    perspective: 1200px;
    overflow: visible;
}

.bestclub-carousel-stage {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
}

.bestclub-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #9aa0a6;
    gap: 12px;
}

.bestclub-empty .material-symbols-outlined {
    font-size: 48px;
}

/* 최강클럽 카드 (캐러셀) */
.bestclub-card {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 50%;
    max-width: 320px;
    min-width: 200px;
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 20px;
    padding: 24px;
    text-align: center;
    cursor: pointer;
    transition: all 0.5s ease;
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.6);
    pointer-events: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    filter: blur(4px);
}

.bestclub-card.active {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1) translateZ(0);
    z-index: 5;
    pointer-events: auto;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
    filter: blur(0);
}

.bestclub-card.prev {
    opacity: 0.6;
    transform: translate(-155%, -50%) scale(0.65) rotateY(25deg);
    z-index: 3;
    pointer-events: auto;
    filter: blur(3px);
}

.bestclub-card.next {
    opacity: 0.6;
    transform: translate(55%, -50%) scale(0.65) rotateY(-25deg);
    z-index: 3;
    pointer-events: auto;
    filter: blur(3px);
}

.bestclub-card.far-prev {
    opacity: 0.3;
    transform: translate(-250%, -50%) scale(0.5) rotateY(35deg);
    z-index: 1;
    filter: blur(5px);
}

.bestclub-card.far-next {
    opacity: 0.3;
    transform: translate(150%, -50%) scale(0.5) rotateY(-35deg);
    z-index: 1;
    filter: blur(5px);
}

.bestclub-card:hover {
    border-color: #1a73e8;
}

/* 캐러셀 인디케이터 */
#cardViewContainer .carousel-indicators {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 0px 16px 10px 16px;
}

#cardViewContainer .carousel-indicators .indicator-dot {
    width: 10px;
    height: 10px;
    border: none;
    border-radius: 50%;
    background: #dadce0;
    cursor: pointer;
    transition: all 0.3s;
    padding: 0;
}

#cardViewContainer .carousel-indicators .indicator-dot:hover {
    background: #9aa0a6;
}

#cardViewContainer .carousel-indicators .indicator-dot.active {
    background: #1a73e8;
    transform: scale(1.2);
}

.bestclub-card.rank-1 {
    background: linear-gradient(135deg, #fff9e6 0%, #fff3cc 100%);
    border-color: #ffd700;
}

.bestclub-card.rank-2 {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-color: #c0c0c0;
}

.bestclub-card.rank-3 {
    background: linear-gradient(135deg, #fff5f0 0%, #ffe8db 100%);
    border-color: #cd7f32;
}

.bestclub-card-header {
    margin-bottom: 12px;
}

.bestclub-card-header .rank-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 1.0rem;
    font-weight: 600;
    background: #f1f3f4;
    color: #5f6368;
}

.bestclub-card-header .rank-badge.gold {
    background: linear-gradient(135deg, #ffd700 0%, #ffed4e 100%);
    color: #7a6200;
}

.bestclub-card-header .rank-badge.silver {
    background: linear-gradient(135deg, #c0c0c0 0%, #e0e0e0 100%);
    color: #555;
}

.bestclub-card-header .rank-badge.bronze {
    background: linear-gradient(135deg, #cd7f32 0%, #daa06d 100%);
    color: #fff;
}

.bestclub-card-logo {
    width: 120px 50px;
    margin: 0 auto 16px;
    padding: 5px 10px;
    border-radius: 8px;
    background: #FFF;
    display: flex;
    align-items: center; justify-content: center;
    border: 1px solid #e8eaed;
}

.bestclub-card-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.bestclub-card-logo .no-logo {
    color: #9aa0a6;
}

.bestclub-card-logo .no-logo .material-symbols-outlined {
    font-size: 24px;
}

.bestclub-card-name {
    font-size: 18px;
    font-weight: 700;
    color: #202124;
    margin-bottom: 10px;
    line-height: 1.3;
}

.bestclub-card-score {
    margin-bottom: 14px;
}

.bestclub-card-score .score-number {
    font-size: 32px;
    font-weight: 800;
    color: #1a73e8;
}

.bestclub-card-score .score-unit {
    font-size: 16px;
    font-weight: 500;
    color: #5f6368;
    margin-left: 2px;
}

.bestclub-card-stats {
    border-top: 1px solid #e8eaed;
    padding-top: 14px;
}

.bestclub-card-stats .stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    padding: 5px 0;
}

.bestclub-card-stats .stat-row .stat-label {
    color: #5f6368;
}

.bestclub-card-stats .stat-row .stat-value {
    font-weight: 600;
    color: #202124;
}

.bestclub-card-stats .stat-row.medals {
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed #e8eaed;
}

.bestclub-card-stats .stat-row.medals span {
    font-size: 14px;
    font-weight: 600;
}

/* 접기/펼치기 카드 */
.collapsible-card .collapsible-header {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background-color 0.2s;
}

.collapsible-card .collapsible-header:hover {
    background-color: #f8f9fa;
}

.collapsible-card .collapsible-header .toggle-icon {
    font-size: 24px;
    color: #5f6368;
    transition: transform 0.3s;
}

.collapsible-card .collapsible-header.expanded .toggle-icon {
    transform: rotate(180deg);
}

.collapsible-card .collapsible-content {
    border-top: 1px solid #e8eaed;
}

/* 반응형 - 태블릿 */
@media (max-width: 768px) {
    .bestclub-year-buttons {
        gap: 6px;
    }

    .bestclub-year-buttons .year-btn {
        padding: 8px 16px;
        font-size: 14px;
    }

    .bestclub-carousel-wrapper {
        padding: 16px 50px;
    }

    .bestclub-carousel-wrapper .carousel-arrow {
        width: 40px;
        height: 40px;
    }

    .bestclub-carousel-wrapper .carousel-arrow .material-symbols-outlined {
        font-size: 24px;
    }

    .bestclub-carousel {
        height: 380px;
    }

    .bestclub-card {
        width: 50%;
        max-width: 260px;
        min-width: 180px;
        padding: 18px;
    }

    .bestclub-card.prev {
        transform: translate(-140%, -50%) scale(0.6) rotateY(20deg);
    }

    .bestclub-card.next {
        transform: translate(40%, -50%) scale(0.6) rotateY(-20deg);
    }

    .bestclub-card.far-prev,
    .bestclub-card.far-next {
        opacity: 0;
    }

    .bestclub-card-logo {
        width: 110px; height: 46px;
    }

    .bestclub-card-name {
        font-size: 1.3rem;
    }

    .bestclub-card-score .score-number {
        font-size: 24px;
    }
}

/* 반응형 - 모바일 */
@media (max-width: 480px) {
    .bestclub-year-buttons .year-btn {
        padding: 6px 12px;
        font-size: 13px;
        flex: 1;
        min-width: 0;
    }

    .bestclub-carousel-wrapper {
        padding: 12px 10px;
    }

    .bestclub-carousel-wrapper .carousel-arrow {
        width: 32px;
        height: 32px;
    }

    .bestclub-carousel-wrapper .carousel-arrow .material-symbols-outlined {
        font-size: 18px;
    }

    .bestclub-carousel-wrapper .carousel-prev {
        left: 2px;
    }

    .bestclub-carousel-wrapper .carousel-next {
        right: 2px;
    }

    .bestclub-carousel {
        height: 360px;
    }

    .bestclub-card {
        width: 60%;
        max-width: 220px;
        min-width: 160px;
        padding: 16px;
        border-radius: 16px;
    }

    .bestclub-card.prev,
    .bestclub-card.next {
        opacity: 0.4;
        filter: blur(4px);
    }

    .bestclub-card.prev {
        transform: translate(-120%, -50%) scale(0.55) rotateY(15deg);
    }

    .bestclub-card.next {
        transform: translate(20%, -50%) scale(0.55) rotateY(-15deg);
    }

    .bestclub-card.far-prev,
    .bestclub-card.far-next {
        opacity: 0;
        filter: blur(8px);
    }

    .bestclub-card-logo {
        width: 100px; height: 42px;
    }

    .bestclub-card-logo .no-logo .material-symbols-outlined {
        font-size: 20px;
    }

    .bestclub-card-name {
        font-size: 1.3rem;
    }

    .bestclub-card-score .score-number {
        font-size: 1.3rem;
    }

    .bestclub-card-score .score-unit {
        font-size: 12px;
    }

    .bestclub-card-stats .stat-row {
        font-size: 11px;
    }
    .bestclub-card-stats .stat-value {
        font-size: 1.2rem;
    }

    .bestclub-card-stats .stat-row.medals span {
        font-size: 12px;
    }
}

/* ===== 종합 순위 (Competition Ranking Results) ===== */
.ranking-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}

.ranking-division {
    background: #f8f9fa;
    border-radius: 12px;
    padding: 20px;
}

.division-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 16px 0;
    padding-bottom: 12px;
    border-bottom: 2px solid #e0e0e0;
}

.division-title .material-symbols-outlined {
    font-size: 22px;
    color: #1a73e8;
}

.ranking-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ranking-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    transition: all 0.2s;
}

.ranking-item:hover {
    transform: translateX(4px);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.ranking-item.rank-1 {
    border-left: 4px solid #ffd700;
    background: linear-gradient(135deg, #fffef0 0%, #fff 100%);
}

.ranking-item.rank-2 {
    border-left: 4px solid #c0c0c0;
    background: linear-gradient(135deg, #fafafa 0%, #fff 100%);
}

.ranking-item.rank-3 {
    border-left: 4px solid #cd7f32;
    background: linear-gradient(135deg, #fdf8f4 0%, #fff 100%);
}

.rank-medal {
    font-size: 24px;
    line-height: 1;
}

.rank-label {
    font-size: 13px;
    font-weight: 500;
    color: #5f6368;
    min-width: 45px;
}

.rank-team {
    flex: 1;
    font-size: 15px;
    font-weight: 600;
    color: #1a1a1a;
}

/* 반응형 */
@media (max-width: 600px) {
    .ranking-results-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .ranking-division {
        padding: 16px;
    }

    .division-title {
        font-size: 15px;
    }

    .ranking-item {
        padding: 10px 12px;
        gap: 10px;
    }

    .rank-medal {
        font-size: 20px;
    }

    .rank-label {
        font-size: 12px;
        min-width: 40px;
    }

    .rank-team {
        font-size: 14px;
    }
}
