/* ==========================================================================
   PFSLite UI Theme Specification: Stadium Floodlights (Modern Dark)
   ========================================================================== */

:root {
  color-scheme: dark;

  /* Surface & Canvas Palette */
  --pfs-bg-canvas: #121418;
  /* Grounded charcoal slate: Root viewport background */
  --pfs-bg-surface: #181b20;
  /* Editorial dark slate: Cards, modals, boards, nav */
  --pfs-bg-surface-elevated: #20242b;
  /* Elevated panels, active hover rows */
  --pfs-bg-input: #101216;
  /* Inset inputs, search bars, dropdowns */

  /* Borders & Dividers */
  --pfs-border-subtle: #242932;
  /* Inner gridlines, subtle separators */
  --pfs-border-default: #2e3440;
  /* Standard structural borders, inactive slots */
  --pfs-border-focus: #5e8da0;
  /* Input focus rings, selected controls */

  /* Typography & Text Colors - High contrast white and near-white */
  --pfs-text-primary: #f3f4f6;
  /* Primary labels, player names, live scores */
  --pfs-text-secondary: #d1d5db;
  /* Metadata, projected pts, bye weeks */
  --pfs-text-muted: #9ca3af;
  /* Timestamps, inactive hints, subtle labels */
  --pfs-text-inverse: #ffffff;
  /* High-contrast text on primary buttons */

  /* Brand & Feedback Accents */
  --pfs-accent-primary: #82A0BC;
  /* Single action accent used across CTAs and active states */
  --pfs-accent-primary-hover: #6B8BA9;
  --pfs-accent-secondary: #64748b;
  /* Calm neutral accent for secondary actions and inactive emphasis */
  --pfs-accent-secondary-hover: #475569;
  --pfs-accent-danger: #b91c1c;
  /* Muted danger tone to keep alerts consistent */
  --pfs-accent-info: #6896a8;
  /* Quiet info accent for status surfaces */

  /* Position Tag System */
  --pfs-pos-qb: #475569;
  --pfs-pos-rb: #475569;
  --pfs-pos-wr: #475569;
  --pfs-pos-te: #475569;
  --pfs-pos-k: #475569;
  --pfs-pos-dst: #475569;
  --pfs-pos-flex: #475569;
  --pfs-pos-sflex: #475569;

  /* Elevation & Shadows - Minimal, structural only (no neon glows) */
  --pfs-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.25);
  --pfs-shadow-glow-green: none;
  --pfs-shadow-glow-amber: none;

  /* Subtle, crisp radii */
  --pfs-radius-sm: 2px;
  --pfs-radius-md: 3px;
  --pfs-radius-lg: 4px;
  --pfs-radius-full: 3px;

  /* Brand Typography Variables */
  --pfs-brand-title: #ffffff;
  --pfs-hero-shadow: none;
}

/* ==========================================================================
   PFSLite UI Theme Specification: Day Game (Custom Light Mode)
   Requested Canvas: #EDEEF0
   Palette:
     - #304C64 (Deep Slate Navy)
     - #26788E (Ocean Teal)
     - #631B08 (Deep Rustic Mahogany)
     - #A4CCD4 (Soft Powder Blue)
     - #E2480C (Vibrant Fiery Orange)
   ========================================================================== */
:root[data-theme="light"],
[data-theme="light"] {
  color-scheme: light;

  /* Surface & Canvas Palette */
  --pfs-bg-canvas: #EDEEF0;
  /* Requested page canvas background */
  --pfs-bg-surface: #FFFFFF;
  /* Crisp pure white readable areas */
  --pfs-bg-surface-elevated: #F8FAFB;
  /* Elevated cards, subtle light hover rows */
  --pfs-bg-input: #FFFFFF;
  /* Clean white inputs */

  /* Borders & Dividers */
  --pfs-border-subtle: #E2E8EC;
  /* Subtle table row & card dividers */
  --pfs-border-default: #CBD8DE;
  /* Standard borders, crisp contrast */
  --pfs-border-focus: #26788E;
  /* Ocean Teal input focus outline */

  /* Typography & Text Colors - Black text is easy to see and read */
  --pfs-text-primary: #111827;
  /* High-contrast deep black text */
  --pfs-text-secondary: #304C64;
  /* Deep slate navy for labels & metadata */
  --pfs-text-muted: #5E7280;
  /* Muted hints & timestamps */
  --pfs-text-inverse: #FFFFFF;
  /* White text on vibrant buttons */
  --pfs-brand-title: #304C64;
  /* Deep Slate Navy brand hero */
  --pfs-hero-shadow: 0 2px 10px rgba(48, 76, 100, 0.12);

  /* Brand & Feedback Accents (From Palette) */
  --pfs-accent-primary: #82A0BC;
  /* Single signature accent for primary actions */
  --pfs-accent-primary-hover: #6B8BA9;
  --pfs-accent-secondary: #304C64;
  /* Neutral slate for secondary emphasis */
  --pfs-accent-secondary-hover: #24384E;
  --pfs-accent-danger: #631B08;
  /* Rich burgundy to keep importance without noisy color */
  --pfs-accent-info: #5F7D8A;
  /* Muted teal for information surfaces */

  /* Position Pill & Tag System */
  --pfs-pos-qb: #5E7788;
  --pfs-pos-rb: #5E7788;
  --pfs-pos-wr: #5E7788;
  --pfs-pos-te: #5E7788;
  --pfs-pos-k: #5E7788;
  --pfs-pos-dst: #5E7788;
  --pfs-pos-flex: #5E7788;
  --pfs-pos-sflex: #5E7788;

  /* Elevation & Shadows */
  --pfs-shadow-card: 0 1px 2px rgba(48, 76, 100, 0.06);
  --pfs-shadow-glow-green: none;
  --pfs-shadow-glow-amber: none;
}

/* Base Document Styles */
html,
body {
  background-color: var(--pfs-bg-canvas);
  color: var(--pfs-text-primary);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  margin: 0;
  min-height: 100vh;
}

/* High Contrast Global Text Utilities for Stadium Floodlights (Dark Mode) */
.text-muted {
  color: var(--pfs-text-muted) !important;
}

.text-secondary {
  color: var(--pfs-text-secondary) !important;
}

.pfs-text-main {
  color: var(--pfs-text-primary) !important;
}

.pfs-text-sub {
  color: var(--pfs-text-secondary) !important;
}

.pfs-text-hint {
  color: var(--pfs-text-muted) !important;
}

/* Dashboard Matchup Cards Base Styling (Dark Mode) */
.pfs-matchup-row {
  background-color: var(--pfs-bg-surface-elevated);
  border: 0;
  border-radius: var(--pfs-radius-md);
  box-shadow: none;
}

.pfs-matchup-row .pfs-matchup-title,
.pfs-matchup-row .pfs-matchup-handle,
.pfs-matchup-row .pfs-matchup-meta,
.pfs-matchup-row .pfs-matchup-week,
.pfs-matchup-row .pfs-matchup-dot {
  color: var(--pfs-text-primary) !important;
  opacity: 1 !important;
}

.pfs-matchup-row .pfs-score-my {
  color: var(--pfs-accent-primary) !important;
}

.pfs-matchup-row .pfs-score-opp {
  color: #9ca3af !important;
}

.pfs-matchup-row .pfs-score-sep {
  color: #6b7280 !important;
}

.pfs-matchup-row .pfs-matchup-score-lbl {
  color: #ffffff !important;
  opacity: 0.9 !important;
  white-space: nowrap !important;
}

.pfs-matchup-row .pfs-matchup-score {
  white-space: nowrap !important;
}

/* Remove unwanted browser focus outlines on headings and programmatic navigation targets */
h1:focus,
h2:focus,
h3:focus,
h4:focus,
h5:focus,
h6:focus,
.pfs-brand-hero:focus,
[tabindex="-1"]:focus {
  outline: none !important;
  box-shadow: none !important;
}

/* Brand Typography */
.pfs-brand-font {
  font-family: 'Zilla Slab', Georgia, serif;
}

.pfs-brand-hero {
  font-family: 'Zilla Slab', Georgia, serif;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.01em;
}

a {
  color: var(--pfs-accent-info);
  text-decoration: none;
}

a:hover {
  color: var(--pfs-border-focus);
  text-decoration: underline;
}

/* Tabular Numerals for Metric Displays */
.tabular-nums {
  font-variant-numeric: tabular-nums;
}

/* Theme Component Classes */
.pfs-navbar {
  background-color: var(--pfs-bg-surface);
  border-bottom: 1px solid var(--pfs-border-default);
  padding: 0.75rem 1.5rem;
}

.page {
  min-height: 100vh;
  background-color: var(--pfs-bg-canvas);
}

.page > .container,
.page > .container-fluid {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.pfs-card {
  background-color: var(--pfs-bg-surface);
  border: 0;
  border-radius: var(--pfs-radius-md);
  box-shadow: none;
  color: var(--pfs-text-primary);
}

.pfs-card-elevated {
  background-color: var(--pfs-bg-surface-elevated);
  border: 0;
  border-radius: var(--pfs-radius-md);
  box-shadow: none;
}

.page-section {
  background-color: var(--pfs-bg-surface);
  border: 0;
  border-radius: var(--pfs-radius-md);
  padding: 1rem 1.1rem;
  box-shadow: none;
}

.page-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-bottom: 0.75rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--pfs-border-subtle);
}

.page-section-header h2,
.page-section-header h3,
.page-section-header h4 {
  margin: 0;
  font-size: 1.1rem;
  letter-spacing: -0.02em;
}

/* Spotlight Interactive Tiles */
.pfs-tile-spotlight {
  position: relative;
}

.pfs-tile-spotlight-gold {
  background-color: transparent;
  border: 0;
}

.pfs-tile-spotlight-blue,
.pfs-tile-spotlight-green {
  background-color: var(--pfs-bg-surface);
  border: 0;
}

/* Buttons */
.pfs-btn-primary {
  background-color: var(--pfs-accent-primary);
  color: #ffffff !important;
  font-weight: 700;
  letter-spacing: 0.01em;
  border-radius: var(--pfs-radius-md);
  padding: 0.6rem 1.2rem;
  border: 1px solid var(--pfs-accent-primary);
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.12s ease, border-color 0.12s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-align: center;
  text-decoration: none;
}

.pfs-btn-primary:hover:not(:disabled) {
  background-color: var(--pfs-accent-primary-hover);
  border-color: var(--pfs-accent-primary-hover);
  color: #ffffff !important;
  text-decoration: none;
}

.pfs-btn-primary:focus-visible,
.pfs-btn-secondary:focus-visible,
.pfs-btn-info:focus-visible,
.pfs-btn-danger:focus-visible,
.pfs-btn-amber:focus-visible,
.pfs-btn-outline-danger:focus-visible,
.btn-primary:focus-visible,
.btn-secondary:focus-visible {
  outline: 2px solid var(--pfs-border-focus);
  outline-offset: 2px;
  box-shadow: none;
}

.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--pfs-accent-primary) !important;
  background-image: none !important;
  border: 1px solid var(--pfs-accent-primary) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  border-radius: var(--pfs-radius-md);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--pfs-accent-primary-hover) !important;
  border-color: var(--pfs-accent-primary-hover) !important;
}

.btn-secondary,
.btn-outline-secondary {
  background-color: var(--pfs-bg-surface-elevated) !important;
  background-image: none !important;
  color: var(--pfs-text-primary) !important;
  border: 1px solid var(--pfs-border-default) !important;
  border-radius: var(--pfs-radius-md);
  box-shadow: none;
}

.btn-secondary:hover,
.btn-outline-secondary:hover {
  background-color: var(--pfs-border-default) !important;
  border-color: var(--pfs-text-muted) !important;
  color: #ffffff !important;
}

/* Call-To-Action Button (Formerly Gleam) */
.pfs-btn-gleam {
  position: relative;
  overflow: hidden;
  box-shadow: none;
  transition: background-color 0.12s ease, border-color 0.12s ease;
}

.pfs-btn-gleam::before {
  display: none;
}

/* Primary / Public Draft CTA */
.pfs-btn-gleam-green,
.pfs-btn-primary.pfs-btn-gleam {
  border: 1px solid var(--pfs-accent-primary);
  background-color: var(--pfs-accent-primary);
  color: #ffffff !important;
}

.pfs-btn-gleam-green:hover:not(:disabled),
.pfs-btn-primary.pfs-btn-gleam:hover:not(:disabled) {
  background-color: var(--pfs-accent-primary-hover) !important;
  border-color: var(--pfs-accent-primary-hover) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  text-decoration: none;
}

/* Info / Private Draft CTA */
.pfs-btn-gleam-blue,
.pfs-btn-info.pfs-btn-gleam {
  border: 1px solid var(--pfs-accent-secondary);
  background-color: var(--pfs-accent-secondary);
  color: #ffffff !important;
}

.pfs-btn-gleam-blue:hover:not(:disabled),
.pfs-btn-info.pfs-btn-gleam:hover:not(:disabled) {
  background-color: var(--pfs-accent-secondary-hover) !important;
  border-color: var(--pfs-accent-secondary-hover) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  text-decoration: none;
}

.pfs-btn-primary:disabled,
.pfs-btn-primary[disabled],
.pfs-btn-primary.disabled {
  background: #21262d !important;
  background-image: none !important;
  color: #8b949e !important;
  border: 1px solid #30363d !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: 0.45 !important;
  filter: grayscale(0.8) !important;
  pointer-events: none !important;
}

.pfs-btn-primary:disabled:hover,
.pfs-btn-primary[disabled]:hover,
.pfs-btn-primary.disabled:hover,
.pfs-btn-primary:disabled:active,
.pfs-btn-primary[disabled]:active,
.pfs-btn-primary.disabled:active,
.pfs-btn-primary:disabled:focus,
.pfs-btn-primary[disabled]:focus,
.pfs-btn-primary.disabled:focus {
  background: #21262d !important;
  background-image: none !important;
  color: #8b949e !important;
  border-color: #30363d !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;
  filter: grayscale(0.8) !important;
  outline: none !important;
  pointer-events: none !important;
}

.pfs-btn-info {
  background-color: var(--pfs-accent-secondary);
  color: #ffffff !important;
  font-weight: 700;
  letter-spacing: 0.01em;
  border-radius: var(--pfs-radius-md);
  padding: 0.6rem 1.2rem;
  border: 1px solid var(--pfs-accent-secondary);
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.12s ease, border-color 0.12s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pfs-btn-info:hover:not(:disabled) {
  background-color: var(--pfs-accent-secondary-hover);
  border-color: var(--pfs-accent-secondary-hover);
  color: #ffffff !important;
  text-decoration: none;
}

.pfs-btn-info:disabled,
.pfs-btn-info[disabled] {
  background-color: #30363d !important;
  color: #8b949e !important;
  border: 1px solid #3d444d !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: 0.75;
}

.pfs-btn-danger {
  background-color: #b91c1c;
  color: #ffffff !important;
  font-weight: 700;
  border-radius: var(--pfs-radius-md);
  padding: 0.6rem 1.2rem;
  border: 1px solid #b91c1c;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.12s ease, border-color 0.12s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pfs-btn-danger:hover:not(:disabled) {
  background-color: #991b1b;
  border-color: #991b1b;
  color: #ffffff !important;
  text-decoration: none;
}

.pfs-btn-danger:disabled,
.pfs-btn-danger[disabled] {
  background-color: #30363d !important;
  color: #8b949e !important;
  border-color: #3d444d !important;
  cursor: not-allowed !important;
}

.pfs-btn-amber {
  background-color: var(--pfs-accent-secondary);
  color: #ffffff !important;
  font-weight: 700;
  border-radius: var(--pfs-radius-md);
  padding: 0.6rem 1.2rem;
  border: 1px solid var(--pfs-accent-secondary);
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.12s ease, border-color 0.12s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pfs-btn-amber:hover:not(:disabled) {
  background-color: var(--pfs-accent-secondary-hover);
  border-color: var(--pfs-accent-secondary-hover);
  color: #ffffff !important;
  text-decoration: none;
}

.pfs-btn-outline-danger {
  background-color: transparent;
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.5);
  font-weight: 700;
  border-radius: var(--pfs-radius-md);
  padding: 0.45rem 0.85rem;
  transition: background-color 0.12s ease, border-color 0.12s ease;
  cursor: pointer;
}

.pfs-btn-outline-danger:hover:not(:disabled) {
  background-color: rgba(239, 68, 68, 0.12);
  border-color: #ef4444;
  color: #fca5a5 !important;
}

.pfs-btn-outline-danger:disabled,
.pfs-btn-outline-danger[disabled] {
  background-color: transparent !important;
  color: #6b7280 !important;
  border-color: #374151 !important;
  cursor: not-allowed !important;
  opacity: 0.5;
}

/* Position Labels (Clean typographic tags rather than rounded pills) */
.pfs-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--bs-font-monospace, monospace);
  font-size: 0.6875rem;
  font-weight: 700;
  border-radius: var(--pfs-radius-sm);
  padding: 0.08rem 0.35rem;
  background-color: var(--pfs-pos-qb);
  color: #ffffff;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.pfs-pill-qb,
