.p24SeasonBar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:16px 0 18px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(255,255,255,.04);
}
.p24SeasonBar label{
  color:var(--muted,#9aa4b2);
  font-size:14px;
}
.p24SeasonBar select{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(10,15,25,.92);
  color:inherit;
  border-radius:12px;
  padding:9px 12px;
  outline:none;
}
.p24TeamInline{
  display:inline-flex;
  align-items:center;
  gap:8px;
  vertical-align:middle;
}
.p24TeamLogo{
  width:24px;
  height:24px;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  flex:0 0 24px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  font-size:11px;
  font-weight:800;
  line-height:1;
}
.p24TeamLogo img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#fff;
}
.p24TeamLogo .p24Fallback{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}

/* compact season selector override */
.p24SeasonBar{
  display:inline-flex;
  width:auto;
  max-width:100%;
}
.p24SeasonBar select,
.p24SeasonBar #p24SeasonSelect{
  width:auto !important;
  min-width:150px;
  max-width:220px;
}

.p24PlayerNameWithLogo{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.p24PlayerNameWithLogo .p24TeamLogo{
  width:24px;
  height:24px;
  flex:0 0 24px;
}

/* homepage referee metric cleanup */
.homeRefMain,
.refMainMetric,
.refYellowMetric{
  display:flex;
  align-items:center;
  gap:8px;
  color:#ffd45a;
  font-weight:900;
}

.homeRefMain::before,
.refMainMetric::before,
.refYellowMetric::before{
  content:"";
  width:12px;
  height:16px;
  border-radius:3px;
  background:linear-gradient(180deg,#ffe36b,#ffbf1f);
  box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 5px 14px rgba(255,196,31,.20);
  transform:rotate(-5deg);
  flex:0 0 12px;
}

.homeRefHalves,
.refHalves{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  color:#9fb3cc;
  font-size:12px;
  margin-top:4px;
}

.homeRefHalves span,
.refHalves span{
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:rgba(255,255,255,.035);
}

.homeRefSecondary,
.refSecondary{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:5px;
}

.homeRefSecondary .chip,
.refSecondary .chip{
  opacity:.72;
  font-size:11px;
}

.chip.official,
.badge.official,
.pill.official,
[data-kind="official"],
[data-type="official"]{
  display:none!important;
}

/* P24 homepage compact hero */
body:has(.kicker) .heroCard,
body:has(.kicker) .summaryCard,
body:has(.kicker) .sideCard,
body:has(.kicker) .heroStat,
body:has(.kicker) .summary,
body:has(.kicker) .futurePrediction{
  display:none!important;
}

body:has(.kicker) .hero,
body:has(.kicker) header,
body:has(.kicker) .heroWrap{
  padding-bottom:22px!important;
  margin-bottom:10px!important;
}

body:has(.kicker) h1{
  max-width:1100px;
  margin-bottom:18px!important;
}

body:has(.kicker) .lead,
body:has(.kicker) p.lead{
  max-width:760px!important;
  margin:14px 0 10px!important;
  font-size:16px!important;
  line-height:1.55!important;
  color:#9fb3cc!important;
}

/* Home card header icon badges */
.p24HomeIconBadge{
  width:42px!important;
  height:34px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:14px!important;
  background:rgba(255,209,102,.10)!important;
  border:1px solid rgba(255,209,102,.32)!important;
  color:#ffd45a!important;
  box-shadow:0 8px 24px rgba(255,209,102,.08)!important;
}

.p24HomeIconBadge svg{
  width:21px;
  height:21px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.p24HomeIconBadge--team{
  background:rgba(94,224,138,.09)!important;
  border-color:rgba(94,224,138,.28)!important;
  color:#5ee08a!important;
}

.p24HomeIconBadge--player{
  background:rgba(85,179,255,.09)!important;
  border-color:rgba(85,179,255,.28)!important;
  color:#7cc7ff!important;
}

/* Referee yellow card visual */
.p24YellowCardIcon{
  width:13px;
  height:18px;
  border-radius:3px;
  display:inline-block;
  background:linear-gradient(180deg,#ffe779,#ffc629);
  box-shadow:0 0 0 1px rgba(255,255,255,.18), 0 8px 18px rgba(255,198,41,.20);
  transform:rotate(-7deg);
  vertical-align:-3px;
  margin-right:7px;
}

.p24RefRate{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#9fb3cc;
  font-size:12px;
  margin-top:3px;
}

.p24RefHalves{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-top:5px;
  color:#9fb3cc;
  font-size:12px;
}

.p24RefHalves span{
  padding:3px 7px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
}

.p24RefSecondary{
  opacity:.72;
}

/* official cards are not important on homepage */
.chip.green,
.badge.green,
.pill.green,
[class*="official"]{
  display:none!important;
}

/* readable homepage badges instead of tiny unclear icons */
.p24HomeIconBadge{
  display:none!important;
}

.p24ReadableBadge{
  min-width:74px!important;
  height:34px!important;
  padding:0 13px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  border-radius:999px!important;
  font-size:12px!important;
  font-weight:950!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  line-height:1!important;
  background:rgba(255,209,102,.10)!important;
  border:1px solid rgba(255,209,102,.36)!important;
  color:#ffd45a!important;
  box-shadow:0 10px 26px rgba(255,209,102,.08)!important;
}

.p24ReadableBadge::before{
  content:"";
  width:11px;
  height:15px;
  border-radius:3px;
  background:linear-gradient(180deg,#ffe779,#ffc629);
  box-shadow:0 0 0 1px rgba(255,255,255,.20);
  transform:rotate(-7deg);
}

.p24ReadableBadge--team{
  background:rgba(94,224,138,.09)!important;
  border-color:rgba(94,224,138,.32)!important;
  color:#5ee08a!important;
}

.p24ReadableBadge--team::before{
  width:14px;
  height:14px;
  border-radius:4px 4px 7px 7px;
  background:linear-gradient(180deg,#64f29a,#2eb96a);
  transform:rotate(0deg);
}

.p24ReadableBadge--player{
  background:rgba(85,179,255,.10)!important;
  border-color:rgba(85,179,255,.34)!important;
  color:#7cc7ff!important;
}

.p24ReadableBadge--player::before{
  width:14px;
  height:14px;
  border-radius:999px;
  background:radial-gradient(circle at 35% 35%,#fff 0 18%,#7cc7ff 19% 54%,#1e5799 55%);
  transform:rotate(0deg);
}

/* make yellow-card metric more readable */
.p24YellowCardIcon{
  width:15px!important;
  height:20px!important;
  border-radius:3px!important;
  margin-right:8px!important;
}

/* P24 homepage reset after badge experiments */
.p24ReadableBadge,
.p24HomeIconBadge,
.p24HomeIconBadge svg{
  display:none!important;
}

/* compact hero on homepage */
body:has(.kicker) .heroCard,
body:has(.kicker) .summaryCard,
body:has(.kicker) .sideCard,
body:has(.kicker) .heroStat,
body:has(.kicker) .summary,
body:has(.kicker) .futurePrediction{
  display:none!important;
}

body:has(.kicker) .p24SeasonBar{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  width:100%!important;
  max-width:900px!important;
  margin:22px 0 18px!important;
}

body:has(.kicker) .p24SeasonBar label{
  flex:0 0 auto;
}

body:has(.kicker) .p24SeasonBar select{
  flex:0 0 150px;
}

/* smart search */
.p24SmartSearch{
  position:relative;
  flex:1 1 420px;
  min-width:260px;
  z-index:20;
}

.p24SmartSearchInner{
  height:42px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  background:rgba(5,12,24,.78);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
}

.p24SearchIcon{
  color:#5ee08a;
  font-weight:900;
  font-size:18px;
  line-height:1;
}

#p24SmartSearchInput{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#eaf1fb;
  font:inherit;
  font-weight:650;
  min-width:0;
}

#p24SmartSearchInput::placeholder{
  color:#71829a;
  font-weight:600;
}

.p24SmartSearchDropdown{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 8px);
  max-height:430px;
  overflow:auto;
  padding:10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:#0b1729;
  box-shadow:0 24px 70px rgba(0,0,0,.45);
}

.p24SearchGroupTitle{
  padding:8px 10px 5px;
  color:#7e91aa;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}

.p24SearchItem{
  width:100%;
  display:grid;
  grid-template-columns:64px 1fr;
  gap:10px;
  align-items:center;
  text-align:left;
  border:0;
  border-radius:14px;
  padding:10px;
  background:transparent;
  color:#eaf1fb;
  cursor:pointer;
}

.p24SearchItem:hover,
.p24SearchItem.is-active{
  background:rgba(255,255,255,.065);
}

.p24SearchType{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  height:24px;
  border-radius:999px;
  font-size:10px;
  font-weight:950;
  letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.12);
}

.p24SearchType--ref{
  color:#ffd45a;
  border-color:rgba(255,212,90,.32);
  background:rgba(255,212,90,.08);
}

.p24SearchType--team{
  color:#5ee08a;
  border-color:rgba(94,224,138,.32);
  background:rgba(94,224,138,.08);
}

.p24SearchType--player{
  color:#7cc7ff;
  border-color:rgba(124,199,255,.32);
  background:rgba(124,199,255,.08);
}

.p24SearchText{
  min-width:0;
}

.p24SearchText b{
  display:block;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:14px;
}

.p24SearchText small{
  display:block;
  margin-top:2px;
  color:#8fa4bd;
  font-size:12px;
}

.p24SearchEmpty{
  padding:14px;
  color:#8fa4bd;
  font-size:13px;
}

/* cleaner home cards */
body:has(.kicker) .card h2{
  font-size:21px!important;
  line-height:1.18!important;
}

body:has(.kicker) .card .badge,
body:has(.kicker) .card .pill,
body:has(.kicker) .card .tag,
body:has(.kicker) .card .label{
  display:none!important;
}

/* but do not hide row statistic chips */
body:has(.kicker) .card .chip,
body:has(.kicker) .card .chips .pill{
  display:inline-flex!important;
}

@media(max-width:760px){
  body:has(.kicker) .p24SeasonBar{
    align-items:stretch!important;
  }

  .p24SmartSearch{
    flex-basis:100%;
    min-width:100%;
  }
}

/* P24 clean homepage cards */
body:has(.kicker) .card > .badge,
body:has(.kicker) .card > .pill,
body:has(.kicker) .card > .tag,
body:has(.kicker) .card > .label,
body:has(.kicker) [data-p24-home-icon]{
  display:none!important;
}

body:has(.kicker) .list{
  display:flex;
  flex-direction:column;
  gap:0;
}

body:has(.kicker) .list .row.p24HomeRow{
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr) 82px;
  gap:12px;
  align-items:center;
  min-height:84px;
  padding:13px 0;
  border-bottom:1px solid rgba(255,255,255,.055);
}

body:has(.kicker) .list .row.p24HomeRow:last-child{
  border-bottom:0;
}

body:has(.kicker) .p24HomeMain{
  min-width:0;
}

body:has(.kicker) .p24HomeMain .name{
  display:block;
  color:#f2f6ff;
  font-size:15px;
  font-weight:950;
  line-height:1.16;
  letter-spacing:.01em;
  min-width:0;
}

body:has(.kicker) .p24HomeMain .meta{
  margin-top:5px;
  color:#9fb3cc;
  font-size:12px;
  line-height:1.35;
}

body:has(.kicker) .p24HomeRight{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  gap:6px;
  min-width:0;
}

body:has(.kicker) .p24HomeRight .score{
  text-align:right;
  line-height:1;
}

body:has(.kicker) .p24HomeRight .score b{
  display:block;
  color:#ffd45a;
  font-size:27px;
  font-weight:950;
  letter-spacing:.01em;
}

body:has(.kicker) .p24HomeRight .score span{
  display:block;
  margin-top:4px;
  color:#9fb3cc;
  font-size:12px;
  font-weight:700;
}

body:has(.kicker) .p24HomeRight .chips{
  display:flex!important;
  gap:5px;
  flex-wrap:wrap;
  justify-content:flex-end;
  margin:0!important;
}

body:has(.kicker) .p24HomeRight .chip{
  display:inline-flex!important;
  align-items:center;
  height:22px;
  padding:0 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  color:#9fb3cc;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}

body:has(.kicker) .p24HomeRight .chip.red{
  color:#ffc4c4;
  border-color:rgba(255,107,107,.28);
  background:rgba(255,107,107,.07);
}

.p24HomeRate{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#9fb3cc;
  font-size:12px;
  font-weight:700;
}

.p24YellowMini{
  width:13px;
  height:18px;
  flex:0 0 13px;
  display:inline-block;
  border-radius:3px;
  background:linear-gradient(180deg,#ffe779,#ffc629);
  box-shadow:0 0 0 1px rgba(255,255,255,.16), 0 8px 16px rgba(255,198,41,.16);
  transform:rotate(-6deg);
}

.p24HomeHalves{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:5px;
  color:#9fb3cc;
  font-size:12px;
}

.p24HomeHalves span{
  padding:3px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.075);
}

/* player/team logo sizing inside homepage rows */
body:has(.kicker) .p24PlayerNameWithLogo,
body:has(.kicker) .p24TeamName{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

body:has(.kicker) .p24TeamLogo{
  width:24px!important;
  height:24px!important;
  flex:0 0 24px!important;
}

body:has(.kicker) .p24TeamLogo img{
  border-radius:50%;
}

@media(max-width:900px){
  body:has(.kicker) .list .row.p24HomeRow{
    grid-template-columns:36px minmax(0,1fr) 70px;
    gap:9px;
  }

  body:has(.kicker) .p24HomeMain .name{
    font-size:14px;
  }

  body:has(.kicker) .p24HomeRight .score b{
    font-size:24px;
  }
}

/* Team card: rough players by season */
.p24TeamPlayersCard{
  margin-top:22px;
  padding:20px;
  border-radius:24px;
  background:#102039;
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 20px 70px rgba(0,0,0,.18);
}

.p24TeamPlayersHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(255,255,255,.075);
}

.p24TeamPlayersHead h2{
  margin:0;
  color:#f2f6ff;
  font-size:24px;
  line-height:1.15;
}

.p24TeamPlayersHead p{
  margin:8px 0 0;
  color:#9fb3cc;
  font-size:14px;
  line-height:1.45;
  max-width:760px;
}

.p24TeamPlayersSummary{
  min-width:110px;
  text-align:right;
}

.p24TeamPlayersSummary b{
  display:block;
  color:#ffd45a;
  font-size:34px;
  line-height:1;
  font-weight:950;
}

.p24TeamPlayersSummary span{
  display:block;
  margin-top:5px;
  color:#9fb3cc;
  font-size:12px;
  font-weight:750;
}

.p24TeamPlayersList{
  display:flex;
  flex-direction:column;
}

.p24TeamPlayerRow{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 120px;
  gap:14px;
  align-items:center;
  min-height:76px;
  padding:13px 0;
  border-bottom:1px solid rgba(255,255,255,.055);
}

.p24TeamPlayerRow:last-child{
  border-bottom:0;
}

.p24TeamPlayerPlace{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  background:rgba(124,199,255,.09);
  color:#dce9f8;
  font-weight:900;
}

.p24TeamPlayerName{
  color:#f2f6ff;
  font-size:15px;
  font-weight:950;
  line-height:1.2;
}

.p24TeamPlayerMeta{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:6px;
  color:#9fb3cc;
  font-size:12px;
}

.p24TeamPlayerMeta span{
  padding:3px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.075);
}

.p24TeamPlayerRight{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}

.p24TeamPlayerYellow{
  text-align:right;
  line-height:1;
}

.p24TeamPlayerYellow b{
  display:block;
  color:#ffd45a;
  font-size:27px;
  font-weight:950;
}

.p24TeamPlayerYellow span{
  display:block;
  margin-top:4px;
  color:#9fb3cc;
  font-size:12px;
}

.p24TeamPlayerChips{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.p24TeamPlayerChip{
  height:22px;
  display:inline-flex;
  align-items:center;
  padding:0 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:850;
  color:#9fb3cc;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}

.p24TeamPlayerChip--red{
  color:#ffc4c4;
  border-color:rgba(255,107,107,.28);
  background:rgba(255,107,107,.07);
}

.p24TeamPlayersEmpty{
  padding:18px;
  color:#9fb3cc;
  font-size:14px;
}

@media(max-width:760px){
  .p24TeamPlayersHead{
    flex-direction:column;
  }

  .p24TeamPlayersSummary{
    text-align:left;
  }

  .p24TeamPlayerRow{
    grid-template-columns:36px minmax(0,1fr) 78px;
    gap:10px;
  }
}

/* Compact table view for team-card players block */
.p24TeamPlayersCard{
  width:min(100%, 980px)!important;
  max-width:980px!important;
}

.p24TeamPlayersTable{
  display:flex;
  flex-direction:column;
  width:100%;
}

.p24TeamPlayersTableHead{
  display:grid;
  grid-template-columns:46px minmax(220px,1fr) 190px 150px 64px;
  gap:12px;
  align-items:center;
  padding:11px 0;
  border-bottom:1px solid rgba(255,255,255,.09);
  color:#7f93ad;
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.p24TeamPlayerRow{
  display:grid!important;
  grid-template-columns:46px minmax(220px,1fr) 190px 150px 64px!important;
  gap:12px!important;
  align-items:center!important;
  min-height:58px!important;
  padding:10px 0!important;
  border-bottom:1px solid rgba(255,255,255,.055);
}

.p24TeamPlayerPlace{
  width:30px!important;
  height:30px!important;
  border-radius:10px!important;
}

.p24TeamPlayerName{
  font-size:15px!important;
  line-height:1.2!important;
  white-space:normal;
}

.p24TeamPlayerMeta{
  margin-top:0!important;
  display:flex!important;
  gap:6px!important;
  flex-wrap:wrap!important;
}

.p24TeamPlayerExtra{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  min-width:0;
}

.p24TeamPlayerChips{
  justify-content:flex-start!important;
}

.p24TeamPlayerDash{
  color:#536780;
  font-size:13px;
}

.p24TeamPlayerYellow{
  text-align:right!important;
}

.p24TeamPlayerYellow b{
  font-size:24px!important;
}

@media(max-width:900px){
  .p24TeamPlayersTableHead{
    display:none;
  }

  .p24TeamPlayerRow{
    grid-template-columns:36px minmax(0,1fr) 70px!important;
    grid-template-areas:
      "place name yellow"
      "place meta extra";
    gap:6px 10px!important;
    min-height:70px!important;
  }

  .p24TeamPlayerPlace{ grid-area:place; }
  .p24TeamPlayerName{ grid-area:name; }
  .p24TeamPlayerMeta{ grid-area:meta; }
  .p24TeamPlayerExtra{ grid-area:extra; justify-content:flex-end; }
  .p24TeamPlayerYellow{ grid-area:yellow; }
}

/* Homepage entity links */
body:has(.kicker) .p24EntityLink{
  color:inherit;
  text-decoration:none;
}

body:has(.kicker) .p24EntityLink:hover{
  color:#5ee08a;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* Better right score block on homepage */
body:has(.kicker) .list .row.p24HomeRow{
  grid-template-columns:42px minmax(0,1fr) 118px!important;
}

body:has(.kicker) .p24HomeRight{
  width:118px;
  align-items:flex-end!important;
}

body:has(.kicker) .p24ScorePrimary{
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:6px;
  line-height:1;
  white-space:nowrap;
}

body:has(.kicker) .p24ScorePrimary .p24YellowMini{
  width:12px;
  height:17px;
  margin-right:1px;
  transform:rotate(-6deg) translateY(2px);
}

body:has(.kicker) .p24ScorePrimary b{
  color:#ffd45a;
  font-size:29px;
  font-weight:950;
  letter-spacing:.01em;
}

body:has(.kicker) .p24ScorePrimary span:last-child{
  color:#9fb3cc;
  font-size:12px;
  font-weight:800;
}

body:has(.kicker) .p24HomeRight .chips{
  display:flex!important;
  flex-direction:row!important;
  justify-content:flex-end!important;
  gap:5px!important;
  margin-top:6px!important;
}

body:has(.kicker) .p24HomeRight .chip{
  height:22px;
  padding:0 8px;
}

/* Referee average by halves */
.p24HomeRefAvgHalves{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px;
  color:#9fb3cc;
  font-size:12px;
}

.p24HomeRefAvgHalves span{
  padding:3px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.075);
}

/* ===== P24 mini card icons for home ratings ===== */
.p24MiniCard{
  display:inline-block;
  width:10px;
  height:14px;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(255,255,255,.10), 0 2px 8px rgba(0,0,0,.25);
  vertical-align:middle;
  flex:0 0 auto;
}

.p24MiniCard--yellow{
  background:linear-gradient(180deg,#ffe37a 0%, #f6c93d 100%);
}

.p24MiniCard--red{
  background:linear-gradient(180deg,#ff8d8d 0%, #d63a4f 100%);
}

.p24MiniCards{
  display:inline-flex;
  align-items:center;
  gap:3px;
}

.p24MiniCards--second-yellow{
  gap:2px;
}

.p24MiniCards--second-yellow .p24MiniCard--red{
  margin-left:-2px;
}

/* chips with meaning */
.p24ExplainChip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:22px;
  padding:0 8px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  font-weight:850;
  white-space:nowrap;
}

.p24ExplainChip--second{
  color:#dbe7ff;
  background:rgba(72,92,140,.15);
  border:1px solid rgba(91,131,201,.25);
}

.p24ExplainChip--red{
  color:#ffd7de;
  background:rgba(166,54,72,.10);
  border:1px solid rgba(214,58,79,.35);
}

/* total yellow block */
body:has(.kicker) .p24RefTotal{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  min-width:82px;
}

body:has(.kicker) .p24RefTotalMain{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  line-height:1;
}

body:has(.kicker) .p24RefTotalMain .p24MiniCard{
  width:12px;
  height:17px;
  transform:rotate(-6deg);
}

body:has(.kicker) .p24RefTotalNum{
  color:#ffd45a;
  font-size:29px;
  font-weight:950;
  letter-spacing:.01em;
}

body:has(.kicker) .p24RefTotalLabel{
  margin-top:4px;
  color:#9fb3cc;
  font-size:12px;
  font-weight:850;
  text-transform:uppercase;
}

body:has(.kicker) .p24RefExtras{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
  margin-top:7px;
}

/* referee average by halves */
.p24HomeRefAvgHalves{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:6px;
  color:#9fb3cc;
  font-size:12px;
}

.p24HomeRefAvgHalves span{
  padding:3px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.075);
}

/* keep right side clean */
body:has(.kicker) .p24HomeRight{
  width:112px!important;
  align-items:flex-end!important;
}

body:has(.kicker) .list .row.p24HomeRow{
  grid-template-columns:42px minmax(0,1fr) 112px!important;
}


/* players should not show half averages on homepage */
body:has(.kicker) .p24HomeRow--player .p24HomeRefAvgHalves,
body:has(.kicker) .p24HomeRow--player .p24HomeHalves{
  display:none!important;
}

/* label under total yellow cards */
body:has(.kicker) .p24RefTotalLabel{
  white-space:nowrap!important;
  text-transform:none!important;
  font-size:11px!important;
  letter-spacing:.01em!important;
}

body:has(.kicker) .p24HomeRight{
  width:124px!important;
}

body:has(.kicker) .list .row.p24HomeRow{
  grid-template-columns:42px minmax(0,1fr) 124px!important;
}

/* P24 global entity interlinking */
.p24EntityLink{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .15s ease, border-color .15s ease, opacity .15s ease;
}

.p24EntityLink:hover{
  color:#5ee08a!important;
  border-bottom-color:rgba(94,224,138,.55);
}

td .p24EntityLink,
th .p24EntityLink{
  display:inline;
}

.p24TeamPlayerName .p24EntityLink{
  color:#f2f6ff;
}

.p24TeamPlayerName .p24EntityLink:hover{
  color:#5ee08a!important;
}

/* Referee card: average yellow cards by halves */
.p24RefHalvesCard{
  margin:18px 0;
  padding:18px;
  border-radius:22px;
  background:#102039;
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 18px 60px rgba(0,0,0,.16);
}

.p24RefHalvesHead{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:14px;
}

.p24RefHalvesHead h2{
  margin:0;
  color:#f2f6ff;
  font-size:20px;
  line-height:1.15;
}

.p24RefHalvesHead p{
  margin:3px 0 0;
  max-width:620px;
  color:#9fb3cc;
  font-size:13px;
  line-height:1.45;
}

.p24RefHalvesGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.p24RefHalfBox{
  padding:15px;
  border-radius:18px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
}

.p24RefHalfLabel{
  color:#9fb3cc;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.p24RefHalfValue{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
  line-height:1;
}

.p24RefHalfValue .p24MiniCard{
  width:13px;
  height:18px;
  transform:rotate(-6deg);
}

.p24RefHalfValue b{
  color:#ffd45a;
  font-size:34px;
  font-weight:950;
}

.p24RefHalfSub{
  margin-top:5px;
  color:#d5e5fa;
  font-size:13px;
  font-weight:850;
}

.p24RefHalfFormula{
  margin-top:8px;
  color:#8fa5c1;
  font-size:12px;
}

@media(max-width:760px){
  .p24RefHalvesGrid{
    grid-template-columns:1fr;
  }
}



/* ===== referee top stats compact grid ===== */

.stats,
.statsGrid,
.kpiGrid,
.metrics,
.summary,
.summaryGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.p24TopStatCard{
  min-height:92px;
  padding:14px 16px;
  border-radius:18px;
  background:#102039;
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 10px 28px rgba(0,0,0,.14);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.p24TopStatCard--halves{
  background:linear-gradient(180deg, rgba(255,214,84,.08), rgba(255,214,84,.03));
  border:1px solid rgba(255,214,84,.18);
}

.p24TopStatValue{
  font-size:24px;
  font-weight:900;
  line-height:1;
  color:#ffd45a;
}

.p24TopStatLabel{
  margin-top:8px;
  font-size:13px;
  color:#d7e7ff;
  font-weight:800;
}

.p24TopStatSub{
  margin-top:4px;
  font-size:12px;
  color:#8fa5c1;
}

/* Если у старых KPI-карточек класс похожий — немного уменьшаем */
.stats > div,
.statsGrid > div,
.kpiGrid > div,
.metrics > div,
.summary > div,
.summaryGrid > div{
  min-height:92px;
}

/* планшет */
@media (max-width: 1100px){
  .stats,
  .statsGrid,
  .kpiGrid,
  .metrics,
  .summary,
  .summaryGrid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

/* мобилка */
@media (max-width: 760px){
  .stats,
  .statsGrid,
  .kpiGrid,
  .metrics,
  .summary,
  .summaryGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .p24TopStatValue{
    font-size:22px;
  }
}

/* old bottom halves block on referee page is no longer needed */
#p24RefHalvesCard{
  display:none !important;
}

/* Referee card: top KPI halves */
.p24RefKpiGridEnhanced{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:stretch!important;
}

.p24RefKpiGridEnhanced > *{
  min-height:78px!important;
}

.p24TopStatCard{
  min-height:78px!important;
  padding:13px 16px!important;
  border-radius:18px!important;
  background:#102039!important;
  border:1px solid rgba(255,255,255,.09)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.14)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}

.p24TopStatCard--halves{
  background:linear-gradient(180deg, rgba(255,214,84,.09), rgba(16,32,57,.96))!important;
  border-color:rgba(255,214,84,.22)!important;
}

.p24TopStatValue{
  display:flex;
  align-items:center;
  gap:8px;
  line-height:1;
}

.p24TopStatValue .p24MiniCard{
  width:12px;
  height:17px;
  transform:rotate(-6deg);
}

.p24TopStatValue b{
  color:#ffd45a;
  font-size:26px;
  font-weight:950;
  line-height:1;
}

.p24TopStatLabel{
  margin-top:8px;
  color:#d7e7ff;
  font-size:13px;
  font-weight:900;
}

.p24TopStatSub{
  margin-top:3px;
  color:#8fa5c1;
  font-size:12px;
  font-weight:750;
}

/* old bottom halves block on referee page is no longer needed */
#p24RefHalvesCard{
  display:none!important;
}

@media(max-width:1100px){
  .p24RefKpiGridEnhanced{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  .p24RefKpiGridEnhanced{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* Upcoming RPL tour card expectations */
.p24UpcomingTour{
  margin:26px 0 30px;
  padding:18px;
  border-radius:26px;
  background:linear-gradient(180deg, rgba(16,32,57,.98), rgba(12,26,47,.98));
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 22px 70px rgba(0,0,0,.20);
}

.p24UpcomingHead{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  padding:2px 2px 16px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.p24UpcomingKicker{
  color:#5ee08a;
  font-size:12px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.p24UpcomingHead h2{
  margin:5px 0 5px;
  color:#f2f6ff;
  font-size:24px;
  line-height:1.15;
}

.p24UpcomingHead p{
  margin:0;
  color:#9fb3cc;
  font-size:14px;
  line-height:1.45;
}

.p24UpcomingSeason{
  color:#d7e7ff;
  font-size:13px;
  font-weight:850;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  white-space:nowrap;
}

.p24UpcomingList{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}

.p24UpcomingMatch{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 150px;
  gap:12px;
  align-items:center;
  padding:13px;
  border-radius:20px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.075);
}

.p24UpcomingRank{
  width:32px;
  height:32px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#162946;
  color:#d7e7ff;
  font-size:13px;
  font-weight:950;
}

.p24UpcomingTeams{
  color:#f2f6ff;
  font-size:16px;
  font-weight:950;
  line-height:1.18;
}

.p24UpcomingMeta{
  margin-top:4px;
  color:#9fb3cc;
  font-size:12px;
}

.p24UpcomingMeta b{
  color:#d7e7ff;
}

.p24UpcomingFactors{
  margin-top:6px;
  color:#8198b7;
  font-size:11px;
  line-height:1.35;
}

.p24UpcomingNumbers{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}

.p24UpcomingTotal{
  display:flex;
  align-items:center;
  gap:7px;
  color:#ffd45a;
  line-height:1;
}

.p24UpcomingTotal .p24MiniCard{
  width:12px;
  height:17px;
  transform:rotate(-6deg);
}

.p24UpcomingTotal b{
  font-size:28px;
  font-weight:950;
}

.p24UpcomingTotal span:last-child{
  color:#9fb3cc;
  font-size:12px;
  font-weight:850;
}

.p24UpcomingHalves{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.p24UpcomingHalves span{
  padding:4px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  color:#9fb3cc;
  font-size:11px;
  white-space:nowrap;
}

.p24UpcomingHalves b{
  color:#d7e7ff;
}

.p24UpcomingRisk{
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  color:#d7e7ff;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}

.p24Risk-very-high{
  border-color:rgba(255,82,82,.28);
}

.p24Risk-high{
  border-color:rgba(255,212,90,.25);
}

.p24Risk-medium{
  border-color:rgba(94,224,138,.20);
}

@media(max-width:1100px){
  .p24UpcomingList{
    grid-template-columns:1fr;
  }
}

@media(max-width:760px){
  .p24UpcomingHead{
    flex-direction:column;
  }

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

  .p24UpcomingNumbers{
    grid-column:2;
    align-items:flex-start;
  }

  .p24UpcomingHalves{
    justify-content:flex-start;
  }
}

/* Upcoming tour collapsed mode */
.p24UpcomingTour.is-collapsed{
  padding:14px 16px!important;
}

.p24UpcomingTour.is-collapsed .p24UpcomingHead{
  padding-bottom:0!important;
  border-bottom:0!important;
}

.p24UpcomingTour.is-collapsed .p24UpcomingList{
  display:none!important;
}

.p24UpcomingActions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.p24UpcomingToggle{
  appearance:none;
  border:1px solid rgba(94,224,138,.35);
  background:rgba(94,224,138,.10);
  color:#5ee08a;
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:950;
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease, transform .15s ease;
}

.p24UpcomingToggle:hover{
  background:rgba(94,224,138,.16);
  border-color:rgba(94,224,138,.55);
  transform:translateY(-1px);
}

.p24UpcomingInlineCard{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-left:6px;
  color:#ffd45a;
  font-weight:950;
  white-space:nowrap;
}

.p24UpcomingInlineCard .p24MiniCard{
  width:9px;
  height:13px;
  transform:rotate(-6deg);
}

.p24UpcomingHead p b{
  color:#d7e7ff;
}

@media(max-width:760px){
  .p24UpcomingActions{
    justify-content:flex-start;
  }

  .p24UpcomingTour.is-collapsed .p24UpcomingHead{
    gap:10px;
  }
}

/* Upcoming tour: whole collapsed zone is clickable */
.p24UpcomingTour .p24UpcomingHead{
  cursor:pointer;
}

.p24UpcomingTour.is-collapsed{
  cursor:pointer;
}

.p24UpcomingTour.is-open{
  cursor:default;
}

.p24UpcomingTour.is-open .p24UpcomingHead{
  cursor:pointer;
}
