/* NVFS v21 - operational sports UI */
:root {
  --nvfs-bg: #090b0d;
  --nvfs-surface: #111418;
  --nvfs-surface-2: #181c21;
  --nvfs-surface-3: #20252b;
  --nvfs-line: #2a3037;
  --nvfs-text: #f5f7f8;
  --nvfs-muted: #9ca6b1;
  --nvfs-dim: #68727d;
  --nvfs-green: #32d583;
  --nvfs-gold: #f3c64e;
  --nvfs-blue: #6ea8fe;
  --nvfs-red: #f97066;
  --nvfs-radius: 8px;
  --bg: var(--nvfs-bg) !important;
  --bg2: var(--nvfs-surface) !important;
  --bg3: var(--nvfs-surface-2) !important;
  --bdr: var(--nvfs-line) !important;
  --bdr2: #343b44 !important;
  --tx1: var(--nvfs-text) !important;
  --tx2: var(--nvfs-muted) !important;
  --tx3: var(--nvfs-dim) !important;
  --card-bg: var(--nvfs-surface) !important;
  --card-bdr: var(--nvfs-line) !important;
  --input-bg: #0d1013 !important;
  --input-bdr: #343b44 !important;
}
html { color-scheme: dark; background: var(--nvfs-bg); }
body {
  min-width: 320px;
  background: var(--nvfs-bg) !important;
  color: var(--nvfs-text) !important;
  font-family: Inter, system-ui, sans-serif !important;
  letter-spacing: 0 !important;
}
button, input, select, textarea { letter-spacing: 0 !important; }
button { touch-action: manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--nvfs-blue) !important;
  outline-offset: 2px;
}
input, select, textarea, .sp-input, .sp-select, .fb-note-input,
.mp-search-input, .fp-input, .fp-select, .fp-textarea, .gp-sheet-input {
  min-height: 44px !important;
  border-radius: 6px !important;
  border: 1px solid var(--nvfs-line) !important;
  background: #0d1013 !important;
  color: var(--nvfs-text) !important;
}

/* App shells */
.h-root, .sp-root, .sp-portrait-root, .sp-land-root, .fb-root,
.cp-root, .dp-root, .mp-root, .rq-root, .rp-root, .fp-root,
.gp-root, .st-root, .pr-root {
  min-height: 100svh !important;
  background: var(--nvfs-bg) !important;
  color: var(--nvfs-text) !important;
}
.h-bg, .sp-bg, .fb-bg, .cp-bg, .dp-bg, .mp-bg, .rq-bg,
.rp-bg, .fp-bg, .gp-bg, .st-bg, .pr-bg { display: none !important; }
.h-wrap, .sp-wrap, .fb-wrap, .cp-wrap, .dp-wrap, .mp-wrap,
.rq-wrap, .rp-wrap, .fp-wrap, .gp-body, .st-wrap {
  width: min(100%, 760px) !important;
  margin-inline: auto !important;
}

/* Headers */
.h-hdr, .sp-hdr, .fb-hdr, .cp-hdr, .dp-hdr, .mp-hdr,
.rq-hdr, .rp-hdr, .fp-hdr, .gp-hdr, .st-hdr, .pr-hdr {
  position: sticky !important;
  top: 0 !important;
  z-index: 30 !important;
  min-height: 58px !important;
  padding: max(.65rem, env(safe-area-inset-top)) .9rem .65rem !important;
  background: rgba(9, 11, 13, .96) !important;
  border-bottom: 1px solid #20252b !important;
  box-shadow: none !important;
  backdrop-filter: blur(14px) !important;
}
.h-hdr-name, .sp-hdr-title, .fb-hdr-teams, .cp-hdr-title,
.dp-hdr-title, .mp-hdr-title, .rq-hdr-title, .rp-hdr-title,
.fp-hdr-title, .gp-hdr-title, .st-hdr-title, .pr-hdr-title {
  color: var(--nvfs-text) !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
}
.h-hdr-sub, .sp-hdr-sub, .fb-hdr-sport, .cp-hdr-sub,
.dp-hdr-sub, .mp-hdr-sub, .rq-hdr-sub, .rp-hdr-sub,
.gp-hdr-sub, .st-hdr-step, .pr-hdr-sub {
  color: var(--nvfs-muted) !important;
  letter-spacing: 0 !important;
}
.sp-back, .fb-back, .cp-back, .dp-back, .mp-back, .rq-back,
.rp-back, .fp-back, .gp-back, .st-back, .pr-hdr-back {
  width: 38px !important;
  height: 38px !important;
  flex: 0 0 38px !important;
  border-radius: 7px !important;
  border: 1px solid var(--nvfs-line) !important;
  background: var(--nvfs-surface) !important;
  color: var(--nvfs-text) !important;
}