.pfs-pill-rb,
.pfs-pill-wr,
.pfs-pill-te,
.pfs-pill-k,
.pfs-pill-dst,
.pfs-pill-flex,
.pfs-pill-sflex {
  background-color: var(--pfs-pos-qb);
  color: #ffffff;
}

.pfs-pill-amber {
  background-color: var(--pfs-accent-amber);
  color: #000;
}

.pfs-pill-neutral {
  background-color: var(--pfs-bg-surface-elevated);
  color: var(--pfs-text-secondary);
  border: 1px solid var(--pfs-border-default);
}

/* Forms & Inset Inputs */
.pfs-input,
.form-control,
.form-select,
.pfs-select {
  background-color: var(--pfs-bg-input) !important;
  border: 1px solid var(--pfs-border-default) !important;
  color: var(--pfs-text-primary) !important;
  border-radius: var(--pfs-radius-sm) !important;
}

.form-select option,
.pfs-select option,
select option {
  background-color: var(--pfs-bg-surface, #161b22);
  color: var(--pfs-text-primary, #f3f4f6);
}

.pfs-input::placeholder,
.form-control::placeholder {
  color: var(--pfs-text-muted) !important;
}

.pfs-input:focus,
.form-control:focus,
.form-select:focus,
.pfs-select:focus {
  border-color: var(--pfs-border-focus) !important;
  box-shadow: 0 0 0 0.2rem rgba(88, 166, 255, 0.25) !important;
  outline: none;
}

.input-group-text,
.pfs-input-group-text {
  background-color: var(--pfs-bg-surface-elevated) !important;
  border: 1px solid var(--pfs-border-default) !important;
  color: var(--pfs-text-secondary) !important;
}

.form-check-input {
  background-color: var(--pfs-bg-input);
  border-color: var(--pfs-border-default);
}

.form-check-input:checked {
  background-color: var(--pfs-accent-primary);
  border-color: var(--pfs-accent-primary);
}

.form-check-label {
  color: var(--pfs-text-secondary);
}

/* Alerts */
.pfs-alert-danger {
  background-color: rgba(239, 68, 68, 0.12);
  border: 1px solid var(--pfs-accent-danger);
  color: #fca5a5;
  border-radius: var(--pfs-radius-sm);
  padding: 0.75rem 1rem;
}

.pfs-alert-info {
  background-color: rgba(56, 189, 248, 0.12);
  border: 1px solid var(--pfs-accent-info);
  color: #7dd3fc;
  border-radius: var(--pfs-radius-sm);
  padding: 0.75rem 1rem;
}

.pfs-alert-cutoff {
  background-color: rgba(239, 68, 68, 0.12);
  border: 1px solid var(--pfs-accent-danger, #ef4444);
  color: var(--pfs-text-primary, #f0f6fc);
  border-radius: var(--pfs-radius-md);
}

.pfs-alert-cutoff svg {
  color: var(--pfs-accent-danger, #ef4444);
  flex-shrink: 0;
}

/* Roster Slots & Arenas */
.pfs-roster-slot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--pfs-bg-surface-elevated);
  border: 1px solid var(--pfs-border-default);
  border-radius: var(--pfs-radius-sm);
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.5rem;
  transition: border-color 0.2s ease;
}

.pfs-roster-slot.empty {
  border-style: dashed;
  color: var(--pfs-text-muted);
}

.pfs-roster-slot.filled {
  border-style: solid;
  border-color: var(--pfs-border-default);
}

.pfs-roster-slot.active-target {
  border-color: var(--pfs-accent-primary);
}

.pfs-nomination-card {
  background-color: var(--pfs-bg-surface);
  border: 0;
  border-radius: var(--pfs-radius-md);
  padding: 1.25rem;
  cursor: pointer;
  transition: background-color 0.12s ease;
}

.pfs-nomination-card:hover {
  background-color: var(--pfs-bg-surface-elevated);
}

.pfs-nomination-card.selected {
  background-color: rgba(130, 160, 188, 0.14);
}

.pfs-turn-banner {
  background-color: var(--pfs-bg-surface);
  border: 0;
  border-left: 3px solid var(--pfs-accent-secondary);
  padding: 0.75rem 1.1rem;
  border-radius: var(--pfs-radius-md);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: none;
}

.pfs-turn-banner.your-turn {
  border-left-color: var(--pfs-accent-primary);
  box-shadow: none;
}

/* Draft Lobby Specific Elements */
.pfs-btn-secondary {
  background-color: var(--pfs-bg-surface-elevated);
  color: var(--pfs-text-primary) !important;
  font-weight: 700;
  border-radius: var(--pfs-radius-md);
  padding: 0.6rem 1.2rem;
  border: 1px solid var(--pfs-border-default);
  box-shadow: none;
  cursor: pointer;
  transition: border-color 0.12s ease, background-color 0.12s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.pfs-btn-secondary:hover:not(:disabled) {
  background-color: var(--pfs-border-default);
  border-color: var(--pfs-border-focus);
  color: #ffffff !important;
  text-decoration: none;
}

.pfs-btn-secondary:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.pfs-lobby-item {
  background-color: var(--pfs-bg-surface);
  border: 0;
  border-radius: var(--pfs-radius-md);
  padding: 0.875rem 1.15rem;
  transition: background-color 0.12s ease;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.pfs-lobby-item:hover {
  background-color: var(--pfs-bg-surface-elevated);
}

.pfs-user-link {
  color: var(--pfs-accent-info);
  font-weight: 600;
  text-decoration: none;
  transition: color 0.15s ease;
}

.pfs-user-link:hover {
  color: var(--pfs-border-focus);
  text-decoration: underline;
}

/* Table Filter Controls */
.pfs-pos-filter {
  background-color: var(--pfs-bg-surface-elevated) !important;
  color: var(--pfs-text-primary) !important;
  border: 1px solid var(--pfs-border-default) !important;
  border-radius: var(--pfs-radius-sm) !important;
  font-size: 0.75rem !important;
  font-weight: 600;
  padding: 0.15rem 1.75rem 0.15rem 0.5rem !important;
  cursor: pointer;
  width: auto;
  min-width: 68px;
  line-height: 1.3;
}

.pfs-pos-filter:focus {
  border-color: var(--pfs-border-focus) !important;
  box-shadow: 0 0 0 0.15rem rgba(88, 166, 255, 0.25) !important;
  outline: none;
}

.pfs-pos-filter option {
  background-color: var(--pfs-bg-surface);
  color: var(--pfs-text-primary);
}

.pfs-player-search-input {
  background-color: var(--pfs-bg-surface-elevated) !important;
  color: var(--pfs-text-primary) !important;
  border: 1px solid var(--pfs-border-default) !important;
  border-radius: var(--pfs-radius-sm) !important;
  font-size: 0.75rem !important;
  padding: 0.2rem 1.4rem 0.2rem 0.5rem !important;
  width: 140px;
  line-height: 1.2;
}

.pfs-player-search-input::placeholder {
  color: var(--pfs-text-muted) !important;
  font-size: 0.75rem;
}

.pfs-player-search-input:focus {
  border-color: var(--pfs-border-focus) !important;
  box-shadow: 0 0 0 0.15rem rgba(88, 166, 255, 0.25) !important;
  outline: none;
  width: 165px;
  transition: width 0.2s ease;
}

/* ==========================================================================
   Player Research Table Styles
   ========================================================================== */
.pfs-research-table-wrapper {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

.pfs-research-table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
  width: 100%;
}

.pfs-research-table .pfs-col-player {
  min-width: 230px;
}

/* Mobile & Tablet: Sticky / Frozen Player Column */
@media (max-width: 991px) {
  .pfs-research-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
  }

  .pfs-research-table th.pfs-col-player,
  .pfs-research-table td.pfs-col-player {
    position: -webkit-sticky !important;
    position: sticky !important;
    left: 0 !important;
    z-index: 5 !important;
    background-color: var(--pfs-bg-surface) !important;
    box-shadow: 4px 0 8px rgba(0, 0, 0, 0.5) !important;
    border-right: 1px solid var(--pfs-border-default) !important;
    width: 165px !important;
    min-width: 165px !important;
    max-width: 165px !important;
  }

  .pfs-research-table th.pfs-col-player {
    z-index: 6 !important;
  }

  .pfs-research-table tbody tr:hover td.pfs-col-player {
    background-color: var(--pfs-bg-surface-elevated) !important;
  }

  .pfs-research-table .pfs-col-player .pfs-player-avatar {
    width: 30px !important;
    height: 30px !important;
  }

  .pfs-research-table .pfs-col-player .pfs-player-name {
    font-size: 0.85rem;
    max-width: 115px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
  }
}

/* ==========================================================================
   Pre-Draft Lobby Component Styles
   ========================================================================== */
.pfs-predraft-layout {
  width: 100%;
  max-width: 580px;
  min-height: calc(100vh - 60px);
  margin: 0 auto;
  background-color: var(--pfs-bg-canvas);
  border-left: 1px solid var(--pfs-border-default);
  border-right: 1px solid var(--pfs-border-default);
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  position: relative;
}

.pfs-brand-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: var(--pfs-radius-md);
  background-color: var(--pfs-accent-primary);
  color: #ffffff;
  font-weight: 900;
  font-size: 1.05rem;
  letter-spacing: -0.04em;
  box-shadow: none;
  flex-shrink: 0;
}

.pfs-pulse-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
}

@keyframes pfs-pulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.45;
  }
}

.pfs-placard {
  background-color: var(--pfs-bg-surface);
  border: 1px solid var(--pfs-border-default);
  border-radius: var(--pfs-radius-md);
  padding: 0.875rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 96px;
}

.pfs-placard-empty {
  background-color: rgba(24, 27, 32, 0.6);
  border: 1px dashed var(--pfs-border-default);
  border-radius: var(--pfs-radius-md);
  padding: 0.875rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 96px;
}

.pfs-pos-pills-bar {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  overflow-x: auto;
  white-space: nowrap;
  padding: 0.45rem 0.75rem;
  background-color: var(--pfs-bg-surface);
  border-top: 1px solid var(--pfs-border-default);
  border-bottom: 1px solid var(--pfs-border-default);
  scrollbar-width: none;
}

.pfs-pos-pills-bar::-webkit-scrollbar {
  display: none;
}

.pfs-pos-pill-btn {
  padding: 0.22rem 0.65rem;
  border-radius: var(--pfs-radius-sm);
  font-size: 0.72rem;
  font-weight: 700;
  border: 1px solid var(--pfs-border-default);
  background-color: var(--pfs-bg-canvas);
  color: var(--pfs-text-secondary);
  cursor: pointer;
  transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

.pfs-pos-pill-btn:hover {
  background-color: var(--pfs-bg-surface-elevated);
  border-color: var(--pfs-text-muted);
  color: var(--pfs-text-primary);
}

.pfs-pos-pill-btn.active {
  background-color: var(--pfs-accent-primary);
  border-color: var(--pfs-accent-primary);
  color: #ffffff !important;
  box-shadow: none;
}

.pfs-player-card-row {
  background-color: var(--pfs-bg-surface);
  border: 1px solid var(--pfs-border-default);
  border-radius: var(--pfs-radius-sm);
  padding: 0.6rem 0.8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background-color 0.12s ease, border-color 0.12s ease;
  margin-bottom: 0.35rem;
}

.pfs-player-card-row:hover {
  border-color: var(--pfs-border-focus);
  background-color: var(--pfs-bg-surface-elevated);
}

.pfs-avatar-circle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: var(--pfs-bg-canvas);
  border: 1px solid var(--pfs-border-default);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--pfs-text-secondary);
  flex-shrink: 0;
  overflow: hidden;
}

.pfs-avatar-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Modal Overlay */
.pfs-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1050;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
  padding: 1rem;
  animation: pfs-fade-in 0.15s ease-out;
}

.pfs-modal-shell {
  background-color: var(--pfs-bg-surface);
  border: 1px solid var(--pfs-border-default);
  border-radius: var(--pfs-radius-lg);
  width: 100%;
  max-width: 420px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7);
  animation: pfs-zoom-in 0.15s ease-out;
}

@keyframes pfs-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes pfs-zoom-in {
  from {
    transform: scale(0.95);
    opacity: 0;
  }

  to {
    transform: scale(1);
    opacity: 1;
  }
}

/* Blazor default error UI */
#blazor-error-ui {
  background: var(--pfs-bg-surface-elevated);
  border-top: 1px solid var(--pfs-accent-danger);
  color: var(--pfs-text-primary);
  bottom: 0;
  box-shadow: var(--pfs-shadow-card);
  display: none;
  left: 0;
  padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  position: fixed;
  width: 100%;
  z-index: 1000;
}

/* ==========================================================================
   Teams View (Nomination Step 1) Styles
   ========================================================================== */
.pfs-teams-layout {
  max-width: 860px;
  margin: 0 auto;
  min-height: calc(100vh - 4.5rem);
  display: flex;
  flex-direction: column;
  background-color: var(--pfs-bg-canvas);
  border-left: 1px solid var(--pfs-border-default);
  border-right: 1px solid var(--pfs-border-default);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
  border-radius: var(--pfs-radius-md);
  overflow: hidden;
}

.pfs-roster-grid {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) 52px 52px minmax(0, 1fr) 46px;
  align-items: center;
  gap: 0.35rem;
}

@media (min-width: 576px) {
  .pfs-roster-grid {
    grid-template-columns: 52px minmax(0, 1fr) 60px 60px minmax(0, 1fr) 52px;
    gap: 0.5rem;
  }
}

.pfs-matchup-table-wrapper {
  width: 100%;
  min-width: 100%;
}

.pfs-matchup-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 26px 28px 30px 28px 26px minmax(0, 1fr);
  align-items: center;
  gap: 0.15rem;
}

@media (min-width: 400px) {
  .pfs-matchup-grid {
    grid-template-columns: minmax(0, 1fr) 30px 34px 34px 34px 30px minmax(0, 1fr);
    gap: 0.2rem;
  }
}

@media (min-width: 576px) {
  .pfs-matchup-grid {
    grid-template-columns: minmax(0, 1fr) 48px 54px 48px 54px 48px minmax(0, 1fr);
    gap: 0.4rem;
  }
}

@media (min-width: 768px) {
  .pfs-matchup-grid {
    grid-template-columns: minmax(0, 1fr) 54px 62px 52px 62px 54px minmax(0, 1fr);
    gap: 0.5rem;
  }
}

@media (min-width: 992px) {
  .pfs-matchup-grid {
    grid-template-columns: minmax(0, 1fr) 58px 66px 56px 66px 58px minmax(0, 1fr);
    gap: 0.6rem;
  }
}

.pfs-matchup-header {
  font-size: 0.58rem;
}

@media (min-width: 576px) {
  .pfs-matchup-header {
    font-size: 0.6875rem;
  }
}

.pfs-matchup-player-name {
  font-size: 0.72rem;
  line-height: 1.2;
}

@media (min-width: 576px) {
  .pfs-matchup-player-name {
    font-size: 0.8125rem;
  }
}

.pfs-matchup-player-sub {
  font-size: 0.58rem;
  line-height: 1.2;
}

@media (min-width: 576px) {
  .pfs-matchup-player-sub {
    font-size: 0.6875rem;
  }
}

