/* ==========================================================================
   파크골프 랭킹 프론트엔드 통합 스타일시트
   ========================================================================== */

/* 🖥️ 공통 및 PC 레이아웃 */
.pg-frontend-wrap, .pg-tournament-wrap { font-family: 'Noto Sans KR', 'Malgun Gothic', sans-serif; max-width: 1000px; margin: 0 auto; padding: 10px; box-sizing: border-box; }

/* 🔥 [업그레이드] 펼침/접힘 랭킹 공지사항 패널 */
.pg-ranking-notice { background: #f8fbff; border: 1px solid #cce5ff; border-left: 4px solid #0073aa; border-radius: 6px; margin-bottom: 25px; color: #333; font-size: 14px; line-height: 1.6; animation: pgFadeInUp 0.5s ease; transition: all 0.3s ease; }
.pg-ranking-notice summary { padding: 16px 20px; font-size: 16px; font-weight: 800; color: #0073aa; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; outline: none; }
.pg-ranking-notice summary::-webkit-details-marker { display: none; } /* 기본 화살표 숨김 */
.pg-ranking-notice-content { padding: 0 20px 18px 20px; border-top: 1px dashed #cce5ff; margin-top: 5px; padding-top: 15px; }
.pg-ranking-notice-content ul { margin: 0; padding-left: 20px; list-style-type: disc; }
.pg-ranking-notice-content li { margin-bottom: 6px; }
.pg-ranking-notice-content p { margin-top:0; margin-bottom:10px; }
.pg-notice-toggle-icon { font-size: 12px; transition: transform 0.3s ease; color: #0073aa; }
.pg-ranking-notice[open] .pg-notice-toggle-icon { transform: rotate(180deg); }

/* 탭 버튼 */
.pg-tabs-container { display: flex; gap: 15px; margin-bottom: 25px; overflow-x: auto; padding-bottom: 0; border-bottom: 1px solid #ddd; -webkit-overflow-scrolling: touch; }
.pg-tabs-container::-webkit-scrollbar { display: none; } 
.pg-tab-btn { flex: 1; min-width: 105px; padding: 12px 5px; text-align: center; background: transparent; border: none; color: #888; font-weight: 700; font-size: 16px; cursor: pointer; transition: all 0.2s ease; position: relative; white-space: nowrap; margin-bottom: -1px; }
.pg-tab-btn:hover { color: #333; }
.pg-tab-btn.active { color: #0073aa; font-weight: 800; border-bottom: 3px solid #0073aa; }

/* 필터 및 검색 폼 */
.pg-filter-box { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 30px; align-items: center; }
.pg-filter-box select, .pg-filter-box input[type="text"] { padding: 10px 14px; border: 1px solid #ccc; border-radius: 6px; font-size: 14px; background: #fff; flex: 1; min-width: 120px; outline: none; }
.pg-filter-box button { background: #2c3e50; color: #fff; border: none; padding: 10px 20px; border-radius: 6px; font-weight: bold; cursor: pointer; white-space: nowrap; }
.pg-loading-spinner { text-align: center; padding: 50px 0; color: #0073aa; font-weight: bold; font-size: 16px; display: none; }

/* 순위 등락(전년도 비교) 뱃지 디자인 */
.pg-rank-change { font-size: 11px; font-weight: bold; margin-left: 5px; padding: 2px 6px; border-radius: 4px; display:inline-block; vertical-align: middle; }
.pg-rank-change.up { color: #d63638; background: #fbeaea; }
.pg-rank-change.down { color: #0073aa; background: #e6f2f8; }
.pg-rank-change.same { color: #888; background: #f1f1f1; }
.pg-rank-change.new { color: #198754; background: #e8f5e9; font-size: 10px; }

.pg-top-change { font-size: 13px; font-weight: bold; margin-bottom: 10px; display: inline-block; padding: 3px 8px; border-radius: 20px;}
.pg-top-change.up { color: #d63638; background: #fbeaea; }
.pg-top-change.down { color: #0073aa; background: #e6f2f8; }
.pg-top-change.same { color: #888; background: #f1f1f1; }
.pg-top-change.new { color: #198754; background: #e8f5e9; }

/* 시상대 UI */
.pg-top3-container { display: flex; justify-content: center; align-items: stretch; gap: 15px; margin-bottom: 40px; padding-top: 10px; animation: pgFadeInUp 0.5s ease; }
.pg-top-card { background: #fff; border-radius: 12px; border: 1px solid #eee; border-top: 6px solid #ccc; padding: 25px 15px; text-align: center; flex: 1; max-width: 230px; position: relative; transition: transform 0.3s; box-shadow: 0 4px 15px rgba(0,0,0,0.03); display: flex; flex-direction: column; justify-content: space-between; }
.pg-top-1 { order: 2; border-top-color: #ffd700; box-shadow: 0 6px 20px rgba(255, 215, 0, 0.15); z-index: 2;}
.pg-top-2 { order: 1; border-top-color: #c0c0c0; }
.pg-top-3 { order: 3; border-top-color: #cd7f32; }
.pg-top-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0,0,0,0.08); }
.pg-top-rank-icon { font-size: 32px; margin-bottom: 5px; }
.pg-top-title { font-weight: 800; color: #333; font-size: 15px; margin-bottom: 5px; }
.pg-top-name { font-size: 20px; font-weight: 800; color: #0073aa; display:inline-block; cursor:pointer; text-decoration:none; margin-bottom:5px; border-bottom: 1px dashed #0073aa; padding-bottom:2px; transition: 0.2s;}
.pg-top-name:hover { color: #d63638; border-bottom-color: #d63638; }
.pg-top-meta { font-size: 12px; color: #888; margin-bottom: 12px; }
.pg-top-points { font-size: 22px; font-weight: 900; color: #d63638; line-height: 1; }

/* 랭킹 테이블 공통 */
.pg-ranking-table { width: 100%; border-collapse: collapse; text-align: center; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,0.03); border-radius: 8px; overflow: hidden; animation: pgFadeInUp 0.5s ease; border: 1px solid #eaeaea; }
.pg-ranking-table thead { background: #f8f9fa; border-bottom: 2px solid #ccc; color: #333; }
.pg-ranking-table th { padding: 12px 10px; font-size: 14px; font-weight: 700; white-space: nowrap; }
.pg-ranking-table td { padding: 15px 10px; border-bottom: 1px solid #f0f0f0; vertical-align: middle; }
.pg-rank-badge { display: inline-block; font-size: 16px; font-weight: bold; color: #444; }
.pg-cat-rank { display: inline-block; font-size: 11px; color: #666; margin-top: 5px; background: #f1f1f1; padding: 3px 8px; border-radius: 20px; font-weight:500;}
.pg-player-info { text-align: left; }
.pg-player-meta { font-size: 12px; color: #999; margin-bottom: 4px; display: block; }
.pg-player-name-td, .pg-club-name-td { font-size: 16px; font-weight: 700; color: #0073aa; text-decoration: none; cursor: pointer; transition: 0.2s; border-bottom: 1px dashed #0073aa; display: inline-block; padding-bottom: 2px;}
.pg-player-name-td:hover, .pg-club-name-td:hover { color: #d63638; border-bottom-color: #d63638; }
.pg-points-td { font-size: 16px; font-weight: bold; color: #d63638; }

/* 페이징 */
.pg-pagination { margin-top: 25px; text-align: center; }
.pg-pagination a, .pg-pagination span { display: inline-block; padding: 8px 14px; margin: 0 3px; border: 1px solid #ddd; border-radius: 6px; text-decoration: none; color: #333; background: #fff; font-size:14px;}
.pg-pagination span.current { background: #2c3e50; color: #fff; border-color: #2c3e50; font-weight: bold; }

/* 대회 목록 vs 달력 뷰 토글 버튼 */
.pg-t-view-toggle { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 20px; }
.pg-t-toggle-btn { padding: 10px 18px; background: #f4f9fb; border: 1px solid #dbe3e9; border-radius: 30px; font-size: 14px; font-weight: bold; color: #555; text-decoration: none; transition: 0.2s; }
.pg-t-toggle-btn:hover { background: #e6f2f8; color: #0073aa; }
.pg-t-toggle-btn.active { background: #0073aa; color: #fff; border-color: #0073aa; }

/* 대회 일정 리스트 (카드형) */
.pg-t-list { display: flex; flex-direction: column; gap: 20px; margin-top: 10px; animation: pgFadeInUp 0.5s ease; }
.pg-t-card { display: flex; background: #fff; border-radius: 12px; box-shadow: 0 2px 12px rgba(0,0,0,0.06); padding: 20px; align-items: center; gap: 25px; border: 1px solid #eaeaea; transition: transform 0.2s, box-shadow 0.2s; }
.pg-t-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,0.1); }
.pg-t-card-img { width: 220px; height: 150px; object-fit: cover; border-radius: 10px; flex-shrink: 0; background: #f4f4f4; border: 1px solid #f0f0f0; }
.pg-t-card-content { flex: 1; text-align: left; align-self: flex-start; }
.pg-t-card-title { font-size: 24px; font-weight: 800; margin: 0 0 10px 0; line-height: 1.4; }
.pg-t-card-title a { color: #222; text-decoration: none; transition: color 0.2s; display: block; }
.pg-t-card-title a:hover { color: #0073aa; text-decoration: underline; text-underline-offset: 4px; }
.pg-t-card-desc { font-size: 15px; color: #555; line-height: 1.5; margin: 0; word-break: keep-all; }
.pg-t-card-badges { margin-bottom: 12px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.pg-status-badge { display: inline-block; padding: 4px 10px; border-radius: 20px; font-size: 11px; font-weight: bold; color: #fff; white-space: nowrap; }
.pg-status-ongoing { background-color: #00a32a; } .pg-status-upcoming { background-color: #0073aa; } .pg-status-ended { background-color: #888888; } 
.pg-tier-badge { display: inline-block; font-size: 12px; font-weight: 900; padding: 3px 8px; border-radius: 4px; color: #fff; margin-right:5px;}
.pg-tier-s { background-color: #d63638; } .pg-tier-a { background-color: #2271b1; } .pg-tier-b { background-color: #00a32a; } .pg-tier-c { background-color: #646970; }
.pg-t-points { font-size: 12px; color: #888; display: inline-block; font-weight:bold; }
.pg-t-card-action { flex-shrink: 0; text-align: right; min-width: 140px; display: flex; flex-direction: column; justify-content: center; align-items: flex-end; }
.pg-t-card-date { font-size: 16px; color: #333; margin: 0 0 15px 0; font-weight: 600; }
.pg-t-card-btn { background: #345c7d; color: #fff; padding: 12px 24px; border-radius: 30px; text-decoration: none; font-weight: 700; font-size: 15px; cursor: pointer; transition: background 0.2s; display: inline-block; border: none; text-align: center; box-sizing: border-box;}
.pg-t-card-btn:hover { background: #234561; color: #fff; }
.pg-t-card-btn.disabled { background: #ccc; cursor: not-allowed; color: #fff; }
.pg-t-card-btn.disabled:hover { background: #ccc; }

/* 대회 캘린더 UI */
.pg-cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; background: #fff; padding: 15px 20px; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.03); border: 1px solid #eaeaea; }
.pg-cal-nav { font-size: 16px; font-weight: bold; color: #0073aa; text-decoration: none; padding: 8px 15px; border-radius: 8px; transition: 0.2s; border: 1px solid #0073aa; background:#fff;}
.pg-cal-nav:hover { background: #0073aa; color: #fff; }
.pg-cal-title { font-size: 24px; font-weight: 900; color: #222; margin: 0; }
.pg-cal-wrapper { overflow-x: auto; background: #fff; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.03); border: 1px solid #eaeaea; }
.pg-calendar { width: 100%; min-width: 700px; border-collapse: collapse; table-layout: fixed; }
.pg-calendar th { padding: 15px 10px; text-align: center; background: #f8f9fa; border-bottom: 1px solid #ddd; border-right: 1px solid #eee; font-size: 15px; font-weight: bold; color: #555; }
.pg-calendar th:last-child { border-right: none; }
.pg-calendar th.sun { color: #d63638; }
.pg-calendar th.sat { color: #2271b1; }
.pg-calendar td { height: 130px; padding: 8px; vertical-align: top; border-bottom: 1px solid #eee; border-right: 1px solid #eee; transition: background 0.2s; }
.pg-calendar td:last-child { border-right: none; }
.pg-calendar td:hover { background: #fafbfc; }
.pg-calendar td.empty { background: #fdfdfd; }
.pg-calendar td.today { background: #fffdf5; }
.pg-cal-date { display: inline-block; font-size: 15px; font-weight: bold; color: #333; margin-bottom: 8px; padding: 2px 6px; border-radius: 4px; }
.pg-calendar td.today .pg-cal-date { background: #d63638; color: #fff; }
.pg-calendar td:nth-child(1) .pg-cal-date { color: #d63638; }
.pg-calendar td:nth-child(7) .pg-cal-date { color: #2271b1; }
.pg-cal-item { display: block; font-size: 11px; font-weight: bold; color: #fff; padding: 5px 6px; margin-bottom: 5px; border-radius: 4px; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; transition: 0.2s; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
.pg-cal-item:hover { transform: translateY(-1px); box-shadow: 0 2px 5px rgba(0,0,0,0.2); color: #fff; }
.pg-cal-item.tier-s { background-color: #d63638; }
.pg-cal-item.tier-a { background-color: #2271b1; }
.pg-cal-item.tier-b { background-color: #00a32a; }
.pg-cal-item.tier-c { background-color: #646970; }

/* 모바일 접속 시 달력 안내 메시지 (기본 숨김) */
.pg-cal-mobile-warning { display: none; }

/* 팝업 모달 공통 (z-index 최상위 유지) */
.pg-modal-overlay { display: none; position: fixed; z-index: 2147483647 !important; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.6); align-items: center; justify-content: center; backdrop-filter: blur(3px); padding: 10px; box-sizing: border-box; }
.pg-modal-box { background-color: #fff; width: 100%; max-width: 650px; border-radius: 12px; box-shadow: 0 5px 30px rgba(0,0,0,0.3); overflow: hidden; animation: pgModalFadeIn 0.3s ease; display: flex; flex-direction: column; max-height: 80vh; }
.pg-modal-header { background: #0073aa; color: #fff; padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; transition: background 0.3s; }
.pg-modal-header-dark { background: #2c3e50; color: #fff; padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; }
.pg-modal-title { margin: 0; font-size: 18px; font-weight: bold; color:#fff; }
.pg-modal-close { background: none; border: none; color: #fff; font-size: 28px; cursor: pointer; line-height: 1; padding: 0; margin: 0; display: block; }
.pg-modal-close:hover { color: #ffcccc; }
.pg-modal-body { padding: 20px; overflow-y: auto; flex-grow: 1; -webkit-overflow-scrolling: touch; text-align: left;}

/* 뒤로가기 버튼 및 팝업 프로필 */
.pg-back-to-club-btn { display: inline-flex; align-items: center; padding: 8px 14px; background: #f4f9fb; border: 1px solid #0073aa; color: #0073aa; border-radius: 6px; font-size: 13px; font-weight: bold; cursor: pointer; margin-bottom: 20px; transition: 0.2s; text-decoration: none; }
.pg-back-to-club-btn:hover { background: #0073aa; color: #fff; }
.pg-player-modal-profile { margin-bottom: 20px; text-align: center; }
.pg-pm-name { font-size: 22px; font-weight: 900; color: #222; margin-bottom: 5px; }
.pg-pm-club { font-size: 13px; color: #666; background: #f4f9fb; display: inline-block; padding: 6px 12px; border-radius: 20px; border: 1px solid #dbe3e9; }

/* 팝업 내부 테이블 */
.pg-player-record-table, .pg-club-member-table { width: 100%; border-collapse: collapse; text-align: center; font-size: 14px; }
.pg-player-record-table th, .pg-club-member-table th { background: #f1f5f9; padding: 12px 10px; font-weight: bold; border-bottom: 2px solid #ddd; }
.pg-player-record-table td, .pg-club-member-table td { padding: 14px 10px; border-bottom: 1px solid #eee; vertical-align: middle; }
.pg-pr-date { color: #666; }
.pg-pr-title { text-align: left !important; font-weight: bold; color: #222; font-size:15px; }
.pg-pr-tier { font-size: 11px; background: #e2e8f0; padding: 2px 6px; border-radius: 4px; margin-right: 5px; font-weight: normal; color: #333; }
.pg-pr-rank { font-weight: bold; color: #0073aa; font-size: 15px; }
.pg-pr-score { font-size: 12px; color: #888; font-weight: normal; display: block; margin-top:2px; }
.pg-pr-pts { font-weight: 900; color: #d63638; font-size: 16px; }

.pg-t-detail-table { width: 100%; border-collapse: collapse; font-size: 14px; text-align: left; }
.pg-t-detail-table th { width: 120px; background: #f1f5f9; padding: 12px; font-weight: bold; border-bottom: 1px solid #ddd; }
.pg-t-detail-table td { padding: 12px; border-bottom: 1px solid #eee; line-height: 1.6; white-space: pre-wrap; }
.pg-t-detail-table img { max-width: 100%; height: auto; display: block; margin: 0 auto; }

/* 탑 4 랭킹 위젯 [pg_top4_ranking] */
.pg-top4-wrapper { font-family: 'Noto Sans KR', 'Malgun Gothic', sans-serif; max-width: 1000px; margin: 40px auto; padding: 20px; box-sizing: border-box; display: flex; gap: 40px; align-items: center; justify-content: space-between; background: #fff; border-radius: 12px; }
.pg-top4-info { flex: 1; min-width: 280px; }
.pg-top4-title { font-size: 32px; font-weight: 900; margin: 0 0 15px 0; color: #111; letter-spacing: -0.5px; }
.pg-top4-desc { font-size: 15px; color: #555; line-height: 1.6; margin: 0 0 25px 0; word-break: keep-all; }
.pg-top4-btn { background: #345c7d; color: #fff; padding: 12px 26px; border-radius: 30px; text-decoration: none; font-weight: bold; font-size: 15px; display: inline-block; transition: background 0.2s; border: none; }
.pg-top4-btn:hover { background: #22425b; color: #fff; }
.pg-top4-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; flex: 1.2; min-width: 300px; }
.pg-top4-card { background: #345c7d; color: #fff; border-radius: 4px; padding: 40px 20px; text-align: center; display: flex; flex-direction: column; justify-content: center; align-items: center; transition: transform 0.2s; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.pg-top4-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(52, 92, 125, 0.3); }
.pg-top4-points { font-size: 56px; font-weight: 700; line-height: 1; margin: 0 0 15px 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; letter-spacing: -1px; }
.pg-top4-name { font-size: 16px; font-weight: bold; margin: 0; color: #fff; }

@keyframes pgFadeInUp { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }
@keyframes pgModalFadeIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }

/* 📱 모바일 버전 반응형 */
@media(max-width: 768px) {
    .pg-tabs-container { padding-bottom: 5px; gap: 10px; }
    .pg-tab-btn { font-size: 14px; padding: 10px 5px; min-width: 90px; }
    .pg-filter-box { flex-direction: column; align-items: stretch; gap: 8px; margin-bottom: 20px;}
    .pg-filter-box select, .pg-filter-box input, .pg-filter-box button { width: 100%; flex: none; }
    
    .pg-top3-container { display: flex; flex-direction: column; align-items: stretch; gap: 12px; padding: 0; margin-bottom: 30px; }
    .pg-top-card { max-width: 100%; width: 100%; padding: 20px 15px; margin: 0; }
    .pg-top-1 { order: 1; transform: none; box-shadow: 0 4px 15px rgba(241, 196, 15, 0.15); }
    .pg-top-2 { order: 2; transform: none; }
    .pg-top-3 { order: 3; transform: none; }
    
    .pg-ranking-table, .pg-ranking-table tbody, .pg-ranking-table tr, .pg-ranking-table td { display: block; width: 100%; box-sizing: border-box; }
    .pg-ranking-table thead { display: none; } 
    .pg-ranking-table tr { padding: 15px; margin-bottom: 12px; border: 1px solid #eee; border-radius: 12px; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.03); }
    .pg-ranking-table td { padding: 0; border: none; }
    .pg-ranking-table td:nth-child(1) { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #f0f0f0; padding-bottom: 10px; margin-bottom: 12px; text-align: left; } 
    .pg-ranking-table td:nth-child(1) br { display: none; } 
    .pg-rank-badge { font-size: 16px; color: #222; }
    .pg-cat-rank { display: inline-block; font-size: 11px; margin: 0; padding: 4px 8px; background: #f4f9fb; color: #0073aa; border: 1px solid #dbe3e9; }
    .pg-ranking-table td:nth-child(2) { display: block; text-align: left; } 
    .pg-player-meta { display: block; margin-bottom: 6px; font-size: 12px; color: #888; }
    .pg-player-name-td, .pg-club-name-td { display: inline-block; font-size: 18px; border-bottom: none; text-decoration: underline; text-decoration-style: dashed; text-underline-offset: 4px; margin-bottom: 10px; color: #0073aa; font-weight: 800;}
    .pg-ranking-table td:nth-child(3) { display: none; } 
    .pg-ranking-table td:nth-child(4) { display: block; text-align: right; border-top: 1px dashed #eee; padding-top: 12px; margin-top: 5px; } 
    .pg-points-td { font-size: 20px; font-weight: 900; }

    /* 모바일 대회일정 */
    .pg-t-card { flex-direction: column; align-items: stretch; gap: 15px; padding: 15px; }
    .pg-t-card-img { width: 100%; height: 200px; }
    .pg-t-card-action { text-align: left; align-items: flex-start; border-top: 1px dashed #ddd; padding-top: 15px; }
    .pg-t-card-date { margin-bottom: 10px; }
    .pg-t-card-btn { width: 100%; text-align: center; }

    /* 모바일 달력뷰 강제 차단 및 우회 안내 */
    .pg-t-cal-btn { display: none !important; }
    .pg-cal-header, .pg-cal-wrapper { display: none !important; }
    .pg-cal-mobile-warning { display: block !important; text-align: center; padding: 40px 20px; background: #fff; border-radius: 12px; box-shadow: 0 2px 10px rgba(0,0,0,0.03); border: 1px solid #eaeaea; color: #555; font-size: 15px; line-height: 1.6; }

    .pg-modal-box { max-height: 85vh; width: 95%; }
    .pg-modal-body { padding: 15px; background: #f8f9fa; }
    
    .pg-player-record-table thead { display: none; }
    .pg-player-record-table, .pg-player-record-table tbody { display: block; width: 100%; }
    .pg-player-record-table tr { display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "date date" "title title" "rank pts"; gap: 5px; background: #fff; margin-bottom: 12px; padding: 15px; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.05); border: 1px solid #eaeaea; }
    .pg-player-record-table td { padding: 0 !important; border: none !important; text-align: left !important; }
    .pg-pr-date { grid-area: date; font-size: 12px; color: #888; margin-bottom: 5px; }
    .pg-pr-title { grid-area: title; font-size: 15px; margin-bottom: 10px; line-height: 1.4; }
    .pg-pr-rank { grid-area: rank; border-top: 1px dashed #eee; padding-top: 10px; display: flex; align-items: center; gap: 5px; }
    .pg-pr-score { display: inline; margin-top: 0; }
    .pg-pr-pts { grid-area: pts; border-top: 1px dashed #eee; padding-top: 10px; text-align: right !important; }

    .pg-club-member-table thead { display: none; }
    .pg-club-member-table, .pg-club-member-table tbody, .pg-club-member-table tr, .pg-club-member-table td { display: block; width: 100%; box-sizing: border-box;}
    .pg-club-member-table tr { display: flex; flex-wrap: wrap; align-items: center; padding: 15px; margin-bottom: 10px; background: #fff; border-radius: 12px; border: 1px solid #eaeaea; box-shadow: 0 2px 6px rgba(0,0,0,0.03); }
    .pg-club-member-table td { padding: 0 !important; border: none !important; }
    .pg-club-member-table td:nth-child(1) { width: 30px; font-weight: bold; color: #888; text-align: left; }
    .pg-club-member-table td:nth-child(2) { flex: 1; text-align: left; font-size: 16px; font-weight: bold; color: #222; display: flex; align-items: center; gap: 8px;}
    .pg-club-member-table td:nth-child(3) { display: none; } 
    .pg-club-member-table td:nth-child(4) { width: 100%; text-align: right; border-top: 1px dashed #eee; padding-top: 10px; margin-top: 10px; font-weight: 900; color: #d63638; font-size: 18px; }

    .pg-t-detail-table, .pg-t-detail-table tbody, .pg-t-detail-table tr, .pg-t-detail-table th, .pg-t-detail-table td { display: block; width: 100%; box-sizing: border-box; }
    .pg-t-detail-table tr { margin-bottom: 10px; border: 1px solid #eaeaea; border-radius: 10px; padding: 12px; background:#fff; box-shadow: 0 2px 6px rgba(0,0,0,0.02);}
    .pg-t-detail-table th { background: transparent; border: none; padding: 0 0 5px 0 !important; color: #0073aa; font-size: 12px; }
    .pg-t-detail-table td { padding: 0 !important; border: none !important; font-size: 14px; color: #222; }

    /* 탑 4 랭킹 위젯 모바일 반응형 */
    .pg-top4-wrapper { flex-direction: column; align-items: stretch; gap: 30px; margin: 20px 0; padding: 15px; }
    .pg-top4-info { text-align: center; }
    .pg-top4-grid { grid-template-columns: repeat(2, 1fr); min-width: 100%; gap: 10px; }
    .pg-top4-card { padding: 25px 10px; }
    .pg-top4-points { font-size: 40px; margin-bottom: 10px; }
    .pg-top4-name { font-size: 14px; }
}