:root{
  --green:#2E7D32;--green-d:#1B5E20;--yellow:#FDD835;--orange:#FF6F00;
  --txt:#1a1a1a;--txt2:#666;--bg:#f5f6f8;--white:#fff;--border:#e0e0e0;
  --shadow:0 2px 8px rgba(0,0,0,.07);--shadow-lg:0 4px 16px rgba(0,0,0,.12);
  --thu:#6A1B9A;--pku:#D32F2F;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;line-height:1.6;color:var(--txt);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;padding-top:60px}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* ===== 导航 ===== */
.navbar{position:fixed;top:0;width:100%;background:rgba(102, 126, 234, 0.6);backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);box-shadow:0 4px 30px rgba(0,0,0,0.1);z-index:1000;border-bottom:1px solid rgba(255,255,255,0.3);transition:transform 0.3s ease-in-out}
.navbar.hidden{transform:translateY(-100%)}
.navbar .container{display:flex;justify-content:space-between;align-items:center;height:60px}
.logo{display:flex;align-items:center;gap:8px;font-size:1.25rem;font-weight:700;color:white;text-decoration:none}
.logo-icon{font-size:1.6rem}
.nav-menu{display:flex;list-style:none;gap:1.2rem;align-items:center}
.nav-menu a{text-decoration:none;color:white;font-size:.9rem;font-weight:500;transition:color .2s}
.nav-menu a:hover,.nav-menu a.active{opacity:0.8}
.btn-login{border:1px solid rgba(255,255,255,0.5);padding:4px 14px;border-radius:18px;color:white!important;background:rgba(255,255,255,0.2)}
.btn-register{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:4px 14px;border-radius:18px;color:white!important}
.mobile-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer}
.mobile-toggle span{width:22px;height:2px;background:white}

/* ===== 英雄 ===== */
.hero-banner{margin-top:60px;padding:3.5rem 0;background:linear-gradient(135deg,var(--green),var(--green-d));color:var(--white);text-align:center}
.hero-banner h1{font-size:2.8rem;margin-bottom:.6rem}
.hero-sub{font-size:1.2rem;opacity:.9;margin-bottom:2rem}
.hero-stats{display:flex;justify-content:center;gap:4rem;margin-bottom:2rem}
.stat{display:flex;flex-direction:column}
.stat-num{font-size:2.4rem;font-weight:700;color:var(--yellow)}
.stat-lbl{font-size:.95rem;opacity:.85}
.hero-btns{display:flex;gap:1rem;justify-content:center}
.btn{display:inline-block;padding:.7rem 1.8rem;border-radius:24px;text-decoration:none;font-weight:600;font-size:.95rem;transition:all .25s;border:2px solid transparent;cursor:pointer}
.btn-yellow{background:var(--yellow);color:var(--txt)}
.btn-yellow:hover{background:#FBC02D;transform:translateY(-2px)}
.btn-outline{background:transparent;color:var(--white);border-color:var(--white)}
.btn-outline:hover{background:var(--white);color:var(--green)}
.btn-green{background:var(--green);color:var(--white);border:none}
.btn-green:hover{background:var(--green-d)}
.btn-small{padding:.45rem 1rem;font-size:.85rem}

/* ===== 通用区块 ===== */
.section{padding:3.5rem 0}
.alt-bg{background:var(--bg)}
.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}
.section-head h2{font-size:1.8rem;color:var(--txt)}
.section-head-center{font-size:1.8rem;text-align:center;margin-bottom:2rem}
.more-link{color:var(--green);text-decoration:none;font-weight:500;font-size:.95rem}
.more-link:hover{text-decoration:underline}
.result-count{font-size:.9rem;color:var(--txt2)}

/* ===== 筛选栏 ===== */
.filter-bar{display:flex;gap:.8rem;margin-bottom:1.2rem;flex-wrap:wrap}
.filter-bar select{padding:.55rem 1rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:var(--white);color:var(--txt);cursor:pointer;min-width:130px}
.filter-bar select:focus{outline:none;border-color:var(--green)}

/* 排行榜筛选栏 */
.rank-filter-bar{display:flex;gap:.8rem;margin-bottom:1.2rem;flex-wrap:wrap;justify-content:center}
.rank-filter-bar select{padding:.55rem 1rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:var(--white);color:var(--txt);cursor:pointer;min-width:120px}
.rank-filter-bar select:focus{outline:none;border-color:var(--green)}
.rank-summary{text-align:center;font-size:.95rem;color:var(--txt2);margin-bottom:1rem}

/* ===== 分页 ===== */
.pagination{font-size:.85rem;color:var(--txt2);margin-bottom:1rem}
.bottom-pag{margin-top:1rem;margin-bottom:0}