.pfs-matchup-pill {
  font-size: 0.48rem;
  padding: 0.05rem 0.25rem;
}

@media (min-width: 576px) {
  .pfs-matchup-pill {
    font-size: 0.55rem;
    padding: 0.05rem 0.35rem;
  }
}

.pfs-matchup-game-info {
  font-size: 0.58rem;
}

@media (min-width: 576px) {
  .pfs-matchup-game-info {
    font-size: 0.65rem;
  }
}

.pfs-matchup-schedule {
  font-size: 0.56rem;
  line-height: 1.15;
  color: var(--pfs-text-muted);
  font-family: var(--bs-font-monospace, monospace);
  letter-spacing: -0.01em;
}

.pfs-matchup-schedule.pfs-game-live {
  color: #38bdf8 !important;
  font-weight: 600;
}

[data-theme="light"] .pfs-matchup-schedule.pfs-game-live {
  color: #0284c7 !important;
  font-weight: 600;
}

@media (min-width: 576px) {
  .pfs-matchup-schedule {
    font-size: 0.65rem;
  }
}

.pfs-matchup-proj {
  font-size: 0.65rem;
  color: var(--pfs-text-secondary);
}

@media (min-width: 576px) {
  .pfs-matchup-proj {
    font-size: 0.75rem;
  }
}

.pfs-matchup-pts {
  font-size: 0.78rem;
  color: var(--pfs-accent-primary);
}

@media (min-width: 576px) {
  .pfs-matchup-pts {
    font-size: 0.875rem;
  }
}

/* Home & Away Differentiated Scoring Accent Colors */
.pfs-pts-home,
.pfs-matchup-pts.pfs-pts-home {
  color: #fb923c !important;
  /* Vibrant Orange in Dark Mode */
}

.pfs-pts-away,
.pfs-matchup-pts.pfs-pts-away {
  color: #38bdf8 !important;
  /* Electric Blue in Dark Mode */
}

.pfs-pts-home-hdr {
  color: #fb923c !important;
}

.pfs-pts-away-hdr {
  color: #38bdf8 !important;
}

.pfs-roster-row {
  background-color: rgba(22, 27, 34, 0.5);
  border: 1px solid transparent;
  border-radius: var(--pfs-radius-sm);
  padding: 0.25rem 0.3rem;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

@media (min-width: 576px) {
  .pfs-roster-row {
    padding: 0.4rem 0.5rem;
  }
}

.pfs-roster-row:hover {
  background-color: rgba(33, 38, 45, 0.65);
  border-color: var(--pfs-border-default);
}

.pfs-roster-row-unfilled {
  border-style: dashed;
  border-color: rgba(48, 54, 61, 0.8);
  background-color: rgba(22, 27, 34, 0.3);
}

.pfs-roster-awaiting-slot {
  width: 100%;
  padding: 0.35rem 0.5rem;
  border-radius: var(--pfs-radius-sm);
  border: 1px dashed var(--pfs-border-default);
  color: var(--pfs-text-muted);
  font-size: 0.6875rem;
  font-weight: 500;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  background-color: rgba(13, 17, 23, 0.3);
}

.pfs-nominate-btn {
  width: 100%;
  padding: 0.35rem 0.5rem;
  border-radius: var(--pfs-radius-sm);
  background-color: var(--pfs-accent-primary);
  color: #ffffff !important;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: -0.01em;
  border: 1px solid var(--pfs-accent-primary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  box-shadow: none;
  transition: background-color 0.12s ease;
}

.pfs-nominate-btn:hover {
  background-color: var(--pfs-accent-primary-hover);
}

.pfs-placard-nominator {
  border: 1px solid var(--pfs-accent-primary) !important;
  border-left: 3px solid var(--pfs-accent-primary) !important;
  box-shadow: none !important;
}

.pfs-timer-urgent {
  color: var(--pfs-accent-danger) !important;
  animation: pfs-pulse 1s infinite;
}

.pfs-slot-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--bs-font-monospace, monospace);
  font-size: 0.52rem;
  font-weight: 800;
  border-radius: var(--pfs-radius-sm);
  padding: 0.1rem 0.2rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  background-color: var(--pfs-pos-qb);
  color: #ffffff;
  min-width: 24px;
  text-align: center;
  white-space: nowrap;
}

@media (min-width: 576px) {
  .pfs-slot-badge {
    font-size: 0.625rem;
    padding: 0.15rem 0.35rem;
    min-width: 32px;
  }
}

/* ==========================================================================
   Step 2 Nomination View (Player Picker Tray & Nomination Placards)
   ========================================================================== */
.pfs-custom-scroll::-webkit-scrollbar {
  width: 5px;
}

.pfs-custom-scroll::-webkit-scrollbar-track {
  background: var(--pfs-bg-canvas);
}

.pfs-custom-scroll::-webkit-scrollbar-thumb {
  background: var(--pfs-border-default);
  border-radius: 2px;
}

.pfs-custom-scroll {
  scrollbar-width: thin;
  scrollbar-color: var(--pfs-border-default) var(--pfs-bg-canvas);
}

