/* ══════════════════════════════════════════════
 * Nerd Score Widget — Scoped Styles
 * All classes prefixed with ns-
 * Heavy !important to override Elementor/Hello
 * Light theme with red-to-gray tier system
 * ══════════════════════════════════════════════ */

/* ── Root Container ── */
.ns-widget {
  font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  background: #fff !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  color: #000 !important;
  position: relative !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1) !important;
  max-width: 100% !important;
  border: 1px solid #E8EEF3 !important;
}
.ns-widget * {
  box-sizing: border-box !important;
}

/* ── Score Legend Bar (top bar) ── */
.ns-legend-bar {
  display: flex !important;
  align-items: center !important;
  gap: 24px !important;
  padding: 18px 24px !important;
  background: #f5f6f8 !important;
  border-bottom: 3px solid #B3150D !important;
  border-radius: 16px 16px 0 0 !important;
}
.ns-legend-logo {
  height: 48px !important;
  width: auto !important;
  flex-shrink: 0 !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ns-legend-right {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  flex: 1 !important;
  min-width: 0 !important;
}
.ns-legend-top {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}
.ns-legend-desc {
  font-size: 13px !important;
  line-height: 1.45 !important;
  color: #444 !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 1 !important;
}
.ns-legend-tiers {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  flex-wrap: wrap !important;
}
.ns-legend-tier {
  font-family: 'Teko', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.3px !important;
  color: #fff !important;
  padding: 4px 8px !important;
  border-radius: 4px !important;
  white-space: nowrap !important;
  line-height: 1.3 !important;
}

/* ── Info Button ── */
.ns-info-btn {
  background: none !important;
  border: 1px solid #E8EEF3 !important;
  border-radius: 6px !important;
  color: #B2150D !important;
  cursor: pointer !important;
  padding: 6px 14px !important;
  font-family: 'Source Sans Pro', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  transition: all 0.2s !important;
}
.ns-info-btn:hover {
  background: rgba(178,21,13,0.06) !important;
  border-color: #B2150D !important;
}

/* ── Controls Bar ── */
.ns-controls {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 12px 24px !important;
  flex-wrap: nowrap !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
  background: #fff !important;
  border-bottom: 1px solid #EEF3F8 !important;
}

/* ── Position Tabs ── */
.ns-tabs {
  display: flex !important;
  gap: 0 !important;
  background: #EEF3F8 !important;
  border-radius: 8px !important;
  padding: 3px !important;
  flex-shrink: 0 !important;
}
.ns-tab {
  font-family: 'Teko', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: rgba(0,0,0,0.4) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 6px 18px !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  line-height: 1.2 !important;
}
.ns-tab:hover {
  color: rgba(0,0,0,0.7) !important;
}
.ns-tab-active {
  background: #B2150D !important;
  color: #fff !important;
}

/* ── Search ── */
.ns-search-wrap {
  position: relative !important;
  flex: 0 1 200px !important;
  min-width: 140px !important;
}
.ns-search-icon {
  position: absolute !important;
  left: 10px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(0,0,0,0.3) !important;
  pointer-events: none !important;
}
.ns-search-input {
  width: 100% !important;
  background: #EEF3F8 !important;
  border: 1px solid #E8EEF3 !important;
  border-radius: 8px !important;
  color: #000 !important;
  font-family: 'Source Sans Pro', sans-serif !important;
  font-size: 14px !important;
  padding: 8px 12px 8px 34px !important;
  outline: none !important;
  transition: border-color 0.2s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.ns-search-input:focus {
  border-color: #B2150D !important;
}
.ns-search-input::placeholder {
  color: rgba(0,0,0,0.35) !important;
}

/* ── Class Dropdown ── */
.ns-class-select {
  background: #EEF3F8 !important;
  border: 1px solid #E8EEF3 !important;
  border-radius: 8px !important;
  color: #000 !important;
  font-family: 'Source Sans Pro', sans-serif !important;
  font-size: 13px !important;
  padding: 6px 28px 6px 10px !important;
  outline: none !important;
  cursor: pointer !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='rgba(0,0,0,0.4)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 8px center !important;
  flex-shrink: 0 !important;
  width: auto !important;
  max-width: 120px !important;
}
.ns-class-select option {
  background: #fff !important;
  color: #000 !important;
}

/* ── Mobile Header (hidden on desktop) ── */
.ns-mobile-header {
  display: none !important;
}
.ns-mobile-count {
  display: none !important;
}

/* ── Mobile Filter Button (hidden on desktop) ── */
.ns-mobile-filter-btn {
  display: none !important;
}

/* ── Desktop only helper ── */

/* ── Range Slider Groups (inline in controls bar) ── */
.ns-range-group {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.ns-range-label {
  font-family: 'Teko', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  color: rgba(0,0,0,0.5) !important;
  white-space: nowrap !important;
}
.ns-range-slider {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-width: 120px !important;
}
.ns-range-slider input[type="range"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 80px !important;
  height: 6px !important;
  background: #E8EEF3 !important;
  border-radius: 3px !important;
  outline: none !important;
  cursor: pointer !important;
}
.ns-range-slider input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  background: #B2150D !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  border: 2px solid #fff !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.25) !important;
}
.ns-range-slider input[type="range"]::-moz-range-thumb {
  width: 18px !important;
  height: 18px !important;
  background: #B2150D !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  border: 2px solid #fff !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.25) !important;
}
.ns-range-value {
  font-size: 14px !important;
  color: rgba(0,0,0,0.5) !important;
  white-space: nowrap !important;
  min-width: 52px !important;
}
.ns-result-count {
  font-size: 12px !important;
  color: rgba(0,0,0,0.4) !important;
  margin-left: auto !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* ── Desktop Table ── */
.ns-table-wrap {
  overflow: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 0 !important;
  max-height: 75vh !important;
}
.ns-table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  min-width: 900px !important;
}
.ns-table th {
  font-family: 'Teko', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  color: rgba(0,0,0,0.5) !important;
  padding: 10px 8px !important;
  text-align: left !important;
  cursor: pointer !important;
  user-select: none !important;
  white-space: nowrap !important;
  border: none !important;
  border-bottom: 1px solid #E0E6ED !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 4 !important;
  transition: color 0.15s !important;
  background: #EEF3F8 !important;
  box-shadow: 0 1px 0 #E0E6ED !important;
}
.ns-table th:hover {
  color: rgba(0,0,0,0.8) !important;
}
.ns-table th.ns-sorted {
  color: #000 !important;
  background: #e4eaf1 !important;
}
.ns-table td.ns-sorted-col {
  background: #f5f8fb !important;
}
.ns-table th .ns-sort-arrow {
  font-size: 10px !important;
  margin-left: 3px !important;
  opacity: 0.6 !important;
}
/* Rank column — sticky left + top */
.ns-table th:first-child {
  padding-left: 24px !important;
  width: 50px !important;
  position: sticky !important;
  left: 0 !important;
  top: 0 !important;
  z-index: 10 !important;
  background: #EEF3F8 !important;
}
/* Player column — sticky left + top */
.ns-table th:nth-child(2) {
  padding-left: 8px !important;
  min-width: 160px !important;
  position: sticky !important;
  left: 50px !important;
  top: 0 !important;
  z-index: 10 !important;
  background: #EEF3F8 !important;
}
.ns-table th:nth-child(2).ns-sorted {
  background: #e4eaf1 !important;
}
.ns-table td {
  font-size: 14px !important;
  padding: 10px 8px !important;
  border: none !important;
  border-bottom: 1px solid #EAEFF4 !important;
  color: #000 !important;
  white-space: nowrap !important;
  background: #fff !important;
}
/* Rank body cell — sticky left */
.ns-table td:first-child {
  padding-left: 24px !important;
  font-family: 'Teko', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: rgba(0,0,0,0.35) !important;
  position: sticky !important;
  left: 0 !important;
  z-index: 1 !important;
  background: #fff !important;
}
/* Player body cell — sticky left */
.ns-table td:nth-child(2) {
  position: sticky !important;
  left: 50px !important;
  z-index: 1 !important;
  background: #fff !important;
}
.ns-table tbody tr {
  transition: background 0.15s !important;
}
.ns-table tbody tr:hover td {
  background: #f8f9fb !important;
}
.ns-table tbody tr:hover td:first-child,
.ns-table tbody tr:hover td:nth-child(2) {
  background: #f8f9fb !important;
}

/* Player name cell */
.ns-player-cell {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
}
.ns-player-name {
  font-weight: 600 !important;
  font-size: 14px !important;
  color: #000 !important;
}

/* Score cell — tier colored */
.ns-score {
  font-weight: 700 !important;
  font-size: 14px !important;
}

/* Class badge */
.ns-class-badge {
  font-family: 'Teko', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  background: #EEF3F8 !important;
  padding: 2px 8px !important;
  border-radius: 4px !important;
  color: rgba(0,0,0,0.5) !important;
}

/* ── Mobile Cards ── */
.ns-cards {
  display: none !important;
}
.ns-card {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 14px 20px !important;
  border-bottom: 1px solid #E8EEF3 !important;
  transition: background 0.15s !important;
}
.ns-card:active {
  background: #f5f6f8 !important;
}
.ns-card-rank {
  font-family: 'Teko', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: rgba(0,0,0,0.3) !important;
  min-width: 28px !important;
  text-align: center !important;
}
.ns-card-info {
  flex: 1 !important;
  min-width: 0 !important;
}
.ns-card-name {
  font-weight: 600 !important;
  font-size: 15px !important;
  color: #000 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.ns-card-meta {
  font-size: 12px !important;
  color: rgba(0,0,0,0.4) !important;
  margin-top: 2px !important;
}
.ns-card-scores {
  display: flex !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
}
.ns-card-score {
  text-align: center !important;
  min-width: 44px !important;
}
.ns-card-score-value {
  font-weight: 700 !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
}
.ns-card-score-label {
  font-family: 'Teko', sans-serif !important;
  font-size: 10px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.3px !important;
  color: rgba(0,0,0,0.35) !important;
}

/* Mobile card stat drawer */
.ns-card-stats {
  display: none !important;
  padding: 8px 20px 14px 60px !important;
  border-bottom: 1px solid #E8EEF3 !important;
}
.ns-card-stats.ns-expanded {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 6px !important;
}
.ns-card-stat {
  text-align: center !important;
  padding: 6px 4px !important;
  background: #EEF3F8 !important;
  border-radius: 6px !important;
}
.ns-card-stat-val {
  font-weight: 700 !important;
  font-size: 14px !important;
}
.ns-card-stat-lbl {
  font-size: 10px !important;
  color: rgba(0,0,0,0.4) !important;
  margin-top: 1px !important;
}

/* ── Info Modal ── */
.ns-modal-backdrop {
  display: none !important;
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,0.6) !important;
  z-index: 9999 !important;
}
.ns-modal-backdrop.ns-active {
  display: block !important;
}
.ns-modal {
  display: none !important;
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 90% !important;
  max-width: 580px !important;
  max-height: 80vh !important;
  background: #B2150D !important;
  border-radius: 16px !important;
  z-index: 10000 !important;
  overflow: hidden !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5) !important;
}
.ns-modal.ns-active {
  display: block !important;
}
.ns-modal-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 16px 20px 0 !important;
}
.ns-modal-tabs {
  display: flex !important;
  gap: 0 !important;
  background: rgba(255,255,255,0.15) !important;
  border-radius: 8px !important;
  padding: 3px !important;
}
.ns-modal-tab {
  font-family: 'Teko', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  color: rgba(255,255,255,0.6) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 5px 14px !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
}
.ns-modal-tab:hover {
  color: rgba(255,255,255,0.9) !important;
}
.ns-modal-tab-active {
  background: rgba(255,255,255,0.25) !important;
  color: #fff !important;
}
.ns-modal-close {
  background: none !important;
  border: none !important;
  color: rgba(255,255,255,0.6) !important;
  font-size: 28px !important;
  cursor: pointer !important;
  padding: 0 4px !important;
  line-height: 1 !important;
}
.ns-modal-close:hover {
  color: #fff !important;
}
.ns-modal-body {
  padding: 16px 20px 24px !important;
  overflow-y: auto !important;
  max-height: calc(80vh - 60px) !important;
}
.ns-modal-pane {
  display: none !important;
}
.ns-modal-pane-active {
  display: block !important;
}
.ns-modal-pane-title {
  font-family: 'Teko', sans-serif !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  color: #fff !important;
  margin: 0 0 12px !important;
}
.ns-modal-pane p {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: rgba(255,255,255,0.85) !important;
  margin: 0 0 12px !important;
}
.ns-modal-pane ul {
  margin: 0 0 12px !important;
  padding-left: 20px !important;
}
.ns-modal-pane li {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: rgba(255,255,255,0.85) !important;
  margin-bottom: 4px !important;
}
.ns-modal-pane h4 {
  font-family: 'Teko', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  color: #fff !important;
  margin: 16px 0 8px !important;
}

