
.np-live-leaderboard{min-height:260px}
.np-sync-meta{margin:18px 0 30px;color:#7f8998;font-size:12px}
.np-sync-meta span{color:#aeb7c4}

.np-lb-controls{
  display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;
  padding:18px;border:1px solid var(--line);border-radius:18px;background:#0b0f15;
}
.np-filter-group{display:flex;flex-direction:column;gap:8px}
.np-filter-label{display:block;color:#7f8998;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800}
.np-segmented{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#070a0f}
.np-segmented button{
  appearance:none;border:0;background:transparent;color:#7f8998;padding:10px 15px;border-radius:8px;
  font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:.18s ease;
}
.np-segmented button:hover{color:#fff;background:#121923}
.np-segmented button.active{color:#fff;background:#182231}
.np-segmented button:disabled{cursor:default}
.np-player-search{display:flex;flex-direction:column;gap:8px;margin-left:auto;min-width:min(280px,100%)}
.np-player-search input{
  width:100%;height:43px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:#070a0f;
  color:#fff;outline:none;font:inherit;
}
.np-player-search input:focus{border-color:#52647d}

.np-ranking-section,.np-directory-section{margin-top:34px}
.np-directory-section{margin-top:64px}
.np-section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}
.np-section-heading h2{font-family:var(--display);font-style:italic;text-transform:uppercase;font-size:clamp(28px,4vw,46px);margin:4px 0 0}
.np-section-heading p{color:#8e99a8;max-width:680px;margin:8px 0 0}

.np-empty-state{
  display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;
  padding:28px;border:1px solid var(--line);border-radius:20px;background:#0b0f15;
}
.np-empty-state.compact{grid-template-columns:1fr}
.np-empty-mark{
  min-width:62px;height:62px;display:grid;place-items:center;border:1px solid var(--line);border-radius:16px;
  font-family:var(--display);font-style:italic;font-size:26px;color:#d7deea;background:#0f151e;
}
.np-empty-state h3{margin:0 0 8px;font-size:22px}
.np-empty-state p{margin:4px 0;color:#8995a5;line-height:1.65}
.np-empty-note{font-size:13px}

.np-tier{
  display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;
  font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;line-height:1;background:#0c1118;color:#dbe4ef
}
.np-tier-badge{width:18px;height:18px;object-fit:contain;display:block;flex:0 0 18px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.28))}
.np-tier-label{display:inline-block;transform:translateY(.3px)}
.np-tier-unranked{color:#99a4b3;background:#0c1118}
.np-tier-bronze{color:#d9b295;background:rgba(114,67,28,.18);border-color:rgba(191,126,73,.3)}
.np-tier-silver{color:#dce4ef;background:rgba(99,112,128,.16);border-color:rgba(168,184,205,.28)}
.np-tier-gold{color:#f6dea2;background:rgba(125,93,20,.18);border-color:rgba(230,190,89,.28)}
.np-tier-platinum{color:#d5f8ff;background:rgba(22,105,125,.16);border-color:rgba(114,224,245,.26)}
.np-tier-diamond{color:#d7e6ff;background:rgba(34,66,139,.18);border-color:rgba(104,154,255,.28)}
.np-tier-master{color:#ffe0ef;background:rgba(115,27,78,.20);border-color:rgba(229,92,171,.30)}
.np-player-tier-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#99a5b5}
.np-player-tier-line .np-tier{transform:translateY(-1px)}
.np-player-tier-sep{color:#647083}
.np-qualified{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#dfe7f2}
.np-progress-copy{color:#8d98a7;font-size:12px;white-space:nowrap}
.np-profile-row{cursor:pointer}
.np-profile-row:hover td{background:rgba(255,255,255,.025)}

.np-profile-top{margin-bottom:24px}
.np-back-link{display:inline-flex;margin-bottom:20px;color:#93a0b2;text-decoration:none;font-size:13px}
.np-back-link:hover{color:#fff}
.np-player-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}
.np-player-head h2{
  font-family:var(--display);font-style:italic;text-transform:uppercase;
  font-size:clamp(36px,6vw,70px);margin:4px 0
}
.np-player-head p{color:#99a5b5}

.np-qualification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 36px}
.np-qualification-card{
  display:flex;justify-content:space-between;gap:20px;align-items:center;
  border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:#0d1117
}
.np-qualification-card small{
  display:block;color:#7f8998;text-transform:uppercase;letter-spacing:.08em;font-size:10px;margin-bottom:4px
}
.np-qualification-card strong{font-size:18px}
.np-qualification-numbers{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;color:#8995a5;font-size:12px}

.np-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 36px}
.np-stat-grid-wide{grid-template-columns:repeat(4,minmax(0,1fr))}
.np-stat{border:1px solid var(--line);border-radius:18px;padding:18px;background:#0d1117;min-width:0}
.np-stat small{display:block;color:#7f8998;text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;font-size:10px}
.np-stat strong{display:block;font-size:21px;overflow-wrap:anywhere}
.np-stat span{display:block;margin-top:6px;color:#7f8998;font-size:11px;line-height:1.4}
.np-section-title{font-family:var(--display);font-style:italic;text-transform:uppercase;font-size:28px;margin:42px 0 14px}

.np-player-directory-table td{vertical-align:middle}

@media(max-width:980px){
  .np-stat-grid-wide{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .np-stat-grid,.np-stat-grid-wide{grid-template-columns:1fr 1fr}
  .np-player-search{margin-left:0;width:100%}
  .np-lb-controls{align-items:stretch}
  .np-filter-group{flex:1}
  .np-segmented button{flex:1}
  .np-qualification-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .np-stat-grid,.np-stat-grid-wide{grid-template-columns:1fr}
  .np-empty-state{grid-template-columns:1fr}
  .np-qualification-card{align-items:flex-start;flex-direction:column}
  .np-qualification-numbers{justify-content:flex-start}
}


/* v0.3.1 - Leaderboard layout / dynamic controls fix */
body.page-template-page-leaderboard .page-hero{
  padding-bottom:46px;
}
body.page-template-page-leaderboard .section.no-line{
  padding-top:34px;
  padding-bottom:78px;
}

/* Controls are injected after the theme reveal observer has already run. */
.np-lb-controls,
.np-lb-controls.reveal{
  opacity:1 !important;
  transform:none !important;
  visibility:visible !important;
}

.np-lb-controls{
  margin:0;
  padding:14px 16px;
  border-radius:16px;
  gap:14px;
}

.np-sync-meta{
  margin:10px 2px 24px;
  display:flex;
  gap:5px;
  align-items:center;
}

.np-ranking-section{
  margin-top:20px;
}
.np-directory-section{
  margin-top:48px;
}
.np-section-heading{
  margin-bottom:14px;
}
.np-section-heading h2{
  font-size:clamp(28px,3.4vw,44px);
}
.np-empty-state{
  padding:22px 24px;
}

@media(max-width:680px){
  body.page-template-page-leaderboard .page-hero{
    padding-bottom:34px;
  }
  body.page-template-page-leaderboard .section.no-line{
    padding-top:24px;
  }
}


/* v0.3.2 - Dynamic leaderboard content must never depend on theme reveal observer */
#np-live-leaderboard .reveal,
#np-live-leaderboard .reveal.visible{
  opacity:1 !important;
  transform:none !important;
  visibility:visible !important;
}

#np-live-leaderboard .np-ranking-section{
  min-height:0 !important;
}

#np-live-leaderboard #np-ranking-content:empty{
  display:none;
}


/* v0.3.3 - Show roughly 10 leaderboard rows, then scroll internally */
#np-live-leaderboard .np-table-scroll{
  overflow-x:auto;
}

#np-live-leaderboard .np-table-scroll-ranking,
#np-live-leaderboard .np-table-scroll-directory{
  max-height:642px;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

#np-live-leaderboard .np-table-scroll .ranking-table{
  margin:0;
}

#np-live-leaderboard .np-table-scroll .ranking-table thead{
  position:sticky;
  top:0;
  z-index:5;
}

#np-live-leaderboard .np-table-scroll .ranking-table thead th{
  background:#0d121a;
}

@media(max-width:760px){
  #np-live-leaderboard .np-table-scroll-ranking,
  #np-live-leaderboard .np-table-scroll-directory{
    max-height:620px;
  }
}


/* v0.4.0 - Season-aware leaderboard */
#np-live-leaderboard .np-season-filter select{
  min-width:170px;
  height:43px;
  padding:0 38px 0 13px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#070a0f;
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:800;
  outline:none;
  cursor:pointer;
}

#np-live-leaderboard .np-season-filter select:focus{
  border-color:#52647d;
}

#np-live-leaderboard .np-sync-meta{
  flex-wrap:wrap;
}

#np-live-leaderboard .np-sync-dot{
  opacity:.55;
}

#np-live-leaderboard .np-player-search-standalone{
  max-width:320px;
  margin:0 0 14px auto;
}

#np-live-leaderboard .np-profile-mode-filter{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
  margin:18px 0 30px;
}

#np-live-leaderboard .np-profile-mode-filter > .np-filter-label{
  padding-bottom:12px;
}

#np-live-leaderboard .np-profile-no-season-data{
  margin-top:28px;
}

@media(max-width:760px){
  #np-live-leaderboard .np-season-filter{
    width:100%;
  }
  #np-live-leaderboard .np-season-filter select{
    width:100%;
  }
  #np-live-leaderboard .np-player-search-standalone{
    margin-left:0;
    width:100%;
    max-width:none;
  }
}


/* v0.4.1 - Season / Game / Mode use the same scalable selector UI */
#np-live-leaderboard .np-selector-filter{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:165px;
}

#np-live-leaderboard .np-selector-filter select,
#np-live-leaderboard .np-profile-mode-filter select{
  min-width:165px;
  height:43px;
  padding:0 38px 0 13px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#070a0f;
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:800;
  outline:none;
  cursor:pointer;
}