.pfs-nominate-confirm-btn {
  width: 100%;
  padding: 0.6rem 1rem;
  border-radius: var(--pfs-radius-md);
  font-weight: 700;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: background-color 0.12s ease;
  border: 1px solid transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.pfs-nominate-confirm-btn.disabled,
.pfs-nominate-confirm-btn:disabled {
  background-color: var(--pfs-border-default) !important;
  color: var(--pfs-text-muted) !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

.pfs-nominate-confirm-btn.enabled {
  background-color: var(--pfs-accent-primary) !important;
  color: #ffffff !important;
  cursor: pointer !important;
}

.pfs-nominate-confirm-btn.enabled:hover {
  background-color: var(--pfs-accent-primary-hover) !important;
}

.pfs-pos-pill-tab {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.2rem 0.55rem;
  border-radius: var(--pfs-radius-sm);
  background-color: var(--pfs-bg-canvas);
  border: 1px solid var(--pfs-border-default);
  color: var(--pfs-text-secondary);
  cursor: pointer;
  transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

.pfs-pos-pill-tab:hover {
  border-color: var(--pfs-text-muted);
  color: var(--pfs-text-primary);
}

.pfs-pos-pill-tab.active {
  background-color: var(--pfs-accent-primary);
  color: #ffffff;
  border-color: var(--pfs-accent-primary);
  box-shadow: none;
}

.pfs-player-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.45rem 0.6rem;
  border-radius: 0;
  transition: background-color 0.12s ease;
  border-bottom: 1px solid var(--pfs-border-subtle);
}

.pfs-player-row:hover {
  background-color: var(--pfs-bg-surface-elevated);
}

.pfs-player-row.darkened {
  opacity: 0.28;
  filter: grayscale(85%);
  background-color: transparent !important;
  pointer-events: none;
}

.pfs-player-row.queued {
  opacity: 0.65;
  background-color: rgba(130, 160, 188, 0.08);
  border-left: 2px solid var(--pfs-accent-primary);
}

[data-theme="light"] .pfs-player-row.queued {
  background-color: rgba(130, 160, 188, 0.12);
}

.pfs-cutoff-line-divider {
  position: relative;
  user-select: none;
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

.pfs-cutoff-line {
  height: 1px;
  background: var(--pfs-border-default);
  border-top: 1px dashed var(--pfs-accent-secondary);
  box-shadow: none;
}

.pfs-cutoff-label {
  font-size: 0.625rem;
  color: var(--pfs-text-secondary);
  background-color: var(--pfs-bg-surface-elevated);
  border: 1px solid var(--pfs-border-default);
  box-shadow: none;
  padding: 0.12rem 0.5rem;
  border-radius: var(--pfs-radius-sm);
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.pfs-queue-btn {
  width: 28px;
  height: 28px;
  background-color: var(--pfs-bg-canvas);
  border: 1px solid var(--pfs-accent-primary);
  color: var(--pfs-accent-primary);
  font-weight: 800;
  font-size: 0.8125rem;
  border-radius: var(--pfs-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s ease;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

@media (hover: hover) and (pointer: fine) {
  .pfs-queue-btn:hover {
    background-color: var(--pfs-accent-primary);
    color: #0d1117;
  }
}

.pfs-queue-btn:focus,
.pfs-queue-btn:focus-visible {
  outline: none;
  box-shadow: none;
  background-color: var(--pfs-bg-canvas);
  color: var(--pfs-accent-primary);
}

.pfs-queue-btn:active {
  background-color: var(--pfs-accent-primary);
  color: #0d1117;
  transform: scale(0.92);
}

.pfs-queue-btn:disabled,
.pfs-queue-btn[disabled] {
  opacity: 0.35;
  border-color: var(--pfs-border-default);
  color: var(--pfs-text-muted);
  cursor: not-allowed;
  pointer-events: none;
  background-color: var(--pfs-bg-surface);
  transform: none;
}

.pfs-queue-btn.queued {
  background-color: var(--pfs-accent-primary) !important;
  border-color: var(--pfs-accent-primary) !important;
  color: #ffffff !important;
  cursor: pointer !important;
  pointer-events: auto !important;
  opacity: 1 !important;
}

@media (hover: hover) and (pointer: fine) {
  .pfs-queue-btn.queued:hover {
    background-color: var(--pfs-accent-primary-hover) !important;
    border-color: var(--pfs-accent-primary-hover) !important;
    color: #ffffff !important;
  }
}

[data-theme="light"] .pfs-queue-btn.queued {
  background-color: var(--pfs-accent-primary) !important;
  border-color: var(--pfs-accent-primary) !important;
  color: #ffffff !important;
}

.pfs-placard-empty-box {
  min-height: 82px;
  background-color: var(--pfs-bg-surface);
  border: 1px dashed var(--pfs-border-default);
  border-radius: var(--pfs-radius-md);
  padding: 0.5rem 0.65rem;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

@media (min-width: 768px) {
  .pfs-placard-empty-box {
    min-height: 140px;
    padding: 0.85rem;
  }
}

.pfs-placard-filled-box {
  min-height: 82px;
  background-color: var(--pfs-bg-surface);
  border: 1px solid var(--pfs-accent-primary);
  border-left: 3px solid var(--pfs-accent-primary);
  border-radius: var(--pfs-radius-md);
  padding: 0.5rem 0.65rem;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: none;
}

@media (min-width: 768px) {
  .pfs-placard-filled-box {
    min-height: 140px;
    padding: 0.85rem;
  }
}

.pfs-remove-queued-btn {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  width: 22px;
  height: 22px;
  border-radius: var(--pfs-radius-sm);
  background-color: rgba(239, 68, 68, 0.16);
  border: 1.5px solid #ef4444;
  color: #f87171;
  font-weight: 700;
  font-size: 0.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.12s ease, color 0.12s ease;
  z-index: 5;
  -webkit-tap-highlight-color: transparent;
}

[data-theme="light"] .pfs-remove-queued-btn {
  background-color: #fef2f2;
  border: 1.5px solid #dc2626;
  color: #dc2626;
}

@media (min-width: 768px) {
  .pfs-remove-queued-btn {
    top: 0.5rem;
    right: 0.5rem;
    width: 24px;
    height: 24px;
    font-size: 0.6875rem;
  }
}

@media (hover: hover) {
  .pfs-remove-queued-btn:hover,
  [data-theme="light"] .pfs-remove-queued-btn:hover {
    background-color: #dc2626;
    border-color: #dc2626;
    color: #ffffff;
  }
}

.pfs-remove-queued-btn:active,
[data-theme="light"] .pfs-remove-queued-btn:active {
  background-color: #dc2626;
  border-color: #dc2626;
  color: #ffffff;
}

/* ==========================================================================
   Step 3: Choosing View (Choose-Player-view Mockup)
   ========================================================================== */

.pfs-choose-card {
  background-color: var(--pfs-bg-surface);
  border: 1px solid var(--pfs-border-default);
  border-radius: var(--pfs-radius-md);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.12s ease;
  box-shadow: none;
  height: 100%;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

@media (hover: hover) and (pointer: fine) {
  .pfs-choose-card:hover {
    border-color: var(--pfs-text-muted);
  }
}

.pfs-choose-card-selected {
  border: 2px solid var(--pfs-accent-primary) !important;
  box-shadow: none !important;
}

.pfs-choose-selected-badge {
  background: transparent !important;
  color: var(--pfs-accent-secondary) !important;
  font-weight: 700;
  font-size: 0.8125rem;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  letter-spacing: 0.04em;
  display: inline-flex;
  align-items: center;
  user-select: none;
}

.pfs-choose-card-select-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-radius: var(--pfs-radius-sm);
  padding: 0.45rem 0.85rem;
  transition: background-color 0.12s ease, border-color 0.12s ease;
  cursor: pointer;
  white-space: nowrap;
}

.pfs-choose-card-select-btn-unselected {
  background-color: var(--pfs-bg-surface-elevated);
  border: 1px solid var(--pfs-border-default);
  color: var(--pfs-text-primary);
}

@media (hover: hover) and (pointer: fine) {
  .pfs-choose-card-select-btn-unselected:hover {
    background-color: var(--pfs-border-default);
    border-color: var(--pfs-text-muted);
  }
}

.pfs-choose-card-select-btn-selected {
  background-color: var(--pfs-accent-primary);
  border: 1px solid var(--pfs-accent-primary);
  color: #ffffff;
  box-shadow: none;
}

.pfs-choose-main {
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 0;
}

@media (min-width: 768px) {
  .pfs-choose-main {
    overflow-y: hidden;
  }
  .pfs-choose-row {
    height: 100%;
  }
}

.pfs-schedule-table-row {
  display: grid;
  grid-template-columns: 2.2rem 1fr 3.5rem 3.5rem;
  padding: 0.35rem 1.25rem 0.35rem 0.6rem;
  align-items: center;
  font-family: var(--bs-font-monospace, monospace);
  font-size: 0.75rem;
  border-bottom: 1px solid var(--pfs-border-subtle);
  transition: background-color 0.12s ease;
}

.pfs-schedule-table-row:hover {
  background-color: var(--pfs-bg-surface-elevated);
}

.pfs-draft-cta-enabled {
  background-color: var(--pfs-accent-primary) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}

.pfs-draft-cta-enabled:hover {
  background-color: var(--pfs-accent-primary-hover) !important;
}

/* ==========================================================================
   Draft Completed / Final Matchup Showcase Styles
   ========================================================================== */

.pfs-matchup-scoreboard {
  background-color: var(--pfs-bg-surface);
  border: 0;
  border-radius: var(--pfs-radius-md);
  padding: 0.85rem 0.65rem;
  box-shadow: none;
}

@media (min-width: 576px) {
  .pfs-matchup-scoreboard {
    padding: 1.25rem 1.5rem;
  }
}

.pfs-score-digit {
  font-family: var(--bs-font-monospace, monospace);
  font-size: 1.65rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.03em;
}

@media (min-width: 576px) {
  .pfs-score-digit {
    font-size: 2.25rem;
  }
}

.pfs-spread-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.55rem;
  border-radius: var(--pfs-radius-sm);
  font-family: var(--bs-font-monospace, monospace);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background-color: var(--pfs-bg-surface-elevated);
  color: var(--pfs-text-secondary);
  border: 1px solid var(--pfs-border-default);
}

.pfs-btn-view-matchups {
  background-color: var(--pfs-accent-primary);
  color: #ffffff;
  font-weight: 700;
  font-size: 0.875rem;
  padding: 0.6rem 1.35rem;
  border-radius: var(--pfs-radius-md);
  border: 1px solid var(--pfs-accent-primary);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: background-color 0.12s ease;
  box-shadow: none;
  text-decoration: none;
  cursor: pointer;
}

.pfs-btn-view-matchups:hover {
  background-color: var(--pfs-accent-primary-hover);
  color: #ffffff;
}

.pfs-btn-return-lobby {
  background-color: transparent;
  color: var(--pfs-text-primary);
  font-weight: 700;
  font-size: 0.875rem;
  padding: 0.6rem 1.25rem;
  border-radius: var(--pfs-radius-md);
  border: 1px solid var(--pfs-border-default);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.2s ease;
  text-decoration: none;
  cursor: pointer;
}

.pfs-btn-return-lobby:hover {
  background-color: var(--pfs-bg-surface-elevated);
  border-color: var(--pfs-text-secondary);
  color: var(--pfs-text-primary);
}

/* ==========================================================================
   Admin Console Mobile Navigation Select
   ========================================================================== */
.pfs-admin-tab-select {
  background-color: var(--pfs-bg-input, #0b0e14) !important;
  color: var(--pfs-text-primary, #f3f4f6) !important;
  border-color: var(--pfs-border-default, #30363d) !important;
  border-radius: var(--pfs-radius-md, 8px);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%239ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
  cursor: pointer;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.pfs-admin-tab-select:focus {
  background-color: var(--pfs-bg-input, #0b0e14) !important;
  color: var(--pfs-text-primary, #f3f4f6) !important;
  border-color: var(--pfs-border-focus, #58a6ff) !important;
  box-shadow: 0 0 0 2px rgba(88, 166, 255, 0.25) !important;
  outline: 0;
}

.pfs-admin-tab-select option {
  background-color: var(--pfs-bg-surface, #161b22);
  color: var(--pfs-text-primary, #f3f4f6);
  padding: 0.5rem;
}

/* ==========================================================================
   Light Mode Component Overrides & Polish (Canvas #EDEEF0)
   ========================================================================== */
html[data-theme="light"],
[data-theme="light"] body,
body[data-theme="light"] {
  background-color: var(--pfs-bg-canvas);
  color: var(--pfs-text-primary);
}

/* Links */
[data-theme="light"] a:not(.btn):not(.pfs-about-pulse-link) {
  color: #26788E;
}

[data-theme="light"] a:not(.btn):not(.pfs-about-pulse-link):hover {
  color: #1D6072;
}

/* Top Navbar */
[data-theme="light"] .top-navbar {
  background-color: #FFFFFF;
  border-bottom: 2px solid #A4CCD4;
  box-shadow: 0 2px 8px rgba(48, 76, 100, 0.07);
}

[data-theme="light"] .top-navbar .brand-link span {
  color: #304C64 !important;
}

[data-theme="light"] .brand-link:hover span {
  color: #82A0BC !important;
}

/* Nav outline buttons */
[data-theme="light"] .btn-outline-info {
  color: #26788E !important;
  border-color: #A4CCD4 !important;
  background-color: rgba(164, 204, 212, 0.12);
}

[data-theme="light"] .btn-outline-info:hover {
  background-color: #26788E !important;
  border-color: #26788E !important;
  color: #FFFFFF !important;
}

[data-theme="light"] .btn-outline-secondary {
  color: #304C64 !important;
  border-color: #CBD8DE !important;
  background-color: #FFFFFF;
}

[data-theme="light"] .btn-outline-secondary:hover {
  background-color: #304C64 !important;
  border-color: #304C64 !important;
  color: #FFFFFF !important;
}

[data-theme="light"] .btn-outline-light {
  color: #304C64 !important;
  border-color: #304C64 !important;
  background-color: transparent;
}

[data-theme="light"] .btn-outline-light:hover {
  background-color: #304C64 !important;
  border-color: #304C64 !important;
  color: #FFFFFF !important;
}

[data-theme="light"] .btn-primary,
[data-theme="light"] a.btn-primary {
  color: #FFFFFF !important;
  background-color: #0d6efd !important;
  border-color: #0d6efd !important;
}

[data-theme="light"] .btn-primary:hover,
[data-theme="light"] a.btn-primary:hover {
  color: #FFFFFF !important;
  background-color: #0b5ed7 !important;
  border-color: #0a58ca !important;
}

/* Cards & Elevated surfaces */
[data-theme="light"] .pfs-card {
  background-color: #FFFFFF;
  border: 0;
  box-shadow: none;
}

[data-theme="light"] .pfs-card-elevated {
  background-color: #F8FAFB;
  border: 0;
  box-shadow: none;
}

/* Ensure readability of black text on cards and tables */
[data-theme="light"] .pfs-card .text-white:not(.badge):not(.pfs-pill):not(.btn):not(.pfs-btn-primary):not(.pfs-btn-gleam):not(.pfs-btn-info):not(.pfs-btn-danger),
[data-theme="light"] .pfs-card-elevated .text-white:not(.badge):not(.pfs-pill):not(.btn):not(.pfs-btn-primary):not(.pfs-btn-gleam):not(.pfs-btn-info):not(.pfs-btn-danger),
[data-theme="light"] .pfs-placard .text-white:not(.badge):not(.pfs-pill):not(.btn),
[data-theme="light"] .pfs-roster-slot .text-white:not(.badge):not(.pfs-pill):not(.btn),
[data-theme="light"] table .text-white:not(.badge):not(.pfs-pill):not(.btn),
[data-theme="light"] .modal-content .text-white:not(.badge):not(.pfs-pill):not(.btn) {
  color: var(--pfs-text-primary) !important;
}

[data-theme="light"] .text-light:not(.badge):not(.pfs-pill):not(.btn) {
  color: var(--pfs-text-primary) !important;
}

[data-theme="light"] .text-muted {
  color: var(--pfs-text-muted) !important;
}

/* Spotlights */
[data-theme="light"] .pfs-tile-spotlight-gold {
  background-color: transparent;
  border: 0;
  box-shadow: none;
}

[data-theme="light"] .pfs-tile-spotlight-blue,
[data-theme="light"] .pfs-tile-spotlight-green {
  background-color: #FFFFFF;
  border: 0;
  box-shadow: none;
}

/* Buttons */
[data-theme="light"] .pfs-btn-primary {
  background-color: #82A0BC;
  border-color: #82A0BC;
  color: #FFFFFF !important;
  box-shadow: none;
}

[data-theme="light"] .pfs-btn-primary:hover:not(:disabled) {
  background-color: #6B8BA9;
  border-color: #6B8BA9;
  color: #FFFFFF !important;
  box-shadow: none;
}

[data-theme="light"] .pfs-btn-gleam-green,
[data-theme="light"] .pfs-btn-primary.pfs-btn-gleam {
  background-color: #82A0BC;
  border-color: #82A0BC;
  color: #FFFFFF !important;
}

[data-theme="light"] .pfs-btn-gleam-green:hover:not(:disabled),
[data-theme="light"] .pfs-btn-primary.pfs-btn-gleam:hover:not(:disabled) {
  background-color: #6B8BA9 !important;
  border-color: #6B8BA9 !important;
  color: #FFFFFF !important;
  box-shadow: none !important;
}

[data-theme="light"] .pfs-btn-gleam-blue,
[data-theme="light"] .pfs-btn-info.pfs-btn-gleam {
  background-color: #26788E;
  border-color: #26788E;
  color: #FFFFFF !important;
}

[data-theme="light"] .pfs-btn-gleam-blue:hover:not(:disabled),
[data-theme="light"] .pfs-btn-info.pfs-btn-gleam:hover:not(:disabled) {
  background-color: #1D6072 !important;
  border-color: #1D6072 !important;
  color: #FFFFFF !important;
  box-shadow: none !important;
}

[data-theme="light"] .pfs-btn-secondary {
  background-color: #FFFFFF;
  color: #304C64 !important;
  border-color: #CBD8DE;
  box-shadow: none;
}

[data-theme="light"] .pfs-btn-secondary:hover:not(:disabled) {
  background-color: #F0F5F8;
  border-color: #26788E;
  color: #26788E !important;
}

[data-theme="light"] .pfs-btn-danger {
  background-color: #631B08;
  border-color: #631B08;
  color: #FFFFFF !important;
}

[data-theme="light"] .pfs-btn-danger:hover:not(:disabled) {
  background-color: #4C1405;
  border-color: #4C1405;
  color: #FFFFFF !important;
}

[data-theme="light"] .pfs-btn-amber {
  background-color: #82A0BC;
  border-color: #82A0BC;
  color: #FFFFFF !important;
}

[data-theme="light"] .pfs-btn-amber:hover:not(:disabled) {
  background-color: #6B8BA9;
  border-color: #6B8BA9;
  color: #FFFFFF !important;
}

/* Forms & Inputs */
[data-theme="light"] .pfs-input,
[data-theme="light"] .form-control {
  background-color: #FFFFFF !important;
  border: 1px solid #CBD8DE !important;
  color: #111827 !important;
}

[data-theme="light"] .pfs-input::placeholder,
[data-theme="light"] .form-control::placeholder {
  color: #8C9CA6 !important;
}

[data-theme="light"] .pfs-input:focus,
[data-theme="light"] .form-control:focus {
  border-color: #26788E !important;
  box-shadow: 0 0 0 0.2rem rgba(38, 120, 142, 0.2) !important;
}

/* Research Table */
[data-theme="light"] .pfs-research-table {
  background-color: #FFFFFF;
}

[data-theme="light"] .pfs-research-table thead th {
  background-color: #F8FAFB !important;
  color: #304C64 !important;
  border-bottom: 2px solid #CBD8DE !important;
}

[data-theme="light"] .pfs-research-table tbody tr {
  background-color: #FFFFFF;
  border-bottom: 1px solid #E2E8EC;
}

[data-theme="light"] .pfs-research-table tbody tr:hover {
  background-color: rgba(164, 204, 212, 0.15) !important;
}

@media (max-width: 991px) {

  [data-theme="light"] .pfs-research-table th.pfs-col-player,
  [data-theme="light"] .pfs-research-table td.pfs-col-player {
    background-color: #FFFFFF !important;
    box-shadow: 4px 0 8px rgba(48, 76, 100, 0.08) !important;
    border-right: 1px solid #CBD8DE !important;
  }

  [data-theme="light"] .pfs-research-table tbody tr:hover td.pfs-col-player {
    background-color: #F0F5F8 !important;
  }
}

/* Roster Slots */
[data-theme="light"] .pfs-roster-slot {
  background-color: #F8FAFB;
  border: 1px solid #CBD8DE;
}

[data-theme="light"] .pfs-roster-slot.empty {
  background-color: #F1F5F8;
  border: 1px dashed #A4CCD4;
  color: #5E7280;
}

[data-theme="light"] .pfs-roster-slot.filled {
  background-color: #FFFFFF;
  border: 1px solid #A4CCD4;
}

[data-theme="light"] .pfs-roster-slot.active-target {
  border-color: #82A0BC;
  box-shadow: none;
}

/* Nomination Card */
[data-theme="light"] .pfs-nomination-card {
  background-color: #FFFFFF;
  border: 0;
  box-shadow: none;
}

[data-theme="light"] .pfs-nomination-card:hover {
  background-color: #F8FAFB;
  box-shadow: none;
}

[data-theme="light"] .pfs-nomination-card.selected {
  background-color: rgba(130, 160, 188, 0.12);
}

/* Turn Banner */
[data-theme="light"] .pfs-turn-banner {
  background-color: #FFFFFF;
  border: 0;
  border-left: 3px solid #26788E;
  box-shadow: none;
}

[data-theme="light"] .pfs-turn-banner.your-turn {
  border-left-color: #82A0BC;
  box-shadow: none;
}

/* Lobby Item */
[data-theme="light"] .pfs-lobby-item {
  background-color: #FFFFFF;
  border: 0;
  box-shadow: none;
}

[data-theme="light"] .pfs-lobby-item:hover {
  background-color: #F8FAFB;
  box-shadow: none;
}

/* Placards */
[data-theme="light"] .pfs-placard {
  background-color: #FFFFFF;
  border-color: #CBD8DE;
  box-shadow: none;
}

[data-theme="light"] .pfs-placard-empty {
  background-color: rgba(255, 255, 255, 0.65);
  border: 1px dashed #A4CCD4;
}

/* Brand Badge */
[data-theme="light"] .pfs-brand-badge {
  background-color: #82A0BC;
  color: #FFFFFF;
  box-shadow: none;
}

/* Alerts */
[data-theme="light"] .pfs-alert-danger {
  background-color: rgba(99, 27, 8, 0.08);
  border-color: #631B08;
  color: #631B08;
}

[data-theme="light"] .pfs-alert-info {
  background-color: rgba(38, 120, 142, 0.08);
  border-color: #26788E;
  color: #1D6072;
}

[data-theme="light"] .pfs-alert-cutoff {
  background-color: rgba(239, 68, 68, 0.08) !important;
  border: 1px solid var(--pfs-accent-danger, #631B08) !important;
  color: #000000 !important;
}

[data-theme="light"] .pfs-alert-cutoff svg {
  color: var(--pfs-accent-danger, #631B08) !important;
}

/* Modals & Menus */
[data-theme="light"] .modal-content {
  background-color: #FFFFFF;
  color: #111827;
  border: 1px solid #CBD8DE;
  box-shadow: 0 16px 36px rgba(48, 76, 100, 0.18);
}

[data-theme="light"] .dropdown-menu {
  background-color: #FFFFFF;
  border: 1px solid #CBD8DE;
  box-shadow: 0 8px 24px rgba(48, 76, 100, 0.12);
}

[data-theme="light"] .dropdown-item {
  color: #111827;
}

[data-theme="light"] .dropdown-item:hover {
  background-color: #F0F5F8;
  color: #26788E;
}

/* Mobile drawer */
[data-theme="light"] .mobile-menu-drawer {
  background-color: #FFFFFF;
  border-bottom: 2px solid #CBD8DE;
  box-shadow: 0 12px 28px rgba(48, 76, 100, 0.15);
}

[data-theme="light"] .mobile-menu-toggle {
  background-color: #FFFFFF;
  border: 1px solid #CBD8DE;
  color: #000000 !important;
}

[data-theme="light"] .mobile-menu-toggle svg {
  color: #000000 !important;
  stroke: #000000 !important;
}

/* ==========================================================================
   Day Game (Light Mode) Dashboard Component Overrides
   ========================================================================== */
[data-theme="light"] .pfs-status-banner {
  background: #E2E6E9 !important;
  border: 0 !important;
  box-shadow: none !important;
}

[data-theme="light"] .pfs-status-banner .pfs-banner-badge {
  background: rgba(53, 98, 122, 0.12) !important;
  color: #35627A !important;
  border: 1px solid #35627A !important;
}

[data-theme="light"] .pfs-status-banner .pfs-banner-text {
  color: #35627A !important;
}

[data-theme="light"] .pfs-status-banner .pfs-banner-status {
  color: #82A0BC !important;
}

[data-theme="light"] .pfs-matchup-empty-card {
  background: #E2E6E9 !important;
  border: 0 !important;
}

[data-theme="light"] .pfs-matchup-empty-card .pfs-empty-text {
  color: #35627A !important;
  font-weight: 600;
}

[data-theme="light"] .pfs-matchup-empty-card .pfs-empty-btn {
  color: #35627A !important;
  border-color: #35627A !important;
  background-color: #FFFFFF !important;
  font-weight: 600;
}

[data-theme="light"] .pfs-matchup-row {
  background: #E2E6E9 !important;
  border: 0 !important;
  box-shadow: none !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-title {
  color: #35627A !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-handle {
  color: #35627A !important;
  opacity: 0.8 !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-meta {
  color: #35627A !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-badge {
  background: rgba(53, 98, 122, 0.12) !important;
  color: #35627A !important;
  border: 1px solid #35627A !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-week {
  color: #35627A !important;
  font-weight: 500;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-dot {
  color: #35627A !important;
  opacity: 0.5;
}

[data-theme="light"] .pfs-matchup-row .pfs-status-final {
  color: #059669 !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-status-live {
  color: #d97706 !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-status-sched {
  color: #2563eb !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-score-my {
  color: #82A0BC !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-score-opp {
  color: #64748B !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-score-sep {
  color: #94A3B8 !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-score-lbl {
  color: #35627A !important;
  font-weight: 600;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-btn {
  color: #35627A !important;
  border-color: #35627A !important;
  background-color: #FFFFFF !important;
  font-weight: 600;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-btn:hover {
  background-color: #35627A !important;
  color: #FFFFFF !important;
}

/* Light mode form controls (Text inputs, textareas) */
[data-theme="light"] .form-control,
[data-theme="light"] .pfs-input,
[data-theme="light"] input.bg-dark,
[data-theme="light"] textarea.bg-dark {
  background-color: #FFFFFF !important;
  background-image: none !important;
  color: #111827 !important;
  border-color: #CBD8DE !important;
}

/* Light mode dropdown selects */
[data-theme="light"] .form-select,
[data-theme="light"] .pfs-select,
[data-theme="light"] select.bg-dark {
  background-color: #FFFFFF !important;
  color: #111827 !important;
  border-color: #CBD8DE !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23304C64' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.75rem center !important;
  background-size: 16px 12px !important;
}

[data-theme="light"] .form-select:focus,
[data-theme="light"] .pfs-select:focus,
[data-theme="light"] .form-control:focus,
[data-theme="light"] .pfs-input:focus,
[data-theme="light"] select.bg-dark:focus,
[data-theme="light"] input.bg-dark:focus {
  background-color: #FFFFFF !important;
  color: #111827 !important;
  border-color: #26788E !important;
  box-shadow: 0 0 0 0.25rem rgba(38, 120, 142, 0.2) !important;
}

[data-theme="light"] .form-select option,
[data-theme="light"] .pfs-select option,
[data-theme="light"] select option,
[data-theme="light"] select.bg-dark option {
  background-color: #FFFFFF !important;
  color: #111827 !important;
}

/* ==========================================================================
   Table & Grid Theme Styling (Dark Mode Default)
   ========================================================================== */
.table {
  --bs-table-color: var(--pfs-text-primary);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--pfs-border-subtle);
  --bs-table-hover-color: var(--pfs-text-primary);
  --bs-table-hover-bg: rgba(255, 255, 255, 0.04);
  color: var(--pfs-text-primary);
  border-color: var(--pfs-border-subtle);
}

.table> :not(caption)>*>* {
  background-color: var(--bs-table-bg);
  color: var(--bs-table-color);
  border-bottom-color: var(--bs-table-border-color);
}

.pfs-player-name {
  color: var(--pfs-accent-info, #38bdf8);
}

.pfs-score-neutral {
  color: var(--pfs-text-primary, #e6edf3);
}

.pagination .page-link {
  background-color: var(--pfs-bg-surface-elevated, #161b22);
  color: var(--pfs-text-primary, #e6edf3);
  border-color: var(--pfs-border-subtle, rgba(255, 255, 255, 0.1));
}

.pagination .page-link:hover {
  background-color: rgba(255, 255, 255, 0.08);
  color: #58a6ff;
  border-color: var(--pfs-border-default, rgba(255, 255, 255, 0.2));
}

.pagination .page-item.active .page-link {
  background-color: #38bdf8;
  border-color: #38bdf8;
  color: #0f172a;
  font-weight: 700;
}

.pagination .page-item.disabled .page-link {
  background-color: var(--pfs-bg-surface, #111822);
  color: var(--pfs-text-muted, #8b949e);
  border-color: var(--pfs-border-subtle, rgba(255, 255, 255, 0.05));
  opacity: 0.5;
}

/* ==========================================================================
   Table & Grid Theme Styling (Light Mode)
   ========================================================================== */
[data-theme="light"] .table {
  --bs-table-color: #111827;
  --bs-table-bg: #FFFFFF;
  --bs-table-border-color: #CBD8DE;
  --bs-table-hover-color: #111827;
  --bs-table-hover-bg: #EEF3F6;
  color: #111827 !important;
  border-color: #CBD8DE !important;
}

[data-theme="light"] .table> :not(caption)>*>* {
  color: #111827;
  border-bottom-color: #CBD8DE;
}

[data-theme="light"] .table thead th {
  color: #35627A !important;
  border-bottom: 2px solid #CBD8DE !important;
  font-weight: 700;
}

[data-theme="light"] .table tbody tr {
  color: #111827;
}

[data-theme="light"] .table-hover>tbody>tr:hover>* {
  background-color: #EEF3F6 !important;
  color: #111827 !important;
}

[data-theme="light"] table a.text-light {
  color: #111827 !important;
}

[data-theme="light"] table a.text-light:hover {
  color: #35627A !important;
}

/* Player Research Table Light Mode */
[data-theme="light"] .pfs-research-table-wrapper {
  background-color: #FFFFFF;
}

[data-theme="light"] .pfs-research-table {
  background-color: #FFFFFF !important;
  border-color: #CBD8DE !important;
}

[data-theme="light"] .pfs-research-table thead tr th {
  background-color: #F8FAFB !important;
  color: #35627A !important;
  border-bottom: 2px solid #CBD8DE !important;
}

[data-theme="light"] .pfs-research-table tbody tr {
  background-color: #FFFFFF !important;
  color: #111827 !important;
  border-bottom: 1px solid #E2E8EC !important;
}

[data-theme="light"] .pfs-research-table tbody tr:nth-child(even) {
  background-color: #F8FAFB !important;
}

[data-theme="light"] .pfs-research-table tbody tr:hover,
[data-theme="light"] .pfs-research-table tbody tr:hover>td {
  background-color: #EEF3F6 !important;
}

[data-theme="light"] .pfs-research-table td {
  color: #111827 !important;
  border-color: #E2E8EC !important;
}

[data-theme="light"] .pfs-research-table .pfs-player-name {
  color: #111827 !important;
  font-weight: 700;
}

[data-theme="light"] .pfs-research-table tbody tr:hover .pfs-player-name {
  color: #35627A !important;
}

[data-theme="light"] .pfs-research-table .pfs-score-neutral {
  color: #111827 !important;
}

[data-theme="light"] .pfs-research-table td .fw-semibold {
  color: #111827 !important;
}

[data-theme="light"] .pfs-research-table td .tabular-nums {
  color: #111827 !important;
}

[data-theme="light"] .pfs-research-table td span[style*="--pfs-accent-info"] {
  color: #304C64 !important;
}

/* Light Mode Sticky Column in Research View */
[data-theme="light"] .pfs-research-table th.pfs-col-player {
  background-color: #F8FAFB !important;
  border-right: 1px solid #CBD8DE !important;
  box-shadow: 4px 0 8px rgba(48, 76, 100, 0.08) !important;
}

[data-theme="light"] .pfs-research-table td.pfs-col-player {
  background-color: #FFFFFF !important;
  border-right: 1px solid #CBD8DE !important;
  box-shadow: 4px 0 8px rgba(48, 76, 100, 0.08) !important;
}

[data-theme="light"] .pfs-research-table tbody tr:nth-child(even) td.pfs-col-player {
  background-color: #F8FAFB !important;
}

[data-theme="light"] .pfs-research-table tbody tr:hover td.pfs-col-player {
  background-color: #EEF3F6 !important;
}

/* Light Mode Pagination */
[data-theme="light"] .pagination .page-link {
  background-color: #FFFFFF !important;
  color: #111827 !important;
  border-color: #CBD8DE !important;
}

[data-theme="light"] .pagination .page-link:hover {
  background-color: #F0F4F8 !important;
  color: #35627A !important;
  border-color: #35627A !important;
}

[data-theme="light"] .pagination .page-item.active .page-link {
  background-color: #35627A !important;
  border-color: #35627A !important;
  color: #FFFFFF !important;
  font-weight: 700;
}

[data-theme="light"] .pagination .page-item.disabled .page-link {
  background-color: #F8FAFB !important;
  color: #94A3B8 !important;
  border-color: #E2E8EC !important;
  opacity: 0.6;
}

/* ==========================================================================
   Theme-Adaptable Layout & Component Classes
   (Replaces hardcoded inline dark styles for seamless Light/Dark modes)
   ========================================================================== */

/* Draft HUD Sticky Header */
.pfs-draft-header {
  background-color: rgba(22, 27, 34, 0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--pfs-border-default);
}

[data-theme="light"] .pfs-draft-header {
  background-color: rgba(255, 255, 255, 0.95) !important;
  border-bottom: 1px solid #CBD8DE !important;
  box-shadow: 0 1px 3px rgba(48, 76, 100, 0.08);
}

[data-theme="light"] .pfs-draft-header .text-white,
[data-theme="light"] .pfs-draft-header .text-light {
  color: #111827 !important;
}

[data-theme="light"] .pfs-draft-header .text-secondary {
  color: #4B6375 !important;
}

[data-theme="light"] .pfs-draft-header .text-muted {
  color: #64748B !important;
}

/* Table Column & Tray Headers */
.pfs-table-header-bar {
  background-color: rgba(22, 27, 34, 0.95);
  border-bottom: 1px solid var(--pfs-border-default);
  color: var(--pfs-text-secondary);
}

[data-theme="light"] .pfs-table-header-bar {
  background-color: #F0F5F8 !important;
  border-bottom: 1px solid #CBD8DE !important;
  color: #35627A !important;
}

.pfs-tray-header {
  background-color: rgba(22, 27, 34, 0.95);
  border-bottom: 1px solid var(--pfs-border-default);
}

[data-theme="light"] .pfs-tray-header {
  background-color: #F8FAFB !important;
  border-bottom: 1px solid #CBD8DE !important;
}

/* Choose Player Nominee Card Header */
.pfs-choose-card-header {
  background: linear-gradient(180deg, rgba(22, 27, 34, 0.95) 0%, rgba(13, 17, 23, 0.8) 100%);
  border-bottom: 1px solid var(--pfs-border-default);
}

[data-theme="light"] .pfs-choose-card-header {
  background: linear-gradient(180deg, #FFFFFF 0%, #F0F4F8 100%) !important;
  border-bottom: 1px solid #CBD8DE !important;
}

[data-theme="light"] .pfs-choose-card-header .text-light,
[data-theme="light"] .pfs-choose-card-header .text-white {
  color: #111827 !important;
}

/* Schedule Table Header in Draft Choose View */
.pfs-schedule-table-header {
  background-color: rgba(13, 17, 23, 0.8);
  border-bottom: 1px solid var(--pfs-border-default);
  color: var(--pfs-text-secondary);
}

[data-theme="light"] .pfs-schedule-table-header {
  background-color: #F0F5F8 !important;
  border-bottom: 1px solid #CBD8DE !important;
  color: #35627A !important;
}

/* Informational Cards & Panels */
.pfs-rules-card {
  background-color: rgba(13, 17, 23, 0.5);
  border: 1px solid var(--pfs-border-subtle);
  color: var(--pfs-text-secondary);
}

[data-theme="light"] .pfs-rules-card {
  background-color: #F8FAFB !important;
  border: 1px solid #CBD8DE !important;
  color: #111827 !important;
}

[data-theme="light"] .pfs-rules-card .text-light,
[data-theme="light"] .pfs-rules-card .text-white {
  color: #111827 !important;
}

.pfs-challenge-card {
  background-color: rgba(13, 17, 23, 0.5);
  border: 1px solid var(--pfs-border-default);
}

[data-theme="light"] .pfs-challenge-card {
  background-color: #FFFFFF !important;
  border: 1px solid #CBD8DE !important;
  box-shadow: 0 1px 3px rgba(48, 76, 100, 0.05);
}

.pfs-sub-panel {
  background-color: rgba(13, 17, 23, 0.6);
  border: 1px solid var(--pfs-border-subtle);
}

[data-theme="light"] .pfs-sub-panel {
  background-color: #F8FAFB !important;
  border: 1px solid #CBD8DE !important;
  color: #111827 !important;
}

[data-theme="light"] .pfs-sub-panel .text-white,
[data-theme="light"] .pfs-sub-panel .text-light {
  color: #111827 !important;
}

.pfs-card-dashed {
  background-color: rgba(13, 17, 23, 0.4);
  border: 1px dashed var(--pfs-border-default);
}

[data-theme="light"] .pfs-card-dashed {
  background-color: #F8FAFB !important;
  border: 1px dashed #CBD8DE !important;
}

.pfs-card-highlight-green {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(22, 27, 34, 0.9) 100%);
}

[data-theme="light"] .pfs-card-highlight-green {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, #FFFFFF 100%) !important;
}

/* Copy Link / Invite Buttons */
.pfs-btn-copy {
  font-size: 0.6875rem;
  border: 1px solid var(--pfs-border-default);
  background-color: var(--pfs-bg-surface-elevated);
  color: var(--pfs-text-primary);
  transition: all 0.2s ease;
}

[data-theme="light"] .pfs-btn-copy {
  background-color: #FFFFFF !important;
  border-color: #CBD8DE !important;
  color: #111827 !important;
}

.pfs-btn-copy-default {
  color: #FFFFFF !important;
  background-color: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  transition: all 0.2s ease;
}

.pfs-btn-copy-default:hover {
  color: #FFFFFF !important;
  background-color: rgba(255, 255, 255, 0.16) !important;
  border-color: rgba(255, 255, 255, 0.45) !important;
}

[data-theme="light"] .pfs-btn-copy-default {
  color: #1E293B !important;
  background-color: #FFFFFF !important;
  border-color: #CBD5E1 !important;
}

[data-theme="light"] .pfs-btn-copy-default:hover {
  background-color: #F1F5F9 !important;
  border-color: #94A3B8 !important;
  color: #0F172A !important;
}

.pfs-btn-copy-success {
  border-color: rgba(16, 185, 129, 0.5) !important;
  background-color: rgba(16, 185, 129, 0.15) !important;
  color: #34d399 !important;
}

[data-theme="light"] .pfs-btn-copy-success {
  border-color: #10B981 !important;
  background-color: rgba(16, 185, 129, 0.1) !important;
  color: #047857 !important;
}

/* Status Banner (Home) */
.pfs-status-banner {
  background: linear-gradient(135deg, rgba(22, 27, 34, 0.95), rgba(13, 17, 23, 0.9));
}

[data-theme="light"] .pfs-status-banner {
  background: #FFFFFF !important;
  border-color: #CBD8DE !important;
}

[data-theme="light"] .pfs-status-banner .pfs-banner-text {
  color: #111827 !important;
}

/* Past Matchups Row (Home) */
.pfs-matchup-row {
  background: rgba(13, 17, 23, 0.75);
  border: 1px solid var(--pfs-border-default);
  transition: all 0.2s ease;
}

[data-theme="light"] .pfs-matchup-row {
  background: #F8FAFB !important;
  border: 1px solid #CBD8DE !important;
}

[data-theme="light"] .pfs-matchup-row:hover {
  background: #EEF3F6 !important;
  border-color: #35627A !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-title {
  color: #111827 !important;
}

[data-theme="light"] .pfs-matchup-row .pfs-matchup-handle {
  color: #4B6375 !important;
}

/* Helmet Preview Box (Settings) */
.pfs-helmet-preview-box {
  background: radial-gradient(circle at center, rgba(30, 58, 138, 0.25) 0%, rgba(15, 23, 42, 0.6) 100%), var(--pfs-bg-surface-elevated);
  border: 1px solid var(--pfs-border-default);
}

[data-theme="light"] .pfs-helmet-preview-box {
  background: radial-gradient(circle at center, rgba(53, 98, 122, 0.12) 0%, #FFFFFF 100%) !important;
  border: 1px solid #CBD8DE !important;
}

/* Danger Zone Card (Settings) */
.pfs-danger-zone-card {
  border: 1px solid rgba(239, 68, 68, 0.4);
  background: linear-gradient(180deg, rgba(239, 68, 68, 0.04) 0%, rgba(15, 23, 42, 0.6) 100%);
}

[data-theme="light"] .pfs-danger-zone-card {
  border: 1px solid rgba(239, 68, 68, 0.3) !important;
  background: linear-gradient(180deg, rgba(239, 68, 68, 0.03) 0%, #FFFFFF 100%) !important;
}

/* Modal Sub-navigation & Header/Footer */
.pfs-modal-subnav {
  background-color: rgba(15, 23, 42, 0.45);
  border-bottom: 1px solid var(--pfs-border-default);
}

[data-theme="light"] .pfs-modal-subnav {
  background-color: #F0F4F8 !important;
  border-bottom: 1px solid #CBD8DE !important;
}

.pfs-modal-header-accent {
  background: linear-gradient(180deg, rgba(245, 158, 11, 0.08) 0%, rgba(22, 27, 34, 0) 100%);
  border-bottom: 1px solid var(--pfs-border-subtle);
}

[data-theme="light"] .pfs-modal-header-accent {
  background: linear-gradient(180deg, rgba(245, 158, 11, 0.08) 0%, #FFFFFF 100%) !important;
  border-bottom: 1px solid #CBD8DE !important;
}

.pfs-modal-footer-bar {
  background-color: rgba(13, 17, 23, 0.4);
  border-top: 1px solid var(--pfs-border-subtle);
}

[data-theme="light"] .pfs-modal-footer-bar {
  background-color: #F8FAFB !important;
  border-top: 1px solid #CBD8DE !important;
  color: #4B6375 !important;
}

/* Player Card Row Hover in Light Mode */
[data-theme="light"] .pfs-player-card-row:hover {
  background-color: #F0F4F8 !important;
  border-color: #35627A !important;
}

/* Draft Placards Light Mode */
[data-theme="light"] .pfs-placard-empty-box {
  background-color: #F8FAFB !important;
  border-color: #CBD8DE !important;
}

[data-theme="light"] .pfs-placard-empty-box:hover {
  border-color: #35627A !important;
}

[data-theme="light"] .pfs-placard-filled-box {
  background: #FFFFFF !important;
  border-color: #10B981 !important;
  box-shadow: 0 2px 10px rgba(16, 185, 129, 0.12) !important;
}

[data-theme="light"] .pfs-placard-filled-box .text-light {
  color: #111827 !important;
}

[data-theme="light"] .pfs-placard-filled-box .text-muted {
  color: #64748B !important;
}

/* ==========================================================================
   Competing Rosters Table in Light Mode (Matchup View & Teams View)
   Matching the Research View Table Color Scheme
   ========================================================================== */

/* Competing Rosters Header Bar */
[data-theme="light"] .pfs-matchup-table-wrapper .pfs-table-header-bar,
[data-theme="light"] .pfs-matchup-grid.pfs-matchup-header {
  background-color: #F8FAFB !important;
  color: #35627A !important;
}

[data-theme="light"] .pfs-matchup-header,
[data-theme="light"] .pfs-matchup-header .text-muted,
[data-theme="light"] .pfs-matchup-header span,
[data-theme="light"] .pfs-matchup-header div {
  color: #35627A !important;
  font-weight: 700 !important;
}

/* Roster Rows: alternating rows matching the player table in research view */
[data-theme="light"] .pfs-roster-row {
  background-color: #FFFFFF !important;
  border: 1px solid #CBD8DE !important;
  box-shadow: 0 1px 3px rgba(48, 76, 100, 0.05);
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

[data-theme="light"] .d-flex.flex-column>.pfs-roster-row:nth-child(even),
[data-theme="light"] .pfs-roster-row:nth-child(even) {
  background-color: #F8FAFB !important;
}

[data-theme="light"] .pfs-roster-row:hover {
  background-color: #EEF3F6 !important;
  border-color: #35627A !important;
  box-shadow: 0 2px 6px rgba(53, 98, 122, 0.12);
}

/* Unfilled / Waiting Slots */
[data-theme="light"] .pfs-roster-row-unfilled {
  border: 1px dashed #CBD8DE !important;
  background-color: #F8FAFB !important;
}

[data-theme="light"] .pfs-roster-awaiting-slot {
  background-color: #F8FAFB !important;
  border: 1px dashed #CBD8DE !important;
  color: #64748B !important;
}

/* Player Name Typography */
[data-theme="light"] .pfs-roster-row .pfs-matchup-player-name,
[data-theme="light"] .pfs-roster-row p.fw-bold.text-light,
[data-theme="light"] .pfs-roster-row .fw-bold.text-light {
  color: #111827 !important;
  font-weight: 700 !important;
}

[data-theme="light"] .pfs-roster-row:hover .pfs-matchup-player-name,
[data-theme="light"] .pfs-roster-row:hover p.fw-bold.text-light {
  color: #35627A !important;
}

/* Team Abbreviation */
[data-theme="light"] .pfs-roster-row .text-light.fw-semibold,
[data-theme="light"] .pfs-roster-row span.text-light {
  color: #111827 !important;
}

/* Matchup / Opponent Game Info */
[data-theme="light"] .pfs-roster-row .pfs-matchup-game-info,
[data-theme="light"] .pfs-roster-row span[style*="--pfs-accent-info"] {
  color: #304C64 !important;
  font-weight: 600;
}

/* Schedule Info */
[data-theme="light"] .pfs-roster-row .pfs-matchup-schedule {
  color: #64748B !important;
}

[data-theme="light"] .pfs-roster-row .text-muted {
  color: #64748B !important;
}

/* Projected Score */
[data-theme="light"] .pfs-roster-row .pfs-matchup-proj,
[data-theme="light"] .pfs-roster-row .tabular-nums.font-monospace {
  color: #35627A !important;
  font-weight: 600;
}

/* Points Scored */
[data-theme="light"] .pfs-roster-row .pfs-matchup-pts {
  color: #ea580c !important;
  font-weight: 700;
}

/* Home (Orange) & Away (Blue) Scoring Differentiation in Light Mode */
[data-theme="light"] .pfs-pts-home,
[data-theme="light"] .pfs-roster-row .pfs-matchup-pts.pfs-pts-home,
[data-theme="light"] .pfs-matchup-scoreboard .pfs-score-digit.pfs-pts-home {
  color: #ea580c !important;
  /* Fiery Orange in Light Mode */
}

[data-theme="light"] .pfs-pts-away,
[data-theme="light"] .pfs-roster-row .pfs-matchup-pts.pfs-pts-away,
[data-theme="light"] .pfs-matchup-scoreboard .pfs-score-digit.pfs-pts-away {
  color: #0284c7 !important;
  /* Ocean Blue in Light Mode */
}

[data-theme="light"] .pfs-matchup-grid.pfs-matchup-header .pfs-pts-home-hdr,
[data-theme="light"] .pfs-matchup-header .pfs-pts-home-hdr,
[data-theme="light"] .pfs-matchup-header div.pfs-pts-home-hdr {
  color: #ea580c !important;
}

[data-theme="light"] .pfs-matchup-grid.pfs-matchup-header .pfs-pts-away-hdr,
[data-theme="light"] .pfs-matchup-header .pfs-pts-away-hdr,
[data-theme="light"] .pfs-matchup-header div.pfs-pts-away-hdr {
  color: #0284c7 !important;
}

/* Matchup Scoreboard Header Digits & Headings in Light Mode */
[data-theme="light"] .pfs-matchup-scoreboard .pfs-score-digit,
[data-theme="light"] .pfs-score-digit.text-light {
  color: #111827 !important;
}

[data-theme="light"] .pfs-matchup-scoreboard h4.text-light,
[data-theme="light"] .pfs-matchup-scoreboard .text-light {
  color: #111827 !important;
}

/* ==========================================================================
   PFS Standardized Utility System
   ========================================================================== */

/* Typography Scale */
.pfs-fs-3xs {
  font-size: 0.65rem !important;
}

.pfs-fs-2xs {
  font-size: 0.7rem !important;
}

.pfs-fs-xs {
  font-size: 0.75rem !important;
}

.pfs-fs-sm {
  font-size: 0.8125rem !important;
}

.pfs-fs-base {
  font-size: 0.875rem !important;
}

.pfs-fs-md {
  font-size: 1rem !important;
}

.pfs-fs-lg {
  font-size: 1.15rem !important;
}

.pfs-fs-xl {
  font-size: 1.5rem !important;
}

.pfs-fs-2xl {
  font-size: 1.85rem !important;
}

.pfs-fs-3xl {
  font-size: 2.25rem !important;
}

/* Tracking / Letter Spacing */
.pfs-tracking-tight {
  letter-spacing: -0.025em;
}

.pfs-tracking-normal {
  letter-spacing: normal;
}

.pfs-tracking-wide {
  letter-spacing: 0.05em;
}

.pfs-tracking-wider {
  letter-spacing: 0.08em;
}

.pfs-tracking-widest {
  letter-spacing: 0.12em;
}

/* Avatar Dimension Helpers */
.pfs-avatar-xs {
  width: 1.25rem;
  height: 1.25rem;
}

.pfs-avatar-sm {
  width: 1.75rem;
  height: 1.75rem;
}

.pfs-avatar-md {
  width: 2.25rem;
  height: 2.25rem;
}

.pfs-avatar-lg {
  width: 3rem;
  height: 3rem;
}

/* Spinner Utilities */
.pfs-spinner-lg {
  width: 2.5rem;
  height: 2.5rem;
}

/* Semantic Text Color Helpers */
.pfs-text-main {
  color: var(--pfs-text-primary) !important;
}

.pfs-text-sub {
  color: var(--pfs-text-secondary) !important;
}

.pfs-text-hint {
  color: var(--pfs-text-muted) !important;
}

.pfs-text-accent {
  color: var(--pfs-accent-primary) !important;
}

.pfs-text-info {
  color: var(--pfs-accent-info) !important;
}

/* Semantic Border & Divider Helpers */
.pfs-border-default {
  border-color: var(--pfs-border-default) !important;
}

.pfs-border-subtle {
  border-color: var(--pfs-border-subtle) !important;
}

.pfs-divider {
  border-color: var(--pfs-border-default) !important;
}

.pfs-divider-subtle {
  border-color: var(--pfs-border-subtle) !important;
}

/* Semantic Badges */
.pfs-badge-neutral {
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--pfs-border-default);
  color: var(--pfs-text-secondary);
}

[data-theme="light"] .pfs-badge-neutral {
  background-color: rgba(0, 0, 0, 0.05);
  border: 1px solid var(--pfs-border-default);
  color: var(--pfs-text-secondary);
}

.pfs-badge-host {
  background-color: rgba(245, 158, 11, 0.15);
  color: #fde68a;
  border: 1px solid rgba(245, 158, 11, 0.35);
}

[data-theme="light"] .pfs-badge-host {
  background-color: rgba(217, 119, 6, 0.12);
  color: #b45309;
  border: 1px solid rgba(217, 119, 6, 0.3);
}

.pfs-badge-guest {
  background-color: rgba(14, 165, 233, 0.15);
  color: #7dd3fc;
  border: 1px solid rgba(14, 165, 233, 0.35);
}

[data-theme="light"] .pfs-badge-guest {
  background-color: rgba(2, 132, 199, 0.12);
  color: #0369a1;
  border: 1px solid rgba(2, 132, 199, 0.3);
}

.pfs-badge-private {
  background-color: rgba(168, 85, 247, 0.15);
  color: #c084fc;
  border: 1px solid rgba(168, 85, 247, 0.35);
}

[data-theme="light"] .pfs-badge-private {
  background-color: rgba(147, 51, 234, 0.12);
  color: #7e22ce;
  border: 1px solid rgba(147, 51, 234, 0.3);
}

.pfs-badge-public {
  background-color: rgba(56, 189, 248, 0.15);
  color: #38bdf8;
  border: 1px solid rgba(56, 189, 248, 0.3);
}

[data-theme="light"] .pfs-badge-public {
  background-color: rgba(2, 132, 199, 0.12);
  color: #0284c7;
  border: 1px solid rgba(2, 132, 199, 0.3);
}

/* Pulse Dots */
.pfs-pulse-dot {
  display: inline-block;
  border-radius: 50%;
}

.pfs-pulse-dot-sm {
  width: 5px;
  height: 5px;
}

.pfs-pulse-dot-md {
  width: 7px;
  height: 7px;
}

.pfs-pulse-amber {
  background-color: var(--pfs-accent-amber);
  box-shadow: none;
}

.pfs-pulse-green {
  background-color: var(--pfs-accent-primary);
  box-shadow: none;
}

/* Matchups Archive Table Styling */
.pfs-matchups-table {
  background-color: transparent !important;
  border-color: var(--pfs-border-subtle) !important;
}

.pfs-matchups-table>thead>tr {
  color: var(--pfs-text-muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  border-bottom: 2px solid var(--pfs-border-subtle);
  user-select: none;
}

.pfs-matchups-table>tbody>tr {
  border-color: var(--pfs-border-subtle);
  background-color: transparent;
  color: var(--pfs-text-primary);
}

.pfs-matchups-table>tbody>tr:hover {
  background-color: var(--pfs-bg-hover);
}

[data-theme="light"] .pfs-matchups-table>thead>tr {
  background-color: var(--pfs-bg-surface-elevated);
  color: var(--pfs-text-secondary);
}

[data-theme="light"] .pfs-matchups-table>tbody>tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, 0.015);
}

[data-theme="light"] .pfs-matchups-table>tbody>tr:hover {
  background-color: rgba(59, 130, 246, 0.05);
}

/* ==========================================================================
   Comprehensive NFL Injury Status Badges & Markers
   ========================================================================== */
.pfs-badge-injury {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--bs-font-monospace, monospace);
  font-weight: 800;
  font-size: 0.625rem;
  line-height: 1;
  padding: 2px 4px;
  border-radius: var(--pfs-radius-sm);
  margin-left: 0.35rem;
  vertical-align: middle;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  user-select: none;
  cursor: help;
}

/* OUT: High alert crimson/red */
.pfs-badge-injury-out {
  background: rgba(239, 68, 68, 0.18);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.45);
  box-shadow: none;
}
[data-theme="light"] .pfs-badge-injury-out {
  background: rgba(220, 38, 38, 0.12);
  color: #b91c1c;
  border-color: rgba(220, 38, 38, 0.45);
}

/* Questionable: Classic Amber / Golden-Orange */
.pfs-badge-injury-q {
  background: rgba(245, 158, 11, 0.2);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.5);
}
[data-theme="light"] .pfs-badge-injury-q {
  background: rgba(217, 119, 6, 0.12);
  color: #b45309;
  border-color: rgba(217, 119, 6, 0.4);
}

/* Doubtful: Deep Vivid Orange */
.pfs-badge-injury-d {
  background: rgba(249, 115, 22, 0.2);
  color: #f97316;
  border: 1px solid rgba(249, 115, 22, 0.5);
}
[data-theme="light"] .pfs-badge-injury-d {
  background: rgba(234, 88, 12, 0.12);
  color: #c2410c;
  border-color: rgba(234, 88, 12, 0.4);
}

/* IR / Reserve: Maroon / Brick Red */
.pfs-badge-injury-ir {
  background: rgba(185, 28, 28, 0.25);
  color: #fca5a5;
  border: 1px solid rgba(239, 68, 68, 0.55);
}
[data-theme="light"] .pfs-badge-injury-ir {
  background: rgba(185, 28, 28, 0.12);
  color: #991b1b;
  border-color: rgba(185, 28, 28, 0.4);
}

/* PUP: Purple / Violet */
.pfs-badge-injury-pup {
  background: rgba(168, 85, 247, 0.2);
  color: #c084fc;
  border: 1px solid rgba(168, 85, 247, 0.5);
}
[data-theme="light"] .pfs-badge-injury-pup {
  background: rgba(147, 51, 234, 0.12);
  color: #7e22ce;
  border-color: rgba(147, 51, 234, 0.4);
}

/* Suspended: Slate / Indigo */
.pfs-badge-injury-sus {
  background: rgba(99, 102, 241, 0.2);
  color: #a5b4fc;
  border: 1px solid rgba(99, 102, 241, 0.5);
}
[data-theme="light"] .pfs-badge-injury-sus {
  background: rgba(79, 70, 229, 0.12);
  color: #4338ca;
  border-color: rgba(79, 70, 229, 0.4);
}

/* Other / Generic designations */
.pfs-badge-injury-other {
  background: rgba(148, 163, 184, 0.2);
  color: #cbd5e1;
  border: 1px solid rgba(148, 163, 184, 0.4);
}
[data-theme="light"] .pfs-badge-injury-other {
  background: rgba(100, 116, 139, 0.12);
  color: #475569;
  border-color: rgba(100, 116, 139, 0.4);
}

/* Legacy Questionable marker fallback */
span.pfs-badge-injury-q:not(.pfs-badge-injury) {
  display: inline-block;
  font-family: inherit;
  font-weight: 800;
  font-size: 0.75rem;
  line-height: 1;
  color: #ef4444;
  margin-left: 0.35rem;
  vertical-align: baseline;
  letter-spacing: normal;
  user-select: none;
}
[data-theme="light"] span.pfs-badge-injury-q:not(.pfs-badge-injury) {
  color: #dc2626;
}

/* Injury detail card inside Player Card modal */
.pfs-injury-detail-panel {
  border-left: 3px solid #ef4444 !important;
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.06) 0%, transparent 100%) !important;
}
[data-theme="light"] .pfs-injury-detail-panel {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.04) 0%, #ffffff 100%) !important;
}

/* ==========================================================================
   Modal Close Button (X in Corner of Player Cards & Modals)
   Ensure the 'X' is crisp white in dark mode and legible dark in light mode
   ========================================================================== */
:root:not([data-theme="light"]) .btn-close,
[data-theme="dark"] .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
  opacity: 0.85;
}

:root:not([data-theme="light"]) .btn-close:hover,
[data-theme="dark"] .btn-close:hover {
  filter: invert(1) grayscale(100%) brightness(200%);
  opacity: 1;
}

:root:not([data-theme="light"]) .btn-close:focus,
[data-theme="dark"] .btn-close:focus {
  filter: invert(1) grayscale(100%) brightness(200%);
  opacity: 1;
  box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.25);
}

[data-theme="light"] .btn-close:not(.btn-close-white) {
  filter: none;
  opacity: 0.6;
}

[data-theme="light"] .btn-close:not(.btn-close-white):hover {
  filter: none;
  opacity: 0.9;
}

/* ==========================================================================
   What is PFS Link (Guest Landing / About link)
   ========================================================================== */
.pfs-about-pulse-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--pfs-accent-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 0.15rem 0.35rem;
  border-radius: var(--pfs-radius-sm);
}

.pfs-about-pulse-link:hover {
  color: var(--pfs-accent-primary-hover);
  text-decoration: underline;
}

[data-theme="light"] .pfs-about-pulse-link {
  color: #82A0BC;
}

[data-theme="light"] .pfs-about-pulse-link:hover {
  color: #6B8BA9;
}

/* ==========================================================================
   Dev Environment Fast-Pass Callout Box (RegisterConfirmation & ForgotPassword)
   ========================================================================== */
.pfs-dev-fastpass {
  background: rgba(30, 58, 138, 0.25);
  border: 1px solid #3b82f6;
  border-radius: var(--pfs-radius-md);
}

.pfs-dev-fastpass .pfs-dev-fastpass-title {
  color: #93c5fd;
  font-size: 0.875rem;
  font-weight: 600;
}

.pfs-dev-fastpass .pfs-dev-fastpass-text {
  font-size: 0.8125rem;
  color: #bfdbfe;
  line-height: 1.5;
}

.pfs-dev-fastpass .pfs-dev-fastpass-text strong {
  color: #ffffff;
}

/* Light Mode: High-contrast compatible background and crisp dark/black text */
[data-theme="light"] .pfs-dev-fastpass {
  background-color: #EBF5FA !important;
  border: 1px solid #7DD3FC !important;
  box-shadow: none;
}

[data-theme="light"] .pfs-dev-fastpass .pfs-dev-fastpass-title {
  color: #0369A1 !important;
}

[data-theme="light"] .pfs-dev-fastpass .pfs-dev-fastpass-text {
  color: #0F172A !important;
}

[data-theme="light"] .pfs-dev-fastpass .pfs-dev-fastpass-text strong {
  color: #000000 !important;
}

/* ==========================================================================
   PFS Scoring Details Button (De-pilled, crisp utility button)
   ========================================================================== */
.pfs-scoring-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.2rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  border-radius: var(--pfs-radius-sm);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  line-height: 1.25;
  transition: background-color 0.12s ease, border-color 0.12s ease;
  color: var(--pfs-text-secondary) !important;
  background-color: var(--pfs-bg-surface-elevated) !important;
  border: 1px solid var(--pfs-border-default) !important;
}

.pfs-scoring-pill svg {
  color: var(--pfs-accent-primary) !important;
  flex-shrink: 0;
}

.pfs-scoring-pill:hover {
  background-color: var(--pfs-border-default) !important;
  border-color: var(--pfs-text-muted) !important;
  color: var(--pfs-text-primary) !important;
  box-shadow: none !important;
}

[data-theme="light"] .pfs-scoring-pill,
:root[data-theme="light"] .pfs-scoring-pill {
  color: #304C64 !important;
  background-color: #F8FAFB !important;
  border: 1px solid #CBD8DE !important;
}

[data-theme="light"] .pfs-scoring-pill svg,
:root[data-theme="light"] .pfs-scoring-pill svg {
  color: #82A0BC !important;
}

[data-theme="light"] .pfs-scoring-pill:hover,
:root[data-theme="light"] .pfs-scoring-pill:hover {
  background-color: #EEF3F6 !important;
  border-color: #304C64 !important;
  color: #111827 !important;
  box-shadow: none !important;
}


/* Route-level visual system */
.pfs-page-home,
.pfs-page-matchups,
.pfs-page-matchup-detail,
.pfs-page-research,
.pfs-page-rules,
.pfs-page-settings,
.pfs-page-admin,
.pfs-page-lobby {
  padding-block: clamp(1.5rem, 4vw, 3rem) !important;
}

.pfs-page-home,
.pfs-page-matchups,
.pfs-page-matchup-detail,
.pfs-page-research,
.pfs-page-rules,
.pfs-page-settings,
.pfs-page-admin,
.pfs-page-lobby,
.pfs-page-predraft,
.pfs-page-draft-board {
  --pfs-page-shadow: none;
}

.pfs-page-home h1,
.pfs-page-home h2,
.pfs-page-matchups h1,
.pfs-page-matchups h2,
.pfs-page-matchup-detail h1,
.pfs-page-matchup-detail h2,
.pfs-page-research h1,
.pfs-page-research h2,
.pfs-page-rules h1,
.pfs-page-rules h2,
.pfs-page-settings h1,
.pfs-page-settings h2,
.pfs-page-admin h1,
.pfs-page-admin h2,
.pfs-page-lobby h1,
.pfs-page-lobby h2 {
  letter-spacing: -0.025em;
  line-height: 1.15;
}

.pfs-card,
.pfs-card-elevated,
.page-section,
.pfs-challenge-card,
.pfs-tile-spotlight-gold,
.pfs-tile-spotlight-blue,
.pfs-tile-spotlight-green,
.pfs-status-banner,
.pfs-matchup-empty-card,
.pfs-card-dashed,
.pfs-lobby-item,
.pfs-matchup-row,
.pfs-nomination-card,
.pfs-turn-banner,
.pfs-matchup-scoreboard {
  border: 0 !important;
  box-shadow: none !important;
}

.pfs-tile-spotlight-gold {
  background: transparent !important;
}

/* Reduce nested box-in-a-box clutter for sub-panels and rule cards */
.pfs-sub-panel,
.pfs-rules-card {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent;
  box-shadow: none;
  padding-left: 0 !important;
}

.pfs-card,
.pfs-card-elevated,
.page-section,
.pfs-challenge-card,
.pfs-card-dashed {
  border-radius: var(--pfs-radius-md);
}

.pfs-card-highlight-green {
  background: var(--pfs-bg-surface);
  border: 0 !important;
}

.pfs-btn-primary,
.pfs-btn-info,
.pfs-btn-danger,
.pfs-btn-amber,
.pfs-btn-secondary,
.pfs-btn-outline-danger,
.btn-primary,
.btn-secondary,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-info,
.btn-outline-success,
.btn-outline-light,
.btn-outline-warning,
.btn-outline-danger {
  box-shadow: none;
}

.pfs-btn-primary:not(:disabled):not([disabled]):not(.disabled),
.btn-primary:not(:disabled):not([disabled]):not(.disabled) {
  background: var(--pfs-accent-primary) !important;
  border: 1px solid var(--pfs-accent-primary) !important;
}

.pfs-btn-primary:hover:not(:disabled):not([disabled]):not(.disabled),
.btn-primary:hover:not(:disabled):not([disabled]):not(.disabled) {
  background: var(--pfs-accent-primary-hover) !important;
  border-color: var(--pfs-accent-primary-hover) !important;
  box-shadow: none;
}

.pfs-btn-gleam::before {
  display: none;
}

.pfs-btn-gleam-green:not(:disabled):not([disabled]):not(.disabled),
.pfs-btn-primary.pfs-btn-gleam:not(:disabled):not([disabled]):not(.disabled),
.pfs-btn-gleam-blue:not(:disabled):not([disabled]):not(.disabled),
.pfs-btn-info.pfs-btn-gleam:not(:disabled):not([disabled]):not(.disabled) {
  background: var(--pfs-accent-primary) !important;
  border-color: var(--pfs-accent-primary) !important;
  color: #fff !important;
}

.pfs-btn-gleam-green:hover:not(:disabled):not([disabled]):not(.disabled),
.pfs-btn-primary.pfs-btn-gleam:hover:not(:disabled):not([disabled]):not(.disabled),
.pfs-btn-gleam-blue:hover:not(:disabled):not([disabled]):not(.disabled),
.pfs-btn-info.pfs-btn-gleam:hover:not(:disabled):not([disabled]):not(.disabled) {
  background: var(--pfs-accent-primary-hover) !important;
  border-color: var(--pfs-accent-primary-hover) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.pfs-btn-secondary,
.btn-secondary,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-info,
.btn-outline-success,
.btn-outline-light,
.btn-outline-warning {
  background: var(--pfs-bg-surface-elevated) !important;
  border: 1px solid var(--pfs-border-default) !important;
  color: var(--pfs-text-primary) !important;
}

.pfs-btn-secondary:hover:not(:disabled),
.btn-secondary:hover,
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-info:hover,
.btn-outline-success:hover,
.btn-outline-light:hover,
.btn-outline-warning:hover {
  background: rgba(124, 142, 163, 0.2) !important;
  border-color: var(--pfs-text-muted) !important;
  color: var(--pfs-text-primary) !important;
}

.btn-outline-danger,
.pfs-btn-outline-danger {
  background: transparent !important;
  border: 1px solid rgba(196, 77, 63, 0.5) !important;
  color: var(--pfs-accent-danger) !important;
}

.btn-outline-danger:hover,
.pfs-btn-outline-danger:hover:not(:disabled) {
  background: rgba(196, 77, 63, 0.14) !important;
  border-color: var(--pfs-accent-danger) !important;
}

.pfs-btn-info,
.pfs-btn-amber {
  background: var(--pfs-accent-secondary);
  border: 1px solid var(--pfs-accent-secondary) !important;
  color: #fff !important;
}

.pfs-google-btn {
  background: var(--pfs-bg-surface-elevated);
  color: var(--pfs-text-primary);
  border: 1px solid var(--pfs-border-default);
  border-radius: var(--pfs-radius-sm);
  box-shadow: none;
  font-size: 0.95rem;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.pfs-google-btn:hover {
  background: var(--pfs-bg-surface);
  border-color: var(--pfs-text-muted);
  color: var(--pfs-text-primary);
  box-shadow: none;
}

.pfs-page-home .pfs-tile-spotlight,
.pfs-page-lobby .pfs-tile-spotlight {
  border: 0 !important;
  box-shadow: none !important;
}

.pfs-page-home .pfs-tile-spotlight:hover,
.pfs-page-lobby .pfs-tile-spotlight:hover {
  border: 0 !important;
  box-shadow: none !important;
}

.pfs-page-matchups .pfs-matchups-table,
.pfs-page-matchup-detail .pfs-matchup-table-wrapper,
.pfs-page-research .pfs-research-table-wrapper {
  border-radius: var(--pfs-radius-sm);
  border: 0 !important;
  box-shadow: none;
  overflow: hidden;
}

.pfs-page-research .pfs-research-table th {
  background: var(--pfs-bg-surface-elevated);
  color: var(--pfs-text-secondary);
  font-weight: 700;
}

.pfs-page-research .pfs-research-table tbody tr:hover,
.pfs-page-matchups .pfs-matchups-table > tbody > tr:hover {
  background-color: rgba(124, 142, 163, 0.08);
}

.pfs-page-admin .pfs-divider-subtle {
  border-color: var(--pfs-border-subtle) !important;
}

.pfs-page-admin .btn:not(.pfs-btn-primary) {
  box-shadow: none;
}

.pfs-page-predraft .pfs-draft-header,
.pfs-page-draft-board .pfs-draft-header {
  background: var(--pfs-bg-surface);
  border: 0 !important;
  box-shadow: none;
}

.pfs-page-predraft .pfs-roster-slot,
.pfs-page-draft-board .pfs-roster-slot {
  border-radius: var(--pfs-radius-sm);
}

[data-theme="light"] .pfs-card,
[data-theme="light"] .pfs-card-elevated,
[data-theme="light"] .page-section,
[data-theme="light"] .pfs-challenge-card,
[data-theme="light"] .pfs-tile-spotlight-gold,
[data-theme="light"] .pfs-tile-spotlight-blue,
[data-theme="light"] .pfs-tile-spotlight-green,
[data-theme="light"] .pfs-status-banner,
[data-theme="light"] .pfs-matchup-empty-card,
[data-theme="light"] .pfs-card-dashed,
[data-theme="light"] .pfs-lobby-item,
[data-theme="light"] .pfs-matchup-row,
[data-theme="light"] .pfs-nomination-card,
[data-theme="light"] .pfs-turn-banner,
[data-theme="light"] .pfs-matchup-scoreboard {
  border: 0 !important;
  box-shadow: none !important;
}

[data-theme="light"] .pfs-tile-spotlight-gold {
  background: transparent !important;
}

[data-theme="light"] .pfs-sub-panel,
[data-theme="light"] .pfs-rules-card {
  border: 0 !important;
  box-shadow: none;
}

[data-theme="light"] .pfs-card-highlight-green {
  background: #fff !important;
  border: 0 !important;
}

[data-theme="light"] .pfs-btn-secondary,
[data-theme="light"] .btn-secondary,
[data-theme="light"] .btn-outline-primary,
[data-theme="light"] .btn-outline-secondary,
[data-theme="light"] .btn-outline-info,
[data-theme="light"] .btn-outline-success,
[data-theme="light"] .btn-outline-light,
[data-theme="light"] .btn-outline-warning {
  background: #ffffff !important;
  border: 1px solid var(--pfs-border-default) !important;
  color: #304c64 !important;
}

[data-theme="light"] .pfs-btn-secondary:hover:not(:disabled),
[data-theme="light"] .btn-secondary:hover,
[data-theme="light"] .btn-outline-primary:hover,
[data-theme="light"] .btn-outline-secondary:hover,
[data-theme="light"] .btn-outline-info:hover,
[data-theme="light"] .btn-outline-success:hover,
[data-theme="light"] .btn-outline-light:hover,
[data-theme="light"] .btn-outline-warning:hover {
  background: #edf2f6 !important;
  border-color: #7c8ea3 !important;
  color: #24384e !important;
}

[data-theme="light"] .btn-outline-danger,
[data-theme="light"] .pfs-btn-outline-danger {
  background: transparent !important;
  border: 1px solid rgba(158, 36, 16, 0.45) !important;
  color: #631b08 !important;
}

[data-theme="light"] .btn-outline-danger:hover,
[data-theme="light"] .pfs-btn-outline-danger:hover:not(:disabled) {
  background: rgba(99, 27, 8, 0.1) !important;
  border-color: #631b08 !important;
}

[data-theme="light"] .pfs-page-research .pfs-research-table th {
  background: #f3f6f8;
}

[data-theme="light"] .pfs-page-research .pfs-research-table tbody tr:hover,
[data-theme="light"] .pfs-page-matchups .pfs-matchups-table > tbody > tr:hover {
  background-color: rgba(48, 76, 100, 0.05);
}

[data-theme="light"] .pfs-page-predraft .pfs-draft-header,
[data-theme="light"] .pfs-page-draft-board .pfs-draft-header {
  background: #ffffff;
  border: 0 !important;
  box-shadow: none;
}

[data-theme="light"] .pfs-google-btn {
  background: #ffffff;
  border: 1px solid var(--pfs-border-default);
  box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
  .pfs-page-home .pfs-tile-spotlight,
  .pfs-page-lobby .pfs-tile-spotlight,
  .pfs-page-home .pfs-tile-spotlight:hover,
  .pfs-page-lobby .pfs-tile-spotlight:hover {
    transition: none;
    transform: none;
  }
}

/* Player research page */
.pfs-page-research .pfs-research-header {
  position: relative;
  isolation: isolate;
  padding-left: 1.5rem !important;
  background: var(--pfs-bg-surface);
  border: 0 !important;
}

.pfs-page-research .pfs-research-header::before {
  display: none;
}

.pfs-page-research .pfs-research-title {
  color: var(--pfs-text-primary);
  font-size: clamp(1.45rem, 3vw, 2rem);
  letter-spacing: -0.035em;
}

.pfs-page-research .pfs-research-intro {
  max-width: 48rem;
  color: var(--pfs-text-muted);
  font-size: 0.925rem;
  line-height: 1.6;
}

.pfs-page-research .pfs-research-panel {
  padding: clamp(1rem, 2.5vw, 1.5rem) !important;
}

.pfs-page-research .pfs-research-toolbar {
  min-height: 2.5rem;
}

.pfs-page-research .pfs-research-toolbar h5 {
  color: var(--pfs-text-primary);
  font-size: 1rem;
  letter-spacing: -0.015em;
}

.pfs-page-research .pfs-research-position-filters {
  padding: 0.75rem 0;
}

.pfs-page-research .pfs-research-filter {
  border: 1px solid var(--pfs-border-default) !important;
  border-radius: var(--pfs-radius-sm) !important;
  box-shadow: none;
  font-size: 0.78rem;
  font-weight: 650;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.pfs-page-research .pfs-research-filter:not(.btn-primary) {
  background: var(--pfs-bg-surface-elevated) !important;
  color: var(--pfs-text-secondary) !important;
}

.pfs-page-research .pfs-research-filter:not(.btn-primary):hover {
  background: rgba(124, 142, 163, 0.2) !important;
  border-color: var(--pfs-text-muted) !important;
  color: var(--pfs-text-primary) !important;
}

.pfs-page-research .pfs-research-filter.btn-primary {
  background: var(--pfs-accent-primary) !important;
  border-color: var(--pfs-accent-primary) !important;
  color: #fff !important;
  box-shadow: none;
}

.pfs-page-research .pfs-research-query-row {
  margin-top: 0.25rem;
}

.pfs-page-research .pfs-research-search {
  width: min(100%, 24rem);
}

.pfs-page-research .pfs-player-search-input {
  width: 100%;
  min-height: 2.5rem;
  padding: 0.5rem 2.25rem 0.5rem 0.75rem !important;
  border: 1px solid var(--pfs-border-default) !important;
  border-radius: var(--pfs-radius-sm) !important;
  background: var(--pfs-bg-canvas) !important;
  font-size: 0.875rem !important;
  transition: border-color 0.15s ease;
}

.pfs-page-research .pfs-player-search-input:focus {
  width: 100%;
  background: var(--pfs-bg-surface-elevated) !important;
  border-color: var(--pfs-accent-primary) !important;
  box-shadow: none !important;
}

.pfs-page-research #weekSelect {
  min-height: 2.25rem;
  border: 1px solid var(--pfs-border-default) !important;
  border-radius: var(--pfs-radius-sm) !important;
  background-color: var(--pfs-bg-canvas) !important;
  font-size: 0.8125rem !important;
}

.pfs-page-research .pfs-research-table-wrapper {
  border-radius: var(--pfs-radius-sm);
  background: var(--pfs-bg-surface);
  overflow-x: auto !important;
  overflow-y: hidden;
}

.pfs-page-research .pfs-research-table {
  min-width: 720px;
  background: transparent !important;
  color: var(--pfs-text-primary);
}

.pfs-page-research .pfs-research-table thead tr {
  color: var(--pfs-text-muted);
  font-size: 0.7rem;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  user-select: none;
}

.pfs-page-research .pfs-research-table thead th {
  padding: 0.75rem 0.8rem;
  border: 0 !important;
  border-bottom: 1px solid var(--pfs-border-default) !important;
  background: var(--pfs-bg-surface-elevated) !important;
  color: var(--pfs-text-muted) !important;
  font-size: inherit;
  font-weight: 700;
  white-space: nowrap;
}

.pfs-page-research .pfs-research-table thead th[onclick],
.pfs-page-research .pfs-research-table tbody tr[onclick] {
  cursor: pointer;
}

.pfs-page-research .pfs-research-player-row {
  cursor: pointer;
}

.pfs-page-research .pfs-research-table tbody tr,
.pfs-page-research .pfs-research-table tbody tr:nth-child(even) {
  background: transparent !important;
  color: var(--pfs-text-primary) !important;
}

.pfs-page-research .pfs-research-table tbody tr:hover,
.pfs-page-research .pfs-research-table tbody tr:hover > td {
  background: rgba(124, 142, 163, 0.09) !important;
}

.pfs-page-research .pfs-research-table tbody td {
  padding: 0.65rem 0.8rem;
  border-color: var(--pfs-border-subtle) !important;
  color: var(--pfs-text-secondary) !important;
  font-size: 0.875rem;
  white-space: nowrap;
}

.pfs-page-research .pfs-research-table .pfs-col-player {
  min-width: 220px;
}

.pfs-page-research .pfs-research-table .pfs-player-avatar {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: var(--pfs-radius-sm);
  object-fit: cover;
  background: var(--pfs-bg-surface-elevated);
  border: 1px solid var(--pfs-border-subtle);
  box-shadow: none;
}

.pfs-page-research .pfs-research-table .pfs-player-name {
  color: var(--pfs-text-primary);
  text-decoration: none;
  text-underline-offset: 3px;
}

.pfs-page-research .pfs-research-player-row:hover .pfs-player-name {
  text-decoration: underline;
}

.pfs-page-research .pfs-research-team {
  color: var(--pfs-text-secondary);
}

.pfs-page-research .pfs-research-matchup {
  color: var(--pfs-accent-info);
  font-size: 0.875rem;
}

.pfs-page-research .pfs-research-projection {
  color: var(--pfs-accent-primary) !important;
}

.pfs-page-research .pfs-research-empty {
  color: var(--pfs-text-muted) !important;
}

.pfs-page-research .pagination .page-link {
  min-width: 2rem;
  border: 1px solid var(--pfs-border-default) !important;
  border-radius: var(--pfs-radius-sm) !important;
  background: var(--pfs-bg-surface-elevated) !important;
  color: var(--pfs-text-secondary) !important;
  box-shadow: none;
}

.pfs-page-research .pagination .page-link:hover {
  background: rgba(124, 142, 163, 0.2) !important;
}

.pfs-page-research .pagination .page-item.active .page-link {
  background: var(--pfs-accent-primary) !important;
  border-color: var(--pfs-accent-primary) !important;
  color: #fff !important;
}

.pfs-page-research .pagination .page-item.disabled .page-link {
  opacity: 0.45;
}

[data-theme="light"] .pfs-page-research .pfs-research-header {
  background: #fff;
}

[data-theme="light"] .pfs-page-research .pfs-research-filter:not(.btn-primary),
[data-theme="light"] .pfs-page-research .pfs-player-search-input,
[data-theme="light"] .pfs-page-research #weekSelect {
  background: #ffffff !important;
  border-color: var(--pfs-border-default) !important;
  color: #304c64 !important;
}

[data-theme="light"] .pfs-page-research .pfs-research-filter:not(.btn-primary):hover {
  background: #edf2f6 !important;
}

[data-theme="light"] .pfs-page-research .pfs-player-search-input:focus {
  background: #fff !important;
  border-color: var(--pfs-accent-primary) !important;
}

[data-theme="light"] .pfs-page-research .pfs-research-table-wrapper {
  background: #fff;
}

[data-theme="light"] .pfs-page-research .pfs-research-table thead th {
  border-bottom-color: var(--pfs-border-default) !important;
  background: #f5f7f9 !important;
  color: #5e7280 !important;
}

[data-theme="light"] .pfs-page-research .pfs-research-table tbody tr,
[data-theme="light"] .pfs-page-research .pfs-research-table tbody tr:nth-child(even) {
  background: transparent !important;
  color: #304c64 !important;
}

[data-theme="light"] .pfs-page-research .pfs-research-table tbody tr:hover,
[data-theme="light"] .pfs-page-research .pfs-research-table tbody tr:hover > td {
  background: rgba(48, 76, 100, 0.045) !important;
}

[data-theme="light"] .pfs-page-research .pfs-research-table tbody td {
  border-color: rgba(48, 76, 100, 0.08) !important;
  color: #304c64 !important;
}

[data-theme="light"] .pfs-page-research .pfs-research-table .pfs-player-name {
  color: #111827 !important;
}

[data-theme="light"] .pfs-page-research .pfs-research-table .pfs-research-team {
  color: #304c64 !important;
}

@media (max-width: 575.98px) {
  .pfs-page-research .pfs-research-toolbar,
  .pfs-page-research .pfs-research-query-row {
    align-items: flex-start !important;
  }

  .pfs-page-research .pfs-research-position-filters {
    gap: 0.45rem !important;
  }

  .pfs-page-research .pfs-research-filter {
    padding-inline: 0.8rem !important;
  }
}

.pfs-rules-mechanics .pfs-draft-mechanics-steps {
  position: relative;
}

.pfs-rules-mechanics .pfs-draft-mechanics-steps::before {
  position: absolute;
  top: 1rem;
  bottom: 1rem;
  left: 15px;
  width: 1px;
  background: var(--pfs-border-default);
  content: "";
}

.pfs-rules-mechanics .pfs-draft-step {
  position: relative;
}

.pfs-rules-mechanics .pfs-draft-step-marker {
  width: 32px;
  height: 32px;
  border-radius: var(--pfs-radius-sm);
  border: 1px solid var(--pfs-border-default);
  background: var(--pfs-bg-surface-elevated);
  color: var(--pfs-accent-primary);
  font-family: var(--pfs-font-mono);
  font-size: 0.85rem;
  font-weight: 700;
  box-shadow: none;
}

.pfs-rules-mechanics .pfs-sub-panel {
  border: 0 !important;
  border-left: 2px solid var(--pfs-accent-primary) !important;
  border-radius: 0 !important;
  background: rgba(124, 142, 163, 0.06);
  box-shadow: none;
}

.pfs-rules-mechanics .text-warning {
  color: var(--pfs-accent-primary) !important;
}

.pfs-rules-mechanics .pfs-anchor-rule-callout {
  padding: 0.8rem 1rem 0.8rem 1.25rem !important;
  font-size: 0.85rem;
  line-height: 1.6;
}

.pfs-rules-mechanics .pfs-anchor-rule-callout > strong {
  color: var(--pfs-accent-primary);
}

[data-theme="light"] .pfs-rules-mechanics .pfs-draft-mechanics-steps::before {
  background: var(--pfs-border-default);
}

[data-theme="light"] .pfs-rules-mechanics .pfs-draft-step-marker {
  background: #ffffff;
  color: #82A0BC;
  box-shadow: none;
}

[data-theme="light"] .pfs-rules-mechanics .pfs-sub-panel {
  background: rgba(48, 76, 100, 0.04);
}

.pfs-competitive-anchor-modal {
  z-index: 1060;
  padding: 0.75rem;
  background: rgba(8, 12, 18, 0.76);
}

.pfs-competitive-anchor-modal .modal-dialog {
  width: min(660px, 100%);
  max-width: none;
  margin: auto;
}

.pfs-competitive-anchor-modal .modal-content {
  overflow: hidden;
  border: 1px solid var(--pfs-border-default);
  border-radius: var(--pfs-radius-lg);
  background: var(--pfs-bg-surface);
  color: var(--pfs-text-primary);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}

.pfs-competitive-anchor-modal .modal-header {
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem clamp(1.25rem, 4vw, 1.75rem);
  border-bottom: 1px solid var(--pfs-border-subtle) !important;
}

.pfs-competitive-anchor-heading {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  min-width: 0;
}

.pfs-competitive-anchor-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: var(--pfs-radius-sm);
  border: 1px solid rgba(130, 160, 188, 0.3);
  background: rgba(130, 160, 188, 0.1);
  color: var(--pfs-accent-primary);
}

.pfs-competitive-anchor-title {
  min-width: 0;
}

.pfs-competitive-anchor-eyebrow {
  display: block;
  margin-bottom: 0.3rem;
  color: var(--pfs-accent-primary);
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pfs-competitive-anchor-title .modal-title {
  color: var(--pfs-text-primary);
  font-size: clamp(1.1rem, 3vw, 1.3rem);
  font-weight: 750;
  letter-spacing: -0.025em;
  line-height: 1.25;
}

.pfs-competitive-anchor-title small {
  display: block;
  margin-top: 0.4rem;
  color: var(--pfs-text-muted);
  font-size: 0.85rem;
  line-height: 1.45;
}

.pfs-competitive-anchor-modal .modal-body {
  padding: 1rem clamp(1.25rem, 4vw, 1.75rem) 1.5rem;
  font-size: 0.95rem;
  line-height: 1.75;
}

.pfs-competitive-anchor-intro {
  margin: 0.25rem 0 1.25rem;
  padding: 0.75rem 1rem;
  border-radius: 0;
  border-left: 2px solid var(--pfs-accent-primary);
  background: rgba(124, 142, 163, 0.06);
  box-shadow: none;
  color: var(--pfs-text-secondary);
  font-size: 0.9rem;
  font-style: italic;
}

.pfs-competitive-anchor-body > p:not(:last-of-type) {
  margin-bottom: 1.15rem;
}

.pfs-competitive-anchor-body a {
  color: var(--pfs-accent-info);
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.pfs-competitive-anchor-signoff {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--pfs-border-subtle);
  color: var(--pfs-text-muted);
  font-size: 0.85rem;
}

.pfs-competitive-anchor-signoff > span {
  font-style: italic;
}

.pfs-competitive-anchor-signoff > a {
  color: var(--pfs-text-secondary);
}

.pfs-competitive-anchor-modal .modal-footer {
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem clamp(1.25rem, 4vw, 1.75rem);
  border-top: 1px solid var(--pfs-border-subtle);
}

.pfs-competitive-anchor-modal .modal-footer small {
  color: var(--pfs-text-muted);
  font-size: 0.8rem;
}

.pfs-competitive-anchor-modal .pfs-competitive-anchor-close {
  flex: 0 0 auto;
  margin: 0.15rem 0 0 auto;
}

[data-theme="light"] .pfs-competitive-anchor-modal {
  background: rgba(31, 43, 54, 0.48);
}

[data-theme="light"] .pfs-competitive-anchor-modal .modal-content {
  box-shadow: 0 12px 32px rgba(48, 76, 100, 0.2);
}

[data-theme="light"] .pfs-competitive-anchor-modal .modal-header {
  background: #ffffff;
}

[data-theme="light"] .pfs-competitive-anchor-icon {
  background: rgba(130, 160, 188, 0.08);
}

[data-theme="light"] .pfs-competitive-anchor-intro {
  background: rgba(48, 76, 100, 0.04);
}

[data-theme="light"] .pfs-competitive-anchor-modal .modal-footer {
  background: #f7f9fa;
}

@media (max-width: 575.98px) {
  .pfs-competitive-anchor-modal {
    padding: 0.5rem;
  }

  .pfs-competitive-anchor-modal .modal-header {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .pfs-competitive-anchor-heading {
    gap: 0.75rem;
  }

  .pfs-competitive-anchor-icon {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
    border-radius: var(--pfs-radius-sm);
  }

  .pfs-competitive-anchor-modal .modal-footer {
    align-items: flex-start;
  }
}

/* ==========================================================================
   Global Anti-Template / Editorial Refinement Overrides
   Tightens Bootstrap utility radii, removes pill boxes, and flattens surfaces
   ========================================================================== */
.rounded-pill:not(.pfs-pulse-dot):not(.rounded-circle),
.badge.rounded-pill,
.btn.rounded-pill {
  border-radius: var(--pfs-radius-sm) !important;
}

.rounded-4,
.rounded-3,
.rounded-2,
.rounded,
.card,
.modal-content,
.dropdown-menu,
.alert {
  border-radius: var(--pfs-radius-md) !important;
}

.btn,
.btn-sm,
.btn-lg,
.form-control,
.form-select,
.input-group-text,
.badge {
  border-radius: var(--pfs-radius-sm) !important;
}

.modal-body.d-flex.flex-column > * {
  flex-shrink: 0;
}

