
/* ─── Variables ─────────────────────────────────────────────── */
:root {
  --bg: #0d0f14; --bg2: #141720; --bg3: #1c2030; --bg4: #232840;
  --border: #2a3050; --border2: #3a4070;
  --text: #e8eaf0; --text2: #9ba3c0; --text3: #6b7494;
  --accent: #f97316; --accent2: #fb923c;
  --blue: #3b82f6; --green: #22c55e; --red: #ef4444; --purple: #a855f7;
  --gold: #f59e0b; --silver: #94a3b8; --bronze: #cd7f32;
  --card-shadow: 0 4px 24px rgba(0,0,0,.45);
  --radius: 12px; --radius-sm: 8px;
  --font: 'Inter', system-ui, sans-serif;
  --transition: .2s ease;
}
[data-theme="light"] {
  --bg:#f0f2f8; --bg2:#fff; --bg3:#f5f7ff; --bg4:#eef0fb;
  --border:#d1d5e8; --border2:#b8bdd8;
  --text:#1a1d2e; --text2:#4a5070; --text3:#8890b0;
  --card-shadow: 0 2px 16px rgba(0,0,50,.12);
}

/* ─── Reset ──────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
button{cursor:pointer;border:none;background:none;font-family:inherit}

/* ─── Scrollbar ──────────────────────────────────────────────── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}

/* ─── Navbar ─────────────────────────────────────────────────── */
.navbar{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;
  background:rgba(13,15,20,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
[data-theme="light"] .navbar{background:rgba(240,242,248,.92)}
.nav-brand{display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.nav-logo{font-size:1.6rem}
.nav-title{font-size:1.05rem;font-weight:700;letter-spacing:-.3px}
.nav-sub{color:var(--accent);font-weight:800}
.nav-links{display:flex;gap:.25rem;flex:1}
.nav-link{padding:.45rem .9rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;
  color:var(--text2);transition:var(--transition)}
.nav-link:hover,.nav-link.active{color:var(--text);background:var(--bg3);text-decoration:none}
.nav-actions{display:flex;align-items:center;gap:.75rem;margin-left:auto}
.update-badge{font-size:.75rem;color:var(--text3);background:var(--bg3);
  padding:.25rem .65rem;border-radius:20px;white-space:nowrap}
.theme-btn{font-size:1.2rem;padding:.35rem;border-radius:var(--radius-sm);
  background:var(--bg3);transition:var(--transition)}
.theme-btn:hover{background:var(--bg4)}

/* ─── Hero ───────────────────────────────────────────────────── */
.hero{
  background:linear-gradient(135deg,var(--bg2) 0%,var(--bg3) 50%,var(--bg2) 100%);
  border-bottom:1px solid var(--border);
  padding:2.5rem 1.5rem;position:relative;overflow:hidden;
}
.hero::before{
  content:'🏀';position:absolute;right:-2rem;top:-2rem;
  font-size:12rem;opacity:.04;pointer-events:none;
}
.hero-content{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}
.hero-text{flex:1;min-width:200px}
.hero-text h1{font-size:2.2rem;font-weight:900;letter-spacing:-1px;
  background:linear-gradient(135deg,var(--accent),var(--gold));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero-season{font-size:1rem;font-weight:600;color:var(--blue);margin:.25rem 0}
.hero-desc{font-size:.9rem;color:var(--text2)}
.hero-stats{display:flex;gap:1.5rem;flex-shrink:0}
.hero-stat{text-align:center;background:var(--bg4);padding:.75rem 1.25rem;
  border-radius:var(--radius);border:1px solid var(--border)}
.hs-val{display:block;font-size:1.8rem;font-weight:900;color:var(--accent)}
.hs-lab{font-size:.75rem;color:var(--text2);font-weight:500;text-transform:uppercase;letter-spacing:.5px}

/* ─── Loading ────────────────────────────────────────────────── */
.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1rem;padding:5rem 1rem;color:var(--text2)}
.spinner{width:48px;height:48px;border:3px solid var(--border);
  border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ─── Container / Section ────────────────────────────────────── */
.container{max-width:1200px;margin:0 auto;padding:0 1.25rem}
.section{padding:3rem 0}
.section-alt{background:var(--bg2)}
.section-title{font-size:1.5rem;font-weight:800;margin-bottom:1.5rem;
  display:flex;align-items:center;gap:.5rem}

/* ─── Top Tabs ───────────────────────────────────────────────── */
.top-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}
.top-tab{padding:.5rem 1.1rem;border-radius:20px;font-size:.85rem;font-weight:600;
  color:var(--text2);background:var(--bg3);border:1px solid var(--border);
  transition:var(--transition)}
.top-tab:hover,.top-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ─── Podium ─────────────────────────────────────────────────── */
.podium-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
@media(max-width:900px){.podium-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.podium-grid{grid-template-columns:1fr 1fr}}
.podium-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);
  padding:1.25rem .75rem;text-align:center;cursor:pointer;
  transition:transform var(--transition),box-shadow var(--transition);position:relative;
  overflow:hidden;
}
.podium-card:hover{transform:translateY(-4px);box-shadow:var(--card-shadow);border-color:var(--accent)}
.podium-card.rank-1{border-color:var(--gold);background:linear-gradient(135deg,var(--bg2),rgba(245,158,11,.08))}
.podium-card.rank-2{border-color:var(--silver)}
.podium-card.rank-3{border-color:var(--bronze)}
.pc-rank{position:absolute;top:.5rem;left:.5rem;font-size:.75rem;font-weight:800;
  width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--bg3)}