#np-live-leaderboard .np-selector-filter select:hover,
#np-live-leaderboard .np-profile-mode-filter select:hover{
  border-color:#38475b;
}

#np-live-leaderboard .np-selector-filter select:focus,
#np-live-leaderboard .np-profile-mode-filter select:focus{
  border-color:#52647d;
}

#np-live-leaderboard .np-selector-filter select:disabled{
  opacity:.5;
  cursor:not-allowed;
}

#np-live-leaderboard .np-profile-mode-filter{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  width:max-content;
  margin:18px 0 30px;
}

#np-live-leaderboard .np-profile-mode-filter > .np-filter-label{
  padding-bottom:0;
}

@media(max-width:760px){
  #np-live-leaderboard .np-selector-filter,
  #np-live-leaderboard .np-selector-filter select{
    width:100%;
  }

  #np-live-leaderboard .np-profile-mode-filter{
    width:100%;
  }

  #np-live-leaderboard .np-profile-mode-filter select{
    width:100%;
  }
}


/* v0.4.2 - Player profile tables: show ~10 rows, then scroll internally */
#np-live-leaderboard .np-profile-table-scroll{
  max-height:642px;
  overflow-y:auto;
  overflow-x:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

#np-live-leaderboard .np-profile-table-scroll .ranking-table{
  margin:0;
}