/* Tier legend in modal */
.ns-tier-legend {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 8px !important;
}
.ns-tier-item {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  font-size: 12px !important;
  color: rgba(255,255,255,0.8) !important;
  background: rgba(255,255,255,0.1) !important;
  padding: 4px 10px !important;
  border-radius: 6px !important;
}
.ns-tier-swatch {
  width: 10px !important;
  height: 10px !important;
  border-radius: 3px !important;
  flex-shrink: 0 !important;
}

/* ── Mobile Filter Panel ── */
.ns-filter-backdrop {
  display: none !important;
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,0.5) !important;
  z-index: 9998 !important;
}
.ns-filter-backdrop.ns-active {
  display: block !important;
}
.ns-filter-panel {
  display: none !important;
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 300px !important;
  max-width: 85vw !important;
  background: #fff !important;
  z-index: 9999 !important;
  box-shadow: -4px 0 20px rgba(0,0,0,0.15) !important;
  overflow-y: auto !important;
}
.ns-filter-panel.ns-active {
  display: block !important;
}
.ns-filter-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 20px !important;
  border-bottom: 1px solid #E8EEF3 !important;
}
.ns-filter-title {
  font-family: 'Teko', sans-serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  color: #000 !important;
  margin: 0 !important;
}
.ns-filter-close {
  background: none !important;
  border: none !important;
  color: rgba(0,0,0,0.4) !important;
  font-size: 28px !important;
  cursor: pointer !important;
  padding: 0 4px !important;
  line-height: 1 !important;
}
.ns-filter-body {
  padding: 20px !important;
}
.ns-filter-section {
  margin-bottom: 24px !important;
}
.ns-filter-label {
  font-family: 'Teko', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  color: rgba(0,0,0,0.45) !important;
  margin-bottom: 8px !important;
  display: block !important;
}
.ns-mobile-class-select {
  width: 100% !important;
  background: #EEF3F8 !important;
  border: 1px solid #E8EEF3 !important;
  border-radius: 8px !important;
  color: #000 !important;
  font-size: 14px !important;
  padding: 10px 12px !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.ns-mobile-class-select option {
  background: #fff !important;
  color: #000 !important;
}
.ns-mobile-range {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}
.ns-mobile-range input[type="range"] {
  width: 100% !important;
}
/* Filter panel layout helpers */
.ns-filter-row {
  display: flex !important;
  gap: 16px !important;
}
.ns-filter-half {
  flex: 1 !important;
}
.ns-mobile-pos-tabs {
  display: flex !important;
  gap: 0 !important;
  background: #EEF3F8 !important;
  border-radius: 8px !important;
  padding: 3px !important;
}
.ns-mobile-pos-tab {
  font-family: 'Teko', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: rgba(0,0,0,0.4) !important;
  background: transparent !important;
  border: none !important;
  border-radius: 6px !important;
  padding: 6px 16px !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
}
.ns-mobile-pos-active {
  background: #B2150D !important;
  color: #fff !important;
}
.ns-filter-search-wrap {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.ns-filter-search-wrap .ns-search-icon {
  position: absolute !important;
  left: 10px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 16px !important;
  height: 16px !important;
  color: rgba(0,0,0,0.3) !important;
  pointer-events: none !important;
}
.ns-mobile-search-input {
  flex: 1 !important;
  background: #EEF3F8 !important;
  border: 1px solid #E8EEF3 !important;
  border-radius: 8px !important;
  color: #000 !important;
  font-family: 'Source Sans Pro', sans-serif !important;
  font-size: 14px !important;
  padding: 10px 12px 10px 34px !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.ns-mobile-search-input::placeholder {
  color: rgba(0,0,0,0.35) !important;
}
.ns-filter-clear {
  background: none !important;
  border: none !important;
  color: #B2150D !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  padding: 0 !important;
}

.ns-filter-apply {
  width: 100% !important;
  background: #fff !important;
  color: #000 !important;
  border: 2px solid #000 !important;
  border-radius: 10px !important;
  padding: 14px !important;
  font-family: 'Source Sans Pro', sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
}
.ns-filter-apply:hover {
  background: #f5f5f5 !important;
}

/* ── Progressive Blur Rows (paywall) ── */
.ns-blur-1 td, .ns-blur-2 td, .ns-blur-3 td, .ns-blur-4 td, .ns-blur-5 td {
  user-select: none !important;
  pointer-events: none !important;
}
.ns-blur-1 td { filter: blur(1px) !important; -webkit-filter: blur(1px) !important; opacity: 0.85 !important; }
.ns-blur-2 td { filter: blur(2px) !important; -webkit-filter: blur(2px) !important; opacity: 0.7 !important; }
.ns-blur-3 td { filter: blur(3px) !important; -webkit-filter: blur(3px) !important; opacity: 0.55 !important; }
.ns-blur-4 td { filter: blur(4px) !important; -webkit-filter: blur(4px) !important; opacity: 0.4 !important; }
.ns-blur-5 td { filter: blur(5px) !important; -webkit-filter: blur(5px) !important; opacity: 0.3 !important; }

/* ── Paywall Overlay ── */
.ns-paywall-overlay {
  position: sticky !important;
  left: 0 !important;
  bottom: 0 !important;
  z-index: 20 !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,0.85) 20%, rgba(255,255,255,0.98) 50%) !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  padding: 80px 24px 32px !important;
  pointer-events: auto !important;
  width: 100% !important;
}
.ns-paywall-content {
  text-align: center !important;
  max-width: 420px !important;
}
.ns-paywall-lock {
  color: #B2150D !important;
  margin-bottom: 12px !important;
  width: 32px !important;
  height: 32px !important;
}
.ns-paywall-headline {
  font-family: 'Teko', sans-serif !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  color: #000 !important;
  margin: 0 0 8px !important;
}
.ns-paywall-body {
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: rgba(0,0,0,0.55) !important;
  margin: 0 0 16px !important;
}
.ns-paywall-btn {
  display: inline-block !important;
  background: #B2150D !important;
  color: #fff !important;
  text-decoration: none !important;
  padding: 12px 36px !important;
  border-radius: 8px !important;
  font-family: 'Teko', sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  border: none !important;
  transition: all 0.2s !important;
  box-shadow: 0 4px 14px rgba(178,21,13,0.3) !important;
}
.ns-paywall-btn:hover {
  background: #d4180f !important;
  transform: translateY(-1px) !important;
  color: #fff !important;
  text-decoration: none !important;
}

/* ── CTA Banner ── */
.ns-cta-banner {
  background: #f5f6f8 !important;
  border-top: 1px solid #E8EEF3 !important;
  padding: 24px !important;
  text-align: center !important;
}
.ns-cta-inner {
  max-width: 600px !important;
  margin: 0 auto !important;
}
.ns-cta-headline {
  font-family: 'Teko', sans-serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  color: #000 !important;
  margin: 0 0 8px !important;
}
.ns-cta-text {
  font-size: 14px !important;
  color: rgba(0,0,0,0.5) !important;
  margin: 0 0 16px !important;
  line-height: 1.5 !important;
}
.ns-cta-btn {
  display: inline-block !important;
  background: #B2150D !important;
  color: #fff !important;
  text-decoration: none !important;
  padding: 12px 32px !important;
  border-radius: 8px !important;
  font-family: 'Teko', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  border: none !important;
  transition: all 0.2s !important;
  box-shadow: 0 4px 14px rgba(178,21,13,0.3) !important;
}
.ns-cta-btn:hover {
  background: #d4180f !important;
  transform: translateY(-1px) !important;
  color: #fff !important;
  text-decoration: none !important;
}

/* ── Footer ── */
.ns-footer {
  text-align: center !important;
  padding: 12px !important;
  font-size: 11px !important;
  color: rgba(0,0,0,0.2) !important;
  border-top: 1px solid #EEF3F8 !important;
}

/* ── No results ── */
.ns-no-results {
  text-align: center !important;
  padding: 48px 24px !important;
  color: rgba(0,0,0,0.4) !important;
  font-size: 15px !important;
}

/* ══════════════════════════════════════════════
 * RESPONSIVE — Mobile (<1024px)
 * ══════════════════════════════════════════════ */
/* ── Mobile Split Table (hidden on desktop) ── */
.ns-mobile-table-wrap {
  display: none !important;
}

@media (max-width: 1023px) {
  /* Hide desktop-only elements EXCEPT the table */
  .ns-legend-bar {
    display: none !important;
  }
  .ns-desktop-only:not(.ns-table-wrap) {
    display: none !important;
  }

  /* Hide the old split table — use single desktop table on mobile too */
  .ns-mobile-table-wrap {
    display: none !important;
  }

  /* Mobile: show desktop table with tighter sizing */
  .ns-table-wrap {
    max-height: 75vh !important;
  }
  .ns-table {
    min-width: 700px !important;
  }
  .ns-table th {
    font-size: 11px !important;
    padding: 8px 4px !important;
  }
  .ns-table td {
    font-size: 12px !important;
    padding: 8px 4px !important;
  }
  .ns-table th:first-child {
    padding-left: 6px !important;
    padding-right: 2px !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
  }
  .ns-table th:nth-child(2) {
    min-width: 100px !important;
    max-width: 100px !important;
    left: 28px !important;
  }
  /* NS+ column — sticky */
  .ns-table th:nth-child(3) {
    position: sticky !important;
    left: 128px !important;
    z-index: 10 !important;
    background: #EEF3F8 !important;
    min-width: 36px !important;
    max-width: 36px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
  /* NS column — sticky */
  .ns-table th:nth-child(4) {
    position: sticky !important;
    left: 164px !important;
    z-index: 10 !important;
    background: #EEF3F8 !important;
    min-width: 34px !important;
    max-width: 34px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
    box-shadow: 2px 0 4px rgba(0,0,0,0.06) !important;
  }
  .ns-table td:first-child {
    padding-left: 6px !important;
    padding-right: 2px !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    font-size: 13px !important;
  }
  .ns-table td:nth-child(2) {
    left: 28px !important;
    min-width: 100px !important;
    max-width: 100px !important;
  }
  /* NS+ body cell — sticky */
  .ns-table td:nth-child(3) {
    position: sticky !important;
    left: 128px !important;
    z-index: 1 !important;
    background: #fff !important;
    min-width: 36px !important;
    max-width: 36px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
  /* NS body cell — sticky */
  .ns-table td:nth-child(4) {
    position: sticky !important;
    left: 164px !important;
    z-index: 1 !important;
    background: #fff !important;
    min-width: 34px !important;
    max-width: 34px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
    box-shadow: 2px 0 4px rgba(0,0,0,0.06) !important;
  }
  .ns-table tbody tr:hover td:nth-child(3),
  .ns-table tbody tr:hover td:nth-child(4) {
    background: #f8f9fb !important;
  }
  .ns-player-name {
    font-size: 13px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 100px !important;
    display: block !important;
  }

  /* Mobile header */
  .ns-mobile-header {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 16px 16px 12px !important;
    border-bottom: 3px solid #B3150D !important;
  }
  .ns-mobile-logo {
    height: 40px !important;
    width: auto !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .ns-mobile-header-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-left: auto !important;
  }
  .ns-mobile-filter-icon {
    background: none !important;
    border: 1px solid #E8EEF3 !important;
    border-radius: 50% !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    color: rgba(0,0,0,0.4) !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .ns-mobile-info-btn {
    background: none !important;
    border: 1px solid #E8EEF3 !important;
    border-radius: 50% !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    color: rgba(0,0,0,0.35) !important;
    font-size: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .ns-mobile-count {
    display: block !important;
    margin-left: auto !important;
  }

  /* Controls: just tabs + "More Filters +" text + count */
  .ns-controls {
    padding: 8px 16px 12px !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    border-bottom: 1px solid #EEF3F8 !important;
  }
  .ns-mobile-filter-btn {
    display: flex !important;
    align-items: center !important;
    background: none !important;
    border: none !important;
    color: #B2150D !important;
    font-family: 'Source Sans Pro', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 0 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }

  /* Fix position tabs dead space */
  .ns-mobile-pos-tabs {
    display: inline-flex !important;
  }
  .ns-mobile-pos-tab {
    flex: 0 0 auto !important;
  }

  /* Mobile widget — edge-to-edge */
  .ns-widget {
    border-radius: 8px !important;
  }

  /* Mobile paywall — tighter padding */
  .ns-paywall-overlay {
    padding: 40px 12px 20px !important;
  }
  .ns-paywall-headline {
    font-size: 22px !important;
  }
  .ns-paywall-body {
    font-size: 13px !important;
  }
  .ns-paywall-btn {
    padding: 10px 28px !important;
    font-size: 15px !important;
  }

}
