
:root {
  --gold: #2dd4bf;
  --gold-dark: #0f766e;
  --gold-glow: rgba(20, 184, 166, 0.10);
  --border-gold: rgba(20, 184, 166, 0.24);
  --acc-rgb: 20, 184, 166;
  --acc-btn: #0f766e;
  --acc-btn-hi: #14b8a6;
  --accent: #0f766e;
}
body { background-image: radial-gradient(ellipse 80% 40% at 50% 0%, rgba(15, 118, 110, 0.12) 0%, transparent 70%); }
h1, h2, h3, .cp-section-title { text-wrap: balance; }
p, small, .narrative, .cp-hero-pitch, .cp-mode-line, .spot-promo-txt small, .fv-popup-sub, .def-note, .ls-sub, .nfl-pst-main small { text-wrap: pretty; }


.btn:not(.btn-outline):not(.btn-sm), #spinBtn, .pk-start, .fv-popup-btn.primary, .cp-btn-primary {
  background: linear-gradient(135deg, var(--acc-btn), var(--acc-btn-hi)) !important; color: #fff !important;
}
.btn-outline { border-color: var(--gold) !important; color: var(--gold) !important; }


.nrl-field-wrap {
  background:
    repeating-linear-gradient(180deg, rgba(255, 255, 255, .025) 0 10%, rgba(0, 0, 0, .05) 10% 20%),
    linear-gradient(180deg, #1f6b33 0%, #1c612f 55%, #18552a 100%) !important;
  height: min(86vw, 420px) !important; 
}
.nrl-field-inner.nfl-field-wrap { position: absolute; inset: 0; }
.nfl-field { position: absolute; left: 2%; top: 1.5%; width: 96%; height: 97%; pointer-events: none; z-index: 0; }
.nfl-field .gf-edge { fill: none; stroke: rgba(255, 255, 255, .6); stroke-width: 2; vector-effect: non-scaling-stroke; }
.nfl-field .gf-yard { stroke: rgba(255, 255, 255, .28); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.nfl-field .gf-hash { stroke: rgba(255, 255, 255, .32); stroke-width: 1; vector-effect: non-scaling-stroke; }
.nfl-field .gf-los { stroke: #60a5fa; stroke-width: 2.5; stroke-dasharray: 6 4; vector-effect: non-scaling-stroke; }
.nrl-field-inner .fpos { z-index: 2; }
.nrl-field-inner .fpos-label { text-shadow: 0 1px 3px rgba(0, 0, 0, .7); }
.nrl-field-inner .fpos-def .fpos-circle:not(.fp-filled) { border-style: dashed !important; background: rgba(8, 20, 14, .72) !important; }
@media (min-width: 900px) { .nrl-field-wrap { height: auto !important; } }


.ptag-QB { background: #7f1d1d; color: #fca5a5; }
.ptag-RB { background: #14532d; color: #86efac; }
.ptag-WR { background: #1e3a8a; color: #93c5fd; }
.ptag-TE { background: #713f12; color: #fde68a; }
.ptag-K { background: #4c1d95; color: #d8b4fe; }
.ptag-FX { background: #134e4a; color: #5eead4; }
.ptag-DEF { background: #1f2937; color: #e5e7eb; }


.def-spin { padding: 12px 12px 4px; }
.def-card { position: relative; border-radius: 16px; padding: 14px; overflow: hidden; color: #fff;
  border: 2px solid var(--dc1, #334); background: linear-gradient(160deg, rgba(10, 12, 20, .55), rgba(10, 12, 20, .92)), var(--kit-img, none), var(--dc1, #1a1a2a);
  background-size: cover; box-shadow: 0 8px 28px rgba(0, 0, 0, .45); }
.def-top { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.def-tag { padding: 4px 8px; border-radius: 6px; font: 900 11px/1 'Inter', sans-serif; letter-spacing: .6px; }
.def-kick { flex: 1; font: 900 10.5px/1.2 'Inter', sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: #e5e7eb; }

.def-card :is(.def-kick, .def-year, .def-nm) { text-shadow: 0 1px 3px rgba(0, 0, 0, .75); }
.def-year { font: 900 13px/1 'Inter', sans-serif; color: var(--gold); }
.def-mid { display: flex; align-items: center; gap: 12px; }

.def-mid .def-badge { flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-variant-numeric: tabular-nums; }
.def-nm { min-width: 0; }
.def-nm b { display: block; font: 900 19px/1.15 'Inter', sans-serif; text-wrap: balance; }
.def-nm small { display: block; margin-top: 3px; font-size: 11.5px; color: #cbd5e1; }
.def-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 12px 0 0; }
.def-stats span { background: rgba(0, 0, 0, .35); border: 1px solid rgba(255, 255, 255, .08); border-radius: 9px; padding: 7px 4px; text-align: center; }
.def-stats b { display: block; font: 900 17px/1.1 'Inter', sans-serif; font-variant-numeric: tabular-nums; }
.def-stats small { display: block; font-size: 9px; color: #a5b4c3; letter-spacing: .3px; text-wrap: balance; }
.def-take { display: block; width: 100%; margin: 12px 0 0; padding: 13px 14px; border: 0; border-radius: 999px; cursor: pointer;
  background: linear-gradient(135deg, var(--acc-btn), var(--acc-btn-hi)); color: #fff; font: 900 15px/1 'Inter', sans-serif; letter-spacing: .4px; touch-action: manipulation; }
@media (hover: hover) { .def-take:hover { filter: brightness(1.1); } }
.def-note { margin: 8px 4px 4px; font-size: 11px; color: var(--muted); text-align: center; }
.lineup-slot.lineup-def { border-top: 1px dashed rgba(255, 255, 255, .14); margin-top: 4px; padding-top: 6px; }
.lineup-slot .ls-abbr { width: auto; min-width: 26px; flex-shrink: 0; } 


.game-row.bye { opacity: .6; }
.game-row.bye .game-opp-name { color: var(--muted); }
.game-div-tag { display: block; width: max-content; margin: 2px 0 0; padding: 1px 4px; border-radius: 3px; background: rgba(var(--acc-rgb), .16); color: var(--gold); font: 800 7.5px/1.3 Inter, system-ui, sans-serif; letter-spacing: .4px; vertical-align: middle; text-transform: uppercase; }
.game-ot { display: inline-block; margin-left: 3px; padding: 1px 3px; border-radius: 3px; background: rgba(255, 255, 255, .12); color: #e5e7eb; font: 800 7.5px/1.2 Inter, system-ui, sans-serif; letter-spacing: .4px; vertical-align: middle; }
.game-row .game-scorers + .game-scorers { margin-top: 1px; }


.fl-chips { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.fl-chips .wc-chip small { font-size: 9px; }


body[data-mode="hard"] { --mode: #f87171; --mode-rgb: 239, 68, 68; }
body[data-mode="hard"] .cp-skin-strip { background: linear-gradient(90deg, #7f1d1d, #dc2626 50%, #7f1d1d); }
body[data-mode="hard"] #spinBtn { background: linear-gradient(135deg, #b91c1c, #ef4444) !important; color: #fff !important; box-shadow: 0 4px 20px rgba(220, 38, 38, .4) !important; }
.cp-mode-mini.is-hard { --mm: #f87171; }


.cp-mode-card.cp-mode-main .cp-mode-go { background: linear-gradient(135deg, var(--acc-btn), var(--acc-btn-hi)) !important; color: #fff !important; }
@media (hover: hover) { .cp-mode-main:hover .cp-mode-go { background: linear-gradient(135deg, var(--acc-btn-hi), var(--gold)) !important; } }


@media (max-width: 480px) {
  .fixture-grid .game-opp-name { font-size: 10px; }
  .fixture-grid .game-score { font-size: 9.5px; padding: 0 1px; white-space: nowrap; }
  .fixture-grid .game-club-badge { width: 26px; min-width: 26px; font-size: 7px; }
}


.season-standings-btn { display: block; width: calc(100% - 24px); margin: 0 12px 8px; padding: 9px 12px; border-radius: 999px; border: 1.5px solid rgba(var(--acc-rgb), .45);
  background: rgba(var(--acc-rgb), .08); color: #fff; font: 800 12px/1.2 Inter, system-ui, sans-serif; letter-spacing: .4px; cursor: pointer; }
@media (hover: hover) { .season-standings-btn:hover { background: rgba(var(--acc-rgb), .18); } }
.st-overlay { align-items: center; justify-content: center; padding: 16px; }
.st-pop { width: 100%; max-width: 440px !important; max-height: 86vh; display: flex; flex-direction: column; padding: 14px 12px 12px !important; text-align: left; }
.st-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 10px; }
.st-head b { font: 900 18px/1.1 Inter, system-ui, sans-serif; color: #fff; }
.st-head small { color: var(--muted); font-size: 11px; flex: 1; }
.st-x { background: none; border: 0; color: #aaa; font-size: 18px; cursor: pointer; padding: 2px 6px; }
.st-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 8px; }
.st-tab { padding: 8px; border-radius: 999px; border: 1.5px solid #2a2a40; background: #121222; color: #bbb; font: 800 12px/1 Inter, system-ui, sans-serif; cursor: pointer; }
.st-tab.is-on { border-color: var(--gold); color: #fff; background: rgba(var(--acc-rgb), .14); }
.st-body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
.nba-st { width: 100%; border-collapse: collapse; font: 600 12px/1.2 Inter, system-ui, sans-serif; color: #d4d4e0; font-variant-numeric: tabular-nums; margin-bottom: 10px; table-layout: fixed; }
.nba-st th { padding: 5px 3px; font: 900 9.5px/1 Inter, system-ui, sans-serif; letter-spacing: .6px; color: var(--muted); text-align: center; text-transform: uppercase; }
.nba-st td { padding: 5px 3px; text-align: center; border-top: 1px solid rgba(255, 255, 255, .05); }
.nba-st .st-team { text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 56%; }
.nba-st th.st-team { color: #fff; font-size: 10px; }
.nba-st .st-pos { display: inline-block; width: 18px; text-align: right; margin-right: 6px; color: #777; font-weight: 800; }
.nba-st .st-div { margin-left: 5px; color: #6b7280; font-size: 9px; font-weight: 700; }
.nba-st tr.is-me td { background: rgba(var(--acc-rgb), .14); color: #fff; font-weight: 800; }
.nba-st tr.st-cut6 td { border-bottom: 2px solid rgba(74, 222, 128, .55); }
.nba-st tr.st-cut10 td { border-bottom: 2px dashed rgba(255, 255, 255, .28); }
.st-key { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 2px 0 0; font-size: 10.5px; color: var(--muted); }
.st-key .st-k6, .st-key .st-k10 { display: inline-block; width: 16px; height: 0; border-top: 2px solid rgba(74, 222, 128, .55); }
.st-key .st-k10 { border-top: 2px dashed rgba(255, 255, 255, .35); }
.st-key .st-k6 { margin-left: 8px; }


.bracket-champ { font-size: 9px; color: var(--gold); text-align: center; padding: 3px; background: rgba(var(--acc-rgb), .08); font-weight: 800; }
.bracket-game .bracket-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bracket-byes { font-size: 9.5px; color: var(--muted); padding: 2px 4px; text-wrap: pretty; }


.fixture-grid .game-score { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; line-height: 1.1; }
.fixture-grid .game-score .game-ot { margin: 1px 0 0; }


.nfl-pst { display: flex; flex-direction: column; gap: 4px; }
.nfl-pst-row { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 9px; background: rgba(255, 255, 255, .03); }
.nfl-pst-pos { flex-shrink: 0; width: auto; min-width: 30px; font: 900 10px/1 'Inter', sans-serif; color: var(--gold); letter-spacing: .4px; } 
.nfl-pst-club { flex-shrink: 0; width: 30px; padding: 4px 0; border-radius: 4px; font: 900 8px/1 'Inter', sans-serif; text-align: center; }
.nfl-pst-main { flex: 1; min-width: 0; }
.nfl-pst-main b { display: block; font: 800 12.5px/1.25 'Inter', sans-serif; color: #fff; }
.nfl-pst-main small { display: block; font-size: 10.5px; color: #9ca3af; line-height: 1.35; }
.nfl-pst-r { flex-shrink: 0; font: 900 14px/1 'Inter', sans-serif; }
.player-row.pr-def .pr-name { color: #e5e7eb; }


.tp { grid-template-columns: minmax(0, 1fr); }


.pr-badge.pk-def-badge { width: 40px; height: 40px; font-size: 16px; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #fff; flex-shrink: 0; }


.spin-slots > .spin-slot { flex: 1 1 0; min-width: 0; box-sizing: border-box; }
.spin-slots > .spin-slot .spin-slot-val { min-width: 0; text-wrap: balance; overflow-wrap: break-word;  }


.season-record-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:34px;gap:4px 8px;align-items:center;padding:6px 14px;flex-wrap:nowrap}
.season-record-bar>*{min-width:0;height:34px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.season-record-bar>.srb-sep{display:none}
.season-record-bar .srb-record{font-size:18px;line-height:20px;min-width:0;width:100%;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.season-record-bar .srb-val,.season-record-bar .srb-pos{display:block;width:100%;line-height:18px;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
.season-record-bar .srb-label{display:block;width:100%;line-height:12px;text-align:center;white-space:nowrap}
@media (min-width:600px){.season-record-bar{grid-template-columns:repeat(6,minmax(0,1fr))}}

.season-controls .btn{height:34px;line-height:16px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}

@media (max-width: 370px) { .fixture-grid .game-opp-name { font-size: 9px; letter-spacing: -.2px; } }


.ca-spot-src { padding: 2px 4px; letter-spacing: 0; text-overflow: clip; }
@supports (font-size: 1cqw) { .ca-pitch .ca-spot .ca-spot-src { font-size: min(9px, calc((100cqw - 8px) / 6.4)); } }