/* ===== 赛事卡片（tennis123 风格） ===== */
.match-cards{display:flex;flex-direction:column;gap:1rem}
.match-card{display:flex;align-items:stretch;background:var(--white);border-radius:10px;box-shadow:var(--shadow);overflow:hidden;transition:all .25s}
.match-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.mc-level{width:56px;display:flex;align-items:center;justify-content:center;background:var(--green);color:var(--white);font-size:1.3rem;font-weight:700;flex-shrink:0}
.mc-body{flex:1;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.35rem}
.mc-title{font-size:1.05rem;font-weight:600;color:var(--txt)}
.mc-venue{font-size:.88rem;color:var(--txt2)}
.mc-meta{display:flex;gap:1.5rem;font-size:.85rem;color:var(--txt2);flex-wrap:wrap}
.mc-meta span{white-space:nowrap}
.mc-right{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:1rem 1.2rem;gap:.5rem;flex-shrink:0;min-width:120px}
.mc-price{font-size:1.15rem;font-weight:700;color:var(--orange)}
.mc-status{font-size:.8rem;font-weight:600;padding:3px 10px;border-radius:12px}
.mc-status.open{background:#E8F5E9;color:#2E7D32}
.mc-status.full{background:#FFF3E0;color:#E65100}
.mc-status.done{background:#ECEFF1;color:#607D8B}

/* ===== 数据表格 ===== */
.data-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
.data-table thead{background:var(--green);color:var(--white)}
.data-table th{padding:.8rem 1rem;text-align:left;font-weight:600;font-size:.9rem}
.data-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.9rem}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table tbody tr:hover{background:var(--bg)}
.team-table-wrap,.champ-table-wrap,.rank-table-wrap{overflow-x:auto}

/* 标签 */
.tag{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.8rem;font-weight:600;color:var(--white)}
.tag.tsinghua{background:var(--thu)}
.tag.pku{background:var(--pku)}
.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.8rem;font-weight:600}
.badge.open{background:#E8F5E9;color:#2E7D32}
.badge.soon{background:#FFF3E0;color:#E65100}
.badge.done{background:#ECEFF1;color:#607D8B}
.lvl{display:inline-block;padding:2px 10px;background:var(--green);color:var(--white);border-radius:12px;font-size:.8rem;font-weight:600}

/* 排行榜 */
.top3{background:#FFFDE7}
.medal{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:var(--white);font-weight:700;font-size:.85rem}
.medal.gold{background:linear-gradient(135deg,#FFD700,#FFA500)}
.medal.silver{background:linear-gradient(135deg,#C0C0C0,#808080)}
.medal.bronze{background:linear-gradient(135deg,#CD7F32,#8B4513)}

/* 详细排行榜 */
.rank-detail-wrap{overflow-x:auto}
.rank-detail-table{font-size:.85rem}
.rank-detail-table th{font-size:.85rem;padding:.7rem .6rem}
.rank-detail-table td{padding:.65rem .6rem;white-space:nowrap}
.rank-detail-table .top3{background:#FFFDE7}
.rank-detail-table .detail-btn{color:var(--green);text-decoration:none;font-weight:600;cursor:pointer}
.rank-detail-table .detail-btn:hover{text-decoration:underline}

/* ===== 搜索 ===== */
.search-box{display:flex;gap:.8rem;max-width:500px;margin:0 auto}
.search-box input{flex:1;padding:.7rem 1rem;border:2px solid var(--border);border-radius:8px;font-size:1rem}
.search-box input:focus{outline:none;border-color:var(--green)}

/* ===== 会员 ===== */
.members-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.member-col{background:var(--white);padding:1.5rem;border-radius:10px;box-shadow:var(--shadow)}
.member-col h3{font-size:1.15rem;color:var(--green);border-bottom:2px solid var(--green);padding-bottom:.5rem;margin-bottom:1rem}
.member-list{list-style:none}
.member-list li{padding:.6rem 0;border-bottom:1px solid var(--border);display:flex;gap:1rem;align-items:center}
.member-list li:last-child{border-bottom:none}
.m-name{font-weight:600;min-width:60px}
.m-gender{font-size:.85rem;color:var(--txt2)}
.m-school{font-size:.85rem;color:var(--txt2);margin-left:auto}

/* ===== 场馆 ===== */
.venue-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}
.venue-card{background:var(--white);padding:1.5rem;border-radius:10px;box-shadow:var(--shadow);text-align:center;transition:all .25s}
.venue-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.venue-icon{font-size:3rem;margin-bottom:.8rem}
.venue-card h3{font-size:1.15rem;margin-bottom:.8rem}
.venue-card p{font-size:.9rem;color:var(--txt2);margin:.3rem 0}

/* ===== 联系 ===== */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}
.contact-item{background:var(--white);padding:1.5rem;border-radius:10px;box-shadow:var(--shadow);text-align:center}
.contact-icon{font-size:2rem;display:block;margin-bottom:.5rem}
.contact-item h4{margin-bottom:.5rem;color:var(--green)}
.contact-item p{color:var(--txt2);font-size:.95rem}

/* ===== 页脚 ===== */
.footer{background:var(--txt);color:var(--white);padding:2.5rem 0 1rem}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem;margin-bottom:2rem}
.footer h4{margin-bottom:.8rem;color:var(--yellow)}
.footer ul{list-style:none}
.footer li{margin:.4rem 0}
.footer a{color:rgba(255,255,255,.7);text-decoration:none;transition:color .2s}
.footer a:hover{color:var(--white)}
.social-row{display:flex;gap:.8rem;margin-top:.5rem}
.social-btn{padding:4px 12px;background:rgba(255,255,255,.1);border-radius:16px;font-size:.85rem}
.footer-bottom{text-align:center;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.5);font-size:.85rem}

/* ===== 响应式 ===== */
@media(max-width:768px){
  .nav-menu{display:none;flex-direction:column;position:absolute;top:60px;left:0;right:0;background:var(--white);padding:1rem;box-shadow:var(--shadow-lg);gap:.8rem}
  .nav-menu.open{display:flex}
  .mobile-toggle{display:flex}
  .hero-banner h1{font-size:2rem}
  .hero-stats{flex-direction:column;gap:1rem}
  .filter-bar{flex-direction:column}
  .filter-bar select{width:100%}
  .match-card{flex-direction:column}
  .mc-level{width:100%;height:40px;flex-direction:row}
  .mc-right{flex-direction:row;padding:.8rem 1.2rem;min-width:auto}
  .members-row{grid-template-columns:1fr}
  .data-table{font-size:.8rem}
  .data-table th,.data-table td{padding:.5rem .6rem}
}

/* ===== 选手详情页 ===== */
.player-detail{background:var(--bg)}
.player-header{display:flex;gap:2rem;background:var(--white);padding:2rem;border-radius:10px;box-shadow:var(--shadow);margin-bottom:2rem}
.player-avatar-large{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,var(--green),#4CAF50);display:flex;align-items:center;justify-content:center;font-size:4rem;flex-shrink:0}
.player-info-main{flex:1}
.player-name-large{font-size:2rem;margin-bottom:.8rem}
.player-meta-row{display:flex;gap:2rem;margin-bottom:1rem;flex-wrap:wrap}
.player-meta-item{font-size:.95rem;color:var(--txt2)}
.player-stats-row{display:flex;gap:2rem;flex-wrap:wrap}
.stat-box{text-align:center}
.stat-val{font-size:1.8rem;font-weight:700;color:var(--green)}
.stat-lbl{font-size:.85rem;color:var(--txt2);margin-top:.3rem}

.player-profile-card{background:var(--white);padding:2rem;border-radius:10px;box-shadow:var(--shadow);margin-bottom:2rem}
.player-profile-card h3{font-size:1.3rem;margin-bottom:1.2rem;color:var(--green);border-bottom:2px solid var(--green);padding-bottom:.5rem}
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1.5rem}
.profile-item{font-size:.95rem;padding:.5rem 0}
.profile-label{font-weight:600;color:var(--txt);margin-right:.5rem}
.profile-text{font-size:.95rem;color:var(--txt2);line-height:1.8}
.profile-text p{margin:.5rem 0}

.match-history-section h2{font-size:1.8rem;margin-bottom:1.5rem}
.match-history-list{display:flex;flex-direction:column;gap:1rem}
.history-card{background:var(--white);padding:1.5rem;border-radius:10px;box-shadow:var(--shadow);transition:all .25s}
.history-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--border)}
.history-header h4{font-size:1.1rem;color:var(--txt)}
.history-date{font-size:.9rem;color:var(--txt2)}
.history-body{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.history-info{display:flex;gap:1.5rem;font-size:.9rem;color:var(--txt2);flex-wrap:wrap}
.history-result{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.result-badge{padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:600}
.result-badge.champion{background:#FFD700;color:var(--txt)}
.result-badge.runner-up{background:#C0C0C0;color:var(--txt)}
.result-badge.semi{background:#CD7F32;color:var(--white)}
.result-badge.quarter{background:#E8F5E9;color:#2E7D32}
.result-badge.group{background:#ECEFF1;color:#607D8B}
.vs-text{font-weight:600;font-size:.95rem}
.score-text{color:var(--txt2);font-size:.9rem}

@media(max-width:768px){
  .player-header{flex-direction:column;text-align:center}
  .player-avatar-large{margin:0 auto}
  .player-meta-row{justify-content:center}
  .player-stats-row{justify-content:center}
  .history-body{flex-direction:column;align-items:flex-start}
}

/* 选手详情页增强 */
.level-stats-table .highlight-row{background:#E8F5E9}
.level-stats-table .detail-link{color:var(--green);text-decoration:none;font-size:.9rem}
.level-stats-table .detail-link:hover{text-decoration:underline}
.recent-matches-table .winner{color:var(--green);font-weight:700}
.recent-matches-table .detail-link{color:var(--green);text-decoration:none;font-size:.9rem}
.recent-matches-table .detail-link:hover{text-decoration:underline}