/* Bottom navigation */
.bn-root {
  left: 50% !important;
  bottom: 0 !important;
  width: min(100%, 760px) !important;
  min-height: 66px !important;
  transform: translateX(-50%) !important;
  padding: .35rem .45rem max(.35rem, env(safe-area-inset-bottom)) !important;
  background: rgba(17, 20, 24, .98) !important;
  border: 1px solid var(--nvfs-line) !important;
  border-bottom: 0 !important;
  border-radius: 8px 8px 0 0 !important;
  box-shadow: 0 -10px 28px rgba(0, 0, 0, .24) !important;
}
.bn-item {
  min-width: 0 !important;
  min-height: 52px !important;
  border-radius: 6px !important;
  color: var(--nvfs-muted) !important;
  font-size: .67rem !important;
  font-weight: 650 !important;
  gap: 2px !important;
}
.bn-item.active { background: #202822 !important; color: var(--nvfs-green) !important; }
.bn-ic { font-size: 1.18rem !important; line-height: 1 !important; }
.bn-admin-popup {
  right: max(.75rem, calc((100vw - 760px) / 2 + .75rem)) !important;
  bottom: 74px !important;
  width: min(280px, calc(100vw - 1.5rem)) !important;
  padding: .5rem !important;
  border-radius: var(--nvfs-radius) !important;
  background: var(--nvfs-surface-2) !important;
  border: 1px solid var(--nvfs-line) !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .28) !important;
}
.bn-admin-item { min-height: 46px !important; border-radius: 6px !important; }

/* Home */
.h-wrap { padding: .9rem .9rem 6rem !important; }
.h-card, .h-match, .h-admin-wrap, .h-empty {
  border-radius: var(--nvfs-radius) !important;
  border: 1px solid var(--nvfs-line) !important;
  background: var(--nvfs-surface) !important;
  box-shadow: none !important;
}
.h-card { padding: 1rem !important; margin-bottom: .7rem !important; }
.h-card-red { border-left: 3px solid var(--nvfs-red) !important; }
.h-card-title, .h-sec-lbl {
  color: var(--nvfs-text) !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.h-sec-head { padding: 1rem .1rem .55rem !important; }
.h-meta-grid, .h-stats {
  gap: 1px !important;
  overflow: hidden !important;
  border: 1px solid var(--nvfs-line) !important;
  border-radius: var(--nvfs-radius) !important;
  background: var(--nvfs-line) !important;
}
.h-meta-cell, .h-stat { padding: .85rem .5rem !important; background: var(--nvfs-surface-2) !important; }
.h-meta-lbl, .h-sl { color: var(--nvfs-muted) !important; letter-spacing: 0 !important; }
.h-sv { color: var(--nvfs-text) !important; }
.h-att-btns { gap: .55rem !important; }
.h-btn-play, .h-btn-cant, .h-cta {
  min-height: 46px !important;
  border-radius: 7px !important;
  font-weight: 750 !important;
}
.h-btn-play, .h-cta {
  color: #06130d !important;
  background: var(--nvfs-green) !important;
  border-color: var(--nvfs-green) !important;
}
.h-btn-cant {
  color: var(--nvfs-red) !important;
  background: #251716 !important;
  border-color: #5f2b27 !important;
}
.h-match { padding: .85rem !important; margin-bottom: .55rem !important; }
.h-match-st, .h-badge, .h-role-chip, .h-admin-role-chip {
  border-radius: 4px !important;
  letter-spacing: 0 !important;
}
.h-admin-wrap { padding: .8rem !important; }
.h-admin-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: .45rem !important;
}
.h-admin-btn {
  min-height: 68px !important;
  padding: .55rem .25rem !important;
  border-radius: 7px !important;
  background: var(--nvfs-surface-2) !important;
  border: 1px solid var(--nvfs-line) !important;
  color: var(--nvfs-text) !important;
  font-size: .7rem !important;
}
.h-admin-btn-ic { font-size: 1.15rem !important; }
.h-admin-section {
  margin-top: .8rem !important;
  padding-top: .8rem !important;
  border-top: 1px solid #20252b !important;
}
.h-admin-sec-grid { gap: .45rem !important; }
.h-admin-sec-btn {
  min-height: 44px !important;
  border-radius: 6px !important;
  background: var(--nvfs-surface-2) !important;
  border: 1px solid var(--nvfs-line) !important;
  color: var(--nvfs-text) !important;
}

