body {background:var(--tblr-bg);}
.logo-main {width:64px;height:64px;border-radius:1.1rem;background:#fff;padding:0.15rem;object-fit:contain;box-shadow:0 4px 12px rgba(0,0,0,0.15);flex-shrink:0;}
.avatar-sm {width:36px;height:36px;border-radius:50%;object-fit:cover;}
.team-logo-min {width:28px;height:28px;border-radius:4px;object-fit:cover;}
.player-item {display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--tblr-border-color);}
.tab-left {border-right:1px var(--tblr-border-color);min-height:400px;}
.tab-right {padding:12;min-height:400px;}
.nav-tabs .nav-link {font-size:0.9rem; display: flex; align-items: center; justify-content: center;}
.fs-7 {font-size:0.7rem !important;}
/* 比赛列表样式（与 index 统一） */
.match-row {
    position: relative;
    border-bottom: 1px solid var(--tblr-border-color);
    transition: background .15s ease, box-shadow .15s ease;
}
.match-row:last-child { border-bottom: none; }
.match-row:hover { background: transparent; box-shadow: inset 3px 0 0 var(--tblr-primary); }
.match-row:active { background: transparent; box-shadow: inset 3px 0 0 var(--tblr-primary); }
.match-row-finished { opacity: .68; }
.match-row-finished:hover { opacity: .88; }
.match-score {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    min-width: 22px;
    text-align: center;
    flex-shrink: 0;
}
.trophy-slot {
    width: 0.65rem;
    height: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 2px;
}
/* === 数据榜单 3个顶部tab - 分段控制器风格（整体胶囊） === */
.rank-main-tabs {
    display: flex;
    justify-content: center;
    gap: 0;
    padding: 3px;
    margin: 12px auto 16px;
    background: var(--tblr-bg-surface-secondary);
    border-radius: 999px;
    width: fit-content;
    max-width: 100%;
    box-shadow: inset 0 1px 2px rgba(0,0,0,.04);
}
.rank-main-tabs .rank-tab-btn {
    flex: 1;
    border: none;
    border-radius: 999px;
    padding: 8px 28px;
    font-size: 1rem;
    color: var(--tblr-secondary);
    background: transparent;
    cursor: pointer;
    transition: all .2s;
    white-space: nowrap;
    min-width: 0;
}
@media (max-width: 380px) {
    .rank-main-tabs { padding: 3px; }
    .rank-main-tabs .rank-tab-btn { padding: 6px 14px; font-size: 0.85rem; }
}
@media (max-width: 320px) {
    .rank-main-tabs .rank-tab-btn { padding: 5px 6px; font-size: 0.75rem; }
}
.rank-main-tabs .rank-tab-btn.active {
    background: var(--tblr-primary);
    color: #fff;
}
/* 积分榜 */
.standings-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.standings-table { width:100%; min-width:260px; font-size:.75rem; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.standings-table th { color:var(--tblr-secondary); font-weight:500; padding:6px 2px; background:var(--tblr-bg-surface-secondary); font-size:.7rem; }
.standings-table td { padding:6px 2px; border-bottom:1px solid var(--tblr-border-color); vertical-align:middle; }
.standings-table tr:nth-child(even) td { background:rgba(127,99,244,.04); }
.rank-medal { width:24px; height:24px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:.75rem; font-weight:bold; }
.rank-medal.gold { background:linear-gradient(135deg,#ffd700,#ffb800); }
.rank-medal.silver { background:linear-gradient(135deg,#d0d0d0,#b0b0b0); }
.rank-medal.bronze { background:linear-gradient(135deg,#e6a15c,#c67a2b); }
/* 二级左侧菜单 */
.sub-menu-list { display:flex; flex-direction:column; gap:4px; }
.sub-menu-list .sub-menu-item {
    text-align:left; padding:8px 10px; border-radius:6px; border:none;
    background:transparent; color:var(--tblr-secondary); font-size:.88rem;
}
.sub-menu-list .sub-menu-item.active { background:var(--tblr-primary-bg-subtle); color:var(--tblr-primary); font-weight:600; }
.rank-row { display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--tblr-border-color); }
.rank-num { width:26px; text-align:center; font-weight:600; color:var(--tblr-secondary); }
.sub-rank-pane .empty-tip { text-align:center; color:var(--tblr-secondary); padding:30px 0; font-size:.9rem; }
/* 淘汰赛对阵图 - 少量自定义 */
.ko-logo { width:48px; height:48px; border-radius:8px; object-fit:cover; flex-shrink:0; }
.ko-name { max-width:90px; }
.ko-score { font-size:1.5rem; }
.ko-score.text-primary { font-size:1.6rem; }
.ko-loser img { filter:grayscale(1); opacity:.5; }
.ko-loser span { color:var(--tblr-secondary) !important; }
/* 赛事介绍 tab */
.intro-list { font-size:.88rem; }
.intro-item { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:10px 2px; border-bottom:1px solid var(--tblr-border-color); }
.intro-item:last-child { border-bottom:none; }
.intro-label { color:var(--tblr-secondary); flex-shrink:0; }
.intro-value { font-weight:500; text-align:right; word-break:break-all; }
.intro-desc { margin-top:6px; padding:10px; background:var(--tblr-bg-surface-secondary); border-radius:8px; color:var(--tblr-body-color); font-size:.85rem; line-height:1.6; white-space:pre-wrap; }
/* ===== 英雄卡片（与 match_detail 比分英雄区一致：主题色背景 + 浮动气泡） ===== */
.org-hero { background: var(--tblr-primary); color: #fff; position: relative; overflow: hidden; }
.org-hero .org-hero-inner { position: relative; z-index: 1; }
.org-hero .text-secondary, .org-hero .text-muted { color: #fff !important; text-shadow: 0 1px 3px rgba(0,0,0,0.35); }
.org-hero .fw-bold, .org-hero .fw-semibold { color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,0.35); }
.org-hero .fs-3 { font-weight: 700; }
.org-hero .border-top { border-color: rgba(255,255,255,0.25) !important; }
.org-hero .carousel-bubbles {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    border-radius: inherit;
    z-index: 0;
}
.org-hero .carousel-bubbles .ring {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    will-change: transform;
}
.org-hero .carousel-bubbles .r1 {
    width: 180px;
    height: 180px;
    top: -12%;
    left: 96%;
    margin: -90px 0 0 -90px;
    background: radial-gradient(circle, rgba(255,255,255,0.10) 99.5%, rgba(255,255,255,0) 100%);
    animation: ring-pulse 3.8s ease-in-out infinite alternate;
}
.org-hero .carousel-bubbles .r2 {
    width: 110px;
    height: 110px;
    top: 35%;
    left: 25%;
    margin: -55px 0 0 -55px;
    background: radial-gradient(circle, rgba(255,255,255,0.12) 99.5%, rgba(255,255,255,0) 100%);
    animation: ring-pulse 4.6s ease-in-out infinite alternate;
    animation-delay: -1.5s;
}
.org-hero .carousel-bubbles .r3 {
    width: 80px;
    height: 80px;
    top: 68%;
    left: 76%;
    margin: -40px 0 0 -40px;
    background: radial-gradient(circle, rgba(255,255,255,0.12) 99.5%, rgba(255,255,255,0) 100%);
    animation: ring-pulse 3.1s ease-in-out infinite alternate;
    animation-delay: -0.8s;
}
.org-hero .carousel-bubbles .bubble {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    will-change: transform;
    pointer-events: none;
}
.org-hero .carousel-bubbles .b1 {
    width: 56px;
    height: 56px;
    margin: -28px 0 0 -28px;
    background: rgba(255,255,255,0.12);
    box-shadow: 0 0 28px rgba(255,255,255,0.16);
    --r: 108px;
    animation: carousel-orbit-fwd 18s linear infinite;
}
.org-hero .carousel-bubbles .b2 {
    width: 34px;
    height: 34px;
    margin: -17px 0 0 -17px;
    background: rgba(255,255,255,0.16);
    --r: 74px;
    animation: carousel-orbit-rev 26s linear infinite;
}
.org-hero .carousel-bubbles .b3 {
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    background: rgba(255,255,255,0.20);
    --r: 46px;
    animation: carousel-orbit-fwd 21s linear infinite;
}
@keyframes ring-pulse {
    from { transform: scale(1); }
    to   { transform: scale(1.18); }
}
@keyframes carousel-orbit-fwd {
    from { transform: rotate(0deg) translateX(var(--r)) rotate(0deg); }
    to   { transform: rotate(360deg) translateX(var(--r)) rotate(-360deg); }
}
@keyframes carousel-orbit-rev {
    from { transform: rotate(0deg) translateX(var(--r)) rotate(0deg); }
    to   { transform: rotate(-360deg) translateX(var(--r)) rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .org-hero .carousel-bubbles .bubble,
    .org-hero .carousel-bubbles .ring {
        animation: none;
    }
}