.rank-1 .pc-rank{background:var(--gold);color:#000}
.rank-2 .pc-rank{background:var(--silver);color:#000}
.rank-3 .pc-rank{background:var(--bronze);color:#fff}
.pc-img{width:70px;height:70px;border-radius:50%;object-fit:cover;object-position:top;
  margin:0 auto .5rem;border:2px solid var(--border);background:var(--bg3)}
.pc-nac{font-size:1.1rem;margin-bottom:.2rem}
.pc-name{font-size:.82rem;font-weight:700;margin-bottom:.15rem;line-height:1.3}
.pc-team{font-size:.72rem;color:var(--text3);margin-bottom:.5rem}
.pc-val{font-size:1.5rem;font-weight:900;color:var(--accent)}
.pc-val-lab{font-size:.65rem;color:var(--text3);font-weight:500;text-transform:uppercase}
.pc-pills{display:flex;gap:.25rem;justify-content:center;flex-wrap:wrap;margin-top:.4rem}
.pc-pill{font-size:.65rem;padding:.15rem .4rem;border-radius:4px;
  background:var(--bg3);color:var(--text2);font-weight:600}

/* ─── Filters ────────────────────────────────────────────────── */
.filters-bar{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}
.filter-search{position:relative;flex:1;min-width:180px}
.filter-search .filter-icon{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);font-size:.9rem}
.filter-search input{width:100%;padding:.55rem .75rem .55rem 2rem;
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);
  color:var(--text);font-size:.85rem;font-family:inherit;transition:var(--transition)}
.filter-search input:focus{outline:none;border-color:var(--accent)}
.filter-select{padding:.55rem .75rem;background:var(--bg2);border:1px solid var(--border);
  border-radius:var(--radius-sm);color:var(--text);font-size:.85rem;font-family:inherit;
  cursor:pointer;transition:var(--transition)}
.filter-select:focus{outline:none;border-color:var(--accent)}
.filter-count{font-size:.8rem;color:var(--text3);white-space:nowrap}

/* ─── Stats Table ────────────────────────────────────────────── */
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}
.stats-table{width:100%;border-collapse:collapse;font-size:.85rem}
.stats-table th{padding:.7rem .85rem;text-align:center;background:var(--bg3);
  color:var(--text2);font-weight:600;font-size:.75rem;text-transform:uppercase;
  letter-spacing:.5px;border-bottom:1px solid var(--border);white-space:nowrap;
  position:sticky;top:0;z-index:1}
.th-player,.th-team{text-align:left}
.stats-table th.sortable{cursor:pointer;user-select:none}
.stats-table th.sortable:hover,.stats-table th.active{color:var(--accent)}
.stats-table th.active::after{content:' ↓';color:var(--accent)}
.stats-table tbody tr{border-bottom:1px solid var(--border);transition:background var(--transition)}
.stats-table tbody tr:hover{background:var(--bg3)}
.stats-table td{padding:.65rem .85rem;text-align:center;color:var(--text2)}
.td-rank{color:var(--text3);font-size:.8rem;font-weight:600}
.td-player{text-align:left;display:flex;align-items:center;gap:.6rem;cursor:pointer;
  min-width:150px;white-space:nowrap}
.td-player:hover .td-player-name{color:var(--accent)}
.player-thumb{width:32px;height:32px;border-radius:50%;object-fit:cover;object-position:top;
  border:1px solid var(--border);background:var(--bg3);flex-shrink:0}
.td-player-name{font-weight:600;color:var(--text);font-size:.85rem}
.td-player-nac{font-size:.8rem}
.td-team{text-align:left;white-space:nowrap;font-size:.8rem}
.td-pos{font-size:.75rem;font-weight:700;padding:.2rem .4rem;
  border-radius:4px;background:var(--bg3);display:inline-block}
.td-pts{font-weight:700;color:var(--text)}
.td-val{font-weight:800;color:var(--accent)}
.td-good{color:var(--green)}
.td-bad{color:var(--red)}
.td-neutral{color:var(--text2)}
.pct-bar{display:flex;align-items:center;gap:.3rem;min-width:55px}
.pct-num{font-size:.8rem;font-weight:600;min-width:28px;text-align:right}
.pct-bg{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.pct-fill{height:100%;border-radius:2px;background:var(--blue)}
.table-note{font-size:.75rem;color:var(--text3);margin-top:.75rem;text-align:right}

/* ─── Standings ──────────────────────────────────────────────── */
.standings-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}
.standings-table{width:100%;border-collapse:collapse;font-size:.85rem}
.standings-table th{padding:.65rem .9rem;text-align:center;background:var(--bg3);
  color:var(--text2);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;
  border-bottom:1px solid var(--border);white-space:nowrap}