#np-live-leaderboard .np-profile-table-scroll .ranking-table thead{
  position:sticky;
  top:0;
  z-index:5;
}

#np-live-leaderboard .np-profile-table-scroll .ranking-table thead th{
  background:#0d121a;
}

@media(max-width:760px){
  #np-live-leaderboard .np-profile-table-scroll{
    max-height:620px;
  }
}


/* v0.4.4 - Player profile filter alignment */
#np-live-leaderboard .np-lb-controls{
  align-items:flex-end;
}

#np-live-leaderboard .np-stat-player-link,
#np-live-leaderboard .np-opponent-link{
  color:inherit;
  text-decoration:none;
}

#np-live-leaderboard .np-stat-player-link:hover,
#np-live-leaderboard .np-opponent-link:hover{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:3px;
}

/*
 * Smart table scrolling:
 * - <=10 rows: no vertical scroll container
 * - >10 rows: JS measures exactly header + first 10 rows
 * - overscroll remains AUTO so page scrolling is never trapped
 */
#np-live-leaderboard .np-table-scroll-ranking,
#np-live-leaderboard .np-table-scroll-directory,
#np-live-leaderboard .np-profile-table-scroll{
  max-height:none;
  overflow-y:visible;
  overscroll-behavior:auto !important;
}

#np-live-leaderboard .np-table-scroll-ranking.np-has-vertical-scroll,
#np-live-leaderboard .np-table-scroll-directory.np-has-vertical-scroll,
#np-live-leaderboard .np-profile-table-scroll.np-has-vertical-scroll{
  overflow-y:auto;
  overscroll-behavior:auto !important;
  scrollbar-gutter:stable;
}

/* The old fixed-height mobile rules must not force scrolling on short tables. */
@media(max-width:760px){
  #np-live-leaderboard .np-table-scroll-ranking,
  #np-live-leaderboard .np-table-scroll-directory,
  #np-live-leaderboard .np-profile-table-scroll{
    max-height:none;
  }

  #np-live-leaderboard .np-table-scroll-ranking.np-has-vertical-scroll,
  #np-live-leaderboard .np-table-scroll-directory.np-has-vertical-scroll,
  #np-live-leaderboard .np-profile-table-scroll.np-has-vertical-scroll{
    overflow-y:auto;
  }
}