/* Sessions and attendance */
.sp-wrap { padding: .8rem .8rem 6rem !important; }
.sp-date-card, .sp-stats, .sp-my-att, .sp-admin-att-card,
.sp-form-card, .sp-tok-card, .sp-sheet, .sp-captain-cta {
  margin: 0 0 .7rem !important;
  border-radius: var(--nvfs-radius) !important;
  border: 1px solid var(--nvfs-line) !important;
  background: var(--nvfs-surface) !important;
  box-shadow: none !important;
}
.sp-date-card { padding: .95rem !important; }
.sp-date-day { color: var(--nvfs-text) !important; font-size: 1.1rem !important; font-weight: 800 !important; }
.sp-stats { gap: 1px !important; overflow: hidden !important; background: var(--nvfs-line) !important; }
.sp-stat { padding: .85rem .35rem !important; background: var(--nvfs-surface) !important; }
.sp-stat-lbl { color: var(--nvfs-muted) !important; letter-spacing: 0 !important; }
.sp-tabs, .sp-tabbar, .rp-tabbar, .fp-tabbar, .rq-tabs {
  padding: 3px !important;
  gap: 3px !important;
  border-radius: 7px !important;
  border: 1px solid var(--nvfs-line) !important;
  background: #0d1013 !important;
}
.sp-tab, .rp-tab, .fp-tab, .rq-tab {
  min-height: 38px !important;
  border-radius: 5px !important;
  color: var(--nvfs-muted) !important;
}
.sp-tab.active, .rp-tab.active, .fp-tab.active, .rq-tab.active {
  background: var(--nvfs-surface-3) !important;
  color: var(--nvfs-text) !important;
}
.sp-att-row, .sp-arow, .sp-match-row, .mp-row, .rq-card,
.gp-card, .fp-row, .fb-event-row, .st-row {
  min-height: 58px !important;
  padding: .7rem !important;
  border-radius: 7px !important;
  border: 1px solid #20252b !important;
  background: var(--nvfs-surface) !important;
}
.sp-my-btn, .sp-admin-btn, .sp-add-btn, .sp-save-btn,
.sp-share-btn, .sp-gen-btn { min-height: 44px !important; border-radius: 7px !important; }
.sp-captain-cta { padding: .9rem !important; border-left: 3px solid var(--nvfs-gold) !important; }

/* Cricket score sheet */
.sp-portrait-root, .sp-land-root { background: var(--nvfs-bg) !important; }
.sp-portrait-root .sp-pad {
  width: min(100%, 680px) !important;
  margin-inline: auto !important;
  padding: .75rem .75rem calc(1rem + env(safe-area-inset-bottom)) !important;
}
.sp-portrait-root [class*="score"], .sp-land-root [class*="score"] {
  font-variant-numeric: tabular-nums;
}
.sp-portrait-root .sp-section, .sp-land-root .sp-land-left, .sp-land-root .sp-land-right {
  border-radius: var(--nvfs-radius) !important;
  border: 1px solid var(--nvfs-line) !important;
  background: var(--nvfs-surface) !important;
}
.sp-portrait-root .run-btn, .sp-land-root .run-btn {
  min-height: 60px !important;
  border-radius: 7px !important;
  border: 1px solid #3b444e !important;
  background: var(--nvfs-surface-2) !important;
  color: var(--nvfs-text) !important;
  box-shadow: none !important;
  font-size: 1.1rem !important;
  font-weight: 800 !important;
}
.sp-portrait-root .run-btn:nth-child(4), .sp-land-root .run-btn:nth-child(4) {
  color: #06130d !important;
  background: var(--nvfs-green) !important;
  border-color: var(--nvfs-green) !important;
}
.sp-portrait-root .run-btn:nth-child(6), .sp-land-root .run-btn:nth-child(6) {
  color: #1a1403 !important;
  background: var(--nvfs-gold) !important;
  border-color: var(--nvfs-gold) !important;
}
.sp-portrait-root .xbtn, .sp-land-root .xbtn {
  width: 40px !important;
  height: 40px !important;
  border-radius: 7px !important;
  background: var(--nvfs-surface-2) !important;
  border: 1px solid var(--nvfs-line) !important;
}
.sp-admin-row { gap: .5rem !important; }
.sp-undo {
  min-height: 44px !important;
  border-radius: 7px !important;
  border: 1px solid #665423 !important;
  background: #201b0d !important;
  color: var(--nvfs-gold) !important;
}