.standings-table th:nth-child(2){text-align:left}
.standings-table tbody tr{border-bottom:1px solid var(--border);transition:background var(--transition)}
.standings-table tbody tr:hover{background:var(--bg3)}
.standings-table td{padding:.6rem .9rem;text-align:center;color:var(--text2);font-size:.85rem}
.standings-table td:nth-child(2){text-align:left}
.st-pos{font-weight:800;font-size:.9rem}
.st-pos.playoff{color:var(--green)}
.st-pos.relegation{color:var(--red)}
.st-team{display:flex;align-items:center;gap:.6rem;white-space:nowrap}
.st-logo{width:24px;height:24px;object-fit:contain}
.st-name{font-weight:600;color:var(--text);font-size:.85rem}
.st-wins{font-weight:700;color:var(--green)}
.st-loses{font-weight:700;color:var(--red)}
.st-pct{font-weight:600}
.st-pm-pos{color:var(--green);font-weight:600}
.st-pm-neg{color:var(--red);font-weight:600}
.loading-row{text-align:center;color:var(--text3);padding:2rem}

/* ─── Matches ────────────────────────────────────────────────── */
.matches-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
@media(max-width:700px){.matches-grid{grid-template-columns:1fr}}
.matches-sub{font-size:1rem;font-weight:700;margin-bottom:1rem;color:var(--text2)}
.matches-list{display:flex;flex-direction:column;gap:.6rem}
.match-card{
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);
  padding:.85rem 1rem;display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:.5rem;font-size:.85rem;
}
.match-team{display:flex;align-items:center;gap:.4rem;font-weight:600}
.match-team.home{justify-content:flex-end;text-align:right}
.match-logo{width:22px;height:22px;object-fit:contain}
.match-score{text-align:center}
.score-val{font-size:1.15rem;font-weight:900;display:block;
  background:var(--bg3);padding:.2rem .7rem;border-radius:var(--radius-sm)}
.score-date{font-size:.7rem;color:var(--text3);margin-top:.2rem}
.match-score.upcoming .score-val{background:linear-gradient(135deg,var(--accent),var(--gold));
  color:#fff;font-size:.85rem}
.home-win .match-team.home{color:var(--green)}
.away-win .match-team.away{color:var(--green)}

/* ─── Modal ──────────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:200;
  display:flex;align-items:center;justify-content:center;padding:1rem}
.modal-box{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);
  padding:1.75rem;max-width:480px;width:100%;position:relative;max-height:90vh;overflow-y:auto}
.modal-close{position:absolute;top:.75rem;right:.75rem;font-size:1rem;color:var(--text3);
  background:var(--bg3);padding:.3rem .55rem;border-radius:var(--radius-sm)}
.modal-close:hover{color:var(--text)}
.modal-header{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}
.modal-img{width:80px;height:80px;border-radius:50%;object-fit:cover;object-position:top;
  border:2px solid var(--border)}
.modal-info h3{font-size:1.25rem;font-weight:800;margin-bottom:.2rem}
.modal-team{font-size:.85rem;color:var(--text2)}
.modal-pos-badge{display:inline-block;padding:.2rem .6rem;border-radius:4px;
  font-size:.75rem;font-weight:700;background:var(--accent);color:#fff;margin-top:.3rem}
.modal-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem}
.ms-box{background:var(--bg3);border-radius:var(--radius-sm);padding:.75rem;text-align:center}
.ms-val{font-size:1.4rem;font-weight:900;color:var(--accent);display:block}
.ms-lab{font-size:.7rem;color:var(--text3);font-weight:500;text-transform:uppercase}
.modal-pcts{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.mp-box{background:var(--bg3);border-radius:var(--radius-sm);padding:.6rem;text-align:center}
.mp-val{font-size:1rem;font-weight:800;color:var(--blue)}
.mp-lab{font-size:.7rem;color:var(--text3)}

/* ─── Footer ─────────────────────────────────────────────────── */
.footer{border-top:1px solid var(--border);padding:1.25rem 1.5rem;background:var(--bg2)}
.footer-inner{display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between;
  font-size:.8rem;color:var(--text3)}

/* ─── Responsive ─────────────────────────────────────────────── */
@media(max-width:768px){
  .hero-content{flex-direction:column}
  .hero-text h1{font-size:1.6rem}
  .hero-stats{width:100%}
  .nav-links{display:none}
  .stats-table th.th-team,.stats-table td.td-team-cell{display:none}
}