/* Football score sheet */
.fb-wrap { padding: .75rem .75rem 1.25rem !important; }
.fb-scoreboard, .fb-clock-display, .fb-controls, .fb-events,
.fb-stats-grid, .fb-share-panel, .fb-sheet, .fb-modal {
  border-radius: var(--nvfs-radius) !important;
  border: 1px solid var(--nvfs-line) !important;
  background: var(--nvfs-surface) !important;
  box-shadow: none !important;
}
.fb-scoreboard {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: .65rem !important;
  padding: 1rem .75rem !important;
  margin-bottom: .65rem !important;
}
.fb-score-name {
  color: var(--nvfs-text) !important;
  font-size: .82rem !important;
  font-weight: 750 !important;
  overflow-wrap: anywhere;
}
.fb-score-goals {
  color: var(--nvfs-text) !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-size: clamp(3rem, 16vw, 5.25rem) !important;
  font-weight: 850 !important;
  line-height: .95 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
}
.fb-score-tap {
  min-height: 44px !important;
  border-radius: 6px !important;
  color: #06130d !important;
  background: var(--nvfs-green) !important;
  border: 1px solid var(--nvfs-green) !important;
  font-weight: 800 !important;
}
.fb-clock-display { padding: .85rem !important; margin-bottom: .65rem !important; }
.fb-clock-time { color: var(--nvfs-gold) !important; font-variant-numeric: tabular-nums; letter-spacing: 0 !important; }
.fb-clock-bar { background: #242a31 !important; }
.fb-clock-fill { background: var(--nvfs-green) !important; }
.fb-controls { padding: .65rem !important; gap: .5rem !important; margin-bottom: .65rem !important; }
.fb-ctrl-btn, .fb-quick-btn, .fb-undo-btn,
.fb-share-btn, .fb-copy-btn, .fb-wa-btn {
  min-height: 46px !important;
  border-radius: 7px !important;
  box-shadow: none !important;
  font-weight: 750 !important;
}
.fb-btn-start, .fb-btn-resume, .fb-confirm-btn {
  color: #06130d !important;
  background: var(--nvfs-green) !important;
  border-color: var(--nvfs-green) !important;
}
.fb-btn-end {
  color: var(--nvfs-red) !important;
  background: #251716 !important;
  border-color: #5f2b27 !important;
}
.fb-live-pill {
  border-radius: 4px !important;
  color: var(--nvfs-green) !important;
  background: #12271d !important;
  border-color: #285f43 !important;
}
.fb-event-grid { gap: .5rem !important; }
.fb-event-chip, .fb-player-chip { border-radius: 5px !important; }

/* Shared admin/list/form screens */
.mp-wrap, .rq-wrap, .rp-wrap, .fp-wrap, .gp-body,
.cp-wrap, .dp-wrap, .st-wrap { padding: .8rem .8rem 6rem !important; }
.mp-summary, .mp-search-wrap, .rq-card, .rp-hero, .rp-stat-card,
.rp-scorecard, .rp-insight-card, .rp-fin-card, .rp-fund-card,
.fp-form-card, .fp-fund-card, .fp-stat-card, .gp-card,
.gp-stats, .cp-request-card, .cp-team-section, .dp-columns,
.dp-admin-bar, .st-section, .pr-card, .pr-setup-card {
  border-radius: var(--nvfs-radius) !important;
  border: 1px solid var(--nvfs-line) !important;
  background: var(--nvfs-surface) !important;
  box-shadow: none !important;
}
.mp-filter-btn, .fp-filter-chip, .gp-sel, .rq-tab { border-radius: 5px !important; }
.rq-approve-btn, .gp-act-paid, .fp-submit-btn, .dp-lock-btn,
.dp-match-btn, .st-submit, .cp-confirm-btn, .cp-go-draft {
  min-height: 44px !important;
  border-radius: 7px !important;
  color: #06130d !important;
  background: var(--nvfs-green) !important;
  border-color: var(--nvfs-green) !important;
}
.rq-reject-btn, .mp-deactivate-btn, .gp-act-del {
  min-height: 44px !important;
  border-radius: 7px !important;
  color: var(--nvfs-red) !important;
  background: #251716 !important;
  border-color: #5f2b27 !important;
}

/* Games are removed, including stale cached markup. */
a[href="/games"], a[href="/games/cricket"], a[href="/games/penalty"],
[data-route="/games"], [data-href="/games"] { display: none !important; }

@media (min-width: 760px) {
  .h-wrap, .sp-wrap, .fb-wrap, .mp-wrap, .rq-wrap, .rp-wrap,
  .fp-wrap, .gp-body, .cp-wrap, .dp-wrap, .st-wrap { padding-inline: 1rem !important; }
  .h-admin-grid { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
  .fb-scoreboard { padding: 1.2rem 1.5rem !important; }
}
@media (max-width: 390px) {
  .h-admin-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .h-meta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .fb-score-goals { font-size: 3rem !important; }
  .bn-item { font-size: .62rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
